--- linux-2.6.24.orig/virt/kvm/kvm_main.c +++ linux-2.6.24/virt/kvm/kvm_main.c @@ -0,0 +1,1451 @@ +/* + * Kernel-based Virtual Machine driver for Linux + * + * This module enables machines with Intel VT-x extensions to run virtual + * machines without emulation or binary translation. + * + * Copyright (C) 2006 Qumranet, Inc. + * + * Authors: + * Avi Kivity + * Yaniv Kamay + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#include "iodev.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +MODULE_AUTHOR("Qumranet"); +MODULE_LICENSE("GPL"); + +DEFINE_SPINLOCK(kvm_lock); +LIST_HEAD(vm_list); + +static cpumask_t cpus_hardware_enabled; + +struct kmem_cache *kvm_vcpu_cache; +EXPORT_SYMBOL_GPL(kvm_vcpu_cache); + +static __read_mostly struct preempt_ops kvm_preempt_ops; + +static struct dentry *debugfs_dir; + +static long kvm_vcpu_ioctl(struct file *file, unsigned int ioctl, + unsigned long arg); + +static inline int valid_vcpu(int n) +{ + return likely(n >= 0 && n < KVM_MAX_VCPUS); +} + +/* + * Switches to specified vcpu, until a matching vcpu_put() + */ +void vcpu_load(struct kvm_vcpu *vcpu) +{ + int cpu; + + mutex_lock(&vcpu->mutex); + cpu = get_cpu(); + preempt_notifier_register(&vcpu->preempt_notifier); + kvm_arch_vcpu_load(vcpu, cpu); + put_cpu(); +} + +void vcpu_put(struct kvm_vcpu *vcpu) +{ + preempt_disable(); + kvm_arch_vcpu_put(vcpu); + preempt_notifier_unregister(&vcpu->preempt_notifier); + preempt_enable(); + mutex_unlock(&vcpu->mutex); +} + +static void ack_flush(void *_completed) +{ +} + +void kvm_flush_remote_tlbs(struct kvm *kvm) +{ + int i, cpu; + cpumask_t cpus; + struct kvm_vcpu *vcpu; + + cpus_clear(cpus); + for (i = 0; i < KVM_MAX_VCPUS; ++i) { + vcpu = kvm->vcpus[i]; + if (!vcpu) + continue; + if (test_and_set_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests)) + continue; + cpu = vcpu->cpu; + if (cpu != -1 && cpu != raw_smp_processor_id()) + cpu_set(cpu, cpus); + } + if (cpus_empty(cpus)) + return; + ++kvm->stat.remote_tlb_flush; + smp_call_function_mask(cpus, ack_flush, NULL, 1); +} + +void kvm_reload_remote_mmus(struct kvm *kvm) +{ + int i, cpu; + cpumask_t cpus; + struct kvm_vcpu *vcpu; + + cpus_clear(cpus); + for (i = 0; i < KVM_MAX_VCPUS; ++i) { + vcpu = kvm->vcpus[i]; + if (!vcpu) + continue; + if (test_and_set_bit(KVM_REQ_MMU_RELOAD, &vcpu->requests)) + continue; + cpu = vcpu->cpu; + if (cpu != -1 && cpu != raw_smp_processor_id()) + cpu_set(cpu, cpus); + } + if (cpus_empty(cpus)) + return; + smp_call_function_mask(cpus, ack_flush, NULL, 1); +} + + +int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id) +{ + struct page *page; + int r; + + mutex_init(&vcpu->mutex); + vcpu->cpu = -1; + vcpu->kvm = kvm; + vcpu->vcpu_id = id; + init_waitqueue_head(&vcpu->wq); + + page = alloc_page(GFP_KERNEL | __GFP_ZERO); + if (!page) { + r = -ENOMEM; + goto fail; + } + vcpu->run = page_address(page); + + r = kvm_arch_vcpu_init(vcpu); + if (r < 0) + goto fail_free_run; + return 0; + +fail_free_run: + free_page((unsigned long)vcpu->run); +fail: + return r; +} +EXPORT_SYMBOL_GPL(kvm_vcpu_init); + +void kvm_vcpu_uninit(struct kvm_vcpu *vcpu) +{ + kvm_arch_vcpu_uninit(vcpu); + free_page((unsigned long)vcpu->run); +} +EXPORT_SYMBOL_GPL(kvm_vcpu_uninit); + +static struct kvm *kvm_create_vm(void) +{ + struct kvm *kvm = kvm_arch_create_vm(); + + if (IS_ERR(kvm)) + goto out; + + kvm->mm = current->mm; + atomic_inc(&kvm->mm->mm_count); + spin_lock_init(&kvm->mmu_lock); + kvm_io_bus_init(&kvm->pio_bus); + mutex_init(&kvm->lock); + kvm_io_bus_init(&kvm->mmio_bus); + init_rwsem(&kvm->slots_lock); + spin_lock(&kvm_lock); + list_add(&kvm->vm_list, &vm_list); + spin_unlock(&kvm_lock); +out: + return kvm; +} + +/* + * Free any memory in @free but not in @dont. + */ +static void kvm_free_physmem_slot(struct kvm_memory_slot *free, + struct kvm_memory_slot *dont) +{ + if (!dont || free->rmap != dont->rmap) + vfree(free->rmap); + + if (!dont || free->dirty_bitmap != dont->dirty_bitmap) + vfree(free->dirty_bitmap); + + if (!dont || free->lpage_info != dont->lpage_info) + vfree(free->lpage_info); + + free->npages = 0; + free->dirty_bitmap = NULL; + free->rmap = NULL; + free->lpage_info = NULL; +} + +void kvm_free_physmem(struct kvm *kvm) +{ + int i; + + for (i = 0; i < kvm->nmemslots; ++i) + kvm_free_physmem_slot(&kvm->memslots[i], NULL); +} + +static void kvm_destroy_vm(struct kvm *kvm) +{ + struct mm_struct *mm = kvm->mm; + + spin_lock(&kvm_lock); + list_del(&kvm->vm_list); + spin_unlock(&kvm_lock); + kvm_io_bus_destroy(&kvm->pio_bus); + kvm_io_bus_destroy(&kvm->mmio_bus); + kvm_arch_destroy_vm(kvm); + mmdrop(mm); +} + +static int kvm_vm_release(struct inode *inode, struct file *filp) +{ + struct kvm *kvm = filp->private_data; + + kvm_destroy_vm(kvm); + return 0; +} + +/* + * Allocate some memory and give it an address in the guest physical address + * space. + * + * Discontiguous memory is allowed, mostly for framebuffers. + * + * Must be called holding mmap_sem for write. + */ +int __kvm_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + int user_alloc) +{ + int r; + gfn_t base_gfn; + unsigned long npages; + unsigned long i; + struct kvm_memory_slot *memslot; + struct kvm_memory_slot old, new; + + r = -EINVAL; + /* General sanity checks */ + if (mem->memory_size & (PAGE_SIZE - 1)) + goto out; + if (mem->guest_phys_addr & (PAGE_SIZE - 1)) + goto out; + if (mem->slot >= KVM_MEMORY_SLOTS + KVM_PRIVATE_MEM_SLOTS) + goto out; + if (mem->guest_phys_addr + mem->memory_size < mem->guest_phys_addr) + goto out; + + memslot = &kvm->memslots[mem->slot]; + base_gfn = mem->guest_phys_addr >> PAGE_SHIFT; + npages = mem->memory_size >> PAGE_SHIFT; + + if (!npages) + mem->flags &= ~KVM_MEM_LOG_DIRTY_PAGES; + + new = old = *memslot; + + new.base_gfn = base_gfn; + new.npages = npages; + new.flags = mem->flags; + + /* Disallow changing a memory slot's size. */ + r = -EINVAL; + if (npages && old.npages && npages != old.npages) + goto out_free; + + /* Check for overlaps */ + r = -EEXIST; + for (i = 0; i < KVM_MEMORY_SLOTS; ++i) { + struct kvm_memory_slot *s = &kvm->memslots[i]; + + if (s == memslot) + continue; + if (!((base_gfn + npages <= s->base_gfn) || + (base_gfn >= s->base_gfn + s->npages))) + goto out_free; + } + + /* Free page dirty bitmap if unneeded */ + if (!(new.flags & KVM_MEM_LOG_DIRTY_PAGES)) + new.dirty_bitmap = NULL; + + r = -ENOMEM; + + /* Allocate if a slot is being created */ + if (npages && !new.rmap) { + new.rmap = vmalloc(npages * sizeof(struct page *)); + + if (!new.rmap) + goto out_free; + + memset(new.rmap, 0, npages * sizeof(*new.rmap)); + + new.user_alloc = user_alloc; + new.userspace_addr = mem->userspace_addr; + } + if (npages && !new.lpage_info) { + int largepages = npages / KVM_PAGES_PER_HPAGE; + if (npages % KVM_PAGES_PER_HPAGE) + largepages++; + new.lpage_info = vmalloc(largepages * sizeof(*new.lpage_info)); + + if (!new.lpage_info) + goto out_free; + + memset(new.lpage_info, 0, largepages * sizeof(*new.lpage_info)); + + if (base_gfn % KVM_PAGES_PER_HPAGE) + new.lpage_info[0].write_count = 1; + if ((base_gfn+npages) % KVM_PAGES_PER_HPAGE) + new.lpage_info[largepages-1].write_count = 1; + } + + /* Allocate page dirty bitmap if needed */ + if ((new.flags & KVM_MEM_LOG_DIRTY_PAGES) && !new.dirty_bitmap) { + unsigned dirty_bytes = ALIGN(npages, BITS_PER_LONG) / 8; + + new.dirty_bitmap = vmalloc(dirty_bytes); + if (!new.dirty_bitmap) + goto out_free; + memset(new.dirty_bitmap, 0, dirty_bytes); + } + + if (mem->slot >= kvm->nmemslots) + kvm->nmemslots = mem->slot + 1; + + *memslot = new; + + r = kvm_arch_set_memory_region(kvm, mem, old, user_alloc); + if (r) { + *memslot = old; + goto out_free; + } + + kvm_free_physmem_slot(&old, &new); + return 0; + +out_free: + kvm_free_physmem_slot(&new, &old); +out: + return r; + +} +EXPORT_SYMBOL_GPL(__kvm_set_memory_region); + +int kvm_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + int user_alloc) +{ + int r; + + down_write(&kvm->slots_lock); + r = __kvm_set_memory_region(kvm, mem, user_alloc); + up_write(&kvm->slots_lock); + return r; +} +EXPORT_SYMBOL_GPL(kvm_set_memory_region); + +int kvm_vm_ioctl_set_memory_region(struct kvm *kvm, + struct + kvm_userspace_memory_region *mem, + int user_alloc) +{ + if (mem->slot >= KVM_MEMORY_SLOTS) + return -EINVAL; + return kvm_set_memory_region(kvm, mem, user_alloc); +} + +int kvm_get_dirty_log(struct kvm *kvm, + struct kvm_dirty_log *log, int *is_dirty) +{ + struct kvm_memory_slot *memslot; + int r, i; + int n; + unsigned long any = 0; + + r = -EINVAL; + if (log->slot >= KVM_MEMORY_SLOTS) + goto out; + + memslot = &kvm->memslots[log->slot]; + r = -ENOENT; + if (!memslot->dirty_bitmap) + goto out; + + n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; + + for (i = 0; !any && i < n/sizeof(long); ++i) + any = memslot->dirty_bitmap[i]; + + r = -EFAULT; + if (copy_to_user(log->dirty_bitmap, memslot->dirty_bitmap, n)) + goto out; + + if (any) + *is_dirty = 1; + + r = 0; +out: + return r; +} + +int is_error_page(struct page *page) +{ + return page == bad_page; +} +EXPORT_SYMBOL_GPL(is_error_page); + +static inline unsigned long bad_hva(void) +{ + return PAGE_OFFSET; +} + +int kvm_is_error_hva(unsigned long addr) +{ + return addr == bad_hva(); +} +EXPORT_SYMBOL_GPL(kvm_is_error_hva); + +static struct kvm_memory_slot *__gfn_to_memslot(struct kvm *kvm, gfn_t gfn) +{ + int i; + + for (i = 0; i < kvm->nmemslots; ++i) { + struct kvm_memory_slot *memslot = &kvm->memslots[i]; + + if (gfn >= memslot->base_gfn + && gfn < memslot->base_gfn + memslot->npages) + return memslot; + } + return NULL; +} + +struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn) +{ + gfn = unalias_gfn(kvm, gfn); + return __gfn_to_memslot(kvm, gfn); +} + +int kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn) +{ + int i; + + gfn = unalias_gfn(kvm, gfn); + for (i = 0; i < KVM_MEMORY_SLOTS; ++i) { + struct kvm_memory_slot *memslot = &kvm->memslots[i]; + + if (gfn >= memslot->base_gfn + && gfn < memslot->base_gfn + memslot->npages) + return 1; + } + return 0; +} +EXPORT_SYMBOL_GPL(kvm_is_visible_gfn); + +unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn) +{ + struct kvm_memory_slot *slot; + + gfn = unalias_gfn(kvm, gfn); + slot = __gfn_to_memslot(kvm, gfn); + if (!slot) + return bad_hva(); + return (slot->userspace_addr + (gfn - slot->base_gfn) * PAGE_SIZE); +} + +/* + * Requires current->mm->mmap_sem to be held + */ +struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn) +{ + struct page *page[1]; + unsigned long addr; + int npages; + + might_sleep(); + + addr = gfn_to_hva(kvm, gfn); + if (kvm_is_error_hva(addr)) { + get_page(bad_page); + return bad_page; + } + + npages = get_user_pages(current, current->mm, addr, 1, 1, 1, page, + NULL); + + if (npages != 1) { + get_page(bad_page); + return bad_page; + } + + return page[0]; +} + +EXPORT_SYMBOL_GPL(gfn_to_page); + +void kvm_release_page_clean(struct page *page) +{ + put_page(page); +} +EXPORT_SYMBOL_GPL(kvm_release_page_clean); + +void kvm_release_page_dirty(struct page *page) +{ + if (!PageReserved(page)) + SetPageDirty(page); + put_page(page); +} +EXPORT_SYMBOL_GPL(kvm_release_page_dirty); + +static int next_segment(unsigned long len, int offset) +{ + if (len > PAGE_SIZE - offset) + return PAGE_SIZE - offset; + else + return len; +} + +int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset, + int len) +{ + int r; + unsigned long addr; + + addr = gfn_to_hva(kvm, gfn); + if (kvm_is_error_hva(addr)) + return -EFAULT; + r = copy_from_user(data, (void __user *)addr + offset, len); + if (r) + return -EFAULT; + return 0; +} +EXPORT_SYMBOL_GPL(kvm_read_guest_page); + +int kvm_read_guest(struct kvm *kvm, gpa_t gpa, void *data, unsigned long len) +{ + gfn_t gfn = gpa >> PAGE_SHIFT; + int seg; + int offset = offset_in_page(gpa); + int ret; + + while ((seg = next_segment(len, offset)) != 0) { + ret = kvm_read_guest_page(kvm, gfn, data, offset, seg); + if (ret < 0) + return ret; + offset = 0; + len -= seg; + data += seg; + ++gfn; + } + return 0; +} +EXPORT_SYMBOL_GPL(kvm_read_guest); + +int kvm_read_guest_atomic(struct kvm *kvm, gpa_t gpa, void *data, + unsigned long len) +{ + int r; + unsigned long addr; + gfn_t gfn = gpa >> PAGE_SHIFT; + int offset = offset_in_page(gpa); + + addr = gfn_to_hva(kvm, gfn); + if (kvm_is_error_hva(addr)) + return -EFAULT; + pagefault_disable(); + r = __copy_from_user_inatomic(data, (void __user *)addr + offset, len); + pagefault_enable(); + if (r) + return -EFAULT; + return 0; +} +EXPORT_SYMBOL(kvm_read_guest_atomic); + +int kvm_write_guest_page(struct kvm *kvm, gfn_t gfn, const void *data, + int offset, int len) +{ + int r; + unsigned long addr; + + addr = gfn_to_hva(kvm, gfn); + if (kvm_is_error_hva(addr)) + return -EFAULT; + r = copy_to_user((void __user *)addr + offset, data, len); + if (r) + return -EFAULT; + mark_page_dirty(kvm, gfn); + return 0; +} +EXPORT_SYMBOL_GPL(kvm_write_guest_page); + +int kvm_write_guest(struct kvm *kvm, gpa_t gpa, const void *data, + unsigned long len) +{ + gfn_t gfn = gpa >> PAGE_SHIFT; + int seg; + int offset = offset_in_page(gpa); + int ret; + + while ((seg = next_segment(len, offset)) != 0) { + ret = kvm_write_guest_page(kvm, gfn, data, offset, seg); + if (ret < 0) + return ret; + offset = 0; + len -= seg; + data += seg; + ++gfn; + } + return 0; +} + +int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len) +{ + return kvm_write_guest_page(kvm, gfn, empty_zero_page, offset, len); +} +EXPORT_SYMBOL_GPL(kvm_clear_guest_page); + +int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len) +{ + gfn_t gfn = gpa >> PAGE_SHIFT; + int seg; + int offset = offset_in_page(gpa); + int ret; + + while ((seg = next_segment(len, offset)) != 0) { + ret = kvm_clear_guest_page(kvm, gfn, offset, seg); + if (ret < 0) + return ret; + offset = 0; + len -= seg; + ++gfn; + } + return 0; +} +EXPORT_SYMBOL_GPL(kvm_clear_guest); + +void mark_page_dirty(struct kvm *kvm, gfn_t gfn) +{ + struct kvm_memory_slot *memslot; + + gfn = unalias_gfn(kvm, gfn); + memslot = __gfn_to_memslot(kvm, gfn); + if (memslot && memslot->dirty_bitmap) { + unsigned long rel_gfn = gfn - memslot->base_gfn; + + /* avoid RMW */ + if (!test_bit(rel_gfn, memslot->dirty_bitmap)) + set_bit(rel_gfn, memslot->dirty_bitmap); + } +} + +/* + * The vCPU has executed a HLT instruction with in-kernel mode enabled. + */ +void kvm_vcpu_block(struct kvm_vcpu *vcpu) +{ + DECLARE_WAITQUEUE(wait, current); + + add_wait_queue(&vcpu->wq, &wait); + + /* + * We will block until either an interrupt or a signal wakes us up + */ + while (!kvm_cpu_has_interrupt(vcpu) + && !signal_pending(current) + && !kvm_arch_vcpu_runnable(vcpu)) { + set_current_state(TASK_INTERRUPTIBLE); + vcpu_put(vcpu); + schedule(); + vcpu_load(vcpu); + } + + __set_current_state(TASK_RUNNING); + remove_wait_queue(&vcpu->wq, &wait); +} + +void kvm_resched(struct kvm_vcpu *vcpu) +{ + if (!need_resched()) + return; + cond_resched(); +} +EXPORT_SYMBOL_GPL(kvm_resched); + +static int kvm_vcpu_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +{ + struct kvm_vcpu *vcpu = vma->vm_file->private_data; + struct page *page; + + if (vmf->pgoff == 0) + page = virt_to_page(vcpu->run); +#ifdef CONFIG_X86 + else if (vmf->pgoff == KVM_PIO_PAGE_OFFSET) + page = virt_to_page(vcpu->arch.pio_data); +#endif + else + return VM_FAULT_SIGBUS; + get_page(page); + vmf->page = page; + return 0; +} + +static struct vm_operations_struct kvm_vcpu_vm_ops = { + .fault = kvm_vcpu_fault, +}; + +static int kvm_vcpu_mmap(struct file *file, struct vm_area_struct *vma) +{ + vma->vm_ops = &kvm_vcpu_vm_ops; + return 0; +} + +static int kvm_vcpu_release(struct inode *inode, struct file *filp) +{ + struct kvm_vcpu *vcpu = filp->private_data; + + fput(vcpu->kvm->filp); + return 0; +} + +static const struct file_operations kvm_vcpu_fops = { + .release = kvm_vcpu_release, + .unlocked_ioctl = kvm_vcpu_ioctl, + .compat_ioctl = kvm_vcpu_ioctl, + .mmap = kvm_vcpu_mmap, +}; + +/* + * Allocates an inode for the vcpu. + */ +static int create_vcpu_fd(struct kvm_vcpu *vcpu) +{ + int fd, r; + struct inode *inode; + struct file *file; + + r = anon_inode_getfd(&fd, &inode, &file, + "kvm-vcpu", &kvm_vcpu_fops, vcpu); + if (r) + return r; + atomic_inc(&vcpu->kvm->filp->f_count); + return fd; +} + +/* + * Creates some virtual cpus. Good luck creating more than one. + */ +static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, int n) +{ + int r; + struct kvm_vcpu *vcpu; + + if (!valid_vcpu(n)) + return -EINVAL; + + vcpu = kvm_arch_vcpu_create(kvm, n); + if (IS_ERR(vcpu)) + return PTR_ERR(vcpu); + + preempt_notifier_init(&vcpu->preempt_notifier, &kvm_preempt_ops); + + r = kvm_arch_vcpu_setup(vcpu); + if (r) + goto vcpu_destroy; + + mutex_lock(&kvm->lock); + if (kvm->vcpus[n]) { + r = -EEXIST; + mutex_unlock(&kvm->lock); + goto vcpu_destroy; + } + kvm->vcpus[n] = vcpu; + mutex_unlock(&kvm->lock); + + /* Now it's all set up, let userspace reach it */ + r = create_vcpu_fd(vcpu); + if (r < 0) + goto unlink; + return r; + +unlink: + mutex_lock(&kvm->lock); + kvm->vcpus[n] = NULL; + mutex_unlock(&kvm->lock); +vcpu_destroy: + kvm_arch_vcpu_destroy(vcpu); + return r; +} + +static int kvm_vcpu_ioctl_set_sigmask(struct kvm_vcpu *vcpu, sigset_t *sigset) +{ + if (sigset) { + sigdelsetmask(sigset, sigmask(SIGKILL)|sigmask(SIGSTOP)); + vcpu->sigset_active = 1; + vcpu->sigset = *sigset; + } else + vcpu->sigset_active = 0; + return 0; +} + +static long kvm_vcpu_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg) +{ + struct kvm_vcpu *vcpu = filp->private_data; + void __user *argp = (void __user *)arg; + int r; + + if (vcpu->kvm->mm != current->mm) + return -EIO; + switch (ioctl) { + case KVM_RUN: + r = -EINVAL; + if (arg) + goto out; + r = kvm_arch_vcpu_ioctl_run(vcpu, vcpu->run); + break; + case KVM_GET_REGS: { + struct kvm_regs kvm_regs; + + memset(&kvm_regs, 0, sizeof kvm_regs); + r = kvm_arch_vcpu_ioctl_get_regs(vcpu, &kvm_regs); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(argp, &kvm_regs, sizeof kvm_regs)) + goto out; + r = 0; + break; + } + case KVM_SET_REGS: { + struct kvm_regs kvm_regs; + + r = -EFAULT; + if (copy_from_user(&kvm_regs, argp, sizeof kvm_regs)) + goto out; + r = kvm_arch_vcpu_ioctl_set_regs(vcpu, &kvm_regs); + if (r) + goto out; + r = 0; + break; + } + case KVM_GET_SREGS: { + struct kvm_sregs kvm_sregs; + + memset(&kvm_sregs, 0, sizeof kvm_sregs); + r = kvm_arch_vcpu_ioctl_get_sregs(vcpu, &kvm_sregs); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(argp, &kvm_sregs, sizeof kvm_sregs)) + goto out; + r = 0; + break; + } + case KVM_SET_SREGS: { + struct kvm_sregs kvm_sregs; + + r = -EFAULT; + if (copy_from_user(&kvm_sregs, argp, sizeof kvm_sregs)) + goto out; + r = kvm_arch_vcpu_ioctl_set_sregs(vcpu, &kvm_sregs); + if (r) + goto out; + r = 0; + break; + } + case KVM_TRANSLATE: { + struct kvm_translation tr; + + r = -EFAULT; + if (copy_from_user(&tr, argp, sizeof tr)) + goto out; + r = kvm_arch_vcpu_ioctl_translate(vcpu, &tr); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(argp, &tr, sizeof tr)) + goto out; + r = 0; + break; + } + case KVM_DEBUG_GUEST: { + struct kvm_debug_guest dbg; + + r = -EFAULT; + if (copy_from_user(&dbg, argp, sizeof dbg)) + goto out; + r = kvm_arch_vcpu_ioctl_debug_guest(vcpu, &dbg); + if (r) + goto out; + r = 0; + break; + } + case KVM_SET_SIGNAL_MASK: { + struct kvm_signal_mask __user *sigmask_arg = argp; + struct kvm_signal_mask kvm_sigmask; + sigset_t sigset, *p; + + p = NULL; + if (argp) { + r = -EFAULT; + if (copy_from_user(&kvm_sigmask, argp, + sizeof kvm_sigmask)) + goto out; + r = -EINVAL; + if (kvm_sigmask.len != sizeof sigset) + goto out; + r = -EFAULT; + if (copy_from_user(&sigset, sigmask_arg->sigset, + sizeof sigset)) + goto out; + p = &sigset; + } + r = kvm_vcpu_ioctl_set_sigmask(vcpu, &sigset); + break; + } + case KVM_GET_FPU: { + struct kvm_fpu fpu; + + memset(&fpu, 0, sizeof fpu); + r = kvm_arch_vcpu_ioctl_get_fpu(vcpu, &fpu); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(argp, &fpu, sizeof fpu)) + goto out; + r = 0; + break; + } + case KVM_SET_FPU: { + struct kvm_fpu fpu; + + r = -EFAULT; + if (copy_from_user(&fpu, argp, sizeof fpu)) + goto out; + r = kvm_arch_vcpu_ioctl_set_fpu(vcpu, &fpu); + if (r) + goto out; + r = 0; + break; + } + default: + r = kvm_arch_vcpu_ioctl(filp, ioctl, arg); + } +out: + return r; +} + +static long kvm_vm_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg) +{ + struct kvm *kvm = filp->private_data; + void __user *argp = (void __user *)arg; + int r; + + if (kvm->mm != current->mm) + return -EIO; + switch (ioctl) { + case KVM_CREATE_VCPU: + r = kvm_vm_ioctl_create_vcpu(kvm, arg); + if (r < 0) + goto out; + break; + case KVM_SET_USER_MEMORY_REGION: { + struct kvm_userspace_memory_region kvm_userspace_mem; + + r = -EFAULT; + if (copy_from_user(&kvm_userspace_mem, argp, + sizeof kvm_userspace_mem)) + goto out; + + r = kvm_vm_ioctl_set_memory_region(kvm, &kvm_userspace_mem, 1); + if (r) + goto out; + break; + } + case KVM_GET_DIRTY_LOG: { + struct kvm_dirty_log log; + + r = -EFAULT; + if (copy_from_user(&log, argp, sizeof log)) + goto out; + r = kvm_vm_ioctl_get_dirty_log(kvm, &log); + if (r) + goto out; + break; + } + default: + r = kvm_arch_vm_ioctl(filp, ioctl, arg); + } +out: + return r; +} + +static int kvm_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +{ + struct kvm *kvm = vma->vm_file->private_data; + struct page *page; + + if (!kvm_is_visible_gfn(kvm, vmf->pgoff)) + return VM_FAULT_SIGBUS; + page = gfn_to_page(kvm, vmf->pgoff); + if (is_error_page(page)) { + kvm_release_page_clean(page); + return VM_FAULT_SIGBUS; + } + vmf->page = page; + return 0; +} + +static struct vm_operations_struct kvm_vm_vm_ops = { + .fault = kvm_vm_fault, +}; + +static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma) +{ + vma->vm_ops = &kvm_vm_vm_ops; + return 0; +} + +static const struct file_operations kvm_vm_fops = { + .release = kvm_vm_release, + .unlocked_ioctl = kvm_vm_ioctl, + .compat_ioctl = kvm_vm_ioctl, + .mmap = kvm_vm_mmap, +}; + +static int kvm_dev_ioctl_create_vm(void) +{ + int fd, r; + struct inode *inode; + struct file *file; + struct kvm *kvm; + + kvm = kvm_create_vm(); + if (IS_ERR(kvm)) + return PTR_ERR(kvm); + r = anon_inode_getfd(&fd, &inode, &file, "kvm-vm", &kvm_vm_fops, kvm); + if (r) { + kvm_destroy_vm(kvm); + return r; + } + + kvm->filp = file; + + return fd; +} + +static long kvm_dev_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg) +{ + void __user *argp = (void __user *)arg; + long r = -EINVAL; + + switch (ioctl) { + case KVM_GET_API_VERSION: + r = -EINVAL; + if (arg) + goto out; + r = KVM_API_VERSION; + break; + case KVM_CREATE_VM: + r = -EINVAL; + if (arg) + goto out; + r = kvm_dev_ioctl_create_vm(); + break; + case KVM_CHECK_EXTENSION: + r = kvm_dev_ioctl_check_extension((long)argp); + break; + case KVM_GET_VCPU_MMAP_SIZE: + r = -EINVAL; + if (arg) + goto out; + r = PAGE_SIZE; /* struct kvm_run */ +#ifdef CONFIG_X86 + r += PAGE_SIZE; /* pio data page */ +#endif + break; + default: + return kvm_arch_dev_ioctl(filp, ioctl, arg); + } +out: + return r; +} + +static struct file_operations kvm_chardev_ops = { + .unlocked_ioctl = kvm_dev_ioctl, + .compat_ioctl = kvm_dev_ioctl, +}; + +static struct miscdevice kvm_dev = { + KVM_MINOR, + "kvm", + &kvm_chardev_ops, +}; + +static void hardware_enable(void *junk) +{ + int cpu = raw_smp_processor_id(); + + if (cpu_isset(cpu, cpus_hardware_enabled)) + return; + cpu_set(cpu, cpus_hardware_enabled); + kvm_arch_hardware_enable(NULL); +} + +static void hardware_disable(void *junk) +{ + int cpu = raw_smp_processor_id(); + + if (!cpu_isset(cpu, cpus_hardware_enabled)) + return; + cpu_clear(cpu, cpus_hardware_enabled); + decache_vcpus_on_cpu(cpu); + kvm_arch_hardware_disable(NULL); +} + +static int kvm_cpu_hotplug(struct notifier_block *notifier, unsigned long val, + void *v) +{ + int cpu = (long)v; + + val &= ~CPU_TASKS_FROZEN; + switch (val) { + case CPU_DYING: + printk(KERN_INFO "kvm: disabling virtualization on CPU%d\n", + cpu); + hardware_disable(NULL); + break; + case CPU_UP_CANCELED: + printk(KERN_INFO "kvm: disabling virtualization on CPU%d\n", + cpu); + smp_call_function_single(cpu, hardware_disable, NULL, 0, 1); + break; + case CPU_ONLINE: + printk(KERN_INFO "kvm: enabling virtualization on CPU%d\n", + cpu); + smp_call_function_single(cpu, hardware_enable, NULL, 0, 1); + break; + } + return NOTIFY_OK; +} + +static int kvm_reboot(struct notifier_block *notifier, unsigned long val, + void *v) +{ + if (val == SYS_RESTART) { + /* + * Some (well, at least mine) BIOSes hang on reboot if + * in vmx root mode. + */ + printk(KERN_INFO "kvm: exiting hardware virtualization\n"); + on_each_cpu(hardware_disable, NULL, 0, 1); + } + return NOTIFY_OK; +} + +static struct notifier_block kvm_reboot_notifier = { + .notifier_call = kvm_reboot, + .priority = 0, +}; + +void kvm_io_bus_init(struct kvm_io_bus *bus) +{ + memset(bus, 0, sizeof(*bus)); +} + +void kvm_io_bus_destroy(struct kvm_io_bus *bus) +{ + int i; + + for (i = 0; i < bus->dev_count; i++) { + struct kvm_io_device *pos = bus->devs[i]; + + kvm_iodevice_destructor(pos); + } +} + +struct kvm_io_device *kvm_io_bus_find_dev(struct kvm_io_bus *bus, gpa_t addr) +{ + int i; + + for (i = 0; i < bus->dev_count; i++) { + struct kvm_io_device *pos = bus->devs[i]; + + if (pos->in_range(pos, addr)) + return pos; + } + + return NULL; +} + +void kvm_io_bus_register_dev(struct kvm_io_bus *bus, struct kvm_io_device *dev) +{ + BUG_ON(bus->dev_count > (NR_IOBUS_DEVS-1)); + + bus->devs[bus->dev_count++] = dev; +} + +static struct notifier_block kvm_cpu_notifier = { + .notifier_call = kvm_cpu_hotplug, + .priority = 20, /* must be > scheduler priority */ +}; + +static u64 vm_stat_get(void *_offset) +{ + unsigned offset = (long)_offset; + u64 total = 0; + struct kvm *kvm; + + spin_lock(&kvm_lock); + list_for_each_entry(kvm, &vm_list, vm_list) + total += *(u32 *)((void *)kvm + offset); + spin_unlock(&kvm_lock); + return total; +} + +DEFINE_SIMPLE_ATTRIBUTE(vm_stat_fops, vm_stat_get, NULL, "%llu\n"); + +static u64 vcpu_stat_get(void *_offset) +{ + unsigned offset = (long)_offset; + u64 total = 0; + struct kvm *kvm; + struct kvm_vcpu *vcpu; + int i; + + spin_lock(&kvm_lock); + list_for_each_entry(kvm, &vm_list, vm_list) + for (i = 0; i < KVM_MAX_VCPUS; ++i) { + vcpu = kvm->vcpus[i]; + if (vcpu) + total += *(u32 *)((void *)vcpu + offset); + } + spin_unlock(&kvm_lock); + return total; +} + +DEFINE_SIMPLE_ATTRIBUTE(vcpu_stat_fops, vcpu_stat_get, NULL, "%llu\n"); + +static struct file_operations *stat_fops[] = { + [KVM_STAT_VCPU] = &vcpu_stat_fops, + [KVM_STAT_VM] = &vm_stat_fops, +}; + +static void kvm_init_debug(void) +{ + struct kvm_stats_debugfs_item *p; + + debugfs_dir = debugfs_create_dir("kvm", NULL); + for (p = debugfs_entries; p->name; ++p) + p->dentry = debugfs_create_file(p->name, 0444, debugfs_dir, + (void *)(long)p->offset, + stat_fops[p->kind]); +} + +static void kvm_exit_debug(void) +{ + struct kvm_stats_debugfs_item *p; + + for (p = debugfs_entries; p->name; ++p) + debugfs_remove(p->dentry); + debugfs_remove(debugfs_dir); +} + +static int kvm_suspend(struct sys_device *dev, pm_message_t state) +{ + hardware_disable(NULL); + return 0; +} + +static int kvm_resume(struct sys_device *dev) +{ + hardware_enable(NULL); + return 0; +} + +static struct sysdev_class kvm_sysdev_class = { + set_kset_name("kvm"), + .suspend = kvm_suspend, + .resume = kvm_resume, +}; + +static struct sys_device kvm_sysdev = { + .id = 0, + .cls = &kvm_sysdev_class, +}; + +struct page *bad_page; + +static inline +struct kvm_vcpu *preempt_notifier_to_vcpu(struct preempt_notifier *pn) +{ + return container_of(pn, struct kvm_vcpu, preempt_notifier); +} + +static void kvm_sched_in(struct preempt_notifier *pn, int cpu) +{ + struct kvm_vcpu *vcpu = preempt_notifier_to_vcpu(pn); + + kvm_arch_vcpu_load(vcpu, cpu); +} + +static void kvm_sched_out(struct preempt_notifier *pn, + struct task_struct *next) +{ + struct kvm_vcpu *vcpu = preempt_notifier_to_vcpu(pn); + + kvm_arch_vcpu_put(vcpu); +} + +int kvm_init(void *opaque, unsigned int vcpu_size, + struct module *module) +{ + int r; + int cpu; + + kvm_init_debug(); + + r = kvm_arch_init(opaque); + if (r) + goto out_fail; + + bad_page = alloc_page(GFP_KERNEL | __GFP_ZERO); + + if (bad_page == NULL) { + r = -ENOMEM; + goto out; + } + + r = kvm_arch_hardware_setup(); + if (r < 0) + goto out_free_0; + + for_each_online_cpu(cpu) { + smp_call_function_single(cpu, + kvm_arch_check_processor_compat, + &r, 0, 1); + if (r < 0) + goto out_free_1; + } + + on_each_cpu(hardware_enable, NULL, 0, 1); + r = register_cpu_notifier(&kvm_cpu_notifier); + if (r) + goto out_free_2; + register_reboot_notifier(&kvm_reboot_notifier); + + r = sysdev_class_register(&kvm_sysdev_class); + if (r) + goto out_free_3; + + r = sysdev_register(&kvm_sysdev); + if (r) + goto out_free_4; + + /* A kmem cache lets us meet the alignment requirements of fx_save. */ + kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, + __alignof__(struct kvm_vcpu), + 0, NULL); + if (!kvm_vcpu_cache) { + r = -ENOMEM; + goto out_free_5; + } + + kvm_chardev_ops.owner = module; + + r = misc_register(&kvm_dev); + if (r) { + printk(KERN_ERR "kvm: misc device register failed\n"); + goto out_free; + } + + kvm_preempt_ops.sched_in = kvm_sched_in; + kvm_preempt_ops.sched_out = kvm_sched_out; + + return 0; + +out_free: + kmem_cache_destroy(kvm_vcpu_cache); +out_free_5: + sysdev_unregister(&kvm_sysdev); +out_free_4: + sysdev_class_unregister(&kvm_sysdev_class); +out_free_3: + unregister_reboot_notifier(&kvm_reboot_notifier); + unregister_cpu_notifier(&kvm_cpu_notifier); +out_free_2: + on_each_cpu(hardware_disable, NULL, 0, 1); +out_free_1: + kvm_arch_hardware_unsetup(); +out_free_0: + __free_page(bad_page); +out: + kvm_arch_exit(); + kvm_exit_debug(); +out_fail: + return r; +} +EXPORT_SYMBOL_GPL(kvm_init); + +void kvm_exit(void) +{ + misc_deregister(&kvm_dev); + kmem_cache_destroy(kvm_vcpu_cache); + sysdev_unregister(&kvm_sysdev); + sysdev_class_unregister(&kvm_sysdev_class); + unregister_reboot_notifier(&kvm_reboot_notifier); + unregister_cpu_notifier(&kvm_cpu_notifier); + on_each_cpu(hardware_disable, NULL, 0, 1); + kvm_arch_hardware_unsetup(); + kvm_arch_exit(); + kvm_exit_debug(); + __free_page(bad_page); +} +EXPORT_SYMBOL_GPL(kvm_exit); --- linux-2.6.24.orig/virt/kvm/iodev.h +++ linux-2.6.24/virt/kvm/iodev.h @@ -0,0 +1,63 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __KVM_IODEV_H__ +#define __KVM_IODEV_H__ + +#include + +struct kvm_io_device { + void (*read)(struct kvm_io_device *this, + gpa_t addr, + int len, + void *val); + void (*write)(struct kvm_io_device *this, + gpa_t addr, + int len, + const void *val); + int (*in_range)(struct kvm_io_device *this, gpa_t addr); + void (*destructor)(struct kvm_io_device *this); + + void *private; +}; + +static inline void kvm_iodevice_read(struct kvm_io_device *dev, + gpa_t addr, + int len, + void *val) +{ + dev->read(dev, addr, len, val); +} + +static inline void kvm_iodevice_write(struct kvm_io_device *dev, + gpa_t addr, + int len, + const void *val) +{ + dev->write(dev, addr, len, val); +} + +static inline int kvm_iodevice_inrange(struct kvm_io_device *dev, gpa_t addr) +{ + return dev->in_range(dev, addr); +} + +static inline void kvm_iodevice_destructor(struct kvm_io_device *dev) +{ + if (dev->destructor) + dev->destructor(dev); +} + +#endif /* __KVM_IODEV_H__ */ --- linux-2.6.24.orig/virt/kvm/ioapic.c +++ linux-2.6.24/virt/kvm/ioapic.c @@ -0,0 +1,411 @@ +/* + * Copyright (C) 2001 MandrakeSoft S.A. + * + * MandrakeSoft S.A. + * 43, rue d'Aboukir + * 75002 Paris - France + * http://www.linux-mandrake.com/ + * http://www.mandrakesoft.com/ + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * Yunhong Jiang + * Yaozu (Eddie) Dong + * Based on Xen 3.1 code. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "ioapic.h" +#include "lapic.h" + +#if 0 +#define ioapic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) +#else +#define ioapic_debug(fmt, arg...) +#endif +static void ioapic_deliver(struct kvm_ioapic *vioapic, int irq); + +static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic, + unsigned long addr, + unsigned long length) +{ + unsigned long result = 0; + + switch (ioapic->ioregsel) { + case IOAPIC_REG_VERSION: + result = ((((IOAPIC_NUM_PINS - 1) & 0xff) << 16) + | (IOAPIC_VERSION_ID & 0xff)); + break; + + case IOAPIC_REG_APIC_ID: + case IOAPIC_REG_ARB_ID: + result = ((ioapic->id & 0xf) << 24); + break; + + default: + { + u32 redir_index = (ioapic->ioregsel - 0x10) >> 1; + u64 redir_content; + + ASSERT(redir_index < IOAPIC_NUM_PINS); + + redir_content = ioapic->redirtbl[redir_index].bits; + result = (ioapic->ioregsel & 0x1) ? + (redir_content >> 32) & 0xffffffff : + redir_content & 0xffffffff; + break; + } + } + + return result; +} + +static void ioapic_service(struct kvm_ioapic *ioapic, unsigned int idx) +{ + union ioapic_redir_entry *pent; + + pent = &ioapic->redirtbl[idx]; + + if (!pent->fields.mask) { + ioapic_deliver(ioapic, idx); + if (pent->fields.trig_mode == IOAPIC_LEVEL_TRIG) + pent->fields.remote_irr = 1; + } + if (!pent->fields.trig_mode) + ioapic->irr &= ~(1 << idx); +} + +static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val) +{ + unsigned index; + + switch (ioapic->ioregsel) { + case IOAPIC_REG_VERSION: + /* Writes are ignored. */ + break; + + case IOAPIC_REG_APIC_ID: + ioapic->id = (val >> 24) & 0xf; + break; + + case IOAPIC_REG_ARB_ID: + break; + + default: + index = (ioapic->ioregsel - 0x10) >> 1; + + ioapic_debug("change redir index %x val %x\n", index, val); + if (index >= IOAPIC_NUM_PINS) + return; + if (ioapic->ioregsel & 1) { + ioapic->redirtbl[index].bits &= 0xffffffff; + ioapic->redirtbl[index].bits |= (u64) val << 32; + } else { + ioapic->redirtbl[index].bits &= ~0xffffffffULL; + ioapic->redirtbl[index].bits |= (u32) val; + ioapic->redirtbl[index].fields.remote_irr = 0; + } + if (ioapic->irr & (1 << index)) + ioapic_service(ioapic, index); + break; + } +} + +static void ioapic_inj_irq(struct kvm_ioapic *ioapic, + struct kvm_vcpu *vcpu, + u8 vector, u8 trig_mode, u8 delivery_mode) +{ + ioapic_debug("irq %d trig %d deliv %d\n", vector, trig_mode, + delivery_mode); + + ASSERT((delivery_mode == IOAPIC_FIXED) || + (delivery_mode == IOAPIC_LOWEST_PRIORITY)); + + kvm_apic_set_irq(vcpu, vector, trig_mode); +} + +static u32 ioapic_get_delivery_bitmask(struct kvm_ioapic *ioapic, u8 dest, + u8 dest_mode) +{ + u32 mask = 0; + int i; + struct kvm *kvm = ioapic->kvm; + struct kvm_vcpu *vcpu; + + ioapic_debug("dest %d dest_mode %d\n", dest, dest_mode); + + if (dest_mode == 0) { /* Physical mode. */ + if (dest == 0xFF) { /* Broadcast. */ + for (i = 0; i < KVM_MAX_VCPUS; ++i) + if (kvm->vcpus[i] && kvm->vcpus[i]->arch.apic) + mask |= 1 << i; + return mask; + } + for (i = 0; i < KVM_MAX_VCPUS; ++i) { + vcpu = kvm->vcpus[i]; + if (!vcpu) + continue; + if (kvm_apic_match_physical_addr(vcpu->arch.apic, dest)) { + if (vcpu->arch.apic) + mask = 1 << i; + break; + } + } + } else if (dest != 0) /* Logical mode, MDA non-zero. */ + for (i = 0; i < KVM_MAX_VCPUS; ++i) { + vcpu = kvm->vcpus[i]; + if (!vcpu) + continue; + if (vcpu->arch.apic && + kvm_apic_match_logical_addr(vcpu->arch.apic, dest)) + mask |= 1 << vcpu->vcpu_id; + } + ioapic_debug("mask %x\n", mask); + return mask; +} + +static void ioapic_deliver(struct kvm_ioapic *ioapic, int irq) +{ + u8 dest = ioapic->redirtbl[irq].fields.dest_id; + u8 dest_mode = ioapic->redirtbl[irq].fields.dest_mode; + u8 delivery_mode = ioapic->redirtbl[irq].fields.delivery_mode; + u8 vector = ioapic->redirtbl[irq].fields.vector; + u8 trig_mode = ioapic->redirtbl[irq].fields.trig_mode; + u32 deliver_bitmask; + struct kvm_vcpu *vcpu; + int vcpu_id; + + ioapic_debug("dest=%x dest_mode=%x delivery_mode=%x " + "vector=%x trig_mode=%x\n", + dest, dest_mode, delivery_mode, vector, trig_mode); + + deliver_bitmask = ioapic_get_delivery_bitmask(ioapic, dest, dest_mode); + if (!deliver_bitmask) { + ioapic_debug("no target on destination\n"); + return; + } + + switch (delivery_mode) { + case IOAPIC_LOWEST_PRIORITY: + vcpu = kvm_get_lowest_prio_vcpu(ioapic->kvm, vector, + deliver_bitmask); +#ifdef CONFIG_X86 + if (irq == 0) + vcpu = ioapic->kvm->vcpus[0]; +#endif + if (vcpu != NULL) + ioapic_inj_irq(ioapic, vcpu, vector, + trig_mode, delivery_mode); + else + ioapic_debug("null lowest prio vcpu: " + "mask=%x vector=%x delivery_mode=%x\n", + deliver_bitmask, vector, IOAPIC_LOWEST_PRIORITY); + break; + case IOAPIC_FIXED: +#ifdef CONFIG_X86 + if (irq == 0) + deliver_bitmask = 1; +#endif + for (vcpu_id = 0; deliver_bitmask != 0; vcpu_id++) { + if (!(deliver_bitmask & (1 << vcpu_id))) + continue; + deliver_bitmask &= ~(1 << vcpu_id); + vcpu = ioapic->kvm->vcpus[vcpu_id]; + if (vcpu) { + ioapic_inj_irq(ioapic, vcpu, vector, + trig_mode, delivery_mode); + } + } + break; + + /* TODO: NMI */ + default: + printk(KERN_WARNING "Unsupported delivery mode %d\n", + delivery_mode); + break; + } +} + +void kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level) +{ + u32 old_irr = ioapic->irr; + u32 mask = 1 << irq; + union ioapic_redir_entry entry; + + if (irq >= 0 && irq < IOAPIC_NUM_PINS) { + entry = ioapic->redirtbl[irq]; + level ^= entry.fields.polarity; + if (!level) + ioapic->irr &= ~mask; + else { + ioapic->irr |= mask; + if ((!entry.fields.trig_mode && old_irr != ioapic->irr) + || !entry.fields.remote_irr) + ioapic_service(ioapic, irq); + } + } +} + +static int get_eoi_gsi(struct kvm_ioapic *ioapic, int vector) +{ + int i; + + for (i = 0; i < IOAPIC_NUM_PINS; i++) + if (ioapic->redirtbl[i].fields.vector == vector) + return i; + return -1; +} + +void kvm_ioapic_update_eoi(struct kvm *kvm, int vector) +{ + struct kvm_ioapic *ioapic = kvm->arch.vioapic; + union ioapic_redir_entry *ent; + int gsi; + + gsi = get_eoi_gsi(ioapic, vector); + if (gsi == -1) { + printk(KERN_WARNING "Can't find redir item for %d EOI\n", + vector); + return; + } + + ent = &ioapic->redirtbl[gsi]; + ASSERT(ent->fields.trig_mode == IOAPIC_LEVEL_TRIG); + + ent->fields.remote_irr = 0; + if (!ent->fields.mask && (ioapic->irr & (1 << gsi))) + ioapic_deliver(ioapic, gsi); +} + +static int ioapic_in_range(struct kvm_io_device *this, gpa_t addr) +{ + struct kvm_ioapic *ioapic = (struct kvm_ioapic *)this->private; + + return ((addr >= ioapic->base_address && + (addr < ioapic->base_address + IOAPIC_MEM_LENGTH))); +} + +static void ioapic_mmio_read(struct kvm_io_device *this, gpa_t addr, int len, + void *val) +{ + struct kvm_ioapic *ioapic = (struct kvm_ioapic *)this->private; + u32 result; + + ioapic_debug("addr %lx\n", (unsigned long)addr); + ASSERT(!(addr & 0xf)); /* check alignment */ + + addr &= 0xff; + switch (addr) { + case IOAPIC_REG_SELECT: + result = ioapic->ioregsel; + break; + + case IOAPIC_REG_WINDOW: + result = ioapic_read_indirect(ioapic, addr, len); + break; + + default: + result = 0; + break; + } + switch (len) { + case 8: + *(u64 *) val = result; + break; + case 1: + case 2: + case 4: + memcpy(val, (char *)&result, len); + break; + default: + printk(KERN_WARNING "ioapic: wrong length %d\n", len); + } +} + +static void ioapic_mmio_write(struct kvm_io_device *this, gpa_t addr, int len, + const void *val) +{ + struct kvm_ioapic *ioapic = (struct kvm_ioapic *)this->private; + u32 data; + + ioapic_debug("ioapic_mmio_write addr=%p len=%d val=%p\n", + (void*)addr, len, val); + ASSERT(!(addr & 0xf)); /* check alignment */ + if (len == 4 || len == 8) + data = *(u32 *) val; + else { + printk(KERN_WARNING "ioapic: Unsupported size %d\n", len); + return; + } + + addr &= 0xff; + switch (addr) { + case IOAPIC_REG_SELECT: + ioapic->ioregsel = data; + break; + + case IOAPIC_REG_WINDOW: + ioapic_write_indirect(ioapic, data); + break; +#ifdef CONFIG_IA64 + case IOAPIC_REG_EOI: + kvm_ioapic_update_eoi(ioapic->kvm, data); + break; +#endif + + default: + break; + } +} + +void kvm_ioapic_reset(struct kvm_ioapic *ioapic) +{ + int i; + + for (i = 0; i < IOAPIC_NUM_PINS; i++) + ioapic->redirtbl[i].fields.mask = 1; + ioapic->base_address = IOAPIC_DEFAULT_BASE_ADDRESS; + ioapic->ioregsel = 0; + ioapic->irr = 0; + ioapic->id = 0; +} + +int kvm_ioapic_init(struct kvm *kvm) +{ + struct kvm_ioapic *ioapic; + + ioapic = kzalloc(sizeof(struct kvm_ioapic), GFP_KERNEL); + if (!ioapic) + return -ENOMEM; + kvm->arch.vioapic = ioapic; + kvm_ioapic_reset(ioapic); + ioapic->dev.read = ioapic_mmio_read; + ioapic->dev.write = ioapic_mmio_write; + ioapic->dev.in_range = ioapic_in_range; + ioapic->dev.private = ioapic; + ioapic->kvm = kvm; + kvm_io_bus_register_dev(&kvm->mmio_bus, &ioapic->dev); + return 0; +} --- linux-2.6.24.orig/virt/kvm/ioapic.h +++ linux-2.6.24/virt/kvm/ioapic.h @@ -0,0 +1,95 @@ +#ifndef __KVM_IO_APIC_H +#define __KVM_IO_APIC_H + +#include + +#include "iodev.h" + +struct kvm; +struct kvm_vcpu; + +#define IOAPIC_NUM_PINS KVM_IOAPIC_NUM_PINS +#define IOAPIC_VERSION_ID 0x11 /* IOAPIC version */ +#define IOAPIC_EDGE_TRIG 0 +#define IOAPIC_LEVEL_TRIG 1 + +#define IOAPIC_DEFAULT_BASE_ADDRESS 0xfec00000 +#define IOAPIC_MEM_LENGTH 0x100 + +/* Direct registers. */ +#define IOAPIC_REG_SELECT 0x00 +#define IOAPIC_REG_WINDOW 0x10 +#define IOAPIC_REG_EOI 0x40 /* IA64 IOSAPIC only */ + +/* Indirect registers. */ +#define IOAPIC_REG_APIC_ID 0x00 /* x86 IOAPIC only */ +#define IOAPIC_REG_VERSION 0x01 +#define IOAPIC_REG_ARB_ID 0x02 /* x86 IOAPIC only */ + +/*ioapic delivery mode*/ +#define IOAPIC_FIXED 0x0 +#define IOAPIC_LOWEST_PRIORITY 0x1 +#define IOAPIC_PMI 0x2 +#define IOAPIC_NMI 0x4 +#define IOAPIC_INIT 0x5 +#define IOAPIC_EXTINT 0x7 + +struct kvm_ioapic { + u64 base_address; + u32 ioregsel; + u32 id; + u32 irr; + u32 pad; + union ioapic_redir_entry { + u64 bits; + struct { + u8 vector; + u8 delivery_mode:3; + u8 dest_mode:1; + u8 delivery_status:1; + u8 polarity:1; + u8 remote_irr:1; + u8 trig_mode:1; + u8 mask:1; + u8 reserve:7; + u8 reserved[4]; + u8 dest_id; + } fields; + } redirtbl[IOAPIC_NUM_PINS]; + struct kvm_io_device dev; + struct kvm *kvm; +}; + +#ifdef DEBUG +#define ASSERT(x) \ +do { \ + if (!(x)) { \ + printk(KERN_EMERG "assertion failed %s: %d: %s\n", \ + __FILE__, __LINE__, #x); \ + BUG(); \ + } \ +} while (0) +#else +#define ASSERT(x) do { } while (0) +#endif + +static inline struct kvm_ioapic *ioapic_irqchip(struct kvm *kvm) +{ + return kvm->arch.vioapic; +} + +#ifdef CONFIG_IA64 +static inline int irqchip_in_kernel(struct kvm *kvm) +{ + return 1; +} +#endif + +struct kvm_vcpu *kvm_get_lowest_prio_vcpu(struct kvm *kvm, u8 vector, + unsigned long bitmap); +void kvm_ioapic_update_eoi(struct kvm *kvm, int vector); +int kvm_ioapic_init(struct kvm *kvm); +void kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level); +void kvm_ioapic_reset(struct kvm_ioapic *ioapic); + +#endif --- linux-2.6.24.orig/crypto/xcbc.c +++ linux-2.6.24/crypto/xcbc.c @@ -116,13 +116,16 @@ struct crypto_xcbc_ctx *ctx = crypto_hash_ctx_aligned(parent); struct crypto_cipher *tfm = ctx->child; int bs = crypto_hash_blocksize(parent); - unsigned int i = 0; - do { + for (;;) { + struct page *pg = sg_page(sg); + unsigned int offset = sg->offset; + unsigned int slen = sg->length; - struct page *pg = sg_page(&sg[i]); - unsigned int offset = sg[i].offset; - unsigned int slen = sg[i].length; + if (unlikely(slen > nbytes)) + slen = nbytes; + + nbytes -= slen; while (slen > 0) { unsigned int len = min(slen, ((unsigned int)(PAGE_SIZE)) - offset); @@ -177,9 +180,11 @@ offset = 0; pg++; } - nbytes-=sg[i].length; - i++; - } while (nbytes>0); + + if (!nbytes) + break; + sg = sg_next(sg); + } return 0; } --- linux-2.6.24.orig/crypto/xts.c +++ linux-2.6.24/crypto/xts.c @@ -77,16 +77,16 @@ } struct sinfo { - be128 t; + be128 *t; struct crypto_tfm *tfm; void (*fn)(struct crypto_tfm *, u8 *, const u8 *); }; static inline void xts_round(struct sinfo *s, void *dst, const void *src) { - be128_xor(dst, &s->t, src); /* PP <- T xor P */ + be128_xor(dst, s->t, src); /* PP <- T xor P */ s->fn(s->tfm, dst, dst); /* CC <- E(Key1,PP) */ - be128_xor(dst, dst, &s->t); /* C <- T xor CC */ + be128_xor(dst, dst, s->t); /* C <- T xor CC */ } static int crypt(struct blkcipher_desc *d, @@ -101,7 +101,6 @@ .tfm = crypto_cipher_tfm(ctx->child), .fn = fn }; - be128 *iv; u8 *wsrc; u8 *wdst; @@ -109,20 +108,20 @@ if (!w->nbytes) return err; + s.t = (be128 *)w->iv; avail = w->nbytes; wsrc = w->src.virt.addr; wdst = w->dst.virt.addr; /* calculate first value of T */ - iv = (be128 *)w->iv; - tw(crypto_cipher_tfm(ctx->tweak), (void *)&s.t, w->iv); + tw(crypto_cipher_tfm(ctx->tweak), w->iv, w->iv); goto first; for (;;) { do { - gf128mul_x_ble(&s.t, &s.t); + gf128mul_x_ble(s.t, s.t); first: xts_round(&s, wdst, wsrc); --- linux-2.6.24.orig/crypto/async_tx/async_xor.c +++ linux-2.6.24/crypto/async_tx/async_xor.c @@ -264,7 +264,7 @@ BUG_ON(src_cnt <= 1); - if (tx) { + if (tx && src_cnt <= device->max_xor) { dma_addr_t dma_addr; enum dma_data_direction dir; --- linux-2.6.24.orig/Documentation/lguest/lguest.txt +++ linux-2.6.24/Documentation/lguest/lguest.txt @@ -1,6 +1,7 @@ -Rusty's Remarkably Unreliable Guide to Lguest - - or, A Young Coder's Illustrated Hypervisor -http://lguest.ozlabs.org + __ + (___()'`; Rusty's Remarkably Unreliable Guide to Lguest + /, /` - or, A Young Coder's Illustrated Hypervisor + \\"--\\ http://lguest.ozlabs.org Lguest is designed to be a minimal hypervisor for the Linux kernel, for Linux developers and users to experiment with virtualization with the @@ -41,12 +42,16 @@ CONFIG_PHYSICAL_ALIGN=0x100000) "Device Drivers": + "Block devices" + "Virtio block driver (EXPERIMENTAL)" = M/Y "Network device support" "Universal TUN/TAP device driver support" = M/Y - (CONFIG_TUN=m) - "Virtualization" - "Linux hypervisor example code" = M/Y - (CONFIG_LGUEST=m) + "Virtio network driver (EXPERIMENTAL)" = M/Y + (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m) + + "Virtualization" + "Linux hypervisor example code" = M/Y + (CONFIG_LGUEST=m) - A tool called "lguest" is available in this directory: type "make" to build it. If you didn't build your kernel in-tree, use "make --- linux-2.6.24.orig/Documentation/lguest/lguest.c +++ linux-2.6.24/Documentation/lguest/lguest.c @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include "linux/lguest_launcher.h" #include "linux/virtio_config.h" #include "linux/virtio_net.h" @@ -79,6 +81,9 @@ /* The maximum guest physical address allowed, and maximum possible. */ static unsigned long guest_limit, guest_max; +/* a per-cpu variable indicating whose vcpu is currently running */ +static unsigned int __thread cpu_id; + /* This is our list of devices. */ struct device_list { @@ -96,13 +101,11 @@ /* The descriptor page for the devices. */ u8 *descpage; - /* The tail of the last descriptor. */ - unsigned int desc_used; - /* A single linked list of devices. */ struct device *dev; - /* ... And an end pointer so we can easily append new devices */ - struct device **lastdev; + /* And a pointer to the last device for easy append and also for + * configuration appending. */ + struct device *lastdev; }; /* The list of Guest devices, based on command line arguments. */ @@ -153,6 +156,9 @@ void (*handle_output)(int fd, struct virtqueue *me); }; +/* Remember the arguments to the program so we can "reboot" */ +static char **main_args; + /* Since guest is UP and we don't run at the same time, we don't need barriers. * But I include them in the code in case others copy it. */ #define wmb() @@ -185,7 +191,14 @@ #define cpu_to_le64(v64) (v64) #define le16_to_cpu(v16) (v16) #define le32_to_cpu(v32) (v32) -#define le64_to_cpu(v32) (v64) +#define le64_to_cpu(v64) (v64) + +/* The device virtqueue descriptors are followed by feature bitmasks. */ +static u8 *get_feature_bits(struct device *dev) +{ + return (u8 *)(dev->desc + 1) + + dev->desc->num_vq * sizeof(struct lguest_vqconfig); +} /*L:100 The Launcher code itself takes us out into userspace, that scary place * where pointers run wild and free! Unfortunately, like most userspace @@ -473,9 +486,12 @@ unsigned int i, len = 0; for (i = 0; args[i]; i++) { + if (i) { + strcat(dst+len, " "); + len++; + } strcpy(dst+len, args[i]); - strcat(dst+len, " "); - len += strlen(args[i]) + 1; + len += strlen(args[i]); } /* In case it's empty. */ dst[len] = '\0'; @@ -554,7 +570,7 @@ else FD_CLR(-fd - 1, &devices.infds); } else /* Send LHREQ_BREAK command. */ - write(lguest_fd, args, sizeof(args)); + pwrite(lguest_fd, args, sizeof(args), cpu_id); } } @@ -908,21 +924,58 @@ write(waker_fd, &vq->dev->fd, sizeof(vq->dev->fd)); } +/* Resetting a device is fairly easy. */ +static void reset_device(struct device *dev) +{ + struct virtqueue *vq; + + verbose("Resetting device %s\n", dev->name); + /* Clear the status. */ + dev->desc->status = 0; + + /* Clear any features they've acked. */ + memset(get_feature_bits(dev) + dev->desc->feature_len, 0, + dev->desc->feature_len); + + /* Zero out the virtqueues. */ + for (vq = dev->vq; vq; vq = vq->next) { + memset(vq->vring.desc, 0, + vring_size(vq->config.num, getpagesize())); + vq->last_avail_idx = 0; + } +} + /* This is the generic routine we call when the Guest uses LHCALL_NOTIFY. */ static void handle_output(int fd, unsigned long addr) { struct device *i; struct virtqueue *vq; - /* Check each virtqueue. */ + /* Check each device and virtqueue. */ for (i = devices.dev; i; i = i->next) { + /* Notifications to device descriptors reset the device. */ + if (from_guest_phys(addr) == i->desc) { + reset_device(i); + return; + } + + /* Notifications to virtqueues mean output has occurred. */ for (vq = i->vq; vq; vq = vq->next) { - if (vq->config.pfn == addr/getpagesize() - && vq->handle_output) { - verbose("Output to %s\n", vq->dev->name); - vq->handle_output(fd, vq); + if (vq->config.pfn != addr/getpagesize()) + continue; + + /* Guest should acknowledge (and set features!) before + * using the device. */ + if (i->desc->status == 0) { + warnx("%s gave early output", i->name); return; } + + if (strcmp(vq->dev->name, "console") != 0) + verbose("Output to %s\n", vq->dev->name); + if (vq->handle_output) + vq->handle_output(fd, vq); + return; } } @@ -980,54 +1033,44 @@ * * All devices need a descriptor so the Guest knows it exists, and a "struct * device" so the Launcher can keep track of it. We have common helper - * routines to allocate them. - * - * This routine allocates a new "struct lguest_device_desc" from descriptor - * table just above the Guest's normal memory. It returns a pointer to that - * descriptor. */ -static struct lguest_device_desc *new_dev_desc(u16 type) -{ - struct lguest_device_desc *d; + * routines to allocate and manage them. */ - /* We only have one page for all the descriptors. */ - if (devices.desc_used + sizeof(*d) > getpagesize()) - errx(1, "Too many devices"); - - /* We don't need to set config_len or status: page is 0 already. */ - d = (void *)devices.descpage + devices.desc_used; - d->type = type; - devices.desc_used += sizeof(*d); - - return d; +/* The layout of the device page is a "struct lguest_device_desc" followed by a + * number of virtqueue descriptors, then two sets of feature bits, then an + * array of configuration bytes. This routine returns the configuration + * pointer. */ +static u8 *device_config(const struct device *dev) +{ + return (void *)(dev->desc + 1) + + dev->desc->num_vq * sizeof(struct lguest_vqconfig) + + dev->desc->feature_len * 2; } -/* Each device descriptor is followed by some configuration information. - * Each configuration field looks like: u8 type, u8 len, [... len bytes...]. - * - * This routine adds a new field to an existing device's descriptor. It only - * works for the last device, but that's OK because that's how we use it. */ -static void add_desc_field(struct device *dev, u8 type, u8 len, const void *c) +/* This routine allocates a new "struct lguest_device_desc" from descriptor + * table page just above the Guest's normal memory. It returns a pointer to + * that descriptor. */ +static struct lguest_device_desc *new_dev_desc(u16 type) { - /* This is the last descriptor, right? */ - assert(devices.descpage + devices.desc_used - == (u8 *)(dev->desc + 1) + dev->desc->config_len); + struct lguest_device_desc d = { .type = type }; + void *p; - /* We only have one page of device descriptions. */ - if (devices.desc_used + 2 + len > getpagesize()) - errx(1, "Too many devices"); + /* Figure out where the next device config is, based on the last one. */ + if (devices.lastdev) + p = device_config(devices.lastdev) + + devices.lastdev->desc->config_len; + else + p = devices.descpage; - /* Copy in the new config header: type then length. */ - devices.descpage[devices.desc_used++] = type; - devices.descpage[devices.desc_used++] = len; - memcpy(devices.descpage + devices.desc_used, c, len); - devices.desc_used += len; + /* We only have one page for all the descriptors. */ + if (p + sizeof(d) > (void *)devices.descpage + getpagesize()) + errx(1, "Too many devices"); - /* Update the device descriptor length: two byte head then data. */ - dev->desc->config_len += 2 + len; + /* p might not be aligned, so we memcpy in. */ + return memcpy(p, &d, sizeof(d)); } -/* This routine adds a virtqueue to a device. We specify how many descriptors - * the virtqueue is to have. */ +/* Each device descriptor is followed by the description of its virtqueues. We + * specify how many descriptors the virtqueue is to have. */ static void add_virtqueue(struct device *dev, unsigned int num_descs, void (*handle_output)(int fd, struct virtqueue *me)) { @@ -1053,9 +1096,15 @@ /* Initialize the vring. */ vring_init(&vq->vring, num_descs, p, getpagesize()); - /* Add the configuration information to this device's descriptor. */ - add_desc_field(dev, VIRTIO_CONFIG_F_VIRTQUEUE, - sizeof(vq->config), &vq->config); + /* Append virtqueue to this device's descriptor. We use + * device_config() to get the end of the device's current virtqueues; + * we check that we haven't added any config or feature information + * yet, otherwise we'd be overwriting them. */ + assert(dev->desc->config_len == 0 && dev->desc->feature_len == 0); + memcpy(device_config(dev), &vq->config, sizeof(vq->config)); + dev->desc->num_vq++; + + verbose("Virtqueue page %#lx\n", to_guest_phys(p)); /* Add to tail of list, so dev->vq is first vq, dev->vq->next is * second. */ @@ -1066,11 +1115,41 @@ * virtqueue. */ vq->handle_output = handle_output; - /* Set the "Don't Notify Me" flag if we don't have a handler */ + /* As an optimization, set the advisory "Don't Notify Me" flag if we + * don't have a handler */ if (!handle_output) vq->vring.used->flags = VRING_USED_F_NO_NOTIFY; } +/* The first half of the feature bitmask is for us to advertise features. The + * second half if for the Guest to accept features. */ +static void add_feature(struct device *dev, unsigned bit) +{ + u8 *features = get_feature_bits(dev); + + /* We can't extend the feature bits once we've added config bytes */ + if (dev->desc->feature_len <= bit / CHAR_BIT) { + assert(dev->desc->config_len == 0); + dev->desc->feature_len = (bit / CHAR_BIT) + 1; + } + + features[bit / CHAR_BIT] |= (1 << (bit % CHAR_BIT)); +} + +/* This routine sets the configuration fields for an existing device's + * descriptor. It only works for the last device, but that's OK because that's + * how we use it. */ +static void set_config(struct device *dev, unsigned len, const void *conf) +{ + /* Check we haven't overflowed our single page. */ + if (device_config(dev) + len > devices.descpage + getpagesize()) + errx(1, "Too many devices"); + + /* Copy in the config information, and store the length. */ + memcpy(device_config(dev), conf, len); + dev->desc->config_len = len; +} + /* This routine does all the creation and setup of a new device, including * calling new_dev_desc() to allocate the descriptor and device memory. */ static struct device *new_device(const char *name, u16 type, int fd, @@ -1078,14 +1157,6 @@ { struct device *dev = malloc(sizeof(*dev)); - /* Append to device list. Prepending to a single-linked list is - * easier, but the user expects the devices to be arranged on the bus - * in command-line order. The first network device on the command line - * is eth0, the first block device /dev/vda, etc. */ - *devices.lastdev = dev; - dev->next = NULL; - devices.lastdev = &dev->next; - /* Now we populate the fields one at a time. */ dev->fd = fd; /* If we have an input handler for this file descriptor, then we add it @@ -1096,6 +1167,17 @@ dev->handle_input = handle_input; dev->name = name; dev->vq = NULL; + + /* Append to device list. Prepending to a single-linked list is + * easier, but the user expects the devices to be arranged on the bus + * in command-line order. The first network device on the command line + * is eth0, the first block device /dev/vda, etc. */ + if (devices.lastdev) + devices.lastdev->next = dev; + else + devices.dev = dev; + devices.lastdev = dev; + return dev; } @@ -1220,7 +1302,7 @@ int netfd, ipfd; u32 ip; const char *br_name = NULL; - u8 hwaddr[6]; + struct virtio_net_config conf; /* We open the /dev/net/tun device and tell it we want a tap device. A * tap device is like a tun device, only somehow different. To tell @@ -1259,12 +1341,13 @@ ip = str2ip(arg); /* Set up the tun device, and get the mac address for the interface. */ - configure_device(ipfd, ifr.ifr_name, ip, hwaddr); + configure_device(ipfd, ifr.ifr_name, ip, conf.mac); /* Tell Guest what MAC address to use. */ - add_desc_field(dev, VIRTIO_CONFIG_NET_MAC_F, sizeof(hwaddr), hwaddr); + add_feature(dev, VIRTIO_NET_F_MAC); + set_config(dev, sizeof(conf), &conf); - /* We don't seed the socket any more; setup is done. */ + /* We don't need the socket any more; setup is done. */ close(ipfd); verbose("device %u: tun net %u.%u.%u.%u\n", @@ -1300,7 +1383,6 @@ * Launcher triggers interrupt to Guest. */ int done_fd; }; -/*:*/ /*L:210 * The Disk @@ -1452,8 +1534,7 @@ struct device *dev; struct vblk_info *vblk; void *stack; - u64 cap; - unsigned int val; + struct virtio_blk_config conf; /* This is the pipe the I/O thread will use to tell us I/O is done. */ pipe(p); @@ -1471,14 +1552,18 @@ vblk->fd = open_or_die(filename, O_RDWR|O_LARGEFILE); vblk->len = lseek64(vblk->fd, 0, SEEK_END); + /* We support barriers. */ + add_feature(dev, VIRTIO_BLK_F_BARRIER); + /* Tell Guest how many sectors this device has. */ - cap = cpu_to_le64(vblk->len / 512); - add_desc_field(dev, VIRTIO_CONFIG_BLK_F_CAPACITY, sizeof(cap), &cap); + conf.capacity = cpu_to_le64(vblk->len / 512); /* Tell Guest not to put in too many descriptors at once: two are used * for the in and out elements. */ - val = cpu_to_le32(VIRTQUEUE_NUM - 2); - add_desc_field(dev, VIRTIO_CONFIG_BLK_F_SEG_MAX, sizeof(val), &val); + add_feature(dev, VIRTIO_BLK_F_SEG_MAX); + conf.seg_max = cpu_to_le32(VIRTQUEUE_NUM - 2); + + set_config(dev, sizeof(conf), &conf); /* The I/O thread writes to this end of the pipe when done. */ vblk->done_fd = p[1]; @@ -1489,7 +1574,9 @@ /* Create stack for thread and run it */ stack = malloc(32768); - if (clone(io_thread, stack + 32768, CLONE_VM, dev) == -1) + /* SIGCHLD - We dont "wait" for our cloned thread, so prevent it from + * becoming a zombie. */ + if (clone(io_thread, stack + 32768, CLONE_VM | SIGCHLD, dev) == -1) err(1, "Creating clone"); /* We don't need to keep the I/O thread's end of the pipes open. */ @@ -1497,9 +1584,23 @@ close(vblk->workpipe[0]); verbose("device %u: virtblock %llu sectors\n", - devices.device_num, cap); + devices.device_num, le64_to_cpu(conf.capacity)); +} +/* That's the end of device setup. :*/ + +/* Reboot */ +static void __attribute__((noreturn)) restart_guest(void) +{ + unsigned int i; + + /* Closing pipes causes the waker thread and io_threads to die, and + * closing /dev/lguest cleans up the Guest. Since we don't track all + * open fds, we simply close everything beyond stderr. */ + for (i = 3; i < FD_SETSIZE; i++) + close(i); + execv(main_args[0], main_args); + err(1, "Could not exec %s", main_args[0]); } -/* That's the end of device setup. */ /*L:220 Finally we reach the core of the Launcher, which runs the Guest, serves * its input and output, and finally, lays it to rest. */ @@ -1511,7 +1612,8 @@ int readval; /* We read from the /dev/lguest device to run the Guest. */ - readval = read(lguest_fd, ¬ify_addr, sizeof(notify_addr)); + readval = pread(lguest_fd, ¬ify_addr, + sizeof(notify_addr), cpu_id); /* One unsigned long means the Guest did HCALL_NOTIFY */ if (readval == sizeof(notify_addr)) { @@ -1521,16 +1623,23 @@ /* ENOENT means the Guest died. Reading tells us why. */ } else if (errno == ENOENT) { char reason[1024] = { 0 }; - read(lguest_fd, reason, sizeof(reason)-1); + pread(lguest_fd, reason, sizeof(reason)-1, cpu_id); errx(1, "%s", reason); + /* ERESTART means that we need to reboot the guest */ + } else if (errno == ERESTART) { + restart_guest(); /* EAGAIN means the Waker wanted us to look at some input. * Anything else means a bug or incompatible change. */ } else if (errno != EAGAIN) err(1, "Running guest failed"); + /* Only service input on thread for CPU 0. */ + if (cpu_id != 0) + continue; + /* Service input, then unset the BREAK to release the Waker. */ handle_input(lguest_fd); - if (write(lguest_fd, args, sizeof(args)) < 0) + if (pwrite(lguest_fd, args, sizeof(args), cpu_id) < 0) err(1, "Resetting break"); } } @@ -1571,17 +1680,24 @@ /* If they specify an initrd file to load. */ const char *initrd_name = NULL; + /* Save the args: we "reboot" by execing ourselves again. */ + main_args = argv; + /* We don't "wait" for the children, so prevent them from becoming + * zombies. */ + signal(SIGCHLD, SIG_IGN); + /* First we initialize the device list. Since console and network * device receive input from a file descriptor, we keep an fdset * (infds) and the maximum fd number (max_infd) with the head of the - * list. We also keep a pointer to the last device, for easy appending - * to the list. Finally, we keep the next interrupt number to hand out - * (1: remember that 0 is used by the timer). */ + * list. We also keep a pointer to the last device. Finally, we keep + * the next interrupt number to hand out (1: remember that 0 is used by + * the timer). */ FD_ZERO(&devices.infds); devices.max_infd = -1; - devices.lastdev = &devices.dev; + devices.lastdev = NULL; devices.next_irq = 1; + cpu_id = 0; /* We need to know how much memory so we can set up the device * descriptor and memory pages for the devices as we parse the command * line. So we quickly look through the arguments to find the amount --- linux-2.6.24.orig/Documentation/dsdt-initrd.txt +++ linux-2.6.24/Documentation/dsdt-initrd.txt @@ -0,0 +1,98 @@ +ACPI Custom DSDT read from initramfs + +2003 by Markuss Gaugusch < dsdt at gaugusch dot org > +Special thanks go to Thomas Renninger from SuSE, who updated the patch for +2.6.0 and later modified it to read inside initramfs +2004 - 2007 maintained by Eric Piel < eric dot piel at tremplin-utc dot net > + +This option is intended for people who would like to hack their DSDT and don't want +to recompile their kernel after every change. It can also be useful to distros +which offers pre-compiled kernels and want to allow their users to use a +modified DSDT. In the Kernel config, enable the initial RAM filesystem support +(in Device Drivers|Block Devices) and enable ACPI_CUSTOM_DSDT_INITRD at the ACPI +options (General Setup|ACPI Support|Read custom DSDT from initrd). + +A custom DSDT (Differentiated System Description Table) is useful when your +computer uses ACPI but problems occur due to broken implementation. Typically, +your computer works but there are some troubles with the hardware detection or +the power management. You can check that troubles come from errors in the DSDT by +activating the ACPI debug option and reading the logs. This table is provided +by the BIOS, therefore it might be a good idea to check for BIOS update on your +vendor website before going any further. Errors are often caused by vendors +testing their hardware only with Windows or because there is code which is +executed only on a specific OS with a specific version and Linux hasn't been +considered during the development. + +Before you run away from customising your DSDT, you should note that already +corrected tables are available for a fair amount of computers on this web-page: +http://acpi.sf.net/dsdt . If you are part of the unluckies who cannot find +their hardware in this database, you can modify your DSDT by yourself. This +process is less painful than it sounds. Download the Intel ASL +compiler/decompiler at http://www.intel.com/technology/IAPC/acpi/downloads.htm . +As root, you then have to dump your DSDT and decompile it. By using the +compiler messages as well as the kernel ACPI debug messages and the reference book +(available at the Intel website and also at http://www.acpi.info), it is quite +easy to obtain a fully working table. + +Once your new DSDT is ready you'll have to add it to an initrd so that the +kernel can read the table at the very beginning of the boot. As the file has +to be accessed very early during the boot process the initrd has to be an +initramfs. The file is contained into the initramfs under the name /DSDT.aml . +To obtain such an initrd, you might have to modify your mkinitrd script or you +can add it later to the initrd with the script appended to this document. The +command will look like: +initrd-add-dsdt initrd.img my-dsdt.aml + +In case you don't use any initrd, the possibilities you have are to either start +using one (try mkinitrd or yaird), or use the "Include Custom DSDT" configure +option to directly include your DSDT inside the kernel. + +The message "Looking for DSDT in initramfs..." will tell you if the DSDT was +found or not. If you need to update your DSDT, generate a new initrd and +perform the steps above. Don't forget that with Lilo, you'll have to re-run it. + + +======================= Here starts initrd-add-dsdt =============================== +#!/bin/bash +# Adds a DSDT file to the initrd (if it's an initramfs) +# first argument is the name of archive +# second argurment is the name of the file to add +# The file will be copied as /DSDT.aml + +# 20060126: fix "Premature end of file" with some old cpio (Roland Robic) +# 20060205: this time it should really work + +# check the arguments +if [ $# -ne 2 ]; then + program_name=$(basename $0) + echo "\ +$program_name: too few arguments +Usage: $program_name initrd-name.img DSDT-to-add.aml +Adds a DSDT file to an initrd (in initramfs format) + + initrd-name.img: filename of the initrd in initramfs format + DSDT-to-add.aml: filename of the DSDT file to add + " 1>&2 + exit 1 +fi + +# we should check it's an initramfs + +tempcpio=$(mktemp -d) +# cleanup on exit, hangup, interrupt, quit, termination +trap 'rm -rf $tempcpio' 0 1 2 3 15 + +# extract the archive +gunzip -c "$1" > "$tempcpio"/initramfs.cpio || exit 1 + +# copy the DSDT file at the root of the directory so that we can call it "/DSDT.aml" +cp -f "$2" "$tempcpio"/DSDT.aml + +# add the file +cd "$tempcpio" +(echo DSDT.aml | cpio --quiet -H newc -o -A -O "$tempcpio"/initramfs.cpio) || exit 1 +cd "$OLDPWD" + +# re-compress the archive +gzip -c "$tempcpio"/initramfs.cpio > "$1" + --- linux-2.6.24.orig/Documentation/hwmon/coretemp +++ linux-2.6.24/Documentation/hwmon/coretemp @@ -4,9 +4,10 @@ Supported chips: * All Intel Core family Prefix: 'coretemp' - CPUID: family 0x6, models 0xe, 0xf, 0x16 + CPUID: family 0x6, models 0xe, 0xf, 0x16, 0x17 Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A: System Programming Guide + http://softwarecommunity.intel.com/Wiki/Mobility/720.htm Author: Rudolf Marek --- linux-2.6.24.orig/Documentation/lsm/AppArmor-Security-Goal.txt +++ linux-2.6.24/Documentation/lsm/AppArmor-Security-Goal.txt @@ -0,0 +1,134 @@ +AppArmor Security Goal +Crispin Cowan, PhD +MercenaryLinux.com + +This document specifies the security goal that AppArmor is intended to +achieve, so that users can evaluate whether AppArmor will meet their +needs, and kernel developers can evaluate whether AppArmor is living up +to its claims. This document is *not* a general purpose explanation of +how AppArmor works, nor is it an explanation for why one might want to +use AppArmor rather than some other system. + +AppArmor is intended to limit system damage from attackers exploiting +vulnerabilities in applications that the system hosts. The threat is +that an attacker can cause a vulnerable application to do something +unexpected and undesirable. AppArmor addresses this threat by confining +the application to access only the resources it needs to access to +execute properly, effectively imposing "least privilege" execution on +the application. + +Applications interact with the rest of the system via resources +including files, interprocess communication, networking, capabilities, +and execution of other applications. The purpose of least privilege is +to bound the damage that a malicious user or code can do by removing +access to resources that the application does not need for its intended +function. This is true for all access control systems, including AppArmor. + +The "attacker" is someone trying to gain the privileges of a process for +themselves. For instance, a policy for a web server might grant read +only access to most web documents, preventing an attacker who can +corrupt the web server from defacing the web pages. A web server has +access to the web server's local file system, and a network attacker +trying to hack the web server does not have such file access. An e-mail +attacker attempting to infect the recipient of the e-mail does not have +access to the files that the victim user's mail client does. By limiting +the scope of access for an application, AppArmor can limit the damage an +attacker can do by exploiting vulnerabilities in applications. + +An "application" is one or more related processes performing a function, +e.g. the gang of processes that constitute an Apache web server, or a +Postfix mail server. AppArmor *only* confines processes that the +AppArmor policy says it should confine, and other processes are +permitted to do anything that DAC permits. This is sometimes known as a +targeted security policy. + +AppArmor does not provide a "default" policy that applies to all +processes. So to defend an entire host, you have to piece-wise confine +each process that is exposed to potential attack. For instance, to +defend a system against network attack, place AppArmor profiles around +every application that accesses the network. This limits the damage a +network attacker can do to the file system to only those files granted +by the profiles for the network-available applications. Similarly, to +defend a system against attack from the console, place AppArmor profiles +around every application that accessed the keyboard and mouse. The +system is "defended" in that the worst the attacker can do to corrupt +the system is limited to the transitive closure of what the confined +processes are allowed to access. + +AppArmor currently mediates access to files, ability to use POSIX.1e +Capabilities, and coarse-grained control on network access. This is +sufficient to prevent a confined process from *directly* corrupting the +file system. It is not sufficient to prevent a confined process from +*indirectly* corrupting the system by influencing some other process to +do the dirty deed. But to do so requires a complicit process that can be +manipulated through another channel such as IPC. A "complicit" process +is either a malicious process the attacker somehow got control of, or is +a process that is actively listening to IPC of some kind and can be +corrupted via IPC. + +The only IPC that AppArmor mediates is access to named sockets, FIFOs, +etc. that appear in the file system name space, a side effect of +AppArmor's file access mediation. Future versions of AppArmor will +mediate more resources, including finer grained network access controls, +and controls on various forms of IPC. + +AppArmor specifies the programs to be confined and the resources they +can access in a syntax similar to how users are accustomed to accessing +those resources. So file access controls are specified using absolute +paths with respect to the name space the process is in. POSIX.1e +capabilities are specified by name. Network access controls currently +are specified by simply naming the protocol that can be used e.g. tcp, +udp, and in the future will be more general, resembling firewall rules. + +Thus the AppArmor security goal should be considered piecewise from the +point of view of a single confined process: that process should only be +able to access the resources specified in its profile: + + * can only access files that are reachable in its name space by path + names matching its profile, and only with the permitted modes: + read, append, write, memory map, execute, and link + * can only use the POSIX.1e capabilities listed in the profile + * can only perform the network operations listed in the profile + +Security issues that AppArmor explicitly does *not* address: + + * Processes that are not confined by AppArmor are not restricted in + any way by AppArmor. If an unconfined process is considered an + unacceptable threat, then confine additional applications until + adequate security is achieved. + * A process that is not permitted to directly access a resource can + influence some other process that does have access to the resource + may do so, if the "influence" is a permitted action. + * A confined process may only access a file if it has at least one + of the files aliases specified in its profile. If a file alias is + not specified in the profile then it can not be accessed by that + path. The creation of aliases needs to be tightly controlled in + confined applications, hard links creation should be limited to + provide adequate security. + * A confined process can operate on a file descriptor passed to it + by an unconfined process, even if it manipulates a file not in the + confined process's profile. To block this attack, confine the + process that passed the file descriptor. + * Process activities not currently mediated by AppArmor are + permitted, e.g. confined processes can perform any IPC that DAC + permits, other than signals as mediated by CAP_KILL. + * Manipulating AppArmor policy requires being both root privileged + and not being confined by AppArmor, thus there is explicitly no + capability for non-privileged users to change AppArmor policy. + * AppArmor confines processes if they are children of a confined + process, or if the name of the exec'd child matches the name of an + AppArmor profile. Another process could copy a program to a + different path name and then execute it without confinement, but + the other process would have to have permission to do so in the + first place. To prevent this, confine the other process and + additional applications until adequate security is achieved. + * Mount and namespace manipulations can be used to arbitrarily + change the pathnames that files appear at, and thus completely + bypass AppArmor policy. To prevent this, processes confined by + AppArmor are currently not permitted to call mount or manipulate + name spaces at all. A future development may provide more granular + controls on mount and namespace manipulations. + * AppArmor does not slice bread, cure cancer, bring world peace, or + provide perfect security. This list may be expanded :-) + + --- linux-2.6.24.orig/Documentation/kernel-parameters.txt +++ linux-2.6.24/Documentation/kernel-parameters.txt @@ -222,6 +222,14 @@ Warning: Many of these options can produce a lot of output and make your system unusable. Be very careful. + acpi.power_nocheck= [HW,ACPI] + Format: 1/0 enable/disable the check of power state. + On some bogus BIOS the _PSC object/_STA object of + power resource can't return the correct device power + state. In such case it is unneccessary to check its + power state again in power transition. + 1 : disable the power state check + acpi_pm_good [X86-32,X86-64] Override the pmtimer bug detection: force the kernel to assume that this machine's pmtimer latches its value @@ -545,6 +553,10 @@ This is a 16-member array composed of values ranging from 0-255. + default_relatime= + [FS] mount all filesystems with relative atime + updates by default. + vt.default_utf8= [VT] Format=<0|1> @@ -588,8 +600,7 @@ eata= [HW,SCSI] edd= [EDD] - Format: {"of[f]" | "sk[ipmbr]"} - See comment in arch/i386/boot/edd.S + Format: {"off" | "on" | "sk[ipmbr]"} eisa_irq_edge= [PARISC,HW] See header of drivers/parisc/eisa.c. @@ -786,6 +797,16 @@ for translation below 32 bit and if not available then look in the higher range. + io_delay= [X86-32,X86-64] I/O delay method + 0x80 + Standard port 0x80 based delay + 0xed + Alternate port 0xed based delay (needed on some systems) + udelay + Simple two microseconds delay + none + No delay + io7= [HW] IO7 for Marvel based alpha systems See comment before marvel_specify_io7 in arch/alpha/kernel/core_marvel.c. @@ -1320,6 +1341,8 @@ disable the use of PCIE advanced error reporting. nodomains [PCI] Disable support for multiple PCI root domains (aka PCI segments, in ACPI-speak). + mmconf [X86-32,X86_64] Enable use of MMCONFIG for PCI + Configuration nommconf [X86-32,X86_64] Disable use of MMCONFIG for PCI Configuration nomsi [MSI] If the PCI_MSI kernel config parameter is @@ -1519,6 +1542,10 @@ Format: [,[,...]] See arch/*/kernel/reboot.c or arch/*/kernel/process.c + relatime_interval= + [FS] relative atime update frequency, in seconds. + (default: 1 day: 86400 seconds) + reserve= [KNL,BUGS] Force the kernel to ignore some iomem area reservetop= [X86-32] --- linux-2.6.24.orig/Documentation/power/devices.txt +++ linux-2.6.24/Documentation/power/devices.txt @@ -310,9 +310,12 @@ PM_EVENT_SUSPEND -- quiesce the driver and put hardware into a low-power state. When used with system sleep states like "suspend-to-RAM" or "standby", the upcoming resume() call will often be able to rely on - state kept in hardware, or issue system wakeup events. When used - instead with suspend-to-disk, few devices support this capability; - most are completely powered off. + state kept in hardware, or issue system wakeup events. + + PM_EVENT_HIBERNATE -- Put hardware into a low-power state and enable wakeup + events as appropriate. It is only used with hibernation + (suspend-to-disk) and few devices are able to wake up the system from + this state; most are completely powered off. PM_EVENT_FREEZE -- quiesce the driver, but don't necessarily change into any low power mode. A system snapshot is about to be taken, often @@ -329,8 +332,8 @@ wakeup events nor DMA are allowed. To enter "standby" (ACPI S1) or "Suspend to RAM" (STR, ACPI S3) states, or -the similarly named APM states, only PM_EVENT_SUSPEND is used; for "Suspend -to Disk" (STD, hibernate, ACPI S4), all of those event codes are used. +the similarly named APM states, only PM_EVENT_SUSPEND is used; the other event +codes are used for hibernation ("Suspend to Disk", STD, ACPI S4). There's also PM_EVENT_ON, a value which never appears as a suspend event but is sometimes used to record the "not suspended" device state. --- linux-2.6.24.orig/Documentation/video4linux/CARDLIST.em28xx +++ linux-2.6.24/Documentation/video4linux/CARDLIST.em28xx @@ -8,7 +8,7 @@ 7 -> Leadtek Winfast USB II (em2800) 8 -> Kworld USB2800 (em2800) 9 -> Pinnacle Dazzle DVC 90 (em2820/em2840) [2304:0207] - 10 -> Hauppauge WinTV HVR 900 (em2880) + 10 -> Hauppauge WinTV HVR 900 (em2880) [2040:6500,2040:6502] 11 -> Terratec Hybrid XS (em2880) 12 -> Kworld PVR TV 2800 RF (em2820/em2840) 13 -> Terratec Prodigy XS (em2880) --- linux-2.6.24.orig/arch/mips/kernel/i8259.c +++ linux-2.6.24/arch/mips/kernel/i8259.c @@ -338,8 +338,10 @@ init_8259A(0); - for (i = I8259A_IRQ_BASE; i < I8259A_IRQ_BASE + 16; i++) + for (i = I8259A_IRQ_BASE; i < I8259A_IRQ_BASE + 16; i++) { set_irq_chip_and_handler(i, &i8259A_chip, handle_level_irq); + set_irq_probe(i); + } setup_irq(I8259A_IRQ_BASE + PIC_CASCADE_IR, &irq2); } --- linux-2.6.24.orig/arch/mips/kernel/irq.c +++ linux-2.6.24/arch/mips/kernel/irq.c @@ -145,6 +145,11 @@ void __init init_IRQ(void) { + int i; + + for (i = 0; i < NR_IRQS; i++) + set_irq_noprobe(i); + arch_init_irq(); #ifdef CONFIG_KGDB --- linux-2.6.24.orig/arch/arm/mach-pxa/clock.c +++ linux-2.6.24/arch/arm/mach-pxa/clock.c @@ -23,18 +23,27 @@ static DEFINE_MUTEX(clocks_mutex); static DEFINE_SPINLOCK(clocks_lock); +static struct clk *clk_lookup(struct device *dev, const char *id) +{ + struct clk *p; + + list_for_each_entry(p, &clocks, node) + if (strcmp(id, p->name) == 0 && p->dev == dev) + return p; + + return NULL; +} + struct clk *clk_get(struct device *dev, const char *id) { struct clk *p, *clk = ERR_PTR(-ENOENT); mutex_lock(&clocks_mutex); - list_for_each_entry(p, &clocks, node) { - if (strcmp(id, p->name) == 0 && - (p->dev == NULL || p->dev == dev)) { - clk = p; - break; - } - } + p = clk_lookup(dev, id); + if (!p) + p = clk_lookup(NULL, id); + if (p) + clk = p; mutex_unlock(&clocks_mutex); return clk; --- linux-2.6.24.orig/arch/sparc/lib/rwsem.S +++ linux-2.6.24/arch/sparc/lib/rwsem.S @@ -7,7 +7,7 @@ #include #include - .section .sched.text + .section .sched.text, "ax" .align 4 .globl ___down_read --- linux-2.6.24.orig/arch/sparc/kernel/una_asm.S +++ linux-2.6.24/arch/sparc/kernel/una_asm.S @@ -0,0 +1,153 @@ +/* una_asm.S: Kernel unaligned trap assembler helpers. + * + * Copyright (C) 1996,2005,2008 David S. Miller (davem@davemloft.net) + * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) + */ + +#include + + .text + +retl_efault: + retl + mov -EFAULT, %o0 + + /* int __do_int_store(unsigned long *dst_addr, int size, + * unsigned long *src_val) + * + * %o0 = dest_addr + * %o1 = size + * %o2 = src_val + * + * Return '0' on success, -EFAULT on failure. + */ + .globl __do_int_store +__do_int_store: + ld [%o2], %g1 + cmp %1, 2 + be 2f + cmp %1, 4 + be 1f + srl %g1, 24, %g2 + srl %g1, 16, %g7 +4: stb %g2, [%o0] + srl %g1, 8, %g2 +5: stb %g7, [%o0 + 1] + ld [%o2 + 4], %g7 +6: stb %g2, [%o0 + 2] + srl %g7, 24, %g2 +7: stb %g1, [%o0 + 3] + srl %g7, 16, %g1 +8: stb %g2, [%o0 + 4] + srl %g7, 8, %g2 +9: stb %g1, [%o0 + 5] +10: stb %g2, [%o0 + 6] + b 0f +11: stb %g7, [%o0 + 7] +1: srl %g1, 16, %g7 +12: stb %g2, [%o0] + srl %g1, 8, %g2 +13: stb %g7, [%o0 + 1] +14: stb %g2, [%o0 + 2] + b 0f +15: stb %g1, [%o0 + 3] +2: srl %g1, 8, %g2 +16: stb %g2, [%o0] +17: stb %g1, [%o0 + 1] +0: retl + mov 0, %o0 + + .section __ex_table,#alloc + .word 4b, retl_efault + .word 5b, retl_efault + .word 6b, retl_efault + .word 7b, retl_efault + .word 8b, retl_efault + .word 9b, retl_efault + .word 10b, retl_efault + .word 11b, retl_efault + .word 12b, retl_efault + .word 13b, retl_efault + .word 14b, retl_efault + .word 15b, retl_efault + .word 16b, retl_efault + .word 17b, retl_efault + .previous + + /* int do_int_load(unsigned long *dest_reg, int size, + * unsigned long *saddr, int is_signed) + * + * %o0 = dest_reg + * %o1 = size + * %o2 = saddr + * %o3 = is_signed + * + * Return '0' on success, -EFAULT on failure. + */ + .globl do_int_load +do_int_load: + cmp %o1, 8 + be 9f + cmp %o1, 4 + be 6f +4: ldub [%o2], %g1 +5: ldub [%o2 + 1], %g2 + sll %g1, 8, %g1 + tst %o3 + be 3f + or %g1, %g2, %g1 + sll %g1, 16, %g1 + sra %g1, 16, %g1 +3: b 0f + st %g1, [%o0] +6: ldub [%o2 + 1], %g2 + sll %g1, 24, %g1 +7: ldub [%o2 + 2], %g7 + sll %g2, 16, %g2 +8: ldub [%o2 + 3], %g3 + sll %g7, 8, %g7 + or %g3, %g2, %g3 + or %g7, %g3, %g7 + or %g1, %g7, %g1 + b 0f + st %g1, [%o0] +9: ldub [%o2], %g1 +10: ldub [%o2 + 1], %g2 + sll %g1, 24, %g1 +11: ldub [%o2 + 2], %g7 + sll %g2, 16, %g2 +12: ldub [%o2 + 3], %g3 + sll %g7, 8, %g7 + or %g1, %g2, %g1 + or %g7, %g3, %g7 + or %g1, %g7, %g7 +13: ldub [%o2 + 4], %g1 + st %g7, [%o0] +14: ldub [%o2 + 5], %g2 + sll %g1, 24, %g1 +15: ldub [%o2 + 6], %g7 + sll %g2, 16, %g2 +16: ldub [%o2 + 7], %g3 + sll %g7, 8, %g7 + or %g1, %g2, %g1 + or %g7, %g3, %g7 + or %g1, %g7, %g7 + st %g7, [%o0 + 4] +0: retl + mov 0, %o0 + + .section __ex_table,#alloc + .word 4b, retl_efault + .word 5b, retl_efault + .word 6b, retl_efault + .word 7b, retl_efault + .word 8b, retl_efault + .word 9b, retl_efault + .word 10b, retl_efault + .word 11b, retl_efault + .word 12b, retl_efault + .word 13b, retl_efault + .word 14b, retl_efault + .word 15b, retl_efault + .word 16b, retl_efault + .previous --- linux-2.6.24.orig/arch/sparc/kernel/unaligned.c +++ linux-2.6.24/arch/sparc/kernel/unaligned.c @@ -175,157 +175,31 @@ panic(str); } -#define do_integer_load(dest_reg, size, saddr, is_signed, errh) ({ \ -__asm__ __volatile__ ( \ - "cmp %1, 8\n\t" \ - "be 9f\n\t" \ - " cmp %1, 4\n\t" \ - "be 6f\n" \ -"4:\t" " ldub [%2], %%l1\n" \ -"5:\t" "ldub [%2 + 1], %%l2\n\t" \ - "sll %%l1, 8, %%l1\n\t" \ - "tst %3\n\t" \ - "be 3f\n\t" \ - " add %%l1, %%l2, %%l1\n\t" \ - "sll %%l1, 16, %%l1\n\t" \ - "sra %%l1, 16, %%l1\n" \ -"3:\t" "b 0f\n\t" \ - " st %%l1, [%0]\n" \ -"6:\t" "ldub [%2 + 1], %%l2\n\t" \ - "sll %%l1, 24, %%l1\n" \ -"7:\t" "ldub [%2 + 2], %%g7\n\t" \ - "sll %%l2, 16, %%l2\n" \ -"8:\t" "ldub [%2 + 3], %%g1\n\t" \ - "sll %%g7, 8, %%g7\n\t" \ - "or %%l1, %%l2, %%l1\n\t" \ - "or %%g7, %%g1, %%g7\n\t" \ - "or %%l1, %%g7, %%l1\n\t" \ - "b 0f\n\t" \ - " st %%l1, [%0]\n" \ -"9:\t" "ldub [%2], %%l1\n" \ -"10:\t" "ldub [%2 + 1], %%l2\n\t" \ - "sll %%l1, 24, %%l1\n" \ -"11:\t" "ldub [%2 + 2], %%g7\n\t" \ - "sll %%l2, 16, %%l2\n" \ -"12:\t" "ldub [%2 + 3], %%g1\n\t" \ - "sll %%g7, 8, %%g7\n\t" \ - "or %%l1, %%l2, %%l1\n\t" \ - "or %%g7, %%g1, %%g7\n\t" \ - "or %%l1, %%g7, %%g7\n" \ -"13:\t" "ldub [%2 + 4], %%l1\n\t" \ - "st %%g7, [%0]\n" \ -"14:\t" "ldub [%2 + 5], %%l2\n\t" \ - "sll %%l1, 24, %%l1\n" \ -"15:\t" "ldub [%2 + 6], %%g7\n\t" \ - "sll %%l2, 16, %%l2\n" \ -"16:\t" "ldub [%2 + 7], %%g1\n\t" \ - "sll %%g7, 8, %%g7\n\t" \ - "or %%l1, %%l2, %%l1\n\t" \ - "or %%g7, %%g1, %%g7\n\t" \ - "or %%l1, %%g7, %%g7\n\t" \ - "st %%g7, [%0 + 4]\n" \ -"0:\n\n\t" \ - ".section __ex_table,#alloc\n\t" \ - ".word 4b, " #errh "\n\t" \ - ".word 5b, " #errh "\n\t" \ - ".word 6b, " #errh "\n\t" \ - ".word 7b, " #errh "\n\t" \ - ".word 8b, " #errh "\n\t" \ - ".word 9b, " #errh "\n\t" \ - ".word 10b, " #errh "\n\t" \ - ".word 11b, " #errh "\n\t" \ - ".word 12b, " #errh "\n\t" \ - ".word 13b, " #errh "\n\t" \ - ".word 14b, " #errh "\n\t" \ - ".word 15b, " #errh "\n\t" \ - ".word 16b, " #errh "\n\n\t" \ - ".previous\n\t" \ - : : "r" (dest_reg), "r" (size), "r" (saddr), "r" (is_signed) \ - : "l1", "l2", "g7", "g1", "cc"); \ -}) - -#define store_common(dst_addr, size, src_val, errh) ({ \ -__asm__ __volatile__ ( \ - "ld [%2], %%l1\n" \ - "cmp %1, 2\n\t" \ - "be 2f\n\t" \ - " cmp %1, 4\n\t" \ - "be 1f\n\t" \ - " srl %%l1, 24, %%l2\n\t" \ - "srl %%l1, 16, %%g7\n" \ -"4:\t" "stb %%l2, [%0]\n\t" \ - "srl %%l1, 8, %%l2\n" \ -"5:\t" "stb %%g7, [%0 + 1]\n\t" \ - "ld [%2 + 4], %%g7\n" \ -"6:\t" "stb %%l2, [%0 + 2]\n\t" \ - "srl %%g7, 24, %%l2\n" \ -"7:\t" "stb %%l1, [%0 + 3]\n\t" \ - "srl %%g7, 16, %%l1\n" \ -"8:\t" "stb %%l2, [%0 + 4]\n\t" \ - "srl %%g7, 8, %%l2\n" \ -"9:\t" "stb %%l1, [%0 + 5]\n" \ -"10:\t" "stb %%l2, [%0 + 6]\n\t" \ - "b 0f\n" \ -"11:\t" " stb %%g7, [%0 + 7]\n" \ -"1:\t" "srl %%l1, 16, %%g7\n" \ -"12:\t" "stb %%l2, [%0]\n\t" \ - "srl %%l1, 8, %%l2\n" \ -"13:\t" "stb %%g7, [%0 + 1]\n" \ -"14:\t" "stb %%l2, [%0 + 2]\n\t" \ - "b 0f\n" \ -"15:\t" " stb %%l1, [%0 + 3]\n" \ -"2:\t" "srl %%l1, 8, %%l2\n" \ -"16:\t" "stb %%l2, [%0]\n" \ -"17:\t" "stb %%l1, [%0 + 1]\n" \ -"0:\n\n\t" \ - ".section __ex_table,#alloc\n\t" \ - ".word 4b, " #errh "\n\t" \ - ".word 5b, " #errh "\n\t" \ - ".word 6b, " #errh "\n\t" \ - ".word 7b, " #errh "\n\t" \ - ".word 8b, " #errh "\n\t" \ - ".word 9b, " #errh "\n\t" \ - ".word 10b, " #errh "\n\t" \ - ".word 11b, " #errh "\n\t" \ - ".word 12b, " #errh "\n\t" \ - ".word 13b, " #errh "\n\t" \ - ".word 14b, " #errh "\n\t" \ - ".word 15b, " #errh "\n\t" \ - ".word 16b, " #errh "\n\t" \ - ".word 17b, " #errh "\n\n\t" \ - ".previous\n\t" \ - : : "r" (dst_addr), "r" (size), "r" (src_val) \ - : "l1", "l2", "g7", "g1", "cc"); \ -}) - -#define do_integer_store(reg_num, size, dst_addr, regs, errh) ({ \ - unsigned long *src_val; \ - static unsigned long zero[2] = { 0, }; \ - \ - if (reg_num) src_val = fetch_reg_addr(reg_num, regs); \ - else { \ - src_val = &zero[0]; \ - if (size == 8) \ - zero[1] = fetch_reg(1, regs); \ - } \ - store_common(dst_addr, size, src_val, errh); \ -}) +/* una_asm.S */ +extern int do_int_load(unsigned long *dest_reg, int size, + unsigned long *saddr, int is_signed); +extern int __do_int_store(unsigned long *dst_addr, int size, + unsigned long *src_val); + +static int do_int_store(int reg_num, int size, unsigned long *dst_addr, + struct pt_regs *regs) +{ + unsigned long zero[2] = { 0, 0 }; + unsigned long *src_val; + + if (reg_num) + src_val = fetch_reg_addr(reg_num, regs); + else { + src_val = &zero[0]; + if (size == 8) + zero[1] = fetch_reg(1, regs); + } + return __do_int_store(dst_addr, size, src_val); +} extern void smp_capture(void); extern void smp_release(void); -#define do_atomic(srcdest_reg, mem, errh) ({ \ - unsigned long flags, tmp; \ - \ - smp_capture(); \ - local_irq_save(flags); \ - tmp = *srcdest_reg; \ - do_integer_load(srcdest_reg, 4, mem, 0, errh); \ - store_common(mem, 4, &tmp, errh); \ - local_irq_restore(flags); \ - smp_release(); \ -}) - static inline void advance(struct pt_regs *regs) { regs->pc = regs->npc; @@ -342,9 +216,7 @@ return !floating_point_load_or_store_p(insn); } -void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn) __asm__ ("kernel_mna_trap_fault"); - -void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn) +static void kernel_mna_trap_fault(struct pt_regs *regs, unsigned int insn) { unsigned long g2 = regs->u_regs [UREG_G2]; unsigned long fixup = search_extables_range(regs->pc, &g2); @@ -379,48 +251,34 @@ printk("Unsupported unaligned load/store trap for kernel at <%08lx>.\n", regs->pc); unaligned_panic("Wheee. Kernel does fpu/atomic unaligned load/store."); - - __asm__ __volatile__ ("\n" -"kernel_unaligned_trap_fault:\n\t" - "mov %0, %%o0\n\t" - "call kernel_mna_trap_fault\n\t" - " mov %1, %%o1\n\t" - : - : "r" (regs), "r" (insn) - : "o0", "o1", "o2", "o3", "o4", "o5", "o7", - "g1", "g2", "g3", "g4", "g5", "g7", "cc"); } else { unsigned long addr = compute_effective_address(regs, insn); + int err; #ifdef DEBUG_MNA printk("KMNA: pc=%08lx [dir=%s addr=%08lx size=%d] retpc[%08lx]\n", regs->pc, dirstrings[dir], addr, size, regs->u_regs[UREG_RETPC]); #endif - switch(dir) { + switch (dir) { case load: - do_integer_load(fetch_reg_addr(((insn>>25)&0x1f), regs), - size, (unsigned long *) addr, - decode_signedness(insn), - kernel_unaligned_trap_fault); + err = do_int_load(fetch_reg_addr(((insn>>25)&0x1f), + regs), + size, (unsigned long *) addr, + decode_signedness(insn)); break; case store: - do_integer_store(((insn>>25)&0x1f), size, - (unsigned long *) addr, regs, - kernel_unaligned_trap_fault); - break; -#if 0 /* unsupported */ - case both: - do_atomic(fetch_reg_addr(((insn>>25)&0x1f), regs), - (unsigned long *) addr, - kernel_unaligned_trap_fault); + err = do_int_store(((insn>>25)&0x1f), size, + (unsigned long *) addr, regs); break; -#endif default: panic("Impossible kernel unaligned trap."); /* Not reached... */ } - advance(regs); + if (err) + kernel_mna_trap_fault(regs, insn); + else + advance(regs); } } @@ -459,9 +317,7 @@ return 0; } -void user_mna_trap_fault(struct pt_regs *regs, unsigned int insn) __asm__ ("user_mna_trap_fault"); - -void user_mna_trap_fault(struct pt_regs *regs, unsigned int insn) +static void user_mna_trap_fault(struct pt_regs *regs, unsigned int insn) { siginfo_t info; @@ -485,7 +341,7 @@ if(!ok_for_user(regs, insn, dir)) { goto kill_user; } else { - int size = decode_access_size(insn); + int err, size = decode_access_size(insn); unsigned long addr; if(floating_point_load_or_store_p(insn)) { @@ -496,48 +352,34 @@ addr = compute_effective_address(regs, insn); switch(dir) { case load: - do_integer_load(fetch_reg_addr(((insn>>25)&0x1f), regs), - size, (unsigned long *) addr, - decode_signedness(insn), - user_unaligned_trap_fault); + err = do_int_load(fetch_reg_addr(((insn>>25)&0x1f), + regs), + size, (unsigned long *) addr, + decode_signedness(insn)); break; case store: - do_integer_store(((insn>>25)&0x1f), size, - (unsigned long *) addr, regs, - user_unaligned_trap_fault); + err = do_int_store(((insn>>25)&0x1f), size, + (unsigned long *) addr, regs); break; case both: -#if 0 /* unsupported */ - do_atomic(fetch_reg_addr(((insn>>25)&0x1f), regs), - (unsigned long *) addr, - user_unaligned_trap_fault); -#else /* * This was supported in 2.4. However, we question * the value of SWAP instruction across word boundaries. */ printk("Unaligned SWAP unsupported.\n"); - goto kill_user; -#endif + err = -EFAULT; break; default: unaligned_panic("Impossible user unaligned trap."); - - __asm__ __volatile__ ("\n" -"user_unaligned_trap_fault:\n\t" - "mov %0, %%o0\n\t" - "call user_mna_trap_fault\n\t" - " mov %1, %%o1\n\t" - : - : "r" (regs), "r" (insn) - : "o0", "o1", "o2", "o3", "o4", "o5", "o7", - "g1", "g2", "g3", "g4", "g5", "g7", "cc"); goto out; } - advance(regs); + if (err) + goto kill_user; + else + advance(regs); goto out; } --- linux-2.6.24.orig/arch/sparc/kernel/sys_sparc.c +++ linux-2.6.24/arch/sparc/kernel/sys_sparc.c @@ -220,12 +220,11 @@ return err; } -int sparc_mmap_check(unsigned long addr, unsigned long len, unsigned long flags) +int sparc_mmap_check(unsigned long addr, unsigned long len) { if (ARCH_SUN4C_SUN4 && (len > 0x20000000 || - ((flags & MAP_FIXED) && - addr < 0xe0000000 && addr + len > 0x20000000))) + (addr < 0xe0000000 && addr + len > 0x20000000))) return -EINVAL; /* See asm-sparc/uaccess.h */ @@ -297,52 +296,14 @@ unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr) { - struct vm_area_struct *vma; unsigned long ret = -EINVAL; - if (ARCH_SUN4C_SUN4) { - if (old_len > 0x20000000 || new_len > 0x20000000) - goto out; - if (addr < 0xe0000000 && addr + old_len > 0x20000000) - goto out; - } - if (old_len > TASK_SIZE - PAGE_SIZE || - new_len > TASK_SIZE - PAGE_SIZE) + + if (unlikely(sparc_mmap_check(addr, old_len))) + goto out; + if (unlikely(sparc_mmap_check(new_addr, new_len))) goto out; down_write(¤t->mm->mmap_sem); - if (flags & MREMAP_FIXED) { - if (ARCH_SUN4C_SUN4 && - new_addr < 0xe0000000 && - new_addr + new_len > 0x20000000) - goto out_sem; - if (new_addr + new_len > TASK_SIZE - PAGE_SIZE) - goto out_sem; - } else if ((ARCH_SUN4C_SUN4 && addr < 0xe0000000 && - addr + new_len > 0x20000000) || - addr + new_len > TASK_SIZE - PAGE_SIZE) { - unsigned long map_flags = 0; - struct file *file = NULL; - - ret = -ENOMEM; - if (!(flags & MREMAP_MAYMOVE)) - goto out_sem; - - vma = find_vma(current->mm, addr); - if (vma) { - if (vma->vm_flags & VM_SHARED) - map_flags |= MAP_SHARED; - file = vma->vm_file; - } - - new_addr = get_unmapped_area(file, addr, new_len, - vma ? vma->vm_pgoff : 0, - map_flags); - ret = new_addr; - if (new_addr & ~PAGE_MASK) - goto out_sem; - flags |= MREMAP_FIXED; - } ret = do_mremap(addr, old_len, new_len, flags, new_addr); -out_sem: up_write(¤t->mm->mmap_sem); out: return ret; --- linux-2.6.24.orig/arch/sparc/kernel/Makefile +++ linux-2.6.24/arch/sparc/kernel/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.62 2000/12/15 00:41:17 davem Exp $ +# # Makefile for the linux kernel. # @@ -12,7 +12,8 @@ sys_sparc.o sunos_asm.o systbls.o \ time.o windows.o cpu.o devices.o sclow.o \ tadpole.o tick14.o ptrace.o sys_solaris.o \ - unaligned.o muldiv.o semaphore.o prom.o of_device.o devres.o + unaligned.o una_asm.o muldiv.o semaphore.o \ + prom.o of_device.o devres.o devres-y = ../../../kernel/irq/devres.o --- linux-2.6.24.orig/arch/s390/lib/uaccess_std.c +++ linux-2.6.24/arch/s390/lib/uaccess_std.c @@ -293,10 +293,10 @@ asm volatile( " sacf 256\n" - " cs %1,%4,0(%5)\n" - "0: lr %0,%1\n" - "1: sacf 0\n" - EX_TABLE(0b,1b) + "0: cs %1,%4,0(%5)\n" + "1: lr %0,%1\n" + "2: sacf 0\n" + EX_TABLE(0b,2b) EX_TABLE(1b,2b) : "=d" (ret), "+d" (oldval), "=m" (*uaddr) : "0" (-EFAULT), "d" (newval), "a" (uaddr), "m" (*uaddr) : "cc", "memory" ); --- linux-2.6.24.orig/arch/s390/lib/uaccess_pt.c +++ linux-2.6.24/arch/s390/lib/uaccess_pt.c @@ -406,6 +406,8 @@ { int ret; + if (!current->mm) + return -EFAULT; spin_lock(¤t->mm->page_table_lock); uaddr = (int __user *) __dat_user_addr((unsigned long) uaddr); if (!uaddr) { --- linux-2.6.24.orig/arch/parisc/kernel/firmware.c +++ linux-2.6.24/arch/parisc/kernel/firmware.c @@ -1080,6 +1080,9 @@ spin_unlock_irqrestore(&pdc_lock, flags); } +/* locked by pdc_console_lock */ +static int __attribute__((aligned(8))) iodc_retbuf[32]; +static char __attribute__((aligned(64))) iodc_dbuf[4096]; /** * pdc_iodc_print - Console print using IODC. @@ -1091,24 +1094,20 @@ * Since the HP console requires CR+LF to perform a 'newline', we translate * "\n" to "\r\n". */ -int pdc_iodc_print(unsigned char *str, unsigned count) +int pdc_iodc_print(const unsigned char *str, unsigned count) { - /* XXX Should we spinlock posx usage */ static int posx; /* for simple TAB-Simulation... */ - int __attribute__((aligned(8))) iodc_retbuf[32]; - char __attribute__((aligned(64))) iodc_dbuf[4096]; unsigned int i; unsigned long flags; - memset(iodc_dbuf, 0, 4096); - for (i = 0; i < count && i < 2048;) { + for (i = 0; i < count && i < 79;) { switch(str[i]) { case '\n': iodc_dbuf[i+0] = '\r'; iodc_dbuf[i+1] = '\n'; i += 2; posx = 0; - break; + goto print; case '\t': while (posx & 7) { iodc_dbuf[i] = ' '; @@ -1124,6 +1123,16 @@ } } + /* if we're at the end of line, and not already inserting a newline, + * insert one anyway. iodc console doesn't claim to support >79 char + * lines. don't account for this in the return value. + */ + if (i == 79 && iodc_dbuf[i-1] != '\n') { + iodc_dbuf[i+0] = '\r'; + iodc_dbuf[i+1] = '\n'; + } + +print: spin_lock_irqsave(&pdc_lock, flags); real32_call(PAGE0->mem_cons.iodc_io, (unsigned long)PAGE0->mem_cons.hpa, ENTRY_IO_COUT, @@ -1142,11 +1151,9 @@ */ int pdc_iodc_getc(void) { - unsigned long flags; - static int __attribute__((aligned(8))) iodc_retbuf[32]; - static char __attribute__((aligned(64))) iodc_dbuf[4096]; int ch; int status; + unsigned long flags; /* Bail if no console input device. */ if (!PAGE0->mem_kbd.iodc_io) --- linux-2.6.24.orig/arch/parisc/kernel/pdc_cons.c +++ linux-2.6.24/arch/parisc/kernel/pdc_cons.c @@ -52,10 +52,18 @@ #include #include /* for iodc_call() proto and friends */ +static spinlock_t pdc_console_lock = SPIN_LOCK_UNLOCKED; static void pdc_console_write(struct console *co, const char *s, unsigned count) { - pdc_iodc_print(s, count); + int i = 0; + unsigned long flags; + + spin_lock_irqsave(&pdc_console_lock, flags); + do { + i += pdc_iodc_print(s + i, count - i); + } while (i < count); + spin_unlock_irqrestore(&pdc_console_lock, flags); } void pdc_printf(const char *fmt, ...) @@ -73,7 +81,14 @@ int pdc_console_poll_key(struct console *co) { - return pdc_iodc_getc(); + int c; + unsigned long flags; + + spin_lock_irqsave(&pdc_console_lock, flags); + c = pdc_iodc_getc(); + spin_unlock_irqrestore(&pdc_console_lock, flags); + + return c; } static int pdc_console_setup(struct console *co, char *options) --- linux-2.6.24.orig/arch/parisc/kernel/signal.c +++ linux-2.6.24/arch/parisc/kernel/signal.c @@ -534,7 +534,8 @@ * Flushing one cacheline is cheap. * "sync" on bigger (> 4 way) boxes is not. */ - flush_icache_range(regs->gr[30], regs->gr[30] + 4); + flush_user_dcache_range(regs->gr[30], regs->gr[30] + 4); + flush_user_icache_range(regs->gr[30], regs->gr[30] + 4); regs->gr[31] = regs->gr[30] + 8; /* Preserve original r28. */ --- linux-2.6.24.orig/arch/ia64/pci/pci.c +++ linux-2.6.24/arch/ia64/pci/pci.c @@ -371,7 +371,12 @@ info.name = name; acpi_walk_resources(device->handle, METHOD_NAME__CRS, add_window, &info); - + /* + * See arch/x86/pci/acpi.c. + * The desired pci bus might already be scanned in a quirk. We + * should handle the case here, but it appears that IA64 hasn't + * such quirk. So we just ignore the case now. + */ pbus = pci_scan_bus_parented(NULL, bus, &pci_root_ops, controller); if (pbus) pcibios_setup_root_windows(pbus, controller); --- linux-2.6.24.orig/arch/ia64/ia32/binfmt_elf32.c +++ linux-2.6.24/arch/ia64/ia32/binfmt_elf32.c @@ -222,7 +222,7 @@ } static unsigned long -elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type) +elf32_map (struct file *filep, unsigned long addr, struct elf_phdr *eppnt, int prot, int type, unsigned long unused) { unsigned long pgoff = (eppnt->p_vaddr) & ~IA32_PAGE_MASK; --- linux-2.6.24.orig/arch/sparc64/mm/tlb.c +++ linux-2.6.24/arch/sparc64/mm/tlb.c @@ -23,10 +23,11 @@ void flush_tlb_pending(void) { - struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); + struct mmu_gather *mp; preempt_disable(); + mp = &__get_cpu_var(mmu_gathers); if (mp->tlb_nr) { flush_tsb_user(mp); --- linux-2.6.24.orig/arch/sparc64/mm/fault.c +++ linux-2.6.24/arch/sparc64/mm/fault.c @@ -244,16 +244,8 @@ if (regs->tstate & TSTATE_PRIV) { const struct exception_table_entry *entry; - if (asi == ASI_P && (insn & 0xc0800000) == 0xc0800000) { - if (insn & 0x2000) - asi = (regs->tstate >> 24); - else - asi = (insn >> 5); - } - - /* Look in asi.h: All _S asis have LS bit set */ - if ((asi & 0x1) && - (entry = search_exception_tables(regs->tpc))) { + entry = search_exception_tables(regs->tpc); + if (entry) { regs->tpc = entry->fixup; regs->tnpc = regs->tpc + 4; return; @@ -294,7 +286,7 @@ unsigned long tpc = regs->tpc; /* Sanity check the PC. */ - if ((tpc >= KERNBASE && tpc < (unsigned long) _etext) || + if ((tpc >= KERNBASE && tpc < (unsigned long) __init_end) || (tpc >= MODULES_VADDR && tpc < MODULES_END)) { /* Valid, no problems... */ } else { --- linux-2.6.24.orig/arch/sparc64/lib/rwsem.S +++ linux-2.6.24/arch/sparc64/lib/rwsem.S @@ -6,7 +6,7 @@ #include - .section .sched.text + .section .sched.text, "ax" .globl __down_read __down_read: --- linux-2.6.24.orig/arch/sparc64/kernel/ldc.c +++ linux-2.6.24/arch/sparc64/kernel/ldc.c @@ -290,7 +290,8 @@ return p + (lp->tx_tail / LDC_PACKET_SIZE); } -static int set_tx_tail(struct ldc_channel *lp, unsigned long tail) +static int set_tx_tail(struct ldc_channel *lp, + unsigned long tail) { unsigned long orig_tail = lp->tx_tail; int limit = 1000; @@ -314,30 +315,6 @@ return -EBUSY; } -/* This just updates the head value in the hypervisor using - * a polling loop with a timeout. The caller takes care of - * upating software state representing the head change, if any. - */ -static int __set_rx_head(struct ldc_channel *lp, unsigned long head) -{ - int limit = 1000; - - while (limit-- > 0) { - unsigned long err; - - err = sun4v_ldc_rx_set_qhead(lp->id, head); - if (!err) - return 0; - - if (err != HV_EWOULDBLOCK) - return -EINVAL; - - udelay(1); - } - - return -EBUSY; -} - static int send_tx_packet(struct ldc_channel *lp, struct ldc_packet *p, unsigned long new_tail) @@ -818,7 +795,7 @@ * everything. */ if (lp->flags & LDC_FLAG_RESET) { - (void) __set_rx_head(lp, lp->rx_tail); + (void) sun4v_ldc_rx_set_qhead(lp->id, lp->rx_tail); goto out; } @@ -847,7 +824,7 @@ while (lp->rx_head != lp->rx_tail) { struct ldc_packet *p; - unsigned long new; + unsigned long new, hv_err; int err; p = lp->rx_base + (lp->rx_head / LDC_PACKET_SIZE); @@ -882,8 +859,8 @@ new = 0; lp->rx_head = new; - err = __set_rx_head(lp, new); - if (err < 0) { + hv_err = sun4v_ldc_rx_set_qhead(lp->id, new); + if (hv_err) { (void) ldc_abort(lp); break; } @@ -1452,8 +1429,8 @@ new = rx_advance(lp, lp->rx_head); lp->rx_head = new; - err = __set_rx_head(lp, new); - if (err < 0) + hv_err = sun4v_ldc_rx_set_qhead(lp->id, new); + if (hv_err) err = -ECONNRESET; else err = LDC_PACKET_SIZE; @@ -1537,6 +1514,7 @@ static int rx_bad_seq(struct ldc_channel *lp, struct ldc_packet *p, struct ldc_packet *first_frag) { + unsigned long hv_err; int err; if (first_frag) @@ -1546,8 +1524,8 @@ if (err) return err; - err = __set_rx_head(lp, lp->rx_tail); - if (err < 0) + hv_err = sun4v_ldc_rx_set_qhead(lp->id, lp->rx_tail); + if (hv_err) return ldc_abort(lp); return 0; @@ -1601,9 +1579,10 @@ static int rx_set_head(struct ldc_channel *lp, unsigned long head) { - int err = __set_rx_head(lp, head); + unsigned long hv_err; - if (err < 0) + hv_err = sun4v_ldc_rx_set_qhead(lp->id, head); + if (hv_err) return ldc_abort(lp); lp->rx_head = head; --- linux-2.6.24.orig/arch/sparc64/kernel/sys_sparc.c +++ linux-2.6.24/arch/sparc64/kernel/sys_sparc.c @@ -540,20 +540,19 @@ return ret; } -int sparc64_mmap_check(unsigned long addr, unsigned long len, - unsigned long flags) +int sparc64_mmap_check(unsigned long addr, unsigned long len) { if (test_thread_flag(TIF_32BIT)) { if (len >= STACK_TOP32) return -EINVAL; - if ((flags & MAP_FIXED) && addr > STACK_TOP32 - len) + if (addr > STACK_TOP32 - len) return -EINVAL; } else { if (len >= VA_EXCLUDE_START) return -EINVAL; - if ((flags & MAP_FIXED) && invalid_64bit_range(addr, len)) + if (invalid_64bit_range(addr, len)) return -EINVAL; } @@ -607,46 +606,19 @@ unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr) { - struct vm_area_struct *vma; unsigned long ret = -EINVAL; if (test_thread_flag(TIF_32BIT)) goto out; if (unlikely(new_len >= VA_EXCLUDE_START)) goto out; - if (unlikely(invalid_64bit_range(addr, old_len))) + if (unlikely(sparc64_mmap_check(addr, old_len))) + goto out; + if (unlikely(sparc64_mmap_check(new_addr, new_len))) goto out; down_write(¤t->mm->mmap_sem); - if (flags & MREMAP_FIXED) { - if (invalid_64bit_range(new_addr, new_len)) - goto out_sem; - } else if (invalid_64bit_range(addr, new_len)) { - unsigned long map_flags = 0; - struct file *file = NULL; - - ret = -ENOMEM; - if (!(flags & MREMAP_MAYMOVE)) - goto out_sem; - - vma = find_vma(current->mm, addr); - if (vma) { - if (vma->vm_flags & VM_SHARED) - map_flags |= MAP_SHARED; - file = vma->vm_file; - } - - /* MREMAP_FIXED checked above. */ - new_addr = get_unmapped_area(file, addr, new_len, - vma ? vma->vm_pgoff : 0, - map_flags); - ret = new_addr; - if (new_addr & ~PAGE_MASK) - goto out_sem; - flags |= MREMAP_FIXED; - } ret = do_mremap(addr, old_len, new_len, flags, new_addr); -out_sem: up_write(¤t->mm->mmap_sem); out: return ret; --- linux-2.6.24.orig/arch/sparc64/kernel/ptrace.c +++ linux-2.6.24/arch/sparc64/kernel/ptrace.c @@ -127,6 +127,8 @@ if (tlb_type == hypervisor) return; + preempt_disable(); + #ifdef DCACHE_ALIASING_POSSIBLE /* If bit 13 of the kernel address we used to access the * user page is the same as the virtual address that page @@ -165,6 +167,8 @@ for (; start < end; start += icache_line_size) flushi(start); } + + preempt_enable(); } asmlinkage void do_ptrace(struct pt_regs *regs) --- linux-2.6.24.orig/arch/sparc64/kernel/pci_common.c +++ linux-2.6.24/arch/sparc64/kernel/pci_common.c @@ -374,7 +374,7 @@ const u32 *vdma = of_get_property(pbm->prom_node, "virtual-dma", NULL); if (vdma) { - struct resource *rp = kmalloc(sizeof(*rp), GFP_KERNEL); + struct resource *rp = kzalloc(sizeof(*rp), GFP_KERNEL); if (!rp) { prom_printf("Cannot allocate IOMMU resource.\n"); --- linux-2.6.24.orig/arch/sparc64/kernel/signal.c +++ linux-2.6.24/arch/sparc64/kernel/signal.c @@ -354,7 +354,7 @@ static inline int save_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) { - unsigned long *fpregs = (unsigned long *)(regs+1); + unsigned long *fpregs = current_thread_info()->fpregs; unsigned long fprs; int err = 0; --- linux-2.6.24.orig/arch/sparc64/kernel/sys_sparc32.c +++ linux-2.6.24/arch/sparc64/kernel/sys_sparc32.c @@ -910,44 +910,15 @@ unsigned long old_len, unsigned long new_len, unsigned long flags, u32 __new_addr) { - struct vm_area_struct *vma; unsigned long ret = -EINVAL; unsigned long new_addr = __new_addr; - if (old_len > STACK_TOP32 || new_len > STACK_TOP32) + if (unlikely(sparc64_mmap_check(addr, old_len))) goto out; - if (addr > STACK_TOP32 - old_len) + if (unlikely(sparc64_mmap_check(new_addr, new_len))) goto out; down_write(¤t->mm->mmap_sem); - if (flags & MREMAP_FIXED) { - if (new_addr > STACK_TOP32 - new_len) - goto out_sem; - } else if (addr > STACK_TOP32 - new_len) { - unsigned long map_flags = 0; - struct file *file = NULL; - - ret = -ENOMEM; - if (!(flags & MREMAP_MAYMOVE)) - goto out_sem; - - vma = find_vma(current->mm, addr); - if (vma) { - if (vma->vm_flags & VM_SHARED) - map_flags |= MAP_SHARED; - file = vma->vm_file; - } - - /* MREMAP_FIXED checked above. */ - new_addr = get_unmapped_area(file, addr, new_len, - vma ? vma->vm_pgoff : 0, - map_flags); - ret = new_addr; - if (new_addr & ~PAGE_MASK) - goto out_sem; - flags |= MREMAP_FIXED; - } ret = do_mremap(addr, old_len, new_len, flags, new_addr); -out_sem: up_write(¤t->mm->mmap_sem); out: return ret; --- linux-2.6.24.orig/arch/x86/lguest/boot.c +++ linux-2.6.24/arch/x86/lguest/boot.c @@ -67,6 +67,7 @@ #include #include #include +#include /* for struct machine_ops */ /*G:010 Welcome to the Guest! * @@ -812,7 +813,7 @@ * rather than virtual addresses, so we use __pa() here. */ static void lguest_power_off(void) { - hcall(LHCALL_CRASH, __pa("Power down"), 0, 0); + hcall(LHCALL_SHUTDOWN, __pa("Power down"), LGUEST_SHUTDOWN_POWEROFF, 0); } /* @@ -822,7 +823,7 @@ */ static int lguest_panic(struct notifier_block *nb, unsigned long l, void *p) { - hcall(LHCALL_CRASH, __pa(p), 0, 0); + hcall(LHCALL_SHUTDOWN, __pa(p), LGUEST_SHUTDOWN_POWEROFF, 0); /* The hcall won't return, but to keep gcc happy, we're "done". */ return NOTIFY_DONE; } @@ -926,6 +927,11 @@ return insn_len; } +static void lguest_restart(char *reason) +{ + hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0); +} + /*G:030 Once we get to lguest_init(), we know we're a Guest. The pv_ops * structures in the kernel provide points for (almost) every routine we have * to override to avoid privileged instructions. */ @@ -1059,6 +1065,7 @@ * the Guest routine to power off. */ pm_power_off = lguest_power_off; + machine_ops.restart = lguest_restart; /* Now we're set up, call start_kernel() in init/main.c and we proceed * to boot as normal. It never returns. */ start_kernel(); --- linux-2.6.24.orig/arch/x86/kvm/kvm_svm.h +++ linux-2.6.24/arch/x86/kvm/kvm_svm.h @@ -0,0 +1,47 @@ +#ifndef __KVM_SVM_H +#define __KVM_SVM_H + +#include +#include +#include +#include +#include + +#include "svm.h" + +static const u32 host_save_user_msrs[] = { +#ifdef CONFIG_X86_64 + MSR_STAR, MSR_LSTAR, MSR_CSTAR, MSR_SYSCALL_MASK, MSR_KERNEL_GS_BASE, + MSR_FS_BASE, +#endif + MSR_IA32_SYSENTER_CS, MSR_IA32_SYSENTER_ESP, MSR_IA32_SYSENTER_EIP, +}; + +#define NR_HOST_SAVE_USER_MSRS ARRAY_SIZE(host_save_user_msrs) +#define NUM_DB_REGS 4 + +struct kvm_vcpu; + +struct vcpu_svm { + struct kvm_vcpu vcpu; + struct vmcb *vmcb; + unsigned long vmcb_pa; + struct svm_cpu_data *svm_data; + uint64_t asid_generation; + + unsigned long db_regs[NUM_DB_REGS]; + + u64 next_rip; + + u64 host_user_msrs[NR_HOST_SAVE_USER_MSRS]; + u64 host_gs_base; + unsigned long host_cr2; + unsigned long host_db_regs[NUM_DB_REGS]; + unsigned long host_dr6; + unsigned long host_dr7; + + u32 *msrpm; +}; + +#endif + --- linux-2.6.24.orig/arch/x86/kvm/segment_descriptor.h +++ linux-2.6.24/arch/x86/kvm/segment_descriptor.h @@ -0,0 +1,29 @@ +#ifndef __SEGMENT_DESCRIPTOR_H +#define __SEGMENT_DESCRIPTOR_H + +struct segment_descriptor { + u16 limit_low; + u16 base_low; + u8 base_mid; + u8 type : 4; + u8 system : 1; + u8 dpl : 2; + u8 present : 1; + u8 limit_high : 4; + u8 avl : 1; + u8 long_mode : 1; + u8 default_op : 1; + u8 granularity : 1; + u8 base_high; +} __attribute__((packed)); + +#ifdef CONFIG_X86_64 +/* LDT or TSS descriptor in the GDT. 16 bytes. */ +struct segment_descriptor_64 { + struct segment_descriptor s; + u32 base_higher; + u32 pad_zero; +}; + +#endif +#endif --- linux-2.6.24.orig/arch/x86/kvm/lapic.h +++ linux-2.6.24/arch/x86/kvm/lapic.h @@ -0,0 +1,50 @@ +#ifndef __KVM_X86_LAPIC_H +#define __KVM_X86_LAPIC_H + +#include "iodev.h" + +#include + +struct kvm_lapic { + unsigned long base_address; + struct kvm_io_device dev; + struct { + atomic_t pending; + s64 period; /* unit: ns */ + u32 divide_count; + ktime_t last_update; + struct hrtimer dev; + } timer; + struct kvm_vcpu *vcpu; + struct page *regs_page; + void *regs; + gpa_t vapic_addr; + struct page *vapic_page; +}; +int kvm_create_lapic(struct kvm_vcpu *vcpu); +void kvm_free_lapic(struct kvm_vcpu *vcpu); + +int kvm_apic_has_interrupt(struct kvm_vcpu *vcpu); +int kvm_apic_accept_pic_intr(struct kvm_vcpu *vcpu); +int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu); +void kvm_lapic_reset(struct kvm_vcpu *vcpu); +u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu); +void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8); +void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value); + +int kvm_apic_match_physical_addr(struct kvm_lapic *apic, u16 dest); +int kvm_apic_match_logical_addr(struct kvm_lapic *apic, u8 mda); +int kvm_apic_set_irq(struct kvm_vcpu *vcpu, u8 vec, u8 trig); + +u64 kvm_get_apic_base(struct kvm_vcpu *vcpu); +void kvm_set_apic_base(struct kvm_vcpu *vcpu, u64 data); +void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu); +int kvm_lapic_enabled(struct kvm_vcpu *vcpu); +int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu); +void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec); + +void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr); +void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu); +void kvm_lapic_sync_to_vapic(struct kvm_vcpu *vcpu); + +#endif --- linux-2.6.24.orig/arch/x86/kvm/irq.h +++ linux-2.6.24/arch/x86/kvm/irq.h @@ -0,0 +1,88 @@ +/* + * irq.h: in kernel interrupt controller related definitions + * Copyright (c) 2007, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * Authors: + * Yaozu (Eddie) Dong + * + */ + +#ifndef __IRQ_H +#define __IRQ_H + +#include +#include +#include + +#include "iodev.h" +#include "ioapic.h" +#include "lapic.h" + +struct kvm; +struct kvm_vcpu; + +typedef void irq_request_func(void *opaque, int level); + +struct kvm_kpic_state { + u8 last_irr; /* edge detection */ + u8 irr; /* interrupt request register */ + u8 imr; /* interrupt mask register */ + u8 isr; /* interrupt service register */ + u8 priority_add; /* highest irq priority */ + u8 irq_base; + u8 read_reg_select; + u8 poll; + u8 special_mask; + u8 init_state; + u8 auto_eoi; + u8 rotate_on_auto_eoi; + u8 special_fully_nested_mode; + u8 init4; /* true if 4 byte init */ + u8 elcr; /* PIIX edge/trigger selection */ + u8 elcr_mask; + struct kvm_pic *pics_state; +}; + +struct kvm_pic { + struct kvm_kpic_state pics[2]; /* 0 is master pic, 1 is slave pic */ + irq_request_func *irq_request; + void *irq_request_opaque; + int output; /* intr from master PIC */ + struct kvm_io_device dev; +}; + +struct kvm_pic *kvm_create_pic(struct kvm *kvm); +void kvm_pic_set_irq(void *opaque, int irq, int level); +int kvm_pic_read_irq(struct kvm_pic *s); +void kvm_pic_update_irq(struct kvm_pic *s); + +static inline struct kvm_pic *pic_irqchip(struct kvm *kvm) +{ + return kvm->arch.vpic; +} + +static inline int irqchip_in_kernel(struct kvm *kvm) +{ + return pic_irqchip(kvm) != NULL; +} + +void kvm_pic_reset(struct kvm_kpic_state *s); + +void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec); +void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu); +void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu); +void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu); + +#endif --- linux-2.6.24.orig/arch/x86/kvm/paging_tmpl.h +++ linux-2.6.24/arch/x86/kvm/paging_tmpl.h @@ -0,0 +1,505 @@ +/* + * Kernel-based Virtual Machine driver for Linux + * + * This module enables machines with Intel VT-x extensions to run virtual + * machines without emulation or binary translation. + * + * MMU support + * + * Copyright (C) 2006 Qumranet, Inc. + * + * Authors: + * Yaniv Kamay + * Avi Kivity + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +/* + * We need the mmu code to access both 32-bit and 64-bit guest ptes, + * so the code in this file is compiled twice, once per pte size. + */ + +#if PTTYPE == 64 + #define pt_element_t u64 + #define guest_walker guest_walker64 + #define FNAME(name) paging##64_##name + #define PT_BASE_ADDR_MASK PT64_BASE_ADDR_MASK + #define PT_DIR_BASE_ADDR_MASK PT64_DIR_BASE_ADDR_MASK + #define PT_INDEX(addr, level) PT64_INDEX(addr, level) + #define SHADOW_PT_INDEX(addr, level) PT64_INDEX(addr, level) + #define PT_LEVEL_MASK(level) PT64_LEVEL_MASK(level) + #define PT_LEVEL_BITS PT64_LEVEL_BITS + #ifdef CONFIG_X86_64 + #define PT_MAX_FULL_LEVELS 4 + #define CMPXCHG cmpxchg + #else + #define CMPXCHG cmpxchg64 + #define PT_MAX_FULL_LEVELS 2 + #endif +#elif PTTYPE == 32 + #define pt_element_t u32 + #define guest_walker guest_walker32 + #define FNAME(name) paging##32_##name + #define PT_BASE_ADDR_MASK PT32_BASE_ADDR_MASK + #define PT_DIR_BASE_ADDR_MASK PT32_DIR_BASE_ADDR_MASK + #define PT_INDEX(addr, level) PT32_INDEX(addr, level) + #define SHADOW_PT_INDEX(addr, level) PT64_INDEX(addr, level) + #define PT_LEVEL_MASK(level) PT32_LEVEL_MASK(level) + #define PT_LEVEL_BITS PT32_LEVEL_BITS + #define PT_MAX_FULL_LEVELS 2 + #define CMPXCHG cmpxchg +#else + #error Invalid PTTYPE value +#endif + +#define gpte_to_gfn FNAME(gpte_to_gfn) +#define gpte_to_gfn_pde FNAME(gpte_to_gfn_pde) + +/* + * The guest_walker structure emulates the behavior of the hardware page + * table walker. + */ +struct guest_walker { + int level; + gfn_t table_gfn[PT_MAX_FULL_LEVELS]; + pt_element_t ptes[PT_MAX_FULL_LEVELS]; + gpa_t pte_gpa[PT_MAX_FULL_LEVELS]; + unsigned pt_access; + unsigned pte_access; + gfn_t gfn; + u32 error_code; +}; + +static gfn_t gpte_to_gfn(pt_element_t gpte) +{ + return (gpte & PT_BASE_ADDR_MASK) >> PAGE_SHIFT; +} + +static gfn_t gpte_to_gfn_pde(pt_element_t gpte) +{ + return (gpte & PT_DIR_BASE_ADDR_MASK) >> PAGE_SHIFT; +} + +static bool FNAME(cmpxchg_gpte)(struct kvm *kvm, + gfn_t table_gfn, unsigned index, + pt_element_t orig_pte, pt_element_t new_pte) +{ + pt_element_t ret; + pt_element_t *table; + struct page *page; + + down_read(¤t->mm->mmap_sem); + page = gfn_to_page(kvm, table_gfn); + up_read(¤t->mm->mmap_sem); + + table = kmap_atomic(page, KM_USER0); + + ret = CMPXCHG(&table[index], orig_pte, new_pte); + + kunmap_atomic(table, KM_USER0); + + kvm_release_page_dirty(page); + + return (ret != orig_pte); +} + +static unsigned FNAME(gpte_access)(struct kvm_vcpu *vcpu, pt_element_t gpte) +{ + unsigned access; + + access = (gpte & (PT_WRITABLE_MASK | PT_USER_MASK)) | ACC_EXEC_MASK; +#if PTTYPE == 64 + if (is_nx(vcpu)) + access &= ~(gpte >> PT64_NX_SHIFT); +#endif + return access; +} + +/* + * Fetch a guest pte for a guest virtual address + */ +static int FNAME(walk_addr)(struct guest_walker *walker, + struct kvm_vcpu *vcpu, gva_t addr, + int write_fault, int user_fault, int fetch_fault) +{ + pt_element_t pte; + gfn_t table_gfn; + unsigned index, pt_access, pte_access; + gpa_t pte_gpa; + + pgprintk("%s: addr %lx\n", __FUNCTION__, addr); +walk: + walker->level = vcpu->arch.mmu.root_level; + pte = vcpu->arch.cr3; +#if PTTYPE == 64 + if (!is_long_mode(vcpu)) { + pte = vcpu->arch.pdptrs[(addr >> 30) & 3]; + if (!is_present_pte(pte)) + goto not_present; + --walker->level; + } +#endif + ASSERT((!is_long_mode(vcpu) && is_pae(vcpu)) || + (vcpu->arch.cr3 & CR3_NONPAE_RESERVED_BITS) == 0); + + pt_access = ACC_ALL; + + for (;;) { + index = PT_INDEX(addr, walker->level); + + table_gfn = gpte_to_gfn(pte); + pte_gpa = gfn_to_gpa(table_gfn); + pte_gpa += index * sizeof(pt_element_t); + walker->table_gfn[walker->level - 1] = table_gfn; + walker->pte_gpa[walker->level - 1] = pte_gpa; + pgprintk("%s: table_gfn[%d] %lx\n", __FUNCTION__, + walker->level - 1, table_gfn); + + kvm_read_guest(vcpu->kvm, pte_gpa, &pte, sizeof(pte)); + + if (!is_present_pte(pte)) + goto not_present; + + if (write_fault && !is_writeble_pte(pte)) + if (user_fault || is_write_protection(vcpu)) + goto access_error; + + if (user_fault && !(pte & PT_USER_MASK)) + goto access_error; + +#if PTTYPE == 64 + if (fetch_fault && is_nx(vcpu) && (pte & PT64_NX_MASK)) + goto access_error; +#endif + + if (!(pte & PT_ACCESSED_MASK)) { + mark_page_dirty(vcpu->kvm, table_gfn); + if (FNAME(cmpxchg_gpte)(vcpu->kvm, table_gfn, + index, pte, pte|PT_ACCESSED_MASK)) + goto walk; + pte |= PT_ACCESSED_MASK; + } + + pte_access = pt_access & FNAME(gpte_access)(vcpu, pte); + + walker->ptes[walker->level - 1] = pte; + + if (walker->level == PT_PAGE_TABLE_LEVEL) { + walker->gfn = gpte_to_gfn(pte); + break; + } + + if (walker->level == PT_DIRECTORY_LEVEL + && (pte & PT_PAGE_SIZE_MASK) + && (PTTYPE == 64 || is_pse(vcpu))) { + walker->gfn = gpte_to_gfn_pde(pte); + walker->gfn += PT_INDEX(addr, PT_PAGE_TABLE_LEVEL); + if (PTTYPE == 32 && is_cpuid_PSE36()) + walker->gfn += pse36_gfn_delta(pte); + break; + } + + pt_access = pte_access; + --walker->level; + } + + if (write_fault && !is_dirty_pte(pte)) { + bool ret; + + mark_page_dirty(vcpu->kvm, table_gfn); + ret = FNAME(cmpxchg_gpte)(vcpu->kvm, table_gfn, index, pte, + pte|PT_DIRTY_MASK); + if (ret) + goto walk; + pte |= PT_DIRTY_MASK; + kvm_mmu_pte_write(vcpu, pte_gpa, (u8 *)&pte, sizeof(pte)); + walker->ptes[walker->level - 1] = pte; + } + + walker->pt_access = pt_access; + walker->pte_access = pte_access; + pgprintk("%s: pte %llx pte_access %x pt_access %x\n", + __FUNCTION__, (u64)pte, pt_access, pte_access); + return 1; + +not_present: + walker->error_code = 0; + goto err; + +access_error: + walker->error_code = PFERR_PRESENT_MASK; + +err: + if (write_fault) + walker->error_code |= PFERR_WRITE_MASK; + if (user_fault) + walker->error_code |= PFERR_USER_MASK; + if (fetch_fault) + walker->error_code |= PFERR_FETCH_MASK; + return 0; +} + +static void FNAME(update_pte)(struct kvm_vcpu *vcpu, struct kvm_mmu_page *page, + u64 *spte, const void *pte) +{ + pt_element_t gpte; + unsigned pte_access; + struct page *npage; + int largepage = vcpu->arch.update_pte.largepage; + + gpte = *(const pt_element_t *)pte; + if (~gpte & (PT_PRESENT_MASK | PT_ACCESSED_MASK)) { + if (!is_present_pte(gpte)) + set_shadow_pte(spte, shadow_notrap_nonpresent_pte); + return; + } + pgprintk("%s: gpte %llx spte %p\n", __FUNCTION__, (u64)gpte, spte); + pte_access = page->role.access & FNAME(gpte_access)(vcpu, gpte); + if (gpte_to_gfn(gpte) != vcpu->arch.update_pte.gfn) + return; + npage = vcpu->arch.update_pte.page; + if (!npage) + return; + get_page(npage); + mmu_set_spte(vcpu, spte, page->role.access, pte_access, 0, 0, + gpte & PT_DIRTY_MASK, NULL, largepage, gpte_to_gfn(gpte), + npage); +} + +/* + * Fetch a shadow pte for a specific level in the paging hierarchy. + */ +static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr, + struct guest_walker *walker, + int user_fault, int write_fault, int largepage, + int *ptwrite, struct page *page) +{ + hpa_t shadow_addr; + int level; + u64 *shadow_ent; + unsigned access = walker->pt_access; + + if (!is_present_pte(walker->ptes[walker->level - 1])) + return NULL; + + shadow_addr = vcpu->arch.mmu.root_hpa; + level = vcpu->arch.mmu.shadow_root_level; + if (level == PT32E_ROOT_LEVEL) { + shadow_addr = vcpu->arch.mmu.pae_root[(addr >> 30) & 3]; + shadow_addr &= PT64_BASE_ADDR_MASK; + --level; + } + + for (; ; level--) { + u32 index = SHADOW_PT_INDEX(addr, level); + struct kvm_mmu_page *shadow_page; + u64 shadow_pte; + int metaphysical; + gfn_t table_gfn; + bool new_page = 0; + + shadow_ent = ((u64 *)__va(shadow_addr)) + index; + if (level == PT_PAGE_TABLE_LEVEL) + break; + + if (largepage && level == PT_DIRECTORY_LEVEL) + break; + + if (is_shadow_present_pte(*shadow_ent) + && !is_large_pte(*shadow_ent)) { + shadow_addr = *shadow_ent & PT64_BASE_ADDR_MASK; + continue; + } + + if (is_large_pte(*shadow_ent)) + rmap_remove(vcpu->kvm, shadow_ent); + + if (level - 1 == PT_PAGE_TABLE_LEVEL + && walker->level == PT_DIRECTORY_LEVEL) { + metaphysical = 1; + if (!is_dirty_pte(walker->ptes[level - 1])) + access &= ~ACC_WRITE_MASK; + table_gfn = gpte_to_gfn(walker->ptes[level - 1]); + } else { + metaphysical = 0; + table_gfn = walker->table_gfn[level - 2]; + } + shadow_page = kvm_mmu_get_page(vcpu, table_gfn, addr, level-1, + metaphysical, access, + shadow_ent, &new_page); + if (new_page && !metaphysical) { + int r; + pt_element_t curr_pte; + r = kvm_read_guest_atomic(vcpu->kvm, + walker->pte_gpa[level - 2], + &curr_pte, sizeof(curr_pte)); + if (r || curr_pte != walker->ptes[level - 2]) { + kvm_release_page_clean(page); + return NULL; + } + } + shadow_addr = __pa(shadow_page->spt); + shadow_pte = shadow_addr | PT_PRESENT_MASK | PT_ACCESSED_MASK + | PT_WRITABLE_MASK | PT_USER_MASK; + *shadow_ent = shadow_pte; + } + + mmu_set_spte(vcpu, shadow_ent, access, walker->pte_access & access, + user_fault, write_fault, + walker->ptes[walker->level-1] & PT_DIRTY_MASK, + ptwrite, largepage, walker->gfn, page); + + return shadow_ent; +} + +/* + * Page fault handler. There are several causes for a page fault: + * - there is no shadow pte for the guest pte + * - write access through a shadow pte marked read only so that we can set + * the dirty bit + * - write access to a shadow pte marked read only so we can update the page + * dirty bitmap, when userspace requests it + * - mmio access; in this case we will never install a present shadow pte + * - normal guest page fault due to the guest pte marked not present, not + * writable, or not executable + * + * Returns: 1 if we need to emulate the instruction, 0 otherwise, or + * a negative value on error. + */ +static int FNAME(page_fault)(struct kvm_vcpu *vcpu, gva_t addr, + u32 error_code) +{ + int write_fault = error_code & PFERR_WRITE_MASK; + int user_fault = error_code & PFERR_USER_MASK; + int fetch_fault = error_code & PFERR_FETCH_MASK; + struct guest_walker walker; + u64 *shadow_pte; + int write_pt = 0; + int r; + struct page *page; + int largepage = 0; + + pgprintk("%s: addr %lx err %x\n", __FUNCTION__, addr, error_code); + kvm_mmu_audit(vcpu, "pre page fault"); + + r = mmu_topup_memory_caches(vcpu); + if (r) + return r; + + down_read(&vcpu->kvm->slots_lock); + /* + * Look up the shadow pte for the faulting address. + */ + r = FNAME(walk_addr)(&walker, vcpu, addr, write_fault, user_fault, + fetch_fault); + + /* + * The page is not mapped by the guest. Let the guest handle it. + */ + if (!r) { + pgprintk("%s: guest page fault\n", __FUNCTION__); + inject_page_fault(vcpu, addr, walker.error_code); + vcpu->arch.last_pt_write_count = 0; /* reset fork detector */ + up_read(&vcpu->kvm->slots_lock); + return 0; + } + + down_read(¤t->mm->mmap_sem); + if (walker.level == PT_DIRECTORY_LEVEL) { + gfn_t large_gfn; + large_gfn = walker.gfn & ~(KVM_PAGES_PER_HPAGE-1); + if (is_largepage_backed(vcpu, large_gfn)) { + walker.gfn = large_gfn; + largepage = 1; + } + } + page = gfn_to_page(vcpu->kvm, walker.gfn); + up_read(¤t->mm->mmap_sem); + + /* mmio */ + if (is_error_page(page)) { + pgprintk("gfn %x is mmio\n", walker.gfn); + kvm_release_page_clean(page); + up_read(&vcpu->kvm->slots_lock); + return 1; + } + + spin_lock(&vcpu->kvm->mmu_lock); + kvm_mmu_free_some_pages(vcpu); + shadow_pte = FNAME(fetch)(vcpu, addr, &walker, user_fault, write_fault, + largepage, &write_pt, page); + + pgprintk("%s: shadow pte %p %llx ptwrite %d\n", __FUNCTION__, + shadow_pte, *shadow_pte, write_pt); + + if (!write_pt) + vcpu->arch.last_pt_write_count = 0; /* reset fork detector */ + + ++vcpu->stat.pf_fixed; + kvm_mmu_audit(vcpu, "post page fault (fixed)"); + spin_unlock(&vcpu->kvm->mmu_lock); + up_read(&vcpu->kvm->slots_lock); + + return write_pt; +} + +static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr) +{ + struct guest_walker walker; + gpa_t gpa = UNMAPPED_GVA; + int r; + + r = FNAME(walk_addr)(&walker, vcpu, vaddr, 0, 0, 0); + + if (r) { + gpa = gfn_to_gpa(walker.gfn); + gpa |= vaddr & ~PAGE_MASK; + } + + return gpa; +} + +static void FNAME(prefetch_page)(struct kvm_vcpu *vcpu, + struct kvm_mmu_page *sp) +{ + int i, offset = 0, r = 0; + pt_element_t pt; + + if (sp->role.metaphysical + || (PTTYPE == 32 && sp->role.level > PT_PAGE_TABLE_LEVEL)) { + nonpaging_prefetch_page(vcpu, sp); + return; + } + + if (PTTYPE == 32) + offset = sp->role.quadrant << PT64_LEVEL_BITS; + + for (i = 0; i < PT64_ENT_PER_PAGE; ++i) { + gpa_t pte_gpa = gfn_to_gpa(sp->gfn); + pte_gpa += (i+offset) * sizeof(pt_element_t); + + r = kvm_read_guest_atomic(vcpu->kvm, pte_gpa, &pt, + sizeof(pt_element_t)); + if (r || is_present_pte(pt)) + sp->spt[i] = shadow_trap_nonpresent_pte; + else + sp->spt[i] = shadow_notrap_nonpresent_pte; + } +} + +#undef pt_element_t +#undef guest_walker +#undef FNAME +#undef PT_BASE_ADDR_MASK +#undef PT_INDEX +#undef SHADOW_PT_INDEX +#undef PT_LEVEL_MASK +#undef PT_DIR_BASE_ADDR_MASK +#undef PT_LEVEL_BITS +#undef PT_MAX_FULL_LEVELS +#undef gpte_to_gfn +#undef gpte_to_gfn_pde +#undef CMPXCHG --- linux-2.6.24.orig/arch/x86/kvm/x86_emulate.c +++ linux-2.6.24/arch/x86/kvm/x86_emulate.c @@ -0,0 +1,1942 @@ +/****************************************************************************** + * x86_emulate.c + * + * Generic x86 (32-bit and 64-bit) instruction decoder and emulator. + * + * Copyright (c) 2005 Keir Fraser + * + * Linux coding style, mod r/m decoder, segment base fixes, real-mode + * privileged instructions: + * + * Copyright (C) 2006 Qumranet + * + * Avi Kivity + * Yaniv Kamay + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + * From: xen-unstable 10676:af9809f51f81a3c43f276f00c81a52ef558afda4 + */ + +#ifndef __KERNEL__ +#include +#include +#include +#define DPRINTF(_f, _a ...) printf(_f , ## _a) +#else +#include +#define DPRINTF(x...) do {} while (0) +#endif +#include +#include + +/* + * Opcode effective-address decode tables. + * Note that we only emulate instructions that have at least one memory + * operand (excluding implicit stack references). We assume that stack + * references and instruction fetches will never occur in special memory + * areas that require emulation. So, for example, 'mov ,' need + * not be handled. + */ + +/* Operand sizes: 8-bit operands or specified/overridden size. */ +#define ByteOp (1<<0) /* 8-bit operands. */ +/* Destination operand type. */ +#define ImplicitOps (1<<1) /* Implicit in opcode. No generic decode. */ +#define DstReg (2<<1) /* Register operand. */ +#define DstMem (3<<1) /* Memory operand. */ +#define DstMask (3<<1) +/* Source operand type. */ +#define SrcNone (0<<3) /* No source operand. */ +#define SrcImplicit (0<<3) /* Source operand is implicit in the opcode. */ +#define SrcReg (1<<3) /* Register operand. */ +#define SrcMem (2<<3) /* Memory operand. */ +#define SrcMem16 (3<<3) /* Memory operand (16-bit). */ +#define SrcMem32 (4<<3) /* Memory operand (32-bit). */ +#define SrcImm (5<<3) /* Immediate operand. */ +#define SrcImmByte (6<<3) /* 8-bit sign-extended immediate operand. */ +#define SrcMask (7<<3) +/* Generic ModRM decode. */ +#define ModRM (1<<6) +/* Destination is only written; never read. */ +#define Mov (1<<7) +#define BitOp (1<<8) +#define MemAbs (1<<9) /* Memory operand is absolute displacement */ +#define String (1<<10) /* String instruction (rep capable) */ +#define Stack (1<<11) /* Stack instruction (push/pop) */ +#define Group (1<<14) /* Bits 3:5 of modrm byte extend opcode */ +#define GroupDual (1<<15) /* Alternate decoding of mod == 3 */ +#define GroupMask 0xff /* Group number stored in bits 0:7 */ + +enum { + Group1_80, Group1_81, Group1_82, Group1_83, + Group1A, Group3_Byte, Group3, Group4, Group5, Group7, +}; + +static u16 opcode_table[256] = { + /* 0x00 - 0x07 */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + 0, 0, 0, 0, + /* 0x08 - 0x0F */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + 0, 0, 0, 0, + /* 0x10 - 0x17 */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + 0, 0, 0, 0, + /* 0x18 - 0x1F */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + 0, 0, 0, 0, + /* 0x20 - 0x27 */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + SrcImmByte, SrcImm, 0, 0, + /* 0x28 - 0x2F */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + 0, 0, 0, 0, + /* 0x30 - 0x37 */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + 0, 0, 0, 0, + /* 0x38 - 0x3F */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstReg | SrcMem | ModRM, DstReg | SrcMem | ModRM, + 0, 0, 0, 0, + /* 0x40 - 0x47 */ + DstReg, DstReg, DstReg, DstReg, DstReg, DstReg, DstReg, DstReg, + /* 0x48 - 0x4F */ + DstReg, DstReg, DstReg, DstReg, DstReg, DstReg, DstReg, DstReg, + /* 0x50 - 0x57 */ + SrcReg | Stack, SrcReg | Stack, SrcReg | Stack, SrcReg | Stack, + SrcReg | Stack, SrcReg | Stack, SrcReg | Stack, SrcReg | Stack, + /* 0x58 - 0x5F */ + DstReg | Stack, DstReg | Stack, DstReg | Stack, DstReg | Stack, + DstReg | Stack, DstReg | Stack, DstReg | Stack, DstReg | Stack, + /* 0x60 - 0x67 */ + 0, 0, 0, DstReg | SrcMem32 | ModRM | Mov /* movsxd (x86/64) */ , + 0, 0, 0, 0, + /* 0x68 - 0x6F */ + 0, 0, ImplicitOps | Mov | Stack, 0, + SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* insb, insw/insd */ + SrcNone | ByteOp | ImplicitOps, SrcNone | ImplicitOps, /* outsb, outsw/outsd */ + /* 0x70 - 0x77 */ + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + /* 0x78 - 0x7F */ + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + /* 0x80 - 0x87 */ + Group | Group1_80, Group | Group1_81, + Group | Group1_82, Group | Group1_83, + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, + /* 0x88 - 0x8F */ + ByteOp | DstMem | SrcReg | ModRM | Mov, DstMem | SrcReg | ModRM | Mov, + ByteOp | DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + 0, ModRM | DstReg, 0, Group | Group1A, + /* 0x90 - 0x9F */ + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, ImplicitOps | Stack, ImplicitOps | Stack, 0, 0, + /* 0xA0 - 0xA7 */ + ByteOp | DstReg | SrcMem | Mov | MemAbs, DstReg | SrcMem | Mov | MemAbs, + ByteOp | DstMem | SrcReg | Mov | MemAbs, DstMem | SrcReg | Mov | MemAbs, + ByteOp | ImplicitOps | Mov | String, ImplicitOps | Mov | String, + ByteOp | ImplicitOps | String, ImplicitOps | String, + /* 0xA8 - 0xAF */ + 0, 0, ByteOp | ImplicitOps | Mov | String, ImplicitOps | Mov | String, + ByteOp | ImplicitOps | Mov | String, ImplicitOps | Mov | String, + ByteOp | ImplicitOps | String, ImplicitOps | String, + /* 0xB0 - 0xBF */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xC0 - 0xC7 */ + ByteOp | DstMem | SrcImm | ModRM, DstMem | SrcImmByte | ModRM, + 0, ImplicitOps | Stack, 0, 0, + ByteOp | DstMem | SrcImm | ModRM | Mov, DstMem | SrcImm | ModRM | Mov, + /* 0xC8 - 0xCF */ + 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xD0 - 0xD7 */ + ByteOp | DstMem | SrcImplicit | ModRM, DstMem | SrcImplicit | ModRM, + ByteOp | DstMem | SrcImplicit | ModRM, DstMem | SrcImplicit | ModRM, + 0, 0, 0, 0, + /* 0xD8 - 0xDF */ + 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xE0 - 0xE7 */ + 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xE8 - 0xEF */ + ImplicitOps | Stack, SrcImm|ImplicitOps, 0, SrcImmByte|ImplicitOps, + 0, 0, 0, 0, + /* 0xF0 - 0xF7 */ + 0, 0, 0, 0, + ImplicitOps, ImplicitOps, Group | Group3_Byte, Group | Group3, + /* 0xF8 - 0xFF */ + ImplicitOps, 0, ImplicitOps, ImplicitOps, + 0, 0, Group | Group4, Group | Group5, +}; + +static u16 twobyte_table[256] = { + /* 0x00 - 0x0F */ + 0, Group | GroupDual | Group7, 0, 0, 0, 0, ImplicitOps, 0, + ImplicitOps, ImplicitOps, 0, 0, 0, ImplicitOps | ModRM, 0, 0, + /* 0x10 - 0x1F */ + 0, 0, 0, 0, 0, 0, 0, 0, ImplicitOps | ModRM, 0, 0, 0, 0, 0, 0, 0, + /* 0x20 - 0x2F */ + ModRM | ImplicitOps, ModRM, ModRM | ImplicitOps, ModRM, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + /* 0x30 - 0x3F */ + ImplicitOps, 0, ImplicitOps, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0x40 - 0x47 */ + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + /* 0x48 - 0x4F */ + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem | ModRM | Mov, DstReg | SrcMem | ModRM | Mov, + /* 0x50 - 0x5F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0x60 - 0x6F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0x70 - 0x7F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0x80 - 0x8F */ + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + /* 0x90 - 0x9F */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xA0 - 0xA7 */ + 0, 0, 0, DstMem | SrcReg | ModRM | BitOp, 0, 0, 0, 0, + /* 0xA8 - 0xAF */ + 0, 0, 0, DstMem | SrcReg | ModRM | BitOp, 0, 0, 0, 0, + /* 0xB0 - 0xB7 */ + ByteOp | DstMem | SrcReg | ModRM, DstMem | SrcReg | ModRM, 0, + DstMem | SrcReg | ModRM | BitOp, + 0, 0, ByteOp | DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem16 | ModRM | Mov, + /* 0xB8 - 0xBF */ + 0, 0, DstMem | SrcImmByte | ModRM, DstMem | SrcReg | ModRM | BitOp, + 0, 0, ByteOp | DstReg | SrcMem | ModRM | Mov, + DstReg | SrcMem16 | ModRM | Mov, + /* 0xC0 - 0xCF */ + 0, 0, 0, DstMem | SrcReg | ModRM | Mov, 0, 0, 0, ImplicitOps | ModRM, + 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xD0 - 0xDF */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xE0 - 0xEF */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + /* 0xF0 - 0xFF */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static u16 group_table[] = { + [Group1_80*8] = + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + [Group1_81*8] = + DstMem | SrcImm | ModRM, DstMem | SrcImm | ModRM, + DstMem | SrcImm | ModRM, DstMem | SrcImm | ModRM, + DstMem | SrcImm | ModRM, DstMem | SrcImm | ModRM, + DstMem | SrcImm | ModRM, DstMem | SrcImm | ModRM, + [Group1_82*8] = + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + ByteOp | DstMem | SrcImm | ModRM, ByteOp | DstMem | SrcImm | ModRM, + [Group1_83*8] = + DstMem | SrcImmByte | ModRM, DstMem | SrcImmByte | ModRM, + DstMem | SrcImmByte | ModRM, DstMem | SrcImmByte | ModRM, + DstMem | SrcImmByte | ModRM, DstMem | SrcImmByte | ModRM, + DstMem | SrcImmByte | ModRM, DstMem | SrcImmByte | ModRM, + [Group1A*8] = + DstMem | SrcNone | ModRM | Mov | Stack, 0, 0, 0, 0, 0, 0, 0, + [Group3_Byte*8] = + ByteOp | SrcImm | DstMem | ModRM, 0, + ByteOp | DstMem | SrcNone | ModRM, ByteOp | DstMem | SrcNone | ModRM, + 0, 0, 0, 0, + [Group3*8] = + DstMem | SrcImm | ModRM | SrcImm, 0, + DstMem | SrcNone | ModRM, ByteOp | DstMem | SrcNone | ModRM, + 0, 0, 0, 0, + [Group4*8] = + ByteOp | DstMem | SrcNone | ModRM, ByteOp | DstMem | SrcNone | ModRM, + 0, 0, 0, 0, 0, 0, + [Group5*8] = + DstMem | SrcNone | ModRM, DstMem | SrcNone | ModRM, 0, 0, + SrcMem | ModRM, 0, SrcMem | ModRM | Stack, 0, + [Group7*8] = + 0, 0, ModRM | SrcMem, ModRM | SrcMem, + SrcNone | ModRM | DstMem, 0, SrcMem | ModRM, SrcMem | ModRM | ByteOp, +}; + +static u16 group2_table[] = { + [Group7*8] = + SrcNone | ModRM, 0, 0, 0, SrcNone | ModRM | DstMem, 0, SrcMem | ModRM, 0, +}; + +/* EFLAGS bit definitions. */ +#define EFLG_OF (1<<11) +#define EFLG_DF (1<<10) +#define EFLG_SF (1<<7) +#define EFLG_ZF (1<<6) +#define EFLG_AF (1<<4) +#define EFLG_PF (1<<2) +#define EFLG_CF (1<<0) + +/* + * Instruction emulation: + * Most instructions are emulated directly via a fragment of inline assembly + * code. This allows us to save/restore EFLAGS and thus very easily pick up + * any modified flags. + */ + +#if defined(CONFIG_X86_64) +#define _LO32 "k" /* force 32-bit operand */ +#define _STK "%%rsp" /* stack pointer */ +#elif defined(__i386__) +#define _LO32 "" /* force 32-bit operand */ +#define _STK "%%esp" /* stack pointer */ +#endif + +/* + * These EFLAGS bits are restored from saved value during emulation, and + * any changes are written back to the saved value after emulation. + */ +#define EFLAGS_MASK (EFLG_OF|EFLG_SF|EFLG_ZF|EFLG_AF|EFLG_PF|EFLG_CF) + +/* Before executing instruction: restore necessary bits in EFLAGS. */ +#define _PRE_EFLAGS(_sav, _msk, _tmp) \ + /* EFLAGS = (_sav & _msk) | (EFLAGS & ~_msk); _sav &= ~_msk; */ \ + "movl %"_sav",%"_LO32 _tmp"; " \ + "push %"_tmp"; " \ + "push %"_tmp"; " \ + "movl %"_msk",%"_LO32 _tmp"; " \ + "andl %"_LO32 _tmp",("_STK"); " \ + "pushf; " \ + "notl %"_LO32 _tmp"; " \ + "andl %"_LO32 _tmp",("_STK"); " \ + "andl %"_LO32 _tmp","__stringify(BITS_PER_LONG/4)"("_STK"); " \ + "pop %"_tmp"; " \ + "orl %"_LO32 _tmp",("_STK"); " \ + "popf; " \ + "pop %"_sav"; " + +/* After executing instruction: write-back necessary bits in EFLAGS. */ +#define _POST_EFLAGS(_sav, _msk, _tmp) \ + /* _sav |= EFLAGS & _msk; */ \ + "pushf; " \ + "pop %"_tmp"; " \ + "andl %"_msk",%"_LO32 _tmp"; " \ + "orl %"_LO32 _tmp",%"_sav"; " + +/* Raw emulation: instruction has two explicit operands. */ +#define __emulate_2op_nobyte(_op,_src,_dst,_eflags,_wx,_wy,_lx,_ly,_qx,_qy) \ + do { \ + unsigned long _tmp; \ + \ + switch ((_dst).bytes) { \ + case 2: \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "4", "2") \ + _op"w %"_wx"3,%1; " \ + _POST_EFLAGS("0", "4", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), \ + "=&r" (_tmp) \ + : _wy ((_src).val), "i" (EFLAGS_MASK)); \ + break; \ + case 4: \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "4", "2") \ + _op"l %"_lx"3,%1; " \ + _POST_EFLAGS("0", "4", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), \ + "=&r" (_tmp) \ + : _ly ((_src).val), "i" (EFLAGS_MASK)); \ + break; \ + case 8: \ + __emulate_2op_8byte(_op, _src, _dst, \ + _eflags, _qx, _qy); \ + break; \ + } \ + } while (0) + +#define __emulate_2op(_op,_src,_dst,_eflags,_bx,_by,_wx,_wy,_lx,_ly,_qx,_qy) \ + do { \ + unsigned long __tmp; \ + switch ((_dst).bytes) { \ + case 1: \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "4", "2") \ + _op"b %"_bx"3,%1; " \ + _POST_EFLAGS("0", "4", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), \ + "=&r" (__tmp) \ + : _by ((_src).val), "i" (EFLAGS_MASK)); \ + break; \ + default: \ + __emulate_2op_nobyte(_op, _src, _dst, _eflags, \ + _wx, _wy, _lx, _ly, _qx, _qy); \ + break; \ + } \ + } while (0) + +/* Source operand is byte-sized and may be restricted to just %cl. */ +#define emulate_2op_SrcB(_op, _src, _dst, _eflags) \ + __emulate_2op(_op, _src, _dst, _eflags, \ + "b", "c", "b", "c", "b", "c", "b", "c") + +/* Source operand is byte, word, long or quad sized. */ +#define emulate_2op_SrcV(_op, _src, _dst, _eflags) \ + __emulate_2op(_op, _src, _dst, _eflags, \ + "b", "q", "w", "r", _LO32, "r", "", "r") + +/* Source operand is word, long or quad sized. */ +#define emulate_2op_SrcV_nobyte(_op, _src, _dst, _eflags) \ + __emulate_2op_nobyte(_op, _src, _dst, _eflags, \ + "w", "r", _LO32, "r", "", "r") + +/* Instruction has only one explicit operand (no source operand). */ +#define emulate_1op(_op, _dst, _eflags) \ + do { \ + unsigned long _tmp; \ + \ + switch ((_dst).bytes) { \ + case 1: \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "3", "2") \ + _op"b %1; " \ + _POST_EFLAGS("0", "3", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), \ + "=&r" (_tmp) \ + : "i" (EFLAGS_MASK)); \ + break; \ + case 2: \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "3", "2") \ + _op"w %1; " \ + _POST_EFLAGS("0", "3", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), \ + "=&r" (_tmp) \ + : "i" (EFLAGS_MASK)); \ + break; \ + case 4: \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "3", "2") \ + _op"l %1; " \ + _POST_EFLAGS("0", "3", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), \ + "=&r" (_tmp) \ + : "i" (EFLAGS_MASK)); \ + break; \ + case 8: \ + __emulate_1op_8byte(_op, _dst, _eflags); \ + break; \ + } \ + } while (0) + +/* Emulate an instruction with quadword operands (x86/64 only). */ +#if defined(CONFIG_X86_64) +#define __emulate_2op_8byte(_op, _src, _dst, _eflags, _qx, _qy) \ + do { \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "4", "2") \ + _op"q %"_qx"3,%1; " \ + _POST_EFLAGS("0", "4", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), "=&r" (_tmp) \ + : _qy ((_src).val), "i" (EFLAGS_MASK)); \ + } while (0) + +#define __emulate_1op_8byte(_op, _dst, _eflags) \ + do { \ + __asm__ __volatile__ ( \ + _PRE_EFLAGS("0", "3", "2") \ + _op"q %1; " \ + _POST_EFLAGS("0", "3", "2") \ + : "=m" (_eflags), "=m" ((_dst).val), "=&r" (_tmp) \ + : "i" (EFLAGS_MASK)); \ + } while (0) + +#elif defined(__i386__) +#define __emulate_2op_8byte(_op, _src, _dst, _eflags, _qx, _qy) +#define __emulate_1op_8byte(_op, _dst, _eflags) +#endif /* __i386__ */ + +/* Fetch next part of the instruction being emulated. */ +#define insn_fetch(_type, _size, _eip) \ +({ unsigned long _x; \ + rc = do_insn_fetch(ctxt, ops, (_eip), &_x, (_size)); \ + if (rc != 0) \ + goto done; \ + (_eip) += (_size); \ + (_type)_x; \ +}) + +static inline unsigned long ad_mask(struct decode_cache *c) +{ + return (1UL << (c->ad_bytes << 3)) - 1; +} + +/* Access/update address held in a register, based on addressing mode. */ +static inline unsigned long +address_mask(struct decode_cache *c, unsigned long reg) +{ + if (c->ad_bytes == sizeof(unsigned long)) + return reg; + else + return reg & ad_mask(c); +} + +static inline unsigned long +register_address(struct decode_cache *c, unsigned long base, unsigned long reg) +{ + return base + address_mask(c, reg); +} + +static inline void +register_address_increment(struct decode_cache *c, unsigned long *reg, int inc) +{ + if (c->ad_bytes == sizeof(unsigned long)) + *reg += inc; + else + *reg = (*reg & ~ad_mask(c)) | ((*reg + inc) & ad_mask(c)); +} + +static inline void jmp_rel(struct decode_cache *c, int rel) +{ + register_address_increment(c, &c->eip, rel); +} + +static int do_fetch_insn_byte(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops, + unsigned long linear, u8 *dest) +{ + struct fetch_cache *fc = &ctxt->decode.fetch; + int rc; + int size; + + if (linear < fc->start || linear >= fc->end) { + size = min(15UL, PAGE_SIZE - offset_in_page(linear)); + rc = ops->read_std(linear, fc->data, size, ctxt->vcpu); + if (rc) + return rc; + fc->start = linear; + fc->end = linear + size; + } + *dest = fc->data[linear - fc->start]; + return 0; +} + +static int do_insn_fetch(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops, + unsigned long eip, void *dest, unsigned size) +{ + int rc = 0; + + eip += ctxt->cs_base; + while (size--) { + rc = do_fetch_insn_byte(ctxt, ops, eip++, dest++); + if (rc) + return rc; + } + return 0; +} + +/* + * Given the 'reg' portion of a ModRM byte, and a register block, return a + * pointer into the block that addresses the relevant register. + * @highbyte_regs specifies whether to decode AH,CH,DH,BH. + */ +static void *decode_register(u8 modrm_reg, unsigned long *regs, + int highbyte_regs) +{ + void *p; + + p = ®s[modrm_reg]; + if (highbyte_regs && modrm_reg >= 4 && modrm_reg < 8) + p = (unsigned char *)®s[modrm_reg & 3] + 1; + return p; +} + +static int read_descriptor(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops, + void *ptr, + u16 *size, unsigned long *address, int op_bytes) +{ + int rc; + + if (op_bytes == 2) + op_bytes = 3; + *address = 0; + rc = ops->read_std((unsigned long)ptr, (unsigned long *)size, 2, + ctxt->vcpu); + if (rc) + return rc; + rc = ops->read_std((unsigned long)ptr + 2, address, op_bytes, + ctxt->vcpu); + return rc; +} + +static int test_cc(unsigned int condition, unsigned int flags) +{ + int rc = 0; + + switch ((condition & 15) >> 1) { + case 0: /* o */ + rc |= (flags & EFLG_OF); + break; + case 1: /* b/c/nae */ + rc |= (flags & EFLG_CF); + break; + case 2: /* z/e */ + rc |= (flags & EFLG_ZF); + break; + case 3: /* be/na */ + rc |= (flags & (EFLG_CF|EFLG_ZF)); + break; + case 4: /* s */ + rc |= (flags & EFLG_SF); + break; + case 5: /* p/pe */ + rc |= (flags & EFLG_PF); + break; + case 7: /* le/ng */ + rc |= (flags & EFLG_ZF); + /* fall through */ + case 6: /* l/nge */ + rc |= (!(flags & EFLG_SF) != !(flags & EFLG_OF)); + break; + } + + /* Odd condition identifiers (lsb == 1) have inverted sense. */ + return (!!rc ^ (condition & 1)); +} + +static void decode_register_operand(struct operand *op, + struct decode_cache *c, + int inhibit_bytereg) +{ + unsigned reg = c->modrm_reg; + int highbyte_regs = c->rex_prefix == 0; + + if (!(c->d & ModRM)) + reg = (c->b & 7) | ((c->rex_prefix & 1) << 3); + op->type = OP_REG; + if ((c->d & ByteOp) && !inhibit_bytereg) { + op->ptr = decode_register(reg, c->regs, highbyte_regs); + op->val = *(u8 *)op->ptr; + op->bytes = 1; + } else { + op->ptr = decode_register(reg, c->regs, 0); + op->bytes = c->op_bytes; + switch (op->bytes) { + case 2: + op->val = *(u16 *)op->ptr; + break; + case 4: + op->val = *(u32 *)op->ptr; + break; + case 8: + op->val = *(u64 *) op->ptr; + break; + } + } + op->orig_val = op->val; +} + +static int decode_modrm(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops) +{ + struct decode_cache *c = &ctxt->decode; + u8 sib; + int index_reg = 0, base_reg = 0, scale, rip_relative = 0; + int rc = 0; + + if (c->rex_prefix) { + c->modrm_reg = (c->rex_prefix & 4) << 1; /* REX.R */ + index_reg = (c->rex_prefix & 2) << 2; /* REX.X */ + c->modrm_rm = base_reg = (c->rex_prefix & 1) << 3; /* REG.B */ + } + + c->modrm = insn_fetch(u8, 1, c->eip); + c->modrm_mod |= (c->modrm & 0xc0) >> 6; + c->modrm_reg |= (c->modrm & 0x38) >> 3; + c->modrm_rm |= (c->modrm & 0x07); + c->modrm_ea = 0; + c->use_modrm_ea = 1; + + if (c->modrm_mod == 3) { + c->modrm_val = *(unsigned long *) + decode_register(c->modrm_rm, c->regs, c->d & ByteOp); + return rc; + } + + if (c->ad_bytes == 2) { + unsigned bx = c->regs[VCPU_REGS_RBX]; + unsigned bp = c->regs[VCPU_REGS_RBP]; + unsigned si = c->regs[VCPU_REGS_RSI]; + unsigned di = c->regs[VCPU_REGS_RDI]; + + /* 16-bit ModR/M decode. */ + switch (c->modrm_mod) { + case 0: + if (c->modrm_rm == 6) + c->modrm_ea += insn_fetch(u16, 2, c->eip); + break; + case 1: + c->modrm_ea += insn_fetch(s8, 1, c->eip); + break; + case 2: + c->modrm_ea += insn_fetch(u16, 2, c->eip); + break; + } + switch (c->modrm_rm) { + case 0: + c->modrm_ea += bx + si; + break; + case 1: + c->modrm_ea += bx + di; + break; + case 2: + c->modrm_ea += bp + si; + break; + case 3: + c->modrm_ea += bp + di; + break; + case 4: + c->modrm_ea += si; + break; + case 5: + c->modrm_ea += di; + break; + case 6: + if (c->modrm_mod != 0) + c->modrm_ea += bp; + break; + case 7: + c->modrm_ea += bx; + break; + } + if (c->modrm_rm == 2 || c->modrm_rm == 3 || + (c->modrm_rm == 6 && c->modrm_mod != 0)) + if (!c->override_base) + c->override_base = &ctxt->ss_base; + c->modrm_ea = (u16)c->modrm_ea; + } else { + /* 32/64-bit ModR/M decode. */ + switch (c->modrm_rm) { + case 4: + case 12: + sib = insn_fetch(u8, 1, c->eip); + index_reg |= (sib >> 3) & 7; + base_reg |= sib & 7; + scale = sib >> 6; + + switch (base_reg) { + case 5: + if (c->modrm_mod != 0) + c->modrm_ea += c->regs[base_reg]; + else + c->modrm_ea += + insn_fetch(s32, 4, c->eip); + break; + default: + c->modrm_ea += c->regs[base_reg]; + } + switch (index_reg) { + case 4: + break; + default: + c->modrm_ea += c->regs[index_reg] << scale; + } + break; + case 5: + if (c->modrm_mod != 0) + c->modrm_ea += c->regs[c->modrm_rm]; + else if (ctxt->mode == X86EMUL_MODE_PROT64) + rip_relative = 1; + break; + default: + c->modrm_ea += c->regs[c->modrm_rm]; + break; + } + switch (c->modrm_mod) { + case 0: + if (c->modrm_rm == 5) + c->modrm_ea += insn_fetch(s32, 4, c->eip); + break; + case 1: + c->modrm_ea += insn_fetch(s8, 1, c->eip); + break; + case 2: + c->modrm_ea += insn_fetch(s32, 4, c->eip); + break; + } + } + if (rip_relative) { + c->modrm_ea += c->eip; + switch (c->d & SrcMask) { + case SrcImmByte: + c->modrm_ea += 1; + break; + case SrcImm: + if (c->d & ByteOp) + c->modrm_ea += 1; + else + if (c->op_bytes == 8) + c->modrm_ea += 4; + else + c->modrm_ea += c->op_bytes; + } + } +done: + return rc; +} + +static int decode_abs(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops) +{ + struct decode_cache *c = &ctxt->decode; + int rc = 0; + + switch (c->ad_bytes) { + case 2: + c->modrm_ea = insn_fetch(u16, 2, c->eip); + break; + case 4: + c->modrm_ea = insn_fetch(u32, 4, c->eip); + break; + case 8: + c->modrm_ea = insn_fetch(u64, 8, c->eip); + break; + } +done: + return rc; +} + +int +x86_decode_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) +{ + struct decode_cache *c = &ctxt->decode; + int rc = 0; + int mode = ctxt->mode; + int def_op_bytes, def_ad_bytes, group; + + /* Shadow copy of register state. Committed on successful emulation. */ + + memset(c, 0, sizeof(struct decode_cache)); + c->eip = ctxt->vcpu->arch.rip; + memcpy(c->regs, ctxt->vcpu->arch.regs, sizeof c->regs); + + switch (mode) { + case X86EMUL_MODE_REAL: + case X86EMUL_MODE_PROT16: + def_op_bytes = def_ad_bytes = 2; + break; + case X86EMUL_MODE_PROT32: + def_op_bytes = def_ad_bytes = 4; + break; +#ifdef CONFIG_X86_64 + case X86EMUL_MODE_PROT64: + def_op_bytes = 4; + def_ad_bytes = 8; + break; +#endif + default: + return -1; + } + + c->op_bytes = def_op_bytes; + c->ad_bytes = def_ad_bytes; + + /* Legacy prefixes. */ + for (;;) { + switch (c->b = insn_fetch(u8, 1, c->eip)) { + case 0x66: /* operand-size override */ + /* switch between 2/4 bytes */ + c->op_bytes = def_op_bytes ^ 6; + break; + case 0x67: /* address-size override */ + if (mode == X86EMUL_MODE_PROT64) + /* switch between 4/8 bytes */ + c->ad_bytes = def_ad_bytes ^ 12; + else + /* switch between 2/4 bytes */ + c->ad_bytes = def_ad_bytes ^ 6; + break; + case 0x2e: /* CS override */ + c->override_base = &ctxt->cs_base; + break; + case 0x3e: /* DS override */ + c->override_base = &ctxt->ds_base; + break; + case 0x26: /* ES override */ + c->override_base = &ctxt->es_base; + break; + case 0x64: /* FS override */ + c->override_base = &ctxt->fs_base; + break; + case 0x65: /* GS override */ + c->override_base = &ctxt->gs_base; + break; + case 0x36: /* SS override */ + c->override_base = &ctxt->ss_base; + break; + case 0x40 ... 0x4f: /* REX */ + if (mode != X86EMUL_MODE_PROT64) + goto done_prefixes; + c->rex_prefix = c->b; + continue; + case 0xf0: /* LOCK */ + c->lock_prefix = 1; + break; + case 0xf2: /* REPNE/REPNZ */ + c->rep_prefix = REPNE_PREFIX; + break; + case 0xf3: /* REP/REPE/REPZ */ + c->rep_prefix = REPE_PREFIX; + break; + default: + goto done_prefixes; + } + + /* Any legacy prefix after a REX prefix nullifies its effect. */ + + c->rex_prefix = 0; + } + +done_prefixes: + + /* REX prefix. */ + if (c->rex_prefix) + if (c->rex_prefix & 8) + c->op_bytes = 8; /* REX.W */ + + /* Opcode byte(s). */ + c->d = opcode_table[c->b]; + if (c->d == 0) { + /* Two-byte opcode? */ + if (c->b == 0x0f) { + c->twobyte = 1; + c->b = insn_fetch(u8, 1, c->eip); + c->d = twobyte_table[c->b]; + } + } + + if (c->d & Group) { + group = c->d & GroupMask; + c->modrm = insn_fetch(u8, 1, c->eip); + --c->eip; + + group = (group << 3) + ((c->modrm >> 3) & 7); + if ((c->d & GroupDual) && (c->modrm >> 6) == 3) + c->d = group2_table[group]; + else + c->d = group_table[group]; + } + + /* Unrecognised? */ + if (c->d == 0) { + DPRINTF("Cannot emulate %02x\n", c->b); + return -1; + } + + if (mode == X86EMUL_MODE_PROT64 && (c->d & Stack)) + c->op_bytes = 8; + + /* ModRM and SIB bytes. */ + if (c->d & ModRM) + rc = decode_modrm(ctxt, ops); + else if (c->d & MemAbs) + rc = decode_abs(ctxt, ops); + if (rc) + goto done; + + if (!c->override_base) + c->override_base = &ctxt->ds_base; + if (mode == X86EMUL_MODE_PROT64 && + c->override_base != &ctxt->fs_base && + c->override_base != &ctxt->gs_base) + c->override_base = NULL; + + if (c->override_base) + c->modrm_ea += *c->override_base; + + if (c->ad_bytes != 8) + c->modrm_ea = (u32)c->modrm_ea; + /* + * Decode and fetch the source operand: register, memory + * or immediate. + */ + switch (c->d & SrcMask) { + case SrcNone: + break; + case SrcReg: + decode_register_operand(&c->src, c, 0); + break; + case SrcMem16: + c->src.bytes = 2; + goto srcmem_common; + case SrcMem32: + c->src.bytes = 4; + goto srcmem_common; + case SrcMem: + c->src.bytes = (c->d & ByteOp) ? 1 : + c->op_bytes; + /* Don't fetch the address for invlpg: it could be unmapped. */ + if (c->twobyte && c->b == 0x01 && c->modrm_reg == 7) + break; + srcmem_common: + /* + * For instructions with a ModR/M byte, switch to register + * access if Mod = 3. + */ + if ((c->d & ModRM) && c->modrm_mod == 3) { + c->src.type = OP_REG; + break; + } + c->src.type = OP_MEM; + break; + case SrcImm: + c->src.type = OP_IMM; + c->src.ptr = (unsigned long *)c->eip; + c->src.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; + if (c->src.bytes == 8) + c->src.bytes = 4; + /* NB. Immediates are sign-extended as necessary. */ + switch (c->src.bytes) { + case 1: + c->src.val = insn_fetch(s8, 1, c->eip); + break; + case 2: + c->src.val = insn_fetch(s16, 2, c->eip); + break; + case 4: + c->src.val = insn_fetch(s32, 4, c->eip); + break; + } + break; + case SrcImmByte: + c->src.type = OP_IMM; + c->src.ptr = (unsigned long *)c->eip; + c->src.bytes = 1; + c->src.val = insn_fetch(s8, 1, c->eip); + break; + } + + /* Decode and fetch the destination operand: register or memory. */ + switch (c->d & DstMask) { + case ImplicitOps: + /* Special instructions do their own operand decoding. */ + return 0; + case DstReg: + decode_register_operand(&c->dst, c, + c->twobyte && (c->b == 0xb6 || c->b == 0xb7)); + break; + case DstMem: + if ((c->d & ModRM) && c->modrm_mod == 3) { + c->dst.type = OP_REG; + break; + } + c->dst.type = OP_MEM; + break; + } + +done: + return (rc == X86EMUL_UNHANDLEABLE) ? -1 : 0; +} + +static inline void emulate_push(struct x86_emulate_ctxt *ctxt) +{ + struct decode_cache *c = &ctxt->decode; + + c->dst.type = OP_MEM; + c->dst.bytes = c->op_bytes; + c->dst.val = c->src.val; + register_address_increment(c, &c->regs[VCPU_REGS_RSP], -c->op_bytes); + c->dst.ptr = (void *) register_address(c, ctxt->ss_base, + c->regs[VCPU_REGS_RSP]); +} + +static inline int emulate_grp1a(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops) +{ + struct decode_cache *c = &ctxt->decode; + int rc; + + rc = ops->read_std(register_address(c, ctxt->ss_base, + c->regs[VCPU_REGS_RSP]), + &c->dst.val, c->dst.bytes, ctxt->vcpu); + if (rc != 0) + return rc; + + register_address_increment(c, &c->regs[VCPU_REGS_RSP], c->dst.bytes); + + return 0; +} + +static inline void emulate_grp2(struct x86_emulate_ctxt *ctxt) +{ + struct decode_cache *c = &ctxt->decode; + switch (c->modrm_reg) { + case 0: /* rol */ + emulate_2op_SrcB("rol", c->src, c->dst, ctxt->eflags); + break; + case 1: /* ror */ + emulate_2op_SrcB("ror", c->src, c->dst, ctxt->eflags); + break; + case 2: /* rcl */ + emulate_2op_SrcB("rcl", c->src, c->dst, ctxt->eflags); + break; + case 3: /* rcr */ + emulate_2op_SrcB("rcr", c->src, c->dst, ctxt->eflags); + break; + case 4: /* sal/shl */ + case 6: /* sal/shl */ + emulate_2op_SrcB("sal", c->src, c->dst, ctxt->eflags); + break; + case 5: /* shr */ + emulate_2op_SrcB("shr", c->src, c->dst, ctxt->eflags); + break; + case 7: /* sar */ + emulate_2op_SrcB("sar", c->src, c->dst, ctxt->eflags); + break; + } +} + +static inline int emulate_grp3(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops) +{ + struct decode_cache *c = &ctxt->decode; + int rc = 0; + + switch (c->modrm_reg) { + case 0 ... 1: /* test */ + emulate_2op_SrcV("test", c->src, c->dst, ctxt->eflags); + break; + case 2: /* not */ + c->dst.val = ~c->dst.val; + break; + case 3: /* neg */ + emulate_1op("neg", c->dst, ctxt->eflags); + break; + default: + DPRINTF("Cannot emulate %02x\n", c->b); + rc = X86EMUL_UNHANDLEABLE; + break; + } + return rc; +} + +static inline int emulate_grp45(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops) +{ + struct decode_cache *c = &ctxt->decode; + + switch (c->modrm_reg) { + case 0: /* inc */ + emulate_1op("inc", c->dst, ctxt->eflags); + break; + case 1: /* dec */ + emulate_1op("dec", c->dst, ctxt->eflags); + break; + case 4: /* jmp abs */ + c->eip = c->src.val; + break; + case 6: /* push */ + emulate_push(ctxt); + break; + } + return 0; +} + +static inline int emulate_grp9(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops, + unsigned long memop) +{ + struct decode_cache *c = &ctxt->decode; + u64 old, new; + int rc; + + rc = ops->read_emulated(memop, &old, 8, ctxt->vcpu); + if (rc != 0) + return rc; + + if (((u32) (old >> 0) != (u32) c->regs[VCPU_REGS_RAX]) || + ((u32) (old >> 32) != (u32) c->regs[VCPU_REGS_RDX])) { + + c->regs[VCPU_REGS_RAX] = (u32) (old >> 0); + c->regs[VCPU_REGS_RDX] = (u32) (old >> 32); + ctxt->eflags &= ~EFLG_ZF; + + } else { + new = ((u64)c->regs[VCPU_REGS_RCX] << 32) | + (u32) c->regs[VCPU_REGS_RBX]; + + rc = ops->cmpxchg_emulated(memop, &old, &new, 8, ctxt->vcpu); + if (rc != 0) + return rc; + ctxt->eflags |= EFLG_ZF; + } + return 0; +} + +static inline int writeback(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops) +{ + int rc; + struct decode_cache *c = &ctxt->decode; + + switch (c->dst.type) { + case OP_REG: + /* The 4-byte case *is* correct: + * in 64-bit mode we zero-extend. + */ + switch (c->dst.bytes) { + case 1: + *(u8 *)c->dst.ptr = (u8)c->dst.val; + break; + case 2: + *(u16 *)c->dst.ptr = (u16)c->dst.val; + break; + case 4: + *c->dst.ptr = (u32)c->dst.val; + break; /* 64b: zero-ext */ + case 8: + *c->dst.ptr = c->dst.val; + break; + } + break; + case OP_MEM: + if (c->lock_prefix) + rc = ops->cmpxchg_emulated( + (unsigned long)c->dst.ptr, + &c->dst.orig_val, + &c->dst.val, + c->dst.bytes, + ctxt->vcpu); + else + rc = ops->write_emulated( + (unsigned long)c->dst.ptr, + &c->dst.val, + c->dst.bytes, + ctxt->vcpu); + if (rc != 0) + return rc; + break; + case OP_NONE: + /* no writeback */ + break; + default: + break; + } + return 0; +} + +int +x86_emulate_insn(struct x86_emulate_ctxt *ctxt, struct x86_emulate_ops *ops) +{ + unsigned long memop = 0; + u64 msr_data; + unsigned long saved_eip = 0; + struct decode_cache *c = &ctxt->decode; + int rc = 0; + + /* Shadow copy of register state. Committed on successful emulation. + * NOTE: we can copy them from vcpu as x86_decode_insn() doesn't + * modify them. + */ + + memcpy(c->regs, ctxt->vcpu->arch.regs, sizeof c->regs); + saved_eip = c->eip; + + if (((c->d & ModRM) && (c->modrm_mod != 3)) || (c->d & MemAbs)) + memop = c->modrm_ea; + + if (c->rep_prefix && (c->d & String)) { + /* All REP prefixes have the same first termination condition */ + if (c->regs[VCPU_REGS_RCX] == 0) { + ctxt->vcpu->arch.rip = c->eip; + goto done; + } + /* The second termination condition only applies for REPE + * and REPNE. Test if the repeat string operation prefix is + * REPE/REPZ or REPNE/REPNZ and if it's the case it tests the + * corresponding termination condition according to: + * - if REPE/REPZ and ZF = 0 then done + * - if REPNE/REPNZ and ZF = 1 then done + */ + if ((c->b == 0xa6) || (c->b == 0xa7) || + (c->b == 0xae) || (c->b == 0xaf)) { + if ((c->rep_prefix == REPE_PREFIX) && + ((ctxt->eflags & EFLG_ZF) == 0)) { + ctxt->vcpu->arch.rip = c->eip; + goto done; + } + if ((c->rep_prefix == REPNE_PREFIX) && + ((ctxt->eflags & EFLG_ZF) == EFLG_ZF)) { + ctxt->vcpu->arch.rip = c->eip; + goto done; + } + } + c->regs[VCPU_REGS_RCX]--; + c->eip = ctxt->vcpu->arch.rip; + } + + if (c->src.type == OP_MEM) { + c->src.ptr = (unsigned long *)memop; + c->src.val = 0; + rc = ops->read_emulated((unsigned long)c->src.ptr, + &c->src.val, + c->src.bytes, + ctxt->vcpu); + if (rc != 0) + goto done; + c->src.orig_val = c->src.val; + } + + if ((c->d & DstMask) == ImplicitOps) + goto special_insn; + + + if (c->dst.type == OP_MEM) { + c->dst.ptr = (unsigned long *)memop; + c->dst.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; + c->dst.val = 0; + if (c->d & BitOp) { + unsigned long mask = ~(c->dst.bytes * 8 - 1); + + c->dst.ptr = (void *)c->dst.ptr + + (c->src.val & mask) / 8; + } + if (!(c->d & Mov) && + /* optimisation - avoid slow emulated read */ + ((rc = ops->read_emulated((unsigned long)c->dst.ptr, + &c->dst.val, + c->dst.bytes, ctxt->vcpu)) != 0)) + goto done; + } + c->dst.orig_val = c->dst.val; + +special_insn: + + if (c->twobyte) + goto twobyte_insn; + + switch (c->b) { + case 0x00 ... 0x05: + add: /* add */ + emulate_2op_SrcV("add", c->src, c->dst, ctxt->eflags); + break; + case 0x08 ... 0x0d: + or: /* or */ + emulate_2op_SrcV("or", c->src, c->dst, ctxt->eflags); + break; + case 0x10 ... 0x15: + adc: /* adc */ + emulate_2op_SrcV("adc", c->src, c->dst, ctxt->eflags); + break; + case 0x18 ... 0x1d: + sbb: /* sbb */ + emulate_2op_SrcV("sbb", c->src, c->dst, ctxt->eflags); + break; + case 0x20 ... 0x23: + and: /* and */ + emulate_2op_SrcV("and", c->src, c->dst, ctxt->eflags); + break; + case 0x24: /* and al imm8 */ + c->dst.type = OP_REG; + c->dst.ptr = &c->regs[VCPU_REGS_RAX]; + c->dst.val = *(u8 *)c->dst.ptr; + c->dst.bytes = 1; + c->dst.orig_val = c->dst.val; + goto and; + case 0x25: /* and ax imm16, or eax imm32 */ + c->dst.type = OP_REG; + c->dst.bytes = c->op_bytes; + c->dst.ptr = &c->regs[VCPU_REGS_RAX]; + if (c->op_bytes == 2) + c->dst.val = *(u16 *)c->dst.ptr; + else + c->dst.val = *(u32 *)c->dst.ptr; + c->dst.orig_val = c->dst.val; + goto and; + case 0x28 ... 0x2d: + sub: /* sub */ + emulate_2op_SrcV("sub", c->src, c->dst, ctxt->eflags); + break; + case 0x30 ... 0x35: + xor: /* xor */ + emulate_2op_SrcV("xor", c->src, c->dst, ctxt->eflags); + break; + case 0x38 ... 0x3d: + cmp: /* cmp */ + emulate_2op_SrcV("cmp", c->src, c->dst, ctxt->eflags); + break; + case 0x40 ... 0x47: /* inc r16/r32 */ + emulate_1op("inc", c->dst, ctxt->eflags); + break; + case 0x48 ... 0x4f: /* dec r16/r32 */ + emulate_1op("dec", c->dst, ctxt->eflags); + break; + case 0x50 ... 0x57: /* push reg */ + c->dst.type = OP_MEM; + c->dst.bytes = c->op_bytes; + c->dst.val = c->src.val; + register_address_increment(c, &c->regs[VCPU_REGS_RSP], + -c->op_bytes); + c->dst.ptr = (void *) register_address( + c, ctxt->ss_base, c->regs[VCPU_REGS_RSP]); + break; + case 0x58 ... 0x5f: /* pop reg */ + pop_instruction: + if ((rc = ops->read_std(register_address(c, ctxt->ss_base, + c->regs[VCPU_REGS_RSP]), c->dst.ptr, + c->op_bytes, ctxt->vcpu)) != 0) + goto done; + + register_address_increment(c, &c->regs[VCPU_REGS_RSP], + c->op_bytes); + c->dst.type = OP_NONE; /* Disable writeback. */ + break; + case 0x63: /* movsxd */ + if (ctxt->mode != X86EMUL_MODE_PROT64) + goto cannot_emulate; + c->dst.val = (s32) c->src.val; + break; + case 0x6a: /* push imm8 */ + c->src.val = 0L; + c->src.val = insn_fetch(s8, 1, c->eip); + emulate_push(ctxt); + break; + case 0x6c: /* insb */ + case 0x6d: /* insw/insd */ + if (kvm_emulate_pio_string(ctxt->vcpu, NULL, + 1, + (c->d & ByteOp) ? 1 : c->op_bytes, + c->rep_prefix ? + address_mask(c, c->regs[VCPU_REGS_RCX]) : 1, + (ctxt->eflags & EFLG_DF), + register_address(c, ctxt->es_base, + c->regs[VCPU_REGS_RDI]), + c->rep_prefix, + c->regs[VCPU_REGS_RDX]) == 0) { + c->eip = saved_eip; + return -1; + } + return 0; + case 0x6e: /* outsb */ + case 0x6f: /* outsw/outsd */ + if (kvm_emulate_pio_string(ctxt->vcpu, NULL, + 0, + (c->d & ByteOp) ? 1 : c->op_bytes, + c->rep_prefix ? + address_mask(c, c->regs[VCPU_REGS_RCX]) : 1, + (ctxt->eflags & EFLG_DF), + register_address(c, c->override_base ? + *c->override_base : + ctxt->ds_base, + c->regs[VCPU_REGS_RSI]), + c->rep_prefix, + c->regs[VCPU_REGS_RDX]) == 0) { + c->eip = saved_eip; + return -1; + } + return 0; + case 0x70 ... 0x7f: /* jcc (short) */ { + int rel = insn_fetch(s8, 1, c->eip); + + if (test_cc(c->b, ctxt->eflags)) + jmp_rel(c, rel); + break; + } + case 0x80 ... 0x83: /* Grp1 */ + switch (c->modrm_reg) { + case 0: + goto add; + case 1: + goto or; + case 2: + goto adc; + case 3: + goto sbb; + case 4: + goto and; + case 5: + goto sub; + case 6: + goto xor; + case 7: + goto cmp; + } + break; + case 0x84 ... 0x85: + emulate_2op_SrcV("test", c->src, c->dst, ctxt->eflags); + break; + case 0x86 ... 0x87: /* xchg */ + /* Write back the register source. */ + switch (c->dst.bytes) { + case 1: + *(u8 *) c->src.ptr = (u8) c->dst.val; + break; + case 2: + *(u16 *) c->src.ptr = (u16) c->dst.val; + break; + case 4: + *c->src.ptr = (u32) c->dst.val; + break; /* 64b reg: zero-extend */ + case 8: + *c->src.ptr = c->dst.val; + break; + } + /* + * Write back the memory destination with implicit LOCK + * prefix. + */ + c->dst.val = c->src.val; + c->lock_prefix = 1; + break; + case 0x88 ... 0x8b: /* mov */ + goto mov; + case 0x8d: /* lea r16/r32, m */ + c->dst.val = c->modrm_val; + break; + case 0x8f: /* pop (sole member of Grp1a) */ + rc = emulate_grp1a(ctxt, ops); + if (rc != 0) + goto done; + break; + case 0x9c: /* pushf */ + c->src.val = (unsigned long) ctxt->eflags; + emulate_push(ctxt); + break; + case 0x9d: /* popf */ + c->dst.ptr = (unsigned long *) &ctxt->eflags; + goto pop_instruction; + case 0xa0 ... 0xa1: /* mov */ + c->dst.ptr = (unsigned long *)&c->regs[VCPU_REGS_RAX]; + c->dst.val = c->src.val; + break; + case 0xa2 ... 0xa3: /* mov */ + c->dst.val = (unsigned long)c->regs[VCPU_REGS_RAX]; + break; + case 0xa4 ... 0xa5: /* movs */ + c->dst.type = OP_MEM; + c->dst.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; + c->dst.ptr = (unsigned long *)register_address(c, + ctxt->es_base, + c->regs[VCPU_REGS_RDI]); + if ((rc = ops->read_emulated(register_address(c, + c->override_base ? *c->override_base : + ctxt->ds_base, + c->regs[VCPU_REGS_RSI]), + &c->dst.val, + c->dst.bytes, ctxt->vcpu)) != 0) + goto done; + register_address_increment(c, &c->regs[VCPU_REGS_RSI], + (ctxt->eflags & EFLG_DF) ? -c->dst.bytes + : c->dst.bytes); + register_address_increment(c, &c->regs[VCPU_REGS_RDI], + (ctxt->eflags & EFLG_DF) ? -c->dst.bytes + : c->dst.bytes); + break; + case 0xa6 ... 0xa7: /* cmps */ + c->src.type = OP_NONE; /* Disable writeback. */ + c->src.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; + c->src.ptr = (unsigned long *)register_address(c, + c->override_base ? *c->override_base : + ctxt->ds_base, + c->regs[VCPU_REGS_RSI]); + if ((rc = ops->read_emulated((unsigned long)c->src.ptr, + &c->src.val, + c->src.bytes, + ctxt->vcpu)) != 0) + goto done; + + c->dst.type = OP_NONE; /* Disable writeback. */ + c->dst.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; + c->dst.ptr = (unsigned long *)register_address(c, + ctxt->es_base, + c->regs[VCPU_REGS_RDI]); + if ((rc = ops->read_emulated((unsigned long)c->dst.ptr, + &c->dst.val, + c->dst.bytes, + ctxt->vcpu)) != 0) + goto done; + + DPRINTF("cmps: mem1=0x%p mem2=0x%p\n", c->src.ptr, c->dst.ptr); + + emulate_2op_SrcV("cmp", c->src, c->dst, ctxt->eflags); + + register_address_increment(c, &c->regs[VCPU_REGS_RSI], + (ctxt->eflags & EFLG_DF) ? -c->src.bytes + : c->src.bytes); + register_address_increment(c, &c->regs[VCPU_REGS_RDI], + (ctxt->eflags & EFLG_DF) ? -c->dst.bytes + : c->dst.bytes); + + break; + case 0xaa ... 0xab: /* stos */ + c->dst.type = OP_MEM; + c->dst.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; + c->dst.ptr = (unsigned long *)register_address(c, + ctxt->es_base, + c->regs[VCPU_REGS_RDI]); + c->dst.val = c->regs[VCPU_REGS_RAX]; + register_address_increment(c, &c->regs[VCPU_REGS_RDI], + (ctxt->eflags & EFLG_DF) ? -c->dst.bytes + : c->dst.bytes); + break; + case 0xac ... 0xad: /* lods */ + c->dst.type = OP_REG; + c->dst.bytes = (c->d & ByteOp) ? 1 : c->op_bytes; + c->dst.ptr = (unsigned long *)&c->regs[VCPU_REGS_RAX]; + if ((rc = ops->read_emulated(register_address(c, + c->override_base ? *c->override_base : + ctxt->ds_base, + c->regs[VCPU_REGS_RSI]), + &c->dst.val, + c->dst.bytes, + ctxt->vcpu)) != 0) + goto done; + register_address_increment(c, &c->regs[VCPU_REGS_RSI], + (ctxt->eflags & EFLG_DF) ? -c->dst.bytes + : c->dst.bytes); + break; + case 0xae ... 0xaf: /* scas */ + DPRINTF("Urk! I don't handle SCAS.\n"); + goto cannot_emulate; + case 0xc0 ... 0xc1: + emulate_grp2(ctxt); + break; + case 0xc3: /* ret */ + c->dst.ptr = &c->eip; + goto pop_instruction; + case 0xc6 ... 0xc7: /* mov (sole member of Grp11) */ + mov: + c->dst.val = c->src.val; + break; + case 0xd0 ... 0xd1: /* Grp2 */ + c->src.val = 1; + emulate_grp2(ctxt); + break; + case 0xd2 ... 0xd3: /* Grp2 */ + c->src.val = c->regs[VCPU_REGS_RCX]; + emulate_grp2(ctxt); + break; + case 0xe8: /* call (near) */ { + long int rel; + switch (c->op_bytes) { + case 2: + rel = insn_fetch(s16, 2, c->eip); + break; + case 4: + rel = insn_fetch(s32, 4, c->eip); + break; + default: + DPRINTF("Call: Invalid op_bytes\n"); + goto cannot_emulate; + } + c->src.val = (unsigned long) c->eip; + jmp_rel(c, rel); + c->op_bytes = c->ad_bytes; + emulate_push(ctxt); + break; + } + case 0xe9: /* jmp rel */ + case 0xeb: /* jmp rel short */ + jmp_rel(c, c->src.val); + c->dst.type = OP_NONE; /* Disable writeback. */ + break; + case 0xf4: /* hlt */ + ctxt->vcpu->arch.halt_request = 1; + goto done; + case 0xf5: /* cmc */ + /* complement carry flag from eflags reg */ + ctxt->eflags ^= EFLG_CF; + c->dst.type = OP_NONE; /* Disable writeback. */ + break; + case 0xf6 ... 0xf7: /* Grp3 */ + rc = emulate_grp3(ctxt, ops); + if (rc != 0) + goto done; + break; + case 0xf8: /* clc */ + ctxt->eflags &= ~EFLG_CF; + c->dst.type = OP_NONE; /* Disable writeback. */ + break; + case 0xfa: /* cli */ + ctxt->eflags &= ~X86_EFLAGS_IF; + c->dst.type = OP_NONE; /* Disable writeback. */ + break; + case 0xfb: /* sti */ + ctxt->eflags |= X86_EFLAGS_IF; + c->dst.type = OP_NONE; /* Disable writeback. */ + break; + case 0xfe ... 0xff: /* Grp4/Grp5 */ + rc = emulate_grp45(ctxt, ops); + if (rc != 0) + goto done; + break; + } + +writeback: + rc = writeback(ctxt, ops); + if (rc != 0) + goto done; + + /* Commit shadow register state. */ + memcpy(ctxt->vcpu->arch.regs, c->regs, sizeof c->regs); + ctxt->vcpu->arch.rip = c->eip; + +done: + if (rc == X86EMUL_UNHANDLEABLE) { + c->eip = saved_eip; + return -1; + } + return 0; + +twobyte_insn: + switch (c->b) { + case 0x01: /* lgdt, lidt, lmsw */ + switch (c->modrm_reg) { + u16 size; + unsigned long address; + + case 0: /* vmcall */ + if (c->modrm_mod != 3 || c->modrm_rm != 1) + goto cannot_emulate; + + rc = kvm_fix_hypercall(ctxt->vcpu); + if (rc) + goto done; + + kvm_emulate_hypercall(ctxt->vcpu); + break; + case 2: /* lgdt */ + rc = read_descriptor(ctxt, ops, c->src.ptr, + &size, &address, c->op_bytes); + if (rc) + goto done; + realmode_lgdt(ctxt->vcpu, size, address); + break; + case 3: /* lidt/vmmcall */ + if (c->modrm_mod == 3 && c->modrm_rm == 1) { + rc = kvm_fix_hypercall(ctxt->vcpu); + if (rc) + goto done; + kvm_emulate_hypercall(ctxt->vcpu); + } else { + rc = read_descriptor(ctxt, ops, c->src.ptr, + &size, &address, + c->op_bytes); + if (rc) + goto done; + realmode_lidt(ctxt->vcpu, size, address); + } + break; + case 4: /* smsw */ + if (c->modrm_mod != 3) + goto cannot_emulate; + *(u16 *)&c->regs[c->modrm_rm] + = realmode_get_cr(ctxt->vcpu, 0); + break; + case 6: /* lmsw */ + if (c->modrm_mod != 3) + goto cannot_emulate; + realmode_lmsw(ctxt->vcpu, (u16)c->modrm_val, + &ctxt->eflags); + break; + case 7: /* invlpg*/ + emulate_invlpg(ctxt->vcpu, memop); + break; + default: + goto cannot_emulate; + } + /* Disable writeback. */ + c->dst.type = OP_NONE; + break; + case 0x06: + emulate_clts(ctxt->vcpu); + c->dst.type = OP_NONE; + break; + case 0x08: /* invd */ + case 0x09: /* wbinvd */ + case 0x0d: /* GrpP (prefetch) */ + case 0x18: /* Grp16 (prefetch/nop) */ + c->dst.type = OP_NONE; + break; + case 0x20: /* mov cr, reg */ + if (c->modrm_mod != 3) + goto cannot_emulate; + c->regs[c->modrm_rm] = + realmode_get_cr(ctxt->vcpu, c->modrm_reg); + c->dst.type = OP_NONE; /* no writeback */ + break; + case 0x21: /* mov from dr to reg */ + if (c->modrm_mod != 3) + goto cannot_emulate; + rc = emulator_get_dr(ctxt, c->modrm_reg, &c->regs[c->modrm_rm]); + if (rc) + goto cannot_emulate; + c->dst.type = OP_NONE; /* no writeback */ + break; + case 0x22: /* mov reg, cr */ + if (c->modrm_mod != 3) + goto cannot_emulate; + realmode_set_cr(ctxt->vcpu, + c->modrm_reg, c->modrm_val, &ctxt->eflags); + c->dst.type = OP_NONE; + break; + case 0x23: /* mov from reg to dr */ + if (c->modrm_mod != 3) + goto cannot_emulate; + rc = emulator_set_dr(ctxt, c->modrm_reg, + c->regs[c->modrm_rm]); + if (rc) + goto cannot_emulate; + c->dst.type = OP_NONE; /* no writeback */ + break; + case 0x30: + /* wrmsr */ + msr_data = (u32)c->regs[VCPU_REGS_RAX] + | ((u64)c->regs[VCPU_REGS_RDX] << 32); + rc = kvm_set_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], msr_data); + if (rc) { + kvm_inject_gp(ctxt->vcpu, 0); + c->eip = ctxt->vcpu->arch.rip; + } + rc = X86EMUL_CONTINUE; + c->dst.type = OP_NONE; + break; + case 0x32: + /* rdmsr */ + rc = kvm_get_msr(ctxt->vcpu, c->regs[VCPU_REGS_RCX], &msr_data); + if (rc) { + kvm_inject_gp(ctxt->vcpu, 0); + c->eip = ctxt->vcpu->arch.rip; + } else { + c->regs[VCPU_REGS_RAX] = (u32)msr_data; + c->regs[VCPU_REGS_RDX] = msr_data >> 32; + } + rc = X86EMUL_CONTINUE; + c->dst.type = OP_NONE; + break; + case 0x40 ... 0x4f: /* cmov */ + c->dst.val = c->dst.orig_val = c->src.val; + if (!test_cc(c->b, ctxt->eflags)) + c->dst.type = OP_NONE; /* no writeback */ + break; + case 0x80 ... 0x8f: /* jnz rel, etc*/ { + long int rel; + + switch (c->op_bytes) { + case 2: + rel = insn_fetch(s16, 2, c->eip); + break; + case 4: + rel = insn_fetch(s32, 4, c->eip); + break; + case 8: + rel = insn_fetch(s64, 8, c->eip); + break; + default: + DPRINTF("jnz: Invalid op_bytes\n"); + goto cannot_emulate; + } + if (test_cc(c->b, ctxt->eflags)) + jmp_rel(c, rel); + c->dst.type = OP_NONE; + break; + } + case 0xa3: + bt: /* bt */ + c->dst.type = OP_NONE; + /* only subword offset */ + c->src.val &= (c->dst.bytes << 3) - 1; + emulate_2op_SrcV_nobyte("bt", c->src, c->dst, ctxt->eflags); + break; + case 0xab: + bts: /* bts */ + /* only subword offset */ + c->src.val &= (c->dst.bytes << 3) - 1; + emulate_2op_SrcV_nobyte("bts", c->src, c->dst, ctxt->eflags); + break; + case 0xb0 ... 0xb1: /* cmpxchg */ + /* + * Save real source value, then compare EAX against + * destination. + */ + c->src.orig_val = c->src.val; + c->src.val = c->regs[VCPU_REGS_RAX]; + emulate_2op_SrcV("cmp", c->src, c->dst, ctxt->eflags); + if (ctxt->eflags & EFLG_ZF) { + /* Success: write back to memory. */ + c->dst.val = c->src.orig_val; + } else { + /* Failure: write the value we saw to EAX. */ + c->dst.type = OP_REG; + c->dst.ptr = (unsigned long *)&c->regs[VCPU_REGS_RAX]; + } + break; + case 0xb3: + btr: /* btr */ + /* only subword offset */ + c->src.val &= (c->dst.bytes << 3) - 1; + emulate_2op_SrcV_nobyte("btr", c->src, c->dst, ctxt->eflags); + break; + case 0xb6 ... 0xb7: /* movzx */ + c->dst.bytes = c->op_bytes; + c->dst.val = (c->d & ByteOp) ? (u8) c->src.val + : (u16) c->src.val; + break; + case 0xba: /* Grp8 */ + switch (c->modrm_reg & 3) { + case 0: + goto bt; + case 1: + goto bts; + case 2: + goto btr; + case 3: + goto btc; + } + break; + case 0xbb: + btc: /* btc */ + /* only subword offset */ + c->src.val &= (c->dst.bytes << 3) - 1; + emulate_2op_SrcV_nobyte("btc", c->src, c->dst, ctxt->eflags); + break; + case 0xbe ... 0xbf: /* movsx */ + c->dst.bytes = c->op_bytes; + c->dst.val = (c->d & ByteOp) ? (s8) c->src.val : + (s16) c->src.val; + break; + case 0xc3: /* movnti */ + c->dst.bytes = c->op_bytes; + c->dst.val = (c->op_bytes == 4) ? (u32) c->src.val : + (u64) c->src.val; + break; + case 0xc7: /* Grp9 (cmpxchg8b) */ + rc = emulate_grp9(ctxt, ops, memop); + if (rc != 0) + goto done; + c->dst.type = OP_NONE; + break; + } + goto writeback; + +cannot_emulate: + DPRINTF("Cannot emulate %02x\n", c->b); + c->eip = saved_eip; + return -1; +} --- linux-2.6.24.orig/arch/x86/kvm/i8259.c +++ linux-2.6.24/arch/x86/kvm/i8259.c @@ -0,0 +1,450 @@ +/* + * 8259 interrupt controller emulation + * + * Copyright (c) 2003-2004 Fabrice Bellard + * Copyright (c) 2007 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + * Authors: + * Yaozu (Eddie) Dong + * Port from Qemu. + */ +#include +#include "irq.h" + +#include + +/* + * set irq level. If an edge is detected, then the IRR is set to 1 + */ +static inline void pic_set_irq1(struct kvm_kpic_state *s, int irq, int level) +{ + int mask; + mask = 1 << irq; + if (s->elcr & mask) /* level triggered */ + if (level) { + s->irr |= mask; + s->last_irr |= mask; + } else { + s->irr &= ~mask; + s->last_irr &= ~mask; + } + else /* edge triggered */ + if (level) { + if ((s->last_irr & mask) == 0) + s->irr |= mask; + s->last_irr |= mask; + } else + s->last_irr &= ~mask; +} + +/* + * return the highest priority found in mask (highest = smallest + * number). Return 8 if no irq + */ +static inline int get_priority(struct kvm_kpic_state *s, int mask) +{ + int priority; + if (mask == 0) + return 8; + priority = 0; + while ((mask & (1 << ((priority + s->priority_add) & 7))) == 0) + priority++; + return priority; +} + +/* + * return the pic wanted interrupt. return -1 if none + */ +static int pic_get_irq(struct kvm_kpic_state *s) +{ + int mask, cur_priority, priority; + + mask = s->irr & ~s->imr; + priority = get_priority(s, mask); + if (priority == 8) + return -1; + /* + * compute current priority. If special fully nested mode on the + * master, the IRQ coming from the slave is not taken into account + * for the priority computation. + */ + mask = s->isr; + if (s->special_fully_nested_mode && s == &s->pics_state->pics[0]) + mask &= ~(1 << 2); + cur_priority = get_priority(s, mask); + if (priority < cur_priority) + /* + * higher priority found: an irq should be generated + */ + return (priority + s->priority_add) & 7; + else + return -1; +} + +/* + * raise irq to CPU if necessary. must be called every time the active + * irq may change + */ +static void pic_update_irq(struct kvm_pic *s) +{ + int irq2, irq; + + irq2 = pic_get_irq(&s->pics[1]); + if (irq2 >= 0) { + /* + * if irq request by slave pic, signal master PIC + */ + pic_set_irq1(&s->pics[0], 2, 1); + pic_set_irq1(&s->pics[0], 2, 0); + } + irq = pic_get_irq(&s->pics[0]); + if (irq >= 0) + s->irq_request(s->irq_request_opaque, 1); + else + s->irq_request(s->irq_request_opaque, 0); +} + +void kvm_pic_update_irq(struct kvm_pic *s) +{ + pic_update_irq(s); +} + +void kvm_pic_set_irq(void *opaque, int irq, int level) +{ + struct kvm_pic *s = opaque; + + pic_set_irq1(&s->pics[irq >> 3], irq & 7, level); + pic_update_irq(s); +} + +/* + * acknowledge interrupt 'irq' + */ +static inline void pic_intack(struct kvm_kpic_state *s, int irq) +{ + if (s->auto_eoi) { + if (s->rotate_on_auto_eoi) + s->priority_add = (irq + 1) & 7; + } else + s->isr |= (1 << irq); + /* + * We don't clear a level sensitive interrupt here + */ + if (!(s->elcr & (1 << irq))) + s->irr &= ~(1 << irq); +} + +int kvm_pic_read_irq(struct kvm_pic *s) +{ + int irq, irq2, intno; + + irq = pic_get_irq(&s->pics[0]); + if (irq >= 0) { + pic_intack(&s->pics[0], irq); + if (irq == 2) { + irq2 = pic_get_irq(&s->pics[1]); + if (irq2 >= 0) + pic_intack(&s->pics[1], irq2); + else + /* + * spurious IRQ on slave controller + */ + irq2 = 7; + intno = s->pics[1].irq_base + irq2; + irq = irq2 + 8; + } else + intno = s->pics[0].irq_base + irq; + } else { + /* + * spurious IRQ on host controller + */ + irq = 7; + intno = s->pics[0].irq_base + irq; + } + pic_update_irq(s); + + return intno; +} + +void kvm_pic_reset(struct kvm_kpic_state *s) +{ + s->last_irr = 0; + s->irr = 0; + s->imr = 0; + s->isr = 0; + s->priority_add = 0; + s->irq_base = 0; + s->read_reg_select = 0; + s->poll = 0; + s->special_mask = 0; + s->init_state = 0; + s->auto_eoi = 0; + s->rotate_on_auto_eoi = 0; + s->special_fully_nested_mode = 0; + s->init4 = 0; +} + +static void pic_ioport_write(void *opaque, u32 addr, u32 val) +{ + struct kvm_kpic_state *s = opaque; + int priority, cmd, irq; + + addr &= 1; + if (addr == 0) { + if (val & 0x10) { + kvm_pic_reset(s); /* init */ + /* + * deassert a pending interrupt + */ + s->pics_state->irq_request(s->pics_state-> + irq_request_opaque, 0); + s->init_state = 1; + s->init4 = val & 1; + if (val & 0x02) + printk(KERN_ERR "single mode not supported"); + if (val & 0x08) + printk(KERN_ERR + "level sensitive irq not supported"); + } else if (val & 0x08) { + if (val & 0x04) + s->poll = 1; + if (val & 0x02) + s->read_reg_select = val & 1; + if (val & 0x40) + s->special_mask = (val >> 5) & 1; + } else { + cmd = val >> 5; + switch (cmd) { + case 0: + case 4: + s->rotate_on_auto_eoi = cmd >> 2; + break; + case 1: /* end of interrupt */ + case 5: + priority = get_priority(s, s->isr); + if (priority != 8) { + irq = (priority + s->priority_add) & 7; + s->isr &= ~(1 << irq); + if (cmd == 5) + s->priority_add = (irq + 1) & 7; + pic_update_irq(s->pics_state); + } + break; + case 3: + irq = val & 7; + s->isr &= ~(1 << irq); + pic_update_irq(s->pics_state); + break; + case 6: + s->priority_add = (val + 1) & 7; + pic_update_irq(s->pics_state); + break; + case 7: + irq = val & 7; + s->isr &= ~(1 << irq); + s->priority_add = (irq + 1) & 7; + pic_update_irq(s->pics_state); + break; + default: + break; /* no operation */ + } + } + } else + switch (s->init_state) { + case 0: /* normal mode */ + s->imr = val; + pic_update_irq(s->pics_state); + break; + case 1: + s->irq_base = val & 0xf8; + s->init_state = 2; + break; + case 2: + if (s->init4) + s->init_state = 3; + else + s->init_state = 0; + break; + case 3: + s->special_fully_nested_mode = (val >> 4) & 1; + s->auto_eoi = (val >> 1) & 1; + s->init_state = 0; + break; + } +} + +static u32 pic_poll_read(struct kvm_kpic_state *s, u32 addr1) +{ + int ret; + + ret = pic_get_irq(s); + if (ret >= 0) { + if (addr1 >> 7) { + s->pics_state->pics[0].isr &= ~(1 << 2); + s->pics_state->pics[0].irr &= ~(1 << 2); + } + s->irr &= ~(1 << ret); + s->isr &= ~(1 << ret); + if (addr1 >> 7 || ret != 2) + pic_update_irq(s->pics_state); + } else { + ret = 0x07; + pic_update_irq(s->pics_state); + } + + return ret; +} + +static u32 pic_ioport_read(void *opaque, u32 addr1) +{ + struct kvm_kpic_state *s = opaque; + unsigned int addr; + int ret; + + addr = addr1; + addr &= 1; + if (s->poll) { + ret = pic_poll_read(s, addr1); + s->poll = 0; + } else + if (addr == 0) + if (s->read_reg_select) + ret = s->isr; + else + ret = s->irr; + else + ret = s->imr; + return ret; +} + +static void elcr_ioport_write(void *opaque, u32 addr, u32 val) +{ + struct kvm_kpic_state *s = opaque; + s->elcr = val & s->elcr_mask; +} + +static u32 elcr_ioport_read(void *opaque, u32 addr1) +{ + struct kvm_kpic_state *s = opaque; + return s->elcr; +} + +static int picdev_in_range(struct kvm_io_device *this, gpa_t addr) +{ + switch (addr) { + case 0x20: + case 0x21: + case 0xa0: + case 0xa1: + case 0x4d0: + case 0x4d1: + return 1; + default: + return 0; + } +} + +static void picdev_write(struct kvm_io_device *this, + gpa_t addr, int len, const void *val) +{ + struct kvm_pic *s = this->private; + unsigned char data = *(unsigned char *)val; + + if (len != 1) { + if (printk_ratelimit()) + printk(KERN_ERR "PIC: non byte write\n"); + return; + } + switch (addr) { + case 0x20: + case 0x21: + case 0xa0: + case 0xa1: + pic_ioport_write(&s->pics[addr >> 7], addr, data); + break; + case 0x4d0: + case 0x4d1: + elcr_ioport_write(&s->pics[addr & 1], addr, data); + break; + } +} + +static void picdev_read(struct kvm_io_device *this, + gpa_t addr, int len, void *val) +{ + struct kvm_pic *s = this->private; + unsigned char data = 0; + + if (len != 1) { + if (printk_ratelimit()) + printk(KERN_ERR "PIC: non byte read\n"); + return; + } + switch (addr) { + case 0x20: + case 0x21: + case 0xa0: + case 0xa1: + data = pic_ioport_read(&s->pics[addr >> 7], addr); + break; + case 0x4d0: + case 0x4d1: + data = elcr_ioport_read(&s->pics[addr & 1], addr); + break; + } + *(unsigned char *)val = data; +} + +/* + * callback when PIC0 irq status changed + */ +static void pic_irq_request(void *opaque, int level) +{ + struct kvm *kvm = opaque; + struct kvm_vcpu *vcpu = kvm->vcpus[0]; + + pic_irqchip(kvm)->output = level; + if (vcpu) + kvm_vcpu_kick(vcpu); +} + +struct kvm_pic *kvm_create_pic(struct kvm *kvm) +{ + struct kvm_pic *s; + s = kzalloc(sizeof(struct kvm_pic), GFP_KERNEL); + if (!s) + return NULL; + s->pics[0].elcr_mask = 0xf8; + s->pics[1].elcr_mask = 0xde; + s->irq_request = pic_irq_request; + s->irq_request_opaque = kvm; + s->pics[0].pics_state = s; + s->pics[1].pics_state = s; + + /* + * Initialize PIO device + */ + s->dev.read = picdev_read; + s->dev.write = picdev_write; + s->dev.in_range = picdev_in_range; + s->dev.private = s; + kvm_io_bus_register_dev(&kvm->pio_bus, &s->dev); + return s; +} --- linux-2.6.24.orig/arch/x86/kvm/vmx.c +++ linux-2.6.24/arch/x86/kvm/vmx.c @@ -0,0 +1,2747 @@ +/* + * Kernel-based Virtual Machine driver for Linux + * + * This module enables machines with Intel VT-x extensions to run virtual + * machines without emulation or binary translation. + * + * Copyright (C) 2006 Qumranet, Inc. + * + * Authors: + * Avi Kivity + * Yaniv Kamay + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#include "irq.h" +#include "vmx.h" +#include "segment_descriptor.h" +#include "mmu.h" + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +MODULE_AUTHOR("Qumranet"); +MODULE_LICENSE("GPL"); + +static int bypass_guest_pf = 1; +module_param(bypass_guest_pf, bool, 0); + +static int enable_vpid = 1; +module_param(enable_vpid, bool, 0); + +struct vmcs { + u32 revision_id; + u32 abort; + char data[0]; +}; + +struct vcpu_vmx { + struct kvm_vcpu vcpu; + int launched; + u8 fail; + u32 idt_vectoring_info; + struct kvm_msr_entry *guest_msrs; + struct kvm_msr_entry *host_msrs; + int nmsrs; + int save_nmsrs; + int msr_offset_efer; +#ifdef CONFIG_X86_64 + int msr_offset_kernel_gs_base; +#endif + struct vmcs *vmcs; + struct { + int loaded; + u16 fs_sel, gs_sel, ldt_sel; + int gs_ldt_reload_needed; + int fs_reload_needed; + int guest_efer_loaded; + } host_state; + struct { + struct { + bool pending; + u8 vector; + unsigned rip; + } irq; + } rmode; + int vpid; +}; + +static inline struct vcpu_vmx *to_vmx(struct kvm_vcpu *vcpu) +{ + return container_of(vcpu, struct vcpu_vmx, vcpu); +} + +static int init_rmode_tss(struct kvm *kvm); + +static DEFINE_PER_CPU(struct vmcs *, vmxarea); +static DEFINE_PER_CPU(struct vmcs *, current_vmcs); + +static struct page *vmx_io_bitmap_a; +static struct page *vmx_io_bitmap_b; + +static DECLARE_BITMAP(vmx_vpid_bitmap, VMX_NR_VPIDS); +static DEFINE_SPINLOCK(vmx_vpid_lock); + +static struct vmcs_config { + int size; + int order; + u32 revision_id; + u32 pin_based_exec_ctrl; + u32 cpu_based_exec_ctrl; + u32 cpu_based_2nd_exec_ctrl; + u32 vmexit_ctrl; + u32 vmentry_ctrl; +} vmcs_config; + +#define VMX_SEGMENT_FIELD(seg) \ + [VCPU_SREG_##seg] = { \ + .selector = GUEST_##seg##_SELECTOR, \ + .base = GUEST_##seg##_BASE, \ + .limit = GUEST_##seg##_LIMIT, \ + .ar_bytes = GUEST_##seg##_AR_BYTES, \ + } + +static struct kvm_vmx_segment_field { + unsigned selector; + unsigned base; + unsigned limit; + unsigned ar_bytes; +} kvm_vmx_segment_fields[] = { + VMX_SEGMENT_FIELD(CS), + VMX_SEGMENT_FIELD(DS), + VMX_SEGMENT_FIELD(ES), + VMX_SEGMENT_FIELD(FS), + VMX_SEGMENT_FIELD(GS), + VMX_SEGMENT_FIELD(SS), + VMX_SEGMENT_FIELD(TR), + VMX_SEGMENT_FIELD(LDTR), +}; + +/* + * Keep MSR_K6_STAR at the end, as setup_msrs() will try to optimize it + * away by decrementing the array size. + */ +static const u32 vmx_msr_index[] = { +#ifdef CONFIG_X86_64 + MSR_SYSCALL_MASK, MSR_LSTAR, MSR_CSTAR, MSR_KERNEL_GS_BASE, +#endif + MSR_EFER, MSR_K6_STAR, +}; +#define NR_VMX_MSR ARRAY_SIZE(vmx_msr_index) + +static void load_msrs(struct kvm_msr_entry *e, int n) +{ + int i; + + for (i = 0; i < n; ++i) + wrmsrl(e[i].index, e[i].data); +} + +static void save_msrs(struct kvm_msr_entry *e, int n) +{ + int i; + + for (i = 0; i < n; ++i) + rdmsrl(e[i].index, e[i].data); +} + +static inline int is_page_fault(u32 intr_info) +{ + return (intr_info & (INTR_INFO_INTR_TYPE_MASK | INTR_INFO_VECTOR_MASK | + INTR_INFO_VALID_MASK)) == + (INTR_TYPE_EXCEPTION | PF_VECTOR | INTR_INFO_VALID_MASK); +} + +static inline int is_no_device(u32 intr_info) +{ + return (intr_info & (INTR_INFO_INTR_TYPE_MASK | INTR_INFO_VECTOR_MASK | + INTR_INFO_VALID_MASK)) == + (INTR_TYPE_EXCEPTION | NM_VECTOR | INTR_INFO_VALID_MASK); +} + +static inline int is_invalid_opcode(u32 intr_info) +{ + return (intr_info & (INTR_INFO_INTR_TYPE_MASK | INTR_INFO_VECTOR_MASK | + INTR_INFO_VALID_MASK)) == + (INTR_TYPE_EXCEPTION | UD_VECTOR | INTR_INFO_VALID_MASK); +} + +static inline int is_external_interrupt(u32 intr_info) +{ + return (intr_info & (INTR_INFO_INTR_TYPE_MASK | INTR_INFO_VALID_MASK)) + == (INTR_TYPE_EXT_INTR | INTR_INFO_VALID_MASK); +} + +static inline int cpu_has_vmx_tpr_shadow(void) +{ + return (vmcs_config.cpu_based_exec_ctrl & CPU_BASED_TPR_SHADOW); +} + +static inline int vm_need_tpr_shadow(struct kvm *kvm) +{ + return ((cpu_has_vmx_tpr_shadow()) && (irqchip_in_kernel(kvm))); +} + +static inline int cpu_has_secondary_exec_ctrls(void) +{ + return (vmcs_config.cpu_based_exec_ctrl & + CPU_BASED_ACTIVATE_SECONDARY_CONTROLS); +} + +static inline bool cpu_has_vmx_virtualize_apic_accesses(void) +{ + return (vmcs_config.cpu_based_2nd_exec_ctrl & + SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES); +} + +static inline int vm_need_virtualize_apic_accesses(struct kvm *kvm) +{ + return ((cpu_has_vmx_virtualize_apic_accesses()) && + (irqchip_in_kernel(kvm))); +} + +static inline int cpu_has_vmx_vpid(void) +{ + return (vmcs_config.cpu_based_2nd_exec_ctrl & + SECONDARY_EXEC_ENABLE_VPID); +} + +static int __find_msr_index(struct vcpu_vmx *vmx, u32 msr) +{ + int i; + + for (i = 0; i < vmx->nmsrs; ++i) + if (vmx->guest_msrs[i].index == msr) + return i; + return -1; +} + +static inline void __invvpid(int ext, u16 vpid, gva_t gva) +{ + struct { + u64 vpid : 16; + u64 rsvd : 48; + u64 gva; + } operand = { vpid, 0, gva }; + + asm volatile (ASM_VMX_INVVPID + /* CF==1 or ZF==1 --> rc = -1 */ + "; ja 1f ; ud2 ; 1:" + : : "a"(&operand), "c"(ext) : "cc", "memory"); +} + +static struct kvm_msr_entry *find_msr_entry(struct vcpu_vmx *vmx, u32 msr) +{ + int i; + + i = __find_msr_index(vmx, msr); + if (i >= 0) + return &vmx->guest_msrs[i]; + return NULL; +} + +static void vmcs_clear(struct vmcs *vmcs) +{ + u64 phys_addr = __pa(vmcs); + u8 error; + + asm volatile (ASM_VMX_VMCLEAR_RAX "; setna %0" + : "=g"(error) : "a"(&phys_addr), "m"(phys_addr) + : "cc", "memory"); + if (error) + printk(KERN_ERR "kvm: vmclear fail: %p/%llx\n", + vmcs, phys_addr); +} + +static void __vcpu_clear(void *arg) +{ + struct vcpu_vmx *vmx = arg; + int cpu = raw_smp_processor_id(); + + if (vmx->vcpu.cpu == cpu) + vmcs_clear(vmx->vmcs); + if (per_cpu(current_vmcs, cpu) == vmx->vmcs) + per_cpu(current_vmcs, cpu) = NULL; + rdtscll(vmx->vcpu.arch.host_tsc); +} + +static void vcpu_clear(struct vcpu_vmx *vmx) +{ + if (vmx->vcpu.cpu == -1) + return; + smp_call_function_single(vmx->vcpu.cpu, __vcpu_clear, vmx, 0, 1); + vmx->launched = 0; +} + +static inline void vpid_sync_vcpu_all(struct vcpu_vmx *vmx) +{ + if (vmx->vpid == 0) + return; + + __invvpid(VMX_VPID_EXTENT_SINGLE_CONTEXT, vmx->vpid, 0); +} + +static unsigned long vmcs_readl(unsigned long field) +{ + unsigned long value; + + asm volatile (ASM_VMX_VMREAD_RDX_RAX + : "=a"(value) : "d"(field) : "cc"); + return value; +} + +static u16 vmcs_read16(unsigned long field) +{ + return vmcs_readl(field); +} + +static u32 vmcs_read32(unsigned long field) +{ + return vmcs_readl(field); +} + +static u64 vmcs_read64(unsigned long field) +{ +#ifdef CONFIG_X86_64 + return vmcs_readl(field); +#else + return vmcs_readl(field) | ((u64)vmcs_readl(field+1) << 32); +#endif +} + +static noinline void vmwrite_error(unsigned long field, unsigned long value) +{ + printk(KERN_ERR "vmwrite error: reg %lx value %lx (err %d)\n", + field, value, vmcs_read32(VM_INSTRUCTION_ERROR)); + dump_stack(); +} + +static void vmcs_writel(unsigned long field, unsigned long value) +{ + u8 error; + + asm volatile (ASM_VMX_VMWRITE_RAX_RDX "; setna %0" + : "=q"(error) : "a"(value), "d"(field) : "cc"); + if (unlikely(error)) + vmwrite_error(field, value); +} + +static void vmcs_write16(unsigned long field, u16 value) +{ + vmcs_writel(field, value); +} + +static void vmcs_write32(unsigned long field, u32 value) +{ + vmcs_writel(field, value); +} + +static void vmcs_write64(unsigned long field, u64 value) +{ +#ifdef CONFIG_X86_64 + vmcs_writel(field, value); +#else + vmcs_writel(field, value); + asm volatile (""); + vmcs_writel(field+1, value >> 32); +#endif +} + +static void vmcs_clear_bits(unsigned long field, u32 mask) +{ + vmcs_writel(field, vmcs_readl(field) & ~mask); +} + +static void vmcs_set_bits(unsigned long field, u32 mask) +{ + vmcs_writel(field, vmcs_readl(field) | mask); +} + +static void update_exception_bitmap(struct kvm_vcpu *vcpu) +{ + u32 eb; + + eb = (1u << PF_VECTOR) | (1u << UD_VECTOR); + if (!vcpu->fpu_active) + eb |= 1u << NM_VECTOR; + if (vcpu->guest_debug.enabled) + eb |= 1u << 1; + if (vcpu->arch.rmode.active) + eb = ~0; + vmcs_write32(EXCEPTION_BITMAP, eb); +} + +static void reload_tss(void) +{ + /* + * VT restores TR but not its size. Useless. + */ + struct descriptor_table gdt; + struct segment_descriptor *descs; + + get_gdt(&gdt); + descs = (void *)gdt.base; + descs[GDT_ENTRY_TSS].type = 9; /* available TSS */ + load_TR_desc(); +} + +static void load_transition_efer(struct vcpu_vmx *vmx) +{ + int efer_offset = vmx->msr_offset_efer; + u64 host_efer = vmx->host_msrs[efer_offset].data; + u64 guest_efer = vmx->guest_msrs[efer_offset].data; + u64 ignore_bits; + + if (efer_offset < 0) + return; + /* + * NX is emulated; LMA and LME handled by hardware; SCE meaninless + * outside long mode + */ + ignore_bits = EFER_NX | EFER_SCE; +#ifdef CONFIG_X86_64 + ignore_bits |= EFER_LMA | EFER_LME; + /* SCE is meaningful only in long mode on Intel */ + if (guest_efer & EFER_LMA) + ignore_bits &= ~(u64)EFER_SCE; +#endif + if ((guest_efer & ~ignore_bits) == (host_efer & ~ignore_bits)) + return; + + vmx->host_state.guest_efer_loaded = 1; + guest_efer &= ~ignore_bits; + guest_efer |= host_efer & ignore_bits; + wrmsrl(MSR_EFER, guest_efer); + vmx->vcpu.stat.efer_reload++; +} + +static void reload_host_efer(struct vcpu_vmx *vmx) +{ + if (vmx->host_state.guest_efer_loaded) { + vmx->host_state.guest_efer_loaded = 0; + load_msrs(vmx->host_msrs + vmx->msr_offset_efer, 1); + } +} + +static void vmx_save_host_state(struct kvm_vcpu *vcpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + + if (vmx->host_state.loaded) + return; + + vmx->host_state.loaded = 1; + /* + * Set host fs and gs selectors. Unfortunately, 22.2.3 does not + * allow segment selectors with cpl > 0 or ti == 1. + */ + vmx->host_state.ldt_sel = read_ldt(); + vmx->host_state.gs_ldt_reload_needed = vmx->host_state.ldt_sel; + vmx->host_state.fs_sel = read_fs(); + if (!(vmx->host_state.fs_sel & 7)) { + vmcs_write16(HOST_FS_SELECTOR, vmx->host_state.fs_sel); + vmx->host_state.fs_reload_needed = 0; + } else { + vmcs_write16(HOST_FS_SELECTOR, 0); + vmx->host_state.fs_reload_needed = 1; + } + vmx->host_state.gs_sel = read_gs(); + if (!(vmx->host_state.gs_sel & 7)) + vmcs_write16(HOST_GS_SELECTOR, vmx->host_state.gs_sel); + else { + vmcs_write16(HOST_GS_SELECTOR, 0); + vmx->host_state.gs_ldt_reload_needed = 1; + } + +#ifdef CONFIG_X86_64 + vmcs_writel(HOST_FS_BASE, read_msr(MSR_FS_BASE)); + vmcs_writel(HOST_GS_BASE, read_msr(MSR_GS_BASE)); +#else + vmcs_writel(HOST_FS_BASE, segment_base(vmx->host_state.fs_sel)); + vmcs_writel(HOST_GS_BASE, segment_base(vmx->host_state.gs_sel)); +#endif + +#ifdef CONFIG_X86_64 + if (is_long_mode(&vmx->vcpu)) + save_msrs(vmx->host_msrs + + vmx->msr_offset_kernel_gs_base, 1); + +#endif + load_msrs(vmx->guest_msrs, vmx->save_nmsrs); + load_transition_efer(vmx); +} + +static void vmx_load_host_state(struct vcpu_vmx *vmx) +{ + unsigned long flags; + + if (!vmx->host_state.loaded) + return; + + ++vmx->vcpu.stat.host_state_reload; + vmx->host_state.loaded = 0; + if (vmx->host_state.fs_reload_needed) + load_fs(vmx->host_state.fs_sel); + if (vmx->host_state.gs_ldt_reload_needed) { + load_ldt(vmx->host_state.ldt_sel); + /* + * If we have to reload gs, we must take care to + * preserve our gs base. + */ + local_irq_save(flags); + load_gs(vmx->host_state.gs_sel); +#ifdef CONFIG_X86_64 + wrmsrl(MSR_GS_BASE, vmcs_readl(HOST_GS_BASE)); +#endif + local_irq_restore(flags); + } + reload_tss(); + save_msrs(vmx->guest_msrs, vmx->save_nmsrs); + load_msrs(vmx->host_msrs, vmx->save_nmsrs); + reload_host_efer(vmx); +} + +/* + * Switches to specified vcpu, until a matching vcpu_put(), but assumes + * vcpu mutex is already taken. + */ +static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + u64 phys_addr = __pa(vmx->vmcs); + u64 tsc_this, delta; + + if (vcpu->cpu != cpu) { + vcpu_clear(vmx); + kvm_migrate_apic_timer(vcpu); + vpid_sync_vcpu_all(vmx); + } + + if (per_cpu(current_vmcs, cpu) != vmx->vmcs) { + u8 error; + + per_cpu(current_vmcs, cpu) = vmx->vmcs; + asm volatile (ASM_VMX_VMPTRLD_RAX "; setna %0" + : "=g"(error) : "a"(&phys_addr), "m"(phys_addr) + : "cc"); + if (error) + printk(KERN_ERR "kvm: vmptrld %p/%llx fail\n", + vmx->vmcs, phys_addr); + } + + if (vcpu->cpu != cpu) { + struct descriptor_table dt; + unsigned long sysenter_esp; + + vcpu->cpu = cpu; + /* + * Linux uses per-cpu TSS and GDT, so set these when switching + * processors. + */ + vmcs_writel(HOST_TR_BASE, read_tr_base()); /* 22.2.4 */ + get_gdt(&dt); + vmcs_writel(HOST_GDTR_BASE, dt.base); /* 22.2.4 */ + + rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp); + vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */ + + /* + * Make sure the time stamp counter is monotonous. + */ + rdtscll(tsc_this); + delta = vcpu->arch.host_tsc - tsc_this; + vmcs_write64(TSC_OFFSET, vmcs_read64(TSC_OFFSET) + delta); + } +} + +static void vmx_vcpu_put(struct kvm_vcpu *vcpu) +{ + vmx_load_host_state(to_vmx(vcpu)); +} + +static void vmx_fpu_activate(struct kvm_vcpu *vcpu) +{ + if (vcpu->fpu_active) + return; + vcpu->fpu_active = 1; + vmcs_clear_bits(GUEST_CR0, X86_CR0_TS); + if (vcpu->arch.cr0 & X86_CR0_TS) + vmcs_set_bits(GUEST_CR0, X86_CR0_TS); + update_exception_bitmap(vcpu); +} + +static void vmx_fpu_deactivate(struct kvm_vcpu *vcpu) +{ + if (!vcpu->fpu_active) + return; + vcpu->fpu_active = 0; + vmcs_set_bits(GUEST_CR0, X86_CR0_TS); + update_exception_bitmap(vcpu); +} + +static void vmx_vcpu_decache(struct kvm_vcpu *vcpu) +{ + vcpu_clear(to_vmx(vcpu)); +} + +static unsigned long vmx_get_rflags(struct kvm_vcpu *vcpu) +{ + return vmcs_readl(GUEST_RFLAGS); +} + +static void vmx_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags) +{ + if (vcpu->arch.rmode.active) + rflags |= IOPL_MASK | X86_EFLAGS_VM; + vmcs_writel(GUEST_RFLAGS, rflags); +} + +static void skip_emulated_instruction(struct kvm_vcpu *vcpu) +{ + unsigned long rip; + u32 interruptibility; + + rip = vmcs_readl(GUEST_RIP); + rip += vmcs_read32(VM_EXIT_INSTRUCTION_LEN); + vmcs_writel(GUEST_RIP, rip); + + /* + * We emulated an instruction, so temporary interrupt blocking + * should be removed, if set. + */ + interruptibility = vmcs_read32(GUEST_INTERRUPTIBILITY_INFO); + if (interruptibility & 3) + vmcs_write32(GUEST_INTERRUPTIBILITY_INFO, + interruptibility & ~3); + vcpu->arch.interrupt_window_open = 1; +} + +static void vmx_queue_exception(struct kvm_vcpu *vcpu, unsigned nr, + bool has_error_code, u32 error_code) +{ + vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, + nr | INTR_TYPE_EXCEPTION + | (has_error_code ? INTR_INFO_DELIVER_CODE_MASK : 0) + | INTR_INFO_VALID_MASK); + if (has_error_code) + vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, error_code); +} + +static bool vmx_exception_injected(struct kvm_vcpu *vcpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + + return !(vmx->idt_vectoring_info & VECTORING_INFO_VALID_MASK); +} + +/* + * Swap MSR entry in host/guest MSR entry array. + */ +#ifdef CONFIG_X86_64 +static void move_msr_up(struct vcpu_vmx *vmx, int from, int to) +{ + struct kvm_msr_entry tmp; + + tmp = vmx->guest_msrs[to]; + vmx->guest_msrs[to] = vmx->guest_msrs[from]; + vmx->guest_msrs[from] = tmp; + tmp = vmx->host_msrs[to]; + vmx->host_msrs[to] = vmx->host_msrs[from]; + vmx->host_msrs[from] = tmp; +} +#endif + +/* + * Set up the vmcs to automatically save and restore system + * msrs. Don't touch the 64-bit msrs if the guest is in legacy + * mode, as fiddling with msrs is very expensive. + */ +static void setup_msrs(struct vcpu_vmx *vmx) +{ + int save_nmsrs; + + save_nmsrs = 0; +#ifdef CONFIG_X86_64 + if (is_long_mode(&vmx->vcpu)) { + int index; + + index = __find_msr_index(vmx, MSR_SYSCALL_MASK); + if (index >= 0) + move_msr_up(vmx, index, save_nmsrs++); + index = __find_msr_index(vmx, MSR_LSTAR); + if (index >= 0) + move_msr_up(vmx, index, save_nmsrs++); + index = __find_msr_index(vmx, MSR_CSTAR); + if (index >= 0) + move_msr_up(vmx, index, save_nmsrs++); + index = __find_msr_index(vmx, MSR_KERNEL_GS_BASE); + if (index >= 0) + move_msr_up(vmx, index, save_nmsrs++); + /* + * MSR_K6_STAR is only needed on long mode guests, and only + * if efer.sce is enabled. + */ + index = __find_msr_index(vmx, MSR_K6_STAR); + if ((index >= 0) && (vmx->vcpu.arch.shadow_efer & EFER_SCE)) + move_msr_up(vmx, index, save_nmsrs++); + } +#endif + vmx->save_nmsrs = save_nmsrs; + +#ifdef CONFIG_X86_64 + vmx->msr_offset_kernel_gs_base = + __find_msr_index(vmx, MSR_KERNEL_GS_BASE); +#endif + vmx->msr_offset_efer = __find_msr_index(vmx, MSR_EFER); +} + +/* + * reads and returns guest's timestamp counter "register" + * guest_tsc = host_tsc + tsc_offset -- 21.3 + */ +static u64 guest_read_tsc(void) +{ + u64 host_tsc, tsc_offset; + + rdtscll(host_tsc); + tsc_offset = vmcs_read64(TSC_OFFSET); + return host_tsc + tsc_offset; +} + +/* + * writes 'guest_tsc' into guest's timestamp counter "register" + * guest_tsc = host_tsc + tsc_offset ==> tsc_offset = guest_tsc - host_tsc + */ +static void guest_write_tsc(u64 guest_tsc) +{ + u64 host_tsc; + + rdtscll(host_tsc); + vmcs_write64(TSC_OFFSET, guest_tsc - host_tsc); +} + +/* + * Reads an msr value (of 'msr_index') into 'pdata'. + * Returns 0 on success, non-0 otherwise. + * Assumes vcpu_load() was already called. + */ +static int vmx_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata) +{ + u64 data; + struct kvm_msr_entry *msr; + + if (!pdata) { + printk(KERN_ERR "BUG: get_msr called with NULL pdata\n"); + return -EINVAL; + } + + switch (msr_index) { +#ifdef CONFIG_X86_64 + case MSR_FS_BASE: + data = vmcs_readl(GUEST_FS_BASE); + break; + case MSR_GS_BASE: + data = vmcs_readl(GUEST_GS_BASE); + break; + case MSR_EFER: + return kvm_get_msr_common(vcpu, msr_index, pdata); +#endif + case MSR_IA32_TIME_STAMP_COUNTER: + data = guest_read_tsc(); + break; + case MSR_IA32_SYSENTER_CS: + data = vmcs_read32(GUEST_SYSENTER_CS); + break; + case MSR_IA32_SYSENTER_EIP: + data = vmcs_readl(GUEST_SYSENTER_EIP); + break; + case MSR_IA32_SYSENTER_ESP: + data = vmcs_readl(GUEST_SYSENTER_ESP); + break; + default: + msr = find_msr_entry(to_vmx(vcpu), msr_index); + if (msr) { + data = msr->data; + break; + } + return kvm_get_msr_common(vcpu, msr_index, pdata); + } + + *pdata = data; + return 0; +} + +/* + * Writes msr value into into the appropriate "register". + * Returns 0 on success, non-0 otherwise. + * Assumes vcpu_load() was already called. + */ +static int vmx_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + struct kvm_msr_entry *msr; + int ret = 0; + + switch (msr_index) { + case MSR_EFER: + ret = kvm_set_msr_common(vcpu, msr_index, data); + if (vmx->host_state.loaded) { + reload_host_efer(vmx); + load_transition_efer(vmx); + } + break; +#ifdef CONFIG_X86_64 + case MSR_FS_BASE: + vmcs_writel(GUEST_FS_BASE, data); + break; + case MSR_GS_BASE: + vmcs_writel(GUEST_GS_BASE, data); + break; +#endif + case MSR_IA32_SYSENTER_CS: + vmcs_write32(GUEST_SYSENTER_CS, data); + break; + case MSR_IA32_SYSENTER_EIP: + vmcs_writel(GUEST_SYSENTER_EIP, data); + break; + case MSR_IA32_SYSENTER_ESP: + vmcs_writel(GUEST_SYSENTER_ESP, data); + break; + case MSR_IA32_TIME_STAMP_COUNTER: + guest_write_tsc(data); + break; + default: + msr = find_msr_entry(vmx, msr_index); + if (msr) { + msr->data = data; + if (vmx->host_state.loaded) + load_msrs(vmx->guest_msrs, vmx->save_nmsrs); + break; + } + ret = kvm_set_msr_common(vcpu, msr_index, data); + } + + return ret; +} + +/* + * Sync the rsp and rip registers into the vcpu structure. This allows + * registers to be accessed by indexing vcpu->arch.regs. + */ +static void vcpu_load_rsp_rip(struct kvm_vcpu *vcpu) +{ + vcpu->arch.regs[VCPU_REGS_RSP] = vmcs_readl(GUEST_RSP); + vcpu->arch.rip = vmcs_readl(GUEST_RIP); +} + +/* + * Syncs rsp and rip back into the vmcs. Should be called after possible + * modification. + */ +static void vcpu_put_rsp_rip(struct kvm_vcpu *vcpu) +{ + vmcs_writel(GUEST_RSP, vcpu->arch.regs[VCPU_REGS_RSP]); + vmcs_writel(GUEST_RIP, vcpu->arch.rip); +} + +static int set_guest_debug(struct kvm_vcpu *vcpu, struct kvm_debug_guest *dbg) +{ + unsigned long dr7 = 0x400; + int old_singlestep; + + old_singlestep = vcpu->guest_debug.singlestep; + + vcpu->guest_debug.enabled = dbg->enabled; + if (vcpu->guest_debug.enabled) { + int i; + + dr7 |= 0x200; /* exact */ + for (i = 0; i < 4; ++i) { + if (!dbg->breakpoints[i].enabled) + continue; + vcpu->guest_debug.bp[i] = dbg->breakpoints[i].address; + dr7 |= 2 << (i*2); /* global enable */ + dr7 |= 0 << (i*4+16); /* execution breakpoint */ + } + + vcpu->guest_debug.singlestep = dbg->singlestep; + } else + vcpu->guest_debug.singlestep = 0; + + if (old_singlestep && !vcpu->guest_debug.singlestep) { + unsigned long flags; + + flags = vmcs_readl(GUEST_RFLAGS); + flags &= ~(X86_EFLAGS_TF | X86_EFLAGS_RF); + vmcs_writel(GUEST_RFLAGS, flags); + } + + update_exception_bitmap(vcpu); + vmcs_writel(GUEST_DR7, dr7); + + return 0; +} + +static int vmx_get_irq(struct kvm_vcpu *vcpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + u32 idtv_info_field; + + idtv_info_field = vmx->idt_vectoring_info; + if (idtv_info_field & INTR_INFO_VALID_MASK) { + if (is_external_interrupt(idtv_info_field)) + return idtv_info_field & VECTORING_INFO_VECTOR_MASK; + else + printk(KERN_DEBUG "pending exception: not handled yet\n"); + } + return -1; +} + +static __init int cpu_has_kvm_support(void) +{ + unsigned long ecx = cpuid_ecx(1); + return test_bit(5, &ecx); /* CPUID.1:ECX.VMX[bit 5] -> VT */ +} + +static __init int vmx_disabled_by_bios(void) +{ + u64 msr; + + rdmsrl(MSR_IA32_FEATURE_CONTROL, msr); + return (msr & (MSR_IA32_FEATURE_CONTROL_LOCKED | + MSR_IA32_FEATURE_CONTROL_VMXON_ENABLED)) + == MSR_IA32_FEATURE_CONTROL_LOCKED; + /* locked but not enabled */ +} + +static void hardware_enable(void *garbage) +{ + int cpu = raw_smp_processor_id(); + u64 phys_addr = __pa(per_cpu(vmxarea, cpu)); + u64 old; + + rdmsrl(MSR_IA32_FEATURE_CONTROL, old); + if ((old & (MSR_IA32_FEATURE_CONTROL_LOCKED | + MSR_IA32_FEATURE_CONTROL_VMXON_ENABLED)) + != (MSR_IA32_FEATURE_CONTROL_LOCKED | + MSR_IA32_FEATURE_CONTROL_VMXON_ENABLED)) + /* enable and lock */ + wrmsrl(MSR_IA32_FEATURE_CONTROL, old | + MSR_IA32_FEATURE_CONTROL_LOCKED | + MSR_IA32_FEATURE_CONTROL_VMXON_ENABLED); + write_cr4(read_cr4() | X86_CR4_VMXE); /* FIXME: not cpu hotplug safe */ + asm volatile (ASM_VMX_VMXON_RAX : : "a"(&phys_addr), "m"(phys_addr) + : "memory", "cc"); +} + +static void hardware_disable(void *garbage) +{ + asm volatile (ASM_VMX_VMXOFF : : : "cc"); + write_cr4(read_cr4() & ~X86_CR4_VMXE); +} + +static __init int adjust_vmx_controls(u32 ctl_min, u32 ctl_opt, + u32 msr, u32 *result) +{ + u32 vmx_msr_low, vmx_msr_high; + u32 ctl = ctl_min | ctl_opt; + + rdmsr(msr, vmx_msr_low, vmx_msr_high); + + ctl &= vmx_msr_high; /* bit == 0 in high word ==> must be zero */ + ctl |= vmx_msr_low; /* bit == 1 in low word ==> must be one */ + + /* Ensure minimum (required) set of control bits are supported. */ + if (ctl_min & ~ctl) + return -EIO; + + *result = ctl; + return 0; +} + +static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf) +{ + u32 vmx_msr_low, vmx_msr_high; + u32 min, opt; + u32 _pin_based_exec_control = 0; + u32 _cpu_based_exec_control = 0; + u32 _cpu_based_2nd_exec_control = 0; + u32 _vmexit_control = 0; + u32 _vmentry_control = 0; + + min = PIN_BASED_EXT_INTR_MASK | PIN_BASED_NMI_EXITING; + opt = 0; + if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_PINBASED_CTLS, + &_pin_based_exec_control) < 0) + return -EIO; + + min = CPU_BASED_HLT_EXITING | +#ifdef CONFIG_X86_64 + CPU_BASED_CR8_LOAD_EXITING | + CPU_BASED_CR8_STORE_EXITING | +#endif + CPU_BASED_USE_IO_BITMAPS | + CPU_BASED_MOV_DR_EXITING | + CPU_BASED_USE_TSC_OFFSETING; + opt = CPU_BASED_TPR_SHADOW | + CPU_BASED_ACTIVATE_SECONDARY_CONTROLS; + if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_PROCBASED_CTLS, + &_cpu_based_exec_control) < 0) + return -EIO; +#ifdef CONFIG_X86_64 + if ((_cpu_based_exec_control & CPU_BASED_TPR_SHADOW)) + _cpu_based_exec_control &= ~CPU_BASED_CR8_LOAD_EXITING & + ~CPU_BASED_CR8_STORE_EXITING; +#endif + if (_cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS) { + min = 0; + opt = SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES | + SECONDARY_EXEC_WBINVD_EXITING | + SECONDARY_EXEC_ENABLE_VPID; + if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_PROCBASED_CTLS2, + &_cpu_based_2nd_exec_control) < 0) + return -EIO; + } +#ifndef CONFIG_X86_64 + if (!(_cpu_based_2nd_exec_control & + SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES)) + _cpu_based_exec_control &= ~CPU_BASED_TPR_SHADOW; +#endif + + min = 0; +#ifdef CONFIG_X86_64 + min |= VM_EXIT_HOST_ADDR_SPACE_SIZE; +#endif + opt = 0; + if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_EXIT_CTLS, + &_vmexit_control) < 0) + return -EIO; + + min = opt = 0; + if (adjust_vmx_controls(min, opt, MSR_IA32_VMX_ENTRY_CTLS, + &_vmentry_control) < 0) + return -EIO; + + rdmsr(MSR_IA32_VMX_BASIC, vmx_msr_low, vmx_msr_high); + + /* IA-32 SDM Vol 3B: VMCS size is never greater than 4kB. */ + if ((vmx_msr_high & 0x1fff) > PAGE_SIZE) + return -EIO; + +#ifdef CONFIG_X86_64 + /* IA-32 SDM Vol 3B: 64-bit CPUs always have VMX_BASIC_MSR[48]==0. */ + if (vmx_msr_high & (1u<<16)) + return -EIO; +#endif + + /* Require Write-Back (WB) memory type for VMCS accesses. */ + if (((vmx_msr_high >> 18) & 15) != 6) + return -EIO; + + vmcs_conf->size = vmx_msr_high & 0x1fff; + vmcs_conf->order = get_order(vmcs_config.size); + vmcs_conf->revision_id = vmx_msr_low; + + vmcs_conf->pin_based_exec_ctrl = _pin_based_exec_control; + vmcs_conf->cpu_based_exec_ctrl = _cpu_based_exec_control; + vmcs_conf->cpu_based_2nd_exec_ctrl = _cpu_based_2nd_exec_control; + vmcs_conf->vmexit_ctrl = _vmexit_control; + vmcs_conf->vmentry_ctrl = _vmentry_control; + + return 0; +} + +static struct vmcs *alloc_vmcs_cpu(int cpu) +{ + int node = cpu_to_node(cpu); + struct page *pages; + struct vmcs *vmcs; + + pages = alloc_pages_node(node, GFP_KERNEL, vmcs_config.order); + if (!pages) + return NULL; + vmcs = page_address(pages); + memset(vmcs, 0, vmcs_config.size); + vmcs->revision_id = vmcs_config.revision_id; /* vmcs revision id */ + return vmcs; +} + +static struct vmcs *alloc_vmcs(void) +{ + return alloc_vmcs_cpu(raw_smp_processor_id()); +} + +static void free_vmcs(struct vmcs *vmcs) +{ + free_pages((unsigned long)vmcs, vmcs_config.order); +} + +static void free_kvm_area(void) +{ + int cpu; + + for_each_online_cpu(cpu) + free_vmcs(per_cpu(vmxarea, cpu)); +} + +static __init int alloc_kvm_area(void) +{ + int cpu; + + for_each_online_cpu(cpu) { + struct vmcs *vmcs; + + vmcs = alloc_vmcs_cpu(cpu); + if (!vmcs) { + free_kvm_area(); + return -ENOMEM; + } + + per_cpu(vmxarea, cpu) = vmcs; + } + return 0; +} + +static __init int hardware_setup(void) +{ + if (setup_vmcs_config(&vmcs_config) < 0) + return -EIO; + + if (boot_cpu_has(X86_FEATURE_NX)) + kvm_enable_efer_bits(EFER_NX); + + return alloc_kvm_area(); +} + +static __exit void hardware_unsetup(void) +{ + free_kvm_area(); +} + +static void fix_pmode_dataseg(int seg, struct kvm_save_segment *save) +{ + struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg]; + + if (vmcs_readl(sf->base) == save->base && (save->base & AR_S_MASK)) { + vmcs_write16(sf->selector, save->selector); + vmcs_writel(sf->base, save->base); + vmcs_write32(sf->limit, save->limit); + vmcs_write32(sf->ar_bytes, save->ar); + } else { + u32 dpl = (vmcs_read16(sf->selector) & SELECTOR_RPL_MASK) + << AR_DPL_SHIFT; + vmcs_write32(sf->ar_bytes, 0x93 | dpl); + } +} + +static void enter_pmode(struct kvm_vcpu *vcpu) +{ + unsigned long flags; + + vcpu->arch.rmode.active = 0; + + vmcs_writel(GUEST_TR_BASE, vcpu->arch.rmode.tr.base); + vmcs_write32(GUEST_TR_LIMIT, vcpu->arch.rmode.tr.limit); + vmcs_write32(GUEST_TR_AR_BYTES, vcpu->arch.rmode.tr.ar); + + flags = vmcs_readl(GUEST_RFLAGS); + flags &= ~(IOPL_MASK | X86_EFLAGS_VM); + flags |= (vcpu->arch.rmode.save_iopl << IOPL_SHIFT); + vmcs_writel(GUEST_RFLAGS, flags); + + vmcs_writel(GUEST_CR4, (vmcs_readl(GUEST_CR4) & ~X86_CR4_VME) | + (vmcs_readl(CR4_READ_SHADOW) & X86_CR4_VME)); + + update_exception_bitmap(vcpu); + + fix_pmode_dataseg(VCPU_SREG_ES, &vcpu->arch.rmode.es); + fix_pmode_dataseg(VCPU_SREG_DS, &vcpu->arch.rmode.ds); + fix_pmode_dataseg(VCPU_SREG_GS, &vcpu->arch.rmode.gs); + fix_pmode_dataseg(VCPU_SREG_FS, &vcpu->arch.rmode.fs); + + vmcs_write16(GUEST_SS_SELECTOR, 0); + vmcs_write32(GUEST_SS_AR_BYTES, 0x93); + + vmcs_write16(GUEST_CS_SELECTOR, + vmcs_read16(GUEST_CS_SELECTOR) & ~SELECTOR_RPL_MASK); + vmcs_write32(GUEST_CS_AR_BYTES, 0x9b); +} + +static gva_t rmode_tss_base(struct kvm *kvm) +{ + if (!kvm->arch.tss_addr) { + gfn_t base_gfn = kvm->memslots[0].base_gfn + + kvm->memslots[0].npages - 3; + return base_gfn << PAGE_SHIFT; + } + return kvm->arch.tss_addr; +} + +static void fix_rmode_seg(int seg, struct kvm_save_segment *save) +{ + struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg]; + + save->selector = vmcs_read16(sf->selector); + save->base = vmcs_readl(sf->base); + save->limit = vmcs_read32(sf->limit); + save->ar = vmcs_read32(sf->ar_bytes); + vmcs_write16(sf->selector, save->base >> 4); + vmcs_write32(sf->base, save->base & 0xfffff); + vmcs_write32(sf->limit, 0xffff); + vmcs_write32(sf->ar_bytes, 0xf3); +} + +static void enter_rmode(struct kvm_vcpu *vcpu) +{ + unsigned long flags; + + vcpu->arch.rmode.active = 1; + + vcpu->arch.rmode.tr.base = vmcs_readl(GUEST_TR_BASE); + vmcs_writel(GUEST_TR_BASE, rmode_tss_base(vcpu->kvm)); + + vcpu->arch.rmode.tr.limit = vmcs_read32(GUEST_TR_LIMIT); + vmcs_write32(GUEST_TR_LIMIT, RMODE_TSS_SIZE - 1); + + vcpu->arch.rmode.tr.ar = vmcs_read32(GUEST_TR_AR_BYTES); + vmcs_write32(GUEST_TR_AR_BYTES, 0x008b); + + flags = vmcs_readl(GUEST_RFLAGS); + vcpu->arch.rmode.save_iopl = (flags & IOPL_MASK) >> IOPL_SHIFT; + + flags |= IOPL_MASK | X86_EFLAGS_VM; + + vmcs_writel(GUEST_RFLAGS, flags); + vmcs_writel(GUEST_CR4, vmcs_readl(GUEST_CR4) | X86_CR4_VME); + update_exception_bitmap(vcpu); + + vmcs_write16(GUEST_SS_SELECTOR, vmcs_readl(GUEST_SS_BASE) >> 4); + vmcs_write32(GUEST_SS_LIMIT, 0xffff); + vmcs_write32(GUEST_SS_AR_BYTES, 0xf3); + + vmcs_write32(GUEST_CS_AR_BYTES, 0xf3); + vmcs_write32(GUEST_CS_LIMIT, 0xffff); + if (vmcs_readl(GUEST_CS_BASE) == 0xffff0000) + vmcs_writel(GUEST_CS_BASE, 0xf0000); + vmcs_write16(GUEST_CS_SELECTOR, vmcs_readl(GUEST_CS_BASE) >> 4); + + fix_rmode_seg(VCPU_SREG_ES, &vcpu->arch.rmode.es); + fix_rmode_seg(VCPU_SREG_DS, &vcpu->arch.rmode.ds); + fix_rmode_seg(VCPU_SREG_GS, &vcpu->arch.rmode.gs); + fix_rmode_seg(VCPU_SREG_FS, &vcpu->arch.rmode.fs); + + kvm_mmu_reset_context(vcpu); + init_rmode_tss(vcpu->kvm); +} + +#ifdef CONFIG_X86_64 + +static void enter_lmode(struct kvm_vcpu *vcpu) +{ + u32 guest_tr_ar; + + guest_tr_ar = vmcs_read32(GUEST_TR_AR_BYTES); + if ((guest_tr_ar & AR_TYPE_MASK) != AR_TYPE_BUSY_64_TSS) { + printk(KERN_DEBUG "%s: tss fixup for long mode. \n", + __FUNCTION__); + vmcs_write32(GUEST_TR_AR_BYTES, + (guest_tr_ar & ~AR_TYPE_MASK) + | AR_TYPE_BUSY_64_TSS); + } + + vcpu->arch.shadow_efer |= EFER_LMA; + + find_msr_entry(to_vmx(vcpu), MSR_EFER)->data |= EFER_LMA | EFER_LME; + vmcs_write32(VM_ENTRY_CONTROLS, + vmcs_read32(VM_ENTRY_CONTROLS) + | VM_ENTRY_IA32E_MODE); +} + +static void exit_lmode(struct kvm_vcpu *vcpu) +{ + vcpu->arch.shadow_efer &= ~EFER_LMA; + + vmcs_write32(VM_ENTRY_CONTROLS, + vmcs_read32(VM_ENTRY_CONTROLS) + & ~VM_ENTRY_IA32E_MODE); +} + +#endif + +static void vmx_flush_tlb(struct kvm_vcpu *vcpu) +{ + vpid_sync_vcpu_all(to_vmx(vcpu)); +} + +static void vmx_decache_cr4_guest_bits(struct kvm_vcpu *vcpu) +{ + vcpu->arch.cr4 &= KVM_GUEST_CR4_MASK; + vcpu->arch.cr4 |= vmcs_readl(GUEST_CR4) & ~KVM_GUEST_CR4_MASK; +} + +static void vmx_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) +{ + vmx_fpu_deactivate(vcpu); + + if (vcpu->arch.rmode.active && (cr0 & X86_CR0_PE)) + enter_pmode(vcpu); + + if (!vcpu->arch.rmode.active && !(cr0 & X86_CR0_PE)) + enter_rmode(vcpu); + +#ifdef CONFIG_X86_64 + if (vcpu->arch.shadow_efer & EFER_LME) { + if (!is_paging(vcpu) && (cr0 & X86_CR0_PG)) + enter_lmode(vcpu); + if (is_paging(vcpu) && !(cr0 & X86_CR0_PG)) + exit_lmode(vcpu); + } +#endif + + vmcs_writel(CR0_READ_SHADOW, cr0); + vmcs_writel(GUEST_CR0, + (cr0 & ~KVM_GUEST_CR0_MASK) | KVM_VM_CR0_ALWAYS_ON); + vcpu->arch.cr0 = cr0; + + if (!(cr0 & X86_CR0_TS) || !(cr0 & X86_CR0_PE)) + vmx_fpu_activate(vcpu); +} + +static void vmx_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3) +{ + vmx_flush_tlb(vcpu); + vmcs_writel(GUEST_CR3, cr3); + if (vcpu->arch.cr0 & X86_CR0_PE) + vmx_fpu_deactivate(vcpu); +} + +static void vmx_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) +{ + vmcs_writel(CR4_READ_SHADOW, cr4); + vmcs_writel(GUEST_CR4, cr4 | (vcpu->arch.rmode.active ? + KVM_RMODE_VM_CR4_ALWAYS_ON : KVM_PMODE_VM_CR4_ALWAYS_ON)); + vcpu->arch.cr4 = cr4; +} + +static void vmx_set_efer(struct kvm_vcpu *vcpu, u64 efer) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + struct kvm_msr_entry *msr = find_msr_entry(vmx, MSR_EFER); + + vcpu->arch.shadow_efer = efer; + if (!msr) + return; + if (efer & EFER_LMA) { + vmcs_write32(VM_ENTRY_CONTROLS, + vmcs_read32(VM_ENTRY_CONTROLS) | + VM_ENTRY_IA32E_MODE); + msr->data = efer; + + } else { + vmcs_write32(VM_ENTRY_CONTROLS, + vmcs_read32(VM_ENTRY_CONTROLS) & + ~VM_ENTRY_IA32E_MODE); + + msr->data = efer & ~EFER_LME; + } + setup_msrs(vmx); +} + +static u64 vmx_get_segment_base(struct kvm_vcpu *vcpu, int seg) +{ + struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg]; + + return vmcs_readl(sf->base); +} + +static void vmx_get_segment(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg) +{ + struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg]; + u32 ar; + + var->base = vmcs_readl(sf->base); + var->limit = vmcs_read32(sf->limit); + var->selector = vmcs_read16(sf->selector); + ar = vmcs_read32(sf->ar_bytes); + if (ar & AR_UNUSABLE_MASK) + ar = 0; + var->type = ar & 15; + var->s = (ar >> 4) & 1; + var->dpl = (ar >> 5) & 3; + var->present = (ar >> 7) & 1; + var->avl = (ar >> 12) & 1; + var->l = (ar >> 13) & 1; + var->db = (ar >> 14) & 1; + var->g = (ar >> 15) & 1; + var->unusable = (ar >> 16) & 1; +} + +static u32 vmx_segment_access_rights(struct kvm_segment *var) +{ + u32 ar; + + if (var->unusable) + ar = 1 << 16; + else { + ar = var->type & 15; + ar |= (var->s & 1) << 4; + ar |= (var->dpl & 3) << 5; + ar |= (var->present & 1) << 7; + ar |= (var->avl & 1) << 12; + ar |= (var->l & 1) << 13; + ar |= (var->db & 1) << 14; + ar |= (var->g & 1) << 15; + } + if (ar == 0) /* a 0 value means unusable */ + ar = AR_UNUSABLE_MASK; + + return ar; +} + +static void vmx_set_segment(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg) +{ + struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg]; + u32 ar; + + if (vcpu->arch.rmode.active && seg == VCPU_SREG_TR) { + vcpu->arch.rmode.tr.selector = var->selector; + vcpu->arch.rmode.tr.base = var->base; + vcpu->arch.rmode.tr.limit = var->limit; + vcpu->arch.rmode.tr.ar = vmx_segment_access_rights(var); + return; + } + vmcs_writel(sf->base, var->base); + vmcs_write32(sf->limit, var->limit); + vmcs_write16(sf->selector, var->selector); + if (vcpu->arch.rmode.active && var->s) { + /* + * Hack real-mode segments into vm86 compatibility. + */ + if (var->base == 0xffff0000 && var->selector == 0xf000) + vmcs_writel(sf->base, 0xf0000); + ar = 0xf3; + } else + ar = vmx_segment_access_rights(var); + vmcs_write32(sf->ar_bytes, ar); +} + +static void vmx_get_cs_db_l_bits(struct kvm_vcpu *vcpu, int *db, int *l) +{ + u32 ar = vmcs_read32(GUEST_CS_AR_BYTES); + + *db = (ar >> 14) & 1; + *l = (ar >> 13) & 1; +} + +static void vmx_get_idt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + dt->limit = vmcs_read32(GUEST_IDTR_LIMIT); + dt->base = vmcs_readl(GUEST_IDTR_BASE); +} + +static void vmx_set_idt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + vmcs_write32(GUEST_IDTR_LIMIT, dt->limit); + vmcs_writel(GUEST_IDTR_BASE, dt->base); +} + +static void vmx_get_gdt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + dt->limit = vmcs_read32(GUEST_GDTR_LIMIT); + dt->base = vmcs_readl(GUEST_GDTR_BASE); +} + +static void vmx_set_gdt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + vmcs_write32(GUEST_GDTR_LIMIT, dt->limit); + vmcs_writel(GUEST_GDTR_BASE, dt->base); +} + +static int init_rmode_tss(struct kvm *kvm) +{ + gfn_t fn = rmode_tss_base(kvm) >> PAGE_SHIFT; + u16 data = 0; + int ret = 0; + int r; + + down_read(¤t->mm->mmap_sem); + r = kvm_clear_guest_page(kvm, fn, 0, PAGE_SIZE); + if (r < 0) + goto out; + data = TSS_BASE_SIZE + TSS_REDIRECTION_SIZE; + r = kvm_write_guest_page(kvm, fn++, &data, 0x66, sizeof(u16)); + if (r < 0) + goto out; + r = kvm_clear_guest_page(kvm, fn++, 0, PAGE_SIZE); + if (r < 0) + goto out; + r = kvm_clear_guest_page(kvm, fn, 0, PAGE_SIZE); + if (r < 0) + goto out; + data = ~0; + r = kvm_write_guest_page(kvm, fn, &data, + RMODE_TSS_SIZE - 2 * PAGE_SIZE - 1, + sizeof(u8)); + if (r < 0) + goto out; + + ret = 1; +out: + up_read(¤t->mm->mmap_sem); + return ret; +} + +static void seg_setup(int seg) +{ + struct kvm_vmx_segment_field *sf = &kvm_vmx_segment_fields[seg]; + + vmcs_write16(sf->selector, 0); + vmcs_writel(sf->base, 0); + vmcs_write32(sf->limit, 0xffff); + vmcs_write32(sf->ar_bytes, 0x93); +} + +static int alloc_apic_access_page(struct kvm *kvm) +{ + struct kvm_userspace_memory_region kvm_userspace_mem; + int r = 0; + + down_write(&kvm->slots_lock); + if (kvm->arch.apic_access_page) + goto out; + kvm_userspace_mem.slot = APIC_ACCESS_PAGE_PRIVATE_MEMSLOT; + kvm_userspace_mem.flags = 0; + kvm_userspace_mem.guest_phys_addr = 0xfee00000ULL; + kvm_userspace_mem.memory_size = PAGE_SIZE; + r = __kvm_set_memory_region(kvm, &kvm_userspace_mem, 0); + if (r) + goto out; + + down_read(¤t->mm->mmap_sem); + kvm->arch.apic_access_page = gfn_to_page(kvm, 0xfee00); + up_read(¤t->mm->mmap_sem); +out: + up_write(&kvm->slots_lock); + return r; +} + +static void allocate_vpid(struct vcpu_vmx *vmx) +{ + int vpid; + + vmx->vpid = 0; + if (!enable_vpid || !cpu_has_vmx_vpid()) + return; + spin_lock(&vmx_vpid_lock); + vpid = find_first_zero_bit(vmx_vpid_bitmap, VMX_NR_VPIDS); + if (vpid < VMX_NR_VPIDS) { + vmx->vpid = vpid; + __set_bit(vpid, vmx_vpid_bitmap); + } + spin_unlock(&vmx_vpid_lock); +} + +/* + * Sets up the vmcs for emulated real mode. + */ +static int vmx_vcpu_setup(struct vcpu_vmx *vmx) +{ + u32 host_sysenter_cs; + u32 junk; + unsigned long a; + struct descriptor_table dt; + int i; + unsigned long kvm_vmx_return; + u32 exec_control; + + /* I/O */ + vmcs_write64(IO_BITMAP_A, page_to_phys(vmx_io_bitmap_a)); + vmcs_write64(IO_BITMAP_B, page_to_phys(vmx_io_bitmap_b)); + + vmcs_write64(VMCS_LINK_POINTER, -1ull); /* 22.3.1.5 */ + + /* Control */ + vmcs_write32(PIN_BASED_VM_EXEC_CONTROL, + vmcs_config.pin_based_exec_ctrl); + + exec_control = vmcs_config.cpu_based_exec_ctrl; + if (!vm_need_tpr_shadow(vmx->vcpu.kvm)) { + exec_control &= ~CPU_BASED_TPR_SHADOW; +#ifdef CONFIG_X86_64 + exec_control |= CPU_BASED_CR8_STORE_EXITING | + CPU_BASED_CR8_LOAD_EXITING; +#endif + } + vmcs_write32(CPU_BASED_VM_EXEC_CONTROL, exec_control); + + if (cpu_has_secondary_exec_ctrls()) { + exec_control = vmcs_config.cpu_based_2nd_exec_ctrl; + if (!vm_need_virtualize_apic_accesses(vmx->vcpu.kvm)) + exec_control &= + ~SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES; + if (vmx->vpid == 0) + exec_control &= ~SECONDARY_EXEC_ENABLE_VPID; + vmcs_write32(SECONDARY_VM_EXEC_CONTROL, exec_control); + } + + vmcs_write32(PAGE_FAULT_ERROR_CODE_MASK, !!bypass_guest_pf); + vmcs_write32(PAGE_FAULT_ERROR_CODE_MATCH, !!bypass_guest_pf); + vmcs_write32(CR3_TARGET_COUNT, 0); /* 22.2.1 */ + + vmcs_writel(HOST_CR0, read_cr0()); /* 22.2.3 */ + vmcs_writel(HOST_CR4, read_cr4()); /* 22.2.3, 22.2.5 */ + vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */ + + vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */ + vmcs_write16(HOST_DS_SELECTOR, __KERNEL_DS); /* 22.2.4 */ + vmcs_write16(HOST_ES_SELECTOR, __KERNEL_DS); /* 22.2.4 */ + vmcs_write16(HOST_FS_SELECTOR, read_fs()); /* 22.2.4 */ + vmcs_write16(HOST_GS_SELECTOR, read_gs()); /* 22.2.4 */ + vmcs_write16(HOST_SS_SELECTOR, __KERNEL_DS); /* 22.2.4 */ +#ifdef CONFIG_X86_64 + rdmsrl(MSR_FS_BASE, a); + vmcs_writel(HOST_FS_BASE, a); /* 22.2.4 */ + rdmsrl(MSR_GS_BASE, a); + vmcs_writel(HOST_GS_BASE, a); /* 22.2.4 */ +#else + vmcs_writel(HOST_FS_BASE, 0); /* 22.2.4 */ + vmcs_writel(HOST_GS_BASE, 0); /* 22.2.4 */ +#endif + + vmcs_write16(HOST_TR_SELECTOR, GDT_ENTRY_TSS*8); /* 22.2.4 */ + + get_idt(&dt); + vmcs_writel(HOST_IDTR_BASE, dt.base); /* 22.2.4 */ + + asm("mov $.Lkvm_vmx_return, %0" : "=r"(kvm_vmx_return)); + vmcs_writel(HOST_RIP, kvm_vmx_return); /* 22.2.5 */ + vmcs_write32(VM_EXIT_MSR_STORE_COUNT, 0); + vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, 0); + vmcs_write32(VM_ENTRY_MSR_LOAD_COUNT, 0); + + rdmsr(MSR_IA32_SYSENTER_CS, host_sysenter_cs, junk); + vmcs_write32(HOST_IA32_SYSENTER_CS, host_sysenter_cs); + rdmsrl(MSR_IA32_SYSENTER_ESP, a); + vmcs_writel(HOST_IA32_SYSENTER_ESP, a); /* 22.2.3 */ + rdmsrl(MSR_IA32_SYSENTER_EIP, a); + vmcs_writel(HOST_IA32_SYSENTER_EIP, a); /* 22.2.3 */ + + for (i = 0; i < NR_VMX_MSR; ++i) { + u32 index = vmx_msr_index[i]; + u32 data_low, data_high; + u64 data; + int j = vmx->nmsrs; + + if (rdmsr_safe(index, &data_low, &data_high) < 0) + continue; + if (wrmsr_safe(index, data_low, data_high) < 0) + continue; + data = data_low | ((u64)data_high << 32); + vmx->host_msrs[j].index = index; + vmx->host_msrs[j].reserved = 0; + vmx->host_msrs[j].data = data; + vmx->guest_msrs[j] = vmx->host_msrs[j]; + ++vmx->nmsrs; + } + + vmcs_write32(VM_EXIT_CONTROLS, vmcs_config.vmexit_ctrl); + + /* 22.2.1, 20.8.1 */ + vmcs_write32(VM_ENTRY_CONTROLS, vmcs_config.vmentry_ctrl); + + vmcs_writel(CR0_GUEST_HOST_MASK, ~0UL); + vmcs_writel(CR4_GUEST_HOST_MASK, KVM_GUEST_CR4_MASK); + + + return 0; +} + +static int vmx_vcpu_reset(struct kvm_vcpu *vcpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + u64 msr; + int ret; + + if (!init_rmode_tss(vmx->vcpu.kvm)) { + ret = -ENOMEM; + goto out; + } + + vmx->vcpu.arch.rmode.active = 0; + + vmx->vcpu.arch.regs[VCPU_REGS_RDX] = get_rdx_init_val(); + kvm_set_cr8(&vmx->vcpu, 0); + msr = 0xfee00000 | MSR_IA32_APICBASE_ENABLE; + if (vmx->vcpu.vcpu_id == 0) + msr |= MSR_IA32_APICBASE_BSP; + kvm_set_apic_base(&vmx->vcpu, msr); + + fx_init(&vmx->vcpu); + + /* + * GUEST_CS_BASE should really be 0xffff0000, but VT vm86 mode + * insists on having GUEST_CS_BASE == GUEST_CS_SELECTOR << 4. Sigh. + */ + if (vmx->vcpu.vcpu_id == 0) { + vmcs_write16(GUEST_CS_SELECTOR, 0xf000); + vmcs_writel(GUEST_CS_BASE, 0x000f0000); + } else { + vmcs_write16(GUEST_CS_SELECTOR, vmx->vcpu.arch.sipi_vector << 8); + vmcs_writel(GUEST_CS_BASE, vmx->vcpu.arch.sipi_vector << 12); + } + vmcs_write32(GUEST_CS_LIMIT, 0xffff); + vmcs_write32(GUEST_CS_AR_BYTES, 0x9b); + + seg_setup(VCPU_SREG_DS); + seg_setup(VCPU_SREG_ES); + seg_setup(VCPU_SREG_FS); + seg_setup(VCPU_SREG_GS); + seg_setup(VCPU_SREG_SS); + + vmcs_write16(GUEST_TR_SELECTOR, 0); + vmcs_writel(GUEST_TR_BASE, 0); + vmcs_write32(GUEST_TR_LIMIT, 0xffff); + vmcs_write32(GUEST_TR_AR_BYTES, 0x008b); + + vmcs_write16(GUEST_LDTR_SELECTOR, 0); + vmcs_writel(GUEST_LDTR_BASE, 0); + vmcs_write32(GUEST_LDTR_LIMIT, 0xffff); + vmcs_write32(GUEST_LDTR_AR_BYTES, 0x00082); + + vmcs_write32(GUEST_SYSENTER_CS, 0); + vmcs_writel(GUEST_SYSENTER_ESP, 0); + vmcs_writel(GUEST_SYSENTER_EIP, 0); + + vmcs_writel(GUEST_RFLAGS, 0x02); + if (vmx->vcpu.vcpu_id == 0) + vmcs_writel(GUEST_RIP, 0xfff0); + else + vmcs_writel(GUEST_RIP, 0); + vmcs_writel(GUEST_RSP, 0); + + /* todo: dr0 = dr1 = dr2 = dr3 = 0; dr6 = 0xffff0ff0 */ + vmcs_writel(GUEST_DR7, 0x400); + + vmcs_writel(GUEST_GDTR_BASE, 0); + vmcs_write32(GUEST_GDTR_LIMIT, 0xffff); + + vmcs_writel(GUEST_IDTR_BASE, 0); + vmcs_write32(GUEST_IDTR_LIMIT, 0xffff); + + vmcs_write32(GUEST_ACTIVITY_STATE, 0); + vmcs_write32(GUEST_INTERRUPTIBILITY_INFO, 0); + vmcs_write32(GUEST_PENDING_DBG_EXCEPTIONS, 0); + + guest_write_tsc(0); + + /* Special registers */ + vmcs_write64(GUEST_IA32_DEBUGCTL, 0); + + setup_msrs(vmx); + + vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, 0); /* 22.2.1 */ + + if (cpu_has_vmx_tpr_shadow()) { + vmcs_write64(VIRTUAL_APIC_PAGE_ADDR, 0); + if (vm_need_tpr_shadow(vmx->vcpu.kvm)) + vmcs_write64(VIRTUAL_APIC_PAGE_ADDR, + page_to_phys(vmx->vcpu.arch.apic->regs_page)); + vmcs_write32(TPR_THRESHOLD, 0); + } + + if (vm_need_virtualize_apic_accesses(vmx->vcpu.kvm)) + vmcs_write64(APIC_ACCESS_ADDR, + page_to_phys(vmx->vcpu.kvm->arch.apic_access_page)); + + if (vmx->vpid != 0) + vmcs_write16(VIRTUAL_PROCESSOR_ID, vmx->vpid); + + vmx->vcpu.arch.cr0 = 0x60000010; + vmx_set_cr0(&vmx->vcpu, vmx->vcpu.arch.cr0); /* enter rmode */ + vmx_set_cr4(&vmx->vcpu, 0); + vmx_set_efer(&vmx->vcpu, 0); + vmx_fpu_activate(&vmx->vcpu); + update_exception_bitmap(&vmx->vcpu); + + vpid_sync_vcpu_all(vmx); + + return 0; + +out: + return ret; +} + +static void vmx_inject_irq(struct kvm_vcpu *vcpu, int irq) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + + if (vcpu->arch.rmode.active) { + vmx->rmode.irq.pending = true; + vmx->rmode.irq.vector = irq; + vmx->rmode.irq.rip = vmcs_readl(GUEST_RIP); + vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, + irq | INTR_TYPE_SOFT_INTR | INTR_INFO_VALID_MASK); + vmcs_write32(VM_ENTRY_INSTRUCTION_LEN, 1); + vmcs_writel(GUEST_RIP, vmx->rmode.irq.rip - 1); + return; + } + vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, + irq | INTR_TYPE_EXT_INTR | INTR_INFO_VALID_MASK); +} + +static void kvm_do_inject_irq(struct kvm_vcpu *vcpu) +{ + int word_index = __ffs(vcpu->arch.irq_summary); + int bit_index = __ffs(vcpu->arch.irq_pending[word_index]); + int irq = word_index * BITS_PER_LONG + bit_index; + + clear_bit(bit_index, &vcpu->arch.irq_pending[word_index]); + if (!vcpu->arch.irq_pending[word_index]) + clear_bit(word_index, &vcpu->arch.irq_summary); + vmx_inject_irq(vcpu, irq); +} + + +static void do_interrupt_requests(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) +{ + u32 cpu_based_vm_exec_control; + + vcpu->arch.interrupt_window_open = + ((vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) && + (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & 3) == 0); + + if (vcpu->arch.interrupt_window_open && + vcpu->arch.irq_summary && + !(vmcs_read32(VM_ENTRY_INTR_INFO_FIELD) & INTR_INFO_VALID_MASK)) + /* + * If interrupts enabled, and not blocked by sti or mov ss. Good. + */ + kvm_do_inject_irq(vcpu); + + cpu_based_vm_exec_control = vmcs_read32(CPU_BASED_VM_EXEC_CONTROL); + if (!vcpu->arch.interrupt_window_open && + (vcpu->arch.irq_summary || kvm_run->request_interrupt_window)) + /* + * Interrupts blocked. Wait for unblock. + */ + cpu_based_vm_exec_control |= CPU_BASED_VIRTUAL_INTR_PENDING; + else + cpu_based_vm_exec_control &= ~CPU_BASED_VIRTUAL_INTR_PENDING; + vmcs_write32(CPU_BASED_VM_EXEC_CONTROL, cpu_based_vm_exec_control); +} + +static int vmx_set_tss_addr(struct kvm *kvm, unsigned int addr) +{ + int ret; + struct kvm_userspace_memory_region tss_mem = { + .slot = 8, + .guest_phys_addr = addr, + .memory_size = PAGE_SIZE * 3, + .flags = 0, + }; + + ret = kvm_set_memory_region(kvm, &tss_mem, 0); + if (ret) + return ret; + kvm->arch.tss_addr = addr; + return 0; +} + +static void kvm_guest_debug_pre(struct kvm_vcpu *vcpu) +{ + struct kvm_guest_debug *dbg = &vcpu->guest_debug; + + set_debugreg(dbg->bp[0], 0); + set_debugreg(dbg->bp[1], 1); + set_debugreg(dbg->bp[2], 2); + set_debugreg(dbg->bp[3], 3); + + if (dbg->singlestep) { + unsigned long flags; + + flags = vmcs_readl(GUEST_RFLAGS); + flags |= X86_EFLAGS_TF | X86_EFLAGS_RF; + vmcs_writel(GUEST_RFLAGS, flags); + } +} + +static int handle_rmode_exception(struct kvm_vcpu *vcpu, + int vec, u32 err_code) +{ + if (!vcpu->arch.rmode.active) + return 0; + + /* + * Instruction with address size override prefix opcode 0x67 + * Cause the #SS fault with 0 error code in VM86 mode. + */ + if (((vec == GP_VECTOR) || (vec == SS_VECTOR)) && err_code == 0) + if (emulate_instruction(vcpu, NULL, 0, 0, 0) == EMULATE_DONE) + return 1; + return 0; +} + +static int handle_exception(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + u32 intr_info, error_code; + unsigned long cr2, rip; + u32 vect_info; + enum emulation_result er; + + vect_info = vmx->idt_vectoring_info; + intr_info = vmcs_read32(VM_EXIT_INTR_INFO); + + if ((vect_info & VECTORING_INFO_VALID_MASK) && + !is_page_fault(intr_info)) + printk(KERN_ERR "%s: unexpected, vectoring info 0x%x " + "intr info 0x%x\n", __FUNCTION__, vect_info, intr_info); + + if (!irqchip_in_kernel(vcpu->kvm) && is_external_interrupt(vect_info)) { + int irq = vect_info & VECTORING_INFO_VECTOR_MASK; + set_bit(irq, vcpu->arch.irq_pending); + set_bit(irq / BITS_PER_LONG, &vcpu->arch.irq_summary); + } + + if ((intr_info & INTR_INFO_INTR_TYPE_MASK) == 0x200) /* nmi */ + return 1; /* already handled by vmx_vcpu_run() */ + + if (is_no_device(intr_info)) { + vmx_fpu_activate(vcpu); + return 1; + } + + if (is_invalid_opcode(intr_info)) { + er = emulate_instruction(vcpu, kvm_run, 0, 0, EMULTYPE_TRAP_UD); + if (er != EMULATE_DONE) + kvm_queue_exception(vcpu, UD_VECTOR); + return 1; + } + + error_code = 0; + rip = vmcs_readl(GUEST_RIP); + if (intr_info & INTR_INFO_DELIVER_CODE_MASK) + error_code = vmcs_read32(VM_EXIT_INTR_ERROR_CODE); + if (is_page_fault(intr_info)) { + cr2 = vmcs_readl(EXIT_QUALIFICATION); + return kvm_mmu_page_fault(vcpu, cr2, error_code); + } + + if (vcpu->arch.rmode.active && + handle_rmode_exception(vcpu, intr_info & INTR_INFO_VECTOR_MASK, + error_code)) { + if (vcpu->arch.halt_request) { + vcpu->arch.halt_request = 0; + return kvm_emulate_halt(vcpu); + } + return 1; + } + + if ((intr_info & (INTR_INFO_INTR_TYPE_MASK | INTR_INFO_VECTOR_MASK)) == + (INTR_TYPE_EXCEPTION | 1)) { + kvm_run->exit_reason = KVM_EXIT_DEBUG; + return 0; + } + kvm_run->exit_reason = KVM_EXIT_EXCEPTION; + kvm_run->ex.exception = intr_info & INTR_INFO_VECTOR_MASK; + kvm_run->ex.error_code = error_code; + return 0; +} + +static int handle_external_interrupt(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) +{ + ++vcpu->stat.irq_exits; + return 1; +} + +static int handle_triple_fault(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + kvm_run->exit_reason = KVM_EXIT_SHUTDOWN; + return 0; +} + +static int handle_io(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + unsigned long exit_qualification; + int size, down, in, string, rep; + unsigned port; + + ++vcpu->stat.io_exits; + exit_qualification = vmcs_readl(EXIT_QUALIFICATION); + string = (exit_qualification & 16) != 0; + + if (string) { + if (emulate_instruction(vcpu, + kvm_run, 0, 0, 0) == EMULATE_DO_MMIO) + return 0; + return 1; + } + + size = (exit_qualification & 7) + 1; + in = (exit_qualification & 8) != 0; + down = (vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_DF) != 0; + rep = (exit_qualification & 32) != 0; + port = exit_qualification >> 16; + + return kvm_emulate_pio(vcpu, kvm_run, in, size, port); +} + +static void +vmx_patch_hypercall(struct kvm_vcpu *vcpu, unsigned char *hypercall) +{ + /* + * Patch in the VMCALL instruction: + */ + hypercall[0] = 0x0f; + hypercall[1] = 0x01; + hypercall[2] = 0xc1; +} + +static int handle_cr(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + unsigned long exit_qualification; + int cr; + int reg; + + exit_qualification = vmcs_readl(EXIT_QUALIFICATION); + cr = exit_qualification & 15; + reg = (exit_qualification >> 8) & 15; + switch ((exit_qualification >> 4) & 3) { + case 0: /* mov to cr */ + switch (cr) { + case 0: + vcpu_load_rsp_rip(vcpu); + kvm_set_cr0(vcpu, vcpu->arch.regs[reg]); + skip_emulated_instruction(vcpu); + return 1; + case 3: + vcpu_load_rsp_rip(vcpu); + kvm_set_cr3(vcpu, vcpu->arch.regs[reg]); + skip_emulated_instruction(vcpu); + return 1; + case 4: + vcpu_load_rsp_rip(vcpu); + kvm_set_cr4(vcpu, vcpu->arch.regs[reg]); + skip_emulated_instruction(vcpu); + return 1; + case 8: + vcpu_load_rsp_rip(vcpu); + kvm_set_cr8(vcpu, vcpu->arch.regs[reg]); + skip_emulated_instruction(vcpu); + if (irqchip_in_kernel(vcpu->kvm)) + return 1; + kvm_run->exit_reason = KVM_EXIT_SET_TPR; + return 0; + }; + break; + case 2: /* clts */ + vcpu_load_rsp_rip(vcpu); + vmx_fpu_deactivate(vcpu); + vcpu->arch.cr0 &= ~X86_CR0_TS; + vmcs_writel(CR0_READ_SHADOW, vcpu->arch.cr0); + vmx_fpu_activate(vcpu); + skip_emulated_instruction(vcpu); + return 1; + case 1: /*mov from cr*/ + switch (cr) { + case 3: + vcpu_load_rsp_rip(vcpu); + vcpu->arch.regs[reg] = vcpu->arch.cr3; + vcpu_put_rsp_rip(vcpu); + skip_emulated_instruction(vcpu); + return 1; + case 8: + vcpu_load_rsp_rip(vcpu); + vcpu->arch.regs[reg] = kvm_get_cr8(vcpu); + vcpu_put_rsp_rip(vcpu); + skip_emulated_instruction(vcpu); + return 1; + } + break; + case 3: /* lmsw */ + kvm_lmsw(vcpu, (exit_qualification >> LMSW_SOURCE_DATA_SHIFT) & 0x0f); + + skip_emulated_instruction(vcpu); + return 1; + default: + break; + } + kvm_run->exit_reason = 0; + pr_unimpl(vcpu, "unhandled control register: op %d cr %d\n", + (int)(exit_qualification >> 4) & 3, cr); + return 0; +} + +static int handle_dr(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + unsigned long exit_qualification; + unsigned long val; + int dr, reg; + + /* + * FIXME: this code assumes the host is debugging the guest. + * need to deal with guest debugging itself too. + */ + exit_qualification = vmcs_readl(EXIT_QUALIFICATION); + dr = exit_qualification & 7; + reg = (exit_qualification >> 8) & 15; + vcpu_load_rsp_rip(vcpu); + if (exit_qualification & 16) { + /* mov from dr */ + switch (dr) { + case 6: + val = 0xffff0ff0; + break; + case 7: + val = 0x400; + break; + default: + val = 0; + } + vcpu->arch.regs[reg] = val; + } else { + /* mov to dr */ + } + vcpu_put_rsp_rip(vcpu); + skip_emulated_instruction(vcpu); + return 1; +} + +static int handle_cpuid(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + kvm_emulate_cpuid(vcpu); + return 1; +} + +static int handle_rdmsr(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + u32 ecx = vcpu->arch.regs[VCPU_REGS_RCX]; + u64 data; + + if (vmx_get_msr(vcpu, ecx, &data)) { + kvm_inject_gp(vcpu, 0); + return 1; + } + + /* FIXME: handling of bits 32:63 of rax, rdx */ + vcpu->arch.regs[VCPU_REGS_RAX] = data & -1u; + vcpu->arch.regs[VCPU_REGS_RDX] = (data >> 32) & -1u; + skip_emulated_instruction(vcpu); + return 1; +} + +static int handle_wrmsr(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + u32 ecx = vcpu->arch.regs[VCPU_REGS_RCX]; + u64 data = (vcpu->arch.regs[VCPU_REGS_RAX] & -1u) + | ((u64)(vcpu->arch.regs[VCPU_REGS_RDX] & -1u) << 32); + + if (vmx_set_msr(vcpu, ecx, data) != 0) { + kvm_inject_gp(vcpu, 0); + return 1; + } + + skip_emulated_instruction(vcpu); + return 1; +} + +static int handle_tpr_below_threshold(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) +{ + return 1; +} + +static int handle_interrupt_window(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) +{ + u32 cpu_based_vm_exec_control; + + /* clear pending irq */ + cpu_based_vm_exec_control = vmcs_read32(CPU_BASED_VM_EXEC_CONTROL); + cpu_based_vm_exec_control &= ~CPU_BASED_VIRTUAL_INTR_PENDING; + vmcs_write32(CPU_BASED_VM_EXEC_CONTROL, cpu_based_vm_exec_control); + /* + * If the user space waits to inject interrupts, exit as soon as + * possible + */ + if (kvm_run->request_interrupt_window && + !vcpu->arch.irq_summary) { + kvm_run->exit_reason = KVM_EXIT_IRQ_WINDOW_OPEN; + ++vcpu->stat.irq_window_exits; + return 0; + } + return 1; +} + +static int handle_halt(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + skip_emulated_instruction(vcpu); + return kvm_emulate_halt(vcpu); +} + +static int handle_vmcall(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + skip_emulated_instruction(vcpu); + kvm_emulate_hypercall(vcpu); + return 1; +} + +static int handle_wbinvd(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + skip_emulated_instruction(vcpu); + /* TODO: Add support for VT-d/pass-through device */ + return 1; +} + +static int handle_apic_access(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + u64 exit_qualification; + enum emulation_result er; + unsigned long offset; + + exit_qualification = vmcs_read64(EXIT_QUALIFICATION); + offset = exit_qualification & 0xffful; + + er = emulate_instruction(vcpu, kvm_run, 0, 0, 0); + + if (er != EMULATE_DONE) { + printk(KERN_ERR + "Fail to handle apic access vmexit! Offset is 0x%lx\n", + offset); + return -ENOTSUPP; + } + return 1; +} + +/* + * The exit handlers return 1 if the exit was handled fully and guest execution + * may resume. Otherwise they set the kvm_run parameter to indicate what needs + * to be done to userspace and return 0. + */ +static int (*kvm_vmx_exit_handlers[])(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) = { + [EXIT_REASON_EXCEPTION_NMI] = handle_exception, + [EXIT_REASON_EXTERNAL_INTERRUPT] = handle_external_interrupt, + [EXIT_REASON_TRIPLE_FAULT] = handle_triple_fault, + [EXIT_REASON_IO_INSTRUCTION] = handle_io, + [EXIT_REASON_CR_ACCESS] = handle_cr, + [EXIT_REASON_DR_ACCESS] = handle_dr, + [EXIT_REASON_CPUID] = handle_cpuid, + [EXIT_REASON_MSR_READ] = handle_rdmsr, + [EXIT_REASON_MSR_WRITE] = handle_wrmsr, + [EXIT_REASON_PENDING_INTERRUPT] = handle_interrupt_window, + [EXIT_REASON_HLT] = handle_halt, + [EXIT_REASON_VMCALL] = handle_vmcall, + [EXIT_REASON_TPR_BELOW_THRESHOLD] = handle_tpr_below_threshold, + [EXIT_REASON_APIC_ACCESS] = handle_apic_access, + [EXIT_REASON_WBINVD] = handle_wbinvd, +}; + +static const int kvm_vmx_max_exit_handlers = + ARRAY_SIZE(kvm_vmx_exit_handlers); + +/* + * The guest has exited. See if we can fix it or if we need userspace + * assistance. + */ +static int kvm_handle_exit(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) +{ + u32 exit_reason = vmcs_read32(VM_EXIT_REASON); + struct vcpu_vmx *vmx = to_vmx(vcpu); + u32 vectoring_info = vmx->idt_vectoring_info; + + if (unlikely(vmx->fail)) { + kvm_run->exit_reason = KVM_EXIT_FAIL_ENTRY; + kvm_run->fail_entry.hardware_entry_failure_reason + = vmcs_read32(VM_INSTRUCTION_ERROR); + return 0; + } + + if ((vectoring_info & VECTORING_INFO_VALID_MASK) && + exit_reason != EXIT_REASON_EXCEPTION_NMI) + printk(KERN_WARNING "%s: unexpected, valid vectoring info and " + "exit reason is 0x%x\n", __FUNCTION__, exit_reason); + if (exit_reason < kvm_vmx_max_exit_handlers + && kvm_vmx_exit_handlers[exit_reason]) + return kvm_vmx_exit_handlers[exit_reason](vcpu, kvm_run); + else { + kvm_run->exit_reason = KVM_EXIT_UNKNOWN; + kvm_run->hw.hardware_exit_reason = exit_reason; + } + return 0; +} + +static void update_tpr_threshold(struct kvm_vcpu *vcpu) +{ + int max_irr, tpr; + + if (!vm_need_tpr_shadow(vcpu->kvm)) + return; + + if (!kvm_lapic_enabled(vcpu) || + ((max_irr = kvm_lapic_find_highest_irr(vcpu)) == -1)) { + vmcs_write32(TPR_THRESHOLD, 0); + return; + } + + tpr = (kvm_lapic_get_cr8(vcpu) & 0x0f) << 4; + vmcs_write32(TPR_THRESHOLD, (max_irr > tpr) ? tpr >> 4 : max_irr >> 4); +} + +static void enable_irq_window(struct kvm_vcpu *vcpu) +{ + u32 cpu_based_vm_exec_control; + + cpu_based_vm_exec_control = vmcs_read32(CPU_BASED_VM_EXEC_CONTROL); + cpu_based_vm_exec_control |= CPU_BASED_VIRTUAL_INTR_PENDING; + vmcs_write32(CPU_BASED_VM_EXEC_CONTROL, cpu_based_vm_exec_control); +} + +static void vmx_intr_assist(struct kvm_vcpu *vcpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + u32 idtv_info_field, intr_info_field; + int has_ext_irq, interrupt_window_open; + int vector; + + update_tpr_threshold(vcpu); + + has_ext_irq = kvm_cpu_has_interrupt(vcpu); + intr_info_field = vmcs_read32(VM_ENTRY_INTR_INFO_FIELD); + idtv_info_field = vmx->idt_vectoring_info; + if (intr_info_field & INTR_INFO_VALID_MASK) { + if (idtv_info_field & INTR_INFO_VALID_MASK) { + /* TODO: fault when IDT_Vectoring */ + if (printk_ratelimit()) + printk(KERN_ERR "Fault when IDT_Vectoring\n"); + } + if (has_ext_irq) + enable_irq_window(vcpu); + return; + } + if (unlikely(idtv_info_field & INTR_INFO_VALID_MASK)) { + if ((idtv_info_field & VECTORING_INFO_TYPE_MASK) + == INTR_TYPE_EXT_INTR + && vcpu->arch.rmode.active) { + u8 vect = idtv_info_field & VECTORING_INFO_VECTOR_MASK; + + vmx_inject_irq(vcpu, vect); + if (unlikely(has_ext_irq)) + enable_irq_window(vcpu); + return; + } + + vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, idtv_info_field); + vmcs_write32(VM_ENTRY_INSTRUCTION_LEN, + vmcs_read32(VM_EXIT_INSTRUCTION_LEN)); + + if (unlikely(idtv_info_field & INTR_INFO_DELIVER_CODE_MASK)) + vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, + vmcs_read32(IDT_VECTORING_ERROR_CODE)); + if (unlikely(has_ext_irq)) + enable_irq_window(vcpu); + return; + } + if (!has_ext_irq) + return; + interrupt_window_open = + ((vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) && + (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & 3) == 0); + if (interrupt_window_open) { + vector = kvm_cpu_get_interrupt(vcpu); + vmx_inject_irq(vcpu, vector); + kvm_timer_intr_post(vcpu, vector); + } else + enable_irq_window(vcpu); +} + +/* + * Failure to inject an interrupt should give us the information + * in IDT_VECTORING_INFO_FIELD. However, if the failure occurs + * when fetching the interrupt redirection bitmap in the real-mode + * tss, this doesn't happen. So we do it ourselves. + */ +static void fixup_rmode_irq(struct vcpu_vmx *vmx) +{ + vmx->rmode.irq.pending = 0; + if (vmcs_readl(GUEST_RIP) + 1 != vmx->rmode.irq.rip) + return; + vmcs_writel(GUEST_RIP, vmx->rmode.irq.rip); + if (vmx->idt_vectoring_info & VECTORING_INFO_VALID_MASK) { + vmx->idt_vectoring_info &= ~VECTORING_INFO_TYPE_MASK; + vmx->idt_vectoring_info |= INTR_TYPE_EXT_INTR; + return; + } + vmx->idt_vectoring_info = + VECTORING_INFO_VALID_MASK + | INTR_TYPE_EXT_INTR + | vmx->rmode.irq.vector; +} + +static void vmx_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + u32 intr_info; + + /* + * Loading guest fpu may have cleared host cr0.ts + */ + vmcs_writel(HOST_CR0, read_cr0()); + + asm( + /* Store host registers */ +#ifdef CONFIG_X86_64 + "push %%rdx; push %%rbp;" + "push %%rcx \n\t" +#else + "push %%edx; push %%ebp;" + "push %%ecx \n\t" +#endif + ASM_VMX_VMWRITE_RSP_RDX "\n\t" + /* Check if vmlaunch of vmresume is needed */ + "cmpl $0, %c[launched](%0) \n\t" + /* Load guest registers. Don't clobber flags. */ +#ifdef CONFIG_X86_64 + "mov %c[cr2](%0), %%rax \n\t" + "mov %%rax, %%cr2 \n\t" + "mov %c[rax](%0), %%rax \n\t" + "mov %c[rbx](%0), %%rbx \n\t" + "mov %c[rdx](%0), %%rdx \n\t" + "mov %c[rsi](%0), %%rsi \n\t" + "mov %c[rdi](%0), %%rdi \n\t" + "mov %c[rbp](%0), %%rbp \n\t" + "mov %c[r8](%0), %%r8 \n\t" + "mov %c[r9](%0), %%r9 \n\t" + "mov %c[r10](%0), %%r10 \n\t" + "mov %c[r11](%0), %%r11 \n\t" + "mov %c[r12](%0), %%r12 \n\t" + "mov %c[r13](%0), %%r13 \n\t" + "mov %c[r14](%0), %%r14 \n\t" + "mov %c[r15](%0), %%r15 \n\t" + "mov %c[rcx](%0), %%rcx \n\t" /* kills %0 (rcx) */ +#else + "mov %c[cr2](%0), %%eax \n\t" + "mov %%eax, %%cr2 \n\t" + "mov %c[rax](%0), %%eax \n\t" + "mov %c[rbx](%0), %%ebx \n\t" + "mov %c[rdx](%0), %%edx \n\t" + "mov %c[rsi](%0), %%esi \n\t" + "mov %c[rdi](%0), %%edi \n\t" + "mov %c[rbp](%0), %%ebp \n\t" + "mov %c[rcx](%0), %%ecx \n\t" /* kills %0 (ecx) */ +#endif + /* Enter guest mode */ + "jne .Llaunched \n\t" + ASM_VMX_VMLAUNCH "\n\t" + "jmp .Lkvm_vmx_return \n\t" + ".Llaunched: " ASM_VMX_VMRESUME "\n\t" + ".Lkvm_vmx_return: " + /* Save guest registers, load host registers, keep flags */ +#ifdef CONFIG_X86_64 + "xchg %0, (%%rsp) \n\t" + "mov %%rax, %c[rax](%0) \n\t" + "mov %%rbx, %c[rbx](%0) \n\t" + "pushq (%%rsp); popq %c[rcx](%0) \n\t" + "mov %%rdx, %c[rdx](%0) \n\t" + "mov %%rsi, %c[rsi](%0) \n\t" + "mov %%rdi, %c[rdi](%0) \n\t" + "mov %%rbp, %c[rbp](%0) \n\t" + "mov %%r8, %c[r8](%0) \n\t" + "mov %%r9, %c[r9](%0) \n\t" + "mov %%r10, %c[r10](%0) \n\t" + "mov %%r11, %c[r11](%0) \n\t" + "mov %%r12, %c[r12](%0) \n\t" + "mov %%r13, %c[r13](%0) \n\t" + "mov %%r14, %c[r14](%0) \n\t" + "mov %%r15, %c[r15](%0) \n\t" + "mov %%cr2, %%rax \n\t" + "mov %%rax, %c[cr2](%0) \n\t" + + "pop %%rbp; pop %%rbp; pop %%rdx \n\t" +#else + "xchg %0, (%%esp) \n\t" + "mov %%eax, %c[rax](%0) \n\t" + "mov %%ebx, %c[rbx](%0) \n\t" + "pushl (%%esp); popl %c[rcx](%0) \n\t" + "mov %%edx, %c[rdx](%0) \n\t" + "mov %%esi, %c[rsi](%0) \n\t" + "mov %%edi, %c[rdi](%0) \n\t" + "mov %%ebp, %c[rbp](%0) \n\t" + "mov %%cr2, %%eax \n\t" + "mov %%eax, %c[cr2](%0) \n\t" + + "pop %%ebp; pop %%ebp; pop %%edx \n\t" +#endif + "setbe %c[fail](%0) \n\t" + : : "c"(vmx), "d"((unsigned long)HOST_RSP), + [launched]"i"(offsetof(struct vcpu_vmx, launched)), + [fail]"i"(offsetof(struct vcpu_vmx, fail)), + [rax]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_RAX])), + [rbx]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_RBX])), + [rcx]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_RCX])), + [rdx]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_RDX])), + [rsi]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_RSI])), + [rdi]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_RDI])), + [rbp]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_RBP])), +#ifdef CONFIG_X86_64 + [r8]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R8])), + [r9]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R9])), + [r10]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R10])), + [r11]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R11])), + [r12]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R12])), + [r13]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R13])), + [r14]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R14])), + [r15]"i"(offsetof(struct vcpu_vmx, vcpu.arch.regs[VCPU_REGS_R15])), +#endif + [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)) + : "cc", "memory" +#ifdef CONFIG_X86_64 + , "rbx", "rdi", "rsi" + , "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15" +#else + , "ebx", "edi", "rsi" +#endif + ); + + vmx->idt_vectoring_info = vmcs_read32(IDT_VECTORING_INFO_FIELD); + if (vmx->rmode.irq.pending) + fixup_rmode_irq(vmx); + + vcpu->arch.interrupt_window_open = + (vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & 3) == 0; + + asm("mov %0, %%ds; mov %0, %%es" : : "r"(__USER_DS)); + vmx->launched = 1; + + intr_info = vmcs_read32(VM_EXIT_INTR_INFO); + + /* We need to handle NMIs before interrupts are enabled */ + if ((intr_info & INTR_INFO_INTR_TYPE_MASK) == 0x200) /* nmi */ + asm("int $2"); +} + +static void vmx_free_vmcs(struct kvm_vcpu *vcpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + + if (vmx->vmcs) { + on_each_cpu(__vcpu_clear, vmx, 0, 1); + free_vmcs(vmx->vmcs); + vmx->vmcs = NULL; + } +} + +static void vmx_free_vcpu(struct kvm_vcpu *vcpu) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + + spin_lock(&vmx_vpid_lock); + if (vmx->vpid != 0) + __clear_bit(vmx->vpid, vmx_vpid_bitmap); + spin_unlock(&vmx_vpid_lock); + vmx_free_vmcs(vcpu); + kfree(vmx->host_msrs); + kfree(vmx->guest_msrs); + kvm_vcpu_uninit(vcpu); + kmem_cache_free(kvm_vcpu_cache, vmx); +} + +static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id) +{ + int err; + struct vcpu_vmx *vmx = kmem_cache_zalloc(kvm_vcpu_cache, GFP_KERNEL); + int cpu; + + if (!vmx) + return ERR_PTR(-ENOMEM); + + allocate_vpid(vmx); + + err = kvm_vcpu_init(&vmx->vcpu, kvm, id); + if (err) + goto free_vcpu; + + vmx->guest_msrs = kmalloc(PAGE_SIZE, GFP_KERNEL); + if (!vmx->guest_msrs) { + err = -ENOMEM; + goto uninit_vcpu; + } + + vmx->host_msrs = kmalloc(PAGE_SIZE, GFP_KERNEL); + if (!vmx->host_msrs) + goto free_guest_msrs; + + vmx->vmcs = alloc_vmcs(); + if (!vmx->vmcs) + goto free_msrs; + + vmcs_clear(vmx->vmcs); + + cpu = get_cpu(); + vmx_vcpu_load(&vmx->vcpu, cpu); + err = vmx_vcpu_setup(vmx); + vmx_vcpu_put(&vmx->vcpu); + put_cpu(); + if (err) + goto free_vmcs; + if (vm_need_virtualize_apic_accesses(kvm)) + if (alloc_apic_access_page(kvm) != 0) + goto free_vmcs; + + return &vmx->vcpu; + +free_vmcs: + free_vmcs(vmx->vmcs); +free_msrs: + kfree(vmx->host_msrs); +free_guest_msrs: + kfree(vmx->guest_msrs); +uninit_vcpu: + kvm_vcpu_uninit(&vmx->vcpu); +free_vcpu: + kmem_cache_free(kvm_vcpu_cache, vmx); + return ERR_PTR(err); +} + +static void __init vmx_check_processor_compat(void *rtn) +{ + struct vmcs_config vmcs_conf; + + *(int *)rtn = 0; + if (setup_vmcs_config(&vmcs_conf) < 0) + *(int *)rtn = -EIO; + if (memcmp(&vmcs_config, &vmcs_conf, sizeof(struct vmcs_config)) != 0) { + printk(KERN_ERR "kvm: CPU %d feature inconsistency!\n", + smp_processor_id()); + *(int *)rtn = -EIO; + } +} + +static struct kvm_x86_ops vmx_x86_ops = { + .cpu_has_kvm_support = cpu_has_kvm_support, + .disabled_by_bios = vmx_disabled_by_bios, + .hardware_setup = hardware_setup, + .hardware_unsetup = hardware_unsetup, + .check_processor_compatibility = vmx_check_processor_compat, + .hardware_enable = hardware_enable, + .hardware_disable = hardware_disable, + .cpu_has_accelerated_tpr = cpu_has_vmx_virtualize_apic_accesses, + + .vcpu_create = vmx_create_vcpu, + .vcpu_free = vmx_free_vcpu, + .vcpu_reset = vmx_vcpu_reset, + + .prepare_guest_switch = vmx_save_host_state, + .vcpu_load = vmx_vcpu_load, + .vcpu_put = vmx_vcpu_put, + .vcpu_decache = vmx_vcpu_decache, + + .set_guest_debug = set_guest_debug, + .guest_debug_pre = kvm_guest_debug_pre, + .get_msr = vmx_get_msr, + .set_msr = vmx_set_msr, + .get_segment_base = vmx_get_segment_base, + .get_segment = vmx_get_segment, + .set_segment = vmx_set_segment, + .get_cs_db_l_bits = vmx_get_cs_db_l_bits, + .decache_cr4_guest_bits = vmx_decache_cr4_guest_bits, + .set_cr0 = vmx_set_cr0, + .set_cr3 = vmx_set_cr3, + .set_cr4 = vmx_set_cr4, + .set_efer = vmx_set_efer, + .get_idt = vmx_get_idt, + .set_idt = vmx_set_idt, + .get_gdt = vmx_get_gdt, + .set_gdt = vmx_set_gdt, + .cache_regs = vcpu_load_rsp_rip, + .decache_regs = vcpu_put_rsp_rip, + .get_rflags = vmx_get_rflags, + .set_rflags = vmx_set_rflags, + + .tlb_flush = vmx_flush_tlb, + + .run = vmx_vcpu_run, + .handle_exit = kvm_handle_exit, + .skip_emulated_instruction = skip_emulated_instruction, + .patch_hypercall = vmx_patch_hypercall, + .get_irq = vmx_get_irq, + .set_irq = vmx_inject_irq, + .queue_exception = vmx_queue_exception, + .exception_injected = vmx_exception_injected, + .inject_pending_irq = vmx_intr_assist, + .inject_pending_vectors = do_interrupt_requests, + + .set_tss_addr = vmx_set_tss_addr, +}; + +static int __init vmx_init(void) +{ + void *iova; + int r; + + vmx_io_bitmap_a = alloc_page(GFP_KERNEL | __GFP_HIGHMEM); + if (!vmx_io_bitmap_a) + return -ENOMEM; + + vmx_io_bitmap_b = alloc_page(GFP_KERNEL | __GFP_HIGHMEM); + if (!vmx_io_bitmap_b) { + r = -ENOMEM; + goto out; + } + + /* + * Allow direct access to the PC debug port (it is often used for I/O + * delays, but the vmexits simply slow things down). + */ + iova = kmap(vmx_io_bitmap_a); + memset(iova, 0xff, PAGE_SIZE); + clear_bit(0x80, iova); + kunmap(vmx_io_bitmap_a); + + iova = kmap(vmx_io_bitmap_b); + memset(iova, 0xff, PAGE_SIZE); + kunmap(vmx_io_bitmap_b); + + set_bit(0, vmx_vpid_bitmap); /* 0 is reserved for host */ + + r = kvm_init(&vmx_x86_ops, sizeof(struct vcpu_vmx), THIS_MODULE); + if (r) + goto out1; + + if (bypass_guest_pf) + kvm_mmu_set_nonpresent_ptes(~0xffeull, 0ull); + + return 0; + +out1: + __free_page(vmx_io_bitmap_b); +out: + __free_page(vmx_io_bitmap_a); + return r; +} + +static void __exit vmx_exit(void) +{ + __free_page(vmx_io_bitmap_b); + __free_page(vmx_io_bitmap_a); + + kvm_exit(); +} + +module_init(vmx_init) +module_exit(vmx_exit) --- linux-2.6.24.orig/arch/x86/kvm/Kconfig +++ linux-2.6.24/arch/x86/kvm/Kconfig @@ -0,0 +1,58 @@ +# +# KVM configuration +# +config HAVE_KVM + bool + +menuconfig VIRTUALIZATION + bool "Virtualization" + depends on HAVE_KVM || X86 + default y + ---help--- + Say Y here to get to see options for using your Linux host to run other + operating systems inside virtual machines (guests). + This option alone does not add any kernel code. + + If you say N, all options in this submenu will be skipped and disabled. + +if VIRTUALIZATION + +config KVM + tristate "Kernel-based Virtual Machine (KVM) support" + depends on HAVE_KVM && EXPERIMENTAL + select PREEMPT_NOTIFIERS + select ANON_INODES + ---help--- + Support hosting fully virtualized guest machines using hardware + virtualization extensions. You will need a fairly recent + processor equipped with virtualization extensions. You will also + need to select one or more of the processor modules below. + + This module provides access to the hardware capabilities through + a character device node named /dev/kvm. + + To compile this as a module, choose M here: the module + will be called kvm. + + If unsure, say N. + +config KVM_INTEL + tristate "KVM for Intel processors support" + depends on KVM + ---help--- + Provides support for KVM on Intel processors equipped with the VT + extensions. + +config KVM_AMD + tristate "KVM for AMD processors support" + depends on KVM + ---help--- + Provides support for KVM on AMD processors equipped with the AMD-V + (SVM) extensions. + +# OK, it's a little counter-intuitive to do this, but it puts it neatly under +# the virtualization menu. +source drivers/lguest/Kconfig +source drivers/virtio/Kconfig + +endif # VIRTUALIZATION --- linux-2.6.24.orig/arch/x86/kvm/vmx.h +++ linux-2.6.24/arch/x86/kvm/vmx.h @@ -0,0 +1,330 @@ +#ifndef VMX_H +#define VMX_H + +/* + * vmx.h: VMX Architecture related definitions + * Copyright (c) 2004, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * + * A few random additions are: + * Copyright (C) 2006 Qumranet + * Avi Kivity + * Yaniv Kamay + * + */ + +/* + * Definitions of Primary Processor-Based VM-Execution Controls. + */ +#define CPU_BASED_VIRTUAL_INTR_PENDING 0x00000004 +#define CPU_BASED_USE_TSC_OFFSETING 0x00000008 +#define CPU_BASED_HLT_EXITING 0x00000080 +#define CPU_BASED_INVLPG_EXITING 0x00000200 +#define CPU_BASED_MWAIT_EXITING 0x00000400 +#define CPU_BASED_RDPMC_EXITING 0x00000800 +#define CPU_BASED_RDTSC_EXITING 0x00001000 +#define CPU_BASED_CR8_LOAD_EXITING 0x00080000 +#define CPU_BASED_CR8_STORE_EXITING 0x00100000 +#define CPU_BASED_TPR_SHADOW 0x00200000 +#define CPU_BASED_MOV_DR_EXITING 0x00800000 +#define CPU_BASED_UNCOND_IO_EXITING 0x01000000 +#define CPU_BASED_USE_IO_BITMAPS 0x02000000 +#define CPU_BASED_USE_MSR_BITMAPS 0x10000000 +#define CPU_BASED_MONITOR_EXITING 0x20000000 +#define CPU_BASED_PAUSE_EXITING 0x40000000 +#define CPU_BASED_ACTIVATE_SECONDARY_CONTROLS 0x80000000 +/* + * Definitions of Secondary Processor-Based VM-Execution Controls. + */ +#define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001 +#define SECONDARY_EXEC_ENABLE_VPID 0x00000020 +#define SECONDARY_EXEC_WBINVD_EXITING 0x00000040 + + +#define PIN_BASED_EXT_INTR_MASK 0x00000001 +#define PIN_BASED_NMI_EXITING 0x00000008 +#define PIN_BASED_VIRTUAL_NMIS 0x00000020 + +#define VM_EXIT_HOST_ADDR_SPACE_SIZE 0x00000200 +#define VM_EXIT_ACK_INTR_ON_EXIT 0x00008000 + +#define VM_ENTRY_IA32E_MODE 0x00000200 +#define VM_ENTRY_SMM 0x00000400 +#define VM_ENTRY_DEACT_DUAL_MONITOR 0x00000800 + +/* VMCS Encodings */ +enum vmcs_field { + VIRTUAL_PROCESSOR_ID = 0x00000000, + GUEST_ES_SELECTOR = 0x00000800, + GUEST_CS_SELECTOR = 0x00000802, + GUEST_SS_SELECTOR = 0x00000804, + GUEST_DS_SELECTOR = 0x00000806, + GUEST_FS_SELECTOR = 0x00000808, + GUEST_GS_SELECTOR = 0x0000080a, + GUEST_LDTR_SELECTOR = 0x0000080c, + GUEST_TR_SELECTOR = 0x0000080e, + HOST_ES_SELECTOR = 0x00000c00, + HOST_CS_SELECTOR = 0x00000c02, + HOST_SS_SELECTOR = 0x00000c04, + HOST_DS_SELECTOR = 0x00000c06, + HOST_FS_SELECTOR = 0x00000c08, + HOST_GS_SELECTOR = 0x00000c0a, + HOST_TR_SELECTOR = 0x00000c0c, + IO_BITMAP_A = 0x00002000, + IO_BITMAP_A_HIGH = 0x00002001, + IO_BITMAP_B = 0x00002002, + IO_BITMAP_B_HIGH = 0x00002003, + MSR_BITMAP = 0x00002004, + MSR_BITMAP_HIGH = 0x00002005, + VM_EXIT_MSR_STORE_ADDR = 0x00002006, + VM_EXIT_MSR_STORE_ADDR_HIGH = 0x00002007, + VM_EXIT_MSR_LOAD_ADDR = 0x00002008, + VM_EXIT_MSR_LOAD_ADDR_HIGH = 0x00002009, + VM_ENTRY_MSR_LOAD_ADDR = 0x0000200a, + VM_ENTRY_MSR_LOAD_ADDR_HIGH = 0x0000200b, + TSC_OFFSET = 0x00002010, + TSC_OFFSET_HIGH = 0x00002011, + VIRTUAL_APIC_PAGE_ADDR = 0x00002012, + VIRTUAL_APIC_PAGE_ADDR_HIGH = 0x00002013, + APIC_ACCESS_ADDR = 0x00002014, + APIC_ACCESS_ADDR_HIGH = 0x00002015, + VMCS_LINK_POINTER = 0x00002800, + VMCS_LINK_POINTER_HIGH = 0x00002801, + GUEST_IA32_DEBUGCTL = 0x00002802, + GUEST_IA32_DEBUGCTL_HIGH = 0x00002803, + PIN_BASED_VM_EXEC_CONTROL = 0x00004000, + CPU_BASED_VM_EXEC_CONTROL = 0x00004002, + EXCEPTION_BITMAP = 0x00004004, + PAGE_FAULT_ERROR_CODE_MASK = 0x00004006, + PAGE_FAULT_ERROR_CODE_MATCH = 0x00004008, + CR3_TARGET_COUNT = 0x0000400a, + VM_EXIT_CONTROLS = 0x0000400c, + VM_EXIT_MSR_STORE_COUNT = 0x0000400e, + VM_EXIT_MSR_LOAD_COUNT = 0x00004010, + VM_ENTRY_CONTROLS = 0x00004012, + VM_ENTRY_MSR_LOAD_COUNT = 0x00004014, + VM_ENTRY_INTR_INFO_FIELD = 0x00004016, + VM_ENTRY_EXCEPTION_ERROR_CODE = 0x00004018, + VM_ENTRY_INSTRUCTION_LEN = 0x0000401a, + TPR_THRESHOLD = 0x0000401c, + SECONDARY_VM_EXEC_CONTROL = 0x0000401e, + VM_INSTRUCTION_ERROR = 0x00004400, + VM_EXIT_REASON = 0x00004402, + VM_EXIT_INTR_INFO = 0x00004404, + VM_EXIT_INTR_ERROR_CODE = 0x00004406, + IDT_VECTORING_INFO_FIELD = 0x00004408, + IDT_VECTORING_ERROR_CODE = 0x0000440a, + VM_EXIT_INSTRUCTION_LEN = 0x0000440c, + VMX_INSTRUCTION_INFO = 0x0000440e, + GUEST_ES_LIMIT = 0x00004800, + GUEST_CS_LIMIT = 0x00004802, + GUEST_SS_LIMIT = 0x00004804, + GUEST_DS_LIMIT = 0x00004806, + GUEST_FS_LIMIT = 0x00004808, + GUEST_GS_LIMIT = 0x0000480a, + GUEST_LDTR_LIMIT = 0x0000480c, + GUEST_TR_LIMIT = 0x0000480e, + GUEST_GDTR_LIMIT = 0x00004810, + GUEST_IDTR_LIMIT = 0x00004812, + GUEST_ES_AR_BYTES = 0x00004814, + GUEST_CS_AR_BYTES = 0x00004816, + GUEST_SS_AR_BYTES = 0x00004818, + GUEST_DS_AR_BYTES = 0x0000481a, + GUEST_FS_AR_BYTES = 0x0000481c, + GUEST_GS_AR_BYTES = 0x0000481e, + GUEST_LDTR_AR_BYTES = 0x00004820, + GUEST_TR_AR_BYTES = 0x00004822, + GUEST_INTERRUPTIBILITY_INFO = 0x00004824, + GUEST_ACTIVITY_STATE = 0X00004826, + GUEST_SYSENTER_CS = 0x0000482A, + HOST_IA32_SYSENTER_CS = 0x00004c00, + CR0_GUEST_HOST_MASK = 0x00006000, + CR4_GUEST_HOST_MASK = 0x00006002, + CR0_READ_SHADOW = 0x00006004, + CR4_READ_SHADOW = 0x00006006, + CR3_TARGET_VALUE0 = 0x00006008, + CR3_TARGET_VALUE1 = 0x0000600a, + CR3_TARGET_VALUE2 = 0x0000600c, + CR3_TARGET_VALUE3 = 0x0000600e, + EXIT_QUALIFICATION = 0x00006400, + GUEST_LINEAR_ADDRESS = 0x0000640a, + GUEST_CR0 = 0x00006800, + GUEST_CR3 = 0x00006802, + GUEST_CR4 = 0x00006804, + GUEST_ES_BASE = 0x00006806, + GUEST_CS_BASE = 0x00006808, + GUEST_SS_BASE = 0x0000680a, + GUEST_DS_BASE = 0x0000680c, + GUEST_FS_BASE = 0x0000680e, + GUEST_GS_BASE = 0x00006810, + GUEST_LDTR_BASE = 0x00006812, + GUEST_TR_BASE = 0x00006814, + GUEST_GDTR_BASE = 0x00006816, + GUEST_IDTR_BASE = 0x00006818, + GUEST_DR7 = 0x0000681a, + GUEST_RSP = 0x0000681c, + GUEST_RIP = 0x0000681e, + GUEST_RFLAGS = 0x00006820, + GUEST_PENDING_DBG_EXCEPTIONS = 0x00006822, + GUEST_SYSENTER_ESP = 0x00006824, + GUEST_SYSENTER_EIP = 0x00006826, + HOST_CR0 = 0x00006c00, + HOST_CR3 = 0x00006c02, + HOST_CR4 = 0x00006c04, + HOST_FS_BASE = 0x00006c06, + HOST_GS_BASE = 0x00006c08, + HOST_TR_BASE = 0x00006c0a, + HOST_GDTR_BASE = 0x00006c0c, + HOST_IDTR_BASE = 0x00006c0e, + HOST_IA32_SYSENTER_ESP = 0x00006c10, + HOST_IA32_SYSENTER_EIP = 0x00006c12, + HOST_RSP = 0x00006c14, + HOST_RIP = 0x00006c16, +}; + +#define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000 + +#define EXIT_REASON_EXCEPTION_NMI 0 +#define EXIT_REASON_EXTERNAL_INTERRUPT 1 +#define EXIT_REASON_TRIPLE_FAULT 2 + +#define EXIT_REASON_PENDING_INTERRUPT 7 + +#define EXIT_REASON_TASK_SWITCH 9 +#define EXIT_REASON_CPUID 10 +#define EXIT_REASON_HLT 12 +#define EXIT_REASON_INVLPG 14 +#define EXIT_REASON_RDPMC 15 +#define EXIT_REASON_RDTSC 16 +#define EXIT_REASON_VMCALL 18 +#define EXIT_REASON_VMCLEAR 19 +#define EXIT_REASON_VMLAUNCH 20 +#define EXIT_REASON_VMPTRLD 21 +#define EXIT_REASON_VMPTRST 22 +#define EXIT_REASON_VMREAD 23 +#define EXIT_REASON_VMRESUME 24 +#define EXIT_REASON_VMWRITE 25 +#define EXIT_REASON_VMOFF 26 +#define EXIT_REASON_VMON 27 +#define EXIT_REASON_CR_ACCESS 28 +#define EXIT_REASON_DR_ACCESS 29 +#define EXIT_REASON_IO_INSTRUCTION 30 +#define EXIT_REASON_MSR_READ 31 +#define EXIT_REASON_MSR_WRITE 32 +#define EXIT_REASON_MWAIT_INSTRUCTION 36 +#define EXIT_REASON_TPR_BELOW_THRESHOLD 43 +#define EXIT_REASON_APIC_ACCESS 44 +#define EXIT_REASON_WBINVD 54 + +/* + * Interruption-information format + */ +#define INTR_INFO_VECTOR_MASK 0xff /* 7:0 */ +#define INTR_INFO_INTR_TYPE_MASK 0x700 /* 10:8 */ +#define INTR_INFO_DELIVER_CODE_MASK 0x800 /* 11 */ +#define INTR_INFO_VALID_MASK 0x80000000 /* 31 */ + +#define VECTORING_INFO_VECTOR_MASK INTR_INFO_VECTOR_MASK +#define VECTORING_INFO_TYPE_MASK INTR_INFO_INTR_TYPE_MASK +#define VECTORING_INFO_DELIVER_CODE_MASK INTR_INFO_DELIVER_CODE_MASK +#define VECTORING_INFO_VALID_MASK INTR_INFO_VALID_MASK + +#define INTR_TYPE_EXT_INTR (0 << 8) /* external interrupt */ +#define INTR_TYPE_EXCEPTION (3 << 8) /* processor exception */ +#define INTR_TYPE_SOFT_INTR (4 << 8) /* software interrupt */ + +/* + * Exit Qualifications for MOV for Control Register Access + */ +#define CONTROL_REG_ACCESS_NUM 0x7 /* 2:0, number of control reg.*/ +#define CONTROL_REG_ACCESS_TYPE 0x30 /* 5:4, access type */ +#define CONTROL_REG_ACCESS_REG 0xf00 /* 10:8, general purpose reg. */ +#define LMSW_SOURCE_DATA_SHIFT 16 +#define LMSW_SOURCE_DATA (0xFFFF << LMSW_SOURCE_DATA_SHIFT) /* 16:31 lmsw source */ +#define REG_EAX (0 << 8) +#define REG_ECX (1 << 8) +#define REG_EDX (2 << 8) +#define REG_EBX (3 << 8) +#define REG_ESP (4 << 8) +#define REG_EBP (5 << 8) +#define REG_ESI (6 << 8) +#define REG_EDI (7 << 8) +#define REG_R8 (8 << 8) +#define REG_R9 (9 << 8) +#define REG_R10 (10 << 8) +#define REG_R11 (11 << 8) +#define REG_R12 (12 << 8) +#define REG_R13 (13 << 8) +#define REG_R14 (14 << 8) +#define REG_R15 (15 << 8) + +/* + * Exit Qualifications for MOV for Debug Register Access + */ +#define DEBUG_REG_ACCESS_NUM 0x7 /* 2:0, number of debug reg. */ +#define DEBUG_REG_ACCESS_TYPE 0x10 /* 4, direction of access */ +#define TYPE_MOV_TO_DR (0 << 4) +#define TYPE_MOV_FROM_DR (1 << 4) +#define DEBUG_REG_ACCESS_REG 0xf00 /* 11:8, general purpose reg. */ + + +/* segment AR */ +#define SEGMENT_AR_L_MASK (1 << 13) + +#define AR_TYPE_ACCESSES_MASK 1 +#define AR_TYPE_READABLE_MASK (1 << 1) +#define AR_TYPE_WRITEABLE_MASK (1 << 2) +#define AR_TYPE_CODE_MASK (1 << 3) +#define AR_TYPE_MASK 0x0f +#define AR_TYPE_BUSY_64_TSS 11 +#define AR_TYPE_BUSY_32_TSS 11 +#define AR_TYPE_BUSY_16_TSS 3 +#define AR_TYPE_LDT 2 + +#define AR_UNUSABLE_MASK (1 << 16) +#define AR_S_MASK (1 << 4) +#define AR_P_MASK (1 << 7) +#define AR_L_MASK (1 << 13) +#define AR_DB_MASK (1 << 14) +#define AR_G_MASK (1 << 15) +#define AR_DPL_SHIFT 5 +#define AR_DPL(ar) (((ar) >> AR_DPL_SHIFT) & 3) + +#define AR_RESERVD_MASK 0xfffe0f00 + +#define MSR_IA32_VMX_BASIC 0x480 +#define MSR_IA32_VMX_PINBASED_CTLS 0x481 +#define MSR_IA32_VMX_PROCBASED_CTLS 0x482 +#define MSR_IA32_VMX_EXIT_CTLS 0x483 +#define MSR_IA32_VMX_ENTRY_CTLS 0x484 +#define MSR_IA32_VMX_MISC 0x485 +#define MSR_IA32_VMX_CR0_FIXED0 0x486 +#define MSR_IA32_VMX_CR0_FIXED1 0x487 +#define MSR_IA32_VMX_CR4_FIXED0 0x488 +#define MSR_IA32_VMX_CR4_FIXED1 0x489 +#define MSR_IA32_VMX_VMCS_ENUM 0x48a +#define MSR_IA32_VMX_PROCBASED_CTLS2 0x48b + +#define MSR_IA32_FEATURE_CONTROL 0x3a +#define MSR_IA32_FEATURE_CONTROL_LOCKED 0x1 +#define MSR_IA32_FEATURE_CONTROL_VMXON_ENABLED 0x4 + +#define APIC_ACCESS_PAGE_PRIVATE_MEMSLOT 9 + +#define VMX_NR_VPIDS (1 << 16) +#define VMX_VPID_EXTENT_SINGLE_CONTEXT 1 +#define VMX_VPID_EXTENT_ALL_CONTEXT 2 + +#endif --- linux-2.6.24.orig/arch/x86/kvm/lapic.c +++ linux-2.6.24/arch/x86/kvm/lapic.c @@ -0,0 +1,1158 @@ + +/* + * Local APIC virtualization + * + * Copyright (C) 2006 Qumranet, Inc. + * Copyright (C) 2007 Novell + * Copyright (C) 2007 Intel + * + * Authors: + * Dor Laor + * Gregory Haskins + * Yaozu (Eddie) Dong + * + * Based on Xen 3.1 code, Copyright (c) 2004, Intel Corporation. + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "irq.h" + +#define PRId64 "d" +#define PRIx64 "llx" +#define PRIu64 "u" +#define PRIo64 "o" + +#define APIC_BUS_CYCLE_NS 1 + +/* #define apic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) */ +#define apic_debug(fmt, arg...) + +#define APIC_LVT_NUM 6 +/* 14 is the version for Xeon and Pentium 8.4.8*/ +#define APIC_VERSION (0x14UL | ((APIC_LVT_NUM - 1) << 16)) +#define LAPIC_MMIO_LENGTH (1 << 12) +/* followed define is not in apicdef.h */ +#define APIC_SHORT_MASK 0xc0000 +#define APIC_DEST_NOSHORT 0x0 +#define APIC_DEST_MASK 0x800 +#define MAX_APIC_VECTOR 256 + +#define VEC_POS(v) ((v) & (32 - 1)) +#define REG_POS(v) (((v) >> 5) << 4) + +static inline u32 apic_get_reg(struct kvm_lapic *apic, int reg_off) +{ + return *((u32 *) (apic->regs + reg_off)); +} + +static inline void apic_set_reg(struct kvm_lapic *apic, int reg_off, u32 val) +{ + *((u32 *) (apic->regs + reg_off)) = val; +} + +static inline int apic_test_and_set_vector(int vec, void *bitmap) +{ + return test_and_set_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); +} + +static inline int apic_test_and_clear_vector(int vec, void *bitmap) +{ + return test_and_clear_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); +} + +static inline void apic_set_vector(int vec, void *bitmap) +{ + set_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); +} + +static inline void apic_clear_vector(int vec, void *bitmap) +{ + clear_bit(VEC_POS(vec), (bitmap) + REG_POS(vec)); +} + +static inline int apic_hw_enabled(struct kvm_lapic *apic) +{ + return (apic)->vcpu->arch.apic_base & MSR_IA32_APICBASE_ENABLE; +} + +static inline int apic_sw_enabled(struct kvm_lapic *apic) +{ + return apic_get_reg(apic, APIC_SPIV) & APIC_SPIV_APIC_ENABLED; +} + +static inline int apic_enabled(struct kvm_lapic *apic) +{ + return apic_sw_enabled(apic) && apic_hw_enabled(apic); +} + +#define LVT_MASK \ + (APIC_LVT_MASKED | APIC_SEND_PENDING | APIC_VECTOR_MASK) + +#define LINT_MASK \ + (LVT_MASK | APIC_MODE_MASK | APIC_INPUT_POLARITY | \ + APIC_LVT_REMOTE_IRR | APIC_LVT_LEVEL_TRIGGER) + +static inline int kvm_apic_id(struct kvm_lapic *apic) +{ + return (apic_get_reg(apic, APIC_ID) >> 24) & 0xff; +} + +static inline int apic_lvt_enabled(struct kvm_lapic *apic, int lvt_type) +{ + return !(apic_get_reg(apic, lvt_type) & APIC_LVT_MASKED); +} + +static inline int apic_lvt_vector(struct kvm_lapic *apic, int lvt_type) +{ + return apic_get_reg(apic, lvt_type) & APIC_VECTOR_MASK; +} + +static inline int apic_lvtt_period(struct kvm_lapic *apic) +{ + return apic_get_reg(apic, APIC_LVTT) & APIC_LVT_TIMER_PERIODIC; +} + +static unsigned int apic_lvt_mask[APIC_LVT_NUM] = { + LVT_MASK | APIC_LVT_TIMER_PERIODIC, /* LVTT */ + LVT_MASK | APIC_MODE_MASK, /* LVTTHMR */ + LVT_MASK | APIC_MODE_MASK, /* LVTPC */ + LINT_MASK, LINT_MASK, /* LVT0-1 */ + LVT_MASK /* LVTERR */ +}; + +static int find_highest_vector(void *bitmap) +{ + u32 *word = bitmap; + int word_offset = MAX_APIC_VECTOR >> 5; + + while ((word_offset != 0) && (word[(--word_offset) << 2] == 0)) + continue; + + if (likely(!word_offset && !word[0])) + return -1; + else + return fls(word[word_offset << 2]) - 1 + (word_offset << 5); +} + +static inline int apic_test_and_set_irr(int vec, struct kvm_lapic *apic) +{ + return apic_test_and_set_vector(vec, apic->regs + APIC_IRR); +} + +static inline void apic_clear_irr(int vec, struct kvm_lapic *apic) +{ + apic_clear_vector(vec, apic->regs + APIC_IRR); +} + +static inline int apic_find_highest_irr(struct kvm_lapic *apic) +{ + int result; + + result = find_highest_vector(apic->regs + APIC_IRR); + ASSERT(result == -1 || result >= 16); + + return result; +} + +int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + int highest_irr; + + if (!apic) + return 0; + highest_irr = apic_find_highest_irr(apic); + + return highest_irr; +} +EXPORT_SYMBOL_GPL(kvm_lapic_find_highest_irr); + +int kvm_apic_set_irq(struct kvm_vcpu *vcpu, u8 vec, u8 trig) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + + if (!apic_test_and_set_irr(vec, apic)) { + /* a new pending irq is set in IRR */ + if (trig) + apic_set_vector(vec, apic->regs + APIC_TMR); + else + apic_clear_vector(vec, apic->regs + APIC_TMR); + kvm_vcpu_kick(apic->vcpu); + return 1; + } + return 0; +} + +static inline int apic_find_highest_isr(struct kvm_lapic *apic) +{ + int result; + + result = find_highest_vector(apic->regs + APIC_ISR); + ASSERT(result == -1 || result >= 16); + + return result; +} + +static void apic_update_ppr(struct kvm_lapic *apic) +{ + u32 tpr, isrv, ppr; + int isr; + + tpr = apic_get_reg(apic, APIC_TASKPRI); + isr = apic_find_highest_isr(apic); + isrv = (isr != -1) ? isr : 0; + + if ((tpr & 0xf0) >= (isrv & 0xf0)) + ppr = tpr & 0xff; + else + ppr = isrv & 0xf0; + + apic_debug("vlapic %p, ppr 0x%x, isr 0x%x, isrv 0x%x", + apic, ppr, isr, isrv); + + apic_set_reg(apic, APIC_PROCPRI, ppr); +} + +static void apic_set_tpr(struct kvm_lapic *apic, u32 tpr) +{ + apic_set_reg(apic, APIC_TASKPRI, tpr); + apic_update_ppr(apic); +} + +int kvm_apic_match_physical_addr(struct kvm_lapic *apic, u16 dest) +{ + return kvm_apic_id(apic) == dest; +} + +int kvm_apic_match_logical_addr(struct kvm_lapic *apic, u8 mda) +{ + int result = 0; + u8 logical_id; + + logical_id = GET_APIC_LOGICAL_ID(apic_get_reg(apic, APIC_LDR)); + + switch (apic_get_reg(apic, APIC_DFR)) { + case APIC_DFR_FLAT: + if (logical_id & mda) + result = 1; + break; + case APIC_DFR_CLUSTER: + if (((logical_id >> 4) == (mda >> 0x4)) + && (logical_id & mda & 0xf)) + result = 1; + break; + default: + printk(KERN_WARNING "Bad DFR vcpu %d: %08x\n", + apic->vcpu->vcpu_id, apic_get_reg(apic, APIC_DFR)); + break; + } + + return result; +} + +static int apic_match_dest(struct kvm_vcpu *vcpu, struct kvm_lapic *source, + int short_hand, int dest, int dest_mode) +{ + int result = 0; + struct kvm_lapic *target = vcpu->arch.apic; + + apic_debug("target %p, source %p, dest 0x%x, " + "dest_mode 0x%x, short_hand 0x%x", + target, source, dest, dest_mode, short_hand); + + ASSERT(!target); + switch (short_hand) { + case APIC_DEST_NOSHORT: + if (dest_mode == 0) { + /* Physical mode. */ + if ((dest == 0xFF) || (dest == kvm_apic_id(target))) + result = 1; + } else + /* Logical mode. */ + result = kvm_apic_match_logical_addr(target, dest); + break; + case APIC_DEST_SELF: + if (target == source) + result = 1; + break; + case APIC_DEST_ALLINC: + result = 1; + break; + case APIC_DEST_ALLBUT: + if (target != source) + result = 1; + break; + default: + printk(KERN_WARNING "Bad dest shorthand value %x\n", + short_hand); + break; + } + + return result; +} + +/* + * Add a pending IRQ into lapic. + * Return 1 if successfully added and 0 if discarded. + */ +static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, + int vector, int level, int trig_mode) +{ + int orig_irr, result = 0; + struct kvm_vcpu *vcpu = apic->vcpu; + + switch (delivery_mode) { + case APIC_DM_FIXED: + case APIC_DM_LOWEST: + /* FIXME add logic for vcpu on reset */ + if (unlikely(!apic_enabled(apic))) + break; + + orig_irr = apic_test_and_set_irr(vector, apic); + if (orig_irr && trig_mode) { + apic_debug("level trig mode repeatedly for vector %d", + vector); + break; + } + + if (trig_mode) { + apic_debug("level trig mode for vector %d", vector); + apic_set_vector(vector, apic->regs + APIC_TMR); + } else + apic_clear_vector(vector, apic->regs + APIC_TMR); + + if (vcpu->arch.mp_state == VCPU_MP_STATE_RUNNABLE) + kvm_vcpu_kick(vcpu); + else if (vcpu->arch.mp_state == VCPU_MP_STATE_HALTED) { + vcpu->arch.mp_state = VCPU_MP_STATE_RUNNABLE; + if (waitqueue_active(&vcpu->wq)) + wake_up_interruptible(&vcpu->wq); + } + + result = (orig_irr == 0); + break; + + case APIC_DM_REMRD: + printk(KERN_DEBUG "Ignoring delivery mode 3\n"); + break; + + case APIC_DM_SMI: + printk(KERN_DEBUG "Ignoring guest SMI\n"); + break; + case APIC_DM_NMI: + printk(KERN_DEBUG "Ignoring guest NMI\n"); + break; + + case APIC_DM_INIT: + if (level) { + if (vcpu->arch.mp_state == VCPU_MP_STATE_RUNNABLE) + printk(KERN_DEBUG + "INIT on a runnable vcpu %d\n", + vcpu->vcpu_id); + vcpu->arch.mp_state = VCPU_MP_STATE_INIT_RECEIVED; + kvm_vcpu_kick(vcpu); + } else { + printk(KERN_DEBUG + "Ignoring de-assert INIT to vcpu %d\n", + vcpu->vcpu_id); + } + + break; + + case APIC_DM_STARTUP: + printk(KERN_DEBUG "SIPI to vcpu %d vector 0x%02x\n", + vcpu->vcpu_id, vector); + if (vcpu->arch.mp_state == VCPU_MP_STATE_INIT_RECEIVED) { + vcpu->arch.sipi_vector = vector; + vcpu->arch.mp_state = VCPU_MP_STATE_SIPI_RECEIVED; + if (waitqueue_active(&vcpu->wq)) + wake_up_interruptible(&vcpu->wq); + } + break; + + default: + printk(KERN_ERR "TODO: unsupported delivery mode %x\n", + delivery_mode); + break; + } + return result; +} + +static struct kvm_lapic *kvm_apic_round_robin(struct kvm *kvm, u8 vector, + unsigned long bitmap) +{ + int last; + int next; + struct kvm_lapic *apic = NULL; + + last = kvm->arch.round_robin_prev_vcpu; + next = last; + + do { + if (++next == KVM_MAX_VCPUS) + next = 0; + if (kvm->vcpus[next] == NULL || !test_bit(next, &bitmap)) + continue; + apic = kvm->vcpus[next]->arch.apic; + if (apic && apic_enabled(apic)) + break; + apic = NULL; + } while (next != last); + kvm->arch.round_robin_prev_vcpu = next; + + if (!apic) + printk(KERN_DEBUG "vcpu not ready for apic_round_robin\n"); + + return apic; +} + +struct kvm_vcpu *kvm_get_lowest_prio_vcpu(struct kvm *kvm, u8 vector, + unsigned long bitmap) +{ + struct kvm_lapic *apic; + + apic = kvm_apic_round_robin(kvm, vector, bitmap); + if (apic) + return apic->vcpu; + return NULL; +} + +static void apic_set_eoi(struct kvm_lapic *apic) +{ + int vector = apic_find_highest_isr(apic); + + /* + * Not every write EOI will has corresponding ISR, + * one example is when Kernel check timer on setup_IO_APIC + */ + if (vector == -1) + return; + + apic_clear_vector(vector, apic->regs + APIC_ISR); + apic_update_ppr(apic); + + if (apic_test_and_clear_vector(vector, apic->regs + APIC_TMR)) + kvm_ioapic_update_eoi(apic->vcpu->kvm, vector); +} + +static void apic_send_ipi(struct kvm_lapic *apic) +{ + u32 icr_low = apic_get_reg(apic, APIC_ICR); + u32 icr_high = apic_get_reg(apic, APIC_ICR2); + + unsigned int dest = GET_APIC_DEST_FIELD(icr_high); + unsigned int short_hand = icr_low & APIC_SHORT_MASK; + unsigned int trig_mode = icr_low & APIC_INT_LEVELTRIG; + unsigned int level = icr_low & APIC_INT_ASSERT; + unsigned int dest_mode = icr_low & APIC_DEST_MASK; + unsigned int delivery_mode = icr_low & APIC_MODE_MASK; + unsigned int vector = icr_low & APIC_VECTOR_MASK; + + struct kvm_vcpu *target; + struct kvm_vcpu *vcpu; + unsigned long lpr_map = 0; + int i; + + apic_debug("icr_high 0x%x, icr_low 0x%x, " + "short_hand 0x%x, dest 0x%x, trig_mode 0x%x, level 0x%x, " + "dest_mode 0x%x, delivery_mode 0x%x, vector 0x%x\n", + icr_high, icr_low, short_hand, dest, + trig_mode, level, dest_mode, delivery_mode, vector); + + for (i = 0; i < KVM_MAX_VCPUS; i++) { + vcpu = apic->vcpu->kvm->vcpus[i]; + if (!vcpu) + continue; + + if (vcpu->arch.apic && + apic_match_dest(vcpu, apic, short_hand, dest, dest_mode)) { + if (delivery_mode == APIC_DM_LOWEST) + set_bit(vcpu->vcpu_id, &lpr_map); + else + __apic_accept_irq(vcpu->arch.apic, delivery_mode, + vector, level, trig_mode); + } + } + + if (delivery_mode == APIC_DM_LOWEST) { + target = kvm_get_lowest_prio_vcpu(vcpu->kvm, vector, lpr_map); + if (target != NULL) + __apic_accept_irq(target->arch.apic, delivery_mode, + vector, level, trig_mode); + } +} + +static u32 apic_get_tmcct(struct kvm_lapic *apic) +{ + u64 counter_passed; + ktime_t passed, now; + u32 tmcct; + + ASSERT(apic != NULL); + + now = apic->timer.dev.base->get_time(); + tmcct = apic_get_reg(apic, APIC_TMICT); + + /* if initial count is 0, current count should also be 0 */ + if (tmcct == 0) + return 0; + + if (unlikely(ktime_to_ns(now) <= + ktime_to_ns(apic->timer.last_update))) { + /* Wrap around */ + passed = ktime_add(( { + (ktime_t) { + .tv64 = KTIME_MAX - + (apic->timer.last_update).tv64}; } + ), now); + apic_debug("time elapsed\n"); + } else + passed = ktime_sub(now, apic->timer.last_update); + + counter_passed = div64_64(ktime_to_ns(passed), + (APIC_BUS_CYCLE_NS * apic->timer.divide_count)); + + if (counter_passed > tmcct) { + if (unlikely(!apic_lvtt_period(apic))) { + /* one-shot timers stick at 0 until reset */ + tmcct = 0; + } else { + /* + * periodic timers reset to APIC_TMICT when they + * hit 0. The while loop simulates this happening N + * times. (counter_passed %= tmcct) would also work, + * but might be slower or not work on 32-bit?? + */ + while (counter_passed > tmcct) + counter_passed -= tmcct; + tmcct -= counter_passed; + } + } else { + tmcct -= counter_passed; + } + + return tmcct; +} + +static void __report_tpr_access(struct kvm_lapic *apic, bool write) +{ + struct kvm_vcpu *vcpu = apic->vcpu; + struct kvm_run *run = vcpu->run; + + set_bit(KVM_REQ_REPORT_TPR_ACCESS, &vcpu->requests); + kvm_x86_ops->cache_regs(vcpu); + run->tpr_access.rip = vcpu->arch.rip; + run->tpr_access.is_write = write; +} + +static inline void report_tpr_access(struct kvm_lapic *apic, bool write) +{ + if (apic->vcpu->arch.tpr_access_reporting) + __report_tpr_access(apic, write); +} + +static u32 __apic_read(struct kvm_lapic *apic, unsigned int offset) +{ + u32 val = 0; + + if (offset >= LAPIC_MMIO_LENGTH) + return 0; + + switch (offset) { + case APIC_ARBPRI: + printk(KERN_WARNING "Access APIC ARBPRI register " + "which is for P6\n"); + break; + + case APIC_TMCCT: /* Timer CCR */ + val = apic_get_tmcct(apic); + break; + + case APIC_TASKPRI: + report_tpr_access(apic, false); + /* fall thru */ + default: + apic_update_ppr(apic); + val = apic_get_reg(apic, offset); + break; + } + + return val; +} + +static void apic_mmio_read(struct kvm_io_device *this, + gpa_t address, int len, void *data) +{ + struct kvm_lapic *apic = (struct kvm_lapic *)this->private; + unsigned int offset = address - apic->base_address; + unsigned char alignment = offset & 0xf; + u32 result; + + if ((alignment + len) > 4) { + printk(KERN_ERR "KVM_APIC_READ: alignment error %lx %d", + (unsigned long)address, len); + return; + } + result = __apic_read(apic, offset & ~0xf); + + switch (len) { + case 1: + case 2: + case 4: + memcpy(data, (char *)&result + alignment, len); + break; + default: + printk(KERN_ERR "Local APIC read with len = %x, " + "should be 1,2, or 4 instead\n", len); + break; + } +} + +static void update_divide_count(struct kvm_lapic *apic) +{ + u32 tmp1, tmp2, tdcr; + + tdcr = apic_get_reg(apic, APIC_TDCR); + tmp1 = tdcr & 0xf; + tmp2 = ((tmp1 & 0x3) | ((tmp1 & 0x8) >> 1)) + 1; + apic->timer.divide_count = 0x1 << (tmp2 & 0x7); + + apic_debug("timer divide count is 0x%x\n", + apic->timer.divide_count); +} + +static void start_apic_timer(struct kvm_lapic *apic) +{ + ktime_t now = apic->timer.dev.base->get_time(); + + apic->timer.last_update = now; + + apic->timer.period = apic_get_reg(apic, APIC_TMICT) * + APIC_BUS_CYCLE_NS * apic->timer.divide_count; + atomic_set(&apic->timer.pending, 0); + + if (!apic->timer.period) + return; + + hrtimer_start(&apic->timer.dev, + ktime_add_ns(now, apic->timer.period), + HRTIMER_MODE_ABS); + + apic_debug("%s: bus cycle is %" PRId64 "ns, now 0x%016" + PRIx64 ", " + "timer initial count 0x%x, period %lldns, " + "expire @ 0x%016" PRIx64 ".\n", __FUNCTION__, + APIC_BUS_CYCLE_NS, ktime_to_ns(now), + apic_get_reg(apic, APIC_TMICT), + apic->timer.period, + ktime_to_ns(ktime_add_ns(now, + apic->timer.period))); +} + +static void apic_mmio_write(struct kvm_io_device *this, + gpa_t address, int len, const void *data) +{ + struct kvm_lapic *apic = (struct kvm_lapic *)this->private; + unsigned int offset = address - apic->base_address; + unsigned char alignment = offset & 0xf; + u32 val; + + /* + * APIC register must be aligned on 128-bits boundary. + * 32/64/128 bits registers must be accessed thru 32 bits. + * Refer SDM 8.4.1 + */ + if (len != 4 || alignment) { + if (printk_ratelimit()) + printk(KERN_ERR "apic write: bad size=%d %lx\n", + len, (long)address); + return; + } + + val = *(u32 *) data; + + /* too common printing */ + if (offset != APIC_EOI) + apic_debug("%s: offset 0x%x with length 0x%x, and value is " + "0x%x\n", __FUNCTION__, offset, len, val); + + offset &= 0xff0; + + switch (offset) { + case APIC_ID: /* Local APIC ID */ + apic_set_reg(apic, APIC_ID, val); + break; + + case APIC_TASKPRI: + report_tpr_access(apic, true); + apic_set_tpr(apic, val & 0xff); + break; + + case APIC_EOI: + apic_set_eoi(apic); + break; + + case APIC_LDR: + apic_set_reg(apic, APIC_LDR, val & APIC_LDR_MASK); + break; + + case APIC_DFR: + apic_set_reg(apic, APIC_DFR, val | 0x0FFFFFFF); + break; + + case APIC_SPIV: + apic_set_reg(apic, APIC_SPIV, val & 0x3ff); + if (!(val & APIC_SPIV_APIC_ENABLED)) { + int i; + u32 lvt_val; + + for (i = 0; i < APIC_LVT_NUM; i++) { + lvt_val = apic_get_reg(apic, + APIC_LVTT + 0x10 * i); + apic_set_reg(apic, APIC_LVTT + 0x10 * i, + lvt_val | APIC_LVT_MASKED); + } + atomic_set(&apic->timer.pending, 0); + + } + break; + + case APIC_ICR: + /* No delay here, so we always clear the pending bit */ + apic_set_reg(apic, APIC_ICR, val & ~(1 << 12)); + apic_send_ipi(apic); + break; + + case APIC_ICR2: + apic_set_reg(apic, APIC_ICR2, val & 0xff000000); + break; + + case APIC_LVTT: + case APIC_LVTTHMR: + case APIC_LVTPC: + case APIC_LVT0: + case APIC_LVT1: + case APIC_LVTERR: + /* TODO: Check vector */ + if (!apic_sw_enabled(apic)) + val |= APIC_LVT_MASKED; + + val &= apic_lvt_mask[(offset - APIC_LVTT) >> 4]; + apic_set_reg(apic, offset, val); + + break; + + case APIC_TMICT: + hrtimer_cancel(&apic->timer.dev); + apic_set_reg(apic, APIC_TMICT, val); + start_apic_timer(apic); + return; + + case APIC_TDCR: + if (val & 4) + printk(KERN_ERR "KVM_WRITE:TDCR %x\n", val); + apic_set_reg(apic, APIC_TDCR, val); + update_divide_count(apic); + break; + + default: + apic_debug("Local APIC Write to read-only register %x\n", + offset); + break; + } + +} + +static int apic_mmio_range(struct kvm_io_device *this, gpa_t addr) +{ + struct kvm_lapic *apic = (struct kvm_lapic *)this->private; + int ret = 0; + + + if (apic_hw_enabled(apic) && + (addr >= apic->base_address) && + (addr < (apic->base_address + LAPIC_MMIO_LENGTH))) + ret = 1; + + return ret; +} + +void kvm_free_lapic(struct kvm_vcpu *vcpu) +{ + if (!vcpu->arch.apic) + return; + + hrtimer_cancel(&vcpu->arch.apic->timer.dev); + + if (vcpu->arch.apic->regs_page) + __free_page(vcpu->arch.apic->regs_page); + + kfree(vcpu->arch.apic); +} + +/* + *---------------------------------------------------------------------- + * LAPIC interface + *---------------------------------------------------------------------- + */ + +void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + + if (!apic) + return; + apic_set_tpr(apic, ((cr8 & 0x0f) << 4) + | (apic_get_reg(apic, APIC_TASKPRI) & 4)); +} + +u64 kvm_lapic_get_cr8(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + u64 tpr; + + if (!apic) + return 0; + tpr = (u64) apic_get_reg(apic, APIC_TASKPRI); + + return (tpr & 0xf0) >> 4; +} +EXPORT_SYMBOL_GPL(kvm_lapic_get_cr8); + +void kvm_lapic_set_base(struct kvm_vcpu *vcpu, u64 value) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + + if (!apic) { + value |= MSR_IA32_APICBASE_BSP; + vcpu->arch.apic_base = value; + return; + } + if (apic->vcpu->vcpu_id) + value &= ~MSR_IA32_APICBASE_BSP; + + vcpu->arch.apic_base = value; + apic->base_address = apic->vcpu->arch.apic_base & + MSR_IA32_APICBASE_BASE; + + /* with FSB delivery interrupt, we can restart APIC functionality */ + apic_debug("apic base msr is 0x%016" PRIx64 ", and base address is " + "0x%lx.\n", apic->vcpu->arch.apic_base, apic->base_address); + +} + +u64 kvm_lapic_get_base(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.apic_base; +} +EXPORT_SYMBOL_GPL(kvm_lapic_get_base); + +void kvm_lapic_reset(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic; + int i; + + apic_debug("%s\n", __FUNCTION__); + + ASSERT(vcpu); + apic = vcpu->arch.apic; + ASSERT(apic != NULL); + + /* Stop the timer in case it's a reset to an active apic */ + hrtimer_cancel(&apic->timer.dev); + + apic_set_reg(apic, APIC_ID, vcpu->vcpu_id << 24); + apic_set_reg(apic, APIC_LVR, APIC_VERSION); + + for (i = 0; i < APIC_LVT_NUM; i++) + apic_set_reg(apic, APIC_LVTT + 0x10 * i, APIC_LVT_MASKED); + apic_set_reg(apic, APIC_LVT0, + SET_APIC_DELIVERY_MODE(0, APIC_MODE_EXTINT)); + + apic_set_reg(apic, APIC_DFR, 0xffffffffU); + apic_set_reg(apic, APIC_SPIV, 0xff); + apic_set_reg(apic, APIC_TASKPRI, 0); + apic_set_reg(apic, APIC_LDR, 0); + apic_set_reg(apic, APIC_ESR, 0); + apic_set_reg(apic, APIC_ICR, 0); + apic_set_reg(apic, APIC_ICR2, 0); + apic_set_reg(apic, APIC_TDCR, 0); + apic_set_reg(apic, APIC_TMICT, 0); + for (i = 0; i < 8; i++) { + apic_set_reg(apic, APIC_IRR + 0x10 * i, 0); + apic_set_reg(apic, APIC_ISR + 0x10 * i, 0); + apic_set_reg(apic, APIC_TMR + 0x10 * i, 0); + } + update_divide_count(apic); + atomic_set(&apic->timer.pending, 0); + if (vcpu->vcpu_id == 0) + vcpu->arch.apic_base |= MSR_IA32_APICBASE_BSP; + apic_update_ppr(apic); + + apic_debug(KERN_INFO "%s: vcpu=%p, id=%d, base_msr=" + "0x%016" PRIx64 ", base_address=0x%0lx.\n", __FUNCTION__, + vcpu, kvm_apic_id(apic), + vcpu->arch.apic_base, apic->base_address); +} +EXPORT_SYMBOL_GPL(kvm_lapic_reset); + +int kvm_lapic_enabled(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + int ret = 0; + + if (!apic) + return 0; + ret = apic_enabled(apic); + + return ret; +} +EXPORT_SYMBOL_GPL(kvm_lapic_enabled); + +/* + *---------------------------------------------------------------------- + * timer interface + *---------------------------------------------------------------------- + */ + +/* TODO: make sure __apic_timer_fn runs in current pCPU */ +static int __apic_timer_fn(struct kvm_lapic *apic) +{ + int result = 0; + wait_queue_head_t *q = &apic->vcpu->wq; + + atomic_inc(&apic->timer.pending); + if (waitqueue_active(q)) { + apic->vcpu->arch.mp_state = VCPU_MP_STATE_RUNNABLE; + wake_up_interruptible(q); + } + if (apic_lvtt_period(apic)) { + result = 1; + apic->timer.dev.expires = ktime_add_ns( + apic->timer.dev.expires, + apic->timer.period); + } + return result; +} + +static int __inject_apic_timer_irq(struct kvm_lapic *apic) +{ + int vector; + + vector = apic_lvt_vector(apic, APIC_LVTT); + return __apic_accept_irq(apic, APIC_DM_FIXED, vector, 1, 0); +} + +static enum hrtimer_restart apic_timer_fn(struct hrtimer *data) +{ + struct kvm_lapic *apic; + int restart_timer = 0; + + apic = container_of(data, struct kvm_lapic, timer.dev); + + restart_timer = __apic_timer_fn(apic); + + if (restart_timer) + return HRTIMER_RESTART; + else + return HRTIMER_NORESTART; +} + +int kvm_create_lapic(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic; + + ASSERT(vcpu != NULL); + apic_debug("apic_init %d\n", vcpu->vcpu_id); + + apic = kzalloc(sizeof(*apic), GFP_KERNEL); + if (!apic) + goto nomem; + + vcpu->arch.apic = apic; + + apic->regs_page = alloc_page(GFP_KERNEL); + if (apic->regs_page == NULL) { + printk(KERN_ERR "malloc apic regs error for vcpu %x\n", + vcpu->vcpu_id); + goto nomem_free_apic; + } + apic->regs = page_address(apic->regs_page); + memset(apic->regs, 0, PAGE_SIZE); + apic->vcpu = vcpu; + + hrtimer_init(&apic->timer.dev, CLOCK_MONOTONIC, HRTIMER_MODE_ABS); + apic->timer.dev.function = apic_timer_fn; + apic->base_address = APIC_DEFAULT_PHYS_BASE; + vcpu->arch.apic_base = APIC_DEFAULT_PHYS_BASE; + + kvm_lapic_reset(vcpu); + apic->dev.read = apic_mmio_read; + apic->dev.write = apic_mmio_write; + apic->dev.in_range = apic_mmio_range; + apic->dev.private = apic; + + return 0; +nomem_free_apic: + kfree(apic); +nomem: + return -ENOMEM; +} +EXPORT_SYMBOL_GPL(kvm_create_lapic); + +int kvm_apic_has_interrupt(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + int highest_irr; + + if (!apic || !apic_enabled(apic)) + return -1; + + apic_update_ppr(apic); + highest_irr = apic_find_highest_irr(apic); + if ((highest_irr == -1) || + ((highest_irr & 0xF0) <= apic_get_reg(apic, APIC_PROCPRI))) + return -1; + return highest_irr; +} + +int kvm_apic_accept_pic_intr(struct kvm_vcpu *vcpu) +{ + u32 lvt0 = apic_get_reg(vcpu->arch.apic, APIC_LVT0); + int r = 0; + + if (vcpu->vcpu_id == 0) { + if (!apic_hw_enabled(vcpu->arch.apic)) + r = 1; + if ((lvt0 & APIC_LVT_MASKED) == 0 && + GET_APIC_DELIVERY_MODE(lvt0) == APIC_MODE_EXTINT) + r = 1; + } + return r; +} + +void kvm_inject_apic_timer_irqs(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + + if (apic && apic_lvt_enabled(apic, APIC_LVTT) && + atomic_read(&apic->timer.pending) > 0) { + if (__inject_apic_timer_irq(apic)) + atomic_dec(&apic->timer.pending); + } +} + +void kvm_apic_timer_intr_post(struct kvm_vcpu *vcpu, int vec) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + + if (apic && apic_lvt_vector(apic, APIC_LVTT) == vec) + apic->timer.last_update = ktime_add_ns( + apic->timer.last_update, + apic->timer.period); +} + +int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu) +{ + int vector = kvm_apic_has_interrupt(vcpu); + struct kvm_lapic *apic = vcpu->arch.apic; + + if (vector == -1) + return -1; + + apic_set_vector(vector, apic->regs + APIC_ISR); + apic_update_ppr(apic); + apic_clear_irr(vector, apic); + return vector; +} + +void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + + apic->base_address = vcpu->arch.apic_base & + MSR_IA32_APICBASE_BASE; + apic_set_reg(apic, APIC_LVR, APIC_VERSION); + apic_update_ppr(apic); + hrtimer_cancel(&apic->timer.dev); + update_divide_count(apic); + start_apic_timer(apic); +} + +void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + struct hrtimer *timer; + + if (!apic) + return; + + timer = &apic->timer.dev; + if (hrtimer_cancel(timer)) + hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS); +} + +void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu) +{ + u32 data; + void *vapic; + + if (!irqchip_in_kernel(vcpu->kvm) || !vcpu->arch.apic->vapic_addr) + return; + + vapic = kmap_atomic(vcpu->arch.apic->vapic_page, KM_USER0); + data = *(u32 *)(vapic + offset_in_page(vcpu->arch.apic->vapic_addr)); + kunmap_atomic(vapic, KM_USER0); + + apic_set_tpr(vcpu->arch.apic, data & 0xff); +} + +void kvm_lapic_sync_to_vapic(struct kvm_vcpu *vcpu) +{ + u32 data, tpr; + int max_irr, max_isr; + struct kvm_lapic *apic; + void *vapic; + + if (!irqchip_in_kernel(vcpu->kvm) || !vcpu->arch.apic->vapic_addr) + return; + + apic = vcpu->arch.apic; + tpr = apic_get_reg(apic, APIC_TASKPRI) & 0xff; + max_irr = apic_find_highest_irr(apic); + if (max_irr < 0) + max_irr = 0; + max_isr = apic_find_highest_isr(apic); + if (max_isr < 0) + max_isr = 0; + data = (tpr & 0xff) | ((max_isr & 0xf0) << 8) | (max_irr << 24); + + vapic = kmap_atomic(vcpu->arch.apic->vapic_page, KM_USER0); + *(u32 *)(vapic + offset_in_page(vcpu->arch.apic->vapic_addr)) = data; + kunmap_atomic(vapic, KM_USER0); +} + +void kvm_lapic_set_vapic_addr(struct kvm_vcpu *vcpu, gpa_t vapic_addr) +{ + if (!irqchip_in_kernel(vcpu->kvm)) + return; + + vcpu->arch.apic->vapic_addr = vapic_addr; +} --- linux-2.6.24.orig/arch/x86/kvm/mmu.c +++ linux-2.6.24/arch/x86/kvm/mmu.c @@ -0,0 +1,2176 @@ +/* + * Kernel-based Virtual Machine driver for Linux + * + * This module enables machines with Intel VT-x extensions to run virtual + * machines without emulation or binary translation. + * + * MMU support + * + * Copyright (C) 2006 Qumranet, Inc. + * + * Authors: + * Yaniv Kamay + * Avi Kivity + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#include "vmx.h" +#include "mmu.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +/* + * When setting this variable to true it enables Two-Dimensional-Paging + * where the hardware walks 2 page tables: + * 1. the guest-virtual to guest-physical + * 2. while doing 1. it walks guest-physical to host-physical + * If the hardware supports that we don't need to do shadow paging. + */ +static bool tdp_enabled = false; + +#undef MMU_DEBUG + +#undef AUDIT + +#ifdef AUDIT +static void kvm_mmu_audit(struct kvm_vcpu *vcpu, const char *msg); +#else +static void kvm_mmu_audit(struct kvm_vcpu *vcpu, const char *msg) {} +#endif + +#ifdef MMU_DEBUG + +#define pgprintk(x...) do { if (dbg) printk(x); } while (0) +#define rmap_printk(x...) do { if (dbg) printk(x); } while (0) + +#else + +#define pgprintk(x...) do { } while (0) +#define rmap_printk(x...) do { } while (0) + +#endif + +#if defined(MMU_DEBUG) || defined(AUDIT) +static int dbg = 1; +#endif + +#ifndef MMU_DEBUG +#define ASSERT(x) do { } while (0) +#else +#define ASSERT(x) \ + if (!(x)) { \ + printk(KERN_WARNING "assertion failed %s:%d: %s\n", \ + __FILE__, __LINE__, #x); \ + } +#endif + +#define PT64_PT_BITS 9 +#define PT64_ENT_PER_PAGE (1 << PT64_PT_BITS) +#define PT32_PT_BITS 10 +#define PT32_ENT_PER_PAGE (1 << PT32_PT_BITS) + +#define PT_WRITABLE_SHIFT 1 + +#define PT_PRESENT_MASK (1ULL << 0) +#define PT_WRITABLE_MASK (1ULL << PT_WRITABLE_SHIFT) +#define PT_USER_MASK (1ULL << 2) +#define PT_PWT_MASK (1ULL << 3) +#define PT_PCD_MASK (1ULL << 4) +#define PT_ACCESSED_MASK (1ULL << 5) +#define PT_DIRTY_MASK (1ULL << 6) +#define PT_PAGE_SIZE_MASK (1ULL << 7) +#define PT_PAT_MASK (1ULL << 7) +#define PT_GLOBAL_MASK (1ULL << 8) +#define PT64_NX_SHIFT 63 +#define PT64_NX_MASK (1ULL << PT64_NX_SHIFT) + +#define PT_PAT_SHIFT 7 +#define PT_DIR_PAT_SHIFT 12 +#define PT_DIR_PAT_MASK (1ULL << PT_DIR_PAT_SHIFT) + +#define PT32_DIR_PSE36_SIZE 4 +#define PT32_DIR_PSE36_SHIFT 13 +#define PT32_DIR_PSE36_MASK \ + (((1ULL << PT32_DIR_PSE36_SIZE) - 1) << PT32_DIR_PSE36_SHIFT) + + +#define PT_FIRST_AVAIL_BITS_SHIFT 9 +#define PT64_SECOND_AVAIL_BITS_SHIFT 52 + +#define VALID_PAGE(x) ((x) != INVALID_PAGE) + +#define PT64_LEVEL_BITS 9 + +#define PT64_LEVEL_SHIFT(level) \ + (PAGE_SHIFT + (level - 1) * PT64_LEVEL_BITS) + +#define PT64_LEVEL_MASK(level) \ + (((1ULL << PT64_LEVEL_BITS) - 1) << PT64_LEVEL_SHIFT(level)) + +#define PT64_INDEX(address, level)\ + (((address) >> PT64_LEVEL_SHIFT(level)) & ((1 << PT64_LEVEL_BITS) - 1)) + + +#define PT32_LEVEL_BITS 10 + +#define PT32_LEVEL_SHIFT(level) \ + (PAGE_SHIFT + (level - 1) * PT32_LEVEL_BITS) + +#define PT32_LEVEL_MASK(level) \ + (((1ULL << PT32_LEVEL_BITS) - 1) << PT32_LEVEL_SHIFT(level)) + +#define PT32_INDEX(address, level)\ + (((address) >> PT32_LEVEL_SHIFT(level)) & ((1 << PT32_LEVEL_BITS) - 1)) + + +#define PT64_BASE_ADDR_MASK (((1ULL << 52) - 1) & ~(u64)(PAGE_SIZE-1)) +#define PT64_DIR_BASE_ADDR_MASK \ + (PT64_BASE_ADDR_MASK & ~((1ULL << (PAGE_SHIFT + PT64_LEVEL_BITS)) - 1)) + +#define PT32_BASE_ADDR_MASK PAGE_MASK +#define PT32_DIR_BASE_ADDR_MASK \ + (PAGE_MASK & ~((1ULL << (PAGE_SHIFT + PT32_LEVEL_BITS)) - 1)) + +#define PT64_PERM_MASK (PT_PRESENT_MASK | PT_WRITABLE_MASK | PT_USER_MASK \ + | PT64_NX_MASK) + +#define PFERR_PRESENT_MASK (1U << 0) +#define PFERR_WRITE_MASK (1U << 1) +#define PFERR_USER_MASK (1U << 2) +#define PFERR_FETCH_MASK (1U << 4) + +#define PT64_ROOT_LEVEL 4 +#define PT32_ROOT_LEVEL 2 +#define PT32E_ROOT_LEVEL 3 + +#define PT_DIRECTORY_LEVEL 2 +#define PT_PAGE_TABLE_LEVEL 1 + +#define RMAP_EXT 4 + +#define ACC_EXEC_MASK 1 +#define ACC_WRITE_MASK PT_WRITABLE_MASK +#define ACC_USER_MASK PT_USER_MASK +#define ACC_ALL (ACC_EXEC_MASK | ACC_WRITE_MASK | ACC_USER_MASK) + +struct kvm_rmap_desc { + u64 *shadow_ptes[RMAP_EXT]; + struct kvm_rmap_desc *more; +}; + +static struct kmem_cache *pte_chain_cache; +static struct kmem_cache *rmap_desc_cache; +static struct kmem_cache *mmu_page_header_cache; + +static u64 __read_mostly shadow_trap_nonpresent_pte; +static u64 __read_mostly shadow_notrap_nonpresent_pte; + +void kvm_mmu_set_nonpresent_ptes(u64 trap_pte, u64 notrap_pte) +{ + shadow_trap_nonpresent_pte = trap_pte; + shadow_notrap_nonpresent_pte = notrap_pte; +} +EXPORT_SYMBOL_GPL(kvm_mmu_set_nonpresent_ptes); + +static int is_write_protection(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.cr0 & X86_CR0_WP; +} + +static int is_cpuid_PSE36(void) +{ + return 1; +} + +static int is_nx(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.shadow_efer & EFER_NX; +} + +static int is_present_pte(unsigned long pte) +{ + return pte & PT_PRESENT_MASK; +} + +static int is_shadow_present_pte(u64 pte) +{ + return pte != shadow_trap_nonpresent_pte + && pte != shadow_notrap_nonpresent_pte; +} + +static int is_large_pte(u64 pte) +{ + return pte & PT_PAGE_SIZE_MASK; +} + +static int is_writeble_pte(unsigned long pte) +{ + return pte & PT_WRITABLE_MASK; +} + +static int is_dirty_pte(unsigned long pte) +{ + return pte & PT_DIRTY_MASK; +} + +static int is_rmap_pte(u64 pte) +{ + return pte != shadow_trap_nonpresent_pte + && pte != shadow_notrap_nonpresent_pte; +} + +static gfn_t pse36_gfn_delta(u32 gpte) +{ + int shift = 32 - PT32_DIR_PSE36_SHIFT - PAGE_SHIFT; + + return (gpte & PT32_DIR_PSE36_MASK) << shift; +} + +static void set_shadow_pte(u64 *sptep, u64 spte) +{ +#ifdef CONFIG_X86_64 + set_64bit((unsigned long *)sptep, spte); +#else + set_64bit((unsigned long long *)sptep, spte); +#endif +} + +static int mmu_topup_memory_cache(struct kvm_mmu_memory_cache *cache, + struct kmem_cache *base_cache, int min) +{ + void *obj; + + if (cache->nobjs >= min) + return 0; + while (cache->nobjs < ARRAY_SIZE(cache->objects)) { + obj = kmem_cache_zalloc(base_cache, GFP_KERNEL); + if (!obj) + return -ENOMEM; + cache->objects[cache->nobjs++] = obj; + } + return 0; +} + +static void mmu_free_memory_cache(struct kvm_mmu_memory_cache *mc) +{ + while (mc->nobjs) + kfree(mc->objects[--mc->nobjs]); +} + +static int mmu_topup_memory_cache_page(struct kvm_mmu_memory_cache *cache, + int min) +{ + struct page *page; + + if (cache->nobjs >= min) + return 0; + while (cache->nobjs < ARRAY_SIZE(cache->objects)) { + page = alloc_page(GFP_KERNEL); + if (!page) + return -ENOMEM; + set_page_private(page, 0); + cache->objects[cache->nobjs++] = page_address(page); + } + return 0; +} + +static void mmu_free_memory_cache_page(struct kvm_mmu_memory_cache *mc) +{ + while (mc->nobjs) + free_page((unsigned long)mc->objects[--mc->nobjs]); +} + +static int mmu_topup_memory_caches(struct kvm_vcpu *vcpu) +{ + int r; + + r = mmu_topup_memory_cache(&vcpu->arch.mmu_pte_chain_cache, + pte_chain_cache, 4); + if (r) + goto out; + r = mmu_topup_memory_cache(&vcpu->arch.mmu_rmap_desc_cache, + rmap_desc_cache, 1); + if (r) + goto out; + r = mmu_topup_memory_cache_page(&vcpu->arch.mmu_page_cache, 8); + if (r) + goto out; + r = mmu_topup_memory_cache(&vcpu->arch.mmu_page_header_cache, + mmu_page_header_cache, 4); +out: + return r; +} + +static void mmu_free_memory_caches(struct kvm_vcpu *vcpu) +{ + mmu_free_memory_cache(&vcpu->arch.mmu_pte_chain_cache); + mmu_free_memory_cache(&vcpu->arch.mmu_rmap_desc_cache); + mmu_free_memory_cache_page(&vcpu->arch.mmu_page_cache); + mmu_free_memory_cache(&vcpu->arch.mmu_page_header_cache); +} + +static void *mmu_memory_cache_alloc(struct kvm_mmu_memory_cache *mc, + size_t size) +{ + void *p; + + BUG_ON(!mc->nobjs); + p = mc->objects[--mc->nobjs]; + memset(p, 0, size); + return p; +} + +static struct kvm_pte_chain *mmu_alloc_pte_chain(struct kvm_vcpu *vcpu) +{ + return mmu_memory_cache_alloc(&vcpu->arch.mmu_pte_chain_cache, + sizeof(struct kvm_pte_chain)); +} + +static void mmu_free_pte_chain(struct kvm_pte_chain *pc) +{ + kfree(pc); +} + +static struct kvm_rmap_desc *mmu_alloc_rmap_desc(struct kvm_vcpu *vcpu) +{ + return mmu_memory_cache_alloc(&vcpu->arch.mmu_rmap_desc_cache, + sizeof(struct kvm_rmap_desc)); +} + +static void mmu_free_rmap_desc(struct kvm_rmap_desc *rd) +{ + kfree(rd); +} + +/* + * Return the pointer to the largepage write count for a given + * gfn, handling slots that are not large page aligned. + */ +static int *slot_largepage_idx(gfn_t gfn, struct kvm_memory_slot *slot) +{ + unsigned long idx; + + idx = (gfn / KVM_PAGES_PER_HPAGE) - + (slot->base_gfn / KVM_PAGES_PER_HPAGE); + return &slot->lpage_info[idx].write_count; +} + +static void account_shadowed(struct kvm *kvm, gfn_t gfn) +{ + int *write_count; + + write_count = slot_largepage_idx(gfn, gfn_to_memslot(kvm, gfn)); + *write_count += 1; + WARN_ON(*write_count > KVM_PAGES_PER_HPAGE); +} + +static void unaccount_shadowed(struct kvm *kvm, gfn_t gfn) +{ + int *write_count; + + write_count = slot_largepage_idx(gfn, gfn_to_memslot(kvm, gfn)); + *write_count -= 1; + WARN_ON(*write_count < 0); +} + +static int has_wrprotected_page(struct kvm *kvm, gfn_t gfn) +{ + struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn); + int *largepage_idx; + + if (slot) { + largepage_idx = slot_largepage_idx(gfn, slot); + return *largepage_idx; + } + + return 1; +} + +static int host_largepage_backed(struct kvm *kvm, gfn_t gfn) +{ + struct vm_area_struct *vma; + unsigned long addr; + + addr = gfn_to_hva(kvm, gfn); + if (kvm_is_error_hva(addr)) + return 0; + + vma = find_vma(current->mm, addr); + if (vma && is_vm_hugetlb_page(vma)) + return 1; + + return 0; +} + +static int is_largepage_backed(struct kvm_vcpu *vcpu, gfn_t large_gfn) +{ + struct kvm_memory_slot *slot; + + if (has_wrprotected_page(vcpu->kvm, large_gfn)) + return 0; + + if (!host_largepage_backed(vcpu->kvm, large_gfn)) + return 0; + + slot = gfn_to_memslot(vcpu->kvm, large_gfn); + if (slot && slot->dirty_bitmap) + return 0; + + return 1; +} + +/* + * Take gfn and return the reverse mapping to it. + * Note: gfn must be unaliased before this function get called + */ + +static unsigned long *gfn_to_rmap(struct kvm *kvm, gfn_t gfn, int lpage) +{ + struct kvm_memory_slot *slot; + unsigned long idx; + + slot = gfn_to_memslot(kvm, gfn); + if (!lpage) + return &slot->rmap[gfn - slot->base_gfn]; + + idx = (gfn / KVM_PAGES_PER_HPAGE) - + (slot->base_gfn / KVM_PAGES_PER_HPAGE); + + return &slot->lpage_info[idx].rmap_pde; +} + +/* + * Reverse mapping data structures: + * + * If rmapp bit zero is zero, then rmapp point to the shadw page table entry + * that points to page_address(page). + * + * If rmapp bit zero is one, (then rmap & ~1) points to a struct kvm_rmap_desc + * containing more mappings. + */ +static void rmap_add(struct kvm_vcpu *vcpu, u64 *spte, gfn_t gfn, int lpage) +{ + struct kvm_mmu_page *sp; + struct kvm_rmap_desc *desc; + unsigned long *rmapp; + int i; + + if (!is_rmap_pte(*spte)) + return; + gfn = unalias_gfn(vcpu->kvm, gfn); + sp = page_header(__pa(spte)); + sp->gfns[spte - sp->spt] = gfn; + rmapp = gfn_to_rmap(vcpu->kvm, gfn, lpage); + if (!*rmapp) { + rmap_printk("rmap_add: %p %llx 0->1\n", spte, *spte); + *rmapp = (unsigned long)spte; + } else if (!(*rmapp & 1)) { + rmap_printk("rmap_add: %p %llx 1->many\n", spte, *spte); + desc = mmu_alloc_rmap_desc(vcpu); + desc->shadow_ptes[0] = (u64 *)*rmapp; + desc->shadow_ptes[1] = spte; + *rmapp = (unsigned long)desc | 1; + } else { + rmap_printk("rmap_add: %p %llx many->many\n", spte, *spte); + desc = (struct kvm_rmap_desc *)(*rmapp & ~1ul); + while (desc->shadow_ptes[RMAP_EXT-1] && desc->more) + desc = desc->more; + if (desc->shadow_ptes[RMAP_EXT-1]) { + desc->more = mmu_alloc_rmap_desc(vcpu); + desc = desc->more; + } + for (i = 0; desc->shadow_ptes[i]; ++i) + ; + desc->shadow_ptes[i] = spte; + } +} + +static void rmap_desc_remove_entry(unsigned long *rmapp, + struct kvm_rmap_desc *desc, + int i, + struct kvm_rmap_desc *prev_desc) +{ + int j; + + for (j = RMAP_EXT - 1; !desc->shadow_ptes[j] && j > i; --j) + ; + desc->shadow_ptes[i] = desc->shadow_ptes[j]; + desc->shadow_ptes[j] = NULL; + if (j != 0) + return; + if (!prev_desc && !desc->more) + *rmapp = (unsigned long)desc->shadow_ptes[0]; + else + if (prev_desc) + prev_desc->more = desc->more; + else + *rmapp = (unsigned long)desc->more | 1; + mmu_free_rmap_desc(desc); +} + +static void rmap_remove(struct kvm *kvm, u64 *spte) +{ + struct kvm_rmap_desc *desc; + struct kvm_rmap_desc *prev_desc; + struct kvm_mmu_page *sp; + struct page *page; + unsigned long *rmapp; + int i; + + if (!is_rmap_pte(*spte)) + return; + sp = page_header(__pa(spte)); + page = pfn_to_page((*spte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT); + mark_page_accessed(page); + if (is_writeble_pte(*spte)) + kvm_release_page_dirty(page); + else + kvm_release_page_clean(page); + rmapp = gfn_to_rmap(kvm, sp->gfns[spte - sp->spt], is_large_pte(*spte)); + if (!*rmapp) { + printk(KERN_ERR "rmap_remove: %p %llx 0->BUG\n", spte, *spte); + BUG(); + } else if (!(*rmapp & 1)) { + rmap_printk("rmap_remove: %p %llx 1->0\n", spte, *spte); + if ((u64 *)*rmapp != spte) { + printk(KERN_ERR "rmap_remove: %p %llx 1->BUG\n", + spte, *spte); + BUG(); + } + *rmapp = 0; + } else { + rmap_printk("rmap_remove: %p %llx many->many\n", spte, *spte); + desc = (struct kvm_rmap_desc *)(*rmapp & ~1ul); + prev_desc = NULL; + while (desc) { + for (i = 0; i < RMAP_EXT && desc->shadow_ptes[i]; ++i) + if (desc->shadow_ptes[i] == spte) { + rmap_desc_remove_entry(rmapp, + desc, i, + prev_desc); + return; + } + prev_desc = desc; + desc = desc->more; + } + BUG(); + } +} + +static u64 *rmap_next(struct kvm *kvm, unsigned long *rmapp, u64 *spte) +{ + struct kvm_rmap_desc *desc; + struct kvm_rmap_desc *prev_desc; + u64 *prev_spte; + int i; + + if (!*rmapp) + return NULL; + else if (!(*rmapp & 1)) { + if (!spte) + return (u64 *)*rmapp; + return NULL; + } + desc = (struct kvm_rmap_desc *)(*rmapp & ~1ul); + prev_desc = NULL; + prev_spte = NULL; + while (desc) { + for (i = 0; i < RMAP_EXT && desc->shadow_ptes[i]; ++i) { + if (prev_spte == spte) + return desc->shadow_ptes[i]; + prev_spte = desc->shadow_ptes[i]; + } + desc = desc->more; + } + return NULL; +} + +static void rmap_write_protect(struct kvm *kvm, u64 gfn) +{ + unsigned long *rmapp; + u64 *spte; + int write_protected = 0; + + gfn = unalias_gfn(kvm, gfn); + rmapp = gfn_to_rmap(kvm, gfn, 0); + + spte = rmap_next(kvm, rmapp, NULL); + while (spte) { + BUG_ON(!spte); + BUG_ON(!(*spte & PT_PRESENT_MASK)); + rmap_printk("rmap_write_protect: spte %p %llx\n", spte, *spte); + if (is_writeble_pte(*spte)) { + set_shadow_pte(spte, *spte & ~PT_WRITABLE_MASK); + write_protected = 1; + } + spte = rmap_next(kvm, rmapp, spte); + } + /* check for huge page mappings */ + rmapp = gfn_to_rmap(kvm, gfn, 1); + spte = rmap_next(kvm, rmapp, NULL); + while (spte) { + BUG_ON(!spte); + BUG_ON(!(*spte & PT_PRESENT_MASK)); + BUG_ON((*spte & (PT_PAGE_SIZE_MASK|PT_PRESENT_MASK)) != (PT_PAGE_SIZE_MASK|PT_PRESENT_MASK)); + pgprintk("rmap_write_protect(large): spte %p %llx %lld\n", spte, *spte, gfn); + if (is_writeble_pte(*spte)) { + rmap_remove(kvm, spte); + --kvm->stat.lpages; + set_shadow_pte(spte, shadow_trap_nonpresent_pte); + write_protected = 1; + } + spte = rmap_next(kvm, rmapp, spte); + } + + if (write_protected) + kvm_flush_remote_tlbs(kvm); + + account_shadowed(kvm, gfn); +} + +#ifdef MMU_DEBUG +static int is_empty_shadow_page(u64 *spt) +{ + u64 *pos; + u64 *end; + + for (pos = spt, end = pos + PAGE_SIZE / sizeof(u64); pos != end; pos++) + if (*pos != shadow_trap_nonpresent_pte) { + printk(KERN_ERR "%s: %p %llx\n", __FUNCTION__, + pos, *pos); + return 0; + } + return 1; +} +#endif + +static void kvm_mmu_free_page(struct kvm *kvm, struct kvm_mmu_page *sp) +{ + ASSERT(is_empty_shadow_page(sp->spt)); + list_del(&sp->link); + __free_page(virt_to_page(sp->spt)); + __free_page(virt_to_page(sp->gfns)); + kfree(sp); + ++kvm->arch.n_free_mmu_pages; +} + +static unsigned kvm_page_table_hashfn(gfn_t gfn) +{ + return gfn & ((1 << KVM_MMU_HASH_SHIFT) - 1); +} + +static struct kvm_mmu_page *kvm_mmu_alloc_page(struct kvm_vcpu *vcpu, + u64 *parent_pte) +{ + struct kvm_mmu_page *sp; + + sp = mmu_memory_cache_alloc(&vcpu->arch.mmu_page_header_cache, sizeof *sp); + sp->spt = mmu_memory_cache_alloc(&vcpu->arch.mmu_page_cache, PAGE_SIZE); + sp->gfns = mmu_memory_cache_alloc(&vcpu->arch.mmu_page_cache, PAGE_SIZE); + set_page_private(virt_to_page(sp->spt), (unsigned long)sp); + list_add(&sp->link, &vcpu->kvm->arch.active_mmu_pages); + ASSERT(is_empty_shadow_page(sp->spt)); + sp->slot_bitmap = 0; + sp->multimapped = 0; + sp->parent_pte = parent_pte; + --vcpu->kvm->arch.n_free_mmu_pages; + return sp; +} + +static void mmu_page_add_parent_pte(struct kvm_vcpu *vcpu, + struct kvm_mmu_page *sp, u64 *parent_pte) +{ + struct kvm_pte_chain *pte_chain; + struct hlist_node *node; + int i; + + if (!parent_pte) + return; + if (!sp->multimapped) { + u64 *old = sp->parent_pte; + + if (!old) { + sp->parent_pte = parent_pte; + return; + } + sp->multimapped = 1; + pte_chain = mmu_alloc_pte_chain(vcpu); + INIT_HLIST_HEAD(&sp->parent_ptes); + hlist_add_head(&pte_chain->link, &sp->parent_ptes); + pte_chain->parent_ptes[0] = old; + } + hlist_for_each_entry(pte_chain, node, &sp->parent_ptes, link) { + if (pte_chain->parent_ptes[NR_PTE_CHAIN_ENTRIES-1]) + continue; + for (i = 0; i < NR_PTE_CHAIN_ENTRIES; ++i) + if (!pte_chain->parent_ptes[i]) { + pte_chain->parent_ptes[i] = parent_pte; + return; + } + } + pte_chain = mmu_alloc_pte_chain(vcpu); + BUG_ON(!pte_chain); + hlist_add_head(&pte_chain->link, &sp->parent_ptes); + pte_chain->parent_ptes[0] = parent_pte; +} + +static void mmu_page_remove_parent_pte(struct kvm_mmu_page *sp, + u64 *parent_pte) +{ + struct kvm_pte_chain *pte_chain; + struct hlist_node *node; + int i; + + if (!sp->multimapped) { + BUG_ON(sp->parent_pte != parent_pte); + sp->parent_pte = NULL; + return; + } + hlist_for_each_entry(pte_chain, node, &sp->parent_ptes, link) + for (i = 0; i < NR_PTE_CHAIN_ENTRIES; ++i) { + if (!pte_chain->parent_ptes[i]) + break; + if (pte_chain->parent_ptes[i] != parent_pte) + continue; + while (i + 1 < NR_PTE_CHAIN_ENTRIES + && pte_chain->parent_ptes[i + 1]) { + pte_chain->parent_ptes[i] + = pte_chain->parent_ptes[i + 1]; + ++i; + } + pte_chain->parent_ptes[i] = NULL; + if (i == 0) { + hlist_del(&pte_chain->link); + mmu_free_pte_chain(pte_chain); + if (hlist_empty(&sp->parent_ptes)) { + sp->multimapped = 0; + sp->parent_pte = NULL; + } + } + return; + } + BUG(); +} + +static struct kvm_mmu_page *kvm_mmu_lookup_page(struct kvm *kvm, gfn_t gfn) +{ + unsigned index; + struct hlist_head *bucket; + struct kvm_mmu_page *sp; + struct hlist_node *node; + + pgprintk("%s: looking for gfn %lx\n", __FUNCTION__, gfn); + index = kvm_page_table_hashfn(gfn); + bucket = &kvm->arch.mmu_page_hash[index]; + hlist_for_each_entry(sp, node, bucket, hash_link) + if (sp->gfn == gfn && !sp->role.metaphysical + && !sp->role.invalid) { + pgprintk("%s: found role %x\n", + __FUNCTION__, sp->role.word); + return sp; + } + return NULL; +} + +static struct kvm_mmu_page *kvm_mmu_get_page(struct kvm_vcpu *vcpu, + gfn_t gfn, + gva_t gaddr, + unsigned level, + int metaphysical, + unsigned access, + u64 *parent_pte, + bool *new_page) +{ + union kvm_mmu_page_role role; + unsigned index; + unsigned quadrant; + struct hlist_head *bucket; + struct kvm_mmu_page *sp; + struct hlist_node *node; + + role.word = 0; + role.glevels = vcpu->arch.mmu.root_level; + role.level = level; + role.metaphysical = metaphysical; + role.access = access; + if (vcpu->arch.mmu.root_level <= PT32_ROOT_LEVEL) { + quadrant = gaddr >> (PAGE_SHIFT + (PT64_PT_BITS * level)); + quadrant &= (1 << ((PT32_PT_BITS - PT64_PT_BITS) * level)) - 1; + role.quadrant = quadrant; + } + pgprintk("%s: looking gfn %lx role %x\n", __FUNCTION__, + gfn, role.word); + index = kvm_page_table_hashfn(gfn); + bucket = &vcpu->kvm->arch.mmu_page_hash[index]; + hlist_for_each_entry(sp, node, bucket, hash_link) + if (sp->gfn == gfn && sp->role.word == role.word) { + mmu_page_add_parent_pte(vcpu, sp, parent_pte); + pgprintk("%s: found\n", __FUNCTION__); + return sp; + } + ++vcpu->kvm->stat.mmu_cache_miss; + sp = kvm_mmu_alloc_page(vcpu, parent_pte); + if (!sp) + return sp; + pgprintk("%s: adding gfn %lx role %x\n", __FUNCTION__, gfn, role.word); + sp->gfn = gfn; + sp->role = role; + hlist_add_head(&sp->hash_link, bucket); + if (!metaphysical) + rmap_write_protect(vcpu->kvm, gfn); + vcpu->arch.mmu.prefetch_page(vcpu, sp); + if (new_page) + *new_page = 1; + return sp; +} + +static void kvm_mmu_page_unlink_children(struct kvm *kvm, + struct kvm_mmu_page *sp) +{ + unsigned i; + u64 *pt; + u64 ent; + + pt = sp->spt; + + if (sp->role.level == PT_PAGE_TABLE_LEVEL) { + for (i = 0; i < PT64_ENT_PER_PAGE; ++i) { + if (is_shadow_present_pte(pt[i])) + rmap_remove(kvm, &pt[i]); + pt[i] = shadow_trap_nonpresent_pte; + } + kvm_flush_remote_tlbs(kvm); + return; + } + + for (i = 0; i < PT64_ENT_PER_PAGE; ++i) { + ent = pt[i]; + + if (is_shadow_present_pte(ent)) { + if (!is_large_pte(ent)) { + ent &= PT64_BASE_ADDR_MASK; + mmu_page_remove_parent_pte(page_header(ent), + &pt[i]); + } else { + --kvm->stat.lpages; + rmap_remove(kvm, &pt[i]); + } + } + pt[i] = shadow_trap_nonpresent_pte; + } + kvm_flush_remote_tlbs(kvm); +} + +static void kvm_mmu_put_page(struct kvm_mmu_page *sp, u64 *parent_pte) +{ + mmu_page_remove_parent_pte(sp, parent_pte); +} + +static void kvm_mmu_reset_last_pte_updated(struct kvm *kvm) +{ + int i; + + for (i = 0; i < KVM_MAX_VCPUS; ++i) + if (kvm->vcpus[i]) + kvm->vcpus[i]->arch.last_pte_updated = NULL; +} + +static void kvm_mmu_zap_page(struct kvm *kvm, struct kvm_mmu_page *sp) +{ + u64 *parent_pte; + + ++kvm->stat.mmu_shadow_zapped; + while (sp->multimapped || sp->parent_pte) { + if (!sp->multimapped) + parent_pte = sp->parent_pte; + else { + struct kvm_pte_chain *chain; + + chain = container_of(sp->parent_ptes.first, + struct kvm_pte_chain, link); + parent_pte = chain->parent_ptes[0]; + } + BUG_ON(!parent_pte); + kvm_mmu_put_page(sp, parent_pte); + set_shadow_pte(parent_pte, shadow_trap_nonpresent_pte); + } + kvm_mmu_page_unlink_children(kvm, sp); + if (!sp->root_count) { + if (!sp->role.metaphysical) + unaccount_shadowed(kvm, sp->gfn); + hlist_del(&sp->hash_link); + kvm_mmu_free_page(kvm, sp); + } else { + list_move(&sp->link, &kvm->arch.active_mmu_pages); + sp->role.invalid = 1; + kvm_reload_remote_mmus(kvm); + } + kvm_mmu_reset_last_pte_updated(kvm); +} + +/* + * Changing the number of mmu pages allocated to the vm + * Note: if kvm_nr_mmu_pages is too small, you will get dead lock + */ +void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages) +{ + /* + * If we set the number of mmu pages to be smaller be than the + * number of actived pages , we must to free some mmu pages before we + * change the value + */ + + if ((kvm->arch.n_alloc_mmu_pages - kvm->arch.n_free_mmu_pages) > + kvm_nr_mmu_pages) { + int n_used_mmu_pages = kvm->arch.n_alloc_mmu_pages + - kvm->arch.n_free_mmu_pages; + + while (n_used_mmu_pages > kvm_nr_mmu_pages) { + struct kvm_mmu_page *page; + + page = container_of(kvm->arch.active_mmu_pages.prev, + struct kvm_mmu_page, link); + kvm_mmu_zap_page(kvm, page); + n_used_mmu_pages--; + } + kvm->arch.n_free_mmu_pages = 0; + } + else + kvm->arch.n_free_mmu_pages += kvm_nr_mmu_pages + - kvm->arch.n_alloc_mmu_pages; + + kvm->arch.n_alloc_mmu_pages = kvm_nr_mmu_pages; +} + +static int kvm_mmu_unprotect_page(struct kvm *kvm, gfn_t gfn) +{ + unsigned index; + struct hlist_head *bucket; + struct kvm_mmu_page *sp; + struct hlist_node *node, *n; + int r; + + pgprintk("%s: looking for gfn %lx\n", __FUNCTION__, gfn); + r = 0; + index = kvm_page_table_hashfn(gfn); + bucket = &kvm->arch.mmu_page_hash[index]; + hlist_for_each_entry_safe(sp, node, n, bucket, hash_link) + if (sp->gfn == gfn && !sp->role.metaphysical) { + pgprintk("%s: gfn %lx role %x\n", __FUNCTION__, gfn, + sp->role.word); + kvm_mmu_zap_page(kvm, sp); + r = 1; + } + return r; +} + +static void mmu_unshadow(struct kvm *kvm, gfn_t gfn) +{ + struct kvm_mmu_page *sp; + + while ((sp = kvm_mmu_lookup_page(kvm, gfn)) != NULL) { + pgprintk("%s: zap %lx %x\n", __FUNCTION__, gfn, sp->role.word); + kvm_mmu_zap_page(kvm, sp); + } +} + +static void page_header_update_slot(struct kvm *kvm, void *pte, gfn_t gfn) +{ + int slot = memslot_id(kvm, gfn_to_memslot(kvm, gfn)); + struct kvm_mmu_page *sp = page_header(__pa(pte)); + + __set_bit(slot, &sp->slot_bitmap); +} + +struct page *gva_to_page(struct kvm_vcpu *vcpu, gva_t gva) +{ + struct page *page; + + gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, gva); + + if (gpa == UNMAPPED_GVA) + return NULL; + + down_read(¤t->mm->mmap_sem); + page = gfn_to_page(vcpu->kvm, gpa >> PAGE_SHIFT); + up_read(¤t->mm->mmap_sem); + + return page; +} + +static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *shadow_pte, + unsigned pt_access, unsigned pte_access, + int user_fault, int write_fault, int dirty, + int *ptwrite, int largepage, gfn_t gfn, + struct page *page) +{ + u64 spte; + int was_rmapped = is_rmap_pte(*shadow_pte); + int was_writeble = is_writeble_pte(*shadow_pte); + + /* + * If we overwrite a PTE page pointer with a 2MB PMD, unlink + * the parent of the now unreachable PTE. + */ + if (largepage) { + if (was_rmapped && !is_large_pte(*shadow_pte)) { + struct kvm_mmu_page *child; + u64 pte = *shadow_pte; + + child = page_header(pte & PT64_BASE_ADDR_MASK); + mmu_page_remove_parent_pte(child, shadow_pte); + } + was_rmapped = is_large_pte(*shadow_pte); + } + + pgprintk("%s: spte %llx access %x write_fault %d" + " user_fault %d gfn %lx\n", + __FUNCTION__, *shadow_pte, pt_access, + write_fault, user_fault, gfn); + + /* + * We don't set the accessed bit, since we sometimes want to see + * whether the guest actually used the pte (in order to detect + * demand paging). + */ + spte = PT_PRESENT_MASK | PT_DIRTY_MASK; + if (!dirty) + pte_access &= ~ACC_WRITE_MASK; + if (!(pte_access & ACC_EXEC_MASK)) + spte |= PT64_NX_MASK; + + spte |= PT_PRESENT_MASK; + if (pte_access & ACC_USER_MASK) + spte |= PT_USER_MASK; + if (largepage) + spte |= PT_PAGE_SIZE_MASK; + + spte |= page_to_phys(page); + + if ((pte_access & ACC_WRITE_MASK) + || (write_fault && !is_write_protection(vcpu) && !user_fault)) { + struct kvm_mmu_page *shadow; + + spte |= PT_WRITABLE_MASK; + if (user_fault) { + mmu_unshadow(vcpu->kvm, gfn); + goto unshadowed; + } + + shadow = kvm_mmu_lookup_page(vcpu->kvm, gfn); + if (shadow || + (largepage && has_wrprotected_page(vcpu->kvm, gfn))) { + pgprintk("%s: found shadow page for %lx, marking ro\n", + __FUNCTION__, gfn); + pte_access &= ~ACC_WRITE_MASK; + if (is_writeble_pte(spte)) { + spte &= ~PT_WRITABLE_MASK; + kvm_x86_ops->tlb_flush(vcpu); + } + if (write_fault) + *ptwrite = 1; + } + } + +unshadowed: + + if (pte_access & ACC_WRITE_MASK) + mark_page_dirty(vcpu->kvm, gfn); + + pgprintk("%s: setting spte %llx\n", __FUNCTION__, spte); + pgprintk("instantiating %s PTE (%s) at %d (%llx) addr %llx\n", + (spte&PT_PAGE_SIZE_MASK)? "2MB" : "4kB", + (spte&PT_WRITABLE_MASK)?"RW":"R", gfn, spte, shadow_pte); + set_shadow_pte(shadow_pte, spte); + if (!was_rmapped && (spte & PT_PAGE_SIZE_MASK) + && (spte & PT_PRESENT_MASK)) + ++vcpu->kvm->stat.lpages; + + page_header_update_slot(vcpu->kvm, shadow_pte, gfn); + if (!was_rmapped) { + rmap_add(vcpu, shadow_pte, gfn, largepage); + if (!is_rmap_pte(*shadow_pte)) + kvm_release_page_clean(page); + } else { + if (was_writeble) + kvm_release_page_dirty(page); + else + kvm_release_page_clean(page); + } + if (!ptwrite || !*ptwrite) + vcpu->arch.last_pte_updated = shadow_pte; +} + +static void nonpaging_new_cr3(struct kvm_vcpu *vcpu) +{ +} + +static int __direct_map(struct kvm_vcpu *vcpu, gpa_t v, int write, + int largepage, gfn_t gfn, struct page *page, + int level) +{ + hpa_t table_addr = vcpu->arch.mmu.root_hpa; + int pt_write = 0; + + for (; ; level--) { + u32 index = PT64_INDEX(v, level); + u64 *table; + + ASSERT(VALID_PAGE(table_addr)); + table = __va(table_addr); + + if (level == 1) { + mmu_set_spte(vcpu, &table[index], ACC_ALL, ACC_ALL, + 0, write, 1, &pt_write, 0, gfn, page); + return pt_write; + } + + if (largepage && level == 2) { + mmu_set_spte(vcpu, &table[index], ACC_ALL, ACC_ALL, + 0, write, 1, &pt_write, 1, gfn, page); + return pt_write; + } + + if (table[index] == shadow_trap_nonpresent_pte) { + struct kvm_mmu_page *new_table; + gfn_t pseudo_gfn; + + pseudo_gfn = (v & PT64_DIR_BASE_ADDR_MASK) + >> PAGE_SHIFT; + new_table = kvm_mmu_get_page(vcpu, pseudo_gfn, + v, level - 1, + 1, ACC_ALL, &table[index], + NULL); + if (!new_table) { + pgprintk("nonpaging_map: ENOMEM\n"); + kvm_release_page_clean(page); + return -ENOMEM; + } + + table[index] = __pa(new_table->spt) | PT_PRESENT_MASK + | PT_WRITABLE_MASK | PT_USER_MASK; + } + table_addr = table[index] & PT64_BASE_ADDR_MASK; + } +} + +static int nonpaging_map(struct kvm_vcpu *vcpu, gva_t v, int write, gfn_t gfn) +{ + int r; + int largepage = 0; + + struct page *page; + + down_read(&vcpu->kvm->slots_lock); + + down_read(¤t->mm->mmap_sem); + if (is_largepage_backed(vcpu, gfn & ~(KVM_PAGES_PER_HPAGE-1))) { + gfn &= ~(KVM_PAGES_PER_HPAGE-1); + largepage = 1; + } + + page = gfn_to_page(vcpu->kvm, gfn); + up_read(¤t->mm->mmap_sem); + + /* mmio */ + if (is_error_page(page)) { + kvm_release_page_clean(page); + up_read(&vcpu->kvm->slots_lock); + return 1; + } + + spin_lock(&vcpu->kvm->mmu_lock); + kvm_mmu_free_some_pages(vcpu); + r = __direct_map(vcpu, v, write, largepage, gfn, page, + PT32E_ROOT_LEVEL); + spin_unlock(&vcpu->kvm->mmu_lock); + + up_read(&vcpu->kvm->slots_lock); + + return r; +} + + +static void nonpaging_prefetch_page(struct kvm_vcpu *vcpu, + struct kvm_mmu_page *sp) +{ + int i; + + for (i = 0; i < PT64_ENT_PER_PAGE; ++i) + sp->spt[i] = shadow_trap_nonpresent_pte; +} + +static void mmu_free_roots(struct kvm_vcpu *vcpu) +{ + int i; + struct kvm_mmu_page *sp; + + if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) + return; + spin_lock(&vcpu->kvm->mmu_lock); +#ifdef CONFIG_X86_64 + if (vcpu->arch.mmu.shadow_root_level == PT64_ROOT_LEVEL) { + hpa_t root = vcpu->arch.mmu.root_hpa; + + sp = page_header(root); + --sp->root_count; + if (!sp->root_count && sp->role.invalid) + kvm_mmu_zap_page(vcpu->kvm, sp); + vcpu->arch.mmu.root_hpa = INVALID_PAGE; + spin_unlock(&vcpu->kvm->mmu_lock); + return; + } +#endif + for (i = 0; i < 4; ++i) { + hpa_t root = vcpu->arch.mmu.pae_root[i]; + + if (root) { + root &= PT64_BASE_ADDR_MASK; + sp = page_header(root); + --sp->root_count; + if (!sp->root_count && sp->role.invalid) + kvm_mmu_zap_page(vcpu->kvm, sp); + } + vcpu->arch.mmu.pae_root[i] = INVALID_PAGE; + } + spin_unlock(&vcpu->kvm->mmu_lock); + vcpu->arch.mmu.root_hpa = INVALID_PAGE; +} + +static void mmu_alloc_roots(struct kvm_vcpu *vcpu) +{ + int i; + gfn_t root_gfn; + struct kvm_mmu_page *sp; + int metaphysical = 0; + + root_gfn = vcpu->arch.cr3 >> PAGE_SHIFT; + +#ifdef CONFIG_X86_64 + if (vcpu->arch.mmu.shadow_root_level == PT64_ROOT_LEVEL) { + hpa_t root = vcpu->arch.mmu.root_hpa; + + ASSERT(!VALID_PAGE(root)); + if (tdp_enabled) + metaphysical = 1; + sp = kvm_mmu_get_page(vcpu, root_gfn, 0, + PT64_ROOT_LEVEL, metaphysical, + ACC_ALL, NULL, NULL); + root = __pa(sp->spt); + ++sp->root_count; + vcpu->arch.mmu.root_hpa = root; + return; + } +#endif + metaphysical = !is_paging(vcpu); + if (tdp_enabled) + metaphysical = 1; + for (i = 0; i < 4; ++i) { + hpa_t root = vcpu->arch.mmu.pae_root[i]; + + ASSERT(!VALID_PAGE(root)); + if (vcpu->arch.mmu.root_level == PT32E_ROOT_LEVEL) { + if (!is_present_pte(vcpu->arch.pdptrs[i])) { + vcpu->arch.mmu.pae_root[i] = 0; + continue; + } + root_gfn = vcpu->arch.pdptrs[i] >> PAGE_SHIFT; + } else if (vcpu->arch.mmu.root_level == 0) + root_gfn = 0; + sp = kvm_mmu_get_page(vcpu, root_gfn, i << 30, + PT32_ROOT_LEVEL, metaphysical, + ACC_ALL, NULL, NULL); + root = __pa(sp->spt); + ++sp->root_count; + vcpu->arch.mmu.pae_root[i] = root | PT_PRESENT_MASK; + } + vcpu->arch.mmu.root_hpa = __pa(vcpu->arch.mmu.pae_root); +} + +static gpa_t nonpaging_gva_to_gpa(struct kvm_vcpu *vcpu, gva_t vaddr) +{ + return vaddr; +} + +static int nonpaging_page_fault(struct kvm_vcpu *vcpu, gva_t gva, + u32 error_code) +{ + gfn_t gfn; + int r; + + pgprintk("%s: gva %lx error %x\n", __FUNCTION__, gva, error_code); + r = mmu_topup_memory_caches(vcpu); + if (r) + return r; + + ASSERT(vcpu); + ASSERT(VALID_PAGE(vcpu->arch.mmu.root_hpa)); + + gfn = gva >> PAGE_SHIFT; + + return nonpaging_map(vcpu, gva & PAGE_MASK, + error_code & PFERR_WRITE_MASK, gfn); +} + +static int tdp_page_fault(struct kvm_vcpu *vcpu, gva_t gpa, + u32 error_code) +{ + struct page *page; + int r; + int largepage = 0; + gfn_t gfn = gpa >> PAGE_SHIFT; + + ASSERT(vcpu); + ASSERT(VALID_PAGE(vcpu->arch.mmu.root_hpa)); + + r = mmu_topup_memory_caches(vcpu); + if (r) + return r; + + down_read(¤t->mm->mmap_sem); + if (is_largepage_backed(vcpu, gfn & ~(KVM_PAGES_PER_HPAGE-1))) { + gfn &= ~(KVM_PAGES_PER_HPAGE-1); + largepage = 1; + } + page = gfn_to_page(vcpu->kvm, gfn); + if (is_error_page(page)) { + kvm_release_page_clean(page); + up_read(¤t->mm->mmap_sem); + return 1; + } + spin_lock(&vcpu->kvm->mmu_lock); + kvm_mmu_free_some_pages(vcpu); + r = __direct_map(vcpu, gpa, error_code & PFERR_WRITE_MASK, + largepage, gfn, page, TDP_ROOT_LEVEL); + spin_unlock(&vcpu->kvm->mmu_lock); + up_read(¤t->mm->mmap_sem); + + return r; +} + +static void nonpaging_free(struct kvm_vcpu *vcpu) +{ + mmu_free_roots(vcpu); +} + +static int nonpaging_init_context(struct kvm_vcpu *vcpu) +{ + struct kvm_mmu *context = &vcpu->arch.mmu; + + context->new_cr3 = nonpaging_new_cr3; + context->page_fault = nonpaging_page_fault; + context->gva_to_gpa = nonpaging_gva_to_gpa; + context->free = nonpaging_free; + context->prefetch_page = nonpaging_prefetch_page; + context->root_level = 0; + context->shadow_root_level = PT32E_ROOT_LEVEL; + context->root_hpa = INVALID_PAGE; + return 0; +} + +void kvm_mmu_flush_tlb(struct kvm_vcpu *vcpu) +{ + ++vcpu->stat.tlb_flush; + kvm_x86_ops->tlb_flush(vcpu); +} + +static void paging_new_cr3(struct kvm_vcpu *vcpu) +{ + pgprintk("%s: cr3 %lx\n", __FUNCTION__, vcpu->arch.cr3); + mmu_free_roots(vcpu); +} + +static void inject_page_fault(struct kvm_vcpu *vcpu, + u64 addr, + u32 err_code) +{ + kvm_inject_page_fault(vcpu, addr, err_code); +} + +static void paging_free(struct kvm_vcpu *vcpu) +{ + nonpaging_free(vcpu); +} + +#define PTTYPE 64 +#include "paging_tmpl.h" +#undef PTTYPE + +#define PTTYPE 32 +#include "paging_tmpl.h" +#undef PTTYPE + +static int paging64_init_context_common(struct kvm_vcpu *vcpu, int level) +{ + struct kvm_mmu *context = &vcpu->arch.mmu; + + ASSERT(is_pae(vcpu)); + context->new_cr3 = paging_new_cr3; + context->page_fault = paging64_page_fault; + context->gva_to_gpa = paging64_gva_to_gpa; + context->prefetch_page = paging64_prefetch_page; + context->free = paging_free; + context->root_level = level; + context->shadow_root_level = level; + context->root_hpa = INVALID_PAGE; + return 0; +} + +static int paging64_init_context(struct kvm_vcpu *vcpu) +{ + return paging64_init_context_common(vcpu, PT64_ROOT_LEVEL); +} + +static int paging32_init_context(struct kvm_vcpu *vcpu) +{ + struct kvm_mmu *context = &vcpu->arch.mmu; + + context->new_cr3 = paging_new_cr3; + context->page_fault = paging32_page_fault; + context->gva_to_gpa = paging32_gva_to_gpa; + context->free = paging_free; + context->prefetch_page = paging32_prefetch_page; + context->root_level = PT32_ROOT_LEVEL; + context->shadow_root_level = PT32E_ROOT_LEVEL; + context->root_hpa = INVALID_PAGE; + return 0; +} + +static int paging32E_init_context(struct kvm_vcpu *vcpu) +{ + return paging64_init_context_common(vcpu, PT32E_ROOT_LEVEL); +} + +static int init_kvm_tdp_mmu(struct kvm_vcpu *vcpu) +{ + struct kvm_mmu *context = &vcpu->arch.mmu; + + context->new_cr3 = nonpaging_new_cr3; + context->page_fault = tdp_page_fault; + context->free = nonpaging_free; + context->prefetch_page = nonpaging_prefetch_page; + context->shadow_root_level = TDP_ROOT_LEVEL; + context->root_hpa = INVALID_PAGE; + + if (!is_paging(vcpu)) { + context->gva_to_gpa = nonpaging_gva_to_gpa; + context->root_level = 0; + } else if (is_long_mode(vcpu)) { + context->gva_to_gpa = paging64_gva_to_gpa; + context->root_level = PT64_ROOT_LEVEL; + } else if (is_pae(vcpu)) { + context->gva_to_gpa = paging64_gva_to_gpa; + context->root_level = PT32E_ROOT_LEVEL; + } else { + context->gva_to_gpa = paging32_gva_to_gpa; + context->root_level = PT32_ROOT_LEVEL; + } + + return 0; +} + +static int init_kvm_softmmu(struct kvm_vcpu *vcpu) +{ + ASSERT(vcpu); + ASSERT(!VALID_PAGE(vcpu->arch.mmu.root_hpa)); + + if (!is_paging(vcpu)) + return nonpaging_init_context(vcpu); + else if (is_long_mode(vcpu)) + return paging64_init_context(vcpu); + else if (is_pae(vcpu)) + return paging32E_init_context(vcpu); + else + return paging32_init_context(vcpu); +} + +static int init_kvm_mmu(struct kvm_vcpu *vcpu) +{ + if (tdp_enabled) + return init_kvm_tdp_mmu(vcpu); + else + return init_kvm_softmmu(vcpu); +} + +static void destroy_kvm_mmu(struct kvm_vcpu *vcpu) +{ + ASSERT(vcpu); + if (VALID_PAGE(vcpu->arch.mmu.root_hpa)) { + vcpu->arch.mmu.free(vcpu); + vcpu->arch.mmu.root_hpa = INVALID_PAGE; + } +} + +int kvm_mmu_reset_context(struct kvm_vcpu *vcpu) +{ + destroy_kvm_mmu(vcpu); + return init_kvm_mmu(vcpu); +} +EXPORT_SYMBOL_GPL(kvm_mmu_reset_context); + +int kvm_mmu_load(struct kvm_vcpu *vcpu) +{ + int r; + + r = mmu_topup_memory_caches(vcpu); + if (r) + goto out; + spin_lock(&vcpu->kvm->mmu_lock); + kvm_mmu_free_some_pages(vcpu); + mmu_alloc_roots(vcpu); + spin_unlock(&vcpu->kvm->mmu_lock); + kvm_x86_ops->set_cr3(vcpu, vcpu->arch.mmu.root_hpa); + kvm_mmu_flush_tlb(vcpu); +out: + return r; +} +EXPORT_SYMBOL_GPL(kvm_mmu_load); + +void kvm_mmu_unload(struct kvm_vcpu *vcpu) +{ + mmu_free_roots(vcpu); +} + +static void mmu_pte_write_zap_pte(struct kvm_vcpu *vcpu, + struct kvm_mmu_page *sp, + u64 *spte) +{ + u64 pte; + struct kvm_mmu_page *child; + + pte = *spte; + if (is_shadow_present_pte(pte)) { + if (sp->role.level == PT_PAGE_TABLE_LEVEL || + is_large_pte(pte)) + rmap_remove(vcpu->kvm, spte); + else { + child = page_header(pte & PT64_BASE_ADDR_MASK); + mmu_page_remove_parent_pte(child, spte); + } + } + set_shadow_pte(spte, shadow_trap_nonpresent_pte); + if (is_large_pte(pte)) + --vcpu->kvm->stat.lpages; +} + +static void mmu_pte_write_new_pte(struct kvm_vcpu *vcpu, + struct kvm_mmu_page *sp, + u64 *spte, + const void *new) +{ + if ((sp->role.level != PT_PAGE_TABLE_LEVEL) + && !vcpu->arch.update_pte.largepage) { + ++vcpu->kvm->stat.mmu_pde_zapped; + return; + } + + ++vcpu->kvm->stat.mmu_pte_updated; + if (sp->role.glevels == PT32_ROOT_LEVEL) + paging32_update_pte(vcpu, sp, spte, new); + else + paging64_update_pte(vcpu, sp, spte, new); +} + +static bool need_remote_flush(u64 old, u64 new) +{ + if (!is_shadow_present_pte(old)) + return false; + if (!is_shadow_present_pte(new)) + return true; + if ((old ^ new) & PT64_BASE_ADDR_MASK) + return true; + old ^= PT64_NX_MASK; + new ^= PT64_NX_MASK; + return (old & ~new & PT64_PERM_MASK) != 0; +} + +static void mmu_pte_write_flush_tlb(struct kvm_vcpu *vcpu, u64 old, u64 new) +{ + if (need_remote_flush(old, new)) + kvm_flush_remote_tlbs(vcpu->kvm); + else + kvm_mmu_flush_tlb(vcpu); +} + +static bool last_updated_pte_accessed(struct kvm_vcpu *vcpu) +{ + u64 *spte = vcpu->arch.last_pte_updated; + + return !!(spte && (*spte & PT_ACCESSED_MASK)); +} + +static void mmu_guess_page_from_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa, + const u8 *new, int bytes) +{ + gfn_t gfn; + int r; + u64 gpte = 0; + struct page *page; + + vcpu->arch.update_pte.largepage = 0; + + if (bytes != 4 && bytes != 8) + return; + + /* + * Assume that the pte write on a page table of the same type + * as the current vcpu paging mode. This is nearly always true + * (might be false while changing modes). Note it is verified later + * by update_pte(). + */ + if (is_pae(vcpu)) { + /* Handle a 32-bit guest writing two halves of a 64-bit gpte */ + if ((bytes == 4) && (gpa % 4 == 0)) { + r = kvm_read_guest(vcpu->kvm, gpa & ~(u64)7, &gpte, 8); + if (r) + return; + memcpy((void *)&gpte + (gpa % 8), new, 4); + } else if ((bytes == 8) && (gpa % 8 == 0)) { + memcpy((void *)&gpte, new, 8); + } + } else { + if ((bytes == 4) && (gpa % 4 == 0)) + memcpy((void *)&gpte, new, 4); + } + if (!is_present_pte(gpte)) + return; + gfn = (gpte & PT64_BASE_ADDR_MASK) >> PAGE_SHIFT; + + down_read(¤t->mm->mmap_sem); + if (is_large_pte(gpte) && is_largepage_backed(vcpu, gfn)) { + gfn &= ~(KVM_PAGES_PER_HPAGE-1); + vcpu->arch.update_pte.largepage = 1; + } + page = gfn_to_page(vcpu->kvm, gfn); + up_read(¤t->mm->mmap_sem); + + if (is_error_page(page)) { + kvm_release_page_clean(page); + return; + } + vcpu->arch.update_pte.gfn = gfn; + vcpu->arch.update_pte.page = page; +} + +void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa, + const u8 *new, int bytes) +{ + gfn_t gfn = gpa >> PAGE_SHIFT; + struct kvm_mmu_page *sp; + struct hlist_node *node, *n; + struct hlist_head *bucket; + unsigned index; + u64 entry, gentry; + u64 *spte; + unsigned offset = offset_in_page(gpa); + unsigned pte_size; + unsigned page_offset; + unsigned misaligned; + unsigned quadrant; + int level; + int flooded = 0; + int npte; + int r; + + pgprintk("%s: gpa %llx bytes %d\n", __FUNCTION__, gpa, bytes); + mmu_guess_page_from_pte_write(vcpu, gpa, new, bytes); + spin_lock(&vcpu->kvm->mmu_lock); + kvm_mmu_free_some_pages(vcpu); + ++vcpu->kvm->stat.mmu_pte_write; + kvm_mmu_audit(vcpu, "pre pte write"); + if (gfn == vcpu->arch.last_pt_write_gfn + && !last_updated_pte_accessed(vcpu)) { + ++vcpu->arch.last_pt_write_count; + if (vcpu->arch.last_pt_write_count >= 3) + flooded = 1; + } else { + vcpu->arch.last_pt_write_gfn = gfn; + vcpu->arch.last_pt_write_count = 1; + vcpu->arch.last_pte_updated = NULL; + } + index = kvm_page_table_hashfn(gfn); + bucket = &vcpu->kvm->arch.mmu_page_hash[index]; + hlist_for_each_entry_safe(sp, node, n, bucket, hash_link) { + if (sp->gfn != gfn || sp->role.metaphysical) + continue; + pte_size = sp->role.glevels == PT32_ROOT_LEVEL ? 4 : 8; + misaligned = (offset ^ (offset + bytes - 1)) & ~(pte_size - 1); + misaligned |= bytes < 4; + if (misaligned || flooded) { + /* + * Misaligned accesses are too much trouble to fix + * up; also, they usually indicate a page is not used + * as a page table. + * + * If we're seeing too many writes to a page, + * it may no longer be a page table, or we may be + * forking, in which case it is better to unmap the + * page. + */ + pgprintk("misaligned: gpa %llx bytes %d role %x\n", + gpa, bytes, sp->role.word); + kvm_mmu_zap_page(vcpu->kvm, sp); + ++vcpu->kvm->stat.mmu_flooded; + continue; + } + page_offset = offset; + level = sp->role.level; + npte = 1; + if (sp->role.glevels == PT32_ROOT_LEVEL) { + page_offset <<= 1; /* 32->64 */ + /* + * A 32-bit pde maps 4MB while the shadow pdes map + * only 2MB. So we need to double the offset again + * and zap two pdes instead of one. + */ + if (level == PT32_ROOT_LEVEL) { + page_offset &= ~7; /* kill rounding error */ + page_offset <<= 1; + npte = 2; + } + quadrant = page_offset >> PAGE_SHIFT; + page_offset &= ~PAGE_MASK; + if (quadrant != sp->role.quadrant) + continue; + } + spte = &sp->spt[page_offset / sizeof(*spte)]; + if ((gpa & (pte_size - 1)) || (bytes < pte_size)) { + gentry = 0; + r = kvm_read_guest_atomic(vcpu->kvm, + gpa & ~(u64)(pte_size - 1), + &gentry, pte_size); + new = (const void *)&gentry; + if (r < 0) + new = NULL; + } + while (npte--) { + entry = *spte; + mmu_pte_write_zap_pte(vcpu, sp, spte); + if (new) + mmu_pte_write_new_pte(vcpu, sp, spte, new); + mmu_pte_write_flush_tlb(vcpu, entry, *spte); + ++spte; + } + } + kvm_mmu_audit(vcpu, "post pte write"); + spin_unlock(&vcpu->kvm->mmu_lock); + if (vcpu->arch.update_pte.page) { + kvm_release_page_clean(vcpu->arch.update_pte.page); + vcpu->arch.update_pte.page = NULL; + } +} + +int kvm_mmu_unprotect_page_virt(struct kvm_vcpu *vcpu, gva_t gva) +{ + gpa_t gpa; + int r; + + down_read(&vcpu->kvm->slots_lock); + gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, gva); + up_read(&vcpu->kvm->slots_lock); + + spin_lock(&vcpu->kvm->mmu_lock); + r = kvm_mmu_unprotect_page(vcpu->kvm, gpa >> PAGE_SHIFT); + spin_unlock(&vcpu->kvm->mmu_lock); + return r; +} + +void __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu) +{ + while (vcpu->kvm->arch.n_free_mmu_pages < KVM_REFILL_PAGES) { + struct kvm_mmu_page *sp; + + sp = container_of(vcpu->kvm->arch.active_mmu_pages.prev, + struct kvm_mmu_page, link); + kvm_mmu_zap_page(vcpu->kvm, sp); + ++vcpu->kvm->stat.mmu_recycled; + } +} + +int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t cr2, u32 error_code) +{ + int r; + enum emulation_result er; + + r = vcpu->arch.mmu.page_fault(vcpu, cr2, error_code); + if (r < 0) + goto out; + + if (!r) { + r = 1; + goto out; + } + + r = mmu_topup_memory_caches(vcpu); + if (r) + goto out; + + er = emulate_instruction(vcpu, vcpu->run, cr2, error_code, 0); + + switch (er) { + case EMULATE_DONE: + return 1; + case EMULATE_DO_MMIO: + ++vcpu->stat.mmio_exits; + return 0; + case EMULATE_FAIL: + kvm_report_emulation_failure(vcpu, "pagetable"); + return 1; + default: + BUG(); + } +out: + return r; +} +EXPORT_SYMBOL_GPL(kvm_mmu_page_fault); + +void kvm_enable_tdp(void) +{ + tdp_enabled = true; +} +EXPORT_SYMBOL_GPL(kvm_enable_tdp); + +static void free_mmu_pages(struct kvm_vcpu *vcpu) +{ + struct kvm_mmu_page *sp; + + while (!list_empty(&vcpu->kvm->arch.active_mmu_pages)) { + sp = container_of(vcpu->kvm->arch.active_mmu_pages.next, + struct kvm_mmu_page, link); + kvm_mmu_zap_page(vcpu->kvm, sp); + } + free_page((unsigned long)vcpu->arch.mmu.pae_root); +} + +static int alloc_mmu_pages(struct kvm_vcpu *vcpu) +{ + struct page *page; + int i; + + ASSERT(vcpu); + + if (vcpu->kvm->arch.n_requested_mmu_pages) + vcpu->kvm->arch.n_free_mmu_pages = + vcpu->kvm->arch.n_requested_mmu_pages; + else + vcpu->kvm->arch.n_free_mmu_pages = + vcpu->kvm->arch.n_alloc_mmu_pages; + /* + * When emulating 32-bit mode, cr3 is only 32 bits even on x86_64. + * Therefore we need to allocate shadow page tables in the first + * 4GB of memory, which happens to fit the DMA32 zone. + */ + page = alloc_page(GFP_KERNEL | __GFP_DMA32); + if (!page) + goto error_1; + vcpu->arch.mmu.pae_root = page_address(page); + for (i = 0; i < 4; ++i) + vcpu->arch.mmu.pae_root[i] = INVALID_PAGE; + + return 0; + +error_1: + free_mmu_pages(vcpu); + return -ENOMEM; +} + +int kvm_mmu_create(struct kvm_vcpu *vcpu) +{ + ASSERT(vcpu); + ASSERT(!VALID_PAGE(vcpu->arch.mmu.root_hpa)); + + return alloc_mmu_pages(vcpu); +} + +int kvm_mmu_setup(struct kvm_vcpu *vcpu) +{ + ASSERT(vcpu); + ASSERT(!VALID_PAGE(vcpu->arch.mmu.root_hpa)); + + return init_kvm_mmu(vcpu); +} + +void kvm_mmu_destroy(struct kvm_vcpu *vcpu) +{ + ASSERT(vcpu); + + destroy_kvm_mmu(vcpu); + free_mmu_pages(vcpu); + mmu_free_memory_caches(vcpu); +} + +void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot) +{ + struct kvm_mmu_page *sp; + + spin_lock(&kvm->mmu_lock); + list_for_each_entry(sp, &kvm->arch.active_mmu_pages, link) { + int i; + u64 *pt; + + if (!test_bit(slot, &sp->slot_bitmap)) + continue; + + pt = sp->spt; + for (i = 0; i < PT64_ENT_PER_PAGE; ++i) + /* avoid RMW */ + if (pt[i] & PT_WRITABLE_MASK) + pt[i] &= ~PT_WRITABLE_MASK; + } + spin_unlock(&kvm->mmu_lock); +} + +void kvm_mmu_zap_all(struct kvm *kvm) +{ + struct kvm_mmu_page *sp, *node; + + spin_lock(&kvm->mmu_lock); + list_for_each_entry_safe(sp, node, &kvm->arch.active_mmu_pages, link) + kvm_mmu_zap_page(kvm, sp); + spin_unlock(&kvm->mmu_lock); + + kvm_flush_remote_tlbs(kvm); +} + +void kvm_mmu_module_exit(void) +{ + if (pte_chain_cache) + kmem_cache_destroy(pte_chain_cache); + if (rmap_desc_cache) + kmem_cache_destroy(rmap_desc_cache); + if (mmu_page_header_cache) + kmem_cache_destroy(mmu_page_header_cache); +} + +int kvm_mmu_module_init(void) +{ + pte_chain_cache = kmem_cache_create("kvm_pte_chain", + sizeof(struct kvm_pte_chain), + 0, 0, NULL); + if (!pte_chain_cache) + goto nomem; + rmap_desc_cache = kmem_cache_create("kvm_rmap_desc", + sizeof(struct kvm_rmap_desc), + 0, 0, NULL); + if (!rmap_desc_cache) + goto nomem; + + mmu_page_header_cache = kmem_cache_create("kvm_mmu_page_header", + sizeof(struct kvm_mmu_page), + 0, 0, NULL); + if (!mmu_page_header_cache) + goto nomem; + + return 0; + +nomem: + kvm_mmu_module_exit(); + return -ENOMEM; +} + +/* + * Caculate mmu pages needed for kvm. + */ +unsigned int kvm_mmu_calculate_mmu_pages(struct kvm *kvm) +{ + int i; + unsigned int nr_mmu_pages; + unsigned int nr_pages = 0; + + for (i = 0; i < kvm->nmemslots; i++) + nr_pages += kvm->memslots[i].npages; + + nr_mmu_pages = nr_pages * KVM_PERMILLE_MMU_PAGES / 1000; + nr_mmu_pages = max(nr_mmu_pages, + (unsigned int) KVM_MIN_ALLOC_MMU_PAGES); + + return nr_mmu_pages; +} + +#ifdef AUDIT + +static const char *audit_msg; + +static gva_t canonicalize(gva_t gva) +{ +#ifdef CONFIG_X86_64 + gva = (long long)(gva << 16) >> 16; +#endif + return gva; +} + +static void audit_mappings_page(struct kvm_vcpu *vcpu, u64 page_pte, + gva_t va, int level) +{ + u64 *pt = __va(page_pte & PT64_BASE_ADDR_MASK); + int i; + gva_t va_delta = 1ul << (PAGE_SHIFT + 9 * (level - 1)); + + for (i = 0; i < PT64_ENT_PER_PAGE; ++i, va += va_delta) { + u64 ent = pt[i]; + + if (ent == shadow_trap_nonpresent_pte) + continue; + + va = canonicalize(va); + if (level > 1) { + if (ent == shadow_notrap_nonpresent_pte) + printk(KERN_ERR "audit: (%s) nontrapping pte" + " in nonleaf level: levels %d gva %lx" + " level %d pte %llx\n", audit_msg, + vcpu->arch.mmu.root_level, va, level, ent); + + audit_mappings_page(vcpu, ent, va, level - 1); + } else { + gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, va); + struct page *page = gpa_to_page(vcpu, gpa); + hpa_t hpa = page_to_phys(page); + + if (is_shadow_present_pte(ent) + && (ent & PT64_BASE_ADDR_MASK) != hpa) + printk(KERN_ERR "xx audit error: (%s) levels %d" + " gva %lx gpa %llx hpa %llx ent %llx %d\n", + audit_msg, vcpu->arch.mmu.root_level, + va, gpa, hpa, ent, + is_shadow_present_pte(ent)); + else if (ent == shadow_notrap_nonpresent_pte + && !is_error_hpa(hpa)) + printk(KERN_ERR "audit: (%s) notrap shadow," + " valid guest gva %lx\n", audit_msg, va); + kvm_release_page_clean(page); + + } + } +} + +static void audit_mappings(struct kvm_vcpu *vcpu) +{ + unsigned i; + + if (vcpu->arch.mmu.root_level == 4) + audit_mappings_page(vcpu, vcpu->arch.mmu.root_hpa, 0, 4); + else + for (i = 0; i < 4; ++i) + if (vcpu->arch.mmu.pae_root[i] & PT_PRESENT_MASK) + audit_mappings_page(vcpu, + vcpu->arch.mmu.pae_root[i], + i << 30, + 2); +} + +static int count_rmaps(struct kvm_vcpu *vcpu) +{ + int nmaps = 0; + int i, j, k; + + for (i = 0; i < KVM_MEMORY_SLOTS; ++i) { + struct kvm_memory_slot *m = &vcpu->kvm->memslots[i]; + struct kvm_rmap_desc *d; + + for (j = 0; j < m->npages; ++j) { + unsigned long *rmapp = &m->rmap[j]; + + if (!*rmapp) + continue; + if (!(*rmapp & 1)) { + ++nmaps; + continue; + } + d = (struct kvm_rmap_desc *)(*rmapp & ~1ul); + while (d) { + for (k = 0; k < RMAP_EXT; ++k) + if (d->shadow_ptes[k]) + ++nmaps; + else + break; + d = d->more; + } + } + } + return nmaps; +} + +static int count_writable_mappings(struct kvm_vcpu *vcpu) +{ + int nmaps = 0; + struct kvm_mmu_page *sp; + int i; + + list_for_each_entry(sp, &vcpu->kvm->arch.active_mmu_pages, link) { + u64 *pt = sp->spt; + + if (sp->role.level != PT_PAGE_TABLE_LEVEL) + continue; + + for (i = 0; i < PT64_ENT_PER_PAGE; ++i) { + u64 ent = pt[i]; + + if (!(ent & PT_PRESENT_MASK)) + continue; + if (!(ent & PT_WRITABLE_MASK)) + continue; + ++nmaps; + } + } + return nmaps; +} + +static void audit_rmap(struct kvm_vcpu *vcpu) +{ + int n_rmap = count_rmaps(vcpu); + int n_actual = count_writable_mappings(vcpu); + + if (n_rmap != n_actual) + printk(KERN_ERR "%s: (%s) rmap %d actual %d\n", + __FUNCTION__, audit_msg, n_rmap, n_actual); +} + +static void audit_write_protection(struct kvm_vcpu *vcpu) +{ + struct kvm_mmu_page *sp; + struct kvm_memory_slot *slot; + unsigned long *rmapp; + gfn_t gfn; + + list_for_each_entry(sp, &vcpu->kvm->arch.active_mmu_pages, link) { + if (sp->role.metaphysical) + continue; + + slot = gfn_to_memslot(vcpu->kvm, sp->gfn); + gfn = unalias_gfn(vcpu->kvm, sp->gfn); + rmapp = &slot->rmap[gfn - slot->base_gfn]; + if (*rmapp) + printk(KERN_ERR "%s: (%s) shadow page has writable" + " mappings: gfn %lx role %x\n", + __FUNCTION__, audit_msg, sp->gfn, + sp->role.word); + } +} + +static void kvm_mmu_audit(struct kvm_vcpu *vcpu, const char *msg) +{ + int olddbg = dbg; + + dbg = 0; + audit_msg = msg; + audit_rmap(vcpu); + audit_write_protection(vcpu); + audit_mappings(vcpu); + dbg = olddbg; +} + +#endif --- linux-2.6.24.orig/arch/x86/kvm/Makefile +++ linux-2.6.24/arch/x86/kvm/Makefile @@ -0,0 +1,14 @@ +# +# Makefile for Kernel-based Virtual Machine module +# + +common-objs = $(addprefix ../../../virt/kvm/, kvm_main.o ioapic.o) + +EXTRA_CFLAGS += -Ivirt/kvm -Iarch/x86/kvm + +kvm-objs := $(common-objs) x86.o mmu.o x86_emulate.o i8259.o irq.o lapic.o +obj-$(CONFIG_KVM) += kvm.o +kvm-intel-objs = vmx.o +obj-$(CONFIG_KVM_INTEL) += kvm-intel.o +kvm-amd-objs = svm.o +obj-$(CONFIG_KVM_AMD) += kvm-amd.o --- linux-2.6.24.orig/arch/x86/kvm/mmu.h +++ linux-2.6.24/arch/x86/kvm/mmu.h @@ -0,0 +1,50 @@ +#ifndef __KVM_X86_MMU_H +#define __KVM_X86_MMU_H + +#include + +#ifdef CONFIG_X86_64 +#define TDP_ROOT_LEVEL PT64_ROOT_LEVEL +#else +#define TDP_ROOT_LEVEL PT32E_ROOT_LEVEL +#endif + +static inline void kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu) +{ + if (unlikely(vcpu->kvm->arch.n_free_mmu_pages < KVM_MIN_FREE_MMU_PAGES)) + __kvm_mmu_free_some_pages(vcpu); +} + +static inline int kvm_mmu_reload(struct kvm_vcpu *vcpu) +{ + if (likely(vcpu->arch.mmu.root_hpa != INVALID_PAGE)) + return 0; + + return kvm_mmu_load(vcpu); +} + +static inline int is_long_mode(struct kvm_vcpu *vcpu) +{ +#ifdef CONFIG_X86_64 + return vcpu->arch.shadow_efer & EFER_LME; +#else + return 0; +#endif +} + +static inline int is_pae(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.cr4 & X86_CR4_PAE; +} + +static inline int is_pse(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.cr4 & X86_CR4_PSE; +} + +static inline int is_paging(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.cr0 & X86_CR0_PG; +} + +#endif --- linux-2.6.24.orig/arch/x86/kvm/irq.c +++ linux-2.6.24/arch/x86/kvm/irq.c @@ -0,0 +1,78 @@ +/* + * irq.c: API for in kernel interrupt controller + * Copyright (c) 2007, Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., 59 Temple + * Place - Suite 330, Boston, MA 02111-1307 USA. + * Authors: + * Yaozu (Eddie) Dong + * + */ + +#include +#include + +#include "irq.h" + +/* + * check if there is pending interrupt without + * intack. + */ +int kvm_cpu_has_interrupt(struct kvm_vcpu *v) +{ + struct kvm_pic *s; + + if (kvm_apic_has_interrupt(v) == -1) { /* LAPIC */ + if (kvm_apic_accept_pic_intr(v)) { + s = pic_irqchip(v->kvm); /* PIC */ + return s->output; + } else + return 0; + } + return 1; +} +EXPORT_SYMBOL_GPL(kvm_cpu_has_interrupt); + +/* + * Read pending interrupt vector and intack. + */ +int kvm_cpu_get_interrupt(struct kvm_vcpu *v) +{ + struct kvm_pic *s; + int vector; + + vector = kvm_get_apic_interrupt(v); /* APIC */ + if (vector == -1) { + if (kvm_apic_accept_pic_intr(v)) { + s = pic_irqchip(v->kvm); + s->output = 0; /* PIC */ + vector = kvm_pic_read_irq(s); + } + } + return vector; +} +EXPORT_SYMBOL_GPL(kvm_cpu_get_interrupt); + +void kvm_inject_pending_timer_irqs(struct kvm_vcpu *vcpu) +{ + kvm_inject_apic_timer_irqs(vcpu); + /* TODO: PIT, RTC etc. */ +} +EXPORT_SYMBOL_GPL(kvm_inject_pending_timer_irqs); + +void kvm_timer_intr_post(struct kvm_vcpu *vcpu, int vec) +{ + kvm_apic_timer_intr_post(vcpu, vec); + /* TODO: PIT, RTC etc. */ +} +EXPORT_SYMBOL_GPL(kvm_timer_intr_post); --- linux-2.6.24.orig/arch/x86/kvm/x86.c +++ linux-2.6.24/arch/x86/kvm/x86.c @@ -0,0 +1,3448 @@ +/* + * Kernel-based Virtual Machine driver for Linux + * + * derived from drivers/kvm/kvm_main.c + * + * Copyright (C) 2006 Qumranet, Inc. + * + * Authors: + * Avi Kivity + * Yaniv Kamay + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#include +#include "segment_descriptor.h" +#include "irq.h" +#include "mmu.h" + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define MAX_IO_MSRS 256 +#define CR0_RESERVED_BITS \ + (~(unsigned long)(X86_CR0_PE | X86_CR0_MP | X86_CR0_EM | X86_CR0_TS \ + | X86_CR0_ET | X86_CR0_NE | X86_CR0_WP | X86_CR0_AM \ + | X86_CR0_NW | X86_CR0_CD | X86_CR0_PG)) +#define CR4_RESERVED_BITS \ + (~(unsigned long)(X86_CR4_VME | X86_CR4_PVI | X86_CR4_TSD | X86_CR4_DE\ + | X86_CR4_PSE | X86_CR4_PAE | X86_CR4_MCE \ + | X86_CR4_PGE | X86_CR4_PCE | X86_CR4_OSFXSR \ + | X86_CR4_OSXMMEXCPT | X86_CR4_VMXE)) + +#define CR8_RESERVED_BITS (~(unsigned long)X86_CR8_TPR) +/* EFER defaults: + * - enable syscall per default because its emulated by KVM + * - enable LME and LMA per default on 64 bit KVM + */ +#ifdef CONFIG_X86_64 +static u64 __read_mostly efer_reserved_bits = 0xfffffffffffffafeULL; +#else +static u64 __read_mostly efer_reserved_bits = 0xfffffffffffffffeULL; +#endif + +#define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM +#define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU + +static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries); + +struct kvm_x86_ops *kvm_x86_ops; + +struct kvm_stats_debugfs_item debugfs_entries[] = { + { "pf_fixed", VCPU_STAT(pf_fixed) }, + { "pf_guest", VCPU_STAT(pf_guest) }, + { "tlb_flush", VCPU_STAT(tlb_flush) }, + { "invlpg", VCPU_STAT(invlpg) }, + { "exits", VCPU_STAT(exits) }, + { "io_exits", VCPU_STAT(io_exits) }, + { "mmio_exits", VCPU_STAT(mmio_exits) }, + { "signal_exits", VCPU_STAT(signal_exits) }, + { "irq_window", VCPU_STAT(irq_window_exits) }, + { "halt_exits", VCPU_STAT(halt_exits) }, + { "halt_wakeup", VCPU_STAT(halt_wakeup) }, + { "hypercalls", VCPU_STAT(hypercalls) }, + { "request_irq", VCPU_STAT(request_irq_exits) }, + { "irq_exits", VCPU_STAT(irq_exits) }, + { "host_state_reload", VCPU_STAT(host_state_reload) }, + { "efer_reload", VCPU_STAT(efer_reload) }, + { "fpu_reload", VCPU_STAT(fpu_reload) }, + { "insn_emulation", VCPU_STAT(insn_emulation) }, + { "insn_emulation_fail", VCPU_STAT(insn_emulation_fail) }, + { "mmu_shadow_zapped", VM_STAT(mmu_shadow_zapped) }, + { "mmu_pte_write", VM_STAT(mmu_pte_write) }, + { "mmu_pte_updated", VM_STAT(mmu_pte_updated) }, + { "mmu_pde_zapped", VM_STAT(mmu_pde_zapped) }, + { "mmu_flooded", VM_STAT(mmu_flooded) }, + { "mmu_recycled", VM_STAT(mmu_recycled) }, + { "mmu_cache_miss", VM_STAT(mmu_cache_miss) }, + { "remote_tlb_flush", VM_STAT(remote_tlb_flush) }, + { "largepages", VM_STAT(lpages) }, + { NULL } +}; + + +unsigned long segment_base(u16 selector) +{ + struct descriptor_table gdt; + struct segment_descriptor *d; + unsigned long table_base; + unsigned long v; + + if (selector == 0) + return 0; + + asm("sgdt %0" : "=m"(gdt)); + table_base = gdt.base; + + if (selector & 4) { /* from ldt */ + u16 ldt_selector; + + asm("sldt %0" : "=g"(ldt_selector)); + table_base = segment_base(ldt_selector); + } + d = (struct segment_descriptor *)(table_base + (selector & ~7)); + v = d->base_low | ((unsigned long)d->base_mid << 16) | + ((unsigned long)d->base_high << 24); +#ifdef CONFIG_X86_64 + if (d->system == 0 && (d->type == 2 || d->type == 9 || d->type == 11)) + v |= ((unsigned long) \ + ((struct segment_descriptor_64 *)d)->base_higher) << 32; +#endif + return v; +} +EXPORT_SYMBOL_GPL(segment_base); + +u64 kvm_get_apic_base(struct kvm_vcpu *vcpu) +{ + if (irqchip_in_kernel(vcpu->kvm)) + return vcpu->arch.apic_base; + else + return vcpu->arch.apic_base; +} +EXPORT_SYMBOL_GPL(kvm_get_apic_base); + +void kvm_set_apic_base(struct kvm_vcpu *vcpu, u64 data) +{ + /* TODO: reserve bits check */ + if (irqchip_in_kernel(vcpu->kvm)) + kvm_lapic_set_base(vcpu, data); + else + vcpu->arch.apic_base = data; +} +EXPORT_SYMBOL_GPL(kvm_set_apic_base); + +void kvm_queue_exception(struct kvm_vcpu *vcpu, unsigned nr) +{ + WARN_ON(vcpu->arch.exception.pending); + vcpu->arch.exception.pending = true; + vcpu->arch.exception.has_error_code = false; + vcpu->arch.exception.nr = nr; +} +EXPORT_SYMBOL_GPL(kvm_queue_exception); + +void kvm_inject_page_fault(struct kvm_vcpu *vcpu, unsigned long addr, + u32 error_code) +{ + ++vcpu->stat.pf_guest; + if (vcpu->arch.exception.pending) { + if (vcpu->arch.exception.nr == PF_VECTOR) { + printk(KERN_DEBUG "kvm: inject_page_fault:" + " double fault 0x%lx\n", addr); + vcpu->arch.exception.nr = DF_VECTOR; + vcpu->arch.exception.error_code = 0; + } else if (vcpu->arch.exception.nr == DF_VECTOR) { + /* triple fault -> shutdown */ + set_bit(KVM_REQ_TRIPLE_FAULT, &vcpu->requests); + } + return; + } + vcpu->arch.cr2 = addr; + kvm_queue_exception_e(vcpu, PF_VECTOR, error_code); +} + +void kvm_queue_exception_e(struct kvm_vcpu *vcpu, unsigned nr, u32 error_code) +{ + WARN_ON(vcpu->arch.exception.pending); + vcpu->arch.exception.pending = true; + vcpu->arch.exception.has_error_code = true; + vcpu->arch.exception.nr = nr; + vcpu->arch.exception.error_code = error_code; +} +EXPORT_SYMBOL_GPL(kvm_queue_exception_e); + +static void __queue_exception(struct kvm_vcpu *vcpu) +{ + kvm_x86_ops->queue_exception(vcpu, vcpu->arch.exception.nr, + vcpu->arch.exception.has_error_code, + vcpu->arch.exception.error_code); +} + +/* + * Load the pae pdptrs. Return true is they are all valid. + */ +int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3) +{ + gfn_t pdpt_gfn = cr3 >> PAGE_SHIFT; + unsigned offset = ((cr3 & (PAGE_SIZE-1)) >> 5) << 2; + int i; + int ret; + u64 pdpte[ARRAY_SIZE(vcpu->arch.pdptrs)]; + + down_read(&vcpu->kvm->slots_lock); + ret = kvm_read_guest_page(vcpu->kvm, pdpt_gfn, pdpte, + offset * sizeof(u64), sizeof(pdpte)); + if (ret < 0) { + ret = 0; + goto out; + } + for (i = 0; i < ARRAY_SIZE(pdpte); ++i) { + if ((pdpte[i] & 1) && (pdpte[i] & 0xfffffff0000001e6ull)) { + ret = 0; + goto out; + } + } + ret = 1; + + memcpy(vcpu->arch.pdptrs, pdpte, sizeof(vcpu->arch.pdptrs)); +out: + up_read(&vcpu->kvm->slots_lock); + + return ret; +} +EXPORT_SYMBOL_GPL(load_pdptrs); + +static bool pdptrs_changed(struct kvm_vcpu *vcpu) +{ + u64 pdpte[ARRAY_SIZE(vcpu->arch.pdptrs)]; + bool changed = true; + int r; + + if (is_long_mode(vcpu) || !is_pae(vcpu)) + return false; + + down_read(&vcpu->kvm->slots_lock); + r = kvm_read_guest(vcpu->kvm, vcpu->arch.cr3 & ~31u, pdpte, sizeof(pdpte)); + if (r < 0) + goto out; + changed = memcmp(pdpte, vcpu->arch.pdptrs, sizeof(pdpte)) != 0; +out: + up_read(&vcpu->kvm->slots_lock); + + return changed; +} + +void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) +{ + if (cr0 & CR0_RESERVED_BITS) { + printk(KERN_DEBUG "set_cr0: 0x%lx #GP, reserved bits 0x%lx\n", + cr0, vcpu->arch.cr0); + kvm_inject_gp(vcpu, 0); + return; + } + + if ((cr0 & X86_CR0_NW) && !(cr0 & X86_CR0_CD)) { + printk(KERN_DEBUG "set_cr0: #GP, CD == 0 && NW == 1\n"); + kvm_inject_gp(vcpu, 0); + return; + } + + if ((cr0 & X86_CR0_PG) && !(cr0 & X86_CR0_PE)) { + printk(KERN_DEBUG "set_cr0: #GP, set PG flag " + "and a clear PE flag\n"); + kvm_inject_gp(vcpu, 0); + return; + } + + if (!is_paging(vcpu) && (cr0 & X86_CR0_PG)) { +#ifdef CONFIG_X86_64 + if ((vcpu->arch.shadow_efer & EFER_LME)) { + int cs_db, cs_l; + + if (!is_pae(vcpu)) { + printk(KERN_DEBUG "set_cr0: #GP, start paging " + "in long mode while PAE is disabled\n"); + kvm_inject_gp(vcpu, 0); + return; + } + kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); + if (cs_l) { + printk(KERN_DEBUG "set_cr0: #GP, start paging " + "in long mode while CS.L == 1\n"); + kvm_inject_gp(vcpu, 0); + return; + + } + } else +#endif + if (is_pae(vcpu) && !load_pdptrs(vcpu, vcpu->arch.cr3)) { + printk(KERN_DEBUG "set_cr0: #GP, pdptrs " + "reserved bits\n"); + kvm_inject_gp(vcpu, 0); + return; + } + + } + + kvm_x86_ops->set_cr0(vcpu, cr0); + vcpu->arch.cr0 = cr0; + + kvm_mmu_reset_context(vcpu); + return; +} +EXPORT_SYMBOL_GPL(kvm_set_cr0); + +void kvm_lmsw(struct kvm_vcpu *vcpu, unsigned long msw) +{ + kvm_set_cr0(vcpu, (vcpu->arch.cr0 & ~0x0ful) | (msw & 0x0f)); +} +EXPORT_SYMBOL_GPL(kvm_lmsw); + +void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) +{ + if (cr4 & CR4_RESERVED_BITS) { + printk(KERN_DEBUG "set_cr4: #GP, reserved bits\n"); + kvm_inject_gp(vcpu, 0); + return; + } + + if (is_long_mode(vcpu)) { + if (!(cr4 & X86_CR4_PAE)) { + printk(KERN_DEBUG "set_cr4: #GP, clearing PAE while " + "in long mode\n"); + kvm_inject_gp(vcpu, 0); + return; + } + } else if (is_paging(vcpu) && !is_pae(vcpu) && (cr4 & X86_CR4_PAE) + && !load_pdptrs(vcpu, vcpu->arch.cr3)) { + printk(KERN_DEBUG "set_cr4: #GP, pdptrs reserved bits\n"); + kvm_inject_gp(vcpu, 0); + return; + } + + if (cr4 & X86_CR4_VMXE) { + printk(KERN_DEBUG "set_cr4: #GP, setting VMXE\n"); + kvm_inject_gp(vcpu, 0); + return; + } + kvm_x86_ops->set_cr4(vcpu, cr4); + vcpu->arch.cr4 = cr4; + kvm_mmu_reset_context(vcpu); +} +EXPORT_SYMBOL_GPL(kvm_set_cr4); + +void kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr3) +{ + if (cr3 == vcpu->arch.cr3 && !pdptrs_changed(vcpu)) { + kvm_mmu_flush_tlb(vcpu); + return; + } + + if (is_long_mode(vcpu)) { + if (cr3 & CR3_L_MODE_RESERVED_BITS) { + printk(KERN_DEBUG "set_cr3: #GP, reserved bits\n"); + kvm_inject_gp(vcpu, 0); + return; + } + } else { + if (is_pae(vcpu)) { + if (cr3 & CR3_PAE_RESERVED_BITS) { + printk(KERN_DEBUG + "set_cr3: #GP, reserved bits\n"); + kvm_inject_gp(vcpu, 0); + return; + } + if (is_paging(vcpu) && !load_pdptrs(vcpu, cr3)) { + printk(KERN_DEBUG "set_cr3: #GP, pdptrs " + "reserved bits\n"); + kvm_inject_gp(vcpu, 0); + return; + } + } + /* + * We don't check reserved bits in nonpae mode, because + * this isn't enforced, and VMware depends on this. + */ + } + + down_read(&vcpu->kvm->slots_lock); + /* + * Does the new cr3 value map to physical memory? (Note, we + * catch an invalid cr3 even in real-mode, because it would + * cause trouble later on when we turn on paging anyway.) + * + * A real CPU would silently accept an invalid cr3 and would + * attempt to use it - with largely undefined (and often hard + * to debug) behavior on the guest side. + */ + if (unlikely(!gfn_to_memslot(vcpu->kvm, cr3 >> PAGE_SHIFT))) + kvm_inject_gp(vcpu, 0); + else { + vcpu->arch.cr3 = cr3; + vcpu->arch.mmu.new_cr3(vcpu); + } + up_read(&vcpu->kvm->slots_lock); +} +EXPORT_SYMBOL_GPL(kvm_set_cr3); + +void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr8) +{ + if (cr8 & CR8_RESERVED_BITS) { + printk(KERN_DEBUG "set_cr8: #GP, reserved bits 0x%lx\n", cr8); + kvm_inject_gp(vcpu, 0); + return; + } + if (irqchip_in_kernel(vcpu->kvm)) + kvm_lapic_set_tpr(vcpu, cr8); + else + vcpu->arch.cr8 = cr8; +} +EXPORT_SYMBOL_GPL(kvm_set_cr8); + +unsigned long kvm_get_cr8(struct kvm_vcpu *vcpu) +{ + if (irqchip_in_kernel(vcpu->kvm)) + return kvm_lapic_get_cr8(vcpu); + else + return vcpu->arch.cr8; +} +EXPORT_SYMBOL_GPL(kvm_get_cr8); + +/* + * List of msr numbers which we expose to userspace through KVM_GET_MSRS + * and KVM_SET_MSRS, and KVM_GET_MSR_INDEX_LIST. + * + * This list is modified at module load time to reflect the + * capabilities of the host cpu. + */ +static u32 msrs_to_save[] = { + MSR_IA32_SYSENTER_CS, MSR_IA32_SYSENTER_ESP, MSR_IA32_SYSENTER_EIP, + MSR_K6_STAR, +#ifdef CONFIG_X86_64 + MSR_CSTAR, MSR_KERNEL_GS_BASE, MSR_SYSCALL_MASK, MSR_LSTAR, +#endif + MSR_IA32_TIME_STAMP_COUNTER, MSR_KVM_SYSTEM_TIME, MSR_KVM_WALL_CLOCK, + MSR_IA32_PERF_STATUS, +}; + +static unsigned num_msrs_to_save; + +static u32 emulated_msrs[] = { + MSR_IA32_MISC_ENABLE, +}; + +static void set_efer(struct kvm_vcpu *vcpu, u64 efer) +{ + if (efer & efer_reserved_bits) { + printk(KERN_DEBUG "set_efer: 0x%llx #GP, reserved bits\n", + efer); + kvm_inject_gp(vcpu, 0); + return; + } + + if (is_paging(vcpu) + && (vcpu->arch.shadow_efer & EFER_LME) != (efer & EFER_LME)) { + printk(KERN_DEBUG "set_efer: #GP, change LME while paging\n"); + kvm_inject_gp(vcpu, 0); + return; + } + + kvm_x86_ops->set_efer(vcpu, efer); + + efer &= ~EFER_LMA; + efer |= vcpu->arch.shadow_efer & EFER_LMA; + + vcpu->arch.shadow_efer = efer; +} + +void kvm_enable_efer_bits(u64 mask) +{ + efer_reserved_bits &= ~mask; +} +EXPORT_SYMBOL_GPL(kvm_enable_efer_bits); + + +/* + * Writes msr value into into the appropriate "register". + * Returns 0 on success, non-0 otherwise. + * Assumes vcpu_load() was already called. + */ +int kvm_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data) +{ + return kvm_x86_ops->set_msr(vcpu, msr_index, data); +} + +/* + * Adapt set_msr() to msr_io()'s calling convention + */ +static int do_set_msr(struct kvm_vcpu *vcpu, unsigned index, u64 *data) +{ + return kvm_set_msr(vcpu, index, *data); +} + +static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock) +{ + static int version; + struct kvm_wall_clock wc; + struct timespec wc_ts; + + if (!wall_clock) + return; + + mutex_lock(&kvm->lock); + + version++; + kvm_write_guest(kvm, wall_clock, &version, sizeof(version)); + + wc_ts = current_kernel_time(); + wc.wc_sec = wc_ts.tv_sec; + wc.wc_nsec = wc_ts.tv_nsec; + wc.wc_version = version; + kvm_write_guest(kvm, wall_clock, &wc, sizeof(wc)); + + version++; + kvm_write_guest(kvm, wall_clock, &version, sizeof(version)); + + mutex_unlock(&kvm->lock); +} + +static void kvm_write_guest_time(struct kvm_vcpu *v) +{ + struct timespec ts; + unsigned long flags; + struct kvm_vcpu_arch *vcpu = &v->arch; + void *shared_kaddr; + + if ((!vcpu->time_page)) + return; + + /* Keep irq disabled to prevent changes to the clock */ + local_irq_save(flags); + kvm_get_msr(v, MSR_IA32_TIME_STAMP_COUNTER, + &vcpu->hv_clock.tsc_timestamp); + ktime_get_ts(&ts); + local_irq_restore(flags); + + /* With all the info we got, fill in the values */ + + vcpu->hv_clock.system_time = ts.tv_nsec + + (NSEC_PER_SEC * (u64)ts.tv_sec); + /* + * The interface expects us to write an even number signaling that the + * update is finished. Since the guest won't see the intermediate + * state, we just write "2" at the end + */ + vcpu->hv_clock.version = 2; + + shared_kaddr = kmap_atomic(vcpu->time_page, KM_USER0); + + memcpy(shared_kaddr + vcpu->time_offset, &vcpu->hv_clock, + sizeof(vcpu->hv_clock)); + + kunmap_atomic(shared_kaddr, KM_USER0); + + mark_page_dirty(v->kvm, vcpu->time >> PAGE_SHIFT); +} + + +int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data) +{ + switch (msr) { + case MSR_EFER: + set_efer(vcpu, data); + break; + case MSR_IA32_MC0_STATUS: + pr_unimpl(vcpu, "%s: MSR_IA32_MC0_STATUS 0x%llx, nop\n", + __FUNCTION__, data); + break; + case MSR_IA32_MCG_STATUS: + pr_unimpl(vcpu, "%s: MSR_IA32_MCG_STATUS 0x%llx, nop\n", + __FUNCTION__, data); + break; + case MSR_IA32_MCG_CTL: + pr_unimpl(vcpu, "%s: MSR_IA32_MCG_CTL 0x%llx, nop\n", + __FUNCTION__, data); + break; + case MSR_IA32_UCODE_REV: + case MSR_IA32_UCODE_WRITE: + case 0x200 ... 0x2ff: /* MTRRs */ + break; + case MSR_IA32_APICBASE: + kvm_set_apic_base(vcpu, data); + break; + case MSR_IA32_MISC_ENABLE: + vcpu->arch.ia32_misc_enable_msr = data; + break; + case MSR_KVM_WALL_CLOCK: + vcpu->kvm->arch.wall_clock = data; + kvm_write_wall_clock(vcpu->kvm, data); + break; + case MSR_KVM_SYSTEM_TIME: { + vcpu->arch.time = data & PAGE_MASK; + vcpu->arch.time_offset = data & ~PAGE_MASK; + + vcpu->arch.hv_clock.tsc_to_system_mul = + clocksource_khz2mult(tsc_khz, 22); + vcpu->arch.hv_clock.tsc_shift = 22; + + down_read(¤t->mm->mmap_sem); + vcpu->arch.time_page = + gfn_to_page(vcpu->kvm, data >> PAGE_SHIFT); + up_read(¤t->mm->mmap_sem); + + if (is_error_page(vcpu->arch.time_page)) + vcpu->arch.time_page = NULL; + + kvm_write_guest_time(vcpu); + break; + } + default: + pr_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n", msr, data); + return 1; + } + return 0; +} +EXPORT_SYMBOL_GPL(kvm_set_msr_common); + + +/* + * Reads an msr value (of 'msr_index') into 'pdata'. + * Returns 0 on success, non-0 otherwise. + * Assumes vcpu_load() was already called. + */ +int kvm_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata) +{ + return kvm_x86_ops->get_msr(vcpu, msr_index, pdata); +} + +int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata) +{ + u64 data; + + switch (msr) { + case 0xc0010010: /* SYSCFG */ + case 0xc0010015: /* HWCR */ + case MSR_IA32_PLATFORM_ID: + case MSR_IA32_P5_MC_ADDR: + case MSR_IA32_P5_MC_TYPE: + case MSR_IA32_MC0_CTL: + case MSR_IA32_MCG_STATUS: + case MSR_IA32_MCG_CAP: + case MSR_IA32_MCG_CTL: + case MSR_IA32_MC0_MISC: + case MSR_IA32_MC0_MISC+4: + case MSR_IA32_MC0_MISC+8: + case MSR_IA32_MC0_MISC+12: + case MSR_IA32_MC0_MISC+16: + case MSR_IA32_UCODE_REV: + case MSR_IA32_EBL_CR_POWERON: + /* MTRR registers */ + case 0xfe: + case 0x200 ... 0x2ff: + data = 0; + break; + case 0xcd: /* fsb frequency */ + data = 3; + break; + case MSR_IA32_APICBASE: + data = kvm_get_apic_base(vcpu); + break; + case MSR_IA32_MISC_ENABLE: + data = vcpu->arch.ia32_misc_enable_msr; + break; + case MSR_IA32_PERF_STATUS: + /* TSC increment by tick */ + data = 1000ULL; + /* CPU multiplier */ + data |= (((uint64_t)4ULL) << 40); + break; + case MSR_EFER: + data = vcpu->arch.shadow_efer; + break; + case MSR_KVM_WALL_CLOCK: + data = vcpu->kvm->arch.wall_clock; + break; + case MSR_KVM_SYSTEM_TIME: + data = vcpu->arch.time; + break; + default: + pr_unimpl(vcpu, "unhandled rdmsr: 0x%x\n", msr); + return 1; + } + *pdata = data; + return 0; +} +EXPORT_SYMBOL_GPL(kvm_get_msr_common); + +/* + * Read or write a bunch of msrs. All parameters are kernel addresses. + * + * @return number of msrs set successfully. + */ +static int __msr_io(struct kvm_vcpu *vcpu, struct kvm_msrs *msrs, + struct kvm_msr_entry *entries, + int (*do_msr)(struct kvm_vcpu *vcpu, + unsigned index, u64 *data)) +{ + int i; + + vcpu_load(vcpu); + + for (i = 0; i < msrs->nmsrs; ++i) + if (do_msr(vcpu, entries[i].index, &entries[i].data)) + break; + + vcpu_put(vcpu); + + return i; +} + +/* + * Read or write a bunch of msrs. Parameters are user addresses. + * + * @return number of msrs set successfully. + */ +static int msr_io(struct kvm_vcpu *vcpu, struct kvm_msrs __user *user_msrs, + int (*do_msr)(struct kvm_vcpu *vcpu, + unsigned index, u64 *data), + int writeback) +{ + struct kvm_msrs msrs; + struct kvm_msr_entry *entries; + int r, n; + unsigned size; + + r = -EFAULT; + if (copy_from_user(&msrs, user_msrs, sizeof msrs)) + goto out; + + r = -E2BIG; + if (msrs.nmsrs >= MAX_IO_MSRS) + goto out; + + r = -ENOMEM; + size = sizeof(struct kvm_msr_entry) * msrs.nmsrs; + entries = vmalloc(size); + if (!entries) + goto out; + + r = -EFAULT; + if (copy_from_user(entries, user_msrs->entries, size)) + goto out_free; + + r = n = __msr_io(vcpu, &msrs, entries, do_msr); + if (r < 0) + goto out_free; + + r = -EFAULT; + if (writeback && copy_to_user(user_msrs->entries, entries, size)) + goto out_free; + + r = n; + +out_free: + vfree(entries); +out: + return r; +} + +/* + * Make sure that a cpu that is being hot-unplugged does not have any vcpus + * cached on it. + */ +void decache_vcpus_on_cpu(int cpu) +{ + struct kvm *vm; + struct kvm_vcpu *vcpu; + int i; + + spin_lock(&kvm_lock); + list_for_each_entry(vm, &vm_list, vm_list) + for (i = 0; i < KVM_MAX_VCPUS; ++i) { + vcpu = vm->vcpus[i]; + if (!vcpu) + continue; + /* + * If the vcpu is locked, then it is running on some + * other cpu and therefore it is not cached on the + * cpu in question. + * + * If it's not locked, check the last cpu it executed + * on. + */ + if (mutex_trylock(&vcpu->mutex)) { + if (vcpu->cpu == cpu) { + kvm_x86_ops->vcpu_decache(vcpu); + vcpu->cpu = -1; + } + mutex_unlock(&vcpu->mutex); + } + } + spin_unlock(&kvm_lock); +} + +int kvm_dev_ioctl_check_extension(long ext) +{ + int r; + + switch (ext) { + case KVM_CAP_IRQCHIP: + case KVM_CAP_HLT: + case KVM_CAP_MMU_SHADOW_CACHE_CONTROL: + case KVM_CAP_USER_MEMORY: + case KVM_CAP_SET_TSS_ADDR: + case KVM_CAP_EXT_CPUID: + case KVM_CAP_CLOCKSOURCE: + r = 1; + break; + case KVM_CAP_VAPIC: + r = !kvm_x86_ops->cpu_has_accelerated_tpr(); + break; + case KVM_CAP_NR_VCPUS: + r = KVM_MAX_VCPUS; + break; + case KVM_CAP_NR_MEMSLOTS: + r = KVM_MEMORY_SLOTS; + break; + default: + r = 0; + break; + } + return r; + +} + +long kvm_arch_dev_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg) +{ + void __user *argp = (void __user *)arg; + long r; + + switch (ioctl) { + case KVM_GET_MSR_INDEX_LIST: { + struct kvm_msr_list __user *user_msr_list = argp; + struct kvm_msr_list msr_list; + unsigned n; + + r = -EFAULT; + if (copy_from_user(&msr_list, user_msr_list, sizeof msr_list)) + goto out; + n = msr_list.nmsrs; + msr_list.nmsrs = num_msrs_to_save + ARRAY_SIZE(emulated_msrs); + if (copy_to_user(user_msr_list, &msr_list, sizeof msr_list)) + goto out; + r = -E2BIG; + if (n < num_msrs_to_save) + goto out; + r = -EFAULT; + if (copy_to_user(user_msr_list->indices, &msrs_to_save, + num_msrs_to_save * sizeof(u32))) + goto out; + if (copy_to_user(user_msr_list->indices + + num_msrs_to_save * sizeof(u32), + &emulated_msrs, + ARRAY_SIZE(emulated_msrs) * sizeof(u32))) + goto out; + r = 0; + break; + } + case KVM_GET_SUPPORTED_CPUID: { + struct kvm_cpuid2 __user *cpuid_arg = argp; + struct kvm_cpuid2 cpuid; + + r = -EFAULT; + if (copy_from_user(&cpuid, cpuid_arg, sizeof cpuid)) + goto out; + r = kvm_dev_ioctl_get_supported_cpuid(&cpuid, + cpuid_arg->entries); + if (r) + goto out; + + r = -EFAULT; + if (copy_to_user(cpuid_arg, &cpuid, sizeof cpuid)) + goto out; + r = 0; + break; + } + default: + r = -EINVAL; + } +out: + return r; +} + +void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) +{ + kvm_x86_ops->vcpu_load(vcpu, cpu); + kvm_write_guest_time(vcpu); +} + +void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu) +{ + kvm_x86_ops->vcpu_put(vcpu); + kvm_put_guest_fpu(vcpu); +} + +static int is_efer_nx(void) +{ + u64 efer; + + rdmsrl(MSR_EFER, efer); + return efer & EFER_NX; +} + +static void cpuid_fix_nx_cap(struct kvm_vcpu *vcpu) +{ + int i; + struct kvm_cpuid_entry2 *e, *entry; + + entry = NULL; + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) { + e = &vcpu->arch.cpuid_entries[i]; + if (e->function == 0x80000001) { + entry = e; + break; + } + } + if (entry && (entry->edx & (1 << 20)) && !is_efer_nx()) { + entry->edx &= ~(1 << 20); + printk(KERN_INFO "kvm: guest NX capability removed\n"); + } +} + +/* when an old userspace process fills a new kernel module */ +static int kvm_vcpu_ioctl_set_cpuid(struct kvm_vcpu *vcpu, + struct kvm_cpuid *cpuid, + struct kvm_cpuid_entry __user *entries) +{ + int r, i; + struct kvm_cpuid_entry *cpuid_entries; + + r = -E2BIG; + if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) + goto out; + r = -ENOMEM; + cpuid_entries = vmalloc(sizeof(struct kvm_cpuid_entry) * cpuid->nent); + if (!cpuid_entries) + goto out; + r = -EFAULT; + if (copy_from_user(cpuid_entries, entries, + cpuid->nent * sizeof(struct kvm_cpuid_entry))) + goto out_free; + for (i = 0; i < cpuid->nent; i++) { + vcpu->arch.cpuid_entries[i].function = cpuid_entries[i].function; + vcpu->arch.cpuid_entries[i].eax = cpuid_entries[i].eax; + vcpu->arch.cpuid_entries[i].ebx = cpuid_entries[i].ebx; + vcpu->arch.cpuid_entries[i].ecx = cpuid_entries[i].ecx; + vcpu->arch.cpuid_entries[i].edx = cpuid_entries[i].edx; + vcpu->arch.cpuid_entries[i].index = 0; + vcpu->arch.cpuid_entries[i].flags = 0; + vcpu->arch.cpuid_entries[i].padding[0] = 0; + vcpu->arch.cpuid_entries[i].padding[1] = 0; + vcpu->arch.cpuid_entries[i].padding[2] = 0; + } + vcpu->arch.cpuid_nent = cpuid->nent; + cpuid_fix_nx_cap(vcpu); + r = 0; + +out_free: + vfree(cpuid_entries); +out: + return r; +} + +static int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu, + struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries) +{ + int r; + + r = -E2BIG; + if (cpuid->nent > KVM_MAX_CPUID_ENTRIES) + goto out; + r = -EFAULT; + if (copy_from_user(&vcpu->arch.cpuid_entries, entries, + cpuid->nent * sizeof(struct kvm_cpuid_entry2))) + goto out; + vcpu->arch.cpuid_nent = cpuid->nent; + return 0; + +out: + return r; +} + +static int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, + struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries) +{ + int r; + + r = -E2BIG; + if (cpuid->nent < vcpu->arch.cpuid_nent) + goto out; + r = -EFAULT; + if (copy_to_user(entries, &vcpu->arch.cpuid_entries, + vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2))) + goto out; + return 0; + +out: + cpuid->nent = vcpu->arch.cpuid_nent; + return r; +} + +static inline u32 bit(int bitno) +{ + return 1 << (bitno & 31); +} + +static void do_cpuid_1_ent(struct kvm_cpuid_entry2 *entry, u32 function, + u32 index) +{ + entry->function = function; + entry->index = index; + cpuid_count(entry->function, entry->index, + &entry->eax, &entry->ebx, &entry->ecx, &entry->edx); + entry->flags = 0; +} + +static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, + u32 index, int *nent, int maxnent) +{ + const u32 kvm_supported_word0_x86_features = bit(X86_FEATURE_FPU) | + bit(X86_FEATURE_VME) | bit(X86_FEATURE_DE) | + bit(X86_FEATURE_PSE) | bit(X86_FEATURE_TSC) | + bit(X86_FEATURE_MSR) | bit(X86_FEATURE_PAE) | + bit(X86_FEATURE_CX8) | bit(X86_FEATURE_APIC) | + bit(X86_FEATURE_SEP) | bit(X86_FEATURE_PGE) | + bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PSE36) | + bit(X86_FEATURE_CLFLSH) | bit(X86_FEATURE_MMX) | + bit(X86_FEATURE_FXSR) | bit(X86_FEATURE_XMM) | + bit(X86_FEATURE_XMM2) | bit(X86_FEATURE_SELFSNOOP); + const u32 kvm_supported_word1_x86_features = bit(X86_FEATURE_FPU) | + bit(X86_FEATURE_VME) | bit(X86_FEATURE_DE) | + bit(X86_FEATURE_PSE) | bit(X86_FEATURE_TSC) | + bit(X86_FEATURE_MSR) | bit(X86_FEATURE_PAE) | + bit(X86_FEATURE_CX8) | bit(X86_FEATURE_APIC) | + bit(X86_FEATURE_PGE) | + bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PSE36) | + bit(X86_FEATURE_MMX) | bit(X86_FEATURE_FXSR) | + bit(X86_FEATURE_SYSCALL) | + (bit(X86_FEATURE_NX) && is_efer_nx()) | +#ifdef CONFIG_X86_64 + bit(X86_FEATURE_LM) | +#endif + bit(X86_FEATURE_MMXEXT) | + bit(X86_FEATURE_3DNOWEXT) | + bit(X86_FEATURE_3DNOW); + const u32 kvm_supported_word3_x86_features = + bit(X86_FEATURE_XMM3) | bit(X86_FEATURE_CX16); + const u32 kvm_supported_word6_x86_features = + bit(X86_FEATURE_LAHF_LM) | bit(X86_FEATURE_CMP_LEGACY); + + /* all func 2 cpuid_count() should be called on the same cpu */ + get_cpu(); + do_cpuid_1_ent(entry, function, index); + ++*nent; + + switch (function) { + case 0: + entry->eax = min(entry->eax, (u32)0xb); + break; + case 1: + entry->edx &= kvm_supported_word0_x86_features; + entry->ecx &= kvm_supported_word3_x86_features; + break; + /* function 2 entries are STATEFUL. That is, repeated cpuid commands + * may return different values. This forces us to get_cpu() before + * issuing the first command, and also to emulate this annoying behavior + * in kvm_emulate_cpuid() using KVM_CPUID_FLAG_STATE_READ_NEXT */ + case 2: { + int t, times = entry->eax & 0xff; + + entry->flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; + for (t = 1; t < times && *nent < maxnent; ++t) { + do_cpuid_1_ent(&entry[t], function, 0); + entry[t].flags |= KVM_CPUID_FLAG_STATEFUL_FUNC; + ++*nent; + } + break; + } + /* function 4 and 0xb have additional index. */ + case 4: { + int i, cache_type; + + entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + /* read more entries until cache_type is zero */ + for (i = 1; *nent < maxnent; ++i) { + cache_type = entry[i - 1].eax & 0x1f; + if (!cache_type) + break; + do_cpuid_1_ent(&entry[i], function, i); + entry[i].flags |= + KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + ++*nent; + } + break; + } + case 0xb: { + int i, level_type; + + entry->flags |= KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + /* read more entries until level_type is zero */ + for (i = 1; *nent < maxnent; ++i) { + level_type = entry[i - 1].ecx & 0xff; + if (!level_type) + break; + do_cpuid_1_ent(&entry[i], function, i); + entry[i].flags |= + KVM_CPUID_FLAG_SIGNIFCANT_INDEX; + ++*nent; + } + break; + } + case 0x80000000: + entry->eax = min(entry->eax, 0x8000001a); + break; + case 0x80000001: + entry->edx &= kvm_supported_word1_x86_features; + entry->ecx &= kvm_supported_word6_x86_features; + break; + } + put_cpu(); +} + +static int kvm_dev_ioctl_get_supported_cpuid(struct kvm_cpuid2 *cpuid, + struct kvm_cpuid_entry2 __user *entries) +{ + struct kvm_cpuid_entry2 *cpuid_entries; + int limit, nent = 0, r = -E2BIG; + u32 func; + + if (cpuid->nent < 1) + goto out; + r = -ENOMEM; + cpuid_entries = vmalloc(sizeof(struct kvm_cpuid_entry2) * cpuid->nent); + if (!cpuid_entries) + goto out; + + do_cpuid_ent(&cpuid_entries[0], 0, 0, &nent, cpuid->nent); + limit = cpuid_entries[0].eax; + for (func = 1; func <= limit && nent < cpuid->nent; ++func) + do_cpuid_ent(&cpuid_entries[nent], func, 0, + &nent, cpuid->nent); + r = -E2BIG; + if (nent >= cpuid->nent) + goto out_free; + + do_cpuid_ent(&cpuid_entries[nent], 0x80000000, 0, &nent, cpuid->nent); + limit = cpuid_entries[nent - 1].eax; + for (func = 0x80000001; func <= limit && nent < cpuid->nent; ++func) + do_cpuid_ent(&cpuid_entries[nent], func, 0, + &nent, cpuid->nent); + r = -EFAULT; + if (copy_to_user(entries, cpuid_entries, + nent * sizeof(struct kvm_cpuid_entry2))) + goto out_free; + cpuid->nent = nent; + r = 0; + +out_free: + vfree(cpuid_entries); +out: + return r; +} + +static int kvm_vcpu_ioctl_get_lapic(struct kvm_vcpu *vcpu, + struct kvm_lapic_state *s) +{ + vcpu_load(vcpu); + memcpy(s->regs, vcpu->arch.apic->regs, sizeof *s); + vcpu_put(vcpu); + + return 0; +} + +static int kvm_vcpu_ioctl_set_lapic(struct kvm_vcpu *vcpu, + struct kvm_lapic_state *s) +{ + vcpu_load(vcpu); + memcpy(vcpu->arch.apic->regs, s->regs, sizeof *s); + kvm_apic_post_state_restore(vcpu); + vcpu_put(vcpu); + + return 0; +} + +static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu, + struct kvm_interrupt *irq) +{ + if (irq->irq < 0 || irq->irq >= 256) + return -EINVAL; + if (irqchip_in_kernel(vcpu->kvm)) + return -ENXIO; + vcpu_load(vcpu); + + set_bit(irq->irq, vcpu->arch.irq_pending); + set_bit(irq->irq / BITS_PER_LONG, &vcpu->arch.irq_summary); + + vcpu_put(vcpu); + + return 0; +} + +static int vcpu_ioctl_tpr_access_reporting(struct kvm_vcpu *vcpu, + struct kvm_tpr_access_ctl *tac) +{ + if (tac->flags) + return -EINVAL; + vcpu->arch.tpr_access_reporting = !!tac->enabled; + return 0; +} + +long kvm_arch_vcpu_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg) +{ + struct kvm_vcpu *vcpu = filp->private_data; + void __user *argp = (void __user *)arg; + int r; + + switch (ioctl) { + case KVM_GET_LAPIC: { + struct kvm_lapic_state lapic; + + memset(&lapic, 0, sizeof lapic); + r = kvm_vcpu_ioctl_get_lapic(vcpu, &lapic); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(argp, &lapic, sizeof lapic)) + goto out; + r = 0; + break; + } + case KVM_SET_LAPIC: { + struct kvm_lapic_state lapic; + + r = -EFAULT; + if (copy_from_user(&lapic, argp, sizeof lapic)) + goto out; + r = kvm_vcpu_ioctl_set_lapic(vcpu, &lapic);; + if (r) + goto out; + r = 0; + break; + } + case KVM_INTERRUPT: { + struct kvm_interrupt irq; + + r = -EFAULT; + if (copy_from_user(&irq, argp, sizeof irq)) + goto out; + r = kvm_vcpu_ioctl_interrupt(vcpu, &irq); + if (r) + goto out; + r = 0; + break; + } + case KVM_SET_CPUID: { + struct kvm_cpuid __user *cpuid_arg = argp; + struct kvm_cpuid cpuid; + + r = -EFAULT; + if (copy_from_user(&cpuid, cpuid_arg, sizeof cpuid)) + goto out; + r = kvm_vcpu_ioctl_set_cpuid(vcpu, &cpuid, cpuid_arg->entries); + if (r) + goto out; + break; + } + case KVM_SET_CPUID2: { + struct kvm_cpuid2 __user *cpuid_arg = argp; + struct kvm_cpuid2 cpuid; + + r = -EFAULT; + if (copy_from_user(&cpuid, cpuid_arg, sizeof cpuid)) + goto out; + r = kvm_vcpu_ioctl_set_cpuid2(vcpu, &cpuid, + cpuid_arg->entries); + if (r) + goto out; + break; + } + case KVM_GET_CPUID2: { + struct kvm_cpuid2 __user *cpuid_arg = argp; + struct kvm_cpuid2 cpuid; + + r = -EFAULT; + if (copy_from_user(&cpuid, cpuid_arg, sizeof cpuid)) + goto out; + r = kvm_vcpu_ioctl_get_cpuid2(vcpu, &cpuid, + cpuid_arg->entries); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(cpuid_arg, &cpuid, sizeof cpuid)) + goto out; + r = 0; + break; + } + case KVM_GET_MSRS: + r = msr_io(vcpu, argp, kvm_get_msr, 1); + break; + case KVM_SET_MSRS: + r = msr_io(vcpu, argp, do_set_msr, 0); + break; + case KVM_TPR_ACCESS_REPORTING: { + struct kvm_tpr_access_ctl tac; + + r = -EFAULT; + if (copy_from_user(&tac, argp, sizeof tac)) + goto out; + r = vcpu_ioctl_tpr_access_reporting(vcpu, &tac); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(argp, &tac, sizeof tac)) + goto out; + r = 0; + break; + }; + case KVM_SET_VAPIC_ADDR: { + struct kvm_vapic_addr va; + + r = -EINVAL; + if (!irqchip_in_kernel(vcpu->kvm)) + goto out; + r = -EFAULT; + if (copy_from_user(&va, argp, sizeof va)) + goto out; + r = 0; + kvm_lapic_set_vapic_addr(vcpu, va.vapic_addr); + break; + } + default: + r = -EINVAL; + } +out: + return r; +} + +static int kvm_vm_ioctl_set_tss_addr(struct kvm *kvm, unsigned long addr) +{ + int ret; + + if (addr > (unsigned int)(-3 * PAGE_SIZE)) + return -1; + ret = kvm_x86_ops->set_tss_addr(kvm, addr); + return ret; +} + +static int kvm_vm_ioctl_set_nr_mmu_pages(struct kvm *kvm, + u32 kvm_nr_mmu_pages) +{ + if (kvm_nr_mmu_pages < KVM_MIN_ALLOC_MMU_PAGES) + return -EINVAL; + + down_write(&kvm->slots_lock); + + kvm_mmu_change_mmu_pages(kvm, kvm_nr_mmu_pages); + kvm->arch.n_requested_mmu_pages = kvm_nr_mmu_pages; + + up_write(&kvm->slots_lock); + return 0; +} + +static int kvm_vm_ioctl_get_nr_mmu_pages(struct kvm *kvm) +{ + return kvm->arch.n_alloc_mmu_pages; +} + +gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn) +{ + int i; + struct kvm_mem_alias *alias; + + for (i = 0; i < kvm->arch.naliases; ++i) { + alias = &kvm->arch.aliases[i]; + if (gfn >= alias->base_gfn + && gfn < alias->base_gfn + alias->npages) + return alias->target_gfn + gfn - alias->base_gfn; + } + return gfn; +} + +/* + * Set a new alias region. Aliases map a portion of physical memory into + * another portion. This is useful for memory windows, for example the PC + * VGA region. + */ +static int kvm_vm_ioctl_set_memory_alias(struct kvm *kvm, + struct kvm_memory_alias *alias) +{ + int r, n; + struct kvm_mem_alias *p; + + r = -EINVAL; + /* General sanity checks */ + if (alias->memory_size & (PAGE_SIZE - 1)) + goto out; + if (alias->guest_phys_addr & (PAGE_SIZE - 1)) + goto out; + if (alias->slot >= KVM_ALIAS_SLOTS) + goto out; + if (alias->guest_phys_addr + alias->memory_size + < alias->guest_phys_addr) + goto out; + if (alias->target_phys_addr + alias->memory_size + < alias->target_phys_addr) + goto out; + + down_write(&kvm->slots_lock); + + p = &kvm->arch.aliases[alias->slot]; + p->base_gfn = alias->guest_phys_addr >> PAGE_SHIFT; + p->npages = alias->memory_size >> PAGE_SHIFT; + p->target_gfn = alias->target_phys_addr >> PAGE_SHIFT; + + for (n = KVM_ALIAS_SLOTS; n > 0; --n) + if (kvm->arch.aliases[n - 1].npages) + break; + kvm->arch.naliases = n; + + kvm_mmu_zap_all(kvm); + + up_write(&kvm->slots_lock); + + return 0; + +out: + return r; +} + +static int kvm_vm_ioctl_get_irqchip(struct kvm *kvm, struct kvm_irqchip *chip) +{ + int r; + + r = 0; + switch (chip->chip_id) { + case KVM_IRQCHIP_PIC_MASTER: + memcpy(&chip->chip.pic, + &pic_irqchip(kvm)->pics[0], + sizeof(struct kvm_pic_state)); + break; + case KVM_IRQCHIP_PIC_SLAVE: + memcpy(&chip->chip.pic, + &pic_irqchip(kvm)->pics[1], + sizeof(struct kvm_pic_state)); + break; + case KVM_IRQCHIP_IOAPIC: + memcpy(&chip->chip.ioapic, + ioapic_irqchip(kvm), + sizeof(struct kvm_ioapic_state)); + break; + default: + r = -EINVAL; + break; + } + return r; +} + +static int kvm_vm_ioctl_set_irqchip(struct kvm *kvm, struct kvm_irqchip *chip) +{ + int r; + + r = 0; + switch (chip->chip_id) { + case KVM_IRQCHIP_PIC_MASTER: + memcpy(&pic_irqchip(kvm)->pics[0], + &chip->chip.pic, + sizeof(struct kvm_pic_state)); + break; + case KVM_IRQCHIP_PIC_SLAVE: + memcpy(&pic_irqchip(kvm)->pics[1], + &chip->chip.pic, + sizeof(struct kvm_pic_state)); + break; + case KVM_IRQCHIP_IOAPIC: + memcpy(ioapic_irqchip(kvm), + &chip->chip.ioapic, + sizeof(struct kvm_ioapic_state)); + break; + default: + r = -EINVAL; + break; + } + kvm_pic_update_irq(pic_irqchip(kvm)); + return r; +} + +/* + * Get (and clear) the dirty memory log for a memory slot. + */ +int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, + struct kvm_dirty_log *log) +{ + int r; + int n; + struct kvm_memory_slot *memslot; + int is_dirty = 0; + + down_write(&kvm->slots_lock); + + r = kvm_get_dirty_log(kvm, log, &is_dirty); + if (r) + goto out; + + /* If nothing is dirty, don't bother messing with page tables. */ + if (is_dirty) { + kvm_mmu_slot_remove_write_access(kvm, log->slot); + kvm_flush_remote_tlbs(kvm); + memslot = &kvm->memslots[log->slot]; + n = ALIGN(memslot->npages, BITS_PER_LONG) / 8; + memset(memslot->dirty_bitmap, 0, n); + } + r = 0; +out: + up_write(&kvm->slots_lock); + return r; +} + +long kvm_arch_vm_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg) +{ + struct kvm *kvm = filp->private_data; + void __user *argp = (void __user *)arg; + int r = -EINVAL; + + switch (ioctl) { + case KVM_SET_TSS_ADDR: + r = kvm_vm_ioctl_set_tss_addr(kvm, arg); + if (r < 0) + goto out; + break; + case KVM_SET_MEMORY_REGION: { + struct kvm_memory_region kvm_mem; + struct kvm_userspace_memory_region kvm_userspace_mem; + + r = -EFAULT; + if (copy_from_user(&kvm_mem, argp, sizeof kvm_mem)) + goto out; + kvm_userspace_mem.slot = kvm_mem.slot; + kvm_userspace_mem.flags = kvm_mem.flags; + kvm_userspace_mem.guest_phys_addr = kvm_mem.guest_phys_addr; + kvm_userspace_mem.memory_size = kvm_mem.memory_size; + r = kvm_vm_ioctl_set_memory_region(kvm, &kvm_userspace_mem, 0); + if (r) + goto out; + break; + } + case KVM_SET_NR_MMU_PAGES: + r = kvm_vm_ioctl_set_nr_mmu_pages(kvm, arg); + if (r) + goto out; + break; + case KVM_GET_NR_MMU_PAGES: + r = kvm_vm_ioctl_get_nr_mmu_pages(kvm); + break; + case KVM_SET_MEMORY_ALIAS: { + struct kvm_memory_alias alias; + + r = -EFAULT; + if (copy_from_user(&alias, argp, sizeof alias)) + goto out; + r = kvm_vm_ioctl_set_memory_alias(kvm, &alias); + if (r) + goto out; + break; + } + case KVM_CREATE_IRQCHIP: + r = -ENOMEM; + kvm->arch.vpic = kvm_create_pic(kvm); + if (kvm->arch.vpic) { + r = kvm_ioapic_init(kvm); + if (r) { + kfree(kvm->arch.vpic); + kvm->arch.vpic = NULL; + goto out; + } + } else + goto out; + break; + case KVM_IRQ_LINE: { + struct kvm_irq_level irq_event; + + r = -EFAULT; + if (copy_from_user(&irq_event, argp, sizeof irq_event)) + goto out; + if (irqchip_in_kernel(kvm)) { + mutex_lock(&kvm->lock); + if (irq_event.irq < 16) + kvm_pic_set_irq(pic_irqchip(kvm), + irq_event.irq, + irq_event.level); + kvm_ioapic_set_irq(kvm->arch.vioapic, + irq_event.irq, + irq_event.level); + mutex_unlock(&kvm->lock); + r = 0; + } + break; + } + case KVM_GET_IRQCHIP: { + /* 0: PIC master, 1: PIC slave, 2: IOAPIC */ + struct kvm_irqchip chip; + + r = -EFAULT; + if (copy_from_user(&chip, argp, sizeof chip)) + goto out; + r = -ENXIO; + if (!irqchip_in_kernel(kvm)) + goto out; + r = kvm_vm_ioctl_get_irqchip(kvm, &chip); + if (r) + goto out; + r = -EFAULT; + if (copy_to_user(argp, &chip, sizeof chip)) + goto out; + r = 0; + break; + } + case KVM_SET_IRQCHIP: { + /* 0: PIC master, 1: PIC slave, 2: IOAPIC */ + struct kvm_irqchip chip; + + r = -EFAULT; + if (copy_from_user(&chip, argp, sizeof chip)) + goto out; + r = -ENXIO; + if (!irqchip_in_kernel(kvm)) + goto out; + r = kvm_vm_ioctl_set_irqchip(kvm, &chip); + if (r) + goto out; + r = 0; + break; + } + default: + ; + } +out: + return r; +} + +static void kvm_init_msr_list(void) +{ + u32 dummy[2]; + unsigned i, j; + + for (i = j = 0; i < ARRAY_SIZE(msrs_to_save); i++) { + if (rdmsr_safe(msrs_to_save[i], &dummy[0], &dummy[1]) < 0) + continue; + if (j < i) + msrs_to_save[j] = msrs_to_save[i]; + j++; + } + num_msrs_to_save = j; +} + +/* + * Only apic need an MMIO device hook, so shortcut now.. + */ +static struct kvm_io_device *vcpu_find_pervcpu_dev(struct kvm_vcpu *vcpu, + gpa_t addr) +{ + struct kvm_io_device *dev; + + if (vcpu->arch.apic) { + dev = &vcpu->arch.apic->dev; + if (dev->in_range(dev, addr)) + return dev; + } + return NULL; +} + + +static struct kvm_io_device *vcpu_find_mmio_dev(struct kvm_vcpu *vcpu, + gpa_t addr) +{ + struct kvm_io_device *dev; + + dev = vcpu_find_pervcpu_dev(vcpu, addr); + if (dev == NULL) + dev = kvm_io_bus_find_dev(&vcpu->kvm->mmio_bus, addr); + return dev; +} + +int emulator_read_std(unsigned long addr, + void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu) +{ + void *data = val; + int r = X86EMUL_CONTINUE; + + down_read(&vcpu->kvm->slots_lock); + while (bytes) { + gpa_t gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); + unsigned offset = addr & (PAGE_SIZE-1); + unsigned tocopy = min(bytes, (unsigned)PAGE_SIZE - offset); + int ret; + + if (gpa == UNMAPPED_GVA) { + r = X86EMUL_PROPAGATE_FAULT; + goto out; + } + ret = kvm_read_guest(vcpu->kvm, gpa, data, tocopy); + if (ret < 0) { + r = X86EMUL_UNHANDLEABLE; + goto out; + } + + bytes -= tocopy; + data += tocopy; + addr += tocopy; + } +out: + up_read(&vcpu->kvm->slots_lock); + return r; +} +EXPORT_SYMBOL_GPL(emulator_read_std); + +static int emulator_read_emulated(unsigned long addr, + void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu) +{ + struct kvm_io_device *mmio_dev; + gpa_t gpa; + + if (vcpu->mmio_read_completed) { + memcpy(val, vcpu->mmio_data, bytes); + vcpu->mmio_read_completed = 0; + return X86EMUL_CONTINUE; + } + + down_read(&vcpu->kvm->slots_lock); + gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); + up_read(&vcpu->kvm->slots_lock); + + /* For APIC access vmexit */ + if ((gpa & PAGE_MASK) == APIC_DEFAULT_PHYS_BASE) + goto mmio; + + if (emulator_read_std(addr, val, bytes, vcpu) + == X86EMUL_CONTINUE) + return X86EMUL_CONTINUE; + if (gpa == UNMAPPED_GVA) + return X86EMUL_PROPAGATE_FAULT; + +mmio: + /* + * Is this MMIO handled locally? + */ + mutex_lock(&vcpu->kvm->lock); + mmio_dev = vcpu_find_mmio_dev(vcpu, gpa); + if (mmio_dev) { + kvm_iodevice_read(mmio_dev, gpa, bytes, val); + mutex_unlock(&vcpu->kvm->lock); + return X86EMUL_CONTINUE; + } + mutex_unlock(&vcpu->kvm->lock); + + vcpu->mmio_needed = 1; + vcpu->mmio_phys_addr = gpa; + vcpu->mmio_size = bytes; + vcpu->mmio_is_write = 0; + + return X86EMUL_UNHANDLEABLE; +} + +static int emulator_write_phys(struct kvm_vcpu *vcpu, gpa_t gpa, + const void *val, int bytes) +{ + int ret; + + down_read(&vcpu->kvm->slots_lock); + ret = kvm_write_guest(vcpu->kvm, gpa, val, bytes); + if (ret < 0) { + up_read(&vcpu->kvm->slots_lock); + return 0; + } + kvm_mmu_pte_write(vcpu, gpa, val, bytes); + up_read(&vcpu->kvm->slots_lock); + return 1; +} + +static int emulator_write_emulated_onepage(unsigned long addr, + const void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu) +{ + struct kvm_io_device *mmio_dev; + gpa_t gpa; + + down_read(&vcpu->kvm->slots_lock); + gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); + up_read(&vcpu->kvm->slots_lock); + + if (gpa == UNMAPPED_GVA) { + kvm_inject_page_fault(vcpu, addr, 2); + return X86EMUL_PROPAGATE_FAULT; + } + + /* For APIC access vmexit */ + if ((gpa & PAGE_MASK) == APIC_DEFAULT_PHYS_BASE) + goto mmio; + + if (emulator_write_phys(vcpu, gpa, val, bytes)) + return X86EMUL_CONTINUE; + +mmio: + /* + * Is this MMIO handled locally? + */ + mutex_lock(&vcpu->kvm->lock); + mmio_dev = vcpu_find_mmio_dev(vcpu, gpa); + if (mmio_dev) { + kvm_iodevice_write(mmio_dev, gpa, bytes, val); + mutex_unlock(&vcpu->kvm->lock); + return X86EMUL_CONTINUE; + } + mutex_unlock(&vcpu->kvm->lock); + + vcpu->mmio_needed = 1; + vcpu->mmio_phys_addr = gpa; + vcpu->mmio_size = bytes; + vcpu->mmio_is_write = 1; + memcpy(vcpu->mmio_data, val, bytes); + + return X86EMUL_CONTINUE; +} + +int emulator_write_emulated(unsigned long addr, + const void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu) +{ + /* Crossing a page boundary? */ + if (((addr + bytes - 1) ^ addr) & PAGE_MASK) { + int rc, now; + + now = -addr & ~PAGE_MASK; + rc = emulator_write_emulated_onepage(addr, val, now, vcpu); + if (rc != X86EMUL_CONTINUE) + return rc; + addr += now; + val += now; + bytes -= now; + } + return emulator_write_emulated_onepage(addr, val, bytes, vcpu); +} +EXPORT_SYMBOL_GPL(emulator_write_emulated); + +static int emulator_cmpxchg_emulated(unsigned long addr, + const void *old, + const void *new, + unsigned int bytes, + struct kvm_vcpu *vcpu) +{ + static int reported; + + if (!reported) { + reported = 1; + printk(KERN_WARNING "kvm: emulating exchange as write\n"); + } +#ifndef CONFIG_X86_64 + /* guests cmpxchg8b have to be emulated atomically */ + if (bytes == 8) { + gpa_t gpa; + struct page *page; + char *kaddr; + u64 val; + + down_read(&vcpu->kvm->slots_lock); + gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, addr); + + if (gpa == UNMAPPED_GVA || + (gpa & PAGE_MASK) == APIC_DEFAULT_PHYS_BASE) + goto emul_write; + + if (((gpa + bytes - 1) & PAGE_MASK) != (gpa & PAGE_MASK)) + goto emul_write; + + val = *(u64 *)new; + + down_read(¤t->mm->mmap_sem); + page = gfn_to_page(vcpu->kvm, gpa >> PAGE_SHIFT); + up_read(¤t->mm->mmap_sem); + + kaddr = kmap_atomic(page, KM_USER0); + set_64bit((u64 *)(kaddr + offset_in_page(gpa)), val); + kunmap_atomic(kaddr, KM_USER0); + kvm_release_page_dirty(page); + emul_write: + up_read(&vcpu->kvm->slots_lock); + } +#endif + + return emulator_write_emulated(addr, new, bytes, vcpu); +} + +static unsigned long get_segment_base(struct kvm_vcpu *vcpu, int seg) +{ + return kvm_x86_ops->get_segment_base(vcpu, seg); +} + +int emulate_invlpg(struct kvm_vcpu *vcpu, gva_t address) +{ + return X86EMUL_CONTINUE; +} + +int emulate_clts(struct kvm_vcpu *vcpu) +{ + kvm_x86_ops->set_cr0(vcpu, vcpu->arch.cr0 & ~X86_CR0_TS); + return X86EMUL_CONTINUE; +} + +int emulator_get_dr(struct x86_emulate_ctxt *ctxt, int dr, unsigned long *dest) +{ + struct kvm_vcpu *vcpu = ctxt->vcpu; + + switch (dr) { + case 0 ... 3: + *dest = kvm_x86_ops->get_dr(vcpu, dr); + return X86EMUL_CONTINUE; + default: + pr_unimpl(vcpu, "%s: unexpected dr %u\n", __FUNCTION__, dr); + return X86EMUL_UNHANDLEABLE; + } +} + +int emulator_set_dr(struct x86_emulate_ctxt *ctxt, int dr, unsigned long value) +{ + unsigned long mask = (ctxt->mode == X86EMUL_MODE_PROT64) ? ~0ULL : ~0U; + int exception; + + kvm_x86_ops->set_dr(ctxt->vcpu, dr, value & mask, &exception); + if (exception) { + /* FIXME: better handling */ + return X86EMUL_UNHANDLEABLE; + } + return X86EMUL_CONTINUE; +} + +void kvm_report_emulation_failure(struct kvm_vcpu *vcpu, const char *context) +{ + static int reported; + u8 opcodes[4]; + unsigned long rip = vcpu->arch.rip; + unsigned long rip_linear; + + rip_linear = rip + get_segment_base(vcpu, VCPU_SREG_CS); + + if (reported) + return; + + emulator_read_std(rip_linear, (void *)opcodes, 4, vcpu); + + printk(KERN_ERR "emulation failed (%s) rip %lx %02x %02x %02x %02x\n", + context, rip, opcodes[0], opcodes[1], opcodes[2], opcodes[3]); + reported = 1; +} +EXPORT_SYMBOL_GPL(kvm_report_emulation_failure); + +static struct x86_emulate_ops emulate_ops = { + .read_std = emulator_read_std, + .read_emulated = emulator_read_emulated, + .write_emulated = emulator_write_emulated, + .cmpxchg_emulated = emulator_cmpxchg_emulated, +}; + +int emulate_instruction(struct kvm_vcpu *vcpu, + struct kvm_run *run, + unsigned long cr2, + u16 error_code, + int emulation_type) +{ + int r; + struct decode_cache *c; + + vcpu->arch.mmio_fault_cr2 = cr2; + kvm_x86_ops->cache_regs(vcpu); + + vcpu->mmio_is_write = 0; + vcpu->arch.pio.string = 0; + + if (!(emulation_type & EMULTYPE_NO_DECODE)) { + int cs_db, cs_l; + kvm_x86_ops->get_cs_db_l_bits(vcpu, &cs_db, &cs_l); + + vcpu->arch.emulate_ctxt.vcpu = vcpu; + vcpu->arch.emulate_ctxt.eflags = kvm_x86_ops->get_rflags(vcpu); + vcpu->arch.emulate_ctxt.mode = + (vcpu->arch.emulate_ctxt.eflags & X86_EFLAGS_VM) + ? X86EMUL_MODE_REAL : cs_l + ? X86EMUL_MODE_PROT64 : cs_db + ? X86EMUL_MODE_PROT32 : X86EMUL_MODE_PROT16; + + if (vcpu->arch.emulate_ctxt.mode == X86EMUL_MODE_PROT64) { + vcpu->arch.emulate_ctxt.cs_base = 0; + vcpu->arch.emulate_ctxt.ds_base = 0; + vcpu->arch.emulate_ctxt.es_base = 0; + vcpu->arch.emulate_ctxt.ss_base = 0; + } else { + vcpu->arch.emulate_ctxt.cs_base = + get_segment_base(vcpu, VCPU_SREG_CS); + vcpu->arch.emulate_ctxt.ds_base = + get_segment_base(vcpu, VCPU_SREG_DS); + vcpu->arch.emulate_ctxt.es_base = + get_segment_base(vcpu, VCPU_SREG_ES); + vcpu->arch.emulate_ctxt.ss_base = + get_segment_base(vcpu, VCPU_SREG_SS); + } + + vcpu->arch.emulate_ctxt.gs_base = + get_segment_base(vcpu, VCPU_SREG_GS); + vcpu->arch.emulate_ctxt.fs_base = + get_segment_base(vcpu, VCPU_SREG_FS); + + r = x86_decode_insn(&vcpu->arch.emulate_ctxt, &emulate_ops); + + /* Reject the instructions other than VMCALL/VMMCALL when + * try to emulate invalid opcode */ + c = &vcpu->arch.emulate_ctxt.decode; + if ((emulation_type & EMULTYPE_TRAP_UD) && + (!(c->twobyte && c->b == 0x01 && + (c->modrm_reg == 0 || c->modrm_reg == 3) && + c->modrm_mod == 3 && c->modrm_rm == 1))) + return EMULATE_FAIL; + + ++vcpu->stat.insn_emulation; + if (r) { + ++vcpu->stat.insn_emulation_fail; + if (kvm_mmu_unprotect_page_virt(vcpu, cr2)) + return EMULATE_DONE; + return EMULATE_FAIL; + } + } + + r = x86_emulate_insn(&vcpu->arch.emulate_ctxt, &emulate_ops); + + if (vcpu->arch.pio.string) + return EMULATE_DO_MMIO; + + if ((r || vcpu->mmio_is_write) && run) { + run->exit_reason = KVM_EXIT_MMIO; + run->mmio.phys_addr = vcpu->mmio_phys_addr; + memcpy(run->mmio.data, vcpu->mmio_data, 8); + run->mmio.len = vcpu->mmio_size; + run->mmio.is_write = vcpu->mmio_is_write; + } + + if (r) { + if (kvm_mmu_unprotect_page_virt(vcpu, cr2)) + return EMULATE_DONE; + if (!vcpu->mmio_needed) { + kvm_report_emulation_failure(vcpu, "mmio"); + return EMULATE_FAIL; + } + return EMULATE_DO_MMIO; + } + + kvm_x86_ops->decache_regs(vcpu); + kvm_x86_ops->set_rflags(vcpu, vcpu->arch.emulate_ctxt.eflags); + + if (vcpu->mmio_is_write) { + vcpu->mmio_needed = 0; + return EMULATE_DO_MMIO; + } + + return EMULATE_DONE; +} +EXPORT_SYMBOL_GPL(emulate_instruction); + +static void free_pio_guest_pages(struct kvm_vcpu *vcpu) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(vcpu->arch.pio.guest_pages); ++i) + if (vcpu->arch.pio.guest_pages[i]) { + kvm_release_page_dirty(vcpu->arch.pio.guest_pages[i]); + vcpu->arch.pio.guest_pages[i] = NULL; + } +} + +static int pio_copy_data(struct kvm_vcpu *vcpu) +{ + void *p = vcpu->arch.pio_data; + void *q; + unsigned bytes; + int nr_pages = vcpu->arch.pio.guest_pages[1] ? 2 : 1; + + q = vmap(vcpu->arch.pio.guest_pages, nr_pages, VM_READ|VM_WRITE, + PAGE_KERNEL); + if (!q) { + free_pio_guest_pages(vcpu); + return -ENOMEM; + } + q += vcpu->arch.pio.guest_page_offset; + bytes = vcpu->arch.pio.size * vcpu->arch.pio.cur_count; + if (vcpu->arch.pio.in) + memcpy(q, p, bytes); + else + memcpy(p, q, bytes); + q -= vcpu->arch.pio.guest_page_offset; + vunmap(q); + free_pio_guest_pages(vcpu); + return 0; +} + +int complete_pio(struct kvm_vcpu *vcpu) +{ + struct kvm_pio_request *io = &vcpu->arch.pio; + long delta; + int r; + + kvm_x86_ops->cache_regs(vcpu); + + if (!io->string) { + if (io->in) + memcpy(&vcpu->arch.regs[VCPU_REGS_RAX], vcpu->arch.pio_data, + io->size); + } else { + if (io->in) { + r = pio_copy_data(vcpu); + if (r) { + kvm_x86_ops->cache_regs(vcpu); + return r; + } + } + + delta = 1; + if (io->rep) { + delta *= io->cur_count; + /* + * The size of the register should really depend on + * current address size. + */ + vcpu->arch.regs[VCPU_REGS_RCX] -= delta; + } + if (io->down) + delta = -delta; + delta *= io->size; + if (io->in) + vcpu->arch.regs[VCPU_REGS_RDI] += delta; + else + vcpu->arch.regs[VCPU_REGS_RSI] += delta; + } + + kvm_x86_ops->decache_regs(vcpu); + + io->count -= io->cur_count; + io->cur_count = 0; + + return 0; +} + +static void kernel_pio(struct kvm_io_device *pio_dev, + struct kvm_vcpu *vcpu, + void *pd) +{ + /* TODO: String I/O for in kernel device */ + + mutex_lock(&vcpu->kvm->lock); + if (vcpu->arch.pio.in) + kvm_iodevice_read(pio_dev, vcpu->arch.pio.port, + vcpu->arch.pio.size, + pd); + else + kvm_iodevice_write(pio_dev, vcpu->arch.pio.port, + vcpu->arch.pio.size, + pd); + mutex_unlock(&vcpu->kvm->lock); +} + +static void pio_string_write(struct kvm_io_device *pio_dev, + struct kvm_vcpu *vcpu) +{ + struct kvm_pio_request *io = &vcpu->arch.pio; + void *pd = vcpu->arch.pio_data; + int i; + + mutex_lock(&vcpu->kvm->lock); + for (i = 0; i < io->cur_count; i++) { + kvm_iodevice_write(pio_dev, io->port, + io->size, + pd); + pd += io->size; + } + mutex_unlock(&vcpu->kvm->lock); +} + +static struct kvm_io_device *vcpu_find_pio_dev(struct kvm_vcpu *vcpu, + gpa_t addr) +{ + return kvm_io_bus_find_dev(&vcpu->kvm->pio_bus, addr); +} + +int kvm_emulate_pio(struct kvm_vcpu *vcpu, struct kvm_run *run, int in, + int size, unsigned port) +{ + struct kvm_io_device *pio_dev; + + vcpu->run->exit_reason = KVM_EXIT_IO; + vcpu->run->io.direction = in ? KVM_EXIT_IO_IN : KVM_EXIT_IO_OUT; + vcpu->run->io.size = vcpu->arch.pio.size = size; + vcpu->run->io.data_offset = KVM_PIO_PAGE_OFFSET * PAGE_SIZE; + vcpu->run->io.count = vcpu->arch.pio.count = vcpu->arch.pio.cur_count = 1; + vcpu->run->io.port = vcpu->arch.pio.port = port; + vcpu->arch.pio.in = in; + vcpu->arch.pio.string = 0; + vcpu->arch.pio.down = 0; + vcpu->arch.pio.guest_page_offset = 0; + vcpu->arch.pio.rep = 0; + + kvm_x86_ops->cache_regs(vcpu); + memcpy(vcpu->arch.pio_data, &vcpu->arch.regs[VCPU_REGS_RAX], 4); + kvm_x86_ops->decache_regs(vcpu); + + kvm_x86_ops->skip_emulated_instruction(vcpu); + + pio_dev = vcpu_find_pio_dev(vcpu, port); + if (pio_dev) { + kernel_pio(pio_dev, vcpu, vcpu->arch.pio_data); + complete_pio(vcpu); + return 1; + } + return 0; +} +EXPORT_SYMBOL_GPL(kvm_emulate_pio); + +int kvm_emulate_pio_string(struct kvm_vcpu *vcpu, struct kvm_run *run, int in, + int size, unsigned long count, int down, + gva_t address, int rep, unsigned port) +{ + unsigned now, in_page; + int i, ret = 0; + int nr_pages = 1; + struct page *page; + struct kvm_io_device *pio_dev; + + vcpu->run->exit_reason = KVM_EXIT_IO; + vcpu->run->io.direction = in ? KVM_EXIT_IO_IN : KVM_EXIT_IO_OUT; + vcpu->run->io.size = vcpu->arch.pio.size = size; + vcpu->run->io.data_offset = KVM_PIO_PAGE_OFFSET * PAGE_SIZE; + vcpu->run->io.count = vcpu->arch.pio.count = vcpu->arch.pio.cur_count = count; + vcpu->run->io.port = vcpu->arch.pio.port = port; + vcpu->arch.pio.in = in; + vcpu->arch.pio.string = 1; + vcpu->arch.pio.down = down; + vcpu->arch.pio.guest_page_offset = offset_in_page(address); + vcpu->arch.pio.rep = rep; + + if (!count) { + kvm_x86_ops->skip_emulated_instruction(vcpu); + return 1; + } + + if (!down) + in_page = PAGE_SIZE - offset_in_page(address); + else + in_page = offset_in_page(address) + size; + now = min(count, (unsigned long)in_page / size); + if (!now) { + /* + * String I/O straddles page boundary. Pin two guest pages + * so that we satisfy atomicity constraints. Do just one + * transaction to avoid complexity. + */ + nr_pages = 2; + now = 1; + } + if (down) { + /* + * String I/O in reverse. Yuck. Kill the guest, fix later. + */ + pr_unimpl(vcpu, "guest string pio down\n"); + kvm_inject_gp(vcpu, 0); + return 1; + } + vcpu->run->io.count = now; + vcpu->arch.pio.cur_count = now; + + if (vcpu->arch.pio.cur_count == vcpu->arch.pio.count) + kvm_x86_ops->skip_emulated_instruction(vcpu); + + for (i = 0; i < nr_pages; ++i) { + down_read(&vcpu->kvm->slots_lock); + page = gva_to_page(vcpu, address + i * PAGE_SIZE); + vcpu->arch.pio.guest_pages[i] = page; + up_read(&vcpu->kvm->slots_lock); + if (!page) { + kvm_inject_gp(vcpu, 0); + free_pio_guest_pages(vcpu); + return 1; + } + } + + pio_dev = vcpu_find_pio_dev(vcpu, port); + if (!vcpu->arch.pio.in) { + /* string PIO write */ + ret = pio_copy_data(vcpu); + if (ret >= 0 && pio_dev) { + pio_string_write(pio_dev, vcpu); + complete_pio(vcpu); + if (vcpu->arch.pio.count == 0) + ret = 1; + } + } else if (pio_dev) + pr_unimpl(vcpu, "no string pio read support yet, " + "port %x size %d count %ld\n", + port, size, count); + + return ret; +} +EXPORT_SYMBOL_GPL(kvm_emulate_pio_string); + +int kvm_arch_init(void *opaque) +{ + int r; + struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque; + + if (kvm_x86_ops) { + printk(KERN_ERR "kvm: already loaded the other module\n"); + r = -EEXIST; + goto out; + } + + if (!ops->cpu_has_kvm_support()) { + printk(KERN_ERR "kvm: no hardware support\n"); + r = -EOPNOTSUPP; + goto out; + } + if (ops->disabled_by_bios()) { + printk(KERN_ERR "kvm: disabled by bios\n"); + r = -EOPNOTSUPP; + goto out; + } + + r = kvm_mmu_module_init(); + if (r) + goto out; + + kvm_init_msr_list(); + + kvm_x86_ops = ops; + kvm_mmu_set_nonpresent_ptes(0ull, 0ull); + return 0; + +out: + return r; +} + +void kvm_arch_exit(void) +{ + kvm_x86_ops = NULL; + kvm_mmu_module_exit(); +} + +int kvm_emulate_halt(struct kvm_vcpu *vcpu) +{ + ++vcpu->stat.halt_exits; + if (irqchip_in_kernel(vcpu->kvm)) { + vcpu->arch.mp_state = VCPU_MP_STATE_HALTED; + kvm_vcpu_block(vcpu); + if (vcpu->arch.mp_state != VCPU_MP_STATE_RUNNABLE) + return -EINTR; + return 1; + } else { + vcpu->run->exit_reason = KVM_EXIT_HLT; + return 0; + } +} +EXPORT_SYMBOL_GPL(kvm_emulate_halt); + +int kvm_emulate_hypercall(struct kvm_vcpu *vcpu) +{ + unsigned long nr, a0, a1, a2, a3, ret; + + kvm_x86_ops->cache_regs(vcpu); + + nr = vcpu->arch.regs[VCPU_REGS_RAX]; + a0 = vcpu->arch.regs[VCPU_REGS_RBX]; + a1 = vcpu->arch.regs[VCPU_REGS_RCX]; + a2 = vcpu->arch.regs[VCPU_REGS_RDX]; + a3 = vcpu->arch.regs[VCPU_REGS_RSI]; + + if (!is_long_mode(vcpu)) { + nr &= 0xFFFFFFFF; + a0 &= 0xFFFFFFFF; + a1 &= 0xFFFFFFFF; + a2 &= 0xFFFFFFFF; + a3 &= 0xFFFFFFFF; + } + + switch (nr) { + case KVM_HC_VAPIC_POLL_IRQ: + ret = 0; + break; + default: + ret = -KVM_ENOSYS; + break; + } + vcpu->arch.regs[VCPU_REGS_RAX] = ret; + kvm_x86_ops->decache_regs(vcpu); + ++vcpu->stat.hypercalls; + return 0; +} +EXPORT_SYMBOL_GPL(kvm_emulate_hypercall); + +int kvm_fix_hypercall(struct kvm_vcpu *vcpu) +{ + char instruction[3]; + int ret = 0; + + + /* + * Blow out the MMU to ensure that no other VCPU has an active mapping + * to ensure that the updated hypercall appears atomically across all + * VCPUs. + */ + kvm_mmu_zap_all(vcpu->kvm); + + kvm_x86_ops->cache_regs(vcpu); + kvm_x86_ops->patch_hypercall(vcpu, instruction); + if (emulator_write_emulated(vcpu->arch.rip, instruction, 3, vcpu) + != X86EMUL_CONTINUE) + ret = -EFAULT; + + return ret; +} + +static u64 mk_cr_64(u64 curr_cr, u32 new_val) +{ + return (curr_cr & ~((1ULL << 32) - 1)) | new_val; +} + +void realmode_lgdt(struct kvm_vcpu *vcpu, u16 limit, unsigned long base) +{ + struct descriptor_table dt = { limit, base }; + + kvm_x86_ops->set_gdt(vcpu, &dt); +} + +void realmode_lidt(struct kvm_vcpu *vcpu, u16 limit, unsigned long base) +{ + struct descriptor_table dt = { limit, base }; + + kvm_x86_ops->set_idt(vcpu, &dt); +} + +void realmode_lmsw(struct kvm_vcpu *vcpu, unsigned long msw, + unsigned long *rflags) +{ + kvm_lmsw(vcpu, msw); + *rflags = kvm_x86_ops->get_rflags(vcpu); +} + +unsigned long realmode_get_cr(struct kvm_vcpu *vcpu, int cr) +{ + kvm_x86_ops->decache_cr4_guest_bits(vcpu); + switch (cr) { + case 0: + return vcpu->arch.cr0; + case 2: + return vcpu->arch.cr2; + case 3: + return vcpu->arch.cr3; + case 4: + return vcpu->arch.cr4; + case 8: + return kvm_get_cr8(vcpu); + default: + vcpu_printf(vcpu, "%s: unexpected cr %u\n", __FUNCTION__, cr); + return 0; + } +} + +void realmode_set_cr(struct kvm_vcpu *vcpu, int cr, unsigned long val, + unsigned long *rflags) +{ + switch (cr) { + case 0: + kvm_set_cr0(vcpu, mk_cr_64(vcpu->arch.cr0, val)); + *rflags = kvm_x86_ops->get_rflags(vcpu); + break; + case 2: + vcpu->arch.cr2 = val; + break; + case 3: + kvm_set_cr3(vcpu, val); + break; + case 4: + kvm_set_cr4(vcpu, mk_cr_64(vcpu->arch.cr4, val)); + break; + case 8: + kvm_set_cr8(vcpu, val & 0xfUL); + break; + default: + vcpu_printf(vcpu, "%s: unexpected cr %u\n", __FUNCTION__, cr); + } +} + +static int move_to_next_stateful_cpuid_entry(struct kvm_vcpu *vcpu, int i) +{ + struct kvm_cpuid_entry2 *e = &vcpu->arch.cpuid_entries[i]; + int j, nent = vcpu->arch.cpuid_nent; + + e->flags &= ~KVM_CPUID_FLAG_STATE_READ_NEXT; + /* when no next entry is found, the current entry[i] is reselected */ + for (j = i + 1; j == i; j = (j + 1) % nent) { + struct kvm_cpuid_entry2 *ej = &vcpu->arch.cpuid_entries[j]; + if (ej->function == e->function) { + ej->flags |= KVM_CPUID_FLAG_STATE_READ_NEXT; + return j; + } + } + return 0; /* silence gcc, even though control never reaches here */ +} + +/* find an entry with matching function, matching index (if needed), and that + * should be read next (if it's stateful) */ +static int is_matching_cpuid_entry(struct kvm_cpuid_entry2 *e, + u32 function, u32 index) +{ + if (e->function != function) + return 0; + if ((e->flags & KVM_CPUID_FLAG_SIGNIFCANT_INDEX) && e->index != index) + return 0; + if ((e->flags & KVM_CPUID_FLAG_STATEFUL_FUNC) && + !(e->flags & KVM_CPUID_FLAG_STATE_READ_NEXT)) + return 0; + return 1; +} + +void kvm_emulate_cpuid(struct kvm_vcpu *vcpu) +{ + int i; + u32 function, index; + struct kvm_cpuid_entry2 *e, *best; + + kvm_x86_ops->cache_regs(vcpu); + function = vcpu->arch.regs[VCPU_REGS_RAX]; + index = vcpu->arch.regs[VCPU_REGS_RCX]; + vcpu->arch.regs[VCPU_REGS_RAX] = 0; + vcpu->arch.regs[VCPU_REGS_RBX] = 0; + vcpu->arch.regs[VCPU_REGS_RCX] = 0; + vcpu->arch.regs[VCPU_REGS_RDX] = 0; + best = NULL; + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) { + e = &vcpu->arch.cpuid_entries[i]; + if (is_matching_cpuid_entry(e, function, index)) { + if (e->flags & KVM_CPUID_FLAG_STATEFUL_FUNC) + move_to_next_stateful_cpuid_entry(vcpu, i); + best = e; + break; + } + /* + * Both basic or both extended? + */ + if (((e->function ^ function) & 0x80000000) == 0) + if (!best || e->function > best->function) + best = e; + } + if (best) { + vcpu->arch.regs[VCPU_REGS_RAX] = best->eax; + vcpu->arch.regs[VCPU_REGS_RBX] = best->ebx; + vcpu->arch.regs[VCPU_REGS_RCX] = best->ecx; + vcpu->arch.regs[VCPU_REGS_RDX] = best->edx; + } + kvm_x86_ops->decache_regs(vcpu); + kvm_x86_ops->skip_emulated_instruction(vcpu); +} +EXPORT_SYMBOL_GPL(kvm_emulate_cpuid); + +/* + * Check if userspace requested an interrupt window, and that the + * interrupt window is open. + * + * No need to exit to userspace if we already have an interrupt queued. + */ +static int dm_request_for_irq_injection(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) +{ + return (!vcpu->arch.irq_summary && + kvm_run->request_interrupt_window && + vcpu->arch.interrupt_window_open && + (kvm_x86_ops->get_rflags(vcpu) & X86_EFLAGS_IF)); +} + +static void post_kvm_run_save(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) +{ + kvm_run->if_flag = (kvm_x86_ops->get_rflags(vcpu) & X86_EFLAGS_IF) != 0; + kvm_run->cr8 = kvm_get_cr8(vcpu); + kvm_run->apic_base = kvm_get_apic_base(vcpu); + if (irqchip_in_kernel(vcpu->kvm)) + kvm_run->ready_for_interrupt_injection = 1; + else + kvm_run->ready_for_interrupt_injection = + (vcpu->arch.interrupt_window_open && + vcpu->arch.irq_summary == 0); +} + +static void vapic_enter(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + struct page *page; + + if (!apic || !apic->vapic_addr) + return; + + down_read(¤t->mm->mmap_sem); + page = gfn_to_page(vcpu->kvm, apic->vapic_addr >> PAGE_SHIFT); + up_read(¤t->mm->mmap_sem); + + vcpu->arch.apic->vapic_page = page; +} + +static void vapic_exit(struct kvm_vcpu *vcpu) +{ + struct kvm_lapic *apic = vcpu->arch.apic; + + if (!apic || !apic->vapic_addr) + return; + + kvm_release_page_dirty(apic->vapic_page); + mark_page_dirty(vcpu->kvm, apic->vapic_addr >> PAGE_SHIFT); +} + +static int __vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + int r; + + if (unlikely(vcpu->arch.mp_state == VCPU_MP_STATE_SIPI_RECEIVED)) { + pr_debug("vcpu %d received sipi with vector # %x\n", + vcpu->vcpu_id, vcpu->arch.sipi_vector); + kvm_lapic_reset(vcpu); + r = kvm_x86_ops->vcpu_reset(vcpu); + if (r) + return r; + vcpu->arch.mp_state = VCPU_MP_STATE_RUNNABLE; + } + + vapic_enter(vcpu); + +preempted: + if (vcpu->guest_debug.enabled) + kvm_x86_ops->guest_debug_pre(vcpu); + +again: + if (vcpu->requests) + if (test_and_clear_bit(KVM_REQ_MMU_RELOAD, &vcpu->requests)) + kvm_mmu_unload(vcpu); + + r = kvm_mmu_reload(vcpu); + if (unlikely(r)) + goto out; + + if (vcpu->requests) { + if (test_and_clear_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests)) + __kvm_migrate_apic_timer(vcpu); + if (test_and_clear_bit(KVM_REQ_REPORT_TPR_ACCESS, + &vcpu->requests)) { + kvm_run->exit_reason = KVM_EXIT_TPR_ACCESS; + r = 0; + goto out; + } + if (test_and_clear_bit(KVM_REQ_TRIPLE_FAULT, &vcpu->requests)) { + kvm_run->exit_reason = KVM_EXIT_SHUTDOWN; + r = 0; + goto out; + } + } + + kvm_inject_pending_timer_irqs(vcpu); + + preempt_disable(); + + kvm_x86_ops->prepare_guest_switch(vcpu); + kvm_load_guest_fpu(vcpu); + + local_irq_disable(); + + if (need_resched()) { + local_irq_enable(); + preempt_enable(); + r = 1; + goto out; + } + + if (vcpu->requests) + if (test_bit(KVM_REQ_MMU_RELOAD, &vcpu->requests)) { + local_irq_enable(); + preempt_enable(); + r = 1; + goto out; + } + + if (signal_pending(current)) { + local_irq_enable(); + preempt_enable(); + r = -EINTR; + kvm_run->exit_reason = KVM_EXIT_INTR; + ++vcpu->stat.signal_exits; + goto out; + } + + if (vcpu->arch.exception.pending) + __queue_exception(vcpu); + else if (irqchip_in_kernel(vcpu->kvm)) + kvm_x86_ops->inject_pending_irq(vcpu); + else + kvm_x86_ops->inject_pending_vectors(vcpu, kvm_run); + + kvm_lapic_sync_to_vapic(vcpu); + + vcpu->guest_mode = 1; + kvm_guest_enter(); + + if (vcpu->requests) + if (test_and_clear_bit(KVM_REQ_TLB_FLUSH, &vcpu->requests)) + kvm_x86_ops->tlb_flush(vcpu); + + kvm_x86_ops->run(vcpu, kvm_run); + + vcpu->guest_mode = 0; + local_irq_enable(); + + ++vcpu->stat.exits; + + /* + * We must have an instruction between local_irq_enable() and + * kvm_guest_exit(), so the timer interrupt isn't delayed by + * the interrupt shadow. The stat.exits increment will do nicely. + * But we need to prevent reordering, hence this barrier(): + */ + barrier(); + + kvm_guest_exit(); + + preempt_enable(); + + /* + * Profile KVM exit RIPs: + */ + if (unlikely(prof_on == KVM_PROFILING)) { + kvm_x86_ops->cache_regs(vcpu); + profile_hit(KVM_PROFILING, (void *)vcpu->arch.rip); + } + + if (vcpu->arch.exception.pending && kvm_x86_ops->exception_injected(vcpu)) + vcpu->arch.exception.pending = false; + + kvm_lapic_sync_from_vapic(vcpu); + + r = kvm_x86_ops->handle_exit(kvm_run, vcpu); + + if (r > 0) { + if (dm_request_for_irq_injection(vcpu, kvm_run)) { + r = -EINTR; + kvm_run->exit_reason = KVM_EXIT_INTR; + ++vcpu->stat.request_irq_exits; + goto out; + } + if (!need_resched()) + goto again; + } + +out: + if (r > 0) { + kvm_resched(vcpu); + goto preempted; + } + + post_kvm_run_save(vcpu, kvm_run); + + vapic_exit(vcpu); + + return r; +} + +int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + int r; + sigset_t sigsaved; + + vcpu_load(vcpu); + + if (unlikely(vcpu->arch.mp_state == VCPU_MP_STATE_UNINITIALIZED)) { + kvm_vcpu_block(vcpu); + vcpu_put(vcpu); + return -EAGAIN; + } + + if (vcpu->sigset_active) + sigprocmask(SIG_SETMASK, &vcpu->sigset, &sigsaved); + + /* re-sync apic's tpr */ + if (!irqchip_in_kernel(vcpu->kvm)) + kvm_set_cr8(vcpu, kvm_run->cr8); + + if (vcpu->arch.pio.cur_count) { + r = complete_pio(vcpu); + if (r) + goto out; + } +#if CONFIG_HAS_IOMEM + if (vcpu->mmio_needed) { + memcpy(vcpu->mmio_data, kvm_run->mmio.data, 8); + vcpu->mmio_read_completed = 1; + vcpu->mmio_needed = 0; + r = emulate_instruction(vcpu, kvm_run, + vcpu->arch.mmio_fault_cr2, 0, + EMULTYPE_NO_DECODE); + if (r == EMULATE_DO_MMIO) { + /* + * Read-modify-write. Back to userspace. + */ + r = 0; + goto out; + } + } +#endif + if (kvm_run->exit_reason == KVM_EXIT_HYPERCALL) { + kvm_x86_ops->cache_regs(vcpu); + vcpu->arch.regs[VCPU_REGS_RAX] = kvm_run->hypercall.ret; + kvm_x86_ops->decache_regs(vcpu); + } + + r = __vcpu_run(vcpu, kvm_run); + +out: + if (vcpu->sigset_active) + sigprocmask(SIG_SETMASK, &sigsaved, NULL); + + vcpu_put(vcpu); + return r; +} + +int kvm_arch_vcpu_ioctl_get_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs) +{ + vcpu_load(vcpu); + + kvm_x86_ops->cache_regs(vcpu); + + regs->rax = vcpu->arch.regs[VCPU_REGS_RAX]; + regs->rbx = vcpu->arch.regs[VCPU_REGS_RBX]; + regs->rcx = vcpu->arch.regs[VCPU_REGS_RCX]; + regs->rdx = vcpu->arch.regs[VCPU_REGS_RDX]; + regs->rsi = vcpu->arch.regs[VCPU_REGS_RSI]; + regs->rdi = vcpu->arch.regs[VCPU_REGS_RDI]; + regs->rsp = vcpu->arch.regs[VCPU_REGS_RSP]; + regs->rbp = vcpu->arch.regs[VCPU_REGS_RBP]; +#ifdef CONFIG_X86_64 + regs->r8 = vcpu->arch.regs[VCPU_REGS_R8]; + regs->r9 = vcpu->arch.regs[VCPU_REGS_R9]; + regs->r10 = vcpu->arch.regs[VCPU_REGS_R10]; + regs->r11 = vcpu->arch.regs[VCPU_REGS_R11]; + regs->r12 = vcpu->arch.regs[VCPU_REGS_R12]; + regs->r13 = vcpu->arch.regs[VCPU_REGS_R13]; + regs->r14 = vcpu->arch.regs[VCPU_REGS_R14]; + regs->r15 = vcpu->arch.regs[VCPU_REGS_R15]; +#endif + + regs->rip = vcpu->arch.rip; + regs->rflags = kvm_x86_ops->get_rflags(vcpu); + + /* + * Don't leak debug flags in case they were set for guest debugging + */ + if (vcpu->guest_debug.enabled && vcpu->guest_debug.singlestep) + regs->rflags &= ~(X86_EFLAGS_TF | X86_EFLAGS_RF); + + vcpu_put(vcpu); + + return 0; +} + +int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs) +{ + vcpu_load(vcpu); + + vcpu->arch.regs[VCPU_REGS_RAX] = regs->rax; + vcpu->arch.regs[VCPU_REGS_RBX] = regs->rbx; + vcpu->arch.regs[VCPU_REGS_RCX] = regs->rcx; + vcpu->arch.regs[VCPU_REGS_RDX] = regs->rdx; + vcpu->arch.regs[VCPU_REGS_RSI] = regs->rsi; + vcpu->arch.regs[VCPU_REGS_RDI] = regs->rdi; + vcpu->arch.regs[VCPU_REGS_RSP] = regs->rsp; + vcpu->arch.regs[VCPU_REGS_RBP] = regs->rbp; +#ifdef CONFIG_X86_64 + vcpu->arch.regs[VCPU_REGS_R8] = regs->r8; + vcpu->arch.regs[VCPU_REGS_R9] = regs->r9; + vcpu->arch.regs[VCPU_REGS_R10] = regs->r10; + vcpu->arch.regs[VCPU_REGS_R11] = regs->r11; + vcpu->arch.regs[VCPU_REGS_R12] = regs->r12; + vcpu->arch.regs[VCPU_REGS_R13] = regs->r13; + vcpu->arch.regs[VCPU_REGS_R14] = regs->r14; + vcpu->arch.regs[VCPU_REGS_R15] = regs->r15; +#endif + + vcpu->arch.rip = regs->rip; + kvm_x86_ops->set_rflags(vcpu, regs->rflags); + + kvm_x86_ops->decache_regs(vcpu); + + vcpu_put(vcpu); + + return 0; +} + +static void get_segment(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg) +{ + kvm_x86_ops->get_segment(vcpu, var, seg); +} + +void kvm_get_cs_db_l_bits(struct kvm_vcpu *vcpu, int *db, int *l) +{ + struct kvm_segment cs; + + get_segment(vcpu, &cs, VCPU_SREG_CS); + *db = cs.db; + *l = cs.l; +} +EXPORT_SYMBOL_GPL(kvm_get_cs_db_l_bits); + +int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu, + struct kvm_sregs *sregs) +{ + struct descriptor_table dt; + int pending_vec; + + vcpu_load(vcpu); + + get_segment(vcpu, &sregs->cs, VCPU_SREG_CS); + get_segment(vcpu, &sregs->ds, VCPU_SREG_DS); + get_segment(vcpu, &sregs->es, VCPU_SREG_ES); + get_segment(vcpu, &sregs->fs, VCPU_SREG_FS); + get_segment(vcpu, &sregs->gs, VCPU_SREG_GS); + get_segment(vcpu, &sregs->ss, VCPU_SREG_SS); + + get_segment(vcpu, &sregs->tr, VCPU_SREG_TR); + get_segment(vcpu, &sregs->ldt, VCPU_SREG_LDTR); + + kvm_x86_ops->get_idt(vcpu, &dt); + sregs->idt.limit = dt.limit; + sregs->idt.base = dt.base; + kvm_x86_ops->get_gdt(vcpu, &dt); + sregs->gdt.limit = dt.limit; + sregs->gdt.base = dt.base; + + kvm_x86_ops->decache_cr4_guest_bits(vcpu); + sregs->cr0 = vcpu->arch.cr0; + sregs->cr2 = vcpu->arch.cr2; + sregs->cr3 = vcpu->arch.cr3; + sregs->cr4 = vcpu->arch.cr4; + sregs->cr8 = kvm_get_cr8(vcpu); + sregs->efer = vcpu->arch.shadow_efer; + sregs->apic_base = kvm_get_apic_base(vcpu); + + if (irqchip_in_kernel(vcpu->kvm)) { + memset(sregs->interrupt_bitmap, 0, + sizeof sregs->interrupt_bitmap); + pending_vec = kvm_x86_ops->get_irq(vcpu); + if (pending_vec >= 0) + set_bit(pending_vec, + (unsigned long *)sregs->interrupt_bitmap); + } else + memcpy(sregs->interrupt_bitmap, vcpu->arch.irq_pending, + sizeof sregs->interrupt_bitmap); + + vcpu_put(vcpu); + + return 0; +} + +static void set_segment(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg) +{ + kvm_x86_ops->set_segment(vcpu, var, seg); +} + +int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu, + struct kvm_sregs *sregs) +{ + int mmu_reset_needed = 0; + int i, pending_vec, max_bits; + struct descriptor_table dt; + + vcpu_load(vcpu); + + dt.limit = sregs->idt.limit; + dt.base = sregs->idt.base; + kvm_x86_ops->set_idt(vcpu, &dt); + dt.limit = sregs->gdt.limit; + dt.base = sregs->gdt.base; + kvm_x86_ops->set_gdt(vcpu, &dt); + + vcpu->arch.cr2 = sregs->cr2; + mmu_reset_needed |= vcpu->arch.cr3 != sregs->cr3; + + down_read(&vcpu->kvm->slots_lock); + if (gfn_to_memslot(vcpu->kvm, sregs->cr3 >> PAGE_SHIFT)) + vcpu->arch.cr3 = sregs->cr3; + else + set_bit(KVM_REQ_TRIPLE_FAULT, &vcpu->requests); + up_read(&vcpu->kvm->slots_lock); + + kvm_set_cr8(vcpu, sregs->cr8); + + mmu_reset_needed |= vcpu->arch.shadow_efer != sregs->efer; + kvm_x86_ops->set_efer(vcpu, sregs->efer); + kvm_set_apic_base(vcpu, sregs->apic_base); + + kvm_x86_ops->decache_cr4_guest_bits(vcpu); + + mmu_reset_needed |= vcpu->arch.cr0 != sregs->cr0; + kvm_x86_ops->set_cr0(vcpu, sregs->cr0); + vcpu->arch.cr0 = sregs->cr0; + + mmu_reset_needed |= vcpu->arch.cr4 != sregs->cr4; + kvm_x86_ops->set_cr4(vcpu, sregs->cr4); + if (!is_long_mode(vcpu) && is_pae(vcpu)) + load_pdptrs(vcpu, vcpu->arch.cr3); + + if (mmu_reset_needed) + kvm_mmu_reset_context(vcpu); + + if (!irqchip_in_kernel(vcpu->kvm)) { + memcpy(vcpu->arch.irq_pending, sregs->interrupt_bitmap, + sizeof vcpu->arch.irq_pending); + vcpu->arch.irq_summary = 0; + for (i = 0; i < ARRAY_SIZE(vcpu->arch.irq_pending); ++i) + if (vcpu->arch.irq_pending[i]) + __set_bit(i, &vcpu->arch.irq_summary); + } else { + max_bits = (sizeof sregs->interrupt_bitmap) << 3; + pending_vec = find_first_bit( + (const unsigned long *)sregs->interrupt_bitmap, + max_bits); + /* Only pending external irq is handled here */ + if (pending_vec < max_bits) { + kvm_x86_ops->set_irq(vcpu, pending_vec); + pr_debug("Set back pending irq %d\n", + pending_vec); + } + } + + set_segment(vcpu, &sregs->cs, VCPU_SREG_CS); + set_segment(vcpu, &sregs->ds, VCPU_SREG_DS); + set_segment(vcpu, &sregs->es, VCPU_SREG_ES); + set_segment(vcpu, &sregs->fs, VCPU_SREG_FS); + set_segment(vcpu, &sregs->gs, VCPU_SREG_GS); + set_segment(vcpu, &sregs->ss, VCPU_SREG_SS); + + set_segment(vcpu, &sregs->tr, VCPU_SREG_TR); + set_segment(vcpu, &sregs->ldt, VCPU_SREG_LDTR); + + vcpu_put(vcpu); + + return 0; +} + +int kvm_arch_vcpu_ioctl_debug_guest(struct kvm_vcpu *vcpu, + struct kvm_debug_guest *dbg) +{ + int r; + + vcpu_load(vcpu); + + r = kvm_x86_ops->set_guest_debug(vcpu, dbg); + + vcpu_put(vcpu); + + return r; +} + +/* + * fxsave fpu state. Taken from x86_64/processor.h. To be killed when + * we have asm/x86/processor.h + */ +struct fxsave { + u16 cwd; + u16 swd; + u16 twd; + u16 fop; + u64 rip; + u64 rdp; + u32 mxcsr; + u32 mxcsr_mask; + u32 st_space[32]; /* 8*16 bytes for each FP-reg = 128 bytes */ +#ifdef CONFIG_X86_64 + u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg = 256 bytes */ +#else + u32 xmm_space[32]; /* 8*16 bytes for each XMM-reg = 128 bytes */ +#endif +}; + +/* + * Translate a guest virtual address to a guest physical address. + */ +int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu, + struct kvm_translation *tr) +{ + unsigned long vaddr = tr->linear_address; + gpa_t gpa; + + vcpu_load(vcpu); + down_read(&vcpu->kvm->slots_lock); + gpa = vcpu->arch.mmu.gva_to_gpa(vcpu, vaddr); + up_read(&vcpu->kvm->slots_lock); + tr->physical_address = gpa; + tr->valid = gpa != UNMAPPED_GVA; + tr->writeable = 1; + tr->usermode = 0; + vcpu_put(vcpu); + + return 0; +} + +int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) +{ + struct fxsave *fxsave = (struct fxsave *)&vcpu->arch.guest_fx_image; + + vcpu_load(vcpu); + + memcpy(fpu->fpr, fxsave->st_space, 128); + fpu->fcw = fxsave->cwd; + fpu->fsw = fxsave->swd; + fpu->ftwx = fxsave->twd; + fpu->last_opcode = fxsave->fop; + fpu->last_ip = fxsave->rip; + fpu->last_dp = fxsave->rdp; + memcpy(fpu->xmm, fxsave->xmm_space, sizeof fxsave->xmm_space); + + vcpu_put(vcpu); + + return 0; +} + +int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) +{ + struct fxsave *fxsave = (struct fxsave *)&vcpu->arch.guest_fx_image; + + vcpu_load(vcpu); + + memcpy(fxsave->st_space, fpu->fpr, 128); + fxsave->cwd = fpu->fcw; + fxsave->swd = fpu->fsw; + fxsave->twd = fpu->ftwx; + fxsave->fop = fpu->last_opcode; + fxsave->rip = fpu->last_ip; + fxsave->rdp = fpu->last_dp; + memcpy(fxsave->xmm_space, fpu->xmm, sizeof fxsave->xmm_space); + + vcpu_put(vcpu); + + return 0; +} + +void fx_init(struct kvm_vcpu *vcpu) +{ + unsigned after_mxcsr_mask; + + /* Initialize guest FPU by resetting ours and saving into guest's */ + preempt_disable(); + fx_save(&vcpu->arch.host_fx_image); + fpu_init(); + fx_save(&vcpu->arch.guest_fx_image); + fx_restore(&vcpu->arch.host_fx_image); + preempt_enable(); + + vcpu->arch.cr0 |= X86_CR0_ET; + after_mxcsr_mask = offsetof(struct i387_fxsave_struct, st_space); + vcpu->arch.guest_fx_image.mxcsr = 0x1f80; + memset((void *)&vcpu->arch.guest_fx_image + after_mxcsr_mask, + 0, sizeof(struct i387_fxsave_struct) - after_mxcsr_mask); +} +EXPORT_SYMBOL_GPL(fx_init); + +void kvm_load_guest_fpu(struct kvm_vcpu *vcpu) +{ + if (!vcpu->fpu_active || vcpu->guest_fpu_loaded) + return; + + vcpu->guest_fpu_loaded = 1; + fx_save(&vcpu->arch.host_fx_image); + fx_restore(&vcpu->arch.guest_fx_image); +} +EXPORT_SYMBOL_GPL(kvm_load_guest_fpu); + +void kvm_put_guest_fpu(struct kvm_vcpu *vcpu) +{ + if (!vcpu->guest_fpu_loaded) + return; + + vcpu->guest_fpu_loaded = 0; + fx_save(&vcpu->arch.guest_fx_image); + fx_restore(&vcpu->arch.host_fx_image); + ++vcpu->stat.fpu_reload; +} +EXPORT_SYMBOL_GPL(kvm_put_guest_fpu); + +void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu) +{ + kvm_x86_ops->vcpu_free(vcpu); +} + +struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, + unsigned int id) +{ + return kvm_x86_ops->vcpu_create(kvm, id); +} + +int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu) +{ + int r; + + /* We do fxsave: this must be aligned. */ + BUG_ON((unsigned long)&vcpu->arch.host_fx_image & 0xF); + + vcpu_load(vcpu); + r = kvm_arch_vcpu_reset(vcpu); + if (r == 0) + r = kvm_mmu_setup(vcpu); + vcpu_put(vcpu); + if (r < 0) + goto free_vcpu; + + return 0; +free_vcpu: + kvm_x86_ops->vcpu_free(vcpu); + return r; +} + +void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu) +{ + vcpu_load(vcpu); + kvm_mmu_unload(vcpu); + vcpu_put(vcpu); + + kvm_x86_ops->vcpu_free(vcpu); +} + +int kvm_arch_vcpu_reset(struct kvm_vcpu *vcpu) +{ + return kvm_x86_ops->vcpu_reset(vcpu); +} + +void kvm_arch_hardware_enable(void *garbage) +{ + kvm_x86_ops->hardware_enable(garbage); +} + +void kvm_arch_hardware_disable(void *garbage) +{ + kvm_x86_ops->hardware_disable(garbage); +} + +int kvm_arch_hardware_setup(void) +{ + return kvm_x86_ops->hardware_setup(); +} + +void kvm_arch_hardware_unsetup(void) +{ + kvm_x86_ops->hardware_unsetup(); +} + +void kvm_arch_check_processor_compat(void *rtn) +{ + kvm_x86_ops->check_processor_compatibility(rtn); +} + +int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu) +{ + struct page *page; + struct kvm *kvm; + int r; + + BUG_ON(vcpu->kvm == NULL); + kvm = vcpu->kvm; + + vcpu->arch.mmu.root_hpa = INVALID_PAGE; + if (!irqchip_in_kernel(kvm) || vcpu->vcpu_id == 0) + vcpu->arch.mp_state = VCPU_MP_STATE_RUNNABLE; + else + vcpu->arch.mp_state = VCPU_MP_STATE_UNINITIALIZED; + + page = alloc_page(GFP_KERNEL | __GFP_ZERO); + if (!page) { + r = -ENOMEM; + goto fail; + } + vcpu->arch.pio_data = page_address(page); + + r = kvm_mmu_create(vcpu); + if (r < 0) + goto fail_free_pio_data; + + if (irqchip_in_kernel(kvm)) { + r = kvm_create_lapic(vcpu); + if (r < 0) + goto fail_mmu_destroy; + } + + return 0; + +fail_mmu_destroy: + kvm_mmu_destroy(vcpu); +fail_free_pio_data: + free_page((unsigned long)vcpu->arch.pio_data); +fail: + return r; +} + +void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) +{ + kvm_free_lapic(vcpu); + kvm_mmu_destroy(vcpu); + free_page((unsigned long)vcpu->arch.pio_data); +} + +struct kvm *kvm_arch_create_vm(void) +{ + struct kvm *kvm = kzalloc(sizeof(struct kvm), GFP_KERNEL); + + if (!kvm) + return ERR_PTR(-ENOMEM); + + INIT_LIST_HEAD(&kvm->arch.active_mmu_pages); + + return kvm; +} + +static void kvm_unload_vcpu_mmu(struct kvm_vcpu *vcpu) +{ + vcpu_load(vcpu); + kvm_mmu_unload(vcpu); + vcpu_put(vcpu); +} + +static void kvm_free_vcpus(struct kvm *kvm) +{ + unsigned int i; + + /* + * Unpin any mmu pages first. + */ + for (i = 0; i < KVM_MAX_VCPUS; ++i) + if (kvm->vcpus[i]) + kvm_unload_vcpu_mmu(kvm->vcpus[i]); + for (i = 0; i < KVM_MAX_VCPUS; ++i) { + if (kvm->vcpus[i]) { + kvm_arch_vcpu_free(kvm->vcpus[i]); + kvm->vcpus[i] = NULL; + } + } + +} + +void kvm_arch_destroy_vm(struct kvm *kvm) +{ + kfree(kvm->arch.vpic); + kfree(kvm->arch.vioapic); + kvm_free_vcpus(kvm); + kvm_free_physmem(kvm); + kfree(kvm); +} + +int kvm_arch_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + struct kvm_memory_slot old, + int user_alloc) +{ + int npages = mem->memory_size >> PAGE_SHIFT; + struct kvm_memory_slot *memslot = &kvm->memslots[mem->slot]; + + /*To keep backward compatibility with older userspace, + *x86 needs to hanlde !user_alloc case. + */ + if (!user_alloc) { + if (npages && !old.rmap) { + down_write(¤t->mm->mmap_sem); + memslot->userspace_addr = do_mmap(NULL, 0, + npages * PAGE_SIZE, + PROT_READ | PROT_WRITE, + MAP_SHARED | MAP_ANONYMOUS, + 0); + up_write(¤t->mm->mmap_sem); + + if (IS_ERR((void *)memslot->userspace_addr)) + return PTR_ERR((void *)memslot->userspace_addr); + } else { + if (!old.user_alloc && old.rmap) { + int ret; + + down_write(¤t->mm->mmap_sem); + ret = do_munmap(current->mm, old.userspace_addr, + old.npages * PAGE_SIZE); + up_write(¤t->mm->mmap_sem); + if (ret < 0) + printk(KERN_WARNING + "kvm_vm_ioctl_set_memory_region: " + "failed to munmap memory\n"); + } + } + } + + if (!kvm->arch.n_requested_mmu_pages) { + unsigned int nr_mmu_pages = kvm_mmu_calculate_mmu_pages(kvm); + kvm_mmu_change_mmu_pages(kvm, nr_mmu_pages); + } + + kvm_mmu_slot_remove_write_access(kvm, mem->slot); + kvm_flush_remote_tlbs(kvm); + + return 0; +} + +int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.mp_state == VCPU_MP_STATE_RUNNABLE + || vcpu->arch.mp_state == VCPU_MP_STATE_SIPI_RECEIVED; +} + +static void vcpu_kick_intr(void *info) +{ +#ifdef DEBUG + struct kvm_vcpu *vcpu = (struct kvm_vcpu *)info; + printk(KERN_DEBUG "vcpu_kick_intr %p \n", vcpu); +#endif +} + +void kvm_vcpu_kick(struct kvm_vcpu *vcpu) +{ + int ipi_pcpu = vcpu->cpu; + + if (waitqueue_active(&vcpu->wq)) { + wake_up_interruptible(&vcpu->wq); + ++vcpu->stat.halt_wakeup; + } + if (vcpu->guest_mode) + smp_call_function_single(ipi_pcpu, vcpu_kick_intr, vcpu, 0, 0); +} --- linux-2.6.24.orig/arch/x86/kvm/svm.c +++ linux-2.6.24/arch/x86/kvm/svm.c @@ -0,0 +1,1874 @@ +/* + * Kernel-based Virtual Machine driver for Linux + * + * AMD SVM support + * + * Copyright (C) 2006 Qumranet, Inc. + * + * Authors: + * Yaniv Kamay + * Avi Kivity + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ +#include + +#include "kvm_svm.h" +#include "irq.h" +#include "mmu.h" + +#include +#include +#include +#include +#include + +#include + +MODULE_AUTHOR("Qumranet"); +MODULE_LICENSE("GPL"); + +#define IOPM_ALLOC_ORDER 2 +#define MSRPM_ALLOC_ORDER 1 + +#define DB_VECTOR 1 +#define UD_VECTOR 6 +#define GP_VECTOR 13 + +#define DR7_GD_MASK (1 << 13) +#define DR6_BD_MASK (1 << 13) + +#define SEG_TYPE_LDT 2 +#define SEG_TYPE_BUSY_TSS16 3 + +#define SVM_FEATURE_NPT (1 << 0) +#define SVM_FEATURE_LBRV (1 << 1) +#define SVM_DEATURE_SVML (1 << 2) + +#define DEBUGCTL_RESERVED_BITS (~(0x3fULL)) + +/* enable NPT for AMD64 and X86 with PAE */ +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE) +static bool npt_enabled = true; +#else +static bool npt_enabled = false; +#endif +static int npt = 1; + +module_param(npt, int, S_IRUGO); + +static void kvm_reput_irq(struct vcpu_svm *svm); + +static inline struct vcpu_svm *to_svm(struct kvm_vcpu *vcpu) +{ + return container_of(vcpu, struct vcpu_svm, vcpu); +} + +static unsigned long iopm_base; + +struct kvm_ldttss_desc { + u16 limit0; + u16 base0; + unsigned base1 : 8, type : 5, dpl : 2, p : 1; + unsigned limit1 : 4, zero0 : 3, g : 1, base2 : 8; + u32 base3; + u32 zero1; +} __attribute__((packed)); + +struct svm_cpu_data { + int cpu; + + u64 asid_generation; + u32 max_asid; + u32 next_asid; + struct kvm_ldttss_desc *tss_desc; + + struct page *save_area; +}; + +static DEFINE_PER_CPU(struct svm_cpu_data *, svm_data); +static uint32_t svm_features; + +struct svm_init_data { + int cpu; + int r; +}; + +static u32 msrpm_ranges[] = {0, 0xc0000000, 0xc0010000}; + +#define NUM_MSR_MAPS ARRAY_SIZE(msrpm_ranges) +#define MSRS_RANGE_SIZE 2048 +#define MSRS_IN_RANGE (MSRS_RANGE_SIZE * 8 / 2) + +#define MAX_INST_SIZE 15 + +static inline u32 svm_has(u32 feat) +{ + return svm_features & feat; +} + +static inline u8 pop_irq(struct kvm_vcpu *vcpu) +{ + int word_index = __ffs(vcpu->arch.irq_summary); + int bit_index = __ffs(vcpu->arch.irq_pending[word_index]); + int irq = word_index * BITS_PER_LONG + bit_index; + + clear_bit(bit_index, &vcpu->arch.irq_pending[word_index]); + if (!vcpu->arch.irq_pending[word_index]) + clear_bit(word_index, &vcpu->arch.irq_summary); + return irq; +} + +static inline void push_irq(struct kvm_vcpu *vcpu, u8 irq) +{ + set_bit(irq, vcpu->arch.irq_pending); + set_bit(irq / BITS_PER_LONG, &vcpu->arch.irq_summary); +} + +static inline void clgi(void) +{ + asm volatile (SVM_CLGI); +} + +static inline void stgi(void) +{ + asm volatile (SVM_STGI); +} + +static inline void invlpga(unsigned long addr, u32 asid) +{ + asm volatile (SVM_INVLPGA :: "a"(addr), "c"(asid)); +} + +static inline unsigned long kvm_read_cr2(void) +{ + unsigned long cr2; + + asm volatile ("mov %%cr2, %0" : "=r" (cr2)); + return cr2; +} + +static inline void kvm_write_cr2(unsigned long val) +{ + asm volatile ("mov %0, %%cr2" :: "r" (val)); +} + +static inline unsigned long read_dr6(void) +{ + unsigned long dr6; + + asm volatile ("mov %%dr6, %0" : "=r" (dr6)); + return dr6; +} + +static inline void write_dr6(unsigned long val) +{ + asm volatile ("mov %0, %%dr6" :: "r" (val)); +} + +static inline unsigned long read_dr7(void) +{ + unsigned long dr7; + + asm volatile ("mov %%dr7, %0" : "=r" (dr7)); + return dr7; +} + +static inline void write_dr7(unsigned long val) +{ + asm volatile ("mov %0, %%dr7" :: "r" (val)); +} + +static inline void force_new_asid(struct kvm_vcpu *vcpu) +{ + to_svm(vcpu)->asid_generation--; +} + +static inline void flush_guest_tlb(struct kvm_vcpu *vcpu) +{ + force_new_asid(vcpu); +} + +static void svm_set_efer(struct kvm_vcpu *vcpu, u64 efer) +{ + if (!npt_enabled && !(efer & EFER_LMA)) + efer &= ~EFER_LME; + + to_svm(vcpu)->vmcb->save.efer = efer | MSR_EFER_SVME_MASK; + vcpu->arch.shadow_efer = efer; +} + +static void svm_queue_exception(struct kvm_vcpu *vcpu, unsigned nr, + bool has_error_code, u32 error_code) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + svm->vmcb->control.event_inj = nr + | SVM_EVTINJ_VALID + | (has_error_code ? SVM_EVTINJ_VALID_ERR : 0) + | SVM_EVTINJ_TYPE_EXEPT; + svm->vmcb->control.event_inj_err = error_code; +} + +static bool svm_exception_injected(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + return !(svm->vmcb->control.exit_int_info & SVM_EXITINTINFO_VALID); +} + +static int is_external_interrupt(u32 info) +{ + info &= SVM_EVTINJ_TYPE_MASK | SVM_EVTINJ_VALID; + return info == (SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_INTR); +} + +static void skip_emulated_instruction(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + if (!svm->next_rip) { + printk(KERN_DEBUG "%s: NOP\n", __FUNCTION__); + return; + } + if (svm->next_rip - svm->vmcb->save.rip > MAX_INST_SIZE) + printk(KERN_ERR "%s: ip 0x%llx next 0x%llx\n", + __FUNCTION__, + svm->vmcb->save.rip, + svm->next_rip); + + vcpu->arch.rip = svm->vmcb->save.rip = svm->next_rip; + svm->vmcb->control.int_state &= ~SVM_INTERRUPT_SHADOW_MASK; + + vcpu->arch.interrupt_window_open = 1; +} + +static int has_svm(void) +{ + uint32_t eax, ebx, ecx, edx; + + if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD) { + printk(KERN_INFO "has_svm: not amd\n"); + return 0; + } + + cpuid(0x80000000, &eax, &ebx, &ecx, &edx); + if (eax < SVM_CPUID_FUNC) { + printk(KERN_INFO "has_svm: can't execute cpuid_8000000a\n"); + return 0; + } + + cpuid(0x80000001, &eax, &ebx, &ecx, &edx); + if (!(ecx & (1 << SVM_CPUID_FEATURE_SHIFT))) { + printk(KERN_DEBUG "has_svm: svm not available\n"); + return 0; + } + return 1; +} + +static void svm_hardware_disable(void *garbage) +{ + struct svm_cpu_data *svm_data + = per_cpu(svm_data, raw_smp_processor_id()); + + if (svm_data) { + uint64_t efer; + + wrmsrl(MSR_VM_HSAVE_PA, 0); + rdmsrl(MSR_EFER, efer); + wrmsrl(MSR_EFER, efer & ~MSR_EFER_SVME_MASK); + per_cpu(svm_data, raw_smp_processor_id()) = NULL; + __free_page(svm_data->save_area); + kfree(svm_data); + } +} + +static void svm_hardware_enable(void *garbage) +{ + + struct svm_cpu_data *svm_data; + uint64_t efer; +#ifdef CONFIG_X86_64 + struct desc_ptr gdt_descr; +#else + struct Xgt_desc_struct gdt_descr; +#endif + struct desc_struct *gdt; + int me = raw_smp_processor_id(); + + if (!has_svm()) { + printk(KERN_ERR "svm_cpu_init: err EOPNOTSUPP on %d\n", me); + return; + } + svm_data = per_cpu(svm_data, me); + + if (!svm_data) { + printk(KERN_ERR "svm_cpu_init: svm_data is NULL on %d\n", + me); + return; + } + + svm_data->asid_generation = 1; + svm_data->max_asid = cpuid_ebx(SVM_CPUID_FUNC) - 1; + svm_data->next_asid = svm_data->max_asid + 1; + + asm volatile ("sgdt %0" : "=m"(gdt_descr)); + gdt = (struct desc_struct *)gdt_descr.address; + svm_data->tss_desc = (struct kvm_ldttss_desc *)(gdt + GDT_ENTRY_TSS); + + rdmsrl(MSR_EFER, efer); + wrmsrl(MSR_EFER, efer | MSR_EFER_SVME_MASK); + + wrmsrl(MSR_VM_HSAVE_PA, + page_to_pfn(svm_data->save_area) << PAGE_SHIFT); +} + +static int svm_cpu_init(int cpu) +{ + struct svm_cpu_data *svm_data; + int r; + + svm_data = kzalloc(sizeof(struct svm_cpu_data), GFP_KERNEL); + if (!svm_data) + return -ENOMEM; + svm_data->cpu = cpu; + svm_data->save_area = alloc_page(GFP_KERNEL); + r = -ENOMEM; + if (!svm_data->save_area) + goto err_1; + + per_cpu(svm_data, cpu) = svm_data; + + return 0; + +err_1: + kfree(svm_data); + return r; + +} + +static void set_msr_interception(u32 *msrpm, unsigned msr, + int read, int write) +{ + int i; + + for (i = 0; i < NUM_MSR_MAPS; i++) { + if (msr >= msrpm_ranges[i] && + msr < msrpm_ranges[i] + MSRS_IN_RANGE) { + u32 msr_offset = (i * MSRS_IN_RANGE + msr - + msrpm_ranges[i]) * 2; + + u32 *base = msrpm + (msr_offset / 32); + u32 msr_shift = msr_offset % 32; + u32 mask = ((write) ? 0 : 2) | ((read) ? 0 : 1); + *base = (*base & ~(0x3 << msr_shift)) | + (mask << msr_shift); + return; + } + } + BUG(); +} + +static void svm_vcpu_init_msrpm(u32 *msrpm) +{ + memset(msrpm, 0xff, PAGE_SIZE * (1 << MSRPM_ALLOC_ORDER)); + +#ifdef CONFIG_X86_64 + set_msr_interception(msrpm, MSR_GS_BASE, 1, 1); + set_msr_interception(msrpm, MSR_FS_BASE, 1, 1); + set_msr_interception(msrpm, MSR_KERNEL_GS_BASE, 1, 1); + set_msr_interception(msrpm, MSR_LSTAR, 1, 1); + set_msr_interception(msrpm, MSR_CSTAR, 1, 1); + set_msr_interception(msrpm, MSR_SYSCALL_MASK, 1, 1); +#endif + set_msr_interception(msrpm, MSR_K6_STAR, 1, 1); + set_msr_interception(msrpm, MSR_IA32_SYSENTER_CS, 1, 1); + set_msr_interception(msrpm, MSR_IA32_SYSENTER_ESP, 1, 1); + set_msr_interception(msrpm, MSR_IA32_SYSENTER_EIP, 1, 1); +} + +static void svm_enable_lbrv(struct vcpu_svm *svm) +{ + u32 *msrpm = svm->msrpm; + + svm->vmcb->control.lbr_ctl = 1; + set_msr_interception(msrpm, MSR_IA32_LASTBRANCHFROMIP, 1, 1); + set_msr_interception(msrpm, MSR_IA32_LASTBRANCHTOIP, 1, 1); + set_msr_interception(msrpm, MSR_IA32_LASTINTFROMIP, 1, 1); + set_msr_interception(msrpm, MSR_IA32_LASTINTTOIP, 1, 1); +} + +static void svm_disable_lbrv(struct vcpu_svm *svm) +{ + u32 *msrpm = svm->msrpm; + + svm->vmcb->control.lbr_ctl = 0; + set_msr_interception(msrpm, MSR_IA32_LASTBRANCHFROMIP, 0, 0); + set_msr_interception(msrpm, MSR_IA32_LASTBRANCHTOIP, 0, 0); + set_msr_interception(msrpm, MSR_IA32_LASTINTFROMIP, 0, 0); + set_msr_interception(msrpm, MSR_IA32_LASTINTTOIP, 0, 0); +} + +static __init int svm_hardware_setup(void) +{ + int cpu; + struct page *iopm_pages; + void *iopm_va; + int r; + + iopm_pages = alloc_pages(GFP_KERNEL, IOPM_ALLOC_ORDER); + + if (!iopm_pages) + return -ENOMEM; + + iopm_va = page_address(iopm_pages); + memset(iopm_va, 0xff, PAGE_SIZE * (1 << IOPM_ALLOC_ORDER)); + clear_bit(0x80, iopm_va); /* allow direct access to PC debug port */ + iopm_base = page_to_pfn(iopm_pages) << PAGE_SHIFT; + + if (boot_cpu_has(X86_FEATURE_NX)) + kvm_enable_efer_bits(EFER_NX); + + for_each_online_cpu(cpu) { + r = svm_cpu_init(cpu); + if (r) + goto err; + } + + svm_features = cpuid_edx(SVM_CPUID_FUNC); + + if (!svm_has(SVM_FEATURE_NPT)) + npt_enabled = false; + + if (npt_enabled && !npt) { + printk(KERN_INFO "kvm: Nested Paging disabled\n"); + npt_enabled = false; + } + + if (npt_enabled) { + printk(KERN_INFO "kvm: Nested Paging enabled\n"); + kvm_enable_tdp(); + } + + return 0; + +err: + __free_pages(iopm_pages, IOPM_ALLOC_ORDER); + iopm_base = 0; + return r; +} + +static __exit void svm_hardware_unsetup(void) +{ + __free_pages(pfn_to_page(iopm_base >> PAGE_SHIFT), IOPM_ALLOC_ORDER); + iopm_base = 0; +} + +static void init_seg(struct vmcb_seg *seg) +{ + seg->selector = 0; + seg->attrib = SVM_SELECTOR_P_MASK | SVM_SELECTOR_S_MASK | + SVM_SELECTOR_WRITE_MASK; /* Read/Write Data Segment */ + seg->limit = 0xffff; + seg->base = 0; +} + +static void init_sys_seg(struct vmcb_seg *seg, uint32_t type) +{ + seg->selector = 0; + seg->attrib = SVM_SELECTOR_P_MASK | type; + seg->limit = 0xffff; + seg->base = 0; +} + +static void init_vmcb(struct vcpu_svm *svm) +{ + struct vmcb_control_area *control = &svm->vmcb->control; + struct vmcb_save_area *save = &svm->vmcb->save; + + control->intercept_cr_read = INTERCEPT_CR0_MASK | + INTERCEPT_CR3_MASK | + INTERCEPT_CR4_MASK | + INTERCEPT_CR8_MASK; + + control->intercept_cr_write = INTERCEPT_CR0_MASK | + INTERCEPT_CR3_MASK | + INTERCEPT_CR4_MASK | + INTERCEPT_CR8_MASK; + + control->intercept_dr_read = INTERCEPT_DR0_MASK | + INTERCEPT_DR1_MASK | + INTERCEPT_DR2_MASK | + INTERCEPT_DR3_MASK; + + control->intercept_dr_write = INTERCEPT_DR0_MASK | + INTERCEPT_DR1_MASK | + INTERCEPT_DR2_MASK | + INTERCEPT_DR3_MASK | + INTERCEPT_DR5_MASK | + INTERCEPT_DR7_MASK; + + control->intercept_exceptions = (1 << PF_VECTOR) | + (1 << UD_VECTOR); + + + control->intercept = (1ULL << INTERCEPT_INTR) | + (1ULL << INTERCEPT_NMI) | + (1ULL << INTERCEPT_SMI) | + /* + * selective cr0 intercept bug? + * 0: 0f 22 d8 mov %eax,%cr3 + * 3: 0f 20 c0 mov %cr0,%eax + * 6: 0d 00 00 00 80 or $0x80000000,%eax + * b: 0f 22 c0 mov %eax,%cr0 + * set cr3 ->interception + * get cr0 ->interception + * set cr0 -> no interception + */ + /* (1ULL << INTERCEPT_SELECTIVE_CR0) | */ + (1ULL << INTERCEPT_CPUID) | + (1ULL << INTERCEPT_INVD) | + (1ULL << INTERCEPT_HLT) | + (1ULL << INTERCEPT_INVLPGA) | + (1ULL << INTERCEPT_IOIO_PROT) | + (1ULL << INTERCEPT_MSR_PROT) | + (1ULL << INTERCEPT_TASK_SWITCH) | + (1ULL << INTERCEPT_SHUTDOWN) | + (1ULL << INTERCEPT_VMRUN) | + (1ULL << INTERCEPT_VMMCALL) | + (1ULL << INTERCEPT_VMLOAD) | + (1ULL << INTERCEPT_VMSAVE) | + (1ULL << INTERCEPT_STGI) | + (1ULL << INTERCEPT_CLGI) | + (1ULL << INTERCEPT_SKINIT) | + (1ULL << INTERCEPT_WBINVD) | + (1ULL << INTERCEPT_MONITOR) | + (1ULL << INTERCEPT_MWAIT); + + control->iopm_base_pa = iopm_base; + control->msrpm_base_pa = __pa(svm->msrpm); + control->tsc_offset = 0; + control->int_ctl = V_INTR_MASKING_MASK; + + init_seg(&save->es); + init_seg(&save->ss); + init_seg(&save->ds); + init_seg(&save->fs); + init_seg(&save->gs); + + save->cs.selector = 0xf000; + /* Executable/Readable Code Segment */ + save->cs.attrib = SVM_SELECTOR_READ_MASK | SVM_SELECTOR_P_MASK | + SVM_SELECTOR_S_MASK | SVM_SELECTOR_CODE_MASK; + save->cs.limit = 0xffff; + /* + * cs.base should really be 0xffff0000, but vmx can't handle that, so + * be consistent with it. + * + * Replace when we have real mode working for vmx. + */ + save->cs.base = 0xf0000; + + save->gdtr.limit = 0xffff; + save->idtr.limit = 0xffff; + + init_sys_seg(&save->ldtr, SEG_TYPE_LDT); + init_sys_seg(&save->tr, SEG_TYPE_BUSY_TSS16); + + save->efer = MSR_EFER_SVME_MASK; + save->dr6 = 0xffff0ff0; + save->dr7 = 0x400; + save->rflags = 2; + save->rip = 0x0000fff0; + + /* + * cr0 val on cpu init should be 0x60000010, we enable cpu + * cache by default. the orderly way is to enable cache in bios. + */ + save->cr0 = 0x00000010 | X86_CR0_PG | X86_CR0_WP; + save->cr4 = X86_CR4_PAE; + /* rdx = ?? */ + + if (npt_enabled) { + /* Setup VMCB for Nested Paging */ + control->nested_ctl = 1; + control->intercept_exceptions &= ~(1 << PF_VECTOR); + control->intercept_cr_read &= ~(INTERCEPT_CR0_MASK| + INTERCEPT_CR3_MASK); + control->intercept_cr_write &= ~(INTERCEPT_CR0_MASK| + INTERCEPT_CR3_MASK); + save->g_pat = 0x0007040600070406ULL; + /* enable caching because the QEMU Bios doesn't enable it */ + save->cr0 = X86_CR0_ET; + save->cr3 = 0; + save->cr4 = 0; + } + +} + +static int svm_vcpu_reset(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + init_vmcb(svm); + + if (vcpu->vcpu_id != 0) { + svm->vmcb->save.rip = 0; + svm->vmcb->save.cs.base = svm->vcpu.arch.sipi_vector << 12; + svm->vmcb->save.cs.selector = svm->vcpu.arch.sipi_vector << 8; + } + + return 0; +} + +static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id) +{ + struct vcpu_svm *svm; + struct page *page; + struct page *msrpm_pages; + int err; + + svm = kmem_cache_zalloc(kvm_vcpu_cache, GFP_KERNEL); + if (!svm) { + err = -ENOMEM; + goto out; + } + + err = kvm_vcpu_init(&svm->vcpu, kvm, id); + if (err) + goto free_svm; + + page = alloc_page(GFP_KERNEL); + if (!page) { + err = -ENOMEM; + goto uninit; + } + + err = -ENOMEM; + msrpm_pages = alloc_pages(GFP_KERNEL, MSRPM_ALLOC_ORDER); + if (!msrpm_pages) + goto uninit; + svm->msrpm = page_address(msrpm_pages); + svm_vcpu_init_msrpm(svm->msrpm); + + svm->vmcb = page_address(page); + clear_page(svm->vmcb); + svm->vmcb_pa = page_to_pfn(page) << PAGE_SHIFT; + svm->asid_generation = 0; + memset(svm->db_regs, 0, sizeof(svm->db_regs)); + init_vmcb(svm); + + fx_init(&svm->vcpu); + svm->vcpu.fpu_active = 1; + svm->vcpu.arch.apic_base = 0xfee00000 | MSR_IA32_APICBASE_ENABLE; + if (svm->vcpu.vcpu_id == 0) + svm->vcpu.arch.apic_base |= MSR_IA32_APICBASE_BSP; + + return &svm->vcpu; + +uninit: + kvm_vcpu_uninit(&svm->vcpu); +free_svm: + kmem_cache_free(kvm_vcpu_cache, svm); +out: + return ERR_PTR(err); +} + +static void svm_free_vcpu(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + __free_page(pfn_to_page(svm->vmcb_pa >> PAGE_SHIFT)); + __free_pages(virt_to_page(svm->msrpm), MSRPM_ALLOC_ORDER); + kvm_vcpu_uninit(vcpu); + kmem_cache_free(kvm_vcpu_cache, svm); +} + +static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + int i; + + if (unlikely(cpu != vcpu->cpu)) { + u64 tsc_this, delta; + + /* + * Make sure that the guest sees a monotonically + * increasing TSC. + */ + rdtscll(tsc_this); + delta = vcpu->arch.host_tsc - tsc_this; + svm->vmcb->control.tsc_offset += delta; + vcpu->cpu = cpu; + kvm_migrate_apic_timer(vcpu); + } + + for (i = 0; i < NR_HOST_SAVE_USER_MSRS; i++) + rdmsrl(host_save_user_msrs[i], svm->host_user_msrs[i]); +} + +static void svm_vcpu_put(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + int i; + + ++vcpu->stat.host_state_reload; + for (i = 0; i < NR_HOST_SAVE_USER_MSRS; i++) + wrmsrl(host_save_user_msrs[i], svm->host_user_msrs[i]); + + rdtscll(vcpu->arch.host_tsc); +} + +static void svm_vcpu_decache(struct kvm_vcpu *vcpu) +{ +} + +static void svm_cache_regs(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + vcpu->arch.regs[VCPU_REGS_RAX] = svm->vmcb->save.rax; + vcpu->arch.regs[VCPU_REGS_RSP] = svm->vmcb->save.rsp; + vcpu->arch.rip = svm->vmcb->save.rip; +} + +static void svm_decache_regs(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + svm->vmcb->save.rax = vcpu->arch.regs[VCPU_REGS_RAX]; + svm->vmcb->save.rsp = vcpu->arch.regs[VCPU_REGS_RSP]; + svm->vmcb->save.rip = vcpu->arch.rip; +} + +static unsigned long svm_get_rflags(struct kvm_vcpu *vcpu) +{ + return to_svm(vcpu)->vmcb->save.rflags; +} + +static void svm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags) +{ + to_svm(vcpu)->vmcb->save.rflags = rflags; +} + +static struct vmcb_seg *svm_seg(struct kvm_vcpu *vcpu, int seg) +{ + struct vmcb_save_area *save = &to_svm(vcpu)->vmcb->save; + + switch (seg) { + case VCPU_SREG_CS: return &save->cs; + case VCPU_SREG_DS: return &save->ds; + case VCPU_SREG_ES: return &save->es; + case VCPU_SREG_FS: return &save->fs; + case VCPU_SREG_GS: return &save->gs; + case VCPU_SREG_SS: return &save->ss; + case VCPU_SREG_TR: return &save->tr; + case VCPU_SREG_LDTR: return &save->ldtr; + } + BUG(); + return NULL; +} + +static u64 svm_get_segment_base(struct kvm_vcpu *vcpu, int seg) +{ + struct vmcb_seg *s = svm_seg(vcpu, seg); + + return s->base; +} + +static void svm_get_segment(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg) +{ + struct vmcb_seg *s = svm_seg(vcpu, seg); + + var->base = s->base; + var->limit = s->limit; + var->selector = s->selector; + var->type = s->attrib & SVM_SELECTOR_TYPE_MASK; + var->s = (s->attrib >> SVM_SELECTOR_S_SHIFT) & 1; + var->dpl = (s->attrib >> SVM_SELECTOR_DPL_SHIFT) & 3; + var->present = (s->attrib >> SVM_SELECTOR_P_SHIFT) & 1; + var->avl = (s->attrib >> SVM_SELECTOR_AVL_SHIFT) & 1; + var->l = (s->attrib >> SVM_SELECTOR_L_SHIFT) & 1; + var->db = (s->attrib >> SVM_SELECTOR_DB_SHIFT) & 1; + var->g = (s->attrib >> SVM_SELECTOR_G_SHIFT) & 1; + var->unusable = !var->present; +} + +static void svm_get_idt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + dt->limit = svm->vmcb->save.idtr.limit; + dt->base = svm->vmcb->save.idtr.base; +} + +static void svm_set_idt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + svm->vmcb->save.idtr.limit = dt->limit; + svm->vmcb->save.idtr.base = dt->base ; +} + +static void svm_get_gdt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + dt->limit = svm->vmcb->save.gdtr.limit; + dt->base = svm->vmcb->save.gdtr.base; +} + +static void svm_set_gdt(struct kvm_vcpu *vcpu, struct descriptor_table *dt) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + svm->vmcb->save.gdtr.limit = dt->limit; + svm->vmcb->save.gdtr.base = dt->base ; +} + +static void svm_decache_cr4_guest_bits(struct kvm_vcpu *vcpu) +{ +} + +static void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0) +{ + struct vcpu_svm *svm = to_svm(vcpu); + +#ifdef CONFIG_X86_64 + if (vcpu->arch.shadow_efer & EFER_LME) { + if (!is_paging(vcpu) && (cr0 & X86_CR0_PG)) { + vcpu->arch.shadow_efer |= EFER_LMA; + svm->vmcb->save.efer |= EFER_LMA | EFER_LME; + } + + if (is_paging(vcpu) && !(cr0 & X86_CR0_PG)) { + vcpu->arch.shadow_efer &= ~EFER_LMA; + svm->vmcb->save.efer &= ~(EFER_LMA | EFER_LME); + } + } +#endif + if (npt_enabled) + goto set; + + if ((vcpu->arch.cr0 & X86_CR0_TS) && !(cr0 & X86_CR0_TS)) { + svm->vmcb->control.intercept_exceptions &= ~(1 << NM_VECTOR); + vcpu->fpu_active = 1; + } + + vcpu->arch.cr0 = cr0; + cr0 |= X86_CR0_PG | X86_CR0_WP; + if (!vcpu->fpu_active) { + svm->vmcb->control.intercept_exceptions |= (1 << NM_VECTOR); + cr0 |= X86_CR0_TS; + } +set: + /* + * re-enable caching here because the QEMU bios + * does not do it - this results in some delay at + * reboot + */ + cr0 &= ~(X86_CR0_CD | X86_CR0_NW); + svm->vmcb->save.cr0 = cr0; +} + +static void svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) +{ + vcpu->arch.cr4 = cr4; + if (!npt_enabled) + cr4 |= X86_CR4_PAE; + to_svm(vcpu)->vmcb->save.cr4 = cr4; +} + +static void svm_set_segment(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg) +{ + struct vcpu_svm *svm = to_svm(vcpu); + struct vmcb_seg *s = svm_seg(vcpu, seg); + + s->base = var->base; + s->limit = var->limit; + s->selector = var->selector; + if (var->unusable) + s->attrib = 0; + else { + s->attrib = (var->type & SVM_SELECTOR_TYPE_MASK); + s->attrib |= (var->s & 1) << SVM_SELECTOR_S_SHIFT; + s->attrib |= (var->dpl & 3) << SVM_SELECTOR_DPL_SHIFT; + s->attrib |= (var->present & 1) << SVM_SELECTOR_P_SHIFT; + s->attrib |= (var->avl & 1) << SVM_SELECTOR_AVL_SHIFT; + s->attrib |= (var->l & 1) << SVM_SELECTOR_L_SHIFT; + s->attrib |= (var->db & 1) << SVM_SELECTOR_DB_SHIFT; + s->attrib |= (var->g & 1) << SVM_SELECTOR_G_SHIFT; + } + if (seg == VCPU_SREG_CS) + svm->vmcb->save.cpl + = (svm->vmcb->save.cs.attrib + >> SVM_SELECTOR_DPL_SHIFT) & 3; + +} + +/* FIXME: + + svm(vcpu)->vmcb->control.int_ctl &= ~V_TPR_MASK; + svm(vcpu)->vmcb->control.int_ctl |= (sregs->cr8 & V_TPR_MASK); + +*/ + +static int svm_guest_debug(struct kvm_vcpu *vcpu, struct kvm_debug_guest *dbg) +{ + return -EOPNOTSUPP; +} + +static int svm_get_irq(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + u32 exit_int_info = svm->vmcb->control.exit_int_info; + + if (is_external_interrupt(exit_int_info)) + return exit_int_info & SVM_EVTINJ_VEC_MASK; + return -1; +} + +static void load_host_msrs(struct kvm_vcpu *vcpu) +{ +#ifdef CONFIG_X86_64 + wrmsrl(MSR_GS_BASE, to_svm(vcpu)->host_gs_base); +#endif +} + +static void save_host_msrs(struct kvm_vcpu *vcpu) +{ +#ifdef CONFIG_X86_64 + rdmsrl(MSR_GS_BASE, to_svm(vcpu)->host_gs_base); +#endif +} + +static void new_asid(struct vcpu_svm *svm, struct svm_cpu_data *svm_data) +{ + if (svm_data->next_asid > svm_data->max_asid) { + ++svm_data->asid_generation; + svm_data->next_asid = 1; + svm->vmcb->control.tlb_ctl = TLB_CONTROL_FLUSH_ALL_ASID; + } + + svm->vcpu.cpu = svm_data->cpu; + svm->asid_generation = svm_data->asid_generation; + svm->vmcb->control.asid = svm_data->next_asid++; +} + +static unsigned long svm_get_dr(struct kvm_vcpu *vcpu, int dr) +{ + return to_svm(vcpu)->db_regs[dr]; +} + +static void svm_set_dr(struct kvm_vcpu *vcpu, int dr, unsigned long value, + int *exception) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + *exception = 0; + + if (svm->vmcb->save.dr7 & DR7_GD_MASK) { + svm->vmcb->save.dr7 &= ~DR7_GD_MASK; + svm->vmcb->save.dr6 |= DR6_BD_MASK; + *exception = DB_VECTOR; + return; + } + + switch (dr) { + case 0 ... 3: + svm->db_regs[dr] = value; + return; + case 4 ... 5: + if (vcpu->arch.cr4 & X86_CR4_DE) { + *exception = UD_VECTOR; + return; + } + case 7: { + if (value & ~((1ULL << 32) - 1)) { + *exception = GP_VECTOR; + return; + } + svm->vmcb->save.dr7 = value; + return; + } + default: + printk(KERN_DEBUG "%s: unexpected dr %u\n", + __FUNCTION__, dr); + *exception = UD_VECTOR; + return; + } +} + +static int pf_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + u32 exit_int_info = svm->vmcb->control.exit_int_info; + struct kvm *kvm = svm->vcpu.kvm; + u64 fault_address; + u32 error_code; + + if (!irqchip_in_kernel(kvm) && + is_external_interrupt(exit_int_info)) + push_irq(&svm->vcpu, exit_int_info & SVM_EVTINJ_VEC_MASK); + + fault_address = svm->vmcb->control.exit_info_2; + error_code = svm->vmcb->control.exit_info_1; + return kvm_mmu_page_fault(&svm->vcpu, fault_address, error_code); +} + +static int ud_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + int er; + + er = emulate_instruction(&svm->vcpu, kvm_run, 0, 0, EMULTYPE_TRAP_UD); + if (er != EMULATE_DONE) + kvm_queue_exception(&svm->vcpu, UD_VECTOR); + return 1; +} + +static int nm_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + svm->vmcb->control.intercept_exceptions &= ~(1 << NM_VECTOR); + if (!(svm->vcpu.arch.cr0 & X86_CR0_TS)) + svm->vmcb->save.cr0 &= ~X86_CR0_TS; + svm->vcpu.fpu_active = 1; + + return 1; +} + +static int shutdown_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + /* + * VMCB is undefined after a SHUTDOWN intercept + * so reinitialize it. + */ + clear_page(svm->vmcb); + init_vmcb(svm); + + kvm_run->exit_reason = KVM_EXIT_SHUTDOWN; + return 0; +} + +static int io_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + u32 io_info = svm->vmcb->control.exit_info_1; /* address size bug? */ + int size, down, in, string, rep; + unsigned port; + + ++svm->vcpu.stat.io_exits; + + svm->next_rip = svm->vmcb->control.exit_info_2; + + string = (io_info & SVM_IOIO_STR_MASK) != 0; + + if (string) { + if (emulate_instruction(&svm->vcpu, + kvm_run, 0, 0, 0) == EMULATE_DO_MMIO) + return 0; + return 1; + } + + in = (io_info & SVM_IOIO_TYPE_MASK) != 0; + port = io_info >> 16; + size = (io_info & SVM_IOIO_SIZE_MASK) >> SVM_IOIO_SIZE_SHIFT; + rep = (io_info & SVM_IOIO_REP_MASK) != 0; + down = (svm->vmcb->save.rflags & X86_EFLAGS_DF) != 0; + + return kvm_emulate_pio(&svm->vcpu, kvm_run, in, size, port); +} + +static int nop_on_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + return 1; +} + +static int halt_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + svm->next_rip = svm->vmcb->save.rip + 1; + skip_emulated_instruction(&svm->vcpu); + return kvm_emulate_halt(&svm->vcpu); +} + +static int vmmcall_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + svm->next_rip = svm->vmcb->save.rip + 3; + skip_emulated_instruction(&svm->vcpu); + kvm_emulate_hypercall(&svm->vcpu); + return 1; +} + +static int invalid_op_interception(struct vcpu_svm *svm, + struct kvm_run *kvm_run) +{ + kvm_queue_exception(&svm->vcpu, UD_VECTOR); + return 1; +} + +static int task_switch_interception(struct vcpu_svm *svm, + struct kvm_run *kvm_run) +{ + pr_unimpl(&svm->vcpu, "%s: task switch is unsupported\n", __FUNCTION__); + kvm_run->exit_reason = KVM_EXIT_UNKNOWN; + return 0; +} + +static int cpuid_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + svm->next_rip = svm->vmcb->save.rip + 2; + kvm_emulate_cpuid(&svm->vcpu); + return 1; +} + +static int emulate_on_interception(struct vcpu_svm *svm, + struct kvm_run *kvm_run) +{ + if (emulate_instruction(&svm->vcpu, NULL, 0, 0, 0) != EMULATE_DONE) + pr_unimpl(&svm->vcpu, "%s: failed\n", __FUNCTION__); + return 1; +} + +static int cr8_write_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + emulate_instruction(&svm->vcpu, NULL, 0, 0, 0); + if (irqchip_in_kernel(svm->vcpu.kvm)) + return 1; + kvm_run->exit_reason = KVM_EXIT_SET_TPR; + return 0; +} + +static int svm_get_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 *data) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + switch (ecx) { + case MSR_IA32_TIME_STAMP_COUNTER: { + u64 tsc; + + rdtscll(tsc); + *data = svm->vmcb->control.tsc_offset + tsc; + break; + } + case MSR_K6_STAR: + *data = svm->vmcb->save.star; + break; +#ifdef CONFIG_X86_64 + case MSR_LSTAR: + *data = svm->vmcb->save.lstar; + break; + case MSR_CSTAR: + *data = svm->vmcb->save.cstar; + break; + case MSR_KERNEL_GS_BASE: + *data = svm->vmcb->save.kernel_gs_base; + break; + case MSR_SYSCALL_MASK: + *data = svm->vmcb->save.sfmask; + break; +#endif + case MSR_IA32_SYSENTER_CS: + *data = svm->vmcb->save.sysenter_cs; + break; + case MSR_IA32_SYSENTER_EIP: + *data = svm->vmcb->save.sysenter_eip; + break; + case MSR_IA32_SYSENTER_ESP: + *data = svm->vmcb->save.sysenter_esp; + break; + /* Nobody will change the following 5 values in the VMCB so + we can safely return them on rdmsr. They will always be 0 + until LBRV is implemented. */ + case MSR_IA32_DEBUGCTLMSR: + *data = svm->vmcb->save.dbgctl; + break; + case MSR_IA32_LASTBRANCHFROMIP: + *data = svm->vmcb->save.br_from; + break; + case MSR_IA32_LASTBRANCHTOIP: + *data = svm->vmcb->save.br_to; + break; + case MSR_IA32_LASTINTFROMIP: + *data = svm->vmcb->save.last_excp_from; + break; + case MSR_IA32_LASTINTTOIP: + *data = svm->vmcb->save.last_excp_to; + break; + default: + return kvm_get_msr_common(vcpu, ecx, data); + } + return 0; +} + +static int rdmsr_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + u32 ecx = svm->vcpu.arch.regs[VCPU_REGS_RCX]; + u64 data; + + if (svm_get_msr(&svm->vcpu, ecx, &data)) + kvm_inject_gp(&svm->vcpu, 0); + else { + svm->vmcb->save.rax = data & 0xffffffff; + svm->vcpu.arch.regs[VCPU_REGS_RDX] = data >> 32; + svm->next_rip = svm->vmcb->save.rip + 2; + skip_emulated_instruction(&svm->vcpu); + } + return 1; +} + +static int svm_set_msr(struct kvm_vcpu *vcpu, unsigned ecx, u64 data) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + switch (ecx) { + case MSR_IA32_TIME_STAMP_COUNTER: { + u64 tsc; + + rdtscll(tsc); + svm->vmcb->control.tsc_offset = data - tsc; + break; + } + case MSR_K6_STAR: + svm->vmcb->save.star = data; + break; +#ifdef CONFIG_X86_64 + case MSR_LSTAR: + svm->vmcb->save.lstar = data; + break; + case MSR_CSTAR: + svm->vmcb->save.cstar = data; + break; + case MSR_KERNEL_GS_BASE: + svm->vmcb->save.kernel_gs_base = data; + break; + case MSR_SYSCALL_MASK: + svm->vmcb->save.sfmask = data; + break; +#endif + case MSR_IA32_SYSENTER_CS: + svm->vmcb->save.sysenter_cs = data; + break; + case MSR_IA32_SYSENTER_EIP: + svm->vmcb->save.sysenter_eip = data; + break; + case MSR_IA32_SYSENTER_ESP: + svm->vmcb->save.sysenter_esp = data; + break; + case MSR_IA32_DEBUGCTLMSR: + if (!svm_has(SVM_FEATURE_LBRV)) { + pr_unimpl(vcpu, "%s: MSR_IA32_DEBUGCTL 0x%llx, nop\n", + __FUNCTION__, data); + break; + } + if (data & DEBUGCTL_RESERVED_BITS) + return 1; + + svm->vmcb->save.dbgctl = data; + if (data & (1ULL<<0)) + svm_enable_lbrv(svm); + else + svm_disable_lbrv(svm); + break; + case MSR_K7_EVNTSEL0: + case MSR_K7_EVNTSEL1: + case MSR_K7_EVNTSEL2: + case MSR_K7_EVNTSEL3: + /* + * only support writing 0 to the performance counters for now + * to make Windows happy. Should be replaced by a real + * performance counter emulation later. + */ + if (data != 0) + goto unhandled; + break; + default: + unhandled: + return kvm_set_msr_common(vcpu, ecx, data); + } + return 0; +} + +static int wrmsr_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + u32 ecx = svm->vcpu.arch.regs[VCPU_REGS_RCX]; + u64 data = (svm->vmcb->save.rax & -1u) + | ((u64)(svm->vcpu.arch.regs[VCPU_REGS_RDX] & -1u) << 32); + svm->next_rip = svm->vmcb->save.rip + 2; + if (svm_set_msr(&svm->vcpu, ecx, data)) + kvm_inject_gp(&svm->vcpu, 0); + else + skip_emulated_instruction(&svm->vcpu); + return 1; +} + +static int msr_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + if (svm->vmcb->control.exit_info_1) + return wrmsr_interception(svm, kvm_run); + else + return rdmsr_interception(svm, kvm_run); +} + +static int interrupt_window_interception(struct vcpu_svm *svm, + struct kvm_run *kvm_run) +{ + svm->vmcb->control.intercept &= ~(1ULL << INTERCEPT_VINTR); + svm->vmcb->control.int_ctl &= ~V_IRQ_MASK; + /* + * If the user space waits to inject interrupts, exit as soon as + * possible + */ + if (kvm_run->request_interrupt_window && + !svm->vcpu.arch.irq_summary) { + ++svm->vcpu.stat.irq_window_exits; + kvm_run->exit_reason = KVM_EXIT_IRQ_WINDOW_OPEN; + return 0; + } + + return 1; +} + +static int (*svm_exit_handlers[])(struct vcpu_svm *svm, + struct kvm_run *kvm_run) = { + [SVM_EXIT_READ_CR0] = emulate_on_interception, + [SVM_EXIT_READ_CR3] = emulate_on_interception, + [SVM_EXIT_READ_CR4] = emulate_on_interception, + [SVM_EXIT_READ_CR8] = emulate_on_interception, + /* for now: */ + [SVM_EXIT_WRITE_CR0] = emulate_on_interception, + [SVM_EXIT_WRITE_CR3] = emulate_on_interception, + [SVM_EXIT_WRITE_CR4] = emulate_on_interception, + [SVM_EXIT_WRITE_CR8] = cr8_write_interception, + [SVM_EXIT_READ_DR0] = emulate_on_interception, + [SVM_EXIT_READ_DR1] = emulate_on_interception, + [SVM_EXIT_READ_DR2] = emulate_on_interception, + [SVM_EXIT_READ_DR3] = emulate_on_interception, + [SVM_EXIT_WRITE_DR0] = emulate_on_interception, + [SVM_EXIT_WRITE_DR1] = emulate_on_interception, + [SVM_EXIT_WRITE_DR2] = emulate_on_interception, + [SVM_EXIT_WRITE_DR3] = emulate_on_interception, + [SVM_EXIT_WRITE_DR5] = emulate_on_interception, + [SVM_EXIT_WRITE_DR7] = emulate_on_interception, + [SVM_EXIT_EXCP_BASE + UD_VECTOR] = ud_interception, + [SVM_EXIT_EXCP_BASE + PF_VECTOR] = pf_interception, + [SVM_EXIT_EXCP_BASE + NM_VECTOR] = nm_interception, + [SVM_EXIT_INTR] = nop_on_interception, + [SVM_EXIT_NMI] = nop_on_interception, + [SVM_EXIT_SMI] = nop_on_interception, + [SVM_EXIT_INIT] = nop_on_interception, + [SVM_EXIT_VINTR] = interrupt_window_interception, + /* [SVM_EXIT_CR0_SEL_WRITE] = emulate_on_interception, */ + [SVM_EXIT_CPUID] = cpuid_interception, + [SVM_EXIT_INVD] = emulate_on_interception, + [SVM_EXIT_HLT] = halt_interception, + [SVM_EXIT_INVLPG] = emulate_on_interception, + [SVM_EXIT_INVLPGA] = invalid_op_interception, + [SVM_EXIT_IOIO] = io_interception, + [SVM_EXIT_MSR] = msr_interception, + [SVM_EXIT_TASK_SWITCH] = task_switch_interception, + [SVM_EXIT_SHUTDOWN] = shutdown_interception, + [SVM_EXIT_VMRUN] = invalid_op_interception, + [SVM_EXIT_VMMCALL] = vmmcall_interception, + [SVM_EXIT_VMLOAD] = invalid_op_interception, + [SVM_EXIT_VMSAVE] = invalid_op_interception, + [SVM_EXIT_STGI] = invalid_op_interception, + [SVM_EXIT_CLGI] = invalid_op_interception, + [SVM_EXIT_SKINIT] = invalid_op_interception, + [SVM_EXIT_WBINVD] = emulate_on_interception, + [SVM_EXIT_MONITOR] = invalid_op_interception, + [SVM_EXIT_MWAIT] = invalid_op_interception, + [SVM_EXIT_NPF] = pf_interception, +}; + +static int handle_exit(struct kvm_run *kvm_run, struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + u32 exit_code = svm->vmcb->control.exit_code; + + if (npt_enabled) { + int mmu_reload = 0; + if ((vcpu->arch.cr0 ^ svm->vmcb->save.cr0) & X86_CR0_PG) { + svm_set_cr0(vcpu, svm->vmcb->save.cr0); + mmu_reload = 1; + } + vcpu->arch.cr0 = svm->vmcb->save.cr0; + vcpu->arch.cr3 = svm->vmcb->save.cr3; + if (is_paging(vcpu) && is_pae(vcpu) && !is_long_mode(vcpu)) { + if (!load_pdptrs(vcpu, vcpu->arch.cr3)) { + kvm_inject_gp(vcpu, 0); + return 1; + } + } + if (mmu_reload) { + kvm_mmu_reset_context(vcpu); + kvm_mmu_load(vcpu); + } + } + + kvm_reput_irq(svm); + + if (svm->vmcb->control.exit_code == SVM_EXIT_ERR) { + kvm_run->exit_reason = KVM_EXIT_FAIL_ENTRY; + kvm_run->fail_entry.hardware_entry_failure_reason + = svm->vmcb->control.exit_code; + return 0; + } + + if (is_external_interrupt(svm->vmcb->control.exit_int_info) && + exit_code != SVM_EXIT_EXCP_BASE + PF_VECTOR && + exit_code != SVM_EXIT_NPF) + printk(KERN_ERR "%s: unexpected exit_ini_info 0x%x " + "exit_code 0x%x\n", + __FUNCTION__, svm->vmcb->control.exit_int_info, + exit_code); + + if (exit_code >= ARRAY_SIZE(svm_exit_handlers) + || !svm_exit_handlers[exit_code]) { + kvm_run->exit_reason = KVM_EXIT_UNKNOWN; + kvm_run->hw.hardware_exit_reason = exit_code; + return 0; + } + + return svm_exit_handlers[exit_code](svm, kvm_run); +} + +static void reload_tss(struct kvm_vcpu *vcpu) +{ + int cpu = raw_smp_processor_id(); + + struct svm_cpu_data *svm_data = per_cpu(svm_data, cpu); + svm_data->tss_desc->type = 9; /* available 32/64-bit TSS */ + load_TR_desc(); +} + +static void pre_svm_run(struct vcpu_svm *svm) +{ + int cpu = raw_smp_processor_id(); + + struct svm_cpu_data *svm_data = per_cpu(svm_data, cpu); + + svm->vmcb->control.tlb_ctl = TLB_CONTROL_DO_NOTHING; + if (svm->vcpu.cpu != cpu || + svm->asid_generation != svm_data->asid_generation) + new_asid(svm, svm_data); +} + + +static inline void svm_inject_irq(struct vcpu_svm *svm, int irq) +{ + struct vmcb_control_area *control; + + control = &svm->vmcb->control; + control->int_vector = irq; + control->int_ctl &= ~V_INTR_PRIO_MASK; + control->int_ctl |= V_IRQ_MASK | + ((/*control->int_vector >> 4*/ 0xf) << V_INTR_PRIO_SHIFT); +} + +static void svm_set_irq(struct kvm_vcpu *vcpu, int irq) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + svm_inject_irq(svm, irq); +} + +static void svm_intr_assist(struct kvm_vcpu *vcpu) +{ + struct vcpu_svm *svm = to_svm(vcpu); + struct vmcb *vmcb = svm->vmcb; + int intr_vector = -1; + + if ((vmcb->control.exit_int_info & SVM_EVTINJ_VALID) && + ((vmcb->control.exit_int_info & SVM_EVTINJ_TYPE_MASK) == 0)) { + intr_vector = vmcb->control.exit_int_info & + SVM_EVTINJ_VEC_MASK; + vmcb->control.exit_int_info = 0; + svm_inject_irq(svm, intr_vector); + return; + } + + if (vmcb->control.int_ctl & V_IRQ_MASK) + return; + + if (!kvm_cpu_has_interrupt(vcpu)) + return; + + if (!(vmcb->save.rflags & X86_EFLAGS_IF) || + (vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) || + (vmcb->control.event_inj & SVM_EVTINJ_VALID)) { + /* unable to deliver irq, set pending irq */ + vmcb->control.intercept |= (1ULL << INTERCEPT_VINTR); + svm_inject_irq(svm, 0x0); + return; + } + /* Okay, we can deliver the interrupt: grab it and update PIC state. */ + intr_vector = kvm_cpu_get_interrupt(vcpu); + svm_inject_irq(svm, intr_vector); + kvm_timer_intr_post(vcpu, intr_vector); +} + +static void kvm_reput_irq(struct vcpu_svm *svm) +{ + struct vmcb_control_area *control = &svm->vmcb->control; + + if ((control->int_ctl & V_IRQ_MASK) + && !irqchip_in_kernel(svm->vcpu.kvm)) { + control->int_ctl &= ~V_IRQ_MASK; + push_irq(&svm->vcpu, control->int_vector); + } + + svm->vcpu.arch.interrupt_window_open = + !(control->int_state & SVM_INTERRUPT_SHADOW_MASK); +} + +static void svm_do_inject_vector(struct vcpu_svm *svm) +{ + struct kvm_vcpu *vcpu = &svm->vcpu; + int word_index = __ffs(vcpu->arch.irq_summary); + int bit_index = __ffs(vcpu->arch.irq_pending[word_index]); + int irq = word_index * BITS_PER_LONG + bit_index; + + clear_bit(bit_index, &vcpu->arch.irq_pending[word_index]); + if (!vcpu->arch.irq_pending[word_index]) + clear_bit(word_index, &vcpu->arch.irq_summary); + svm_inject_irq(svm, irq); +} + +static void do_interrupt_requests(struct kvm_vcpu *vcpu, + struct kvm_run *kvm_run) +{ + struct vcpu_svm *svm = to_svm(vcpu); + struct vmcb_control_area *control = &svm->vmcb->control; + + svm->vcpu.arch.interrupt_window_open = + (!(control->int_state & SVM_INTERRUPT_SHADOW_MASK) && + (svm->vmcb->save.rflags & X86_EFLAGS_IF)); + + if (svm->vcpu.arch.interrupt_window_open && svm->vcpu.arch.irq_summary) + /* + * If interrupts enabled, and not blocked by sti or mov ss. Good. + */ + svm_do_inject_vector(svm); + + /* + * Interrupts blocked. Wait for unblock. + */ + if (!svm->vcpu.arch.interrupt_window_open && + (svm->vcpu.arch.irq_summary || kvm_run->request_interrupt_window)) + control->intercept |= 1ULL << INTERCEPT_VINTR; + else + control->intercept &= ~(1ULL << INTERCEPT_VINTR); +} + +static int svm_set_tss_addr(struct kvm *kvm, unsigned int addr) +{ + return 0; +} + +static void save_db_regs(unsigned long *db_regs) +{ + asm volatile ("mov %%dr0, %0" : "=r"(db_regs[0])); + asm volatile ("mov %%dr1, %0" : "=r"(db_regs[1])); + asm volatile ("mov %%dr2, %0" : "=r"(db_regs[2])); + asm volatile ("mov %%dr3, %0" : "=r"(db_regs[3])); +} + +static void load_db_regs(unsigned long *db_regs) +{ + asm volatile ("mov %0, %%dr0" : : "r"(db_regs[0])); + asm volatile ("mov %0, %%dr1" : : "r"(db_regs[1])); + asm volatile ("mov %0, %%dr2" : : "r"(db_regs[2])); + asm volatile ("mov %0, %%dr3" : : "r"(db_regs[3])); +} + +static void svm_flush_tlb(struct kvm_vcpu *vcpu) +{ + force_new_asid(vcpu); +} + +static void svm_prepare_guest_switch(struct kvm_vcpu *vcpu) +{ +} + +static void svm_vcpu_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) +{ + struct vcpu_svm *svm = to_svm(vcpu); + u16 fs_selector; + u16 gs_selector; + u16 ldt_selector; + + pre_svm_run(svm); + + save_host_msrs(vcpu); + fs_selector = read_fs(); + gs_selector = read_gs(); + ldt_selector = read_ldt(); + svm->host_cr2 = kvm_read_cr2(); + svm->host_dr6 = read_dr6(); + svm->host_dr7 = read_dr7(); + svm->vmcb->save.cr2 = vcpu->arch.cr2; + /* required for live migration with NPT */ + if (npt_enabled) + svm->vmcb->save.cr3 = vcpu->arch.cr3; + + if (svm->vmcb->save.dr7 & 0xff) { + write_dr7(0); + save_db_regs(svm->host_db_regs); + load_db_regs(svm->db_regs); + } + + clgi(); + + local_irq_enable(); + + asm volatile ( +#ifdef CONFIG_X86_64 + "push %%rbp; \n\t" +#else + "push %%ebp; \n\t" +#endif + +#ifdef CONFIG_X86_64 + "mov %c[rbx](%[svm]), %%rbx \n\t" + "mov %c[rcx](%[svm]), %%rcx \n\t" + "mov %c[rdx](%[svm]), %%rdx \n\t" + "mov %c[rsi](%[svm]), %%rsi \n\t" + "mov %c[rdi](%[svm]), %%rdi \n\t" + "mov %c[rbp](%[svm]), %%rbp \n\t" + "mov %c[r8](%[svm]), %%r8 \n\t" + "mov %c[r9](%[svm]), %%r9 \n\t" + "mov %c[r10](%[svm]), %%r10 \n\t" + "mov %c[r11](%[svm]), %%r11 \n\t" + "mov %c[r12](%[svm]), %%r12 \n\t" + "mov %c[r13](%[svm]), %%r13 \n\t" + "mov %c[r14](%[svm]), %%r14 \n\t" + "mov %c[r15](%[svm]), %%r15 \n\t" +#else + "mov %c[rbx](%[svm]), %%ebx \n\t" + "mov %c[rcx](%[svm]), %%ecx \n\t" + "mov %c[rdx](%[svm]), %%edx \n\t" + "mov %c[rsi](%[svm]), %%esi \n\t" + "mov %c[rdi](%[svm]), %%edi \n\t" + "mov %c[rbp](%[svm]), %%ebp \n\t" +#endif + +#ifdef CONFIG_X86_64 + /* Enter guest mode */ + "push %%rax \n\t" + "mov %c[vmcb](%[svm]), %%rax \n\t" + SVM_VMLOAD "\n\t" + SVM_VMRUN "\n\t" + SVM_VMSAVE "\n\t" + "pop %%rax \n\t" +#else + /* Enter guest mode */ + "push %%eax \n\t" + "mov %c[vmcb](%[svm]), %%eax \n\t" + SVM_VMLOAD "\n\t" + SVM_VMRUN "\n\t" + SVM_VMSAVE "\n\t" + "pop %%eax \n\t" +#endif + + /* Save guest registers, load host registers */ +#ifdef CONFIG_X86_64 + "mov %%rbx, %c[rbx](%[svm]) \n\t" + "mov %%rcx, %c[rcx](%[svm]) \n\t" + "mov %%rdx, %c[rdx](%[svm]) \n\t" + "mov %%rsi, %c[rsi](%[svm]) \n\t" + "mov %%rdi, %c[rdi](%[svm]) \n\t" + "mov %%rbp, %c[rbp](%[svm]) \n\t" + "mov %%r8, %c[r8](%[svm]) \n\t" + "mov %%r9, %c[r9](%[svm]) \n\t" + "mov %%r10, %c[r10](%[svm]) \n\t" + "mov %%r11, %c[r11](%[svm]) \n\t" + "mov %%r12, %c[r12](%[svm]) \n\t" + "mov %%r13, %c[r13](%[svm]) \n\t" + "mov %%r14, %c[r14](%[svm]) \n\t" + "mov %%r15, %c[r15](%[svm]) \n\t" + + "pop %%rbp; \n\t" +#else + "mov %%ebx, %c[rbx](%[svm]) \n\t" + "mov %%ecx, %c[rcx](%[svm]) \n\t" + "mov %%edx, %c[rdx](%[svm]) \n\t" + "mov %%esi, %c[rsi](%[svm]) \n\t" + "mov %%edi, %c[rdi](%[svm]) \n\t" + "mov %%ebp, %c[rbp](%[svm]) \n\t" + + "pop %%ebp; \n\t" +#endif + : + : [svm]"a"(svm), + [vmcb]"i"(offsetof(struct vcpu_svm, vmcb_pa)), + [rbx]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RBX])), + [rcx]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RCX])), + [rdx]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RDX])), + [rsi]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RSI])), + [rdi]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RDI])), + [rbp]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_RBP])) +#ifdef CONFIG_X86_64 + , [r8]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R8])), + [r9]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R9])), + [r10]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R10])), + [r11]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R11])), + [r12]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R12])), + [r13]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R13])), + [r14]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R14])), + [r15]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R15])) +#endif + : "cc", "memory" +#ifdef CONFIG_X86_64 + , "rbx", "rcx", "rdx", "rsi", "rdi" + , "r8", "r9", "r10", "r11" , "r12", "r13", "r14", "r15" +#else + , "ebx", "ecx", "edx" , "esi", "edi" +#endif + ); + + if ((svm->vmcb->save.dr7 & 0xff)) + load_db_regs(svm->host_db_regs); + + vcpu->arch.cr2 = svm->vmcb->save.cr2; + + write_dr6(svm->host_dr6); + write_dr7(svm->host_dr7); + kvm_write_cr2(svm->host_cr2); + + load_fs(fs_selector); + load_gs(gs_selector); + load_ldt(ldt_selector); + load_host_msrs(vcpu); + + reload_tss(vcpu); + + local_irq_disable(); + + stgi(); + + svm->next_rip = 0; +} + +static void svm_set_cr3(struct kvm_vcpu *vcpu, unsigned long root) +{ + struct vcpu_svm *svm = to_svm(vcpu); + + if (npt_enabled) { + svm->vmcb->control.nested_cr3 = root; + force_new_asid(vcpu); + return; + } + + svm->vmcb->save.cr3 = root; + force_new_asid(vcpu); + + if (vcpu->fpu_active) { + svm->vmcb->control.intercept_exceptions |= (1 << NM_VECTOR); + svm->vmcb->save.cr0 |= X86_CR0_TS; + vcpu->fpu_active = 0; + } +} + +static int is_disabled(void) +{ + u64 vm_cr; + + rdmsrl(MSR_VM_CR, vm_cr); + if (vm_cr & (1 << SVM_VM_CR_SVM_DISABLE)) + return 1; + + return 0; +} + +static void +svm_patch_hypercall(struct kvm_vcpu *vcpu, unsigned char *hypercall) +{ + /* + * Patch in the VMMCALL instruction: + */ + hypercall[0] = 0x0f; + hypercall[1] = 0x01; + hypercall[2] = 0xd9; +} + +static void svm_check_processor_compat(void *rtn) +{ + *(int *)rtn = 0; +} + +static bool svm_cpu_has_accelerated_tpr(void) +{ + return false; +} + +static struct kvm_x86_ops svm_x86_ops = { + .cpu_has_kvm_support = has_svm, + .disabled_by_bios = is_disabled, + .hardware_setup = svm_hardware_setup, + .hardware_unsetup = svm_hardware_unsetup, + .check_processor_compatibility = svm_check_processor_compat, + .hardware_enable = svm_hardware_enable, + .hardware_disable = svm_hardware_disable, + .cpu_has_accelerated_tpr = svm_cpu_has_accelerated_tpr, + + .vcpu_create = svm_create_vcpu, + .vcpu_free = svm_free_vcpu, + .vcpu_reset = svm_vcpu_reset, + + .prepare_guest_switch = svm_prepare_guest_switch, + .vcpu_load = svm_vcpu_load, + .vcpu_put = svm_vcpu_put, + .vcpu_decache = svm_vcpu_decache, + + .set_guest_debug = svm_guest_debug, + .get_msr = svm_get_msr, + .set_msr = svm_set_msr, + .get_segment_base = svm_get_segment_base, + .get_segment = svm_get_segment, + .set_segment = svm_set_segment, + .get_cs_db_l_bits = kvm_get_cs_db_l_bits, + .decache_cr4_guest_bits = svm_decache_cr4_guest_bits, + .set_cr0 = svm_set_cr0, + .set_cr3 = svm_set_cr3, + .set_cr4 = svm_set_cr4, + .set_efer = svm_set_efer, + .get_idt = svm_get_idt, + .set_idt = svm_set_idt, + .get_gdt = svm_get_gdt, + .set_gdt = svm_set_gdt, + .get_dr = svm_get_dr, + .set_dr = svm_set_dr, + .cache_regs = svm_cache_regs, + .decache_regs = svm_decache_regs, + .get_rflags = svm_get_rflags, + .set_rflags = svm_set_rflags, + + .tlb_flush = svm_flush_tlb, + + .run = svm_vcpu_run, + .handle_exit = handle_exit, + .skip_emulated_instruction = skip_emulated_instruction, + .patch_hypercall = svm_patch_hypercall, + .get_irq = svm_get_irq, + .set_irq = svm_set_irq, + .queue_exception = svm_queue_exception, + .exception_injected = svm_exception_injected, + .inject_pending_irq = svm_intr_assist, + .inject_pending_vectors = do_interrupt_requests, + + .set_tss_addr = svm_set_tss_addr, +}; + +static int __init svm_init(void) +{ + return kvm_init(&svm_x86_ops, sizeof(struct vcpu_svm), + THIS_MODULE); +} + +static void __exit svm_exit(void) +{ + kvm_exit(); +} + +module_init(svm_init) +module_exit(svm_exit) --- linux-2.6.24.orig/arch/x86/kvm/svm.h +++ linux-2.6.24/arch/x86/kvm/svm.h @@ -0,0 +1,325 @@ +#ifndef __SVM_H +#define __SVM_H + +enum { + INTERCEPT_INTR, + INTERCEPT_NMI, + INTERCEPT_SMI, + INTERCEPT_INIT, + INTERCEPT_VINTR, + INTERCEPT_SELECTIVE_CR0, + INTERCEPT_STORE_IDTR, + INTERCEPT_STORE_GDTR, + INTERCEPT_STORE_LDTR, + INTERCEPT_STORE_TR, + INTERCEPT_LOAD_IDTR, + INTERCEPT_LOAD_GDTR, + INTERCEPT_LOAD_LDTR, + INTERCEPT_LOAD_TR, + INTERCEPT_RDTSC, + INTERCEPT_RDPMC, + INTERCEPT_PUSHF, + INTERCEPT_POPF, + INTERCEPT_CPUID, + INTERCEPT_RSM, + INTERCEPT_IRET, + INTERCEPT_INTn, + INTERCEPT_INVD, + INTERCEPT_PAUSE, + INTERCEPT_HLT, + INTERCEPT_INVLPG, + INTERCEPT_INVLPGA, + INTERCEPT_IOIO_PROT, + INTERCEPT_MSR_PROT, + INTERCEPT_TASK_SWITCH, + INTERCEPT_FERR_FREEZE, + INTERCEPT_SHUTDOWN, + INTERCEPT_VMRUN, + INTERCEPT_VMMCALL, + INTERCEPT_VMLOAD, + INTERCEPT_VMSAVE, + INTERCEPT_STGI, + INTERCEPT_CLGI, + INTERCEPT_SKINIT, + INTERCEPT_RDTSCP, + INTERCEPT_ICEBP, + INTERCEPT_WBINVD, + INTERCEPT_MONITOR, + INTERCEPT_MWAIT, + INTERCEPT_MWAIT_COND, +}; + + +struct __attribute__ ((__packed__)) vmcb_control_area { + u16 intercept_cr_read; + u16 intercept_cr_write; + u16 intercept_dr_read; + u16 intercept_dr_write; + u32 intercept_exceptions; + u64 intercept; + u8 reserved_1[44]; + u64 iopm_base_pa; + u64 msrpm_base_pa; + u64 tsc_offset; + u32 asid; + u8 tlb_ctl; + u8 reserved_2[3]; + u32 int_ctl; + u32 int_vector; + u32 int_state; + u8 reserved_3[4]; + u32 exit_code; + u32 exit_code_hi; + u64 exit_info_1; + u64 exit_info_2; + u32 exit_int_info; + u32 exit_int_info_err; + u64 nested_ctl; + u8 reserved_4[16]; + u32 event_inj; + u32 event_inj_err; + u64 nested_cr3; + u64 lbr_ctl; + u8 reserved_5[832]; +}; + + +#define TLB_CONTROL_DO_NOTHING 0 +#define TLB_CONTROL_FLUSH_ALL_ASID 1 + +#define V_TPR_MASK 0x0f + +#define V_IRQ_SHIFT 8 +#define V_IRQ_MASK (1 << V_IRQ_SHIFT) + +#define V_INTR_PRIO_SHIFT 16 +#define V_INTR_PRIO_MASK (0x0f << V_INTR_PRIO_SHIFT) + +#define V_IGN_TPR_SHIFT 20 +#define V_IGN_TPR_MASK (1 << V_IGN_TPR_SHIFT) + +#define V_INTR_MASKING_SHIFT 24 +#define V_INTR_MASKING_MASK (1 << V_INTR_MASKING_SHIFT) + +#define SVM_INTERRUPT_SHADOW_MASK 1 + +#define SVM_IOIO_STR_SHIFT 2 +#define SVM_IOIO_REP_SHIFT 3 +#define SVM_IOIO_SIZE_SHIFT 4 +#define SVM_IOIO_ASIZE_SHIFT 7 + +#define SVM_IOIO_TYPE_MASK 1 +#define SVM_IOIO_STR_MASK (1 << SVM_IOIO_STR_SHIFT) +#define SVM_IOIO_REP_MASK (1 << SVM_IOIO_REP_SHIFT) +#define SVM_IOIO_SIZE_MASK (7 << SVM_IOIO_SIZE_SHIFT) +#define SVM_IOIO_ASIZE_MASK (7 << SVM_IOIO_ASIZE_SHIFT) + +struct __attribute__ ((__packed__)) vmcb_seg { + u16 selector; + u16 attrib; + u32 limit; + u64 base; +}; + +struct __attribute__ ((__packed__)) vmcb_save_area { + struct vmcb_seg es; + struct vmcb_seg cs; + struct vmcb_seg ss; + struct vmcb_seg ds; + struct vmcb_seg fs; + struct vmcb_seg gs; + struct vmcb_seg gdtr; + struct vmcb_seg ldtr; + struct vmcb_seg idtr; + struct vmcb_seg tr; + u8 reserved_1[43]; + u8 cpl; + u8 reserved_2[4]; + u64 efer; + u8 reserved_3[112]; + u64 cr4; + u64 cr3; + u64 cr0; + u64 dr7; + u64 dr6; + u64 rflags; + u64 rip; + u8 reserved_4[88]; + u64 rsp; + u8 reserved_5[24]; + u64 rax; + u64 star; + u64 lstar; + u64 cstar; + u64 sfmask; + u64 kernel_gs_base; + u64 sysenter_cs; + u64 sysenter_esp; + u64 sysenter_eip; + u64 cr2; + u8 reserved_6[32]; + u64 g_pat; + u64 dbgctl; + u64 br_from; + u64 br_to; + u64 last_excp_from; + u64 last_excp_to; +}; + +struct __attribute__ ((__packed__)) vmcb { + struct vmcb_control_area control; + struct vmcb_save_area save; +}; + +#define SVM_CPUID_FEATURE_SHIFT 2 +#define SVM_CPUID_FUNC 0x8000000a + +#define MSR_EFER_SVME_MASK (1ULL << 12) +#define MSR_VM_CR 0xc0010114 +#define MSR_VM_HSAVE_PA 0xc0010117ULL + +#define SVM_VM_CR_SVM_DISABLE 4 + +#define SVM_SELECTOR_S_SHIFT 4 +#define SVM_SELECTOR_DPL_SHIFT 5 +#define SVM_SELECTOR_P_SHIFT 7 +#define SVM_SELECTOR_AVL_SHIFT 8 +#define SVM_SELECTOR_L_SHIFT 9 +#define SVM_SELECTOR_DB_SHIFT 10 +#define SVM_SELECTOR_G_SHIFT 11 + +#define SVM_SELECTOR_TYPE_MASK (0xf) +#define SVM_SELECTOR_S_MASK (1 << SVM_SELECTOR_S_SHIFT) +#define SVM_SELECTOR_DPL_MASK (3 << SVM_SELECTOR_DPL_SHIFT) +#define SVM_SELECTOR_P_MASK (1 << SVM_SELECTOR_P_SHIFT) +#define SVM_SELECTOR_AVL_MASK (1 << SVM_SELECTOR_AVL_SHIFT) +#define SVM_SELECTOR_L_MASK (1 << SVM_SELECTOR_L_SHIFT) +#define SVM_SELECTOR_DB_MASK (1 << SVM_SELECTOR_DB_SHIFT) +#define SVM_SELECTOR_G_MASK (1 << SVM_SELECTOR_G_SHIFT) + +#define SVM_SELECTOR_WRITE_MASK (1 << 1) +#define SVM_SELECTOR_READ_MASK SVM_SELECTOR_WRITE_MASK +#define SVM_SELECTOR_CODE_MASK (1 << 3) + +#define INTERCEPT_CR0_MASK 1 +#define INTERCEPT_CR3_MASK (1 << 3) +#define INTERCEPT_CR4_MASK (1 << 4) +#define INTERCEPT_CR8_MASK (1 << 8) + +#define INTERCEPT_DR0_MASK 1 +#define INTERCEPT_DR1_MASK (1 << 1) +#define INTERCEPT_DR2_MASK (1 << 2) +#define INTERCEPT_DR3_MASK (1 << 3) +#define INTERCEPT_DR4_MASK (1 << 4) +#define INTERCEPT_DR5_MASK (1 << 5) +#define INTERCEPT_DR6_MASK (1 << 6) +#define INTERCEPT_DR7_MASK (1 << 7) + +#define SVM_EVTINJ_VEC_MASK 0xff + +#define SVM_EVTINJ_TYPE_SHIFT 8 +#define SVM_EVTINJ_TYPE_MASK (7 << SVM_EVTINJ_TYPE_SHIFT) + +#define SVM_EVTINJ_TYPE_INTR (0 << SVM_EVTINJ_TYPE_SHIFT) +#define SVM_EVTINJ_TYPE_NMI (2 << SVM_EVTINJ_TYPE_SHIFT) +#define SVM_EVTINJ_TYPE_EXEPT (3 << SVM_EVTINJ_TYPE_SHIFT) +#define SVM_EVTINJ_TYPE_SOFT (4 << SVM_EVTINJ_TYPE_SHIFT) + +#define SVM_EVTINJ_VALID (1 << 31) +#define SVM_EVTINJ_VALID_ERR (1 << 11) + +#define SVM_EXITINTINFO_VEC_MASK SVM_EVTINJ_VEC_MASK + +#define SVM_EXITINTINFO_TYPE_INTR SVM_EVTINJ_TYPE_INTR +#define SVM_EXITINTINFO_TYPE_NMI SVM_EVTINJ_TYPE_NMI +#define SVM_EXITINTINFO_TYPE_EXEPT SVM_EVTINJ_TYPE_EXEPT +#define SVM_EXITINTINFO_TYPE_SOFT SVM_EVTINJ_TYPE_SOFT + +#define SVM_EXITINTINFO_VALID SVM_EVTINJ_VALID +#define SVM_EXITINTINFO_VALID_ERR SVM_EVTINJ_VALID_ERR + +#define SVM_EXIT_READ_CR0 0x000 +#define SVM_EXIT_READ_CR3 0x003 +#define SVM_EXIT_READ_CR4 0x004 +#define SVM_EXIT_READ_CR8 0x008 +#define SVM_EXIT_WRITE_CR0 0x010 +#define SVM_EXIT_WRITE_CR3 0x013 +#define SVM_EXIT_WRITE_CR4 0x014 +#define SVM_EXIT_WRITE_CR8 0x018 +#define SVM_EXIT_READ_DR0 0x020 +#define SVM_EXIT_READ_DR1 0x021 +#define SVM_EXIT_READ_DR2 0x022 +#define SVM_EXIT_READ_DR3 0x023 +#define SVM_EXIT_READ_DR4 0x024 +#define SVM_EXIT_READ_DR5 0x025 +#define SVM_EXIT_READ_DR6 0x026 +#define SVM_EXIT_READ_DR7 0x027 +#define SVM_EXIT_WRITE_DR0 0x030 +#define SVM_EXIT_WRITE_DR1 0x031 +#define SVM_EXIT_WRITE_DR2 0x032 +#define SVM_EXIT_WRITE_DR3 0x033 +#define SVM_EXIT_WRITE_DR4 0x034 +#define SVM_EXIT_WRITE_DR5 0x035 +#define SVM_EXIT_WRITE_DR6 0x036 +#define SVM_EXIT_WRITE_DR7 0x037 +#define SVM_EXIT_EXCP_BASE 0x040 +#define SVM_EXIT_INTR 0x060 +#define SVM_EXIT_NMI 0x061 +#define SVM_EXIT_SMI 0x062 +#define SVM_EXIT_INIT 0x063 +#define SVM_EXIT_VINTR 0x064 +#define SVM_EXIT_CR0_SEL_WRITE 0x065 +#define SVM_EXIT_IDTR_READ 0x066 +#define SVM_EXIT_GDTR_READ 0x067 +#define SVM_EXIT_LDTR_READ 0x068 +#define SVM_EXIT_TR_READ 0x069 +#define SVM_EXIT_IDTR_WRITE 0x06a +#define SVM_EXIT_GDTR_WRITE 0x06b +#define SVM_EXIT_LDTR_WRITE 0x06c +#define SVM_EXIT_TR_WRITE 0x06d +#define SVM_EXIT_RDTSC 0x06e +#define SVM_EXIT_RDPMC 0x06f +#define SVM_EXIT_PUSHF 0x070 +#define SVM_EXIT_POPF 0x071 +#define SVM_EXIT_CPUID 0x072 +#define SVM_EXIT_RSM 0x073 +#define SVM_EXIT_IRET 0x074 +#define SVM_EXIT_SWINT 0x075 +#define SVM_EXIT_INVD 0x076 +#define SVM_EXIT_PAUSE 0x077 +#define SVM_EXIT_HLT 0x078 +#define SVM_EXIT_INVLPG 0x079 +#define SVM_EXIT_INVLPGA 0x07a +#define SVM_EXIT_IOIO 0x07b +#define SVM_EXIT_MSR 0x07c +#define SVM_EXIT_TASK_SWITCH 0x07d +#define SVM_EXIT_FERR_FREEZE 0x07e +#define SVM_EXIT_SHUTDOWN 0x07f +#define SVM_EXIT_VMRUN 0x080 +#define SVM_EXIT_VMMCALL 0x081 +#define SVM_EXIT_VMLOAD 0x082 +#define SVM_EXIT_VMSAVE 0x083 +#define SVM_EXIT_STGI 0x084 +#define SVM_EXIT_CLGI 0x085 +#define SVM_EXIT_SKINIT 0x086 +#define SVM_EXIT_RDTSCP 0x087 +#define SVM_EXIT_ICEBP 0x088 +#define SVM_EXIT_WBINVD 0x089 +#define SVM_EXIT_MONITOR 0x08a +#define SVM_EXIT_MWAIT 0x08b +#define SVM_EXIT_MWAIT_COND 0x08c +#define SVM_EXIT_NPF 0x400 + +#define SVM_EXIT_ERR -1 + +#define SVM_CR0_SELECTIVE_MASK (1 << 3 | 1) /* TS and MP */ + +#define SVM_VMLOAD ".byte 0x0f, 0x01, 0xda" +#define SVM_VMRUN ".byte 0x0f, 0x01, 0xd8" +#define SVM_VMSAVE ".byte 0x0f, 0x01, 0xdb" +#define SVM_CLGI ".byte 0x0f, 0x01, 0xdd" +#define SVM_STGI ".byte 0x0f, 0x01, 0xdc" +#define SVM_INVLPGA ".byte 0x0f, 0x01, 0xdf" + +#endif + --- linux-2.6.24.orig/arch/x86/mm/init_64.c +++ linux-2.6.24/arch/x86/mm/init_64.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -512,6 +513,71 @@ } #endif +int page_is_ram(unsigned long pagenr) +{ + int i; + unsigned long addr, end; + + if (efi_enabled) { + efi_memory_desc_t *md; + void *p; + + for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { + md = p; + if (!is_available_memory(md)) + continue; + addr = (md->phys_addr+PAGE_SIZE-1) >> PAGE_SHIFT; + end = (md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT)) >> PAGE_SHIFT; + + if ((pagenr >= addr) && (pagenr < end)) + return 1; + } + return 0; + } + + for (i = 0; i < e820.nr_map; i++) { + /* + * Not usable memory: + */ + if (e820.map[i].type != E820_RAM) + continue; + addr = (e820.map[i].addr + PAGE_SIZE-1) >> PAGE_SHIFT; + end = (e820.map[i].addr + e820.map[i].size) >> PAGE_SHIFT; + + /* + * Sanity check: Some BIOSen report areas as RAM that + * are not. Notably the 640->1Mb area, which is the + * PCI BIOS area. + */ + if (addr >= (BIOS_BEGIN >> PAGE_SHIFT) && + end < (BIOS_END >> PAGE_SHIFT)) + continue; + + if ((pagenr >= addr) && (pagenr < end)) + return 1; + } + return 0; +} + +/* + * devmem_is_allowed() checks to see if /dev/mem access to a certain address + * is valid. The argument is a physical page number. + * + * + * On x86, access has to be given to the first megabyte of ram because that area + * contains bios code and data regions used by X and dosemu and similar apps. + * Access has to be given to non-kernel-ram areas as well, these contain the PCI + * mmio resources as well as potential bios/acpi data regions. + */ +int devmem_is_allowed(unsigned long pagenr) +{ + if (pagenr <= 256) + return 1; + if (!page_is_ram(pagenr)) + return 1; + return 0; +} + static struct kcore_list kcore_mem, kcore_vmalloc, kcore_kernel, kcore_modules, kcore_vsyscall; --- linux-2.6.24.orig/arch/x86/mm/pageattr_64.c +++ linux-2.6.24/arch/x86/mm/pageattr_64.c @@ -207,7 +207,7 @@ if (__pa(address) < KERNEL_TEXT_SIZE) { unsigned long addr2; pgprot_t prot2; - addr2 = __START_KERNEL_map + __pa(address); + addr2 = __START_KERNEL_map + __pa(address) - phys_base; /* Make sure the kernel mappings stay executable */ prot2 = pte_pgprot(pte_mkexec(pfn_pte(0, prot))); err = __change_page_attr(addr2, pfn, prot2, --- linux-2.6.24.orig/arch/x86/mm/mmap_64.c +++ linux-2.6.24/arch/x86/mm/mmap_64.c @@ -1,29 +1,117 @@ -/* Copyright 2005 Andi Kleen, SuSE Labs. - * Licensed under GPL, v.2 +/* + * linux/arch/x86-64/mm/mmap.c + * + * flexible mmap layout support + * + * Based on code by Ingo Molnar and Andi Kleen, copyrighted + * as follows: + * + * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina. + * All Rights Reserved. + * Copyright 2005 Andi Kleen, SUSE Labs. + * Copyright 2007 Jiri Kosina, SUSE Labs. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * */ + +#include #include -#include #include +#include +#include #include -/* Notebook: move the mmap code from sys_x86_64.c over here. */ +/* + * Top of mmap area (just below the process stack). + * + * Leave an at least ~128 MB hole. + */ +#define MIN_GAP (128*1024*1024) +#define MAX_GAP (TASK_SIZE/6*5) + +static inline unsigned long mmap_base(void) +{ + unsigned long gap = current->signal->rlim[RLIMIT_STACK].rlim_cur; + + if (gap < MIN_GAP) + gap = MIN_GAP; + else if (gap > MAX_GAP) + gap = MAX_GAP; + return TASK_SIZE - (gap & PAGE_MASK); +} + +static inline int mmap_is_32(void) +{ +#ifdef CONFIG_IA32_EMULATION + if (test_thread_flag(TIF_IA32)) + return 1; +#endif + return 0; +} + +static inline int mmap_is_legacy(void) +{ + if (current->personality & ADDR_COMPAT_LAYOUT) + return 1; + + if (current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY) + return 1; + + return sysctl_legacy_va_layout; +} + +/* + * This function, called very early during the creation of a new + * process VM image, sets up which VM layout function to use: + */ void arch_pick_mmap_layout(struct mm_struct *mm) { + int rnd = 0; + if (current->flags & PF_RANDOMIZE) { + /* + * Add 28bit randomness which is about 40bits of address space + * because mmap base has to be page aligned. + * or ~1/128 of the total user VM + * (total user address space is 47bits) + */ + rnd = get_random_int() & 0xfffffff; + } + + /* + * Fall back to the standard layout if the personality + * bit is set, or if the expected stack growth is unlimited: + */ + if (mmap_is_32()) { #ifdef CONFIG_IA32_EMULATION - if (current_thread_info()->flags & _TIF_IA32) + /* ia32_pick_mmap_layout has its own. */ return ia32_pick_mmap_layout(mm); #endif - mm->mmap_base = TASK_UNMAPPED_BASE; + } else if(mmap_is_legacy()) { + mm->mmap_base = TASK_UNMAPPED_BASE; + mm->get_unmapped_area = arch_get_unmapped_area; + mm->unmap_area = arch_unmap_area; + } else { + mm->mmap_base = mmap_base(); + mm->get_unmapped_area = arch_get_unmapped_area_topdown; + mm->unmap_area = arch_unmap_area_topdown; + if (current->flags & PF_RANDOMIZE) + rnd = -rnd; + } if (current->flags & PF_RANDOMIZE) { - /* Add 28bit randomness which is about 40bits of address space - because mmap base has to be page aligned. - or ~1/128 of the total user VM - (total user address space is 47bits) */ - unsigned rnd = get_random_int() & 0xfffffff; - mm->mmap_base += ((unsigned long)rnd) << PAGE_SHIFT; + mm->mmap_base += ((long)rnd) << PAGE_SHIFT; } - mm->get_unmapped_area = arch_get_unmapped_area; - mm->unmap_area = arch_unmap_area; } - --- linux-2.6.24.orig/arch/x86/mm/init_32.c +++ linux-2.6.24/arch/x86/mm/init_32.c @@ -223,22 +223,48 @@ } for (i = 0; i < e820.nr_map; i++) { - - if (e820.map[i].type != E820_RAM) /* not usable memory */ + /* + * Not usable memory: + */ + if (e820.map[i].type != E820_RAM) continue; + addr = (e820.map[i].addr + PAGE_SIZE-1) >> PAGE_SHIFT; + end = (e820.map[i].addr + e820.map[i].size) >> PAGE_SHIFT; + /* - * !!!FIXME!!! Some BIOSen report areas as RAM that - * are not. Notably the 640->1Mb area. We need a sanity - * check here. + * Sanity check: Some BIOSen report areas as RAM that + * are not. Notably the 640->1Mb area, which is the + * PCI BIOS area. */ - addr = (e820.map[i].addr+PAGE_SIZE-1) >> PAGE_SHIFT; - end = (e820.map[i].addr+e820.map[i].size) >> PAGE_SHIFT; - if ((pagenr >= addr) && (pagenr < end)) + if (addr >= (BIOS_BEGIN >> PAGE_SHIFT) && + end < (BIOS_END >> PAGE_SHIFT)) + continue; + + if ((pagenr >= addr) && (pagenr < end)) return 1; } return 0; } +/* + * devmem_is_allowed() checks to see if /dev/mem access to a certain address + * is valid. The argument is a physical page number. + * + * + * On x86, access has to be given to the first megabyte of ram because that area + * contains bios code and data regions used by X and dosemu and similar apps. + * Access has to be given to non-kernel-ram areas as well, these contain the PCI + * mmio resources as well as potential bios/acpi data regions. + */ +int devmem_is_allowed(unsigned long pagenr) +{ + if (pagenr <= 256) + return 1; + if (!page_is_ram(pagenr)) + return 1; + return 0; +} + #ifdef CONFIG_HIGHMEM pte_t *kmap_pte; pgprot_t kmap_prot; --- linux-2.6.24.orig/arch/x86/lib/copy_user_64.S +++ linux-2.6.24/arch/x86/lib/copy_user_64.S @@ -217,19 +217,19 @@ /* table sorted by exception address */ .section __ex_table,"a" .align 8 - .quad .Ls1,.Ls1e - .quad .Ls2,.Ls2e - .quad .Ls3,.Ls3e - .quad .Ls4,.Ls4e - .quad .Ld1,.Ls1e + .quad .Ls1,.Ls1e /* Ls1-Ls4 have copied zero bytes */ + .quad .Ls2,.Ls1e + .quad .Ls3,.Ls1e + .quad .Ls4,.Ls1e + .quad .Ld1,.Ls1e /* Ld1-Ld4 have copied 0-24 bytes */ .quad .Ld2,.Ls2e .quad .Ld3,.Ls3e .quad .Ld4,.Ls4e - .quad .Ls5,.Ls5e - .quad .Ls6,.Ls6e - .quad .Ls7,.Ls7e - .quad .Ls8,.Ls8e - .quad .Ld5,.Ls5e + .quad .Ls5,.Ls5e /* Ls5-Ls8 have copied 32 bytes */ + .quad .Ls6,.Ls5e + .quad .Ls7,.Ls5e + .quad .Ls8,.Ls5e + .quad .Ld5,.Ls5e /* Ld5-Ld8 have copied 32-56 bytes */ .quad .Ld6,.Ls6e .quad .Ld7,.Ls7e .quad .Ld8,.Ls8e @@ -244,11 +244,8 @@ .quad .Le5,.Le_zero .previous - /* compute 64-offset for main loop. 8 bytes accuracy with error on the - pessimistic side. this is gross. it would be better to fix the - interface. */ /* eax: zero, ebx: 64 */ -.Ls1e: addl $8,%eax +.Ls1e: addl $8,%eax /* eax is bytes left uncopied within the loop (Ls1e: 64 .. Ls8e: 8) */ .Ls2e: addl $8,%eax .Ls3e: addl $8,%eax .Ls4e: addl $8,%eax --- linux-2.6.24.orig/arch/x86/lib/copy_user_nocache_64.S +++ linux-2.6.24/arch/x86/lib/copy_user_nocache_64.S @@ -145,19 +145,19 @@ /* table sorted by exception address */ .section __ex_table,"a" .align 8 - .quad .Ls1,.Ls1e - .quad .Ls2,.Ls2e - .quad .Ls3,.Ls3e - .quad .Ls4,.Ls4e - .quad .Ld1,.Ls1e + .quad .Ls1,.Ls1e /* .Ls[1-4] - 0 bytes copied */ + .quad .Ls2,.Ls1e + .quad .Ls3,.Ls1e + .quad .Ls4,.Ls1e + .quad .Ld1,.Ls1e /* .Ld[1-4] - 0..24 bytes coped */ .quad .Ld2,.Ls2e .quad .Ld3,.Ls3e .quad .Ld4,.Ls4e - .quad .Ls5,.Ls5e - .quad .Ls6,.Ls6e - .quad .Ls7,.Ls7e - .quad .Ls8,.Ls8e - .quad .Ld5,.Ls5e + .quad .Ls5,.Ls5e /* .Ls[5-8] - 32 bytes copied */ + .quad .Ls6,.Ls5e + .quad .Ls7,.Ls5e + .quad .Ls8,.Ls5e + .quad .Ld5,.Ls5e /* .Ld[5-8] - 32..56 bytes copied */ .quad .Ld6,.Ls6e .quad .Ld7,.Ls7e .quad .Ld8,.Ls8e @@ -172,11 +172,8 @@ .quad .Le5,.Le_zero .previous - /* compute 64-offset for main loop. 8 bytes accuracy with error on the - pessimistic side. this is gross. it would be better to fix the - interface. */ /* eax: zero, ebx: 64 */ -.Ls1e: addl $8,%eax +.Ls1e: addl $8,%eax /* eax: bytes left uncopied: Ls1e: 64 .. Ls8e: 8 */ .Ls2e: addl $8,%eax .Ls3e: addl $8,%eax .Ls4e: addl $8,%eax --- linux-2.6.24.orig/arch/x86/Kconfig.debug +++ linux-2.6.24/arch/x86/Kconfig.debug @@ -5,6 +5,18 @@ source "lib/Kconfig.debug" +config NONPROMISC_DEVMEM + bool "Disable promiscuous /dev/mem" + default y + help + The /dev/mem file by default only allows userspace access to PCI + space and the BIOS code and data regions. This is sufficient for + dosemu and X and all common users of /dev/mem. With this config + option, you allow userspace access to all of memory, including + kernel and userspace memory. Accidental access to this is + obviously disasterous, but specific access can be used by people + debugging the kernel. + config EARLY_PRINTK bool "Early printk" if EMBEDDED && DEBUG_KERNEL && X86_32 default y @@ -18,6 +30,12 @@ with klogd/syslogd or the X server. You should normally N here, unless you want to debug such a crash. +config WRAPPER_PRINT + bool "Boot wrapper print" if EMBEDDED + default y + help + Enable informational output from the bootwrapper (bzImage and zImage). + config DEBUG_STACKOVERFLOW bool "Check for stack overflows" depends on DEBUG_KERNEL @@ -112,4 +130,78 @@ Add a simple leak tracer to the IOMMU code. This is useful when you are debugging a buggy device driver that leaks IOMMU mappings. +# +# IO delay types: +# + +config IO_DELAY_TYPE_0X80 + int + default "0" + +config IO_DELAY_TYPE_0XED + int + default "1" + +config IO_DELAY_TYPE_UDELAY + int + default "2" + +config IO_DELAY_TYPE_NONE + int + default "3" + +choice + prompt "IO delay type" + default IO_DELAY_0XED + +config IO_DELAY_0X80 + bool "port 0x80 based port-IO delay [recommended]" + help + This is the traditional Linux IO delay used for in/out_p. + It is the most tested hence safest selection here. + +config IO_DELAY_0XED + bool "port 0xed based port-IO delay" + help + Use port 0xed as the IO delay. This frees up port 0x80 which is + often used as a hardware-debug port. + +config IO_DELAY_UDELAY + bool "udelay based port-IO delay" + help + Use udelay(2) as the IO delay method. This provides the delay + while not having any side-effect on the IO port space. + +config IO_DELAY_NONE + bool "no port-IO delay" + help + No port-IO delay. Will break on old boxes that require port-IO + delay for certain operations. Should work on most new machines. + +endchoice + +if IO_DELAY_0X80 +config DEFAULT_IO_DELAY_TYPE + int + default IO_DELAY_TYPE_0X80 +endif + +if IO_DELAY_0XED +config DEFAULT_IO_DELAY_TYPE + int + default IO_DELAY_TYPE_0XED +endif + +if IO_DELAY_UDELAY +config DEFAULT_IO_DELAY_TYPE + int + default IO_DELAY_TYPE_UDELAY +endif + +if IO_DELAY_NONE +config DEFAULT_IO_DELAY_TYPE + int + default IO_DELAY_TYPE_NONE +endif + endmenu --- linux-2.6.24.orig/arch/x86/pci/mmconfig_64.c +++ linux-2.6.24/arch/x86/pci/mmconfig_64.c @@ -40,9 +40,7 @@ static char __iomem *pci_dev_base(unsigned int seg, unsigned int bus, unsigned int devfn) { char __iomem *addr; - if (seg == 0 && bus < PCI_MMCFG_MAX_CHECK_BUS && - test_bit(32*bus + PCI_SLOT(devfn), pci_mmcfg_fallback_slots)) - return NULL; + addr = get_virt(seg, bus); if (!addr) return NULL; @@ -56,13 +54,16 @@ /* Why do we have this when nobody checks it. How about a BUG()!? -AK */ if (unlikely((bus > 255) || (devfn > 255) || (reg > 4095))) { - *value = -1; +err: *value = -1; return -EINVAL; } + if (reg < 256) + return pci_conf1_read(seg,bus,devfn,reg,len,value); + addr = pci_dev_base(seg, bus, devfn); if (!addr) - return pci_conf1_read(seg,bus,devfn,reg,len,value); + goto err; switch (len) { case 1: @@ -88,9 +89,12 @@ if (unlikely((bus > 255) || (devfn > 255) || (reg > 4095))) return -EINVAL; + if (reg < 256) + return pci_conf1_write(seg,bus,devfn,reg,len,value); + addr = pci_dev_base(seg, bus, devfn); if (!addr) - return pci_conf1_write(seg,bus,devfn,reg,len,value); + return -EINVAL; switch (len) { case 1: @@ -126,12 +130,6 @@ return addr; } -int __init pci_mmcfg_arch_reachable(unsigned int seg, unsigned int bus, - unsigned int devfn) -{ - return pci_dev_base(seg, bus, devfn) != NULL; -} - int __init pci_mmcfg_arch_init(void) { int i; --- linux-2.6.24.orig/arch/x86/pci/acpi.c +++ linux-2.6.24/arch/x86/pci/acpi.c @@ -219,8 +219,21 @@ if (pxm >= 0) sd->node = pxm_to_node(pxm); #endif + /* + * Maybe the desired pci bus has been already scanned. In such case + * it is unnecessary to scan the pci bus with the given domain,busnum. + */ + bus = pci_find_bus(domain, busnum); + if (bus) { + /* + * If the desired bus exits, the content of bus->sysdata will + * be replaced by sd. + */ + memcpy(bus->sysdata, sd, sizeof(*sd)); + kfree(sd); + } else + bus = pci_scan_bus_parented(NULL, busnum, &pci_root_ops, sd); - bus = pci_scan_bus_parented(NULL, busnum, &pci_root_ops, sd); if (!bus) kfree(sd); @@ -228,7 +241,7 @@ if (bus != NULL) { if (pxm >= 0) { printk("bus %d -> pxm %d -> node %d\n", - busnum, pxm, sd->node); + busnum, pxm, pxm_to_node(pxm)); } } #endif --- linux-2.6.24.orig/arch/x86/pci/i386.c +++ linux-2.6.24/arch/x86/pci/i386.c @@ -125,7 +125,8 @@ pr = pci_find_parent_resource(dev, r); if (!r->start || !pr || request_resource(pr, r) < 0) { - printk(KERN_ERR "PCI: Cannot allocate " + printk(KERN_WARNING + "PCI: Cannot allocate " "resource region %d " "of bridge %s\n", idx, pci_name(dev)); @@ -168,7 +169,8 @@ r->start, r->end, r->flags, disabled, pass); pr = pci_find_parent_resource(dev, r); if (!pr || request_resource(pr, r) < 0) { - printk(KERN_ERR "PCI: Cannot allocate " + printk(KERN_WARNING + "PCI: Cannot allocate " "resource region %d " "of device %s\n", idx, pci_name(dev)); --- linux-2.6.24.orig/arch/x86/pci/init.c +++ linux-2.6.24/arch/x86/pci/init.c @@ -32,6 +32,8 @@ printk(KERN_ERR "PCI: Fatal: No config space access function found\n"); + dmi_check_pciprobe(); + return 0; } arch_initcall(pci_access_init); --- linux-2.6.24.orig/arch/x86/pci/pci.h +++ linux-2.6.24/arch/x86/pci/pci.h @@ -39,6 +39,8 @@ pci_dmi_bf, }; +extern void __init dmi_check_pciprobe(void); + /* pci-i386.c */ extern unsigned int pcibios_max_latency; @@ -98,13 +100,6 @@ /* pci-mmconfig.c */ -/* Verify the first 16 busses. We assume that systems with more busses - get MCFG right. */ -#define PCI_MMCFG_MAX_CHECK_BUS 16 -extern DECLARE_BITMAP(pci_mmcfg_fallback_slots, 32*PCI_MMCFG_MAX_CHECK_BUS); - -extern int __init pci_mmcfg_arch_reachable(unsigned int seg, unsigned int bus, - unsigned int devfn); extern int __init pci_mmcfg_arch_init(void); /* --- linux-2.6.24.orig/arch/x86/pci/common.c +++ linux-2.6.24/arch/x86/pci/common.c @@ -17,8 +17,7 @@ #include "pci.h" -unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | - PCI_PROBE_MMCONF; +unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2; static int pci_bf_sort; int pci_routeirq; @@ -147,6 +146,22 @@ } #endif +#ifdef CONFIG_PCI_MMCONFIG +static int __devinit working_mmconfig(struct dmi_system_id *d) +{ + pci_probe |= PCI_PROBE_MMCONF; + return 0; +} + +static int __devinit blacklist_mmconfig(struct dmi_system_id *d) +{ + pci_probe &= ~PCI_PROBE_MMCONF; + printk(KERN_INFO "%s detected: disabling MMCONFIG PCI access", + d->ident); + return 0; +} +#endif /*CONFIG_PCI_MMCONFIG*/ + static struct dmi_system_id __devinitdata pciprobe_dmi_table[] = { #ifdef __i386__ /* @@ -334,13 +349,16 @@ {} }; +void __init dmi_check_pciprobe(void) +{ + dmi_check_system(pciprobe_dmi_table); +} + struct pci_bus * __devinit pcibios_scan_root(int busnum) { struct pci_bus *bus = NULL; struct pci_sysdata *sd; - dmi_check_system(pciprobe_dmi_table); - while ((bus = pci_find_next_bus(bus)) != NULL) { if (bus->number == busnum) { /* Already scanned */ @@ -443,6 +461,10 @@ pci_probe &= ~PCI_PROBE_MMCONF; return NULL; } + else if (!strcmp(str, "mmconf")) { + pci_probe |= PCI_PROBE_MMCONF; + return NULL; + } #endif else if (!strcmp(str, "noacpi")) { acpi_noirq_set(); --- linux-2.6.24.orig/arch/x86/pci/mmconfig-shared.c +++ linux-2.6.24/arch/x86/pci/mmconfig-shared.c @@ -22,42 +22,9 @@ #define MMCONFIG_APER_MIN (2 * 1024*1024) #define MMCONFIG_APER_MAX (256 * 1024*1024) -DECLARE_BITMAP(pci_mmcfg_fallback_slots, 32*PCI_MMCFG_MAX_CHECK_BUS); - /* Indicate if the mmcfg resources have been placed into the resource table. */ static int __initdata pci_mmcfg_resources_inserted; -/* K8 systems have some devices (typically in the builtin northbridge) - that are only accessible using type1 - Normally this can be expressed in the MCFG by not listing them - and assigning suitable _SEGs, but this isn't implemented in some BIOS. - Instead try to discover all devices on bus 0 that are unreachable using MM - and fallback for them. */ -static void __init unreachable_devices(void) -{ - int i, bus; - /* Use the max bus number from ACPI here? */ - for (bus = 0; bus < PCI_MMCFG_MAX_CHECK_BUS; bus++) { - for (i = 0; i < 32; i++) { - unsigned int devfn = PCI_DEVFN(i, 0); - u32 val1, val2; - - pci_conf1_read(0, bus, devfn, 0, 4, &val1); - if (val1 == 0xffffffff) - continue; - - if (pci_mmcfg_arch_reachable(0, bus, devfn)) { - raw_pci_ops->read(0, bus, devfn, 0, 4, &val2); - if (val1 == val2) - continue; - } - set_bit(i + 32 * bus, pci_mmcfg_fallback_slots); - printk(KERN_NOTICE "PCI: No mmconfig possible on device" - " %02x:%02x\n", bus, i); - } - } -} - static const char __init *pci_mmcfg_e7520(void) { u32 win; @@ -270,8 +237,6 @@ return; if (pci_mmcfg_arch_init()) { - if (type == 1) - unreachable_devices(); if (known_bridge) pci_mmcfg_insert_resources(IORESOURCE_BUSY); pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF; --- linux-2.6.24.orig/arch/x86/pci/mmconfig_32.c +++ linux-2.6.24/arch/x86/pci/mmconfig_32.c @@ -30,10 +30,6 @@ struct acpi_mcfg_allocation *cfg; int cfg_num; - if (seg == 0 && bus < PCI_MMCFG_MAX_CHECK_BUS && - test_bit(PCI_SLOT(devfn) + 32*bus, pci_mmcfg_fallback_slots)) - return 0; - for (cfg_num = 0; cfg_num < pci_mmcfg_config_num; cfg_num++) { cfg = &pci_mmcfg_config[cfg_num]; if (cfg->pci_segment == seg && @@ -68,13 +64,16 @@ u32 base; if ((bus > 255) || (devfn > 255) || (reg > 4095)) { - *value = -1; +err: *value = -1; return -EINVAL; } + if (reg < 256) + return pci_conf1_read(seg,bus,devfn,reg,len,value); + base = get_base_addr(seg, bus, devfn); if (!base) - return pci_conf1_read(seg,bus,devfn,reg,len,value); + goto err; spin_lock_irqsave(&pci_config_lock, flags); @@ -105,9 +104,12 @@ if ((bus > 255) || (devfn > 255) || (reg > 4095)) return -EINVAL; + if (reg < 256) + return pci_conf1_write(seg,bus,devfn,reg,len,value); + base = get_base_addr(seg, bus, devfn); if (!base) - return pci_conf1_write(seg,bus,devfn,reg,len,value); + return -EINVAL; spin_lock_irqsave(&pci_config_lock, flags); @@ -134,12 +136,6 @@ .write = pci_mmcfg_write, }; -int __init pci_mmcfg_arch_reachable(unsigned int seg, unsigned int bus, - unsigned int devfn) -{ - return get_base_addr(seg, bus, devfn) != 0; -} - int __init pci_mmcfg_arch_init(void) { printk(KERN_INFO "PCI: Using MMCONFIG\n"); --- linux-2.6.24.orig/arch/x86/Kconfig +++ linux-2.6.24/arch/x86/Kconfig @@ -116,6 +116,7 @@ bool default y +select HAVE_KVM config ZONE_DMA32 bool @@ -1619,4 +1620,6 @@ source "crypto/Kconfig" +source "arch/x86/kvm/Kconfig" + source "lib/Kconfig" --- linux-2.6.24.orig/arch/x86/xen/enlighten.c +++ linux-2.6.24/arch/x86/xen/enlighten.c @@ -95,7 +95,7 @@ * * 0: not available, 1: available */ -static int have_vcpu_info_placement = 0; +static int have_vcpu_info_placement = 1; static void __init xen_vcpu_setup(int cpu) { @@ -103,6 +103,7 @@ int err; struct vcpu_info *vcpup; + BUG_ON(HYPERVISOR_shared_info == &dummy_shared_info); per_cpu(xen_vcpu, cpu) = &HYPERVISOR_shared_info->vcpu_info[cpu]; if (!have_vcpu_info_placement) @@ -153,6 +154,7 @@ if (*eax == 1) maskedx = ~((1 << X86_FEATURE_APIC) | /* disable APIC */ (1 << X86_FEATURE_ACPI) | /* disable ACPI */ + (1 << X86_FEATURE_SEP) | /* disable SEP */ (1 << X86_FEATURE_ACC)); /* thermal monitoring */ asm(XEN_EMULATE_PREFIX "cpuid" @@ -791,30 +793,40 @@ xen_write_cr3(__pa(base)); } -static __init void xen_pagetable_setup_done(pgd_t *base) +static __init void setup_shared_info(void) { - /* This will work as long as patching hasn't happened yet - (which it hasn't) */ - pv_mmu_ops.alloc_pt = xen_alloc_pt; - pv_mmu_ops.set_pte = xen_set_pte; - if (!xen_feature(XENFEAT_auto_translated_physmap)) { + unsigned long addr = fix_to_virt(FIX_PARAVIRT_BOOTMAP); + /* * Create a mapping for the shared info page. * Should be set_fixmap(), but shared_info is a machine * address with no corresponding pseudo-phys address. */ - set_pte_mfn(fix_to_virt(FIX_PARAVIRT_BOOTMAP), + set_pte_mfn(addr, PFN_DOWN(xen_start_info->shared_info), PAGE_KERNEL); - HYPERVISOR_shared_info = - (struct shared_info *)fix_to_virt(FIX_PARAVIRT_BOOTMAP); - + HYPERVISOR_shared_info = (struct shared_info *)addr; } else HYPERVISOR_shared_info = (struct shared_info *)__va(xen_start_info->shared_info); +#ifndef CONFIG_SMP + /* In UP this is as good a place as any to set up shared info */ + xen_setup_vcpu_info_placement(); +#endif +} + +static __init void xen_pagetable_setup_done(pgd_t *base) +{ + /* This will work as long as patching hasn't happened yet + (which it hasn't) */ + pv_mmu_ops.alloc_pt = xen_alloc_pt; + pv_mmu_ops.set_pte = xen_set_pte; + + setup_shared_info(); + /* Actually pin the pagetable down, but we can't set PG_pinned yet because the page structures don't exist yet. */ { @@ -1165,15 +1177,9 @@ x86_write_percpu(xen_cr3, __pa(pgd)); x86_write_percpu(xen_current_cr3, __pa(pgd)); -#ifdef CONFIG_SMP /* Don't do the full vcpu_info placement stuff until we have a - possible map. */ + possible map and a non-dummy shared_info. */ per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0]; -#else - /* May as well do it now, since there's no good time to call - it later on UP. */ - xen_setup_vcpu_info_placement(); -#endif pv_info.kernel_rpl = 1; if (xen_feature(XENFEAT_supervisor_mode_kernel)) --- linux-2.6.24.orig/arch/x86/xen/xen-asm.S +++ linux-2.6.24/arch/x86/xen/xen-asm.S @@ -33,12 +33,17 @@ events, then enter the hypervisor to get them handled. */ ENTRY(xen_irq_enable_direct) - /* Clear mask and test pending */ - andw $0x00ff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending + /* Unmask events */ + movb $0, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_mask + /* Preempt here doesn't matter because that will deal with any pending interrupts. The pending check may end up being run on the wrong CPU, but that doesn't hurt. */ + + /* Test for pending */ + testb $0xff, PER_CPU_VAR(xen_vcpu_info)+XEN_vcpu_info_pending jz 1f + 2: call check_events 1: ENDPATCH(xen_irq_enable_direct) --- linux-2.6.24.orig/arch/x86/boot/compressed/misc_64.c +++ linux-2.6.24/arch/x86/boot/compressed/misc_64.c @@ -184,8 +184,6 @@ static void *memset(void *s, int c, unsigned n); static void *memcpy(void *dest, const void *src, unsigned n); -static void putstr(const char *); - static long free_mem_ptr; static long free_mem_end_ptr; @@ -228,7 +226,8 @@ { free_mem_ptr = (long) *ptr; } - + +#ifdef CONFIG_WRAPPER_PRINT static void scroll(void) { int i; @@ -269,11 +268,14 @@ RM_SCREEN_INFO.orig_y = y; pos = (x + cols * y) * 2; /* Update cursor position */ - outb_p(14, vidport); - outb_p(0xff & (pos >> 9), vidport+1); - outb_p(15, vidport); - outb_p(0xff & (pos >> 1), vidport+1); -} + outb(14, vidport); + outb(0xff & (pos >> 9), vidport+1); + outb(15, vidport); + outb(0xff & (pos >> 1), vidport+1); +} +#else +#define putstr(__x) do{}while(0) +#endif /* CONFIG_WRAPPER_PRINT */ static void* memset(void* s, int c, unsigned n) { --- linux-2.6.24.orig/arch/x86/boot/compressed/misc_32.c +++ linux-2.6.24/arch/x86/boot/compressed/misc_32.c @@ -184,8 +184,6 @@ static void *memset(void *s, int c, unsigned n); static void *memcpy(void *dest, const void *src, unsigned n); -static void putstr(const char *); - static unsigned long free_mem_ptr; static unsigned long free_mem_end_ptr; @@ -232,7 +230,8 @@ { free_mem_ptr = (unsigned long) *ptr; } - + +#ifdef CONFIG_WRAPPER_PRINT static void scroll(void) { int i; @@ -276,11 +275,14 @@ RM_SCREEN_INFO.orig_y = y; pos = (x + cols * y) * 2; /* Update cursor position */ - outb_p(14, vidport); - outb_p(0xff & (pos >> 9), vidport+1); - outb_p(15, vidport); - outb_p(0xff & (pos >> 1), vidport+1); -} + outb(14, vidport); + outb(0xff & (pos >> 9), vidport+1); + outb(15, vidport); + outb(0xff & (pos >> 1), vidport+1); +} +#else +#define putstr(__x) do{}while(0) +#endif /* CONFIG_WRAPPER_PRINT */ static void* memset(void* s, int c, unsigned n) { --- linux-2.6.24.orig/arch/x86/boot/edd.c +++ linux-2.6.24/arch/x86/boot/edd.c @@ -128,16 +128,24 @@ { char eddarg[8]; int do_mbr = 1; +#ifdef CONFIG_EDD_OFF + int do_edd = 0; +#else int do_edd = 1; +#endif int devno; struct edd_info ei, *edp; u32 *mbrptr; if (cmdline_find_option("edd", eddarg, sizeof eddarg) > 0) { - if (!strcmp(eddarg, "skipmbr") || !strcmp(eddarg, "skip")) + if (!strcmp(eddarg, "skipmbr") || !strcmp(eddarg, "skip")) { + do_edd = 1; do_mbr = 0; + } else if (!strcmp(eddarg, "off")) do_edd = 0; + else if (!strcmp(eddarg, "on")) + do_edd = 1; } edp = boot_params.eddbuf; --- linux-2.6.24.orig/arch/x86/Makefile +++ linux-2.6.24/arch/x86/Makefile @@ -17,3 +17,5 @@ UTS_MACHINE := x86_64 include $(srctree)/arch/x86/Makefile_64 endif + +core-$(CONFIG_KVM) += arch/x86/kvm/ --- linux-2.6.24.orig/arch/x86/ia32/ia32_signal.c +++ linux-2.6.24/arch/x86/ia32/ia32_signal.c @@ -494,7 +494,7 @@ regs->ss = __USER32_DS; set_fs(USER_DS); - regs->eflags &= ~TF_MASK; + regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF); if (test_thread_flag(TIF_SINGLESTEP)) ptrace_notify(SIGTRAP); @@ -600,7 +600,7 @@ regs->ss = __USER32_DS; set_fs(USER_DS); - regs->eflags &= ~TF_MASK; + regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF); if (test_thread_flag(TIF_SINGLESTEP)) ptrace_notify(SIGTRAP); --- linux-2.6.24.orig/arch/x86/kernel/apic_64.c +++ linux-2.6.24/arch/x86/kernel/apic_64.c @@ -151,7 +151,7 @@ return send_status; } -void enable_NMI_through_LVT0 (void * dummy) +void enable_NMI_through_LVT0(void) { unsigned int v; --- linux-2.6.24.orig/arch/x86/kernel/reboot_64.c +++ linux-2.6.24/arch/x86/kernel/reboot_64.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -28,6 +29,7 @@ static long no_idt[3]; static enum { + BOOT_ACPI = 'a', BOOT_TRIPLE = 't', BOOT_KBD = 'k' } reboot_type = BOOT_KBD; @@ -56,6 +58,7 @@ case 't': case 'b': case 'k': + case 'a': reboot_type = *str; break; case 'f': @@ -146,7 +149,11 @@ reboot_type = BOOT_KBD; break; - } + case BOOT_ACPI: + acpi_reboot(); + reboot_type = BOOT_KBD; + break; + } } } --- linux-2.6.24.orig/arch/x86/kernel/Makefile_32 +++ linux-2.6.24/arch/x86/kernel/Makefile_32 @@ -8,7 +8,7 @@ obj-y := process_32.o signal_32.o entry_32.o traps_32.o irq_32.o \ ptrace_32.o time_32.o ioport_32.o ldt_32.o setup_32.o i8259_32.o sys_i386_32.o \ pci-dma_32.o i386_ksyms_32.o i387_32.o bootflag.o e820_32.o\ - quirks.o i8237.o topology.o alternative.o i8253.o tsc_32.o + quirks.o i8237.o topology.o alternative.o i8253.o tsc_32.o io_delay.o obj-$(CONFIG_STACKTRACE) += stacktrace.o obj-y += cpu/ --- linux-2.6.24.orig/arch/x86/kernel/entry_64.S +++ linux-2.6.24/arch/x86/kernel/entry_64.S @@ -779,7 +779,7 @@ swapgs paranoid_restore\trace: RESTORE_ALL 8 - iretq + jmp iret_label paranoid_userspace\trace: GET_THREAD_INFO(%rcx) movl threadinfo_flags(%rcx),%ebx --- linux-2.6.24.orig/arch/x86/kernel/smpboot_64.c +++ linux-2.6.24/arch/x86/kernel/smpboot_64.c @@ -338,7 +338,7 @@ if (nmi_watchdog == NMI_IO_APIC) { disable_8259A_irq(0); - enable_NMI_through_LVT0(NULL); + enable_NMI_through_LVT0(); enable_8259A_irq(0); } --- linux-2.6.24.orig/arch/x86/kernel/io_delay.c +++ linux-2.6.24/arch/x86/kernel/io_delay.c @@ -0,0 +1,121 @@ +/* + * I/O delay strategies for inb_p/outb_p + * + * Allow for a DMI based override of port 0x80, needed for certain HP laptops + * and possibly other systems. Also allow for the gradual elimination of + * outb_p/inb_p API uses. + */ +#include +#include +#include +#include +#include +#include + +int io_delay_type __read_mostly = CONFIG_DEFAULT_IO_DELAY_TYPE; + +static int __initdata io_delay_override; + +/* + * Paravirt wants native_io_delay to be a constant. + */ +void native_io_delay(void) +{ + switch (io_delay_type) { + default: + case CONFIG_IO_DELAY_TYPE_0X80: + asm volatile ("outb %al, $0x80"); + break; + case CONFIG_IO_DELAY_TYPE_0XED: + asm volatile ("outb %al, $0xed"); + break; + case CONFIG_IO_DELAY_TYPE_UDELAY: + /* + * 2 usecs is an upper-bound for the outb delay but + * note that udelay doesn't have the bus-level + * side-effects that outb does, nor does udelay() have + * precise timings during very early bootup (the delays + * are shorter until calibrated): + */ + udelay(2); + case CONFIG_IO_DELAY_TYPE_NONE: + break; + } +} +EXPORT_SYMBOL(native_io_delay); + +static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id) +{ + if (io_delay_type == CONFIG_IO_DELAY_TYPE_0X80) { + printk(KERN_NOTICE "%s: using 0xed I/O delay port\n", + id->ident); + io_delay_type = CONFIG_IO_DELAY_TYPE_0XED; + } + + return 0; +} + +/* + * Quirk table for systems that misbehave (lock up, etc.) if port + * 0x80 is used: + */ +static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = { + { + .callback = dmi_io_delay_0xed_port, + .ident = "Compaq Presario V6000", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), + DMI_MATCH(DMI_BOARD_NAME, "30B7") + } + }, + { + .callback = dmi_io_delay_0xed_port, + .ident = "HP Pavilion dv9000z", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), + DMI_MATCH(DMI_BOARD_NAME, "30B9") + } + }, + { + .callback = dmi_io_delay_0xed_port, + .ident = "HP Pavilion dv6000", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), + DMI_MATCH(DMI_BOARD_NAME, "30B8") + } + }, + { + .callback = dmi_io_delay_0xed_port, + .ident = "HP Pavilion tx1000", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"), + DMI_MATCH(DMI_BOARD_NAME, "30BF") + } + }, + { } +}; + +void __init io_delay_init(void) +{ + if (!io_delay_override) + dmi_check_system(io_delay_0xed_port_dmi_table); +} + +static int __init io_delay_param(char *s) +{ + if (!strcmp(s, "0x80")) + io_delay_type = CONFIG_IO_DELAY_TYPE_0X80; + else if (!strcmp(s, "0xed")) + io_delay_type = CONFIG_IO_DELAY_TYPE_0XED; + else if (!strcmp(s, "udelay")) + io_delay_type = CONFIG_IO_DELAY_TYPE_UDELAY; + else if (!strcmp(s, "none")) + io_delay_type = CONFIG_IO_DELAY_TYPE_NONE; + else + return -EINVAL; + + io_delay_override = 1; + return 0; +} + +early_param("io_delay", io_delay_param); --- linux-2.6.24.orig/arch/x86/kernel/smpboot_32.c +++ linux-2.6.24/arch/x86/kernel/smpboot_32.c @@ -405,7 +405,7 @@ setup_secondary_clock(); if (nmi_watchdog == NMI_IO_APIC) { disable_8259A_irq(0); - enable_NMI_through_LVT0(NULL); + enable_NMI_through_LVT0(); enable_8259A_irq(0); } /* @@ -882,6 +882,11 @@ /* mark "stuck" area as not stuck */ *((volatile unsigned long *)trampoline_base) = 0; + /* + * Cleanup possible dangling ends... + */ + smpboot_restore_warm_reset_vector(); + return boot_error; } @@ -1083,11 +1088,6 @@ } /* - * Cleanup possible dangling ends... - */ - smpboot_restore_warm_reset_vector(); - - /* * Allow the user to impress friends. */ Dprintk("Before bogomips.\n"); --- linux-2.6.24.orig/arch/x86/kernel/signal_32.c +++ linux-2.6.24/arch/x86/kernel/signal_32.c @@ -396,7 +396,7 @@ * The tracer may want to single-step inside the * handler too. */ - regs->eflags &= ~TF_MASK; + regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF); if (test_thread_flag(TIF_SINGLESTEP)) ptrace_notify(SIGTRAP); @@ -489,7 +489,7 @@ * The tracer may want to single-step inside the * handler too. */ - regs->eflags &= ~TF_MASK; + regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF); if (test_thread_flag(TIF_SINGLESTEP)) ptrace_notify(SIGTRAP); --- linux-2.6.24.orig/arch/x86/kernel/sys_x86_64.c +++ linux-2.6.24/arch/x86/kernel/sys_x86_64.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -65,6 +66,7 @@ unsigned long *end) { if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)) { + unsigned long new_begin; /* This is usually used needed to map code in small model, so it needs to be in the first 31bit. Limit it to that. This means we need to move the @@ -74,6 +76,11 @@ of playground for now. -AK */ *begin = 0x40000000; *end = 0x80000000; + if (current->flags & PF_RANDOMIZE) { + new_begin = randomize_range(*begin, *begin + 0x02000000, 0); + if (new_begin) + *begin = new_begin; + } } else { *begin = TASK_UNMAPPED_BASE; *end = TASK_SIZE; @@ -143,6 +150,97 @@ } } + +unsigned long +arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, + const unsigned long len, const unsigned long pgoff, + const unsigned long flags) +{ + struct vm_area_struct *vma; + struct mm_struct *mm = current->mm; + unsigned long addr = addr0; + + /* requested length too big for entire address space */ + if (len > TASK_SIZE) + return -ENOMEM; + + if (flags & MAP_FIXED) + return addr; + + /* for MAP_32BIT mappings we force the legact mmap base */ + if (!test_thread_flag(TIF_IA32) && (flags & MAP_32BIT)) + goto bottomup; + + /* requesting a specific address */ + if (addr) { + addr = PAGE_ALIGN(addr); + vma = find_vma(mm, addr); + if (TASK_SIZE - len >= addr && + (!vma || addr + len <= vma->vm_start)) + return addr; + } + + /* check if free_area_cache is useful for us */ + if (len <= mm->cached_hole_size) { + mm->cached_hole_size = 0; + mm->free_area_cache = mm->mmap_base; + } + + /* either no address requested or can't fit in requested address hole */ + addr = mm->free_area_cache; + + /* make sure it can fit in the remaining address space */ + if (addr > len) { + vma = find_vma(mm, addr-len); + if (!vma || addr <= vma->vm_start) + /* remember the address as a hint for next time */ + return (mm->free_area_cache = addr-len); + } + + if (mm->mmap_base < len) + goto bottomup; + + addr = mm->mmap_base-len; + + do { + /* + * Lookup failure means no vma is above this address, + * else if new region fits below vma->vm_start, + * return with success: + */ + vma = find_vma(mm, addr); + if (!vma || addr+len <= vma->vm_start) + /* remember the address as a hint for next time */ + return (mm->free_area_cache = addr); + + /* remember the largest hole we saw so far */ + if (addr + mm->cached_hole_size < vma->vm_start) + mm->cached_hole_size = vma->vm_start - addr; + + /* try just below the current vma->vm_start */ + addr = vma->vm_start-len; + } while (len < vma->vm_start); + +bottomup: + /* + * A failed mmap() very likely causes application failure, + * so fall back to the bottom-up function here. This scenario + * can happen with large stack limits and large mmap() + * allocations. + */ + mm->cached_hole_size = ~0UL; + mm->free_area_cache = TASK_UNMAPPED_BASE; + addr = arch_get_unmapped_area(filp, addr0, len, pgoff, flags); + /* + * Restore the topdown base: + */ + mm->free_area_cache = mm->mmap_base; + mm->cached_hole_size = ~0UL; + + return addr; +} + + asmlinkage long sys_uname(struct new_utsname __user * name) { int err; --- linux-2.6.24.orig/arch/x86/kernel/io_apic_32.c +++ linux-2.6.24/arch/x86/kernel/io_apic_32.c @@ -2080,7 +2080,7 @@ .eoi = ack_apic, }; -static void setup_nmi (void) +static void __init setup_nmi(void) { /* * Dirty trick to enable the NMI watchdog ... @@ -2093,7 +2093,7 @@ */ apic_printk(APIC_VERBOSE, KERN_INFO "activating NMI Watchdog ..."); - on_each_cpu(enable_NMI_through_LVT0, NULL, 1, 1); + enable_NMI_through_LVT0(); apic_printk(APIC_VERBOSE, " done.\n"); } @@ -2306,6 +2306,9 @@ for (i = FIRST_SYSTEM_VECTOR; i < NR_VECTORS; i++) set_bit(i, used_vectors); + /* Mark FIRST_DEVICE_VECTOR which is assigned to IRQ0 as used. */ + set_bit(FIRST_DEVICE_VECTOR, used_vectors); + enable_IO_APIC(); if (acpi_ioapic) @@ -2478,6 +2481,7 @@ dynamic_irq_cleanup(irq); spin_lock_irqsave(&vector_lock, flags); + clear_bit(irq_vector[irq], used_vectors); irq_vector[irq] = 0; spin_unlock_irqrestore(&vector_lock, flags); } --- linux-2.6.24.orig/arch/x86/kernel/time_64.c +++ linux-2.6.24/arch/x86/kernel/time_64.c @@ -241,7 +241,7 @@ rdtscl(tsc_start); do { rdmsrl(MSR_K7_PERFCTR0 + i, pmc_now); - tsc_now = get_cycles_sync(); + tsc_now = get_cycles(); } while ((tsc_now - tsc_start) < TICK_COUNT); local_irq_restore(flags); --- linux-2.6.24.orig/arch/x86/kernel/Makefile_64 +++ linux-2.6.24/arch/x86/kernel/Makefile_64 @@ -11,7 +11,7 @@ x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \ setup64.o bootflag.o e820_64.o reboot_64.o quirks.o i8237.o \ pci-dma_64.o pci-nommu_64.o alternative.o hpet.o tsc_64.o bugs_64.o \ - i8253.o + i8253.o io_delay.o obj-$(CONFIG_STACKTRACE) += stacktrace.o obj-y += cpu/ --- linux-2.6.24.orig/arch/x86/kernel/acpi/boot.c +++ linux-2.6.24/arch/x86/kernel/acpi/boot.c @@ -592,9 +592,25 @@ * RSDP signature. */ for (offset = 0; offset < length; offset += 16) { - if (strncmp((char *)(phys_to_virt(start) + offset), "RSD PTR ", sig_len)) - continue; - return (start + offset); + if (strncmp((char *)(phys_to_virt(start) + offset), "RSD PTR ", sig_len) == 0) { + /* 2007-09-24 TJ + * The ACPI specification states the first 20 bytes of the RSDP table + * must have a checksum of 0 (ACPI 1.0b RSDP table is 20 bytes long). + * The signature can appear in multiple memory locations so don't rely + * on it as the sole proof of a valid table. + * This fixes broken/disabled ACPI problems with Acer Travelmate C100 + * (and others) where the first signature match is accepted without + * confirming the checksum. + */ + unsigned int i; + unsigned char checksum; + unsigned char *table = (unsigned char *)(phys_to_virt(start) + offset); + for (checksum = 0, i = 0; i < 20; i++) + checksum += table[i]; + + printk(KERN_WARNING PREFIX "RSDP signature @ 0x%0.8lX checksum %d\n", table, checksum); + if (checksum == 0) return (start + offset); + } } return 0; --- linux-2.6.24.orig/arch/x86/kernel/apic_32.c +++ linux-2.6.24/arch/x86/kernel/apic_32.c @@ -154,7 +154,7 @@ /** * enable_NMI_through_LVT0 - enable NMI through local vector table 0 */ -void enable_NMI_through_LVT0 (void * dummy) +void __cpuinit enable_NMI_through_LVT0(void) { unsigned int v = APIC_DM_NMI; --- linux-2.6.24.orig/arch/x86/kernel/ptrace_64.c +++ linux-2.6.24/arch/x86/kernel/ptrace_64.c @@ -585,6 +585,12 @@ } } +#if defined CONFIG_IA32_EMULATION +# define IS_IA32 is_compat_task() +#else +# define IS_IA32 0 +#endif + asmlinkage void syscall_trace_enter(struct pt_regs *regs) { /* do the secure computing check first */ @@ -595,7 +601,7 @@ syscall_trace(regs); if (unlikely(current->audit_context)) { - if (test_thread_flag(TIF_IA32)) { + if (IS_IA32) { audit_syscall_entry(AUDIT_ARCH_I386, regs->orig_rax, regs->rbx, regs->rcx, --- linux-2.6.24.orig/arch/x86/kernel/cpu/amd.c +++ linux-2.6.24/arch/x86/kernel/cpu/amd.c @@ -301,6 +301,9 @@ /* K6s reports MCEs but don't actually have all the MSRs */ if (c->x86 < 6) clear_bit(X86_FEATURE_MCE, c->x86_capability); + + if (cpu_has_xmm2) + set_bit(X86_FEATURE_MFENCE_RDTSC, c->x86_capability); } static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 * c, unsigned int size) --- linux-2.6.24.orig/arch/x86/kernel/cpu/hypervisor.c +++ linux-2.6.24/arch/x86/kernel/cpu/hypervisor.c @@ -0,0 +1,60 @@ +/* + * Common hypervisor code + * + * Copyright (C) 2008, VMware, Inc. + * Author : Alok N Kataria + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include + +#include +#include +#include + +static inline void __cpuinit +detect_hypervisor_vendor(struct cpuinfo_x86 *c) +{ + if (vmware_platform()) { + c->x86_hyper_vendor = X86_HYPER_VENDOR_VMWARE; + } else { + c->x86_hyper_vendor = X86_HYPER_VENDOR_NONE; + } +} + +unsigned long get_hypervisor_tsc_freq(void) +{ + if (boot_cpu_data.x86_hyper_vendor == X86_HYPER_VENDOR_VMWARE) + return vmware_get_tsc_khz(); + return 0; +} + +static inline void __cpuinit +hypervisor_set_feature_bits(struct cpuinfo_x86 *c) +{ + if (boot_cpu_data.x86_hyper_vendor == X86_HYPER_VENDOR_VMWARE) { + vmware_set_feature_bits(c); + return; + } +} + +void __cpuinit init_hypervisor(struct cpuinfo_x86 *c) +{ + detect_hypervisor_vendor(c); + hypervisor_set_feature_bits(c); +} --- linux-2.6.24.orig/arch/x86/kernel/cpu/intel.c +++ linux-2.6.24/arch/x86/kernel/cpu/intel.c @@ -201,9 +201,10 @@ } #endif + if (cpu_has_xmm2) + set_bit(X86_FEATURE_LFENCE_RDTSC, c->x86_capability); if (c->x86 == 15) { set_bit(X86_FEATURE_P4, c->x86_capability); - set_bit(X86_FEATURE_SYNC_RDTSC, c->x86_capability); } if (c->x86 == 6) set_bit(X86_FEATURE_P3, c->x86_capability); --- linux-2.6.24.orig/arch/x86/kernel/cpu/vmware.c +++ linux-2.6.24/arch/x86/kernel/cpu/vmware.c @@ -0,0 +1,114 @@ +/* + * VMware Detection code. + * + * Copyright (C) 2008, VMware, Inc. + * Author : Alok N Kataria + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include + +#include +#include + +#define CPUID_VMWARE_INFO_LEAF 0x40000000 +#define VMWARE_HYPERVISOR_MAGIC 0x564D5868 +#define VMWARE_HYPERVISOR_PORT 0x5658 + +#define VMWARE_PORT_CMD_GETVERSION 10 +#define VMWARE_PORT_CMD_GETHZ 45 + +#define VMWARE_PORT(cmd, eax, ebx, ecx, edx) \ + __asm__("inl (%%dx)" : \ + "=a"(eax), "=c"(ecx), "=d"(edx), "=b"(ebx) : \ + "0"(VMWARE_HYPERVISOR_MAGIC), \ + "1"(VMWARE_PORT_CMD_##cmd), \ + "2"(VMWARE_HYPERVISOR_PORT), "3"(UINT_MAX) : \ + "memory"); + +static inline int __vmware_platform(void) +{ + uint32_t eax, ebx, ecx, edx; + VMWARE_PORT(GETVERSION, eax, ebx, ecx, edx); + return eax != (uint32_t)-1 && ebx == VMWARE_HYPERVISOR_MAGIC; +} + +static unsigned long __vmware_get_tsc_khz(void) +{ + uint64_t tsc_hz; + uint32_t eax, ebx, ecx, edx; + + VMWARE_PORT(GETHZ, eax, ebx, ecx, edx); + + if (ebx == UINT_MAX) + return 0; + tsc_hz = eax | (((uint64_t)ebx) << 32); + do_div(tsc_hz, 1000); + BUG_ON(tsc_hz >> 32); + return tsc_hz; +} + +/* + * While checking the dmi string infomation, just checking the product + * serial key should be enough, as this will always have a VMware + * specific string when running under VMware hypervisor. + */ +int vmware_platform(void) +{ + if (cpu_has_hypervisor) { + unsigned int eax, ebx, ecx, edx; + char hyper_vendor_id[13]; + + cpuid(CPUID_VMWARE_INFO_LEAF, &eax, &ebx, &ecx, &edx); + memcpy(hyper_vendor_id + 0, &ebx, 4); + memcpy(hyper_vendor_id + 4, &ecx, 4); + memcpy(hyper_vendor_id + 8, &edx, 4); + hyper_vendor_id[12] = '\0'; + if (!strcmp(hyper_vendor_id, "VMwareVMware")) + return 1; + } else if (dmi_available && dmi_name_in_serial("VMware") && + __vmware_platform()) + return 1; + + return 0; +} + +unsigned long vmware_get_tsc_khz(void) +{ + BUG_ON(!vmware_platform()); + return __vmware_get_tsc_khz(); +} + +/* + * VMware hypervisor takes care of exporting a reliable TSC to the guest. + * Still, due to timing difference when running on virtual cpus, the TSC can + * be marked as unstable in some cases. For example, the TSC sync check at + * bootup can fail due to a marginal offset between vcpus' TSCs (though the + * TSCs do not drift from each other). Also, the ACPI PM timer clocksource + * is not suitable as a watchdog when running on a hypervisor because the + * kernel may miss a wrap of the counter if the vcpu is descheduled for a + * long time. To skip these checks at runtime we set these capability bits, + * so that the kernel could just trust the hypervisor with providing a + * reliable virtual TSC that is suitable for timekeeping. + */ +void __cpuinit vmware_set_feature_bits(struct cpuinfo_x86 *c) +{ + set_bit(X86_FEATURE_CONSTANT_TSC, c->x86_capability); + set_bit(X86_FEATURE_TSC_RELIABLE, c->x86_capability); +} --- linux-2.6.24.orig/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c +++ linux-2.6.24/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c @@ -44,6 +44,7 @@ CPU_DOTHAN_A1, CPU_DOTHAN_A2, CPU_DOTHAN_B0, + CPU_DOTHAN_C0, CPU_MP4HT_D0, CPU_MP4HT_E0, }; @@ -53,6 +54,7 @@ [CPU_DOTHAN_A1] = { 6, 13, 1 }, [CPU_DOTHAN_A2] = { 6, 13, 2 }, [CPU_DOTHAN_B0] = { 6, 13, 6 }, + [CPU_DOTHAN_C0] = { 6, 13, 8 }, [CPU_MP4HT_D0] = {15, 3, 4 }, [CPU_MP4HT_E0] = {15, 4, 1 }, }; @@ -194,6 +196,88 @@ }; #undef OP + +#define OPEX(mhz, base, mva, mvb, mvc, mvd) \ +{ \ + .frequency = (mhz) * 1000, \ + .index = (((mhz)/(base)) << 8) | ((mva - 700) / 16) \ +} + +/* Intel Pentium M processor 730 / 1.60 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1596[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1116, 1111, 1084, 1079), + OPEX(1330, 133, 1244, 1233, 1180, 1169), + OPEX(1596, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 740 / 1.73 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1729[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1100, 1093, 1068, 1066), + OPEX(1330, 133, 1212, 1198, 1148, 1143), + OPEX(1729, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 750 / 1.86 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1862[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1084, 1080, 1068, 1056), + OPEX(1330, 133, 1180, 1172, 1132, 1124), + OPEX(1596, 133, 1276, 1264, 1196, 1192), + OPEX(1862, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 760 / 2.00 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_1995[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1084, 1070, 1052, 1048), + OPEX(1330, 133, 1164, 1152, 1116, 1109), + OPEX(1596, 133, 1244, 1233, 1180, 1169), + OPEX(1995, 133, 1356, 1356, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; +/* Intel Pentium M processor 770 / 2.13 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_2128[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1068, 1065, 1052, 1042), + OPEX(1330, 133, 1148, 1142, 1100, 1097), + OPEX(1596, 133, 1228, 1218, 1164, 1151), + OPEX(1862, 133, 1308, 1295, 1212, 1206), + OPEX(2128, 133, 1372, 1372, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +/* Intel Pentium M processor 780 / 2.26 GHz (Sonoma) */ +static struct cpufreq_frequency_table sonoma_2261[] = +{ + OPEX( 798, 133, 988, 988, 988, 988), + OPEX(1064, 133, 1068, 1064, 1052, 1037), + OPEX(1330, 133, 1148, 1139, 1100, 1087), + OPEX(1596, 133, 1228, 1215, 1148, 1136), + OPEX(1862, 133, 1292, 1291, 1196, 1186), + OPEX(2261, 133, 1404, 1404, 1260, 1260), + { .frequency = CPUFREQ_TABLE_END } +}; + +#undef OPEX + +#define SONOMA(cpuid, max, base, name) \ +{ .cpu_id = cpuid, \ + .model_name = "Intel(R) Pentium(R) M processor " name "GHz", \ + .max_freq = (max)*1000, \ + .op_points = sonoma_##max, \ +} + + #define _BANIAS(cpuid, max, name) \ { .cpu_id = cpuid, \ .model_name = "Intel(R) Pentium(R) M processor " name "MHz", \ @@ -216,6 +300,15 @@ BANIAS(1600), BANIAS(1700), + /* Builtin tables for Dothan C0 CPUs, a.k.a Sonoma */ + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1596, 133, "1.60"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1729, 133, "1.73"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1862, 133, "1.86"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1995, 133, "2.00"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 2128, 133, "2.13"), + SONOMA(&cpu_ids[CPU_DOTHAN_C0], 2261, 133, "2.26"), + + /* NULL model_name is a wildcard */ { &cpu_ids[CPU_DOTHAN_A1], NULL, 0, NULL }, { &cpu_ids[CPU_DOTHAN_A2], NULL, 0, NULL }, --- linux-2.6.24.orig/arch/x86/kernel/cpu/Makefile +++ linux-2.6.24/arch/x86/kernel/cpu/Makefile @@ -3,6 +3,7 @@ # obj-y := intel_cacheinfo.o addon_cpuid_features.o +obj-y += vmware.o hypervisor.o obj-$(CONFIG_X86_32) += common.o proc.o bugs.o obj-$(CONFIG_X86_32) += amd.o --- linux-2.6.24.orig/arch/x86/kernel/cpu/mcheck/mce_64.c +++ linux-2.6.24/arch/x86/kernel/cpu/mcheck/mce_64.c @@ -31,7 +31,7 @@ #include #define MISC_MCELOG_MINOR 227 -#define NR_BANKS 6 +#define NR_SYSFS_BANKS 6 atomic_t mce_entry; @@ -46,7 +46,7 @@ */ static int tolerant = 1; static int banks; -static unsigned long bank[NR_BANKS] = { [0 ... NR_BANKS-1] = ~0UL }; +static unsigned long bank[NR_SYSFS_BANKS] = { [0 ... NR_SYSFS_BANKS-1] = ~0UL }; static unsigned long notify_user; static int rip_msr; static int mce_bootlog = 1; @@ -209,7 +209,7 @@ barrier(); for (i = 0; i < banks; i++) { - if (!bank[i]) + if (i < NR_SYSFS_BANKS && !bank[i]) continue; m.misc = 0; @@ -444,9 +444,10 @@ rdmsrl(MSR_IA32_MCG_CAP, cap); banks = cap & 0xff; - if (banks > NR_BANKS) { - printk(KERN_INFO "MCE: warning: using only %d banks\n", banks); - banks = NR_BANKS; + if (banks > MCE_EXTENDED_BANK) { + printk(KERN_INFO "MCE: warning: using only %d banks\n", + MCE_EXTENDED_BANK); + banks = MCE_EXTENDED_BANK; } /* Use accurate RIP reporting if available. */ if ((cap & (1<<9)) && ((cap >> 16) & 0xff) >= 9) @@ -462,7 +463,7 @@ wrmsr(MSR_IA32_MCG_CTL, 0xffffffff, 0xffffffff); for (i = 0; i < banks; i++) { - wrmsrl(MSR_IA32_MC0_CTL+4*i, bank[i]); + wrmsrl(MSR_IA32_MC0_CTL+4*i, ~0UL); wrmsrl(MSR_IA32_MC0_STATUS+4*i, 0); } } @@ -765,7 +766,10 @@ } \ static SYSDEV_ATTR(name, 0644, show_ ## name, set_ ## name); -/* TBD should generate these dynamically based on number of available banks */ +/* + * TBD should generate these dynamically based on number of available banks. + * Have only 6 contol banks in /sysfs until then. + */ ACCESSOR(bank0ctl,bank[0],mce_restart()) ACCESSOR(bank1ctl,bank[1],mce_restart()) ACCESSOR(bank2ctl,bank[2],mce_restart()) --- linux-2.6.24.orig/arch/x86/kernel/cpu/mtrr/generic.c +++ linux-2.6.24/arch/x86/kernel/cpu/mtrr/generic.c @@ -35,6 +35,33 @@ static unsigned long smp_changes_mask; static struct mtrr_state mtrr_state = {}; +/** + * BIOS is expected to clear MtrrFixDramModEn bit, see for example + * "BIOS and Kernel Developer's Guide for the AMD Athlon 64 and AMD + * Opteron Processors" (26094 Rev. 3.30 February 2006), section + * "13.2.1.2 SYSCFG Register": "The MtrrFixDramModEn bit should be set + * to 1 during BIOS initalization of the fixed MTRRs, then cleared to + * 0 for operation." + */ +#define FW_WARN "[Firmware Warn]: " +static inline void k8_check_syscfg_dram_mod_en(void) +{ + u32 lo, hi; + + if (!((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) && + (boot_cpu_data.x86 >= 0x0f))) + return; + + rdmsr(MSR_K8_SYSCFG, lo, hi); + if (lo & K8_MTRRFIXRANGE_DRAM_MODIFY) { + printk(KERN_ERR FW_WARN "MTRR: CPU %u: SYSCFG[MtrrFixDramModEn]" + " not cleared by BIOS, clearing this bit\n", + smp_processor_id()); + lo &= ~K8_MTRRFIXRANGE_DRAM_MODIFY; + mtrr_wrmsr(MSR_K8_SYSCFG, lo, hi); + } +} + #undef MODULE_PARAM_PREFIX #define MODULE_PARAM_PREFIX "mtrr." @@ -55,6 +82,8 @@ unsigned int *p = (unsigned int *) frs; int i; + k8_check_syscfg_dram_mod_en(); + rdmsr(MTRRfix64K_00000_MSR, p[0], p[1]); for (i = 0; i < 2; i++) @@ -167,23 +196,8 @@ } /** - * Enable and allow read/write of extended fixed-range MTRR bits on K8 CPUs - * see AMD publication no. 24593, chapter 3.2.1 for more information - */ -static inline void k8_enable_fixed_iorrs(void) -{ - unsigned lo, hi; - - rdmsr(MSR_K8_SYSCFG, lo, hi); - mtrr_wrmsr(MSR_K8_SYSCFG, lo - | K8_MTRRFIXRANGE_DRAM_ENABLE - | K8_MTRRFIXRANGE_DRAM_MODIFY, hi); -} - -/** * Checks and updates an fixed-range MTRR if it differs from the value it - * should have. If K8 extentions are wanted, update the K8 SYSCFG MSR also. - * see AMD publication no. 24593, chapter 7.8.1, page 233 for more information + * should have. * \param msr MSR address of the MTTR which should be checked and updated * \param changed pointer which indicates whether the MTRR needed to be changed * \param msrwords pointer to the MSR values which the MSR should have @@ -195,10 +209,6 @@ rdmsr(msr, lo, hi); if (lo != msrwords[0] || hi != msrwords[1]) { - if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD && - boot_cpu_data.x86 == 15 && - ((msrwords[0] | msrwords[1]) & K8_MTRR_RDMEM_WRMEM_MASK)) - k8_enable_fixed_iorrs(); mtrr_wrmsr(msr, msrwords[0], msrwords[1]); *changed = TRUE; } @@ -263,6 +273,8 @@ int changed = FALSE; int block=-1, range; + k8_check_syscfg_dram_mod_en(); + while (fixed_range_blocks[++block].ranges) for (range=0; range < fixed_range_blocks[block].ranges; range++) set_fixed_range(fixed_range_blocks[block].base_msr + range, --- linux-2.6.24.orig/arch/x86/kernel/cpu/common.c +++ linux-2.6.24/arch/x86/kernel/cpu/common.c @@ -13,6 +13,7 @@ #include #include #include +#include #ifdef CONFIG_X86_LOCAL_APIC #include #include @@ -482,6 +483,8 @@ c->x86, c->x86_model); } + init_hypervisor(c); + /* Now the feature flags better reflect actual CPU features! */ printk(KERN_DEBUG "CPU: After all inits, caps:"); --- linux-2.6.24.orig/arch/x86/kernel/tsc_32.c +++ linux-2.6.24/arch/x86/kernel/tsc_32.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "mach_timer.h" @@ -130,11 +131,17 @@ unsigned long native_calculate_cpu_khz(void) { unsigned long long start, end; - unsigned long count; + unsigned long count, hypervisor_tsc_khz; u64 delta64 = (u64)ULLONG_MAX; int i; unsigned long flags; + hypervisor_tsc_khz = get_hypervisor_tsc_freq(); + if (hypervisor_tsc_khz) { + printk(KERN_INFO "TSC: Frequency read from the hypervisor\n"); + return hypervisor_tsc_khz; + } + local_irq_save(flags); /* run 3 times to ensure the cache is warm and to get an accurate reading */ @@ -267,15 +274,28 @@ /* clock source code */ -static unsigned long current_tsc_khz = 0; +static unsigned long current_tsc_khz; +static struct clocksource clocksource_tsc; +/* + * We compare the TSC to the cycle_last value in the clocksource + * structure to avoid a nasty time-warp issue. This can be observed in + * a very small window right after one CPU updated cycle_last under + * xtime lock and the other CPU reads a TSC value which is smaller + * than the cycle_last reference value due to a TSC which is slighty + * behind. This delta is nowhere else observable, but in that case it + * results in a forward time jump in the range of hours due to the + * unsigned delta calculation of the time keeping core code, which is + * necessary to support wrapping clocksources like pm timer. + */ static cycle_t read_tsc(void) { cycle_t ret; rdtscll(ret); - return ret; + return ret >= clocksource_tsc.cycle_last ? + ret : clocksource_tsc.cycle_last; } static struct clocksource clocksource_tsc = { @@ -333,6 +353,9 @@ { if (!cpu_has_tsc || tsc_unstable) return 1; + + if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) + return 0; /* * Intel systems are normally all synchronized. * Exceptions must mark TSC as unstable: @@ -388,6 +411,9 @@ unsynchronized_tsc(); check_geode_tsc_reliable(); + if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) + clocksource_tsc.flags &= ~CLOCK_SOURCE_MUST_VERIFY; + current_tsc_khz = tsc_khz; clocksource_tsc.mult = clocksource_khz2mult(current_tsc_khz, clocksource_tsc.shift); --- linux-2.6.24.orig/arch/x86/kernel/signal_64.c +++ linux-2.6.24/arch/x86/kernel/signal_64.c @@ -295,7 +295,7 @@ see include/asm-x86_64/uaccess.h for details. */ set_fs(USER_DS); - regs->eflags &= ~TF_MASK; + regs->eflags &= ~(TF_MASK | X86_EFLAGS_DF); if (test_thread_flag(TIF_SINGLESTEP)) ptrace_notify(SIGTRAP); #ifdef DEBUG_SIG --- linux-2.6.24.orig/arch/x86/kernel/setup_64.c +++ linux-2.6.24/arch/x86/kernel/setup_64.c @@ -59,6 +59,7 @@ #include #include #include +#include /* * Machine setup.. @@ -311,6 +312,14 @@ dmi_scan_machine(); + /* + * VMware detection requires dmi to be available, so this + * needs to be done after dmi_scan_machine, for the BP. + */ + init_hypervisor(&boot_cpu_data); + + io_delay_init(); + #ifdef CONFIG_SMP /* setup to use the static apicid table during kernel startup */ x86_cpu_to_apicid_ptr = (void *)&x86_cpu_to_apicid_init; @@ -679,8 +688,8 @@ if (c->x86 == 0xf || c->x86 == 0x10 || c->x86 == 0x11) set_bit(X86_FEATURE_K8, &c->x86_capability); - /* RDTSC can be speculated around */ - clear_bit(X86_FEATURE_SYNC_RDTSC, &c->x86_capability); + /* MFENCE stops RDTSC speculation */ + set_bit(X86_FEATURE_MFENCE_RDTSC, &c->x86_capability); /* Family 10 doesn't support C states in MWAIT so don't use it */ if (c->x86 == 0x10 && !force_mwait) @@ -814,10 +823,7 @@ set_bit(X86_FEATURE_CONSTANT_TSC, &c->x86_capability); if (c->x86 == 6) set_bit(X86_FEATURE_REP_GOOD, &c->x86_capability); - if (c->x86 == 15) - set_bit(X86_FEATURE_SYNC_RDTSC, &c->x86_capability); - else - clear_bit(X86_FEATURE_SYNC_RDTSC, &c->x86_capability); + set_bit(X86_FEATURE_LFENCE_RDTSC, &c->x86_capability); c->x86_max_cores = intel_num_cpu_cores(c); srat_detect_node(); @@ -957,6 +963,8 @@ select_idle_routine(c); detect_ht(c); + init_hypervisor(c); + /* * On SMP, boot_cpu_data holds the common feature set between * all CPUs; so make sure that we indicate which features are --- linux-2.6.24.orig/arch/x86/kernel/reboot_32.c +++ linux-2.6.24/arch/x86/kernel/reboot_32.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,9 @@ case 'c': /* "cold" reboot (with memory testing etc) */ reboot_mode = 0x0; break; + case 'a': /* reboot through ACPI BIOS. */ + reboot_thru_bios = 2; + break; case 'b': /* "bios" reboot by jumping through the BIOS */ reboot_thru_bios = 1; break; @@ -74,6 +78,20 @@ */ /* + * Some machines require the "reboot=a" commandline option, this quirk makes + * that automatic. + */ +static int __init set_acpi_reboot(const struct dmi_system_id *d) +{ + if (!reboot_thru_bios) { + printk(KERN_INFO "%s detected. Using ACPI for reboots.\n", + d->ident); + reboot_thru_bios = 2; + } + return 0; +} + +/* * Some machines require the "reboot=b" commandline option, this quirk makes that automatic. */ static int __init set_bios_reboot(const struct dmi_system_id *d) @@ -135,6 +153,15 @@ DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq"), }, }, + { /* Handle problems with rebooting classmate PC after suspend */ + .callback = set_acpi_reboot, + .ident = "Intel powered classmate PC", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, + "Intel powered classmate PC"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Gen 1.5"), + }, + }, { } }; @@ -357,6 +384,9 @@ if (efi_enabled) efi.reset_system(EFI_RESET_WARM, EFI_SUCCESS, 0, NULL); + if (reboot_thru_bios == 2) + acpi_reboot(); + machine_real_restart(jump_to_bios, sizeof(jump_to_bios)); } --- linux-2.6.24.orig/arch/x86/kernel/setup_32.c +++ linux-2.6.24/arch/x86/kernel/setup_32.c @@ -61,6 +61,7 @@ #include #include #include +#include /* This value is set up by the early boot code to point to the value immediately after the boot time page tables. It contains a *physical* @@ -648,6 +649,14 @@ dmi_scan_machine(); + /* + * VMware detection requires dmi to be available, so this + * needs to be done after dmi_scan_machine, for the BP. + */ + init_hypervisor(&boot_cpu_data); + + io_delay_init();; + #ifdef CONFIG_X86_GENERICARCH generic_apic_probe(); #endif --- linux-2.6.24.orig/arch/x86/kernel/process_64.c +++ linux-2.6.24/arch/x86/kernel/process_64.c @@ -212,14 +212,13 @@ current_thread_info()->status |= TS_POLLING; /* endless idle loop with no priority at all */ while (1) { + tick_nohz_stop_sched_tick(); while (!need_resched()) { void (*idle)(void); if (__get_cpu_var(cpu_idle_state)) __get_cpu_var(cpu_idle_state) = 0; - tick_nohz_stop_sched_tick(); - rmb(); idle = pm_idle; if (!idle) --- linux-2.6.24.orig/arch/x86/kernel/tsc_sync.c +++ linux-2.6.24/arch/x86/kernel/tsc_sync.c @@ -46,7 +46,7 @@ cycles_t start, now, prev, end; int i; - start = get_cycles_sync(); + start = get_cycles(); /* * The measurement runs for 20 msecs: */ @@ -61,7 +61,7 @@ */ __raw_spin_lock(&sync_lock); prev = last_tsc; - now = get_cycles_sync(); + now = get_cycles(); last_tsc = now; __raw_spin_unlock(&sync_lock); @@ -106,6 +106,12 @@ if (unsynchronized_tsc()) return; + if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) { + printk(KERN_INFO + "Skipping synchronization checks as TSC is reliable.\n"); + return; + } + printk(KERN_INFO "checking TSC synchronization [CPU#%d -> CPU#%d]:", smp_processor_id(), cpu); @@ -159,7 +165,7 @@ { int cpus = 2; - if (unsynchronized_tsc()) + if (unsynchronized_tsc() || boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) return; /* --- linux-2.6.24.orig/arch/x86/kernel/pci-gart_64.c +++ linux-2.6.24/arch/x86/kernel/pci-gart_64.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -492,6 +493,83 @@ return aper_base; } +static void enable_gart_translations(void) +{ + int i; + + for (i = 0; i < num_k8_northbridges; i++) { + struct pci_dev *dev = k8_northbridges[i]; + u32 ctl; + u32 gatt_reg; + + gatt_reg = __pa(agp_gatt_table) >> 12; + gatt_reg <<= 4; + pci_write_config_dword(dev, 0x98, gatt_reg); + pci_read_config_dword(dev, 0x90, &ctl); + + ctl |= 1; + ctl &= ~((1<<4) | (1<<5)); + + pci_write_config_dword(dev, 0x90, ctl); + } +} + +/* + * If fix_up_north_bridges is set, the north bridges have to be fixed up on + * resume in the same way as they are handled in gart_iommu_hole_init(). + */ +static bool fix_up_north_bridges; +static u32 aperture_order; +static u32 aperture_alloc; + +void set_up_gart_resume(u32 aper_order, u32 aper_alloc) +{ + fix_up_north_bridges = true; + aperture_order = aper_order; + aperture_alloc = aper_alloc; +} + +static int gart_resume(struct sys_device *dev) +{ + printk(KERN_INFO "PCI-DMA: Resuming GART IOMMU\n"); + + if (fix_up_north_bridges) { + int i; + + printk(KERN_INFO "PCI-DMA: Restoring GART aperture settings\n"); + + for (i = 0; i < num_k8_northbridges; i++) { + struct pci_dev *dev = k8_northbridges[i]; + + /* + * Don't enable translations just yet. That is the next + * step. Restore the pre-suspend aperture settings. + */ + pci_write_config_dword(dev, 0x90, aperture_order << 1); + pci_write_config_dword(dev, 0x94, aperture_alloc >> 25); + } + } + + enable_gart_translations(); + + return 0; +} + +static int gart_suspend(struct sys_device *dev, pm_message_t state) +{ + return 0; +} + +static struct sysdev_class gart_sysdev_class = { + .suspend = gart_suspend, + .resume = gart_resume, +}; + +static struct sys_device device_gart = { + .id = 0, + .cls = &gart_sysdev_class, +}; + /* * Private Northbridge GATT initialization in case we cannot use the * AGP driver for some reason. @@ -502,7 +580,7 @@ void *gatt; unsigned aper_base, new_aper_base; unsigned aper_size, gatt_size, new_aper_size; - int i; + int i, error; printk(KERN_INFO "PCI-DMA: Disabling AGP.\n"); aper_size = aper_base = info->aper_size = 0; @@ -536,21 +614,14 @@ memset(gatt, 0, gatt_size); agp_gatt_table = gatt; - for (i = 0; i < num_k8_northbridges; i++) { - u32 ctl; - u32 gatt_reg; - - dev = k8_northbridges[i]; - gatt_reg = __pa(gatt) >> 12; - gatt_reg <<= 4; - pci_write_config_dword(dev, 0x98, gatt_reg); - pci_read_config_dword(dev, 0x90, &ctl); - - ctl |= 1; - ctl &= ~((1<<4) | (1<<5)); + enable_gart_translations(); - pci_write_config_dword(dev, 0x90, ctl); - } + error = sysdev_class_register(&gart_sysdev_class); + if (!error) + error = sysdev_register(&device_gart); + if (error) + panic("Could not register gart_sysdev -- " \ + "would corrupt data on next suspend"); flush_gart(); printk("PCI-DMA: aperture base @ %x size %u KB\n",aper_base, aper_size>>10); --- linux-2.6.24.orig/arch/x86/kernel/stacktrace.c +++ linux-2.6.24/arch/x86/kernel/stacktrace.c @@ -33,6 +33,19 @@ trace->entries[trace->nr_entries++] = addr; } +static void save_stack_address_nosched(void *data, unsigned long addr) +{ + struct stack_trace *trace = (struct stack_trace *)data; + if (in_sched_functions(addr)) + return; + if (trace->skip > 0) { + trace->skip--; + return; + } + if (trace->nr_entries < trace->max_entries) + trace->entries[trace->nr_entries++] = addr; +} + static const struct stacktrace_ops save_stack_ops = { .warning = save_stack_warning, .warning_symbol = save_stack_warning_symbol, @@ -40,6 +53,13 @@ .address = save_stack_address, }; +static const struct stacktrace_ops save_stack_ops_nosched = { + .warning = save_stack_warning, + .warning_symbol = save_stack_warning_symbol, + .stack = save_stack_stack, + .address = save_stack_address_nosched, +}; + /* * Save stack-backtrace addresses into a stack_trace buffer. */ @@ -50,3 +70,10 @@ trace->entries[trace->nr_entries++] = ULONG_MAX; } EXPORT_SYMBOL(save_stack_trace); + +void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) +{ + dump_trace(tsk, NULL, NULL, &save_stack_ops_nosched, trace); + if (trace->nr_entries < trace->max_entries) + trace->entries[trace->nr_entries++] = ULONG_MAX; +} --- linux-2.6.24.orig/arch/x86/kernel/aperture_64.c +++ linux-2.6.24/arch/x86/kernel/aperture_64.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -75,6 +76,8 @@ printk("Mapping aperture over %d KB of RAM @ %lx\n", aper_size >> 10, __pa(p)); insert_aperture_resource((u32)__pa(p), aper_size); + register_nosave_region((u32)__pa(p) >> PAGE_SHIFT, + (u32)__pa(p+aper_size) >> PAGE_SHIFT); return (u32)__pa(p); } @@ -296,4 +299,6 @@ write_pci_config(0, num, 3, 0x90, aper_order<<1); write_pci_config(0, num, 3, 0x94, aper_alloc>>25); } + + set_up_gart_resume(aper_order, aper_alloc); } --- linux-2.6.24.orig/arch/x86/kernel/machine_kexec_64.c +++ linux-2.6.24/arch/x86/kernel/machine_kexec_64.c @@ -233,6 +233,7 @@ void arch_crash_save_vmcoreinfo(void) { + VMCOREINFO_SYMBOL(phys_base); VMCOREINFO_SYMBOL(init_level4_pgt); #ifdef CONFIG_ARCH_DISCONTIGMEM_ENABLE --- linux-2.6.24.orig/arch/x86/kernel/io_apic_64.c +++ linux-2.6.24/arch/x86/kernel/io_apic_64.c @@ -1565,7 +1565,7 @@ .end = end_lapic_irq, }; -static void setup_nmi (void) +static void __init setup_nmi(void) { /* * Dirty trick to enable the NMI watchdog ... @@ -1578,7 +1578,7 @@ */ printk(KERN_INFO "activating NMI Watchdog ..."); - enable_NMI_through_LVT0(NULL); + enable_NMI_through_LVT0(); printk(" done.\n"); } @@ -1654,7 +1654,7 @@ * * FIXME: really need to revamp this for modern platforms only. */ -static inline void check_timer(void) +static inline void __init check_timer(void) { struct irq_cfg *cfg = irq_cfg + 0; int apic1, pin1, apic2, pin2; --- linux-2.6.24.orig/arch/x86/kernel/tsc_64.c +++ linux-2.6.24/arch/x86/kernel/tsc_64.c @@ -10,6 +10,8 @@ #include #include +#include +#include static int notsc __initdata = 0; @@ -133,12 +135,12 @@ int i; for (i = 0; i < MAX_RETRIES; i++) { - t1 = get_cycles_sync(); + t1 = get_cycles(); if (hpet) *hpet = hpet_readl(HPET_COUNTER) & 0xFFFFFFFF; else *pm = acpi_pm_read_early(); - t2 = get_cycles_sync(); + t2 = get_cycles(); if ((t2 - t1) < SMI_TRESHOLD) return t2; } @@ -151,8 +153,17 @@ void __init tsc_calibrate(void) { unsigned long flags, tsc1, tsc2, tr1, tr2, pm1, pm2, hpet1, hpet2; + unsigned long hypervisor_tsc_khz; int hpet = is_hpet_enabled(); + hypervisor_tsc_khz = get_hypervisor_tsc_freq(); + if (hypervisor_tsc_khz) { + printk(KERN_INFO "TSC: Frequency read from the hypervisor\n"); + tsc_khz = hypervisor_tsc_khz; + set_cyc2ns_scale(tsc_khz); + return; + } + local_irq_save(flags); tsc1 = tsc_read_refs(&pm1, hpet ? &hpet1 : NULL); @@ -162,9 +173,9 @@ outb(0xb0, 0x43); outb((CLOCK_TICK_RATE / (1000 / 50)) & 0xff, 0x42); outb((CLOCK_TICK_RATE / (1000 / 50)) >> 8, 0x42); - tr1 = get_cycles_sync(); + tr1 = get_cycles(); while ((inb(0x61) & 0x20) == 0); - tr2 = get_cycles_sync(); + tr2 = get_cycles(); tsc2 = tsc_read_refs(&pm2, hpet ? &hpet2 : NULL); @@ -222,6 +233,9 @@ if (apic_is_clustered_box()) return 1; #endif + if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) + return 0; + /* Most intel systems have synchronized TSCs except for multi node systems */ if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) { @@ -246,18 +260,34 @@ __setup("notsc", notsc_setup); +static struct clocksource clocksource_tsc; -/* clock source code: */ +/* + * We compare the TSC to the cycle_last value in the clocksource + * structure to avoid a nasty time-warp. This can be observed in a + * very small window right after one CPU updated cycle_last under + * xtime/vsyscall_gtod lock and the other CPU reads a TSC value which + * is smaller than the cycle_last reference value due to a TSC which + * is slighty behind. This delta is nowhere else observable, but in + * that case it results in a forward time jump in the range of hours + * due to the unsigned delta calculation of the time keeping core + * code, which is necessary to support wrapping clocksources like pm + * timer. + */ static cycle_t read_tsc(void) { - cycle_t ret = (cycle_t)get_cycles_sync(); - return ret; + cycle_t ret = (cycle_t)get_cycles(); + + return ret >= clocksource_tsc.cycle_last ? + ret : clocksource_tsc.cycle_last; } static cycle_t __vsyscall_fn vread_tsc(void) { - cycle_t ret = (cycle_t)get_cycles_sync(); - return ret; + cycle_t ret = (cycle_t)vget_cycles(); + + return ret >= __vsyscall_gtod_data.clock.cycle_last ? + ret : __vsyscall_gtod_data.clock.cycle_last; } static struct clocksource clocksource_tsc = { @@ -288,6 +318,9 @@ void __init init_tsc_clocksource(void) { if (!notsc) { + if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) + clocksource_tsc.flags &= ~CLOCK_SOURCE_MUST_VERIFY; + clocksource_tsc.mult = clocksource_khz2mult(tsc_khz, clocksource_tsc.shift); if (check_tsc_unstable()) --- linux-2.6.24.orig/arch/powerpc/platforms/powermac/setup.c +++ linux-2.6.24/arch/powerpc/platforms/powermac/setup.c @@ -584,12 +584,10 @@ DMA_MODE_READ = 1; DMA_MODE_WRITE = 2; -#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) -#ifdef CONFIG_BLK_DEV_IDE_PMAC +#if defined(CONFIG_BLK_DEV_IDE) && defined(CONFIG_BLK_DEV_IDE_PMAC) ppc_ide_md.ide_init_hwif = pmac_ide_init_hwif_ports; ppc_ide_md.default_io_base = pmac_ide_get_base; -#endif /* CONFIG_BLK_DEV_IDE_PMAC */ -#endif /* defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE) */ +#endif #endif /* CONFIG_PPC32 */ --- linux-2.6.24.orig/arch/powerpc/platforms/powermac/feature.c +++ linux-2.6.24/arch/powerpc/platforms/powermac/feature.c @@ -2565,6 +2565,8 @@ /* Locate core99 Uni-N */ uninorth_node = of_find_node_by_name(NULL, "uni-n"); + uninorth_maj = 1; + /* Locate G5 u3 */ if (uninorth_node == NULL) { uninorth_node = of_find_node_by_name(NULL, "u3"); @@ -2575,8 +2577,10 @@ uninorth_node = of_find_node_by_name(NULL, "u4"); uninorth_maj = 4; } - if (uninorth_node == NULL) + if (uninorth_node == NULL) { + uninorth_maj = 0; return; + } addrp = of_get_property(uninorth_node, "reg", NULL); if (addrp == NULL) @@ -3029,3 +3033,8 @@ pmac_agp_resume(pmac_agp_bridge); } EXPORT_SYMBOL(pmac_resume_agp_for_card); + +int pmac_get_uninorth_variant(void) +{ + return uninorth_maj; +} --- linux-2.6.24.orig/arch/powerpc/platforms/chrp/setup.c +++ linux-2.6.24/arch/powerpc/platforms/chrp/setup.c @@ -115,7 +115,7 @@ seq_printf(m, "machine\t\t: CHRP %s\n", model); /* longtrail (goldengate) stuff */ - if (!strncmp(model, "IBM,LongTrail", 13)) { + if (model && !strncmp(model, "IBM,LongTrail", 13)) { /* VLSI VAS96011/12 `Golden Gate 2' */ /* Memory banks */ sdramen = (in_le32(gg2_pci_config_base + GG2_PCI_DRAM_CTRL) @@ -203,15 +203,20 @@ static void __init sio_init(void) { struct device_node *root; + const char *model; - if ((root = of_find_node_by_path("/")) && - !strncmp(of_get_property(root, "model", NULL), - "IBM,LongTrail", 13)) { + root = of_find_node_by_path("/"); + if (!root) + return; + + model = of_get_property(root, "model", NULL); + if (model && !strncmp(model, "IBM,LongTrail", 13)) { /* logical device 0 (KBC/Keyboard) */ sio_fixup_irq("keyboard", 0, 1, 2); /* select logical device 1 (KBC/Mouse) */ sio_fixup_irq("mouse", 1, 12, 2); } + of_node_put(root); } --- linux-2.6.24.orig/arch/powerpc/platforms/chrp/pci.c +++ linux-2.6.24/arch/powerpc/platforms/chrp/pci.c @@ -354,7 +354,7 @@ * mode as well. The same fixup must be done to the class-code property in * the IDE node /pci@80000000/ide@C,1 */ -static void __devinit chrp_pci_fixup_vt8231_ata(struct pci_dev *viaide) +static void chrp_pci_fixup_vt8231_ata(struct pci_dev *viaide) { u8 progif; struct pci_dev *viaisa; @@ -375,4 +375,4 @@ pci_dev_put(viaisa); } -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, chrp_pci_fixup_vt8231_ata); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, chrp_pci_fixup_vt8231_ata); --- linux-2.6.24.orig/arch/powerpc/kernel/misc_32.S +++ linux-2.6.24/arch/powerpc/kernel/misc_32.S @@ -756,6 +756,27 @@ or r4,r4,r7 # LSW |= t2 blr +/* + * __ucmpdi2: 64-bit comparison + * + * R3/R4 has 64 bit value A + * R5/R6 has 64 bit value B + * result in R3: 0 for A < B + * 1 for A == B + * 2 for A > B + */ +_GLOBAL(__ucmpdi2) + cmplw r7,r3,r5 # compare high words + li r3,0 + blt r7,2f # a < b ... return 0 + bgt r7,1f # a > b ... return 2 + cmplw r6,r4,r6 # compare low words + blt r6,2f # a < b ... return 0 + li r3,1 + ble r6,2f # a = b ... return 1 +1: li r3,2 +2: blr + _GLOBAL(abs) srawi r4,r3,31 xor r3,r3,r4 --- linux-2.6.24.orig/arch/powerpc/kernel/vdso.c +++ linux-2.6.24/arch/powerpc/kernel/vdso.c @@ -141,7 +141,7 @@ printk("kpg: %p (c:%d,f:%08lx)", __va(page_to_pfn(pg) << PAGE_SHIFT), page_count(pg), pg->flags); - if (upg/* && pg != upg*/) { + if (upg && !IS_ERR(upg) /* && pg != upg*/) { printk(" upg: %p (c:%d,f:%08lx)", __va(page_to_pfn(upg) << PAGE_SHIFT), page_count(upg), --- linux-2.6.24.orig/arch/powerpc/kernel/ppc_ksyms.c +++ linux-2.6.24/arch/powerpc/kernel/ppc_ksyms.c @@ -145,9 +145,11 @@ long long __ashrdi3(long long, int); long long __ashldi3(long long, int); long long __lshrdi3(long long, int); +int __ucmpdi2(uint64_t, uint64_t); EXPORT_SYMBOL(__ashrdi3); EXPORT_SYMBOL(__ashldi3); EXPORT_SYMBOL(__lshrdi3); +EXPORT_SYMBOL(__ucmpdi2); #endif EXPORT_SYMBOL(memcpy); --- linux-2.6.24.orig/mm/slub.c +++ linux-2.6.24/mm/slub.c @@ -2592,6 +2592,7 @@ void kfree(const void *x) { struct page *page; + void *object = (void *)x; if (unlikely(ZERO_OR_NULL_PTR(x))) return; @@ -2601,7 +2602,7 @@ put_page(page); return; } - slab_free(page->slab, page, (void *)x, __builtin_return_address(0)); + slab_free(page->slab, page, object, __builtin_return_address(0)); } EXPORT_SYMBOL(kfree); --- linux-2.6.24.orig/mm/tiny-shmem.c +++ linux-2.6.24/mm/tiny-shmem.c @@ -81,7 +81,7 @@ inode->i_nlink = 0; /* It is unlinked */ /* notify everyone as to the change of file size */ - error = do_truncate(dentry, size, 0, file); + error = do_truncate(dentry, file->f_path.mnt, size, 0, file); if (error < 0) goto close_file; --- linux-2.6.24.orig/mm/filemap.c +++ linux-2.6.24/mm/filemap.c @@ -1622,26 +1622,26 @@ } EXPORT_SYMBOL(should_remove_suid); -int __remove_suid(struct dentry *dentry, int kill) +int __remove_suid(struct path *path, int kill) { struct iattr newattrs; newattrs.ia_valid = ATTR_FORCE | kill; - return notify_change(dentry, &newattrs); + return notify_change(path->dentry, path->mnt, &newattrs); } -int remove_suid(struct dentry *dentry) +int remove_suid(struct path *path) { - int killsuid = should_remove_suid(dentry); - int killpriv = security_inode_need_killpriv(dentry); + int killsuid = should_remove_suid(path->dentry); + int killpriv = security_inode_need_killpriv(path->dentry); int error = 0; if (killpriv < 0) return killpriv; if (killpriv) - error = security_inode_killpriv(dentry); + error = security_inode_killpriv(path->dentry); if (!error && killsuid) - error = __remove_suid(dentry, killsuid); + error = __remove_suid(path, killsuid); return error; } @@ -1725,21 +1725,27 @@ } EXPORT_SYMBOL(iov_iter_copy_from_user); -static void __iov_iter_advance_iov(struct iov_iter *i, size_t bytes) +void iov_iter_advance(struct iov_iter *i, size_t bytes) { + BUG_ON(i->count < bytes); + if (likely(i->nr_segs == 1)) { i->iov_offset += bytes; + i->count -= bytes; } else { const struct iovec *iov = i->iov; size_t base = i->iov_offset; /* * The !iov->iov_len check ensures we skip over unlikely - * zero-length segments. + * zero-length segments (without overruning the iovec). */ - while (bytes || !iov->iov_len) { - int copy = min(bytes, iov->iov_len - base); + while (bytes || unlikely(i->count && !iov->iov_len)) { + int copy; + copy = min(bytes, iov->iov_len - base); + BUG_ON(!i->count || i->count < copy); + i->count -= copy; bytes -= copy; base += copy; if (iov->iov_len == base) { @@ -1751,14 +1757,6 @@ i->iov_offset = base; } } - -void iov_iter_advance(struct iov_iter *i, size_t bytes) -{ - BUG_ON(i->count < bytes); - - __iov_iter_advance_iov(i, bytes); - i->count -= bytes; -} EXPORT_SYMBOL(iov_iter_advance); /* @@ -2358,7 +2356,7 @@ if (count == 0) goto out; - err = remove_suid(file->f_path.dentry); + err = remove_suid(&file->f_path); if (err) goto out; --- linux-2.6.24.orig/mm/shmem.c +++ linux-2.6.24/mm/shmem.c @@ -1415,7 +1415,6 @@ inode->i_uid = current->fsuid; inode->i_gid = current->fsgid; inode->i_blocks = 0; - inode->i_mapping->a_ops = &shmem_aops; inode->i_mapping->backing_dev_info = &shmem_backing_dev_info; inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; inode->i_generation = get_seconds(); @@ -1430,6 +1429,7 @@ init_special_inode(inode, mode, dev); break; case S_IFREG: + inode->i_mapping->a_ops = &shmem_aops; inode->i_op = &shmem_inode_operations; inode->i_fop = &shmem_file_operations; mpol_shared_policy_init(&info->policy, sbinfo->policy, @@ -1526,7 +1526,7 @@ if (err || !count) goto out; - err = remove_suid(file->f_path.dentry); + err = remove_suid(&file->f_path); if (err) goto out; @@ -1924,6 +1924,7 @@ iput(inode); return error; } + inode->i_mapping->a_ops = &shmem_aops; inode->i_op = &shmem_symlink_inode_operations; kaddr = kmap_atomic(page, KM_USER0); memcpy(kaddr, symname, len); --- linux-2.6.24.orig/mm/hugetlb.c +++ linux-2.6.24/mm/hugetlb.c @@ -119,6 +119,7 @@ struct address_space *mapping; mapping = (struct address_space *) page_private(page); + set_page_private(page, 0); BUG_ON(page_count(page)); INIT_LIST_HEAD(&page->lru); @@ -133,7 +134,6 @@ spin_unlock(&hugetlb_lock); if (mapping) hugetlb_put_quota(mapping, 1); - set_page_private(page, 0); } /* @@ -605,6 +605,16 @@ return 0; } +int hugetlb_overcommit_handler(struct ctl_table *table, int write, + struct file *file, void __user *buffer, + size_t *length, loff_t *ppos) +{ + spin_lock(&hugetlb_lock); + proc_doulongvec_minmax(table, write, file, buffer, length, ppos); + spin_unlock(&hugetlb_lock); + return 0; +} + #endif /* CONFIG_SYSCTL */ int hugetlb_report_meminfo(char *buf) --- linux-2.6.24.orig/mm/slab.c +++ linux-2.6.24/mm/slab.c @@ -1484,7 +1484,7 @@ list_add(&cache_cache.next, &cache_chain); cache_cache.colour_off = cache_line_size(); cache_cache.array[smp_processor_id()] = &initarray_cache.cache; - cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE]; + cache_cache.nodelists[node] = &initkmem_list3[CACHE_CACHE + node]; /* * struct kmem_cache size depends on nr_node_ids, which @@ -1605,7 +1605,7 @@ int nid; for_each_online_node(nid) { - init_list(&cache_cache, &initkmem_list3[CACHE_CACHE], nid); + init_list(&cache_cache, &initkmem_list3[CACHE_CACHE + nid], nid); init_list(malloc_sizes[INDEX_AC].cs_cachep, &initkmem_list3[SIZE_AC + nid], nid); @@ -2961,11 +2961,10 @@ struct array_cache *ac; int node; - node = numa_node_id(); - +retry: check_irq_off(); + node = numa_node_id(); ac = cpu_cache_get(cachep); -retry: batchcount = ac->batchcount; if (!ac->touched && batchcount > BATCHREFILL_LIMIT) { /* --- linux-2.6.24.orig/mm/filemap_xip.c +++ linux-2.6.24/mm/filemap_xip.c @@ -379,7 +379,7 @@ if (count == 0) goto out_backing; - ret = remove_suid(filp->f_path.dentry); + ret = remove_suid(&filp->f_path); if (ret) goto out_backing; --- linux-2.6.24.orig/mm/migrate.c +++ linux-2.6.24/mm/migrate.c @@ -823,6 +823,11 @@ goto set_status; page = follow_page(vma, pp->addr, FOLL_GET); + + err = PTR_ERR(page); + if (IS_ERR(page)) + goto set_status; + err = -ENOENT; if (!page) goto set_status; @@ -886,6 +891,11 @@ goto set_status; page = follow_page(vma, pm->addr, 0); + + err = PTR_ERR(page); + if (IS_ERR(page)) + goto set_status; + err = -ENOENT; /* Use PageReserved to check for zero page */ if (!page || PageReserved(page)) --- linux-2.6.24.orig/mm/memory.c +++ linux-2.6.24/mm/memory.c @@ -934,17 +934,15 @@ } ptep = pte_offset_map_lock(mm, pmd, address, &ptl); - if (!ptep) - goto out; pte = *ptep; if (!pte_present(pte)) - goto unlock; + goto no_page; if ((flags & FOLL_WRITE) && !pte_write(pte)) goto unlock; page = vm_normal_page(vma, address, pte); if (unlikely(!page)) - goto unlock; + goto bad_page; if (flags & FOLL_GET) get_page(page); @@ -959,6 +957,15 @@ out: return page; +bad_page: + pte_unmap_unlock(ptep, ptl); + return ERR_PTR(-EFAULT); + +no_page: + pte_unmap_unlock(ptep, ptl); + if (!pte_none(pte)) + return page; + /* Fall through to ZERO_PAGE handling */ no_page_table: /* * When core dumping an enormous anonymous area that nobody @@ -973,6 +980,27 @@ return page; } +/* Can we do the FOLL_ANON optimization? */ +static inline int use_zero_page(struct vm_area_struct *vma) +{ + /* + * We don't want to optimize FOLL_ANON for make_pages_present() + * when it tries to page in a VM_LOCKED region. As to VM_SHARED, + * we want to get the page from the page tables to make sure + * that we serialize and update with any other user of that + * mapping. + */ + if (vma->vm_flags & (VM_LOCKED | VM_SHARED)) + return 0; + /* + * And if we have a fault or a nopfn or a nopage routine, it's not an + * anonymous region. + */ + return !vma->vm_ops || + (!vma->vm_ops->fault && !vma->vm_ops->nopfn && + !vma->vm_ops->nopage); +} + int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start, int len, int write, int force, struct page **pages, struct vm_area_struct **vmas) @@ -980,6 +1008,8 @@ int i; unsigned int vm_flags; + if (len <= 0) + return 0; /* * Require read or write permissions. * If 'force' is set, we only require the "MAY" flags. @@ -1045,9 +1075,7 @@ foll_flags = FOLL_TOUCH; if (pages) foll_flags |= FOLL_GET; - if (!write && !(vma->vm_flags & VM_LOCKED) && - (!vma->vm_ops || (!vma->vm_ops->nopage && - !vma->vm_ops->fault))) + if (!write && use_zero_page(vma)) foll_flags |= FOLL_ANON; do { @@ -1093,6 +1121,8 @@ cond_resched(); } + if (IS_ERR(page)) + return i ? i : PTR_ERR(page); if (pages) { pages[i] = page; --- linux-2.6.24.orig/mm/allocpercpu.c +++ linux-2.6.24/mm/allocpercpu.c @@ -6,6 +6,10 @@ #include #include +#ifndef cache_line_size +#define cache_line_size() L1_CACHE_BYTES +#endif + /** * percpu_depopulate - depopulate per-cpu data for given cpu * @__pdata: per-cpu data to depopulate @@ -52,6 +56,11 @@ struct percpu_data *pdata = __percpu_disguise(__pdata); int node = cpu_to_node(cpu); + /* + * We should make sure each CPU gets private memory. + */ + size = roundup(size, cache_line_size()); + BUG_ON(pdata->ptrs[cpu]); if (node_online(node)) pdata->ptrs[cpu] = kmalloc_node(size, gfp|__GFP_ZERO, node); @@ -98,7 +107,11 @@ */ void *__percpu_alloc_mask(size_t size, gfp_t gfp, cpumask_t *mask) { - void *pdata = kzalloc(sizeof(struct percpu_data), gfp); + /* + * We allocate whole cache lines to avoid false sharing + */ + size_t sz = roundup(nr_cpu_ids * sizeof(void *), cache_line_size()); + void *pdata = kzalloc(sz, gfp); void *__pdata = __percpu_disguise(pdata); if (unlikely(!pdata)) --- linux-2.6.24.orig/security/dummy.c +++ linux-2.6.24/security/dummy.c @@ -262,54 +262,60 @@ } static int dummy_inode_create (struct inode *inode, struct dentry *dentry, - int mask) + struct vfsmount *mnt, int mask) { return 0; } -static int dummy_inode_link (struct dentry *old_dentry, struct inode *inode, - struct dentry *new_dentry) +static int dummy_inode_link (struct dentry *old_dentry, + struct vfsmount *old_mnt, struct inode *inode, + struct dentry *new_dentry, + struct vfsmount *new_mnt) { return 0; } -static int dummy_inode_unlink (struct inode *inode, struct dentry *dentry) +static int dummy_inode_unlink (struct inode *inode, struct dentry *dentry, + struct vfsmount *mnt) { return 0; } static int dummy_inode_symlink (struct inode *inode, struct dentry *dentry, - const char *name) + struct vfsmount *mnt, const char *name) { return 0; } static int dummy_inode_mkdir (struct inode *inode, struct dentry *dentry, - int mask) + struct vfsmount *mnt, int mask) { return 0; } -static int dummy_inode_rmdir (struct inode *inode, struct dentry *dentry) +static int dummy_inode_rmdir (struct inode *inode, struct dentry *dentry, + struct vfsmount *mnt) { return 0; } static int dummy_inode_mknod (struct inode *inode, struct dentry *dentry, - int mode, dev_t dev) + struct vfsmount *mnt, int mode, dev_t dev) { return 0; } static int dummy_inode_rename (struct inode *old_inode, struct dentry *old_dentry, + struct vfsmount *old_mnt, struct inode *new_inode, - struct dentry *new_dentry) + struct dentry *new_dentry, + struct vfsmount *new_mnt) { return 0; } -static int dummy_inode_readlink (struct dentry *dentry) +static int dummy_inode_readlink (struct dentry *dentry, struct vfsmount *mnt) { return 0; } @@ -325,7 +331,8 @@ return 0; } -static int dummy_inode_setattr (struct dentry *dentry, struct iattr *iattr) +static int dummy_inode_setattr (struct dentry *dentry, struct vfsmount *mnt, + struct iattr *iattr) { return 0; } @@ -340,8 +347,9 @@ return; } -static int dummy_inode_setxattr (struct dentry *dentry, char *name, void *value, - size_t size, int flags) +static int dummy_inode_setxattr (struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, + int flags, struct file *file) { if (!strncmp(name, XATTR_SECURITY_PREFIX, sizeof(XATTR_SECURITY_PREFIX) - 1) && @@ -350,22 +358,28 @@ return 0; } -static void dummy_inode_post_setxattr (struct dentry *dentry, char *name, void *value, +static void dummy_inode_post_setxattr (struct dentry *dentry, + struct vfsmount *mnt, + char *name, void *value, size_t size, int flags) { } -static int dummy_inode_getxattr (struct dentry *dentry, char *name) +static int dummy_inode_getxattr (struct dentry *dentry, + struct vfsmount *mnt, char *name, + struct file *file) { return 0; } -static int dummy_inode_listxattr (struct dentry *dentry) +static int dummy_inode_listxattr (struct dentry *dentry, struct vfsmount *mnt, + struct file *file) { return 0; } -static int dummy_inode_removexattr (struct dentry *dentry, char *name) +static int dummy_inode_removexattr (struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file) { if (!strncmp(name, XATTR_SECURITY_PREFIX, sizeof(XATTR_SECURITY_PREFIX) - 1) && --- linux-2.6.24.orig/security/commoncap.c +++ linux-2.6.24/security/commoncap.c @@ -375,8 +375,8 @@ current->egid != current->gid); } -int cap_inode_setxattr(struct dentry *dentry, char *name, void *value, - size_t size, int flags) +int cap_inode_setxattr(struct dentry *dentry, struct vfsmount *mnt, char *name, + void *value, size_t size, int flags, struct file *file) { if (!strcmp(name, XATTR_NAME_CAPS)) { if (!capable(CAP_SETFCAP)) @@ -389,7 +389,8 @@ return 0; } -int cap_inode_removexattr(struct dentry *dentry, char *name) +int cap_inode_removexattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file) { if (!strcmp(name, XATTR_NAME_CAPS)) { if (!capable(CAP_SETFCAP)) @@ -527,40 +528,6 @@ return cap_safe_nice(p); } -int cap_task_kill(struct task_struct *p, struct siginfo *info, - int sig, u32 secid) -{ - if (info != SEND_SIG_NOINFO && (is_si_special(info) || SI_FROMKERNEL(info))) - return 0; - - /* - * Running a setuid root program raises your capabilities. - * Killing your own setuid root processes was previously - * allowed. - * We must preserve legacy signal behavior in this case. - */ - if (p->euid == 0 && p->uid == current->uid) - return 0; - - /* sigcont is permitted within same session */ - if (sig == SIGCONT && (task_session_nr(current) == task_session_nr(p))) - return 0; - - if (secid) - /* - * Signal sent as a particular user. - * Capabilities are ignored. May be wrong, but it's the - * only thing we can do at the moment. - * Used only by usb drivers? - */ - return 0; - if (cap_issubset(p->cap_permitted, current->cap_permitted)) - return 0; - if (capable(CAP_KILL)) - return 0; - - return -EPERM; -} #else int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp) @@ -575,11 +542,6 @@ { return 0; } -int cap_task_kill(struct task_struct *p, struct siginfo *info, - int sig, u32 secid) -{ - return 0; -} #endif void cap_task_reparent_to_init (struct task_struct *p) --- linux-2.6.24.orig/security/keys/keyctl.c +++ linux-2.6.24/security/keys/keyctl.c @@ -253,6 +253,7 @@ /* join the session */ ret = join_session_keyring(name); + kfree(name); error: return ret; --- linux-2.6.24.orig/security/selinux/hooks.c +++ linux-2.6.24/security/selinux/hooks.c @@ -1431,40 +1431,15 @@ static int selinux_sysctl_get_sid(ctl_table *table, u16 tclass, u32 *sid) { - int buflen, rc; - char *buffer, *path, *end; + char *buffer, *path; + int rc = -ENOMEM; - rc = -ENOMEM; buffer = (char*)__get_free_page(GFP_KERNEL); if (!buffer) goto out; - - buflen = PAGE_SIZE; - end = buffer+buflen; - *--end = '\0'; - buflen--; - path = end-1; - *path = '/'; - while (table) { - const char *name = table->procname; - size_t namelen = strlen(name); - buflen -= namelen + 1; - if (buflen < 0) - goto out_free; - end -= namelen; - memcpy(end, name, namelen); - *--end = '/'; - path = end; - table = table->parent; - } - buflen -= 4; - if (buflen < 0) - goto out_free; - end -= 4; - memcpy(end, "/sys", 4); - path = end; - rc = security_genfs_sid("proc", path, tclass, sid); -out_free: + path = sysctl_pathname(table, buffer, PAGE_SIZE); + if (path) + rc = security_genfs_sid("proc", path, tclass, sid); free_page((unsigned long)buffer); out: return rc; @@ -2184,64 +2159,79 @@ return 0; } -static int selinux_inode_create(struct inode *dir, struct dentry *dentry, int mask) +static int selinux_inode_create(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mask) { return may_create(dir, dentry, SECCLASS_FILE); } -static int selinux_inode_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry) +static int selinux_inode_link(struct dentry *old_dentry, + struct vfsmount *old_mnt, + struct inode *dir, + struct dentry *new_dentry, + struct vfsmount *new_mnt) { int rc; - rc = secondary_ops->inode_link(old_dentry,dir,new_dentry); + rc = secondary_ops->inode_link(old_dentry, old_mnt, dir, new_dentry, + new_mnt); if (rc) return rc; return may_link(dir, old_dentry, MAY_LINK); } -static int selinux_inode_unlink(struct inode *dir, struct dentry *dentry) +static int selinux_inode_unlink(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt) { int rc; - rc = secondary_ops->inode_unlink(dir, dentry); + rc = secondary_ops->inode_unlink(dir, dentry, mnt); if (rc) return rc; return may_link(dir, dentry, MAY_UNLINK); } -static int selinux_inode_symlink(struct inode *dir, struct dentry *dentry, const char *name) +static int selinux_inode_symlink(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, const char *name) { return may_create(dir, dentry, SECCLASS_LNK_FILE); } -static int selinux_inode_mkdir(struct inode *dir, struct dentry *dentry, int mask) +static int selinux_inode_mkdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mask) { return may_create(dir, dentry, SECCLASS_DIR); } -static int selinux_inode_rmdir(struct inode *dir, struct dentry *dentry) +static int selinux_inode_rmdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt) { return may_link(dir, dentry, MAY_RMDIR); } -static int selinux_inode_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) +static int selinux_inode_mknod(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode, dev_t dev) { int rc; - rc = secondary_ops->inode_mknod(dir, dentry, mode, dev); + rc = secondary_ops->inode_mknod(dir, dentry, mnt, mode, dev); if (rc) return rc; return may_create(dir, dentry, inode_mode_to_security_class(mode)); } -static int selinux_inode_rename(struct inode *old_inode, struct dentry *old_dentry, - struct inode *new_inode, struct dentry *new_dentry) +static int selinux_inode_rename(struct inode *old_inode, + struct dentry *old_dentry, + struct vfsmount *old_mnt, + struct inode *new_inode, + struct dentry *new_dentry, + struct vfsmount *new_mnt) { return may_rename(old_inode, old_dentry, new_inode, new_dentry); } -static int selinux_inode_readlink(struct dentry *dentry) +static int selinux_inode_readlink(struct dentry *dentry, struct vfsmount *mnt) { return dentry_has_perm(current, NULL, dentry, FILE__READ); } @@ -2274,11 +2264,12 @@ file_mask_to_av(inode->i_mode, mask), NULL); } -static int selinux_inode_setattr(struct dentry *dentry, struct iattr *iattr) +static int selinux_inode_setattr(struct dentry *dentry, struct vfsmount *mnt, + struct iattr *iattr) { int rc; - rc = secondary_ops->inode_setattr(dentry, iattr); + rc = secondary_ops->inode_setattr(dentry, mnt, iattr); if (rc) return rc; @@ -2316,7 +2307,9 @@ return dentry_has_perm(current, NULL, dentry, FILE__SETATTR); } -static int selinux_inode_setxattr(struct dentry *dentry, char *name, void *value, size_t size, int flags) +static int selinux_inode_setxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, + int flags, struct file *file) { struct task_security_struct *tsec = current->security; struct inode *inode = dentry->d_inode; @@ -2365,7 +2358,9 @@ &ad); } -static void selinux_inode_post_setxattr(struct dentry *dentry, char *name, +static void selinux_inode_post_setxattr(struct dentry *dentry, + struct vfsmount *mnt, + char *name, void *value, size_t size, int flags) { struct inode *inode = dentry->d_inode; @@ -2389,17 +2384,21 @@ return; } -static int selinux_inode_getxattr (struct dentry *dentry, char *name) +static int selinux_inode_getxattr (struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file) { return dentry_has_perm(current, NULL, dentry, FILE__GETATTR); } -static int selinux_inode_listxattr (struct dentry *dentry) +static int selinux_inode_listxattr (struct dentry *dentry, struct vfsmount *mnt, + struct file *file) { return dentry_has_perm(current, NULL, dentry, FILE__GETATTR); } -static int selinux_inode_removexattr (struct dentry *dentry, char *name) +static int selinux_inode_removexattr (struct dentry *dentry, + struct vfsmount *mnt, char *name, + struct file *file) { if (strcmp(name, XATTR_NAME_SELINUX)) return selinux_inode_setotherxattr(dentry, name); --- linux-2.6.24.orig/security/selinux/ss/services.c +++ linux-2.6.24/security/selinux/ss/services.c @@ -2629,7 +2629,6 @@ netlbl_sid_to_secattr_failure: POLICY_RDUNLOCK; - netlbl_secattr_destroy(secattr); return rc; } #endif /* CONFIG_NETLABEL */ --- linux-2.6.24.orig/security/Kconfig +++ linux-2.6.24/security/Kconfig @@ -104,6 +104,7 @@ If you are unsure how to answer this question, answer N. source security/selinux/Kconfig +source security/apparmor/Kconfig endmenu --- linux-2.6.24.orig/security/security.c +++ linux-2.6.24/security/security.c @@ -328,72 +328,80 @@ } EXPORT_SYMBOL(security_inode_init_security); -int security_inode_create(struct inode *dir, struct dentry *dentry, int mode) +int security_inode_create(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode) { if (unlikely(IS_PRIVATE(dir))) return 0; - return security_ops->inode_create(dir, dentry, mode); + return security_ops->inode_create(dir, dentry, mnt, mode); } -int security_inode_link(struct dentry *old_dentry, struct inode *dir, - struct dentry *new_dentry) +int security_inode_link(struct dentry *old_dentry, struct vfsmount *old_mnt, + struct inode *dir, struct dentry *new_dentry, + struct vfsmount *new_mnt) { if (unlikely(IS_PRIVATE(old_dentry->d_inode))) return 0; - return security_ops->inode_link(old_dentry, dir, new_dentry); + return security_ops->inode_link(old_dentry, old_mnt, dir, + new_dentry, new_mnt); } -int security_inode_unlink(struct inode *dir, struct dentry *dentry) +int security_inode_unlink(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_unlink(dir, dentry); + return security_ops->inode_unlink(dir, dentry, mnt); } int security_inode_symlink(struct inode *dir, struct dentry *dentry, - const char *old_name) + struct vfsmount *mnt, const char *old_name) { if (unlikely(IS_PRIVATE(dir))) return 0; - return security_ops->inode_symlink(dir, dentry, old_name); + return security_ops->inode_symlink(dir, dentry, mnt, old_name); } -int security_inode_mkdir(struct inode *dir, struct dentry *dentry, int mode) +int security_inode_mkdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode) { if (unlikely(IS_PRIVATE(dir))) return 0; - return security_ops->inode_mkdir(dir, dentry, mode); + return security_ops->inode_mkdir(dir, dentry, mnt, mode); } -int security_inode_rmdir(struct inode *dir, struct dentry *dentry) +int security_inode_rmdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_rmdir(dir, dentry); + return security_ops->inode_rmdir(dir, dentry, mnt); } -int security_inode_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) +int security_inode_mknod(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode, dev_t dev) { if (unlikely(IS_PRIVATE(dir))) return 0; - return security_ops->inode_mknod(dir, dentry, mode, dev); + return security_ops->inode_mknod(dir, dentry, mnt, mode, dev); } int security_inode_rename(struct inode *old_dir, struct dentry *old_dentry, - struct inode *new_dir, struct dentry *new_dentry) + struct vfsmount *old_mnt, struct inode *new_dir, + struct dentry *new_dentry, struct vfsmount *new_mnt) { if (unlikely(IS_PRIVATE(old_dentry->d_inode) || (new_dentry->d_inode && IS_PRIVATE(new_dentry->d_inode)))) return 0; - return security_ops->inode_rename(old_dir, old_dentry, - new_dir, new_dentry); + return security_ops->inode_rename(old_dir, old_dentry, old_mnt, + new_dir, new_dentry, new_mnt); } -int security_inode_readlink(struct dentry *dentry) +int security_inode_readlink(struct dentry *dentry, struct vfsmount *mnt) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_readlink(dentry); + return security_ops->inode_readlink(dentry, mnt); } int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) @@ -402,6 +410,7 @@ return 0; return security_ops->inode_follow_link(dentry, nd); } +EXPORT_SYMBOL(security_inode_permission); int security_inode_permission(struct inode *inode, int mask, struct nameidata *nd) { @@ -410,11 +419,12 @@ return security_ops->inode_permission(inode, mask, nd); } -int security_inode_setattr(struct dentry *dentry, struct iattr *attr) +int security_inode_setattr(struct dentry *dentry, struct vfsmount *mnt, + struct iattr *attr) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_setattr(dentry, attr); + return security_ops->inode_setattr(dentry, mnt, attr); } int security_inode_getattr(struct vfsmount *mnt, struct dentry *dentry) @@ -431,41 +441,48 @@ security_ops->inode_delete(inode); } -int security_inode_setxattr(struct dentry *dentry, char *name, - void *value, size_t size, int flags) +int security_inode_setxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, int flags, + struct file *file) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_setxattr(dentry, name, value, size, flags); + return security_ops->inode_setxattr(dentry, mnt, name, value, size, + flags, file); } -void security_inode_post_setxattr(struct dentry *dentry, char *name, - void *value, size_t size, int flags) +void security_inode_post_setxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, + int flags) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return; - security_ops->inode_post_setxattr(dentry, name, value, size, flags); + security_ops->inode_post_setxattr(dentry, mnt, name, value, size, + flags); } -int security_inode_getxattr(struct dentry *dentry, char *name) +int security_inode_getxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_getxattr(dentry, name); + return security_ops->inode_getxattr(dentry, mnt, name, file); } -int security_inode_listxattr(struct dentry *dentry) +int security_inode_listxattr(struct dentry *dentry, struct vfsmount *mnt, + struct file *file) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_listxattr(dentry); + return security_ops->inode_listxattr(dentry, mnt, file); } -int security_inode_removexattr(struct dentry *dentry, char *name) +int security_inode_removexattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file) { if (unlikely(IS_PRIVATE(dentry->d_inode))) return 0; - return security_ops->inode_removexattr(dentry, name); + return security_ops->inode_removexattr(dentry, mnt, name, file); } int security_inode_need_killpriv(struct dentry *dentry) --- linux-2.6.24.orig/security/Makefile +++ linux-2.6.24/security/Makefile @@ -14,5 +14,6 @@ obj-$(CONFIG_SECURITY) += security.o dummy.o inode.o # Must precede capability.o in order to stack properly. obj-$(CONFIG_SECURITY_SELINUX) += selinux/built-in.o +obj-$(CONFIG_SECURITY_APPARMOR) += commoncap.o apparmor/ obj-$(CONFIG_SECURITY_CAPABILITIES) += commoncap.o capability.o obj-$(CONFIG_SECURITY_ROOTPLUG) += commoncap.o root_plug.o --- linux-2.6.24.orig/security/apparmor/module_interface.c +++ linux-2.6.24/security/apparmor/module_interface.c @@ -0,0 +1,825 @@ +/* + * Copyright (C) 1998-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor userspace policy interface + */ + +#include + +#include "apparmor.h" +#include "inline.h" + +/* + * This mutex is used to synchronize profile adds, replacements, and + * removals: we only allow one of these operations at a time. + * We do not use the profile list lock here in order to avoid blocking + * exec during those operations. (Exec involves a profile list lookup + * for named-profile transitions.) + */ +DEFINE_MUTEX(aa_interface_lock); + +/* + * The AppArmor interface treats data as a type byte followed by the + * actual data. The interface has the notion of a a named entry + * which has a name (AA_NAME typecode followed by name string) followed by + * the entries typecode and data. Named types allow for optional + * elements and extensions to be added and tested for without breaking + * backwards compatability. + */ + +enum aa_code { + AA_U8, + AA_U16, + AA_U32, + AA_U64, + AA_NAME, /* same as string except it is items name */ + AA_STRING, + AA_BLOB, + AA_STRUCT, + AA_STRUCTEND, + AA_LIST, + AA_LISTEND, + AA_ARRAY, + AA_ARRAYEND, +}; + +/* + * aa_ext is the read of the buffer containing the serialized profile. The + * data is copied into a kernel buffer in apparmorfs and then handed off to + * the unpack routines. + */ +struct aa_ext { + void *start; + void *end; + void *pos; /* pointer to current position in the buffer */ + u32 version; + char *ns_name; +}; + +static inline int aa_inbounds(struct aa_ext *e, size_t size) +{ + return (size <= e->end - e->pos); +} + +/** + * aa_u16_chunck - test and do bounds checking for a u16 size based chunk + * @e: serialized data read head + * @chunk: start address for chunk of data + * + * return the size of chunk found with the read head at the end of + * the chunk. + */ +static size_t aa_is_u16_chunk(struct aa_ext *e, char **chunk) +{ + void *pos = e->pos; + size_t size = 0; + + if (!aa_inbounds(e, sizeof(u16))) + goto fail; + size = le16_to_cpu(get_unaligned((u16 *)e->pos)); + e->pos += sizeof(u16); + if (!aa_inbounds(e, size)) + goto fail; + *chunk = e->pos; + e->pos += size; + return size; + +fail: + e->pos = pos; + return 0; +} + +static inline int aa_is_X(struct aa_ext *e, enum aa_code code) +{ + if (!aa_inbounds(e, 1)) + return 0; + if (*(u8 *) e->pos != code) + return 0; + e->pos++; + return 1; +} + +/** + * aa_is_nameX - check is the next element is of type X with a name of @name + * @e: serialized data extent information + * @code: type code + * @name: name to match to the serialized element. + * + * check that the next serialized data element is of type X and has a tag + * name @name. If @name is specified then there must be a matching + * name element in the stream. If @name is NULL any name element will be + * skipped and only the typecode will be tested. + * returns 1 on success (both type code and name tests match) and the read + * head is advanced past the headers + * returns %0 if either match failes, the read head does not move + */ +static int aa_is_nameX(struct aa_ext *e, enum aa_code code, const char *name) +{ + void *pos = e->pos; + /* + * Check for presence of a tagname, and if present name size + * AA_NAME tag value is a u16. + */ + if (aa_is_X(e, AA_NAME)) { + char *tag; + size_t size = aa_is_u16_chunk(e, &tag); + /* if a name is specified it must match. otherwise skip tag */ + if (name && (!size || strcmp(name, tag))) + goto fail; + } else if (name) { + /* if a name is specified and there is no name tag fail */ + goto fail; + } + + /* now check if type code matches */ + if (aa_is_X(e, code)) + return 1; + +fail: + e->pos = pos; + return 0; +} + +static int aa_is_u16(struct aa_ext *e, u16 *data, const char *name) +{ + void *pos = e->pos; + if (aa_is_nameX(e, AA_U16, name)) { + if (!aa_inbounds(e, sizeof(u16))) + goto fail; + if (data) + *data = le16_to_cpu(get_unaligned((u16 *)e->pos)); + e->pos += sizeof(u16); + return 1; + } +fail: + e->pos = pos; + return 0; +} + +static int aa_is_u32(struct aa_ext *e, u32 *data, const char *name) +{ + void *pos = e->pos; + if (aa_is_nameX(e, AA_U32, name)) { + if (!aa_inbounds(e, sizeof(u32))) + goto fail; + if (data) + *data = le32_to_cpu(get_unaligned((u32 *)e->pos)); + e->pos += sizeof(u32); + return 1; + } +fail: + e->pos = pos; + return 0; +} + +static size_t aa_is_array(struct aa_ext *e, const char *name) +{ + void *pos = e->pos; + if (aa_is_nameX(e, AA_ARRAY, name)) { + int size; + if (!aa_inbounds(e, sizeof(u16))) + goto fail; + size = (int) le16_to_cpu(get_unaligned((u16 *)e->pos)); + e->pos += sizeof(u16); + return size; + } +fail: + e->pos = pos; + return 0; +} + +static size_t aa_is_blob(struct aa_ext *e, char **blob, const char *name) +{ + void *pos = e->pos; + if (aa_is_nameX(e, AA_BLOB, name)) { + u32 size; + if (!aa_inbounds(e, sizeof(u32))) + goto fail; + size = le32_to_cpu(get_unaligned((u32 *)e->pos)); + e->pos += sizeof(u32); + if (aa_inbounds(e, (size_t) size)) { + * blob = e->pos; + e->pos += size; + return size; + } + } +fail: + e->pos = pos; + return 0; +} + +static int aa_is_dynstring(struct aa_ext *e, char **string, const char *name) +{ + char *src_str; + size_t size = 0; + void *pos = e->pos; + *string = NULL; + if (aa_is_nameX(e, AA_STRING, name) && + (size = aa_is_u16_chunk(e, &src_str))) { + char *str; + if (!(str = kmalloc(size, GFP_KERNEL))) + goto fail; + memcpy(str, src_str, size); + *string = str; + } + + return size; + +fail: + e->pos = pos; + return 0; +} + +/** + * aa_unpack_dfa - unpack a file rule dfa + * @e: serialized data extent information + * + * returns dfa or ERR_PTR + */ +struct aa_dfa *aa_unpack_dfa(struct aa_ext *e) +{ + char *blob = NULL; + size_t size, error = 0; + struct aa_dfa *dfa = NULL; + + size = aa_is_blob(e, &blob, "aadfa"); + if (size) { + dfa = aa_match_alloc(); + if (dfa) { + /* + * The dfa is aligned with in the blob to 8 bytes + * from the beginning of the stream. + */ + size_t sz = blob - (char *) e->start; + size_t pad = ALIGN(sz, 8) - sz; + error = unpack_dfa(dfa, blob + pad, size - pad); + if (!error) + error = verify_dfa(dfa); + } else { + error = -ENOMEM; + } + + if (error) { + aa_match_free(dfa); + dfa = ERR_PTR(error); + } + } + + return dfa; +} + +/** + * aa_unpack_profile - unpack a serialized profile + * @e: serialized data extent information + * @operation: operation profile is being unpacked for + */ +static struct aa_profile *aa_unpack_profile(struct aa_ext *e, + const char *operation) +{ + struct aa_profile *profile = NULL; + struct aa_audit sa; + size_t size = 0; + int i; + + int error = -EPROTO; + + profile = alloc_aa_profile(); + if (!profile) + return ERR_PTR(-ENOMEM); + + /* check that we have the right struct being passed */ + if (!aa_is_nameX(e, AA_STRUCT, "profile")) + goto fail; + if (!aa_is_dynstring(e, &profile->name, NULL)) + goto fail; + + /* per profile debug flags (complain, audit) */ + if (!aa_is_nameX(e, AA_STRUCT, "flags")) + goto fail; + if (!aa_is_u32(e, NULL, NULL)) + goto fail; + if (!aa_is_u32(e, &(profile->flags.complain), NULL)) + goto fail; + if (!aa_is_u32(e, &(profile->flags.audit), NULL)) + goto fail; + if (!aa_is_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + + if (!aa_is_u32(e, &(profile->capabilities), NULL)) + goto fail; + + size = aa_is_array(e, "net_allowed_af"); + if (size) { + if (size > AF_MAX) + goto fail; + + for (i = 0; i < size; i++) { + if (!aa_is_u16(e, &profile->network_families[i], NULL)) + goto fail; + } + if (!aa_is_nameX(e, AA_ARRAYEND, NULL)) + goto fail; + /* allow unix domain and netlink sockets they are handled + * by IPC + */ + } + profile->network_families[AF_UNIX] = 0xffff; + profile->network_families[AF_NETLINK] = 0xffff; + + /* get file rules */ + profile->file_rules = aa_unpack_dfa(e); + if (IS_ERR(profile->file_rules)) { + error = PTR_ERR(profile->file_rules); + profile->file_rules = NULL; + goto fail; + } + + if (!aa_is_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + + return profile; + +fail: + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.name = profile && profile->name ? profile->name : "unknown"; + if (!sa.info) + sa.info = "failed to unpack profile"; + aa_audit_status(NULL, &sa); + + if (profile) + free_aa_profile(profile); + + return ERR_PTR(error); +} + +/** + * aa_verify_head - unpack serialized stream header + * @e: serialized data read head + * @operation: operation header is being verified for + * + * returns error or 0 if header is good + */ +static int aa_verify_header(struct aa_ext *e, const char *operation) +{ + /* get the interface version */ + if (!aa_is_u32(e, &e->version, "version")) { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.info = "invalid profile format"; + aa_audit_status(NULL, &sa); + return -EPROTONOSUPPORT; + } + + /* check that the interface version is currently supported */ + if (e->version != 3) { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.info = "unsupported interface version"; + aa_audit_status(NULL, &sa); + return -EPROTONOSUPPORT; + } + + /* read the namespace if present */ + if (!aa_is_dynstring(e, &e->ns_name, "namespace")) { + e->ns_name = NULL; + } + + return 0; +} + +/** + * aa_add_profile - Unpack and add a new profile to the profile list + * @data: serialized data stream + * @size: size of the serialized data stream + */ +ssize_t aa_add_profile(void *data, size_t size) +{ + struct aa_profile *profile = NULL; + struct aa_namespace *ns = NULL; + struct aa_ext e = { + .start = data, + .end = data + size, + .pos = data, + .ns_name = NULL + }; + ssize_t error = aa_verify_header(&e, "profile_load"); + if (error) + return error; + + profile = aa_unpack_profile(&e, "profile_load"); + if (IS_ERR(profile)) + return PTR_ERR(profile); + + mutex_lock(&aa_interface_lock); + write_lock(&profile_ns_list_lock); + if (e.ns_name) + ns = __aa_find_namespace(e.ns_name, &profile_ns_list); + else + ns = default_namespace; + if (!ns) { + struct aa_namespace *new_ns; + write_unlock(&profile_ns_list_lock); + new_ns = alloc_aa_namespace(e.ns_name); + if (!new_ns) { + mutex_unlock(&aa_interface_lock); + return -ENOMEM; + } + write_lock(&profile_ns_list_lock); + ns = __aa_find_namespace(e.ns_name, &profile_ns_list); + if (!ns) { + list_add(&new_ns->list, &profile_ns_list); + ns = new_ns; + } else + free_aa_namespace(new_ns); + } + + write_lock(&ns->lock); + if (__aa_find_profile(profile->name, &ns->profiles)) { + /* A profile with this name exists already. */ + write_unlock(&ns->lock); + write_unlock(&profile_ns_list_lock); + mutex_unlock(&aa_interface_lock); + aa_put_profile(profile); + return -EEXIST; + } + profile->ns = aa_get_namespace(ns); + ns->profile_count++; + list_add(&profile->list, &ns->profiles); + write_unlock(&ns->lock); + write_unlock(&profile_ns_list_lock); + mutex_unlock(&aa_interface_lock); + + return size; +} + +/** + * task_replace - replace a task's profile + * @task: task to replace profile on + * @new_cxt: new aa_task_context to do replacement with + * @new_profile: new profile + */ +static inline void task_replace(struct task_struct *task, + struct aa_task_context *new_cxt, + struct aa_profile *new_profile) +{ + struct aa_task_context *cxt = aa_task_context(task); + + AA_DEBUG("%s: replacing profile for task %d " + "profile=%s (%p)\n", + __FUNCTION__, + cxt->task->pid, + cxt->profile->name, cxt->profile); + + aa_change_task_context(task, new_cxt, new_profile, cxt->cookie, + cxt->previous_profile); +} + +/** + * aa_replace_profile - replace a profile on the profile list + * @udata: serialized data stream + * @size: size of the serialized data stream + * + * unpack and replace a profile on the profile list and uses of that profile + * by any aa_task_context. If the profile does not exist on the profile list + * it is added. Return %0 or error. + */ +ssize_t aa_replace_profile(void *udata, size_t size) +{ + struct aa_profile *old_profile, *new_profile; + struct aa_namespace *ns; + struct aa_task_context *new_cxt; + struct aa_ext e = { + .start = udata, + .end = udata + size, + .pos = udata, + .ns_name = NULL + }; + + ssize_t error = aa_verify_header(&e, "profile_replace"); + if (error) + return error; + + new_profile = aa_unpack_profile(&e, "profile_replace"); + if (IS_ERR(new_profile)) + return PTR_ERR(new_profile); + + mutex_lock(&aa_interface_lock); + write_lock(&profile_ns_list_lock); + if (e.ns_name) + ns = __aa_find_namespace(e.ns_name, &profile_ns_list); + else + ns = default_namespace; + if (!ns) { + struct aa_namespace *new_ns; + write_unlock(&profile_ns_list_lock); + new_ns = alloc_aa_namespace(e.ns_name); + if (!new_ns) { + mutex_unlock(&aa_interface_lock); + return -ENOMEM; + } + write_lock(&profile_ns_list_lock); + ns = __aa_find_namespace(e.ns_name, &profile_ns_list); + if (!ns) { + list_add(&new_ns->list, &profile_ns_list); + ns = new_ns; + } else + free_aa_namespace(new_ns); + } + + write_lock(&ns->lock); + old_profile = __aa_find_profile(new_profile->name, &ns->profiles); + if (old_profile) { + lock_profile(old_profile); + old_profile->isstale = 1; + list_del_init(&old_profile->list); + unlock_profile(old_profile); + ns->profile_count--; + } + new_profile->ns = aa_get_namespace(ns); + ns->profile_count++; + list_add(&new_profile->list, &ns->profiles); + write_unlock(&ns->lock); + write_unlock(&profile_ns_list_lock); + + if (!old_profile) + goto out; + + /* + * Replacement needs to allocate a new aa_task_context for each + * task confined by old_profile. To do this the profile locks + * are only held when the actual switch is done per task. While + * looping to allocate a new aa_task_context the old_task list + * may get shorter if tasks exit/change their profile but will + * not get longer as new task will not use old_profile detecting + * that is stale. + */ + do { + new_cxt = aa_alloc_task_context(GFP_KERNEL | __GFP_NOFAIL); + + lock_both_profiles(old_profile, new_profile); + if (!list_empty(&old_profile->task_contexts)) { + struct task_struct *task = + list_entry(old_profile->task_contexts.next, + struct aa_task_context, list)->task; + task_lock(task); + task_replace(task, new_cxt, new_profile); + task_unlock(task); + new_cxt = NULL; + } + unlock_both_profiles(old_profile, new_profile); + } while (!new_cxt); + aa_free_task_context(new_cxt); + aa_put_profile(old_profile); + +out: + mutex_unlock(&aa_interface_lock); + return size; +} + +/** + * aa_remove_profile - remove a profile from the system + * @name: name of the profile to remove + * @size: size of the name + * + * remove a profile from the profile list and all aa_task_context references + * to said profile. + */ +ssize_t aa_remove_profile(char *name, size_t size) +{ + struct aa_namespace *ns; + struct aa_profile *profile; + + mutex_lock(&aa_interface_lock); + write_lock(&profile_ns_list_lock); + + if (name[0] == '/') { + ns = default_namespace; + } else { + char *split = strchr(name, ':'); + if (!split) + goto noent; + *split = 0; + ns = __aa_find_namespace(name, &profile_ns_list); + name = split + 1; + } + + if (!ns) + goto noent; + write_lock(&ns->lock); + profile = __aa_find_profile(name, &ns->profiles); + if (!profile) { + write_unlock(&ns->lock); + goto noent; + } + + /* Remove the profile from each task context it is on. */ + lock_profile(profile); + profile->isstale = 1; + aa_unconfine_tasks(profile); + list_del_init(&profile->list); + ns->profile_count--; + unlock_profile(profile); + /* Release the profile itself. */ + write_unlock(&ns->lock); + /* check to see if the namespace has become stale */ + if (ns != default_namespace && ns->profile_count == 0) { + list_del_init(&ns->list); + aa_put_namespace(ns); + } + write_unlock(&profile_ns_list_lock); + mutex_unlock(&aa_interface_lock); + aa_put_profile(profile); + + return size; + +noent: + write_unlock(&profile_ns_list_lock); + mutex_unlock(&aa_interface_lock); + return -ENOENT; +} + +/** + * free_aa_namespace_kref - free aa_namespace by kref (see aa_put_namespace) + * @kr: kref callback for freeing of a namespace + */ +void free_aa_namespace_kref(struct kref *kref) +{ + struct aa_namespace *ns=container_of(kref, struct aa_namespace, count); + + free_aa_namespace(ns); +} + +/** + * alloc_aa_namespace - allocate, initialize and return a new namespace + * @name: a preallocated name + * Returns NULL on failure. + */ +struct aa_namespace *alloc_aa_namespace(char *name) +{ + struct aa_namespace *ns; + + ns = kzalloc(sizeof(*ns), GFP_KERNEL); + AA_DEBUG("%s(%p)\n", __FUNCTION__, ns); + if (ns) { + ns->name = name; + INIT_LIST_HEAD(&ns->list); + INIT_LIST_HEAD(&ns->profiles); + kref_init(&ns->count); + rwlock_init(&ns->lock); + + ns->null_complain_profile = alloc_aa_profile(); + if (!ns->null_complain_profile) { + if (!name) + kfree(ns->name); + kfree(ns); + return NULL; + } + ns->null_complain_profile->name = + kstrdup("null-complain-profile", GFP_KERNEL); + if (!ns->null_complain_profile->name) { + free_aa_profile(ns->null_complain_profile); + if (!name) + kfree(ns->name); + kfree(ns); + return NULL; + } + ns->null_complain_profile->flags.complain = 1; + /* null_complain_profile doesn't contribute to ns ref count */ + ns->null_complain_profile->ns = ns; + } + return ns; +} + +/** + * free_aa_namespace - free a profile namespace + * @namespace: the namespace to free + * + * Free a namespace. All references to the namespace must have been put. + * If the namespace was referenced by a profile confining a task, + * free_aa_namespace will be called indirectly (through free_aa_profile) + * from an rcu callback routine, so we must not sleep here. + */ +void free_aa_namespace(struct aa_namespace *ns) +{ + AA_DEBUG("%s(%p)\n", __FUNCTION__, ns); + + if (!ns) + return; + + /* namespace still contains profiles -- invalid */ + if (!list_empty(&ns->profiles)) { + AA_ERROR("%s: internal error, " + "namespace '%s' still contains profiles\n", + __FUNCTION__, + ns->name); + BUG(); + } + if (!list_empty(&ns->list)) { + AA_ERROR("%s: internal error, " + "namespace '%s' still on list\n", + __FUNCTION__, + ns->name); + BUG(); + } + /* null_complain_profile doesn't contribute to ns ref counting */ + ns->null_complain_profile->ns = NULL; + aa_put_profile(ns->null_complain_profile); + kfree(ns->name); + kfree(ns); +} + +/** + * free_aa_profile_kref - free aa_profile by kref (called by aa_put_profile) + * @kr: kref callback for freeing of a profile + */ +void free_aa_profile_kref(struct kref *kref) +{ + struct aa_profile *p=container_of(kref, struct aa_profile, count); + + free_aa_profile(p); +} + +/** + * alloc_aa_profile - allocate, initialize and return a new profile + * Returns NULL on failure. + */ +struct aa_profile *alloc_aa_profile(void) +{ + struct aa_profile *profile; + + profile = kzalloc(sizeof(*profile), GFP_KERNEL); + AA_DEBUG("%s(%p)\n", __FUNCTION__, profile); + if (profile) { + INIT_LIST_HEAD(&profile->list); + kref_init(&profile->count); + INIT_LIST_HEAD(&profile->task_contexts); + spin_lock_init(&profile->lock); + } + return profile; +} + +/** + * free_aa_profile - free a profile + * @profile: the profile to free + * + * Free a profile, its hats and null_profile. All references to the profile, + * its hats and null_profile must have been put. + * + * If the profile was referenced from a task context, free_aa_profile() will + * be called from an rcu callback routine, so we must not sleep here. + */ +void free_aa_profile(struct aa_profile *profile) +{ + AA_DEBUG("%s(%p)\n", __FUNCTION__, profile); + + if (!profile) + return; + + /* profile is still on profile namespace list -- invalid */ + if (!list_empty(&profile->list)) { + AA_ERROR("%s: internal error, " + "profile '%s' still on global list\n", + __FUNCTION__, + profile->name); + BUG(); + } + aa_put_namespace(profile->ns); + + aa_match_free(profile->file_rules); + + if (profile->name) { + AA_DEBUG("%s: %s\n", __FUNCTION__, profile->name); + kfree(profile->name); + } + + kfree(profile); +} + +/** + * aa_unconfine_tasks - remove tasks on a profile's task context list + * @profile: profile to remove tasks from + * + * Assumes that @profile lock is held. + */ +void aa_unconfine_tasks(struct aa_profile *profile) +{ + while (!list_empty(&profile->task_contexts)) { + struct task_struct *task = + list_entry(profile->task_contexts.next, + struct aa_task_context, list)->task; + task_lock(task); + aa_change_task_context(task, NULL, NULL, 0, NULL); + task_unlock(task); + } +} --- linux-2.6.24.orig/security/apparmor/apparmorfs.c +++ linux-2.6.24/security/apparmor/apparmorfs.c @@ -0,0 +1,280 @@ +/* + * Copyright (C) 1998-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor filesystem (part of securityfs) + */ + +#include +#include +#include +#include +#include + +#include "apparmor.h" +#include "inline.h" + +static char *aa_simple_write_to_buffer(const char __user *userbuf, + size_t alloc_size, size_t copy_size, + loff_t *pos, const char *operation) +{ + struct aa_profile *profile; + char *data; + + if (*pos != 0) { + /* only writes from pos 0, that is complete writes */ + data = ERR_PTR(-ESPIPE); + goto out; + } + + /* + * Don't allow confined processes to load/replace/remove profiles. + * No sane person would add rules allowing this to a profile + * but we enforce the restriction anyways. + */ + profile = aa_get_profile(current); + if (profile) { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.error_code = -EACCES; + data = ERR_PTR(aa_audit_reject(profile, &sa)); + aa_put_profile(profile); + goto out; + } + + data = vmalloc(alloc_size); + if (data == NULL) { + data = ERR_PTR(-ENOMEM); + goto out; + } + + if (copy_from_user(data, userbuf, copy_size)) { + vfree(data); + data = ERR_PTR(-EFAULT); + goto out; + } + +out: + return data; +} + +/* apparmor/profiles */ +extern struct seq_operations apparmorfs_profiles_op; + +static int aa_profiles_open(struct inode *inode, struct file *file) +{ + return seq_open(file, &apparmorfs_profiles_op); +} + + +static int aa_profiles_release(struct inode *inode, struct file *file) +{ + return seq_release(inode, file); +} + +static struct file_operations apparmorfs_profiles_fops = { + .open = aa_profiles_open, + .read = seq_read, + .llseek = seq_lseek, + .release = aa_profiles_release, +}; + +/* apparmor/matching */ +static ssize_t aa_matching_read(struct file *file, char __user *buf, + size_t size, loff_t *ppos) +{ + const char *matching = "pattern=aadfa perms=rwxamlk/ user::other"; + + return simple_read_from_buffer(buf, size, ppos, matching, + strlen(matching)); +} + +static struct file_operations apparmorfs_matching_fops = { + .read = aa_matching_read, +}; + +/* apparmor/features */ +static ssize_t aa_features_read(struct file *file, char __user *buf, + size_t size, loff_t *ppos) +{ + const char *features = "file=3.0 capability=1.0 network=1.0 " + "change_hat=1.3 change_profile=1.0 " + "aanamespaces=1.0"; + + return simple_read_from_buffer(buf, size, ppos, features, + strlen(features)); +} + +static struct file_operations apparmorfs_features_fops = { + .read = aa_features_read, +}; + +/* apparmor/.load */ +static ssize_t aa_profile_load(struct file *f, const char __user *buf, + size_t size, loff_t *pos) +{ + char *data; + ssize_t error; + + data = aa_simple_write_to_buffer(buf, size, size, pos, "profile_load"); + + error = PTR_ERR(data); + if (!IS_ERR(data)) { + error = aa_add_profile(data, size); + vfree(data); + } + + return error; +} + + +static struct file_operations apparmorfs_profile_load = { + .write = aa_profile_load +}; + +/* apparmor/.replace */ +static ssize_t aa_profile_replace(struct file *f, const char __user *buf, + size_t size, loff_t *pos) +{ + char *data; + ssize_t error; + + data = aa_simple_write_to_buffer(buf, size, size, pos, + "profile_replace"); + + error = PTR_ERR(data); + if (!IS_ERR(data)) { + error = aa_replace_profile(data, size); + vfree(data); + } + + return error; +} + + +static struct file_operations apparmorfs_profile_replace = { + .write = aa_profile_replace +}; + +/* apparmor/.remove */ +static ssize_t aa_profile_remove(struct file *f, const char __user *buf, + size_t size, loff_t *pos) +{ + char *data; + ssize_t error; + + /* + * aa_remove_profile needs a null terminated string so 1 extra + * byte is allocated and the copied data is null terminated. + */ + data = aa_simple_write_to_buffer(buf, size + 1, size, pos, + "profile_remove"); + + error = PTR_ERR(data); + if (!IS_ERR(data)) { + data[size] = 0; + error = aa_remove_profile(data, size); + vfree(data); + } + + return error; +} + +static struct file_operations apparmorfs_profile_remove = { + .write = aa_profile_remove +}; + +static struct dentry *apparmor_dentry; + +static void aafs_remove(const char *name) +{ + struct dentry *dentry; + + dentry = lookup_one_len(name, apparmor_dentry, strlen(name)); + if (!IS_ERR(dentry)) { + securityfs_remove(dentry); + dput(dentry); + } +} + +static int aafs_create(const char *name, int mask, struct file_operations *fops) +{ + struct dentry *dentry; + + dentry = securityfs_create_file(name, S_IFREG | mask, apparmor_dentry, + NULL, fops); + + return IS_ERR(dentry) ? PTR_ERR(dentry) : 0; +} + +void destroy_apparmorfs(void) +{ + if (apparmor_dentry) { + aafs_remove(".remove"); + aafs_remove(".replace"); + aafs_remove(".load"); + aafs_remove("matching"); + aafs_remove("features"); + aafs_remove("profiles"); + securityfs_remove(apparmor_dentry); + apparmor_dentry = NULL; + } +} + +int create_apparmorfs(void) +{ + int error; + + if (!apparmor_initialized) + return 0; + + if (apparmor_dentry) { + AA_ERROR("%s: AppArmor securityfs already exists\n", + __FUNCTION__); + return -EEXIST; + } + + apparmor_dentry = securityfs_create_dir("apparmor", NULL); + if (IS_ERR(apparmor_dentry)) { + error = PTR_ERR(apparmor_dentry); + apparmor_dentry = NULL; + goto error; + } + error = aafs_create("profiles", 0440, &apparmorfs_profiles_fops); + if (error) + goto error; + error = aafs_create("matching", 0444, &apparmorfs_matching_fops); + if (error) + goto error; + error = aafs_create("features", 0444, &apparmorfs_features_fops); + if (error) + goto error; + error = aafs_create(".load", 0640, &apparmorfs_profile_load); + if (error) + goto error; + error = aafs_create(".replace", 0640, &apparmorfs_profile_replace); + if (error) + goto error; + error = aafs_create(".remove", 0640, &apparmorfs_profile_remove); + if (error) + goto error; + + /* Report that AppArmor fs is enabled */ + info_message("AppArmor Filesystem Enabled"); + return 0; + +error: + destroy_apparmorfs(); + AA_ERROR("Error creating AppArmor securityfs\n"); + apparmor_disable(); + return error; +} + +fs_initcall(create_apparmorfs); + --- linux-2.6.24.orig/security/apparmor/inline.h +++ linux-2.6.24/security/apparmor/inline.h @@ -0,0 +1,240 @@ +/* + * Copyright (C) 1998-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __INLINE_H +#define __INLINE_H + +#include + +#include "match.h" + +static inline int mediated_filesystem(struct inode *inode) +{ + return !(inode->i_sb->s_flags & MS_NOUSER); +} + +static inline struct aa_task_context *aa_task_context(struct task_struct *task) +{ + return (struct aa_task_context *) rcu_dereference(task->security); +} + +static inline struct aa_namespace *aa_get_namespace(struct aa_namespace *ns) +{ + if (ns) + kref_get(&(ns->count)); + + return ns; +} + +static inline void aa_put_namespace(struct aa_namespace *ns) +{ + if (ns) + kref_put(&ns->count, free_aa_namespace_kref); +} + + +static inline struct aa_namespace *aa_find_namespace(const char *name) +{ + struct aa_namespace *ns = NULL; + + read_lock(&profile_ns_list_lock); + ns = aa_get_namespace(__aa_find_namespace(name, &profile_ns_list)); + read_unlock(&profile_ns_list_lock); + + return ns; +} + +/** + * aa_dup_profile - increment refcount on profile @p + * @p: profile + */ +static inline struct aa_profile *aa_dup_profile(struct aa_profile *p) +{ + if (p) + kref_get(&(p->count)); + + return p; +} + +/** + * aa_put_profile - decrement refcount on profile @p + * @p: profile + */ +static inline void aa_put_profile(struct aa_profile *p) +{ + if (p) + kref_put(&p->count, free_aa_profile_kref); +} + +static inline struct aa_profile *aa_get_profile(struct task_struct *task) +{ + struct aa_task_context *cxt; + struct aa_profile *profile = NULL; + + rcu_read_lock(); + cxt = aa_task_context(task); + if (cxt) { + profile = cxt->profile; + aa_dup_profile(profile); + } + rcu_read_unlock(); + + return profile; +} + +static inline struct aa_profile *aa_find_profile(struct aa_namespace *ns, + const char *name) +{ + struct aa_profile *profile = NULL; + + read_lock(&ns->lock); + profile = aa_dup_profile(__aa_find_profile(name, &ns->profiles)); + read_unlock(&ns->lock); + + return profile; +} + +static inline struct aa_task_context *aa_alloc_task_context(gfp_t flags) +{ + struct aa_task_context *cxt; + + cxt = kzalloc(sizeof(*cxt), flags); + if (cxt) { + INIT_LIST_HEAD(&cxt->list); + INIT_RCU_HEAD(&cxt->rcu); + } + + return cxt; +} + +static inline void aa_free_task_context(struct aa_task_context *cxt) +{ + if (cxt) { + aa_put_profile(cxt->profile); + aa_put_profile(cxt->previous_profile); + kfree(cxt); + } +} + +/** + * lock_profile - lock a profile + * @profile: the profile to lock + * + * While the profile is locked, local interrupts are disabled. This also + * gives us RCU reader safety. + */ +static inline void lock_profile_nested(struct aa_profile *profile, + enum aa_lock_class lock_class) +{ + /* + * Lock the profile. + * + * Need to disable interrupts here because this lock is used in + * the task_free_security hook, which may run in RCU context. + */ + if (profile) + spin_lock_irqsave_nested(&profile->lock, profile->int_flags, + lock_class); +} + +static inline void lock_profile(struct aa_profile *profile) +{ + lock_profile_nested(profile, aa_lock_normal); +} + +/** + * unlock_profile - unlock a profile + * @profile: the profile to unlock + */ +static inline void unlock_profile(struct aa_profile *profile) +{ + /* Unlock the profile. */ + if (profile) + spin_unlock_irqrestore(&profile->lock, profile->int_flags); +} + +/** + * lock_both_profiles - lock two profiles in a deadlock-free way + * @profile1: profile to lock (may be NULL) + * @profile2: profile to lock (may be NULL) + * + * The order in which profiles are passed into lock_both_profiles() / + * unlock_both_profiles() does not matter. + * While the profile is locked, local interrupts are disabled. This also + * gives us RCU reader safety. + */ +static inline void lock_both_profiles(struct aa_profile *profile1, + struct aa_profile *profile2) +{ + /* + * Lock the two profiles. + * + * We need to disable interrupts because the profile locks are + * used in the task_free_security hook, which may run in RCU + * context. + * + * Do not nest spin_lock_irqsave()/spin_unlock_irqresore(): + * interrupts only need to be turned off once. + */ + if (!profile1 || profile1 == profile2) { + if (profile2) + spin_lock_irqsave_nested(&profile2->lock, + profile2->int_flags, + aa_lock_normal); + } else if (profile1 > profile2) { + /* profile1 cannot be NULL here. */ + spin_lock_irqsave_nested(&profile1->lock, profile1->int_flags, + aa_lock_normal); + if (profile2) + spin_lock_nested(&profile2->lock, aa_lock_nested); + + } else { + /* profile2 cannot be NULL here. */ + spin_lock_irqsave_nested(&profile2->lock, profile2->int_flags, + aa_lock_normal); + spin_lock_nested(&profile1->lock, aa_lock_nested); + } +} + +/** + * unlock_both_profiles - unlock two profiles in a deadlock-free way + * @profile1: profile to unlock (may be NULL) + * @profile2: profile to unlock (may be NULL) + * + * The order in which profiles are passed into lock_both_profiles() / + * unlock_both_profiles() does not matter. + * While the profile is locked, local interrupts are disabled. This also + * gives us RCU reader safety. + */ +static inline void unlock_both_profiles(struct aa_profile *profile1, + struct aa_profile *profile2) +{ + /* Unlock the two profiles. */ + if (!profile1 || profile1 == profile2) { + if (profile2) + spin_unlock_irqrestore(&profile2->lock, + profile2->int_flags); + } else if (profile1 > profile2) { + /* profile1 cannot be NULL here. */ + if (profile2) + spin_unlock(&profile2->lock); + spin_unlock_irqrestore(&profile1->lock, profile1->int_flags); + } else { + /* profile2 cannot be NULL here. */ + spin_unlock(&profile1->lock); + spin_unlock_irqrestore(&profile2->lock, profile2->int_flags); + } +} + +static inline unsigned int aa_match(struct aa_dfa *dfa, const char *pathname) +{ + return dfa ? aa_dfa_match(dfa, pathname) : 0; +} + +#endif /* __INLINE_H__ */ --- linux-2.6.24.orig/security/apparmor/match.c +++ linux-2.6.24/security/apparmor/match.c @@ -0,0 +1,299 @@ +/* + * Copyright (C) 2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * Regular expression transition table matching + */ + +#include +#include +#include +#include "apparmor.h" +#include "match.h" + +static struct table_header *unpack_table(void *blob, size_t bsize) +{ + struct table_header *table = NULL; + struct table_header th; + size_t tsize; + + if (bsize < sizeof(struct table_header)) + goto out; + + th.td_id = be16_to_cpu(*(u16 *) (blob)); + th.td_flags = be16_to_cpu(*(u16 *) (blob + 2)); + th.td_lolen = be32_to_cpu(*(u32 *) (blob + 8)); + blob += sizeof(struct table_header); + + if (!(th.td_flags == YYTD_DATA16 || th.td_flags == YYTD_DATA32 || + th.td_flags == YYTD_DATA8)) + goto out; + + tsize = table_size(th.td_lolen, th.td_flags); + if (bsize < tsize) + goto out; + + table = kmalloc(tsize, GFP_KERNEL); + if (table) { + *table = th; + if (th.td_flags == YYTD_DATA8) + UNPACK_ARRAY(table->td_data, blob, th.td_lolen, + u8, byte_to_byte); + else if (th.td_flags == YYTD_DATA16) + UNPACK_ARRAY(table->td_data, blob, th.td_lolen, + u16, be16_to_cpu); + else + UNPACK_ARRAY(table->td_data, blob, th.td_lolen, + u32, be32_to_cpu); + } + +out: + return table; +} + +int unpack_dfa(struct aa_dfa *dfa, void *blob, size_t size) +{ + int hsize, i; + int error = -ENOMEM; + + /* get dfa table set header */ + if (size < sizeof(struct table_set_header)) + goto fail; + + if (ntohl(*(u32 *)blob) != YYTH_MAGIC) + goto fail; + + hsize = ntohl(*(u32 *)(blob + 4)); + if (size < hsize) + goto fail; + + blob += hsize; + size -= hsize; + + error = -EPROTO; + while (size > 0) { + struct table_header *table; + table = unpack_table(blob, size); + if (!table) + goto fail; + + switch(table->td_id) { + case YYTD_ID_ACCEPT: + case YYTD_ID_BASE: + dfa->tables[table->td_id - 1] = table; + if (table->td_flags != YYTD_DATA32) + goto fail; + break; + case YYTD_ID_DEF: + case YYTD_ID_NXT: + case YYTD_ID_CHK: + dfa->tables[table->td_id - 1] = table; + if (table->td_flags != YYTD_DATA16) + goto fail; + break; + case YYTD_ID_EC: + dfa->tables[table->td_id - 1] = table; + if (table->td_flags != YYTD_DATA8) + goto fail; + break; + default: + kfree(table); + goto fail; + } + + blob += table_size(table->td_lolen, table->td_flags); + size -= table_size(table->td_lolen, table->td_flags); + } + + return 0; + +fail: + for (i = 0; i < ARRAY_SIZE(dfa->tables); i++) { + if (dfa->tables[i]) { + kfree(dfa->tables[i]); + dfa->tables[i] = NULL; + } + } + return error; +} + +/** + * verify_dfa - verify that all the transitions and states in the dfa tables + * are in bounds. + * @dfa: dfa to test + * + * assumes dfa has gone through the verification done by unpacking + */ +int verify_dfa(struct aa_dfa *dfa) +{ + size_t i, state_count, trans_count; + int error = -EPROTO; + + /* check that required tables exist */ + if (!(dfa->tables[YYTD_ID_ACCEPT -1 ] && + dfa->tables[YYTD_ID_DEF - 1] && + dfa->tables[YYTD_ID_BASE - 1] && + dfa->tables[YYTD_ID_NXT - 1] && + dfa->tables[YYTD_ID_CHK - 1])) + goto out; + + /* accept.size == default.size == base.size */ + state_count = dfa->tables[YYTD_ID_BASE - 1]->td_lolen; + if (!(state_count == dfa->tables[YYTD_ID_DEF - 1]->td_lolen && + state_count == dfa->tables[YYTD_ID_ACCEPT - 1]->td_lolen)) + goto out; + + /* next.size == chk.size */ + trans_count = dfa->tables[YYTD_ID_NXT - 1]->td_lolen; + if (trans_count != dfa->tables[YYTD_ID_CHK - 1]->td_lolen) + goto out; + + /* if equivalence classes then its table size must be 256 */ + if (dfa->tables[YYTD_ID_EC - 1] && + dfa->tables[YYTD_ID_EC - 1]->td_lolen != 256) + goto out; + + for (i = 0; i < state_count; i++) { + if (DEFAULT_TABLE(dfa)[i] >= state_count) + goto out; + if (BASE_TABLE(dfa)[i] >= trans_count + 256) + goto out; + } + + for (i = 0; i < trans_count ; i++) { + if (NEXT_TABLE(dfa)[i] >= state_count) + goto out; + if (CHECK_TABLE(dfa)[i] >= state_count) + goto out; + } + + /* verify accept permissions */ + for (i = 0; i < state_count; i++) { + int mode = ACCEPT_TABLE(dfa)[i]; + + if (mode & ~AA_VALID_PERM_MASK) { + goto out; + } + } + + error = 0; +out: + return error; +} + +struct aa_dfa *aa_match_alloc(void) +{ + return kzalloc(sizeof(struct aa_dfa), GFP_KERNEL); +} + +void aa_match_free(struct aa_dfa *dfa) +{ + if (dfa) { + int i; + + for (i = 0; i < ARRAY_SIZE(dfa->tables); i++) + kfree(dfa->tables[i]); + } + kfree(dfa); +} + +/** + * aa_dfa_next_state - traverse @dfa to find state @str stops at + * @dfa: the dfa to match @str against + * @start: the state of the dfa to start matching in + * @str: the string to match against the dfa + * + * aa_dfa_next_state will match @str against the dfa and return the state it + * finished matching in. The final state can be used to look up the accepting + * label, or as the start state of a continuing match. + */ +unsigned int aa_dfa_next_state(struct aa_dfa *dfa, unsigned int start, + const char *str) +{ + u16 *def = DEFAULT_TABLE(dfa); + u32 *base = BASE_TABLE(dfa); + u16 *next = NEXT_TABLE(dfa); + u16 *check = CHECK_TABLE(dfa); + unsigned int state = start, pos; + + if (state == 0) + return 0; + + /* current state is , matching character *str */ + if (dfa->tables[YYTD_ID_EC - 1]) { + u8 *equiv = EQUIV_TABLE(dfa); + while (*str) { + pos = base[state] + equiv[(u8)*str++]; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } + } else { + while (*str) { + pos = base[state] + (u8)*str++; + if (check[pos] == state) + state = next[pos]; + else + state = def[state]; + } + } + return state; +} + +/** + * aa_dfa_null_transition - step to next state after null character + * @dfa: the dfa to match against + * @start: the state of the dfa to start matching in + * + * aa_dfa_null_transition transitions to the next state after a null + * character which is not used in standard matching and is only + * used to seperate pairs. + */ +unsigned int aa_dfa_null_transition(struct aa_dfa *dfa, unsigned int start) +{ + return aa_dfa_next_state(dfa, start, "//"); +} + +/** + * aa_dfa_match - find accept perm for @str in @dfa + * @dfa: the dfa to match @str against + * @str: the string to match against the dfa + * + * aa_dfa_match will match @str and return the accept perms for the + * final state. + */ +unsigned int aa_dfa_match(struct aa_dfa *dfa, const char *str) +{ + return ACCEPT_TABLE(dfa)[aa_dfa_next_state(dfa, DFA_START, str)]; +} + +/** + * aa_match_state - find accept perm and state for @str in @dfa + * @dfa: the dfa to match @str against + * @start: the state to start the match from + * @str: the string to match against the dfa + * @final: the state that the match finished in + * + * aa_match_state will match @str and return the accept perms, and @final + * state, the match occured in. + */ +unsigned int aa_match_state(struct aa_dfa *dfa, unsigned int start, + const char *str, unsigned int *final) +{ + unsigned int state; + if (dfa) { + state = aa_dfa_next_state(dfa, start, str); + if (final) + *final = state; + return ACCEPT_TABLE(dfa)[state]; + } + if (final) + *final = 0; + return 0; +} + --- linux-2.6.24.orig/security/apparmor/apparmor.h +++ linux-2.6.24/security/apparmor/apparmor.h @@ -0,0 +1,335 @@ +/* + * Copyright (C) 1998-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor internal prototypes + */ + +#ifndef __APPARMOR_H +#define __APPARMOR_H + +#include +#include +#include +#include +#include +#include + +/* + * We use MAY_READ, MAY_WRITE, MAY_EXEC, MAY_APPEND and the following flags + * for profile permissions + */ +#define AA_MAY_LINK 0x0010 +#define AA_MAY_LOCK 0x0020 +#define AA_EXEC_MMAP 0x0040 +#define AA_EXEC_UNSAFE 0x0080 +#define AA_EXEC_MOD_0 0x0100 +#define AA_EXEC_MOD_1 0x0200 +#define AA_BASE_PERMS (MAY_READ | MAY_WRITE | MAY_EXEC | \ + MAY_APPEND | AA_MAY_LINK | \ + AA_MAY_LOCK | AA_EXEC_MMAP | \ + AA_EXEC_UNSAFE | AA_EXEC_MOD_0 | \ + AA_EXEC_MOD_1) +#define AA_LINK_SUBSET_TEST 0x0020 + +#define AA_EXEC_UNCONFINED 0 +#define AA_EXEC_INHERIT AA_EXEC_MOD_0 +#define AA_EXEC_PROFILE AA_EXEC_MOD_1 +#define AA_EXEC_PIX (AA_EXEC_MOD_0 | AA_EXEC_MOD_1) + +#define AA_EXEC_MODIFIERS (AA_EXEC_MOD_0 | AA_EXEC_MOD_1) + +#define AA_USER_SHIFT 0 +#define AA_OTHER_SHIFT 10 + +#define AA_USER_PERMS (AA_BASE_PERMS << AA_USER_SHIFT) +#define AA_OTHER_PERMS (AA_BASE_PERMS << AA_OTHER_SHIFT) + +#define AA_FILE_PERMS (AA_USER_PERMS | AA_OTHER_PERMS) + +#define AA_LINK_BITS ((AA_MAY_LINK << AA_USER_SHIFT) | \ + (AA_MAY_LINK << AA_OTHER_SHIFT)) + +#define AA_USER_EXEC (MAY_EXEC << AA_USER_SHIFT) +#define AA_OTHER_EXEC (MAY_EXEC << AA_OTHER_SHIFT) + +#define AA_USER_EXEC_MODS (AA_EXEC_MODIFIERS << AA_USER_SHIFT) +#define AA_OTHER_EXEC_MODS (AA_EXEC_MODIFIERS << AA_OTHER_SHIFT) + +#define AA_USER_EXEC_UNSAFE (AA_EXEC_UNSAFE << AA_USER_SHIFT) +#define AA_OTHER_EXEC_UNSAFE (AA_EXEC_UNSAFE << AA_OTHER_SHIFT) + +#define AA_EXEC_BITS (AA_USER_EXEC | AA_OTHER_EXEC) + +#define AA_ALL_EXEC_MODS (AA_USER_EXEC_MODS | \ + AA_OTHER_EXEC_MODS) + +/* shared permissions that are not duplicated in user:group:other */ +#define AA_CHANGE_PROFILE 0x40000000 + +#define AA_SHARED_PERMS (AA_CHANGE_PROFILE) + +#define AA_VALID_PERM_MASK (AA_FILE_PERMS | AA_SHARED_PERMS) + +#define AA_SECURE_EXEC_NEEDED 1 + +/* Control parameters (0 or 1), settable thru module/boot flags or + * via /sys/kernel/security/apparmor/control */ +extern int apparmor_complain; +extern int apparmor_debug; +extern int apparmor_audit; +extern int apparmor_logsyscall; +extern unsigned int apparmor_path_max; + +#define PROFILE_COMPLAIN(_profile) \ + (apparmor_complain == 1 || ((_profile) && (_profile)->flags.complain)) + +#define APPARMOR_COMPLAIN(_cxt) \ + (apparmor_complain == 1 || \ + ((_cxt) && (_cxt)->profile && (_cxt)->profile->flags.complain)) + +#define PROFILE_AUDIT(_profile) \ + (apparmor_audit == 1 || ((_profile) && (_profile)->flags.audit)) + +#define APPARMOR_AUDIT(_cxt) \ + (apparmor_audit == 1 || \ + ((_cxt) && (_cxt)->profile && (_cxt)->profile->flags.audit)) + +/* + * DEBUG remains global (no per profile flag) since it is mostly used in sysctl + * which is not related to profile accesses. + */ + +#define AA_DEBUG(fmt, args...) \ + do { \ + if (apparmor_debug) \ + printk(KERN_DEBUG "AppArmor: " fmt, ##args); \ + } while (0) + +#define AA_ERROR(fmt, args...) printk(KERN_ERR "AppArmor: " fmt, ##args) + +struct aa_profile; + +/* struct aa_namespace - namespace for a set of profiles + * @name: the name of the namespace + * @list: list the namespace is on + * @profiles: list of profile in the namespace + * @profile_count: the number of profiles in the namespace + * @null_complain_profile: special profile used for learning in this namespace + * @count: reference count on the namespace + * @lock: lock for adding/removing profile to the namespace + */ +struct aa_namespace { + char *name; + struct list_head list; + struct list_head profiles; + int profile_count; + struct aa_profile *null_complain_profile; + + struct kref count; + rwlock_t lock; +}; + +/* struct aa_profile - basic confinement data + * @name: the profiles name + * @list: list this profile is on + * @ns: namespace the profile is in + * @file_rules: dfa containing the profiles file rules + * @flags: flags controlling profile behavior + * @isstale: flag indicating if profile is stale + * @capabilities: capabilities granted by the process + * @count: reference count of the profile + * + * The AppArmor profile contains the basic confinement data. Each profile + * has a name, and all nonstale profile are in a profile namespace. + * + * The task_contexts list and the isstale flag are protected by the + * profile lock. + * + * If a task context is moved between two profiles, we first need to grab + * both profile locks. lock_both_profiles() does that in a deadlock-safe + * way. + */ +struct aa_profile { + char *name; + struct list_head list; + struct aa_namespace *ns; + + struct aa_dfa *file_rules; + struct { + int complain; + int audit; + } flags; + int isstale; + + kernel_cap_t capabilities; + struct kref count; + struct list_head task_contexts; + spinlock_t lock; + unsigned long int_flags; + u16 network_families[AF_MAX]; +}; + +extern struct list_head profile_ns_list; +extern rwlock_t profile_ns_list_lock; +extern struct mutex aa_interface_lock; + +/** + * struct aa_task_context - primary label for confined tasks + * @profile: the current profile + * @previous_profile: profile the task may return to + * @cookie: magic value the task must know for returning to @previous_profile + * @list: list this aa_task_context is on + * @task: task that the aa_task_context confines + * @rcu: rcu head used when freeing the aa_task_context + * @caps_logged: caps that have previously generated log entries + * + * Contains the task's current profile (which could change due to + * change_hat). Plus the hat_magic needed during change_hat. + */ +struct aa_task_context { + struct aa_profile *profile; + struct aa_profile *previous_profile; + u64 cookie; + struct list_head list; + struct task_struct *task; + struct rcu_head rcu; + kernel_cap_t caps_logged; +}; + +extern struct aa_namespace *default_namespace; + +/* aa_audit - AppArmor auditing structure + * Structure is populated by access control code and passed to aa_audit which + * provides for a single point of logging. + */ + +struct aa_audit { + const char *operation; + gfp_t gfp_mask; + const char *info; + const char *name; + const char *name2; + const char *name3; + int request_mask, denied_mask; + struct iattr *iattr; + pid_t task, parent; + int family, type, protocol; + int error_code; +}; + +/* Flags for the permission check functions */ +#define AA_CHECK_FD 1 /* coming from a file descriptor */ +#define AA_CHECK_DIR 2 /* file type is directory */ + +/* lock subtypes so lockdep does not raise false dependencies */ +enum aa_lock_class { + aa_lock_normal, + aa_lock_nested, + aa_lock_task_release +}; + +/* main.c */ +extern int alloc_default_namespace(void); +extern void free_default_namespace(void); +extern int aa_audit_message(struct aa_profile *profile, struct aa_audit *sa, + int type); +void aa_audit_hint(struct aa_profile *profile, struct aa_audit *sa); +void aa_audit_status(struct aa_profile *profile, struct aa_audit *sa); +int aa_audit_reject(struct aa_profile *profile, struct aa_audit *sa); +extern int aa_audit_syscallreject(struct aa_profile *profile, gfp_t gfp, + const char *); +extern int aa_audit(struct aa_profile *profile, struct aa_audit *); + +extern int aa_attr(struct aa_profile *profile, struct dentry *dentry, + struct vfsmount *mnt, struct iattr *iattr); +extern int aa_perm_xattr(struct aa_profile *profile, const char *operation, + struct dentry *dentry, struct vfsmount *mnt, + int mask, int check); +extern int aa_capability(struct aa_task_context *cxt, int cap); +extern int aa_perm(struct aa_profile *profile, const char *operation, + struct dentry *dentry, struct vfsmount *mnt, int mask, + int check); +extern int aa_perm_dir(struct aa_profile *profile, const char *operation, + struct dentry *dentry, struct vfsmount *mnt, + int mask); +extern int aa_perm_path(struct aa_profile *, const char *operation, + const char *name, int mask, uid_t uid); +extern int aa_link(struct aa_profile *profile, + struct dentry *link, struct vfsmount *link_mnt, + struct dentry *target, struct vfsmount *target_mnt); +extern int aa_clone(struct task_struct *task); +extern int aa_register(struct linux_binprm *bprm); +extern void aa_release(struct task_struct *task); +extern int aa_change_hat(const char *id, u64 hat_magic); +extern int aa_change_profile(const char *ns_name, const char *name); +extern struct aa_profile *__aa_replace_profile(struct task_struct *task, + struct aa_profile *profile); +extern struct aa_task_context *lock_task_and_profiles(struct task_struct *task, + struct aa_profile *profile); +extern void unlock_task_and_profiles(struct task_struct *task, + struct aa_task_context *cxt, + struct aa_profile *profile); +extern void aa_change_task_context(struct task_struct *task, + struct aa_task_context *new_cxt, + struct aa_profile *profile, u64 cookie, + struct aa_profile *previous_profile); +extern int aa_may_ptrace(struct aa_task_context *cxt, + struct aa_profile *tracee); +extern int aa_net_perm(struct aa_profile *profile, char *operation, + int family, int type, int protocol); +extern int aa_revalidate_sk(struct sock *sk, char *operation); + +/* lsm.c */ +extern int apparmor_initialized; +extern void info_message(const char *str); +extern void apparmor_disable(void); + +/* list.c */ +extern struct aa_namespace *__aa_find_namespace(const char *name, + struct list_head *list); +extern struct aa_profile *__aa_find_profile(const char *name, + struct list_head *list); +extern void aa_profile_ns_list_release(void); + +/* module_interface.c */ +extern ssize_t aa_add_profile(void *, size_t); +extern ssize_t aa_replace_profile(void *, size_t); +extern ssize_t aa_remove_profile(char *, size_t); +extern struct aa_namespace *alloc_aa_namespace(char *name); +extern void free_aa_namespace(struct aa_namespace *ns); +extern void free_aa_namespace_kref(struct kref *kref); +extern struct aa_profile *alloc_aa_profile(void); +extern void free_aa_profile(struct aa_profile *profile); +extern void free_aa_profile_kref(struct kref *kref); +extern void aa_unconfine_tasks(struct aa_profile *profile); + +/* procattr.c */ +extern int aa_getprocattr(struct aa_profile *profile, char **string, + unsigned *len); +extern int aa_setprocattr_changehat(char *args); +extern int aa_setprocattr_changeprofile(char *args); +extern int aa_setprocattr_setprofile(struct task_struct *task, char *args); + +/* apparmorfs.c */ +extern int create_apparmorfs(void); +extern void destroy_apparmorfs(void); + +/* match.c */ +extern struct aa_dfa *aa_match_alloc(void); +extern void aa_match_free(struct aa_dfa *dfa); +extern int unpack_dfa(struct aa_dfa *dfa, void *blob, size_t size); +extern int verify_dfa(struct aa_dfa *dfa); +extern unsigned int aa_dfa_match(struct aa_dfa *dfa, const char *str); +extern unsigned int aa_dfa_next_state(struct aa_dfa *dfa, unsigned int start, + const char *str); +extern unsigned int aa_match_state(struct aa_dfa *dfa, unsigned int start, + const char *str, unsigned int *final); +extern unsigned int aa_dfa_null_transition(struct aa_dfa *dfa, + unsigned int start); + +#endif /* __APPARMOR_H */ --- linux-2.6.24.orig/security/apparmor/match.h +++ linux-2.6.24/security/apparmor/match.h @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor submodule (match) prototypes + */ + +#ifndef __MATCH_H +#define __MATCH_H + +#define DFA_START 1 + +/** + * The format used for transition tables is based on the GNU flex table + * file format (--tables-file option; see Table File Format in the flex + * info pages and the flex sources for documentation). The magic number + * used in the header is 0x1B5E783D insted of 0xF13C57B1 though, because + * the YY_ID_CHK (check) and YY_ID_DEF (default) tables are used + * slightly differently (see the apparmor-parser package). + */ + +#define YYTH_MAGIC 0x1B5E783D + +struct table_set_header { + u32 th_magic; /* YYTH_MAGIC */ + u32 th_hsize; + u32 th_ssize; + u16 th_flags; + char th_version[]; +}; + +#define YYTD_ID_ACCEPT 1 +#define YYTD_ID_BASE 2 +#define YYTD_ID_CHK 3 +#define YYTD_ID_DEF 4 +#define YYTD_ID_EC 5 +#define YYTD_ID_META 6 +#define YYTD_ID_NXT 8 + + +#define YYTD_DATA8 1 +#define YYTD_DATA16 2 +#define YYTD_DATA32 4 + +struct table_header { + u16 td_id; + u16 td_flags; + u32 td_hilen; + u32 td_lolen; + char td_data[]; +}; + +#define DEFAULT_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_DEF - 1]->td_data)) +#define BASE_TABLE(DFA) ((u32 *)((DFA)->tables[YYTD_ID_BASE - 1]->td_data)) +#define NEXT_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_NXT - 1]->td_data)) +#define CHECK_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_CHK - 1]->td_data)) +#define EQUIV_TABLE(DFA) ((u8 *)((DFA)->tables[YYTD_ID_EC - 1]->td_data)) +#define ACCEPT_TABLE(DFA) ((u32 *)((DFA)->tables[YYTD_ID_ACCEPT - 1]->td_data)) + +struct aa_dfa { + struct table_header *tables[YYTD_ID_NXT]; +}; + +#define byte_to_byte(X) (X) + +#define UNPACK_ARRAY(TABLE, BLOB, LEN, TYPE, NTOHX) \ + do { \ + typeof(LEN) __i; \ + TYPE *__t = (TYPE *) TABLE; \ + TYPE *__b = (TYPE *) BLOB; \ + for (__i = 0; __i < LEN; __i++) { \ + __t[__i] = NTOHX(__b[__i]); \ + } \ + } while (0) + +static inline size_t table_size(size_t len, size_t el_size) +{ + return ALIGN(sizeof(struct table_header) + len * el_size, 8); +} + +#endif /* __MATCH_H */ --- linux-2.6.24.orig/security/apparmor/Kconfig +++ linux-2.6.24/security/apparmor/Kconfig @@ -0,0 +1,42 @@ +config SECURITY_APPARMOR + bool "AppArmor support" + depends on SECURITY + select AUDIT + help + This enables the AppArmor security module. + Required userspace tools (if they are not included in your + distribution) and further information may be found at + + + If you are unsure how to answer this question, answer N. + +config SECURITY_APPARMOR_BOOTPARAM_VALUE + int "AppArmor boot parameter default value" + depends on SECURITY_APPARMOR + range 0 1 + default 1 + help + This option sets the default value for the kernel parameter + 'apparmor', which allows AppArmor to be enabled or disabled + at boot. If this option is set to 0 (zero), the AppArmor + kernel parameter will default to 0, disabling AppArmor at + bootup. If this option is set to 1 (one), the AppArmor + kernel parameter will default to 1, enabling AppArmor at + bootup. + + If you are unsure how to answer this question, answer 1. + +config SECURITY_APPARMOR_DISABLE + bool "AppArmor runtime disable" + depends on SECURITY_APPARMOR + default n + help + This option enables writing to a apparmorfs node 'disable', which + allows AppArmor to be disabled at runtime prior to the policy load. + AppArmor will then remain disabled until the next boot. + This option is similar to the apparmor.enabled=0 boot parameter, + but is to support runtime disabling of AppArmor, e.g. from + /sbin/init, for portability across platforms where boot + parameters are difficult to employ. + + If you are unsure how to answer this question, answer N. --- linux-2.6.24.orig/security/apparmor/procattr.c +++ linux-2.6.24/security/apparmor/procattr.c @@ -0,0 +1,194 @@ +/* + * Copyright (C) 1998-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor /proc/pid/attr handling + */ + +#include "apparmor.h" +#include "inline.h" + +int aa_getprocattr(struct aa_profile *profile, char **string, unsigned *len) +{ + char *str; + + if (profile) { + const char *mode_str = PROFILE_COMPLAIN(profile) ? + " (complain)" : " (enforce)"; + int mode_len, name_len, ns_len = 0; + + mode_len = strlen(mode_str); + name_len = strlen(profile->name); + if (profile->ns != default_namespace) + ns_len = strlen(profile->ns->name) + 1; + *len = mode_len + ns_len + name_len + 1; + str = kmalloc(*len, GFP_ATOMIC); + if (!str) + return -ENOMEM; + + if (ns_len) { + memcpy(str, profile->ns->name, ns_len - 1); + str += ns_len - 1; + *str++ = ':'; + } + memcpy(str, profile->name, name_len); + str += name_len; + memcpy(str, mode_str, mode_len); + str += mode_len; + *str++ = '\n'; + str -= *len; + } else { + const char *unconfined_str = "unconfined\n"; + + *len = strlen(unconfined_str); + str = kmalloc(*len, GFP_ATOMIC); + if (!str) + return -ENOMEM; + + memcpy(str, unconfined_str, *len); + } + *string = str; + + return 0; +} + +static char *split_token_from_name(const char *op, char *args, u64 *cookie) +{ + char *name; + + *cookie = simple_strtoull(args, &name, 16); + if ((name == args) || *name != '^') { + AA_ERROR("%s: Invalid input '%s'", op, args); + return ERR_PTR(-EINVAL); + } + + name++; /* skip ^ */ + if (!*name) + name = NULL; + return name; +} + +int aa_setprocattr_changehat(char *args) +{ + char *hat; + u64 cookie; + + hat = split_token_from_name("change_hat", args, &cookie); + if (IS_ERR(hat)) + return PTR_ERR(hat); + + if (!hat && !cookie) { + AA_ERROR("change_hat: Invalid input, NULL hat and NULL magic"); + return -EINVAL; + } + + AA_DEBUG("%s: Magic 0x%llx Hat '%s'\n", + __FUNCTION__, cookie, hat ? hat : NULL); + + return aa_change_hat(hat, cookie); +} + +int aa_setprocattr_changeprofile(char *args) +{ + char *name = args, *ns_name = NULL; + + if (name[0] != '/') { + char *split = strchr(name, ':'); + if (split) { + *split = 0; + ns_name = name; + name = split + 1; + } + } + + return aa_change_profile(ns_name, name); +} + +int aa_setprocattr_setprofile(struct task_struct *task, char *args) +{ + struct aa_profile *old_profile, *new_profile; + struct aa_namespace *ns; + struct aa_audit sa; + char *name, *ns_name = NULL; + + memset(&sa, 0, sizeof(sa)); + sa.operation = "profile_set"; + sa.gfp_mask = GFP_KERNEL; + sa.task = task->pid; + + AA_DEBUG("%s: current %d\n", + __FUNCTION__, current->pid); + + name = args; + if (args[0] != '/') { + char *split = strchr(args, ':'); + if (split) { + *split = 0; + ns_name = args; + name = split + 1; + } + } + if (ns_name) + ns = aa_find_namespace(ns_name); + else + ns = aa_get_namespace(default_namespace); + if (!ns) { + sa.name = ns_name; + sa.info = "unknown namespace"; + aa_audit_reject(NULL, &sa); + aa_put_namespace(ns); + return -EINVAL; + } + +repeat: + if (strcmp(name, "unconfined") == 0) + new_profile = NULL; + else { + new_profile = aa_find_profile(ns, name); + if (!new_profile) { + sa.name = ns_name; + sa.name2 = name; + sa.info = "unknown profile"; + aa_audit_reject(NULL, &sa); + aa_put_namespace(ns); + return -EINVAL; + } + } + + old_profile = __aa_replace_profile(task, new_profile); + if (IS_ERR(old_profile)) { + int error; + + aa_put_profile(new_profile); + error = PTR_ERR(old_profile); + if (error == -ESTALE) + goto repeat; + aa_put_namespace(ns); + return error; + } + + if (new_profile) { + sa.name = ns_name; + sa.name2 = name; + sa.name3 = old_profile ? old_profile->name : + "unconfined"; + aa_audit_status(NULL, &sa); + } else { + if (old_profile) { + sa.name = "unconfined"; + sa.name2 = old_profile->name; + aa_audit_status(NULL, &sa); + } else { + sa.info = "task is unconfined"; + aa_audit_status(NULL, &sa); + } + } + aa_put_namespace(ns); + aa_put_profile(old_profile); + aa_put_profile(new_profile); + return 0; +} --- linux-2.6.24.orig/security/apparmor/Makefile +++ linux-2.6.24/security/apparmor/Makefile @@ -0,0 +1,18 @@ +# Makefile for AppArmor Linux Security Module +# +obj-$(CONFIG_SECURITY_APPARMOR) += apparmor.o + +apparmor-y := main.o list.o procattr.o lsm.o apparmorfs.o \ + module_interface.o match.o + +quiet_cmd_make-caps = GEN $@ +cmd_make-caps = sed -n -e "/CAP_FS_MASK/d" -e "s/^\#define[ \\t]\\+CAP_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z > $@ + +quiet_cmd_make-af = GEN $@ +cmd_make-af = sed -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e "s/^\#define[ \\t]\\+AF_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z > $@ + +$(obj)/main.o : $(obj)/capability_names.h $(obj)/af_names.h +$(obj)/capability_names.h : $(srctree)/include/linux/capability.h + $(call cmd,make-caps) +$(obj)/af_names.h : $(srctree)/include/linux/socket.h + $(call cmd,make-af) --- linux-2.6.24.orig/security/apparmor/locking.txt +++ linux-2.6.24/security/apparmor/locking.txt @@ -0,0 +1,68 @@ +Locking in AppArmor +=================== + +Lock hierarchy: + + aa_interface_lock + profile_list_lock + aa_profile->lock + task_lock() + + +Which lock protects what? + + /-----------------------+-------------------------------\ + | Variable | Lock | + >-----------------------+-------------------------------< + | profile_list | profile_list_lock | + +-----------------------+-------------------------------+ + | aa_profile | (reference count) | + +-----------------------+-------------------------------+ + | aa_profile-> | aa_profile->lock | + | isstale, | | + | task_contexts | | + +-----------------------+-------------------------------+ + | task_struct->security | read: RCU | + | | write: task_lock() | + +-----------------------+-------------------------------+ + | aa_profile->sub | handle on the profile (list | + | | is never modified) | + \-----------------------+-------------------------------/ + +(Obviously, the list_heads embedded in data structures are always +protected with the lock that also protects the list.) + +When moving a task context from one profile to another, we grab both +profile locks with lock_both_profiles(). This ensures that both locks +are always taken in the same order, and so we won't deadlock. + +Since task_struct->security is RCU protected the aa_task_struct it +references is only guarenteed to exist for the rcu cycle. Where +aa_task_context->profile is needed in blocking operations the +profile's reference count is incremented and the profile reference +is used. + +Profiles on profile_list are never stale: when a profile becomes stale, +it is removed from profile_list at the same time (under profile_list_lock +and aa_profile->lock). + +The aa_interface_lock is taken whenever user-space modifies the profile +list, and can sleep. This ensures that profile loading/replacement/removal +won't race with itself. We release the profile_list_lock as soon as +possible to avoid stalling exec during profile loading/replacement/removal. + +AppArmor uses lock subtyping to avoid false positives from lockdep. The +profile lock is often taken nested, but it is guaranteed to be in a lock +safe order and not the same lock when done, so it is safe. + +A third lock type (aa_lock_task_release) is given to the profile lock +when it is taken in soft irq context during task release (aa_release). +This is to avoid a false positive between the task lock and the profile +lock. In task context the profile lock wraps the task lock with irqs +off, but the kernel takes the task lock with irqs enabled. This won't +result in a deadlock because for a deadlock to occur the kernel must +take dead task A's lock (irqs on), the rcu callback hook freeing +dead task A must be run and AppArmor must be changing the profile on +dead task A. The kernel should not be taking a dead task's task_lock +at the same time the task is being freed by task rcu cleanup other wise +the task would not be out of its quiescent period. --- linux-2.6.24.orig/security/apparmor/list.c +++ linux-2.6.24/security/apparmor/list.c @@ -0,0 +1,174 @@ +/* + * Copyright (C) 1998-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor Profile List Management + */ + +#include +#include "apparmor.h" +#include "inline.h" + +/* list of profile namespaces and lock */ +LIST_HEAD(profile_ns_list); +rwlock_t profile_ns_list_lock = RW_LOCK_UNLOCKED; + +/** + * __aa_find_namespace - look up a profile namespace on the namespace list + * @name: name of namespace to find + * @head: list to search + * + * Returns a pointer to the namespace on the list, or NULL if no namespace + * called @name exists. The caller must hold the profile_ns_list_lock. + */ +struct aa_namespace *__aa_find_namespace(const char *name, + struct list_head *head) +{ + struct aa_namespace *ns; + + list_for_each_entry(ns, head, list) { + if (!strcmp(ns->name, name)) + return ns; + } + + return NULL; +} + +/** + * __aa_find_profile - look up a profile on the profile list + * @name: name of profile to find + * @head: list to search + * + * Returns a pointer to the profile on the list, or NULL if no profile + * called @name exists. The caller must hold the profile_list_lock. + */ +struct aa_profile *__aa_find_profile(const char *name, struct list_head *head) +{ + struct aa_profile *profile; + + list_for_each_entry(profile, head, list) { + if (!strcmp(profile->name, name)) + return profile; + } + + return NULL; +} + +static void aa_profile_list_release(struct list_head *head) +{ + struct aa_profile *profile, *tmp; + list_for_each_entry_safe(profile, tmp, head, list) { + /* Remove the profile from each task context it is on. */ + lock_profile(profile); + profile->isstale = 1; + aa_unconfine_tasks(profile); + list_del_init(&profile->list); + unlock_profile(profile); + aa_put_profile(profile); + } +} + +/** + * aa_profilelist_release - Remove all profiles from profile_list + */ +void aa_profile_ns_list_release(void) +{ + struct aa_namespace *ns, *tmp; + + /* Remove and release all the profiles on namespace profile lists. */ + write_lock(&profile_ns_list_lock); + list_for_each_entry_safe(ns, tmp, &profile_ns_list, list) { + write_lock(&ns->lock); + aa_profile_list_release(&ns->profiles); + list_del_init(&ns->list); + write_unlock(&ns->lock); + aa_put_namespace(ns); + } + write_unlock(&profile_ns_list_lock); +} + + +static struct aa_profile *next_profile(struct aa_profile *profile) +{ + struct aa_profile *next = profile; + struct aa_namespace *ns; + + list_for_each_entry_continue(next, &profile->ns->profiles, list) + return next; + + ns = profile->ns; + read_unlock(&ns->lock); + list_for_each_entry_continue(ns, &profile_ns_list, list) { + read_lock(&ns->lock); + list_for_each_entry(profile, &ns->profiles, list) + return profile; + read_unlock(&ns->lock); + } + return NULL; +} + +static void *p_start(struct seq_file *f, loff_t *pos) +{ + struct aa_namespace *ns; + loff_t l = *pos; + + read_lock(&profile_ns_list_lock); + if (!list_empty(&profile_ns_list)) { + struct aa_profile *profile = NULL; + ns = list_first_entry(&profile_ns_list, typeof(*ns), list); + read_lock(&ns->lock); + if (!list_empty(&ns->profiles)) + profile = list_first_entry(&ns->profiles, + typeof(*profile), list); + else + read_unlock(&ns->lock); + for ( ; profile && l > 0; l--) + profile = next_profile(profile); + return profile; + } + return NULL; +} + +static void *p_next(struct seq_file *f, void *p, loff_t *pos) +{ + struct aa_profile *profile = (struct aa_profile *) p; + + (*pos)++; + profile = next_profile(profile); + + return profile; +} + +static void p_stop(struct seq_file *f, void *p) +{ + struct aa_profile *profile = (struct aa_profile *) p; + + if (profile) + read_unlock(&profile->ns->lock); + read_unlock(&profile_ns_list_lock); +} + +static int seq_show_profile(struct seq_file *f, void *p) +{ + struct aa_profile *profile = (struct aa_profile *)p; + + if (profile->ns == default_namespace) + seq_printf(f, "%s (%s)\n", profile->name, + PROFILE_COMPLAIN(profile) ? "complain" : "enforce"); + else + seq_printf(f, ":%s:%s (%s)\n", profile->ns->name, profile->name, + PROFILE_COMPLAIN(profile) ? "complain" : "enforce"); + return 0; +} + +/* Used in apparmorfs.c */ +struct seq_operations apparmorfs_profiles_op = { + .start = p_start, + .next = p_next, + .stop = p_stop, + .show = seq_show_profile, +}; --- linux-2.6.24.orig/security/apparmor/lsm.c +++ linux-2.6.24/security/apparmor/lsm.c @@ -0,0 +1,1010 @@ +/* + * Copyright (C) 1998-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor LSM interface + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "apparmor.h" +#include "inline.h" + +/* Flag indicating whether initialization completed */ +int apparmor_initialized = 0; + +static int param_set_aabool(const char *val, struct kernel_param *kp); +static int param_get_aabool(char *buffer, struct kernel_param *kp); +#define param_check_aabool(name, p) __param_check(name, p, int) + +static int param_set_aauint(const char *val, struct kernel_param *kp); +static int param_get_aauint(char *buffer, struct kernel_param *kp); +#define param_check_aauint(name, p) __param_check(name, p, int) + +/* Flag values, also controllable via /sys/module/apparmor/parameters + * We define special types as we want to do additional mediation. + * + * Complain mode -- in complain mode access failures result in auditing only + * and task is allowed access. audit events are processed by userspace to + * generate policy. Default is 'enforce' (0). + * Value is also togglable per profile and referenced when global value is + * enforce. + */ +int apparmor_complain = 0; +module_param_named(complain, apparmor_complain, aabool, S_IRUSR | S_IWUSR); +MODULE_PARM_DESC(apparmor_complain, "Toggle AppArmor complain mode"); + +/* Debug mode */ +int apparmor_debug = 0; +module_param_named(debug, apparmor_debug, aabool, S_IRUSR | S_IWUSR); +MODULE_PARM_DESC(apparmor_debug, "Toggle AppArmor debug mode"); + +/* Audit mode */ +int apparmor_audit = 0; +module_param_named(audit, apparmor_audit, aabool, S_IRUSR | S_IWUSR); +MODULE_PARM_DESC(apparmor_audit, "Toggle AppArmor audit mode"); + +/* Syscall logging mode */ +int apparmor_logsyscall = 0; +module_param_named(logsyscall, apparmor_logsyscall, aabool, S_IRUSR | S_IWUSR); +MODULE_PARM_DESC(apparmor_logsyscall, "Toggle AppArmor logsyscall mode"); + +/* Maximum pathname length before accesses will start getting rejected */ +unsigned int apparmor_path_max = 2 * PATH_MAX; +module_param_named(path_max, apparmor_path_max, aauint, S_IRUSR | S_IWUSR); +MODULE_PARM_DESC(apparmor_path_max, "Maximum pathname length allowed"); + +/* Boot time disable flag */ +#ifdef CONFIG_SECURITY_APPARMOR_DISABLE +#define AA_ENABLED_PERMS 0600 +#else +#define AA_ENABLED_PERMS 0400 +#endif +static int param_set_aa_enabled(const char *val, struct kernel_param *kp); +unsigned int apparmor_enabled = CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE; +module_param_call(enabled, param_set_aa_enabled, param_get_aauint, + &apparmor_enabled, AA_ENABLED_PERMS); +MODULE_PARM_DESC(apparmor_enabled, "Enable/Disable Apparmor on boot"); + + +static int param_set_aabool(const char *val, struct kernel_param *kp) +{ + if (aa_task_context(current)) + return -EPERM; + return param_set_bool(val, kp); +} + +static int param_get_aabool(char *buffer, struct kernel_param *kp) +{ + if (aa_task_context(current)) + return -EPERM; + return param_get_bool(buffer, kp); +} + +static int param_set_aauint(const char *val, struct kernel_param *kp) +{ + if (aa_task_context(current)) + return -EPERM; + return param_set_uint(val, kp); +} + +static int param_get_aauint(char *buffer, struct kernel_param *kp) +{ + if (aa_task_context(current)) + return -EPERM; + return param_get_uint(buffer, kp); +} + +/* allow run time disabling of apparmor */ +static int param_set_aa_enabled(const char *val, struct kernel_param *kp) +{ + char *endp; + unsigned long l; + + if (!apparmor_initialized) { + apparmor_enabled = 0; + return 0; + } + + if (aa_task_context(current)) + return -EPERM; + + if (!apparmor_enabled) + return -EINVAL; + + if (!val) + return -EINVAL; + + l = simple_strtoul(val, &endp, 0); + if (endp == val || l != 0) + return -EINVAL; + + apparmor_enabled = 0; + apparmor_disable(); + return 0; +} + +static int aa_reject_syscall(struct task_struct *task, gfp_t flags, + const char *name) +{ + struct aa_profile *profile = aa_get_profile(task); + int error = 0; + + if (profile) { + error = aa_audit_syscallreject(profile, flags, name); + aa_put_profile(profile); + } + + return error; +} + +static int apparmor_ptrace(struct task_struct *parent, + struct task_struct *child) +{ + struct aa_task_context *cxt; + int error = 0; + + /* + * parent can ptrace child when + * - parent is unconfined + * - parent & child are in the same namespace && + * - parent is in complain mode + * - parent and child are confined by the same profile + * - parent profile has CAP_SYS_PTRACE + */ + + rcu_read_lock(); + cxt = aa_task_context(parent); + if (cxt) { + if (parent->nsproxy != child->nsproxy) { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = "ptrace"; + sa.gfp_mask = GFP_ATOMIC; + sa.parent = parent->pid; + sa.task = child->pid; + sa.info = "different namespaces"; + aa_audit_reject(cxt->profile, &sa); + error = -EPERM; + } else { + struct aa_task_context *child_cxt = + aa_task_context(child); + + error = aa_may_ptrace(cxt, child_cxt ? + child_cxt->profile : NULL); + if (PROFILE_COMPLAIN(cxt->profile)) { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = "ptrace"; + sa.gfp_mask = GFP_ATOMIC; + sa.parent = parent->pid; + sa.task = child->pid; + aa_audit_hint(cxt->profile, &sa); + } + } + } + rcu_read_unlock(); + + return error; +} + +static int apparmor_capable(struct task_struct *task, int cap) +{ + int error; + + /* cap_capable returns 0 on success, else -EPERM */ + error = cap_capable(task, cap); + + if (!error) { + struct aa_task_context *cxt; + + rcu_read_lock(); + cxt = aa_task_context(task); + if (cxt) + error = aa_capability(cxt, cap); + rcu_read_unlock(); + } + + return error; +} + +static int apparmor_sysctl(struct ctl_table *table, int op) +{ + struct aa_profile *profile = aa_get_profile(current); + int error = 0; + + if (profile) { + char *buffer, *name; + int mask; + + mask = 0; + if (op & 4) + mask |= MAY_READ; + if (op & 2) + mask |= MAY_WRITE; + + error = -ENOMEM; + buffer = (char*)__get_free_page(GFP_KERNEL); + if (!buffer) + goto out; + name = sysctl_pathname(table, buffer, PAGE_SIZE); + if (name && name - buffer >= 5) { + name -= 5; + memcpy(name, "/proc", 5); + error = aa_perm_path(profile, "sysctl", name, mask, 0); + } + free_page((unsigned long)buffer); + } + +out: + aa_put_profile(profile); + return error; +} + +static int apparmor_bprm_set_security(struct linux_binprm *bprm) +{ + /* handle capability bits with setuid, etc */ + cap_bprm_set_security(bprm); + /* already set based on script name */ + if (bprm->sh_bang) + return 0; + return aa_register(bprm); +} + +static int apparmor_bprm_secureexec(struct linux_binprm *bprm) +{ + int ret = cap_bprm_secureexec(bprm); + + if (!ret && (unsigned long)bprm->security & AA_SECURE_EXEC_NEEDED) { + AA_DEBUG("%s: secureexec required for %s\n", + __FUNCTION__, bprm->filename); + ret = 1; + } + + return ret; +} + +static int apparmor_sb_mount(char *dev_name, struct nameidata *nd, char *type, + unsigned long flags, void *data) +{ + return aa_reject_syscall(current, GFP_KERNEL, "mount"); +} + +static int apparmor_umount(struct vfsmount *mnt, int flags) +{ + return aa_reject_syscall(current, GFP_KERNEL, "umount"); +} + +static int apparmor_inode_mkdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mask) +{ + struct aa_profile *profile; + int error = 0; + + if (!mnt || !mediated_filesystem(dir)) + goto out; + + profile = aa_get_profile(current); + + if (profile) + error = aa_perm_dir(profile, "inode_mkdir", dentry, mnt, + MAY_WRITE); + + aa_put_profile(profile); + +out: + return error; +} + +static int apparmor_inode_rmdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt) +{ + struct aa_profile *profile; + int error = 0; + + if (!mnt || !mediated_filesystem(dir)) + goto out; + + profile = aa_get_profile(current); + + if (profile) + error = aa_perm_dir(profile, "inode_rmdir", dentry, mnt, + MAY_WRITE); + + aa_put_profile(profile); + +out: + return error; +} + +static int aa_permission(const char *operation, struct inode *inode, + struct dentry *dentry, struct vfsmount *mnt, + int mask, int check) +{ + int error = 0; + + if (mnt && mediated_filesystem(inode)) { + struct aa_profile *profile; + + profile = aa_get_profile(current); + if (profile) + error = aa_perm(profile, operation, dentry, mnt, mask, + check); + aa_put_profile(profile); + } + return error; +} + +static inline int aa_mask_permissions(int mask) +{ + if (mask & MAY_APPEND) + mask &= (MAY_READ | MAY_APPEND | MAY_EXEC); + else + mask &= (MAY_READ | MAY_WRITE | MAY_EXEC); + return mask; +} + +static int apparmor_inode_create(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mask) +{ + /* FIXME: may move to MAY_APPEND later */ + return aa_permission("inode_create", dir, dentry, mnt, MAY_WRITE, 0); +} + +static int apparmor_inode_link(struct dentry *old_dentry, + struct vfsmount *old_mnt, struct inode *dir, + struct dentry *new_dentry, + struct vfsmount *new_mnt) +{ + int error = 0; + struct aa_profile *profile; + + if (!old_mnt || !new_mnt || !mediated_filesystem(dir)) + goto out; + + profile = aa_get_profile(current); + + if (profile) + error = aa_link(profile, new_dentry, new_mnt, + old_dentry, old_mnt); + + aa_put_profile(profile); + +out: + return error; +} + +static int apparmor_inode_unlink(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt) +{ + int check = 0; + + if (S_ISDIR(dentry->d_inode->i_mode)) + check |= AA_CHECK_DIR; + return aa_permission("inode_unlink", dir, dentry, mnt, MAY_WRITE, + check); +} + +static int apparmor_inode_symlink(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, const char *old_name) +{ + return aa_permission("inode_symlink", dir, dentry, mnt, MAY_WRITE, 0); +} + +static int apparmor_inode_mknod(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode, dev_t dev) +{ + return aa_permission("inode_mknod", dir, dentry, mnt, MAY_WRITE, 0); +} + +static int apparmor_inode_rename(struct inode *old_dir, + struct dentry *old_dentry, + struct vfsmount *old_mnt, + struct inode *new_dir, + struct dentry *new_dentry, + struct vfsmount *new_mnt) +{ + struct aa_profile *profile; + int error = 0; + + if ((!old_mnt && !new_mnt) || !mediated_filesystem(old_dir)) + goto out; + + profile = aa_get_profile(current); + + if (profile) { + struct inode *inode = old_dentry->d_inode; + int check = 0; + + if (inode && S_ISDIR(inode->i_mode)) + check |= AA_CHECK_DIR; + if (old_mnt) + error = aa_perm(profile, "inode_rename", old_dentry, + old_mnt, MAY_READ | MAY_WRITE, check); + + if (!error && new_mnt) { + error = aa_perm(profile, "inode_rename", new_dentry, + new_mnt, MAY_WRITE, check); + } + } + + aa_put_profile(profile); + +out: + return error; +} + +static int apparmor_inode_permission(struct inode *inode, int mask, + struct nameidata *nd) +{ + int check = 0; + + if (!nd || nd->flags & (LOOKUP_PARENT | LOOKUP_CONTINUE)) + return 0; + mask = aa_mask_permissions(mask); + if (S_ISDIR(inode->i_mode)) { + check |= AA_CHECK_DIR; + /* allow traverse accesses to directories */ + mask &= ~MAY_EXEC; + } + return aa_permission("inode_permission", inode, nd->dentry, nd->mnt, + mask, check); +} + +static int apparmor_inode_setattr(struct dentry *dentry, struct vfsmount *mnt, + struct iattr *iattr) +{ + int error = 0; + + if (!mnt) + goto out; + + if (mediated_filesystem(dentry->d_inode)) { + struct aa_profile *profile; + + profile = aa_get_profile(current); + /* + * Mediate any attempt to change attributes of a file + * (chmod, chown, chgrp, etc) + */ + if (profile) + error = aa_attr(profile, dentry, mnt, iattr); + + aa_put_profile(profile); + } + +out: + return error; +} + +static int aa_xattr_permission(struct dentry *dentry, struct vfsmount *mnt, + const char *operation, int mask, + struct file *file) +{ + int error = 0; + + if (mnt && mediated_filesystem(dentry->d_inode)) { + struct aa_profile *profile = aa_get_profile(current); + int check = file ? AA_CHECK_FD : 0; + + if (profile) + error = aa_perm_xattr(profile, operation, dentry, mnt, + mask, check); + aa_put_profile(profile); + } + + return error; +} + +static int apparmor_inode_setxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, + int flags, struct file *file) +{ + return aa_xattr_permission(dentry, mnt, "xattr set", MAY_WRITE, file); +} + +static int apparmor_inode_getxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file) +{ + return aa_xattr_permission(dentry, mnt, "xattr get", MAY_READ, file); +} + +static int apparmor_inode_listxattr(struct dentry *dentry, struct vfsmount *mnt, + struct file *file) +{ + return aa_xattr_permission(dentry, mnt, "xattr list", MAY_READ, file); +} + +static int apparmor_inode_removexattr(struct dentry *dentry, + struct vfsmount *mnt, char *name, + struct file *file) +{ + return aa_xattr_permission(dentry, mnt, "xattr remove", MAY_WRITE, + file); +} + +static int aa_file_permission(const char *op, struct file *file, int mask) +{ + struct aa_profile *profile; + struct aa_profile *file_profile = (struct aa_profile*)file->f_security; + int error = 0; + + if (!file_profile) + goto out; + + /* + * If this file was opened under a different profile, we + * revalidate the access against the current profile. + */ + profile = aa_get_profile(current); + if (profile && (file_profile != profile || mask & AA_MAY_LOCK)) { + struct dentry *dentry = file->f_dentry; + struct vfsmount *mnt = file->f_vfsmnt; + struct inode *inode = dentry->d_inode; + int check = AA_CHECK_FD; + + /* + * FIXME: We should remember which profiles we revalidated + * against. + */ + if (S_ISDIR(inode->i_mode)) + check |= AA_CHECK_DIR; + error = aa_permission(op, inode, dentry, mnt, mask, check); + } + aa_put_profile(profile); + +out: + return error; +} + +static int apparmor_file_permission(struct file *file, int mask) +{ + return aa_file_permission("file_permission", file, + aa_mask_permissions(mask)); +} + +static inline int apparmor_file_lock (struct file *file, unsigned int cmd) +{ + int mask = AA_MAY_LOCK; + if (cmd == F_WRLCK) + mask |= MAY_WRITE; + return aa_file_permission("file_lock", file, mask); +} + +static int apparmor_file_alloc_security(struct file *file) +{ + struct aa_profile *profile; + + profile = aa_get_profile(current); + if (profile) + file->f_security = profile; + + return 0; +} + +static void apparmor_file_free_security(struct file *file) +{ + struct aa_profile *file_profile = (struct aa_profile*)file->f_security; + + aa_put_profile(file_profile); +} + +static inline int aa_mmap(struct file *file, const char *operation, + unsigned long prot, unsigned long flags) +{ + struct dentry *dentry; + int mask = 0; + + if (!file || !file->f_security) + return 0; + + if (prot & PROT_READ) + mask |= MAY_READ; + /* Private mappings don't require write perms since they don't + * write back to the files */ + if ((prot & PROT_WRITE) && !(flags & MAP_PRIVATE)) + mask |= MAY_WRITE; + if (prot & PROT_EXEC) + mask |= AA_EXEC_MMAP; + + dentry = file->f_dentry; + return aa_permission(operation, dentry->d_inode, dentry, + file->f_vfsmnt, mask, AA_CHECK_FD); +} + +static int apparmor_file_mmap(struct file *file, unsigned long reqprot, + unsigned long prot, unsigned long flags, + unsigned long addr, unsigned long addr_only) +{ + if ((addr < mmap_min_addr) && !capable(CAP_SYS_RAWIO)) { + struct aa_profile *profile = aa_get_profile(current); + if (profile) + /* future control check here */ + return -EACCES; + else + return -EACCES; + aa_put_profile(profile); + } + + return aa_mmap(file, "file_mmap", prot, flags); +} + +static int apparmor_file_mprotect(struct vm_area_struct *vma, + unsigned long reqprot, unsigned long prot) +{ + return aa_mmap(vma->vm_file, "file_mprotect", prot, + !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0); +} + +static int apparmor_task_alloc_security(struct task_struct *task) +{ + return aa_clone(task); +} + +/* + * Called from IRQ context from RCU callback. + */ +static void apparmor_task_free_security(struct task_struct *task) +{ + aa_release(task); +} + +static int apparmor_socket_create(int family, int type, int protocol, int kern) +{ + struct aa_profile *profile; + int error = 0; + + if (kern) + return 0; + + profile = aa_get_profile(current); + if (profile) + error = aa_net_perm(profile, "socket_create", family, + type, protocol); + aa_put_profile(profile); + + return error; +} + +static int apparmor_socket_post_create(struct socket *sock, int family, + int type, int protocol, int kern) +{ + struct sock *sk = sock->sk; + + if (kern) + return 0; + + return aa_revalidate_sk(sk, "socket_post_create"); +} + +static int apparmor_socket_bind(struct socket *sock, + struct sockaddr *address, int addrlen) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_bind"); +} + +static int apparmor_socket_connect(struct socket *sock, + struct sockaddr *address, int addrlen) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_connect"); +} + +static int apparmor_socket_listen(struct socket *sock, int backlog) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_listen"); +} + +static int apparmor_socket_accept(struct socket *sock, struct socket *newsock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_accept"); +} + +static int apparmor_socket_sendmsg(struct socket *sock, + struct msghdr *msg, int size) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_sendmsg"); +} + +static int apparmor_socket_recvmsg(struct socket *sock, + struct msghdr *msg, int size, int flags) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_recvmsg"); +} + +static int apparmor_socket_getsockname(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_getsockname"); +} + +static int apparmor_socket_getpeername(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_getpeername"); +} + +static int apparmor_socket_getsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_getsockopt"); +} + +static int apparmor_socket_setsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_setsockopt"); +} + +static int apparmor_socket_shutdown(struct socket *sock, int how) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(sk, "socket_shutdown"); +} + +static int apparmor_getprocattr(struct task_struct *task, char *name, + char **value) +{ + unsigned len; + int error; + struct aa_profile *profile; + + /* AppArmor only supports the "current" process attribute */ + if (strcmp(name, "current") != 0) + return -EINVAL; + + /* must be task querying itself or admin */ + if (current != task && !capable(CAP_SYS_ADMIN)) + return -EPERM; + + profile = aa_get_profile(task); + error = aa_getprocattr(profile, value, &len); + aa_put_profile(profile); + if (!error) + error = len; + + return error; +} + +static int apparmor_setprocattr(struct task_struct *task, char *name, + void *value, size_t size) +{ + char *command, *args; + int error; + + if (strcmp(name, "current") != 0 || size == 0 || size >= PAGE_SIZE) + return -EINVAL; + args = value; + args[size] = '\0'; + args = strstrip(args); + command = strsep(&args, " "); + if (!args) + return -EINVAL; + while (isspace(*args)) + args++; + if (!*args) + return -EINVAL; + + if (strcmp(command, "changehat") == 0) { + if (current != task) + return -EACCES; + error = aa_setprocattr_changehat(args); + } else if (strcmp(command, "changeprofile") == 0) { + if (current != task) + return -EACCES; + error = aa_setprocattr_changeprofile(args); + } else if (strcmp(command, "setprofile") == 0) { + struct aa_profile *profile; + + /* Only an unconfined process with admin capabilities + * may change the profile of another task. + */ + + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; + + profile = aa_get_profile(current); + if (profile) { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = "profile_set"; + sa.gfp_mask = GFP_KERNEL; + sa.task = task->pid; + sa.info = "from confined process"; + aa_audit_reject(profile, &sa); + aa_put_profile(profile); + return -EACCES; + } + error = aa_setprocattr_setprofile(task, args); + } else { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = "setprocattr"; + sa.gfp_mask = GFP_KERNEL; + sa.info = "invalid command"; + sa.name = command; + sa.task = task->pid; + aa_audit_reject(NULL, &sa); + return -EINVAL; + } + + if (!error) + error = size; + return error; +} + +struct security_operations apparmor_ops = { + .ptrace = apparmor_ptrace, + .capget = cap_capget, + .capset_check = cap_capset_check, + .capset_set = cap_capset_set, + .sysctl = apparmor_sysctl, + .capable = apparmor_capable, + .syslog = cap_syslog, + + .bprm_apply_creds = cap_bprm_apply_creds, + .bprm_set_security = apparmor_bprm_set_security, + .bprm_secureexec = apparmor_bprm_secureexec, + + .sb_mount = apparmor_sb_mount, + .sb_umount = apparmor_umount, + + .inode_mkdir = apparmor_inode_mkdir, + .inode_rmdir = apparmor_inode_rmdir, + .inode_create = apparmor_inode_create, + .inode_link = apparmor_inode_link, + .inode_unlink = apparmor_inode_unlink, + .inode_symlink = apparmor_inode_symlink, + .inode_mknod = apparmor_inode_mknod, + .inode_rename = apparmor_inode_rename, + .inode_permission = apparmor_inode_permission, + .inode_setattr = apparmor_inode_setattr, + .inode_setxattr = apparmor_inode_setxattr, + .inode_getxattr = apparmor_inode_getxattr, + .inode_listxattr = apparmor_inode_listxattr, + .inode_removexattr = apparmor_inode_removexattr, + .file_permission = apparmor_file_permission, + .file_alloc_security = apparmor_file_alloc_security, + .file_free_security = apparmor_file_free_security, + .file_mmap = apparmor_file_mmap, + .file_mprotect = apparmor_file_mprotect, + .file_lock = apparmor_file_lock, + + .task_alloc_security = apparmor_task_alloc_security, + .task_free_security = apparmor_task_free_security, + .task_post_setuid = cap_task_post_setuid, + .task_reparent_to_init = cap_task_reparent_to_init, + + .getprocattr = apparmor_getprocattr, + .setprocattr = apparmor_setprocattr, + + .socket_create = apparmor_socket_create, + .socket_post_create = apparmor_socket_post_create, + .socket_bind = apparmor_socket_bind, + .socket_connect = apparmor_socket_connect, + .socket_listen = apparmor_socket_listen, + .socket_accept = apparmor_socket_accept, + .socket_sendmsg = apparmor_socket_sendmsg, + .socket_recvmsg = apparmor_socket_recvmsg, + .socket_getsockname = apparmor_socket_getsockname, + .socket_getpeername = apparmor_socket_getpeername, + .socket_getsockopt = apparmor_socket_getsockopt, + .socket_setsockopt = apparmor_socket_setsockopt, + .socket_shutdown = apparmor_socket_shutdown, +}; + +void info_message(const char *str) +{ + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.gfp_mask = GFP_KERNEL; + sa.info = str; + printk(KERN_INFO "AppArmor: %s\n", str); + if (audit_enabled) + aa_audit_message(NULL, &sa, AUDIT_APPARMOR_STATUS); +} + +static int __init apparmor_init(void) +{ + int error; + + if (!apparmor_enabled) { + info_message("AppArmor disabled by boottime parameter\n"); + return 0; + } + + if ((error = create_apparmorfs())) { + AA_ERROR("Unable to activate AppArmor filesystem\n"); + goto createfs_out; + } + + if ((error = alloc_default_namespace())){ + AA_ERROR("Unable to allocate default profile namespace\n"); + goto alloc_out; + } + + if ((error = register_security(&apparmor_ops))) { + AA_ERROR("Unable to register AppArmor\n"); + goto register_security_out; + } + + /* Report that AppArmor successfully initialized */ + apparmor_initialized = 1; + if (apparmor_complain) + info_message("AppArmor initialized: complainmode enabled"); + else + info_message("AppArmor initialized"); + + return error; + +register_security_out: + free_default_namespace(); + +alloc_out: + destroy_apparmorfs(); + +createfs_out: + return error; + +} + +security_initcall(apparmor_init); + +void apparmor_disable(void) +{ + /* Remove and release all the profiles on the profile list. */ + mutex_lock(&aa_interface_lock); + aa_profile_ns_list_release(); + + /* FIXME: cleanup profiles references on files */ + free_default_namespace(); + + /* + * Delay for an rcu cycle to make sure that all active task + * context readers have finished, and all profiles have been + * freed by their rcu callbacks. + */ + synchronize_rcu(); + + destroy_apparmorfs(); + mutex_unlock(&aa_interface_lock); + + apparmor_initialized = 0; + + info_message("AppArmor protection removed"); +} + +MODULE_DESCRIPTION("AppArmor process confinement"); +MODULE_AUTHOR("Novell/Immunix, http://bugs.opensuse.org"); +MODULE_LICENSE("GPL"); --- linux-2.6.24.orig/security/apparmor/main.c +++ linux-2.6.24/security/apparmor/main.c @@ -0,0 +1,1468 @@ +/* + * Copyright (C) 2002-2007 Novell/SUSE + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + * + * AppArmor Core + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "apparmor.h" + +#include "inline.h" + +/* + * Table of capability names: we generate it from capabilities.h. + */ +static const char *capability_names[] = { +#include "capability_names.h" +}; + +struct aa_namespace *default_namespace; + +static int aa_inode_mode(struct inode *inode) +{ + /* if the inode doesn't exist the user is creating it */ + if (!inode || current->fsuid == inode->i_uid) + return AA_USER_SHIFT; + return AA_OTHER_SHIFT; +} + +/** + * aa_file_denied - check for @mask access on a file + * @profile: profile to check against + * @name: pathname of file + * @mask: permission mask requested for file + * + * Return %0 on success, or else the permissions in @mask that the + * profile denies. + */ +static int aa_file_denied(struct aa_profile *profile, const char *name, + int mask) +{ + return (mask & ~aa_match(profile->file_rules, name)); +} + +/** + * aa_link_denied - check for permission to link a file + * @profile: profile to check against + * @link: pathname of link being created + * @target: pathname of target to be linked to + * @target_mode: UGO shift for target inode + * @request_mask: the permissions subset valid only if link succeeds + * Return %0 on success, or else the permissions that the profile denies. + */ +static int aa_link_denied(struct aa_profile *profile, const char *link, + const char *target, int target_mode, + int *request_mask) +{ + unsigned int state; + int l_mode, t_mode, denied_mask = 0; + int link_mask = AA_MAY_LINK << target_mode; + + *request_mask = link_mask; + + l_mode = aa_match_state(profile->file_rules, DFA_START, link, &state); + if (l_mode & link_mask) { + int mode; + /* test to see if target can be paired with link */ + state = aa_dfa_null_transition(profile->file_rules, state); + mode = aa_match_state(profile->file_rules, state, target, + NULL); + + if (!(mode & link_mask)) + denied_mask |= link_mask; + if (!(mode & (AA_LINK_SUBSET_TEST << target_mode))) + return denied_mask; + } + + /* do link perm subset test */ + t_mode = aa_match(profile->file_rules, target); + + /* Ignore valid-profile-transition flags. */ + l_mode &= ~AA_SHARED_PERMS; + t_mode &= ~AA_SHARED_PERMS; + + *request_mask = l_mode | link_mask; + + /* Link always requires 'l' on the link for both parts of the pair. + * If a subset test is required a permission subset test of the + * perms for the link are done against the user:group:other of the + * target's 'r', 'w', 'x', 'a', 'k', and 'm' permissions. + * + * If the link has 'x', an exact match of all the execute flags + * ('i', 'u', 'p'). safe exec is treated as a subset of unsafe exec + */ +#define SUBSET_PERMS (AA_FILE_PERMS & ~AA_LINK_BITS) + denied_mask |= ~l_mode & link_mask; + if (l_mode & SUBSET_PERMS) { + denied_mask |= (l_mode & SUBSET_PERMS) & ~t_mode; + if (denied_mask & AA_EXEC_BITS) + denied_mask |= l_mode & AA_ALL_EXEC_MODS; + else if (l_mode & AA_EXEC_BITS) { + if (!(l_mode & AA_USER_EXEC_UNSAFE)) + l_mode |= t_mode & AA_USER_EXEC_UNSAFE; + if (l_mode & AA_USER_EXEC && + (l_mode & AA_USER_EXEC_MODS) != + (t_mode & AA_USER_EXEC_MODS)) + denied_mask |= AA_USER_EXEC | + (l_mode & AA_USER_EXEC_MODS); + if (!(l_mode & AA_OTHER_EXEC_UNSAFE)) + l_mode |= t_mode & AA_OTHER_EXEC_UNSAFE; + if (l_mode & AA_OTHER_EXEC && + (l_mode & AA_OTHER_EXEC_MODS) != + (t_mode & AA_OTHER_EXEC_MODS)) + denied_mask |= AA_OTHER_EXEC | + (l_mode & AA_OTHER_EXEC_MODS); + } + } else + denied_mask |= t_mode | link_mask; +#undef SUBSET_PERMS + + return denied_mask; +} + +/** + * aa_get_name - compute the pathname of a file + * @dentry: dentry of the file + * @mnt: vfsmount of the file + * @buffer: buffer that aa_get_name() allocated + * @check: AA_CHECK_DIR is set if the file is a directory + * + * Returns a pointer to the beginning of the pathname (which usually differs + * from the beginning of the buffer), or an error code. + * + * We need @check to indicate whether the file is a directory or not because + * the file may not yet exist, and so we cannot check the inode's file type. + */ +static char *aa_get_name(struct dentry *dentry, struct vfsmount *mnt, + char **buffer, int check) +{ + char *name; + int is_dir, size = 256; + + is_dir = (check & AA_CHECK_DIR) ? 1 : 0; + + for (;;) { + char *buf = kmalloc(size, GFP_KERNEL); + if (!buf) + return ERR_PTR(-ENOMEM); + + name = d_namespace_path(dentry, mnt, buf, size - is_dir); + if (!IS_ERR(name)) { + if (name[0] != '/') { + /* + * This dentry is not connected to the + * namespace root -- reject access. + */ + kfree(buf); + return ERR_PTR(-ENOENT); + } + if (is_dir && name[1] != '\0') { + /* + * Append "/" to the pathname. The root + * directory is a special case; it already + * ends in slash. + */ + buf[size - 2] = '/'; + buf[size - 1] = '\0'; + } + + *buffer = buf; + return name; + } + kfree(buf); + if (PTR_ERR(name) != -ENAMETOOLONG) + return name; + + size <<= 1; + if (size > apparmor_path_max) + return ERR_PTR(-ENAMETOOLONG); + } +} + +static inline void aa_put_name_buffer(char *buffer) +{ + kfree(buffer); +} + +/** + * aa_perm_dentry - check if @profile allows @mask for a file + * @profile: profile to check against + * @dentry: dentry of the file + * @mnt: vfsmount o the file + * @sa: audit context + * @mask: requested profile permissions + * @check: kind of check to perform + * + * Returns 0 upon success, or else an error code. + * + * @check indicates the file type, and whether the file was accessed through + * an open file descriptor (AA_CHECK_FD) or not. + */ +static int aa_perm_dentry(struct aa_profile *profile, struct dentry *dentry, + struct vfsmount *mnt, struct aa_audit *sa, int check) +{ + int error; + char *buffer = NULL; + + sa->name = aa_get_name(dentry, mnt, &buffer, check); + sa->request_mask <<= aa_inode_mode(dentry->d_inode); + if (IS_ERR(sa->name)) { + /* + * deleted files are given a pass on permission checks when + * accessed through a file descriptor. + */ + if (PTR_ERR(sa->name) == -ENOENT && (check & AA_CHECK_FD)) + sa->denied_mask = 0; + else { + sa->denied_mask = sa->request_mask; + sa->error_code = PTR_ERR(sa->name); + if (sa->error_code == -ENOENT) + sa->info = "Failed name resolution - object not a valid entry"; + else if (sa->error_code == -ENAMETOOLONG) + sa->info = "Failed name resolution - name too long"; + else + sa->info = "Failed name resolution"; + } + sa->name = NULL; + } else + sa->denied_mask = aa_file_denied(profile, sa->name, + sa->request_mask); + + if (!sa->denied_mask) + sa->error_code = 0; + + error = aa_audit(profile, sa); + aa_put_name_buffer(buffer); + + return error; +} + +int alloc_default_namespace(void) +{ + struct aa_namespace *ns; + char *name = kstrdup("default", GFP_KERNEL); + if (!name) + return -ENOMEM; + ns = alloc_aa_namespace(name); + if (!ns) { + kfree(name); + return -ENOMEM; + } + + write_lock(&profile_ns_list_lock); + default_namespace = ns; + aa_get_namespace(ns); + list_add(&ns->list, &profile_ns_list); + write_unlock(&profile_ns_list_lock); + + return 0; +} + +void free_default_namespace(void) +{ + write_lock(&profile_ns_list_lock); + list_del_init(&default_namespace->list); + write_unlock(&profile_ns_list_lock); + aa_put_namespace(default_namespace); + default_namespace = NULL; +} + +static void aa_audit_file_sub_mask(struct audit_buffer *ab, char *buffer, + int mask) +{ + char *m = buffer; + + if (mask & AA_EXEC_MMAP) + *m++ = 'm'; + if (mask & MAY_READ) + *m++ = 'r'; + if (mask & MAY_WRITE) + *m++ = 'w'; + else if (mask & MAY_APPEND) + *m++ = 'a'; + if (mask & MAY_EXEC) { + if (mask & AA_EXEC_UNSAFE) { + switch(mask & AA_EXEC_MODIFIERS) { + case AA_EXEC_UNCONFINED: + *m++ = 'u'; + break; + case AA_EXEC_PIX: + *m++ = 'p'; + /* fall through */ + case AA_EXEC_INHERIT: + *m++ = 'i'; + break; + case AA_EXEC_PROFILE: + *m++ = 'p'; + break; + } + } else { + switch(mask & AA_EXEC_MODIFIERS) { + case AA_EXEC_UNCONFINED: + *m++ = 'U'; + break; + case AA_EXEC_PIX: + *m++ = 'P'; + /* fall through */ + case AA_EXEC_INHERIT: + *m++ = 'I'; + break; + case AA_EXEC_PROFILE: + *m++ = 'P'; + break; + } + } + *m++ = 'x'; + } + if (mask & AA_MAY_LINK) + *m++ = 'l'; + if (mask & AA_MAY_LOCK) + *m++ = 'k'; + *m++ = '\0'; +} + +static void aa_audit_file_mask(struct audit_buffer *ab, const char *name, + int mask) +{ + char user[10], other[10]; + + aa_audit_file_sub_mask(ab, user, + (mask & AA_USER_PERMS) >> AA_USER_SHIFT); + aa_audit_file_sub_mask(ab, other, + (mask & AA_OTHER_PERMS) >> AA_OTHER_SHIFT); + + audit_log_format(ab, " %s=\"%s::%s\"", name, user, other); +} + +static const char *address_families[] = { +#include "af_names.h" +}; + +static const char *sock_types[] = { + "unknown(0)", + "stream", + "dgram", + "raw", + "rdm", + "seqpacket", + "dccp", + "unknown(7)", + "unknown(8)", + "unknown(9)", + "packet", +}; + +/** + * aa_audit - Log an audit event to the audit subsystem + * @profile: profile to check against + * @sa: audit event + * @audit_cxt: audit context to log message to + * @type: audit event number + */ +static int aa_audit_base(struct aa_profile *profile, struct aa_audit *sa, + struct audit_context *audit_cxt, int type) +{ + struct audit_buffer *ab = NULL; + + ab = audit_log_start(audit_cxt, sa->gfp_mask, type); + + if (!ab) { + AA_ERROR("Unable to log event (%d) to audit subsys\n", + type); + /* don't fail operations in complain mode even if logging + * fails */ + return type == AUDIT_APPARMOR_ALLOWED ? 0 : -ENOMEM; + } + + audit_log_format(ab, "type=%d", type); + + if (sa->operation) + audit_log_format(ab, " operation=\"%s\"", sa->operation); + + if (sa->info) { + audit_log_format(ab, " info=\"%s\"", sa->info); + if (sa->error_code) + audit_log_format(ab, " error=%d", sa->error_code); + } + + if (sa->request_mask) + aa_audit_file_mask(ab, "requested_mask", sa->request_mask); + + if (sa->denied_mask) + aa_audit_file_mask(ab, "denied_mask", sa->denied_mask); + + if (sa->iattr) { + struct iattr *iattr = sa->iattr; + + audit_log_format(ab, " attribute=\"%s%s%s%s%s%s%s\"", + iattr->ia_valid & ATTR_MODE ? "mode," : "", + iattr->ia_valid & ATTR_UID ? "uid," : "", + iattr->ia_valid & ATTR_GID ? "gid," : "", + iattr->ia_valid & ATTR_SIZE ? "size," : "", + iattr->ia_valid & (ATTR_ATIME | ATTR_ATIME_SET) ? + "atime," : "", + iattr->ia_valid & (ATTR_MTIME | ATTR_MTIME_SET) ? + "mtime," : "", + iattr->ia_valid & ATTR_CTIME ? "ctime," : ""); + } + + if (sa->task) + audit_log_format(ab, " task=%d", sa->task); + + if (sa->parent) + audit_log_format(ab, " parent=%d", sa->parent); + + if (sa->name) { + audit_log_format(ab, " name="); + audit_log_untrustedstring(ab, sa->name); + } + + if (sa->name2) { + audit_log_format(ab, " name2="); + audit_log_untrustedstring(ab, sa->name2); + } + + if (sa->family || sa->type) { + if (address_families[sa->family]) + audit_log_format(ab, " family=\"%s\"", + address_families[sa->family]); + else + audit_log_format(ab, " family=\"unknown(%d)\"", + sa->family); + + if (sock_types[sa->type]) + audit_log_format(ab, " sock_type=\"%s\"", + sock_types[sa->type]); + else + audit_log_format(ab, " sock_type=\"unknown(%d)\"", + sa->type); + + audit_log_format(ab, " protocol=%d", sa->protocol); + } + + audit_log_format(ab, " pid=%d", current->pid); + + if (profile) { + audit_log_format(ab, " profile="); + audit_log_untrustedstring(ab, profile->name); + + audit_log_format(ab, " namespace="); + audit_log_untrustedstring(ab, profile->ns->name); + } + + audit_log_end(ab); + + return type == AUDIT_APPARMOR_ALLOWED ? 0 : sa->error_code; +} + +/** + * aa_audit_syscallreject - Log a syscall rejection to the audit subsystem + * @profile: profile to check against + * @gfp: memory allocation flags + * @msg: string describing syscall being rejected + */ +int aa_audit_syscallreject(struct aa_profile *profile, gfp_t gfp, + const char *msg) +{ + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = "syscall"; + sa.name = msg; + sa.gfp_mask = gfp; + sa.error_code = -EPERM; + + return aa_audit_base(profile, &sa, current->audit_context, + AUDIT_APPARMOR_DENIED); +} + +int aa_audit_message(struct aa_profile *profile, struct aa_audit *sa, + int type) +{ + struct audit_context *audit_cxt; + + audit_cxt = apparmor_logsyscall ? current->audit_context : NULL; + return aa_audit_base(profile, sa, audit_cxt, type); +} + +void aa_audit_hint(struct aa_profile *profile, struct aa_audit *sa) +{ + aa_audit_message(profile, sa, AUDIT_APPARMOR_HINT); +} + +void aa_audit_status(struct aa_profile *profile, struct aa_audit *sa) +{ + aa_audit_message(profile, sa, AUDIT_APPARMOR_STATUS); +} + +int aa_audit_reject(struct aa_profile *profile, struct aa_audit *sa) +{ + return aa_audit_message(profile, sa, AUDIT_APPARMOR_DENIED); +} + +/** + * aa_audit - Log an audit event to the audit subsystem + * @profile: profile to check against + * @sa: audit event + */ +int aa_audit(struct aa_profile *profile, struct aa_audit *sa) +{ + int type = AUDIT_APPARMOR_DENIED; + struct audit_context *audit_cxt; + + if (likely(!sa->error_code)) { + if (likely(!PROFILE_AUDIT(profile))) + /* nothing to log */ + return 0; + else + type = AUDIT_APPARMOR_AUDIT; + } else if (PROFILE_COMPLAIN(profile)) { + type = AUDIT_APPARMOR_ALLOWED; + } + + audit_cxt = apparmor_logsyscall ? current->audit_context : NULL; + return aa_audit_base(profile, sa, audit_cxt, type); +} + +/** + * aa_attr - check if attribute change is allowed + * @profile: profile to check against + * @dentry: dentry of the file to check + * @mnt: vfsmount of the file to check + * @iattr: attribute changes requested + */ +int aa_attr(struct aa_profile *profile, struct dentry *dentry, + struct vfsmount *mnt, struct iattr *iattr) +{ + struct inode *inode = dentry->d_inode; + int error, check; + struct aa_audit sa; + + memset(&sa, 0, sizeof(sa)); + sa.operation = "setattr"; + sa.gfp_mask = GFP_KERNEL; + sa.iattr = iattr; + sa.request_mask = MAY_WRITE; + sa.error_code = -EACCES; + + check = 0; + if (inode && S_ISDIR(inode->i_mode)) + check |= AA_CHECK_DIR; + if (iattr->ia_valid & ATTR_FILE) + check |= AA_CHECK_FD; + + error = aa_perm_dentry(profile, dentry, mnt, &sa, check); + + return error; +} + +/** + * aa_perm_xattr - check if xattr attribute change is allowed + * @profile: profile to check against + * @dentry: dentry of the file to check + * @mnt: vfsmount of the file to check + * @operation: xattr operation being done + * @mask: access mode requested + * @check: kind of check to perform + */ +int aa_perm_xattr(struct aa_profile *profile, const char *operation, + struct dentry *dentry, struct vfsmount *mnt, int mask, + int check) +{ + struct inode *inode = dentry->d_inode; + int error; + struct aa_audit sa; + + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.request_mask = mask; + sa.error_code = -EACCES; + + if (inode && S_ISDIR(inode->i_mode)) + check |= AA_CHECK_DIR; + + error = aa_perm_dentry(profile, dentry, mnt, &sa, check); + + return error; +} + +/** + * aa_perm - basic apparmor permissions check + * @profile: profile to check against + * @dentry: dentry of the file to check + * @mnt: vfsmount of the file to check + * @mask: access mode requested + * @check: kind of check to perform + * + * Determine if access @mask for the file is authorized by @profile. + * Returns 0 on success, or else an error code. + */ +int aa_perm(struct aa_profile *profile, const char *operation, + struct dentry *dentry, struct vfsmount *mnt, int mask, int check) +{ + struct aa_audit sa; + int error = 0; + + if (mask == 0) + goto out; + + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.request_mask = mask; + sa.error_code = -EACCES; + + error = aa_perm_dentry(profile, dentry, mnt, &sa, check); + +out: + return error; +} + +/** + * aa_perm_dir + * @profile: profile to check against + * @dentry: dentry of directory to check + * @mnt: vfsmount of directory to check + * @operation: directory operation being performed + * @mask: access mode requested + * + * Determine if directory operation (make/remove) for dentry is authorized + * by @profile. + * Returns 0 on success, or else an error code. + */ +int aa_perm_dir(struct aa_profile *profile, const char *operation, + struct dentry *dentry, struct vfsmount *mnt, int mask) +{ + struct aa_audit sa; + + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.request_mask = mask; + sa.error_code = -EACCES; + + return aa_perm_dentry(profile, dentry, mnt, &sa, AA_CHECK_DIR); +} + +int aa_perm_path(struct aa_profile *profile, const char *operation, + const char *name, int mask, uid_t uid) +{ + struct aa_audit sa; + + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.request_mask = mask; + sa.name = name; + if (current->fsuid == uid) + sa.request_mask = mask << AA_USER_SHIFT; + else + sa.request_mask = mask << AA_OTHER_SHIFT; + + sa.denied_mask = aa_file_denied(profile, name, sa.request_mask) ; + sa.error_code = sa.denied_mask ? -EACCES : 0; + + return aa_audit(profile, &sa); +} + +/** + * aa_capability - test permission to use capability + * @cxt: aa_task_context with profile to check against + * @cap: capability to be tested + * + * Look up capability in profile capability set. + * Returns 0 on success, or else an error code. + */ +int aa_capability(struct aa_task_context *cxt, int cap) +{ + int error = cap_raised(cxt->profile->capabilities, cap) ? 0 : -EPERM; + struct aa_audit sa; + + /* test if cap has alread been logged */ + if (cap_raised(cxt->caps_logged, cap)) { + if (PROFILE_COMPLAIN(cxt->profile)) + error = 0; + return error; + } else + /* don't worry about rcu replacement of the cxt here. + * caps_logged is a cache to reduce the occurence of + * duplicate messages in the log. The worst that can + * happen is duplicate capability messages shows up in + * the audit log + */ + cap_raise(cxt->caps_logged, cap); + + memset(&sa, 0, sizeof(sa)); + sa.operation = "capable"; + sa.gfp_mask = GFP_ATOMIC; + sa.name = capability_names[cap]; + sa.error_code = error; + + error = aa_audit(cxt->profile, &sa); + + return error; +} + +/* must be used inside rcu_read_lock or task_lock */ +int aa_may_ptrace(struct aa_task_context *cxt, struct aa_profile *tracee) +{ + if (!cxt || cxt->profile == tracee) + return 0; + return aa_capability(cxt, CAP_SYS_PTRACE); +} + +/** + * aa_link - hard link check + * @profile: profile to check against + * @link: dentry of link being created + * @link_mnt: vfsmount of link being created + * @target: dentry of link target + * @target_mnt: vfsmunt of link target + * + * Returns 0 on success, or else an error code. + */ +int aa_link(struct aa_profile *profile, + struct dentry *link, struct vfsmount *link_mnt, + struct dentry *target, struct vfsmount *target_mnt) +{ + int error; + struct aa_audit sa; + char *buffer = NULL, *buffer2 = NULL; + + memset(&sa, 0, sizeof(sa)); + sa.operation = "inode_link"; + sa.gfp_mask = GFP_KERNEL; + sa.name = aa_get_name(link, link_mnt, &buffer, 0); + sa.name2 = aa_get_name(target, target_mnt, &buffer2, 0); + + if (IS_ERR(sa.name)) { + sa.error_code = PTR_ERR(sa.name); + sa.name = NULL; + } + if (IS_ERR(sa.name2)) { + sa.error_code = PTR_ERR(sa.name2); + sa.name2 = NULL; + } + + if (sa.name && sa.name2) { + sa.denied_mask = aa_link_denied(profile, sa.name, sa.name2, + aa_inode_mode(target->d_inode), + &sa.request_mask); + sa.error_code = sa.denied_mask ? -EACCES : 0; + } + + error = aa_audit(profile, &sa); + + aa_put_name_buffer(buffer); + aa_put_name_buffer(buffer2); + + return error; +} + +int aa_net_perm(struct aa_profile *profile, char *operation, + int family, int type, int protocol) +{ + struct aa_audit sa; + int error = 0; + u16 family_mask; + + if ((family < 0) || (family >= AF_MAX)) + return -EINVAL; + + if ((type < 0) || (type >= SOCK_MAX)) + return -EINVAL; + + /* unix domain and netlink sockets are handled by ipc */ + if (family == AF_UNIX || family == AF_NETLINK) + return 0; + + family_mask = profile->network_families[family]; + + error = (family_mask & (1 << type)) ? 0 : -EACCES; + + memset(&sa, 0, sizeof(sa)); + sa.operation = operation; + sa.gfp_mask = GFP_KERNEL; + sa.family = family; + sa.type = type; + sa.protocol = protocol; + sa.error_code = error; + + error = aa_audit(profile, &sa); + + return error; +} + +int aa_revalidate_sk(struct sock *sk, char *operation) +{ + struct aa_profile *profile; + int error = 0; + + /* this is some debugging code to flush out the network hooks that + that are called in interrupt context */ + if (in_interrupt()) { + printk("AppArmor Debug: Hook being called from interrupt context\n"); + dump_stack(); + return 0; + } + + profile = aa_get_profile(current); + if (profile) + error = aa_net_perm(profile, operation, + sk->sk_family, sk->sk_type, + sk->sk_protocol); + aa_put_profile(profile); + + return error; +} + +/******************************* + * Global task related functions + *******************************/ + +/** + * aa_clone - initialize the task context for a new task + * @child: task that is being created + * + * Returns 0 on success, or else an error code. + */ +int aa_clone(struct task_struct *child) +{ + struct aa_task_context *cxt, *child_cxt; + struct aa_profile *profile; + + if (!aa_task_context(current)) + return 0; + child_cxt = aa_alloc_task_context(GFP_KERNEL); + if (!child_cxt) + return -ENOMEM; + +repeat: + profile = aa_get_profile(current); + if (profile) { + lock_profile(profile); + cxt = aa_task_context(current); + if (unlikely(profile->isstale || !cxt || + cxt->profile != profile)) { + /** + * Race with profile replacement or removal, or with + * task context removal. + */ + unlock_profile(profile); + aa_put_profile(profile); + goto repeat; + } + + /* No need to grab the child's task lock here. */ + aa_change_task_context(child, child_cxt, profile, + cxt->cookie, cxt->previous_profile); + unlock_profile(profile); + + if (APPARMOR_COMPLAIN(child_cxt) && + profile == profile->ns->null_complain_profile) { + struct aa_audit sa; + memset(&sa, 0, sizeof(sa)); + sa.operation = "clone"; + sa.gfp_mask = GFP_KERNEL; + sa.task = child->pid; + aa_audit_hint(profile, &sa); + } + aa_put_profile(profile); + } else + aa_free_task_context(child_cxt); + + return 0; +} + +static struct aa_profile * +aa_register_find(struct aa_profile *profile, const char *name, int mandatory, + int complain, struct aa_audit *sa) +{ + struct aa_profile *new_profile; + + /* Locate new profile */ + if (profile) + new_profile = aa_find_profile(profile->ns, name); + else + new_profile = aa_find_profile(default_namespace, name); + + if (new_profile) { + AA_DEBUG("%s: setting profile %s\n", + __FUNCTION__, new_profile->name); + } else if (mandatory && profile) { + sa->info = "mandatory profile missing"; + sa->denied_mask = sa->request_mask; /* shifted MAY_EXEC */ + if (complain) { + aa_audit_hint(profile, sa); + new_profile = + aa_dup_profile(profile->ns->null_complain_profile); + } else { + aa_audit_reject(profile, sa); + return ERR_PTR(-EACCES); /* was -EPERM */ + } + } else { + /* Only way we can get into this code is if task + * is unconfined, or pix. + */ + AA_DEBUG("%s: No profile found for exec image '%s'\n", + __FUNCTION__, + name); + } + return new_profile; +} + +/** + * aa_register - register a new program + * @bprm: binprm of program being registered + * + * Try to register a new program during execve(). This should give the + * new program a valid aa_task_context if confined. + */ +int aa_register(struct linux_binprm *bprm) +{ + const char *filename; + char *buffer = NULL; + struct file *filp = bprm->file; + struct aa_profile *profile, *old_profile, *new_profile = NULL; + int exec_mode, complain = 0, shift; + struct aa_audit sa; + + AA_DEBUG("%s\n", __FUNCTION__); + + profile = aa_get_profile(current); + + shift = aa_inode_mode(filp->f_dentry->d_inode); + memset(&sa, 0, sizeof(sa)); + sa.operation = "exec"; + sa.gfp_mask = GFP_KERNEL; + sa.request_mask = MAY_EXEC << shift; + + filename = aa_get_name(filp->f_dentry, filp->f_vfsmnt, &buffer, 0); + if (IS_ERR(filename)) { + if (profile) { + sa.info = "Failed name resolution - exec failed"; + sa.error_code = PTR_ERR(filename); + aa_audit_reject(profile, &sa); + return sa.error_code; + } else + return 0; + } + sa.name = filename; + + exec_mode = AA_EXEC_UNSAFE << shift; + +repeat: + if (profile) { + complain = PROFILE_COMPLAIN(profile); + + /* Confined task, determine what mode inherit, unconfined or + * mandatory to load new profile + */ + exec_mode = aa_match(profile->file_rules, filename); + + if (exec_mode & sa.request_mask) { + switch ((exec_mode >> shift) & AA_EXEC_MODIFIERS) { + case AA_EXEC_INHERIT: + AA_DEBUG("%s: INHERIT %s\n", + __FUNCTION__, + filename); + /* nothing to be done here */ + goto cleanup; + + case AA_EXEC_UNCONFINED: + AA_DEBUG("%s: UNCONFINED %s\n", + __FUNCTION__, + filename); + + /* detach current profile */ + new_profile = NULL; + break; + + case AA_EXEC_PROFILE: + AA_DEBUG("%s: PROFILE %s\n", + __FUNCTION__, + filename); + new_profile = aa_register_find(profile, + filename, + 1, complain, + &sa); + break; + case AA_EXEC_PIX: + AA_DEBUG("%s: PROFILE %s\n", + __FUNCTION__, + filename); + new_profile = aa_register_find(profile, + filename, + 0, complain, + &sa); + if (!new_profile) + /* inherit - nothing to be done here */ + goto cleanup; + break; + } + + } else if (complain) { + /* There was no entry in calling profile + * describing mode to execute image in. + * Drop into null-profile (disabling secure exec). + */ + new_profile = + aa_dup_profile(profile->ns->null_complain_profile); + exec_mode |= AA_EXEC_UNSAFE << shift; + } else { + sa.denied_mask = sa.request_mask; + aa_audit_reject(profile, &sa); + new_profile = ERR_PTR(-EPERM); + } + } else { + /* Unconfined task, load profile if it exists */ + new_profile = aa_register_find(NULL, filename, 0, 0, &sa); + if (new_profile == NULL) + goto cleanup; + } + + if (IS_ERR(new_profile)) + goto cleanup; + + old_profile = __aa_replace_profile(current, new_profile); + if (IS_ERR(old_profile)) { + aa_put_profile(new_profile); + aa_put_profile(profile); + if (PTR_ERR(old_profile) == -ESTALE) { + profile = aa_get_profile(current); + goto repeat; + } + if (PTR_ERR(old_profile) == -EPERM) { + sa.denied_mask = sa.request_mask; + sa.info = "unable to set profile due to ptrace"; + sa.task = current->parent->pid; + aa_audit_reject(profile, &sa); + } + new_profile = old_profile; + goto cleanup; + } + aa_put_profile(old_profile); + aa_put_profile(profile); + + /* Handle confined exec. + * Can be at this point for the following reasons: + * 1. unconfined switching to confined + * 2. confined switching to different confinement + * 3. confined switching to unconfined + * + * Cases 2 and 3 are marked as requiring secure exec + * (unless policy specified "unsafe exec") + */ + if (!(exec_mode & (AA_EXEC_UNSAFE << shift))) { + unsigned long bprm_flags; + + bprm_flags = AA_SECURE_EXEC_NEEDED; + bprm->security = (void*) + ((unsigned long)bprm->security | bprm_flags); + } + + if (complain && new_profile && + new_profile == new_profile->ns->null_complain_profile) { + sa.request_mask = 0; + sa.name = NULL; + sa.info = "set profile"; + aa_audit_hint(new_profile, &sa); + } +cleanup: + aa_put_name_buffer(buffer); + if (IS_ERR(new_profile)) + return PTR_ERR(new_profile); + aa_put_profile(new_profile); + return 0; +} + +/** + * aa_release - release a task context + * @task: task being released + * + * This is called after a task has exited and the parent has reaped it. + */ +void aa_release(struct task_struct *task) +{ + struct aa_task_context *cxt; + struct aa_profile *profile; + /* + * While the task context is still on a profile's task context + * list, another process could replace the profile under us, + * leaving us with a locked profile that is no longer attached + * to this task. So after locking the profile, we check that + * the profile is still attached. The profile lock is + * sufficient to prevent the replacement race so we do not lock + * the task. + * + * Use lock subtyping to avoid lockdep reporting a false irq + * possible inversion between the task_lock and profile_lock + * + * We also avoid taking the task_lock here because lock_dep + * would report another false {softirq-on-W} potential irq_lock + * inversion. + * + * If the task does not have a profile attached we are safe; + * nothing can race with us at this point. + */ + +repeat: + profile = aa_get_profile(task); + if (profile) { + lock_profile_nested(profile, aa_lock_task_release); + cxt = aa_task_context(task); + if (unlikely(!cxt || cxt->profile != profile)) { + unlock_profile(profile); + aa_put_profile(profile); + goto repeat; + } + aa_change_task_context(task, NULL, NULL, 0, NULL); + unlock_profile(profile); + aa_put_profile(profile); + } +} + +static int do_change_profile(struct aa_profile *expected, + struct aa_namespace *ns, const char *name, + u64 cookie, int restore, struct aa_audit *sa) +{ + struct aa_profile *new_profile = NULL, *old_profile = NULL, + *previous_profile = NULL; + struct aa_task_context *new_cxt, *cxt; + int error = 0; + + sa->name = name; + + new_cxt = aa_alloc_task_context(GFP_KERNEL); + if (!new_cxt) + return -ENOMEM; + + new_profile = aa_find_profile(ns, name); + if (!new_profile && !restore) { + if (!PROFILE_COMPLAIN(expected)) + return -ENOENT; + new_profile = aa_dup_profile(ns->null_complain_profile); + } + + cxt = lock_task_and_profiles(current, new_profile); + if (!cxt) { + error = -EPERM; + goto out; + } + old_profile = cxt->profile; + + if (cxt->profile != expected || (new_profile && new_profile->isstale)) { + error = -ESTALE; + goto out; + } + + if (cxt->previous_profile) { + if (cxt->cookie != cookie) { + error = -EACCES; + sa->info = "killing process"; + aa_audit_reject(cxt->profile, sa); + /* terminate process */ + (void)send_sig_info(SIGKILL, NULL, current); + goto out; + } + + if (!restore) + previous_profile = cxt->previous_profile; + } else + previous_profile = cxt->profile; + + if ((current->ptrace & PT_PTRACED) && aa_may_ptrace(cxt, new_profile)) { + error = -EACCES; + goto out; + } + + if (new_profile == ns->null_complain_profile) + aa_audit_hint(cxt->profile, sa); + + if (APPARMOR_AUDIT(cxt)) + aa_audit_message(cxt->profile, sa, AUDIT_APPARMOR_AUDIT); + + if (!restore && cookie) + aa_change_task_context(current, new_cxt, new_profile, cookie, + previous_profile); + else + /* either return to previous_profile, or a permanent change */ + aa_change_task_context(current, new_cxt, new_profile, 0, NULL); + +out: + if (aa_task_context(current) != new_cxt) + aa_free_task_context(new_cxt); + task_unlock(current); + unlock_both_profiles(old_profile, new_profile); + aa_put_profile(new_profile); + return error; +} + +/** + * aa_change_profile - perform a one-way profile transition + * @ns_name: name of the profile namespace to change to + * @name: name of profile to change to + * Change to new profile @name. Unlike with hats, there is no way + * to change back. + * + * Returns %0 on success, error otherwise. + */ +int aa_change_profile(const char *ns_name, const char *name) +{ + struct aa_task_context *cxt; + struct aa_profile *profile; + struct aa_namespace *ns = NULL; + struct aa_audit sa; + unsigned int state; + int error = -EINVAL; + + if (!name) + return -EINVAL; + + memset(&sa, 0, sizeof(sa)); + sa.gfp_mask = GFP_ATOMIC; + sa.operation = "change_profile"; + +repeat: + task_lock(current); + cxt = aa_task_context(current); + if (!cxt) { + task_unlock(current); + return -EPERM; + } + profile = aa_dup_profile(cxt->profile); + task_unlock(current); + + if (ns_name) + ns = aa_find_namespace(ns_name); + else + ns = aa_get_namespace(profile->ns); + if (!ns) { + aa_put_profile(profile); + return -ENOENT; + } + + if (PROFILE_COMPLAIN(profile) || + (ns == profile->ns && + (aa_match(profile->file_rules, name) & AA_CHANGE_PROFILE))) + error = do_change_profile(profile, ns, name, 0, 0, &sa); + else { + /* check for a rule with a namespace prepended */ + aa_match_state(profile->file_rules, DFA_START, ns->name, + &state); + state = aa_dfa_null_transition(profile->file_rules, state); + if ((aa_match_state(profile->file_rules, state, name, NULL) & + AA_CHANGE_PROFILE)) + error = do_change_profile(profile, ns, name, 0, 0, + &sa); + else + /* no permission to transition to profile @name */ + error = -EACCES; + } + + aa_put_namespace(ns); + aa_put_profile(profile); + if (error == -ESTALE) + goto repeat; + + return error; +} + +/** + * aa_change_hat - change hat to/from subprofile + * @hat_name: hat to change to + * @cookie: magic value to validate the hat change + * + * Change to new @hat_name, and store the @hat_magic in the current task + * context. If the new @hat_name is %NULL and the @cookie matches that + * stored in the current task context and is not 0, return to the top level + * profile. + * Returns %0 on success, error otherwise. + */ +int aa_change_hat(const char *hat_name, u64 cookie) +{ + struct aa_task_context *cxt; + struct aa_profile *profile, *previous_profile; + struct aa_audit sa; + int error = 0; + + memset(&sa, 0, sizeof(sa)); + sa.gfp_mask = GFP_ATOMIC; + sa.operation = "change_hat"; + +repeat: + task_lock(current); + cxt = aa_task_context(current); + if (!cxt) { + task_unlock(current); + return -EPERM; + } + profile = aa_dup_profile(cxt->profile); + previous_profile = aa_dup_profile(cxt->previous_profile); + task_unlock(current); + + if (hat_name) { + char *name, *profile_name; + if (previous_profile) + profile_name = previous_profile->name; + else + profile_name = profile->name; + + name = kmalloc(strlen(hat_name) + 3 + strlen(profile_name), + GFP_KERNEL); + if (!name) { + error = -ENOMEM; + goto out; + } + sprintf(name, "%s//%s", profile_name, hat_name); + error = do_change_profile(profile, profile->ns, name, cookie, + 0, &sa); + kfree(name); + } else if (previous_profile) + error = do_change_profile(profile, profile->ns, + previous_profile->name, cookie, 1, + &sa); + /* else ignore restores when there is no saved profile */ + +out: + aa_put_profile(previous_profile); + aa_put_profile(profile); + if (error == -ESTALE) + goto repeat; + + return error; +} + +/** + * __aa_replace_profile - replace a task's profile + * @task: task to switch the profile of + * @profile: profile to switch to + * + * Returns a handle to the previous profile upon success, or else an + * error code. + */ +struct aa_profile *__aa_replace_profile(struct task_struct *task, + struct aa_profile *profile) +{ + struct aa_task_context *cxt, *new_cxt = NULL; + struct aa_profile *old_profile = NULL; + + if (profile) { + new_cxt = aa_alloc_task_context(GFP_KERNEL); + if (!new_cxt) + return ERR_PTR(-ENOMEM); + } + + cxt = lock_task_and_profiles(task, profile); + if (unlikely(profile && profile->isstale)) { + task_unlock(task); + unlock_both_profiles(profile, cxt ? cxt->profile : NULL); + aa_free_task_context(new_cxt); + return ERR_PTR(-ESTALE); + } + + if ((current->ptrace & PT_PTRACED) && aa_may_ptrace(cxt, profile)) { + task_unlock(task); + unlock_both_profiles(profile, cxt ? cxt->profile : NULL); + aa_free_task_context(new_cxt); + return ERR_PTR(-EPERM); + } + + if (cxt) + old_profile = aa_dup_profile(cxt->profile); + aa_change_task_context(task, new_cxt, profile, 0, NULL); + + task_unlock(task); + unlock_both_profiles(profile, old_profile); + return old_profile; +} + +/** + * lock_task_and_profiles - lock the task and confining profiles and @profile + * @task: task to lock + * @profile: extra profile to lock in addition to the current profile + * + * Handle the spinning on locking to make sure the task context and + * profile are consistent once all locks are aquired. + * + * return the aa_task_context currently confining the task. The task lock + * will be held whether or not the task is confined. + */ +struct aa_task_context * +lock_task_and_profiles(struct task_struct *task, struct aa_profile *profile) +{ + struct aa_task_context *cxt; + struct aa_profile *old_profile = NULL; + + rcu_read_lock(); +repeat: + cxt = aa_task_context(task); + if (cxt) + old_profile = cxt->profile; + + lock_both_profiles(profile, old_profile); + task_lock(task); + + /* check for race with profile transition, replacement or removal */ + if (unlikely(cxt != aa_task_context(task))) { + task_unlock(task); + unlock_both_profiles(profile, old_profile); + old_profile = NULL; + goto repeat; + } + rcu_read_unlock(); + return cxt; +} + +static void free_aa_task_context_rcu_callback(struct rcu_head *head) +{ + struct aa_task_context *cxt; + + cxt = container_of(head, struct aa_task_context, rcu); + aa_free_task_context(cxt); +} + +/** + * aa_change_task_context - switch a task to use a new context and profile + * @task: task that is having its task context changed + * @new_cxt: new task context to use after the switch + * @profile: new profile to use after the switch + * @cookie: magic value to switch to + * @previous_profile: profile the task can return to + */ +void aa_change_task_context(struct task_struct *task, + struct aa_task_context *new_cxt, + struct aa_profile *profile, u64 cookie, + struct aa_profile *previous_profile) +{ + struct aa_task_context *old_cxt = aa_task_context(task); + + if (old_cxt) { + list_del_init(&old_cxt->list); + call_rcu(&old_cxt->rcu, free_aa_task_context_rcu_callback); + } + if (new_cxt) { + /* clear the caps_logged cache, so that new profile/hat has + * chance to emit its own set of cap messages */ + new_cxt->caps_logged = CAP_EMPTY_SET; + new_cxt->cookie = cookie; + new_cxt->task = task; + new_cxt->profile = aa_dup_profile(profile); + new_cxt->previous_profile = aa_dup_profile(previous_profile); + list_move(&new_cxt->list, &profile->task_contexts); + } + rcu_assign_pointer(task->security, new_cxt); +} --- linux-2.6.24.orig/security/capability.c +++ linux-2.6.24/security/capability.c @@ -40,7 +40,6 @@ .inode_need_killpriv = cap_inode_need_killpriv, .inode_killpriv = cap_inode_killpriv, - .task_kill = cap_task_kill, .task_setscheduler = cap_task_setscheduler, .task_setioprio = cap_task_setioprio, .task_setnice = cap_task_setnice, --- linux-2.6.24.orig/block/ll_rw_blk.c +++ linux-2.6.24/block/ll_rw_blk.c @@ -2667,8 +2667,10 @@ static void bio_end_empty_barrier(struct bio *bio, int err) { - if (err) + if (err) { + set_bit(BIO_EOPNOTSUPP, &bio->bi_flags); clear_bit(BIO_UPTODATE, &bio->bi_flags); + } complete(bio->bi_private); } @@ -2717,7 +2719,9 @@ *error_sector = bio->bi_sector; ret = 0; - if (!bio_flagged(bio, BIO_UPTODATE)) + if (bio_flagged(bio, BIO_EOPNOTSUPP)) + ret = -EOPNOTSUPP; + else if (!bio_flagged(bio, BIO_UPTODATE)) ret = -EIO; bio_put(bio); --- linux-2.6.24.orig/block/scsi_ioctl.c +++ linux-2.6.24/block/scsi_ioctl.c @@ -235,6 +235,8 @@ rq->timeout = q->sg_timeout; if (!rq->timeout) rq->timeout = BLK_DEFAULT_SG_TIMEOUT; + if (rq->timeout < BLK_MIN_SG_TIMEOUT) + rq->timeout = BLK_MIN_SG_TIMEOUT; return 0; } @@ -546,8 +548,14 @@ return __blk_send_generic(q, bd_disk, GPCMD_START_STOP_UNIT, data); } -int scsi_cmd_ioctl(struct file *file, struct request_queue *q, - struct gendisk *bd_disk, unsigned int cmd, void __user *arg) +static inline int blk_send_allow_medium_removal(struct request_queue *q, + struct gendisk *bd_disk) +{ + return __blk_send_generic(q, bd_disk, + GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL, 0); +} + +int scsi_cmd_ioctl(struct file *file, struct request_queue *q, struct gendisk *bd_disk, unsigned int cmd, void __user *arg) { int err; @@ -666,7 +674,11 @@ err = blk_send_start_stop(q, bd_disk, 0x03); break; case CDROMEJECT: - err = blk_send_start_stop(q, bd_disk, 0x02); + err = 0; + + err |= blk_send_allow_medium_removal(q, bd_disk); + err |= blk_send_start_stop(q, bd_disk, 0x01); + err |= blk_send_start_stop(q, bd_disk, 0x02); break; default: err = -ENOTTY; --- linux-2.6.24.orig/block/bsg.c +++ linux-2.6.24/block/bsg.c @@ -198,6 +198,8 @@ rq->timeout = q->sg_timeout; if (!rq->timeout) rq->timeout = BLK_DEFAULT_SG_TIMEOUT; + if (rq->timeout < BLK_MIN_SG_TIMEOUT) + rq->timeout = BLK_MIN_SG_TIMEOUT; return 0; } --- linux-2.6.24.orig/lib/Kconfig.debug +++ linux-2.6.24/lib/Kconfig.debug @@ -517,4 +517,16 @@ help Provide stacktrace filter for fault-injection capabilities +config LATENCYTOP + bool "Latency measuring infrastructure" + select FRAME_POINTER if !MIPS + select KALLSYMS + select KALLSYMS_ALL + select STACKTRACE + depends on SCHEDSTATS + help + Enable this option if you want to use the LatencyTOP tool + to find out which userspace is blocking on what kernel operations. + + source "samples/Kconfig" --- linux-2.6.24.orig/include/asm-mips/seccomp.h +++ linux-2.6.24/include/asm-mips/seccomp.h @@ -1,6 +1,5 @@ #ifndef __ASM_SECCOMP_H -#include #include #define __NR_seccomp_read __NR_read --- linux-2.6.24.orig/include/linux/pm.h +++ linux-2.6.24/include/linux/pm.h @@ -143,6 +143,9 @@ * the upcoming system state (such as PCI_D3hot), and enable * wakeup events as appropriate. * + * HIBERNATE Enter a low power device state appropriate for the hibernation + * state (eg. ACPI S4) and enable wakeup events as appropriate. + * * FREEZE Quiesce operations so that a consistent image can be saved; * but do NOT otherwise enter a low power device state, and do * NOT emit system wakeup events. @@ -166,11 +169,15 @@ #define PM_EVENT_ON 0 #define PM_EVENT_FREEZE 1 #define PM_EVENT_SUSPEND 2 -#define PM_EVENT_PRETHAW 3 +#define PM_EVENT_HIBERNATE 4 +#define PM_EVENT_PRETHAW 8 + +#define PM_EVENT_SLEEP (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE) #define PMSG_FREEZE ((struct pm_message){ .event = PM_EVENT_FREEZE, }) #define PMSG_PRETHAW ((struct pm_message){ .event = PM_EVENT_PRETHAW, }) #define PMSG_SUSPEND ((struct pm_message){ .event = PM_EVENT_SUSPEND, }) +#define PMSG_HIBERNATE ((struct pm_message){ .event = PM_EVENT_HIBERNATE, }) #define PMSG_ON ((struct pm_message){ .event = PM_EVENT_ON, }) struct dev_pm_info { --- linux-2.6.24.orig/include/linux/security.h +++ linux-2.6.24/include/linux/security.h @@ -56,13 +56,12 @@ extern int cap_bprm_set_security (struct linux_binprm *bprm); extern void cap_bprm_apply_creds (struct linux_binprm *bprm, int unsafe); extern int cap_bprm_secureexec(struct linux_binprm *bprm); -extern int cap_inode_setxattr(struct dentry *dentry, char *name, void *value, size_t size, int flags); -extern int cap_inode_removexattr(struct dentry *dentry, char *name); +extern int cap_inode_setxattr(struct dentry *dentry, struct vfsmount *mnt, char *name, void *value, size_t size, int flags, struct file *file); +extern int cap_inode_removexattr(struct dentry *dentry, struct vfsmount *mnt, char *name, struct file *file); extern int cap_inode_need_killpriv(struct dentry *dentry); extern int cap_inode_killpriv(struct dentry *dentry); extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); extern void cap_task_reparent_to_init (struct task_struct *p); -extern int cap_task_kill(struct task_struct *p, struct siginfo *info, int sig, u32 secid); extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp); extern int cap_task_setioprio (struct task_struct *p, int ioprio); extern int cap_task_setnice (struct task_struct *p, int nice); @@ -297,23 +296,28 @@ * Check permission to create a regular file. * @dir contains inode structure of the parent of the new file. * @dentry contains the dentry structure for the file to be created. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * @mode contains the file mode of the file to be created. * Return 0 if permission is granted. * @inode_link: * Check permission before creating a new hard link to a file. * @old_dentry contains the dentry structure for an existing link to the file. + * @old_mnt is the vfsmount corresponding to @old_dentry (may be NULL). * @dir contains the inode structure of the parent directory of the new link. * @new_dentry contains the dentry structure for the new link. + * @new_mnt is the vfsmount corresponding to @new_dentry (may be NULL). * Return 0 if permission is granted. * @inode_unlink: * Check the permission to remove a hard link to a file. * @dir contains the inode structure of parent directory of the file. * @dentry contains the dentry structure for file to be unlinked. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * Return 0 if permission is granted. * @inode_symlink: * Check the permission to create a symbolic link to a file. * @dir contains the inode structure of parent directory of the symbolic link. * @dentry contains the dentry structure of the symbolic link. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * @old_name contains the pathname of file. * Return 0 if permission is granted. * @inode_mkdir: @@ -321,12 +325,14 @@ * associated with inode strcture @dir. * @dir containst the inode structure of parent of the directory to be created. * @dentry contains the dentry structure of new directory. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * @mode contains the mode of new directory. * Return 0 if permission is granted. * @inode_rmdir: * Check the permission to remove a directory. * @dir contains the inode structure of parent of the directory to be removed. * @dentry contains the dentry structure of directory to be removed. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * Return 0 if permission is granted. * @inode_mknod: * Check permissions when creating a special file (or a socket or a fifo @@ -335,6 +341,7 @@ * and not this hook. * @dir contains the inode structure of parent of the new file. * @dentry contains the dentry structure of the new file. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * @mode contains the mode of the new file. * @dev contains the device number. * Return 0 if permission is granted. @@ -342,12 +349,15 @@ * Check for permission to rename a file or directory. * @old_dir contains the inode structure for parent of the old link. * @old_dentry contains the dentry structure of the old link. + * @old_mnt is the vfsmount corresponding to @old_dentry (may be NULL). * @new_dir contains the inode structure for parent of the new link. * @new_dentry contains the dentry structure of the new link. + * @new_mnt is the vfsmount corresponding to @new_dentry (may be NULL). * Return 0 if permission is granted. * @inode_readlink: * Check the permission to read the symbolic link. * @dentry contains the dentry structure for the file link. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * Return 0 if permission is granted. * @inode_follow_link: * Check permission to follow a symbolic link when looking up a pathname. @@ -371,6 +381,7 @@ * file attributes change (such as when a file is truncated, chown/chmod * operations, transferring disk quotas, etc). * @dentry contains the dentry structure for the file. + * @mnt is the vfsmount corresponding to @dentry (may be NULL). * @attr is the iattr structure containing the new file attributes. * Return 0 if permission is granted. * @inode_getattr: @@ -386,18 +397,18 @@ * inode. * @inode_setxattr: * Check permission before setting the extended attributes - * @value identified by @name for @dentry. + * @value identified by @name for @dentry and @mnt. * Return 0 if permission is granted. * @inode_post_setxattr: * Update inode security field after successful setxattr operation. - * @value identified by @name for @dentry. + * @value identified by @name for @dentry and @mnt. * @inode_getxattr: * Check permission before obtaining the extended attributes - * identified by @name for @dentry. + * identified by @name for @dentry and @mnt. * Return 0 if permission is granted. * @inode_listxattr: * Check permission before obtaining the list of extended attribute - * names for @dentry. + * names for @dentry and @mnt. * Return 0 if permission is granted. * @inode_removexattr: * Check permission before removing the extended attribute @@ -1247,32 +1258,45 @@ void (*inode_free_security) (struct inode *inode); int (*inode_init_security) (struct inode *inode, struct inode *dir, char **name, void **value, size_t *len); - int (*inode_create) (struct inode *dir, - struct dentry *dentry, int mode); - int (*inode_link) (struct dentry *old_dentry, - struct inode *dir, struct dentry *new_dentry); - int (*inode_unlink) (struct inode *dir, struct dentry *dentry); - int (*inode_symlink) (struct inode *dir, - struct dentry *dentry, const char *old_name); - int (*inode_mkdir) (struct inode *dir, struct dentry *dentry, int mode); - int (*inode_rmdir) (struct inode *dir, struct dentry *dentry); + int (*inode_create) (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode); + int (*inode_link) (struct dentry *old_dentry, struct vfsmount *old_mnt, + struct inode *dir, struct dentry *new_dentry, + struct vfsmount *new_mnt); + int (*inode_unlink) (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt); + int (*inode_symlink) (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, const char *old_name); + int (*inode_mkdir) (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode); + int (*inode_rmdir) (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt); int (*inode_mknod) (struct inode *dir, struct dentry *dentry, - int mode, dev_t dev); + struct vfsmount *mnt, int mode, dev_t dev); int (*inode_rename) (struct inode *old_dir, struct dentry *old_dentry, - struct inode *new_dir, struct dentry *new_dentry); - int (*inode_readlink) (struct dentry *dentry); + struct vfsmount *old_mnt, + struct inode *new_dir, struct dentry *new_dentry, + struct vfsmount *new_mnt); + int (*inode_readlink) (struct dentry *dentry, struct vfsmount *mnt); int (*inode_follow_link) (struct dentry *dentry, struct nameidata *nd); int (*inode_permission) (struct inode *inode, int mask, struct nameidata *nd); - int (*inode_setattr) (struct dentry *dentry, struct iattr *attr); + int (*inode_setattr) (struct dentry *dentry, struct vfsmount *mnt, + struct iattr *attr); int (*inode_getattr) (struct vfsmount *mnt, struct dentry *dentry); void (*inode_delete) (struct inode *inode); - int (*inode_setxattr) (struct dentry *dentry, char *name, void *value, - size_t size, int flags); - void (*inode_post_setxattr) (struct dentry *dentry, char *name, void *value, + int (*inode_setxattr) (struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, int flags, + struct file *file); + void (*inode_post_setxattr) (struct dentry *dentry, + struct vfsmount *mnt, + char *name, void *value, size_t size, int flags); - int (*inode_getxattr) (struct dentry *dentry, char *name); - int (*inode_listxattr) (struct dentry *dentry); - int (*inode_removexattr) (struct dentry *dentry, char *name); + int (*inode_getxattr) (struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file); + int (*inode_listxattr) (struct dentry *dentry, struct vfsmount *mnt, + struct file *file); + int (*inode_removexattr) (struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file); int (*inode_need_killpriv) (struct dentry *dentry); int (*inode_killpriv) (struct dentry *dentry); int (*inode_getsecurity)(const struct inode *inode, const char *name, void *buffer, size_t size, int err); @@ -1503,30 +1527,43 @@ void security_inode_free(struct inode *inode); int security_inode_init_security(struct inode *inode, struct inode *dir, char **name, void **value, size_t *len); -int security_inode_create(struct inode *dir, struct dentry *dentry, int mode); -int security_inode_link(struct dentry *old_dentry, struct inode *dir, - struct dentry *new_dentry); -int security_inode_unlink(struct inode *dir, struct dentry *dentry); +int security_inode_create(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode); +int security_inode_link(struct dentry *old_dentry, struct vfsmount *old_mnt, + struct inode *dir, struct dentry *new_dentry, + struct vfsmount *new_mnt); +int security_inode_unlink(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt); int security_inode_symlink(struct inode *dir, struct dentry *dentry, - const char *old_name); -int security_inode_mkdir(struct inode *dir, struct dentry *dentry, int mode); -int security_inode_rmdir(struct inode *dir, struct dentry *dentry); -int security_inode_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev); + struct vfsmount *mnt, const char *old_name); +int security_inode_mkdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode); +int security_inode_rmdir(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt); +int security_inode_mknod(struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode, dev_t dev); int security_inode_rename(struct inode *old_dir, struct dentry *old_dentry, - struct inode *new_dir, struct dentry *new_dentry); -int security_inode_readlink(struct dentry *dentry); + struct vfsmount *old_mnt, struct inode *new_dir, + struct dentry *new_dentry, struct vfsmount *new_mnt); +int security_inode_readlink(struct dentry *dentry, struct vfsmount *mnt); int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd); int security_inode_permission(struct inode *inode, int mask, struct nameidata *nd); -int security_inode_setattr(struct dentry *dentry, struct iattr *attr); +int security_inode_setattr(struct dentry *dentry, struct vfsmount *mnt, + struct iattr *attr); int security_inode_getattr(struct vfsmount *mnt, struct dentry *dentry); void security_inode_delete(struct inode *inode); -int security_inode_setxattr(struct dentry *dentry, char *name, - void *value, size_t size, int flags); -void security_inode_post_setxattr(struct dentry *dentry, char *name, - void *value, size_t size, int flags); -int security_inode_getxattr(struct dentry *dentry, char *name); -int security_inode_listxattr(struct dentry *dentry); -int security_inode_removexattr(struct dentry *dentry, char *name); +int security_inode_setxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, int flags, + struct file *file); +void security_inode_post_setxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, void *value, size_t size, + int flags); +int security_inode_getxattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file); +int security_inode_listxattr(struct dentry *dentry, struct vfsmount *mnt, + struct file *file); +int security_inode_removexattr(struct dentry *dentry, struct vfsmount *mnt, + char *name, struct file *file); int security_inode_need_killpriv(struct dentry *dentry); int security_inode_killpriv(struct dentry *dentry); int security_inode_getsecurity(const struct inode *inode, const char *name, void *buffer, size_t size, int err); @@ -1813,26 +1850,31 @@ static inline int security_inode_create (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode) { return 0; } static inline int security_inode_link (struct dentry *old_dentry, + struct vfsmount *old_mnt, struct inode *dir, - struct dentry *new_dentry) + struct dentry *new_dentry, + struct vfsmount *new_mnt) { return 0; } static inline int security_inode_unlink (struct inode *dir, - struct dentry *dentry) + struct dentry *dentry, + struct vfsmount *mnt) { return 0; } static inline int security_inode_symlink (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, const char *old_name) { return 0; @@ -1840,19 +1882,22 @@ static inline int security_inode_mkdir (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode) { return 0; } static inline int security_inode_rmdir (struct inode *dir, - struct dentry *dentry) + struct dentry *dentry, + struct vfsmount *mnt) { return 0; } static inline int security_inode_mknod (struct inode *dir, struct dentry *dentry, + struct vfsmount *mnt, int mode, dev_t dev) { return 0; @@ -1860,13 +1905,16 @@ static inline int security_inode_rename (struct inode *old_dir, struct dentry *old_dentry, + struct vfsmount *old_mnt, struct inode *new_dir, - struct dentry *new_dentry) + struct dentry *new_dentry, + struct vfsmount *new_mnt) { return 0; } -static inline int security_inode_readlink (struct dentry *dentry) +static inline int security_inode_readlink(struct dentry *dentry, + struct vfsmount *mnt) { return 0; } @@ -1884,6 +1932,7 @@ } static inline int security_inode_setattr (struct dentry *dentry, + struct vfsmount *mnt, struct iattr *attr) { return 0; @@ -1898,29 +1947,40 @@ static inline void security_inode_delete (struct inode *inode) { } -static inline int security_inode_setxattr (struct dentry *dentry, char *name, - void *value, size_t size, int flags) -{ - return cap_inode_setxattr(dentry, name, value, size, flags); +static inline int security_inode_setxattr (struct dentry *dentry, + struct vfsmount *mnt, char *name, + void *value, size_t size, int flags, + struct file *file) +{ + return cap_inode_setxattr(dentry, mnt, name, value, size, flags, file); } -static inline void security_inode_post_setxattr (struct dentry *dentry, char *name, - void *value, size_t size, int flags) +static inline void security_inode_post_setxattr (struct dentry *dentry, + struct vfsmount *mnt, + char *name, + void *value, size_t size, + int flags) { } -static inline int security_inode_getxattr (struct dentry *dentry, char *name) +static inline int security_inode_getxattr (struct dentry *dentry, + struct vfsmount *mnt, char *name, + struct file *file) { return 0; } -static inline int security_inode_listxattr (struct dentry *dentry) +static inline int security_inode_listxattr (struct dentry *dentry, + struct vfsmount *mnt, + struct file *file) { return 0; } -static inline int security_inode_removexattr (struct dentry *dentry, char *name) +static inline int security_inode_removexattr (struct dentry *dentry, + struct vfsmount *mnt, char *name, + struct file *file) { - return cap_inode_removexattr(dentry, name); + return cap_inode_removexattr(dentry, mnt, name, file); } static inline int security_inode_need_killpriv(struct dentry *dentry) @@ -2112,7 +2172,7 @@ struct siginfo *info, int sig, u32 secid) { - return cap_task_kill(p, info, sig, secid); + return 0; } static inline int security_task_wait (struct task_struct *p) --- linux-2.6.24.orig/include/linux/wireless.h +++ linux-2.6.24/include/linux/wireless.h @@ -541,6 +541,16 @@ /* Maximum size of returned data */ #define IW_SCAN_MAX_DATA 4096 /* In bytes */ +/* Scan capability flags - in (struct iw_range *)->scan_capa */ +#define IW_SCAN_CAPA_NONE 0x00 +#define IW_SCAN_CAPA_ESSID 0x01 +#define IW_SCAN_CAPA_BSSID 0x02 +#define IW_SCAN_CAPA_CHANNEL 0x04 +#define IW_SCAN_CAPA_MODE 0x08 +#define IW_SCAN_CAPA_RATE 0x10 +#define IW_SCAN_CAPA_TYPE 0x20 +#define IW_SCAN_CAPA_TIME 0x40 + /* Max number of char in custom event - use multiple of them if needed */ #define IW_CUSTOM_MAX 256 /* In bytes */ @@ -963,6 +973,9 @@ __u16 old_num_channels; __u8 old_num_frequency; + /* Scan capabilities */ + __u8 scan_capa; /* IW_SCAN_CAPA_* bit field */ + /* Wireless event capability bitmasks */ __u32 event_capa[6]; --- linux-2.6.24.orig/include/linux/sched.h +++ linux-2.6.24/include/linux/sched.h @@ -88,6 +88,7 @@ #include #include #include +#include #include @@ -847,6 +848,10 @@ void (*set_curr_task) (struct rq *rq); void (*task_tick) (struct rq *rq, struct task_struct *p); void (*task_new) (struct rq *rq, struct task_struct *p); + +#ifdef CONFIG_FAIR_GROUP_SCHED + void (*moved_group) (struct task_struct *p); +#endif }; struct load_weight { @@ -1178,6 +1183,11 @@ int make_it_fail; #endif struct prop_local_single dirties; +#ifdef CONFIG_LATENCYTOP + int latency_record_count; + struct latency_record latency_record[LT_SAVECOUNT]; +#endif + struct list_head *scm_work_list; }; /* @@ -1449,6 +1459,12 @@ extern void sched_idle_next(void); +#if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP) +extern void wake_up_idle_cpu(int cpu); +#else +static inline void wake_up_idle_cpu(int cpu) { } +#endif + #ifdef CONFIG_SCHED_DEBUG extern unsigned int sysctl_sched_latency; extern unsigned int sysctl_sched_min_granularity; --- linux-2.6.24.orig/include/linux/rfkill.h +++ linux-2.6.24/include/linux/rfkill.h @@ -33,11 +33,13 @@ * RFKILL_TYPE_WLAN: switch is on a 802.11 wireless network device. * RFKILL_TYPE_BLUETOOTH: switch is on a bluetooth device. * RFKILL_TYPE_UWB: switch is on a ultra wideband device. + * RFKILL_TYPE_WIMAX: switch is on a WiMAX device. */ enum rfkill_type { RFKILL_TYPE_WLAN , RFKILL_TYPE_BLUETOOTH, RFKILL_TYPE_UWB, + RFKILL_TYPE_WIMAX, RFKILL_TYPE_MAX, }; --- linux-2.6.24.orig/include/linux/capability.h +++ linux-2.6.24/include/linux/capability.h @@ -121,7 +121,12 @@ /* Used to decide between falling back on the old suser() or fsuser(). */ -#define CAP_FS_MASK 0x1f +#define CAP_FS_MASK (CAP_TO_MASK(CAP_CHOWN) \ + | CAP_TO_MASK(CAP_MKNOD) \ + | CAP_TO_MASK(CAP_DAC_OVERRIDE) \ + | CAP_TO_MASK(CAP_DAC_READ_SEARCH) \ + | CAP_TO_MASK(CAP_FOWNER) \ + | CAP_TO_MASK(CAP_FSETID)) /* Overrides the restriction that the real or effective user ID of a process sending a signal must match the real or effective user ID --- linux-2.6.24.orig/include/linux/blkdev.h +++ linux-2.6.24/include/linux/blkdev.h @@ -607,6 +607,7 @@ * default timeout for SG_IO if none specified */ #define BLK_DEFAULT_SG_TIMEOUT (60 * HZ) +#define BLK_MIN_SG_TIMEOUT (7 * HZ) #ifdef CONFIG_BOUNCE extern int init_emergency_isa_pool(void); --- linux-2.6.24.orig/include/linux/inotify.h +++ linux-2.6.24/include/linux/inotify.h @@ -128,6 +128,8 @@ struct inotify_watch *); extern void get_inotify_watch(struct inotify_watch *); extern void put_inotify_watch(struct inotify_watch *); +extern int pin_inotify_watch(struct inotify_watch *); +extern void unpin_inotify_watch(struct inotify_watch *); #else @@ -222,6 +224,15 @@ { } +extern inline int pin_inotify_watch(struct inotify_watch *watch) +{ + return 0; +} + +extern inline void unpin_inotify_watch(struct inotify_watch *watch) +{ +} + #endif /* CONFIG_INOTIFY */ #endif /* __KERNEL __ */ --- linux-2.6.24.orig/include/linux/irq.h +++ linux-2.6.24/include/linux/irq.h @@ -367,6 +367,9 @@ __set_irq_handler(irq, handle, 1, NULL); } +extern void set_irq_noprobe(unsigned int irq); +extern void set_irq_probe(unsigned int irq); + /* Handle dynamic irq creation and destruction */ extern int create_irq(void); extern void destroy_irq(unsigned int irq); --- linux-2.6.24.orig/include/linux/virtio_blk.h +++ linux-2.6.24/include/linux/virtio_blk.h @@ -6,15 +6,19 @@ #define VIRTIO_ID_BLOCK 2 /* Feature bits */ -#define VIRTIO_CONFIG_BLK_F 0x40 -#define VIRTIO_BLK_F_BARRIER 1 /* Does host support barriers? */ +#define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */ +#define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */ +#define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */ -/* The capacity (in 512-byte sectors). */ -#define VIRTIO_CONFIG_BLK_F_CAPACITY 0x41 -/* The maximum segment size. */ -#define VIRTIO_CONFIG_BLK_F_SIZE_MAX 0x42 -/* The maximum number of segments. */ -#define VIRTIO_CONFIG_BLK_F_SEG_MAX 0x43 +struct virtio_blk_config +{ + /* The capacity (in 512-byte sectors). */ + __le64 capacity; + /* The maximum segment size (if VIRTIO_BLK_F_SIZE_MAX) */ + __le32 size_max; + /* The maximum number of segments (if VIRTIO_BLK_F_SEG_MAX) */ + __le32 seg_max; +} __attribute__((packed)); /* These two define direction. */ #define VIRTIO_BLK_T_IN 0 @@ -35,8 +39,6 @@ __u32 ioprio; /* Sector (ie. 512 byte offset) */ __u64 sector; - /* Where to put reply. */ - __u64 id; }; #define VIRTIO_BLK_S_OK 0 --- linux-2.6.24.orig/include/linux/input.h +++ linux-2.6.24/include/linux/input.h @@ -371,6 +371,8 @@ #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */ #define KEY_DISPLAY_OFF 245 /* display device to off state */ +#define KEY_WIMAX 246 + #define BTN_MISC 0x100 #define BTN_0 0x100 #define BTN_1 0x101 --- linux-2.6.24.orig/include/linux/virtio.h +++ linux-2.6.24/include/linux/virtio.h @@ -11,15 +11,13 @@ /** * virtqueue - a queue to register buffers for sending or receiving. * @callback: the function to call when buffers are consumed (can be NULL). - * If this returns false, callbacks are suppressed until vq_ops->restart - * is called. * @vdev: the virtio device this queue was created for. * @vq_ops: the operations for this virtqueue (see below). * @priv: a pointer for the virtqueue implementation to use. */ struct virtqueue { - bool (*callback)(struct virtqueue *vq); + void (*callback)(struct virtqueue *vq); struct virtio_device *vdev; struct virtqueue_ops *vq_ops; void *priv; @@ -41,16 +39,19 @@ * vq: the struct virtqueue we're talking about. * len: the length written into the buffer * Returns NULL or the "data" token handed to add_buf. - * @restart: restart callbacks after callback returned false. + * @disable_cb: disable callbacks * vq: the struct virtqueue we're talking about. - * This returns "false" (and doesn't re-enable) if there are pending - * buffers in the queue, to avoid a race. - * @shutdown: "unadd" all buffers. + * Note that this is not necessarily synchronous, hence unreliable and only + * useful as an optimization. + * @enable_cb: restart callbacks after disable_cb. * vq: the struct virtqueue we're talking about. - * Remove everything from the queue. + * This re-enables callbacks; it returns "false" if there are pending + * buffers in the queue, to detect a possible race between the driver + * checking for more work, and enabling callbacks. * * Locking rules are straightforward: the driver is responsible for - * locking. No two operations may be invoked simultaneously. + * locking. No two operations may be invoked simultaneously, with the exception + * of @disable_cb. * * All operations can be called in any context. */ @@ -65,9 +66,8 @@ void *(*get_buf)(struct virtqueue *vq, unsigned int *len); - bool (*restart)(struct virtqueue *vq); - - void (*shutdown)(struct virtqueue *vq); + void (*disable_cb)(struct virtqueue *vq); + bool (*enable_cb)(struct virtqueue *vq); }; /** @@ -97,12 +97,15 @@ * @probe: the function to call when a device is found. Returns a token for * remove, or PTR_ERR(). * @remove: the function when a device is removed. + * @config_changed: optional function to call when the device configuration + * changes; may be called in interrupt context. */ struct virtio_driver { struct device_driver driver; const struct virtio_device_id *id_table; int (*probe)(struct virtio_device *dev); void (*remove)(struct virtio_device *dev); + void (*config_changed)(struct virtio_device *dev); }; int register_virtio_driver(struct virtio_driver *drv); --- linux-2.6.24.orig/include/linux/dcache.h +++ linux-2.6.24/include/linux/dcache.h @@ -300,6 +300,8 @@ */ extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); +extern char *__d_path(struct dentry *, struct vfsmount *, struct dentry *, + struct vfsmount *, char *, int, int); extern char * d_path(struct dentry *, struct vfsmount *, char *, int); /* Allocation counts.. */ --- linux-2.6.24.orig/include/linux/ktime.h +++ linux-2.6.24/include/linux/ktime.h @@ -310,6 +310,8 @@ return ktime_sub_ns(kt, usec * 1000); } +extern ktime_t ktime_add_safe(const ktime_t lhs, const ktime_t rhs); + /* * The resolution of the clocks. The resolution value is returned in * the clock_getres() system call to give application programmers an --- linux-2.6.24.orig/include/linux/namei.h +++ linux-2.6.24/include/linux/namei.h @@ -81,6 +81,7 @@ extern struct file *nameidata_to_filp(struct nameidata *nd, int flags); extern void release_open_intent(struct nameidata *); +struct dentry * __lookup_hash(struct qstr *name, struct dentry * base, struct nameidata *nd); extern struct dentry *lookup_one_len(const char *, struct dentry *, int); extern struct dentry *lookup_one_noperm(const char *, struct dentry *); --- linux-2.6.24.orig/include/linux/ethtool.h +++ linux-2.6.24/include/linux/ethtool.h @@ -12,6 +12,7 @@ #ifndef _LINUX_ETHTOOL_H #define _LINUX_ETHTOOL_H +#include /* This should work for both 32 and 64 bit userland. */ struct ethtool_cmd { --- linux-2.6.24.orig/include/linux/mmc/sd_protocol.h +++ linux-2.6.24/include/linux/mmc/sd_protocol.h @@ -0,0 +1,314 @@ +/* + * sd_protocol.h - SD Protocol driver header file + * + * Copyright (C) 2007 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License Version 2 only + * for now as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * derived from previous mmc code in Linux kernel + * Copyright (c) 2002 Hewlett-Packard Company + * Copyright (c) 2002 Andrew Christian + * Copyright (c) 2006 Bridge Wu + */ + + + +#ifndef __SD_PROTOCOL_H__ +#define __SD_PROTOCOL_H__ + +#include + +#define SD_PROTOCOL "sd" + +#define MSS_SD_QUERY_FUNC 0x100 +#define MSS_SD_SW_FUNC 0x101 + +/* Standard SD clock speeds */ +#define SD_CARD_CLOCK_SLOW 0 +#define SD_CARD_CLOCK_FAST 50000000 + +/* command type: ac(addressed command), bcr(broadcase command with response), + * adtc(addressed data transfer command), bc(broadcase command) + */ + +/* Standard SD commands (1.01) type argument response */ + /* class 0, basic: 0, 2-4, 7, 9, 10, 12, 13, 15 */ +#define SD_GO_IDLE_STATE 0 /* bc */ +#define SD_ALL_SEND_CID 2 /* bcr R2 */ +#define SD_SEND_RELATIVE_ADDR 3 /* ac [31:16] RCA R1 */ +#define SD_SET_DSR 4 /* bc [31:16] RCA */ +#define SD_SELECT_CARD 7 /* ac [31:16] RCA R1 */ +#define SD_SEND_CSD 9 /* ac [31:16] RCA R2 */ +#define SD_SEND_CID 10 /* ac [31:16] RCA R2 */ +#define SD_STOP_TRANSMISSION 12 /* ac R1b */ +#define SD_SEND_STATUS 13 /* ac [31:16] RCA R1 */ +#define SD_GO_INACTIVE_STATE 15 /* ac [31:16] RCA */ +#define SD_SW_FUNC 6 +#define SD_SEND_IF_COND 8 + + /* class 1: reserved */ + /* class 3: reserved */ + + /* class 2, block read: 16-18 */ +#define SD_SET_BLOCKLEN 16 /* ac [31:0] block len R1 */ +#define SD_READ_SINGLE_BLOCK 17 /* adtc [31:0] data addr R1 */ +#define SD_READ_MULTIPLE_BLOCK 18 /* adtc [31:0] data addr R1 */ + + /* class 4, block write: 16, 24, 25, 27 */ +#define SD_WRITE_BLOCK 24 /* adtc [31:0] data addr R1 */ +#define SD_WRITE_MULTIPLE_BLOCK 25 /* adtc [31:0] data addr R1 */ +#define SD_PROGRAM_CID 26 /* adtc R1 */ +#define SD_PROGRAM_CSD 27 /* adtc R1 */ +/* CMD26 appeared in SDMC state diagram(data transfer mode) */ + + /* class 6, write-protection: 28, 29, 30 */ +#define SD_SET_WRITE_PROT 28 /* ac [31:0] data addr R1b */ +#define SD_CLR_WRITE_PROT 29 /* ac [31:0] data addr R1b */ +#define SD_SEND_WRITE_PROT 30 /* adtc [31:0] wpdata addr R1 */ + + /* class 5, erase: 32, 33, 38 */ +#define SD_ERASE_WR_BLOCK_START 32 /* ac [31:0] data addr R1 */ +#define SD_ERASE_WR_BLOCK_END 33 /* ac [31:0] data addr R1 */ +#define SD_ERASE 38 /* ac R1b */ + + /* class 7, lock card: 42 */ +#define SD_LOCK_UNLOCK 42 /* adtc R1b */ + + /* class 8, application specific: 55, 56 */ +#define SD_APP_CMD 55 /* ac [31:16] RCA R1 */ +#define SD_GEN_CMD 56 /* adtc [0] RD/WR R1b */ + + /* class 8, application specific: ACMD6,13,22,23,41,42,51 */ +#define SD_SET_BUS_WIDTH 6 /* ac [1:0] BUS WIDTH R1 */ +#define SD_SD_STATUS 13 /* adtc R1 */ +#define SD_SEND_NUM_WR_BLOCKS 22 /* adtc R1 */ +#define SD_SET_WR_BLK_ERASE_COUNT 23 /* ac [22:0] No.Blocks R1 */ +#define SD_SD_SEND_OP_COND 41 /* bcr [31:0] OCR R3 */ +#define SD_SET_CLR_CARD_DETECT 42 /* ac [0] set_cd R1 */ +#define SD_SEND_SCR 51 /* adtc R1 */ + +/* + SD card status in R1: compatible to the MMC protocol + (SD status: extended status field of 512b, ACMD13 require card to send this) + Type + e : error bit + s : status bit + r : detected and set for the actual command response + x : detected and set during command execution. the host must poll + the card by sending status command in order to read these bits. + Clear condition + a : according to the card state + b : always related to the previous command. Reception of + a valid command will clear it (with a delay of one command) + c : clear by read + */ + +#define R1_OUT_OF_RANGE (1 << 31) /* er, c */ +#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */ +#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */ +#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */ +#define R1_ERASE_PARAM (1 << 27) /* ex, c */ +#define R1_WP_VIOLATION (1 << 26) /* erx, c */ +#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */ +#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */ +#define R1_COM_CRC_ERROR (1 << 23) /* er, b */ +#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */ +#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */ +#define R1_CC_ERROR (1 << 20) /* erx, c */ +#define R1_ERROR (1 << 19) /* erx, c */ +#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */ +#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */ +#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */ +#define R1_ERASE_RESET (1 << 13) /* sr, c */ +#define R1_STATUS(x) ((x) & 0xFFFFE000) + +#define R1_CURRENT_STATE(x) (((x) & 0x00001E00) >> 9) /* sx, b (4 bits) */ +#define R1_READY_FOR_DATA (1 << 8) /* sx, a */ +#define R1_APP_CMD (1 << 5) /* sr, c */ +#define R1_AKE_SEQ_ERROR (1 << 3) /* er, c */ + + +#define R6_COM_CRC_ERROR (1 << 15) /* er, b */ +#define R6_ILLEGAL_COMMAND (1 << 14) /* er, b */ +#define R6_ERROR (1 << 13) /* erx, c */ +#define R6_STATUS(x) ((x) & 0xFFFFE000) +#define R6_CURRENT_STATE(x) (((x) & 0x00001E00) >> 9) /* sx, b (4 bits) */ +#define R6_READY_FOR_DATA (1 << 8) /* sx, a */ +#define R6_APP_CMD (1 << 5) /* sr, c */ + +/** + * SD status: extended status field of 512b, ACMD13 require card to send this. + * [511:510] DAT_BUS_WIDTH SR A + * [509] SECURE_MODE SR A + * [495:480] SD_CARD_TYPE SR A + * [479:448] SIZE_OF_PROTECTED_AREA SR A + */ +enum sd_status_error { + SD_ERROR_NONE = 0, + SD_ERROR_OUT_OF_RANGE, + SD_ERROR_ADDRESS, + SD_ERROR_BLOCK_LEN, + SD_ERROR_ERASE_SEQ, + SD_ERROR_ERASE_PARAM, + SD_ERROR_WP_VIOLATION, + SD_ERROR_CARD_IS_LOCKED, + SD_ERROR_LOCK_UNLOCK_FAILED, + SD_ERROR_COM_CRC, + SD_ERROR_ILLEGAL_COMMAND, /* 10 */ + SD_ERROR_CARD_ECC_FAILED, + SD_ERROR_CC, + SD_ERROR_GENERAL, + SD_ERROR_CID_CSD_OVERWRITE, + SD_ERROR_AKE_SEQ, + SD_ERROR_SWFUNC, + SD_ERROR_STATE_MISMATCH, + SD_ERROR_HEADER_MISMATCH, +}; + + + +enum card_state { + CARD_STATE_EMPTY = -1, + CARD_STATE_IDLE = 0, + CARD_STATE_READY = 1, + CARD_STATE_IDENT = 2, + CARD_STATE_STBY = 3, + CARD_STATE_TRAN = 4, + CARD_STATE_DATA = 5, + CARD_STATE_RCV = 6, + CARD_STATE_PRG = 7, + CARD_STATE_DIS = 8, + CARD_STATE_CMD = 9 +}; + +struct sd_cid { + u8 mid; + u16 oid; + u8 pnm[6]; // Product name (we null-terminate) + u8 prv; + u32 psn; + u16 mdt; +}; + +struct sd_csd { + u8 csd_structure; +#define CSD_STRUCT_VER_1_0 0 /* Valid for system specification 1.0 - 1.2 */ +#define CSD_STRUCT_VER_1_1 1 /* Valid for system specification 1.4 - 2.2 */ +#define CSD_STRUCT_VER_1_2 2 /* Valid for system specification 3.1 */ + u8 taac; + u8 nsac; + u8 tran_speed; + u16 ccc; + u8 read_bl_len; + u8 read_bl_partial; + u8 write_blk_misalign; + u8 read_blk_misalign; + u8 dsr_imp; + union { + struct { + u16 c_size; + u8 vdd_r_curr_min; + u8 vdd_r_curr_max; + u8 vdd_w_curr_min; + u8 vdd_w_curr_max; + u8 c_size_mult; + } csd1; + struct { + u32 c_size; + } csd2; + }csd; + u8 erase_blk_en; + u8 sector_size; + u8 wp_grp_size; + u8 wp_grp_enable; + u8 r2w_factor; + u8 write_bl_len; + u8 write_bl_partial; + u8 file_format_grp; + u8 copy; + u8 perm_write_protect; + u8 tmp_write_protect; + u8 file_format; +}; + +struct sd_scr { + u8 scr_structure; + u8 sd_spec; + u8 data_stat_after_erase; + u8 sd_security; + u8 sd_bus_width; +#define SCR_BUSWIDTH_1BIT 0 +#define SCR_BUSWIDTH_4BIT (1 << 2) + u8 init; +}; + +/* These are unpacked versions of the actual responses */ + +struct sd_response_r1 { + u8 cmd; + u32 status; +}; + +struct sd_response_r3 { + u8 cmd; + u32 ocr; +#define SD_OCR_CARD_BUSY (1 << 31) /* Card Power up status bit */ +#define SD_OCR_CCS (1 << 30) +}; + +struct sd_response_r6 { + u8 cmd; + u16 rca; + u16 status; +}; + +struct sd_response_r7 { + u8 cmd; + u8 ver; + u8 vca; + u8 pattern; +}; + +struct sw_func_status { + u16 current_consumption; + u16 func_support[6]; + u8 group_status[6]; + u16 func_busy[6]; +}; + +struct sd_card { + struct sd_cid cid; + struct sd_csd csd; + struct sd_scr scr; + u32 ocr; + u32 rca:16, + ver:8, + high_speed:2; + char *buf; + struct mss_ll_request llreq; + struct mss_cmd cmd; + struct mss_data data; + enum sd_status_error errno; + enum card_state state; + u32 block_len; +}; + +struct io_swfunc_request { + u16 current_acceptable; + u8 args[6]; +}; + +#endif --- linux-2.6.24.orig/include/linux/mmc/sdio_protocol.h +++ linux-2.6.24/include/linux/mmc/sdio_protocol.h @@ -0,0 +1,374 @@ +/* + * sdio_protocol.h - SDIO Protocol driver header file + * + * Copyright (C) 2007 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License Version 2 only + * for now as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * derived from previous mmc code in Linux kernel + * Copyright (c) 2002 Hewlett-Packard Company + * Copyright (c) 2002 Andrew Christian + * Copyright (c) 2006 Bridge Wu + */ + + +#ifndef __SDIO_PROTOCOL_H__ +#define __SDIO_PROTOCOL_H__ + +#define SDIO_PROTOCOL "sdio" + +#define SDIO_READ 0 +#define SDIO_WRITE 1 + +#define CMD53_OP_FIXED 0 +#define CMD53_OP_INC 1 + +/* Standard SD clock speeds */ +#define SDIO_CARD_CLOCK_SLOW 0 /* 0/100KHz -- 400 kHz for initial setup */ +#define SDIO_CARD_CLOCK_FAST 25000000 /* 25 MHz for maximum for normal operation */ + +/* command type: ac(addressed command), bcr(broadcase command with response), + * adtc(addressed data transfer command), bc(broadcase command) + */ + +/* Standard SD commands (1.01) type argument response */ + /* class 0, basic: 0, 2-4, 7, 9, 10, 12, 13, 15 */ +#define SD_GO_IDLE_STATE 0 /* bc */ +#define SD_ALL_SEND_CID 2 /* bcr R2 */ +#define SD_SET_RELATIVE_ADDR 3 /* ac [31:16] RCA R1 */ +#define SD_SET_DSR 4 /* bc [31:16] RCA */ +#define SD_SELECT_CARD 7 /* ac [31:16] RCA R1 */ +#define SD_SEND_CSD 9 /* ac [31:16] RCA R2 */ +#define SD_SEND_CID 10 /* ac [31:16] RCA R2 */ +#define SD_STOP_TRANSMISSION 12 /* ac R1b */ +#define SD_SEND_STATUS 13 /* ac [31:16] RCA R1 */ +#define SD_GO_INACTIVE_STATE 15 /* ac [31:16] RCA */ + + /* class 1: reserved */ + /* class 3: reserved */ + + /* class 2, block read: 16-18 */ +#define SD_SET_BLOCKLEN 16 /* ac [31:0] block len R1 */ +#define SD_READ_SINGLE_BLOCK 17 /* adtc [31:0] data addr R1 */ +#define SD_READ_MULTIPLE_BLOCK 18 /* adtc [31:0] data addr R1 */ + + /* class 4, block write: 16, 24, 25, 27 */ +#define SD_WRITE_BLOCK 24 /* adtc [31:0] data addr R1 */ +#define SD_WRITE_MULTIPLE_BLOCK 25 /* adtc [31:0] data addr R1 */ +#define SD_PROGRAM_CID 26 /* adtc R1 */ +#define SD_PROGRAM_CSD 27 /* adtc R1 */ +/* CMD26 appeared in SDMC state diagram(data transfer mode) */ + + /* class 6, write-protection: 28, 29, 30 */ +#define SD_SET_WRITE_PROT 28 /* ac [31:0] data addr R1b */ +#define SD_CLR_WRITE_PROT 29 /* ac [31:0] data addr R1b */ +#define SD_SEND_WRITE_PROT 30 /* adtc [31:0] wpdata addr R1 */ + + /* class 5, erase: 32, 33, 38 */ +#define SD_ERASE_WR_BLOCK_START 32 /* ac [31:0] data addr R1 */ +#define SD_ERASE_WR_BLOCK_END 33 /* ac [31:0] data addr R1 */ +#define SD_ERASE 38 /* ac R1b */ + + /* class 7, lock card: 42 */ +#define SD_LOCK_UNLOCK 42 /* adtc R1b */ + + /* class 8, application specific: 55, 56 */ +#define SD_APP_CMD 55 /* ac [31:16] RCA R1 */ +#define SD_GEN_CMD 56 /* adtc [0] RD/WR R1b */ + + /* class 8, application specific: ACMD6,13,22,23,41,42,51 */ +#define SD_SET_BUS_WIDTH 6 /* ac [1:0] BUS WIDTH R1 */ +#define SD_SD_STATUS 13 /* adtc R1 */ +#define SD_SEND_NUM_WR_BLOCKS 22 /* adtc R1 */ +#define SD_SET_WR_BLK_ERASE_COUNT 23 /* ac [22:0] No.Blocks R1 */ +#define SD_SD_SEND_OP_COND 41 /* bcr [31:0] OCR R3 */ +#define SD_SET_CLR_CARD_DETECT 42 /* ac [0] set_cd R1 */ +#define SD_SEND_SCR 51 /* adtc R1 */ + + + +/* SDIO cmd */ +#define IO_SEND_OP_COND 5 /* bcr [23:0] OCR R4 */ +#define IO_RW_DIRECT 52 /* R5 */ +#define IO_RW_EXTENDED 53 /* R5 */ + +/* + SD card status in R1: compatible to the MMC protocol + (SD status: extended status field of 512b, ACMD13 require card to send this) + Type + e : error bit + s : status bit + r : detected and set for the actual command response + x : detected and set during command execution. the host must poll + the card by sending status command in order to read these bits. + Clear condition + a : according to the card state + b : always related to the previous command. Reception of + a valid command will clear it (with a delay of one command) + c : clear by read + */ + +#define R1_OUT_OF_RANGE (1 << 31) /* er, c */ +#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */ +#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */ +#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */ +#define R1_ERASE_PARAM (1 << 27) /* ex, c */ +#define R1_WP_VIOLATION (1 << 26) /* erx, c */ +#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */ +#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */ +#define R1_COM_CRC_ERROR (1 << 23) /* er, b */ +#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */ +#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */ +#define R1_CC_ERROR (1 << 20) /* erx, c */ +#define R1_ERROR (1 << 19) /* erx, c */ +#define R1_UNDERRUN (1 << 18) /* ex, c */ +#define R1_OVERRUN (1 << 17) /* ex, c */ +#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */ +#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */ +#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */ +#define R1_ERASE_RESET (1 << 13) /* sr, c */ +#define R1_STATUS(x) (x & 0xFFFFE000) + +#define R1_CURRENT_STATE(x) ((x & 0x00001E00) >> 9) /* sx, b (4 bits) */ +#define R1_READY_FOR_DATA (1 << 8) /* sx, a */ +#define R1_APP_CMD (1 << 5) /* sr, c */ +#define R1_AKE_SEQ_ERROR (1 << 3) /* er, c */ + + +/** + * SD status: extended status field of 512b, ACMD13 require card to send this. + * [511:510] DAT_BUS_WIDTH SR A + * [509] SECURE_MODE SR A + * [495:480] SD_CARD_TYPE SR A + * [479:448] SIZE_OF_PROTECTED_AREA SR A + */ + +/* for SDIO response r5 r6*/ +#define R5_COM_CRC_ERROR (1 << 7) /* er, b */ +#define R5_ILLEGAL_COMMAND (1 << 6) /* er, b */ +#define R5_ERROR (1 << 3) /* er, c */ +#define R5_FUNCTION_NUMBER (1 << 1) /* er, c */ +#define R5_OUT_OF_RANGE (1 << 0) /* er, c */ +#define R5_CURRENT_STATE(x) ((x & 0x30) >> 4) /* sx, b (4 bits) */ + +#define R6_COM_CRC_ERROR (1 << 15) /* er, b */ +#define R6_ILLEGAL_COMMAND (1 << 14) /* er, b */ +#define R6_ERROR (1 << 13) /* erx, c */ +#define R6_STATUS(x) (x & 0xFFFFE000) +#define R6_CURRENT_STATE(x) ((x & 0x00001E00) >> 9) /* sx, b (4 bits) */ +#define R6_READY_FOR_DATA (1 << 8) /* sx, a */ +#define R6_APP_CMD (1 << 5) /* sr, c */ + + +#define MAX_FUNC_NUMBER 8 + +/* cccr register */ +#define CCCR_SDIO_REVISION (0x00) +#define SD_SPEC_REVISION (0x01) +#define IO_ENABLE (0x02) +#define IO_READY (0x03) +#define INT_ENABLE (0x04) +#define INT_PENDING (0x05) +#define IO_ABORT (0x06) +#define BUS_IF_CTRL (0x07) +#define CARD_CAPABILITY (0x08) +#define COMMON_CIS_POINTER_1 (0x09) +#define COMMON_CIS_POINTER_2 (0x0a) +#define COMMON_CIS_POINTER_3 (0x0b) +#define BUS_SUSPEND (0x0c) +#define FUNCTION_SELECT (0x0d) +#define EXEC_FLAGS (0x0e) +#define READY_FLAGS (0x0f) +#define FN0_BLKSZ_1 (0x10) +#define FN0_BLKSZ_2 (0x11) +#define POWER_CTRL (0x12) + +/* fbr register */ +#define FNn_IF_CODE(n) ((n << 8) | 0x00) +#define FNn_EXT_IF_CODE(n) ((n << 8) | 0x01) +#define FNn_SPS(n) ((n << 8) | 0x02) +#define FNn_CIS_POINTER_1(n) ((n << 8) | 0x09) +#define FNn_CIS_POINTER_2(n) ((n << 8) | 0x0a) +#define FNn_CIS_POINTER_3(n) ((n << 8) | 0x0b) +#define FNn_CSA_POINTER_1(n) ((n << 8) | 0x0c) +#define FNn_CSA_POINTER_2(n) ((n << 8) | 0x0d) +#define FNn_CSA_POINTER_3(n) ((n << 8) | 0x0e) +#define FNn_CSA_ACCESS_WIN(n) ((n << 8) | 0x0f) +#define FNn_BLKSZ_1(n) ((n << 8) | 0x10) +#define FNn_BLKSZ_2(n) ((n << 8) | 0x11) + +/* CIS tuple codes supported by SDIO device */ +#define CISTPL_NULL (0x00) +#define CISTPL_CHECKSUM (0x10) +#define CISTPL_VERS_1 (0x15) +#define CISTPL_ALTSTR (0x16) +#define CISTPL_MANFID (0x20) +#define CISTPL_FUNCID (0x21) +#define CISTPL_FUNCE (0x22) +#define CISTPL_SDIO_STD (0x91) +#define CISTPL_SDIO_EXT (0x92) +#define CISTPL_END (0xff) + +#define SDIO_R (0) +#define SDIO_W (1) + +enum sdio_status_error { + SDIO_ERROR_NONE = 0, + SDIO_ERROR_COM_CRC, + SDIO_ERROR_ILLEGAL_COMMAND, /* 10 */ + SDIO_ERROR_GENERAL, + SDIO_ERROR_OUT_OF_RANGE, + SDIO_ERROR_FUNC_NUM, + SDIO_ERROR_STATE_MISMATCH, + SDIO_ERROR_HEADER_MISMATCH, +}; + + + +enum card_state { + CARD_STATE_EMPTY = -1, + CARD_STATE_INIT = 0, + CARD_STATE_STBY = 3, + CARD_STATE_TRAN = 4, + CARD_STATE_CMD = 9 +}; + + +struct sdio_response_r1 { + u8 cmd; + u32 status; +}; + +struct sdio_response_r4 { + u32 ocr; + u8 ready; + u8 mem_present; + u8 func_num; +}; + +struct sdio_response_r5 { + u8 cmd; + u8 status; + u8 data; +}; + +struct sdio_response_r6 { + u8 cmd; + u16 rca; + int status; +}; + +struct sdio_cccr { + u8 cccrx:4, + sdiox:4; + u8 sdx; + u8 ioex; + u8 iorx; + u8 intex; + u8 intx; + u8 buswidth:2, + cd:1; + /* card capability */ + u8 sdc:1, + smb:1, + srw:1, + sbs:1, + s4mi:1, + e4mi:1, + lsc:1, + ls4b:1; + /* pointer to common CIS */ + u32 pccis; + u8 br:1, + bs:1; + u8 fsx:4, + df:1; + u8 exx; + u8 rfx; + u16 fn0_blksz; + u8 smpc:1, + empc:1; +}; + +struct sdio_fbr { + u8 fun_if_code:4, + fun_support_csa:1, + fun_csa_enable:1; + u8 fun_ext_if_code; + u32 pfcis; + u32 pcsa; + u16 fn_blksz; +}; + +struct sdio_ccis { + u16 manufacturer; /* CISTPL_MANFID */ + u16 card_id; +#if 1 + /* it seems this is n/a for type common according to SDIO spec 1.1 */ + u8 device_class; /* CISTPL_FUNCID, should be 0x0c */ + + /* CISTPL_FUNCE tuple for function 0 */ + u16 fn0_block_size; + u8 max_tran_speed; +#endif +}; + +struct sdio_fcis { + u8 device_class; /* CISTPL_FUNCID, should be 0x0c */ + + /* CISTPL_FUNCE for function 1 - 7 */ + u8 func_info; + u8 std_io_rev; + u32 card_psn; + u32 csa_size; + u8 csa_property; + u16 max_blk_size; + u32 ocr; + u8 op_min_pwr; /* op:operating pwr: current in mA */ + u8 op_avg_pwr; + u8 op_max_pwr; + u8 sb_min_pwr; /* sb:standby */ + u8 sb_avg_pwr; + u8 sb_max_pwr; + u16 min_bw; /* min data transfer bandwidth */ + u16 opt_bw; /* optimum data transfer bandwidth */ + /* SDIO 1.0 not support and 1.1 suport */ + u16 enable_timeout_val; + /* added for 1.1 on 7.13 */ + u16 sp_avg_pwr; + u16 sp_max_pwr; + u16 hp_avg_pwr; + u16 hp_max_pwr; + u16 lp_avg_pwr; + u16 lp_max_pwr; +}; + +struct sdio_card { + u8 func_num; + u8 mem_present; + u16 rca; + struct sdio_cccr cccr; + struct sdio_fbr fbr[MAX_FUNC_NUMBER]; + struct sdio_ccis ccis; + struct sdio_fcis fcis[MAX_FUNC_NUMBER]; + struct mss_ll_request llreq; + struct mss_cmd cmd; + struct mss_data data; + enum sdio_status_error errno; + enum card_state state; +}; + +#endif --- linux-2.6.24.orig/include/linux/mmc/mss_core.h +++ linux-2.6.24/include/linux/mmc/mss_core.h @@ -0,0 +1,437 @@ +/* + * mss_core.h - MMC/SD/SDIO Core driver header file + * + * Copyright (C) 2007 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License Version 2 only + * for now as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * derived from previous mmc code in Linux kernel + * Copyright (c) 2002 Hewlett-Packard Company + * Copyright (c) 2002 Andrew Christian + * Copyright (c) 2006 Bridge Wu + */ + + +#ifndef __MSS_CORE_H__ +#define __MSS_CORE_H__ + +#include +#include + +/* MSS Core general results */ +enum mss_result { + MSS_ERROR_NONE = 0, + MSS_ERROR_NO_PROTOCOL = 1, + MSS_ERROR_REGISTER_CARD, + MSS_ERROR_MISMATCH_CARD, + MSS_ERROR_WRONG_CARD_TYPE, + MSS_ERROR_CARD_REMOVING, + MSS_ERROR_RESP_UNPACK, + MSS_ERROR_CRC, + MSS_ERROR_FLASH, + MSS_ERROR_TIMEOUT, + MSS_ERROR_LOCKED, + MSS_ERROR_WP, + MSS_ERROR_ACTION_UNSUPPORTED, + MSS_ERROR_DMA, + MSS_ERROR_WRONG_ARG, +}; + +#define MSS_MAX_RESPONSE_SIZE 18 +//#define MSS_SECTOR_SIZE 512 + +/** + * enum mss_rsp_type: MMC/SD/SDIO command response type. + * + * This is used by both protocol and controller to set MMC/SD/SDIO controller + * according to command response type. This is related to MMC/SD/SDIO + * protocol, also to MMC/SD/SDIO controller. So it is placed in core layer, + * rather than in protocol layer or controller layer. + */ +enum mss_rsp_type { + MSS_RESPONSE_NONE = 0, + MSS_RESPONSE_R1 = 1, + MSS_RESPONSE_R1B = 10, + MSS_RESPONSE_R2_CID = 2, + MSS_RESPONSE_R2_CSD = 20, + MSS_RESPONSE_R3 = 3, + MSS_RESPONSE_R4 = 4, + MSS_RESPONSE_R5 = 5, + MSS_RESPONSE_R6 = 6, + MSS_RESPONSE_R7 = 7, +}; + +enum mss_card_type { + MSS_UNKNOWN_CARD = 0, + MSS_MMC_CARD = 1, + MSS_CEATA, + MSS_SD_CARD , + MSS_SDIO_CARD , + MSS_COMBO_CARD , + MSS_UNCOMPATIBLE_CARD, +}; + +struct mss_request { + struct mss_card *card; /* Card */ + int action; /* what kind of request */ +/* MSS general action in prot_entry() */ +#define MSS_ACTION_BASE 0x80 +#define MSS_ACTION_PRIVATE 0x100 + +#define MSS_RECOGNIZE_CARD (MSS_ACTION_BASE + 1) +#define MSS_INIT_CARD (MSS_ACTION_BASE + 2) +#define MSS_READ_MEM (MSS_ACTION_BASE + 3) +#define MSS_WRITE_MEM (MSS_ACTION_BASE + 4) +#define MSS_LOCK_CARD (MSS_ACTION_BASE + 5) +#define MSS_UNLOCK_CARD (MSS_ACTION_BASE + 6) +#define MSS_QUERY_CARD (MSS_ACTION_BASE + 7) +#define MSS_GET_CAPACITY (MSS_ACTION_BASE + 8) + + int errno; /* protocl specific error */ + void *arg; /* argumnets for request */ + void *result; /* the request results */ +}; + +struct mss_rw_arg { + u32 block; /* Start block address, for sdio, reg addr */ + u32 nob; /* Length of block for read/write */ + u32 block_len; /* Size of block (sanity check) */ + unsigned int sg_len; + struct scatterlist *sg; + u8 func; /* for sdio */ + u8 opcode; /* for sdio */ + u8 val; /* for sdio */ +}; + +struct mss_rw_result { + u32 bytes_xfered; +}; + +struct mss_cmd { + u32 opcode; /* command opcode */ + u32 arg; /* arguments */ + u8 response[MSS_MAX_RESPONSE_SIZE]; /* Response of the command */ + u32 flags; /* Specail flags for command */ +/* + * Some controller needs know some special command. + * MSS_CMD_INIT: It is the first command after card is reset, and controller + * may need precede command with some MMC CLKs + * MSS_CMD_STOP: It is the command that need stop the cuurent data transmission. + * MSS_CMD_SDIO_EN: The command is sent with the effect that sdio interrupt is + * enabled in the controller. + */ +#define MSS_CMD_INIT (1 << 0) +#define MSS_CMD_STOP (1 << 1) +#define MSS_CMD_SDIO_EN (1 << 2) + + u32 rtype; /* response type */ + u32 error; + struct mss_ll_request *llreq; + struct mss_data *data; +}; + +#define MSS_INIT_CMD(cmd, c_opcode, c_arg, c_flags, c_rtype) \ + do { \ + (cmd)->opcode = c_opcode; \ + (cmd)->arg = c_arg; \ + (cmd)->flags = c_flags; \ + (cmd)->rtype = c_rtype; \ + } while (0) + +struct mss_data { + u32 timeout_ns; /* data time out in ns */ + u32 blocks; /* number of block */ + u32 blksz; /* block lenght */ + u32 flags; +#define MSS_DATA_WRITE (1 << 0) +#define MSS_DATA_READ (1 << 1) +#define MSS_DATA_STREAM (1 << 2) +#define MSS_DATA_MULTI (1 << 3) + + unsigned int sg_len; + struct scatterlist *sg; + unsigned int bytes_xfered; +}; + +#define MSS_INIT_DATA(data, d_nob, d_block_len, d_flags, d_sg_len, d_sg, \ + d_timeout_ns) \ + do { \ + (data)->timeout_ns = d_timeout_ns; \ + (data)->blocks = d_nob; \ + (data)->blksz = d_block_len; \ + (data)->flags = d_flags; \ + (data)->sg_len = d_sg_len; \ + (data)->sg = d_sg; \ + } while(0) + +struct mss_ll_request { + struct mss_cmd *cmd; + struct mss_data *data; + + void *done_data; + void (*done)(struct mss_ll_request *); +}; + +struct mss_card { + u32 card_type; /* MMC or SD or SDIO */ + u32 state; /* card states */ +/* + * Card can be in several states, such as when card is suspended, the states + * may be MSS_CARD_IDENTIFIED | MSS_CARD_SUSPEND. + * The states is from the top view, it is diffrent with the states defined in + * the protocol. + */ +#define MSS_CARD_REGISTERED (0x1 << 1) +#define MSS_CARD_REMOVING (0x1 << 2) +#define MSS_CARD_HANDLEIO (0x1 << 3) +#define MSS_CARD_SUSPENDED (0x1 << 4) +#define MSS_CARD_WP (0x1 << 5) +#define MSS_CARD_INVALID (0x1 << 6) + + void *prot_card; /* point to specific protocl card structure */ + struct mss_prot_driver *prot_driver; /* protocol driver */ + + u32 usage; + u32 bus_width; /* 1-bit or 4-bit or 8-bit bus width */ + + struct mss_slot *slot; /* in which slot ? */ + struct device dev; /* device on mmc_bus */ +}; + +struct mss_driver { + struct device_driver driver; /* driver on mmc_bus */ + void (*sdio_int_handler)(struct mss_card *); + void (*request_done)(struct mss_request *); +}; + +struct mss_slot { + /* point to real card if inserted, else NULL */ + struct mss_card *card; + struct mss_host *host; /* point to controller */ + u32 id; /* slot is, start from 0 */ + + struct delayed_work card_detect; + void *private; +}; + +struct mss_ios { + u32 clock; /* current controller clock */ + u32 bus_width:4, /* current bus width */ +#define MSS_BUSWIDTH_1BIT 0 +#define MSS_BUSWIDTH_4BIT 1 +#define MSS_BUSWIDTH_8BIT 2 + access_mode:2, +#define MSS_ACCESS_MODE_BYTE 0 +#define MSS_ACCESS_MODE_SECTOR 2 + + high_speed:2, +#define MSS_HIGH_SPEED 1 + + bus_mode:2, /* current bus mode */ +#define MSS_BUSMODE_OPENDRAIN 1 +#define MSS_BUSMODE_PUSHPULL 2 + + chip_select:2, +#define MSS_CS_NO_CARE 0 +#define MSS_CS_HIGH 1 +#define MSS_CS_LOW 2 + + power_mode:2, +#define MSS_POWER_OFF 1 +#define MSS_POWER_UP 2 +#define MSS_POWER_ON 3 + sdio_int:2; +#define MSS_SDIO_INT_DIS 0 +#define MSS_SDIO_INT_EN 1 + + u32 vdd; +}; + +/* Host operations */ +struct mss_host_ops { + void (*request)(struct mss_host *, struct mss_ll_request *); + void (*set_ios)(struct mss_host *, struct mss_ios *); + /* optioanl operations */ + int (*is_slot_empty)(struct mss_slot *); /* slot empty? */ + int (*is_slot_wp)(struct mss_slot *); /* write-protected ? */ +}; + +struct mss_host { + struct list_head node; /* list all controllers */ + struct mss_card *active_card; /* pointer to active slot */ + unsigned int slot_num; /* slots number of controller */ + unsigned int id; /* controller id */ + wait_queue_head_t wq; /* wait queue for host claim */ + unsigned int max_seg_size; + unsigned int max_hw_segs; + unsigned int max_phys_segs; + unsigned int max_sectors; + spinlock_t lock; + void *private; + struct device *dev; + + u32 f_min; /* min clock supported */ + u32 f_max; /* max clock supported */ + u32 vdd: 24, /* support VDD */ +#define MSS_VDD_170_195 (1 << 7) /* VDD voltage 1.45 - 1.50 */ +#define MSS_VDD_20_21 (1 << 8) /* VDD voltage 2.0 ~ 2.1 */ +#define MSS_VDD_21_22 (1 << 9) /* VDD voltage 2.1 ~ 2.2 */ +#define MSS_VDD_22_23 (1 << 10) /* VDD voltage 2.2 ~ 2.3 */ +#define MSS_VDD_23_24 (1 << 11) /* VDD voltage 2.3 ~ 2.4 */ +#define MSS_VDD_24_25 (1 << 12) /* VDD voltage 2.4 ~ 2.5 */ +#define MSS_VDD_25_26 (1 << 13) /* VDD voltage 2.5 ~ 2.6 */ +#define MSS_VDD_26_27 (1 << 14) /* VDD voltage 2.6 ~ 2.7 */ +#define MSS_VDD_27_28 (1 << 15) /* VDD voltage 2.7 ~ 2.8 */ +#define MSS_VDD_28_29 (1 << 16) /* VDD voltage 2.8 ~ 2.9 */ +#define MSS_VDD_29_30 (1 << 17) /* VDD voltage 2.9 ~ 3.0 */ +#define MSS_VDD_30_31 (1 << 18) /* VDD voltage 3.0 ~ 3.1 */ +#define MSS_VDD_31_32 (1 << 19) /* VDD voltage 3.1 ~ 3.2 */ +#define MSS_VDD_32_33 (1 << 20) /* VDD voltage 3.2 ~ 3.3 */ +#define MSS_VDD_33_34 (1 << 21) /* VDD voltage 3.3 ~ 3.4 */ +#define MSS_VDD_34_35 (1 << 22) /* VDD voltage 3.4 ~ 3.5 */ +#define MSS_VDD_35_36 (1 << 23) /* VDD voltage 3.5 ~ 3.6 */ + +#define MSS_VDD_20_26 (0x3f << 8) /* VDD voltage 2.0 to 2.6 */ +#define MSS_VDD_27_36 (0x1ff << 15) /* VDD voltage 2.7 to 3.6 */ +#define MSS_VDD_MASK (0xffff1 << 7) + + bus_width:4; /* Support max bus width */ + u32 sd_spec:8, + mmc_spec:8, + sdio_spec:8, + high_capacity:1, + high_speed:1; +#define MSS_SD_SPEC_NONE 0 +#define MSS_SD_SPEC_10 1 +#define MSS_SD_SPEC_11 2 +#define MSS_SD_SPEC_20 3 +#define MSS_MMC_SPEC_NONE 0 /* Do not support */ +#define MSS_MMC_SPEC_11_12 1 /* MMC specification 1.1 - 1.2 */ +#define MSS_MMC_SPEC_14 2 /* MMC specification 1.4 */ +#define MSS_MMC_SPEC_20_22 3 /* MMC specification 2.0 - 2.2 */ +#define MSS_MMC_SPEC_31 4 /* MMC specification 3.1 */ +#define MSS_MMC_SPEC_40_42 5 /* MMC specification 4.0 - 4.2 */ +#define MSS_SDIO_SPEC_NONE 0 +#define MSS_SDIO_SPEC_10 1 +#define MSS_SDIO_SPEC_11 2 + + struct mss_ios ios; + struct mss_host_ops *ops; + struct mss_slot slots[0]; +}; + +struct mss_prot_driver { + char *name; /* protocol name */ + struct list_head node; + + int (*prot_entry)(struct mss_card *, unsigned int, void *, void *); + int (*attach_card) (struct mss_card *); + void (*detach_card) (struct mss_card *); + int (*get_errno) (struct mss_card *); +}; + +static inline u32 unstuff_bits(u8 *resp, u32 start, u32 size, u32 bytes) +{ + u32 _end = bytes - (start / 8) - 1; + u32 _start = bytes - ((start + size - 1) / 8) - 1; + u8 shft = start % 8; + u32 mask = (1 << (((start + size) % 8) ? ((start + size) % 8) : 8)) - 1; + u32 res = 0; + + while (1) { + res = res << 8; + res |= resp[_start]; + if (_end != _start) + _start++; + else + break; + mask = mask << 8 | 0xFF; + } + res = (res & mask) >> shft; + + return res; +} + +/* to controller driver */ +void mss_detect_change(struct mss_host *, unsigned long delay, unsigned int); +int mss_scan_slot(struct work_struct *work); +void mss_scan_host(struct mss_host *); +struct mss_host * mss_alloc_host(unsigned int , unsigned int , unsigned int ); +void mss_free_host(struct mss_host *); +struct mss_host *mss_find_host(int ); +void mss_force_card_remove(struct mss_card *); +int register_mss_host(struct mss_host *); +void unregister_mss_host(struct mss_host *); + +/* to card driver */ +int register_mss_driver (struct mss_driver *); +void unregister_mss_driver (struct mss_driver *); +int mss_send_request(struct mss_request *); +unsigned int mss_get_capacity(struct mss_card *); +int mss_card_get(struct mss_card *); +void mss_card_put(struct mss_card *); + +/* to protocol driver */ +int register_mss_prot_driver(struct mss_prot_driver *); +void unregister_mss_prot_driver(struct mss_prot_driver *); +int mss_send_ll_req(struct mss_host *, struct mss_ll_request *); +int mss_send_simple_ll_req(struct mss_host *, struct mss_ll_request *, struct mss_cmd *, u32 , u32 , u32 , u32 ); +void mss_set_sdio_int(struct mss_host *, int ); +void mss_set_buswidth(struct mss_host *, int ); +void mss_set_busmode(struct mss_host *, int ); +void mss_set_clock(struct mss_host *, int ); + +#ifdef CONFIG_MMC_DEBUG +/* debug for mss_core */ +#define dbg(slot, format, arg...) \ + do { \ + printk(KERN_INFO "%s(): host%u slot%u, " \ + format "\n", __func__, \ + (slot)->host->id, (slot)->id, ##arg); \ + } while(0) + +/* +#define dbg(format, arg...) \ + do { \ + printk(KERN_INFO "%s(): " format "\n", \ + __func__, ##arg); \ + } while(0) + +*/ +/* debug for protocol */ +#define dbg2(slot, prot, format, arg...) printk(KERN_INFO "%s(): " \ + "host%u slot%u prot%s, " format "\n", __func__, \ + slot?slot->host->id:-1, slot?slot->id:-1, \ + prot?prot->name:"NULL", ##arg) + +/* debug for hw */ +#define dbg4(slot, format, arg...) do { \ + printk(KERN_INFO "%s(): ", __func__); \ + if (slot) \ + printk(KERN_INFO "host%u slot%u , ", slot->host->id, \ + slot->id); \ + printk(KERN_INFO format "\n", ##arg); \ + } while(0) + +#define dbg5(format, arg...) printk(KERN_INFO "%s(): " format "\n", __func__, ##arg) + +#else +#define dbg(slot, format, arg...) +#define dbg2(slot, prot, format, arg...) +#define dbg4(slot, format, arg...) +#define dbg5(format, arg...) +#endif +#endif --- linux-2.6.24.orig/include/linux/mmc/mmc_protocol.h +++ linux-2.6.24/include/linux/mmc/mmc_protocol.h @@ -0,0 +1,366 @@ +/* + * mmc_protocol.h - MMC Protocol driver header file + * + * Copyright (C) 2007 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License Version 2 only + * for now as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * derived from previous mmc code in Linux kernel + * Copyright (c) 2002 Hewlett-Packard Company + * Copyright (c) 2002 Andrew Christian + * Copyright (c) 2006 Bridge Wu + */ + + +#ifndef __MMC_PROTOCOL_H__ +#define __MMC_PROTOCOL_H__ + + +#include + +#define MMC_PROTOCOL "mmc" + +/*card status*/ + +#define PARSE_U32(_buf) \ + (((u32)(_buf)[0]) << 24) | (((u32)(_buf)[1]) << 16) | \ + (((u32)(_buf)[2]) << 8) | ((u32)(_buf)[3]); + +#define PARSE_U16(_buf) \ + (((u16)(_buf)[0]) << 8) | ((u16)(_buf)[1]); + + +/* Standard MMC clock speeds */ +#define MMC_CARD_CLOCK_SLOW 0 /* The LOWEST clock for mmc */ +#define MMC_CARD_CLOCK_FAST 52000000 /* The HIGHEST clock for mmc */ + +/* command type: ac(addressed command), bcr(broadcase command with response), + * adtc(addressed data transfer command), bc(broadcase command) + */ + +/* Standard MMC commands (4.0) type argument response */ + + /* class 0, basic: 0-10, 12-15, 19 */ +#define MMC_GO_IDLE_STATE 0 /* bc */ +#define MMC_SEND_OP_COND 1 /* bcr [31:0] OCR R3 */ +#define MMC_ALL_SEND_CID 2 /* bcr R2 */ +#define MMC_SET_RELATIVE_ADDR 3 /* ac [31:16] RCA R1 */ +#define MMC_SET_DSR 4 /* bc [31:16] DSR */ +#define MMC_RSVD5 5 +#define MMC_SWITCH 6 /* ac see comments below R1b */ +#define MMC_SELECT_CARD 7 /* ac [31:16] RCA R1 */ +#define MMC_SEND_EXT_CSD 8 /* adtc R1 */ +#define MMC_SEND_CSD 9 /* ac [31:16] RCA R2 */ +#define MMC_SEND_CID 10 /* ac [31:16] RCA R2 */ +#define MMC_STOP_TRANSMISSION 12 /* ac R1b */ +#define MMC_SEND_STATUS 13 /* ac [31:16] RCA R1 */ +#define MMC_BUSTEST_R 14 /* adtc R1 */ +#define MMC_GO_INACTIVE_STATE 15 /* ac [31:16] RCA */ +#define MMC_BUSTEST_W 19 /* adtc R1 */ +/* CMD6: [25:24access,23:16index,15:8value,2:0cmd set] */ + + /* class 1, stream read: 11 */ +#define MMC_READ_DAT_UNTIL_STOP 11 /* adtc [31:0] dadr R1 */ + + /* class 2, block read: 16-18, 23 */ +#define MMC_SET_BLOCKLEN 16 /* ac [31:0] block len R1 */ +#define MMC_READ_SINGLE_BLOCK 17 /* adtc [31:0] data addr R1 */ +#define MMC_READ_MULTIPLE_BLOCK 18 /* adtc [31:0] data addr R1 */ + + /* class 3, stream write: 20 */ +#define MMC_WRITE_DAT_UNTIL_STOP 20 /* adtc [31:0] data addr R1 */ + + /* class 4, block write: 16, 23-27 */ +#define MMC_SET_BLOCK_COUNT 23 /* ad [15:0] nob R1 */ +#define MMC_WRITE_BLOCK 24 /* adtc [31:0] data addr R1 */ +#define MMC_WRITE_MULTIPLE_BLOCK 25 /* adtc R1 */ +#define MMC_PROGRAM_CID 26 /* adtc R1 */ +#define MMC_PROGRAM_CSD 27 /* adtc R1 */ + + /* class 6, write protection: 28-30 */ +#define MMC_SET_WRITE_PROT 28 /* ac [31:0] data addr R1b */ +#define MMC_CLR_WRITE_PROT 29 /* ac [31:0] data addr R1b */ +#define MMC_SEND_WRITE_PROT 30 /* adtc [31:0] wpdata addr R1 */ + + /* class 5, erase: 35, 36, 38 */ +#define MMC_ERASE_GROUP_START 35 /* ac [31:0] data addr R1 */ +#define MMC_ERASE_GROUP_END 36 /* ac [31:0] data addr R1 */ +#define MMC_ERASE 37 /* ac R1b */ + + /* class 9, I/O mode: 39, 40 */ +#define MMC_FAST_IO 39 /* ac see comments below R4 */ +#define MMC_GO_IRQ_STATE 40 /* bcr R5 */ +/* [31:16RCA, 15:15reg write flag, 14:8reg address, 7:0reg data] */ + + /* class 7, lock card: 42 */ +#define MMC_LOCK_UNLOCK 42 /* adtc R1b */ + + /* class 8, application specific: 55, 56 */ +#define MMC_APP_CMD 55 /* ac [31:16] RCA R1 */ +#define MMC_GEN_CMD 56 /* adtc [0] RD/WR R1b */ + +#if 0 +#ifdef CONFIG_CEATA + + // CEATA command +#define CEATA_RW_MULTIPLE_REGISTER 60 /* R1B*/ +#define CEATA_RW_MULTIPLE_BLOCK 61 /* R1B*/ + + +//CEATA taskfile related +#define CEATA_FEATURES_EXP 0x01 +#define CEATA_SECTOR_COUNT_EXP 0x02 +#define CEATA_LBA_LOW_EXP 0x03 +#define CEATA_LBA_MID_EXP 0x04 +#define CEATA_LBA_HIGH_EXP 0x05 +#define CEATA_CONTROL 0x06 +#define CEATA_FEATURES_ERROR 0x09 +#define CEATA_SECTOR_COUNT 0x0A +#define CEATA_LBA_LOW 0x0B +#define CEATA_LBA_MID 0x0C +#define CEATA_LBA_HIGH 0x0D +#define CEATA_DEVICE_HEAD 0x0E +#define CEATA_COMMAND_STATUS 0x0F + +//CEATA command arguments to write to taskfile at COMMAND_STATUS(0x0F) +#define CEATA_READ_DMA_EXT 0x25 +#define CEATA_WRITE_DMA_EXT 0x35 +#define CEATA_STAND_BY_IMMEDIATE 0xE0 +#define CEATA_FLUSH_CACHE_EXT 0xEA +#define CEATA_IDENTIFY_DATA 0xEC + + +//CEATA taskfile file value at the status field(0x0F) +#define BSY 0x80 +#define ATA_ERROR 0x01 + +#endif +#endif + +/* + MMC status in R1 + Type + e : error bit + s : status bit + r : detected and set for the actual command response + x : detected and set during command execution. the host must poll + the card by sending status command in order to read these bits. + Clear condition + a : according to the card state + b : always related to the previous command. Reception of + a valid command will clear it (with a delay of one command) + c : clear by read + */ + +#define R1_OUT_OF_RANGE (1 << 31) /* er, c */ +#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */ +#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */ +#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */ +#define R1_ERASE_PARAM (1 << 27) /* ex, c */ +#define R1_WP_VIOLATION (1 << 26) /* erx, c */ +#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */ +#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */ +#define R1_COM_CRC_ERROR (1 << 23) /* er, b */ +#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */ +#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */ +#define R1_CC_ERROR (1 << 20) /* erx, c */ +#define R1_ERROR (1 << 19) /* erx, c */ +#define R1_UNDERRUN (1 << 18) /* ex, c */ +#define R1_OVERRUN (1 << 17) /* ex, c */ +#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */ +#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */ +#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a, must be set 0 to MMC4.0 */ +#define R1_ERASE_RESET (1 << 13) /* sr, c */ + +#define R1_STATUS(x) (x & 0xFFFFE000) + +#define R1_CURRENT_STATE(x) ((x & 0x00001E00) >> 9) /* sx, b (4 bits) */ +#define R1_READY_FOR_DATA (1 << 8) /* sx, a */ +#define R1_SWITCH_ERROR (1 << 7) /* E, X */ +#define R1_APP_CMD (1 << 5) /* sr, c */ + +#define MMC_SLOT_RCA(slot) (slot->id + 1) /* map the slot id to rca */ +enum mmc_status_error { + MMC_ERROR_NONE = 0, + MMC_ERROR_OUT_OF_RANGE, + MMC_ERROR_ADDRESS, + MMC_ERROR_BLOCK_LEN, + MMC_ERROR_ERASE_SEQ, + MMC_ERROR_ERASE_PARAM, + MMC_ERROR_WP_VIOLATION, + MMC_ERROR_CARD_IS_LOCKED, + MMC_ERROR_LOCK_UNLOCK_FAILED, + MMC_ERROR_COM_CRC, + MMC_ERROR_ILLEGAL_COMMAND, /* 10 */ + MMC_ERROR_CARD_ECC_FAILED, + MMC_ERROR_CC, + MMC_ERROR_GENERAL, + MMC_ERROR_UNDERRUN, + MMC_ERROR_OVERRUN, + MMC_ERROR_CID_CSD_OVERWRITE, + MMC_ERROR_STATE_MISMATCH, + MMC_ERROR_HEADER_MISMATCH, +}; + +enum card_state { + CARD_STATE_EMPTY = -1, + CARD_STATE_IDLE = 0, + CARD_STATE_READY = 1, + CARD_STATE_IDENT = 2, + CARD_STATE_STBY = 3, + CARD_STATE_TRAN = 4, + CARD_STATE_DATA = 5, + CARD_STATE_RCV = 6, + CARD_STATE_PRG = 7, + CARD_STATE_DIS = 8, + CARD_STATE_BTST = 9 +}; + +/* These are unpacked versions of the actual responses */ + +struct mmc_response_r1 { + u8 cmd; + u32 status; +}; + +struct mmc_cid { + u8 mid; + u16 oid; + u8 pnm[7]; /* Product name (we null-terminate) */ + u8 prv; + u32 psn; + u8 mdt; +}; + +struct mmc_csd { + u8 csd_structure; +#define CSD_STRUCT_1_0 0 /* Valid for system specification 1.0 - 1.2 */ +#define CSD_STRUCT_1_1 1 /* Valid for system specification 1.4 - 2.2 */ +#define CSD_STRUCT_1_2 2 /* Valid for system specification 3.1 */ + + u8 spec_vers; +#define CSD_SPEC_VERS_0 0 /* Implements system specification 1.0 - 1.2 */ +#define CSD_SPEC_VERS_1 1 /* Implements system specification 1.4 */ +#define CSD_SPEC_VERS_2 2 /* Implements system specification 2.0 - 2.2 */ +#define CSD_SPEC_VERS_3 3 /* Implements system specification 3.1 */ +#define CSD_SPEC_VERS_4 4 /* Implements system specification 4.0 - 4.2 */ + + u8 taac; + u8 nsac; + u8 tran_speed; + u16 ccc; + u8 read_bl_len; + u8 read_bl_partial; + u8 write_blk_misalign; + u8 read_blk_misalign; + u8 dsr_imp; + u16 c_size; + u8 vdd_r_curr_min; + u8 vdd_r_curr_max; + u8 vdd_w_curr_min; + u8 vdd_w_curr_max; + u8 c_size_mult; + union { + struct { /* MMC system specification version 3.1 */ + u8 erase_grp_size; + u8 erase_grp_mult; + } v31; + struct { /* MMC system specification version 2.2 */ + u8 sector_size; + u8 erase_grp_size; + } v22; + } erase; + u8 wp_grp_size; + u8 wp_grp_enable; + u8 default_ecc; + u8 r2w_factor; + u8 write_bl_len; + u8 write_bl_partial; + u8 file_format_grp; + u8 copy; + u8 perm_write_protect; + u8 tmp_write_protect; + u8 file_format; + u8 ecc; +}; + +struct mmc_ext_csd { + u8 s_cmd_set; + u8 sec_count; + u8 min_perf_w_8_52; + u8 min_perf_r_8_52; + u8 min_perf_w_26_4_52; + u8 min_perf_r_26_4_52; + u8 min_perf_w_4_26; + u8 min_perf_r_4_26; + u8 pwr_cl_26_360; + u8 pwr_cl_52_360; + u8 pwr_cl_26_195; + u8 pwr_cl_52_195; + u8 card_type; + u8 csd_structure; + u8 ext_csd_rev; + u8 cmd_set; + u8 cmd_set_rev; + u8 power_class; + u8 hs_timing; + u8 erased_mem_cont; +}; + +struct mmc_response_r3 { + u8 cmd; + u32 ocr; +#define MMC_ACCESS_MODE_MASK (0x3 << 29) /* mask to acess mode */ +#define MMC_ACCESS_MODE_SECTOR (0x2 << 29) /* sector access mode */ +#define MMC_ACCESS_MODE_BYTE (0x0 << 29) /* byte access mode */ +#define MMC_CARD_BUSY (1 << 31) /* Card Power up status bit */ +#define MMC_VDD_MASK (0xffff1 << 7) +}; + +struct mmc_response_r4 { /*Fast I/O */ + u8 cmd; + u16 rca; + u8 status; + u8 reg_addr; + u8 read_reg_contents; +}; + +struct mmc_response_r5 { /*Interrupt request */ + u8 cmd; + u16 rca; + u16 irq_data; +}; + +struct mmc_card { + struct mmc_cid cid; + struct mmc_csd csd; + struct mmc_ext_csd ext_csd; + /* The mmc card property */ + u32 vdd:24, + high_speed:2, + access_mode:2, + bus_width:4; + char *buf; + struct mss_ll_request llreq; + struct mss_cmd cmd; + struct mss_data data; + enum mmc_status_error errno; + enum card_state state; /* empty, ident, ready, whatever */ + u32 block_len; + u16 rca; +}; + +#endif /* end __MMC_PROTOCOL_H__ */ --- linux-2.6.24.orig/include/linux/hugetlb.h +++ linux-2.6.24/include/linux/hugetlb.h @@ -17,6 +17,7 @@ } int hugetlb_sysctl_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); +int hugetlb_overcommit_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); int hugetlb_treat_movable_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, struct vm_area_struct *); int follow_hugetlb_page(struct mm_struct *, struct vm_area_struct *, struct page **, struct vm_area_struct **, unsigned long *, int *, int, int); --- linux-2.6.24.orig/include/linux/Kbuild +++ linux-2.6.24/include/linux/Kbuild @@ -98,7 +98,6 @@ header-y += ixjuser.h header-y += jffs2.h header-y += keyctl.h -header-y += kvm.h header-y += limits.h header-y += lock_dlm_plock.h header-y += magic.h @@ -255,6 +254,7 @@ unifdef-y += kernelcapi.h unifdef-y += kernel.h unifdef-y += keyboard.h +unifdef-$(CONFIG_HAVE_KVM) += kvm.h unifdef-y += llc.h unifdef-y += loop.h unifdef-y += lp.h --- linux-2.6.24.orig/include/linux/personality.h +++ linux-2.6.24/include/linux/personality.h @@ -40,7 +40,10 @@ * Security-relevant compatibility flags that must be * cleared upon setuid or setgid exec: */ -#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC|ADDR_NO_RANDOMIZE) +#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \ + ADDR_NO_RANDOMIZE | \ + ADDR_COMPAT_LAYOUT | \ + MMAP_PAGE_ZERO) /* * Personality types. --- linux-2.6.24.orig/include/linux/lguest_launcher.h +++ linux-2.6.24/include/linux/lguest_launcher.h @@ -23,7 +23,12 @@ struct lguest_device_desc { /* The device type: console, network, disk etc. Type 0 terminates. */ __u8 type; - /* The number of bytes of the config array. */ + /* The number of virtqueues (first in config array) */ + __u8 num_vq; + /* The number of bytes of feature bits. Multiply by 2: one for host + * features and one for guest acknowledgements. */ + __u8 feature_len; + /* The number of bytes of the config array after virtqueues. */ __u8 config_len; /* A status byte, written by the Guest. */ __u8 status; @@ -31,7 +36,7 @@ }; /*D:135 This is how we expect the device configuration field for a virtqueue - * (type VIRTIO_CONFIG_F_VIRTQUEUE) to be laid out: */ + * to be laid out in config space. */ struct lguest_vqconfig { /* The number of entries in the virtio_ring */ __u16 num; --- linux-2.6.24.orig/include/linux/virtio_pci.h +++ linux-2.6.24/include/linux/virtio_pci.h @@ -0,0 +1,57 @@ +/* + * Virtio PCI driver + * + * This module allows virtio devices to be used over a virtual PCI device. + * This can be used with QEMU based VMMs like KVM or Xen. + * + * Copyright IBM Corp. 2007 + * + * Authors: + * Anthony Liguori + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ + +#ifndef _LINUX_VIRTIO_PCI_H +#define _LINUX_VIRTIO_PCI_H + +#include + +/* A 32-bit r/o bitmask of the features supported by the host */ +#define VIRTIO_PCI_HOST_FEATURES 0 + +/* A 32-bit r/w bitmask of features activated by the guest */ +#define VIRTIO_PCI_GUEST_FEATURES 4 + +/* A 32-bit r/w PFN for the currently selected queue */ +#define VIRTIO_PCI_QUEUE_PFN 8 + +/* A 16-bit r/o queue size for the currently selected queue */ +#define VIRTIO_PCI_QUEUE_NUM 12 + +/* A 16-bit r/w queue selector */ +#define VIRTIO_PCI_QUEUE_SEL 14 + +/* A 16-bit r/w queue notifier */ +#define VIRTIO_PCI_QUEUE_NOTIFY 16 + +/* An 8-bit device status register. */ +#define VIRTIO_PCI_STATUS 18 + +/* An 8-bit r/o interrupt status register. Reading the value will return the + * current contents of the ISR and will also clear it. This is effectively + * a read-and-acknowledge. */ +#define VIRTIO_PCI_ISR 19 + +/* The bit of the ISR which indicates a device configuration change. */ +#define VIRTIO_PCI_ISR_CONFIG 0x2 + +/* The remaining space is defined by each driver as the per-driver + * configuration space */ +#define VIRTIO_PCI_CONFIG 20 + +/* Virtio ABI version, this must match exactly */ +#define VIRTIO_PCI_ABI_VERSION 0 +#endif --- linux-2.6.24.orig/include/linux/cpuidle.h +++ linux-2.6.24/include/linux/cpuidle.h @@ -79,6 +79,7 @@ }; struct cpuidle_device { + unsigned int registered:1; int enabled:1; unsigned int cpu; --- linux-2.6.24.orig/include/linux/fb.h +++ linux-2.6.24/include/linux/fb.h @@ -966,6 +966,9 @@ /* drivers/video/fb_defio.c */ extern void fb_deferred_io_init(struct fb_info *info); +extern void fb_deferred_io_open(struct fb_info *info, + struct inode *inode, + struct file *file); extern void fb_deferred_io_cleanup(struct fb_info *info); extern int fb_deferred_io_fsync(struct file *file, struct dentry *dentry, int datasync); --- linux-2.6.24.orig/include/linux/kvm.h +++ linux-2.6.24/include/linux/kvm.h @@ -9,12 +9,10 @@ #include #include +#include #define KVM_API_VERSION 12 -/* Architectural interrupt line count. */ -#define KVM_NR_INTERRUPTS 256 - /* for KVM_CREATE_MEMORY_REGION */ struct kvm_memory_region { __u32 slot; @@ -23,17 +21,19 @@ __u64 memory_size; /* bytes */ }; -/* for kvm_memory_region::flags */ -#define KVM_MEM_LOG_DIRTY_PAGES 1UL - -struct kvm_memory_alias { - __u32 slot; /* this has a different namespace than memory slots */ +/* for KVM_SET_USER_MEMORY_REGION */ +struct kvm_userspace_memory_region { + __u32 slot; __u32 flags; __u64 guest_phys_addr; - __u64 memory_size; - __u64 target_phys_addr; + __u64 memory_size; /* bytes */ + __u64 userspace_addr; /* start of the userspace allocated memory */ }; +/* for kvm_memory_region::flags */ +#define KVM_MEM_LOG_DIRTY_PAGES 1UL + + /* for KVM_IRQ_LINE */ struct kvm_irq_level { /* @@ -45,62 +45,18 @@ __u32 level; }; -/* for KVM_GET_IRQCHIP and KVM_SET_IRQCHIP */ -struct kvm_pic_state { - __u8 last_irr; /* edge detection */ - __u8 irr; /* interrupt request register */ - __u8 imr; /* interrupt mask register */ - __u8 isr; /* interrupt service register */ - __u8 priority_add; /* highest irq priority */ - __u8 irq_base; - __u8 read_reg_select; - __u8 poll; - __u8 special_mask; - __u8 init_state; - __u8 auto_eoi; - __u8 rotate_on_auto_eoi; - __u8 special_fully_nested_mode; - __u8 init4; /* true if 4 byte init */ - __u8 elcr; /* PIIX edge/trigger selection */ - __u8 elcr_mask; -}; - -#define KVM_IOAPIC_NUM_PINS 24 -struct kvm_ioapic_state { - __u64 base_address; - __u32 ioregsel; - __u32 id; - __u32 irr; - __u32 pad; - union { - __u64 bits; - struct { - __u8 vector; - __u8 delivery_mode:3; - __u8 dest_mode:1; - __u8 delivery_status:1; - __u8 polarity:1; - __u8 remote_irr:1; - __u8 trig_mode:1; - __u8 mask:1; - __u8 reserve:7; - __u8 reserved[4]; - __u8 dest_id; - } fields; - } redirtbl[KVM_IOAPIC_NUM_PINS]; -}; - -#define KVM_IRQCHIP_PIC_MASTER 0 -#define KVM_IRQCHIP_PIC_SLAVE 1 -#define KVM_IRQCHIP_IOAPIC 2 struct kvm_irqchip { __u32 chip_id; __u32 pad; union { char dummy[512]; /* reserving space */ +#ifdef CONFIG_X86 struct kvm_pic_state pic; +#endif +#if defined(CONFIG_X86) || defined(CONFIG_IA64) struct kvm_ioapic_state ioapic; +#endif } chip; }; @@ -116,6 +72,7 @@ #define KVM_EXIT_FAIL_ENTRY 9 #define KVM_EXIT_INTR 10 #define KVM_EXIT_SET_TPR 11 +#define KVM_EXIT_TPR_ACCESS 12 /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */ struct kvm_run { @@ -174,90 +131,17 @@ __u32 longmode; __u32 pad; } hypercall; + /* KVM_EXIT_TPR_ACCESS */ + struct { + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; /* Fix the size of the union. */ char padding[256]; }; }; -/* for KVM_GET_REGS and KVM_SET_REGS */ -struct kvm_regs { - /* out (KVM_GET_REGS) / in (KVM_SET_REGS) */ - __u64 rax, rbx, rcx, rdx; - __u64 rsi, rdi, rsp, rbp; - __u64 r8, r9, r10, r11; - __u64 r12, r13, r14, r15; - __u64 rip, rflags; -}; - -/* for KVM_GET_FPU and KVM_SET_FPU */ -struct kvm_fpu { - __u8 fpr[8][16]; - __u16 fcw; - __u16 fsw; - __u8 ftwx; /* in fxsave format */ - __u8 pad1; - __u16 last_opcode; - __u64 last_ip; - __u64 last_dp; - __u8 xmm[16][16]; - __u32 mxcsr; - __u32 pad2; -}; - -/* for KVM_GET_LAPIC and KVM_SET_LAPIC */ -#define KVM_APIC_REG_SIZE 0x400 -struct kvm_lapic_state { - char regs[KVM_APIC_REG_SIZE]; -}; - -struct kvm_segment { - __u64 base; - __u32 limit; - __u16 selector; - __u8 type; - __u8 present, dpl, db, s, l, g, avl; - __u8 unusable; - __u8 padding; -}; - -struct kvm_dtable { - __u64 base; - __u16 limit; - __u16 padding[3]; -}; - -/* for KVM_GET_SREGS and KVM_SET_SREGS */ -struct kvm_sregs { - /* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ - struct kvm_segment cs, ds, es, fs, gs, ss; - struct kvm_segment tr, ldt; - struct kvm_dtable gdt, idt; - __u64 cr0, cr2, cr3, cr4, cr8; - __u64 efer; - __u64 apic_base; - __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; -}; - -struct kvm_msr_entry { - __u32 index; - __u32 reserved; - __u64 data; -}; - -/* for KVM_GET_MSRS and KVM_SET_MSRS */ -struct kvm_msrs { - __u32 nmsrs; /* number of msrs in entries */ - __u32 pad; - - struct kvm_msr_entry entries[0]; -}; - -/* for KVM_GET_MSR_INDEX_LIST */ -struct kvm_msr_list { - __u32 nmsrs; /* number of msrs in entries */ - __u32 indices[0]; -}; - /* for KVM_TRANSLATE */ struct kvm_translation { /* in */ @@ -302,28 +186,24 @@ }; }; -struct kvm_cpuid_entry { - __u32 function; - __u32 eax; - __u32 ebx; - __u32 ecx; - __u32 edx; - __u32 padding; -}; - -/* for KVM_SET_CPUID */ -struct kvm_cpuid { - __u32 nent; - __u32 padding; - struct kvm_cpuid_entry entries[0]; -}; - /* for KVM_SET_SIGNAL_MASK */ struct kvm_signal_mask { __u32 len; __u8 sigset[0]; }; +/* for KVM_TPR_ACCESS_REPORTING */ +struct kvm_tpr_access_ctl { + __u32 enabled; + __u32 flags; + __u32 reserved[8]; +}; + +/* for KVM_SET_VAPIC_ADDR */ +struct kvm_vapic_addr { + __u64 vapic_addr; +}; + #define KVMIO 0xAE /* @@ -341,17 +221,31 @@ * Get size for mmap(vcpu_fd) */ #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ +#define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2) /* * Extension capability list. */ #define KVM_CAP_IRQCHIP 0 #define KVM_CAP_HLT 1 +#define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2 +#define KVM_CAP_USER_MEMORY 3 +#define KVM_CAP_SET_TSS_ADDR 4 +#define KVM_CAP_VAPIC 6 +#define KVM_CAP_EXT_CPUID 7 +#define KVM_CAP_CLOCKSOURCE 8 +#define KVM_CAP_NR_VCPUS 9 /* returns max vcpus per vm */ +#define KVM_CAP_NR_MEMSLOTS 10 /* returns max memory slots per vm */ /* * ioctls for VM fds */ #define KVM_SET_MEMORY_REGION _IOW(KVMIO, 0x40, struct kvm_memory_region) +#define KVM_SET_NR_MMU_PAGES _IO(KVMIO, 0x44) +#define KVM_GET_NR_MMU_PAGES _IO(KVMIO, 0x45) +#define KVM_SET_USER_MEMORY_REGION _IOW(KVMIO, 0x46,\ + struct kvm_userspace_memory_region) +#define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47) /* * KVM_CREATE_VCPU receives as a parameter the vcpu slot, and returns * a vcpu fd. @@ -384,5 +278,11 @@ #define KVM_SET_FPU _IOW(KVMIO, 0x8d, struct kvm_fpu) #define KVM_GET_LAPIC _IOR(KVMIO, 0x8e, struct kvm_lapic_state) #define KVM_SET_LAPIC _IOW(KVMIO, 0x8f, struct kvm_lapic_state) +#define KVM_SET_CPUID2 _IOW(KVMIO, 0x90, struct kvm_cpuid2) +#define KVM_GET_CPUID2 _IOWR(KVMIO, 0x91, struct kvm_cpuid2) +/* Available with KVM_CAP_VAPIC */ +#define KVM_TPR_ACCESS_REPORTING _IOWR(KVMIO, 0x92, struct kvm_tpr_access_ctl) +/* Available with KVM_CAP_VAPIC */ +#define KVM_SET_VAPIC_ADDR _IOW(KVMIO, 0x93, struct kvm_vapic_addr) #endif --- linux-2.6.24.orig/include/linux/netfilter/Kbuild +++ linux-2.6.24/include/linux/netfilter/Kbuild @@ -28,6 +28,7 @@ header-y += xt_multiport.h header-y += xt_pkttype.h header-y += xt_policy.h +header-y += xt_quota.h header-y += xt_realm.h header-y += xt_sctp.h header-y += xt_state.h --- linux-2.6.24.orig/include/linux/kvm_para.h +++ linux-2.6.24/include/linux/kvm_para.h @@ -2,72 +2,30 @@ #define __LINUX_KVM_PARA_H /* - * Guest OS interface for KVM paravirtualization - * - * Note: this interface is totally experimental, and is certain to change - * as we make progress. + * This header file provides a method for making a hypercall to the host + * Architectures should define: + * - kvm_hypercall0, kvm_hypercall1... + * - kvm_arch_para_features + * - kvm_para_available */ -/* - * Per-VCPU descriptor area shared between guest and host. Writable to - * both guest and host. Registered with the host by the guest when - * a guest acknowledges paravirtual mode. - * - * NOTE: all addresses are guest-physical addresses (gpa), to make it - * easier for the hypervisor to map between the various addresses. - */ -struct kvm_vcpu_para_state { - /* - * API version information for compatibility. If there's any support - * mismatch (too old host trying to execute too new guest) then - * the host will deny entry into paravirtual mode. Any other - * combination (new host + old guest and new host + new guest) - * is supposed to work - new host versions will support all old - * guest API versions. - */ - u32 guest_version; - u32 host_version; - u32 size; - u32 ret; - - /* - * The address of the vm exit instruction (VMCALL or VMMCALL), - * which the host will patch according to the CPU model the - * VM runs on: - */ - u64 hypercall_gpa; - -} __attribute__ ((aligned(PAGE_SIZE))); +/* Return values for hypercalls */ +#define KVM_ENOSYS 1000 -#define KVM_PARA_API_VERSION 1 +#define KVM_HC_VAPIC_POLL_IRQ 1 /* - * This is used for an RDMSR's ECX parameter to probe for a KVM host. - * Hopefully no CPU vendor will use up this number. This is placed well - * out of way of the typical space occupied by CPU vendors' MSR indices, - * and we think (or at least hope) it wont be occupied in the future - * either. + * hypercalls use architecture specific */ -#define MSR_KVM_API_MAGIC 0x87655678 +#include -#define KVM_EINVAL 1 - -/* - * Hypercall calling convention: - * - * Each hypercall may have 0-6 parameters. - * - * 64-bit hypercall index is in RAX, goes from 0 to __NR_hypercalls-1 - * - * 64-bit parameters 1-6 are in the standard gcc x86_64 calling convention - * order: RDI, RSI, RDX, RCX, R8, R9. - * - * 32-bit index is EBX, parameters are: EAX, ECX, EDX, ESI, EDI, EBP. - * (the first 3 are according to the gcc regparm calling convention) - * - * No registers are clobbered by the hypercall, except that the - * return value is in RAX. - */ -#define __NR_hypercalls 0 +#ifdef __KERNEL__ +static inline int kvm_para_has_feature(unsigned int feature) +{ + if (kvm_arch_para_features() & (1UL << feature)) + return 1; + return 0; +} +#endif /* __KERNEL__ */ +#endif /* __LINUX_KVM_PARA_H */ -#endif --- linux-2.6.24.orig/include/linux/netfilter_ipv6/Kbuild +++ linux-2.6.24/include/linux/netfilter_ipv6/Kbuild @@ -11,6 +11,7 @@ header-y += ip6t_limit.h header-y += ip6t_mac.h header-y += ip6t_mark.h +header-y += ip6t_mh.h header-y += ip6t_multiport.h header-y += ip6t_opts.h header-y += ip6t_owner.h --- linux-2.6.24.orig/include/linux/fs.h +++ linux-2.6.24/include/linux/fs.h @@ -351,13 +351,6 @@ struct timespec ia_atime; struct timespec ia_mtime; struct timespec ia_ctime; - - /* - * Not an attribute, but an auxilary info for filesystems wanting to - * implement an ftruncate() like method. NOTE: filesystem should - * check for (ia_valid & ATTR_FILE), and not for (ia_file != NULL). - */ - struct file *ia_file; }; /* @@ -1068,13 +1061,13 @@ */ extern int vfs_permission(struct nameidata *, int); extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *); -extern int vfs_mkdir(struct inode *, struct dentry *, int); -extern int vfs_mknod(struct inode *, struct dentry *, int, dev_t); -extern int vfs_symlink(struct inode *, struct dentry *, const char *, int); -extern int vfs_link(struct dentry *, struct inode *, struct dentry *); -extern int vfs_rmdir(struct inode *, struct dentry *); -extern int vfs_unlink(struct inode *, struct dentry *); -extern int vfs_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); +extern int vfs_mkdir(struct inode *, struct dentry *, struct vfsmount *, int); +extern int vfs_mknod(struct inode *, struct dentry *, struct vfsmount *, int, dev_t); +extern int vfs_symlink(struct inode *, struct dentry *, struct vfsmount *, const char *, int); +extern int vfs_link(struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *); +extern int vfs_rmdir(struct inode *, struct dentry *, struct vfsmount *); +extern int vfs_unlink(struct inode *, struct dentry *, struct vfsmount *); +extern int vfs_rename(struct inode *, struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *); /* * VFS dentry helper functions. @@ -1188,6 +1181,8 @@ ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); int (*setlease)(struct file *, long, struct file_lock **); + int (*fgetattr)(struct file *, struct kstat *); + int (*fsetattr)(struct file *, struct iattr *); }; struct inode_operations { @@ -1536,8 +1531,8 @@ /* fs/open.c */ -extern int do_truncate(struct dentry *, loff_t start, unsigned int time_attrs, - struct file *filp); +extern int do_truncate(struct dentry *, struct vfsmount *, loff_t start, + unsigned int time_attrs, struct file *filp); extern long do_sys_open(int dfd, const char __user *filename, int flags, int mode); extern struct file *filp_open(const char *, int, int); @@ -1693,7 +1688,8 @@ #ifdef CONFIG_BLOCK extern sector_t bmap(struct inode *, sector_t); #endif -extern int notify_change(struct dentry *, struct iattr *); +extern int notify_change(struct dentry *, struct vfsmount *, struct iattr *); +extern int fnotify_change(struct dentry *, struct vfsmount *, struct iattr *, struct file *); extern int permission(struct inode *, int, struct nameidata *); extern int generic_permission(struct inode *, int, int (*check_acl)(struct inode *, int)); @@ -1766,9 +1762,9 @@ extern void clear_inode(struct inode *); extern void destroy_inode(struct inode *); extern struct inode *new_inode(struct super_block *); -extern int __remove_suid(struct dentry *, int); +extern int __remove_suid(struct path *, int); extern int should_remove_suid(struct dentry *); -extern int remove_suid(struct dentry *); +extern int remove_suid(struct path *); extern void __insert_inode_hash(struct inode *, unsigned long hashval); extern void remove_inode_hash(struct inode *); --- linux-2.6.24.orig/include/linux/hrtimer.h +++ linux-2.6.24/include/linux/hrtimer.h @@ -300,7 +300,7 @@ /* Precise sleep: */ extern long hrtimer_nanosleep(struct timespec *rqtp, - struct timespec *rmtp, + struct timespec __user *rmtp, const enum hrtimer_mode mode, const clockid_t clockid); extern long hrtimer_nanosleep_restart(struct restart_block *restart_block); --- linux-2.6.24.orig/include/linux/percpu.h +++ linux-2.6.24/include/linux/percpu.h @@ -34,7 +34,7 @@ #ifdef CONFIG_SMP struct percpu_data { - void *ptrs[NR_CPUS]; + void *ptrs[1]; }; #define __percpu_disguise(pdata) (struct percpu_data *)~(unsigned long)(pdata) --- linux-2.6.24.orig/include/linux/moduleparam.h +++ linux-2.6.24/include/linux/moduleparam.h @@ -62,6 +62,16 @@ void *elem; }; +/* On alpha, ia64 and ppc64 relocations to global data cannot go into + read-only sections (which is part of respective UNIX ABI on these + platforms). So 'const' makes no sense and even causes compile failures + with some compilers. */ +#if defined(CONFIG_ALPHA) || defined(CONFIG_IA64) || defined(CONFIG_PPC64) +#define __moduleparam_const +#else +#define __moduleparam_const const +#endif + /* This is the fundamental function for registering boot/module parameters. perm sets the visibility in sysfs: 000 means it's not there, read bits mean it's readable, write bits mean it's @@ -71,7 +81,7 @@ static int __param_perm_check_##name __attribute__((unused)) = \ BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)); \ static const char __param_str_##name[] = prefix #name; \ - static struct kernel_param const __param_##name \ + static struct kernel_param __moduleparam_const __param_##name \ __attribute_used__ \ __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \ = { __param_str_##name, perm, set, get, { arg } } --- linux-2.6.24.orig/include/linux/kvm_host.h +++ linux-2.6.24/include/linux/kvm_host.h @@ -0,0 +1,310 @@ +#ifndef __KVM_HOST_H +#define __KVM_HOST_H + +/* + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include + +#include + +#define KVM_MAX_VCPUS 16 +#define KVM_MEMORY_SLOTS 32 +/* memory slots that does not exposed to userspace */ +#define KVM_PRIVATE_MEM_SLOTS 4 + +#define KVM_PIO_PAGE_OFFSET 1 + +/* + * vcpu->requests bit members + */ +#define KVM_REQ_TLB_FLUSH 0 +#define KVM_REQ_MIGRATE_TIMER 1 +#define KVM_REQ_REPORT_TPR_ACCESS 2 +#define KVM_REQ_MMU_RELOAD 3 +#define KVM_REQ_TRIPLE_FAULT 4 + +struct kvm_vcpu; +extern struct kmem_cache *kvm_vcpu_cache; + +struct kvm_guest_debug { + int enabled; + unsigned long bp[4]; + int singlestep; +}; + +/* + * It would be nice to use something smarter than a linear search, TBD... + * Thankfully we dont expect many devices to register (famous last words :), + * so until then it will suffice. At least its abstracted so we can change + * in one place. + */ +struct kvm_io_bus { + int dev_count; +#define NR_IOBUS_DEVS 6 + struct kvm_io_device *devs[NR_IOBUS_DEVS]; +}; + +void kvm_io_bus_init(struct kvm_io_bus *bus); +void kvm_io_bus_destroy(struct kvm_io_bus *bus); +struct kvm_io_device *kvm_io_bus_find_dev(struct kvm_io_bus *bus, gpa_t addr); +void kvm_io_bus_register_dev(struct kvm_io_bus *bus, + struct kvm_io_device *dev); + +struct kvm_vcpu { + struct kvm *kvm; +#ifdef CONFIG_PREEMPT_NOTIFIERS + struct preempt_notifier preempt_notifier; +#endif + int vcpu_id; + struct mutex mutex; + int cpu; + struct kvm_run *run; + int guest_mode; + unsigned long requests; + struct kvm_guest_debug guest_debug; + int fpu_active; + int guest_fpu_loaded; + wait_queue_head_t wq; + int sigset_active; + sigset_t sigset; + struct kvm_vcpu_stat stat; + +#ifdef CONFIG_HAS_IOMEM + int mmio_needed; + int mmio_read_completed; + int mmio_is_write; + int mmio_size; + unsigned char mmio_data[8]; + gpa_t mmio_phys_addr; +#endif + + struct kvm_vcpu_arch arch; +}; + +struct kvm_memory_slot { + gfn_t base_gfn; + unsigned long npages; + unsigned long flags; + unsigned long *rmap; + unsigned long *dirty_bitmap; + struct { + unsigned long rmap_pde; + int write_count; + } *lpage_info; + unsigned long userspace_addr; + int user_alloc; +}; + +struct kvm { + struct mutex lock; /* protects the vcpus array and APIC accesses */ + spinlock_t mmu_lock; + struct rw_semaphore slots_lock; + struct mm_struct *mm; /* userspace tied to this vm */ + int nmemslots; + struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS + + KVM_PRIVATE_MEM_SLOTS]; + struct kvm_vcpu *vcpus[KVM_MAX_VCPUS]; + struct list_head vm_list; + struct file *filp; + struct kvm_io_bus mmio_bus; + struct kvm_io_bus pio_bus; + struct kvm_vm_stat stat; + struct kvm_arch arch; +}; + +/* The guest did something we don't support. */ +#define pr_unimpl(vcpu, fmt, ...) \ + do { \ + if (printk_ratelimit()) \ + printk(KERN_ERR "kvm: %i: cpu%i " fmt, \ + current->tgid, (vcpu)->vcpu_id , ## __VA_ARGS__); \ + } while (0) + +#define kvm_printf(kvm, fmt ...) printk(KERN_DEBUG fmt) +#define vcpu_printf(vcpu, fmt...) kvm_printf(vcpu->kvm, fmt) + +int kvm_vcpu_init(struct kvm_vcpu *vcpu, struct kvm *kvm, unsigned id); +void kvm_vcpu_uninit(struct kvm_vcpu *vcpu); + +void vcpu_load(struct kvm_vcpu *vcpu); +void vcpu_put(struct kvm_vcpu *vcpu); + +void decache_vcpus_on_cpu(int cpu); + + +int kvm_init(void *opaque, unsigned int vcpu_size, + struct module *module); +void kvm_exit(void); + +#define HPA_MSB ((sizeof(hpa_t) * 8) - 1) +#define HPA_ERR_MASK ((hpa_t)1 << HPA_MSB) +static inline int is_error_hpa(hpa_t hpa) { return hpa >> HPA_MSB; } +struct page *gva_to_page(struct kvm_vcpu *vcpu, gva_t gva); + +extern struct page *bad_page; + +int is_error_page(struct page *page); +int kvm_is_error_hva(unsigned long addr); +int kvm_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + int user_alloc); +int __kvm_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + int user_alloc); +int kvm_arch_set_memory_region(struct kvm *kvm, + struct kvm_userspace_memory_region *mem, + struct kvm_memory_slot old, + int user_alloc); +gfn_t unalias_gfn(struct kvm *kvm, gfn_t gfn); +struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn); +unsigned long gfn_to_hva(struct kvm *kvm, gfn_t gfn); +void kvm_release_page_clean(struct page *page); +void kvm_release_page_dirty(struct page *page); +int kvm_read_guest_page(struct kvm *kvm, gfn_t gfn, void *data, int offset, + int len); +int kvm_read_guest_atomic(struct kvm *kvm, gpa_t gpa, void *data, + unsigned long len); +int kvm_read_guest(struct kvm *kvm, gpa_t gpa, void *data, unsigned long len); +int kvm_write_guest_page(struct kvm *kvm, gfn_t gfn, const void *data, + int offset, int len); +int kvm_write_guest(struct kvm *kvm, gpa_t gpa, const void *data, + unsigned long len); +int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len); +int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len); +struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn); +int kvm_is_visible_gfn(struct kvm *kvm, gfn_t gfn); +void mark_page_dirty(struct kvm *kvm, gfn_t gfn); + +void kvm_vcpu_block(struct kvm_vcpu *vcpu); +void kvm_resched(struct kvm_vcpu *vcpu); +void kvm_load_guest_fpu(struct kvm_vcpu *vcpu); +void kvm_put_guest_fpu(struct kvm_vcpu *vcpu); +void kvm_flush_remote_tlbs(struct kvm *kvm); +void kvm_reload_remote_mmus(struct kvm *kvm); + +long kvm_arch_dev_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg); +long kvm_arch_vcpu_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg); +void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu); +void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu); + +int kvm_dev_ioctl_check_extension(long ext); + +int kvm_get_dirty_log(struct kvm *kvm, + struct kvm_dirty_log *log, int *is_dirty); +int kvm_vm_ioctl_get_dirty_log(struct kvm *kvm, + struct kvm_dirty_log *log); + +int kvm_vm_ioctl_set_memory_region(struct kvm *kvm, + struct + kvm_userspace_memory_region *mem, + int user_alloc); +long kvm_arch_vm_ioctl(struct file *filp, + unsigned int ioctl, unsigned long arg); +void kvm_arch_destroy_vm(struct kvm *kvm); + +int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu); +int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu); + +int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu, + struct kvm_translation *tr); + +int kvm_arch_vcpu_ioctl_get_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs); +int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs); +int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu, + struct kvm_sregs *sregs); +int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu, + struct kvm_sregs *sregs); +int kvm_arch_vcpu_ioctl_debug_guest(struct kvm_vcpu *vcpu, + struct kvm_debug_guest *dbg); +int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run); + +int kvm_arch_init(void *opaque); +void kvm_arch_exit(void); + +int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu); +void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu); + +void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu); +void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu); +void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu); +struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id); +int kvm_arch_vcpu_setup(struct kvm_vcpu *vcpu); +void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu); + +int kvm_arch_vcpu_reset(struct kvm_vcpu *vcpu); +void kvm_arch_hardware_enable(void *garbage); +void kvm_arch_hardware_disable(void *garbage); +int kvm_arch_hardware_setup(void); +void kvm_arch_hardware_unsetup(void); +void kvm_arch_check_processor_compat(void *rtn); +int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu); + +void kvm_free_physmem(struct kvm *kvm); + +struct kvm *kvm_arch_create_vm(void); +void kvm_arch_destroy_vm(struct kvm *kvm); + +int kvm_cpu_get_interrupt(struct kvm_vcpu *v); +int kvm_cpu_has_interrupt(struct kvm_vcpu *v); +void kvm_vcpu_kick(struct kvm_vcpu *vcpu); + +static inline void kvm_guest_enter(void) +{ + account_system_vtime(current); + current->flags |= PF_VCPU; +} + +static inline void kvm_guest_exit(void) +{ + account_system_vtime(current); + current->flags &= ~PF_VCPU; +} + +static inline int memslot_id(struct kvm *kvm, struct kvm_memory_slot *slot) +{ + return slot - kvm->memslots; +} + +static inline gpa_t gfn_to_gpa(gfn_t gfn) +{ + return (gpa_t)gfn << PAGE_SHIFT; +} + +static inline void kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) +{ + set_bit(KVM_REQ_MIGRATE_TIMER, &vcpu->requests); +} + +enum kvm_stat_kind { + KVM_STAT_VM, + KVM_STAT_VCPU, +}; + +struct kvm_stats_debugfs_item { + const char *name; + int offset; + enum kvm_stat_kind kind; + struct dentry *dentry; +}; +extern struct kvm_stats_debugfs_item debugfs_entries[]; + +#endif --- linux-2.6.24.orig/include/linux/latencytop.h +++ linux-2.6.24/include/linux/latencytop.h @@ -0,0 +1,44 @@ +/* + * latencytop.h: Infrastructure for displaying latency + * + * (C) Copyright 2008 Intel Corporation + * Author: Arjan van de Ven + * + */ + +#ifndef _INCLUDE_GUARD_LATENCYTOP_H_ +#define _INCLUDE_GUARD_LATENCYTOP_H_ + +#ifdef CONFIG_LATENCYTOP + +#define LT_SAVECOUNT 32 +#define LT_BACKTRACEDEPTH 12 + +struct latency_record { + unsigned long backtrace[LT_BACKTRACEDEPTH]; + unsigned int count; + unsigned long time; + unsigned long max; +}; + + +struct task_struct; + +void account_scheduler_latency(struct task_struct *task, int usecs, int inter); + +void clear_all_latency_tracing(struct task_struct *p); + +#else + +static inline void +account_scheduler_latency(struct task_struct *task, int usecs, int inter) +{ +} + +static inline void clear_all_latency_tracing(struct task_struct *p) +{ +} + +#endif + +#endif --- linux-2.6.24.orig/include/linux/if_arp.h +++ linux-2.6.24/include/linux/if_arp.h @@ -52,6 +52,8 @@ #define ARPHRD_ROSE 270 #define ARPHRD_X25 271 /* CCITT X.25 */ #define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */ +#define ARPHRD_WIMAX 273 /* WiMAX pseudo-header */ + #define ARPHRD_PPP 512 #define ARPHRD_CISCO 513 /* Cisco HDLC */ #define ARPHRD_HDLC ARPHRD_CISCO --- linux-2.6.24.orig/include/linux/xattr.h +++ linux-2.6.24/include/linux/xattr.h @@ -46,10 +46,13 @@ size_t size, int flags); }; -ssize_t vfs_getxattr(struct dentry *, char *, void *, size_t); -ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size); -int vfs_setxattr(struct dentry *, char *, void *, size_t, int); -int vfs_removexattr(struct dentry *, char *); +ssize_t vfs_getxattr(struct dentry *, struct vfsmount *, char *, void *, + size_t, struct file *); +ssize_t vfs_listxattr(struct dentry *d, struct vfsmount *, char *list, + size_t size, struct file *); +int vfs_setxattr(struct dentry *, struct vfsmount *, char *, void *, size_t, + int, struct file *); +int vfs_removexattr(struct dentry *, struct vfsmount *, char *, struct file *); ssize_t generic_getxattr(struct dentry *dentry, const char *name, void *buffer, size_t size); ssize_t generic_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size); --- linux-2.6.24.orig/include/linux/virtio_config.h +++ linux-2.6.24/include/linux/virtio_config.h @@ -5,7 +5,7 @@ * store and access that space differently. */ #include -/* Status byte for guest to report progress, and synchronize config. */ +/* Status byte for guest to report progress, and synchronize features. */ /* We have seen device and processed generic fields (VIRTIO_CONFIG_F_VIRTIO) */ #define VIRTIO_CONFIG_S_ACKNOWLEDGE 1 /* We have found a driver for the device. */ @@ -15,34 +15,27 @@ /* We've given up on this device. */ #define VIRTIO_CONFIG_S_FAILED 0x80 -/* Feature byte (actually 7 bits availabe): */ -/* Requirements/features of the virtio implementation. */ -#define VIRTIO_CONFIG_F_VIRTIO 1 -/* Requirements/features of the virtqueue (may have more than one). */ -#define VIRTIO_CONFIG_F_VIRTQUEUE 2 - #ifdef __KERNEL__ struct virtio_device; /** * virtio_config_ops - operations for configuring a virtio device - * @find: search for the next configuration field of the given type. + * @feature: search for a feature in this config * vdev: the virtio_device - * type: the feature type - * len: the (returned) length of the field if found. - * Returns a token if found, or NULL. Never returnes the same field twice - * (ie. it's used up). - * @get: read the value of a configuration field after find(). + * bit: the feature bit + * Returns true if the feature is supported. Acknowledges the feature + * so the host can see it. + * @get: read the value of a configuration field * vdev: the virtio_device - * token: the token returned from find(). + * offset: the offset of the configuration field * buf: the buffer to write the field value into. - * len: the length of the buffer (given by find()). + * len: the length of the buffer * Note that contents are conventionally little-endian. - * @set: write the value of a configuration field after find(). + * @set: write the value of a configuration field * vdev: the virtio_device - * token: the token returned from find(). + * offset: the offset of the configuration field * buf: the buffer to read the field value from. - * len: the length of the buffer (given by find()). + * len: the length of the buffer * Note that contents are conventionally little-endian. * @get_status: read the status byte * vdev: the virtio_device @@ -50,62 +43,67 @@ * @set_status: write the status byte * vdev: the virtio_device * status: the new status byte - * @find_vq: find the first VIRTIO_CONFIG_F_VIRTQUEUE and create a virtqueue. + * @reset: reset the device + * vdev: the virtio device + * After this, status and feature negotiation must be done again + * @find_vq: find a virtqueue and instantiate it. * vdev: the virtio_device + * index: the 0-based virtqueue number in case there's more than one. * callback: the virqtueue callback - * Returns the new virtqueue or ERR_PTR(). + * Returns the new virtqueue or ERR_PTR() (eg. -ENOENT). * @del_vq: free a virtqueue found by find_vq(). */ struct virtio_config_ops { - void *(*find)(struct virtio_device *vdev, u8 type, unsigned *len); - void (*get)(struct virtio_device *vdev, void *token, + bool (*feature)(struct virtio_device *vdev, unsigned bit); + void (*get)(struct virtio_device *vdev, unsigned offset, void *buf, unsigned len); - void (*set)(struct virtio_device *vdev, void *token, + void (*set)(struct virtio_device *vdev, unsigned offset, const void *buf, unsigned len); u8 (*get_status)(struct virtio_device *vdev); void (*set_status)(struct virtio_device *vdev, u8 status); + void (*reset)(struct virtio_device *vdev); struct virtqueue *(*find_vq)(struct virtio_device *vdev, - bool (*callback)(struct virtqueue *)); + unsigned index, + void (*callback)(struct virtqueue *)); void (*del_vq)(struct virtqueue *vq); }; /** - * virtio_config_val - get a single virtio config and mark it used. - * @config: the virtio config space - * @type: the type to search for. + * virtio_config_val - look for a feature and get a single virtio config. + * @vdev: the virtio device + * @fbit: the feature bit + * @offset: the type to search for. * @val: a pointer to the value to fill in. * - * Once used, the config type is marked with VIRTIO_CONFIG_F_USED so it can't - * be found again. This version does endian conversion. */ -#define virtio_config_val(vdev, type, v) ({ \ - int _err = __virtio_config_val((vdev),(type),(v),sizeof(*(v))); \ - \ - BUILD_BUG_ON(sizeof(*(v)) != 1 && sizeof(*(v)) != 2 \ - && sizeof(*(v)) != 4 && sizeof(*(v)) != 8); \ - if (!_err) { \ - switch (sizeof(*(v))) { \ - case 2: le16_to_cpus((__u16 *) v); break; \ - case 4: le32_to_cpus((__u32 *) v); break; \ - case 8: le64_to_cpus((__u64 *) v); break; \ - } \ - } \ + * The return value is -ENOENT if the feature doesn't exist. Otherwise + * the value is endian-corrected and returned in v. */ +#define virtio_config_val(vdev, fbit, offset, v) ({ \ + int _err; \ + if ((vdev)->config->feature((vdev), (fbit))) { \ + __virtio_config_val((vdev), (offset), (v)); \ + _err = 0; \ + } else \ + _err = -ENOENT; \ _err; \ }) -int __virtio_config_val(struct virtio_device *dev, - u8 type, void *val, size_t size); - /** - * virtio_use_bit - helper to use a feature bit in a bitfield value. - * @dev: the virtio device - * @token: the token as returned from vdev->config->find(). - * @len: the length of the field. - * @bitnum: the bit to test. + * __virtio_config_val - get a single virtio config without feature check. + * @vdev: the virtio device + * @offset: the type to search for. + * @val: a pointer to the value to fill in. * - * If handed a NULL token, it returns false, otherwise returns bit status. - * If it's one, it sets the mirroring acknowledgement bit. */ -int virtio_use_bit(struct virtio_device *vdev, - void *token, unsigned int len, unsigned int bitnum); + * The value is endian-corrected and returned in v. */ +#define __virtio_config_val(vdev, offset, v) do { \ + BUILD_BUG_ON(sizeof(*(v)) != 1 && sizeof(*(v)) != 2 \ + && sizeof(*(v)) != 4 && sizeof(*(v)) != 8); \ + (vdev)->config->get((vdev), (offset), (v), sizeof(*(v))); \ + switch (sizeof(*(v))) { \ + case 2: le16_to_cpus((__u16 *) v); break; \ + case 4: le32_to_cpus((__u32 *) v); break; \ + case 8: le64_to_cpus((__u64 *) v); break; \ + } \ +} while(0) #endif /* __KERNEL__ */ #endif /* _LINUX_VIRTIO_CONFIG_H */ --- linux-2.6.24.orig/include/linux/usb_usual.h +++ linux-2.6.24/include/linux/usb_usual.h @@ -50,7 +50,9 @@ US_FLAG(CAPACITY_HEURISTICS, 0x00001000) \ /* sometimes sizes is too big */ \ US_FLAG(MAX_SECTORS_MIN,0x00002000) \ - /* Sets max_sectors to arch min */ + /* Sets max_sectors to arch min */ \ + US_FLAG(BULK_IGNORE_TAG,0x00004000) \ + /* Ignore tag mismatch in bulk operations */ #define US_FLAG(name, value) US_FL_##name = value , --- linux-2.6.24.orig/include/linux/dmi.h +++ linux-2.6.24/include/linux/dmi.h @@ -78,6 +78,7 @@ extern void dmi_scan_machine(void); extern int dmi_get_year(int field); extern int dmi_name_in_vendors(const char *str); +extern int dmi_name_in_serial(const char *str); extern int dmi_available; #else @@ -88,6 +89,7 @@ const struct dmi_device *from) { return NULL; } static inline int dmi_get_year(int year) { return 0; } static inline int dmi_name_in_vendors(const char *s) { return 0; } +static inline int dmi_name_in_serial(const char *s) { return 0; } #define dmi_available 0 #endif --- linux-2.6.24.orig/include/linux/mount.h +++ linux-2.6.24/include/linux/mount.h @@ -103,5 +103,10 @@ extern spinlock_t vfsmount_lock; extern dev_t name_to_dev_t(char *name); +extern char *d_namespace_path(struct dentry *, struct vfsmount *, char *, int); + +extern int default_relatime; +extern int relatime_interval; + #endif #endif /* _LINUX_MOUNT_H */ --- linux-2.6.24.orig/include/linux/audit.h +++ linux-2.6.24/include/linux/audit.h @@ -33,7 +33,7 @@ * 1200 - 1299 messages internal to the audit daemon * 1300 - 1399 audit event messages * 1400 - 1499 SE Linux use - * 1500 - 1599 kernel LSPP events + * 1500 - 1599 AppArmor use * 1600 - 1699 kernel crypto events * 1700 - 1799 kernel anomaly records * 1800 - 1999 future kernel use (maybe integrity labels and related events) @@ -116,11 +116,20 @@ #define AUDIT_MAC_IPSEC_DELSPD 1414 /* Not used */ #define AUDIT_MAC_IPSEC_EVENT 1415 /* Audit an IPSec event */ +#define AUDIT_APPARMOR_AUDIT 1501 /* AppArmor audited grants */ +#define AUDIT_APPARMOR_ALLOWED 1502 /* Allowed Access for learning */ +#define AUDIT_APPARMOR_DENIED 1503 +#define AUDIT_APPARMOR_HINT 1504 /* Process Tracking information */ +#define AUDIT_APPARMOR_STATUS 1505 /* Changes in config */ +#define AUDIT_APPARMOR_ERROR 1506 /* Internal AppArmor Errors */ + #define AUDIT_FIRST_KERN_ANOM_MSG 1700 #define AUDIT_LAST_KERN_ANOM_MSG 1799 #define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */ #define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */ +#define AUDIT_SD 1500 /* AppArmor (SubDomain) audit */ + #define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */ /* Rule flags */ @@ -513,6 +522,9 @@ __attribute__((format(printf,4,5))); extern struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type); +extern void audit_log_vformat(struct audit_buffer *ab, + const char *fmt, va_list args) + __attribute__((format(printf,2,0))); extern void audit_log_format(struct audit_buffer *ab, const char *fmt, ...) __attribute__((format(printf,2,3))); --- linux-2.6.24.orig/include/linux/sysctl.h +++ linux-2.6.24/include/linux/sysctl.h @@ -977,6 +977,8 @@ extern int proc_doulongvec_ms_jiffies_minmax(struct ctl_table *table, int, struct file *, void __user *, size_t *, loff_t *); +extern char *sysctl_pathname(ctl_table *, char *, int); + extern int do_sysctl (int __user *name, int nlen, void __user *oldval, size_t __user *oldlenp, void __user *newval, size_t newlen); --- linux-2.6.24.orig/include/linux/futex.h +++ linux-2.6.24/include/linux/futex.h @@ -153,6 +153,7 @@ #ifdef CONFIG_FUTEX extern void exit_robust_list(struct task_struct *curr); extern void exit_pi_state_list(struct task_struct *curr); +extern int futex_cmpxchg_enabled; #else static inline void exit_robust_list(struct task_struct *curr) { --- linux-2.6.24.orig/include/linux/usb/quirks.h +++ linux-2.6.24/include/linux/usb/quirks.h @@ -9,3 +9,6 @@ /* device can't resume correctly so reset it instead */ #define USB_QUIRK_RESET_RESUME 0x00000002 + +/* device can't handle Set-Interface requests */ +#define USB_QUIRK_NO_SET_INTF 0x00000004 --- linux-2.6.24.orig/include/linux/splice.h +++ linux-2.6.24/include/linux/splice.h @@ -70,4 +70,10 @@ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, splice_direct_actor *); +extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags); +extern long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); + #endif --- linux-2.6.24.orig/include/linux/kvm_types.h +++ linux-2.6.24/include/linux/kvm_types.h @@ -0,0 +1,54 @@ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef __KVM_TYPES_H__ +#define __KVM_TYPES_H__ + +#include + +/* + * Address types: + * + * gva - guest virtual address + * gpa - guest physical address + * gfn - guest frame number + * hva - host virtual address + * hpa - host physical address + * hfn - host frame number + */ + +typedef unsigned long gva_t; +typedef u64 gpa_t; +typedef unsigned long gfn_t; + +typedef unsigned long hva_t; +typedef u64 hpa_t; +typedef unsigned long hfn_t; + +struct kvm_pio_request { + unsigned long count; + int cur_count; + struct page *guest_pages[2]; + unsigned guest_page_offset; + int in; + int port; + int size; + int string; + int down; + int rep; +}; + +#endif /* __KVM_TYPES_H__ */ --- linux-2.6.24.orig/include/linux/stacktrace.h +++ linux-2.6.24/include/linux/stacktrace.h @@ -9,10 +9,13 @@ }; extern void save_stack_trace(struct stack_trace *trace); +extern void save_stack_trace_tsk(struct task_struct *tsk, + struct stack_trace *trace); extern void print_stack_trace(struct stack_trace *trace, int spaces); #else # define save_stack_trace(trace) do { } while (0) +# define save_stack_trace_tsk(tsk, trace) do { } while (0) # define print_stack_trace(trace, spaces) do { } while (0) #endif --- linux-2.6.24.orig/include/linux/skbuff.h +++ linux-2.6.24/include/linux/skbuff.h @@ -1804,5 +1804,6 @@ skb->ip_summed = CHECKSUM_NONE; } +bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); #endif /* __KERNEL__ */ #endif /* _LINUX_SKBUFF_H */ --- linux-2.6.24.orig/include/linux/ssb/ssb_regs.h +++ linux-2.6.24/include/linux/ssb/ssb_regs.h @@ -147,6 +147,10 @@ #define SSB_IDLOW_SSBREV 0xF0000000 /* Sonics Backplane Revision code */ #define SSB_IDLOW_SSBREV_22 0x00000000 /* <= 2.2 */ #define SSB_IDLOW_SSBREV_23 0x10000000 /* 2.3 */ +#define SSB_IDLOW_SSBREV_24 0x40000000 /* ?? Found in BCM4328 */ +#define SSB_IDLOW_SSBREV_25 0x50000000 /* ?? Not Found yet */ +#define SSB_IDLOW_SSBREV_26 0x60000000 /* ?? Found in some BCM4311/2 */ +#define SSB_IDLOW_SSBREV_27 0x70000000 /* ?? Found in some BCM4311/2 */ #define SSB_IDHIGH 0x0FFC /* SB Identification High */ #define SSB_IDHIGH_RCLO 0x0000000F /* Revision Code (low part) */ #define SSB_IDHIGH_CC 0x00008FF0 /* Core Code */ --- linux-2.6.24.orig/include/linux/virtio_ring.h +++ linux-2.6.24/include/linux/virtio_ring.h @@ -15,9 +15,13 @@ /* This marks a buffer as write-only (otherwise read-only). */ #define VRING_DESC_F_WRITE 2 -/* This means don't notify other side when buffer added. */ +/* The Host uses this in used->flags to advise the Guest: don't kick me when + * you add a buffer. It's unreliable, so it's simply an optimization. Guest + * will still kick if it's out of buffers. */ #define VRING_USED_F_NO_NOTIFY 1 -/* This means don't interrupt guest when buffer consumed. */ +/* The Guest uses this in avail->flags to advise the Host: don't interrupt me + * when you consume a buffer. It's unreliable, so it's simply an + * optimization. */ #define VRING_AVAIL_F_NO_INTERRUPT 1 /* Virtio ring descriptors: 16 bytes. These can chain together via "next". */ @@ -89,7 +93,7 @@ * }; */ static inline void vring_init(struct vring *vr, unsigned int num, void *p, - unsigned int pagesize) + unsigned long pagesize) { vr->num = num; vr->desc = p; @@ -98,7 +102,7 @@ & ~(pagesize - 1)); } -static inline unsigned vring_size(unsigned int num, unsigned int pagesize) +static inline unsigned vring_size(unsigned int num, unsigned long pagesize) { return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (2 + num) + pagesize - 1) & ~(pagesize - 1)) @@ -114,7 +118,7 @@ struct virtio_device *vdev, void *pages, void (*notify)(struct virtqueue *vq), - bool (*callback)(struct virtqueue *vq)); + void (*callback)(struct virtqueue *vq)); void vring_del_virtqueue(struct virtqueue *vq); irqreturn_t vring_interrupt(int irq, void *_vq); --- linux-2.6.24.orig/include/linux/time.h +++ linux-2.6.24/include/linux/time.h @@ -173,6 +173,10 @@ { ns += a->tv_nsec; while(unlikely(ns >= NSEC_PER_SEC)) { + /* The following asm() prevents the compiler from + * optimising this loop into a modulo operation. */ + asm("" : "+r"(ns)); + ns -= NSEC_PER_SEC; a->tv_sec++; } --- linux-2.6.24.orig/include/linux/virtio_net.h +++ linux-2.6.24/include/linux/virtio_net.h @@ -5,32 +5,32 @@ /* The ID for virtio_net */ #define VIRTIO_ID_NET 1 -/* The bitmap of config for virtio net */ -#define VIRTIO_CONFIG_NET_F 0x40 -#define VIRTIO_NET_F_NO_CSUM 0 -#define VIRTIO_NET_F_TSO4 1 -#define VIRTIO_NET_F_UFO 2 -#define VIRTIO_NET_F_TSO4_ECN 3 -#define VIRTIO_NET_F_TSO6 4 +/* The feature bitmap for virtio net */ +#define VIRTIO_NET_F_CSUM 0 /* Can handle pkts w/ partial csum */ +#define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ +#define VIRTIO_NET_F_GSO 6 /* Can handle pkts w/ any GSO type */ -/* The config defining mac address. */ -#define VIRTIO_CONFIG_NET_MAC_F 0x41 +struct virtio_net_config +{ + /* The config defining mac address (if VIRTIO_NET_F_MAC) */ + __u8 mac[6]; +} __attribute__((packed)); /* This is the first element of the scatter-gather list. If you don't * specify GSO or CSUM features, you can simply ignore the header. */ struct virtio_net_hdr { #define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset - __u8 flags; + __u8 flags; #define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame #define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO) -/* FIXME: Do we need this? If they said they can handle ECN, do they care? */ -#define VIRTIO_NET_HDR_GSO_TCPV4_ECN 2 // GSO frame, IPv4 TCP w/ ECN #define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO) #define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP - __u8 gso_type; - __u16 gso_size; - __u16 csum_start; - __u16 csum_offset; +#define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set + __u8 gso_type; + __u16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */ + __u16 gso_size; /* Bytes to append to gso_hdr_len per frame */ + __u16 csum_start; /* Position to start checksumming from */ + __u16 csum_offset; /* Offset after that to place checksum */ }; #endif /* _LINUX_VIRTIO_NET_H */ --- linux-2.6.24.orig/include/linux/virtio_balloon.h +++ linux-2.6.24/include/linux/virtio_balloon.h @@ -0,0 +1,18 @@ +#ifndef _LINUX_VIRTIO_BALLOON_H +#define _LINUX_VIRTIO_BALLOON_H +#include + +/* The ID for virtio_balloon */ +#define VIRTIO_ID_BALLOON 5 + +/* The feature bitmap for virtio balloon */ +#define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */ + +struct virtio_balloon_config +{ + /* Number of pages host wants Guest to give up. */ + __le32 num_pages; + /* Number of pages we've actually got in balloon. */ + __le32 actual; +}; +#endif /* _LINUX_VIRTIO_BALLOON_H */ --- linux-2.6.24.orig/include/linux/hid.h +++ linux-2.6.24/include/linux/hid.h @@ -267,10 +267,10 @@ #define HID_QUIRK_2WHEEL_MOUSE_HACK_5 0x00000100 #define HID_QUIRK_2WHEEL_MOUSE_HACK_ON 0x00000200 #define HID_QUIRK_MIGHTYMOUSE 0x00000400 -#define HID_QUIRK_POWERBOOK_HAS_FN 0x00000800 -#define HID_QUIRK_POWERBOOK_FN_ON 0x00001000 +#define HID_QUIRK_APPLE_HAS_FN 0x00000800 +#define HID_QUIRK_APPLE_FN_ON 0x00001000 #define HID_QUIRK_INVERT_HWHEEL 0x00002000 -#define HID_QUIRK_POWERBOOK_ISO_KEYBOARD 0x00004000 +#define HID_QUIRK_APPLE_ISO_KEYBOARD 0x00004000 #define HID_QUIRK_BAD_RELATIVE_KEYS 0x00008000 #define HID_QUIRK_SKIP_OUTPUT_REPORTS 0x00010000 #define HID_QUIRK_IGNORE_MOUSE 0x00020000 @@ -281,6 +281,8 @@ #define HID_QUIRK_LOGITECH_IGNORE_DOUBLED_WHEEL 0x00400000 #define HID_QUIRK_LOGITECH_EXPANDED_KEYMAP 0x00800000 #define HID_QUIRK_IGNORE_HIDINPUT 0x01000000 +#define HID_QUIRK_2WHEEL_MOUSE_HACK_B8 0x02000000 +#define HID_QUIRK_APPLE_NUMLOCK_EMULATION 0x20000000 /* * Separate quirks for runtime report descriptor fixup @@ -456,6 +458,8 @@ void *driver_data; + __s32 delayed_value; /* For A4 Tech mice hwheel quirk */ + /* device-specific function pointers */ int (*hidinput_input_event) (struct input_dev *, unsigned int, unsigned int, int); int (*hid_open) (struct hid_device *); @@ -469,7 +473,7 @@ /* handler for raw output data, used by hidraw */ int (*hid_output_raw_report) (struct hid_device *, __u8 *, size_t); #ifdef CONFIG_USB_HIDINPUT_POWERBOOK - unsigned long pb_pressed_fn[BITS_TO_LONGS(KEY_CNT)]; + unsigned long apple_pressed_fn[BITS_TO_LONGS(KEY_CNT)]; unsigned long pb_pressed_numlock[BITS_TO_LONGS(KEY_CNT)]; #endif }; --- linux-2.6.24.orig/include/linux/nfsd/nfsd.h +++ linux-2.6.24/include/linux/nfsd/nfsd.h @@ -79,7 +79,8 @@ #ifdef CONFIG_NFSD_V4 __be32 nfsd4_set_nfs4_acl(struct svc_rqst *, struct svc_fh *, struct nfs4_acl *); -int nfsd4_get_nfs4_acl(struct svc_rqst *, struct dentry *, struct nfs4_acl **); +int nfsd4_get_nfs4_acl(struct svc_rqst *, struct dentry *, + struct vfsmount *mnt, struct nfs4_acl **); #endif /* CONFIG_NFSD_V4 */ __be32 nfsd_create(struct svc_rqst *, struct svc_fh *, char *name, int len, struct iattr *attrs, --- linux-2.6.24.orig/include/acpi/reboot.h +++ linux-2.6.24/include/acpi/reboot.h @@ -0,0 +1,10 @@ +#ifndef __ACPI_REBOOT_H +#define __ACPI_REBOOT_H + +#ifdef CONFIG_ACPI +extern void acpi_reboot(void); +#else +static inline void acpi_reboot(void) { } +#endif + +#endif --- linux-2.6.24.orig/include/acpi/acpi_drivers.h +++ linux-2.6.24/include/acpi/acpi_drivers.h @@ -91,6 +91,7 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev); int acpi_power_get_inferred_state(struct acpi_device *device); int acpi_power_transition(struct acpi_device *device, int state); +extern int acpi_power_nocheck; #endif /* -------------------------------------------------------------------------- --- linux-2.6.24.orig/include/acpi/acresrc.h +++ linux-2.6.24/include/acpi/acresrc.h @@ -94,6 +94,7 @@ #define ACPI_RSC_BITMASK16 18 #define ACPI_RSC_EXIT_NE 19 #define ACPI_RSC_EXIT_LE 20 +#define ACPI_RSC_EXIT_EQ 21 /* Resource Conversion sub-opcodes */ --- linux-2.6.24.orig/include/acpi/actypes.h +++ linux-2.6.24/include/acpi/actypes.h @@ -990,6 +990,7 @@ * Structures used to describe device resources */ struct acpi_resource_irq { + u8 descriptor_length; u8 triggering; u8 polarity; u8 sharable; @@ -1006,6 +1007,7 @@ }; struct acpi_resource_start_dependent { + u8 descriptor_length; u8 compatibility_priority; u8 performance_robustness; }; --- linux-2.6.24.orig/include/asm-parisc/pdc.h +++ linux-2.6.24/include/asm-parisc/pdc.h @@ -645,8 +645,7 @@ void pdc_io_reset(void); void pdc_io_reset_devices(void); int pdc_iodc_getc(void); -int pdc_iodc_print(unsigned char *str, unsigned count); -void pdc_printf(const char *fmt, ...); +int pdc_iodc_print(const unsigned char *str, unsigned count); void pdc_emergency_unlock(void); int pdc_sti_call(unsigned long func, unsigned long flags, --- linux-2.6.24.orig/include/asm-parisc/futex.h +++ linux-2.6.24/include/asm-parisc/futex.h @@ -56,6 +56,12 @@ int err = 0; int uval; + /* futex.c wants to do a cmpxchg_inatomic on kernel NULL, which is + * our gateway page, and causes no end of trouble... + */ + if (segment_eq(KERNEL_DS, get_fs()) && !uaddr) + return -EFAULT; + if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) return -EFAULT; @@ -67,5 +73,5 @@ return uval; } -#endif -#endif +#endif /*__KERNEL__*/ +#endif /*_ASM_PARISC_FUTEX_H*/ --- linux-2.6.24.orig/include/asm-x86/system_32.h +++ linux-2.6.24/include/asm-x86/system_32.h @@ -5,6 +5,7 @@ #include #include #include +#include #ifdef __KERNEL__ #define AT_VECTOR_SIZE_ARCH 2 /* entries in ARCH_DLINFO */ @@ -299,6 +300,19 @@ #define set_mb(var, value) do { var = value; barrier(); } while (0) #endif +/* + * Stop RDTSC speculation. This is needed when you need to use RDTSC + * (or get_cycles or vread that possibly accesses the TSC) in a defined + * code region. + * + * (Could use an alternative three way for this if there was one.) + */ +static inline void rdtsc_barrier(void) +{ + alternative(ASM_NOP3, "mfence", X86_FEATURE_MFENCE_RDTSC); + alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC); +} + #include /* --- linux-2.6.24.orig/include/asm-x86/io_apic_64.h +++ linux-2.6.24/include/asm-x86/io_apic_64.h @@ -129,7 +129,7 @@ extern int sis_apic_bug; /* dummy */ -void enable_NMI_through_LVT0 (void * dummy); +void enable_NMI_through_LVT0(void); extern spinlock_t i8259A_lock; --- linux-2.6.24.orig/include/asm-x86/processor_64.h +++ linux-2.6.24/include/asm-x86/processor_64.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -76,6 +77,7 @@ __u8 cpu_core_id; /* Core id. */ __u8 cpu_index; /* index into per_cpu list */ #endif + unsigned int x86_hyper_vendor; } ____cacheline_aligned; #define X86_VENDOR_INTEL 0 @@ -88,6 +90,9 @@ #define X86_VENDOR_NUM 8 #define X86_VENDOR_UNKNOWN 0xff +#define X86_HYPER_VENDOR_NONE 0 +#define X86_HYPER_VENDOR_VMWARE 1 + #ifdef CONFIG_SMP DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); #define cpu_data(cpu) per_cpu(cpu_info, cpu) @@ -335,50 +340,6 @@ struct extended_signature sigs[0]; }; - -#if defined(CONFIG_MPSC) || defined(CONFIG_MCORE2) -#define ASM_NOP1 P6_NOP1 -#define ASM_NOP2 P6_NOP2 -#define ASM_NOP3 P6_NOP3 -#define ASM_NOP4 P6_NOP4 -#define ASM_NOP5 P6_NOP5 -#define ASM_NOP6 P6_NOP6 -#define ASM_NOP7 P6_NOP7 -#define ASM_NOP8 P6_NOP8 -#else -#define ASM_NOP1 K8_NOP1 -#define ASM_NOP2 K8_NOP2 -#define ASM_NOP3 K8_NOP3 -#define ASM_NOP4 K8_NOP4 -#define ASM_NOP5 K8_NOP5 -#define ASM_NOP6 K8_NOP6 -#define ASM_NOP7 K8_NOP7 -#define ASM_NOP8 K8_NOP8 -#endif - -/* Opteron nops */ -#define K8_NOP1 ".byte 0x90\n" -#define K8_NOP2 ".byte 0x66,0x90\n" -#define K8_NOP3 ".byte 0x66,0x66,0x90\n" -#define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n" -#define K8_NOP5 K8_NOP3 K8_NOP2 -#define K8_NOP6 K8_NOP3 K8_NOP3 -#define K8_NOP7 K8_NOP4 K8_NOP3 -#define K8_NOP8 K8_NOP4 K8_NOP4 - -/* P6 nops */ -/* uses eax dependencies (Intel-recommended choice) */ -#define P6_NOP1 ".byte 0x90\n" -#define P6_NOP2 ".byte 0x66,0x90\n" -#define P6_NOP3 ".byte 0x0f,0x1f,0x00\n" -#define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n" -#define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n" -#define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n" -#define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n" -#define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n" - -#define ASM_NOP_MAX 8 - /* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */ static inline void rep_nop(void) { --- linux-2.6.24.orig/include/asm-x86/lguest.h +++ linux-2.6.24/include/asm-x86/lguest.h @@ -56,7 +56,7 @@ struct desc_struct guest_gdt[GDT_ENTRIES]; }; -struct lguest_arch +struct lg_cpu_arch { /* The GDT entries copied into lguest_ro_state when running. */ struct desc_struct gdt[GDT_ENTRIES]; --- linux-2.6.24.orig/include/asm-x86/msr.h +++ linux-2.6.24/include/asm-x86/msr.h @@ -13,6 +13,7 @@ #ifndef __ASSEMBLY__ #include +#include static inline unsigned long long native_read_msr(unsigned int msr) { @@ -69,7 +70,11 @@ static inline unsigned long long native_read_tsc(void) { unsigned long long val; + + rdtsc_barrier(); asm volatile("rdtsc" : "=A" (val)); + rdtsc_barrier(); + return val; } @@ -169,6 +174,7 @@ #ifndef __ASSEMBLY__ #include +#include /* * Access to machine-specific registers (available on 586 and better only) * Note: the rd* operations modify the parameters directly (without using @@ -220,6 +226,17 @@ #define write_rdtscp_aux(val) wrmsr(0xc0000103, val, 0) +static inline unsigned long long native_read_tsc(void) +{ + unsigned long long val; + + rdtsc_barrier(); + rdtscll(val); + rdtsc_barrier(); + + return val; +} + #define rdpmc(counter,low,high) \ __asm__ __volatile__("rdpmc" \ : "=a" (low), "=d" (high) \ --- linux-2.6.24.orig/include/asm-x86/Kbuild +++ linux-2.6.24/include/asm-x86/Kbuild @@ -3,6 +3,7 @@ header-y += boot.h header-y += bootparam.h header-y += debugreg.h +header-y += kvm.h header-y += ldt.h header-y += msr-index.h header-y += prctl.h --- linux-2.6.24.orig/include/asm-x86/processor_32.h +++ linux-2.6.24/include/asm-x86/processor_32.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -81,6 +82,7 @@ __u8 cpu_core_id; /* Core id */ __u8 cpu_index; /* index into per_cpu list */ #endif + unsigned int x86_hyper_vendor; } __attribute__((__aligned__(SMP_CACHE_BYTES))); #define X86_VENDOR_INTEL 0 @@ -94,6 +96,9 @@ #define X86_VENDOR_NUM 9 #define X86_VENDOR_UNKNOWN 0xff +#define X86_HYPER_VENDOR_NONE 0 +#define X86_HYPER_VENDOR_VMWARE 1 + /* * capabilities of CPUs */ @@ -652,90 +657,6 @@ return edx; } -/* generic versions from gas */ -#define GENERIC_NOP1 ".byte 0x90\n" -#define GENERIC_NOP2 ".byte 0x89,0xf6\n" -#define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n" -#define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n" -#define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4 -#define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n" -#define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n" -#define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7 - -/* Opteron nops */ -#define K8_NOP1 GENERIC_NOP1 -#define K8_NOP2 ".byte 0x66,0x90\n" -#define K8_NOP3 ".byte 0x66,0x66,0x90\n" -#define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n" -#define K8_NOP5 K8_NOP3 K8_NOP2 -#define K8_NOP6 K8_NOP3 K8_NOP3 -#define K8_NOP7 K8_NOP4 K8_NOP3 -#define K8_NOP8 K8_NOP4 K8_NOP4 - -/* K7 nops */ -/* uses eax dependencies (arbitary choice) */ -#define K7_NOP1 GENERIC_NOP1 -#define K7_NOP2 ".byte 0x8b,0xc0\n" -#define K7_NOP3 ".byte 0x8d,0x04,0x20\n" -#define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n" -#define K7_NOP5 K7_NOP4 ASM_NOP1 -#define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n" -#define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n" -#define K7_NOP8 K7_NOP7 ASM_NOP1 - -/* P6 nops */ -/* uses eax dependencies (Intel-recommended choice) */ -#define P6_NOP1 GENERIC_NOP1 -#define P6_NOP2 ".byte 0x66,0x90\n" -#define P6_NOP3 ".byte 0x0f,0x1f,0x00\n" -#define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n" -#define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n" -#define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n" -#define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n" -#define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n" - -#ifdef CONFIG_MK8 -#define ASM_NOP1 K8_NOP1 -#define ASM_NOP2 K8_NOP2 -#define ASM_NOP3 K8_NOP3 -#define ASM_NOP4 K8_NOP4 -#define ASM_NOP5 K8_NOP5 -#define ASM_NOP6 K8_NOP6 -#define ASM_NOP7 K8_NOP7 -#define ASM_NOP8 K8_NOP8 -#elif defined(CONFIG_MK7) -#define ASM_NOP1 K7_NOP1 -#define ASM_NOP2 K7_NOP2 -#define ASM_NOP3 K7_NOP3 -#define ASM_NOP4 K7_NOP4 -#define ASM_NOP5 K7_NOP5 -#define ASM_NOP6 K7_NOP6 -#define ASM_NOP7 K7_NOP7 -#define ASM_NOP8 K7_NOP8 -#elif defined(CONFIG_M686) || defined(CONFIG_MPENTIUMII) || \ - defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUMM) || \ - defined(CONFIG_MCORE2) || defined(CONFIG_PENTIUM4) -#define ASM_NOP1 P6_NOP1 -#define ASM_NOP2 P6_NOP2 -#define ASM_NOP3 P6_NOP3 -#define ASM_NOP4 P6_NOP4 -#define ASM_NOP5 P6_NOP5 -#define ASM_NOP6 P6_NOP6 -#define ASM_NOP7 P6_NOP7 -#define ASM_NOP8 P6_NOP8 -#else -#define ASM_NOP1 GENERIC_NOP1 -#define ASM_NOP2 GENERIC_NOP2 -#define ASM_NOP3 GENERIC_NOP3 -#define ASM_NOP4 GENERIC_NOP4 -#define ASM_NOP5 GENERIC_NOP5 -#define ASM_NOP6 GENERIC_NOP6 -#define ASM_NOP7 GENERIC_NOP7 -#define ASM_NOP8 GENERIC_NOP8 -#endif - -#define ASM_NOP_MAX 8 - /* Prefetch instructions for Pentium III and AMD Athlon */ /* It's not worth to care about 3dnow! prefetches for the K6 because they are microcoded there and very slow. --- linux-2.6.24.orig/include/asm-x86/nops_64.h +++ linux-2.6.24/include/asm-x86/nops_64.h @@ -0,0 +1,49 @@ +#ifndef _ASM_NOPS_H +#define _ASM_NOPS_H + +/* Define nops for use with alternative() */ + +#if defined(CONFIG_MPSC) || defined(CONFIG_MCORE2) +#define ASM_NOP1 P6_NOP1 +#define ASM_NOP2 P6_NOP2 +#define ASM_NOP3 P6_NOP3 +#define ASM_NOP4 P6_NOP4 +#define ASM_NOP5 P6_NOP5 +#define ASM_NOP6 P6_NOP6 +#define ASM_NOP7 P6_NOP7 +#define ASM_NOP8 P6_NOP8 +#else +#define ASM_NOP1 K8_NOP1 +#define ASM_NOP2 K8_NOP2 +#define ASM_NOP3 K8_NOP3 +#define ASM_NOP4 K8_NOP4 +#define ASM_NOP5 K8_NOP5 +#define ASM_NOP6 K8_NOP6 +#define ASM_NOP7 K8_NOP7 +#define ASM_NOP8 K8_NOP8 +#endif + +/* Opteron nops */ +#define K8_NOP1 ".byte 0x90\n" +#define K8_NOP2 ".byte 0x66,0x90\n" +#define K8_NOP3 ".byte 0x66,0x66,0x90\n" +#define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n" +#define K8_NOP5 K8_NOP3 K8_NOP2 +#define K8_NOP6 K8_NOP3 K8_NOP3 +#define K8_NOP7 K8_NOP4 K8_NOP3 +#define K8_NOP8 K8_NOP4 K8_NOP4 + +/* P6 nops */ +/* uses eax dependencies (Intel-recommended choice) */ +#define P6_NOP1 ".byte 0x90\n" +#define P6_NOP2 ".byte 0x66,0x90\n" +#define P6_NOP3 ".byte 0x0f,0x1f,0x00\n" +#define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n" +#define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n" +#define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n" +#define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n" +#define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n" + +#define ASM_NOP_MAX 8 + +#endif --- linux-2.6.24.orig/include/asm-x86/apic_32.h +++ linux-2.6.24/include/asm-x86/apic_32.h @@ -109,7 +109,7 @@ extern void setup_secondary_APIC_clock (void); extern int APIC_init_uniprocessor (void); -extern void enable_NMI_through_LVT0 (void * dummy); +extern void enable_NMI_through_LVT0(void); #define ARCH_APICTIMER_STOPS_ON_C3 1 --- linux-2.6.24.orig/include/asm-x86/kvm.h +++ linux-2.6.24/include/asm-x86/kvm.h @@ -0,0 +1,191 @@ +#ifndef __LINUX_KVM_X86_H +#define __LINUX_KVM_X86_H + +/* + * KVM x86 specific structures and definitions + * + */ + +#include +#include + +/* Architectural interrupt line count. */ +#define KVM_NR_INTERRUPTS 256 + +struct kvm_memory_alias { + __u32 slot; /* this has a different namespace than memory slots */ + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; + __u64 target_phys_addr; +}; + +/* for KVM_GET_IRQCHIP and KVM_SET_IRQCHIP */ +struct kvm_pic_state { + __u8 last_irr; /* edge detection */ + __u8 irr; /* interrupt request register */ + __u8 imr; /* interrupt mask register */ + __u8 isr; /* interrupt service register */ + __u8 priority_add; /* highest irq priority */ + __u8 irq_base; + __u8 read_reg_select; + __u8 poll; + __u8 special_mask; + __u8 init_state; + __u8 auto_eoi; + __u8 rotate_on_auto_eoi; + __u8 special_fully_nested_mode; + __u8 init4; /* true if 4 byte init */ + __u8 elcr; /* PIIX edge/trigger selection */ + __u8 elcr_mask; +}; + +#define KVM_IOAPIC_NUM_PINS 24 +struct kvm_ioapic_state { + __u64 base_address; + __u32 ioregsel; + __u32 id; + __u32 irr; + __u32 pad; + union { + __u64 bits; + struct { + __u8 vector; + __u8 delivery_mode:3; + __u8 dest_mode:1; + __u8 delivery_status:1; + __u8 polarity:1; + __u8 remote_irr:1; + __u8 trig_mode:1; + __u8 mask:1; + __u8 reserve:7; + __u8 reserved[4]; + __u8 dest_id; + } fields; + } redirtbl[KVM_IOAPIC_NUM_PINS]; +}; + +#define KVM_IRQCHIP_PIC_MASTER 0 +#define KVM_IRQCHIP_PIC_SLAVE 1 +#define KVM_IRQCHIP_IOAPIC 2 + +/* for KVM_GET_REGS and KVM_SET_REGS */ +struct kvm_regs { + /* out (KVM_GET_REGS) / in (KVM_SET_REGS) */ + __u64 rax, rbx, rcx, rdx; + __u64 rsi, rdi, rsp, rbp; + __u64 r8, r9, r10, r11; + __u64 r12, r13, r14, r15; + __u64 rip, rflags; +}; + +/* for KVM_GET_LAPIC and KVM_SET_LAPIC */ +#define KVM_APIC_REG_SIZE 0x400 +struct kvm_lapic_state { + char regs[KVM_APIC_REG_SIZE]; +}; + +struct kvm_segment { + __u64 base; + __u32 limit; + __u16 selector; + __u8 type; + __u8 present, dpl, db, s, l, g, avl; + __u8 unusable; + __u8 padding; +}; + +struct kvm_dtable { + __u64 base; + __u16 limit; + __u16 padding[3]; +}; + + +/* for KVM_GET_SREGS and KVM_SET_SREGS */ +struct kvm_sregs { + /* out (KVM_GET_SREGS) / in (KVM_SET_SREGS) */ + struct kvm_segment cs, ds, es, fs, gs, ss; + struct kvm_segment tr, ldt; + struct kvm_dtable gdt, idt; + __u64 cr0, cr2, cr3, cr4, cr8; + __u64 efer; + __u64 apic_base; + __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64]; +}; + +/* for KVM_GET_FPU and KVM_SET_FPU */ +struct kvm_fpu { + __u8 fpr[8][16]; + __u16 fcw; + __u16 fsw; + __u8 ftwx; /* in fxsave format */ + __u8 pad1; + __u16 last_opcode; + __u64 last_ip; + __u64 last_dp; + __u8 xmm[16][16]; + __u32 mxcsr; + __u32 pad2; +}; + +struct kvm_msr_entry { + __u32 index; + __u32 reserved; + __u64 data; +}; + +/* for KVM_GET_MSRS and KVM_SET_MSRS */ +struct kvm_msrs { + __u32 nmsrs; /* number of msrs in entries */ + __u32 pad; + + struct kvm_msr_entry entries[0]; +}; + +/* for KVM_GET_MSR_INDEX_LIST */ +struct kvm_msr_list { + __u32 nmsrs; /* number of msrs in entries */ + __u32 indices[0]; +}; + + +struct kvm_cpuid_entry { + __u32 function; + __u32 eax; + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 padding; +}; + +/* for KVM_SET_CPUID */ +struct kvm_cpuid { + __u32 nent; + __u32 padding; + struct kvm_cpuid_entry entries[0]; +}; + +struct kvm_cpuid_entry2 { + __u32 function; + __u32 index; + __u32 flags; + __u32 eax; + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 padding[3]; +}; + +#define KVM_CPUID_FLAG_SIGNIFCANT_INDEX 1 +#define KVM_CPUID_FLAG_STATEFUL_FUNC 2 +#define KVM_CPUID_FLAG_STATE_READ_NEXT 4 + +/* for KVM_SET_CPUID2 */ +struct kvm_cpuid2 { + __u32 nent; + __u32 padding; + struct kvm_cpuid_entry2 entries[0]; +}; + +#endif --- linux-2.6.24.orig/include/asm-x86/kvm_para.h +++ linux-2.6.24/include/asm-x86/kvm_para.h @@ -0,0 +1,130 @@ +#ifndef __X86_KVM_PARA_H +#define __X86_KVM_PARA_H + +/* This CPUID returns the signature 'KVMKVMKVM' in ebx, ecx, and edx. It + * should be used to determine that a VM is running under KVM. + */ +#define KVM_CPUID_SIGNATURE 0x40000000 + +/* This CPUID returns a feature bitmap in eax. Before enabling a particular + * paravirtualization, the appropriate feature bit should be checked. + */ +#define KVM_CPUID_FEATURES 0x40000001 +#define KVM_FEATURE_CLOCKSOURCE 0 + +#define MSR_KVM_WALL_CLOCK 0x11 +#define MSR_KVM_SYSTEM_TIME 0x12 + +#ifdef __KERNEL__ +#include + +/* xen binary-compatible interface. See xen headers for details */ +struct kvm_vcpu_time_info { + uint32_t version; + uint32_t pad0; + uint64_t tsc_timestamp; + uint64_t system_time; + uint32_t tsc_to_system_mul; + int8_t tsc_shift; + int8_t pad[3]; +} __attribute__((__packed__)); /* 32 bytes */ + +struct kvm_wall_clock { + uint32_t wc_version; + uint32_t wc_sec; + uint32_t wc_nsec; +} __attribute__((__packed__)); + + +extern void kvmclock_init(void); + + +/* This instruction is vmcall. On non-VT architectures, it will generate a + * trap that we will then rewrite to the appropriate instruction. + */ +#define KVM_HYPERCALL ".byte 0x0f,0x01,0xc1" + +/* For KVM hypercalls, a three-byte sequence of either the vmrun or the vmmrun + * instruction. The hypervisor may replace it with something else but only the + * instructions are guaranteed to be supported. + * + * Up to four arguments may be passed in rbx, rcx, rdx, and rsi respectively. + * The hypercall number should be placed in rax and the return value will be + * placed in rax. No other registers will be clobbered unless explicited + * noted by the particular hypercall. + */ + +static inline long kvm_hypercall0(unsigned int nr) +{ + long ret; + asm volatile(KVM_HYPERCALL + : "=a"(ret) + : "a"(nr)); + return ret; +} + +static inline long kvm_hypercall1(unsigned int nr, unsigned long p1) +{ + long ret; + asm volatile(KVM_HYPERCALL + : "=a"(ret) + : "a"(nr), "b"(p1)); + return ret; +} + +static inline long kvm_hypercall2(unsigned int nr, unsigned long p1, + unsigned long p2) +{ + long ret; + asm volatile(KVM_HYPERCALL + : "=a"(ret) + : "a"(nr), "b"(p1), "c"(p2)); + return ret; +} + +static inline long kvm_hypercall3(unsigned int nr, unsigned long p1, + unsigned long p2, unsigned long p3) +{ + long ret; + asm volatile(KVM_HYPERCALL + : "=a"(ret) + : "a"(nr), "b"(p1), "c"(p2), "d"(p3)); + return ret; +} + +static inline long kvm_hypercall4(unsigned int nr, unsigned long p1, + unsigned long p2, unsigned long p3, + unsigned long p4) +{ + long ret; + asm volatile(KVM_HYPERCALL + : "=a"(ret) + : "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4)); + return ret; +} + +static inline int kvm_para_available(void) +{ + unsigned int eax, ebx, ecx, edx; + char signature[13]; + + cpuid(KVM_CPUID_SIGNATURE, &eax, &ebx, &ecx, &edx); + memcpy(signature + 0, &ebx, 4); + memcpy(signature + 4, &ecx, 4); + memcpy(signature + 8, &edx, 4); + signature[12] = 0; + + if (strcmp(signature, "KVMKVMKVM") == 0) + return 1; + + return 0; +} + +static inline unsigned int kvm_arch_para_features(void) +{ + return cpuid_eax(KVM_CPUID_FEATURES); +} + +#endif + +#endif --- linux-2.6.24.orig/include/asm-x86/cpufeature_32.h +++ linux-2.6.24/include/asm-x86/cpufeature_32.h @@ -82,6 +82,9 @@ /* 14 free */ #define X86_FEATURE_SYNC_RDTSC (3*32+15) /* RDTSC synchronizes the CPU */ #define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well on this CPU */ +#define X86_FEATURE_MFENCE_RDTSC (3*32+17) /* Mfence synchronizes RDTSC */ +#define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* Lfence synchronizes RDTSC */ +#define X86_FEATURE_TSC_RELIABLE (3*32+23) /* TSC is known to be reliable */ /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ #define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */ @@ -93,6 +96,7 @@ #define X86_FEATURE_CX16 (4*32+13) /* CMPXCHG16B */ #define X86_FEATURE_XTPR (4*32+14) /* Send Task Priority Messages */ #define X86_FEATURE_DCA (4*32+18) /* Direct Cache Access */ +#define X86_FEATURE_HYPERVISOR (4*32+31) /* Running on a hypervisor */ /* VIA/Cyrix/Centaur-defined CPU features, CPUID level 0xC0000001, word 5 */ #define X86_FEATURE_XSTORE (5*32+ 2) /* on-CPU RNG present (xstore insn) */ @@ -165,6 +169,7 @@ #define cpu_has_pebs boot_cpu_has(X86_FEATURE_PEBS) #define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH) #define cpu_has_bts boot_cpu_has(X86_FEATURE_BTS) +#define cpu_has_hypervisor boot_cpu_has(X86_FEATURE_HYPERVISOR) #endif /* __ASM_I386_CPUFEATURE_H */ --- linux-2.6.24.orig/include/asm-x86/hypervisor.h +++ linux-2.6.24/include/asm-x86/hypervisor.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2008, VMware, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ +#ifndef ASM_X86__HYPERVISOR_H +#define ASM_X86__HYPERVISOR_H + +extern unsigned long get_hypervisor_tsc_freq(void); +extern void init_hypervisor(struct cpuinfo_x86 *c); + +#endif --- linux-2.6.24.orig/include/asm-x86/io_32.h +++ linux-2.6.24/include/asm-x86/io_32.h @@ -250,10 +250,10 @@ #endif /* __KERNEL__ */ -static inline void native_io_delay(void) -{ - asm volatile("outb %%al,$0x80" : : : "memory"); -} +extern void native_io_delay(void); + +extern int io_delay_type; +extern void io_delay_init(void); #if defined(CONFIG_PARAVIRT) #include --- linux-2.6.24.orig/include/asm-x86/vmware.h +++ linux-2.6.24/include/asm-x86/vmware.h @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2008, VMware, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ +#ifndef ASM_X86__VMWARE_H +#define ASM_X86__VMWARE_H + +extern unsigned long vmware_get_tsc_khz(void); +extern int vmware_platform(void); +extern void vmware_set_feature_bits(struct cpuinfo_x86 *c); + +#endif --- linux-2.6.24.orig/include/asm-x86/kvm_x86_emulate.h +++ linux-2.6.24/include/asm-x86/kvm_x86_emulate.h @@ -0,0 +1,186 @@ +/****************************************************************************** + * x86_emulate.h + * + * Generic x86 (32-bit and 64-bit) instruction decoder and emulator. + * + * Copyright (c) 2005 Keir Fraser + * + * From: xen-unstable 10676:af9809f51f81a3c43f276f00c81a52ef558afda4 + */ + +#ifndef __X86_EMULATE_H__ +#define __X86_EMULATE_H__ + +struct x86_emulate_ctxt; + +/* + * x86_emulate_ops: + * + * These operations represent the instruction emulator's interface to memory. + * There are two categories of operation: those that act on ordinary memory + * regions (*_std), and those that act on memory regions known to require + * special treatment or emulation (*_emulated). + * + * The emulator assumes that an instruction accesses only one 'emulated memory' + * location, that this location is the given linear faulting address (cr2), and + * that this is one of the instruction's data operands. Instruction fetches and + * stack operations are assumed never to access emulated memory. The emulator + * automatically deduces which operand of a string-move operation is accessing + * emulated memory, and assumes that the other operand accesses normal memory. + * + * NOTES: + * 1. The emulator isn't very smart about emulated vs. standard memory. + * 'Emulated memory' access addresses should be checked for sanity. + * 'Normal memory' accesses may fault, and the caller must arrange to + * detect and handle reentrancy into the emulator via recursive faults. + * Accesses may be unaligned and may cross page boundaries. + * 2. If the access fails (cannot emulate, or a standard access faults) then + * it is up to the memop to propagate the fault to the guest VM via + * some out-of-band mechanism, unknown to the emulator. The memop signals + * failure by returning X86EMUL_PROPAGATE_FAULT to the emulator, which will + * then immediately bail. + * 3. Valid access sizes are 1, 2, 4 and 8 bytes. On x86/32 systems only + * cmpxchg8b_emulated need support 8-byte accesses. + * 4. The emulator cannot handle 64-bit mode emulation on an x86/32 system. + */ +/* Access completed successfully: continue emulation as normal. */ +#define X86EMUL_CONTINUE 0 +/* Access is unhandleable: bail from emulation and return error to caller. */ +#define X86EMUL_UNHANDLEABLE 1 +/* Terminate emulation but return success to the caller. */ +#define X86EMUL_PROPAGATE_FAULT 2 /* propagate a generated fault to guest */ +#define X86EMUL_RETRY_INSTR 2 /* retry the instruction for some reason */ +#define X86EMUL_CMPXCHG_FAILED 2 /* cmpxchg did not see expected value */ +struct x86_emulate_ops { + /* + * read_std: Read bytes of standard (non-emulated/special) memory. + * Used for instruction fetch, stack operations, and others. + * @addr: [IN ] Linear address from which to read. + * @val: [OUT] Value read from memory, zero-extended to 'u_long'. + * @bytes: [IN ] Number of bytes to read from memory. + */ + int (*read_std)(unsigned long addr, void *val, + unsigned int bytes, struct kvm_vcpu *vcpu); + + /* + * read_emulated: Read bytes from emulated/special memory area. + * @addr: [IN ] Linear address from which to read. + * @val: [OUT] Value read from memory, zero-extended to 'u_long'. + * @bytes: [IN ] Number of bytes to read from memory. + */ + int (*read_emulated) (unsigned long addr, + void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu); + + /* + * write_emulated: Read bytes from emulated/special memory area. + * @addr: [IN ] Linear address to which to write. + * @val: [IN ] Value to write to memory (low-order bytes used as + * required). + * @bytes: [IN ] Number of bytes to write to memory. + */ + int (*write_emulated) (unsigned long addr, + const void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu); + + /* + * cmpxchg_emulated: Emulate an atomic (LOCKed) CMPXCHG operation on an + * emulated/special memory area. + * @addr: [IN ] Linear address to access. + * @old: [IN ] Value expected to be current at @addr. + * @new: [IN ] Value to write to @addr. + * @bytes: [IN ] Number of bytes to access using CMPXCHG. + */ + int (*cmpxchg_emulated) (unsigned long addr, + const void *old, + const void *new, + unsigned int bytes, + struct kvm_vcpu *vcpu); + +}; + +/* Type, address-of, and value of an instruction's operand. */ +struct operand { + enum { OP_REG, OP_MEM, OP_IMM, OP_NONE } type; + unsigned int bytes; + unsigned long val, orig_val, *ptr; +}; + +struct fetch_cache { + u8 data[15]; + unsigned long start; + unsigned long end; +}; + +struct decode_cache { + u8 twobyte; + u8 b; + u8 lock_prefix; + u8 rep_prefix; + u8 op_bytes; + u8 ad_bytes; + u8 rex_prefix; + struct operand src; + struct operand dst; + unsigned long *override_base; + unsigned int d; + unsigned long regs[NR_VCPU_REGS]; + unsigned long eip; + /* modrm */ + u8 modrm; + u8 modrm_mod; + u8 modrm_reg; + u8 modrm_rm; + u8 use_modrm_ea; + unsigned long modrm_ea; + unsigned long modrm_val; + struct fetch_cache fetch; +}; + +struct x86_emulate_ctxt { + /* Register state before/after emulation. */ + struct kvm_vcpu *vcpu; + + /* Linear faulting address (if emulating a page-faulting instruction). */ + unsigned long eflags; + + /* Emulated execution mode, represented by an X86EMUL_MODE value. */ + int mode; + + unsigned long cs_base; + unsigned long ds_base; + unsigned long es_base; + unsigned long ss_base; + unsigned long gs_base; + unsigned long fs_base; + + /* decode cache */ + + struct decode_cache decode; +}; + +/* Repeat String Operation Prefix */ +#define REPE_PREFIX 1 +#define REPNE_PREFIX 2 + +/* Execution mode, passed to the emulator. */ +#define X86EMUL_MODE_REAL 0 /* Real mode. */ +#define X86EMUL_MODE_PROT16 2 /* 16-bit protected mode. */ +#define X86EMUL_MODE_PROT32 4 /* 32-bit protected mode. */ +#define X86EMUL_MODE_PROT64 8 /* 64-bit (long) mode. */ + +/* Host execution mode. */ +#if defined(__i386__) +#define X86EMUL_MODE_HOST X86EMUL_MODE_PROT32 +#elif defined(CONFIG_X86_64) +#define X86EMUL_MODE_HOST X86EMUL_MODE_PROT64 +#endif + +int x86_decode_insn(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops); +int x86_emulate_insn(struct x86_emulate_ctxt *ctxt, + struct x86_emulate_ops *ops); + +#endif /* __X86_EMULATE_H__ */ --- linux-2.6.24.orig/include/asm-x86/kvm_host.h +++ linux-2.6.24/include/asm-x86/kvm_host.h @@ -0,0 +1,636 @@ +#/* + * Kernel-based Virtual Machine driver for Linux + * + * This header defines architecture specific interfaces, x86 version + * + * This work is licensed under the terms of the GNU GPL, version 2. See + * the COPYING file in the top-level directory. + * + */ + +#ifndef ASM_KVM_HOST_H +#define ASM_KVM_HOST_H + +#include +#include + +#include +#include +#include + +#include + +#define CR3_PAE_RESERVED_BITS ((X86_CR3_PWT | X86_CR3_PCD) - 1) +#define CR3_NONPAE_RESERVED_BITS ((PAGE_SIZE-1) & ~(X86_CR3_PWT | X86_CR3_PCD)) +#define CR3_L_MODE_RESERVED_BITS (CR3_NONPAE_RESERVED_BITS|0xFFFFFF0000000000ULL) + +#define KVM_GUEST_CR0_MASK \ + (X86_CR0_PG | X86_CR0_PE | X86_CR0_WP | X86_CR0_NE \ + | X86_CR0_NW | X86_CR0_CD) +#define KVM_VM_CR0_ALWAYS_ON \ + (X86_CR0_PG | X86_CR0_PE | X86_CR0_WP | X86_CR0_NE | X86_CR0_TS \ + | X86_CR0_MP) +#define KVM_GUEST_CR4_MASK \ + (X86_CR4_VME | X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE | X86_CR4_VMXE) +#define KVM_PMODE_VM_CR4_ALWAYS_ON (X86_CR4_PAE | X86_CR4_VMXE) +#define KVM_RMODE_VM_CR4_ALWAYS_ON (X86_CR4_VME | X86_CR4_PAE | X86_CR4_VMXE) + +#define INVALID_PAGE (~(hpa_t)0) +#define UNMAPPED_GVA (~(gpa_t)0) + +/* shadow tables are PAE even on non-PAE hosts */ +#define KVM_HPAGE_SHIFT 21 +#define KVM_HPAGE_SIZE (1UL << KVM_HPAGE_SHIFT) +#define KVM_HPAGE_MASK (~(KVM_HPAGE_SIZE - 1)) + +#define KVM_PAGES_PER_HPAGE (KVM_HPAGE_SIZE / PAGE_SIZE) + +#define DE_VECTOR 0 +#define UD_VECTOR 6 +#define NM_VECTOR 7 +#define DF_VECTOR 8 +#define TS_VECTOR 10 +#define NP_VECTOR 11 +#define SS_VECTOR 12 +#define GP_VECTOR 13 +#define PF_VECTOR 14 + +#define SELECTOR_TI_MASK (1 << 2) +#define SELECTOR_RPL_MASK 0x03 + +#define IOPL_SHIFT 12 + +#define KVM_ALIAS_SLOTS 4 + +#define KVM_PERMILLE_MMU_PAGES 20 +#define KVM_MIN_ALLOC_MMU_PAGES 64 +#define KVM_MMU_HASH_SHIFT 10 +#define KVM_NUM_MMU_PAGES (1 << KVM_MMU_HASH_SHIFT) +#define KVM_MIN_FREE_MMU_PAGES 5 +#define KVM_REFILL_PAGES 25 +#define KVM_MAX_CPUID_ENTRIES 40 + +extern spinlock_t kvm_lock; +extern struct list_head vm_list; + +struct kvm_vcpu; +struct kvm; + +enum { + VCPU_REGS_RAX = 0, + VCPU_REGS_RCX = 1, + VCPU_REGS_RDX = 2, + VCPU_REGS_RBX = 3, + VCPU_REGS_RSP = 4, + VCPU_REGS_RBP = 5, + VCPU_REGS_RSI = 6, + VCPU_REGS_RDI = 7, +#ifdef CONFIG_X86_64 + VCPU_REGS_R8 = 8, + VCPU_REGS_R9 = 9, + VCPU_REGS_R10 = 10, + VCPU_REGS_R11 = 11, + VCPU_REGS_R12 = 12, + VCPU_REGS_R13 = 13, + VCPU_REGS_R14 = 14, + VCPU_REGS_R15 = 15, +#endif + NR_VCPU_REGS +}; + +enum { + VCPU_SREG_CS, + VCPU_SREG_DS, + VCPU_SREG_ES, + VCPU_SREG_FS, + VCPU_SREG_GS, + VCPU_SREG_SS, + VCPU_SREG_TR, + VCPU_SREG_LDTR, +}; + +#include + +#define KVM_NR_MEM_OBJS 40 + +/* + * We don't want allocation failures within the mmu code, so we preallocate + * enough memory for a single page fault in a cache. + */ +struct kvm_mmu_memory_cache { + int nobjs; + void *objects[KVM_NR_MEM_OBJS]; +}; + +#define NR_PTE_CHAIN_ENTRIES 5 + +struct kvm_pte_chain { + u64 *parent_ptes[NR_PTE_CHAIN_ENTRIES]; + struct hlist_node link; +}; + +/* + * kvm_mmu_page_role, below, is defined as: + * + * bits 0:3 - total guest paging levels (2-4, or zero for real mode) + * bits 4:7 - page table level for this shadow (1-4) + * bits 8:9 - page table quadrant for 2-level guests + * bit 16 - "metaphysical" - gfn is not a real page (huge page/real mode) + * bits 17:19 - common access permissions for all ptes in this shadow page + */ +union kvm_mmu_page_role { + unsigned word; + struct { + unsigned glevels : 4; + unsigned level : 4; + unsigned quadrant : 2; + unsigned pad_for_nice_hex_output : 6; + unsigned metaphysical : 1; + unsigned access : 3; + unsigned invalid : 1; + }; +}; + +struct kvm_mmu_page { + struct list_head link; + struct hlist_node hash_link; + + /* + * The following two entries are used to key the shadow page in the + * hash table. + */ + gfn_t gfn; + union kvm_mmu_page_role role; + + u64 *spt; + /* hold the gfn of each spte inside spt */ + gfn_t *gfns; + unsigned long slot_bitmap; /* One bit set per slot which has memory + * in this shadow page. + */ + int multimapped; /* More than one parent_pte? */ + int root_count; /* Currently serving as active root */ + union { + u64 *parent_pte; /* !multimapped */ + struct hlist_head parent_ptes; /* multimapped, kvm_pte_chain */ + }; +}; + +/* + * x86 supports 3 paging modes (4-level 64-bit, 3-level 64-bit, and 2-level + * 32-bit). The kvm_mmu structure abstracts the details of the current mmu + * mode. + */ +struct kvm_mmu { + void (*new_cr3)(struct kvm_vcpu *vcpu); + int (*page_fault)(struct kvm_vcpu *vcpu, gva_t gva, u32 err); + void (*free)(struct kvm_vcpu *vcpu); + gpa_t (*gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t gva); + void (*prefetch_page)(struct kvm_vcpu *vcpu, + struct kvm_mmu_page *page); + hpa_t root_hpa; + int root_level; + int shadow_root_level; + + u64 *pae_root; +}; + +struct kvm_vcpu_arch { + u64 host_tsc; + int interrupt_window_open; + unsigned long irq_summary; /* bit vector: 1 per word in irq_pending */ + DECLARE_BITMAP(irq_pending, KVM_NR_INTERRUPTS); + unsigned long regs[NR_VCPU_REGS]; /* for rsp: vcpu_load_rsp_rip() */ + unsigned long rip; /* needs vcpu_load_rsp_rip() */ + + unsigned long cr0; + unsigned long cr2; + unsigned long cr3; + unsigned long cr4; + unsigned long cr8; + u64 pdptrs[4]; /* pae */ + u64 shadow_efer; + u64 apic_base; + struct kvm_lapic *apic; /* kernel irqchip context */ +#define VCPU_MP_STATE_RUNNABLE 0 +#define VCPU_MP_STATE_UNINITIALIZED 1 +#define VCPU_MP_STATE_INIT_RECEIVED 2 +#define VCPU_MP_STATE_SIPI_RECEIVED 3 +#define VCPU_MP_STATE_HALTED 4 + int mp_state; + int sipi_vector; + u64 ia32_misc_enable_msr; + bool tpr_access_reporting; + + struct kvm_mmu mmu; + + struct kvm_mmu_memory_cache mmu_pte_chain_cache; + struct kvm_mmu_memory_cache mmu_rmap_desc_cache; + struct kvm_mmu_memory_cache mmu_page_cache; + struct kvm_mmu_memory_cache mmu_page_header_cache; + + gfn_t last_pt_write_gfn; + int last_pt_write_count; + u64 *last_pte_updated; + + struct { + gfn_t gfn; /* presumed gfn during guest pte update */ + struct page *page; /* page corresponding to that gfn */ + int largepage; + } update_pte; + + struct i387_fxsave_struct host_fx_image; + struct i387_fxsave_struct guest_fx_image; + + gva_t mmio_fault_cr2; + struct kvm_pio_request pio; + void *pio_data; + + struct kvm_queued_exception { + bool pending; + bool has_error_code; + u8 nr; + u32 error_code; + } exception; + + struct { + int active; + u8 save_iopl; + struct kvm_save_segment { + u16 selector; + unsigned long base; + u32 limit; + u32 ar; + } tr, es, ds, fs, gs; + } rmode; + int halt_request; /* real mode on Intel only */ + + int cpuid_nent; + struct kvm_cpuid_entry2 cpuid_entries[KVM_MAX_CPUID_ENTRIES]; + /* emulate context */ + + struct x86_emulate_ctxt emulate_ctxt; + + gpa_t time; + struct kvm_vcpu_time_info hv_clock; + unsigned int time_offset; + struct page *time_page; +}; + +struct kvm_mem_alias { + gfn_t base_gfn; + unsigned long npages; + gfn_t target_gfn; +}; + +struct kvm_arch{ + int naliases; + struct kvm_mem_alias aliases[KVM_ALIAS_SLOTS]; + + unsigned int n_free_mmu_pages; + unsigned int n_requested_mmu_pages; + unsigned int n_alloc_mmu_pages; + struct hlist_head mmu_page_hash[KVM_NUM_MMU_PAGES]; + /* + * Hash table of struct kvm_mmu_page. + */ + struct list_head active_mmu_pages; + struct kvm_pic *vpic; + struct kvm_ioapic *vioapic; + + int round_robin_prev_vcpu; + unsigned int tss_addr; + struct page *apic_access_page; + + gpa_t wall_clock; +}; + +struct kvm_vm_stat { + u32 mmu_shadow_zapped; + u32 mmu_pte_write; + u32 mmu_pte_updated; + u32 mmu_pde_zapped; + u32 mmu_flooded; + u32 mmu_recycled; + u32 mmu_cache_miss; + u32 remote_tlb_flush; + u32 lpages; +}; + +struct kvm_vcpu_stat { + u32 pf_fixed; + u32 pf_guest; + u32 tlb_flush; + u32 invlpg; + + u32 exits; + u32 io_exits; + u32 mmio_exits; + u32 signal_exits; + u32 irq_window_exits; + u32 halt_exits; + u32 halt_wakeup; + u32 request_irq_exits; + u32 irq_exits; + u32 host_state_reload; + u32 efer_reload; + u32 fpu_reload; + u32 insn_emulation; + u32 insn_emulation_fail; + u32 hypercalls; +}; + +struct descriptor_table { + u16 limit; + unsigned long base; +} __attribute__((packed)); + +struct kvm_x86_ops { + int (*cpu_has_kvm_support)(void); /* __init */ + int (*disabled_by_bios)(void); /* __init */ + void (*hardware_enable)(void *dummy); /* __init */ + void (*hardware_disable)(void *dummy); + void (*check_processor_compatibility)(void *rtn); + int (*hardware_setup)(void); /* __init */ + void (*hardware_unsetup)(void); /* __exit */ + bool (*cpu_has_accelerated_tpr)(void); + + /* Create, but do not attach this VCPU */ + struct kvm_vcpu *(*vcpu_create)(struct kvm *kvm, unsigned id); + void (*vcpu_free)(struct kvm_vcpu *vcpu); + int (*vcpu_reset)(struct kvm_vcpu *vcpu); + + void (*prepare_guest_switch)(struct kvm_vcpu *vcpu); + void (*vcpu_load)(struct kvm_vcpu *vcpu, int cpu); + void (*vcpu_put)(struct kvm_vcpu *vcpu); + void (*vcpu_decache)(struct kvm_vcpu *vcpu); + + int (*set_guest_debug)(struct kvm_vcpu *vcpu, + struct kvm_debug_guest *dbg); + void (*guest_debug_pre)(struct kvm_vcpu *vcpu); + int (*get_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 *pdata); + int (*set_msr)(struct kvm_vcpu *vcpu, u32 msr_index, u64 data); + u64 (*get_segment_base)(struct kvm_vcpu *vcpu, int seg); + void (*get_segment)(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg); + void (*set_segment)(struct kvm_vcpu *vcpu, + struct kvm_segment *var, int seg); + void (*get_cs_db_l_bits)(struct kvm_vcpu *vcpu, int *db, int *l); + void (*decache_cr4_guest_bits)(struct kvm_vcpu *vcpu); + void (*set_cr0)(struct kvm_vcpu *vcpu, unsigned long cr0); + void (*set_cr3)(struct kvm_vcpu *vcpu, unsigned long cr3); + void (*set_cr4)(struct kvm_vcpu *vcpu, unsigned long cr4); + void (*set_efer)(struct kvm_vcpu *vcpu, u64 efer); + void (*get_idt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); + void (*set_idt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); + void (*get_gdt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); + void (*set_gdt)(struct kvm_vcpu *vcpu, struct descriptor_table *dt); + unsigned long (*get_dr)(struct kvm_vcpu *vcpu, int dr); + void (*set_dr)(struct kvm_vcpu *vcpu, int dr, unsigned long value, + int *exception); + void (*cache_regs)(struct kvm_vcpu *vcpu); + void (*decache_regs)(struct kvm_vcpu *vcpu); + unsigned long (*get_rflags)(struct kvm_vcpu *vcpu); + void (*set_rflags)(struct kvm_vcpu *vcpu, unsigned long rflags); + + void (*tlb_flush)(struct kvm_vcpu *vcpu); + + void (*run)(struct kvm_vcpu *vcpu, struct kvm_run *run); + int (*handle_exit)(struct kvm_run *run, struct kvm_vcpu *vcpu); + void (*skip_emulated_instruction)(struct kvm_vcpu *vcpu); + void (*patch_hypercall)(struct kvm_vcpu *vcpu, + unsigned char *hypercall_addr); + int (*get_irq)(struct kvm_vcpu *vcpu); + void (*set_irq)(struct kvm_vcpu *vcpu, int vec); + void (*queue_exception)(struct kvm_vcpu *vcpu, unsigned nr, + bool has_error_code, u32 error_code); + bool (*exception_injected)(struct kvm_vcpu *vcpu); + void (*inject_pending_irq)(struct kvm_vcpu *vcpu); + void (*inject_pending_vectors)(struct kvm_vcpu *vcpu, + struct kvm_run *run); + + int (*set_tss_addr)(struct kvm *kvm, unsigned int addr); +}; + +extern struct kvm_x86_ops *kvm_x86_ops; + +int kvm_mmu_module_init(void); +void kvm_mmu_module_exit(void); + +void kvm_mmu_destroy(struct kvm_vcpu *vcpu); +int kvm_mmu_create(struct kvm_vcpu *vcpu); +int kvm_mmu_setup(struct kvm_vcpu *vcpu); +void kvm_mmu_set_nonpresent_ptes(u64 trap_pte, u64 notrap_pte); + +int kvm_mmu_reset_context(struct kvm_vcpu *vcpu); +void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot); +void kvm_mmu_zap_all(struct kvm *kvm); +unsigned int kvm_mmu_calculate_mmu_pages(struct kvm *kvm); +void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages); + +int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3); + +enum emulation_result { + EMULATE_DONE, /* no further processing */ + EMULATE_DO_MMIO, /* kvm_run filled with mmio request */ + EMULATE_FAIL, /* can't emulate this instruction */ +}; + +#define EMULTYPE_NO_DECODE (1 << 0) +#define EMULTYPE_TRAP_UD (1 << 1) +int emulate_instruction(struct kvm_vcpu *vcpu, struct kvm_run *run, + unsigned long cr2, u16 error_code, int emulation_type); +void kvm_report_emulation_failure(struct kvm_vcpu *cvpu, const char *context); +void realmode_lgdt(struct kvm_vcpu *vcpu, u16 size, unsigned long address); +void realmode_lidt(struct kvm_vcpu *vcpu, u16 size, unsigned long address); +void realmode_lmsw(struct kvm_vcpu *vcpu, unsigned long msw, + unsigned long *rflags); + +unsigned long realmode_get_cr(struct kvm_vcpu *vcpu, int cr); +void realmode_set_cr(struct kvm_vcpu *vcpu, int cr, unsigned long value, + unsigned long *rflags); +void kvm_enable_efer_bits(u64); +int kvm_get_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 *data); +int kvm_set_msr(struct kvm_vcpu *vcpu, u32 msr_index, u64 data); + +struct x86_emulate_ctxt; + +int kvm_emulate_pio(struct kvm_vcpu *vcpu, struct kvm_run *run, int in, + int size, unsigned port); +int kvm_emulate_pio_string(struct kvm_vcpu *vcpu, struct kvm_run *run, int in, + int size, unsigned long count, int down, + gva_t address, int rep, unsigned port); +void kvm_emulate_cpuid(struct kvm_vcpu *vcpu); +int kvm_emulate_halt(struct kvm_vcpu *vcpu); +int emulate_invlpg(struct kvm_vcpu *vcpu, gva_t address); +int emulate_clts(struct kvm_vcpu *vcpu); +int emulator_get_dr(struct x86_emulate_ctxt *ctxt, int dr, + unsigned long *dest); +int emulator_set_dr(struct x86_emulate_ctxt *ctxt, int dr, + unsigned long value); + +void kvm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0); +void kvm_set_cr3(struct kvm_vcpu *vcpu, unsigned long cr0); +void kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr0); +void kvm_set_cr8(struct kvm_vcpu *vcpu, unsigned long cr0); +unsigned long kvm_get_cr8(struct kvm_vcpu *vcpu); +void kvm_lmsw(struct kvm_vcpu *vcpu, unsigned long msw); +void kvm_get_cs_db_l_bits(struct kvm_vcpu *vcpu, int *db, int *l); + +int kvm_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata); +int kvm_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data); + +void kvm_queue_exception(struct kvm_vcpu *vcpu, unsigned nr); +void kvm_queue_exception_e(struct kvm_vcpu *vcpu, unsigned nr, u32 error_code); +void kvm_inject_page_fault(struct kvm_vcpu *vcpu, unsigned long cr2, + u32 error_code); + +void fx_init(struct kvm_vcpu *vcpu); + +int emulator_read_std(unsigned long addr, + void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu); +int emulator_write_emulated(unsigned long addr, + const void *val, + unsigned int bytes, + struct kvm_vcpu *vcpu); + +unsigned long segment_base(u16 selector); + +void kvm_mmu_flush_tlb(struct kvm_vcpu *vcpu); +void kvm_mmu_pte_write(struct kvm_vcpu *vcpu, gpa_t gpa, + const u8 *new, int bytes); +int kvm_mmu_unprotect_page_virt(struct kvm_vcpu *vcpu, gva_t gva); +void __kvm_mmu_free_some_pages(struct kvm_vcpu *vcpu); +int kvm_mmu_load(struct kvm_vcpu *vcpu); +void kvm_mmu_unload(struct kvm_vcpu *vcpu); + +int kvm_emulate_hypercall(struct kvm_vcpu *vcpu); + +int kvm_fix_hypercall(struct kvm_vcpu *vcpu); + +int kvm_mmu_page_fault(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code); + +void kvm_enable_tdp(void); + +int load_pdptrs(struct kvm_vcpu *vcpu, unsigned long cr3); +int complete_pio(struct kvm_vcpu *vcpu); + +static inline struct kvm_mmu_page *page_header(hpa_t shadow_page) +{ + struct page *page = pfn_to_page(shadow_page >> PAGE_SHIFT); + + return (struct kvm_mmu_page *)page_private(page); +} + +static inline u16 read_fs(void) +{ + u16 seg; + asm("mov %%fs, %0" : "=g"(seg)); + return seg; +} + +static inline u16 read_gs(void) +{ + u16 seg; + asm("mov %%gs, %0" : "=g"(seg)); + return seg; +} + +static inline u16 read_ldt(void) +{ + u16 ldt; + asm("sldt %0" : "=g"(ldt)); + return ldt; +} + +static inline void load_fs(u16 sel) +{ + asm("mov %0, %%fs" : : "rm"(sel)); +} + +static inline void load_gs(u16 sel) +{ + asm("mov %0, %%gs" : : "rm"(sel)); +} + +#ifndef load_ldt +static inline void load_ldt(u16 sel) +{ + asm("lldt %0" : : "rm"(sel)); +} +#endif + +static inline void get_idt(struct descriptor_table *table) +{ + asm("sidt %0" : "=m"(*table)); +} + +static inline void get_gdt(struct descriptor_table *table) +{ + asm("sgdt %0" : "=m"(*table)); +} + +static inline unsigned long read_tr_base(void) +{ + u16 tr; + asm("str %0" : "=g"(tr)); + return segment_base(tr); +} + +#ifdef CONFIG_X86_64 +static inline unsigned long read_msr(unsigned long msr) +{ + u64 value; + + rdmsrl(msr, value); + return value; +} +#endif + +static inline void fx_save(struct i387_fxsave_struct *image) +{ + asm("fxsave (%0)":: "r" (image)); +} + +static inline void fx_restore(struct i387_fxsave_struct *image) +{ + asm("fxrstor (%0)":: "r" (image)); +} + +static inline void fpu_init(void) +{ + asm("finit"); +} + +static inline u32 get_rdx_init_val(void) +{ + return 0x600; /* P6 family */ +} + +static inline void kvm_inject_gp(struct kvm_vcpu *vcpu, u32 error_code) +{ + kvm_queue_exception_e(vcpu, GP_VECTOR, error_code); +} + +#define ASM_VMX_VMCLEAR_RAX ".byte 0x66, 0x0f, 0xc7, 0x30" +#define ASM_VMX_VMLAUNCH ".byte 0x0f, 0x01, 0xc2" +#define ASM_VMX_VMRESUME ".byte 0x0f, 0x01, 0xc3" +#define ASM_VMX_VMPTRLD_RAX ".byte 0x0f, 0xc7, 0x30" +#define ASM_VMX_VMREAD_RDX_RAX ".byte 0x0f, 0x78, 0xd0" +#define ASM_VMX_VMWRITE_RAX_RDX ".byte 0x0f, 0x79, 0xd0" +#define ASM_VMX_VMWRITE_RSP_RDX ".byte 0x0f, 0x79, 0xd4" +#define ASM_VMX_VMXOFF ".byte 0x0f, 0x01, 0xc4" +#define ASM_VMX_VMXON_RAX ".byte 0xf3, 0x0f, 0xc7, 0x30" +#define ASM_VMX_INVVPID ".byte 0x66, 0x0f, 0x38, 0x81, 0x08" + +#define MSR_IA32_TIME_STAMP_COUNTER 0x010 + +#define TSS_IOPB_BASE_OFFSET 0x66 +#define TSS_BASE_SIZE 0x68 +#define TSS_IOPB_SIZE (65536 / 8) +#define TSS_REDIRECTION_SIZE (256 / 8) +#define RMODE_TSS_SIZE (TSS_BASE_SIZE + TSS_REDIRECTION_SIZE + TSS_IOPB_SIZE + 1) + +#endif --- linux-2.6.24.orig/include/asm-x86/futex_32.h +++ linux-2.6.24/include/asm-x86/futex_32.h @@ -28,7 +28,7 @@ "1: movl %2, %0\n\ movl %0, %3\n" \ insn "\n" \ -"2: " LOCK_PREFIX "cmpxchgl %3, %2\n\ +"2: lock ; cmpxchgl %3, %2\n\ jnz 1b\n\ 3: .section .fixup,\"ax\"\n\ 4: mov %5, %1\n\ @@ -68,7 +68,7 @@ #endif switch (op) { case FUTEX_OP_ADD: - __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, + __futex_atomic_op1("lock ; xaddl %0, %2", ret, oldval, uaddr, oparg); break; case FUTEX_OP_OR: @@ -111,7 +111,7 @@ return -EFAULT; __asm__ __volatile__( - "1: " LOCK_PREFIX "cmpxchgl %3, %1 \n" + "1: lock ; cmpxchgl %3, %1 \n" "2: .section .fixup, \"ax\" \n" "3: mov %2, %0 \n" --- linux-2.6.24.orig/include/asm-x86/pgtable_64.h +++ linux-2.6.24/include/asm-x86/pgtable_64.h @@ -410,6 +410,7 @@ remap_pfn_range(vma, vaddr, pfn, size, prot) #define HAVE_ARCH_UNMAPPED_AREA +#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN #define pgtable_cache_init() do { } while (0) #define check_pgt_cache() do { } while (0) --- linux-2.6.24.orig/include/asm-x86/system_64.h +++ linux-2.6.24/include/asm-x86/system_64.h @@ -4,6 +4,7 @@ #include #include #include +#include #ifdef __KERNEL__ @@ -173,6 +174,19 @@ #define read_barrier_depends() do {} while(0) #define set_mb(var, value) do { (void) xchg(&var, value); } while (0) +/* + * Stop RDTSC speculation. This is needed when you need to use RDTSC + * (or get_cycles or vread that possibly accesses the TSC) in a defined + * code region. + * + * (Could use an alternative three way for this if there was one.) + */ +static inline void rdtsc_barrier(void) +{ + alternative(ASM_NOP3, "mfence", X86_FEATURE_MFENCE_RDTSC); + alternative(ASM_NOP3, "lfence", X86_FEATURE_LFENCE_RDTSC); +} + #define warn_if_not_ulong(x) do { unsigned long foo; (void) (&(x) == &foo); } while (0) #include --- linux-2.6.24.orig/include/asm-x86/tsc.h +++ linux-2.6.24/include/asm-x86/tsc.h @@ -32,32 +32,17 @@ return ret; } -/* Like get_cycles, but make sure the CPU is synchronized. */ -static __always_inline cycles_t get_cycles_sync(void) +static inline cycles_t vget_cycles(void) { - unsigned long long ret; - unsigned eax, edx; - - /* - * Use RDTSCP if possible; it is guaranteed to be synchronous - * and doesn't cause a VMEXIT on Hypervisors - */ - alternative_io(ASM_NOP3, ".byte 0x0f,0x01,0xf9", X86_FEATURE_RDTSCP, - ASM_OUTPUT2("=a" (eax), "=d" (edx)), - "a" (0U), "d" (0U) : "ecx", "memory"); - ret = (((unsigned long long)edx) << 32) | ((unsigned long long)eax); - if (ret) - return ret; - /* - * Don't do an additional sync on CPUs where we know - * RDTSC is already synchronous: + * We only do VDSOs on TSC capable CPUs, so this shouldnt + * access boot_cpu_data (which is not VDSO-safe): */ - alternative_io("cpuid", ASM_NOP2, X86_FEATURE_SYNC_RDTSC, - "=a" (eax), "0" (1) : "ebx","ecx","edx","memory"); - rdtscll(ret); - - return ret; +#ifndef CONFIG_X86_TSC + if (!cpu_has_tsc) + return 0; +#endif + return (cycles_t) native_read_tsc(); } extern void tsc_init(void); --- linux-2.6.24.orig/include/asm-x86/signal.h +++ linux-2.6.24/include/asm-x86/signal.h @@ -181,14 +181,14 @@ #ifdef __KERNEL__ #include -#ifdef __386__ +#ifdef __i386__ #define __HAVE_ARCH_SIG_BITOPS -#define sigaddset(set,sig) \ - (__builtin_constantp(sig) ? \ - __const_sigaddset((set),(sig)) : \ - __gen_sigaddset((set),(sig))) +#define sigaddset(set,sig) \ + (__builtin_constant_p(sig) \ + ? __const_sigaddset((set), (sig)) \ + : __gen_sigaddset((set), (sig))) static __inline__ void __gen_sigaddset(sigset_t *set, int _sig) { --- linux-2.6.24.orig/include/asm-x86/page_64.h +++ linux-2.6.24/include/asm-x86/page_64.h @@ -45,6 +45,9 @@ void clear_page(void *); void copy_page(void *, void *); +extern int page_is_ram(unsigned long pagenr); +extern int devmem_is_allowed(unsigned long pagenr); + #define clear_user_page(page, vaddr, pg) clear_page(page) #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) --- linux-2.6.24.orig/include/asm-x86/gart.h +++ linux-2.6.24/include/asm-x86/gart.h @@ -10,6 +10,7 @@ extern void gart_iommu_shutdown(void); extern void __init gart_parse_options(char *); extern void gart_iommu_hole_init(void); +extern void set_up_gart_resume(u32, u32); extern int fallback_aper_order; extern int fallback_aper_force; extern int gart_iommu_aperture; --- linux-2.6.24.orig/include/asm-x86/e820.h +++ linux-2.6.24/include/asm-x86/e820.h @@ -22,6 +22,9 @@ }; #endif /* __ASSEMBLY__ */ +#define BIOS_BEGIN 0x000a0000 +#define BIOS_END 0x00100000 + #ifdef __KERNEL__ #ifdef CONFIG_X86_32 # include "e820_32.h" --- linux-2.6.24.orig/include/asm-x86/seccomp_32.h +++ linux-2.6.24/include/asm-x86/seccomp_32.h @@ -1,11 +1,5 @@ #ifndef _ASM_SECCOMP_H -#include - -#ifdef TIF_32BIT -#error "unexpected TIF_32BIT on i386" -#endif - #include #define __NR_seccomp_read __NR_read --- linux-2.6.24.orig/include/asm-x86/nops_32.h +++ linux-2.6.24/include/asm-x86/nops_32.h @@ -0,0 +1,91 @@ +#ifndef _ASM_NOPS_H +#define _ASM_NOPS_H + +/* Define nops for use with alternative() */ + +/* generic versions from gas */ +#define GENERIC_NOP1 ".byte 0x90\n" +#define GENERIC_NOP2 ".byte 0x89,0xf6\n" +#define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n" +#define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n" +#define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4 +#define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n" +#define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n" +#define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7 + +/* Opteron nops */ +#define K8_NOP1 GENERIC_NOP1 +#define K8_NOP2 ".byte 0x66,0x90\n" +#define K8_NOP3 ".byte 0x66,0x66,0x90\n" +#define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n" +#define K8_NOP5 K8_NOP3 K8_NOP2 +#define K8_NOP6 K8_NOP3 K8_NOP3 +#define K8_NOP7 K8_NOP4 K8_NOP3 +#define K8_NOP8 K8_NOP4 K8_NOP4 + +/* K7 nops */ +/* uses eax dependencies (arbitary choice) */ +#define K7_NOP1 GENERIC_NOP1 +#define K7_NOP2 ".byte 0x8b,0xc0\n" +#define K7_NOP3 ".byte 0x8d,0x04,0x20\n" +#define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n" +#define K7_NOP5 K7_NOP4 ASM_NOP1 +#define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n" +#define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n" +#define K7_NOP8 K7_NOP7 ASM_NOP1 + +/* P6 nops */ +/* uses eax dependencies (Intel-recommended choice) */ +#define P6_NOP1 GENERIC_NOP1 +#define P6_NOP2 ".byte 0x66,0x90\n" +#define P6_NOP3 ".byte 0x0f,0x1f,0x00\n" +#define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n" +#define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n" +#define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n" +#define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n" +#define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n" + +#ifdef CONFIG_MK8 +#define ASM_NOP1 K8_NOP1 +#define ASM_NOP2 K8_NOP2 +#define ASM_NOP3 K8_NOP3 +#define ASM_NOP4 K8_NOP4 +#define ASM_NOP5 K8_NOP5 +#define ASM_NOP6 K8_NOP6 +#define ASM_NOP7 K8_NOP7 +#define ASM_NOP8 K8_NOP8 +#elif defined(CONFIG_MK7) +#define ASM_NOP1 K7_NOP1 +#define ASM_NOP2 K7_NOP2 +#define ASM_NOP3 K7_NOP3 +#define ASM_NOP4 K7_NOP4 +#define ASM_NOP5 K7_NOP5 +#define ASM_NOP6 K7_NOP6 +#define ASM_NOP7 K7_NOP7 +#define ASM_NOP8 K7_NOP8 +#elif (defined(CONFIG_M686) || defined(CONFIG_MPENTIUMII) || \ + defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUMM) || \ + defined(CONFIG_MCORE2) || defined(CONFIG_PENTIUM4)) && \ + !defined(CONFIG_X86_GENERIC) +#define ASM_NOP1 P6_NOP1 +#define ASM_NOP2 P6_NOP2 +#define ASM_NOP3 P6_NOP3 +#define ASM_NOP4 P6_NOP4 +#define ASM_NOP5 P6_NOP5 +#define ASM_NOP6 P6_NOP6 +#define ASM_NOP7 P6_NOP7 +#define ASM_NOP8 P6_NOP8 +#else +#define ASM_NOP1 GENERIC_NOP1 +#define ASM_NOP2 GENERIC_NOP2 +#define ASM_NOP3 GENERIC_NOP3 +#define ASM_NOP4 GENERIC_NOP4 +#define ASM_NOP5 GENERIC_NOP5 +#define ASM_NOP6 GENERIC_NOP6 +#define ASM_NOP7 GENERIC_NOP7 +#define ASM_NOP8 GENERIC_NOP8 +#endif + +#define ASM_NOP_MAX 8 + +#endif --- linux-2.6.24.orig/include/asm-x86/io_64.h +++ linux-2.6.24/include/asm-x86/io_64.h @@ -35,13 +35,20 @@ * - Arnaldo Carvalho de Melo */ -#define __SLOW_DOWN_IO "\noutb %%al,$0x80" +extern void native_io_delay(void); +extern int io_delay_type; +extern void io_delay_init(void); + +static inline void slow_down_io(void) +{ + native_io_delay(); #ifdef REALLY_SLOW_IO -#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO __SLOW_DOWN_IO -#else -#define __FULL_SLOW_DOWN_IO __SLOW_DOWN_IO + native_io_delay(); + native_io_delay(); + native_io_delay(); #endif +} /* * Talk about misusing macros.. @@ -50,21 +57,21 @@ static inline void out##s(unsigned x value, unsigned short port) { #define __OUT2(s,s1,s2) \ -__asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1" +__asm__ __volatile__ ("out" #s " %" s1 "0,%" s2 "1" : : "a" (value), "Nd" (port)) #define __OUT(s,s1,x) \ -__OUT1(s,x) __OUT2(s,s1,"w") : : "a" (value), "Nd" (port)); } \ -__OUT1(s##_p,x) __OUT2(s,s1,"w") __FULL_SLOW_DOWN_IO : : "a" (value), "Nd" (port));} \ +__OUT1(s,x) __OUT2(s,s1,"w"); } \ +__OUT1(s##_p,x) __OUT2(s,s1,"w"); slow_down_io(); } #define __IN1(s) \ static inline RETURN_TYPE in##s(unsigned short port) { RETURN_TYPE _v; #define __IN2(s,s1,s2) \ -__asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0" +__asm__ __volatile__ ("in" #s " %" s2 "1,%" s1 "0" : "=a" (_v) : "Nd" (port)) -#define __IN(s,s1,i...) \ -__IN1(s) __IN2(s,s1,"w") : "=a" (_v) : "Nd" (port) ,##i ); return _v; } \ -__IN1(s##_p) __IN2(s,s1,"w") __FULL_SLOW_DOWN_IO : "=a" (_v) : "Nd" (port) ,##i ); return _v; } \ +#define __IN(s,s1) \ +__IN1(s) __IN2(s,s1,"w"); return _v; } \ +__IN1(s##_p) __IN2(s,s1,"w"); slow_down_io(); return _v; } #define __INS(s) \ static inline void ins##s(unsigned short port, void * addr, unsigned long count) \ --- linux-2.6.24.orig/include/asm-x86/futex_64.h +++ linux-2.6.24/include/asm-x86/futex_64.h @@ -27,7 +27,7 @@ "1: movl %2, %0\n\ movl %0, %3\n" \ insn "\n" \ -"2: " LOCK_PREFIX "cmpxchgl %3, %2\n\ +"2: lock ; cmpxchgl %3, %2\n\ jnz 1b\n\ 3: .section .fixup,\"ax\"\n\ 4: mov %5, %1\n\ @@ -62,7 +62,7 @@ __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg); break; case FUTEX_OP_ADD: - __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval, + __futex_atomic_op1("lock ; xaddl %0, %2", ret, oldval, uaddr, oparg); break; case FUTEX_OP_OR: @@ -101,7 +101,7 @@ return -EFAULT; __asm__ __volatile__( - "1: " LOCK_PREFIX "cmpxchgl %3, %1 \n" + "1: lock ; cmpxchgl %3, %1 \n" "2: .section .fixup, \"ax\" \n" "3: mov %2, %0 \n" --- linux-2.6.24.orig/include/asm-x86/page_32.h +++ linux-2.6.24/include/asm-x86/page_32.h @@ -166,6 +166,7 @@ extern int sysctl_legacy_va_layout; extern int page_is_ram(unsigned long pagenr); +extern int devmem_is_allowed(unsigned long pagenr); #endif /* __ASSEMBLY__ */ --- linux-2.6.24.orig/include/asm-x86/seccomp_64.h +++ linux-2.6.24/include/asm-x86/seccomp_64.h @@ -1,13 +1,5 @@ #ifndef _ASM_SECCOMP_H -#include - -#ifdef TIF_32BIT -#error "unexpected TIF_32BIT on x86_64" -#else -#define TIF_32BIT TIF_IA32 -#endif - #include #include --- linux-2.6.24.orig/include/asm-x86/lguest_hcall.h +++ linux-2.6.24/include/asm-x86/lguest_hcall.h @@ -4,7 +4,7 @@ #define LHCALL_FLUSH_ASYNC 0 #define LHCALL_LGUEST_INIT 1 -#define LHCALL_CRASH 2 +#define LHCALL_SHUTDOWN 2 #define LHCALL_LOAD_GDT 3 #define LHCALL_NEW_PGTABLE 4 #define LHCALL_FLUSH_TLB 5 @@ -20,6 +20,10 @@ #define LGUEST_TRAP_ENTRY 0x1F +/* Argument number 3 to LHCALL_LGUEST_SHUTDOWN */ +#define LGUEST_SHUTDOWN_POWEROFF 1 +#define LGUEST_SHUTDOWN_RESTART 2 + #ifndef __ASSEMBLY__ #include --- linux-2.6.24.orig/include/asm-x86/nops.h +++ linux-2.6.24/include/asm-x86/nops.h @@ -0,0 +1,5 @@ +#ifdef CONFIG_X86_32 +# include "nops_32.h" +#else +# include "nops_64.h" +#endif --- linux-2.6.24.orig/include/asm-powerpc/pmac_feature.h +++ linux-2.6.24/include/asm-powerpc/pmac_feature.h @@ -392,6 +392,14 @@ #define UN_BIS(r,v) (UN_OUT((r), UN_IN(r) | (v))) #define UN_BIC(r,v) (UN_OUT((r), UN_IN(r) & ~(v))) +/* Uninorth variant: + * + * 0 = not uninorth + * 1 = U1.x or U2.x + * 3 = U3 + * 4 = U4 + */ +extern int pmac_get_uninorth_variant(void); #endif /* __ASM_POWERPC_PMAC_FEATURE_H */ #endif /* __KERNEL__ */ --- linux-2.6.24.orig/include/asm-powerpc/seccomp.h +++ linux-2.6.24/include/asm-powerpc/seccomp.h @@ -1,10 +1,6 @@ #ifndef _ASM_POWERPC_SECCOMP_H #define _ASM_POWERPC_SECCOMP_H -#ifdef __KERNEL__ -#include -#endif - #include #define __NR_seccomp_read __NR_read --- linux-2.6.24.orig/include/asm-powerpc/compat.h +++ linux-2.6.24/include/asm-powerpc/compat.h @@ -210,5 +210,10 @@ compat_ulong_t __unused6; }; +static inline int is_compat_task(void) +{ + return test_thread_flag(TIF_32BIT); +} + #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_COMPAT_H */ --- linux-2.6.24.orig/include/net/af_unix.h +++ linux-2.6.24/include/net/af_unix.h @@ -9,6 +9,7 @@ extern void unix_inflight(struct file *fp); extern void unix_notinflight(struct file *fp); extern void unix_gc(void); +extern void wait_for_unix_gc(void); #define UNIX_HASH_SIZE 256 @@ -54,6 +55,7 @@ atomic_t inflight; spinlock_t lock; unsigned int gc_candidate : 1; + unsigned int gc_maybe_cycle : 1; wait_queue_head_t peer_wait; }; #define unix_sk(__sk) ((struct unix_sock *)__sk) --- linux-2.6.24.orig/include/net/bluetooth/sco.h +++ linux-2.6.24/include/net/bluetooth/sco.h @@ -26,12 +26,7 @@ #define __SCO_H /* SCO defaults */ -#define SCO_DEFAULT_MTU 500 -#define SCO_DEFAULT_FLUSH_TO 0xFFFF - #define SCO_CONN_TIMEOUT (HZ * 40) -#define SCO_DISCONN_TIMEOUT (HZ * 2) -#define SCO_CONN_IDLE_TIMEOUT (HZ * 60) /* SCO socket address */ struct sockaddr_sco { --- linux-2.6.24.orig/include/net/bluetooth/hci_core.h +++ linux-2.6.24/include/net/bluetooth/hci_core.h @@ -25,6 +25,8 @@ #ifndef __HCI_CORE_H #define __HCI_CORE_H +#include + #include /* HCI upper protocols */ @@ -93,7 +95,7 @@ atomic_t cmd_cnt; unsigned int acl_cnt; - unsigned int sco_cnt; + atomic_t sco_cnt; unsigned int acl_mtu; unsigned int sco_mtu; @@ -150,7 +152,6 @@ struct list_head list; atomic_t refcnt; - spinlock_t lock; bdaddr_t dst; __u16 handle; @@ -167,10 +168,11 @@ __u8 power_save; unsigned long pend; - unsigned int sent; + atomic_t sent; struct sk_buff_head data_q; + struct hrtimer tx_timer; struct timer_list disc_timer; struct timer_list idle_timer; --- linux-2.6.24.orig/include/net/tcp.h +++ linux-2.6.24/include/net/tcp.h @@ -775,11 +775,14 @@ extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst); /* Slow start with delack produces 3 packets of burst, so that - * it is safe "de facto". + * it is safe "de facto". This will be the default - same as + * the default reordering threshold - but if reordering increases, + * we must be able to allow cwnd to burst at least this much in order + * to not pull it back when holes are filled. */ static __inline__ __u32 tcp_max_burst(const struct tcp_sock *tp) { - return 3; + return tp->reordering; } /* RFC2861 Check whether we are limited by application or congestion window --- linux-2.6.24.orig/include/net/scm.h +++ linux-2.6.24/include/net/scm.h @@ -14,8 +14,9 @@ struct scm_fp_list { - int count; - struct file *fp[SCM_MAX_FD]; + struct list_head list; + int count; + struct file *fp[SCM_MAX_FD]; }; struct scm_cookie --- linux-2.6.24.orig/include/net/inet_sock.h +++ linux-2.6.24/include/net/inet_sock.h @@ -175,7 +175,8 @@ static inline unsigned int inet_ehashfn(const __be32 laddr, const __u16 lport, const __be32 faddr, const __be16 fport) { - return jhash_2words((__force __u32) laddr ^ (__force __u32) faddr, + return jhash_3words((__force __u32) laddr, + (__force __u32) faddr, ((__u32) lport) << 16 | (__force __u32)fport, inet_ehash_secret); } --- linux-2.6.24.orig/include/net/sctp/sm.h +++ linux-2.6.24/include/net/sctp/sm.h @@ -227,6 +227,9 @@ const struct sctp_chunk *, const __u8 *, const size_t ); +struct sctp_chunk *sctp_make_violation_paramlen(const struct sctp_association *, + const struct sctp_chunk *, + struct sctp_paramhdr *); struct sctp_chunk *sctp_make_heartbeat(const struct sctp_association *, const struct sctp_transport *, const void *payload, --- linux-2.6.24.orig/include/asm-arm/arch-pxa/pxa-regs.h +++ linux-2.6.24/include/asm-arm/arch-pxa/pxa-regs.h @@ -1669,6 +1669,7 @@ #define SSCR1_RSRE (1 << 20) /* Receive Service Request Enable */ #define SSCR1_TINTE (1 << 19) /* Receiver Time-out Interrupt enable */ #define SSCR1_PINTE (1 << 18) /* Peripheral Trailing Byte Interupt Enable */ +#define SSCR1_IFS (1 << 16) /* Invert Frame Signal */ #define SSCR1_STRF (1 << 15) /* Select FIFO or EFWR */ #define SSCR1_EFWR (1 << 14) /* Enable FIFO Write/Read */ --- linux-2.6.24.orig/include/asm-sparc/mman.h +++ linux-2.6.24/include/asm-sparc/mman.h @@ -37,9 +37,8 @@ #ifdef __KERNEL__ #ifndef __ASSEMBLY__ -#define arch_mmap_check sparc_mmap_check -int sparc_mmap_check(unsigned long addr, unsigned long len, - unsigned long flags); +#define arch_mmap_check(addr,len,flags) sparc_mmap_check(addr,len) +int sparc_mmap_check(unsigned long addr, unsigned long len); #endif #endif --- linux-2.6.24.orig/include/asm-sparc64/mman.h +++ linux-2.6.24/include/asm-sparc64/mman.h @@ -37,9 +37,8 @@ #ifdef __KERNEL__ #ifndef __ASSEMBLY__ -#define arch_mmap_check sparc64_mmap_check -int sparc64_mmap_check(unsigned long addr, unsigned long len, - unsigned long flags); +#define arch_mmap_check(addr,len,flags) sparc64_mmap_check(addr,len) +int sparc64_mmap_check(unsigned long addr, unsigned long len); #endif #endif --- linux-2.6.24.orig/include/asm-sparc64/backoff.h +++ linux-2.6.24/include/asm-sparc64/backoff.h @@ -12,7 +12,8 @@ mov reg, tmp; \ 88: brnz,pt tmp, 88b; \ sub tmp, 1, tmp; \ - cmp reg, BACKOFF_LIMIT; \ + set BACKOFF_LIMIT, tmp; \ + cmp reg, tmp; \ bg,pn %xcc, label; \ nop; \ ba,pt %xcc, label; \ --- linux-2.6.24.orig/include/asm-sparc64/seccomp.h +++ linux-2.6.24/include/asm-sparc64/seccomp.h @@ -1,11 +1,5 @@ #ifndef _ASM_SECCOMP_H -#include /* already defines TIF_32BIT */ - -#ifndef TIF_32BIT -#error "unexpected TIF_32BIT on sparc64" -#endif - #include #define __NR_seccomp_read __NR_read --- linux-2.6.24.orig/include/asm-sparc64/compat.h +++ linux-2.6.24/include/asm-sparc64/compat.h @@ -240,4 +240,9 @@ unsigned int __unused2; }; +static inline int is_compat_task(void) +{ + return test_thread_flag(TIF_32BIT); +} + #endif /* _ASM_SPARC64_COMPAT_H */ --- linux-2.6.24.orig/fs/cifs/asn1.c +++ linux-2.6.24/fs/cifs/asn1.c @@ -186,6 +186,11 @@ } } } + + /* don't trust len bigger than ctx buffer */ + if (*len > ctx->end - ctx->pointer) + return 0; + return 1; } @@ -203,6 +208,10 @@ if (!asn1_length_decode(ctx, &def, &len)) return 0; + /* primitive shall be definite, indefinite shall be constructed */ + if (*con == ASN1_PRI && !def) + return 0; + if (def) *eoc = ctx->pointer + len; else @@ -389,6 +398,11 @@ unsigned long *optr; size = eoc - ctx->pointer + 1; + + /* first subid actually encodes first two subids */ + if (size < 2 || size > UINT_MAX/sizeof(unsigned long)) + return 0; + *oid = kmalloc(size * sizeof(unsigned long), GFP_ATOMIC); if (*oid == NULL) return 0; --- linux-2.6.24.orig/fs/cifs/readdir.c +++ linux-2.6.24/fs/cifs/readdir.c @@ -1069,7 +1069,7 @@ with the rare long characters alloc more to account for such multibyte target UTF-8 characters. cifs_unicode.c, which actually does the conversion, has the same limit */ - tmp_buf = kmalloc((2 * NAME_MAX) + 4, GFP_KERNEL); + tmp_buf = kmalloc((4 * NAME_MAX) + 2, GFP_KERNEL); for (i = 0; (i < num_to_fill) && (rc == 0); i++) { if (current_entry == NULL) { /* evaluate whether this case is an error */ --- linux-2.6.24.orig/fs/cifs/CHANGES +++ linux-2.6.24/fs/cifs/CHANGES @@ -1,3 +1,7 @@ +Fix "redzone overwritten" bug in cifs_put_tcon (CIFSTcon may allocate too +little memory for the "nativeFileSystem" field returned by the server +during mount). + Version 1.52 ------------ Fix oops on second mount to server when null auth is used. --- linux-2.6.24.orig/fs/cifs/sess.c +++ linux-2.6.24/fs/cifs/sess.c @@ -202,27 +202,26 @@ int words_left, len; char *data = *pbcc_area; - - cFYI(1, ("bleft %d", bleft)); - - /* SMB header is unaligned, so cifs servers word align start of - Unicode strings */ - data++; - bleft--; /* Windows servers do not always double null terminate - their final Unicode string - in which case we - now will not attempt to decode the byte of junk - which follows it */ + /* + * Windows servers do not always double null terminate their final + * Unicode string. Check to see if there are an uneven number of bytes + * left. If so, then add an extra NULL pad byte to the end of the + * response. + * + * See section 2.7.2 in "Implementing CIFS" for details + */ + if (bleft % 2) { + data[bleft] = 0; + ++bleft; + } words_left = bleft / 2; /* save off server operating system */ len = UniStrnlen((wchar_t *) data, words_left); -/* We look for obvious messed up bcc or strings in response so we do not go off - the end since (at least) WIN2K and Windows XP have a major bug in not null - terminating last Unicode string in response */ if (len >= words_left) return rc; @@ -260,13 +259,10 @@ return rc; kfree(ses->serverDomain); - ses->serverDomain = kzalloc(2 * (len + 1), GFP_KERNEL); /* BB FIXME wrong length */ - if (ses->serverDomain != NULL) { + ses->serverDomain = kzalloc((4 * len) + 2, GFP_KERNEL); + if (ses->serverDomain != NULL) cifs_strfromUCS_le(ses->serverDomain, (__le16 *)data, len, nls_cp); - ses->serverDomain[2*len] = 0; - ses->serverDomain[(2*len) + 1] = 0; - } data += 2 * (len + 1); words_left -= len + 1; @@ -607,12 +603,18 @@ } /* BB check if Unicode and decode strings */ - if (smb_buf->Flags2 & SMBFLG2_UNICODE) + if (smb_buf->Flags2 & SMBFLG2_UNICODE) { + /* unicode string area must be word-aligned */ + if (((unsigned long) bcc_ptr - (unsigned long) smb_buf) % 2) { + ++bcc_ptr; + --bytes_remaining; + } rc = decode_unicode_ssetup(&bcc_ptr, bytes_remaining, - ses, nls_cp); - else + ses, nls_cp); + } else { rc = decode_ascii_ssetup(&bcc_ptr, bytes_remaining, ses, nls_cp); + } ssetup_exit: if (spnego_key) --- linux-2.6.24.orig/fs/cifs/connect.c +++ linux-2.6.24/fs/cifs/connect.c @@ -3421,7 +3421,7 @@ BCC(smb_buffer_response)) { kfree(tcon->nativeFileSystem); tcon->nativeFileSystem = - kzalloc(length + 2, GFP_KERNEL); + kzalloc(2*(length + 1), GFP_KERNEL); if (tcon->nativeFileSystem) cifs_strfromUCS_le( tcon->nativeFileSystem, --- linux-2.6.24.orig/fs/cifs/cifssmb.c +++ linux-2.6.24/fs/cifs/cifssmb.c @@ -4026,9 +4026,15 @@ not fall off end PDU */ } /* BB add check for name_len bigger than bcc */ - *targetUNCs = - kmalloc(name_len+1+(*number_of_UNC_in_array), - GFP_KERNEL); + if (pSMBr->hdr.Flags2 & SMBFLG2_UNICODE) { + *targetUNCs = kmalloc((4 * name_len + 2) + + (*number_of_UNC_in_array), + GFP_KERNEL); + } else { + *targetUNCs = kmalloc(name_len + 1 + + (*number_of_UNC_in_array), + GFP_KERNEL); + } if (*targetUNCs == NULL) { rc = -ENOMEM; goto GetDFSRefExit; @@ -4042,18 +4048,21 @@ temp = ((char *)referrals) + le16_to_cpu(referrals->DfsPathOffset); if (pSMBr->hdr.Flags2 & SMBFLG2_UNICODE) { - cifs_strfromUCS_le(*targetUNCs, - (__le16 *) temp, - name_len, - nls_codepage); + int l; + + l = cifs_strfromUCS_le(*targetUNCs, + (__le16 *) temp, + name_len, + nls_codepage); + (*targetUNCs)[l + 1] = 0; } else { - strncpy(*targetUNCs, temp, name_len); + strlcpy(*targetUNCs, temp, + name_len + 1); } /* BB update target_uncs pointers */ referrals++; } temp = *targetUNCs; - temp[name_len] = 0; } } --- linux-2.6.24.orig/fs/open.c +++ linux-2.6.24/fs/open.c @@ -194,8 +194,8 @@ return error; } -int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs, - struct file *filp) +int do_truncate(struct dentry *dentry, struct vfsmount *mnt, loff_t length, + unsigned int time_attrs, struct file *filp) { int err; struct iattr newattrs; @@ -206,16 +206,15 @@ newattrs.ia_size = length; newattrs.ia_valid = ATTR_SIZE | time_attrs; - if (filp) { - newattrs.ia_file = filp; + + if (filp) newattrs.ia_valid |= ATTR_FILE; - } /* Remove suid/sgid on truncate too */ newattrs.ia_valid |= should_remove_suid(dentry); mutex_lock(&dentry->d_inode->i_mutex); - err = notify_change(dentry, &newattrs); + err = fnotify_change(dentry, mnt, &newattrs, filp); mutex_unlock(&dentry->d_inode->i_mutex); return err; } @@ -271,7 +270,7 @@ error = locks_verify_truncate(inode, NULL, length); if (!error) { DQUOT_INIT(inode); - error = do_truncate(nd.dentry, length, 0, NULL); + error = do_truncate(nd.dentry, nd.mnt, length, 0, NULL); } put_write_and_out: @@ -324,7 +323,8 @@ error = locks_verify_truncate(inode, file, length); if (!error) - error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, file); + error = do_truncate(dentry, file->f_path.mnt, length, + ATTR_MTIME|ATTR_CTIME, file); out_putf: fput(file); out: @@ -500,10 +500,8 @@ asmlinkage long sys_fchdir(unsigned int fd) { + struct nameidata nd; struct file *file; - struct dentry *dentry; - struct inode *inode; - struct vfsmount *mnt; int error; error = -EBADF; @@ -511,17 +509,17 @@ if (!file) goto out; - dentry = file->f_path.dentry; - mnt = file->f_path.mnt; - inode = dentry->d_inode; + nd.dentry = file->f_path.dentry; + nd.mnt = file->f_path.mnt; + nd.flags = 0; error = -ENOTDIR; - if (!S_ISDIR(inode->i_mode)) + if (!S_ISDIR(nd.dentry->d_inode->i_mode)) goto out_putf; - error = file_permission(file, MAY_EXEC); + error = vfs_permission(&nd, MAY_EXEC); if (!error) - set_fs_pwd(current->fs, mnt, dentry); + set_fs_pwd(current->fs, nd.mnt, nd.dentry); out_putf: fput(file); out: @@ -581,8 +579,8 @@ if (mode == (mode_t) -1) mode = inode->i_mode; newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); - newattrs.ia_valid = ATTR_MODE | ATTR_CTIME; - err = notify_change(dentry, &newattrs); + newattrs.ia_valid = ATTR_MODE | ATTR_CTIME | ATTR_FILE; + err = fnotify_change(dentry, file->f_path.mnt, &newattrs, file); mutex_unlock(&inode->i_mutex); out_putf: @@ -617,7 +615,7 @@ mode = inode->i_mode; newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); newattrs.ia_valid = ATTR_MODE | ATTR_CTIME; - error = notify_change(nd.dentry, &newattrs); + error = notify_change(nd.dentry, nd.mnt, &newattrs); mutex_unlock(&inode->i_mutex); dput_and_out: @@ -631,7 +629,8 @@ return sys_fchmodat(AT_FDCWD, filename, mode); } -static int chown_common(struct dentry * dentry, uid_t user, gid_t group) +static int chown_common(struct dentry * dentry, struct vfsmount *mnt, + uid_t user, gid_t group, struct file *file) { struct inode * inode; int error; @@ -660,8 +659,10 @@ if (!S_ISDIR(inode->i_mode)) newattrs.ia_valid |= ATTR_KILL_SUID | ATTR_KILL_SGID | ATTR_KILL_PRIV; + if (file) + newattrs.ia_valid |= ATTR_FILE; mutex_lock(&inode->i_mutex); - error = notify_change(dentry, &newattrs); + error = fnotify_change(dentry, mnt, &newattrs, file); mutex_unlock(&inode->i_mutex); out: return error; @@ -675,7 +676,7 @@ error = user_path_walk(filename, &nd); if (error) goto out; - error = chown_common(nd.dentry, user, group); + error = chown_common(nd.dentry, nd.mnt, user, group, NULL); path_release(&nd); out: return error; @@ -695,7 +696,7 @@ error = __user_walk_fd(dfd, filename, follow, &nd); if (error) goto out; - error = chown_common(nd.dentry, user, group); + error = chown_common(nd.dentry, nd.mnt, user, group, NULL); path_release(&nd); out: return error; @@ -709,7 +710,7 @@ error = user_path_walk_link(filename, &nd); if (error) goto out; - error = chown_common(nd.dentry, user, group); + error = chown_common(nd.dentry, nd.mnt, user, group, NULL); path_release(&nd); out: return error; @@ -728,7 +729,7 @@ dentry = file->f_path.dentry; audit_inode(NULL, dentry); - error = chown_common(dentry, user, group); + error = chown_common(dentry, file->f_path.mnt, user, group, file); fput(file); out: return error; --- linux-2.6.24.orig/fs/stat.c +++ linux-2.6.24/fs/stat.c @@ -55,6 +55,33 @@ EXPORT_SYMBOL(vfs_getattr); +/* + * Perform getattr on an open file + * + * Fall back to i_op->getattr (or generic_fillattr) if the filesystem + * doesn't define an f_op->fgetattr operation. + */ +static int vfs_fgetattr(struct file *file, struct kstat *stat) +{ + struct vfsmount *mnt = file->f_path.mnt; + struct dentry *dentry = file->f_path.dentry; + struct inode *inode = dentry->d_inode; + int retval; + + retval = security_inode_getattr(mnt, dentry); + if (retval) + return retval; + + if (file->f_op && file->f_op->fgetattr) { + return file->f_op->fgetattr(file, stat); + } else if (inode->i_op->getattr) { + return inode->i_op->getattr(mnt, dentry, stat); + } else { + generic_fillattr(inode, stat); + return 0; + } +} + int vfs_stat_fd(int dfd, char __user *name, struct kstat *stat) { struct nameidata nd; @@ -101,7 +128,7 @@ int error = -EBADF; if (f) { - error = vfs_getattr(f->f_path.mnt, f->f_path.dentry, stat); + error = vfs_fgetattr(f, stat); fput(f); } return error; @@ -306,7 +333,7 @@ error = -EINVAL; if (inode->i_op && inode->i_op->readlink) { - error = security_inode_readlink(nd.dentry); + error = security_inode_readlink(nd.dentry, nd.mnt); if (!error) { touch_atime(nd.mnt, nd.dentry); error = inode->i_op->readlink(nd.dentry, buf, bufsiz); --- linux-2.6.24.orig/fs/namespace.c +++ linux-2.6.24/fs/namespace.c @@ -38,7 +38,8 @@ static struct list_head *mount_hashtable __read_mostly; static int hash_mask __read_mostly, hash_bits __read_mostly; static struct kmem_cache *mnt_cache __read_mostly; -static struct rw_semaphore namespace_sem; +struct rw_semaphore namespace_sem; +EXPORT_SYMBOL_GPL(namespace_sem); /* /sys/fs */ decl_subsys(fs, NULL, NULL); @@ -1127,6 +1128,7 @@ goto unlock; newmnt->mnt_flags = mnt_flags; + if ((err = graft_tree(newmnt, nd))) goto unlock; @@ -1382,6 +1384,24 @@ } /* + * Allow users to disable (or enable) atime updates via a .config + * option or via the boot line, or via /proc/sys/fs/default_relatime: + */ +int default_relatime __read_mostly = CONFIG_DEFAULT_RELATIME_VAL; + +static int __init set_default_relatime(char *str) +{ + get_option(&str, &default_relatime); + + printk(KERN_INFO "Mount all filesystems with" + "default relative atime updates: %s.\n", + default_relatime ? "enabled" : "disabled"); + + return 1; +} +__setup("default_relatime=", set_default_relatime); + +/* * Flags is a 32-bit value that allows up to 31 non-fs dependent flags to * be given to the mount() call (ie: read-only, no-dev, no-suid etc). * @@ -1429,6 +1449,11 @@ mnt_flags |= MNT_NODIRATIME; if (flags & MS_RELATIME) mnt_flags |= MNT_RELATIME; + else if (default_relatime && + !(flags & (MNT_NOATIME | MNT_NODIRATIME))) { + mnt_flags |= MNT_RELATIME; + flags |= MS_RELATIME; + } flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE | MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT); @@ -1883,3 +1908,30 @@ release_mounts(&umount_list); kfree(ns); } + +char *d_namespace_path(struct dentry *dentry, struct vfsmount *vfsmnt, + char *buf, int buflen) +{ + struct vfsmount *rootmnt, *nsrootmnt = NULL; + struct dentry *root = NULL; + char *res; + + read_lock(¤t->fs->lock); + rootmnt = mntget(current->fs->rootmnt); + read_unlock(¤t->fs->lock); + spin_lock(&vfsmount_lock); + if (rootmnt->mnt_ns) + nsrootmnt = mntget(rootmnt->mnt_ns->root); + spin_unlock(&vfsmount_lock); + mntput(rootmnt); + if (nsrootmnt) + root = dget(nsrootmnt->mnt_root); + res = __d_path(dentry, vfsmnt, root, nsrootmnt, buf, buflen, 1); + dput(root); + mntput(nsrootmnt); + /* Prevent empty path for lazily unmounted filesystems. */ + if (!IS_ERR(res) && *res == '\0') + *--res = '.'; + return res; +} +EXPORT_SYMBOL(d_namespace_path); --- linux-2.6.24.orig/fs/udf/unicode.c +++ linux-2.6.24/fs/udf/unicode.c @@ -255,7 +255,7 @@ uint8_t *ocu; uint32_t c; uint8_t cmp_id, ocu_len; - int i; + int i, len; ocu = ocu_i->u_name; @@ -282,8 +282,13 @@ if (cmp_id == 16) c = (c << 8) | ocu[i++]; - utf_o->u_len += nls->uni2char(c, &utf_o->u_name[utf_o->u_len], - UDF_NAME_LEN - utf_o->u_len); + len = nls->uni2char(c, &utf_o->u_name[utf_o->u_len], + UDF_NAME_LEN - utf_o->u_len); + /* Valid character? */ + if (len >= 0) + utf_o->u_len += len; + else + utf_o->u_name[utf_o->u_len++] = '?'; } utf_o->u_cmpID = 8; @@ -293,7 +298,8 @@ static int udf_NLStoCS0(struct nls_table *nls, dstring *ocu, struct ustr *uni, int length) { - unsigned len, i, max_val; + int len; + unsigned i, max_val; uint16_t uni_char; int u_len; @@ -305,8 +311,13 @@ u_len = 0U; for (i = 0U; i < uni->u_len; i++) { len = nls->char2uni(&uni->u_name[i], uni->u_len - i, &uni_char); - if (len <= 0) + if (!len) continue; + /* Invalid character, deal with it */ + if (len < 0) { + len = 1; + uni_char = '?'; + } if (uni_char > max_val) { max_val = 0xffffU; --- linux-2.6.24.orig/fs/reiserfs/xattr.c +++ linux-2.6.24/fs/reiserfs/xattr.c @@ -485,7 +485,7 @@ newattrs.ia_size = buffer_size; newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME; mutex_lock_nested(&xinode->i_mutex, I_MUTEX_XATTR); - err = notify_change(fp->f_path.dentry, &newattrs); + err = notify_change(fp->f_path.dentry, NULL, &newattrs); if (err) goto out_filp; @@ -781,7 +781,7 @@ if (dir->d_inode->i_nlink <= 2) { root = get_xa_root(inode->i_sb, XATTR_REPLACE); reiserfs_write_lock_xattrs(inode->i_sb); - err = vfs_rmdir(root->d_inode, dir); + err = vfs_rmdir(root->d_inode, dir, NULL); reiserfs_write_unlock_xattrs(inode->i_sb); dput(root); } else { @@ -825,7 +825,7 @@ } if (!S_ISDIR(xafile->d_inode->i_mode)) - err = notify_change(xafile, attrs); + err = notify_change(xafile, NULL, attrs); dput(xafile); return err; @@ -877,7 +877,7 @@ goto out_dir; } - err = notify_change(dir, attrs); + err = notify_change(dir, NULL, attrs); unlock_kernel(); out_dir: --- linux-2.6.24.orig/fs/isofs/compress.c +++ linux-2.6.24/fs/isofs/compress.c @@ -72,6 +72,17 @@ offset = index & ~zisofs_block_page_mask; blockindex = offset >> zisofs_block_page_shift; maxpage = (inode->i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; + + /* + * If this page is wholly outside i_size we just return zero; + * do_generic_file_read() will handle this for us + */ + if (page->index >= maxpage) { + SetPageUptodate(page); + unlock_page(page); + return 0; + } + maxpage = min(zisofs_block_pages, maxpage-offset); for ( i = 0 ; i < maxpage ; i++, offset++ ) { --- linux-2.6.24.orig/fs/locks.c +++ linux-2.6.24/fs/locks.c @@ -1754,6 +1754,7 @@ struct file_lock *file_lock = locks_alloc_lock(); struct flock flock; struct inode *inode; + struct file *f; int error; if (file_lock == NULL) @@ -1805,24 +1806,36 @@ if (error) goto out; - for (;;) { - error = vfs_lock_file(filp, cmd, file_lock, NULL); - if (error != -EAGAIN || cmd == F_SETLK) - break; - error = wait_event_interruptible(file_lock->fl_wait, - !file_lock->fl_next); - if (!error) - continue; + if (filp->f_op && filp->f_op->lock != NULL) + error = filp->f_op->lock(filp, cmd, file_lock); + else { + for (;;) { + error = posix_lock_file(filp, file_lock, NULL); + if (error != -EAGAIN || cmd == F_SETLK) + break; + error = wait_event_interruptible(file_lock->fl_wait, + !file_lock->fl_next); + if (!error) + continue; - locks_delete_block(file_lock); - break; + locks_delete_block(file_lock); + break; + } } /* * Attempt to detect a close/fcntl race and recover by * releasing the lock that was just acquired. */ - if (!error && fcheck(fd) != filp && flock.l_type != F_UNLCK) { + /* + * we need that spin_lock here - it prevents reordering between + * update of inode->i_flock and check for it done in close(). + * rcu_read_lock() wouldn't do. + */ + spin_lock(¤t->files->file_lock); + f = fcheck(fd); + spin_unlock(¤t->files->file_lock); + if (!error && f != filp && flock.l_type != F_UNLCK) { flock.l_type = F_UNLCK; goto again; } @@ -1878,6 +1891,7 @@ struct file_lock *file_lock = locks_alloc_lock(); struct flock64 flock; struct inode *inode; + struct file *f; int error; if (file_lock == NULL) @@ -1929,24 +1943,31 @@ if (error) goto out; - for (;;) { - error = vfs_lock_file(filp, cmd, file_lock, NULL); - if (error != -EAGAIN || cmd == F_SETLK64) - break; - error = wait_event_interruptible(file_lock->fl_wait, - !file_lock->fl_next); - if (!error) - continue; + if (filp->f_op && filp->f_op->lock != NULL) + error = filp->f_op->lock(filp, cmd, file_lock); + else { + for (;;) { + error = posix_lock_file(filp, file_lock, NULL); + if (error != -EAGAIN || cmd == F_SETLK64) + break; + error = wait_event_interruptible(file_lock->fl_wait, + !file_lock->fl_next); + if (!error) + continue; - locks_delete_block(file_lock); - break; + locks_delete_block(file_lock); + break; + } } /* * Attempt to detect a close/fcntl race and recover by * releasing the lock that was just acquired. */ - if (!error && fcheck(fd) != filp && flock.l_type != F_UNLCK) { + spin_lock(¤t->files->file_lock); + f = fcheck(fd); + spin_unlock(¤t->files->file_lock); + if (!error && f != filp && flock.l_type != F_UNLCK) { flock.l_type = F_UNLCK; goto again; } --- linux-2.6.24.orig/fs/namei.c +++ linux-2.6.24/fs/namei.c @@ -313,7 +313,13 @@ */ int file_permission(struct file *file, int mask) { - return permission(file->f_path.dentry->d_inode, mask, NULL); + struct nameidata nd; + + nd.dentry = file->f_path.dentry; + nd.mnt = file->f_path.mnt; + nd.flags = LOOKUP_ACCESS; + + return permission(nd.dentry->d_inode, mask, &nd); } /* @@ -504,7 +510,14 @@ */ result = d_lookup(parent, name); if (!result) { - struct dentry * dentry = d_alloc(parent, name); + struct dentry *dentry; + + /* Don't create child dentry for a dead directory. */ + result = ERR_PTR(-ENOENT); + if (IS_DEADDIR(dir)) + goto out_unlock; + + dentry = d_alloc(parent, name); result = ERR_PTR(-ENOMEM); if (dentry) { result = dir->i_op->lookup(dir, dentry, nd); @@ -513,6 +526,7 @@ else result = dentry; } +out_unlock: mutex_unlock(&dir->i_mutex); return result; } @@ -1147,25 +1161,24 @@ nd->dentry = dget(fs->pwd); read_unlock(&fs->lock); } else { - struct dentry *dentry; - file = fget_light(dfd, &fput_needed); retval = -EBADF; if (!file) goto out_fail; - dentry = file->f_path.dentry; + nd->dentry = file->f_path.dentry; + nd->mnt = file->f_path.mnt; retval = -ENOTDIR; - if (!S_ISDIR(dentry->d_inode->i_mode)) + if (!S_ISDIR(nd->dentry->d_inode->i_mode)) goto fput_fail; - retval = file_permission(file, MAY_EXEC); + retval = vfs_permission(nd, MAY_EXEC); if (retval) goto fput_fail; - nd->mnt = mntget(file->f_path.mnt); - nd->dentry = dget(dentry); + mntget(nd->mnt); + dget(nd->dentry); fput_light(file, fput_needed); } @@ -1288,8 +1301,7 @@ return err; } -static struct dentry *__lookup_hash(struct qstr *name, - struct dentry *base, struct nameidata *nd) +struct dentry *__lookup_hash(struct qstr *name, struct dentry *base, struct nameidata *nd) { struct dentry *dentry; struct inode *inode; @@ -1310,7 +1322,14 @@ dentry = cached_lookup(base, name, nd); if (!dentry) { - struct dentry *new = d_alloc(base, name); + struct dentry *new; + + /* Don't create child dentry for a dead directory. */ + dentry = ERR_PTR(-ENOENT); + if (IS_DEADDIR(inode)) + goto out; + + new = d_alloc(base, name); dentry = ERR_PTR(-ENOMEM); if (!new) goto out; @@ -1508,6 +1527,8 @@ return -EEXIST; if (IS_DEADDIR(dir)) return -ENOENT; + if (nd) + nd->flags |= LOOKUP_CONTINUE; return permission(dir,MAY_WRITE | MAY_EXEC, nd); } @@ -1583,7 +1604,7 @@ return -EACCES; /* shouldn't it be ENOSYS? */ mode &= S_IALLUGO; mode |= S_IFREG; - error = security_inode_create(dir, dentry, mode); + error = security_inode_create(dir, dentry, nd ? nd->mnt : NULL, mode); if (error) return error; DQUOT_INIT(dir); @@ -1660,7 +1681,7 @@ if (!error) { DQUOT_INIT(inode); - error = do_truncate(dentry, 0, + error = do_truncate(dentry, nd->mnt, 0, ATTR_MTIME|ATTR_CTIME|ATTR_OPEN, NULL); } @@ -1918,7 +1939,8 @@ } EXPORT_SYMBOL_GPL(lookup_create); -int vfs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) +int vfs_mknod(struct inode *dir, struct dentry *dentry, struct vfsmount *mnt, + int mode, dev_t dev) { int error = may_create(dir, dentry, NULL); @@ -1931,7 +1953,7 @@ if (!dir->i_op || !dir->i_op->mknod) return -EPERM; - error = security_inode_mknod(dir, dentry, mode, dev); + error = security_inode_mknod(dir, dentry, mnt, mode, dev); if (error) return error; @@ -1970,11 +1992,12 @@ error = vfs_create(nd.dentry->d_inode,dentry,mode,&nd); break; case S_IFCHR: case S_IFBLK: - error = vfs_mknod(nd.dentry->d_inode,dentry,mode, - new_decode_dev(dev)); + error = vfs_mknod(nd.dentry->d_inode, dentry, nd.mnt, + mode, new_decode_dev(dev)); break; case S_IFIFO: case S_IFSOCK: - error = vfs_mknod(nd.dentry->d_inode,dentry,mode,0); + error = vfs_mknod(nd.dentry->d_inode, dentry, nd.mnt, + mode, 0); break; case S_IFDIR: error = -EPERM; @@ -1997,7 +2020,8 @@ return sys_mknodat(AT_FDCWD, filename, mode, dev); } -int vfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) +int vfs_mkdir(struct inode *dir, struct dentry *dentry, struct vfsmount *mnt, + int mode) { int error = may_create(dir, dentry, NULL); @@ -2008,7 +2032,7 @@ return -EPERM; mode &= (S_IRWXUGO|S_ISVTX); - error = security_inode_mkdir(dir, dentry, mode); + error = security_inode_mkdir(dir, dentry, mnt, mode); if (error) return error; @@ -2041,7 +2065,7 @@ if (!IS_POSIXACL(nd.dentry->d_inode)) mode &= ~current->fs->umask; - error = vfs_mkdir(nd.dentry->d_inode, dentry, mode); + error = vfs_mkdir(nd.dentry->d_inode, dentry, nd.mnt, mode); dput(dentry); out_unlock: mutex_unlock(&nd.dentry->d_inode->i_mutex); @@ -2084,7 +2108,7 @@ spin_unlock(&dcache_lock); } -int vfs_rmdir(struct inode *dir, struct dentry *dentry) +int vfs_rmdir(struct inode *dir, struct dentry *dentry,struct vfsmount *mnt) { int error = may_delete(dir, dentry, 1); @@ -2094,6 +2118,10 @@ if (!dir->i_op || !dir->i_op->rmdir) return -EPERM; + error = security_inode_rmdir(dir, dentry, mnt); + if (error) + return error; + DQUOT_INIT(dir); mutex_lock(&dentry->d_inode->i_mutex); @@ -2101,12 +2129,9 @@ if (d_mountpoint(dentry)) error = -EBUSY; else { - error = security_inode_rmdir(dir, dentry); - if (!error) { - error = dir->i_op->rmdir(dir, dentry); - if (!error) - dentry->d_inode->i_flags |= S_DEAD; - } + error = dir->i_op->rmdir(dir, dentry); + if (!error) + dentry->d_inode->i_flags |= S_DEAD; } mutex_unlock(&dentry->d_inode->i_mutex); if (!error) { @@ -2148,7 +2173,7 @@ error = PTR_ERR(dentry); if (IS_ERR(dentry)) goto exit2; - error = vfs_rmdir(nd.dentry->d_inode, dentry); + error = vfs_rmdir(nd.dentry->d_inode, dentry, nd.mnt); dput(dentry); exit2: mutex_unlock(&nd.dentry->d_inode->i_mutex); @@ -2164,7 +2189,7 @@ return do_rmdir(AT_FDCWD, pathname); } -int vfs_unlink(struct inode *dir, struct dentry *dentry) +int vfs_unlink(struct inode *dir, struct dentry *dentry, struct vfsmount *mnt) { int error = may_delete(dir, dentry, 0); @@ -2180,7 +2205,7 @@ if (d_mountpoint(dentry)) error = -EBUSY; else { - error = security_inode_unlink(dir, dentry); + error = security_inode_unlink(dir, dentry, mnt); if (!error) error = dir->i_op->unlink(dir, dentry); } @@ -2228,7 +2253,7 @@ inode = dentry->d_inode; if (inode) atomic_inc(&inode->i_count); - error = vfs_unlink(nd.dentry->d_inode, dentry); + error = vfs_unlink(nd.dentry->d_inode, dentry, nd.mnt); exit2: dput(dentry); } @@ -2263,7 +2288,8 @@ return do_unlinkat(AT_FDCWD, pathname); } -int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname, int mode) +int vfs_symlink(struct inode *dir, struct dentry *dentry, struct vfsmount *mnt, + const char *oldname, int mode) { int error = may_create(dir, dentry, NULL); @@ -2273,7 +2299,7 @@ if (!dir->i_op || !dir->i_op->symlink) return -EPERM; - error = security_inode_symlink(dir, dentry, oldname); + error = security_inode_symlink(dir, dentry, mnt, oldname); if (error) return error; @@ -2309,7 +2335,8 @@ if (IS_ERR(dentry)) goto out_unlock; - error = vfs_symlink(nd.dentry->d_inode, dentry, from, S_IALLUGO); + error = vfs_symlink(nd.dentry->d_inode, dentry, nd.mnt, from, + S_IALLUGO); dput(dentry); out_unlock: mutex_unlock(&nd.dentry->d_inode->i_mutex); @@ -2326,7 +2353,7 @@ return sys_symlinkat(oldname, AT_FDCWD, newname); } -int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry) +int vfs_link(struct dentry *old_dentry, struct vfsmount *old_mnt, struct inode *dir, struct dentry *new_dentry, struct vfsmount *new_mnt) { struct inode *inode = old_dentry->d_inode; int error; @@ -2351,7 +2378,8 @@ if (S_ISDIR(old_dentry->d_inode->i_mode)) return -EPERM; - error = security_inode_link(old_dentry, dir, new_dentry); + error = security_inode_link(old_dentry, old_mnt, dir, new_dentry, + new_mnt); if (error) return error; @@ -2404,7 +2432,8 @@ error = PTR_ERR(new_dentry); if (IS_ERR(new_dentry)) goto out_unlock; - error = vfs_link(old_nd.dentry, nd.dentry->d_inode, new_dentry); + error = vfs_link(old_nd.dentry, old_nd.mnt, nd.dentry->d_inode, + new_dentry, nd.mnt); dput(new_dentry); out_unlock: mutex_unlock(&nd.dentry->d_inode->i_mutex); @@ -2456,7 +2485,8 @@ * locking]. */ static int vfs_rename_dir(struct inode *old_dir, struct dentry *old_dentry, - struct inode *new_dir, struct dentry *new_dentry) + struct vfsmount *old_mnt, struct inode *new_dir, + struct dentry *new_dentry, struct vfsmount *new_mnt) { int error = 0; struct inode *target; @@ -2471,7 +2501,8 @@ return error; } - error = security_inode_rename(old_dir, old_dentry, new_dir, new_dentry); + error = security_inode_rename(old_dir, old_dentry, old_mnt, + new_dir, new_dentry, new_mnt); if (error) return error; @@ -2499,12 +2530,14 @@ } static int vfs_rename_other(struct inode *old_dir, struct dentry *old_dentry, - struct inode *new_dir, struct dentry *new_dentry) + struct vfsmount *old_mnt, struct inode *new_dir, + struct dentry *new_dentry, struct vfsmount *new_mnt) { struct inode *target; int error; - error = security_inode_rename(old_dir, old_dentry, new_dir, new_dentry); + error = security_inode_rename(old_dir, old_dentry, old_mnt, + new_dir, new_dentry, new_mnt); if (error) return error; @@ -2527,7 +2560,8 @@ } int vfs_rename(struct inode *old_dir, struct dentry *old_dentry, - struct inode *new_dir, struct dentry *new_dentry) + struct vfsmount *old_mnt, struct inode *new_dir, + struct dentry *new_dentry, struct vfsmount *new_mnt) { int error; int is_dir = S_ISDIR(old_dentry->d_inode->i_mode); @@ -2556,9 +2590,11 @@ old_name = fsnotify_oldname_init(old_dentry->d_name.name); if (is_dir) - error = vfs_rename_dir(old_dir,old_dentry,new_dir,new_dentry); + error = vfs_rename_dir(old_dir, old_dentry, old_mnt, + new_dir, new_dentry, new_mnt); else - error = vfs_rename_other(old_dir,old_dentry,new_dir,new_dentry); + error = vfs_rename_other(old_dir, old_dentry, old_mnt, + new_dir, new_dentry, new_mnt); if (!error) { const char *new_name = old_dentry->d_name.name; fsnotify_move(old_dir, new_dir, old_name, new_name, is_dir, @@ -2630,8 +2666,8 @@ if (new_dentry == trap) goto exit5; - error = vfs_rename(old_dir->d_inode, old_dentry, - new_dir->d_inode, new_dentry); + error = vfs_rename(old_dir->d_inode, old_dentry, oldnd.mnt, + new_dir->d_inode, new_dentry, newnd.mnt); exit5: dput(new_dentry); exit4: @@ -2806,6 +2842,7 @@ EXPORT_SYMBOL(get_write_access); /* binfmt_aout */ EXPORT_SYMBOL(getname); EXPORT_SYMBOL(lock_rename); +EXPORT_SYMBOL(__lookup_hash); EXPORT_SYMBOL(lookup_one_len); EXPORT_SYMBOL(page_follow_link_light); EXPORT_SYMBOL(page_put_link); @@ -2833,3 +2870,4 @@ EXPORT_SYMBOL(vfs_unlink); EXPORT_SYMBOL(dentry_unhash); EXPORT_SYMBOL(generic_readlink); +EXPORT_SYMBOL(deny_write_access); --- linux-2.6.24.orig/fs/file_table.c +++ linux-2.6.24/fs/file_table.c @@ -302,6 +302,7 @@ file_free(file); } } +EXPORT_SYMBOL(put_filp); void file_move(struct file *file, struct list_head *list) { --- linux-2.6.24.orig/fs/signalfd.c +++ linux-2.6.24/fs/signalfd.c @@ -110,9 +110,14 @@ err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid); err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr); break; - default: /* this is just in case for now ... */ + default: + /* + * This case catches also the signals queued by sigqueue(). + */ err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid); err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid); + err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr); + err |= __put_user(kinfo->si_int, &uinfo->ssi_int); break; } --- linux-2.6.24.orig/fs/inotify.c +++ linux-2.6.24/fs/inotify.c @@ -106,6 +106,20 @@ } EXPORT_SYMBOL_GPL(get_inotify_watch); +int pin_inotify_watch(struct inotify_watch *watch) +{ + struct super_block *sb = watch->inode->i_sb; + spin_lock(&sb_lock); + if (sb->s_count >= S_BIAS) { + atomic_inc(&sb->s_active); + spin_unlock(&sb_lock); + atomic_inc(&watch->count); + return 1; + } + spin_unlock(&sb_lock); + return 0; +} + /** * put_inotify_watch - decrements the ref count on a given watch. cleans up * watch references if the count reaches zero. inotify_watch is freed by @@ -124,6 +138,13 @@ } EXPORT_SYMBOL_GPL(put_inotify_watch); +void unpin_inotify_watch(struct inotify_watch *watch) +{ + struct super_block *sb = watch->inode->i_sb; + put_inotify_watch(watch); + deactivate_super(sb); +} + /* * inotify_handle_get_wd - returns the next WD for use by the given handle * @@ -168,20 +189,14 @@ struct dentry *child; list_for_each_entry(child, &alias->d_subdirs, d_u.d_child) { - if (!child->d_inode) { - WARN_ON(child->d_flags & DCACHE_INOTIFY_PARENT_WATCHED); + if (!child->d_inode) continue; - } + spin_lock(&child->d_lock); - if (watched) { - WARN_ON(child->d_flags & - DCACHE_INOTIFY_PARENT_WATCHED); + if (watched) child->d_flags |= DCACHE_INOTIFY_PARENT_WATCHED; - } else { - WARN_ON(!(child->d_flags & - DCACHE_INOTIFY_PARENT_WATCHED)); - child->d_flags&=~DCACHE_INOTIFY_PARENT_WATCHED; - } + else + child->d_flags &=~DCACHE_INOTIFY_PARENT_WATCHED; spin_unlock(&child->d_lock); } } @@ -253,7 +268,6 @@ if (!inode) return; - WARN_ON(entry->d_flags & DCACHE_INOTIFY_PARENT_WATCHED); spin_lock(&entry->d_lock); parent = entry->d_parent; if (parent->d_inode && inotify_inode_watched(parent->d_inode)) @@ -486,6 +500,112 @@ } EXPORT_SYMBOL_GPL(inotify_init_watch); +/* + * Watch removals suck violently. To kick the watch out we need (in this + * order) inode->inotify_mutex and ih->mutex. That's fine if we have + * a hold on inode; however, for all other cases we need to make damn sure + * we don't race with umount. We can *NOT* just grab a reference to a + * watch - inotify_unmount_inodes() will happily sail past it and we'll end + * with reference to inode potentially outliving its superblock. Ideally + * we just want to grab an active reference to superblock if we can; that + * will make sure we won't go into inotify_umount_inodes() until we are + * done. Cleanup is just deactivate_super(). However, that leaves a messy + * case - what if we *are* racing with umount() and active references to + * superblock can't be acquired anymore? We can bump ->s_count, grab + * ->s_umount, which will almost certainly wait until the superblock is shut + * down and the watch in question is pining for fjords. That's fine, but + * there is a problem - we might have hit the window between ->s_active + * getting to 0 / ->s_count - below S_BIAS (i.e. the moment when superblock + * is past the point of no return and is heading for shutdown) and the + * moment when deactivate_super() acquires ->s_umount. We could just do + * drop_super() yield() and retry, but that's rather antisocial and this + * stuff is luser-triggerable. OTOH, having grabbed ->s_umount and having + * found that we'd got there first (i.e. that ->s_root is non-NULL) we know + * that we won't race with inotify_umount_inodes(). So we could grab a + * reference to watch and do the rest as above, just with drop_super() instead + * of deactivate_super(), right? Wrong. We had to drop ih->mutex before we + * could grab ->s_umount. So the watch could've been gone already. + * + * That still can be dealt with - we need to save watch->wd, do idr_find() + * and compare its result with our pointer. If they match, we either have + * the damn thing still alive or we'd lost not one but two races at once, + * the watch had been killed and a new one got created with the same ->wd + * at the same address. That couldn't have happened in inotify_destroy(), + * but inotify_rm_wd() could run into that. Still, "new one got created" + * is not a problem - we have every right to kill it or leave it alone, + * whatever's more convenient. + * + * So we can use idr_find(...) == watch && watch->inode->i_sb == sb as + * "grab it and kill it" check. If it's been our original watch, we are + * fine, if it's a newcomer - nevermind, just pretend that we'd won the + * race and kill the fscker anyway; we are safe since we know that its + * superblock won't be going away. + * + * And yes, this is far beyond mere "not very pretty"; so's the entire + * concept of inotify to start with. + */ + +/** + * pin_to_kill - pin the watch down for removal + * @ih: inotify handle + * @watch: watch to kill + * + * Called with ih->mutex held, drops it. Possible return values: + * 0 - nothing to do, it has died + * 1 - remove it, drop the reference and deactivate_super() + * 2 - remove it, drop the reference and drop_super(); we tried hard to avoid + * that variant, since it involved a lot of PITA, but that's the best that + * could've been done. + */ +static int pin_to_kill(struct inotify_handle *ih, struct inotify_watch *watch) +{ + struct super_block *sb = watch->inode->i_sb; + s32 wd = watch->wd; + + spin_lock(&sb_lock); + if (sb->s_count >= S_BIAS) { + atomic_inc(&sb->s_active); + spin_unlock(&sb_lock); + get_inotify_watch(watch); + mutex_unlock(&ih->mutex); + return 1; /* the best outcome */ + } + sb->s_count++; + spin_unlock(&sb_lock); + mutex_unlock(&ih->mutex); /* can't grab ->s_umount under it */ + down_read(&sb->s_umount); + if (likely(!sb->s_root)) { + /* fs is already shut down; the watch is dead */ + drop_super(sb); + return 0; + } + /* raced with the final deactivate_super() */ + mutex_lock(&ih->mutex); + if (idr_find(&ih->idr, wd) != watch || watch->inode->i_sb != sb) { + /* the watch is dead */ + mutex_unlock(&ih->mutex); + drop_super(sb); + return 0; + } + /* still alive or freed and reused with the same sb and wd; kill */ + get_inotify_watch(watch); + mutex_unlock(&ih->mutex); + return 2; +} + +static void unpin_and_kill(struct inotify_watch *watch, int how) +{ + struct super_block *sb = watch->inode->i_sb; + put_inotify_watch(watch); + switch (how) { + case 1: + deactivate_super(sb); + break; + case 2: + drop_super(sb); + } +} + /** * inotify_destroy - clean up and destroy an inotify instance * @ih: inotify handle @@ -497,11 +617,15 @@ * pretty. We cannot do a simple iteration over the list, because we * do not know the inode until we iterate to the watch. But we need to * hold inode->inotify_mutex before ih->mutex. The following works. + * + * AV: it had to become even uglier to start working ;-/ */ while (1) { struct inotify_watch *watch; struct list_head *watches; + struct super_block *sb; struct inode *inode; + int how; mutex_lock(&ih->mutex); watches = &ih->watches; @@ -510,8 +634,10 @@ break; } watch = list_first_entry(watches, struct inotify_watch, h_list); - get_inotify_watch(watch); - mutex_unlock(&ih->mutex); + sb = watch->inode->i_sb; + how = pin_to_kill(ih, watch); + if (!how) + continue; inode = watch->inode; mutex_lock(&inode->inotify_mutex); @@ -525,7 +651,7 @@ mutex_unlock(&ih->mutex); mutex_unlock(&inode->inotify_mutex); - put_inotify_watch(watch); + unpin_and_kill(watch, how); } /* free this handle: the put matching the get in inotify_init() */ @@ -627,6 +753,7 @@ struct inode *inode, u32 mask) { int ret = 0; + int newly_watched; /* don't allow invalid bits: we don't want flags set */ mask &= IN_ALL_EVENTS | IN_ONESHOT; @@ -653,12 +780,18 @@ */ watch->inode = igrab(inode); - if (!inotify_inode_watched(inode)) - set_dentry_child_flags(inode, 1); - /* Add the watch to the handle's and the inode's list */ + newly_watched = !inotify_inode_watched(inode); list_add(&watch->h_list, &ih->watches); list_add(&watch->i_list, &inode->inotify_watches); + /* + * Set child flags _after_ adding the watch, so there is no race + * windows where newly instantiated children could miss their parent's + * watched flag. + */ + if (newly_watched) + set_dentry_child_flags(inode, 1); + out: mutex_unlock(&ih->mutex); mutex_unlock(&inode->inotify_mutex); @@ -719,7 +852,9 @@ int inotify_rm_wd(struct inotify_handle *ih, u32 wd) { struct inotify_watch *watch; + struct super_block *sb; struct inode *inode; + int how; mutex_lock(&ih->mutex); watch = idr_find(&ih->idr, wd); @@ -727,9 +862,12 @@ mutex_unlock(&ih->mutex); return -EINVAL; } - get_inotify_watch(watch); + sb = watch->inode->i_sb; + how = pin_to_kill(ih, watch); + if (!how) + return 0; + inode = watch->inode; - mutex_unlock(&ih->mutex); mutex_lock(&inode->inotify_mutex); mutex_lock(&ih->mutex); @@ -740,7 +878,7 @@ mutex_unlock(&ih->mutex); mutex_unlock(&inode->inotify_mutex); - put_inotify_watch(watch); + unpin_and_kill(watch, how); return 0; } --- linux-2.6.24.orig/fs/hfs/catalog.c +++ linux-2.6.24/fs/hfs/catalog.c @@ -190,6 +190,10 @@ fd->search_key->cat.ParID = rec.thread.ParID; len = fd->search_key->cat.CName.len = rec.thread.CName.len; + if (len > HFS_NAMELEN) { + printk(KERN_ERR "hfs: bad catalog namelength\n"); + return -EIO; + } memcpy(fd->search_key->cat.CName.name, rec.thread.CName.name, len); return hfs_brec_find(fd); } --- linux-2.6.24.orig/fs/jffs2/erase.c +++ linux-2.6.24/fs/jffs2/erase.c @@ -419,9 +419,6 @@ if (jffs2_write_nand_cleanmarker(c, jeb)) goto filebad; } - - /* Everything else got zeroed before the erase */ - jeb->free_size = c->sector_size; } else { struct kvec vecs[1]; @@ -449,18 +446,19 @@ goto filebad; } - - /* Everything else got zeroed before the erase */ - jeb->free_size = c->sector_size; - /* FIXME Special case for cleanmarker in empty block */ - jffs2_link_node_ref(c, jeb, jeb->offset | REF_NORMAL, c->cleanmarker_size, NULL); } + /* Everything else got zeroed before the erase */ + jeb->free_size = c->sector_size; down(&c->erase_free_sem); spin_lock(&c->erase_completion_lock); + c->erasing_size -= c->sector_size; - c->free_size += jeb->free_size; - c->used_size += jeb->used_size; + c->free_size += c->sector_size; + + /* Account for cleanmarker now, if it's in-band */ + if (c->cleanmarker_size && !jffs2_cleanmarker_oob(c)) + jffs2_link_node_ref(c, jeb, jeb->offset | REF_NORMAL, c->cleanmarker_size, NULL); jffs2_dbg_acct_sanity_check_nolock(c,jeb); jffs2_dbg_acct_paranoia_check_nolock(c, jeb); --- linux-2.6.24.orig/fs/proc/proc_misc.c +++ linux-2.6.24/fs/proc/proc_misc.c @@ -653,6 +653,19 @@ return proc_calc_metrics(page, start, off, count, eof, len); } +#ifdef CONFIG_VERSION_SIGNATURE +static int version_signature_read_proc(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len; + + strcpy(page, CONFIG_VERSION_SIGNATURE); + strcat(page, "\n"); + len = strlen(page); + return proc_calc_metrics(page, start, off, count, eof, len); +} +#endif + #ifdef CONFIG_MAGIC_SYSRQ /* * writing 'C' to /proc/sysrq-trigger is like sysrq-C @@ -704,6 +717,9 @@ {"filesystems", filesystems_read_proc}, {"cmdline", cmdline_read_proc}, {"execdomains", execdomains_read_proc}, +#ifdef CONFIG_VERSION_SIGNATURE + {"version_signature", version_signature_read_proc}, +#endif {NULL,} }; for (p = simple_ones; p->name; p++) --- linux-2.6.24.orig/fs/proc/base.c +++ linux-2.6.24/fs/proc/base.c @@ -310,6 +310,79 @@ } #endif +#ifdef CONFIG_LATENCYTOP +static int lstats_show_proc(struct seq_file *m, void *v) +{ + int i; + struct task_struct *task = m->private; + seq_puts(m, "Latency Top version : v0.1\n"); + + for (i = 0; i < 32; i++) { + if (task->latency_record[i].backtrace[0]) { + int q; + seq_printf(m, "%i %li %li ", + task->latency_record[i].count, + task->latency_record[i].time, + task->latency_record[i].max); + for (q = 0; q < LT_BACKTRACEDEPTH; q++) { + char sym[KSYM_NAME_LEN]; + char *c; + if (!task->latency_record[i].backtrace[q]) + break; + if (task->latency_record[i].backtrace[q] + == ULONG_MAX) + break; + sprint_symbol(sym, + task->latency_record[i].backtrace[q]); + c = strchr(sym, '+'); + if (c) + *c = 0; + seq_printf(m, "%s ", sym); + } + seq_printf(m, "\n"); + } + + } + return 0; +} + +static int lstats_open(struct inode *inode, struct file *file) +{ + int ret; + struct seq_file *m; + struct task_struct *task = get_proc_task(inode); + + ret = single_open(file, lstats_show_proc, NULL); + if (!ret) { + m = file->private_data; + m->private = task; + } + return ret; +} + +static ssize_t lstats_write(struct file *file, const char __user *buf, + size_t count, loff_t *offs) +{ + struct seq_file *m; + struct task_struct *task; + + m = file->private_data; + task = m->private; + clear_all_latency_tracing(task); + + return count; +} + +static const struct file_operations proc_lstats_operations = { + .open = lstats_open, + .read = seq_read, + .write = lstats_write, + .llseek = seq_lseek, + .release = single_release, +}; + +#endif + /* The badness from the OOM killer */ unsigned long badness(struct task_struct *p, unsigned long uptime); static int proc_oom_score(struct task_struct *task, char *buffer) @@ -2230,6 +2303,9 @@ #ifdef CONFIG_SCHEDSTATS INF("schedstat", S_IRUGO, pid_schedstat), #endif +#ifdef CONFIG_LATENCYTOP + REG("latency", S_IRUGO, lstats), +#endif #ifdef CONFIG_PROC_PID_CPUSET REG("cpuset", S_IRUGO, cpuset), #endif @@ -2555,6 +2631,9 @@ #ifdef CONFIG_SCHEDSTATS INF("schedstat", S_IRUGO, pid_schedstat), #endif +#ifdef CONFIG_LATENCYTOP + REG("latency", S_IRUGO, lstats), +#endif #ifdef CONFIG_PROC_PID_CPUSET REG("cpuset", S_IRUGO, cpuset), #endif --- linux-2.6.24.orig/fs/binfmt_elf.c +++ linux-2.6.24/fs/binfmt_elf.c @@ -45,7 +45,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs); static int load_elf_library(struct file *); -static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int); +static unsigned long elf_map (struct file *, unsigned long, struct elf_phdr *, int, int, unsigned long); /* * If we don't support core dumping, then supply a NULL so we @@ -298,33 +298,70 @@ #ifndef elf_map static unsigned long elf_map(struct file *filep, unsigned long addr, - struct elf_phdr *eppnt, int prot, int type) + struct elf_phdr *eppnt, int prot, int type, + unsigned long total_size) { unsigned long map_addr; - unsigned long pageoffset = ELF_PAGEOFFSET(eppnt->p_vaddr); + unsigned long size = eppnt->p_filesz + ELF_PAGEOFFSET(eppnt->p_vaddr); + unsigned long off = eppnt->p_offset - ELF_PAGEOFFSET(eppnt->p_vaddr); + addr = ELF_PAGESTART(addr); + size = ELF_PAGEALIGN(size); - down_write(¤t->mm->mmap_sem); /* mmap() will return -EINVAL if given a zero size, but a * segment with zero filesize is perfectly valid */ - if (eppnt->p_filesz + pageoffset) - map_addr = do_mmap(filep, ELF_PAGESTART(addr), - eppnt->p_filesz + pageoffset, prot, type, - eppnt->p_offset - pageoffset); - else - map_addr = ELF_PAGESTART(addr); + if (!size) + return addr; + + down_write(¤t->mm->mmap_sem); + /* + * total_size is the size of the ELF (interpreter) image. + * The _first_ mmap needs to know the full size, otherwise + * randomization might put this image into an overlapping + * position with the ELF binary image. (since size < total_size) + * So we first map the 'big' image - and unmap the remainder at + * the end. (which unmap is needed for ELF images with holes.) + */ + if (total_size) { + total_size = ELF_PAGEALIGN(total_size); + map_addr = do_mmap(filep, addr, total_size, prot, type, off); + if (!BAD_ADDR(map_addr)) + do_munmap(current->mm, map_addr+size, total_size-size); + } else + map_addr = do_mmap(filep, addr, size, prot, type, off); + up_write(¤t->mm->mmap_sem); return(map_addr); } #endif /* !elf_map */ +static unsigned long total_mapping_size(struct elf_phdr *cmds, int nr) +{ + int i, first_idx = -1, last_idx = -1; + + for (i = 0; i < nr; i++) { + if (cmds[i].p_type == PT_LOAD) { + last_idx = i; + if (first_idx == -1) + first_idx = i; + } + } + if (first_idx == -1) + return 0; + + return cmds[last_idx].p_vaddr + cmds[last_idx].p_memsz - + ELF_PAGESTART(cmds[first_idx].p_vaddr); +} + + /* This is much more generalized than the library routine read function, so we keep this separate. Technically the library read function is only provided so that we can read a.out libraries that have an ELF header */ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex, - struct file *interpreter, unsigned long *interp_load_addr) + struct file *interpreter, unsigned long *interp_map_addr, + unsigned long no_base) { struct elf_phdr *elf_phdata; struct elf_phdr *eppnt; @@ -332,6 +369,7 @@ int load_addr_set = 0; unsigned long last_bss = 0, elf_bss = 0; unsigned long error = ~0UL; + unsigned long total_size; int retval, i, size; /* First of all, some simple consistency checks */ @@ -370,6 +408,12 @@ goto out_close; } + total_size = total_mapping_size(elf_phdata, interp_elf_ex->e_phnum); + if (!total_size) { + error = -EINVAL; + goto out_close; + } + eppnt = elf_phdata; for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { if (eppnt->p_type == PT_LOAD) { @@ -387,9 +431,14 @@ vaddr = eppnt->p_vaddr; if (interp_elf_ex->e_type == ET_EXEC || load_addr_set) elf_type |= MAP_FIXED; + else if (no_base && interp_elf_ex->e_type == ET_DYN) + load_addr = -vaddr; map_addr = elf_map(interpreter, load_addr + vaddr, - eppnt, elf_prot, elf_type); + eppnt, elf_prot, elf_type, total_size); + total_size = 0; + if (!*interp_map_addr) + *interp_map_addr = map_addr; error = map_addr; if (BAD_ADDR(map_addr)) goto out_close; @@ -455,8 +504,7 @@ goto out_close; } - *interp_load_addr = load_addr; - error = ((unsigned long)interp_elf_ex->e_entry) + load_addr; + error = load_addr; out_close: kfree(elf_phdata); @@ -553,7 +601,8 @@ int elf_exec_fileno; int retval, i; unsigned int size; - unsigned long elf_entry, interp_load_addr = 0; + unsigned long elf_entry; + unsigned long interp_load_addr = 0; unsigned long start_code, end_code, start_data, end_data; unsigned long reloc_func_desc = 0; char passed_fileno[6]; @@ -825,9 +874,7 @@ current->mm->start_stack = bprm->p; /* Now we do a little grungy work by mmaping the ELF image into - the correct location in memory. At this point, we assume that - the image should be loaded at fixed address, not at a variable - address. */ + the correct location in memory. */ for(i = 0, elf_ppnt = elf_phdata; i < loc->elf_ex.e_phnum; i++, elf_ppnt++) { int elf_prot = 0, elf_flags; @@ -881,11 +928,15 @@ * default mmap base, as well as whatever program they * might try to exec. This is because the brk will * follow the loader, and is not movable. */ +#ifdef CONFIG_X86 + load_bias = 0; +#else load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); +#endif } error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, - elf_prot, elf_flags); + elf_prot, elf_flags,0); if (BAD_ADDR(error)) { send_sig(SIGKILL, current, 0); retval = IS_ERR((void *)error) ? @@ -961,13 +1012,25 @@ } if (elf_interpreter) { - if (interpreter_type == INTERPRETER_AOUT) + if (interpreter_type == INTERPRETER_AOUT) { elf_entry = load_aout_interp(&loc->interp_ex, interpreter); - else + } else { + unsigned long uninitialized_var(interp_map_addr); + elf_entry = load_elf_interp(&loc->interp_elf_ex, interpreter, - &interp_load_addr); + &interp_map_addr, + load_bias); + if (!IS_ERR((void *)elf_entry)) { + /* + * load_elf_interp() returns relocation + * adjustment + */ + interp_load_addr = elf_entry; + elf_entry += loc->interp_elf_ex.e_entry; + } + } if (BAD_ADDR(elf_entry)) { force_sig(SIGSEGV, current); retval = IS_ERR((void *)elf_entry) ? --- linux-2.6.24.orig/fs/afs/file.c +++ linux-2.6.24/fs/afs/file.c @@ -36,6 +36,7 @@ .fsync = afs_fsync, .lock = afs_lock, .flock = afs_flock, + .fsetattr = afs_fsetattr, }; const struct inode_operations afs_file_inode_operations = { --- linux-2.6.24.orig/fs/afs/internal.h +++ linux-2.6.24/fs/afs/internal.h @@ -550,6 +550,7 @@ extern int afs_validate(struct afs_vnode *, struct key *); extern int afs_getattr(struct vfsmount *, struct dentry *, struct kstat *); extern int afs_setattr(struct dentry *, struct iattr *); +extern int afs_fsetattr(struct file *, struct iattr *); extern void afs_clear_inode(struct inode *); /* --- linux-2.6.24.orig/fs/afs/inode.c +++ linux-2.6.24/fs/afs/inode.c @@ -360,7 +360,8 @@ /* * set the attributes of an inode */ -int afs_setattr(struct dentry *dentry, struct iattr *attr) +static int afs_do_setattr(struct dentry *dentry, struct iattr *attr, + struct file *file) { struct afs_vnode *vnode = AFS_FS_I(dentry->d_inode); struct key *key; @@ -382,8 +383,8 @@ afs_writeback_all(vnode); } - if (attr->ia_valid & ATTR_FILE) { - key = attr->ia_file->private_data; + if (file) { + key = file->private_data; } else { key = afs_request_key(vnode->volume->cell); if (IS_ERR(key)) { @@ -393,10 +394,20 @@ } ret = afs_vnode_setattr(vnode, key, attr); - if (!(attr->ia_valid & ATTR_FILE)) + if (!file) key_put(key); error: _leave(" = %d", ret); return ret; } + +int afs_setattr(struct dentry *dentry, struct iattr *attr) +{ + return afs_do_setattr(dentry, attr, NULL); +} + +int afs_fsetattr(struct file *file, struct iattr *attr) +{ + return afs_do_setattr(file->f_path.dentry, attr, file); +} --- linux-2.6.24.orig/fs/afs/dir.c +++ linux-2.6.24/fs/afs/dir.c @@ -45,6 +45,7 @@ .release = afs_release, .readdir = afs_readdir, .lock = afs_lock, + .fsetattr = afs_fsetattr, }; const struct inode_operations afs_dir_inode_operations = { --- linux-2.6.24.orig/fs/Kconfig +++ linux-2.6.24/fs/Kconfig @@ -2118,6 +2118,29 @@ endif # NETWORK_FILESYSTEMS +config DEFAULT_RELATIME + bool "Mount all filesystems with relatime by default" + default y + help + If you say Y here, all your filesystems will be mounted + with the "relatime" mount option. This eliminates many atime + ('file last accessed' timestamp) updates (which otherwise + is performed on every file access and generates a write + IO to the inode) and thus speeds up IO. Atime is still updated, + but only once per day. + + The mtime ('file last modified') and ctime ('file created') + timestamp are unaffected by this change. + + Use the "norelatime" kernel boot option to turn off this + feature. + +config DEFAULT_RELATIME_VAL + int + default "1" if DEFAULT_RELATIME + default "0" + + if BLOCK menu "Partition Types" --- linux-2.6.24.orig/fs/dnotify.c +++ linux-2.6.24/fs/dnotify.c @@ -20,6 +20,7 @@ #include #include #include +#include int dir_notify_enable __read_mostly = 1; @@ -66,6 +67,7 @@ struct dnotify_struct **prev; struct inode *inode; fl_owner_t id = current->files; + struct file *f; int error = 0; if ((arg & ~DN_MULTISHOT) == 0) { @@ -92,6 +94,15 @@ prev = &odn->dn_next; } + rcu_read_lock(); + f = fcheck(fd); + rcu_read_unlock(); + /* we'd lost the race with close(), sod off silently */ + /* note that inode->i_lock prevents reordering problems + * between accesses to descriptor table and ->i_dnotify */ + if (f != filp) + goto out_free; + error = __f_setown(filp, task_pid(current), PIDTYPE_PID, 0); if (error) goto out_free; --- linux-2.6.24.orig/fs/xattr.c +++ linux-2.6.24/fs/xattr.c @@ -68,8 +68,8 @@ } int -vfs_setxattr(struct dentry *dentry, char *name, void *value, - size_t size, int flags) +vfs_setxattr(struct dentry *dentry, struct vfsmount *mnt, char *name, + void *value, size_t size, int flags, struct file *file) { struct inode *inode = dentry->d_inode; int error; @@ -79,7 +79,7 @@ return error; mutex_lock(&inode->i_mutex); - error = security_inode_setxattr(dentry, name, value, size, flags); + error = security_inode_setxattr(dentry, mnt, name, value, size, flags, file); if (error) goto out; error = -EOPNOTSUPP; @@ -87,7 +87,7 @@ error = inode->i_op->setxattr(dentry, name, value, size, flags); if (!error) { fsnotify_xattr(dentry); - security_inode_post_setxattr(dentry, name, value, + security_inode_post_setxattr(dentry, mnt, name, value, size, flags); } } else if (!strncmp(name, XATTR_SECURITY_PREFIX, @@ -105,7 +105,8 @@ EXPORT_SYMBOL_GPL(vfs_setxattr); ssize_t -vfs_getxattr(struct dentry *dentry, char *name, void *value, size_t size) +vfs_getxattr(struct dentry *dentry, struct vfsmount *mnt, char *name, + void *value, size_t size, struct file *file) { struct inode *inode = dentry->d_inode; int error; @@ -114,7 +115,7 @@ if (error) return error; - error = security_inode_getxattr(dentry, name); + error = security_inode_getxattr(dentry, mnt, name, file); if (error) return error; @@ -141,18 +142,20 @@ EXPORT_SYMBOL_GPL(vfs_getxattr); ssize_t -vfs_listxattr(struct dentry *d, char *list, size_t size) +vfs_listxattr(struct dentry *dentry, struct vfsmount *mnt, char *list, + size_t size, struct file *file) { + struct inode *inode = dentry->d_inode; ssize_t error; - error = security_inode_listxattr(d); + error = security_inode_listxattr(dentry, mnt, file); if (error) return error; error = -EOPNOTSUPP; - if (d->d_inode->i_op && d->d_inode->i_op->listxattr) { - error = d->d_inode->i_op->listxattr(d, list, size); - } else { - error = security_inode_listsecurity(d->d_inode, list, size); + if (inode->i_op && inode->i_op->listxattr) + error = inode->i_op->listxattr(dentry, list, size); + else { + error = security_inode_listsecurity(inode, list, size); if (size && error > size) error = -ERANGE; } @@ -161,7 +164,8 @@ EXPORT_SYMBOL_GPL(vfs_listxattr); int -vfs_removexattr(struct dentry *dentry, char *name) +vfs_removexattr(struct dentry *dentry, struct vfsmount *mnt, char *name, + struct file *file) { struct inode *inode = dentry->d_inode; int error; @@ -173,7 +177,7 @@ if (error) return error; - error = security_inode_removexattr(dentry, name); + error = security_inode_removexattr(dentry, mnt, name, file); if (error) return error; @@ -192,8 +196,8 @@ * Extended attribute SET operations */ static long -setxattr(struct dentry *d, char __user *name, void __user *value, - size_t size, int flags) +setxattr(struct dentry *dentry, struct vfsmount *mnt, char __user *name, + void __user *value, size_t size, int flags, struct file *file) { int error; void *kvalue = NULL; @@ -220,7 +224,7 @@ } } - error = vfs_setxattr(d, kname, kvalue, size, flags); + error = vfs_setxattr(dentry, mnt, kname, kvalue, size, flags, file); kfree(kvalue); return error; } @@ -235,7 +239,7 @@ error = user_path_walk(path, &nd); if (error) return error; - error = setxattr(nd.dentry, name, value, size, flags); + error = setxattr(nd.dentry, nd.mnt, name, value, size, flags, NULL); path_release(&nd); return error; } @@ -250,7 +254,7 @@ error = user_path_walk_link(path, &nd); if (error) return error; - error = setxattr(nd.dentry, name, value, size, flags); + error = setxattr(nd.dentry, nd.mnt, name, value, size, flags, NULL); path_release(&nd); return error; } @@ -268,7 +272,7 @@ return error; dentry = f->f_path.dentry; audit_inode(NULL, dentry); - error = setxattr(dentry, name, value, size, flags); + error = setxattr(dentry, f->f_vfsmnt, name, value, size, flags, f); fput(f); return error; } @@ -277,7 +281,8 @@ * Extended attribute GET operations */ static ssize_t -getxattr(struct dentry *d, char __user *name, void __user *value, size_t size) +getxattr(struct dentry *dentry, struct vfsmount *mnt, char __user *name, + void __user *value, size_t size, struct file *file) { ssize_t error; void *kvalue = NULL; @@ -297,7 +302,7 @@ return -ENOMEM; } - error = vfs_getxattr(d, kname, kvalue, size); + error = vfs_getxattr(dentry, mnt, kname, kvalue, size, file); if (error > 0) { if (size && copy_to_user(value, kvalue, error)) error = -EFAULT; @@ -320,7 +325,7 @@ error = user_path_walk(path, &nd); if (error) return error; - error = getxattr(nd.dentry, name, value, size); + error = getxattr(nd.dentry, nd.mnt, name, value, size, NULL); path_release(&nd); return error; } @@ -335,7 +340,7 @@ error = user_path_walk_link(path, &nd); if (error) return error; - error = getxattr(nd.dentry, name, value, size); + error = getxattr(nd.dentry, nd.mnt, name, value, size, NULL); path_release(&nd); return error; } @@ -350,7 +355,7 @@ if (!f) return error; audit_inode(NULL, f->f_path.dentry); - error = getxattr(f->f_path.dentry, name, value, size); + error = getxattr(f->f_path.dentry, f->f_path.mnt, name, value, size, f); fput(f); return error; } @@ -359,7 +364,8 @@ * Extended attribute LIST operations */ static ssize_t -listxattr(struct dentry *d, char __user *list, size_t size) +listxattr(struct dentry *dentry, struct vfsmount *mnt, char __user *list, + size_t size, struct file *file) { ssize_t error; char *klist = NULL; @@ -372,7 +378,7 @@ return -ENOMEM; } - error = vfs_listxattr(d, klist, size); + error = vfs_listxattr(dentry, mnt, klist, size, file); if (error > 0) { if (size && copy_to_user(list, klist, error)) error = -EFAULT; @@ -394,7 +400,7 @@ error = user_path_walk(path, &nd); if (error) return error; - error = listxattr(nd.dentry, list, size); + error = listxattr(nd.dentry, nd.mnt, list, size, NULL); path_release(&nd); return error; } @@ -408,7 +414,7 @@ error = user_path_walk_link(path, &nd); if (error) return error; - error = listxattr(nd.dentry, list, size); + error = listxattr(nd.dentry, nd.mnt, list, size, NULL); path_release(&nd); return error; } @@ -423,7 +429,7 @@ if (!f) return error; audit_inode(NULL, f->f_path.dentry); - error = listxattr(f->f_path.dentry, list, size); + error = listxattr(f->f_path.dentry, f->f_path.mnt, list, size, f); fput(f); return error; } @@ -432,7 +438,8 @@ * Extended attribute REMOVE operations */ static long -removexattr(struct dentry *d, char __user *name) +removexattr(struct dentry *dentry, struct vfsmount *mnt, char __user *name, + struct file *file) { int error; char kname[XATTR_NAME_MAX + 1]; @@ -443,7 +450,7 @@ if (error < 0) return error; - return vfs_removexattr(d, kname); + return vfs_removexattr(dentry, mnt, kname, file); } asmlinkage long @@ -455,7 +462,7 @@ error = user_path_walk(path, &nd); if (error) return error; - error = removexattr(nd.dentry, name); + error = removexattr(nd.dentry, nd.mnt, name, NULL); path_release(&nd); return error; } @@ -469,7 +476,7 @@ error = user_path_walk_link(path, &nd); if (error) return error; - error = removexattr(nd.dentry, name); + error = removexattr(nd.dentry, nd.mnt, name, NULL); path_release(&nd); return error; } @@ -486,7 +493,7 @@ return error; dentry = f->f_path.dentry; audit_inode(NULL, dentry); - error = removexattr(dentry, name); + error = removexattr(dentry, f->f_path.mnt, name, f); fput(f); return error; } --- linux-2.6.24.orig/fs/jbd2/recovery.c +++ linux-2.6.24/fs/jbd2/recovery.c @@ -488,7 +488,7 @@ memcpy(nbh->b_data, obh->b_data, journal->j_blocksize); if (flags & JBD2_FLAG_ESCAPE) { - *((__be32 *)bh->b_data) = + *((__be32 *)nbh->b_data) = cpu_to_be32(JBD2_MAGIC_NUMBER); } --- linux-2.6.24.orig/fs/utimes.c +++ linux-2.6.24/fs/utimes.c @@ -38,9 +38,14 @@ #endif +static bool nsec_special(long nsec) +{ + return nsec == UTIME_OMIT || nsec == UTIME_NOW; +} + static bool nsec_valid(long nsec) { - if (nsec == UTIME_OMIT || nsec == UTIME_NOW) + if (nsec_special(nsec)) return true; return nsec >= 0 && nsec <= 999999999; @@ -54,7 +59,7 @@ { int error; struct nameidata nd; - struct dentry *dentry; + struct path path; struct inode *inode; struct iattr newattrs; struct file *f = NULL; @@ -77,16 +82,17 @@ f = fget(dfd); if (!f) goto out; - dentry = f->f_path.dentry; + path = f->f_path; } else { error = __user_walk_fd(dfd, filename, (flags & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW, &nd); if (error) goto out; - dentry = nd.dentry; + path.dentry = nd.dentry; + path.mnt = nd.mnt; } - inode = dentry->d_inode; + inode = path.dentry->d_inode; error = -EROFS; if (IS_RDONLY(inode)) @@ -114,7 +120,15 @@ newattrs.ia_mtime.tv_nsec = times[1].tv_nsec; newattrs.ia_valid |= ATTR_MTIME_SET; } - } else { + } + + /* + * If times is NULL or both times are either UTIME_OMIT or + * UTIME_NOW, then need to check permissions, because + * inode_change_ok() won't do it. + */ + if (!times || (nsec_special(times[0].tv_nsec) && + nsec_special(times[1].tv_nsec))) { error = -EACCES; if (IS_IMMUTABLE(inode)) goto dput_and_out; @@ -131,7 +145,7 @@ } } mutex_lock(&inode->i_mutex); - error = notify_change(dentry, &newattrs); + error = fnotify_change(path.dentry, path.mnt, &newattrs, f); mutex_unlock(&inode->i_mutex); dput_and_out: if (f) --- linux-2.6.24.orig/fs/ecryptfs/crypto.c +++ linux-2.6.24/fs/ecryptfs/crypto.c @@ -472,8 +472,8 @@ { struct inode *ecryptfs_inode; struct ecryptfs_crypt_stat *crypt_stat; - char *enc_extent_virt = NULL; - struct page *enc_extent_page; + char *enc_extent_virt; + struct page *enc_extent_page = NULL; loff_t extent_offset; int rc = 0; @@ -489,14 +489,14 @@ page->index); goto out; } - enc_extent_virt = kmalloc(PAGE_CACHE_SIZE, GFP_USER); - if (!enc_extent_virt) { + enc_extent_page = alloc_page(GFP_USER); + if (!enc_extent_page) { rc = -ENOMEM; ecryptfs_printk(KERN_ERR, "Error allocating memory for " "encrypted extent\n"); goto out; } - enc_extent_page = virt_to_page(enc_extent_virt); + enc_extent_virt = kmap(enc_extent_page); for (extent_offset = 0; extent_offset < (PAGE_CACHE_SIZE / crypt_stat->extent_size); extent_offset++) { @@ -524,7 +524,10 @@ } } out: - kfree(enc_extent_virt); + if (enc_extent_page) { + kunmap(enc_extent_page); + __free_page(enc_extent_page); + } return rc; } @@ -606,8 +609,8 @@ { struct inode *ecryptfs_inode; struct ecryptfs_crypt_stat *crypt_stat; - char *enc_extent_virt = NULL; - struct page *enc_extent_page; + char *enc_extent_virt; + struct page *enc_extent_page = NULL; unsigned long extent_offset; int rc = 0; @@ -624,14 +627,14 @@ page->index); goto out; } - enc_extent_virt = kmalloc(PAGE_CACHE_SIZE, GFP_USER); - if (!enc_extent_virt) { + enc_extent_page = alloc_page(GFP_USER); + if (!enc_extent_page) { rc = -ENOMEM; ecryptfs_printk(KERN_ERR, "Error allocating memory for " "encrypted extent\n"); goto out; } - enc_extent_page = virt_to_page(enc_extent_virt); + enc_extent_virt = kmap(enc_extent_page); for (extent_offset = 0; extent_offset < (PAGE_CACHE_SIZE / crypt_stat->extent_size); extent_offset++) { @@ -659,7 +662,10 @@ } } out: - kfree(enc_extent_virt); + if (enc_extent_page) { + kunmap(enc_extent_page); + __free_page(enc_extent_page); + } return rc; } --- linux-2.6.24.orig/fs/ecryptfs/inode.c +++ linux-2.6.24/fs/ecryptfs/inode.c @@ -389,19 +389,24 @@ struct dentry *new_dentry) { struct dentry *lower_old_dentry; + struct vfsmount *lower_old_mnt; struct dentry *lower_new_dentry; + struct vfsmount *lower_new_mnt; struct dentry *lower_dir_dentry; u64 file_size_save; int rc; file_size_save = i_size_read(old_dentry->d_inode); lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); + lower_old_mnt = ecryptfs_dentry_to_lower_mnt(old_dentry); lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); + lower_new_mnt = ecryptfs_dentry_to_lower_mnt(new_dentry); dget(lower_old_dentry); dget(lower_new_dentry); lower_dir_dentry = lock_parent(lower_new_dentry); - rc = vfs_link(lower_old_dentry, lower_dir_dentry->d_inode, - lower_new_dentry); + rc = vfs_link(lower_old_dentry, lower_old_mnt, + lower_dir_dentry->d_inode, lower_new_dentry, + lower_new_mnt); if (rc || !lower_new_dentry->d_inode) goto out_lock; rc = ecryptfs_interpose(lower_new_dentry, new_dentry, dir->i_sb, 0); @@ -426,10 +431,11 @@ { int rc = 0; struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); + struct vfsmount *lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); struct inode *lower_dir_inode = ecryptfs_inode_to_lower(dir); lock_parent(lower_dentry); - rc = vfs_unlink(lower_dir_inode, lower_dentry); + rc = vfs_unlink(lower_dir_inode, lower_dentry, lower_mnt); if (rc) { printk(KERN_ERR "Error in vfs_unlink; rc = [%d]\n", rc); goto out_unlock; @@ -449,6 +455,7 @@ { int rc; struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct dentry *lower_dir_dentry; umode_t mode; char *encoded_symname; @@ -457,6 +464,7 @@ lower_dentry = ecryptfs_dentry_to_lower(dentry); dget(lower_dentry); + lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); lower_dir_dentry = lock_parent(lower_dentry); mode = S_IALLUGO; encoded_symlen = ecryptfs_encode_filename(crypt_stat, symname, @@ -466,7 +474,7 @@ rc = encoded_symlen; goto out_lock; } - rc = vfs_symlink(lower_dir_dentry->d_inode, lower_dentry, + rc = vfs_symlink(lower_dir_dentry->d_inode, lower_dentry, lower_mnt, encoded_symname, mode); kfree(encoded_symname); if (rc || !lower_dentry->d_inode) @@ -488,11 +496,14 @@ { int rc; struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct dentry *lower_dir_dentry; lower_dentry = ecryptfs_dentry_to_lower(dentry); + lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); lower_dir_dentry = lock_parent(lower_dentry); - rc = vfs_mkdir(lower_dir_dentry->d_inode, lower_dentry, mode); + rc = vfs_mkdir(lower_dir_dentry->d_inode, lower_dentry, lower_mnt, + mode); if (rc || !lower_dentry->d_inode) goto out; rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb, 0); @@ -511,14 +522,16 @@ static int ecryptfs_rmdir(struct inode *dir, struct dentry *dentry) { struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct dentry *lower_dir_dentry; int rc; lower_dentry = ecryptfs_dentry_to_lower(dentry); + lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); dget(dentry); lower_dir_dentry = lock_parent(lower_dentry); dget(lower_dentry); - rc = vfs_rmdir(lower_dir_dentry->d_inode, lower_dentry); + rc = vfs_rmdir(lower_dir_dentry->d_inode, lower_dentry, lower_mnt); dput(lower_dentry); if (!rc) d_delete(lower_dentry); @@ -536,11 +549,14 @@ { int rc; struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct dentry *lower_dir_dentry; lower_dentry = ecryptfs_dentry_to_lower(dentry); + lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); lower_dir_dentry = lock_parent(lower_dentry); - rc = vfs_mknod(lower_dir_dentry->d_inode, lower_dentry, mode, dev); + rc = vfs_mknod(lower_dir_dentry->d_inode, lower_dentry, lower_mnt, mode, + dev); if (rc || !lower_dentry->d_inode) goto out; rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb, 0); @@ -561,19 +577,24 @@ { int rc; struct dentry *lower_old_dentry; + struct vfsmount *lower_old_mnt; struct dentry *lower_new_dentry; + struct vfsmount *lower_new_mnt; struct dentry *lower_old_dir_dentry; struct dentry *lower_new_dir_dentry; lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); + lower_old_mnt = ecryptfs_dentry_to_lower_mnt(old_dentry); lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); + lower_new_mnt = ecryptfs_dentry_to_lower_mnt(new_dentry); dget(lower_old_dentry); dget(lower_new_dentry); lower_old_dir_dentry = dget_parent(lower_old_dentry); lower_new_dir_dentry = dget_parent(lower_new_dentry); lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); rc = vfs_rename(lower_old_dir_dentry->d_inode, lower_old_dentry, - lower_new_dir_dentry->d_inode, lower_new_dentry); + lower_old_mnt, lower_new_dir_dentry->d_inode, + lower_new_dentry, lower_new_mnt); if (rc) goto out_lock; fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode, NULL); @@ -660,10 +681,11 @@ ecryptfs_printk(KERN_DEBUG, "Calling readlink w/ " "dentry->d_name.name = [%s]\n", dentry->d_name.name); rc = dentry->d_inode->i_op->readlink(dentry, (char __user *)buf, len); - buf[rc] = '\0'; set_fs(old_fs); if (rc < 0) goto out_free; + else + buf[rc] = '\0'; rc = 0; nd_set_link(nd, buf); goto out; @@ -850,6 +872,7 @@ { int rc = 0; struct dentry *lower_dentry; + struct vfsmount *lower_mnt; struct inode *inode; struct inode *lower_inode; struct ecryptfs_crypt_stat *crypt_stat; @@ -860,6 +883,7 @@ inode = dentry->d_inode; lower_inode = ecryptfs_inode_to_lower(inode); lower_dentry = ecryptfs_dentry_to_lower(dentry); + lower_mnt = ecryptfs_dentry_to_lower_mnt(dentry); mutex_lock(&crypt_stat->cs_mutex); if (S_ISDIR(dentry->d_inode->i_mode)) crypt_stat->flags &= ~(ECRYPTFS_ENCRYPTED); @@ -910,7 +934,7 @@ if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) ia->ia_valid &= ~ATTR_MODE; - rc = notify_change(lower_dentry, ia); + rc = notify_change(lower_dentry, lower_mnt, ia); out: fsstack_copy_attr_all(inode, lower_inode, NULL); return rc; --- linux-2.6.24.orig/fs/ecryptfs/mmap.c +++ linux-2.6.24/fs/ecryptfs/mmap.c @@ -263,52 +263,102 @@ return 0; } -/* This function must zero any hole we create */ +/** + * ecryptfs_prepare_write + * @file: The eCryptfs file + * @page: The eCryptfs page + * @from: The start byte from which we will write + * @to: The end byte to which we will write + * + * This function must zero any hole we create + * + * Returns zero on success; non-zero otherwise + */ static int ecryptfs_prepare_write(struct file *file, struct page *page, unsigned from, unsigned to) { - int rc = 0; loff_t prev_page_end_size; + int rc = 0; if (!PageUptodate(page)) { - rc = ecryptfs_read_lower_page_segment(page, page->index, 0, - PAGE_CACHE_SIZE, - page->mapping->host); - if (rc) { - printk(KERN_ERR "%s: Error attemping to read lower " - "page segment; rc = [%d]\n", __FUNCTION__, rc); - ClearPageUptodate(page); - goto out; - } else + struct ecryptfs_crypt_stat *crypt_stat = + &ecryptfs_inode_to_private( + file->f_path.dentry->d_inode)->crypt_stat; + + if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED) + || (crypt_stat->flags & ECRYPTFS_NEW_FILE)) { + rc = ecryptfs_read_lower_page_segment( + page, page->index, 0, PAGE_CACHE_SIZE, + page->mapping->host); + if (rc) { + printk(KERN_ERR "%s: Error attemping to read " + "lower page segment; rc = [%d]\n", + __FUNCTION__, rc); + ClearPageUptodate(page); + goto out; + } else + SetPageUptodate(page); + } else if (crypt_stat->flags & ECRYPTFS_VIEW_AS_ENCRYPTED) { + if (crypt_stat->flags & ECRYPTFS_METADATA_IN_XATTR) { + rc = ecryptfs_copy_up_encrypted_with_header( + page, crypt_stat); + if (rc) { + printk(KERN_ERR "%s: Error attempting " + "to copy the encrypted content " + "from the lower file whilst " + "inserting the metadata from " + "the xattr into the header; rc " + "= [%d]\n", __FUNCTION__, rc); + ClearPageUptodate(page); + goto out; + } + SetPageUptodate(page); + } else { + rc = ecryptfs_read_lower_page_segment( + page, page->index, 0, PAGE_CACHE_SIZE, + page->mapping->host); + if (rc) { + printk(KERN_ERR "%s: Error reading " + "page; rc = [%d]\n", + __FUNCTION__, rc); + ClearPageUptodate(page); + goto out; + } + SetPageUptodate(page); + } + } else { + rc = ecryptfs_decrypt_page(page); + if (rc) { + printk(KERN_ERR "%s: Error decrypting page " + "at index [%ld]; rc = [%d]\n", + __FUNCTION__, page->index, rc); + ClearPageUptodate(page); + goto out; + } SetPageUptodate(page); + } } - prev_page_end_size = ((loff_t)page->index << PAGE_CACHE_SHIFT); - - /* - * If creating a page or more of holes, zero them out via truncate. - * Note, this will increase i_size. - */ + /* If creating a page or more of holes, zero them out via truncate. + * Note, this will increase i_size. */ if (page->index != 0) { if (prev_page_end_size > i_size_read(page->mapping->host)) { rc = ecryptfs_truncate(file->f_path.dentry, prev_page_end_size); if (rc) { - printk(KERN_ERR "Error on attempt to " + printk(KERN_ERR "%s: Error on attempt to " "truncate to (higher) offset [%lld];" - " rc = [%d]\n", prev_page_end_size, rc); + " rc = [%d]\n", __FUNCTION__, + prev_page_end_size, rc); goto out; } } } - /* - * Writing to a new page, and creating a small hole from start of page? - * Zero it out. - */ - if ((i_size_read(page->mapping->host) == prev_page_end_size) && - (from != 0)) { + /* Writing to a new page, and creating a small hole from start + * of page? Zero it out. */ + if ((i_size_read(page->mapping->host) == prev_page_end_size) + && (from != 0)) zero_user_page(page, 0, PAGE_CACHE_SIZE, KM_USER0); - } out: return rc; } --- linux-2.6.24.orig/fs/ecryptfs/keystore.c +++ linux-2.6.24/fs/ecryptfs/keystore.c @@ -724,6 +724,13 @@ } (*new_auth_tok)->session_key.encrypted_key_size = (body_size - (ECRYPTFS_SALT_SIZE + 5)); + if ((*new_auth_tok)->session_key.encrypted_key_size + > ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES) { + printk(KERN_WARNING "Tag 3 packet contains key larger " + "than ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES\n"); + rc = -EINVAL; + goto out_free; + } if (unlikely(data[(*packet_size)++] != 0x04)) { printk(KERN_WARNING "Unknown version number [%d]\n", data[(*packet_size) - 1]); @@ -870,6 +877,12 @@ rc = -EINVAL; goto out; } + if (unlikely((*tag_11_contents_size) > max_contents_bytes)) { + printk(KERN_ERR "Literal data section in tag 11 packet exceeds " + "expected size\n"); + rc = -EINVAL; + goto out; + } if (data[(*packet_size)++] != 0x62) { printk(KERN_WARNING "Unrecognizable packet\n"); rc = -EINVAL; --- linux-2.6.24.orig/fs/exec.c +++ linux-2.6.24/fs/exec.c @@ -1790,7 +1790,8 @@ goto close_fail; if (!file->f_op->write) goto close_fail; - if (!ispipe && do_truncate(file->f_path.dentry, 0, 0, file) != 0) + if (!ispipe && + do_truncate(file->f_path.dentry, file->f_path.mnt, 0, 0, file) != 0) goto close_fail; retval = binfmt->core_dump(signr, regs, file, core_limit); --- linux-2.6.24.orig/fs/ext4/namei.c +++ linux-2.6.24/fs/ext4/namei.c @@ -1378,7 +1378,7 @@ struct fake_dirent *fde; blocksize = dir->i_sb->s_blocksize; - dxtrace(printk("Creating index\n")); + dxtrace(printk(KERN_DEBUG "Creating index: inode %lu\n", dir->i_ino)); retval = ext4_journal_get_write_access(handle, bh); if (retval) { ext4_std_error(dir->i_sb, retval); @@ -1387,6 +1387,20 @@ } root = (struct dx_root *) bh->b_data; + /* The 0th block becomes the root, move the dirents out */ + fde = &root->dotdot; + de = (struct ext4_dir_entry_2 *)((char *)fde + + ext4_rec_len_from_disk(fde->rec_len)); + if ((char *) de >= (((char *) root) + blocksize)) { + ext4_error(dir->i_sb, __func__, + "invalid rec_len for '..' in inode %lu", + dir->i_ino); + brelse(bh); + return -EIO; + } + len = ((char *) root) + blocksize - (char *) de; + + /* Allocate new block for the 0th block's dirents */ bh2 = ext4_append (handle, dir, &block, &retval); if (!(bh2)) { brelse(bh); @@ -1395,10 +1409,6 @@ EXT4_I(dir)->i_flags |= EXT4_INDEX_FL; data1 = bh2->b_data; - /* The 0th block becomes the root, move the dirents out */ - fde = &root->dotdot; - de = (struct ext4_dir_entry_2 *)((char *)fde + le16_to_cpu(fde->rec_len)); - len = ((char *) root) + blocksize - (char *) de; memcpy (data1, de, len); de = (struct ext4_dir_entry_2 *) data1; top = data1 + len; --- linux-2.6.24.orig/fs/ext4/resize.c +++ linux-2.6.24/fs/ext4/resize.c @@ -857,13 +857,16 @@ */ /* Update group descriptor block for new group */ - gdp = (struct ext4_group_desc *)primary->b_data + gdb_off; + gdp = (struct ext4_group_desc *)((char *)primary->b_data + + gdb_off * EXT4_DESC_SIZE(sb)); + memset(gdp, 0, EXT4_DESC_SIZE(sb)); ext4_block_bitmap_set(sb, gdp, input->block_bitmap); /* LV FIXME */ ext4_inode_bitmap_set(sb, gdp, input->inode_bitmap); /* LV FIXME */ ext4_inode_table_set(sb, gdp, input->inode_table); /* LV FIXME */ gdp->bg_free_blocks_count = cpu_to_le16(input->free_blocks_count); gdp->bg_free_inodes_count = cpu_to_le16(EXT4_INODES_PER_GROUP(sb)); + gdp->bg_flags = cpu_to_le16(EXT4_BG_INODE_ZEROED); gdp->bg_checksum = ext4_group_desc_csum(sbi, input->group, gdp); /* --- linux-2.6.24.orig/fs/fat/file.c +++ linux-2.6.24/fs/fat/file.c @@ -92,7 +92,7 @@ } /* This MUST be done before doing anything irreversible... */ - err = notify_change(filp->f_path.dentry, &ia); + err = notify_change(filp->f_path.dentry, filp->f_path.mnt, &ia); if (err) goto up; --- linux-2.6.24.orig/fs/attr.c +++ linux-2.6.24/fs/attr.c @@ -100,7 +100,8 @@ } EXPORT_SYMBOL(inode_setattr); -int notify_change(struct dentry * dentry, struct iattr * attr) +int fnotify_change(struct dentry *dentry, struct vfsmount *mnt, + struct iattr *attr, struct file *file) { struct inode *inode = dentry->d_inode; mode_t mode = inode->i_mode; @@ -158,13 +159,17 @@ down_write(&dentry->d_inode->i_alloc_sem); if (inode->i_op && inode->i_op->setattr) { - error = security_inode_setattr(dentry, attr); - if (!error) - error = inode->i_op->setattr(dentry, attr); + error = security_inode_setattr(dentry, mnt, attr); + if (!error) { + if (file && file->f_op && file->f_op->fsetattr) + error = file->f_op->fsetattr(file, attr); + else + error = inode->i_op->setattr(dentry, attr); + } } else { error = inode_change_ok(inode, attr); if (!error) - error = security_inode_setattr(dentry, attr); + error = security_inode_setattr(dentry, mnt, attr); if (!error) { if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) || (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) @@ -183,4 +188,10 @@ return error; } +int notify_change(struct dentry *dentry, struct vfsmount *mnt, + struct iattr *attr) +{ + return fnotify_change(dentry, mnt, attr, NULL); +} + EXPORT_SYMBOL(notify_change); --- linux-2.6.24.orig/fs/hpfs/namei.c +++ linux-2.6.24/fs/hpfs/namei.c @@ -426,7 +426,7 @@ /*printk("HPFS: truncating file before delete.\n");*/ newattrs.ia_size = 0; newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME; - err = notify_change(dentry, &newattrs); + err = notify_change(dentry, NULL, &newattrs); put_write_access(inode); if (!err) goto again; --- linux-2.6.24.orig/fs/dcache.c +++ linux-2.6.24/fs/dcache.c @@ -1408,9 +1408,6 @@ if (atomic_read(&dentry->d_count) == 1) { dentry_iput(dentry); fsnotify_nameremove(dentry, isdir); - - /* remove this and other inotify debug checks after 2.6.18 */ - dentry->d_flags &= ~DCACHE_INOTIFY_PARENT_WATCHED; return; } @@ -1764,92 +1761,132 @@ } /** - * d_path - return the path of a dentry + * __d_path - return the path of a dentry * @dentry: dentry to report * @vfsmnt: vfsmnt to which the dentry belongs * @root: root dentry * @rootmnt: vfsmnt to which the root dentry belongs * @buffer: buffer to return value in * @buflen: buffer length + * @fail_deleted: what to return for deleted files * - * Convert a dentry into an ASCII path name. If the entry has been deleted + * Convert a dentry into an ASCII path name. If the entry has been deleted, + * then if @fail_deleted is true, ERR_PTR(-ENOENT) is returned. Otherwise, * the string " (deleted)" is appended. Note that this is ambiguous. * - * Returns the buffer or an error code if the path was too long. + * If @dentry is not connected to @root, the path returned will be relative + * (i.e., it will not start with a slash). * - * "buflen" should be positive. Caller holds the dcache_lock. + * Returns the buffer or an error code. */ -static char * __d_path( struct dentry *dentry, struct vfsmount *vfsmnt, - struct dentry *root, struct vfsmount *rootmnt, - char *buffer, int buflen) +char *__d_path(struct dentry *dentry, struct vfsmount *vfsmnt, + struct dentry *root, struct vfsmount *rootmnt, + char *buffer, int buflen, int fail_deleted) { - char * end = buffer+buflen; - char * retval; - int namelen; + int namelen, is_slash, vfsmount_locked = 0; + + if (buflen < 2) + return ERR_PTR(-ENAMETOOLONG); + buffer += --buflen; + *buffer = '\0'; - *--end = '\0'; - buflen--; + spin_lock(&dcache_lock); if (!IS_ROOT(dentry) && d_unhashed(dentry)) { - buflen -= 10; - end -= 10; - if (buflen < 0) + if (fail_deleted) { + buffer = ERR_PTR(-ENOENT); + goto out; + } + if (buflen < 10) goto Elong; - memcpy(end, " (deleted)", 10); + buflen -= 10; + buffer -= 10; + memcpy(buffer, " (deleted)", 10); } - - if (buflen < 1) - goto Elong; - /* Get '/' right */ - retval = end-1; - *retval = '/'; - - for (;;) { + while (dentry != root || vfsmnt != rootmnt) { struct dentry * parent; - if (dentry == root && vfsmnt == rootmnt) - break; if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) { - /* Global root? */ - spin_lock(&vfsmount_lock); - if (vfsmnt->mnt_parent == vfsmnt) { - spin_unlock(&vfsmount_lock); - goto global_root; + if (!vfsmount_locked) { + spin_lock(&vfsmount_lock); + vfsmount_locked = 1; } + if (vfsmnt->mnt_parent == vfsmnt) + goto global_root; dentry = vfsmnt->mnt_mountpoint; vfsmnt = vfsmnt->mnt_parent; - spin_unlock(&vfsmount_lock); continue; } parent = dentry->d_parent; prefetch(parent); namelen = dentry->d_name.len; - buflen -= namelen + 1; - if (buflen < 0) + if (buflen < namelen + 1) goto Elong; - end -= namelen; - memcpy(end, dentry->d_name.name, namelen); - *--end = '/'; - retval = end; + buflen -= namelen + 1; + buffer -= namelen; + memcpy(buffer, dentry->d_name.name, namelen); + *--buffer = '/'; dentry = parent; } + /* Get '/' right. */ + if (*buffer != '/') + *--buffer = '/'; - return retval; +out: + if (vfsmount_locked) + spin_unlock(&vfsmount_lock); + spin_unlock(&dcache_lock); + return buffer; global_root: + /* + * We went past the (vfsmount, dentry) we were looking for and have + * either hit a root dentry, a lazily unmounted dentry, an + * unconnected dentry, or the file is on a pseudo filesystem. + */ namelen = dentry->d_name.len; - buflen -= namelen; - if (buflen < 0) + is_slash = (namelen == 1 && *dentry->d_name.name == '/'); + if (is_slash || (dentry->d_sb->s_flags & MS_NOUSER)) { + /* + * Make sure we won't return a pathname starting with '/'. + * + * Historically, we also glue together the root dentry and + * remaining name for pseudo filesystems like pipefs, which + * have the MS_NOUSER flag set. This results in pathnames + * like "pipe:[439336]". + */ + if (*buffer == '/') { + buffer++; + buflen++; + } + if (is_slash) + goto out; + } + if (buflen < namelen) goto Elong; - retval -= namelen-1; /* hit the slash */ - memcpy(retval, dentry->d_name.name, namelen); - return retval; + buffer -= namelen; + memcpy(buffer, dentry->d_name.name, namelen); + goto out; + Elong: - return ERR_PTR(-ENAMETOOLONG); + buffer = ERR_PTR(-ENAMETOOLONG); + goto out; +} + +static char *__connect_d_path(char *path, char *buffer) +{ + if (!IS_ERR(path) && *path != '/') { + /* Pretend that disconnected paths are hanging off the root. */ + if (path == buffer) + path = ERR_PTR(-ENAMETOOLONG); + else + *--path = '/'; + } + return path; } /* write full pathname into buffer and return start of pathname */ -char * d_path(struct dentry *dentry, struct vfsmount *vfsmnt, - char *buf, int buflen) +char *d_path(struct dentry *dentry, struct vfsmount *vfsmnt, char *buf, + int buflen) { char *res; struct vfsmount *rootmnt; @@ -1869,9 +1906,8 @@ rootmnt = mntget(current->fs->rootmnt); root = dget(current->fs->root); read_unlock(¤t->fs->lock); - spin_lock(&dcache_lock); - res = __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen); - spin_unlock(&dcache_lock); + res = __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen, 0); + res = __connect_d_path(res, buf); dput(root); mntput(rootmnt); return res; @@ -1918,10 +1954,10 @@ */ asmlinkage long sys_getcwd(char __user *buf, unsigned long size) { - int error; + int error, len; struct vfsmount *pwdmnt, *rootmnt; struct dentry *pwd, *root; - char *page = (char *) __get_free_page(GFP_USER); + char *page = (char *) __get_free_page(GFP_USER), *cwd; if (!page) return -ENOMEM; @@ -1933,29 +1969,19 @@ root = dget(current->fs->root); read_unlock(¤t->fs->lock); - error = -ENOENT; - /* Has the current directory has been unlinked? */ - spin_lock(&dcache_lock); - if (pwd->d_parent == pwd || !d_unhashed(pwd)) { - unsigned long len; - char * cwd; - - cwd = __d_path(pwd, pwdmnt, root, rootmnt, page, PAGE_SIZE); - spin_unlock(&dcache_lock); - - error = PTR_ERR(cwd); - if (IS_ERR(cwd)) - goto out; - - error = -ERANGE; - len = PAGE_SIZE + page - cwd; - if (len <= size) { - error = len; - if (copy_to_user(buf, cwd, len)) - error = -EFAULT; - } - } else - spin_unlock(&dcache_lock); + cwd = __d_path(pwd, pwdmnt, root, rootmnt, page, PAGE_SIZE, 1); + cwd = __connect_d_path(cwd, page); + error = PTR_ERR(cwd); + if (IS_ERR(cwd)) + goto out; + + error = -ERANGE; + len = PAGE_SIZE + page - cwd; + if (len <= size) { + error = len; + if (copy_to_user(buf, cwd, len)) + error = -EFAULT; + } out: dput(pwd); --- linux-2.6.24.orig/fs/inode.c +++ linux-2.6.24/fs/inode.c @@ -1189,6 +1189,41 @@ } EXPORT_SYMBOL(bmap); +/* + * Relative atime updates frequency (default: 1 day): + */ +int relatime_interval __read_mostly = 24*60*60; + +/* + * With relative atime, only update atime if the + * previous atime is earlier than either the ctime or + * mtime. + */ +static int relatime_need_update(struct inode *inode, struct timespec now) +{ + /* + * Is mtime younger than atime? If yes, update atime: + */ + if (timespec_compare(&inode->i_mtime, &inode->i_atime) >= 0) + return 1; + /* + * Is ctime younger than atime? If yes, update atime: + */ + if (timespec_compare(&inode->i_ctime, &inode->i_atime) >= 0) + return 1; + + /* + * Is the previous atime value older than a day? If yes, + * update atime: + */ + if ((long)(now.tv_sec - inode->i_atime.tv_sec) >= relatime_interval) + return 1; + /* + * Good, we can skip the atime update: + */ + return 0; +} + /** * touch_atime - update the access time * @mnt: mount the inode is accessed on @@ -1218,22 +1253,14 @@ return; if ((mnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode)) return; - - if (mnt->mnt_flags & MNT_RELATIME) { - /* - * With relative atime, only update atime if the - * previous atime is earlier than either the ctime or - * mtime. - */ - if (timespec_compare(&inode->i_mtime, - &inode->i_atime) < 0 && - timespec_compare(&inode->i_ctime, - &inode->i_atime) < 0) + } + now = current_fs_time(inode->i_sb); + if (mnt) { + if (mnt->mnt_flags & MNT_RELATIME) + if (!relatime_need_update(inode, now)) return; - } } - now = current_fs_time(inode->i_sb); if (timespec_equal(&inode->i_atime, &now)) return; --- linux-2.6.24.orig/fs/nfs/client.c +++ linux-2.6.24/fs/nfs/client.c @@ -419,6 +419,7 @@ */ static int nfs_start_lockd(struct nfs_server *server) { + static int warned; int error = 0; if (server->nfs_client->cl_nfsversion > 3) @@ -427,9 +428,28 @@ goto out; error = lockd_up((server->flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP); - if (error < 0) + if (error < 0) { + /* + * Ubuntu: fix NFS mounting regression from Edgy->Feisty. + * In 2.6.18 and older kernels any failures to start lockd were + * ignored. This meant an Edgy user could successfully mount + * NFS filesystems without having installed nfs-common. + * + * This behaviour has been changed in 2.6.19 and later kernels, + * and so mounting NFS filesystems without nfs-common fail with + * can't read superblock. + * + * This workaround fixes this by issuing a warning (on the first + * lockd start failure), and then allowing the mount to continue + * without locking. + */ + if (warned++ == 0) { + printk(KERN_ERR "nfs: Starting lockd failed (do you have nfs-common installed?).\n"); + printk(KERN_ERR "nfs: Continuing anyway, but this workaround will go away soon.\n"); + } server->flags |= NFS_MOUNT_NONLM; - else + error = 0; + } else server->destroy = nfs_destroy_server; out: return error; --- linux-2.6.24.orig/fs/nfs/file.c +++ linux-2.6.24/fs/nfs/file.c @@ -578,17 +578,9 @@ lock_kernel(); /* Use local locking if mounted with "-onolock" */ - if (!(NFS_SERVER(inode)->flags & NFS_MOUNT_NONLM)) { + if (!(NFS_SERVER(inode)->flags & NFS_MOUNT_NONLM)) status = NFS_PROTO(inode)->lock(filp, cmd, fl); - /* If we were signalled we still need to ensure that - * we clean up any state on the server. We therefore - * record the lock call as having succeeded in order to - * ensure that locks_remove_posix() cleans it out when - * the process exits. - */ - if (status == -EINTR || status == -ERESTARTSYS) - do_vfs_lock(filp, fl); - } else + else status = do_vfs_lock(filp, fl); unlock_kernel(); if (status < 0) --- linux-2.6.24.orig/fs/nfs/write.c +++ linux-2.6.24/fs/nfs/write.c @@ -701,6 +701,17 @@ } /* + * If the page cache is marked as unsafe or invalid, then we can't rely on + * the PageUptodate() flag. In this case, we will need to turn off + * write optimisations that depend on the page contents being correct. + */ +static int nfs_write_pageuptodate(struct page *page, struct inode *inode) +{ + return PageUptodate(page) && + !(NFS_I(inode)->cache_validity & (NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA)); +} + +/* * Update and possibly write a cached page of an NFS file. * * XXX: Keep an eye on generic_file_read to make sure it doesn't do bad @@ -721,10 +732,13 @@ (long long)(page_offset(page) +offset)); /* If we're not using byte range locks, and we know the page - * is entirely in cache, it may be more efficient to avoid - * fragmenting write requests. + * is up to date, it may be more efficient to extend the write + * to cover the entire page in order to avoid fragmentation + * inefficiencies. */ - if (PageUptodate(page) && inode->i_flock == NULL && !(file->f_mode & O_SYNC)) { + if (nfs_write_pageuptodate(page, inode) && + inode->i_flock == NULL && + !(file->f_mode & O_SYNC)) { count = max(count + offset, nfs_page_length(page)); offset = 0; } --- linux-2.6.24.orig/fs/nfs/dir.c +++ linux-2.6.24/fs/nfs/dir.c @@ -1913,7 +1913,8 @@ /* NFSv4 has atomic_open... */ if (nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN) && nd != NULL - && (nd->flags & LOOKUP_OPEN)) + && (nd->flags & LOOKUP_OPEN) + && !(mask & MAY_EXEC)) goto out; break; case S_IFDIR: --- linux-2.6.24.orig/fs/sysfs/file.c +++ linux-2.6.24/fs/sysfs/file.c @@ -614,7 +614,7 @@ newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO); newattrs.ia_valid = ATTR_MODE | ATTR_CTIME; - rc = notify_change(victim, &newattrs); + rc = notify_change(victim, NULL, &newattrs); if (rc == 0) { mutex_lock(&sysfs_mutex); --- linux-2.6.24.orig/fs/xfs/linux-2.6/xfs_lrw.c +++ linux-2.6.24/fs/xfs/linux-2.6/xfs_lrw.c @@ -727,7 +727,7 @@ !capable(CAP_FSETID)) { error = xfs_write_clear_setuid(xip); if (likely(!error)) - error = -remove_suid(file->f_path.dentry); + error = -remove_suid(&file->f_path); if (unlikely(error)) { goto out_unlock_internal; } --- linux-2.6.24.orig/fs/xfs/linux-2.6/xfs_file.c +++ linux-2.6.24/fs/xfs/linux-2.6/xfs_file.c @@ -350,8 +350,8 @@ size = buf.used; de = (struct hack_dirent *)buf.dirent; - curr_offset = de->offset /* & 0x7fffffff */; while (size > 0) { + curr_offset = de->offset /* & 0x7fffffff */; if (filldir(dirent, de->name, de->namlen, curr_offset & 0x7fffffff, de->ino, de->d_type)) { @@ -362,7 +362,6 @@ sizeof(u64)); size -= reclen; de = (struct hack_dirent *)((char *)de + reclen); - curr_offset = de->offset /* & 0x7fffffff */; } } --- linux-2.6.24.orig/fs/dlm/user.c +++ linux-2.6.24/fs/dlm/user.c @@ -24,8 +24,7 @@ #include "lvb_table.h" #include "user.h" -static const char *name_prefix="dlm"; -static struct miscdevice ctl_device; +static const char name_prefix[] = "dlm"; static const struct file_operations device_fops; #ifdef CONFIG_COMPAT @@ -82,7 +81,8 @@ }; static void compat_input(struct dlm_write_request *kb, - struct dlm_write_request32 *kb32) + struct dlm_write_request32 *kb32, + size_t count) { kb->version[0] = kb32->version[0]; kb->version[1] = kb32->version[1]; @@ -94,7 +94,8 @@ kb->cmd == DLM_USER_REMOVE_LOCKSPACE) { kb->i.lspace.flags = kb32->i.lspace.flags; kb->i.lspace.minor = kb32->i.lspace.minor; - strcpy(kb->i.lspace.name, kb32->i.lspace.name); + memcpy(kb->i.lspace.name, kb32->i.lspace.name, count - + offsetof(struct dlm_write_request32, i.lspace.name)); } else if (kb->cmd == DLM_USER_PURGE) { kb->i.purge.nodeid = kb32->i.purge.nodeid; kb->i.purge.pid = kb32->i.purge.pid; @@ -112,7 +113,8 @@ kb->i.lock.bastaddr = (void *)(long)kb32->i.lock.bastaddr; kb->i.lock.lksb = (void *)(long)kb32->i.lock.lksb; memcpy(kb->i.lock.lvb, kb32->i.lock.lvb, DLM_USER_LVB_LEN); - memcpy(kb->i.lock.name, kb32->i.lock.name, kb->i.lock.namelen); + memcpy(kb->i.lock.name, kb32->i.lock.name, count - + offsetof(struct dlm_write_request32, i.lock.name)); } } @@ -193,8 +195,8 @@ if (lkb->lkb_flags & (DLM_IFL_ORPHAN | DLM_IFL_DEAD)) goto out; - DLM_ASSERT(lkb->lkb_astparam, dlm_print_lkb(lkb);); - ua = (struct dlm_user_args *)lkb->lkb_astparam; + DLM_ASSERT(lkb->lkb_ua, dlm_print_lkb(lkb);); + ua = lkb->lkb_ua; proc = ua->proc; if (type == AST_BAST && ua->bastaddr == NULL) @@ -236,12 +238,12 @@ spin_unlock(&proc->asts_spin); if (eol) { - spin_lock(&ua->proc->locks_spin); + spin_lock(&proc->locks_spin); if (!list_empty(&lkb->lkb_ownqueue)) { list_del_init(&lkb->lkb_ownqueue); dlm_put_lkb(lkb); } - spin_unlock(&ua->proc->locks_spin); + spin_unlock(&proc->locks_spin); } out: mutex_unlock(&ls->ls_clear_proc_locks); @@ -504,7 +506,7 @@ #endif return -EINVAL; - kbuf = kmalloc(count, GFP_KERNEL); + kbuf = kzalloc(count + 1, GFP_KERNEL); if (!kbuf) return -ENOMEM; @@ -522,14 +524,14 @@ if (!kbuf->is64bit) { struct dlm_write_request32 *k32buf; k32buf = (struct dlm_write_request32 *)kbuf; - kbuf = kmalloc(count + (sizeof(struct dlm_write_request) - + kbuf = kmalloc(count + 1 + (sizeof(struct dlm_write_request) - sizeof(struct dlm_write_request32)), GFP_KERNEL); if (!kbuf) return -ENOMEM; if (proc) set_bit(DLM_PROC_FLAGS_COMPAT, &proc->flags); - compat_input(kbuf, k32buf); + compat_input(kbuf, k32buf, count + 1); kfree(k32buf); } #endif @@ -769,7 +771,6 @@ { struct dlm_user_proc *proc = file->private_data; struct dlm_lkb *lkb; - struct dlm_user_args *ua; DECLARE_WAITQUEUE(wait, current); int error, type=0, bmode=0, removed = 0; @@ -840,8 +841,7 @@ } spin_unlock(&proc->asts_spin); - ua = (struct dlm_user_args *)lkb->lkb_astparam; - error = copy_result_to_user(ua, + error = copy_result_to_user(lkb->lkb_ua, test_bit(DLM_PROC_FLAGS_COMPAT, &proc->flags), type, bmode, buf, count); @@ -896,14 +896,16 @@ .owner = THIS_MODULE, }; -int dlm_user_init(void) +static struct miscdevice ctl_device = { + .name = "dlm-control", + .fops = &ctl_device_fops, + .minor = MISC_DYNAMIC_MINOR, +}; + +int __init dlm_user_init(void) { int error; - ctl_device.name = "dlm-control"; - ctl_device.fops = &ctl_device_fops; - ctl_device.minor = MISC_DYNAMIC_MINOR; - error = misc_register(&ctl_device); if (error) log_print("misc_register failed for control device"); --- linux-2.6.24.orig/fs/dlm/util.c +++ linux-2.6.24/fs/dlm/util.c @@ -1,7 +1,7 @@ /****************************************************************************** ******************************************************************************* ** -** Copyright (C) 2005 Red Hat, Inc. All rights reserved. +** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -14,6 +14,14 @@ #include "rcom.h" #include "util.h" +#define DLM_ERRNO_EDEADLK 35 +#define DLM_ERRNO_EBADR 53 +#define DLM_ERRNO_EBADSLT 57 +#define DLM_ERRNO_EPROTO 71 +#define DLM_ERRNO_EOPNOTSUPP 95 +#define DLM_ERRNO_ETIMEDOUT 110 +#define DLM_ERRNO_EINPROGRESS 115 + static void header_out(struct dlm_header *hd) { hd->h_version = cpu_to_le32(hd->h_version); @@ -30,11 +38,54 @@ hd->h_length = le16_to_cpu(hd->h_length); } -void dlm_message_out(struct dlm_message *ms) +/* higher errno values are inconsistent across architectures, so select + one set of values for on the wire */ + +static int to_dlm_errno(int err) { - struct dlm_header *hd = (struct dlm_header *) ms; + switch (err) { + case -EDEADLK: + return -DLM_ERRNO_EDEADLK; + case -EBADR: + return -DLM_ERRNO_EBADR; + case -EBADSLT: + return -DLM_ERRNO_EBADSLT; + case -EPROTO: + return -DLM_ERRNO_EPROTO; + case -EOPNOTSUPP: + return -DLM_ERRNO_EOPNOTSUPP; + case -ETIMEDOUT: + return -DLM_ERRNO_ETIMEDOUT; + case -EINPROGRESS: + return -DLM_ERRNO_EINPROGRESS; + } + return err; +} + +static int from_dlm_errno(int err) +{ + switch (err) { + case -DLM_ERRNO_EDEADLK: + return -EDEADLK; + case -DLM_ERRNO_EBADR: + return -EBADR; + case -DLM_ERRNO_EBADSLT: + return -EBADSLT; + case -DLM_ERRNO_EPROTO: + return -EPROTO; + case -DLM_ERRNO_EOPNOTSUPP: + return -EOPNOTSUPP; + case -DLM_ERRNO_ETIMEDOUT: + return -ETIMEDOUT; + case -DLM_ERRNO_EINPROGRESS: + return -EINPROGRESS; + } + return err; +} - header_out(hd); +void dlm_message_out(struct dlm_message *ms) +{ + header_out(&ms->m_header); ms->m_type = cpu_to_le32(ms->m_type); ms->m_nodeid = cpu_to_le32(ms->m_nodeid); @@ -53,14 +104,12 @@ ms->m_rqmode = cpu_to_le32(ms->m_rqmode); ms->m_bastmode = cpu_to_le32(ms->m_bastmode); ms->m_asts = cpu_to_le32(ms->m_asts); - ms->m_result = cpu_to_le32(ms->m_result); + ms->m_result = cpu_to_le32(to_dlm_errno(ms->m_result)); } void dlm_message_in(struct dlm_message *ms) { - struct dlm_header *hd = (struct dlm_header *) ms; - - header_in(hd); + header_in(&ms->m_header); ms->m_type = le32_to_cpu(ms->m_type); ms->m_nodeid = le32_to_cpu(ms->m_nodeid); @@ -79,87 +128,27 @@ ms->m_rqmode = le32_to_cpu(ms->m_rqmode); ms->m_bastmode = le32_to_cpu(ms->m_bastmode); ms->m_asts = le32_to_cpu(ms->m_asts); - ms->m_result = le32_to_cpu(ms->m_result); -} - -static void rcom_lock_out(struct rcom_lock *rl) -{ - rl->rl_ownpid = cpu_to_le32(rl->rl_ownpid); - rl->rl_lkid = cpu_to_le32(rl->rl_lkid); - rl->rl_remid = cpu_to_le32(rl->rl_remid); - rl->rl_parent_lkid = cpu_to_le32(rl->rl_parent_lkid); - rl->rl_parent_remid = cpu_to_le32(rl->rl_parent_remid); - rl->rl_exflags = cpu_to_le32(rl->rl_exflags); - rl->rl_flags = cpu_to_le32(rl->rl_flags); - rl->rl_lvbseq = cpu_to_le32(rl->rl_lvbseq); - rl->rl_result = cpu_to_le32(rl->rl_result); - rl->rl_wait_type = cpu_to_le16(rl->rl_wait_type); - rl->rl_namelen = cpu_to_le16(rl->rl_namelen); -} - -static void rcom_lock_in(struct rcom_lock *rl) -{ - rl->rl_ownpid = le32_to_cpu(rl->rl_ownpid); - rl->rl_lkid = le32_to_cpu(rl->rl_lkid); - rl->rl_remid = le32_to_cpu(rl->rl_remid); - rl->rl_parent_lkid = le32_to_cpu(rl->rl_parent_lkid); - rl->rl_parent_remid = le32_to_cpu(rl->rl_parent_remid); - rl->rl_exflags = le32_to_cpu(rl->rl_exflags); - rl->rl_flags = le32_to_cpu(rl->rl_flags); - rl->rl_lvbseq = le32_to_cpu(rl->rl_lvbseq); - rl->rl_result = le32_to_cpu(rl->rl_result); - rl->rl_wait_type = le16_to_cpu(rl->rl_wait_type); - rl->rl_namelen = le16_to_cpu(rl->rl_namelen); -} - -static void rcom_config_out(struct rcom_config *rf) -{ - rf->rf_lvblen = cpu_to_le32(rf->rf_lvblen); - rf->rf_lsflags = cpu_to_le32(rf->rf_lsflags); -} - -static void rcom_config_in(struct rcom_config *rf) -{ - rf->rf_lvblen = le32_to_cpu(rf->rf_lvblen); - rf->rf_lsflags = le32_to_cpu(rf->rf_lsflags); + ms->m_result = from_dlm_errno(le32_to_cpu(ms->m_result)); } void dlm_rcom_out(struct dlm_rcom *rc) { - struct dlm_header *hd = (struct dlm_header *) rc; - int type = rc->rc_type; - - header_out(hd); + header_out(&rc->rc_header); rc->rc_type = cpu_to_le32(rc->rc_type); rc->rc_result = cpu_to_le32(rc->rc_result); rc->rc_id = cpu_to_le64(rc->rc_id); rc->rc_seq = cpu_to_le64(rc->rc_seq); rc->rc_seq_reply = cpu_to_le64(rc->rc_seq_reply); - - if (type == DLM_RCOM_LOCK) - rcom_lock_out((struct rcom_lock *) rc->rc_buf); - - else if (type == DLM_RCOM_STATUS_REPLY) - rcom_config_out((struct rcom_config *) rc->rc_buf); } void dlm_rcom_in(struct dlm_rcom *rc) { - struct dlm_header *hd = (struct dlm_header *) rc; - - header_in(hd); + header_in(&rc->rc_header); rc->rc_type = le32_to_cpu(rc->rc_type); rc->rc_result = le32_to_cpu(rc->rc_result); rc->rc_id = le64_to_cpu(rc->rc_id); rc->rc_seq = le64_to_cpu(rc->rc_seq); rc->rc_seq_reply = le64_to_cpu(rc->rc_seq_reply); - - if (rc->rc_type == DLM_RCOM_LOCK) - rcom_lock_in((struct rcom_lock *) rc->rc_buf); - - else if (rc->rc_type == DLM_RCOM_STATUS_REPLY) - rcom_config_in((struct rcom_config *) rc->rc_buf); } - --- linux-2.6.24.orig/fs/dlm/recoverd.c +++ linux-2.6.24/fs/dlm/recoverd.c @@ -67,17 +67,18 @@ dlm_astd_resume(); /* - * This list of root rsb's will be the basis of most of the recovery - * routines. + * Free non-master tossed rsb's. Master rsb's are kept on toss + * list and put on root list to be included in resdir recovery. */ - dlm_create_root_list(ls); + dlm_clear_toss_list(ls); /* - * Free all the tossed rsb's so we don't have to recover them. + * This list of root rsb's will be the basis of most of the recovery + * routines. */ - dlm_clear_toss_list(ls); + dlm_create_root_list(ls); /* * Add or remove nodes from the lockspace's ls_nodes list. --- linux-2.6.24.orig/fs/dlm/lockspace.c +++ linux-2.6.24/fs/dlm/lockspace.c @@ -24,14 +24,6 @@ #include "recover.h" #include "requestqueue.h" -#ifdef CONFIG_DLM_DEBUG -int dlm_create_debug_file(struct dlm_ls *ls); -void dlm_delete_debug_file(struct dlm_ls *ls); -#else -static inline int dlm_create_debug_file(struct dlm_ls *ls) { return 0; } -static inline void dlm_delete_debug_file(struct dlm_ls *ls) { } -#endif - static int ls_count; static struct mutex ls_lock; static struct list_head lslist; @@ -218,7 +210,7 @@ } -int dlm_lockspace_init(void) +int __init dlm_lockspace_init(void) { int error; @@ -706,9 +698,9 @@ dlm_del_ast(lkb); if (lkb->lkb_lvbptr && lkb->lkb_flags & DLM_IFL_MSTCPY) - free_lvb(lkb->lkb_lvbptr); + dlm_free_lvb(lkb->lkb_lvbptr); - free_lkb(lkb); + dlm_free_lkb(lkb); } } dlm_astd_resume(); @@ -726,7 +718,7 @@ res_hashchain); list_del(&rsb->res_hashchain); - free_rsb(rsb); + dlm_free_rsb(rsb); } head = &ls->ls_rsbtbl[i].toss; @@ -734,7 +726,7 @@ rsb = list_entry(head->next, struct dlm_rsb, res_hashchain); list_del(&rsb->res_hashchain); - free_rsb(rsb); + dlm_free_rsb(rsb); } } --- linux-2.6.24.orig/fs/dlm/lock.c +++ linux-2.6.24/fs/dlm/lock.c @@ -1,7 +1,7 @@ /****************************************************************************** ******************************************************************************* ** -** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. +** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -88,7 +88,6 @@ static int receive_extralen(struct dlm_message *ms); static void do_purge(struct dlm_ls *ls, int nodeid, int pid); static void del_timeout(struct dlm_lkb *lkb); -void dlm_timeout_warn(struct dlm_lkb *lkb); /* * Lock compatibilty matrix - thanks Steve @@ -335,7 +334,7 @@ { struct dlm_rsb *r; - r = allocate_rsb(ls, len); + r = dlm_allocate_rsb(ls, len); if (!r) return NULL; @@ -437,11 +436,15 @@ { struct dlm_rsb *r, *tmp; uint32_t hash, bucket; - int error = 0; + int error = -EINVAL; + + if (namelen > DLM_RESNAME_MAXLEN) + goto out; if (dlm_no_directory(ls)) flags |= R_CREATE; + error = 0; hash = jhash(name, namelen, 0); bucket = hash & (ls->ls_rsbtbl_size - 1); @@ -478,7 +481,7 @@ error = _search_rsb(ls, name, namelen, bucket, 0, &tmp); if (!error) { write_unlock(&ls->ls_rsbtbl[bucket].lock); - free_rsb(r); + dlm_free_rsb(r); r = tmp; goto out; } @@ -490,12 +493,6 @@ return error; } -int dlm_find_rsb(struct dlm_ls *ls, char *name, int namelen, - unsigned int flags, struct dlm_rsb **r_ret) -{ - return find_rsb(ls, name, namelen, flags, r_ret); -} - /* This is only called to add a reference when the code already holds a valid reference to the rsb, so there's no need for locking. */ @@ -519,7 +516,7 @@ list_move(&r->res_hashchain, &ls->ls_rsbtbl[r->res_bucket].toss); r->res_toss_time = jiffies; if (r->res_lvbptr) { - free_lvb(r->res_lvbptr); + dlm_free_lvb(r->res_lvbptr); r->res_lvbptr = NULL; } } @@ -589,7 +586,7 @@ uint32_t lkid = 0; uint16_t bucket; - lkb = allocate_lkb(ls); + lkb = dlm_allocate_lkb(ls); if (!lkb) return -ENOMEM; @@ -683,8 +680,8 @@ /* for local/process lkbs, lvbptr points to caller's lksb */ if (lkb->lkb_lvbptr && is_master_copy(lkb)) - free_lvb(lkb->lkb_lvbptr); - free_lkb(lkb); + dlm_free_lvb(lkb->lkb_lvbptr); + dlm_free_lkb(lkb); return 1; } else { write_unlock(&ls->ls_lkbtbl[bucket].lock); @@ -988,7 +985,7 @@ if (is_master(r)) dir_remove(r); - free_rsb(r); + dlm_free_rsb(r); count++; } else { write_unlock(&ls->ls_rsbtbl[b].lock); @@ -1171,7 +1168,7 @@ return; if (!r->res_lvbptr) - r->res_lvbptr = allocate_lvb(r->res_ls); + r->res_lvbptr = dlm_allocate_lvb(r->res_ls); if (!r->res_lvbptr) return; @@ -1203,7 +1200,7 @@ return; if (!r->res_lvbptr) - r->res_lvbptr = allocate_lvb(r->res_ls); + r->res_lvbptr = dlm_allocate_lvb(r->res_ls); if (!r->res_lvbptr) return; @@ -1229,6 +1226,8 @@ b = dlm_lvb_operations[lkb->lkb_grmode + 1][lkb->lkb_rqmode + 1]; if (b == 1) { int len = receive_extralen(ms); + if (len > DLM_RESNAME_MAXLEN) + len = DLM_RESNAME_MAXLEN; memcpy(lkb->lkb_lvbptr, ms->m_extra, len); lkb->lkb_lvbseq = ms->m_lvbseq; } @@ -1782,7 +1781,7 @@ */ list_for_each_entry_safe(lkb, s, &r->res_grantqueue, lkb_statequeue) { - if (lkb->lkb_bastaddr && lock_requires_bast(lkb, high, cw)) { + if (lkb->lkb_bastfn && lock_requires_bast(lkb, high, cw)) { if (cw && high == DLM_LOCK_PR) queue_bast(r, lkb, DLM_LOCK_CW); else @@ -1812,7 +1811,7 @@ struct dlm_lkb *gr; list_for_each_entry(gr, head, lkb_statequeue) { - if (gr->lkb_bastaddr && modes_require_bast(gr, lkb)) { + if (gr->lkb_bastfn && modes_require_bast(gr, lkb)) { queue_bast(r, gr, lkb->lkb_rqmode); gr->lkb_highbast = lkb->lkb_rqmode; } @@ -1852,7 +1851,7 @@ static int set_master(struct dlm_rsb *r, struct dlm_lkb *lkb) { struct dlm_ls *ls = r->res_ls; - int error, dir_nodeid, ret_nodeid, our_nodeid = dlm_our_nodeid(); + int i, error, dir_nodeid, ret_nodeid, our_nodeid = dlm_our_nodeid(); if (rsb_flag(r, RSB_MASTER_UNCERTAIN)) { rsb_clear_flag(r, RSB_MASTER_UNCERTAIN); @@ -1886,7 +1885,7 @@ return 1; } - for (;;) { + for (i = 0; i < 2; i++) { /* It's possible for dlm_scand to remove an old rsb for this same resource from the toss list, us to create a new one, look up the master locally, and find it @@ -1900,6 +1899,8 @@ log_debug(ls, "dir_lookup error %d %s", error, r->res_name); schedule(); } + if (error && error != -EEXIST) + return error; if (ret_nodeid == our_nodeid) { r->res_first_lkid = 0; @@ -1941,8 +1942,11 @@ break; case -EAGAIN: - /* the remote master didn't queue our NOQUEUE request; - make a waiting lkb the first_lkid */ + case -EBADR: + case -ENOTBLK: + /* the remote request failed and won't be retried (it was + a NOQUEUE, or has been canceled/unlocked); make a waiting + lkb the first_lkid */ r->res_first_lkid = 0; @@ -1962,8 +1966,11 @@ } static int set_lock_args(int mode, struct dlm_lksb *lksb, uint32_t flags, - int namelen, unsigned long timeout_cs, void *ast, - void *astarg, void *bast, struct dlm_args *args) + int namelen, unsigned long timeout_cs, + void (*ast) (void *astparam), + void *astparam, + void (*bast) (void *astparam, int mode), + struct dlm_args *args) { int rv = -EINVAL; @@ -2013,9 +2020,9 @@ an active lkb cannot be modified before locking the rsb */ args->flags = flags; - args->astaddr = ast; - args->astparam = (long) astarg; - args->bastaddr = bast; + args->astfn = ast; + args->astparam = astparam; + args->bastfn = bast; args->timeout = timeout_cs; args->mode = mode; args->lksb = lksb; @@ -2034,7 +2041,7 @@ return -EINVAL; args->flags = flags; - args->astparam = (long) astarg; + args->astparam = astarg; return 0; } @@ -2064,9 +2071,9 @@ lkb->lkb_exflags = args->flags; lkb->lkb_sbflags = 0; - lkb->lkb_astaddr = args->astaddr; + lkb->lkb_astfn = args->astfn; lkb->lkb_astparam = args->astparam; - lkb->lkb_bastaddr = args->bastaddr; + lkb->lkb_bastfn = args->bastfn; lkb->lkb_rqmode = args->mode; lkb->lkb_lksb = args->lksb; lkb->lkb_lvbptr = args->lksb->sb_lvbptr; @@ -2108,17 +2115,18 @@ /* an lkb may be waiting for an rsb lookup to complete where the lookup was initiated by another lock */ - if (args->flags & (DLM_LKF_CANCEL | DLM_LKF_FORCEUNLOCK)) { - if (!list_empty(&lkb->lkb_rsb_lookup)) { + if (!list_empty(&lkb->lkb_rsb_lookup)) { + if (args->flags & (DLM_LKF_CANCEL | DLM_LKF_FORCEUNLOCK)) { log_debug(ls, "unlock on rsb_lookup %x", lkb->lkb_id); list_del_init(&lkb->lkb_rsb_lookup); queue_cast(lkb->lkb_resource, lkb, args->flags & DLM_LKF_CANCEL ? -DLM_ECANCEL : -DLM_EUNLOCK); unhold_lkb(lkb); /* undoes create_lkb() */ - rv = -EBUSY; - goto out; } + /* caller changes -EBUSY to 0 for CANCEL and FORCEUNLOCK */ + rv = -EBUSY; + goto out; } /* cancel not allowed with another cancel/unlock in progress */ @@ -2712,9 +2720,9 @@ /* m_result and m_bastmode are set from function args, not from lkb fields */ - if (lkb->lkb_bastaddr) + if (lkb->lkb_bastfn) ms->m_asts |= AST_BAST; - if (lkb->lkb_astaddr) + if (lkb->lkb_astfn) ms->m_asts |= AST_COMP; /* compare with switch in create_message; send_remove() doesn't @@ -2986,15 +2994,27 @@ if (lkb->lkb_exflags & DLM_LKF_VALBLK) { if (!lkb->lkb_lvbptr) - lkb->lkb_lvbptr = allocate_lvb(ls); + lkb->lkb_lvbptr = dlm_allocate_lvb(ls); if (!lkb->lkb_lvbptr) return -ENOMEM; len = receive_extralen(ms); + if (len > DLM_RESNAME_MAXLEN) + len = DLM_RESNAME_MAXLEN; memcpy(lkb->lkb_lvbptr, ms->m_extra, len); } return 0; } +static void fake_bastfn(void *astparam, int mode) +{ + log_print("fake_bastfn should not be called"); +} + +static void fake_astfn(void *astparam) +{ + log_print("fake_astfn should not be called"); +} + static int receive_request_args(struct dlm_ls *ls, struct dlm_lkb *lkb, struct dlm_message *ms) { @@ -3003,14 +3023,13 @@ lkb->lkb_remid = ms->m_lkid; lkb->lkb_grmode = DLM_LOCK_IV; lkb->lkb_rqmode = ms->m_rqmode; - lkb->lkb_bastaddr = (void *) (long) (ms->m_asts & AST_BAST); - lkb->lkb_astaddr = (void *) (long) (ms->m_asts & AST_COMP); - DLM_ASSERT(is_master_copy(lkb), dlm_print_lkb(lkb);); + lkb->lkb_bastfn = (ms->m_asts & AST_BAST) ? &fake_bastfn : NULL; + lkb->lkb_astfn = (ms->m_asts & AST_COMP) ? &fake_astfn : NULL; if (lkb->lkb_exflags & DLM_LKF_VALBLK) { /* lkb was just created so there won't be an lvb yet */ - lkb->lkb_lvbptr = allocate_lvb(ls); + lkb->lkb_lvbptr = dlm_allocate_lvb(ls); if (!lkb->lkb_lvbptr) return -ENOMEM; } @@ -3021,16 +3040,6 @@ static int receive_convert_args(struct dlm_ls *ls, struct dlm_lkb *lkb, struct dlm_message *ms) { - if (lkb->lkb_nodeid != ms->m_header.h_nodeid) { - log_error(ls, "convert_args nodeid %d %d lkid %x %x", - lkb->lkb_nodeid, ms->m_header.h_nodeid, - lkb->lkb_id, lkb->lkb_remid); - return -EINVAL; - } - - if (!is_master_copy(lkb)) - return -EINVAL; - if (lkb->lkb_status != DLM_LKSTS_GRANTED) return -EBUSY; @@ -3046,8 +3055,6 @@ static int receive_unlock_args(struct dlm_ls *ls, struct dlm_lkb *lkb, struct dlm_message *ms) { - if (!is_master_copy(lkb)) - return -EINVAL; if (receive_lvb(ls, lkb, ms)) return -ENOMEM; return 0; @@ -3063,6 +3070,50 @@ lkb->lkb_remid = ms->m_lkid; } +/* This is called after the rsb is locked so that we can safely inspect + fields in the lkb. */ + +static int validate_message(struct dlm_lkb *lkb, struct dlm_message *ms) +{ + int from = ms->m_header.h_nodeid; + int error = 0; + + switch (ms->m_type) { + case DLM_MSG_CONVERT: + case DLM_MSG_UNLOCK: + case DLM_MSG_CANCEL: + if (!is_master_copy(lkb) || lkb->lkb_nodeid != from) + error = -EINVAL; + break; + + case DLM_MSG_CONVERT_REPLY: + case DLM_MSG_UNLOCK_REPLY: + case DLM_MSG_CANCEL_REPLY: + case DLM_MSG_GRANT: + case DLM_MSG_BAST: + if (!is_process_copy(lkb) || lkb->lkb_nodeid != from) + error = -EINVAL; + break; + + case DLM_MSG_REQUEST_REPLY: + if (!is_process_copy(lkb)) + error = -EINVAL; + else if (lkb->lkb_nodeid != -1 && lkb->lkb_nodeid != from) + error = -EINVAL; + break; + + default: + error = -EINVAL; + } + + if (error) + log_error(lkb->lkb_resource->res_ls, + "ignore invalid message %d from %d %x %x %x %d", + ms->m_type, from, lkb->lkb_id, lkb->lkb_remid, + lkb->lkb_flags, lkb->lkb_nodeid); + return error; +} + static void receive_request(struct dlm_ls *ls, struct dlm_message *ms) { struct dlm_lkb *lkb; @@ -3124,17 +3175,21 @@ hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + receive_flags(lkb, ms); error = receive_convert_args(ls, lkb, ms); if (error) - goto out; + goto out_reply; reply = !down_conversion(lkb); error = do_convert(r, lkb); - out: + out_reply: if (reply) send_convert_reply(r, lkb, error); - + out: unlock_rsb(r); put_rsb(r); dlm_put_lkb(lkb); @@ -3160,15 +3215,19 @@ hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + receive_flags(lkb, ms); error = receive_unlock_args(ls, lkb, ms); if (error) - goto out; + goto out_reply; error = do_unlock(r, lkb); - out: + out_reply: send_unlock_reply(r, lkb, error); - + out: unlock_rsb(r); put_rsb(r); dlm_put_lkb(lkb); @@ -3196,9 +3255,13 @@ hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + error = do_cancel(r, lkb); send_cancel_reply(r, lkb, error); - + out: unlock_rsb(r); put_rsb(r); dlm_put_lkb(lkb); @@ -3217,22 +3280,26 @@ error = find_lkb(ls, ms->m_remid, &lkb); if (error) { - log_error(ls, "receive_grant no lkb"); + log_debug(ls, "receive_grant from %d no lkb %x", + ms->m_header.h_nodeid, ms->m_remid); return; } - DLM_ASSERT(is_process_copy(lkb), dlm_print_lkb(lkb);); r = lkb->lkb_resource; hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + receive_flags_reply(lkb, ms); if (is_altmode(lkb)) munge_altmode(lkb, ms); grant_lock_pc(r, lkb, ms); queue_cast(r, lkb, 0); - + out: unlock_rsb(r); put_rsb(r); dlm_put_lkb(lkb); @@ -3246,18 +3313,22 @@ error = find_lkb(ls, ms->m_remid, &lkb); if (error) { - log_error(ls, "receive_bast no lkb"); + log_debug(ls, "receive_bast from %d no lkb %x", + ms->m_header.h_nodeid, ms->m_remid); return; } - DLM_ASSERT(is_process_copy(lkb), dlm_print_lkb(lkb);); r = lkb->lkb_resource; hold_rsb(r); lock_rsb(r); - queue_bast(r, lkb, ms->m_bastmode); + error = validate_message(lkb, ms); + if (error) + goto out; + queue_bast(r, lkb, ms->m_bastmode); + out: unlock_rsb(r); put_rsb(r); dlm_put_lkb(lkb); @@ -3323,15 +3394,19 @@ error = find_lkb(ls, ms->m_remid, &lkb); if (error) { - log_error(ls, "receive_request_reply no lkb"); + log_debug(ls, "receive_request_reply from %d no lkb %x", + ms->m_header.h_nodeid, ms->m_remid); return; } - DLM_ASSERT(is_process_copy(lkb), dlm_print_lkb(lkb);); r = lkb->lkb_resource; hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + mstype = lkb->lkb_wait_type; error = remove_from_waiters(lkb, DLM_MSG_REQUEST_REPLY); if (error) @@ -3383,6 +3458,7 @@ if (is_overlap(lkb)) { /* we'll ignore error in cancel/unlock reply */ queue_cast_overlap(r, lkb); + confirm_master(r, result); unhold_lkb(lkb); /* undoes create_lkb() */ } else _request_lock(r, lkb); @@ -3463,6 +3539,10 @@ hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + /* stub reply can happen with waiters_mutex held */ error = remove_from_waiters_ms(lkb, ms); if (error) @@ -3481,10 +3561,10 @@ error = find_lkb(ls, ms->m_remid, &lkb); if (error) { - log_error(ls, "receive_convert_reply no lkb"); + log_debug(ls, "receive_convert_reply from %d no lkb %x", + ms->m_header.h_nodeid, ms->m_remid); return; } - DLM_ASSERT(is_process_copy(lkb), dlm_print_lkb(lkb);); _receive_convert_reply(lkb, ms); dlm_put_lkb(lkb); @@ -3498,6 +3578,10 @@ hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + /* stub reply can happen with waiters_mutex held */ error = remove_from_waiters_ms(lkb, ms); if (error) @@ -3529,10 +3613,10 @@ error = find_lkb(ls, ms->m_remid, &lkb); if (error) { - log_error(ls, "receive_unlock_reply no lkb"); + log_debug(ls, "receive_unlock_reply from %d no lkb %x", + ms->m_header.h_nodeid, ms->m_remid); return; } - DLM_ASSERT(is_process_copy(lkb), dlm_print_lkb(lkb);); _receive_unlock_reply(lkb, ms); dlm_put_lkb(lkb); @@ -3546,6 +3630,10 @@ hold_rsb(r); lock_rsb(r); + error = validate_message(lkb, ms); + if (error) + goto out; + /* stub reply can happen with waiters_mutex held */ error = remove_from_waiters_ms(lkb, ms); if (error) @@ -3577,10 +3665,10 @@ error = find_lkb(ls, ms->m_remid, &lkb); if (error) { - log_error(ls, "receive_cancel_reply no lkb"); + log_debug(ls, "receive_cancel_reply from %d no lkb %x", + ms->m_header.h_nodeid, ms->m_remid); return; } - DLM_ASSERT(is_process_copy(lkb), dlm_print_lkb(lkb);); _receive_cancel_reply(lkb, ms); dlm_put_lkb(lkb); @@ -3640,6 +3728,13 @@ static void _receive_message(struct dlm_ls *ls, struct dlm_message *ms) { + if (!dlm_is_member(ls, ms->m_header.h_nodeid)) { + log_debug(ls, "ignore non-member message %d from %d %x %x %d", + ms->m_type, ms->m_header.h_nodeid, ms->m_lkid, + ms->m_remid, ms->m_result); + return; + } + switch (ms->m_type) { /* messages sent to a master node */ @@ -3729,7 +3824,7 @@ int nodeid) { if (dlm_locking_stopped(ls)) { - dlm_add_requestqueue(ls, nodeid, (struct dlm_header *) ms); + dlm_add_requestqueue(ls, nodeid, ms); } else { dlm_wait_requestqueue(ls); _receive_message(ls, ms); @@ -3749,21 +3844,20 @@ standard locking activity) or an RCOM (recovery message sent as part of lockspace recovery). */ -void dlm_receive_buffer(struct dlm_header *hd, int nodeid) +void dlm_receive_buffer(union dlm_packet *p, int nodeid) { - struct dlm_message *ms = (struct dlm_message *) hd; - struct dlm_rcom *rc = (struct dlm_rcom *) hd; + struct dlm_header *hd = &p->header; struct dlm_ls *ls; int type = 0; switch (hd->h_cmd) { case DLM_MSG: - dlm_message_in(ms); - type = ms->m_type; + dlm_message_in(&p->message); + type = p->message.m_type; break; case DLM_RCOM: - dlm_rcom_in(rc); - type = rc->rc_type; + dlm_rcom_in(&p->rcom); + type = p->rcom.rc_type; break; default: log_print("invalid h_cmd %d from %u", hd->h_cmd, nodeid); @@ -3778,11 +3872,12 @@ ls = dlm_find_lockspace_global(hd->h_lockspace); if (!ls) { - log_print("invalid h_lockspace %x from %d cmd %d type %d", - hd->h_lockspace, nodeid, hd->h_cmd, type); + if (dlm_config.ci_log_debug) + log_print("invalid lockspace %x from %d cmd %d type %d", + hd->h_lockspace, nodeid, hd->h_cmd, type); if (hd->h_cmd == DLM_RCOM && type == DLM_RCOM_STATUS) - dlm_send_ls_not_ready(nodeid, rc); + dlm_send_ls_not_ready(nodeid, &p->rcom); return; } @@ -3791,9 +3886,9 @@ down_read(&ls->ls_recv_active); if (hd->h_cmd == DLM_MSG) - dlm_receive_message(ls, ms, nodeid); + dlm_receive_message(ls, &p->message, nodeid); else - dlm_receive_rcom(ls, rc, nodeid); + dlm_receive_rcom(ls, &p->rcom, nodeid); up_read(&ls->ls_recv_active); dlm_put_lockspace(ls); @@ -3806,6 +3901,7 @@ ls->ls_stub_ms.m_type = DLM_MSG_CONVERT_REPLY; ls->ls_stub_ms.m_result = -EINPROGRESS; ls->ls_stub_ms.m_flags = lkb->lkb_flags; + ls->ls_stub_ms.m_header.h_nodeid = lkb->lkb_nodeid; _receive_convert_reply(lkb, &ls->ls_stub_ms); /* Same special case as in receive_rcom_lock_args() */ @@ -3847,6 +3943,7 @@ void dlm_recover_waiters_pre(struct dlm_ls *ls) { struct dlm_lkb *lkb, *safe; + int wait_type, stub_unlock_result, stub_cancel_result; mutex_lock(&ls->ls_waiters_mutex); @@ -3865,7 +3962,33 @@ if (!waiter_needs_recovery(ls, lkb)) continue; - switch (lkb->lkb_wait_type) { + wait_type = lkb->lkb_wait_type; + stub_unlock_result = -DLM_EUNLOCK; + stub_cancel_result = -DLM_ECANCEL; + + /* Main reply may have been received leaving a zero wait_type, + but a reply for the overlapping op may not have been + received. In that case we need to fake the appropriate + reply for the overlap op. */ + + if (!wait_type) { + if (is_overlap_cancel(lkb)) { + wait_type = DLM_MSG_CANCEL; + if (lkb->lkb_grmode == DLM_LOCK_IV) + stub_cancel_result = 0; + } + if (is_overlap_unlock(lkb)) { + wait_type = DLM_MSG_UNLOCK; + if (lkb->lkb_grmode == DLM_LOCK_IV) + stub_unlock_result = -ENOENT; + } + + log_debug(ls, "rwpre overlap %x %x %d %d %d", + lkb->lkb_id, lkb->lkb_flags, wait_type, + stub_cancel_result, stub_unlock_result); + } + + switch (wait_type) { case DLM_MSG_REQUEST: lkb->lkb_flags |= DLM_IFL_RESEND; @@ -3878,8 +4001,9 @@ case DLM_MSG_UNLOCK: hold_lkb(lkb); ls->ls_stub_ms.m_type = DLM_MSG_UNLOCK_REPLY; - ls->ls_stub_ms.m_result = -DLM_EUNLOCK; + ls->ls_stub_ms.m_result = stub_unlock_result; ls->ls_stub_ms.m_flags = lkb->lkb_flags; + ls->ls_stub_ms.m_header.h_nodeid = lkb->lkb_nodeid; _receive_unlock_reply(lkb, &ls->ls_stub_ms); dlm_put_lkb(lkb); break; @@ -3887,15 +4011,16 @@ case DLM_MSG_CANCEL: hold_lkb(lkb); ls->ls_stub_ms.m_type = DLM_MSG_CANCEL_REPLY; - ls->ls_stub_ms.m_result = -DLM_ECANCEL; + ls->ls_stub_ms.m_result = stub_cancel_result; ls->ls_stub_ms.m_flags = lkb->lkb_flags; + ls->ls_stub_ms.m_header.h_nodeid = lkb->lkb_nodeid; _receive_cancel_reply(lkb, &ls->ls_stub_ms); dlm_put_lkb(lkb); break; default: - log_error(ls, "invalid lkb wait_type %d", - lkb->lkb_wait_type); + log_error(ls, "invalid lkb wait_type %d %d", + lkb->lkb_wait_type, wait_type); } schedule(); } @@ -4163,32 +4288,34 @@ return NULL; } +/* needs at least dlm_rcom + rcom_lock */ static int receive_rcom_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb, struct dlm_rsb *r, struct dlm_rcom *rc) { struct rcom_lock *rl = (struct rcom_lock *) rc->rc_buf; - int lvblen; lkb->lkb_nodeid = rc->rc_header.h_nodeid; - lkb->lkb_ownpid = rl->rl_ownpid; - lkb->lkb_remid = rl->rl_lkid; - lkb->lkb_exflags = rl->rl_exflags; - lkb->lkb_flags = rl->rl_flags & 0x0000FFFF; + lkb->lkb_ownpid = le32_to_cpu(rl->rl_ownpid); + lkb->lkb_remid = le32_to_cpu(rl->rl_lkid); + lkb->lkb_exflags = le32_to_cpu(rl->rl_exflags); + lkb->lkb_flags = le32_to_cpu(rl->rl_flags) & 0x0000FFFF; lkb->lkb_flags |= DLM_IFL_MSTCPY; - lkb->lkb_lvbseq = rl->rl_lvbseq; + lkb->lkb_lvbseq = le32_to_cpu(rl->rl_lvbseq); lkb->lkb_rqmode = rl->rl_rqmode; lkb->lkb_grmode = rl->rl_grmode; /* don't set lkb_status because add_lkb wants to itself */ - lkb->lkb_bastaddr = (void *) (long) (rl->rl_asts & AST_BAST); - lkb->lkb_astaddr = (void *) (long) (rl->rl_asts & AST_COMP); + lkb->lkb_bastfn = (rl->rl_asts & AST_BAST) ? &fake_bastfn : NULL; + lkb->lkb_astfn = (rl->rl_asts & AST_COMP) ? &fake_astfn : NULL; if (lkb->lkb_exflags & DLM_LKF_VALBLK) { - lkb->lkb_lvbptr = allocate_lvb(ls); + int lvblen = rc->rc_header.h_length - sizeof(struct dlm_rcom) - + sizeof(struct rcom_lock); + if (lvblen > ls->ls_lvblen) + return -EINVAL; + lkb->lkb_lvbptr = dlm_allocate_lvb(ls); if (!lkb->lkb_lvbptr) return -ENOMEM; - lvblen = rc->rc_header.h_length - sizeof(struct dlm_rcom) - - sizeof(struct rcom_lock); memcpy(lkb->lkb_lvbptr, rl->rl_lvb, lvblen); } @@ -4196,7 +4323,8 @@ The real granted mode of these converting locks cannot be determined until all locks have been rebuilt on the rsb (recover_conversion) */ - if (rl->rl_wait_type == DLM_MSG_CONVERT && middle_conversion(lkb)) { + if (rl->rl_wait_type == cpu_to_le16(DLM_MSG_CONVERT) && + middle_conversion(lkb)) { rl->rl_status = DLM_LKSTS_CONVERT; lkb->lkb_grmode = DLM_LOCK_IV; rsb_set_flag(r, RSB_RECOVER_CONVERT); @@ -4211,6 +4339,7 @@ the given values and send back our lkid. We send back our lkid by sending back the rcom_lock struct we got but with the remid field filled in. */ +/* needs at least dlm_rcom + rcom_lock */ int dlm_recover_master_copy(struct dlm_ls *ls, struct dlm_rcom *rc) { struct rcom_lock *rl = (struct rcom_lock *) rc->rc_buf; @@ -4223,13 +4352,14 @@ goto out; } - error = find_rsb(ls, rl->rl_name, rl->rl_namelen, R_MASTER, &r); + error = find_rsb(ls, rl->rl_name, le16_to_cpu(rl->rl_namelen), + R_MASTER, &r); if (error) goto out; lock_rsb(r); - lkb = search_remid(r, rc->rc_header.h_nodeid, rl->rl_lkid); + lkb = search_remid(r, rc->rc_header.h_nodeid, le32_to_cpu(rl->rl_lkid)); if (lkb) { error = -EEXIST; goto out_remid; @@ -4252,18 +4382,20 @@ out_remid: /* this is the new value returned to the lock holder for saving in its process-copy lkb */ - rl->rl_remid = lkb->lkb_id; + rl->rl_remid = cpu_to_le32(lkb->lkb_id); out_unlock: unlock_rsb(r); put_rsb(r); out: if (error) - log_print("recover_master_copy %d %x", error, rl->rl_lkid); - rl->rl_result = error; + log_debug(ls, "recover_master_copy %d %x", error, + le32_to_cpu(rl->rl_lkid)); + rl->rl_result = cpu_to_le32(error); return error; } +/* needs at least dlm_rcom + rcom_lock */ int dlm_recover_process_copy(struct dlm_ls *ls, struct dlm_rcom *rc) { struct rcom_lock *rl = (struct rcom_lock *) rc->rc_buf; @@ -4271,15 +4403,16 @@ struct dlm_lkb *lkb; int error; - error = find_lkb(ls, rl->rl_lkid, &lkb); + error = find_lkb(ls, le32_to_cpu(rl->rl_lkid), &lkb); if (error) { - log_error(ls, "recover_process_copy no lkid %x", rl->rl_lkid); + log_error(ls, "recover_process_copy no lkid %x", + le32_to_cpu(rl->rl_lkid)); return error; } DLM_ASSERT(is_process_copy(lkb), dlm_print_lkb(lkb);); - error = rl->rl_result; + error = le32_to_cpu(rl->rl_result); r = lkb->lkb_resource; hold_rsb(r); @@ -4298,7 +4431,7 @@ log_debug(ls, "master copy exists %x", lkb->lkb_id); /* fall through */ case 0: - lkb->lkb_remid = rl->rl_remid; + lkb->lkb_remid = le32_to_cpu(rl->rl_remid); break; default: log_error(ls, "dlm_recover_process_copy unknown error %d %x", @@ -4342,12 +4475,12 @@ } } - /* After ua is attached to lkb it will be freed by free_lkb(). + /* After ua is attached to lkb it will be freed by dlm_free_lkb(). When DLM_IFL_USER is set, the dlm knows that this is a userspace lock and that lkb_astparam is the dlm_user_args structure. */ error = set_lock_args(mode, &ua->lksb, flags, namelen, timeout_cs, - DLM_FAKE_USER_AST, ua, DLM_FAKE_USER_AST, &args); + fake_astfn, ua, fake_bastfn, &args); lkb->lkb_flags |= DLM_IFL_USER; ua->old_mode = DLM_LOCK_IV; @@ -4400,7 +4533,7 @@ /* user can change the params on its lock when it converts it, or add an lvb that didn't exist before */ - ua = (struct dlm_user_args *)lkb->lkb_astparam; + ua = lkb->lkb_ua; if (flags & DLM_LKF_VALBLK && !ua->lksb.sb_lvbptr) { ua->lksb.sb_lvbptr = kzalloc(DLM_USER_LVB_LEN, GFP_KERNEL); @@ -4421,7 +4554,7 @@ ua->old_mode = lkb->lkb_grmode; error = set_lock_args(mode, &ua->lksb, flags, 0, timeout_cs, - DLM_FAKE_USER_AST, ua, DLM_FAKE_USER_AST, &args); + fake_astfn, ua, fake_bastfn, &args); if (error) goto out_put; @@ -4451,7 +4584,7 @@ if (error) goto out; - ua = (struct dlm_user_args *)lkb->lkb_astparam; + ua = lkb->lkb_ua; if (lvb_in && ua->lksb.sb_lvbptr) memcpy(ua->lksb.sb_lvbptr, lvb_in, DLM_USER_LVB_LEN); @@ -4500,7 +4633,7 @@ if (error) goto out; - ua = (struct dlm_user_args *)lkb->lkb_astparam; + ua = lkb->lkb_ua; if (ua_tmp->castparam) ua->castparam = ua_tmp->castparam; ua->user_lksb = ua_tmp->user_lksb; @@ -4538,7 +4671,7 @@ if (error) goto out; - ua = (struct dlm_user_args *)lkb->lkb_astparam; + ua = lkb->lkb_ua; error = set_unlock_args(flags, ua, &args); if (error) @@ -4577,7 +4710,6 @@ static int orphan_proc_lock(struct dlm_ls *ls, struct dlm_lkb *lkb) { - struct dlm_user_args *ua = (struct dlm_user_args *)lkb->lkb_astparam; struct dlm_args args; int error; @@ -4586,7 +4718,7 @@ list_add_tail(&lkb->lkb_ownqueue, &ls->ls_orphans); mutex_unlock(&ls->ls_orphans_mutex); - set_unlock_args(0, ua, &args); + set_unlock_args(0, lkb->lkb_ua, &args); error = cancel_lock(ls, lkb, &args); if (error == -DLM_ECANCEL) @@ -4599,11 +4731,10 @@ static int unlock_proc_lock(struct dlm_ls *ls, struct dlm_lkb *lkb) { - struct dlm_user_args *ua = (struct dlm_user_args *)lkb->lkb_astparam; struct dlm_args args; int error; - set_unlock_args(DLM_LKF_FORCEUNLOCK, ua, &args); + set_unlock_args(DLM_LKF_FORCEUNLOCK, lkb->lkb_ua, &args); error = unlock_lock(ls, lkb, &args); if (error == -DLM_EUNLOCK) @@ -4679,6 +4810,7 @@ } list_for_each_entry_safe(lkb, safe, &proc->asts, lkb_astqueue) { + lkb->lkb_ast_type = 0; list_del(&lkb->lkb_astqueue); dlm_put_lkb(lkb); } --- linux-2.6.24.orig/fs/dlm/rcom.c +++ linux-2.6.24/fs/dlm/rcom.c @@ -2,7 +2,7 @@ ******************************************************************************* ** ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. -** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. +** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -78,13 +78,14 @@ static void make_config(struct dlm_ls *ls, struct rcom_config *rf) { - rf->rf_lvblen = ls->ls_lvblen; - rf->rf_lsflags = ls->ls_exflags; + rf->rf_lvblen = cpu_to_le32(ls->ls_lvblen); + rf->rf_lsflags = cpu_to_le32(ls->ls_exflags); } static int check_config(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid) { struct rcom_config *rf = (struct rcom_config *) rc->rc_buf; + size_t conf_size = sizeof(struct dlm_rcom) + sizeof(struct rcom_config); if ((rc->rc_header.h_version & 0xFFFF0000) != DLM_HEADER_MAJOR) { log_error(ls, "version mismatch: %x nodeid %d: %x", @@ -93,11 +94,18 @@ return -EPROTO; } - if (rf->rf_lvblen != ls->ls_lvblen || - rf->rf_lsflags != ls->ls_exflags) { + if (rc->rc_header.h_length < conf_size) { + log_error(ls, "config too short: %d nodeid %d", + rc->rc_header.h_length, nodeid); + return -EPROTO; + } + + if (le32_to_cpu(rf->rf_lvblen) != ls->ls_lvblen || + le32_to_cpu(rf->rf_lsflags) != ls->ls_exflags) { log_error(ls, "config mismatch: %d,%x nodeid %d: %d,%x", - ls->ls_lvblen, ls->ls_exflags, - nodeid, rf->rf_lvblen, rf->rf_lsflags); + ls->ls_lvblen, ls->ls_exflags, nodeid, + le32_to_cpu(rf->rf_lvblen), + le32_to_cpu(rf->rf_lsflags)); return -EPROTO; } return 0; @@ -128,7 +136,7 @@ ls->ls_recover_nodeid = nodeid; if (nodeid == dlm_our_nodeid()) { - rc = (struct dlm_rcom *) ls->ls_recover_buf; + rc = ls->ls_recover_buf; rc->rc_result = dlm_recover_status(ls); goto out; } @@ -147,7 +155,7 @@ if (error) goto out; - rc = (struct dlm_rcom *) ls->ls_recover_buf; + rc = ls->ls_recover_buf; if (rc->rc_result == -ESRCH) { /* we pretend the remote lockspace exists with 0 status */ @@ -197,23 +205,21 @@ spin_unlock(&ls->ls_rcom_spin); } -static void receive_rcom_status_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in) -{ - receive_sync_reply(ls, rc_in); -} - int dlm_rcom_names(struct dlm_ls *ls, int nodeid, char *last_name, int last_len) { struct dlm_rcom *rc; struct dlm_mhandle *mh; - int error = 0, len = sizeof(struct dlm_rcom); + int error = 0; + int max_size = dlm_config.ci_buffer_size - sizeof(struct dlm_rcom); ls->ls_recover_nodeid = nodeid; if (nodeid == dlm_our_nodeid()) { + ls->ls_recover_buf->rc_header.h_length = + dlm_config.ci_buffer_size; dlm_copy_master_names(ls, last_name, last_len, - ls->ls_recover_buf + len, - dlm_config.ci_buffer_size - len, nodeid); + ls->ls_recover_buf->rc_buf, + max_size, nodeid); goto out; } @@ -254,11 +260,6 @@ send_rcom(ls, mh, rc); } -static void receive_rcom_names_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in) -{ - receive_sync_reply(ls, rc_in); -} - int dlm_send_rcom_lookup(struct dlm_rsb *r, int dir_nodeid) { struct dlm_rcom *rc; @@ -309,22 +310,22 @@ { memset(rl, 0, sizeof(*rl)); - rl->rl_ownpid = lkb->lkb_ownpid; - rl->rl_lkid = lkb->lkb_id; - rl->rl_exflags = lkb->lkb_exflags; - rl->rl_flags = lkb->lkb_flags; - rl->rl_lvbseq = lkb->lkb_lvbseq; + rl->rl_ownpid = cpu_to_le32(lkb->lkb_ownpid); + rl->rl_lkid = cpu_to_le32(lkb->lkb_id); + rl->rl_exflags = cpu_to_le32(lkb->lkb_exflags); + rl->rl_flags = cpu_to_le32(lkb->lkb_flags); + rl->rl_lvbseq = cpu_to_le32(lkb->lkb_lvbseq); rl->rl_rqmode = lkb->lkb_rqmode; rl->rl_grmode = lkb->lkb_grmode; rl->rl_status = lkb->lkb_status; - rl->rl_wait_type = lkb->lkb_wait_type; + rl->rl_wait_type = cpu_to_le16(lkb->lkb_wait_type); - if (lkb->lkb_bastaddr) + if (lkb->lkb_bastfn) rl->rl_asts |= AST_BAST; - if (lkb->lkb_astaddr) + if (lkb->lkb_astfn) rl->rl_asts |= AST_COMP; - rl->rl_namelen = r->res_length; + rl->rl_namelen = cpu_to_le16(r->res_length); memcpy(rl->rl_name, r->res_name, r->res_length); /* FIXME: might we have an lvb without DLM_LKF_VALBLK set ? @@ -358,6 +359,7 @@ return error; } +/* needs at least dlm_rcom + rcom_lock */ static void receive_rcom_lock(struct dlm_ls *ls, struct dlm_rcom *rc_in) { struct dlm_rcom *rc; @@ -381,11 +383,6 @@ send_rcom(ls, mh, rc); } -static void receive_rcom_lock_reply(struct dlm_ls *ls, struct dlm_rcom *rc_in) -{ - dlm_recover_process_copy(ls, rc_in); -} - /* If the lockspace doesn't exist then still send a status message back; it's possible that it just doesn't have its global_id yet. */ @@ -416,7 +413,7 @@ rc->rc_result = -ESRCH; rf = (struct rcom_config *) rc->rc_buf; - rf->rf_lvblen = -1; + rf->rf_lvblen = cpu_to_le32(~0U); dlm_rcom_out(rc); dlm_lowcomms_commit_buffer(mh); @@ -454,6 +451,8 @@ void dlm_receive_rcom(struct dlm_ls *ls, struct dlm_rcom *rc, int nodeid) { + int lock_size = sizeof(struct dlm_rcom) + sizeof(struct rcom_lock); + if (dlm_recovery_stopped(ls) && (rc->rc_type != DLM_RCOM_STATUS)) { log_debug(ls, "ignoring recovery message %x from %d", rc->rc_type, nodeid); @@ -477,15 +476,17 @@ break; case DLM_RCOM_LOCK: + if (rc->rc_header.h_length < lock_size) + goto Eshort; receive_rcom_lock(ls, rc); break; case DLM_RCOM_STATUS_REPLY: - receive_rcom_status_reply(ls, rc); + receive_sync_reply(ls, rc); break; case DLM_RCOM_NAMES_REPLY: - receive_rcom_names_reply(ls, rc); + receive_sync_reply(ls, rc); break; case DLM_RCOM_LOOKUP_REPLY: @@ -493,13 +494,18 @@ break; case DLM_RCOM_LOCK_REPLY: - receive_rcom_lock_reply(ls, rc); + if (rc->rc_header.h_length < lock_size) + goto Eshort; + dlm_recover_process_copy(ls, rc); break; default: - DLM_ASSERT(0, printk("rc_type=%x\n", rc->rc_type);); + log_error(ls, "receive_rcom bad type %d", rc->rc_type); } - out: +out: return; +Eshort: + log_error(ls, "recovery message %x from %d is too short", + rc->rc_type, nodeid); } --- linux-2.6.24.orig/fs/dlm/lock.h +++ linux-2.6.24/fs/dlm/lock.h @@ -17,10 +17,8 @@ void dlm_dump_rsb(struct dlm_rsb *r); void dlm_print_lkb(struct dlm_lkb *lkb); void dlm_receive_message_saved(struct dlm_ls *ls, struct dlm_message *ms); -void dlm_receive_buffer(struct dlm_header *hd, int nodeid); +void dlm_receive_buffer(union dlm_packet *p, int nodeid); int dlm_modes_compat(int mode1, int mode2); -int dlm_find_rsb(struct dlm_ls *ls, char *name, int namelen, - unsigned int flags, struct dlm_rsb **r_ret); void dlm_put_rsb(struct dlm_rsb *r); void dlm_hold_rsb(struct dlm_rsb *r); int dlm_put_lkb(struct dlm_lkb *lkb); --- linux-2.6.24.orig/fs/dlm/ast.c +++ linux-2.6.24/fs/dlm/ast.c @@ -39,7 +39,6 @@ dlm_user_add_ast(lkb, type); return; } - DLM_ASSERT(lkb->lkb_astaddr != DLM_FAKE_USER_AST, dlm_print_lkb(lkb);); spin_lock(&ast_queue_lock); if (!(lkb->lkb_ast_type & (AST_COMP | AST_BAST))) { @@ -58,8 +57,8 @@ struct dlm_ls *ls = NULL; struct dlm_rsb *r = NULL; struct dlm_lkb *lkb; - void (*cast) (long param); - void (*bast) (long param, int mode); + void (*cast) (void *astparam); + void (*bast) (void *astparam, int mode); int type = 0, found, bmode; for (;;) { @@ -83,8 +82,8 @@ if (!found) break; - cast = lkb->lkb_astaddr; - bast = lkb->lkb_bastaddr; + cast = lkb->lkb_astfn; + bast = lkb->lkb_bastfn; bmode = lkb->lkb_bastmode; if ((type & AST_COMP) && cast) --- linux-2.6.24.orig/fs/dlm/recover.c +++ linux-2.6.24/fs/dlm/recover.c @@ -94,7 +94,7 @@ static int wait_status_all(struct dlm_ls *ls, uint32_t wait_status) { - struct dlm_rcom *rc = (struct dlm_rcom *) ls->ls_recover_buf; + struct dlm_rcom *rc = ls->ls_recover_buf; struct dlm_member *memb; int error = 0, delay; @@ -123,7 +123,7 @@ static int wait_status_low(struct dlm_ls *ls, uint32_t wait_status) { - struct dlm_rcom *rc = (struct dlm_rcom *) ls->ls_recover_buf; + struct dlm_rcom *rc = ls->ls_recover_buf; int error = 0, delay = 0, nodeid = ls->ls_low_nodeid; for (;;) { @@ -629,7 +629,7 @@ goto out; if (!r->res_lvbptr) { - r->res_lvbptr = allocate_lvb(r->res_ls); + r->res_lvbptr = dlm_allocate_lvb(r->res_ls); if (!r->res_lvbptr) goto out; } @@ -731,6 +731,20 @@ list_add(&r->res_root_list, &ls->ls_root_list); dlm_hold_rsb(r); } + + /* If we're using a directory, add tossed rsbs to the root + list; they'll have entries created in the new directory, + but no other recovery steps should do anything with them. */ + + if (dlm_no_directory(ls)) { + read_unlock(&ls->ls_rsbtbl[i].lock); + continue; + } + + list_for_each_entry(r, &ls->ls_rsbtbl[i].toss, res_hashchain) { + list_add(&r->res_root_list, &ls->ls_root_list); + dlm_hold_rsb(r); + } read_unlock(&ls->ls_rsbtbl[i].lock); } out: @@ -750,6 +764,11 @@ up_write(&ls->ls_root_sem); } +/* If not using a directory, clear the entire toss list, there's no benefit to + caching the master value since it's fixed. If we are using a dir, keep the + rsb's we're the master of. Recovery will add them to the root list and from + there they'll be entered in the rebuilt directory. */ + void dlm_clear_toss_list(struct dlm_ls *ls) { struct dlm_rsb *r, *safe; @@ -759,8 +778,10 @@ write_lock(&ls->ls_rsbtbl[i].lock); list_for_each_entry_safe(r, safe, &ls->ls_rsbtbl[i].toss, res_hashchain) { - list_del(&r->res_hashchain); - free_rsb(r); + if (dlm_no_directory(ls) || !is_master(r)) { + list_del(&r->res_hashchain); + dlm_free_rsb(r); + } } write_unlock(&ls->ls_rsbtbl[i].lock); } --- linux-2.6.24.orig/fs/dlm/memory.h +++ linux-2.6.24/fs/dlm/memory.h @@ -2,7 +2,7 @@ ******************************************************************************* ** ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. -** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. +** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -16,14 +16,12 @@ int dlm_memory_init(void); void dlm_memory_exit(void); -struct dlm_rsb *allocate_rsb(struct dlm_ls *ls, int namelen); -void free_rsb(struct dlm_rsb *r); -struct dlm_lkb *allocate_lkb(struct dlm_ls *ls); -void free_lkb(struct dlm_lkb *l); -struct dlm_direntry *allocate_direntry(struct dlm_ls *ls, int namelen); -void free_direntry(struct dlm_direntry *de); -char *allocate_lvb(struct dlm_ls *ls); -void free_lvb(char *l); +struct dlm_rsb *dlm_allocate_rsb(struct dlm_ls *ls, int namelen); +void dlm_free_rsb(struct dlm_rsb *r); +struct dlm_lkb *dlm_allocate_lkb(struct dlm_ls *ls); +void dlm_free_lkb(struct dlm_lkb *l); +char *dlm_allocate_lvb(struct dlm_ls *ls); +void dlm_free_lvb(char *l); #endif /* __MEMORY_DOT_H__ */ --- linux-2.6.24.orig/fs/dlm/netlink.c +++ linux-2.6.24/fs/dlm/netlink.c @@ -78,7 +78,7 @@ .doit = user_cmd, }; -int dlm_netlink_init(void) +int __init dlm_netlink_init(void) { int rv; @@ -95,7 +95,7 @@ return rv; } -void dlm_netlink_exit(void) +void __exit dlm_netlink_exit(void) { genl_unregister_ops(&family, &dlm_nl_ops); genl_unregister_family(&family); @@ -104,7 +104,6 @@ static void fill_data(struct dlm_lock_data *data, struct dlm_lkb *lkb) { struct dlm_rsb *r = lkb->lkb_resource; - struct dlm_user_args *ua = (struct dlm_user_args *) lkb->lkb_astparam; memset(data, 0, sizeof(struct dlm_lock_data)); @@ -117,8 +116,8 @@ data->grmode = lkb->lkb_grmode; data->rqmode = lkb->lkb_rqmode; data->timestamp = lkb->lkb_timestamp; - if (ua) - data->xid = ua->xid; + if (lkb->lkb_ua) + data->xid = lkb->lkb_ua->xid; if (r) { data->lockspace_id = r->res_ls->ls_global_id; data->resource_namelen = r->res_length; --- linux-2.6.24.orig/fs/dlm/requestqueue.c +++ linux-2.6.24/fs/dlm/requestqueue.c @@ -20,7 +20,7 @@ struct rq_entry { struct list_head list; int nodeid; - char request[0]; + struct dlm_message request; }; /* @@ -30,10 +30,10 @@ * lockspace is enabled on some while still suspended on others. */ -void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_header *hd) +void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms) { struct rq_entry *e; - int length = hd->h_length; + int length = ms->m_header.h_length - sizeof(struct dlm_message); e = kmalloc(sizeof(struct rq_entry) + length, GFP_KERNEL); if (!e) { @@ -42,7 +42,7 @@ } e->nodeid = nodeid; - memcpy(e->request, hd, length); + memcpy(&e->request, ms, ms->m_header.h_length); mutex_lock(&ls->ls_requestqueue_mutex); list_add_tail(&e->list, &ls->ls_requestqueue); @@ -76,7 +76,7 @@ e = list_entry(ls->ls_requestqueue.next, struct rq_entry, list); mutex_unlock(&ls->ls_requestqueue_mutex); - dlm_receive_message_saved(ls, (struct dlm_message *)e->request); + dlm_receive_message_saved(ls, &e->request); mutex_lock(&ls->ls_requestqueue_mutex); list_del(&e->list); @@ -176,7 +176,7 @@ mutex_lock(&ls->ls_requestqueue_mutex); list_for_each_entry_safe(e, safe, &ls->ls_requestqueue, list) { - ms = (struct dlm_message *) e->request; + ms = &e->request; if (purge_request(ls, ms, e->nodeid)) { list_del(&e->list); --- linux-2.6.24.orig/fs/dlm/lowcomms.c +++ linux-2.6.24/fs/dlm/lowcomms.c @@ -864,7 +864,7 @@ static void tcp_connect_to_sock(struct connection *con) { int result = -EHOSTUNREACH; - struct sockaddr_storage saddr; + struct sockaddr_storage saddr, src_addr; int addr_len; struct socket *sock; @@ -898,6 +898,17 @@ con->connect_action = tcp_connect_to_sock; add_sock(sock, con); + /* Bind to our cluster-known address connecting to avoid + routing problems */ + memcpy(&src_addr, dlm_local_addr[0], sizeof(src_addr)); + make_sockaddr(&src_addr, 0, &addr_len); + result = sock->ops->bind(sock, (struct sockaddr *) &src_addr, + addr_len); + if (result < 0) { + log_print("could not bind for connect: %d", result); + /* This *may* not indicate a critical error */ + } + make_sockaddr(&saddr, dlm_config.ci_tcp_port, &addr_len); log_print("connecting to %d", con->nodeid); @@ -1426,6 +1437,8 @@ con = __nodeid2con(i, 0); if (con) { close_connection(con, true); + if (con->othercon) + kmem_cache_free(con_cache, con->othercon); kmem_cache_free(con_cache, con); } } --- linux-2.6.24.orig/fs/dlm/dlm_internal.h +++ linux-2.6.24/fs/dlm/dlm_internal.h @@ -92,8 +92,6 @@ } \ } -#define DLM_FAKE_USER_AST ERR_PTR(-EINVAL) - struct dlm_direntry { struct list_head list; @@ -146,9 +144,9 @@ struct dlm_args { uint32_t flags; - void *astaddr; - long astparam; - void *bastaddr; + void (*astfn) (void *astparam); + void *astparam; + void (*bastfn) (void *astparam, int mode); int mode; struct dlm_lksb *lksb; unsigned long timeout; @@ -253,9 +251,12 @@ char *lkb_lvbptr; struct dlm_lksb *lkb_lksb; /* caller's status block */ - void *lkb_astaddr; /* caller's ast function */ - void *lkb_bastaddr; /* caller's bast function */ - long lkb_astparam; /* caller's ast arg */ + void (*lkb_astfn) (void *astparam); + void (*lkb_bastfn) (void *astparam, int mode); + union { + void *lkb_astparam; /* caller's ast arg */ + struct dlm_user_args *lkb_ua; + }; }; @@ -403,28 +404,34 @@ char rc_buf[0]; }; +union dlm_packet { + struct dlm_header header; /* common to other two */ + struct dlm_message message; + struct dlm_rcom rcom; +}; + struct rcom_config { - uint32_t rf_lvblen; - uint32_t rf_lsflags; - uint64_t rf_unused; + __le32 rf_lvblen; + __le32 rf_lsflags; + __le64 rf_unused; }; struct rcom_lock { - uint32_t rl_ownpid; - uint32_t rl_lkid; - uint32_t rl_remid; - uint32_t rl_parent_lkid; - uint32_t rl_parent_remid; - uint32_t rl_exflags; - uint32_t rl_flags; - uint32_t rl_lvbseq; - int rl_result; + __le32 rl_ownpid; + __le32 rl_lkid; + __le32 rl_remid; + __le32 rl_parent_lkid; + __le32 rl_parent_remid; + __le32 rl_exflags; + __le32 rl_flags; + __le32 rl_lvbseq; + __le32 rl_result; int8_t rl_rqmode; int8_t rl_grmode; int8_t rl_status; int8_t rl_asts; - uint16_t rl_wait_type; - uint16_t rl_namelen; + __le16 rl_wait_type; + __le16 rl_namelen; char rl_name[DLM_RESNAME_MAXLEN]; char rl_lvb[0]; }; @@ -494,7 +501,7 @@ struct rw_semaphore ls_recv_active; /* block dlm_recv */ struct list_head ls_requestqueue;/* queue remote requests */ struct mutex ls_requestqueue_mutex; - char *ls_recover_buf; + struct dlm_rcom *ls_recover_buf; int ls_recover_nodeid; /* for debugging */ uint64_t ls_rcom_seq; spinlock_t ls_rcom_spin; @@ -570,5 +577,21 @@ return (ls->ls_exflags & DLM_LSFL_NODIR) ? 1 : 0; } +int dlm_netlink_init(void); +void dlm_netlink_exit(void); +void dlm_timeout_warn(struct dlm_lkb *lkb); + +#ifdef CONFIG_DLM_DEBUG +int dlm_register_debugfs(void); +void dlm_unregister_debugfs(void); +int dlm_create_debug_file(struct dlm_ls *ls); +void dlm_delete_debug_file(struct dlm_ls *ls); +#else +static inline int dlm_register_debugfs(void) { return 0; } +static inline void dlm_unregister_debugfs(void) { } +static inline int dlm_create_debug_file(struct dlm_ls *ls) { return 0; } +static inline void dlm_delete_debug_file(struct dlm_ls *ls) { } +#endif + #endif /* __DLM_INTERNAL_DOT_H__ */ --- linux-2.6.24.orig/fs/dlm/requestqueue.h +++ linux-2.6.24/fs/dlm/requestqueue.h @@ -13,7 +13,7 @@ #ifndef __REQUESTQUEUE_DOT_H__ #define __REQUESTQUEUE_DOT_H__ -void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_header *hd); +void dlm_add_requestqueue(struct dlm_ls *ls, int nodeid, struct dlm_message *ms); int dlm_process_requestqueue(struct dlm_ls *ls); void dlm_wait_requestqueue(struct dlm_ls *ls); void dlm_purge_requestqueue(struct dlm_ls *ls); --- linux-2.6.24.orig/fs/dlm/member.h +++ linux-2.6.24/fs/dlm/member.h @@ -1,7 +1,7 @@ /****************************************************************************** ******************************************************************************* ** -** Copyright (C) 2005 Red Hat, Inc. All rights reserved. +** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -19,6 +19,7 @@ void dlm_clear_members_gone(struct dlm_ls *ls); int dlm_recover_members(struct dlm_ls *ls, struct dlm_recover *rv,int *neg_out); int dlm_is_removed(struct dlm_ls *ls, int nodeid); +int dlm_is_member(struct dlm_ls *ls, int nodeid); #endif /* __MEMBER_DOT_H__ */ --- linux-2.6.24.orig/fs/dlm/debug_fs.c +++ linux-2.6.24/fs/dlm/debug_fs.c @@ -162,14 +162,12 @@ static void print_lock(struct seq_file *s, struct dlm_lkb *lkb, struct dlm_rsb *r) { - struct dlm_user_args *ua; unsigned int waiting = 0; uint64_t xid = 0; if (lkb->lkb_flags & DLM_IFL_USER) { - ua = (struct dlm_user_args *) lkb->lkb_astparam; - if (ua) - xid = ua->xid; + if (lkb->lkb_ua) + xid = lkb->lkb_ua->xid; } if (lkb->lkb_timestamp) @@ -543,7 +541,7 @@ debugfs_remove(ls->ls_debug_locks_dentry); } -int dlm_register_debugfs(void) +int __init dlm_register_debugfs(void) { mutex_init(&debug_buf_lock); dlm_root = debugfs_create_dir("dlm", NULL); --- linux-2.6.24.orig/fs/dlm/memory.c +++ linux-2.6.24/fs/dlm/memory.c @@ -2,7 +2,7 @@ ******************************************************************************* ** ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. -** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. +** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -18,7 +18,7 @@ static struct kmem_cache *lkb_cache; -int dlm_memory_init(void) +int __init dlm_memory_init(void) { int ret = 0; @@ -35,7 +35,7 @@ kmem_cache_destroy(lkb_cache); } -char *allocate_lvb(struct dlm_ls *ls) +char *dlm_allocate_lvb(struct dlm_ls *ls) { char *p; @@ -43,7 +43,7 @@ return p; } -void free_lvb(char *p) +void dlm_free_lvb(char *p) { kfree(p); } @@ -51,7 +51,7 @@ /* FIXME: have some minimal space built-in to rsb for the name and kmalloc a separate name if needed, like dentries are done */ -struct dlm_rsb *allocate_rsb(struct dlm_ls *ls, int namelen) +struct dlm_rsb *dlm_allocate_rsb(struct dlm_ls *ls, int namelen) { struct dlm_rsb *r; @@ -61,14 +61,14 @@ return r; } -void free_rsb(struct dlm_rsb *r) +void dlm_free_rsb(struct dlm_rsb *r) { if (r->res_lvbptr) - free_lvb(r->res_lvbptr); + dlm_free_lvb(r->res_lvbptr); kfree(r); } -struct dlm_lkb *allocate_lkb(struct dlm_ls *ls) +struct dlm_lkb *dlm_allocate_lkb(struct dlm_ls *ls) { struct dlm_lkb *lkb; @@ -76,11 +76,11 @@ return lkb; } -void free_lkb(struct dlm_lkb *lkb) +void dlm_free_lkb(struct dlm_lkb *lkb) { if (lkb->lkb_flags & DLM_IFL_USER) { struct dlm_user_args *ua; - ua = (struct dlm_user_args *)lkb->lkb_astparam; + ua = lkb->lkb_ua; if (ua) { if (ua->lksb.sb_lvbptr) kfree(ua->lksb.sb_lvbptr); @@ -90,19 +90,3 @@ kmem_cache_free(lkb_cache, lkb); } -struct dlm_direntry *allocate_direntry(struct dlm_ls *ls, int namelen) -{ - struct dlm_direntry *de; - - DLM_ASSERT(namelen <= DLM_RESNAME_MAXLEN, - printk("namelen = %d\n", namelen);); - - de = kzalloc(sizeof(*de) + namelen, GFP_KERNEL); - return de; -} - -void free_direntry(struct dlm_direntry *de) -{ - kfree(de); -} - --- linux-2.6.24.orig/fs/dlm/midcomms.c +++ linux-2.6.24/fs/dlm/midcomms.c @@ -2,7 +2,7 @@ ******************************************************************************* ** ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. -** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. +** Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -58,8 +58,12 @@ int dlm_process_incoming_buffer(int nodeid, const void *base, unsigned offset, unsigned len, unsigned limit) { - unsigned char __tmp[DLM_INBUF_LEN]; - struct dlm_header *msg = (struct dlm_header *) __tmp; + union { + unsigned char __buf[DLM_INBUF_LEN]; + /* this is to force proper alignment on some arches */ + union dlm_packet p; + } __tmp; + union dlm_packet *p = &__tmp.p; int ret = 0; int err = 0; uint16_t msglen; @@ -71,15 +75,22 @@ message may wrap around the end of the buffer back to the start, so we need to use a temp buffer and copy_from_cb. */ - copy_from_cb(msg, base, offset, sizeof(struct dlm_header), + copy_from_cb(p, base, offset, sizeof(struct dlm_header), limit); - msglen = le16_to_cpu(msg->h_length); - lockspace = msg->h_lockspace; + msglen = le16_to_cpu(p->header.h_length); + lockspace = p->header.h_lockspace; err = -EINVAL; if (msglen < sizeof(struct dlm_header)) break; + if (p->header.h_cmd == DLM_MSG) { + if (msglen < sizeof(struct dlm_message)) + break; + } else { + if (msglen < sizeof(struct dlm_rcom)) + break; + } err = -E2BIG; if (msglen > dlm_config.ci_buffer_size) { log_print("message size %d from %d too big, buf len %d", @@ -100,27 +111,26 @@ in the buffer on the stack (which should work for most ordinary messages). */ - if (msglen > sizeof(__tmp) && - msg == (struct dlm_header *) __tmp) { - msg = kmalloc(dlm_config.ci_buffer_size, GFP_KERNEL); - if (msg == NULL) + if (msglen > sizeof(__tmp) && p == &__tmp.p) { + p = kmalloc(dlm_config.ci_buffer_size, GFP_KERNEL); + if (p == NULL) return ret; } - copy_from_cb(msg, base, offset, msglen, limit); + copy_from_cb(p, base, offset, msglen, limit); - BUG_ON(lockspace != msg->h_lockspace); + BUG_ON(lockspace != p->header.h_lockspace); ret += msglen; offset += msglen; offset &= (limit - 1); len -= msglen; - dlm_receive_buffer(msg, nodeid); + dlm_receive_buffer(p, nodeid); } - if (msg != (struct dlm_header *) __tmp) - kfree(msg); + if (p != &__tmp.p) + kfree(p); return err ? err : ret; } --- linux-2.6.24.orig/fs/dlm/main.c +++ linux-2.6.24/fs/dlm/main.c @@ -18,16 +18,6 @@ #include "memory.h" #include "config.h" -#ifdef CONFIG_DLM_DEBUG -int dlm_register_debugfs(void); -void dlm_unregister_debugfs(void); -#else -static inline int dlm_register_debugfs(void) { return 0; } -static inline void dlm_unregister_debugfs(void) { } -#endif -int dlm_netlink_init(void); -void dlm_netlink_exit(void); - static int __init init_dlm(void) { int error; --- linux-2.6.24.orig/fs/dlm/dir.c +++ linux-2.6.24/fs/dlm/dir.c @@ -49,7 +49,7 @@ spin_unlock(&ls->ls_recover_list_lock); if (!found) - de = allocate_direntry(ls, len); + de = kzalloc(sizeof(struct dlm_direntry) + len, GFP_KERNEL); return de; } @@ -62,7 +62,7 @@ de = list_entry(ls->ls_recover_list.next, struct dlm_direntry, list); list_del(&de->list); - free_direntry(de); + kfree(de); } spin_unlock(&ls->ls_recover_list_lock); } @@ -171,7 +171,7 @@ } list_del(&de->list); - free_direntry(de); + kfree(de); out: write_unlock(&ls->ls_dirtbl[bucket].lock); } @@ -220,6 +220,7 @@ last_len = 0; for (;;) { + int left; error = dlm_recovery_stopped(ls); if (error) goto out_free; @@ -235,12 +236,21 @@ * pick namelen/name pairs out of received buffer */ - b = ls->ls_recover_buf + sizeof(struct dlm_rcom); + b = ls->ls_recover_buf->rc_buf; + left = ls->ls_recover_buf->rc_header.h_length; + left -= sizeof(struct dlm_rcom); for (;;) { - memcpy(&namelen, b, sizeof(uint16_t)); - namelen = be16_to_cpu(namelen); - b += sizeof(uint16_t); + __be16 v; + + error = -EINVAL; + if (left < sizeof(__be16)) + goto out_free; + + memcpy(&v, b, sizeof(__be16)); + namelen = be16_to_cpu(v); + b += sizeof(__be16); + left -= sizeof(__be16); /* namelen of 0xFFFFF marks end of names for this node; namelen of 0 marks end of the @@ -251,6 +261,12 @@ if (!namelen) break; + if (namelen > left) + goto out_free; + + if (namelen > DLM_RESNAME_MAXLEN) + goto out_free; + error = -ENOMEM; de = get_free_de(ls, namelen); if (!de) @@ -262,6 +278,7 @@ memcpy(de->name, b, namelen); memcpy(last_name, b, namelen); b += namelen; + left -= namelen; add_entry_to_hash(ls, de); count++; @@ -302,7 +319,10 @@ write_unlock(&ls->ls_dirtbl[bucket].lock); - de = allocate_direntry(ls, namelen); + if (namelen > DLM_RESNAME_MAXLEN) + return -EINVAL; + + de = kzalloc(sizeof(struct dlm_direntry) + namelen, GFP_KERNEL); if (!de) return -ENOMEM; @@ -313,7 +333,7 @@ write_lock(&ls->ls_dirtbl[bucket].lock); tmp = search_bucket(ls, name, namelen, bucket); if (tmp) { - free_direntry(de); + kfree(de); de = tmp; } else { list_add_tail(&de->list, &ls->ls_dirtbl[bucket].list); @@ -329,49 +349,47 @@ return get_entry(ls, nodeid, name, namelen, r_nodeid); } -/* Copy the names of master rsb's into the buffer provided. - Only select names whose dir node is the given nodeid. */ +static struct dlm_rsb *find_rsb_root(struct dlm_ls *ls, char *name, int len) +{ + struct dlm_rsb *r; + + down_read(&ls->ls_root_sem); + list_for_each_entry(r, &ls->ls_root_list, res_root_list) { + if (len == r->res_length && !memcmp(name, r->res_name, len)) { + up_read(&ls->ls_root_sem); + return r; + } + } + up_read(&ls->ls_root_sem); + return NULL; +} + +/* Find the rsb where we left off (or start again), then send rsb names + for rsb's we're master of and whose directory node matches the requesting + node. inbuf is the rsb name last sent, inlen is the name's length */ void dlm_copy_master_names(struct dlm_ls *ls, char *inbuf, int inlen, char *outbuf, int outlen, int nodeid) { struct list_head *list; - struct dlm_rsb *start_r = NULL, *r = NULL; - int offset = 0, start_namelen, error, dir_nodeid; - char *start_name; + struct dlm_rsb *r; + int offset = 0, dir_nodeid; uint16_t be_namelen; - /* - * Find the rsb where we left off (or start again) - */ - - start_namelen = inlen; - start_name = inbuf; - - if (start_namelen > 1) { - /* - * We could also use a find_rsb_root() function here that - * searched the ls_root_list. - */ - error = dlm_find_rsb(ls, start_name, start_namelen, R_MASTER, - &start_r); - DLM_ASSERT(!error && start_r, - printk("error %d\n", error);); - DLM_ASSERT(!list_empty(&start_r->res_root_list), - dlm_print_rsb(start_r);); - dlm_put_rsb(start_r); - } - - /* - * Send rsb names for rsb's we're master of and whose directory node - * matches the requesting node. - */ - down_read(&ls->ls_root_sem); - if (start_r) - list = start_r->res_root_list.next; - else + + if (inlen > 1) { + r = find_rsb_root(ls, inbuf, inlen); + if (!r) { + inbuf[inlen - 1] = '\0'; + log_error(ls, "copy_master_names from %d start %d %s", + nodeid, inlen, inbuf); + goto out; + } + list = r->res_root_list.next; + } else { list = ls->ls_root_list.next; + } for (offset = 0; list != &ls->ls_root_list; list = list->next) { r = list_entry(list, struct dlm_rsb, res_root_list); --- linux-2.6.24.orig/fs/dlm/member.c +++ linux-2.6.24/fs/dlm/member.c @@ -1,7 +1,7 @@ /****************************************************************************** ******************************************************************************* ** -** Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. +** Copyright (C) 2005-2008 Red Hat, Inc. All rights reserved. ** ** This copyrighted material is made available to anyone wishing to use, ** modify, copy, or redistribute it subject to the terms and conditions @@ -70,7 +70,7 @@ ls->ls_num_nodes--; } -static int dlm_is_member(struct dlm_ls *ls, int nodeid) +int dlm_is_member(struct dlm_ls *ls, int nodeid) { struct dlm_member *memb; --- linux-2.6.24.orig/fs/dlm/config.c +++ linux-2.6.24/fs/dlm/config.c @@ -604,7 +604,7 @@ }, }; -int dlm_config_init(void) +int __init dlm_config_init(void) { config_group_init(&clusters_root.subsys.su_group); mutex_init(&clusters_root.subsys.su_mutex); --- linux-2.6.24.orig/fs/ocfs2/file.c +++ linux-2.6.24/fs/ocfs2/file.c @@ -2056,7 +2056,7 @@ out->f_path.dentry->d_name.len, out->f_path.dentry->d_name.name); - inode_double_lock(inode, pipe->inode); + mutex_lock_nested(&inode->i_mutex, I_MUTEX_PARENT); ret = ocfs2_rw_lock(inode, 1); if (ret < 0) { @@ -2071,12 +2071,16 @@ goto out_unlock; } + if (pipe->inode) + mutex_lock_nested(&pipe->inode->i_mutex, I_MUTEX_CHILD); ret = generic_file_splice_write_nolock(pipe, out, ppos, len, flags); + if (pipe->inode) + mutex_unlock(&pipe->inode->i_mutex); out_unlock: ocfs2_rw_unlock(inode, 1); out: - inode_double_unlock(inode, pipe->inode); + mutex_unlock(&inode->i_mutex); mlog_exit(ret); return ret; --- linux-2.6.24.orig/fs/inotify_user.c +++ linux-2.6.24/fs/inotify_user.c @@ -269,7 +269,7 @@ /* we can safely put the watch as we don't reference it while * generating the event */ - if (mask & IN_IGNORED || mask & IN_ONESHOT) + if (mask & IN_IGNORED || w->mask & IN_ONESHOT) put_inotify_watch(w); /* final put */ /* coalescing: drop this event if it is a dupe of the previous */ --- linux-2.6.24.orig/fs/splice.c +++ linux-2.6.24/fs/splice.c @@ -314,7 +314,7 @@ break; error = add_to_page_cache_lru(page, mapping, index, - GFP_KERNEL); + mapping_gfp_mask(mapping)); if (unlikely(error)) { page_cache_release(page); if (error == -EEXIST) @@ -738,10 +738,19 @@ * ->commit_write. Most of the time, these expect i_mutex to * be held. Since this may result in an ABBA deadlock with * pipe->inode, we have to order lock acquiry here. + * + * Outer lock must be inode->i_mutex, as pipe_wait() will + * release and reacquire pipe->inode->i_mutex, AND inode must + * never be a pipe. */ - inode_double_lock(inode, pipe->inode); + WARN_ON(S_ISFIFO(inode->i_mode)); + mutex_lock_nested(&inode->i_mutex, I_MUTEX_PARENT); + if (pipe->inode) + mutex_lock_nested(&pipe->inode->i_mutex, I_MUTEX_CHILD); ret = __splice_from_pipe(pipe, &sd, actor); - inode_double_unlock(inode, pipe->inode); + if (pipe->inode) + mutex_unlock(&pipe->inode->i_mutex); + mutex_unlock(&inode->i_mutex); return ret; } @@ -775,7 +784,7 @@ ssize_t ret; int err; - err = remove_suid(out->f_path.dentry); + err = remove_suid(&out->f_path); if (unlikely(err)) return err; @@ -835,7 +844,7 @@ if (killpriv) err = security_inode_killpriv(out->f_path.dentry); if (!err && killsuid) - err = __remove_suid(out->f_path.dentry, killsuid); + err = __remove_suid(&out->f_path, killsuid); mutex_unlock(&inode->i_mutex); if (err) return err; @@ -893,8 +902,8 @@ /* * Attempt to initiate a splice from pipe to file. */ -static long do_splice_from(struct pipe_inode_info *pipe, struct file *out, - loff_t *ppos, size_t len, unsigned int flags) +long do_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) { int ret; @@ -904,6 +913,9 @@ if (unlikely(!(out->f_mode & FMODE_WRITE))) return -EBADF; + if (unlikely(out->f_flags & O_APPEND)) + return -EINVAL; + ret = rw_verify_area(WRITE, out, ppos, len); if (unlikely(ret < 0)) return ret; @@ -914,13 +926,14 @@ return out->f_op->splice_write(pipe, out, ppos, len, flags); } +EXPORT_SYMBOL(do_splice_from); /* * Attempt to initiate a splice from a file to a pipe. */ -static long do_splice_to(struct file *in, loff_t *ppos, - struct pipe_inode_info *pipe, size_t len, - unsigned int flags) +long do_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) { int ret; @@ -940,6 +953,7 @@ return in->f_op->splice_read(in, ppos, pipe, len, flags); } +EXPORT_SYMBOL(do_splice_to); /** * splice_direct_to_actor - splices data directly between two non-pipes --- linux-2.6.24.orig/fs/fuse/file.c +++ linux-2.6.24/fs/fuse/file.c @@ -871,6 +871,17 @@ return err; } +static int fuse_file_fgetattr(struct file *file, struct kstat *stat) +{ + struct inode *inode = file->f_dentry->d_inode; + struct fuse_conn *fc = get_fuse_conn(inode); + + if (!fuse_allow_task(fc, current)) + return -EACCES; + + return fuse_getattr(file->f_vfsmnt, file->f_dentry, stat); +} + static sector_t fuse_bmap(struct address_space *mapping, sector_t block) { struct inode *inode = mapping->host; @@ -907,6 +918,11 @@ return err ? 0 : outarg.block; } +static int fuse_fsetattr(struct file *file, struct iattr *attr) +{ + return fuse_do_setattr(file->f_path.dentry, attr, file); +} + static const struct file_operations fuse_file_operations = { .llseek = generic_file_llseek, .read = do_sync_read, @@ -920,6 +936,8 @@ .fsync = fuse_fsync, .lock = fuse_file_lock, .flock = fuse_file_flock, + .fgetattr = fuse_file_fgetattr, + .fsetattr = fuse_fsetattr, .splice_read = generic_file_splice_read, }; @@ -933,6 +951,8 @@ .fsync = fuse_fsync, .lock = fuse_file_lock, .flock = fuse_file_flock, + .fgetattr = fuse_file_fgetattr, + .fsetattr = fuse_fsetattr, /* no mmap and splice_read */ }; --- linux-2.6.24.orig/fs/fuse/fuse_i.h +++ linux-2.6.24/fs/fuse/fuse_i.h @@ -505,6 +505,10 @@ */ int fuse_dev_init(void); + +int fuse_do_setattr(struct dentry *entry, struct iattr *attr, + struct file *file); + /** * Cleanup the client device */ @@ -596,3 +600,6 @@ int fuse_update_attributes(struct inode *inode, struct kstat *stat, struct file *file, bool *refreshed); + +int fuse_getattr(struct vfsmount *mnt, struct dentry *entry, + struct kstat *stat); --- linux-2.6.24.orig/fs/fuse/dir.c +++ linux-2.6.24/fs/fuse/dir.c @@ -905,7 +905,7 @@ } if (fc->flags & FUSE_DEFAULT_PERMISSIONS) { - int err = generic_permission(inode, mask, NULL); + err = generic_permission(inode, mask, NULL); /* If permission is denied, try to refresh file attributes. This is also needed, because the root @@ -1063,21 +1063,22 @@ return file ? fuse_fsync_common(file, de, datasync, 1) : 0; } -static bool update_mtime(unsigned ivalid) +static bool update_mtime(unsigned ivalid, bool have_file) { /* Always update if mtime is explicitly set */ if (ivalid & ATTR_MTIME_SET) return true; /* If it's an open(O_TRUNC) or an ftruncate(), don't update */ - if ((ivalid & ATTR_SIZE) && (ivalid & (ATTR_OPEN | ATTR_FILE))) + if ((ivalid & ATTR_SIZE) && ((ivalid & ATTR_OPEN) || have_file)) return false; /* In all other cases update */ return true; } -static void iattr_to_fattr(struct iattr *iattr, struct fuse_setattr_in *arg) +static void iattr_to_fattr(struct iattr *iattr, struct fuse_setattr_in *arg, + bool have_file) { unsigned ivalid = iattr->ia_valid; @@ -1096,7 +1097,7 @@ if (!(ivalid & ATTR_ATIME_SET)) arg->valid |= FATTR_ATIME_NOW; } - if ((ivalid & ATTR_MTIME) && update_mtime(ivalid)) { + if ((ivalid & ATTR_MTIME) && update_mtime(ivalid, have_file)) { arg->valid |= FATTR_MTIME; arg->mtime = iattr->ia_mtime.tv_sec; arg->mtimensec = iattr->ia_mtime.tv_nsec; @@ -1113,8 +1114,8 @@ * vmtruncate() doesn't allow for this case, so do the rlimit checking * and the actual truncation by hand. */ -static int fuse_do_setattr(struct dentry *entry, struct iattr *attr, - struct file *file) +int fuse_do_setattr(struct dentry *entry, struct iattr *attr, + struct file *file) { struct inode *inode = entry->d_inode; struct fuse_conn *fc = get_fuse_conn(inode); @@ -1152,7 +1153,7 @@ memset(&inarg, 0, sizeof(inarg)); memset(&outarg, 0, sizeof(outarg)); - iattr_to_fattr(attr, &inarg); + iattr_to_fattr(attr, &inarg, file != NULL); if (file) { struct fuse_file *ff = file->private_data; inarg.valid |= FATTR_FH; @@ -1194,13 +1195,10 @@ static int fuse_setattr(struct dentry *entry, struct iattr *attr) { - if (attr->ia_valid & ATTR_FILE) - return fuse_do_setattr(entry, attr, attr->ia_file); - else - return fuse_do_setattr(entry, attr, NULL); + return fuse_do_setattr(entry, attr, NULL); } -static int fuse_getattr(struct vfsmount *mnt, struct dentry *entry, +int fuse_getattr(struct vfsmount *mnt, struct dentry *entry, struct kstat *stat) { struct inode *inode = entry->d_inode; --- linux-2.6.24.orig/fs/hfsplus/catalog.c +++ linux-2.6.24/fs/hfsplus/catalog.c @@ -168,6 +168,11 @@ return -EIO; } + if (be16_to_cpu(tmp.thread.nodeName.length) > 255) { + printk(KERN_ERR "hfs: catalog name length corrupted\n"); + return -EIO; + } + hfsplus_cat_build_key_uni(fd->search_key, be32_to_cpu(tmp.thread.parentID), &tmp.thread.nodeName); return hfs_brec_find(fd); --- linux-2.6.24.orig/fs/hfsplus/bitmap.c +++ linux-2.6.24/fs/hfsplus/bitmap.c @@ -32,6 +32,10 @@ mutex_lock(&HFSPLUS_SB(sb).alloc_file->i_mutex); mapping = HFSPLUS_SB(sb).alloc_file->i_mapping; page = read_mapping_page(mapping, offset / PAGE_CACHE_BITS, NULL); + if (IS_ERR(page)) { + start = size; + goto out; + } pptr = kmap(page); curr = pptr + (offset & (PAGE_CACHE_BITS - 1)) / 32; i = offset % 32; @@ -73,6 +77,10 @@ break; page = read_mapping_page(mapping, offset / PAGE_CACHE_BITS, NULL); + if (IS_ERR(page)) { + start = size; + goto out; + } curr = pptr = kmap(page); if ((size ^ offset) / PAGE_CACHE_BITS) end = pptr + PAGE_CACHE_BITS / 32; @@ -120,6 +128,10 @@ offset += PAGE_CACHE_BITS; page = read_mapping_page(mapping, offset / PAGE_CACHE_BITS, NULL); + if (IS_ERR(page)) { + start = size; + goto out; + } pptr = kmap(page); curr = pptr; end = pptr + PAGE_CACHE_BITS / 32; --- linux-2.6.24.orig/fs/hfsplus/dir.c +++ linux-2.6.24/fs/hfsplus/dir.c @@ -340,16 +340,23 @@ if (inode->i_nlink > 0) drop_nlink(inode); - hfsplus_delete_inode(inode); - if (inode->i_ino != cnid && !inode->i_nlink) { - if (!atomic_read(&HFSPLUS_I(inode).opencnt)) { - res = hfsplus_delete_cat(inode->i_ino, HFSPLUS_SB(sb).hidden_dir, NULL); - if (!res) - hfsplus_delete_inode(inode); + if (inode->i_ino == cnid) + clear_nlink(inode); + if (!inode->i_nlink) { + if (inode->i_ino != cnid) { + HFSPLUS_SB(sb).file_count--; + if (!atomic_read(&HFSPLUS_I(inode).opencnt)) { + res = hfsplus_delete_cat(inode->i_ino, + HFSPLUS_SB(sb).hidden_dir, + NULL); + if (!res) + hfsplus_delete_inode(inode); + } else + inode->i_flags |= S_DEAD; } else - inode->i_flags |= S_DEAD; + hfsplus_delete_inode(inode); } else - clear_nlink(inode); + HFSPLUS_SB(sb).file_count--; inode->i_ctime = CURRENT_TIME_SEC; mark_inode_dirty(inode); --- linux-2.6.24.orig/fs/aio.c +++ linux-2.6.24/fs/aio.c @@ -997,6 +997,14 @@ /* everything turned out well, dispose of the aiocb. */ ret = __aio_put_req(ctx, iocb); + /* + * We have to order our ring_info tail store above and test + * of the wait list below outside the wait lock. This is + * like in wake_up_bit() where clearing a bit has to be + * ordered with the unlocked test. + */ + smp_mb(); + if (waitqueue_active(&ctx->wait)) wake_up(&ctx->wait); --- linux-2.6.24.orig/fs/buffer.c +++ linux-2.6.24/fs/buffer.c @@ -2565,14 +2565,13 @@ struct inode *inode = page->mapping->host; struct buffer_head *head = fsdata; struct buffer_head *bh; + BUG_ON(fsdata != NULL && page_has_buffers(page)); - if (!PageMappedToDisk(page)) { - if (unlikely(copied < len) && !page_has_buffers(page)) - attach_nobh_buffers(page, head); - if (page_has_buffers(page)) - return generic_write_end(file, mapping, pos, len, - copied, page, fsdata); - } + if (unlikely(copied < len) && !page_has_buffers(page)) + attach_nobh_buffers(page, head); + if (page_has_buffers(page)) + return generic_write_end(file, mapping, pos, len, + copied, page, fsdata); SetPageUptodate(page); set_page_dirty(page); --- linux-2.6.24.orig/fs/jbd/recovery.c +++ linux-2.6.24/fs/jbd/recovery.c @@ -478,7 +478,7 @@ memcpy(nbh->b_data, obh->b_data, journal->j_blocksize); if (flags & JFS_FLAG_ESCAPE) { - *((__be32 *)bh->b_data) = + *((__be32 *)nbh->b_data) = cpu_to_be32(JFS_MAGIC_NUMBER); } --- linux-2.6.24.orig/fs/ntfs/file.c +++ linux-2.6.24/fs/ntfs/file.c @@ -2120,7 +2120,7 @@ goto out; if (!count) goto out; - err = remove_suid(file->f_path.dentry); + err = remove_suid(&file->f_path); if (err) goto out; file_update_time(file); --- linux-2.6.24.orig/fs/gfs2/ops_super.c +++ linux-2.6.24/fs/gfs2/ops_super.c @@ -487,7 +487,6 @@ if (ip) { ip->i_flags = 0; ip->i_gl = NULL; - ip->i_last_pfault = jiffies; } return &ip->i_inode; } --- linux-2.6.24.orig/fs/gfs2/locking.c +++ linux-2.6.24/fs/gfs2/locking.c @@ -181,4 +181,7 @@ EXPORT_SYMBOL_GPL(gfs2_register_lockproto); EXPORT_SYMBOL_GPL(gfs2_unregister_lockproto); +EXPORT_SYMBOL_GPL(gfs2_unmount_lockproto); +EXPORT_SYMBOL_GPL(gfs2_mount_lockproto); +EXPORT_SYMBOL_GPL(gfs2_withdraw_lockproto); --- linux-2.6.24.orig/fs/gfs2/ops_file.c +++ linux-2.6.24/fs/gfs2/ops_file.c @@ -33,57 +33,12 @@ #include "lm.h" #include "log.h" #include "meta_io.h" -#include "ops_file.h" -#include "ops_vm.h" #include "quota.h" #include "rgrp.h" #include "trans.h" #include "util.h" #include "eaops.h" - -/* - * Most fields left uninitialised to catch anybody who tries to - * use them. f_flags set to prevent file_accessed() from touching - * any other part of this. Its use is purely as a flag so that we - * know (in readpage()) whether or not do to locking. - */ -struct file gfs2_internal_file_sentinel = { - .f_flags = O_NOATIME|O_RDONLY, -}; - -static int gfs2_read_actor(read_descriptor_t *desc, struct page *page, - unsigned long offset, unsigned long size) -{ - char *kaddr; - unsigned long count = desc->count; - - if (size > count) - size = count; - - kaddr = kmap(page); - memcpy(desc->arg.data, kaddr + offset, size); - kunmap(page); - - desc->count = count - size; - desc->written += size; - desc->arg.buf += size; - return size; -} - -int gfs2_internal_read(struct gfs2_inode *ip, struct file_ra_state *ra_state, - char *buf, loff_t *pos, unsigned size) -{ - struct inode *inode = &ip->i_inode; - read_descriptor_t desc; - desc.written = 0; - desc.arg.data = buf; - desc.count = size; - desc.error = 0; - do_generic_mapping_read(inode->i_mapping, ra_state, - &gfs2_internal_file_sentinel, pos, &desc, - gfs2_read_actor); - return desc.written ? desc.written : desc.error; -} +#include "ops_address.h" /** * gfs2_llseek - seek to a location in a file @@ -214,7 +169,7 @@ if (put_user(fsflags, ptr)) error = -EFAULT; - gfs2_glock_dq_m(1, &gh); + gfs2_glock_dq(&gh); gfs2_holder_uninit(&gh); return error; } @@ -291,7 +246,16 @@ if (error) goto out; } - + if ((flags ^ new_flags) & GFS2_DIF_JDATA) { + if (flags & GFS2_DIF_JDATA) + gfs2_log_flush(sdp, ip->i_gl); + error = filemap_fdatawrite(inode->i_mapping); + if (error) + goto out; + error = filemap_fdatawait(inode->i_mapping); + if (error) + goto out; + } error = gfs2_trans_begin(sdp, RES_DINODE, 0); if (error) goto out; @@ -303,6 +267,7 @@ gfs2_dinode_out(ip, bh->b_data); brelse(bh); gfs2_set_inode_flags(inode); + gfs2_set_aops(inode); out_trans_end: gfs2_trans_end(sdp); out: @@ -338,6 +303,128 @@ return -ENOTTY; } +/** + * gfs2_allocate_page_backing - Use bmap to allocate blocks + * @page: The (locked) page to allocate backing for + * + * We try to allocate all the blocks required for the page in + * one go. This might fail for various reasons, so we keep + * trying until all the blocks to back this page are allocated. + * If some of the blocks are already allocated, thats ok too. + */ + +static int gfs2_allocate_page_backing(struct page *page) +{ + struct inode *inode = page->mapping->host; + struct buffer_head bh; + unsigned long size = PAGE_CACHE_SIZE; + u64 lblock = page->index << (PAGE_CACHE_SHIFT - inode->i_blkbits); + + do { + bh.b_state = 0; + bh.b_size = size; + gfs2_block_map(inode, lblock, &bh, 1); + if (!buffer_mapped(&bh)) + return -EIO; + size -= bh.b_size; + lblock += (bh.b_size >> inode->i_blkbits); + } while(size > 0); + return 0; +} + +/** + * gfs2_page_mkwrite - Make a shared, mmap()ed, page writable + * @vma: The virtual memory area + * @page: The page which is about to become writable + * + * When the page becomes writable, we need to ensure that we have + * blocks allocated on disk to back that page. + */ + +static int gfs2_page_mkwrite(struct vm_area_struct *vma, struct page *page) +{ + struct inode *inode = vma->vm_file->f_path.dentry->d_inode; + struct gfs2_inode *ip = GFS2_I(inode); + struct gfs2_sbd *sdp = GFS2_SB(inode); + unsigned long last_index; + u64 pos = page->index << (PAGE_CACHE_SIZE - inode->i_blkbits); + unsigned int data_blocks, ind_blocks, rblocks; + int alloc_required = 0; + struct gfs2_holder gh; + struct gfs2_alloc *al; + int ret; + + gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, GL_ATIME, &gh); + ret = gfs2_glock_nq_atime(&gh); + if (ret) + goto out; + + set_bit(GIF_SW_PAGED, &ip->i_flags); + gfs2_write_calc_reserv(ip, PAGE_CACHE_SIZE, &data_blocks, &ind_blocks); + ret = gfs2_write_alloc_required(ip, pos, PAGE_CACHE_SIZE, &alloc_required); + if (ret || !alloc_required) + goto out_unlock; + ret = -ENOMEM; + al = gfs2_alloc_get(ip); + if (al == NULL) + goto out_unlock; + + ret = gfs2_quota_lock(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE); + if (ret) + goto out_alloc_put; + ret = gfs2_quota_check(ip, ip->i_inode.i_uid, ip->i_inode.i_gid); + if (ret) + goto out_quota_unlock; + al->al_requested = data_blocks + ind_blocks; + ret = gfs2_inplace_reserve(ip); + if (ret) + goto out_quota_unlock; + + rblocks = RES_DINODE + ind_blocks; + if (gfs2_is_jdata(ip)) + rblocks += data_blocks ? data_blocks : 1; + if (ind_blocks || data_blocks) + rblocks += RES_STATFS + RES_QUOTA; + ret = gfs2_trans_begin(sdp, rblocks, 0); + if (ret) + goto out_trans_fail; + + lock_page(page); + ret = -EINVAL; + last_index = ip->i_inode.i_size >> PAGE_CACHE_SHIFT; + if (page->index > last_index) + goto out_unlock_page; + ret = 0; + if (!PageUptodate(page) || page->mapping != ip->i_inode.i_mapping) + goto out_unlock_page; + if (gfs2_is_stuffed(ip)) { + ret = gfs2_unstuff_dinode(ip, page); + if (ret) + goto out_unlock_page; + } + ret = gfs2_allocate_page_backing(page); + +out_unlock_page: + unlock_page(page); + gfs2_trans_end(sdp); +out_trans_fail: + gfs2_inplace_release(ip); +out_quota_unlock: + gfs2_quota_unlock(ip); +out_alloc_put: + gfs2_alloc_put(ip); +out_unlock: + gfs2_glock_dq(&gh); +out: + gfs2_holder_uninit(&gh); + return ret; +} + +static struct vm_operations_struct gfs2_vm_ops = { + .fault = filemap_fault, + .page_mkwrite = gfs2_page_mkwrite, +}; + /** * gfs2_mmap - @@ -360,14 +447,7 @@ return error; } - /* This is VM_MAYWRITE instead of VM_WRITE because a call - to mprotect() can turn on VM_WRITE later. */ - - if ((vma->vm_flags & (VM_MAYSHARE | VM_MAYWRITE)) == - (VM_MAYSHARE | VM_MAYWRITE)) - vma->vm_ops = &gfs2_vm_ops_sharewrite; - else - vma->vm_ops = &gfs2_vm_ops_private; + vma->vm_ops = &gfs2_vm_ops; gfs2_glock_dq_uninit(&i_gh); @@ -538,15 +618,6 @@ if (__mandatory_lock(&ip->i_inode)) return -ENOLCK; - if (sdp->sd_args.ar_localflocks) { - if (IS_GETLK(cmd)) { - posix_test_lock(file, fl); - return 0; - } else { - return posix_lock_file_wait(file, fl); - } - } - if (cmd == F_CANCELLK) { /* Hack: */ cmd = F_SETLK; @@ -632,16 +703,12 @@ static int gfs2_flock(struct file *file, int cmd, struct file_lock *fl) { struct gfs2_inode *ip = GFS2_I(file->f_mapping->host); - struct gfs2_sbd *sdp = GFS2_SB(file->f_mapping->host); if (!(fl->fl_flags & FL_FLOCK)) return -ENOLCK; if (__mandatory_lock(&ip->i_inode)) return -ENOLCK; - if (sdp->sd_args.ar_localflocks) - return flock_lock_file_wait(file, fl); - if (fl->fl_type == F_UNLCK) { do_unflock(file, fl); return 0; @@ -678,3 +745,27 @@ .flock = gfs2_flock, }; +const struct file_operations gfs2_file_fops_nolock = { + .llseek = gfs2_llseek, + .read = do_sync_read, + .aio_read = generic_file_aio_read, + .write = do_sync_write, + .aio_write = generic_file_aio_write, + .unlocked_ioctl = gfs2_ioctl, + .mmap = gfs2_mmap, + .open = gfs2_open, + .release = gfs2_close, + .fsync = gfs2_fsync, + .splice_read = generic_file_splice_read, + .splice_write = generic_file_splice_write, + .setlease = gfs2_setlease, +}; + +const struct file_operations gfs2_dir_fops_nolock = { + .readdir = gfs2_readdir, + .unlocked_ioctl = gfs2_ioctl, + .open = gfs2_open, + .release = gfs2_close, + .fsync = gfs2_fsync, +}; + --- linux-2.6.24.orig/fs/gfs2/trans.c +++ linux-2.6.24/fs/gfs2/trans.c @@ -114,11 +114,6 @@ gfs2_log_flush(sdp, NULL); } -void gfs2_trans_add_gl(struct gfs2_glock *gl) -{ - lops_add(gl->gl_sbd, &gl->gl_le); -} - /** * gfs2_trans_add_bh - Add a to-be-modified buffer to the current transaction * @gl: the glock the buffer belongs to --- linux-2.6.24.orig/fs/gfs2/glock.c +++ linux-2.6.24/fs/gfs2/glock.c @@ -1,6 +1,6 @@ /* * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. - * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions @@ -217,7 +217,6 @@ if (atomic_dec_and_test(&gl->gl_ref)) { hlist_del(&gl->gl_list); write_unlock(gl_lock_addr(gl->gl_hash)); - BUG_ON(spin_is_locked(&gl->gl_spin)); gfs2_assert(sdp, gl->gl_state == LM_ST_UNLOCKED); gfs2_assert(sdp, list_empty(&gl->gl_reclaim)); gfs2_assert(sdp, list_empty(&gl->gl_holders)); @@ -346,7 +345,6 @@ gl->gl_object = NULL; gl->gl_sbd = sdp; gl->gl_aspace = NULL; - lops_init_le(&gl->gl_le, &gfs2_glock_lops); INIT_DELAYED_WORK(&gl->gl_work, glock_work_func); /* If this glock protects actual on-disk data or metadata blocks, @@ -461,7 +459,6 @@ static void gfs2_demote_wake(struct gfs2_glock *gl) { - BUG_ON(!spin_is_locked(&gl->gl_spin)); gl->gl_demote_state = LM_ST_EXCLUSIVE; clear_bit(GLF_DEMOTE, &gl->gl_flags); smp_mb__after_clear_bit(); @@ -507,21 +504,12 @@ static int rq_promote(struct gfs2_holder *gh) { struct gfs2_glock *gl = gh->gh_gl; - struct gfs2_sbd *sdp = gl->gl_sbd; if (!relaxed_state_ok(gl->gl_state, gh->gh_state, gh->gh_flags)) { if (list_empty(&gl->gl_holders)) { gl->gl_req_gh = gh; set_bit(GLF_LOCK, &gl->gl_flags); spin_unlock(&gl->gl_spin); - - if (atomic_read(&sdp->sd_reclaim_count) > - gfs2_tune_get(sdp, gt_reclaim_limit) && - !(gh->gh_flags & LM_FLAG_PRIORITY)) { - gfs2_reclaim_glock(sdp); - gfs2_reclaim_glock(sdp); - } - gfs2_glock_xmote_th(gh->gh_gl, gh); spin_lock(&gl->gl_spin); } @@ -567,7 +555,10 @@ gfs2_demote_wake(gl); return 0; } + set_bit(GLF_LOCK, &gl->gl_flags); + set_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags); + if (gl->gl_demote_state == LM_ST_UNLOCKED || gl->gl_state != LM_ST_EXCLUSIVE) { spin_unlock(&gl->gl_spin); @@ -576,7 +567,9 @@ spin_unlock(&gl->gl_spin); gfs2_glock_xmote_th(gl, NULL); } + spin_lock(&gl->gl_spin); + clear_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags); return 0; } @@ -598,23 +591,18 @@ if (!list_empty(&gl->gl_waiters1)) { gh = list_entry(gl->gl_waiters1.next, struct gfs2_holder, gh_list); - - if (test_bit(HIF_MUTEX, &gh->gh_iflags)) - blocked = rq_mutex(gh); - else - gfs2_assert_warn(gl->gl_sbd, 0); - + blocked = rq_mutex(gh); } else if (test_bit(GLF_DEMOTE, &gl->gl_flags)) { blocked = rq_demote(gl); + if (gl->gl_waiters2 && !blocked) { + set_bit(GLF_DEMOTE, &gl->gl_flags); + gl->gl_demote_state = LM_ST_UNLOCKED; + } + gl->gl_waiters2 = 0; } else if (!list_empty(&gl->gl_waiters3)) { gh = list_entry(gl->gl_waiters3.next, struct gfs2_holder, gh_list); - - if (test_bit(HIF_PROMOTE, &gh->gh_iflags)) - blocked = rq_promote(gh); - else - gfs2_assert_warn(gl->gl_sbd, 0); - + blocked = rq_promote(gh); } else break; @@ -632,27 +620,21 @@ static void gfs2_glmutex_lock(struct gfs2_glock *gl) { - struct gfs2_holder gh; - - gfs2_holder_init(gl, 0, 0, &gh); - set_bit(HIF_MUTEX, &gh.gh_iflags); - if (test_and_set_bit(HIF_WAIT, &gh.gh_iflags)) - BUG(); - spin_lock(&gl->gl_spin); if (test_and_set_bit(GLF_LOCK, &gl->gl_flags)) { + struct gfs2_holder gh; + + gfs2_holder_init(gl, 0, 0, &gh); + set_bit(HIF_WAIT, &gh.gh_iflags); list_add_tail(&gh.gh_list, &gl->gl_waiters1); + spin_unlock(&gl->gl_spin); + wait_on_holder(&gh); + gfs2_holder_uninit(&gh); } else { gl->gl_owner_pid = current->pid; gl->gl_ip = (unsigned long)__builtin_return_address(0); - clear_bit(HIF_WAIT, &gh.gh_iflags); - smp_mb(); - wake_up_bit(&gh.gh_iflags, HIF_WAIT); + spin_unlock(&gl->gl_spin); } - spin_unlock(&gl->gl_spin); - - wait_on_holder(&gh); - gfs2_holder_uninit(&gh); } /** @@ -691,7 +673,6 @@ gl->gl_owner_pid = 0; gl->gl_ip = 0; run_queue(gl); - BUG_ON(!spin_is_locked(&gl->gl_spin)); spin_unlock(&gl->gl_spin); } @@ -722,7 +703,10 @@ } } else if (gl->gl_demote_state != LM_ST_UNLOCKED && gl->gl_demote_state != state) { - gl->gl_demote_state = LM_ST_UNLOCKED; + if (test_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags)) + gl->gl_waiters2 = 1; + else + gl->gl_demote_state = LM_ST_UNLOCKED; } spin_unlock(&gl->gl_spin); } @@ -943,8 +927,8 @@ const struct gfs2_glock_operations *glops = gl->gl_ops; unsigned int ret; - if (glops->go_drop_th) - glops->go_drop_th(gl); + if (glops->go_xmote_th) + glops->go_xmote_th(gl); gfs2_assert_warn(sdp, test_bit(GLF_LOCK, &gl->gl_flags)); gfs2_assert_warn(sdp, list_empty(&gl->gl_holders)); @@ -1156,8 +1140,6 @@ return -EIO; } - set_bit(HIF_PROMOTE, &gh->gh_iflags); - spin_lock(&gl->gl_spin); add_to_queue(gh); run_queue(gl); @@ -1248,12 +1230,11 @@ list_del_init(&gh->gh_list); if (list_empty(&gl->gl_holders)) { - spin_unlock(&gl->gl_spin); - - if (glops->go_unlock) + if (glops->go_unlock) { + spin_unlock(&gl->gl_spin); glops->go_unlock(gh); - - spin_lock(&gl->gl_spin); + spin_lock(&gl->gl_spin); + } gl->gl_stamp = jiffies; } @@ -1910,8 +1891,6 @@ print_dbg(gi, " req_bh = %s\n", (gl->gl_req_bh) ? "yes" : "no"); print_dbg(gi, " lvb_count = %d\n", atomic_read(&gl->gl_lvb_count)); print_dbg(gi, " object = %s\n", (gl->gl_object) ? "yes" : "no"); - print_dbg(gi, " le = %s\n", - (list_empty(&gl->gl_le.le_list)) ? "no" : "yes"); print_dbg(gi, " reclaim = %s\n", (list_empty(&gl->gl_reclaim)) ? "no" : "yes"); if (gl->gl_aspace) --- linux-2.6.24.orig/fs/gfs2/sys.c +++ linux-2.6.24/fs/gfs2/sys.c @@ -32,7 +32,8 @@ static ssize_t id_show(struct gfs2_sbd *sdp, char *buf) { - return snprintf(buf, PAGE_SIZE, "%s\n", sdp->sd_vfs->s_id); + return snprintf(buf, PAGE_SIZE, "%u:%u\n", + MAJOR(sdp->sd_vfs->s_dev), MINOR(sdp->sd_vfs->s_dev)); } static ssize_t fsname_show(struct gfs2_sbd *sdp, char *buf) @@ -427,13 +428,11 @@ TUNE_ATTR(demote_secs, 0); TUNE_ATTR(incore_log_blocks, 0); TUNE_ATTR(log_flush_secs, 0); -TUNE_ATTR(jindex_refresh_secs, 0); TUNE_ATTR(quota_warn_period, 0); TUNE_ATTR(quota_quantum, 0); TUNE_ATTR(atime_quantum, 0); TUNE_ATTR(max_readahead, 0); TUNE_ATTR(complain_secs, 0); -TUNE_ATTR(reclaim_limit, 0); TUNE_ATTR(statfs_slow, 0); TUNE_ATTR(new_files_jdata, 0); TUNE_ATTR(new_files_directio, 0); @@ -450,13 +449,11 @@ &tune_attr_demote_secs.attr, &tune_attr_incore_log_blocks.attr, &tune_attr_log_flush_secs.attr, - &tune_attr_jindex_refresh_secs.attr, &tune_attr_quota_warn_period.attr, &tune_attr_quota_quantum.attr, &tune_attr_atime_quantum.attr, &tune_attr_max_readahead.attr, &tune_attr_complain_secs.attr, - &tune_attr_reclaim_limit.attr, &tune_attr_statfs_slow.attr, &tune_attr_quota_simul_sync.attr, &tune_attr_quota_cache_secs.attr, --- linux-2.6.24.orig/fs/gfs2/lops.c +++ linux-2.6.24/fs/gfs2/lops.c @@ -87,6 +87,7 @@ } bd->bd_ail = ai; list_add(&bd->bd_ail_st_list, &ai->ai_ail1_list); + clear_bit(GLF_LFLUSH, &bd->bd_gl->gl_flags); gfs2_log_unlock(sdp); unlock_buffer(bh); } @@ -124,49 +125,6 @@ return bh; } -static void __glock_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le) -{ - struct gfs2_glock *gl; - struct gfs2_trans *tr = current->journal_info; - - tr->tr_touched = 1; - - gl = container_of(le, struct gfs2_glock, gl_le); - if (gfs2_assert_withdraw(sdp, gfs2_glock_is_held_excl(gl))) - return; - - if (!list_empty(&le->le_list)) - return; - - gfs2_glock_hold(gl); - set_bit(GLF_DIRTY, &gl->gl_flags); - sdp->sd_log_num_gl++; - list_add(&le->le_list, &sdp->sd_log_le_gl); -} - -static void glock_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le) -{ - gfs2_log_lock(sdp); - __glock_lo_add(sdp, le); - gfs2_log_unlock(sdp); -} - -static void glock_lo_after_commit(struct gfs2_sbd *sdp, struct gfs2_ail *ai) -{ - struct list_head *head = &sdp->sd_log_le_gl; - struct gfs2_glock *gl; - - while (!list_empty(head)) { - gl = list_entry(head->next, struct gfs2_glock, gl_le.le_list); - list_del_init(&gl->gl_le.le_list); - sdp->sd_log_num_gl--; - - gfs2_assert_withdraw(sdp, gfs2_glock_is_held_excl(gl)); - gfs2_glock_put(gl); - } - gfs2_assert_warn(sdp, !sdp->sd_log_num_gl); -} - static void buf_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le) { struct gfs2_bufdata *bd = container_of(le, struct gfs2_bufdata, bd_le); @@ -182,7 +140,8 @@ list_add(&bd->bd_list_tr, &tr->tr_list_buf); if (!list_empty(&le->le_list)) goto out; - __glock_lo_add(sdp, &bd->bd_gl->gl_le); + set_bit(GLF_LFLUSH, &bd->bd_gl->gl_flags); + set_bit(GLF_DIRTY, &bd->bd_gl->gl_flags); gfs2_meta_check(sdp, bd->bd_bh); gfs2_pin(sdp, bd->bd_bh); sdp->sd_log_num_buf++; @@ -556,17 +515,20 @@ lock_buffer(bd->bd_bh); gfs2_log_lock(sdp); - if (!list_empty(&bd->bd_list_tr)) - goto out; - tr->tr_touched = 1; - if (gfs2_is_jdata(ip)) { - tr->tr_num_buf++; - list_add(&bd->bd_list_tr, &tr->tr_list_buf); + if (tr) { + if (!list_empty(&bd->bd_list_tr)) + goto out; + tr->tr_touched = 1; + if (gfs2_is_jdata(ip)) { + tr->tr_num_buf++; + list_add(&bd->bd_list_tr, &tr->tr_list_buf); + } } if (!list_empty(&le->le_list)) goto out; - __glock_lo_add(sdp, &bd->bd_gl->gl_le); + set_bit(GLF_LFLUSH, &bd->bd_gl->gl_flags); + set_bit(GLF_DIRTY, &bd->bd_gl->gl_flags); if (gfs2_is_jdata(ip)) { gfs2_pin(sdp, bd->bd_bh); tr->tr_num_databuf_new++; @@ -773,12 +735,6 @@ } -const struct gfs2_log_operations gfs2_glock_lops = { - .lo_add = glock_lo_add, - .lo_after_commit = glock_lo_after_commit, - .lo_name = "glock", -}; - const struct gfs2_log_operations gfs2_buf_lops = { .lo_add = buf_lo_add, .lo_incore_commit = buf_lo_incore_commit, @@ -816,7 +772,6 @@ }; const struct gfs2_log_operations *gfs2_log_ops[] = { - &gfs2_glock_lops, &gfs2_databuf_lops, &gfs2_buf_lops, &gfs2_rg_lops, --- linux-2.6.24.orig/fs/gfs2/daemon.c +++ linux-2.6.24/fs/gfs2/daemon.c @@ -83,56 +83,6 @@ } /** - * gfs2_logd - Update log tail as Active Items get flushed to in-place blocks - * @sdp: Pointer to GFS2 superblock - * - * Also, periodically check to make sure that we're using the most recent - * journal index. - */ - -int gfs2_logd(void *data) -{ - struct gfs2_sbd *sdp = data; - struct gfs2_holder ji_gh; - unsigned long t; - int need_flush; - - while (!kthread_should_stop()) { - /* Advance the log tail */ - - t = sdp->sd_log_flush_time + - gfs2_tune_get(sdp, gt_log_flush_secs) * HZ; - - gfs2_ail1_empty(sdp, DIO_ALL); - gfs2_log_lock(sdp); - need_flush = sdp->sd_log_num_buf > gfs2_tune_get(sdp, gt_incore_log_blocks); - gfs2_log_unlock(sdp); - if (need_flush || time_after_eq(jiffies, t)) { - gfs2_log_flush(sdp, NULL); - sdp->sd_log_flush_time = jiffies; - } - - /* Check for latest journal index */ - - t = sdp->sd_jindex_refresh_time + - gfs2_tune_get(sdp, gt_jindex_refresh_secs) * HZ; - - if (time_after_eq(jiffies, t)) { - if (!gfs2_jindex_hold(sdp, &ji_gh)) - gfs2_glock_dq_uninit(&ji_gh); - sdp->sd_jindex_refresh_time = jiffies; - } - - t = gfs2_tune_get(sdp, gt_logd_secs) * HZ; - if (freezing(current)) - refrigerator(); - schedule_timeout_interruptible(t); - } - - return 0; -} - -/** * gfs2_quotad - Write cached quota changes into the quota file * @sdp: Pointer to GFS2 superblock * --- linux-2.6.24.orig/fs/gfs2/ops_fstype.c +++ linux-2.6.24/fs/gfs2/ops_fstype.c @@ -1,6 +1,6 @@ /* * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. - * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions @@ -21,6 +21,7 @@ #include "gfs2.h" #include "incore.h" +#include "bmap.h" #include "daemon.h" #include "glock.h" #include "glops.h" @@ -59,7 +60,6 @@ mutex_init(&sdp->sd_inum_mutex); spin_lock_init(&sdp->sd_statfs_spin); - mutex_init(&sdp->sd_statfs_mutex); spin_lock_init(&sdp->sd_rindex_spin); mutex_init(&sdp->sd_rindex_mutex); @@ -77,7 +77,6 @@ spin_lock_init(&sdp->sd_log_lock); - INIT_LIST_HEAD(&sdp->sd_log_le_gl); INIT_LIST_HEAD(&sdp->sd_log_le_buf); INIT_LIST_HEAD(&sdp->sd_log_le_revoke); INIT_LIST_HEAD(&sdp->sd_log_le_rg); @@ -303,6 +302,67 @@ return error; } +/** + * map_journal_extents - create a reusable "extent" mapping from all logical + * blocks to all physical blocks for the given journal. This will save + * us time when writing journal blocks. Most journals will have only one + * extent that maps all their logical blocks. That's because gfs2.mkfs + * arranges the journal blocks sequentially to maximize performance. + * So the extent would map the first block for the entire file length. + * However, gfs2_jadd can happen while file activity is happening, so + * those journals may not be sequential. Less likely is the case where + * the users created their own journals by mounting the metafs and + * laying it out. But it's still possible. These journals might have + * several extents. + * + * TODO: This should be done in bigger chunks rather than one block at a time, + * but since it's only done at mount time, I'm not worried about the + * time it takes. + */ +static int map_journal_extents(struct gfs2_sbd *sdp) +{ + struct gfs2_jdesc *jd = sdp->sd_jdesc; + unsigned int lb; + u64 db, prev_db; /* logical block, disk block, prev disk block */ + struct gfs2_inode *ip = GFS2_I(jd->jd_inode); + struct gfs2_journal_extent *jext = NULL; + struct buffer_head bh; + int rc = 0; + + prev_db = 0; + + for (lb = 0; lb < ip->i_di.di_size >> sdp->sd_sb.sb_bsize_shift; lb++) { + bh.b_state = 0; + bh.b_blocknr = 0; + bh.b_size = 1 << ip->i_inode.i_blkbits; + rc = gfs2_block_map(jd->jd_inode, lb, &bh, 0); + db = bh.b_blocknr; + if (rc || !db) { + printk(KERN_INFO "GFS2 journal mapping error %d: lb=" + "%u db=%llu\n", rc, lb, (unsigned long long)db); + break; + } + if (!prev_db || db != prev_db + 1) { + jext = kzalloc(sizeof(struct gfs2_journal_extent), + GFP_KERNEL); + if (!jext) { + printk(KERN_INFO "GFS2 error: out of memory " + "mapping journal extents.\n"); + rc = -ENOMEM; + break; + } + jext->dblock = db; + jext->lblock = lb; + jext->blocks = 1; + list_add_tail(&jext->extent_list, &jd->extent_list); + } else { + jext->blocks++; + } + prev_db = db; + } + return rc; +} + static int init_journal(struct gfs2_sbd *sdp, int undo) { struct gfs2_holder ji_gh; @@ -340,7 +400,7 @@ if (sdp->sd_args.ar_spectator) { sdp->sd_jdesc = gfs2_jdesc_find(sdp, 0); - sdp->sd_log_blks_free = sdp->sd_jdesc->jd_blocks; + atomic_set(&sdp->sd_log_blks_free, sdp->sd_jdesc->jd_blocks); } else { if (sdp->sd_lockstruct.ls_jid >= gfs2_jindex_size(sdp)) { fs_err(sdp, "can't mount journal #%u\n", @@ -377,7 +437,10 @@ sdp->sd_jdesc->jd_jid, error); goto fail_jinode_gh; } - sdp->sd_log_blks_free = sdp->sd_jdesc->jd_blocks; + atomic_set(&sdp->sd_log_blks_free, sdp->sd_jdesc->jd_blocks); + + /* Map the extents for this journal's blocks */ + map_journal_extents(sdp); } if (sdp->sd_lockstruct.ls_first) { --- linux-2.6.24.orig/fs/gfs2/ops_address.c +++ linux-2.6.24/fs/gfs2/ops_address.c @@ -20,6 +20,8 @@ #include #include #include +#include +#include #include "gfs2.h" #include "incore.h" @@ -32,7 +34,6 @@ #include "quota.h" #include "trans.h" #include "rgrp.h" -#include "ops_file.h" #include "super.h" #include "util.h" #include "glops.h" @@ -58,22 +59,6 @@ } /** - * gfs2_get_block - Fills in a buffer head with details about a block - * @inode: The inode - * @lblock: The block number to look up - * @bh_result: The buffer head to return the result in - * @create: Non-zero if we may add block to the file - * - * Returns: errno - */ - -int gfs2_get_block(struct inode *inode, sector_t lblock, - struct buffer_head *bh_result, int create) -{ - return gfs2_block_map(inode, lblock, create, bh_result); -} - -/** * gfs2_get_block_noalloc - Fills in a buffer head with details about a block * @inode: The inode * @lblock: The block number to look up @@ -88,7 +73,7 @@ { int error; - error = gfs2_block_map(inode, lblock, 0, bh_result); + error = gfs2_block_map(inode, lblock, bh_result, 0); if (error) return error; if (!buffer_mapped(bh_result)) @@ -99,20 +84,19 @@ static int gfs2_get_block_direct(struct inode *inode, sector_t lblock, struct buffer_head *bh_result, int create) { - return gfs2_block_map(inode, lblock, 0, bh_result); + return gfs2_block_map(inode, lblock, bh_result, 0); } /** - * gfs2_writepage - Write complete page - * @page: Page to write + * gfs2_writepage_common - Common bits of writepage + * @page: The page to be written + * @wbc: The writeback control * - * Returns: errno - * - * Some of this is copied from block_write_full_page() although we still - * call it to do most of the work. + * Returns: 1 if writepage is ok, otherwise an error code or zero if no error. */ -static int gfs2_writepage(struct page *page, struct writeback_control *wbc) +static int gfs2_writepage_common(struct page *page, + struct writeback_control *wbc) { struct inode *inode = page->mapping->host; struct gfs2_inode *ip = GFS2_I(inode); @@ -120,41 +104,133 @@ loff_t i_size = i_size_read(inode); pgoff_t end_index = i_size >> PAGE_CACHE_SHIFT; unsigned offset; - int error; - int done_trans = 0; + int ret = -EIO; - if (gfs2_assert_withdraw(sdp, gfs2_glock_is_held_excl(ip->i_gl))) { - unlock_page(page); - return -EIO; - } + if (gfs2_assert_withdraw(sdp, gfs2_glock_is_held_excl(ip->i_gl))) + goto out; + ret = 0; if (current->journal_info) - goto out_ignore; - + goto redirty; /* Is the page fully outside i_size? (truncate in progress) */ - offset = i_size & (PAGE_CACHE_SIZE-1); + offset = i_size & (PAGE_CACHE_SIZE-1); if (page->index > end_index || (page->index == end_index && !offset)) { page->mapping->a_ops->invalidatepage(page, 0); - unlock_page(page); - return 0; /* don't care */ + goto out; + } + return 1; +redirty: + redirty_page_for_writepage(wbc, page); +out: + unlock_page(page); + return 0; +} + +/** + * gfs2_writeback_writepage - Write page for writeback mappings + * @page: The page + * @wbc: The writeback control + * + */ + +static int gfs2_writeback_writepage(struct page *page, + struct writeback_control *wbc) +{ + int ret; + + ret = gfs2_writepage_common(page, wbc); + if (ret <= 0) + return ret; + + ret = mpage_writepage(page, gfs2_get_block_noalloc, wbc); + if (ret == -EAGAIN) + ret = block_write_full_page(page, gfs2_get_block_noalloc, wbc); + return ret; +} + +/** + * gfs2_ordered_writepage - Write page for ordered data files + * @page: The page to write + * @wbc: The writeback control + * + */ + +static int gfs2_ordered_writepage(struct page *page, + struct writeback_control *wbc) +{ + struct inode *inode = page->mapping->host; + struct gfs2_inode *ip = GFS2_I(inode); + int ret; + + ret = gfs2_writepage_common(page, wbc); + if (ret <= 0) + return ret; + + if (!page_has_buffers(page)) { + create_empty_buffers(page, inode->i_sb->s_blocksize, + (1 << BH_Dirty)|(1 << BH_Uptodate)); } + gfs2_page_add_databufs(ip, page, 0, inode->i_sb->s_blocksize-1); + return block_write_full_page(page, gfs2_get_block_noalloc, wbc); +} + +/** + * __gfs2_jdata_writepage - The core of jdata writepage + * @page: The page to write + * @wbc: The writeback control + * + * This is shared between writepage and writepages and implements the + * core of the writepage operation. If a transaction is required then + * PageChecked will have been set and the transaction will have + * already been started before this is called. + */ - if ((sdp->sd_args.ar_data == GFS2_DATA_ORDERED || gfs2_is_jdata(ip)) && - PageChecked(page)) { +static int __gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) +{ + struct inode *inode = page->mapping->host; + struct gfs2_inode *ip = GFS2_I(inode); + struct gfs2_sbd *sdp = GFS2_SB(inode); + + if (PageChecked(page)) { ClearPageChecked(page); - error = gfs2_trans_begin(sdp, RES_DINODE + 1, 0); - if (error) - goto out_ignore; if (!page_has_buffers(page)) { create_empty_buffers(page, inode->i_sb->s_blocksize, (1 << BH_Dirty)|(1 << BH_Uptodate)); } gfs2_page_add_databufs(ip, page, 0, sdp->sd_vfs->s_blocksize-1); + } + return block_write_full_page(page, gfs2_get_block_noalloc, wbc); +} + +/** + * gfs2_jdata_writepage - Write complete page + * @page: Page to write + * + * Returns: errno + * + */ + +static int gfs2_jdata_writepage(struct page *page, struct writeback_control *wbc) +{ + struct inode *inode = page->mapping->host; + struct gfs2_sbd *sdp = GFS2_SB(inode); + int error; + int done_trans = 0; + + error = gfs2_writepage_common(page, wbc); + if (error <= 0) + return error; + + if (PageChecked(page)) { + if (wbc->sync_mode != WB_SYNC_ALL) + goto out_ignore; + error = gfs2_trans_begin(sdp, RES_DINODE + 1, 0); + if (error) + goto out_ignore; done_trans = 1; } - error = block_write_full_page(page, gfs2_get_block_noalloc, wbc); + error = __gfs2_jdata_writepage(page, wbc); if (done_trans) gfs2_trans_end(sdp); - gfs2_meta_cache_flush(ip); return error; out_ignore: @@ -164,29 +240,190 @@ } /** - * gfs2_writepages - Write a bunch of dirty pages back to disk + * gfs2_writeback_writepages - Write a bunch of dirty pages back to disk * @mapping: The mapping to write * @wbc: Write-back control * - * For journaled files and/or ordered writes this just falls back to the - * kernel's default writepages path for now. We will probably want to change - * that eventually (i.e. when we look at allocate on flush). - * - * For the data=writeback case though we can already ignore buffer heads + * For the data=writeback case we can already ignore buffer heads * and write whole extents at once. This is a big reduction in the * number of I/O requests we send and the bmap calls we make in this case. */ -static int gfs2_writepages(struct address_space *mapping, - struct writeback_control *wbc) +static int gfs2_writeback_writepages(struct address_space *mapping, + struct writeback_control *wbc) +{ + return mpage_writepages(mapping, wbc, gfs2_get_block_noalloc); +} + +/** + * gfs2_write_jdata_pagevec - Write back a pagevec's worth of pages + * @mapping: The mapping + * @wbc: The writeback control + * @writepage: The writepage function to call for each page + * @pvec: The vector of pages + * @nr_pages: The number of pages to write + * + * Returns: non-zero if loop should terminate, zero otherwise + */ + +static int gfs2_write_jdata_pagevec(struct address_space *mapping, + struct writeback_control *wbc, + struct pagevec *pvec, + int nr_pages, pgoff_t end) { struct inode *inode = mapping->host; - struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_sbd *sdp = GFS2_SB(inode); + loff_t i_size = i_size_read(inode); + pgoff_t end_index = i_size >> PAGE_CACHE_SHIFT; + unsigned offset = i_size & (PAGE_CACHE_SIZE-1); + unsigned nrblocks = nr_pages * (PAGE_CACHE_SIZE/inode->i_sb->s_blocksize); + struct backing_dev_info *bdi = mapping->backing_dev_info; + int i; + int ret; + + ret = gfs2_trans_begin(sdp, nrblocks, 0); + if (ret < 0) + return ret; + + for(i = 0; i < nr_pages; i++) { + struct page *page = pvec->pages[i]; + + lock_page(page); + + if (unlikely(page->mapping != mapping)) { + unlock_page(page); + continue; + } + + if (!wbc->range_cyclic && page->index > end) { + ret = 1; + unlock_page(page); + continue; + } + + if (wbc->sync_mode != WB_SYNC_NONE) + wait_on_page_writeback(page); + + if (PageWriteback(page) || + !clear_page_dirty_for_io(page)) { + unlock_page(page); + continue; + } + + /* Is the page fully outside i_size? (truncate in progress) */ + if (page->index > end_index || (page->index == end_index && !offset)) { + page->mapping->a_ops->invalidatepage(page, 0); + unlock_page(page); + continue; + } + + ret = __gfs2_jdata_writepage(page, wbc); + + if (ret || (--(wbc->nr_to_write) <= 0)) + ret = 1; + if (wbc->nonblocking && bdi_write_congested(bdi)) { + wbc->encountered_congestion = 1; + ret = 1; + } + + } + gfs2_trans_end(sdp); + return ret; +} + +/** + * gfs2_write_cache_jdata - Like write_cache_pages but different + * @mapping: The mapping to write + * @wbc: The writeback control + * @writepage: The writepage function to call + * @data: The data to pass to writepage + * + * The reason that we use our own function here is that we need to + * start transactions before we grab page locks. This allows us + * to get the ordering right. + */ + +static int gfs2_write_cache_jdata(struct address_space *mapping, + struct writeback_control *wbc) +{ + struct backing_dev_info *bdi = mapping->backing_dev_info; + int ret = 0; + int done = 0; + struct pagevec pvec; + int nr_pages; + pgoff_t index; + pgoff_t end; + int scanned = 0; + int range_whole = 0; + + if (wbc->nonblocking && bdi_write_congested(bdi)) { + wbc->encountered_congestion = 1; + return 0; + } + + pagevec_init(&pvec, 0); + if (wbc->range_cyclic) { + index = mapping->writeback_index; /* Start from prev offset */ + end = -1; + } else { + index = wbc->range_start >> PAGE_CACHE_SHIFT; + end = wbc->range_end >> PAGE_CACHE_SHIFT; + if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) + range_whole = 1; + scanned = 1; + } + +retry: + while (!done && (index <= end) && + (nr_pages = pagevec_lookup_tag(&pvec, mapping, &index, + PAGECACHE_TAG_DIRTY, + min(end - index, (pgoff_t)PAGEVEC_SIZE-1) + 1))) { + scanned = 1; + ret = gfs2_write_jdata_pagevec(mapping, wbc, &pvec, nr_pages, end); + if (ret) + done = 1; + if (ret > 0) + ret = 0; + + pagevec_release(&pvec); + cond_resched(); + } + + if (!scanned && !done) { + /* + * We hit the last page and there is more work to be done: wrap + * back to the start of the file + */ + scanned = 1; + index = 0; + goto retry; + } + + if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0)) + mapping->writeback_index = index; + return ret; +} + + +/** + * gfs2_jdata_writepages - Write a bunch of dirty pages back to disk + * @mapping: The mapping to write + * @wbc: The writeback control + * + */ - if (sdp->sd_args.ar_data == GFS2_DATA_WRITEBACK && !gfs2_is_jdata(ip)) - return mpage_writepages(mapping, wbc, gfs2_get_block_noalloc); +static int gfs2_jdata_writepages(struct address_space *mapping, + struct writeback_control *wbc) +{ + struct gfs2_inode *ip = GFS2_I(mapping->host); + struct gfs2_sbd *sdp = GFS2_SB(mapping->host); + int ret; - return generic_writepages(mapping, wbc); + ret = gfs2_write_cache_jdata(mapping, wbc); + if (ret == 0 && wbc->sync_mode == WB_SYNC_ALL) { + gfs2_log_flush(sdp, ip->i_gl); + ret = gfs2_write_cache_jdata(mapping, wbc); + } + return ret; } /** @@ -231,62 +468,107 @@ /** - * gfs2_readpage - readpage with locking - * @file: The file to read a page for. N.B. This may be NULL if we are - * reading an internal file. + * __gfs2_readpage - readpage + * @file: The file to read a page for * @page: The page to read * - * Returns: errno + * This is the core of gfs2's readpage. Its used by the internal file + * reading code as in that case we already hold the glock. Also its + * called by gfs2_readpage() once the required lock has been granted. + * */ -static int gfs2_readpage(struct file *file, struct page *page) +static int __gfs2_readpage(void *file, struct page *page) { struct gfs2_inode *ip = GFS2_I(page->mapping->host); struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); - struct gfs2_file *gf = NULL; - struct gfs2_holder gh; int error; - int do_unlock = 0; - if (likely(file != &gfs2_internal_file_sentinel)) { - if (file) { - gf = file->private_data; - if (test_bit(GFF_EXLOCK, &gf->f_flags)) - /* gfs2_sharewrite_fault has grabbed the ip->i_gl already */ - goto skip_lock; - } - gfs2_holder_init(ip->i_gl, LM_ST_SHARED, GL_ATIME|LM_FLAG_TRY_1CB, &gh); - do_unlock = 1; - error = gfs2_glock_nq_atime(&gh); - if (unlikely(error)) - goto out_unlock; - } - -skip_lock: if (gfs2_is_stuffed(ip)) { error = stuffed_readpage(ip, page); unlock_page(page); - } else - error = mpage_readpage(page, gfs2_get_block); + } else { + error = mpage_readpage(page, gfs2_block_map); + } if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags))) - error = -EIO; + return -EIO; + + return error; +} + +/** + * gfs2_readpage - read a page of a file + * @file: The file to read + * @page: The page of the file + * + * This deals with the locking required. We use a trylock in order to + * avoid the page lock / glock ordering problems returning AOP_TRUNCATED_PAGE + * in the event that we are unable to get the lock. + */ + +static int gfs2_readpage(struct file *file, struct page *page) +{ + struct gfs2_inode *ip = GFS2_I(page->mapping->host); + struct gfs2_holder gh; + int error; - if (do_unlock) { - gfs2_glock_dq_m(1, &gh); - gfs2_holder_uninit(&gh); + gfs2_holder_init(ip->i_gl, LM_ST_SHARED, GL_ATIME|LM_FLAG_TRY_1CB, &gh); + error = gfs2_glock_nq_atime(&gh); + if (unlikely(error)) { + unlock_page(page); + goto out; } + error = __gfs2_readpage(file, page); + gfs2_glock_dq(&gh); out: - return error; -out_unlock: - unlock_page(page); + gfs2_holder_uninit(&gh); if (error == GLR_TRYFAILED) { - error = AOP_TRUNCATED_PAGE; yield(); + return AOP_TRUNCATED_PAGE; } - if (do_unlock) - gfs2_holder_uninit(&gh); - goto out; + return error; +} + +/** + * gfs2_internal_read - read an internal file + * @ip: The gfs2 inode + * @ra_state: The readahead state (or NULL for no readahead) + * @buf: The buffer to fill + * @pos: The file position + * @size: The amount to read + * + */ + +int gfs2_internal_read(struct gfs2_inode *ip, struct file_ra_state *ra_state, + char *buf, loff_t *pos, unsigned size) +{ + struct address_space *mapping = ip->i_inode.i_mapping; + unsigned long index = *pos / PAGE_CACHE_SIZE; + unsigned offset = *pos & (PAGE_CACHE_SIZE - 1); + unsigned copied = 0; + unsigned amt; + struct page *page; + void *p; + + do { + amt = size - copied; + if (offset + size > PAGE_CACHE_SIZE) + amt = PAGE_CACHE_SIZE - offset; + page = read_cache_page(mapping, index, __gfs2_readpage, NULL); + if (IS_ERR(page)) + return PTR_ERR(page); + p = kmap_atomic(page, KM_USER0); + memcpy(buf + copied, p + offset, amt); + kunmap_atomic(p, KM_USER0); + mark_page_accessed(page); + page_cache_release(page); + copied += amt; + index++; + offset = 0; + } while(copied < size); + (*pos) += size; + return size; } /** @@ -300,10 +582,9 @@ * Any I/O we ignore at this time will be done via readpage later. * 2. We don't handle stuffed files here we let readpage do the honours. * 3. mpage_readpages() does most of the heavy lifting in the common case. - * 4. gfs2_get_block() is relied upon to set BH_Boundary in the right places. - * 5. We use LM_FLAG_TRY_1CB here, effectively we then have lock-ahead as - * well as read-ahead. + * 4. gfs2_block_map() is relied upon to set BH_Boundary in the right places. */ + static int gfs2_readpages(struct file *file, struct address_space *mapping, struct list_head *pages, unsigned nr_pages) { @@ -311,42 +592,20 @@ struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_sbd *sdp = GFS2_SB(inode); struct gfs2_holder gh; - int ret = 0; - int do_unlock = 0; + int ret; - if (likely(file != &gfs2_internal_file_sentinel)) { - if (file) { - struct gfs2_file *gf = file->private_data; - if (test_bit(GFF_EXLOCK, &gf->f_flags)) - goto skip_lock; - } - gfs2_holder_init(ip->i_gl, LM_ST_SHARED, - LM_FLAG_TRY_1CB|GL_ATIME, &gh); - do_unlock = 1; - ret = gfs2_glock_nq_atime(&gh); - if (ret == GLR_TRYFAILED) - goto out_noerror; - if (unlikely(ret)) - goto out_unlock; - } -skip_lock: + gfs2_holder_init(ip->i_gl, LM_ST_SHARED, GL_ATIME, &gh); + ret = gfs2_glock_nq_atime(&gh); + if (unlikely(ret)) + goto out_uninit; if (!gfs2_is_stuffed(ip)) - ret = mpage_readpages(mapping, pages, nr_pages, gfs2_get_block); - - if (do_unlock) { - gfs2_glock_dq_m(1, &gh); - gfs2_holder_uninit(&gh); - } -out: + ret = mpage_readpages(mapping, pages, nr_pages, gfs2_block_map); + gfs2_glock_dq(&gh); +out_uninit: + gfs2_holder_uninit(&gh); if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags))) ret = -EIO; return ret; -out_noerror: - ret = 0; -out_unlock: - if (do_unlock) - gfs2_holder_uninit(&gh); - goto out; } /** @@ -382,20 +641,11 @@ if (unlikely(error)) goto out_uninit; - error = -ENOMEM; - page = __grab_cache_page(mapping, index); - *pagep = page; - if (!page) - goto out_unlock; - gfs2_write_calc_reserv(ip, len, &data_blocks, &ind_blocks); - error = gfs2_write_alloc_required(ip, pos, len, &alloc_required); if (error) - goto out_putpage; - + goto out_unlock; - ip->i_alloc.al_requested = 0; if (alloc_required) { al = gfs2_alloc_get(ip); @@ -424,40 +674,47 @@ if (error) goto out_trans_fail; + error = -ENOMEM; + page = __grab_cache_page(mapping, index); + *pagep = page; + if (unlikely(!page)) + goto out_endtrans; + if (gfs2_is_stuffed(ip)) { + error = 0; if (pos + len > sdp->sd_sb.sb_bsize - sizeof(struct gfs2_dinode)) { error = gfs2_unstuff_dinode(ip, page); if (error == 0) goto prepare_write; - } else if (!PageUptodate(page)) + } else if (!PageUptodate(page)) { error = stuffed_readpage(ip, page); + } goto out; } prepare_write: - error = block_prepare_write(page, from, to, gfs2_get_block); - + error = block_prepare_write(page, from, to, gfs2_block_map); out: - if (error) { - gfs2_trans_end(sdp); + if (error == 0) + return 0; + + page_cache_release(page); + if (pos + len > ip->i_inode.i_size) + vmtruncate(&ip->i_inode, ip->i_inode.i_size); +out_endtrans: + gfs2_trans_end(sdp); out_trans_fail: - if (alloc_required) { - gfs2_inplace_release(ip); + if (alloc_required) { + gfs2_inplace_release(ip); out_qunlock: - gfs2_quota_unlock(ip); + gfs2_quota_unlock(ip); out_alloc_put: - gfs2_alloc_put(ip); - } -out_putpage: - page_cache_release(page); - if (pos + len > ip->i_inode.i_size) - vmtruncate(&ip->i_inode, ip->i_inode.i_size); + gfs2_alloc_put(ip); + } out_unlock: - gfs2_glock_dq_m(1, &ip->i_gh); + gfs2_glock_dq(&ip->i_gh); out_uninit: - gfs2_holder_uninit(&ip->i_gh); - } - + gfs2_holder_uninit(&ip->i_gh); return error; } @@ -565,7 +822,7 @@ struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_sbd *sdp = GFS2_SB(inode); struct buffer_head *dibh; - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_dinode *di; unsigned int from = pos & (PAGE_CACHE_SIZE - 1); unsigned int to = from + len; @@ -585,19 +842,16 @@ if (gfs2_is_stuffed(ip)) return gfs2_stuffed_write_end(inode, dibh, pos, len, copied, page); - if (sdp->sd_args.ar_data == GFS2_DATA_ORDERED || gfs2_is_jdata(ip)) + if (!gfs2_is_writeback(ip)) gfs2_page_add_databufs(ip, page, from, to); ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata); - if (likely(ret >= 0)) { - copied = ret; - if ((pos + copied) > inode->i_size) { - di = (struct gfs2_dinode *)dibh->b_data; - ip->i_di.di_size = inode->i_size; - di->di_size = cpu_to_be64(inode->i_size); - mark_inode_dirty(inode); - } + if (likely(ret >= 0) && (inode->i_size > ip->i_di.di_size)) { + di = (struct gfs2_dinode *)dibh->b_data; + ip->i_di.di_size = inode->i_size; + di->di_size = cpu_to_be64(inode->i_size); + mark_inode_dirty(inode); } if (inode == sdp->sd_rindex) @@ -606,7 +860,7 @@ brelse(dibh); gfs2_trans_end(sdp); failed: - if (al->al_requested) { + if (al) { gfs2_inplace_release(ip); gfs2_quota_unlock(ip); gfs2_alloc_put(ip); @@ -625,11 +879,7 @@ static int gfs2_set_page_dirty(struct page *page) { - struct gfs2_inode *ip = GFS2_I(page->mapping->host); - struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); - - if (sdp->sd_args.ar_data == GFS2_DATA_ORDERED || gfs2_is_jdata(ip)) - SetPageChecked(page); + SetPageChecked(page); return __set_page_dirty_buffers(page); } @@ -653,7 +903,7 @@ return 0; if (!gfs2_is_stuffed(ip)) - dblock = generic_block_bmap(mapping, lblock, gfs2_get_block); + dblock = generic_block_bmap(mapping, lblock, gfs2_block_map); gfs2_glock_dq_uninit(&i_gh); @@ -719,13 +969,9 @@ { /* * Should we return an error here? I can't see that O_DIRECT for - * a journaled file makes any sense. For now we'll silently fall - * back to buffered I/O, likewise we do the same for stuffed - * files since they are (a) small and (b) unaligned. + * a stuffed file makes any sense. For now we'll silently fall + * back to buffered I/O */ - if (gfs2_is_jdata(ip)) - return 0; - if (gfs2_is_stuffed(ip)) return 0; @@ -836,9 +1082,23 @@ return 0; } -const struct address_space_operations gfs2_file_aops = { - .writepage = gfs2_writepage, - .writepages = gfs2_writepages, +static const struct address_space_operations gfs2_writeback_aops = { + .writepage = gfs2_writeback_writepage, + .writepages = gfs2_writeback_writepages, + .readpage = gfs2_readpage, + .readpages = gfs2_readpages, + .sync_page = block_sync_page, + .write_begin = gfs2_write_begin, + .write_end = gfs2_write_end, + .bmap = gfs2_bmap, + .invalidatepage = gfs2_invalidatepage, + .releasepage = gfs2_releasepage, + .direct_IO = gfs2_direct_IO, + .migratepage = buffer_migrate_page, +}; + +static const struct address_space_operations gfs2_ordered_aops = { + .writepage = gfs2_ordered_writepage, .readpage = gfs2_readpage, .readpages = gfs2_readpages, .sync_page = block_sync_page, @@ -849,5 +1109,34 @@ .invalidatepage = gfs2_invalidatepage, .releasepage = gfs2_releasepage, .direct_IO = gfs2_direct_IO, + .migratepage = buffer_migrate_page, }; +static const struct address_space_operations gfs2_jdata_aops = { + .writepage = gfs2_jdata_writepage, + .writepages = gfs2_jdata_writepages, + .readpage = gfs2_readpage, + .readpages = gfs2_readpages, + .sync_page = block_sync_page, + .write_begin = gfs2_write_begin, + .write_end = gfs2_write_end, + .set_page_dirty = gfs2_set_page_dirty, + .bmap = gfs2_bmap, + .invalidatepage = gfs2_invalidatepage, + .releasepage = gfs2_releasepage, +}; + +void gfs2_set_aops(struct inode *inode) +{ + struct gfs2_inode *ip = GFS2_I(inode); + + if (gfs2_is_writeback(ip)) + inode->i_mapping->a_ops = &gfs2_writeback_aops; + else if (gfs2_is_ordered(ip)) + inode->i_mapping->a_ops = &gfs2_ordered_aops; + else if (gfs2_is_jdata(ip)) + inode->i_mapping->a_ops = &gfs2_jdata_aops; + else + BUG(); +} + --- linux-2.6.24.orig/fs/gfs2/incore.h +++ linux-2.6.24/fs/gfs2/incore.h @@ -1,6 +1,6 @@ /* * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. - * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions @@ -131,7 +131,6 @@ struct gfs2_glock_operations { void (*go_xmote_th) (struct gfs2_glock *gl); void (*go_xmote_bh) (struct gfs2_glock *gl); - void (*go_drop_th) (struct gfs2_glock *gl); void (*go_inval) (struct gfs2_glock *gl, int flags); int (*go_demote_ok) (struct gfs2_glock *gl); int (*go_lock) (struct gfs2_holder *gh); @@ -141,10 +140,6 @@ }; enum { - /* Actions */ - HIF_MUTEX = 0, - HIF_PROMOTE = 1, - /* States */ HIF_HOLDER = 6, HIF_FIRST = 7, @@ -171,6 +166,8 @@ GLF_DEMOTE = 3, GLF_PENDING_DEMOTE = 4, GLF_DIRTY = 5, + GLF_DEMOTE_IN_PROGRESS = 6, + GLF_LFLUSH = 7, }; struct gfs2_glock { @@ -190,6 +187,7 @@ struct list_head gl_holders; struct list_head gl_waiters1; /* HIF_MUTEX */ struct list_head gl_waiters3; /* HIF_PROMOTE */ + int gl_waiters2; /* GIF_DEMOTE */ const struct gfs2_glock_operations *gl_ops; @@ -210,7 +208,6 @@ struct gfs2_sbd *gl_sbd; struct inode *gl_aspace; - struct gfs2_log_element gl_le; struct list_head gl_ail_list; atomic_t gl_ail_count; struct delayed_work gl_work; @@ -239,7 +236,6 @@ enum { GIF_INVALID = 0, GIF_QD_LOCKED = 1, - GIF_PAGED = 2, GIF_SW_PAGED = 3, }; @@ -268,14 +264,10 @@ struct gfs2_glock *i_gl; /* Move into i_gh? */ struct gfs2_holder i_iopen_gh; struct gfs2_holder i_gh; /* for prepare/commit_write only */ - struct gfs2_alloc i_alloc; + struct gfs2_alloc *i_alloc; u64 i_last_rg_alloc; - spinlock_t i_spin; struct rw_semaphore i_rw_mutex; - unsigned long i_last_pfault; - - struct buffer_head *i_cache[GFS2_MAX_META_HEIGHT]; }; /* @@ -287,19 +279,12 @@ return container_of(inode, struct gfs2_inode, i_inode); } -/* To be removed? */ -static inline struct gfs2_sbd *GFS2_SB(struct inode *inode) +static inline struct gfs2_sbd *GFS2_SB(const struct inode *inode) { return inode->i_sb->s_fs_info; } -enum { - GFF_DID_DIRECT_ALLOC = 0, - GFF_EXLOCK = 1, -}; - struct gfs2_file { - unsigned long f_flags; /* GFF_... */ struct mutex f_fl_mutex; struct gfs2_holder f_fl_gh; }; @@ -373,8 +358,17 @@ u64 ai_sync_gen; }; +struct gfs2_journal_extent { + struct list_head extent_list; + + unsigned int lblock; /* First logical block */ + u64 dblock; /* First disk block */ + u64 blocks; +}; + struct gfs2_jdesc { struct list_head jd_list; + struct list_head extent_list; struct inode *jd_inode; unsigned int jd_jid; @@ -421,13 +415,9 @@ struct gfs2_tune { spinlock_t gt_spin; - unsigned int gt_ilimit; - unsigned int gt_ilimit_tries; - unsigned int gt_ilimit_min; unsigned int gt_demote_secs; /* Cache retention for unheld glock */ unsigned int gt_incore_log_blocks; unsigned int gt_log_flush_secs; - unsigned int gt_jindex_refresh_secs; /* Check for new journal index */ unsigned int gt_recoverd_secs; unsigned int gt_logd_secs; @@ -443,10 +433,8 @@ unsigned int gt_new_files_jdata; unsigned int gt_new_files_directio; unsigned int gt_max_readahead; /* Max bytes to read-ahead from disk */ - unsigned int gt_lockdump_size; unsigned int gt_stall_secs; /* Detects trouble! */ unsigned int gt_complain_secs; - unsigned int gt_reclaim_limit; /* Max num of glocks in reclaim list */ unsigned int gt_statfs_quantum; unsigned int gt_statfs_slow; }; @@ -539,7 +527,6 @@ /* StatFS stuff */ spinlock_t sd_statfs_spin; - struct mutex sd_statfs_mutex; struct gfs2_statfs_change_host sd_statfs_master; struct gfs2_statfs_change_host sd_statfs_local; unsigned long sd_statfs_sync_time; @@ -602,20 +589,18 @@ unsigned int sd_log_commited_databuf; unsigned int sd_log_commited_revoke; - unsigned int sd_log_num_gl; unsigned int sd_log_num_buf; unsigned int sd_log_num_revoke; unsigned int sd_log_num_rg; unsigned int sd_log_num_databuf; - struct list_head sd_log_le_gl; struct list_head sd_log_le_buf; struct list_head sd_log_le_revoke; struct list_head sd_log_le_rg; struct list_head sd_log_le_databuf; struct list_head sd_log_le_ordered; - unsigned int sd_log_blks_free; + atomic_t sd_log_blks_free; struct mutex sd_log_reserve_mutex; u64 sd_log_sequence; --- linux-2.6.24.orig/fs/gfs2/quota.c +++ linux-2.6.24/fs/gfs2/quota.c @@ -1,6 +1,6 @@ /* * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. - * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions @@ -59,7 +59,6 @@ #include "super.h" #include "trans.h" #include "inode.h" -#include "ops_file.h" #include "ops_address.h" #include "util.h" @@ -274,10 +273,10 @@ } block = qd->qd_slot / sdp->sd_qc_per_block; - offset = qd->qd_slot % sdp->sd_qc_per_block;; + offset = qd->qd_slot % sdp->sd_qc_per_block; bh_map.b_size = 1 << ip->i_inode.i_blkbits; - error = gfs2_block_map(&ip->i_inode, block, 0, &bh_map); + error = gfs2_block_map(&ip->i_inode, block, &bh_map, 0); if (error) goto fail; error = gfs2_meta_read(ip->i_gl, bh_map.b_blocknr, DIO_WAIT, &bh); @@ -454,7 +453,7 @@ int gfs2_quota_hold(struct gfs2_inode *ip, u32 uid, u32 gid) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_quota_data **qd = al->al_qd; int error; @@ -502,7 +501,7 @@ void gfs2_quota_unhold(struct gfs2_inode *ip) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; unsigned int x; gfs2_assert_warn(sdp, !test_bit(GIF_QD_LOCKED, &ip->i_flags)); @@ -646,7 +645,7 @@ } if (!buffer_mapped(bh)) { - gfs2_get_block(inode, iblock, bh, 1); + gfs2_block_map(inode, iblock, bh, 1); if (!buffer_mapped(bh)) goto unlock; } @@ -793,11 +792,9 @@ struct gfs2_holder i_gh; struct gfs2_quota_host q; char buf[sizeof(struct gfs2_quota)]; - struct file_ra_state ra_state; int error; struct gfs2_quota_lvb *qlvb; - file_ra_state_init(&ra_state, sdp->sd_quota_inode->i_mapping); restart: error = gfs2_glock_nq_init(qd->qd_gl, LM_ST_SHARED, 0, q_gh); if (error) @@ -820,8 +817,8 @@ memset(buf, 0, sizeof(struct gfs2_quota)); pos = qd2offset(qd); - error = gfs2_internal_read(ip, &ra_state, buf, - &pos, sizeof(struct gfs2_quota)); + error = gfs2_internal_read(ip, NULL, buf, &pos, + sizeof(struct gfs2_quota)); if (error < 0) goto fail_gunlock; @@ -856,7 +853,7 @@ int gfs2_quota_lock(struct gfs2_inode *ip, u32 uid, u32 gid) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; unsigned int x; int error = 0; @@ -924,7 +921,7 @@ void gfs2_quota_unlock(struct gfs2_inode *ip) { - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_quota_data *qda[4]; unsigned int count = 0; unsigned int x; @@ -972,7 +969,7 @@ int gfs2_quota_check(struct gfs2_inode *ip, u32 uid, u32 gid) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_quota_data *qd; s64 value; unsigned int x; @@ -1016,10 +1013,9 @@ void gfs2_quota_change(struct gfs2_inode *ip, s64 change, u32 uid, u32 gid) { - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_quota_data *qd; unsigned int x; - unsigned int found = 0; if (gfs2_assert_warn(GFS2_SB(&ip->i_inode), change)) return; @@ -1032,7 +1028,6 @@ if ((qd->qd_id == uid && test_bit(QDF_USER, &qd->qd_flags)) || (qd->qd_id == gid && !test_bit(QDF_USER, &qd->qd_flags))) { do_qc(qd, change); - found++; } } } --- linux-2.6.24.orig/fs/gfs2/inode.c +++ linux-2.6.24/fs/gfs2/inode.c @@ -31,7 +31,6 @@ #include "log.h" #include "meta_io.h" #include "ops_address.h" -#include "ops_file.h" #include "ops_inode.h" #include "quota.h" #include "rgrp.h" @@ -132,15 +131,21 @@ void gfs2_set_iop(struct inode *inode) { + struct gfs2_sbd *sdp = GFS2_SB(inode); umode_t mode = inode->i_mode; if (S_ISREG(mode)) { inode->i_op = &gfs2_file_iops; - inode->i_fop = &gfs2_file_fops; - inode->i_mapping->a_ops = &gfs2_file_aops; + if (sdp->sd_args.ar_localflocks) + inode->i_fop = &gfs2_file_fops_nolock; + else + inode->i_fop = &gfs2_file_fops; } else if (S_ISDIR(mode)) { inode->i_op = &gfs2_dir_iops; - inode->i_fop = &gfs2_dir_fops; + if (sdp->sd_args.ar_localflocks) + inode->i_fop = &gfs2_dir_fops_nolock; + else + inode->i_fop = &gfs2_dir_fops; } else if (S_ISLNK(mode)) { inode->i_op = &gfs2_symlink_iops; } else { @@ -291,12 +296,10 @@ di->di_entries = be32_to_cpu(str->di_entries); di->di_eattr = be64_to_cpu(str->di_eattr); - return 0; -} + if (S_ISREG(ip->i_inode.i_mode)) + gfs2_set_aops(&ip->i_inode); -static void gfs2_inode_bh(struct gfs2_inode *ip, struct buffer_head *bh) -{ - ip->i_cache[0] = bh; + return 0; } /** @@ -366,7 +369,8 @@ if (error) goto out_rg_gunlock; - gfs2_trans_add_gl(ip->i_gl); + set_bit(GLF_DIRTY, &ip->i_gl->gl_flags); + set_bit(GLF_LFLUSH, &ip->i_gl->gl_flags); gfs2_free_di(rgd, ip); @@ -707,9 +711,10 @@ struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode); int error; - gfs2_alloc_get(dip); + if (gfs2_alloc_get(dip) == NULL) + return -ENOMEM; - dip->i_alloc.al_requested = RES_DINODE; + dip->i_alloc->al_requested = RES_DINODE; error = gfs2_inplace_reserve(dip); if (error) goto out; @@ -855,7 +860,7 @@ error = alloc_required = gfs2_diradd_alloc_required(&dip->i_inode, name); if (alloc_required < 0) - goto fail; + goto fail_quota_locks; if (alloc_required) { error = gfs2_quota_check(dip, dip->i_inode.i_uid, dip->i_inode.i_gid); if (error) @@ -896,7 +901,7 @@ gfs2_trans_end(sdp); fail_ipreserv: - if (dip->i_alloc.al_rgd) + if (dip->i_alloc->al_rgd) gfs2_inplace_release(dip); fail_quota_locks: @@ -966,7 +971,7 @@ struct gfs2_inum_host inum = { .no_addr = 0, .no_formal_ino = 0 }; int error; u64 generation; - struct buffer_head *bh=NULL; + struct buffer_head *bh = NULL; if (!name->len || name->len > GFS2_FNAMESIZE) return ERR_PTR(-ENAMETOOLONG); @@ -1003,8 +1008,6 @@ if (IS_ERR(inode)) goto fail_gunlock2; - gfs2_inode_bh(GFS2_I(inode), bh); - error = gfs2_inode_refresh(GFS2_I(inode)); if (error) goto fail_gunlock2; @@ -1021,6 +1024,8 @@ if (error) goto fail_gunlock2; + if (bh) + brelse(bh); if (!inode) return ERR_PTR(-ENOMEM); return inode; @@ -1032,6 +1037,8 @@ fail_gunlock: gfs2_glock_dq(ghs); fail: + if (bh) + brelse(bh); return ERR_PTR(error); } --- linux-2.6.24.orig/fs/gfs2/meta_io.c +++ linux-2.6.24/fs/gfs2/meta_io.c @@ -50,6 +50,7 @@ static const struct address_space_operations aspace_aops = { .writepage = gfs2_aspace_writepage, .releasepage = gfs2_releasepage, + .sync_page = block_sync_page, }; /** @@ -221,13 +222,14 @@ struct buffer_head **bhp) { *bhp = getbuf(gl, blkno, CREATE); - if (!buffer_uptodate(*bhp)) + if (!buffer_uptodate(*bhp)) { ll_rw_block(READ_META, 1, bhp); - if (flags & DIO_WAIT) { - int error = gfs2_meta_wait(gl->gl_sbd, *bhp); - if (error) { - brelse(*bhp); - return error; + if (flags & DIO_WAIT) { + int error = gfs2_meta_wait(gl->gl_sbd, *bhp); + if (error) { + brelse(*bhp); + return error; + } } } @@ -282,7 +284,7 @@ return; } - bd = kmem_cache_zalloc(gfs2_bufdata_cachep, GFP_NOFS | __GFP_NOFAIL), + bd = kmem_cache_zalloc(gfs2_bufdata_cachep, GFP_NOFS | __GFP_NOFAIL); bd->bd_bh = bh; bd->bd_gl = gl; @@ -317,7 +319,7 @@ } if (bd) { if (bd->bd_ail) { - gfs2_remove_from_ail(NULL, bd); + gfs2_remove_from_ail(bd); bh->b_private = NULL; bd->bd_bh = NULL; bd->bd_blkno = bh->b_blocknr; @@ -358,32 +360,6 @@ } /** - * gfs2_meta_cache_flush - get rid of any references on buffers for this inode - * @ip: The GFS2 inode - * - * This releases buffers that are in the most-recently-used array of - * blocks used for indirect block addressing for this inode. - */ - -void gfs2_meta_cache_flush(struct gfs2_inode *ip) -{ - struct buffer_head **bh_slot; - unsigned int x; - - spin_lock(&ip->i_spin); - - for (x = 0; x < GFS2_MAX_META_HEIGHT; x++) { - bh_slot = &ip->i_cache[x]; - if (*bh_slot) { - brelse(*bh_slot); - *bh_slot = NULL; - } - } - - spin_unlock(&ip->i_spin); -} - -/** * gfs2_meta_indirect_buffer - Get a metadata buffer * @ip: The GFS2 inode * @height: The level of this buf in the metadata (indir addr) tree (if any) @@ -391,8 +367,6 @@ * @new: Non-zero if we may create a new buffer * @bhp: the buffer is returned here * - * Try to use the gfs2_inode's MRU metadata tree cache. - * * Returns: errno */ @@ -401,58 +375,25 @@ { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); struct gfs2_glock *gl = ip->i_gl; - struct buffer_head *bh = NULL, **bh_slot = ip->i_cache + height; - int in_cache = 0; - - BUG_ON(!gl); - BUG_ON(!sdp); - - spin_lock(&ip->i_spin); - if (*bh_slot && (*bh_slot)->b_blocknr == num) { - bh = *bh_slot; - get_bh(bh); - in_cache = 1; - } - spin_unlock(&ip->i_spin); - - if (!bh) - bh = getbuf(gl, num, CREATE); - - if (!bh) - return -ENOBUFS; + struct buffer_head *bh; + int ret = 0; if (new) { - if (gfs2_assert_warn(sdp, height)) - goto err; - meta_prep_new(bh); + BUG_ON(height == 0); + bh = gfs2_meta_new(gl, num); gfs2_trans_add_bh(ip->i_gl, bh, 1); gfs2_metatype_set(bh, GFS2_METATYPE_IN, GFS2_FORMAT_IN); gfs2_buffer_clear_tail(bh, sizeof(struct gfs2_meta_header)); } else { u32 mtype = height ? GFS2_METATYPE_IN : GFS2_METATYPE_DI; - if (!buffer_uptodate(bh)) { - ll_rw_block(READ_META, 1, &bh); - if (gfs2_meta_wait(sdp, bh)) - goto err; + ret = gfs2_meta_read(gl, num, DIO_WAIT, &bh); + if (ret == 0 && gfs2_metatype_check(sdp, bh, mtype)) { + brelse(bh); + ret = -EIO; } - if (gfs2_metatype_check(sdp, bh, mtype)) - goto err; - } - - if (!in_cache) { - spin_lock(&ip->i_spin); - if (*bh_slot) - brelse(*bh_slot); - *bh_slot = bh; - get_bh(bh); - spin_unlock(&ip->i_spin); } - *bhp = bh; - return 0; -err: - brelse(bh); - return -EIO; + return ret; } /** --- linux-2.6.24.orig/fs/gfs2/Makefile +++ linux-2.6.24/fs/gfs2/Makefile @@ -2,7 +2,7 @@ gfs2-y := acl.o bmap.o daemon.o dir.o eaops.o eattr.o glock.o \ glops.o inode.o lm.o log.o lops.o locking.o main.o meta_io.o \ mount.o ops_address.o ops_dentry.o ops_export.o ops_file.o \ - ops_fstype.o ops_inode.o ops_super.o ops_vm.o quota.o \ + ops_fstype.o ops_inode.o ops_super.o quota.o \ recovery.o rgrp.o super.o sys.o trans.o util.o obj-$(CONFIG_GFS2_FS_LOCKING_NOLOCK) += locking/nolock/ --- linux-2.6.24.orig/fs/gfs2/rgrp.c +++ linux-2.6.24/fs/gfs2/rgrp.c @@ -14,6 +14,7 @@ #include #include #include +#include #include "gfs2.h" #include "incore.h" @@ -25,14 +26,24 @@ #include "rgrp.h" #include "super.h" #include "trans.h" -#include "ops_file.h" #include "util.h" #include "log.h" #include "inode.h" +#include "ops_address.h" #define BFITNOENT ((u32)~0) #define NO_BLOCK ((u64)~0) +#if BITS_PER_LONG == 32 +#define LBITMASK (0x55555555UL) +#define LBITSKIP55 (0x55555555UL) +#define LBITSKIP00 (0x00000000UL) +#else +#define LBITMASK (0x5555555555555555UL) +#define LBITSKIP55 (0x5555555555555555UL) +#define LBITSKIP00 (0x0000000000000000UL) +#endif + /* * These routines are used by the resource group routines (rgrp.c) * to keep track of block allocation. Each block is represented by two @@ -126,45 +137,66 @@ * Return: the block number (bitmap buffer scope) that was found */ -static u32 gfs2_bitfit(struct gfs2_rgrpd *rgd, unsigned char *buffer, - unsigned int buflen, u32 goal, - unsigned char old_state) +static u32 gfs2_bitfit(const u8 *buffer, unsigned int buflen, u32 goal, + u8 old_state) { - unsigned char *byte, *end, alloc; - u32 blk = goal; - unsigned int bit; - - byte = buffer + (goal / GFS2_NBBY); - bit = (goal % GFS2_NBBY) * GFS2_BIT_SIZE; + const u8 *byte, *start, *end; + int bit, startbit; + u32 g1, g2, misaligned; + unsigned long *plong; + unsigned long lskipval; + + lskipval = (old_state & GFS2_BLKST_USED) ? LBITSKIP00 : LBITSKIP55; + g1 = (goal / GFS2_NBBY); + start = buffer + g1; + byte = start; end = buffer + buflen; - alloc = (old_state == GFS2_BLKST_FREE) ? 0x55 : 0; - + g2 = ALIGN(g1, sizeof(unsigned long)); + plong = (unsigned long *)(buffer + g2); + startbit = bit = (goal % GFS2_NBBY) * GFS2_BIT_SIZE; + misaligned = g2 - g1; + if (!misaligned) + goto ulong_aligned; +/* parse the bitmap a byte at a time */ +misaligned: while (byte < end) { - /* If we're looking for a free block we can eliminate all - bitmap settings with 0x55, which represents four data - blocks in a row. If we're looking for a data block, we can - eliminate 0x00 which corresponds to four free blocks. */ - if ((*byte & 0x55) == alloc) { - blk += (8 - bit) >> 1; - - bit = 0; - byte++; - - continue; + if (((*byte >> bit) & GFS2_BIT_MASK) == old_state) { + return goal + + (((byte - start) * GFS2_NBBY) + + ((bit - startbit) >> 1)); } - - if (((*byte >> bit) & GFS2_BIT_MASK) == old_state) - return blk; - bit += GFS2_BIT_SIZE; - if (bit >= 8) { + if (bit >= GFS2_NBBY * GFS2_BIT_SIZE) { bit = 0; byte++; + misaligned--; + if (!misaligned) { + plong = (unsigned long *)byte; + goto ulong_aligned; + } } - - blk++; } + return BFITNOENT; +/* parse the bitmap a unsigned long at a time */ +ulong_aligned: + /* Stop at "end - 1" or else prefetch can go past the end and segfault. + We could "if" it but we'd lose some of the performance gained. + This way will only slow down searching the very last 4/8 bytes + depending on architecture. I've experimented with several ways + of writing this section such as using an else before the goto + but this one seems to be the fastest. */ + while ((unsigned char *)plong < end - sizeof(unsigned long)) { + prefetch(plong + 1); + if (((*plong) & LBITMASK) != lskipval) + break; + plong++; + } + if ((unsigned char *)plong < end) { + byte = (const u8 *)plong; + misaligned += sizeof(unsigned long) - 1; + goto misaligned; + } return BFITNOENT; } @@ -817,11 +849,9 @@ struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip) { - struct gfs2_alloc *al = &ip->i_alloc; - - /* FIXME: Should assert that the correct locks are held here... */ - memset(al, 0, sizeof(*al)); - return al; + BUG_ON(ip->i_alloc != NULL); + ip->i_alloc = kzalloc(sizeof(struct gfs2_alloc), GFP_KERNEL); + return ip->i_alloc; } /** @@ -1059,26 +1089,34 @@ struct inode *inode = NULL; struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); struct gfs2_rgrpd *rgd, *begin = NULL; - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; int flags = LM_FLAG_TRY; int skipped = 0; int loops = 0; - int error; + int error, rg_locked; /* Try recently successful rgrps */ rgd = recent_rgrp_first(sdp, ip->i_last_rg_alloc); while (rgd) { - error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, - LM_FLAG_TRY, &al->al_rgd_gh); + rg_locked = 0; + + if (gfs2_glock_is_locked_by_me(rgd->rd_gl)) { + rg_locked = 1; + error = 0; + } else { + error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, + LM_FLAG_TRY, &al->al_rgd_gh); + } switch (error) { case 0: if (try_rgrp_fit(rgd, al)) goto out; if (rgd->rd_flags & GFS2_RDF_CHECK) inode = try_rgrp_unlink(rgd, last_unlinked); - gfs2_glock_dq_uninit(&al->al_rgd_gh); + if (!rg_locked) + gfs2_glock_dq_uninit(&al->al_rgd_gh); if (inode) return inode; rgd = recent_rgrp_next(rgd, 1); @@ -1098,15 +1136,23 @@ begin = rgd = forward_rgrp_get(sdp); for (;;) { - error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, flags, - &al->al_rgd_gh); + rg_locked = 0; + + if (gfs2_glock_is_locked_by_me(rgd->rd_gl)) { + rg_locked = 1; + error = 0; + } else { + error = gfs2_glock_nq_init(rgd->rd_gl, LM_ST_EXCLUSIVE, flags, + &al->al_rgd_gh); + } switch (error) { case 0: if (try_rgrp_fit(rgd, al)) goto out; if (rgd->rd_flags & GFS2_RDF_CHECK) inode = try_rgrp_unlink(rgd, last_unlinked); - gfs2_glock_dq_uninit(&al->al_rgd_gh); + if (!rg_locked) + gfs2_glock_dq_uninit(&al->al_rgd_gh); if (inode) return inode; break; @@ -1158,7 +1204,7 @@ int gfs2_inplace_reserve_i(struct gfs2_inode *ip, char *file, unsigned int line) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct inode *inode; int error = 0; u64 last_unlinked = NO_BLOCK; @@ -1204,7 +1250,7 @@ void gfs2_inplace_release(struct gfs2_inode *ip) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; if (gfs2_assert_warn(sdp, al->al_alloced <= al->al_requested) == -1) fs_warn(sdp, "al_alloced = %u, al_requested = %u " @@ -1213,7 +1259,8 @@ al->al_line); al->al_rgd = NULL; - gfs2_glock_dq_uninit(&al->al_rgd_gh); + if (al->al_rgd_gh.gh_gl) + gfs2_glock_dq_uninit(&al->al_rgd_gh); if (ip != GFS2_I(sdp->sd_rindex)) gfs2_glock_dq_uninit(&al->al_ri_gh); } @@ -1301,11 +1348,10 @@ /* The GFS2_BLKST_UNLINKED state doesn't apply to the clone bitmaps, so we must search the originals for that. */ if (old_state != GFS2_BLKST_UNLINKED && bi->bi_clone) - blk = gfs2_bitfit(rgd, bi->bi_clone + bi->bi_offset, + blk = gfs2_bitfit(bi->bi_clone + bi->bi_offset, bi->bi_len, goal, old_state); else - blk = gfs2_bitfit(rgd, - bi->bi_bh->b_data + bi->bi_offset, + blk = gfs2_bitfit(bi->bi_bh->b_data + bi->bi_offset, bi->bi_len, goal, old_state); if (blk != BFITNOENT) break; @@ -1394,7 +1440,7 @@ u64 gfs2_alloc_data(struct gfs2_inode *ip) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_rgrpd *rgd = al->al_rgd; u32 goal, blk; u64 block; @@ -1439,7 +1485,7 @@ u64 gfs2_alloc_meta(struct gfs2_inode *ip) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_rgrpd *rgd = al->al_rgd; u32 goal, blk; u64 block; @@ -1485,7 +1531,7 @@ u64 gfs2_alloc_di(struct gfs2_inode *dip, u64 *generation) { struct gfs2_sbd *sdp = GFS2_SB(&dip->i_inode); - struct gfs2_alloc *al = &dip->i_alloc; + struct gfs2_alloc *al = dip->i_alloc; struct gfs2_rgrpd *rgd = al->al_rgd; u32 blk; u64 block; --- linux-2.6.24.orig/fs/gfs2/daemon.h +++ linux-2.6.24/fs/gfs2/daemon.h @@ -12,7 +12,6 @@ int gfs2_glockd(void *data); int gfs2_recoverd(void *data); -int gfs2_logd(void *data); int gfs2_quotad(void *data); #endif /* __DAEMON_DOT_H__ */ --- linux-2.6.24.orig/fs/gfs2/ops_address.h +++ linux-2.6.24/fs/gfs2/ops_address.h @@ -14,9 +14,10 @@ #include #include -extern const struct address_space_operations gfs2_file_aops; -extern int gfs2_get_block(struct inode *inode, sector_t lblock, - struct buffer_head *bh_result, int create); extern int gfs2_releasepage(struct page *page, gfp_t gfp_mask); +extern int gfs2_internal_read(struct gfs2_inode *ip, + struct file_ra_state *ra_state, + char *buf, loff_t *pos, unsigned size); +extern void gfs2_set_aops(struct inode *inode); #endif /* __OPS_ADDRESS_DOT_H__ */ --- linux-2.6.24.orig/fs/gfs2/bmap.h +++ linux-2.6.24/fs/gfs2/bmap.h @@ -15,7 +15,7 @@ struct page; int gfs2_unstuff_dinode(struct gfs2_inode *ip, struct page *page); -int gfs2_block_map(struct inode *inode, u64 lblock, int create, struct buffer_head *bh); +int gfs2_block_map(struct inode *inode, sector_t lblock, struct buffer_head *bh, int create); int gfs2_extent_map(struct inode *inode, u64 lblock, int *new, u64 *dblock, unsigned *extlen); int gfs2_truncatei(struct gfs2_inode *ip, u64 size); --- linux-2.6.24.orig/fs/gfs2/super.c +++ linux-2.6.24/fs/gfs2/super.c @@ -1,6 +1,6 @@ /* * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. - * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions @@ -51,13 +51,9 @@ { spin_lock_init(>->gt_spin); - gt->gt_ilimit = 100; - gt->gt_ilimit_tries = 3; - gt->gt_ilimit_min = 1; gt->gt_demote_secs = 300; gt->gt_incore_log_blocks = 1024; gt->gt_log_flush_secs = 60; - gt->gt_jindex_refresh_secs = 60; gt->gt_recoverd_secs = 60; gt->gt_logd_secs = 1; gt->gt_quotad_secs = 5; @@ -71,10 +67,8 @@ gt->gt_new_files_jdata = 0; gt->gt_new_files_directio = 0; gt->gt_max_readahead = 1 << 18; - gt->gt_lockdump_size = 131072; gt->gt_stall_secs = 600; gt->gt_complain_secs = 10; - gt->gt_reclaim_limit = 5000; gt->gt_statfs_quantum = 30; gt->gt_statfs_slow = 0; } @@ -393,6 +387,7 @@ if (!jd) break; + INIT_LIST_HEAD(&jd->extent_list); jd->jd_inode = gfs2_lookupi(sdp->sd_jindex, &name, 1, NULL); if (!jd->jd_inode || IS_ERR(jd->jd_inode)) { if (!jd->jd_inode) @@ -422,8 +417,9 @@ void gfs2_jindex_free(struct gfs2_sbd *sdp) { - struct list_head list; + struct list_head list, *head; struct gfs2_jdesc *jd; + struct gfs2_journal_extent *jext; spin_lock(&sdp->sd_jindex_spin); list_add(&list, &sdp->sd_jindex_list); @@ -433,6 +429,14 @@ while (!list_empty(&list)) { jd = list_entry(list.next, struct gfs2_jdesc, jd_list); + head = &jd->extent_list; + while (!list_empty(head)) { + jext = list_entry(head->next, + struct gfs2_journal_extent, + extent_list); + list_del(&jext->extent_list); + kfree(jext); + } list_del(&jd->jd_list); iput(jd->jd_inode); kfree(jd); @@ -543,7 +547,6 @@ if (error) return error; - gfs2_meta_cache_flush(ip); j_gl->gl_ops->go_inval(j_gl, DIO_METADATA); error = gfs2_find_jhead(sdp->sd_jdesc, &head); @@ -686,9 +689,7 @@ if (error) return; - mutex_lock(&sdp->sd_statfs_mutex); gfs2_trans_add_bh(l_ip->i_gl, l_bh, 1); - mutex_unlock(&sdp->sd_statfs_mutex); spin_lock(&sdp->sd_statfs_spin); l_sc->sc_total += total; @@ -736,9 +737,7 @@ if (error) goto out_bh2; - mutex_lock(&sdp->sd_statfs_mutex); gfs2_trans_add_bh(l_ip->i_gl, l_bh, 1); - mutex_unlock(&sdp->sd_statfs_mutex); spin_lock(&sdp->sd_statfs_spin); m_sc->sc_total += l_sc->sc_total; --- linux-2.6.24.orig/fs/gfs2/locking/dlm/plock.c +++ linux-2.6.24/fs/gfs2/locking/dlm/plock.c @@ -89,15 +89,19 @@ op->info.number = name->ln_number; op->info.start = fl->fl_start; op->info.end = fl->fl_end; - op->info.owner = (__u64)(long) fl->fl_owner; if (fl->fl_lmops && fl->fl_lmops->fl_grant) { + /* fl_owner is lockd which doesn't distinguish + processes on the nfs client */ + op->info.owner = (__u64) fl->fl_pid; xop->callback = fl->fl_lmops->fl_grant; locks_init_lock(&xop->flc); locks_copy_lock(&xop->flc, fl); xop->fl = fl; xop->file = file; - } else + } else { + op->info.owner = (__u64)(long) fl->fl_owner; xop->callback = NULL; + } send_op(op); @@ -203,7 +207,10 @@ op->info.number = name->ln_number; op->info.start = fl->fl_start; op->info.end = fl->fl_end; - op->info.owner = (__u64)(long) fl->fl_owner; + if (fl->fl_lmops && fl->fl_lmops->fl_grant) + op->info.owner = (__u64) fl->fl_pid; + else + op->info.owner = (__u64)(long) fl->fl_owner; send_op(op); wait_event(recv_wq, (op->done != 0)); @@ -242,7 +249,10 @@ op->info.number = name->ln_number; op->info.start = fl->fl_start; op->info.end = fl->fl_end; - op->info.owner = (__u64)(long) fl->fl_owner; + if (fl->fl_lmops && fl->fl_lmops->fl_grant) + op->info.owner = (__u64) fl->fl_pid; + else + op->info.owner = (__u64)(long) fl->fl_owner; send_op(op); wait_event(recv_wq, (op->done != 0)); --- linux-2.6.24.orig/fs/gfs2/locking/dlm/mount.c +++ linux-2.6.24/fs/gfs2/locking/dlm/mount.c @@ -67,6 +67,11 @@ memset(data, 0, 256); strncpy(data, data_arg, 255); + if (!strlen(data)) { + log_error("no mount options, (u)mount helpers not installed"); + return -EINVAL; + } + for (options = data; (x = strsep(&options, ":")); ) { if (!*x) continue; --- linux-2.6.24.orig/fs/gfs2/locking/dlm/thread.c +++ linux-2.6.24/fs/gfs2/locking/dlm/thread.c @@ -273,18 +273,13 @@ struct gdlm_ls *ls = (struct gdlm_ls *) data; struct gdlm_lock *lp = NULL; uint8_t complete, blocking, submit, drop; - DECLARE_WAITQUEUE(wait, current); /* Only thread1 is allowed to do blocking callbacks since gfs may wait for a completion callback within a blocking cb. */ while (!kthread_should_stop()) { - set_current_state(TASK_INTERRUPTIBLE); - add_wait_queue(&ls->thread_wait, &wait); - if (no_work(ls, blist)) - schedule(); - remove_wait_queue(&ls->thread_wait, &wait); - set_current_state(TASK_RUNNING); + wait_event_interruptible(ls->thread_wait, + !no_work(ls, blist) || kthread_should_stop()); complete = blocking = submit = drop = 0; --- linux-2.6.24.orig/fs/gfs2/rgrp.h +++ linux-2.6.24/fs/gfs2/rgrp.h @@ -32,7 +32,9 @@ struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip); static inline void gfs2_alloc_put(struct gfs2_inode *ip) { - return; /* So we can see where ip->i_alloc is used */ + BUG_ON(ip->i_alloc == NULL); + kfree(ip->i_alloc); + ip->i_alloc = NULL; } int gfs2_inplace_reserve_i(struct gfs2_inode *ip, --- linux-2.6.24.orig/fs/gfs2/log.h +++ linux-2.6.24/fs/gfs2/log.h @@ -48,8 +48,6 @@ unsigned int gfs2_struct2blk(struct gfs2_sbd *sdp, unsigned int nstruct, unsigned int ssize); -int gfs2_ail1_empty(struct gfs2_sbd *sdp, int flags); - int gfs2_log_reserve(struct gfs2_sbd *sdp, unsigned int blks); void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks); void gfs2_log_incr_head(struct gfs2_sbd *sdp); @@ -57,11 +55,19 @@ struct buffer_head *gfs2_log_get_buf(struct gfs2_sbd *sdp); struct buffer_head *gfs2_log_fake_buf(struct gfs2_sbd *sdp, struct buffer_head *real); -void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl); +void __gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl); + +static inline void gfs2_log_flush(struct gfs2_sbd *sbd, struct gfs2_glock *gl) +{ + if (!gl || test_bit(GLF_LFLUSH, &gl->gl_flags)) + __gfs2_log_flush(sbd, gl); +} + void gfs2_log_commit(struct gfs2_sbd *sdp, struct gfs2_trans *trans); -void gfs2_remove_from_ail(struct address_space *mapping, struct gfs2_bufdata *bd); +void gfs2_remove_from_ail(struct gfs2_bufdata *bd); void gfs2_log_shutdown(struct gfs2_sbd *sdp); void gfs2_meta_syncfs(struct gfs2_sbd *sdp); +int gfs2_logd(void *data); #endif /* __LOG_DOT_H__ */ --- linux-2.6.24.orig/fs/gfs2/ops_inode.c +++ linux-2.6.24/fs/gfs2/ops_inode.c @@ -61,7 +61,7 @@ inode = gfs2_createi(ghs, &dentry->d_name, S_IFREG | mode, 0); if (!IS_ERR(inode)) { gfs2_trans_end(sdp); - if (dip->i_alloc.al_rgd) + if (dip->i_alloc->al_rgd) gfs2_inplace_release(dip); gfs2_quota_unlock(dip); gfs2_alloc_put(dip); @@ -113,8 +113,18 @@ if (inode && IS_ERR(inode)) return ERR_PTR(PTR_ERR(inode)); - if (inode) + if (inode) { + struct gfs2_glock *gl = GFS2_I(inode)->i_gl; + struct gfs2_holder gh; + int error; + error = gfs2_glock_nq_init(gl, LM_ST_SHARED, LM_FLAG_ANY, &gh); + if (error) { + iput(inode); + return ERR_PTR(error); + } + gfs2_glock_dq_uninit(&gh); return d_splice_alias(inode, dentry); + } d_add(dentry, inode); return NULL; @@ -366,7 +376,7 @@ } gfs2_trans_end(sdp); - if (dip->i_alloc.al_rgd) + if (dip->i_alloc->al_rgd) gfs2_inplace_release(dip); gfs2_quota_unlock(dip); gfs2_alloc_put(dip); @@ -442,7 +452,7 @@ gfs2_assert_withdraw(sdp, !error); /* dip already pinned */ gfs2_trans_end(sdp); - if (dip->i_alloc.al_rgd) + if (dip->i_alloc->al_rgd) gfs2_inplace_release(dip); gfs2_quota_unlock(dip); gfs2_alloc_put(dip); @@ -548,7 +558,7 @@ } gfs2_trans_end(sdp); - if (dip->i_alloc.al_rgd) + if (dip->i_alloc->al_rgd) gfs2_inplace_release(dip); gfs2_quota_unlock(dip); gfs2_alloc_put(dip); --- linux-2.6.24.orig/fs/gfs2/glops.c +++ linux-2.6.24/fs/gfs2/glops.c @@ -56,7 +56,7 @@ bd = list_entry(head->next, struct gfs2_bufdata, bd_ail_gl_list); bh = bd->bd_bh; - gfs2_remove_from_ail(NULL, bd); + gfs2_remove_from_ail(bd); bd->bd_bh = NULL; bh->b_private = NULL; bd->bd_blkno = bh->b_blocknr; @@ -86,15 +86,10 @@ if (!ip || !S_ISREG(inode->i_mode)) return; - if (!test_bit(GIF_PAGED, &ip->i_flags)) - return; - unmap_shared_mapping_range(inode->i_mapping, 0, 0); - if (test_bit(GIF_SW_PAGED, &ip->i_flags)) set_bit(GLF_DIRTY, &gl->gl_flags); - clear_bit(GIF_SW_PAGED, &ip->i_flags); } /** @@ -143,44 +138,34 @@ static void inode_go_sync(struct gfs2_glock *gl) { struct gfs2_inode *ip = gl->gl_object; + struct address_space *metamapping = gl->gl_aspace->i_mapping; + int error; + + if (gl->gl_state != LM_ST_UNLOCKED) + gfs2_pte_inval(gl); + if (gl->gl_state != LM_ST_EXCLUSIVE) + return; if (ip && !S_ISREG(ip->i_inode.i_mode)) ip = NULL; if (test_bit(GLF_DIRTY, &gl->gl_flags)) { - if (ip && !gfs2_is_jdata(ip)) - filemap_fdatawrite(ip->i_inode.i_mapping); gfs2_log_flush(gl->gl_sbd, gl); - if (ip && gfs2_is_jdata(ip)) - filemap_fdatawrite(ip->i_inode.i_mapping); - gfs2_meta_sync(gl); + filemap_fdatawrite(metamapping); if (ip) { struct address_space *mapping = ip->i_inode.i_mapping; - int error = filemap_fdatawait(mapping); + filemap_fdatawrite(mapping); + error = filemap_fdatawait(mapping); mapping_set_error(mapping, error); } + error = filemap_fdatawait(metamapping); + mapping_set_error(metamapping, error); clear_bit(GLF_DIRTY, &gl->gl_flags); gfs2_ail_empty_gl(gl); } } /** - * inode_go_xmote_th - promote/demote a glock - * @gl: the glock - * @state: the requested state - * @flags: - * - */ - -static void inode_go_xmote_th(struct gfs2_glock *gl) -{ - if (gl->gl_state != LM_ST_UNLOCKED) - gfs2_pte_inval(gl); - if (gl->gl_state == LM_ST_EXCLUSIVE) - inode_go_sync(gl); -} - -/** * inode_go_xmote_bh - After promoting/demoting a glock * @gl: the glock * @@ -201,22 +186,6 @@ } /** - * inode_go_drop_th - unlock a glock - * @gl: the glock - * - * Invoked from rq_demote(). - * Another node needs the lock in EXCLUSIVE mode, or lock (unused for too long) - * is being purged from our node's glock cache; we're dropping lock. - */ - -static void inode_go_drop_th(struct gfs2_glock *gl) -{ - gfs2_pte_inval(gl); - if (gl->gl_state == LM_ST_EXCLUSIVE) - inode_go_sync(gl); -} - -/** * inode_go_inval - prepare a inode glock to be released * @gl: the glock * @flags: @@ -234,10 +203,8 @@ set_bit(GIF_INVALID, &ip->i_flags); } - if (ip && S_ISREG(ip->i_inode.i_mode)) { + if (ip && S_ISREG(ip->i_inode.i_mode)) truncate_inode_pages(ip->i_inode.i_mapping, 0); - clear_bit(GIF_PAGED, &ip->i_flags); - } } /** @@ -294,23 +261,6 @@ } /** - * inode_go_unlock - operation done before an inode lock is unlocked by a - * process - * @gl: the glock - * @flags: - * - */ - -static void inode_go_unlock(struct gfs2_holder *gh) -{ - struct gfs2_glock *gl = gh->gh_gl; - struct gfs2_inode *ip = gl->gl_object; - - if (ip) - gfs2_meta_cache_flush(ip); -} - -/** * rgrp_go_demote_ok - Check to see if it's ok to unlock a RG's glock * @gl: the glock * @@ -350,14 +300,14 @@ } /** - * trans_go_xmote_th - promote/demote the transaction glock + * trans_go_sync - promote/demote the transaction glock * @gl: the glock * @state: the requested state * @flags: * */ -static void trans_go_xmote_th(struct gfs2_glock *gl) +static void trans_go_sync(struct gfs2_glock *gl) { struct gfs2_sbd *sdp = gl->gl_sbd; @@ -384,7 +334,6 @@ if (gl->gl_state != LM_ST_UNLOCKED && test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) { - gfs2_meta_cache_flush(GFS2_I(sdp->sd_jdesc->jd_inode)); j_gl->gl_ops->go_inval(j_gl, DIO_METADATA); error = gfs2_find_jhead(sdp->sd_jdesc, &head); @@ -402,24 +351,6 @@ } /** - * trans_go_drop_th - unlock the transaction glock - * @gl: the glock - * - * We want to sync the device even with localcaching. Remember - * that localcaching journal replay only marks buffers dirty. - */ - -static void trans_go_drop_th(struct gfs2_glock *gl) -{ - struct gfs2_sbd *sdp = gl->gl_sbd; - - if (test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) { - gfs2_meta_syncfs(sdp); - gfs2_log_shutdown(sdp); - } -} - -/** * quota_go_demote_ok - Check to see if it's ok to unlock a quota glock * @gl: the glock * @@ -433,25 +364,21 @@ const struct gfs2_glock_operations gfs2_meta_glops = { .go_xmote_th = meta_go_sync, - .go_drop_th = meta_go_sync, .go_type = LM_TYPE_META, }; const struct gfs2_glock_operations gfs2_inode_glops = { - .go_xmote_th = inode_go_xmote_th, + .go_xmote_th = inode_go_sync, .go_xmote_bh = inode_go_xmote_bh, - .go_drop_th = inode_go_drop_th, .go_inval = inode_go_inval, .go_demote_ok = inode_go_demote_ok, .go_lock = inode_go_lock, - .go_unlock = inode_go_unlock, .go_type = LM_TYPE_INODE, .go_min_hold_time = HZ / 10, }; const struct gfs2_glock_operations gfs2_rgrp_glops = { .go_xmote_th = meta_go_sync, - .go_drop_th = meta_go_sync, .go_inval = meta_go_inval, .go_demote_ok = rgrp_go_demote_ok, .go_lock = rgrp_go_lock, @@ -461,9 +388,8 @@ }; const struct gfs2_glock_operations gfs2_trans_glops = { - .go_xmote_th = trans_go_xmote_th, + .go_xmote_th = trans_go_sync, .go_xmote_bh = trans_go_xmote_bh, - .go_drop_th = trans_go_drop_th, .go_type = LM_TYPE_NONDISK, }; --- linux-2.6.24.orig/fs/gfs2/bmap.c +++ linux-2.6.24/fs/gfs2/bmap.c @@ -59,7 +59,6 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, struct buffer_head *dibh, u64 block, struct page *page) { - struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); struct inode *inode = &ip->i_inode; struct buffer_head *bh; int release = 0; @@ -95,7 +94,7 @@ set_buffer_uptodate(bh); if (!gfs2_is_jdata(ip)) mark_buffer_dirty(bh); - if (sdp->sd_args.ar_data == GFS2_DATA_ORDERED || gfs2_is_jdata(ip)) + if (!gfs2_is_writeback(ip)) gfs2_trans_add_bh(ip->i_gl, bh, 0); if (release) { @@ -453,8 +452,8 @@ * Returns: errno */ -int gfs2_block_map(struct inode *inode, u64 lblock, int create, - struct buffer_head *bh_map) +int gfs2_block_map(struct inode *inode, sector_t lblock, + struct buffer_head *bh_map, int create) { struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_sbd *sdp = GFS2_SB(inode); @@ -470,6 +469,7 @@ unsigned int maxlen = bh_map->b_size >> inode->i_blkbits; struct metapath mp; u64 size; + struct buffer_head *dibh = NULL; BUG_ON(maxlen == 0); @@ -500,6 +500,8 @@ error = gfs2_meta_inode_buffer(ip, &bh); if (error) goto out_fail; + dibh = bh; + get_bh(dibh); for (x = 0; x < end_of_metadata; x++) { lookup_block(ip, bh, x, &mp, create, &new, &dblock); @@ -518,13 +520,8 @@ if (boundary) set_buffer_boundary(bh_map); if (new) { - struct buffer_head *dibh; - error = gfs2_meta_inode_buffer(ip, &dibh); - if (!error) { - gfs2_trans_add_bh(ip->i_gl, dibh, 1); - gfs2_dinode_out(ip, dibh->b_data); - brelse(dibh); - } + gfs2_trans_add_bh(ip->i_gl, dibh, 1); + gfs2_dinode_out(ip, dibh->b_data); set_buffer_new(bh_map); goto out_brelse; } @@ -545,6 +542,8 @@ out_ok: error = 0; out_fail: + if (dibh) + brelse(dibh); bmap_unlock(inode, create); return error; } @@ -560,7 +559,7 @@ BUG_ON(!new); bh.b_size = 1 << (inode->i_blkbits + 5); - ret = gfs2_block_map(inode, lblock, create, &bh); + ret = gfs2_block_map(inode, lblock, &bh, create); *extlen = bh.b_size >> inode->i_blkbits; *dblock = bh.b_blocknr; if (buffer_new(&bh)) @@ -684,7 +683,7 @@ if (metadata) revokes = (height) ? sdp->sd_inptrs : sdp->sd_diptrs; - error = gfs2_rindex_hold(sdp, &ip->i_alloc.al_ri_gh); + error = gfs2_rindex_hold(sdp, &ip->i_alloc->al_ri_gh); if (error) return error; @@ -786,7 +785,7 @@ out_rlist: gfs2_rlist_free(&rlist); out: - gfs2_glock_dq_uninit(&ip->i_alloc.al_ri_gh); + gfs2_glock_dq_uninit(&ip->i_alloc->al_ri_gh); return error; } @@ -879,7 +878,6 @@ { struct inode *inode = mapping->host; struct gfs2_inode *ip = GFS2_I(inode); - struct gfs2_sbd *sdp = GFS2_SB(inode); loff_t from = inode->i_size; unsigned long index = from >> PAGE_CACHE_SHIFT; unsigned offset = from & (PAGE_CACHE_SIZE-1); @@ -911,7 +909,7 @@ err = 0; if (!buffer_mapped(bh)) { - gfs2_get_block(inode, iblock, bh, 0); + gfs2_block_map(inode, iblock, bh, 0); /* unmapped? It's a hole - nothing to do */ if (!buffer_mapped(bh)) goto unlock; @@ -931,7 +929,7 @@ err = 0; } - if (sdp->sd_args.ar_data == GFS2_DATA_ORDERED || gfs2_is_jdata(ip)) + if (!gfs2_is_writeback(ip)) gfs2_trans_add_bh(ip->i_gl, bh, 0); zero_user_page(page, offset, length, KM_USER0); @@ -1224,8 +1222,13 @@ do_div(lblock_stop, bsize); } else { unsigned int shift = sdp->sd_sb.sb_bsize_shift; + u64 end_of_file = (ip->i_di.di_size + sdp->sd_sb.sb_bsize - 1) >> shift; lblock = offset >> shift; lblock_stop = (offset + len + sdp->sd_sb.sb_bsize - 1) >> shift; + if (lblock_stop > end_of_file) { + *alloc_required = 1; + return 0; + } } for (; lblock < lblock_stop; lblock += extlen) { --- linux-2.6.24.orig/fs/gfs2/eattr.c +++ linux-2.6.24/fs/gfs2/eattr.c @@ -1418,7 +1418,7 @@ static int ea_dealloc_block(struct gfs2_inode *ip) { struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); - struct gfs2_alloc *al = &ip->i_alloc; + struct gfs2_alloc *al = ip->i_alloc; struct gfs2_rgrpd *rgd; struct buffer_head *dibh; int error; --- linux-2.6.24.orig/fs/gfs2/ops_inode.h +++ linux-2.6.24/fs/gfs2/ops_inode.h @@ -16,5 +16,11 @@ extern const struct inode_operations gfs2_dir_iops; extern const struct inode_operations gfs2_symlink_iops; extern const struct inode_operations gfs2_dev_iops; +extern const struct file_operations gfs2_file_fops; +extern const struct file_operations gfs2_dir_fops; +extern const struct file_operations gfs2_file_fops_nolock; +extern const struct file_operations gfs2_dir_fops_nolock; + +extern void gfs2_set_inode_flags(struct inode *inode); #endif /* __OPS_INODE_DOT_H__ */ --- linux-2.6.24.orig/fs/gfs2/meta_io.h +++ linux-2.6.24/fs/gfs2/meta_io.h @@ -56,7 +56,6 @@ void gfs2_meta_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen); -void gfs2_meta_cache_flush(struct gfs2_inode *ip); int gfs2_meta_indirect_buffer(struct gfs2_inode *ip, int height, u64 num, int new, struct buffer_head **bhp); --- linux-2.6.24.orig/fs/gfs2/eaops.c +++ linux-2.6.24/fs/gfs2/eaops.c @@ -56,46 +56,6 @@ return type; } -static int user_eo_get(struct gfs2_inode *ip, struct gfs2_ea_request *er) -{ - struct inode *inode = &ip->i_inode; - int error = permission(inode, MAY_READ, NULL); - if (error) - return error; - - return gfs2_ea_get_i(ip, er); -} - -static int user_eo_set(struct gfs2_inode *ip, struct gfs2_ea_request *er) -{ - struct inode *inode = &ip->i_inode; - - if (S_ISREG(inode->i_mode) || - (S_ISDIR(inode->i_mode) && !(inode->i_mode & S_ISVTX))) { - int error = permission(inode, MAY_WRITE, NULL); - if (error) - return error; - } else - return -EPERM; - - return gfs2_ea_set_i(ip, er); -} - -static int user_eo_remove(struct gfs2_inode *ip, struct gfs2_ea_request *er) -{ - struct inode *inode = &ip->i_inode; - - if (S_ISREG(inode->i_mode) || - (S_ISDIR(inode->i_mode) && !(inode->i_mode & S_ISVTX))) { - int error = permission(inode, MAY_WRITE, NULL); - if (error) - return error; - } else - return -EPERM; - - return gfs2_ea_remove_i(ip, er); -} - static int system_eo_get(struct gfs2_inode *ip, struct gfs2_ea_request *er) { if (!GFS2_ACL_IS_ACCESS(er->er_name, er->er_name_len) && @@ -108,8 +68,6 @@ GFS2_ACL_IS_DEFAULT(er->er_name, er->er_name_len))) return -EOPNOTSUPP; - - return gfs2_ea_get_i(ip, er); } @@ -170,40 +128,10 @@ return gfs2_ea_remove_i(ip, er); } -static int security_eo_get(struct gfs2_inode *ip, struct gfs2_ea_request *er) -{ - struct inode *inode = &ip->i_inode; - int error = permission(inode, MAY_READ, NULL); - if (error) - return error; - - return gfs2_ea_get_i(ip, er); -} - -static int security_eo_set(struct gfs2_inode *ip, struct gfs2_ea_request *er) -{ - struct inode *inode = &ip->i_inode; - int error = permission(inode, MAY_WRITE, NULL); - if (error) - return error; - - return gfs2_ea_set_i(ip, er); -} - -static int security_eo_remove(struct gfs2_inode *ip, struct gfs2_ea_request *er) -{ - struct inode *inode = &ip->i_inode; - int error = permission(inode, MAY_WRITE, NULL); - if (error) - return error; - - return gfs2_ea_remove_i(ip, er); -} - static const struct gfs2_eattr_operations gfs2_user_eaops = { - .eo_get = user_eo_get, - .eo_set = user_eo_set, - .eo_remove = user_eo_remove, + .eo_get = gfs2_ea_get_i, + .eo_set = gfs2_ea_set_i, + .eo_remove = gfs2_ea_remove_i, .eo_name = "user", }; @@ -215,9 +143,9 @@ }; static const struct gfs2_eattr_operations gfs2_security_eaops = { - .eo_get = security_eo_get, - .eo_set = security_eo_set, - .eo_remove = security_eo_remove, + .eo_get = gfs2_ea_get_i, + .eo_set = gfs2_ea_set_i, + .eo_remove = gfs2_ea_remove_i, .eo_name = "security", }; --- linux-2.6.24.orig/fs/gfs2/log.c +++ linux-2.6.24/fs/gfs2/log.c @@ -1,6 +1,6 @@ /* * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. - * Copyright (C) 2004-2006 Red Hat, Inc. All rights reserved. + * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. * * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include "gfs2.h" #include "incore.h" @@ -68,14 +70,12 @@ * */ -void gfs2_remove_from_ail(struct address_space *mapping, struct gfs2_bufdata *bd) +void gfs2_remove_from_ail(struct gfs2_bufdata *bd) { bd->bd_ail = NULL; list_del_init(&bd->bd_ail_st_list); list_del_init(&bd->bd_ail_gl_list); atomic_dec(&bd->bd_gl->gl_ail_count); - if (mapping) - gfs2_meta_cache_flush(GFS2_I(mapping->host)); brelse(bd->bd_bh); } @@ -92,8 +92,6 @@ struct buffer_head *bh; int retry; - BUG_ON(!spin_is_locked(&sdp->sd_log_lock)); - do { retry = 0; @@ -210,7 +208,7 @@ gfs2_log_unlock(sdp); } -int gfs2_ail1_empty(struct gfs2_sbd *sdp, int flags) +static int gfs2_ail1_empty(struct gfs2_sbd *sdp, int flags) { struct gfs2_ail *ai, *s; int ret; @@ -248,7 +246,7 @@ bd = list_entry(head->prev, struct gfs2_bufdata, bd_ail_st_list); gfs2_assert(sdp, bd->bd_ail == ai); - gfs2_remove_from_ail(bd->bd_bh->b_page->mapping, bd); + gfs2_remove_from_ail(bd); } } @@ -303,7 +301,7 @@ mutex_lock(&sdp->sd_log_reserve_mutex); gfs2_log_lock(sdp); - while(sdp->sd_log_blks_free <= (blks + reserved_blks)) { + while(atomic_read(&sdp->sd_log_blks_free) <= (blks + reserved_blks)) { gfs2_log_unlock(sdp); gfs2_ail1_empty(sdp, 0); gfs2_log_flush(sdp, NULL); @@ -312,7 +310,7 @@ gfs2_ail1_start(sdp, 0); gfs2_log_lock(sdp); } - sdp->sd_log_blks_free -= blks; + atomic_sub(blks, &sdp->sd_log_blks_free); gfs2_log_unlock(sdp); mutex_unlock(&sdp->sd_log_reserve_mutex); @@ -332,27 +330,23 @@ { gfs2_log_lock(sdp); - sdp->sd_log_blks_free += blks; + atomic_add(blks, &sdp->sd_log_blks_free); gfs2_assert_withdraw(sdp, - sdp->sd_log_blks_free <= sdp->sd_jdesc->jd_blocks); + atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks); gfs2_log_unlock(sdp); up_read(&sdp->sd_log_flush_lock); } static u64 log_bmap(struct gfs2_sbd *sdp, unsigned int lbn) { - struct inode *inode = sdp->sd_jdesc->jd_inode; - int error; - struct buffer_head bh_map = { .b_state = 0, .b_blocknr = 0 }; - - bh_map.b_size = 1 << inode->i_blkbits; - error = gfs2_block_map(inode, lbn, 0, &bh_map); - if (error || !bh_map.b_blocknr) - printk(KERN_INFO "error=%d, dbn=%llu lbn=%u", error, - (unsigned long long)bh_map.b_blocknr, lbn); - gfs2_assert_withdraw(sdp, !error && bh_map.b_blocknr); + struct gfs2_journal_extent *je; + + list_for_each_entry(je, &sdp->sd_jdesc->extent_list, extent_list) { + if (lbn >= je->lblock && lbn < je->lblock + je->blocks) + return je->dblock + lbn - je->lblock; + } - return bh_map.b_blocknr; + return -1; } /** @@ -561,8 +555,8 @@ ail2_empty(sdp, new_tail); gfs2_log_lock(sdp); - sdp->sd_log_blks_free += dist; - gfs2_assert_withdraw(sdp, sdp->sd_log_blks_free <= sdp->sd_jdesc->jd_blocks); + atomic_add(dist, &sdp->sd_log_blks_free); + gfs2_assert_withdraw(sdp, atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks); gfs2_log_unlock(sdp); sdp->sd_log_tail = new_tail; @@ -652,7 +646,7 @@ get_bh(bh); gfs2_log_unlock(sdp); lock_buffer(bh); - if (test_clear_buffer_dirty(bh)) { + if (buffer_mapped(bh) && test_clear_buffer_dirty(bh)) { bh->b_end_io = end_buffer_write_sync; submit_bh(WRITE, bh); } else { @@ -694,20 +688,16 @@ * */ -void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl) +void __gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl) { struct gfs2_ail *ai; down_write(&sdp->sd_log_flush_lock); - if (gl) { - gfs2_log_lock(sdp); - if (list_empty(&gl->gl_le.le_list)) { - gfs2_log_unlock(sdp); - up_write(&sdp->sd_log_flush_lock); - return; - } - gfs2_log_unlock(sdp); + /* Log might have been flushed while we waited for the flush lock */ + if (gl && !test_bit(GLF_LFLUSH, &gl->gl_flags)) { + up_write(&sdp->sd_log_flush_lock); + return; } ai = kzalloc(sizeof(struct gfs2_ail), GFP_NOFS | __GFP_NOFAIL); @@ -739,7 +729,7 @@ log_flush_commit(sdp); else if (sdp->sd_log_tail != current_tail(sdp) && !sdp->sd_log_idle){ gfs2_log_lock(sdp); - sdp->sd_log_blks_free--; /* Adjust for unreserved buffer */ + atomic_dec(&sdp->sd_log_blks_free); /* Adjust for unreserved buffer */ gfs2_log_unlock(sdp); log_write_header(sdp, 0, PULL); } @@ -767,7 +757,7 @@ static void log_refund(struct gfs2_sbd *sdp, struct gfs2_trans *tr) { unsigned int reserved; - unsigned int old; + unsigned int unused; gfs2_log_lock(sdp); @@ -779,14 +769,11 @@ sdp->sd_log_commited_revoke += tr->tr_num_revoke - tr->tr_num_revoke_rm; gfs2_assert_withdraw(sdp, ((int)sdp->sd_log_commited_revoke) >= 0); reserved = calc_reserved(sdp); - old = sdp->sd_log_blks_free; - sdp->sd_log_blks_free += tr->tr_reserved - - (reserved - sdp->sd_log_blks_reserved); - - gfs2_assert_withdraw(sdp, sdp->sd_log_blks_free >= old); - gfs2_assert_withdraw(sdp, sdp->sd_log_blks_free <= + unused = sdp->sd_log_blks_reserved - reserved + tr->tr_reserved; + gfs2_assert_withdraw(sdp, unused >= 0); + atomic_add(unused, &sdp->sd_log_blks_free); + gfs2_assert_withdraw(sdp, atomic_read(&sdp->sd_log_blks_free) <= sdp->sd_jdesc->jd_blocks); - sdp->sd_log_blks_reserved = reserved; gfs2_log_unlock(sdp); @@ -825,7 +812,6 @@ down_write(&sdp->sd_log_flush_lock); gfs2_assert_withdraw(sdp, !sdp->sd_log_blks_reserved); - gfs2_assert_withdraw(sdp, !sdp->sd_log_num_gl); gfs2_assert_withdraw(sdp, !sdp->sd_log_num_buf); gfs2_assert_withdraw(sdp, !sdp->sd_log_num_revoke); gfs2_assert_withdraw(sdp, !sdp->sd_log_num_rg); @@ -838,7 +824,7 @@ log_write_header(sdp, GFS2_LOG_HEAD_UNMOUNT, (sdp->sd_log_tail == current_tail(sdp)) ? 0 : PULL); - gfs2_assert_warn(sdp, sdp->sd_log_blks_free == sdp->sd_jdesc->jd_blocks); + gfs2_assert_warn(sdp, atomic_read(&sdp->sd_log_blks_free) == sdp->sd_jdesc->jd_blocks); gfs2_assert_warn(sdp, sdp->sd_log_head == sdp->sd_log_tail); gfs2_assert_warn(sdp, list_empty(&sdp->sd_ail2_list)); @@ -866,3 +852,42 @@ } } + +/** + * gfs2_logd - Update log tail as Active Items get flushed to in-place blocks + * @sdp: Pointer to GFS2 superblock + * + * Also, periodically check to make sure that we're using the most recent + * journal index. + */ + +int gfs2_logd(void *data) +{ + struct gfs2_sbd *sdp = data; + unsigned long t; + int need_flush; + + while (!kthread_should_stop()) { + /* Advance the log tail */ + + t = sdp->sd_log_flush_time + + gfs2_tune_get(sdp, gt_log_flush_secs) * HZ; + + gfs2_ail1_empty(sdp, DIO_ALL); + gfs2_log_lock(sdp); + need_flush = sdp->sd_log_num_buf > gfs2_tune_get(sdp, gt_incore_log_blocks); + gfs2_log_unlock(sdp); + if (need_flush || time_after_eq(jiffies, t)) { + gfs2_log_flush(sdp, NULL); + sdp->sd_log_flush_time = jiffies; + } + + t = gfs2_tune_get(sdp, gt_logd_secs) * HZ; + if (freezing(current)) + refrigerator(); + schedule_timeout_interruptible(t); + } + + return 0; +} + --- linux-2.6.24.orig/fs/gfs2/inode.h +++ linux-2.6.24/fs/gfs2/inode.h @@ -20,6 +20,18 @@ return ip->i_di.di_flags & GFS2_DIF_JDATA; } +static inline int gfs2_is_writeback(const struct gfs2_inode *ip) +{ + const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); + return (sdp->sd_args.ar_data == GFS2_DATA_WRITEBACK) && !gfs2_is_jdata(ip); +} + +static inline int gfs2_is_ordered(const struct gfs2_inode *ip) +{ + const struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); + return (sdp->sd_args.ar_data == GFS2_DATA_ORDERED) && !gfs2_is_jdata(ip); +} + static inline int gfs2_is_dir(const struct gfs2_inode *ip) { return S_ISDIR(ip->i_inode.i_mode); --- linux-2.6.24.orig/fs/gfs2/main.c +++ linux-2.6.24/fs/gfs2/main.c @@ -29,9 +29,8 @@ struct gfs2_inode *ip = foo; inode_init_once(&ip->i_inode); - spin_lock_init(&ip->i_spin); init_rwsem(&ip->i_rw_mutex); - memset(ip->i_cache, 0, sizeof(ip->i_cache)); + ip->i_alloc = NULL; } static void gfs2_init_glock_once(struct kmem_cache *cachep, void *foo) --- linux-2.6.24.orig/fs/gfs2/dir.c +++ linux-2.6.24/fs/gfs2/dir.c @@ -1876,7 +1876,7 @@ if (error) goto out; - error = gfs2_rindex_hold(sdp, &dip->i_alloc.al_ri_gh); + error = gfs2_rindex_hold(sdp, &dip->i_alloc->al_ri_gh); if (error) goto out_qs; @@ -1949,7 +1949,7 @@ gfs2_glock_dq_m(rlist.rl_rgrps, rlist.rl_ghs); out_rlist: gfs2_rlist_free(&rlist); - gfs2_glock_dq_uninit(&dip->i_alloc.al_ri_gh); + gfs2_glock_dq_uninit(&dip->i_alloc->al_ri_gh); out_qs: gfs2_quota_unhold(dip); out: --- linux-2.6.24.orig/fs/gfs2/trans.h +++ linux-2.6.24/fs/gfs2/trans.h @@ -30,7 +30,6 @@ void gfs2_trans_end(struct gfs2_sbd *sdp); -void gfs2_trans_add_gl(struct gfs2_glock *gl); void gfs2_trans_add_bh(struct gfs2_glock *gl, struct buffer_head *bh, int meta); void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd); void gfs2_trans_add_unrevoke(struct gfs2_sbd *sdp, u64 blkno); --- linux-2.6.24.orig/fs/gfs2/recovery.c +++ linux-2.6.24/fs/gfs2/recovery.c @@ -391,7 +391,7 @@ lblock = head->lh_blkno; gfs2_replay_incr_blk(sdp, &lblock); bh_map.b_size = 1 << ip->i_inode.i_blkbits; - error = gfs2_block_map(&ip->i_inode, lblock, 0, &bh_map); + error = gfs2_block_map(&ip->i_inode, lblock, &bh_map, 0); if (error) return error; if (!bh_map.b_blocknr) { @@ -504,13 +504,21 @@ if (!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) ro = 1; } else { - if (sdp->sd_vfs->s_flags & MS_RDONLY) - ro = 1; + if (sdp->sd_vfs->s_flags & MS_RDONLY) { + /* check if device itself is read-only */ + ro = bdev_read_only(sdp->sd_vfs->s_bdev); + if (!ro) { + fs_info(sdp, "recovery required on " + "read-only filesystem.\n"); + fs_info(sdp, "write access will be " + "enabled during recovery.\n"); + } + } } if (ro) { - fs_warn(sdp, "jid=%u: Can't replay: read-only FS\n", - jd->jd_jid); + fs_warn(sdp, "jid=%u: Can't replay: read-only block " + "device\n", jd->jd_jid); error = -EROFS; goto fail_gunlock_tr; } --- linux-2.6.24.orig/fs/ufs/util.h +++ linux-2.6.24/fs/ufs/util.h @@ -58,7 +58,7 @@ { switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { case UFS_ST_SUNOS: - if (fs32_to_cpu(sb, usb3->fs_postblformat == UFS_42POSTBLFMT)) { + if (fs32_to_cpu(sb, usb3->fs_postblformat) == UFS_42POSTBLFMT) { usb1->fs_u0.fs_sun.fs_state = cpu_to_fs32(sb, value); break; } --- linux-2.6.24.orig/fs/nfsd/nfs4callback.c +++ linux-2.6.24/fs/nfsd/nfs4callback.c @@ -350,30 +350,6 @@ static int do_probe_callback(void *data) { struct nfs4_client *clp = data; - struct nfs4_callback *cb = &clp->cl_callback; - struct rpc_message msg = { - .rpc_proc = &nfs4_cb_procedures[NFSPROC4_CLNT_CB_NULL], - .rpc_argp = clp, - }; - int status; - - status = rpc_call_sync(cb->cb_client, &msg, RPC_TASK_SOFT); - - if (status) { - rpc_shutdown_client(cb->cb_client); - cb->cb_client = NULL; - } else - atomic_set(&cb->cb_set, 1); - put_nfs4_client(clp); - return 0; -} - -/* - * Set up the callback client and put a NFSPROC4_CB_NULL on the wire... - */ -void -nfsd4_probe_callback(struct nfs4_client *clp) -{ struct sockaddr_in addr; struct nfs4_callback *cb = &clp->cl_callback; struct rpc_timeout timeparms = { @@ -390,13 +366,18 @@ .timeout = &timeparms, .program = program, .version = nfs_cb_version[1]->number, - .authflavor = RPC_AUTH_UNIX, /* XXX: need AUTH_GSS... */ + .authflavor = RPC_AUTH_UNIX, /* XXX: need AUTH_GSS... */ .flags = (RPC_CLNT_CREATE_NOPING), }; - struct task_struct *t; - if (atomic_read(&cb->cb_set)) - return; + struct rpc_message msg = { + .rpc_proc = &nfs4_cb_procedures[NFSPROC4_CLNT_CB_NULL], + .rpc_argp = clp, + }; + struct rpc_clnt *client; + int status; + + BUG_ON(atomic_read(&clp->cl_callback.cb_set)); /* Initialize address */ memset(&addr, 0, sizeof(addr)); @@ -416,29 +397,50 @@ program->stats->program = program; /* Create RPC client */ - cb->cb_client = rpc_create(&args); - if (IS_ERR(cb->cb_client)) { + client = rpc_create(&args); + if (IS_ERR(client)) { dprintk("NFSD: couldn't create callback client\n"); + status = PTR_ERR(client); goto out_err; } + status = rpc_call_sync(client, &msg, RPC_TASK_SOFT); + + if (status) + goto out_release_client; + + cb->cb_client = client; + atomic_set(&cb->cb_set, 1); + put_nfs4_client(clp); + return 0; +out_release_client: + rpc_shutdown_client(client); +out_err: + put_nfs4_client(clp); + dprintk("NFSD: warning: no callback path to client %.*s\n", + (int)clp->cl_name.len, clp->cl_name.data); + return status; +} + +/* + * Set up the callback client and put a NFSPROC4_CB_NULL on the wire... + */ +void +nfsd4_probe_callback(struct nfs4_client *clp) +{ + struct task_struct *t; + + BUG_ON(atomic_read(&clp->cl_callback.cb_set)); + /* the task holds a reference to the nfs4_client struct */ atomic_inc(&clp->cl_count); t = kthread_run(do_probe_callback, clp, "nfs4_cb_probe"); if (IS_ERR(t)) - goto out_release_clp; + atomic_dec(&clp->cl_count); return; - -out_release_clp: - atomic_dec(&clp->cl_count); - rpc_shutdown_client(cb->cb_client); -out_err: - cb->cb_client = NULL; - dprintk("NFSD: warning: no callback path to client %.*s\n", - (int)clp->cl_name.len, clp->cl_name.data); } /* --- linux-2.6.24.orig/fs/nfsd/vfs.c +++ linux-2.6.24/fs/nfsd/vfs.c @@ -388,7 +388,7 @@ err = nfserr_notsync; if (!check_guard || guardtime == inode->i_ctime.tv_sec) { fh_lock(fhp); - host_err = notify_change(dentry, iap); + host_err = notify_change(dentry, fhp->fh_export->ex_mnt, iap); err = nfserrno(host_err); fh_unlock(fhp); } @@ -408,11 +408,12 @@ #if defined(CONFIG_NFSD_V2_ACL) || \ defined(CONFIG_NFSD_V3_ACL) || \ defined(CONFIG_NFSD_V4) -static ssize_t nfsd_getxattr(struct dentry *dentry, char *key, void **buf) +static ssize_t nfsd_getxattr(struct dentry *dentry, struct vfsmount *mnt, + char *key, void **buf) { ssize_t buflen; - buflen = vfs_getxattr(dentry, key, NULL, 0); + buflen = vfs_getxattr(dentry, mnt, key, NULL, 0, NULL); if (buflen <= 0) return buflen; @@ -420,13 +421,14 @@ if (!*buf) return -ENOMEM; - return vfs_getxattr(dentry, key, *buf, buflen); + return vfs_getxattr(dentry, mnt, key, *buf, buflen, NULL); } #endif #if defined(CONFIG_NFSD_V4) static int -set_nfsv4_acl_one(struct dentry *dentry, struct posix_acl *pacl, char *key) +set_nfsv4_acl_one(struct dentry *dentry, struct vfsmount *mnt, + struct posix_acl *pacl, char *key) { int len; size_t buflen; @@ -445,7 +447,7 @@ goto out; } - error = vfs_setxattr(dentry, key, buf, len, 0); + error = vfs_setxattr(dentry, mnt, key, buf, len, 0, NULL); out: kfree(buf); return error; @@ -458,6 +460,7 @@ __be32 error; int host_error; struct dentry *dentry; + struct vfsmount *mnt; struct inode *inode; struct posix_acl *pacl = NULL, *dpacl = NULL; unsigned int flags = 0; @@ -468,6 +471,7 @@ return error; dentry = fhp->fh_dentry; + mnt = fhp->fh_export->ex_mnt; inode = dentry->d_inode; if (S_ISDIR(inode->i_mode)) flags = NFS4_ACL_DIR; @@ -478,12 +482,14 @@ } else if (host_error < 0) goto out_nfserr; - host_error = set_nfsv4_acl_one(dentry, pacl, POSIX_ACL_XATTR_ACCESS); + host_error = set_nfsv4_acl_one(dentry, mnt, pacl, + POSIX_ACL_XATTR_ACCESS); if (host_error < 0) goto out_release; if (S_ISDIR(inode->i_mode)) - host_error = set_nfsv4_acl_one(dentry, dpacl, POSIX_ACL_XATTR_DEFAULT); + host_error = set_nfsv4_acl_one(dentry, mnt, dpacl, + POSIX_ACL_XATTR_DEFAULT); out_release: posix_acl_release(pacl); @@ -496,13 +502,13 @@ } static struct posix_acl * -_get_posix_acl(struct dentry *dentry, char *key) +_get_posix_acl(struct dentry *dentry, struct vfsmount *mnt, char *key) { void *buf = NULL; struct posix_acl *pacl = NULL; int buflen; - buflen = nfsd_getxattr(dentry, key, &buf); + buflen = nfsd_getxattr(dentry, mnt, key, &buf); if (!buflen) buflen = -ENODATA; if (buflen <= 0) @@ -514,14 +520,15 @@ } int -nfsd4_get_nfs4_acl(struct svc_rqst *rqstp, struct dentry *dentry, struct nfs4_acl **acl) +nfsd4_get_nfs4_acl(struct svc_rqst *rqstp, struct dentry *dentry, + struct vfsmount *mnt, struct nfs4_acl **acl) { struct inode *inode = dentry->d_inode; int error = 0; struct posix_acl *pacl = NULL, *dpacl = NULL; unsigned int flags = 0; - pacl = _get_posix_acl(dentry, POSIX_ACL_XATTR_ACCESS); + pacl = _get_posix_acl(dentry, mnt, POSIX_ACL_XATTR_ACCESS); if (IS_ERR(pacl) && PTR_ERR(pacl) == -ENODATA) pacl = posix_acl_from_mode(inode->i_mode, GFP_KERNEL); if (IS_ERR(pacl)) { @@ -531,7 +538,7 @@ } if (S_ISDIR(inode->i_mode)) { - dpacl = _get_posix_acl(dentry, POSIX_ACL_XATTR_DEFAULT); + dpacl = _get_posix_acl(dentry, mnt, POSIX_ACL_XATTR_DEFAULT); if (IS_ERR(dpacl) && PTR_ERR(dpacl) == -ENODATA) dpacl = NULL; else if (IS_ERR(dpacl)) { @@ -943,13 +950,13 @@ return err; } -static void kill_suid(struct dentry *dentry) +static void kill_suid(struct dentry *dentry, struct vfsmount *mnt) { struct iattr ia; ia.ia_valid = ATTR_KILL_SUID | ATTR_KILL_SGID | ATTR_KILL_PRIV; mutex_lock(&dentry->d_inode->i_mutex); - notify_change(dentry, &ia); + notify_change(dentry, mnt, &ia); mutex_unlock(&dentry->d_inode->i_mutex); } @@ -1008,7 +1015,7 @@ /* clear setuid/setgid flag after write */ if (host_err >= 0 && (inode->i_mode & (S_ISUID | S_ISGID))) - kill_suid(dentry); + kill_suid(dentry, exp->ex_mnt); if (host_err >= 0 && stable) { static ino_t last_ino; @@ -1165,6 +1172,7 @@ int type, dev_t rdev, struct svc_fh *resfhp) { struct dentry *dentry, *dchild = NULL; + struct svc_export *exp; struct inode *dirp; __be32 err; int host_err; @@ -1181,6 +1189,7 @@ goto out; dentry = fhp->fh_dentry; + exp = fhp->fh_export; dirp = dentry->d_inode; err = nfserr_notdir; @@ -1197,7 +1206,7 @@ host_err = PTR_ERR(dchild); if (IS_ERR(dchild)) goto out_nfserr; - err = fh_compose(resfhp, fhp->fh_export, dchild, fhp); + err = fh_compose(resfhp, exp, dchild, fhp); if (err) goto out; } else { @@ -1236,13 +1245,14 @@ host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); break; case S_IFDIR: - host_err = vfs_mkdir(dirp, dchild, iap->ia_mode); + host_err = vfs_mkdir(dirp, dchild, exp->ex_mnt, iap->ia_mode); break; case S_IFCHR: case S_IFBLK: case S_IFIFO: case S_IFSOCK: - host_err = vfs_mknod(dirp, dchild, iap->ia_mode, rdev); + host_err = vfs_mknod(dirp, dchild, exp->ex_mnt, iap->ia_mode, + rdev); break; default: printk("nfsd: bad file type %o in nfsd_create\n", type); @@ -1251,7 +1261,7 @@ if (host_err < 0) goto out_nfserr; - if (EX_ISSYNC(fhp->fh_export)) { + if (EX_ISSYNC(exp)) { err = nfserrno(nfsd_sync_dir(dentry)); write_inode_now(dchild->d_inode, 1); } @@ -1486,6 +1496,7 @@ struct iattr *iap) { struct dentry *dentry, *dnew; + struct svc_export *exp; __be32 err, cerr; int host_err; umode_t mode; @@ -1512,6 +1523,7 @@ if (iap && (iap->ia_valid & ATTR_MODE)) mode = iap->ia_mode & S_IALLUGO; + exp = fhp->fh_export; if (unlikely(path[plen] != 0)) { char *path_alloced = kmalloc(plen+1, GFP_KERNEL); if (path_alloced == NULL) @@ -1519,20 +1531,22 @@ else { strncpy(path_alloced, path, plen); path_alloced[plen] = 0; - host_err = vfs_symlink(dentry->d_inode, dnew, path_alloced, mode); + host_err = vfs_symlink(dentry->d_inode, dnew, + exp->ex_mnt, path_alloced, mode); kfree(path_alloced); } } else - host_err = vfs_symlink(dentry->d_inode, dnew, path, mode); + host_err = vfs_symlink(dentry->d_inode, dnew, exp->ex_mnt, path, + mode); if (!host_err) { - if (EX_ISSYNC(fhp->fh_export)) + if (EX_ISSYNC(exp)) host_err = nfsd_sync_dir(dentry); } err = nfserrno(host_err); fh_unlock(fhp); - cerr = fh_compose(resfhp, fhp->fh_export, dnew, fhp); + cerr = fh_compose(resfhp, exp, dnew, fhp); dput(dnew); if (err==0) err = cerr; out: @@ -1582,7 +1596,8 @@ dold = tfhp->fh_dentry; dest = dold->d_inode; - host_err = vfs_link(dold, dirp, dnew); + host_err = vfs_link(dold, tfhp->fh_export->ex_mnt, dirp, + dnew, ffhp->fh_export->ex_mnt); if (!host_err) { if (EX_ISSYNC(ffhp->fh_export)) { err = nfserrno(nfsd_sync_dir(ddir)); @@ -1675,7 +1690,8 @@ host_err = -EPERM; } else #endif - host_err = vfs_rename(fdir, odentry, tdir, ndentry); + host_err = vfs_rename(fdir, odentry, ffhp->fh_export->ex_mnt, + tdir, ndentry, tfhp->fh_export->ex_mnt); if (!host_err && EX_ISSYNC(tfhp->fh_export)) { host_err = nfsd_sync_dir(tdentry); if (!host_err) @@ -1711,6 +1727,7 @@ char *fname, int flen) { struct dentry *dentry, *rdentry; + struct svc_export *exp; struct inode *dirp; __be32 err; int host_err; @@ -1725,6 +1742,7 @@ fh_lock_nested(fhp, I_MUTEX_PARENT); dentry = fhp->fh_dentry; dirp = dentry->d_inode; + exp = fhp->fh_export; rdentry = lookup_one_len(fname, dentry, flen); host_err = PTR_ERR(rdentry); @@ -1742,21 +1760,21 @@ if (type != S_IFDIR) { /* It's UNLINK */ #ifdef MSNFS - if ((fhp->fh_export->ex_flags & NFSEXP_MSNFS) && + if ((exp->ex_flags & NFSEXP_MSNFS) && (atomic_read(&rdentry->d_count) > 1)) { host_err = -EPERM; } else #endif - host_err = vfs_unlink(dirp, rdentry); + host_err = vfs_unlink(dirp, rdentry, exp->ex_mnt); } else { /* It's RMDIR */ - host_err = vfs_rmdir(dirp, rdentry); + host_err = vfs_rmdir(dirp, rdentry, exp->ex_mnt); } dput(rdentry); if (host_err) goto out_nfserr; - if (EX_ISSYNC(fhp->fh_export)) + if (EX_ISSYNC(exp)) host_err = nfsd_sync_dir(dentry); out_nfserr: @@ -1985,7 +2003,8 @@ return ERR_PTR(-EOPNOTSUPP); } - size = nfsd_getxattr(fhp->fh_dentry, name, &value); + size = nfsd_getxattr(fhp->fh_dentry, fhp->fh_export->ex_mnt, name, + &value); if (size < 0) return ERR_PTR(size); @@ -1997,6 +2016,7 @@ int nfsd_set_posix_acl(struct svc_fh *fhp, int type, struct posix_acl *acl) { + struct vfsmount *mnt; struct inode *inode = fhp->fh_dentry->d_inode; char *name; void *value = NULL; @@ -2029,13 +2049,16 @@ } else size = 0; + mnt = fhp->fh_export->ex_mnt; if (size) - error = vfs_setxattr(fhp->fh_dentry, name, value, size, 0); + error = vfs_setxattr(fhp->fh_dentry, mnt, name, value, size, 0, + NULL); else { if (!S_ISDIR(inode->i_mode) && type == ACL_TYPE_DEFAULT) error = 0; else { - error = vfs_removexattr(fhp->fh_dentry, name); + error = vfs_removexattr(fhp->fh_dentry, mnt, name, + NULL); if (error == -ENODATA) error = 0; } --- linux-2.6.24.orig/fs/nfsd/nfs4state.c +++ linux-2.6.24/fs/nfsd/nfs4state.c @@ -948,6 +948,7 @@ } move_to_confirmed(unconf); conf = unconf; + nfsd4_probe_callback(conf); status = nfs_ok; } } else if ((!conf || (conf && !same_verf(&conf->cl_confirm, &confirm))) @@ -965,8 +966,6 @@ status = nfserr_clid_inuse; } out: - if (!status) - nfsd4_probe_callback(conf); nfs4_unlock_state(); return status; } --- linux-2.6.24.orig/fs/nfsd/nfsfh.c +++ linux-2.6.24/fs/nfsd/nfsfh.c @@ -231,6 +231,7 @@ fhp->fh_dentry = dentry; fhp->fh_export = exp; nfsd_nr_verified++; + cache_get(&exp->h); } else { /* * just rechecking permissions @@ -240,6 +241,7 @@ dprintk("nfsd: fh_verify - just checking\n"); dentry = fhp->fh_dentry; exp = fhp->fh_export; + cache_get(&exp->h); /* * Set user creds for this exportpoint; necessary even * in the "just checking" case because this may be a @@ -251,8 +253,6 @@ if (error) goto out; } - cache_get(&exp->h); - error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type); if (error) --- linux-2.6.24.orig/fs/nfsd/nfs4recover.c +++ linux-2.6.24/fs/nfsd/nfs4recover.c @@ -154,7 +154,8 @@ dprintk("NFSD: nfsd4_create_clid_dir: DIRECTORY EXISTS\n"); goto out_put; } - status = vfs_mkdir(rec_dir.dentry->d_inode, dentry, S_IRWXU); + status = vfs_mkdir(rec_dir.dentry->d_inode, dentry, rec_dir.mnt, + S_IRWXU); out_put: dput(dentry); out_unlock: @@ -258,7 +259,7 @@ return -EINVAL; } mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT); - status = vfs_unlink(dir->d_inode, dentry); + status = vfs_unlink(dir->d_inode, dentry, rec_dir.mnt); mutex_unlock(&dir->d_inode->i_mutex); return status; } @@ -273,7 +274,7 @@ * a kernel from the future.... */ nfsd4_list_rec_dir(dentry, nfsd4_remove_clid_file); mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT); - status = vfs_rmdir(dir->d_inode, dentry); + status = vfs_rmdir(dir->d_inode, dentry, rec_dir.mnt); mutex_unlock(&dir->d_inode->i_mutex); return status; } --- linux-2.6.24.orig/fs/nfsd/nfs4acl.c +++ linux-2.6.24/fs/nfsd/nfs4acl.c @@ -443,7 +443,7 @@ * enough space for either: */ alloc = sizeof(struct posix_ace_state_array) - + cnt*sizeof(struct posix_ace_state); + + cnt*sizeof(struct posix_user_ace_state); state->users = kzalloc(alloc, GFP_KERNEL); if (!state->users) return -ENOMEM; --- linux-2.6.24.orig/fs/nfsd/nfs4xdr.c +++ linux-2.6.24/fs/nfsd/nfs4xdr.c @@ -1496,7 +1496,7 @@ } if (bmval0 & (FATTR4_WORD0_ACL | FATTR4_WORD0_ACLSUPPORT | FATTR4_WORD0_SUPPORTED_ATTRS)) { - err = nfsd4_get_nfs4_acl(rqstp, dentry, &acl); + err = nfsd4_get_nfs4_acl(rqstp, dentry, exp->ex_mnt, &acl); aclsupport = (err == 0); if (bmval0 & FATTR4_WORD0_ACL) { if (err == -EOPNOTSUPP) --- linux-2.6.24.orig/init/initramfs.c +++ linux-2.6.24/init/initramfs.c @@ -541,6 +541,28 @@ #endif +#ifdef CONFIG_ACPI_CUSTOM_DSDT_INITRD +/* Tries to read the initramfs if it's already there, for ACPI Table Overiding */ +void __init early_populate_rootfs(void) +{ + char *err = unpack_to_rootfs(__initramfs_start, + __initramfs_end - __initramfs_start, 0); + if (err) + return; +#ifdef CONFIG_BLK_DEV_INITRD + if (initrd_start) { + printk(KERN_INFO "Early unpacking initramfs..."); + err = unpack_to_rootfs((char *)initrd_start, + initrd_end - initrd_start, 0); + if (err) + return; + printk(" done\n"); + } +#endif + return; +} +#endif /* CONFIG_ACPI_CUSTOM_DSDT_INITRD */ + static int __init populate_rootfs(void) { char *err = unpack_to_rootfs(__initramfs_start, --- linux-2.6.24.orig/init/Kconfig +++ linux-2.6.24/init/Kconfig @@ -92,6 +92,15 @@ which is done within the script "scripts/setlocalversion".) +config VERSION_SIGNATURE + string "Arbitrary version signature" + help + This string will be created in a file, /proc/version_signature. It + is useful in determining arbitrary data about your kernel. For instance, + if you have several kernels of the same version, but need to keep track + of a revision of the same kernel, but not affect it's ability to load + compatible modules, this is the easiest way to do that. + config SWAP bool "Support for paging of anonymous memory (swap)" depends on MMU && BLOCK --- linux-2.6.24.orig/init/version.c +++ linux-2.6.24/init/version.c @@ -36,7 +36,11 @@ /* FIXED STRINGS! Don't touch! */ const char linux_banner[] = "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@" - LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n"; + LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION +#ifdef CONFIG_VERSION_SIGNATURE + " (" CONFIG_VERSION_SIGNATURE ")" +#endif + "\n"; const char linux_proc_banner[] = "%s version %s" --- linux-2.6.24.orig/init/main.c +++ linux-2.6.24/init/main.c @@ -91,8 +91,12 @@ extern void free_initmem(void); #ifdef CONFIG_ACPI extern void acpi_early_init(void); +#ifdef CONFIG_BLK_DEV_INITRD +extern void early_populate_rootfs(void); +#endif #else static inline void acpi_early_init(void) { } +static inline void early_populate_rootfs(void) { } #endif #ifndef CONFIG_DEBUG_RODATA static inline void mark_rodata_ro(void) { } @@ -642,6 +646,9 @@ check_bugs(); +#ifdef CONFIG_BLK_DEV_INITRD + early_populate_rootfs(); /* For DSDT override from initramfs */ +#endif acpi_early_init(); /* before LAPIC and SMP init */ /* Do the rest non-__init'ed, we're now alive */ --- linux-2.6.24.orig/Makefile +++ linux-2.6.24/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 24 -EXTRAVERSION = .2 +EXTRAVERSION = .6 NAME = Err Metey! A Heury Beelge-a Ret! # *DOCUMENTATION* @@ -189,7 +189,7 @@ # Alternatively CROSS_COMPILE can be set in the environment. # Default value for CROSS_COMPILE is not to prefix executables # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile - +export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= $(SUBARCH) CROSS_COMPILE ?= @@ -297,9 +297,17 @@ # Make variables (CC, etc...) +CC = $(CROSS_COMPILE)gcc + +# +# gcc-4.2 won't build powerpc64-smp or ia64. +# +ifneq (,$(findstring $(ARCH), powerpc ia64)) +CC = gcc-4.1 +endif + AS = $(CROSS_COMPILE)as LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc CPP = $(CC) -E AR = $(CROSS_COMPILE)ar NM = $(CROSS_COMPILE)nm @@ -313,6 +321,7 @@ PERL = perl CHECK = sparse + CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise $(CF) MODFLAGS = -DMODULE CFLAGS_MODULE = $(MODFLAGS) @@ -321,10 +330,17 @@ CFLAGS_KERNEL = AFLAGS_KERNEL = +# Prefer linux-ubuntu-modules and linux-backports-modules +ifneq ($(KBUILD_SRC),) +ifneq ($(shell if test -e $(KBUILD_OUTPUT)/ubuntu-build; then echo yes; fi),yes) +UBUNTUINCLUDE := -I/usr/src/linux-headers-lum-$(KERNELRELEASE) \ + -I/usr/src/linux-headers-lbm-$(KERNELRELEASE) +endif +endif # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option -LINUXINCLUDE := -Iinclude \ +LINUXINCLUDE := $(UBUNTUINCLUDE) -Iinclude \ $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include) \ -include include/linux/autoconf.h @@ -332,7 +348,8 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common \ - -Werror-implicit-function-declaration + -Werror-implicit-function-declaration \ + -fno-delete-null-pointer-checks KBUILD_AFLAGS := -D__ASSEMBLY__ # Read KERNELRELEASE from include/config/kernel.release (if it exists) --- linux-2.6.24.orig/ipc/mqueue.c +++ linux-2.6.24/ipc/mqueue.c @@ -744,7 +744,7 @@ if (inode) atomic_inc(&inode->i_count); - err = vfs_unlink(dentry->d_parent->d_inode, dentry); + err = vfs_unlink(dentry->d_parent->d_inode, dentry, mqueue_mnt); out_err: dput(dentry); --- linux-2.6.24.orig/ipc/shm.c +++ linux-2.6.24/ipc/shm.c @@ -630,11 +630,15 @@ struct address_space *mapping = inode->i_mapping; *rss += (HPAGE_SIZE/PAGE_SIZE)*mapping->nrpages; } else { +#ifdef CONFIG_SHMEM struct shmem_inode_info *info = SHMEM_I(inode); spin_lock(&info->lock); *rss += inode->i_mapping->nrpages; *swp += info->swapped; spin_unlock(&info->lock); +#else + *rss += inode->i_mapping->nrpages; +#endif } total++; --- linux-2.6.24.orig/sound/pci/hda/patch_sigmatel.c +++ linux-2.6.24/sound/pci/hda/patch_sigmatel.c @@ -76,6 +76,7 @@ STAC_INTEL_MAC_V1, STAC_INTEL_MAC_V2, STAC_INTEL_MAC_V3, + STAC_INTEL_MAC_V3_S, STAC_INTEL_MAC_V4, STAC_INTEL_MAC_V5, /* for backward compatibility */ @@ -858,6 +859,12 @@ 0x400000fc, 0x400000fb, }; +static unsigned int intel_mac_v3_s_pin_configs[10] = { + 0x012b4050, 0x90a00110, 0x90100140, 0x400000f0, + 0x400000f0, 0x010b3020, 0x014be060, 0x01cbe030, + 0x400000f0, 0x400000f0, +}; + static unsigned int intel_mac_v4_pin_configs[10] = { 0x0321e21f, 0x03a1e02e, 0x9017e110, 0x9017e11f, 0x400000fe, 0x0381e020, 0x1345e230, 0x13c5e240, @@ -878,6 +885,7 @@ [STAC_INTEL_MAC_V1] = intel_mac_v1_pin_configs, [STAC_INTEL_MAC_V2] = intel_mac_v2_pin_configs, [STAC_INTEL_MAC_V3] = intel_mac_v3_pin_configs, + [STAC_INTEL_MAC_V3_S] = intel_mac_v3_s_pin_configs, [STAC_INTEL_MAC_V4] = intel_mac_v4_pin_configs, [STAC_INTEL_MAC_V5] = intel_mac_v5_pin_configs, /* for backward compatibility */ @@ -2587,7 +2595,10 @@ case 0x106b1700: case 0x106b0200: case 0x106b1e00: - spec->board_config = STAC_INTEL_MAC_V3; + if (codec->revision_id == 0x103401)/*LP: #87253*/ + spec->board_config = STAC_INTEL_MAC_V3_S; + else + spec->board_config = STAC_INTEL_MAC_V3; break; case 0x106b1a00: case 0x00000100: --- linux-2.6.24.orig/sound/pci/hda/hda_intel.c +++ linux-2.6.24/sound/pci/hda/hda_intel.c @@ -555,7 +555,8 @@ } if (!chip->rirb.cmds) return chip->rirb.res; /* the last value */ - schedule_timeout_uninterruptible(1); + udelay(10); + cond_resched(); } while (time_after_eq(timeout, jiffies)); if (chip->msi) { --- linux-2.6.24.orig/sound/core/seq/oss/seq_oss_synth.c +++ linux-2.6.24/sound/core/seq/oss/seq_oss_synth.c @@ -599,6 +599,9 @@ { struct seq_oss_synth *rec; + if (dev < 0 || dev >= dp->max_synthdev) + return -ENXIO; + if (dp->synths[dev].is_midi) { struct midi_info minf; snd_seq_oss_midi_make_info(dp, dp->synths[dev].midi_mapped, &minf); --- linux-2.6.24.orig/debian/control.d/vars.virtual +++ linux-2.6.24/debian/control.d/vars.virtual @@ -0,0 +1,7 @@ +arch="i386" +supported="Virtual" +target="Geared toward virtualised hardware." +desc="x86" +bootloader="lilo (>= 19.1) | grub" +provides="kvm-api-4, redhat-cluster-modules" +do_debug="Yes" --- linux-2.6.24.orig/debian/control.d/vars.mckinley +++ linux-2.6.24/debian/control.d/vars.mckinley @@ -0,0 +1,9 @@ +supported="Itanium II SMP" +target="Geared toward desktop or server systems." +desc="Itanium II SMP" +bootloader="elilo (>= 3.6-1)" +provides="redhat-cluster-modules, ivtv-modules" +arch="ia64" + +# Keep in sync with debian/control.stub.in Build-Depends. +header_depends="gcc-4.1," --- linux-2.6.24.orig/debian/control.d/vars.sparc64-smp +++ linux-2.6.24/debian/control.d/vars.sparc64-smp @@ -0,0 +1,6 @@ +supported="64-bit UltraSPARC SMP" +target="Geared toward desktop or server systems." +desc="64-bit UltraSPARC SMP" +bootloader="silo" +provides="redhat-cluster-modules, ivtv-modules" +arch="sparc" --- linux-2.6.24.orig/debian/control.d/vars.hppa32 +++ linux-2.6.24/debian/control.d/vars.hppa32 @@ -0,0 +1,9 @@ +supported="32-bit HP PA-RISC SMP" +target="Geared toward desktop or server systems." +desc="32-bit HP PA-RISC SMP" +bootloader="palo" +provides="redhat-cluster-modules" +arch="hppa" + +# Keep in sync with debian/control.stub.in Build-Depends. +header_depends="gcc-4.1," --- linux-2.6.24.orig/debian/control.d/vars.server +++ linux-2.6.24/debian/control.d/vars.server @@ -0,0 +1,7 @@ +arch="i386 amd64" +supported="Server" +target="Geared toward server systems." +desc="x86/x86_64" +bootloader="lilo (>= 19.1) | grub" +provides="redhat-cluster-modules, kvm-api-4, ivtv-modules" +do_debug="Yes" --- linux-2.6.24.orig/debian/control.d/flavour-control.stub +++ linux-2.6.24/debian/control.d/flavour-control.stub @@ -0,0 +1,52 @@ +# Items that get replaced: +# FLAVOUR +# DESC +# ARCH +# SUPPORTED +# TARGET +# BOOTLOADER +# =PROVIDES= +# =HEADER_DEPENDS= +# +# Items marked with =FOO= are optional +# +# XXX: Leave the blank line before the first package!! + +Package: linux-image-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: SECTION_IMAGE +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, =PROVIDES= +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: BOOTLOADER +Suggests: fdutils, linux-doc-PKGVER | linux-source-PKGVER +Description: Linux kernel image for version PKGVER on DESC + This package contains the Linux kernel image for version PKGVER on + DESC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports SUPPORTED processors. + . + TARGET + . + You likely do not want to install this package directly. Instead, install + the linux-FLAVOUR meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: SECTION_HEADERS +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-PKGVER-ABINUM, =HEADER_DEPENDS= ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version PKGVER on DESC + This package provides kernel header files for version PKGVER on + DESC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details. --- linux-2.6.24.orig/debian/control.d/vars.generic +++ linux-2.6.24/debian/control.d/vars.generic @@ -0,0 +1,7 @@ +arch="i386 amd64" +supported="Generic" +target="Geared toward desktop systems." +desc="x86/x86_64" +bootloader="lilo (>= 19.1) | grub" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" +do_debug="Yes" --- linux-2.6.24.orig/debian/control.d/vars.powerpc +++ linux-2.6.24/debian/control.d/vars.powerpc @@ -0,0 +1,9 @@ +supported="32-bit PowerPC" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" + +# Keep in sync with debian/control.stub.in Build-Depends. +header_depends="gcc-4.1," --- linux-2.6.24.orig/debian/control.d/vars.386 +++ linux-2.6.24/debian/control.d/vars.386 @@ -0,0 +1,7 @@ +supported="Alternate x86 (486 and better)" +target="Geared toward desktop systems." +desc="i386" +bootloader="lilo (>= 19.1) | grub" +provides="kvm-api-4, ivtv-modules" +arch=i386 +do_debug="Yes" --- linux-2.6.24.orig/debian/control.d/vars.powerpc64-smp +++ linux-2.6.24/debian/control.d/vars.powerpc64-smp @@ -0,0 +1,9 @@ +supported="64-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="64-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" + +# Keep in sync with debian/control.stub.in Build-Depends. +header_depends="gcc-4.1," --- linux-2.6.24.orig/debian/control.d/vars.hppa64 +++ linux-2.6.24/debian/control.d/vars.hppa64 @@ -0,0 +1,9 @@ +supported="64-bit HP PA-RISC SMP" +target="Geared toward desktop or server systems." +desc="64-bit HP PA-RISC SMP" +bootloader="palo" +provides="redhat-cluster-modules" +arch="hppa" + +# Keep in sync with debian/control.stub.in Build-Depends. +header_depends="gcc-4.1-hppa64, binutils-hppa64," --- linux-2.6.24.orig/debian/control.d/vars.sparc64 +++ linux-2.6.24/debian/control.d/vars.sparc64 @@ -0,0 +1,6 @@ +supported="64-bit UltraSPARC" +target="Geared toward desktop or server systems." +desc="64-bit UltraSPARC" +bootloader="silo" +provides="redhat-cluster-modules, ivtv-modules" +arch="sparc" --- linux-2.6.24.orig/debian/control.d/vars.itanium +++ linux-2.6.24/debian/control.d/vars.itanium @@ -0,0 +1,9 @@ +supported="Itanium SMP" +target="Geared toward desktop or server systems." +desc="Itanium SMP" +bootloader="elilo (>= 3.6-1)" +provides="redhat-cluster-modules, ivtv-modules" +arch="ia64" + +# Keep in sync with debian/control.stub.in Build-Depends. +header_depends="gcc-4.1," --- linux-2.6.24.orig/debian/control.d/vars.powerpc-smp +++ linux-2.6.24/debian/control.d/vars.powerpc-smp @@ -0,0 +1,9 @@ +supported="32-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" + +# Keep in sync with debian/control.stub.in Build-Depends. +header_depends="gcc-4.1," --- linux-2.6.24.orig/debian/control.d/flavour-control-debug.stub +++ linux-2.6.24/debian/control.d/flavour-control-debug.stub @@ -0,0 +1,26 @@ +# Items that get replaced: +# FLAVOUR +# DESC +# ARCH +# SUPPORTED +# TARGET +# BOOTLOADER +# =PROVIDES= +# +# Items marked with =FOO= are optional +# +# XXX: Leave the blank line before the first package!! + +Package: linux-image-debug-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version PKGVER on DESC + This package provides a kernel debug image for version PKGVER on + DESC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. --- linux-2.6.24.orig/debian/control +++ linux-2.6.24/debian/control @@ -0,0 +1,839 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 3), module-init-tools, kernel-wedge (>= 2.24ubuntu1), gcc-4.1-hppa64 [hppa], binutils-hppa64 [hppa], device-tree-compiler [powerpc], gcc-4.1 [powerpc ia64], gawk [amd64 i386] +Build-Depends-Indep: xmlto, docbook-utils, gs, transfig, bzip2, sharutils + +Package: linux-kernel-devel +Architecture: all +Section: devel +Priority: optional +Depends: build-essential, git-core, gitk, rsync, curl, openssh-client, debhelper, kernel-package, kernel-wedge +Description: Linux kernel hacking dependencies + This is a dummy package that will install all possible packages + required to hack comfortably on the kernel. + +Package: linux-source-2.6.24 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.24 with Ubuntu patches + This package provides the source code for the Linux kernel version 2.6.24. + . + You may configure the kernel to your setup by typing "make config" and + following instructions, but you could get ncursesX.X-dev and try "make + menuconfig" for a jazzier, and easier to use interface. There are options + to use QT or GNOME based configuration interfaces, but they need + additional packages to be installed. Also, please read the detailed + documentation in the file + /usr/share/doc/linux-source-2.6.24/README.headers.gz. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc-2.6.24 +Architecture: all +Section: doc +Priority: optional +Provides: linux-doc-2.6 +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Depends: coreutils | fileutils (>= 4.0) +Description: Linux kernel specific documentation for version 2.6.24 + This package provides the various readme's in the 2.6.24 kernel + Documentation/ subdirectory: these typically contain kernel-specific + installation notes for some drivers for example. See + /usr/share/doc/linux-doc-2.6.24/Documentation/00-INDEX for a list of what + is contained in each file. Please read the Changes file, as it contains + information about the problems, which may result by upgrading your + kernel. + +Package: linux-headers-2.6.24-24 +Architecture: all +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.24 + This package provides kernel header files for version 2.6.24, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details + +Package: linux-libc-dev +Architecture: amd64 i386 powerpc sparc ia64 hppa lpia +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers +Provides: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. + +Package: linux-image-2.6.24-24-386 +Architecture: i386 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on i386 + This package contains the Linux kernel image for version 2.6.24 on + i386. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Alternate x86 (486 and better) processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-386 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-386 +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on i386 + This package provides kernel header files for version 2.6.24 on + i386. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-386 +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on i386 + This package provides a kernel debug image for version 2.6.24 on + i386. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-generic +Architecture: i386 amd64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.24 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on x86/x86_64 + This package provides kernel header files for version 2.6.24 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on x86/x86_64 + This package provides a kernel debug image for version 2.6.24 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-hppa32 +Architecture: hppa +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 32-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.24 on + 32-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa32 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-hppa32 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 32-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.24 on + 32-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-hppa64 +Architecture: hppa +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.24 on + 64-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-hppa64 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1-hppa64, binutils-hppa64, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.24 on + 64-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-itanium +Architecture: ia64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Itanium SMP + This package contains the Linux kernel image for version 2.6.24 on + Itanium SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-itanium meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-itanium +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Itanium SMP + This package provides kernel header files for version 2.6.24 on + Itanium SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-mckinley +Architecture: ia64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Itanium II SMP + This package contains the Linux kernel image for version 2.6.24 on + Itanium II SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium II SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-mckinley meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-mckinley +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Itanium II SMP + This package provides kernel header files for version 2.6.24 on + Itanium II SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-powerpc +Architecture: powerpc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.24 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 32-bit PowerPC + This package provides kernel header files for version 2.6.24 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-powerpc64-smp +Architecture: powerpc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.24 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.24 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-powerpc-smp +Architecture: powerpc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.24 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.24 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-server +Architecture: i386 amd64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, kvm-api-4, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.24 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on x86/x86_64 + This package provides kernel header files for version 2.6.24 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on x86/x86_64 + This package provides a kernel debug image for version 2.6.24 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-sparc64 +Architecture: sparc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit UltraSPARC + This package contains the Linux kernel image for version 2.6.24 on + 64-bit UltraSPARC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-sparc64 +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit UltraSPARC + This package provides kernel header files for version 2.6.24 on + 64-bit UltraSPARC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-sparc64-smp +Architecture: sparc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit UltraSPARC SMP + This package contains the Linux kernel image for version 2.6.24 on + 64-bit UltraSPARC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-sparc64-smp +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit UltraSPARC SMP + This package provides kernel header files for version 2.6.24 on + 64-bit UltraSPARC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-virtual +Architecture: i386 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on x86 + This package contains the Linux kernel image for version 2.6.24 on + x86. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Virtual processors. + . + Geared toward virtualised hardware. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-virtual +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on x86 + This package provides kernel header files for version 2.6.24 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-virtual +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on x86 + This package provides a kernel debug image for version 2.6.24 on + x86. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-lpia +Architecture: lpia +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Ubuntu Moblie and Embedded LPIA edition + This package contains the Linux kernel image for version 2.6.24 on + Ubuntu Moblie and Embedded LPIA edition. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports UME processors. + . + UME kernel + . + You likely do not want to install this package directly. Instead, install + the linux-lpia meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-lpia +Architecture: lpia +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Ubuntu Moblie and Embedded LPIA edition + This package provides kernel header files for version 2.6.24 on + Ubuntu Moblie and Embedded LPIA edition. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-rt +Architecture: i386 amd64 +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Ingo Molnar's full real time preemption patch (2.6.24.7-rt27) + This package contains the Linux kernel image for version 2.6.24 on + Ingo Molnar's full real time preemption patch (2.6.24.7-rt27). + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + RT kernel + . + You likely do not want to install this package directly. Instead, install + the linux-rt meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-rt +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Ingo Molnar's full real time preemption patch (2.6.24.7-rt27) + This package provides kernel header files for version 2.6.24 on + Ingo Molnar's full real time preemption patch (2.6.24.7-rt27). + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-lpiacompat +Architecture: lpia +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Ubuntu Moblie and Embedded-x86 compat edition + This package contains the Linux kernel image for version 2.6.24 on + Ubuntu Moblie and Embedded-x86 compat edition. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports UME processors. + . + UME kernel + . + You likely do not want to install this package directly. Instead, install + the linux-lpiacompat meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-lpiacompat +Architecture: lpia +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Ubuntu Moblie and Embedded-x86 compat edition + This package provides kernel header files for version 2.6.24 on + Ubuntu Moblie and Embedded-x86 compat edition. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-xen +Architecture: i386 amd64 +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on This kernel can be used for Xen dom0 and domU + This package contains the Linux kernel image for version 2.6.24 on + This kernel can be used for Xen dom0 and domU. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Xen domO/domU + . + You likely do not want to install this package directly. Instead, install + the linux-xen meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-xen +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on This kernel can be used for Xen dom0 and domU + This package provides kernel header files for version 2.6.24 on + This kernel can be used for Xen dom0 and domU. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-openvz +Architecture: i386 amd64 +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on OpenVZ Virtualization enabled kernel + This package contains the Linux kernel image for version 2.6.24 on + OpenVZ Virtualization enabled kernel. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + OpenVZ kernel + . + You likely do not want to install this package directly. Instead, install + the linux-openvz meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-openvz +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on OpenVZ Virtualization enabled kernel + This package provides kernel header files for version 2.6.24 on + OpenVZ Virtualization enabled kernel. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. --- linux-2.6.24.orig/debian/stamps/keep-dir +++ linux-2.6.24/debian/stamps/keep-dir @@ -0,0 +1 @@ +Place holder --- linux-2.6.24.orig/debian/copyright +++ linux-2.6.24/debian/copyright @@ -0,0 +1,30 @@ +This is the Ubuntu prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +and others. + +This package was put together by the Ubuntu Kernel Team, from +sources retrieved from upstream linux git. +The sources may be found at most Linux ftp sites, including +ftp://ftp.kernel.org/pub/linux/kernel/ + +This package is currently maintained by the +Ubuntu Kernel Team + +Linux is copyrighted by Linus Torvalds and others. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. + +On Ubuntu Linux systems, the complete text of the GNU General +Public License v2 can be found in `/usr/share/common-licenses/GPL-2'. --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/virtual +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/virtual @@ -0,0 +1,5224 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0x1e3ebd5b acpi_processor_notify_smm +EXPORT_SYMBOL drivers/acpi/processor 0xb9299c55 acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/acpi/processor 0xeacddb89 acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xfe459f2a acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/loop 0xfc5f11d0 loop_register_transfer +EXPORT_SYMBOL drivers/cdrom/cdrom 0x3c68ee64 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0x43982b05 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x72e88f9a cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0x99fc1981 cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0xaeb68f98 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb2f99e7a cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb93879f7 cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcab41b0a unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xd73d00c6 cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0xeb7051af cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0xfdd630c4 cdrom_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x00d66bd5 agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0927e2ad agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1adcf810 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2c73aaee agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3ca9559f agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3d2409da agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x487c893c agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4914c2e8 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4e3b81ad agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5960cb8c agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5c259c54 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5cc6b640 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6482a267 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x71377927 agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x78c33b26 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x84a4f91b agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x85005979 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x857917eb agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x98f36c5f agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9a7cb40b agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9cd2cb96 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa6639853 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaf8149cf agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbca08b65 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbd02c33b agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc0a58449 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xca7430f3 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xee9292c9 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xfe737137 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0133ea31 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x01ee83c4 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0a7e8369 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x104c9be4 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x24651ae4 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x286cbd1d ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x289de618 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2c5a5ca4 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4020b1a2 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4508e16b ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4be41847 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x579fcb16 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7a238115 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x89357bef ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8baa787e ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9139c85d ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9352884e ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa578f749 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xad526be6 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbda72dfa ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdd7bab66 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xddb8950d ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe23d5dba ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe76815f1 ipmi_register_smi +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0xa3201add cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0xfa585d41 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0xc2ceb9a0 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x4acaa3bf i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xdb11dacc i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x0cd495f8 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x6a73bb6f i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x087fbdb3 i2c_put_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x1abadcc0 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x1cc2d73a i2c_detach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x1d6b487a i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x2ac6b715 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x37d4dfe1 i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0x38a7fffa i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x44d802a4 i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4b0e9e87 i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x5334d9a1 i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x65ec0eab i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x67beeee5 i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x685c52a6 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x6cd694ce i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x71b7d9ab i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x73763ef5 i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x772a77d3 i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x7b042d09 i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0x90dcdd42 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb1a5d243 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xbabcbff6 i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc16ee86e i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc1852b4f i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc6f8dc3a i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe21e2d25 i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf9c73d4b i2c_attach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xfb555651 i2c_master_send +EXPORT_SYMBOL drivers/input/gameport/gameport 0x28eb829d gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x30c0b60b gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x51f1f05f gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5f073ded gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x955e8f9c gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa044c633 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaa4f940b __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbfe738ae gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe97433de gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf9d2ea0b gameport_close +EXPORT_SYMBOL drivers/md/dm-mirror 0x255b1fca dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x296a2e64 dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x91af764a dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xa5a577ce dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x073c2d47 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0x29f8e12f dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x2d85570b dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x38db8f0a dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x3dcc2817 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0x4278f1fc dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0x47b51ceb dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x4cdb713b kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x64ed4db4 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x80c9ecb7 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x8d5e1633 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0x9a6ac8c4 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0xb1f049ff kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xb60e2d50 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xb9ce53d5 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0xbc95ed8f dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0xbcc9faf0 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc8ef8e0c dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xcdc8ff26 dm_table_get +EXPORT_SYMBOL drivers/md/md-mod 0x04632604 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x06faeb80 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x2a79d4da bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x2deb1e3c md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x503c5339 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x5f0d9acb md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x61f09bf3 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x74db4db8 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x7840b088 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x7a6f2049 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x8de74ffd md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xb4a14e6a md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xba266fc3 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xe1947a35 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xe70d57e9 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xe7175a02 md_error +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x025ff5fe mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0c356695 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0d12c22d mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1dadddf4 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e064c64 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x245d2f77 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x26df50a3 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6cd3712b mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x83615c79 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x84e1e565 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88c31951 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8e306db4 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94d40d3b mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ff58491 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa5216112 mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xafc50d9e mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb2f5dd0b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb7997702 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbaa0f999 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdbee6d42 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe94f4bef mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe9a87752 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3feb0b1 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xff3c839c mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x18c60cdf mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c89a9ac mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2950054a mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2abeb1bb mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2fd9e208 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x371a136d mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4597cd7f mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46af70cb mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5079990c mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x55075de9 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5576904b mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5e8dc0f2 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x633e7289 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7f5278b1 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7febb19f mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x851e6ffb mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa473d87c mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4d3f19c mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc4d334c5 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc7fdf53c mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6d31f2a mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdd388ffe mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe7fd5a5a mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfd0c1492 mptscsih_host_reset +EXPORT_SYMBOL drivers/net/8390 0x048c5155 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x264d0dc4 ei_close +EXPORT_SYMBOL drivers/net/8390 0x5ed91ccb __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x843dfb35 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x98ae87c8 ei_open +EXPORT_SYMBOL drivers/net/mii 0x133a72e2 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x190cb268 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x2f11a123 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x4bf04d6d mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x643477f8 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xb217cb15 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xc68cffcb mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xf1498bda mii_check_gmii_support +EXPORT_SYMBOL drivers/net/phy/libphy 0x018daf49 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x05e87e44 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x132cf2b2 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x166d0f4a phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0x29eeda64 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x43974226 phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x4bc3dc70 phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x665c5ebb phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x6829be74 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x77779e63 phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x78332c00 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x81c560f9 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x859d6ad9 phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x8d98c8ad phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x8faeb700 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0xa245c582 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0xa62bb05b phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0xafb0c58a phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xb996d896 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0xc04f2a34 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xd0dd3b32 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xe315c2bd phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xebf48019 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0xec19a310 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xf6cd8d3e mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xf9ddc895 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0xfc683de0 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xff75fd22 genphy_config_aneg +EXPORT_SYMBOL drivers/net/ppp_generic 0x2a211686 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x31030f61 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x7d6f0c37 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x8c614730 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x9886e51d ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0xe0ee34df ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xec5865a9 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xee0aca08 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xf3d4dd7d ppp_output_wakeup +EXPORT_SYMBOL drivers/net/pppox 0x221eefac pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0x815b4022 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xbbeea337 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/parport/parport 0x01d87a57 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x028ece0e parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x096f0542 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x0c199627 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x0ce03d67 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x0f0c0318 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x1383a595 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x2092d3f3 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x272886d4 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x2a9a2233 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x392d2e58 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x3c077571 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4c30ed9f parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x52364175 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x591f49b1 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x5f2a5f0d parport_release +EXPORT_SYMBOL drivers/parport/parport 0x64b2a977 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x65041ecf parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x81407eb0 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x9458a138 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x95f467c9 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xb8598f71 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbd8380d4 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xc32d940d parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xcd0fac54 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xdb92fb16 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xe89911dc parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xec5cdc9b parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xee229786 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xf5946c6d parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport_pc 0x30cd7566 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xeef0a7e6 parport_pc_probe_port +EXPORT_SYMBOL drivers/scsi/raid_class 0xc37ea6b2 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xf6f9febd raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xf80b3309 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x019ef4f9 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0bbe5576 scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0e8a88ce scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1100e72d scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1304c98e scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1d0aaf41 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x20c6b800 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x235bb679 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2371e7eb scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b784cbe __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d653ccd scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d92b518 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x31426c38 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3360e0f5 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3643df31 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x377204f0 scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3b1d1935 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3d306f90 scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3f36a8d0 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x40478e3b scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4387b38c scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x45227003 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4fe53d6c __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5186296d scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x51aed3ab scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x52daadbd scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x58aa0fbc scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6172bd30 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6b7a77ca scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6c6f12f2 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6c9437c1 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6d30f68b __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6dc27733 scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x70727f58 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x71d3ccf3 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7534b582 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x79b3c6ce scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7faa7552 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8352a472 scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8578784f scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8d55e389 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8e1f3b36 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8f5475fc scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x91ab9596 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x976c88b7 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9bdf9236 scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9c5e6fdf scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9de48e05 scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa32a4568 scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa466e1ea scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa704a8e8 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa97db3be scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb476104c scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb634f6fe __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb641ed72 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbb1b9567 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbb859f2a scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbdd6ca07 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc1048bbd scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc96bd0f8 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcd13e7e3 scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd1309dd9 scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd6756adc scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd6c581c8 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xda881103 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdcb60d62 scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xde062774 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdf9667db scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe2959a8b scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe4041463 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf07d596a scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf6195879 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf79f3198 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf7f3815b scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfb53ad47 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfc25bb35 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfd6dd94f scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfe42073e scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x02cb06c3 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0b33c325 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2339a477 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3197e522 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x585f13aa scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6d83b6a3 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x73c1be12 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb040ff38 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc86c5ea fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc211621b fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd4e4ff02 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x154fa4d7 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x27ab4128 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x287f6e86 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x373d5f12 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37822dff sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ec85d95 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x42c00000 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x74b25698 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c343f1b sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7dc6c6f4 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ed833d0 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x80185cc1 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83a592b7 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x991f4aa8 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9edb457c sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad578506 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf8c2eed sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6a7b0fd scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6e4c041 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4675ea2 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcd579e6c sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcf065807 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb13f10c sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed856362 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6a26a05 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfb290e05 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x42993b73 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x50a46972 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8edbb101 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb8264a3d spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf84b2cf9 spi_attach_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x06e1acd5 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x082462c4 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x279d6410 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x4a22320c ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x63d56250 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x72c1acad ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x8844164c ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x90ada902 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x914d4549 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x91f50c88 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xaadb0a4c ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xb957cc66 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdf329ea8 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf34202e7 ssb_set_devtypedata +EXPORT_SYMBOL drivers/usb/core/usbcore 0x092974fe usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0ec8963d usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1063ee02 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x13f573f4 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x161187b8 usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x17b01510 usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x17fe9b6d usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1c43f871 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1d15eb33 usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1d963931 usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1f8bb108 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x21acffb5 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2966aa68 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3c7b083a usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x400ec7c8 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x475c4330 usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4beee76a usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5c289032 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x661eefeb usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6d66007f usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7ba7ce0b usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7ec6f904 usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8617ff8f usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8be75758 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8fdaccc0 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x907fa002 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9148f2fd usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9974085d usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9de4ba91 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa6f7c647 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xae668655 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xaf1b5580 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xaf65082e usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb3227574 usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbf52475a usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc3ea73f0 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc59ea5dd usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc5ce64e6 usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc8f5de01 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc9963b47 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcab401a7 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd43ca449 usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd449ccbc usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0xde72c946 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe47f83d3 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe5a4c2e5 usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xebb62e55 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfc6c220c usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/video/console/bitblit 0x9c934954 fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0xbb99125c get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0x77c6058c soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0x2dbfa42f fbcon_set_tileops +EXPORT_SYMBOL drivers/video/output 0x4d4250e5 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x6f4c1b3e video_output_register +EXPORT_SYMBOL drivers/video/syscopyarea 0x70805216 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xbe33405a sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x4f549492 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xca420373 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xec36aa2f w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x158e2e71 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x5df20592 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x1512e4fd config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x19ae83ce config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x2d591781 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x2dc0b56e configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x4e5ed1c0 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x580131d2 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x62591f50 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x8c086979 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x9e78d832 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd2e302bf config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xf7c8de9f config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xf885ce94 config_item_init +EXPORT_SYMBOL fs/jbd/jbd 0x01c4f891 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x1b13e4b4 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x1c832273 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x1f558b15 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x26063d76 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x26d5c47d journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x3143d272 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x374dfb82 journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x3ee2acba journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x4261c5de journal_start +EXPORT_SYMBOL fs/jbd/jbd 0x4979f064 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0x58c4503a log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x5c0669e3 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0x6fb29e21 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x758256aa journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x84a3c3c0 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x94c24a4d journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x96387de2 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0x99ad0558 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x9e7dc883 journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x9f1b294e journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0xa1343f59 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0xaaec8b15 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0xac7e95af journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0xafbf0107 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0xb12ce124 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0xb34fa8d9 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0xbed63553 journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0xbfa8ed57 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0xc26182dd journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xcc8c8d23 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xd67b6e57 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0xdbaa0327 journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xe3182998 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xe83a5c9a journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xf00bc205 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xf2b3d349 journal_errno +EXPORT_SYMBOL fs/lockd/lockd 0x1e34534c nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa28f06b4 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x0acb14ac mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0x0c2f6a95 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0x5e8d85c3 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x6181398b mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0x8c199fbd mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x95afd82d mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0x9f5fcc8f mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0xd3ea9ee1 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xd8803ee2 mb_cache_entry_find_first +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x38199f1c nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xfd4d76e1 nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/xfs/xfs 0x552d685c xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x8ffdb3b8 crc16 +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x2329b292 crc32c_be +EXPORT_SYMBOL lib/libcrc32c 0x37d0b921 crc32c_le +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x25cead1b unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0x6f2f8137 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x96989531 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x9e356e3c destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x7e0818d2 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0xe481bd41 register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x00e7e586 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x09511eb8 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x0dd710a2 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0x0f3569f7 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x15bac5b8 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1df84cae p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x4cadfc44 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x677be60e p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x6f2bca59 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x72180f92 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x7ac418ce p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x80b7d718 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x8dfa3b54 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x965d3a56 p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0xa3f4196e p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xac0aec6a p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xb2e108d7 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xbbcad1f6 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xddf65fc1 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xdf52ae2b p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xdf6ff9e3 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xe2ea3039 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xee337cfa p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xf129cb12 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xf3f95cd3 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfa7e1822 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xff052785 p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x34af52ac atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x5e9a772f alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xa45b12dd atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xab9ee0ac aarp_send_ddp +EXPORT_SYMBOL net/bridge/bridge 0x5abe8bb2 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x01048f29 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x520f02b2 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6ab83711 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6c60acf5 ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x93c63441 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xbf629732 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xcc91f981 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe321aba2 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe4c32279 ebt_register_target +EXPORT_SYMBOL net/ipv4/inet_lro 0x0b34fec6 lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x0b96058e lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x1cccd3d7 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x2753acdb lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0x2c8717db lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0xc811e7b9 lro_receive_skb +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x32cd57c7 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x34ef9740 register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x45c94801 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x63d4eccf ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa8cc8d7f ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xaf37a624 ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xb3dfb00d ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xc5658199 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd3e8d96b register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xf39be21c unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xf41bff23 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x63465c8e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x678914ff arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe988c707 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x56522333 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8fc41f35 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xae7d4594 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x133f5069 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5b1a9123 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6590e104 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9f1ca403 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd7e84982 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe68b839f nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x014b518f xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xeda5252d xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x033990eb inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x0a70f724 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x0b028240 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x0b0b8d42 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x0b54da57 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x2a068acc ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x573d4eaf inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x5a2dee79 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x6319cb81 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x6a37080f xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x70da18e5 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x78a3147b ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x7fc935e9 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x9c2741a9 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xa4c814f6 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0xa7d25bc5 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xa8c0b7f1 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xb8359bf2 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbdaf0a97 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xbe8c2c2f ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd3be6d1c ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xd4741629 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xe3a4d31b inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0xf2424f31 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xf2bd9764 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xfef02ac0 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xff91a7d8 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/tunnel6 0x423a66e4 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x4941a84e xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/llc/llc 0x2c5e1962 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL net/llc/llc 0x64b31322 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x7a7632e9 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xa76cb6e3 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xb347f9ef llc_sap_open +EXPORT_SYMBOL net/llc/llc 0xc2aab430 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xc54d999f llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xfba0c2e0 llc_sap_list_lock +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x010542e5 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x12f13e3c xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x1c7eafa3 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3b46a5c3 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x56229670 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6597a33b xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6dc1e698 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x70fd9300 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x94eea1f1 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xaed9d18f xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb671e09a xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xe003962b xt_find_match +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0beef973 gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x10ae9a82 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1ca37502 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x21f02ee3 gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x55a9013e gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x59fa242a gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7461d282 make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x79065dff gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7c8e17de svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7efd383c krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x88af4ff3 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x94a251c6 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x98f1c79f gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc0ed25b7 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf25658ab gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x01f234e5 rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02bcb8a3 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x054f55f6 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x085466c6 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x08982b05 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x09f0d347 svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0add5541 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0c5cd958 cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0cc5ae13 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x11e1137e rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x149414b9 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1f1f0999 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x21af8612 rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x21fa4931 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x21ff4338 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x26857cc9 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2d72a409 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e9748aa cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2ff1ea4d xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31808733 rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3cef9ed5 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x42ff66e5 xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x459121aa xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4b370178 rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4e913be7 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x502426fe auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x518503ce rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x55ff5053 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x580ec6ee svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5c0331a4 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x60154226 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6131b087 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x666cbd40 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x66c8364c svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6ae1d315 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71955595 rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7299abf8 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x75311b7f rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7532ea61 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x76cade8b put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x793a9494 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7ec82412 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7fc70687 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8405bc1b xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x857e6b01 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x85ad40e5 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x930fd9e5 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9393b245 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x94a4403b xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x95d2ab4e xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x95e03633 rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x96777ae6 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9cee6332 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9dc02cf4 rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa463c900 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5abddac rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5e55247 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa6090fcb svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa68b4c5b svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa6b31c33 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa7ed4dd7 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa9f9948a rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xacac5883 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb4b91217 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb54c10aa svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb86a9927 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb9089c9f rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbc4f4f91 rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbc55fbb5 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbcc7aa25 xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbd165c56 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbda9f453 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbe1acfa9 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbeb77e8c svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf2513b3 rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc2e08c46 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc398ffa6 svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc69d16f8 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xce786ebd auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd426d184 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd431f85c rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd4baafb2 xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdcdc4850 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdd75aaf0 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe021366a rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xefa7f096 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf4977f11 rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfaced80e svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfb51bba0 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfc5347d1 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0xffb15c25 xdr_init_encode +EXPORT_SYMBOL net/tipc/tipc 0x01e61721 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x08204e33 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x31568291 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8f602b1c tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x8fef2e18 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x91bf711e tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9d9f123d tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xad4ab1cc tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb1971a4e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xbdf6b6ab tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0xc4dfa91b tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe4ed0ae1 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf07c92ad tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xfccc0a4d tipc_createport_raw +EXPORT_SYMBOL sound/ac97_bus 0x44d1a374 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xac86f096 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-fm 0x5a3e4571 snd_seq_fm_init +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-simple 0xd5791cfd snd_seq_simple_init +EXPORT_SYMBOL sound/core/seq/snd-seq 0x0afc6d2d snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x189bf9a7 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x20357a80 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x296b99f2 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x66212d85 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x69ee7fd1 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x92eea451 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc84df378 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x5207d96c snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xa3c35ab7 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x333bebb1 snd_seq_instr_list_free_cond +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xb7c8a16c snd_seq_instr_free_use +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xc5efb48f snd_seq_instr_find +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xc9ee1527 snd_seq_instr_list_new +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xd220ec70 snd_seq_instr_list_free +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xf5019917 snd_seq_instr_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6c6f1a61 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0f6a5d32 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x3ee65c52 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x78cf4783 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x8810440b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xa215263f snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd4883565 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xda509db0 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe00177d7 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xa65b9765 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0026bb0a snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x04fc5208 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x0575cbd2 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x08958206 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x0a27cc64 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x196a8cce snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x1bdb0fe3 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x1e76cf2d snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x1ec92e7f snd_card_new +EXPORT_SYMBOL sound/core/snd 0x23ba74c3 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x24cfbaa8 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x2f50201e snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x3280dbe5 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x33196303 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3f6a4b7e snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x46163e35 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4e5b1acb snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x4e638698 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x50cdf9f3 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x52fe113d release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x597527f2 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x5ba66aa5 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x5cb9239e snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x5e3e2e22 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x629b68f0 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x6373d2fd snd_cards +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x715d415e snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x73bf3e1d snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x93b0d3f0 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x93f92ed7 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xa697d52b snd_component_add +EXPORT_SYMBOL sound/core/snd 0xae5281a3 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xb213fe8b snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb5142548 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xc30acc9e snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xc40a3631 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xca764733 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd12d130b snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xe68b2743 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xefdc2da7 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xf0bb27a1 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xf0d11db4 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd-hwdep 0x74770635 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x30b8c65c snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x643e8c69 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x6f973bfa snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9854a8bd snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe2dcc23e snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x085c2ba8 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0c1b1b18 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0dda9fd2 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x13fe74f9 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x14f4fa18 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x1ce1be10 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1d3c276b snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x27bb9730 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x2b422d6d snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x2cdcc94f snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x2cf7dc44 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x3dc0a5ba snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x497c72dc snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x4ba1c568 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x4d6bf9ec snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x4d92379e snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x54c6960d snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x681fd8a9 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x6fe4a3b1 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x7be3f17c snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x7c5cec98 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x80677388 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x88cc66cc snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0x89a31a56 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x9a0c8ebd snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x9ee21e71 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x9fdea959 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0xa2aa846f snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbca98894 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xca7fba60 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xce7286fa snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd13ab258 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xd1c57a3f snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xd7f94ff1 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xda057a21 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xdd62f44f snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xe2ee1c48 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe9aa5f5e snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xef297b0d snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf5149d60 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xf772ef1c snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xfeb87523 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1593ba47 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1654a00b snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1baebed3 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2bd48cce snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x366f5d22 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5221aa1b snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7185217e snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x71f9ee25 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x775ac79a snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x90ea2aba snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9e097c92 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaec031e3 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaf3242a8 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb1154965 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd6982203 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdb32f0ab snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe11fcc88 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-timer 0x060c55d2 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x0fec1962 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x3a065061 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x423694ea snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x497d98eb snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x4d4668e7 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x6fc5b937 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x7282a225 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x8c4c652e snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x952a5d4d snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xe50f00d4 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xeb012e9a snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xfbc3ff1c snd_timer_close +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x032c6046 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x73c4c993 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfe618b58 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x13dd652e snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x195bdd1e snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51ee8ecb snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x56ade4a3 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x61efda25 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xaec8d82e snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcc92a3ee snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cadb14b snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3d0bd7fa snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5876efe8 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5aa8e9ac snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x97df3de6 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9c98e40c snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa58ff64d snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbaa9aa5c snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc5f07133 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xccadcf82 snd_vx_free_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x12614a4c snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2cbb67ed snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x38fdbe99 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7715d203 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7847350d snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdc0b4073 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x109794a7 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x21685a6e snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4cdda855 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xaa43d080 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x155f9e0f snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x35f61c30 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7e37d7c5 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x81fff7e7 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa2262f8d snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc1618e2b snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xe20be21a snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x26a2130c snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5343e699 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x552e24d7 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x6ec16157 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9c0b603d snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xbd3caadf snd_i2c_readbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2edba673 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x40070ec6 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x440e60be snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8b77620e snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x98a97816 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9ae5e9c8 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbb344b15 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc1692a38 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd6ba0a45 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe340b4f6 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0ba4ef1d snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x4a93b76a snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xa75333f1 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xf3b1de31 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/oss/ac97_codec 0x26615914 ac97_set_adc_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0x31028d76 ac97_probe_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0x5785e315 ac97_release_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0x6cbe735e ac97_set_dac_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0xbae4da72 ac97_read_proc +EXPORT_SYMBOL sound/oss/ac97_codec 0xf986b633 ac97_alloc_codec +EXPORT_SYMBOL sound/oss/ad1848 0x57f2b9e0 ad1848_detect +EXPORT_SYMBOL sound/oss/ad1848 0x8d660e70 probe_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0x9bf1cc62 ad1848_unload +EXPORT_SYMBOL sound/oss/ad1848 0xac889758 ad1848_init +EXPORT_SYMBOL sound/oss/ad1848 0xb29a9148 unload_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0xb973f5e7 attach_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0xc04f6f67 ad1848_control +EXPORT_SYMBOL sound/oss/mpu401 0x08ccf4de attach_mpu401 +EXPORT_SYMBOL sound/oss/mpu401 0x5febf284 unload_mpu401 +EXPORT_SYMBOL sound/oss/mpu401 0x813a35f5 probe_mpu401 +EXPORT_SYMBOL sound/oss/msnd 0x1186f48f msnd_fifo_read +EXPORT_SYMBOL sound/oss/msnd 0x211b6281 msnd_unregister +EXPORT_SYMBOL sound/oss/msnd 0x2bcfb2fe msnd_send_word +EXPORT_SYMBOL sound/oss/msnd 0x32a5a3a7 msnd_register +EXPORT_SYMBOL sound/oss/msnd 0x340a3ddf msnd_init_queue +EXPORT_SYMBOL sound/oss/msnd 0x4ee519f8 msnd_upload_host +EXPORT_SYMBOL sound/oss/msnd 0x54230dc1 msnd_fifo_write +EXPORT_SYMBOL sound/oss/msnd 0x6601493b msnd_fifo_make_empty +EXPORT_SYMBOL sound/oss/msnd 0x90f4e8f0 msnd_enable_irq +EXPORT_SYMBOL sound/oss/msnd 0x9274d677 msnd_fifo_free +EXPORT_SYMBOL sound/oss/msnd 0x9b83041a msnd_send_dsp_cmd +EXPORT_SYMBOL sound/oss/msnd 0xade99e25 msnd_fifo_alloc +EXPORT_SYMBOL sound/oss/msnd 0xb3520772 msnd_fifo_init +EXPORT_SYMBOL sound/oss/msnd 0xdf0f59eb msnd_fifo_write_io +EXPORT_SYMBOL sound/oss/msnd 0xe139a03a msnd_disable_irq +EXPORT_SYMBOL sound/oss/msnd 0xf4c4f662 msnd_fifo_read_io +EXPORT_SYMBOL sound/oss/sb_lib 0x42424109 sb_be_quiet +EXPORT_SYMBOL sound/oss/sb_lib 0x450f9aea smw_free +EXPORT_SYMBOL sound/oss/sb_lib 0x74afd69c unload_sbmpu +EXPORT_SYMBOL sound/oss/sb_lib 0x838bf8ed probe_sbmpu +EXPORT_SYMBOL sound/oss/sb_lib 0xb813a594 sb_dsp_init +EXPORT_SYMBOL sound/oss/sb_lib 0xc4884969 sb_dsp_unload +EXPORT_SYMBOL sound/oss/sb_lib 0xd8a2731c sb_dsp_detect +EXPORT_SYMBOL sound/oss/sound 0x04c87ec8 compute_finetune +EXPORT_SYMBOL sound/oss/sound 0x06339815 sound_unload_synthdev +EXPORT_SYMBOL sound/oss/sound 0x067fccc5 sound_install_mixer +EXPORT_SYMBOL sound/oss/sound 0x0f280035 conf_printf +EXPORT_SYMBOL sound/oss/sound 0x17ba231d seq_input_event +EXPORT_SYMBOL sound/oss/sound 0x1b3df3cf sound_alloc_mixerdev +EXPORT_SYMBOL sound/oss/sound 0x1f395686 MIDIbuf_avail +EXPORT_SYMBOL sound/oss/sound 0x2161d5e8 sound_timer_init +EXPORT_SYMBOL sound/oss/sound 0x23922fe9 audio_devs +EXPORT_SYMBOL sound/oss/sound 0x2aa31695 midi_synth_kill_note +EXPORT_SYMBOL sound/oss/sound 0x394cb088 sound_free_dma +EXPORT_SYMBOL sound/oss/sound 0x398c5a03 sound_timer_devs +EXPORT_SYMBOL sound/oss/sound 0x4021171d sound_install_audiodrv +EXPORT_SYMBOL sound/oss/sound 0x418f5fbe sound_close_dma +EXPORT_SYMBOL sound/oss/sound 0x4cd01bdd num_audiodevs +EXPORT_SYMBOL sound/oss/sound 0x4ff47e9d midi_synth_setup_voice +EXPORT_SYMBOL sound/oss/sound 0x51e354b2 sound_alloc_timerdev +EXPORT_SYMBOL sound/oss/sound 0x56504ca2 midi_synth_reset +EXPORT_SYMBOL sound/oss/sound 0x5d986fc9 note_to_freq +EXPORT_SYMBOL sound/oss/sound 0x7679ee76 seq_copy_to_input +EXPORT_SYMBOL sound/oss/sound 0x7bdf0907 conf_printf2 +EXPORT_SYMBOL sound/oss/sound 0x80ef52f0 mixer_devs +EXPORT_SYMBOL sound/oss/sound 0x892093e0 midi_synth_controller +EXPORT_SYMBOL sound/oss/sound 0x90bd9714 sequencer_timer +EXPORT_SYMBOL sound/oss/sound 0x987bcf12 DMAbuf_outputintr +EXPORT_SYMBOL sound/oss/sound 0x9a95733f sound_alloc_dma +EXPORT_SYMBOL sound/oss/sound 0x9bdaf24d midi_synth_start_note +EXPORT_SYMBOL sound/oss/sound 0x9d845b18 num_mixers +EXPORT_SYMBOL sound/oss/sound 0xa1d5f04f load_mixer_volumes +EXPORT_SYMBOL sound/oss/sound 0xa1eae7cf num_midis +EXPORT_SYMBOL sound/oss/sound 0xa30a4a5f midi_devs +EXPORT_SYMBOL sound/oss/sound 0xa41ead5f sound_unload_timerdev +EXPORT_SYMBOL sound/oss/sound 0xa4675222 synth_devs +EXPORT_SYMBOL sound/oss/sound 0xa51c913b sound_unload_mixerdev +EXPORT_SYMBOL sound/oss/sound 0xa6bb414c sound_unload_mididev +EXPORT_SYMBOL sound/oss/sound 0xa948751e sound_unload_audiodev +EXPORT_SYMBOL sound/oss/sound 0xad45df73 midi_synth_close +EXPORT_SYMBOL sound/oss/sound 0xaef743b2 midi_synth_ioctl +EXPORT_SYMBOL sound/oss/sound 0xb14b22cd midi_synth_hw_control +EXPORT_SYMBOL sound/oss/sound 0xb51587f6 do_midi_msg +EXPORT_SYMBOL sound/oss/sound 0xba413f87 sound_alloc_mididev +EXPORT_SYMBOL sound/oss/sound 0xba7dd041 midi_synth_bender +EXPORT_SYMBOL sound/oss/sound 0xc748d109 sound_alloc_synthdev +EXPORT_SYMBOL sound/oss/sound 0xcc4b8797 sound_open_dma +EXPORT_SYMBOL sound/oss/sound 0xd85be938 midi_synth_set_instr +EXPORT_SYMBOL sound/oss/sound 0xdb400afa midi_synth_panning +EXPORT_SYMBOL sound/oss/sound 0xe056b71c DMAbuf_start_dma +EXPORT_SYMBOL sound/oss/sound 0xe2675a79 sound_timer_interrupt +EXPORT_SYMBOL sound/oss/sound 0xeb315d99 DMAbuf_inputintr +EXPORT_SYMBOL sound/oss/sound 0xf1ea8a20 midi_synth_aftertouch +EXPORT_SYMBOL sound/oss/sound 0xf6b3a2fb midi_synth_open +EXPORT_SYMBOL sound/oss/sound 0xf7426da3 midi_synth_load_patch +EXPORT_SYMBOL sound/oss/sound 0xf78f6363 sequencer_init +EXPORT_SYMBOL sound/oss/sound 0xfa6871be sound_timer_syncinterval +EXPORT_SYMBOL sound/oss/sound 0xfddcbfb3 midi_synth_send_sysex +EXPORT_SYMBOL sound/oss/uart401 0x354f8389 probe_uart401 +EXPORT_SYMBOL sound/oss/uart401 0x46248c57 uart401intr +EXPORT_SYMBOL sound/oss/uart401 0xecfdd9c9 unload_uart401 +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x03caa69b snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12c83d0d snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1c988152 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1f3a7122 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x24504758 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x33c3318d snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4359ca0b snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x639fa240 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8133827a snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x81b83e6b snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x87643a00 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x924871b7 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb3923344 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb4748a40 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb985c9a3 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe69bf60b snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf8ea82ff snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x01ca1498 snd_ak4531_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x0543ec1c snd_ak4531_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x15598e63 snd_ak4531_mixer +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x27d13235 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x38117b13 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4eb1063c snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5b7cbf24 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x66715f2e snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x84654d6f snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xafe86c45 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcf681aee snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf3dddfe9 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7cbeca7d snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8359a401 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xae934b15 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0aa47edc snd_trident_synth_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1cd47d8e snd_trident_synth_alloc +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x25307999 snd_trident_synth_copy_from_user +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4f5ce001 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa7020222 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xabdf8097 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc21493ee snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe0d15ece snd_trident_stop_voice +EXPORT_SYMBOL sound/sound_firmware 0x39e3dd23 mod_firmware_load +EXPORT_SYMBOL sound/soundcore 0x42310cbd sound_class +EXPORT_SYMBOL sound/soundcore 0x4695ec4f register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x58c4f032 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x5e19189a register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x970b44a3 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xe66ba6e5 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1fac80e3 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x352528b9 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x852e29ef snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xab8ebaf5 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xaf09f2ba snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xdf53b71c snd_emux_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x16471586 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x17fd8e28 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x19c2aa80 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x4ff75f8a snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x51939f54 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x545c1381 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7230704b snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x82da2ae9 __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x3bdf2a1c snd_usb_create_midi_interface +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usb-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00112f51 groups_alloc +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x001adc7e gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x002381cc inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x002e1131 fput +EXPORT_SYMBOL vmlinux 0x006b8538 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0099061c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x00c92b6a tcp_ioctl +EXPORT_SYMBOL vmlinux 0x00cd6e86 dquot_free_space +EXPORT_SYMBOL vmlinux 0x00de9f07 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00ffd3c7 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x012f35e1 ide_hwifs +EXPORT_SYMBOL vmlinux 0x013bbd1d d_alloc +EXPORT_SYMBOL vmlinux 0x015b2938 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x0167bf3c tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x017b17b3 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x0182a2f1 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x018eccad bio_put +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01be7770 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x01c709cc inet_shutdown +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x02064a46 neigh_table_init +EXPORT_SYMBOL vmlinux 0x020e11f7 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023eb25e put_unused_fd +EXPORT_SYMBOL vmlinux 0x02462292 _read_lock_bh +EXPORT_SYMBOL vmlinux 0x025da070 snprintf +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x029043ed acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x0292575a inode_get_bytes +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02ba2388 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x02bc8fb9 eth_header +EXPORT_SYMBOL vmlinux 0x02c873be dquot_drop +EXPORT_SYMBOL vmlinux 0x02cd3086 __down_failed_trylock +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02f1146b lease_modify +EXPORT_SYMBOL vmlinux 0x02f8a21a open_exec +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03960713 ioread16 +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03be91dc kmap_atomic +EXPORT_SYMBOL vmlinux 0x03c17bcd skb_queue_purge +EXPORT_SYMBOL vmlinux 0x03cb53fa wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x03f9075f test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x04027690 nf_afinfo +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x04861481 register_netdev +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048a43ee acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04f31f48 skb_dequeue +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x052a330c input_unregister_handler +EXPORT_SYMBOL vmlinux 0x0535970b neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x056c8354 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x05727516 blk_unplug +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x057e9e30 unload_nls +EXPORT_SYMBOL vmlinux 0x058c75d9 acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x05c3cdee pci_disable_msix +EXPORT_SYMBOL vmlinux 0x05c42d11 prepare_binprm +EXPORT_SYMBOL vmlinux 0x05e1389a finish_wait +EXPORT_SYMBOL vmlinux 0x06127753 ioread16be +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0623fbca put_filp +EXPORT_SYMBOL vmlinux 0x062f1b0a iget_locked +EXPORT_SYMBOL vmlinux 0x062fb2ef vfs_link +EXPORT_SYMBOL vmlinux 0x064614ad flush_signals +EXPORT_SYMBOL vmlinux 0x065ce68e netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x066d162d simple_transaction_get +EXPORT_SYMBOL vmlinux 0x0673fad1 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06882ef9 ll_rw_block +EXPORT_SYMBOL vmlinux 0x06f2d5c7 mempool_free +EXPORT_SYMBOL vmlinux 0x06f3b47f pci_set_mwi +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070183d1 vfs_symlink +EXPORT_SYMBOL vmlinux 0x07135a94 d_rehash +EXPORT_SYMBOL vmlinux 0x07811a24 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x079fa66e key_unlink +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07aaa060 single_release +EXPORT_SYMBOL vmlinux 0x07bfb01a pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07e43c47 wait_for_completion +EXPORT_SYMBOL vmlinux 0x07e87961 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08489ae1 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x08a5712d genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x08b3bf57 set_binfmt +EXPORT_SYMBOL vmlinux 0x08de155d elv_add_request +EXPORT_SYMBOL vmlinux 0x08e6001a kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x08ee06c6 sock_no_bind +EXPORT_SYMBOL vmlinux 0x0901c897 bio_add_page +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x093fbfd4 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x0941fcff kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095d5d2c do_sync_write +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a0b562 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x09aeaf8c out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c6d9a8 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x09c91d27 generic_permission +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a1c9f3d mod_timer +EXPORT_SYMBOL vmlinux 0x0a229235 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0a957618 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x0ab52467 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x0acad7fa key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ad1e843 inode_change_ok +EXPORT_SYMBOL vmlinux 0x0ad89e3d input_register_device +EXPORT_SYMBOL vmlinux 0x0b181af9 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b335785 bd_release +EXPORT_SYMBOL vmlinux 0x0b353626 iowrite8_rep +EXPORT_SYMBOL vmlinux 0x0b3dbd00 igrab +EXPORT_SYMBOL vmlinux 0x0b416979 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x0b4bccd2 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b98b6de locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x0baf117e kfifo_free +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bce3753 ioread32be +EXPORT_SYMBOL vmlinux 0x0bf948b2 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x0c015edd neigh_seq_start +EXPORT_SYMBOL vmlinux 0x0c121854 netif_device_attach +EXPORT_SYMBOL vmlinux 0x0c19722c remote_llseek +EXPORT_SYMBOL vmlinux 0x0c486b72 ide_unregister +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0cc6b9b1 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x0cda10c1 del_timer_sync +EXPORT_SYMBOL vmlinux 0x0cdac007 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x0d16f266 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x0d3c3b2c kmem_cache_size +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d7001f7 kunmap_high +EXPORT_SYMBOL vmlinux 0x0d789b78 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x0d7ca484 kernel_bind +EXPORT_SYMBOL vmlinux 0x0d818532 blk_complete_request +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da716f6 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x0dcd8d3a inet_accept +EXPORT_SYMBOL vmlinux 0x0dd4f9ac sync_page_range +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e18ae1a _spin_lock_bh +EXPORT_SYMBOL vmlinux 0x0e1aef10 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x0e6e454b block_write_begin +EXPORT_SYMBOL vmlinux 0x0e7e47b6 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x0e89f0b6 elevator_exit +EXPORT_SYMBOL vmlinux 0x0e9b0240 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x0ead5073 vscnprintf +EXPORT_SYMBOL vmlinux 0x0eb49f30 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x0ec882ec km_new_mapping +EXPORT_SYMBOL vmlinux 0x0eca8306 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x0f2c9c8f cpu_possible_map +EXPORT_SYMBOL vmlinux 0x0f514993 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x0f5a92de dcache_lock +EXPORT_SYMBOL vmlinux 0x0f5b4188 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x0f795d9b per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x10035ecd bio_hw_segments +EXPORT_SYMBOL vmlinux 0x100a7b73 vfs_create +EXPORT_SYMBOL vmlinux 0x100aa125 follow_down +EXPORT_SYMBOL vmlinux 0x100b30fa pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x1048a04a register_console +EXPORT_SYMBOL vmlinux 0x104b186c tcp_disconnect +EXPORT_SYMBOL vmlinux 0x107d6ba3 __get_free_pages +EXPORT_SYMBOL vmlinux 0x10d5c2cd module_refcount +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x1118def4 pskb_copy +EXPORT_SYMBOL vmlinux 0x113b4650 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11f64299 find_get_page +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x12b6a2a0 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x12ba852d km_state_notify +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e7c054 pci_set_master +EXPORT_SYMBOL vmlinux 0x12f717b1 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x12ff5202 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x1328b503 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x133e0aee generic_getxattr +EXPORT_SYMBOL vmlinux 0x13ab889e key_link +EXPORT_SYMBOL vmlinux 0x13c37d46 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x13d650e4 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x1409b43e release_sock +EXPORT_SYMBOL vmlinux 0x140b3241 pci_match_id +EXPORT_SYMBOL vmlinux 0x141dbf9b acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x141f4802 idr_replace +EXPORT_SYMBOL vmlinux 0x141fcda5 __lookup_hash +EXPORT_SYMBOL vmlinux 0x1468ce64 inode_double_lock +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x148ea081 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x149acb9a __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x149efde7 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x14c7bb28 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x14d2880f pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1550afd2 lookup_one_len +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1578c49a elv_rb_del +EXPORT_SYMBOL vmlinux 0x158d2b05 dump_trace +EXPORT_SYMBOL vmlinux 0x15b1befd d_alloc_root +EXPORT_SYMBOL vmlinux 0x15edabcf udp_ioctl +EXPORT_SYMBOL vmlinux 0x15ee9e86 input_unregister_device +EXPORT_SYMBOL vmlinux 0x15eea5a4 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x1605f98c textsearch_unregister +EXPORT_SYMBOL vmlinux 0x160e319e dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x1668baa5 dev_mc_add +EXPORT_SYMBOL vmlinux 0x168b496d search_binary_handler +EXPORT_SYMBOL vmlinux 0x16bb0306 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x16bbd268 dump_thread +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x170e50cd wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x172954a3 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x175a298d acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x17870444 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17d59d01 schedule_timeout +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e1840e simple_sync_file +EXPORT_SYMBOL vmlinux 0x1810a3f0 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18562bb6 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x1899dec4 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x18b8c649 sock_no_listen +EXPORT_SYMBOL vmlinux 0x18c9a2cc blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x18fa20af pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x1919ae51 I_BDEV +EXPORT_SYMBOL vmlinux 0x19629dfc end_request +EXPORT_SYMBOL vmlinux 0x19683b27 console_start +EXPORT_SYMBOL vmlinux 0x196c6296 vc_cons +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19c75484 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x19cbeb1d __bio_clone +EXPORT_SYMBOL vmlinux 0x19d5d20a acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x19f6ffc0 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x1a1a66e0 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x1a1e0774 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x1a23278f netdev_state_change +EXPORT_SYMBOL vmlinux 0x1a449888 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a52d283 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x1a552bb6 blkdev_put +EXPORT_SYMBOL vmlinux 0x1a92dd0c mpage_writepage +EXPORT_SYMBOL vmlinux 0x1a94b274 register_qdisc +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b3bbced dev_mc_sync +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b66b8dd add_disk_randomness +EXPORT_SYMBOL vmlinux 0x1b7d4074 printk +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bda89f9 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x1be017b2 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x1be5678d register_binfmt +EXPORT_SYMBOL vmlinux 0x1bffe8dc __break_lease +EXPORT_SYMBOL vmlinux 0x1c0c9e74 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x1c3a9aa6 skb_store_bits +EXPORT_SYMBOL vmlinux 0x1cb9d7a5 xrlim_allow +EXPORT_SYMBOL vmlinux 0x1cc55396 submit_bio +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce332d4 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x1cf50dca block_commit_write +EXPORT_SYMBOL vmlinux 0x1d022c2b per_cpu__irq_regs +EXPORT_SYMBOL vmlinux 0x1d23437e input_inject_event +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d5c7289 inet_release +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de29641 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x1de2ed87 pci_request_regions +EXPORT_SYMBOL vmlinux 0x1de314f3 hpet_control +EXPORT_SYMBOL vmlinux 0x1df12b43 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1e04b2c0 pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0x1e4b1934 proc_root_driver +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e73c6eb __bread +EXPORT_SYMBOL vmlinux 0x1e8b1cef kill_litter_super +EXPORT_SYMBOL vmlinux 0x1e8ea2db tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x1eb922a3 IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x1eba9e49 iowrite16_rep +EXPORT_SYMBOL vmlinux 0x1ed1d459 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x1f7fba0e blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x1f83fa64 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x1f88fcde boot_cpu_data +EXPORT_SYMBOL vmlinux 0x1f94a7e7 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x1f9cfe83 iomem_resource +EXPORT_SYMBOL vmlinux 0x1fe5ede6 per_cpu__irq_stat +EXPORT_SYMBOL vmlinux 0x1ff422ce pci_get_subsys +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x2012fec0 d_lookup +EXPORT_SYMBOL vmlinux 0x20289936 __dst_free +EXPORT_SYMBOL vmlinux 0x20633c57 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x207df350 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x2086d975 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x209179d6 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x20c8fc33 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x20f5e9bb __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x210f908d cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x2110ca0a vfs_rmdir +EXPORT_SYMBOL vmlinux 0x211d70e8 kthread_stop +EXPORT_SYMBOL vmlinux 0x2130a465 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x213900cc pci_iounmap +EXPORT_SYMBOL vmlinux 0x21abc3f8 simple_release_fs +EXPORT_SYMBOL vmlinux 0x21be0d68 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e778ae proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x21ebcb47 write_cache_pages +EXPORT_SYMBOL vmlinux 0x2241a928 ioread32 +EXPORT_SYMBOL vmlinux 0x2244321f acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x2272f95a genl_sock +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x229c7bdd have_submounts +EXPORT_SYMBOL vmlinux 0x22a0038a nobh_write_end +EXPORT_SYMBOL vmlinux 0x22a6dcd4 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22d4fde3 skb_unlink +EXPORT_SYMBOL vmlinux 0x234054f0 sync_blockdev +EXPORT_SYMBOL vmlinux 0x2348984e adjust_resource +EXPORT_SYMBOL vmlinux 0x236598db d_alloc_anon +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x237cae8d kobject_init +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad070a set_current_groups +EXPORT_SYMBOL vmlinux 0x23cbee71 simple_fill_super +EXPORT_SYMBOL vmlinux 0x23d71fee bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241771e0 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x2421536b netlink_broadcast +EXPORT_SYMBOL vmlinux 0x242de687 inet_frags_init +EXPORT_SYMBOL vmlinux 0x24321fdd skb_free_datagram +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24753574 generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x24c1419b linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x24d70cb3 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x251127ef notify_change +EXPORT_SYMBOL vmlinux 0x2517c23f dget_locked +EXPORT_SYMBOL vmlinux 0x25465d84 kthread_create +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258d00e3 ide_stall_queue +EXPORT_SYMBOL vmlinux 0x2598a94f security_inode_init_security +EXPORT_SYMBOL vmlinux 0x25a7e4f6 cdev_alloc +EXPORT_SYMBOL vmlinux 0x25ce3f46 end_dequeued_request +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x26456a34 file_update_time +EXPORT_SYMBOL vmlinux 0x266d1b77 handle_sysrq +EXPORT_SYMBOL vmlinux 0x2673deca tcp_unhash +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x269160a6 unlock_page +EXPORT_SYMBOL vmlinux 0x270707c2 alloc_file +EXPORT_SYMBOL vmlinux 0x272552e6 add_wait_queue +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x27a72488 ioread8_rep +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bdeac6 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x27d6fcdb pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x27dd1186 is_container_init +EXPORT_SYMBOL vmlinux 0x283b7f96 sock_map_fd +EXPORT_SYMBOL vmlinux 0x28586db4 kernel_read +EXPORT_SYMBOL vmlinux 0x285c4e1d pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x28c79152 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f35813 scnprintf +EXPORT_SYMBOL vmlinux 0x291f9bed bio_split_pool +EXPORT_SYMBOL vmlinux 0x29350dd9 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x298b15cb tcp_proc_register +EXPORT_SYMBOL vmlinux 0x2991f096 tty_hangup +EXPORT_SYMBOL vmlinux 0x29b76352 task_no_data_intr +EXPORT_SYMBOL vmlinux 0x29b785f7 kernel_connect +EXPORT_SYMBOL vmlinux 0x29b887c0 find_inode_number +EXPORT_SYMBOL vmlinux 0x29cd3d81 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x29f12596 netpoll_poll +EXPORT_SYMBOL vmlinux 0x2a2a26f1 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x2a5d0c51 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x2a78c8b3 sock_wake_async +EXPORT_SYMBOL vmlinux 0x2a83f78c serio_interrupt +EXPORT_SYMBOL vmlinux 0x2a84432f take_over_console +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa96323 vfs_mknod +EXPORT_SYMBOL vmlinux 0x2ab4652a sock_no_getname +EXPORT_SYMBOL vmlinux 0x2b261980 dquot_transfer +EXPORT_SYMBOL vmlinux 0x2b37f19d set_bh_page +EXPORT_SYMBOL vmlinux 0x2b3a6bbc d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x2b3ad17c generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x2b67f5af kset_unregister +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2b8d78b3 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x2b9f0af6 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2baff8db dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bbad503 _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x2bc54ab1 d_instantiate +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2be2ba2c pci_find_device +EXPORT_SYMBOL vmlinux 0x2becad38 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x2bf0d030 vfs_write +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0987f4 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2c2512ea get_zeroed_page +EXPORT_SYMBOL vmlinux 0x2c2de0c5 d_alloc_name +EXPORT_SYMBOL vmlinux 0x2c36708e sk_stop_timer +EXPORT_SYMBOL vmlinux 0x2c3eca89 seq_printf +EXPORT_SYMBOL vmlinux 0x2c4d80d4 uart_register_driver +EXPORT_SYMBOL vmlinux 0x2c5749e6 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x2c86e8e1 sk_run_filter +EXPORT_SYMBOL vmlinux 0x2c8f5989 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x2c90f43c __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x2ca53c5c gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cdce32e sk_dst_check +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2cf66058 sock_release +EXPORT_SYMBOL vmlinux 0x2cfe98ff simple_empty +EXPORT_SYMBOL vmlinux 0x2d5c06ec down_write_trylock +EXPORT_SYMBOL vmlinux 0x2da6269d do_SAK +EXPORT_SYMBOL vmlinux 0x2db5848f tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x2db717fe up_write +EXPORT_SYMBOL vmlinux 0x2dbc755e iowrite32_rep +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2de6e7a5 put_disk +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dfaa67d request_key_async +EXPORT_SYMBOL vmlinux 0x2e359fc0 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x2e3650e0 input_allocate_device +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e619fe6 sysctl_data +EXPORT_SYMBOL vmlinux 0x2e6e0f1b ida_init +EXPORT_SYMBOL vmlinux 0x2ea7e361 generic_write_checks +EXPORT_SYMBOL vmlinux 0x2ec27249 bio_pair_release +EXPORT_SYMBOL vmlinux 0x2ed2586b vfs_statfs +EXPORT_SYMBOL vmlinux 0x2f0278d9 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x2f04ffeb __inet6_hash +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f5afa4d sockfd_lookup +EXPORT_SYMBOL vmlinux 0x2f5b5259 new_inode +EXPORT_SYMBOL vmlinux 0x2f5df4a6 ide_execute_command +EXPORT_SYMBOL vmlinux 0x2f6a6e4f qdisc_reset +EXPORT_SYMBOL vmlinux 0x2f7b2ffe elv_rb_add +EXPORT_SYMBOL vmlinux 0x2fa69189 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x2fc5e3a9 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2ff92ca0 find_next_bit +EXPORT_SYMBOL vmlinux 0x302b27ac close_bdev_excl +EXPORT_SYMBOL vmlinux 0x30343e46 iowrite16be +EXPORT_SYMBOL vmlinux 0x3041b8f1 vfs_quota_sync +EXPORT_SYMBOL vmlinux 0x309599fd tcp_child_process +EXPORT_SYMBOL vmlinux 0x30b4c619 filp_open +EXPORT_SYMBOL vmlinux 0x30e71691 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x310f2516 put_io_context +EXPORT_SYMBOL vmlinux 0x3114a1a9 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x3121e0c8 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3167ea19 global_flush_tlb +EXPORT_SYMBOL vmlinux 0x31b47247 kobject_put +EXPORT_SYMBOL vmlinux 0x31c6d984 unlock_buffer +EXPORT_SYMBOL vmlinux 0x31db75a7 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x31e1ebe3 do_munmap +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ed96a1 pnp_is_active +EXPORT_SYMBOL vmlinux 0x31f0bf5b xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x31f3f140 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x31fbe9e4 tcf_em_register +EXPORT_SYMBOL vmlinux 0x3210e4af qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x322c6fc2 __check_region +EXPORT_SYMBOL vmlinux 0x32383124 ide_do_reset +EXPORT_SYMBOL vmlinux 0x3248644d sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x32732266 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x328b41c3 alloc_disk +EXPORT_SYMBOL vmlinux 0x32b5b482 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x32d01fec acpi_attach_data +EXPORT_SYMBOL vmlinux 0x32e91d2b give_up_console +EXPORT_SYMBOL vmlinux 0x32f79f73 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x331a0d94 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x334180bf idr_get_new_above +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x3360bb18 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3385c8cb per_cpu__this_cpu_off +EXPORT_SYMBOL vmlinux 0x33934162 release_firmware +EXPORT_SYMBOL vmlinux 0x339a5ec5 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33e4b952 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x33f22454 locks_init_lock +EXPORT_SYMBOL vmlinux 0x3421272c efi +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x34686a27 bdev_read_only +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d5cd4e eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x34fedf98 unregister_nls +EXPORT_SYMBOL vmlinux 0x3525d759 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x353a67c4 sk_stream_error +EXPORT_SYMBOL vmlinux 0x353d2a29 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x35578b19 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x35ae294e __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x35bf45e2 poll_initwait +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3623a8d1 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x36379ca0 generic_listxattr +EXPORT_SYMBOL vmlinux 0x36a18aaa blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x36be9e48 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x36c27dab eth_header_parse +EXPORT_SYMBOL vmlinux 0x36c3da1d dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x36d5355b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x36f4a4a7 module_remove_driver +EXPORT_SYMBOL vmlinux 0x36fdd9a5 serio_rescan +EXPORT_SYMBOL vmlinux 0x370e034e is_bad_inode +EXPORT_SYMBOL vmlinux 0x371331a5 names_cachep +EXPORT_SYMBOL vmlinux 0x372c07c6 bdput +EXPORT_SYMBOL vmlinux 0x37424382 free_buffer_head +EXPORT_SYMBOL vmlinux 0x37566362 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x375bf494 iowrite8 +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x376cf45c sk_free +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d9fdca qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x37e34666 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x38151f2e d_delete +EXPORT_SYMBOL vmlinux 0x38169916 get_sb_single +EXPORT_SYMBOL vmlinux 0x3832622c tty_set_operations +EXPORT_SYMBOL vmlinux 0x383c1220 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x383d869e generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x386fca57 mpage_readpage +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x389e200f ioread8 +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38d0c620 bio_map_kern +EXPORT_SYMBOL vmlinux 0x394a6dde km_query +EXPORT_SYMBOL vmlinux 0x39582325 vfs_llseek +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3981f673 skb_find_text +EXPORT_SYMBOL vmlinux 0x398997f8 skb_insert +EXPORT_SYMBOL vmlinux 0x39909568 sk_common_release +EXPORT_SYMBOL vmlinux 0x39d7f91a kobject_del +EXPORT_SYMBOL vmlinux 0x3a14b51b netlink_ack +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a56c09a icmp_send +EXPORT_SYMBOL vmlinux 0x3a57116f uart_suspend_port +EXPORT_SYMBOL vmlinux 0x3a924841 __kfree_skb +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aff174c pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b37c4e3 cdev_del +EXPORT_SYMBOL vmlinux 0x3b383bdf inet_stream_connect +EXPORT_SYMBOL vmlinux 0x3b4dcfb3 nobh_writepage +EXPORT_SYMBOL vmlinux 0x3bb560e2 ide_do_drive_cmd +EXPORT_SYMBOL vmlinux 0x3bb600ea set_user_nice +EXPORT_SYMBOL vmlinux 0x3bbaac68 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c01bc86 ht_create_irq +EXPORT_SYMBOL vmlinux 0x3c5a6a01 vfs_read +EXPORT_SYMBOL vmlinux 0x3c63deb6 init_file +EXPORT_SYMBOL vmlinux 0x3c7d6020 module_put +EXPORT_SYMBOL vmlinux 0x3c87c160 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3c918ab1 devm_iounmap +EXPORT_SYMBOL vmlinux 0x3ca96fd8 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cc8be5f tty_devnum +EXPORT_SYMBOL vmlinux 0x3cd277e9 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x3cdc3966 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d08eb4f inet_frags_fini +EXPORT_SYMBOL vmlinux 0x3d0d2507 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x3d13139a blk_remove_plug +EXPORT_SYMBOL vmlinux 0x3d17c426 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x3d559130 write_inode_now +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da6c34f kthread_bind +EXPORT_SYMBOL vmlinux 0x3daabb4e ide_dump_status +EXPORT_SYMBOL vmlinux 0x3dfe204f ip_defrag +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e6c86d4 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x3e931b60 complete_request_key +EXPORT_SYMBOL vmlinux 0x3ea8ef20 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x3ecba804 dev_change_flags +EXPORT_SYMBOL vmlinux 0x3ed5cf4b skb_clone +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f072204 complete_all +EXPORT_SYMBOL vmlinux 0x3f45d6a5 netif_device_detach +EXPORT_SYMBOL vmlinux 0x3f473495 seq_release +EXPORT_SYMBOL vmlinux 0x3f4c8536 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x3f8efc8b block_sync_page +EXPORT_SYMBOL vmlinux 0x3f998449 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fbfda22 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x3fe56992 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x403429be set_trace_device +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409d65d2 cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x40b8a100 ide_wait_stat +EXPORT_SYMBOL vmlinux 0x40cc9283 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4114c4e1 aio_complete +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4171837b input_register_handle +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418a3889 block_truncate_page +EXPORT_SYMBOL vmlinux 0x4190f23a d_find_alias +EXPORT_SYMBOL vmlinux 0x419143b6 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421d979f dcache_dir_close +EXPORT_SYMBOL vmlinux 0x422c05d0 acpi_get_data +EXPORT_SYMBOL vmlinux 0x422ee156 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x424c85c1 cdev_init +EXPORT_SYMBOL vmlinux 0x42500413 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x428b99ae vfs_unlink +EXPORT_SYMBOL vmlinux 0x428f79d5 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42b86fa8 drive_is_ready +EXPORT_SYMBOL vmlinux 0x42c3be23 block_read_full_page +EXPORT_SYMBOL vmlinux 0x42ec3cc2 noop_qdisc +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434f39f5 sync_inode +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43592419 sleep_on +EXPORT_SYMBOL vmlinux 0x436c8451 f_setown +EXPORT_SYMBOL vmlinux 0x43800f68 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x438f903d blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x43979bcc put_tty_driver +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43b40de7 kunmap_atomic +EXPORT_SYMBOL vmlinux 0x43ed9347 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x4454ecf1 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x4464de44 arp_tbl +EXPORT_SYMBOL vmlinux 0x446b1a3e complete_and_exit +EXPORT_SYMBOL vmlinux 0x4474bc34 inet_select_addr +EXPORT_SYMBOL vmlinux 0x4485b6b1 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d3b296 pci_choose_state +EXPORT_SYMBOL vmlinux 0x452ac696 poll_freewait +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x455fd57d acpi_set_register +EXPORT_SYMBOL vmlinux 0x456718c4 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x45767dac vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x45aed0bc locks_remove_posix +EXPORT_SYMBOL vmlinux 0x45bb0352 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x46251b94 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x46340662 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4676ff60 allocate_resource +EXPORT_SYMBOL vmlinux 0x46877838 neigh_destroy +EXPORT_SYMBOL vmlinux 0x46939cd4 arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0x469cbafb thaw_bdev +EXPORT_SYMBOL vmlinux 0x46a07d87 acpi_extract_package +EXPORT_SYMBOL vmlinux 0x46d0fdbe pre_task_out_intr +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x47435479 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x47662234 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x4775eacf iowrite16 +EXPORT_SYMBOL vmlinux 0x4775fd36 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x47888db5 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47b1519d blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x47c0070c input_unregister_handle +EXPORT_SYMBOL vmlinux 0x47d213b8 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x48174caf sock_setsockopt +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4853625b __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x486049b8 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x4876c5d5 sock_no_connect +EXPORT_SYMBOL vmlinux 0x487a2cdb acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x4888a014 __get_user_2 +EXPORT_SYMBOL vmlinux 0x48962d2f pci_save_state +EXPORT_SYMBOL vmlinux 0x48cc5193 simple_write_end +EXPORT_SYMBOL vmlinux 0x48cd9314 deactivate_super +EXPORT_SYMBOL vmlinux 0x48d4e02e pagecache_write_end +EXPORT_SYMBOL vmlinux 0x48f07026 key_create_or_update +EXPORT_SYMBOL vmlinux 0x4912bd5b acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x4914d261 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x493788e6 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x493e73f1 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x49519a61 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x49c752cb dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3e4e39 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x4a3eedd1 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x4a585ed8 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4a9bdec2 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x4aaa92ae elv_queue_empty +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b46ed27 check_disk_change +EXPORT_SYMBOL vmlinux 0x4b8446fa rwsem_wake +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c136a68 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x4c20060b ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x4c2f25b8 generic_read_dir +EXPORT_SYMBOL vmlinux 0x4c37bec9 ps2_command +EXPORT_SYMBOL vmlinux 0x4c574366 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd778a0 dma_pool_free +EXPORT_SYMBOL vmlinux 0x4ceb3d0c __elv_add_request +EXPORT_SYMBOL vmlinux 0x4cf71cd2 idr_remove_all +EXPORT_SYMBOL vmlinux 0x4d33df45 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d5bbeb4 add_disk +EXPORT_SYMBOL vmlinux 0x4d800487 ide_end_drive_cmd +EXPORT_SYMBOL vmlinux 0x4d901ae7 simple_prepare_write +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df7877d blk_init_queue +EXPORT_SYMBOL vmlinux 0x4e089c14 pci_disable_device +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e5cd5c2 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9f3bcf keyring_clear +EXPORT_SYMBOL vmlinux 0x4eb8b1f4 tty_check_change +EXPORT_SYMBOL vmlinux 0x4fccd019 unlock_rename +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe332b6 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x5004e414 generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x5015b9b5 qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x501a15cc devm_ioremap +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50268ac0 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x503c48b7 path_lookup +EXPORT_SYMBOL vmlinux 0x508ef3dd remove_wait_queue +EXPORT_SYMBOL vmlinux 0x50fabea2 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x5114c521 kobject_register +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51291791 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x5148ee2a rtc_lock +EXPORT_SYMBOL vmlinux 0x514b476e add_to_page_cache +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x515b8776 reset_files_struct +EXPORT_SYMBOL vmlinux 0x516c60bc xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x518794aa con_is_bound +EXPORT_SYMBOL vmlinux 0x518eb764 per_cpu__cpu_number +EXPORT_SYMBOL vmlinux 0x51d37b36 blk_insert_request +EXPORT_SYMBOL vmlinux 0x51d7a776 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x521bf3fc blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x524cda48 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x525cd570 per_cpu__cpu_core_map +EXPORT_SYMBOL vmlinux 0x52798d37 __next_cpu +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529b63c1 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52be78f3 tty_register_driver +EXPORT_SYMBOL vmlinux 0x52eceef5 permission +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53179827 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x532f49f5 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53428c91 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x536e2238 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x537374e7 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c4b881 __kfifo_get +EXPORT_SYMBOL vmlinux 0x53d57111 dma_pool_create +EXPORT_SYMBOL vmlinux 0x53d87d99 serio_reconnect +EXPORT_SYMBOL vmlinux 0x5425ae22 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x54276a25 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x54324f95 ioread16_rep +EXPORT_SYMBOL vmlinux 0x546e4cc8 current_fs_time +EXPORT_SYMBOL vmlinux 0x546f0b06 _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54b5902f sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x54b8a3f9 per_cpu__x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x54b954e1 try_to_release_page +EXPORT_SYMBOL vmlinux 0x54dc01df km_policy_expired +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f69a9c arp_xmit +EXPORT_SYMBOL vmlinux 0x550be1b2 __seq_open_private +EXPORT_SYMBOL vmlinux 0x5533e7d1 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x5568be43 lock_kernel +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a028e2 pci_map_rom +EXPORT_SYMBOL vmlinux 0x55dff429 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x55e23d42 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5602c394 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x56179c5f mtrr_add +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x5640ce24 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x56d19d5e eth_header_cache +EXPORT_SYMBOL vmlinux 0x56da57c9 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x570ee548 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x5710855f acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x5739acfe uts_sem +EXPORT_SYMBOL vmlinux 0x573a0848 per_cpu__current_task +EXPORT_SYMBOL vmlinux 0x573d324f i8253_lock +EXPORT_SYMBOL vmlinux 0x5764edb7 ilookup +EXPORT_SYMBOL vmlinux 0x57b43223 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x57d92a95 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x57ef7ccc xfrm_state_add +EXPORT_SYMBOL vmlinux 0x5801d9f1 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x58273955 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x5831acb6 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x583abd05 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5881b005 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x58dbe108 dev_close +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x59070e1e ida_get_new_above +EXPORT_SYMBOL vmlinux 0x5913913a node_states +EXPORT_SYMBOL vmlinux 0x59234fa0 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x59260493 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5938af46 blk_get_request +EXPORT_SYMBOL vmlinux 0x593e12ee zero_fill_bio +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5951dc5e keyring_search +EXPORT_SYMBOL vmlinux 0x59684599 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x59782b0e inet_put_port +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59bd9144 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59f067b8 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x5a034fb2 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x5a28c3dc pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x5a2bf158 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5ab744ab dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x5abc49f9 proc_bus +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5af96b8a bio_copy_user +EXPORT_SYMBOL vmlinux 0x5b02d037 generic_setxattr +EXPORT_SYMBOL vmlinux 0x5b153659 register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x5b1ceb04 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x5b3b25d9 generic_writepages +EXPORT_SYMBOL vmlinux 0x5b3db6c5 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x5b4de125 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5bbb543c ide_init_drive_cmd +EXPORT_SYMBOL vmlinux 0x5bdd6edb _spin_trylock +EXPORT_SYMBOL vmlinux 0x5c049a30 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x5c30e6ca dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x5c67ff91 neigh_update +EXPORT_SYMBOL vmlinux 0x5c9b2a2c pci_bus_type +EXPORT_SYMBOL vmlinux 0x5c9b3964 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x5cd1d454 register_chrdev +EXPORT_SYMBOL vmlinux 0x5cd2178e load_nls +EXPORT_SYMBOL vmlinux 0x5cfaf90c kmap +EXPORT_SYMBOL vmlinux 0x5d17518f schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x5d64c8ce invalidate_bdev +EXPORT_SYMBOL vmlinux 0x5da60a55 struct_module +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dcdafa3 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5dfcb861 bio_init +EXPORT_SYMBOL vmlinux 0x5dfe8f1a unlock_kernel +EXPORT_SYMBOL vmlinux 0x5e015a1a sock_wfree +EXPORT_SYMBOL vmlinux 0x5e406d49 vm_insert_page +EXPORT_SYMBOL vmlinux 0x5e5c946a nf_log_packet +EXPORT_SYMBOL vmlinux 0x5e9cf7c1 seq_path +EXPORT_SYMBOL vmlinux 0x5eda6e7e xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x5f2b3f28 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x5f6454c0 downgrade_write +EXPORT_SYMBOL vmlinux 0x5f6b5fee mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x5f92e049 subsys_create_file +EXPORT_SYMBOL vmlinux 0x5fbaf87d generic_unplug_device +EXPORT_SYMBOL vmlinux 0x5ffda223 start_tty +EXPORT_SYMBOL vmlinux 0x60000a57 ip_route_input +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60253ab0 up_read +EXPORT_SYMBOL vmlinux 0x603c7de4 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x609ef2ab xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x609f2de8 end_that_request_first +EXPORT_SYMBOL vmlinux 0x60a275ae dquot_free_inode +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60a4461c __up_wakeup +EXPORT_SYMBOL vmlinux 0x60b63697 ide_lock +EXPORT_SYMBOL vmlinux 0x60c10012 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x60d1f2fe bdi_destroy +EXPORT_SYMBOL vmlinux 0x61151700 mutex_trylock +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x612c0ba0 bdi_init +EXPORT_SYMBOL vmlinux 0x614bd5a5 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c6658c devm_free_irq +EXPORT_SYMBOL vmlinux 0x61d9569e udp_sendmsg +EXPORT_SYMBOL vmlinux 0x61ffa8cb udp_prot +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x620a52cd ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241fd2c acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x625acc81 __down_failed_interruptible +EXPORT_SYMBOL vmlinux 0x625dc97a pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x628de9f5 nf_reinject +EXPORT_SYMBOL vmlinux 0x62c5d6f2 module_add_driver +EXPORT_SYMBOL vmlinux 0x62c9698d kill_block_super +EXPORT_SYMBOL vmlinux 0x62f4d587 file_permission +EXPORT_SYMBOL vmlinux 0x62fb314f unregister_qdisc +EXPORT_SYMBOL vmlinux 0x6311b71e tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x63150243 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63dfe1b4 hpet_unregister +EXPORT_SYMBOL vmlinux 0x63e4482b tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6402aaff release_resource +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640bb873 pci_find_capability +EXPORT_SYMBOL vmlinux 0x64238262 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x64238478 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x6448c3cc dquot_commit +EXPORT_SYMBOL vmlinux 0x644d0525 bdevname +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x648195d8 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64e49fd9 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x64f9c27e unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x65019a8b input_close_device +EXPORT_SYMBOL vmlinux 0x6503595f xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x656ae9ae framebuffer_release +EXPORT_SYMBOL vmlinux 0x660ab959 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x6623214f down_write +EXPORT_SYMBOL vmlinux 0x663e563e inet_getname +EXPORT_SYMBOL vmlinux 0x666f8665 sk_wait_data +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x668b6158 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669d4261 ps2_drain +EXPORT_SYMBOL vmlinux 0x66e0b3a3 default_llseek +EXPORT_SYMBOL vmlinux 0x670adcbd xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x67229cad __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x6729eedd blk_execute_rq +EXPORT_SYMBOL vmlinux 0x672f2160 __nla_reserve +EXPORT_SYMBOL vmlinux 0x6738f28b do_sync_read +EXPORT_SYMBOL vmlinux 0x67450d11 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x679a54f2 init_timer +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67c68b5c pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x67c726f8 netif_rx +EXPORT_SYMBOL vmlinux 0x67ddf38f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x67f36b7c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x685e2823 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x686f1325 hpet_alloc +EXPORT_SYMBOL vmlinux 0x68708913 skb_under_panic +EXPORT_SYMBOL vmlinux 0x687711d1 lock_super +EXPORT_SYMBOL vmlinux 0x6896e7d0 fasync_helper +EXPORT_SYMBOL vmlinux 0x68ef0b8e d_genocide +EXPORT_SYMBOL vmlinux 0x69005013 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x690096d7 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x69540400 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x6970b4e6 arp_find +EXPORT_SYMBOL vmlinux 0x6988f294 swap_io_context +EXPORT_SYMBOL vmlinux 0x6989a769 vsnprintf +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69c08783 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69ebc5d3 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x69fdad7b lock_may_write +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a2cba16 proc_root +EXPORT_SYMBOL vmlinux 0x6a4283e5 pci_iomap +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5845f1 dev_add_pack +EXPORT_SYMBOL vmlinux 0x6a67d51a tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x6a816184 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x6a94b9f6 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x6aa9eb29 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x6ab31c9b unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x6abfcf93 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b27430b tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b618eb3 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x6b6fbdd5 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x6b757944 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x6b781fe4 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x6b8c3e07 block_write_full_page +EXPORT_SYMBOL vmlinux 0x6b95785b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x6bc8fff8 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d33adf8 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6da3fa7a pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x6daf3702 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x6dd86f64 get_empty_filp +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df14628 page_put_link +EXPORT_SYMBOL vmlinux 0x6e0eaad7 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x6e185827 _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x6e1a4bbb udp_hash_lock +EXPORT_SYMBOL vmlinux 0x6e2ece60 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6e440b58 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x6e5008ef acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e7e161a mnt_pin +EXPORT_SYMBOL vmlinux 0x6e8f4ad9 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ed23b56 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x6eedbdb5 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x6f0d9575 __devm_release_region +EXPORT_SYMBOL vmlinux 0x6f2ac410 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x6f6f8724 end_page_writeback +EXPORT_SYMBOL vmlinux 0x6f80f54c textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6f89c1b1 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x6faa475a cond_resched_lock +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd671b9 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x700236e7 dump_fpu +EXPORT_SYMBOL vmlinux 0x7005e4c3 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x7024cc61 vfs_writev +EXPORT_SYMBOL vmlinux 0x704bf5c7 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705df6a5 find_or_create_page +EXPORT_SYMBOL vmlinux 0x7078a4df set_device_ro +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x71472b88 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a04a0a serial8250_register_port +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71d8d640 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x722a0a0a _read_lock +EXPORT_SYMBOL vmlinux 0x7231a93a dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x7246c2de skb_queue_head +EXPORT_SYMBOL vmlinux 0x725975bb may_umount +EXPORT_SYMBOL vmlinux 0x729875c6 init_task +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bbb944 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x72f422bc nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x73432122 sock_register +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x73c25237 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e9aab9 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x73f44c0b vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740c37b7 mempool_create_node +EXPORT_SYMBOL vmlinux 0x740e0069 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x741f1f6e hpet_register +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74b38248 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74d0c235 simple_unlink +EXPORT_SYMBOL vmlinux 0x74d530fa kernel_getsockname +EXPORT_SYMBOL vmlinux 0x74d8ce7f kobject_set_name +EXPORT_SYMBOL vmlinux 0x74e828f6 simple_getattr +EXPORT_SYMBOL vmlinux 0x751fa259 inode_setattr +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7538cb10 nonseekable_open +EXPORT_SYMBOL vmlinux 0x756dbd20 fsync_bdev +EXPORT_SYMBOL vmlinux 0x75a57a72 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x75be836c tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7617981c tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7627c335 _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x7640fd08 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x76430786 _spin_unlock +EXPORT_SYMBOL vmlinux 0x7656e8ab tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7693b952 aio_put_req +EXPORT_SYMBOL vmlinux 0x76a90b0c neigh_event_ns +EXPORT_SYMBOL vmlinux 0x76badc35 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x772639de dev_get_flags +EXPORT_SYMBOL vmlinux 0x77308d7a generic_block_bmap +EXPORT_SYMBOL vmlinux 0x774e5997 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x77524a43 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x77642c74 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x77df8dd4 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77ed0d95 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x780877e8 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x7822beb3 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x7827457e vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x782c4ebc tcp_read_sock +EXPORT_SYMBOL vmlinux 0x7860a6c9 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x787880e5 init_net +EXPORT_SYMBOL vmlinux 0x7878d4b4 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x78832508 kset_register +EXPORT_SYMBOL vmlinux 0x7899033d netif_rx_ni +EXPORT_SYMBOL vmlinux 0x78abaec3 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x78c92afd udp_get_port +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x79067005 copy_io_context +EXPORT_SYMBOL vmlinux 0x793cd71a __breadahead +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x79475f99 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x79493f52 dst_destroy +EXPORT_SYMBOL vmlinux 0x794c1398 dmi_check_system +EXPORT_SYMBOL vmlinux 0x795340bb __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x7966b74a simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x7999bd59 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79aaa232 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x79ac4e31 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x79c72a3f filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x79d6b971 send_sig +EXPORT_SYMBOL vmlinux 0x79dc2efe vfs_readdir +EXPORT_SYMBOL vmlinux 0x79e573da xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x79f51b85 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x7a19e79e sock_kfree_s +EXPORT_SYMBOL vmlinux 0x7a364a85 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x7a6bab83 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x7a6ea3cc blkdev_get +EXPORT_SYMBOL vmlinux 0x7aae6e97 drop_super +EXPORT_SYMBOL vmlinux 0x7abff55b sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x7ac46eb9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x7ad15203 bmap +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b04cc91 mempool_destroy +EXPORT_SYMBOL vmlinux 0x7b1aacfc setup_arg_pages +EXPORT_SYMBOL vmlinux 0x7b201b65 dquot_release +EXPORT_SYMBOL vmlinux 0x7b2e7652 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x7b3dfdbb datagram_poll +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7bdd9f07 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x7be2e44e sock_create_lite +EXPORT_SYMBOL vmlinux 0x7bf6f61c ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x7c0e7148 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x7c2410d1 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7c41b591 tcp_prot +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c647795 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x7c9049bf prepare_to_wait +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c981f05 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x7cab7ee7 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cd5effb tcp_close +EXPORT_SYMBOL vmlinux 0x7d01e464 misc_deregister +EXPORT_SYMBOL vmlinux 0x7d05b740 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d278df7 _write_lock_bh +EXPORT_SYMBOL vmlinux 0x7d6ccd27 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x7d7ae019 pci_dev_put +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7dacc271 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x7db7b153 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de8d6a9 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x7dfc4ba4 sock_no_accept +EXPORT_SYMBOL vmlinux 0x7e4cf45b netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x7e67880c task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x7e6d9b2a init_buffer +EXPORT_SYMBOL vmlinux 0x7e6eb867 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb66d88 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x7ece428c seq_open_private +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f682c44 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fe2ab23 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x8005044a nobh_write_begin +EXPORT_SYMBOL vmlinux 0x80052ffb pci_disable_msi +EXPORT_SYMBOL vmlinux 0x80427cea sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x8066d601 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x807592fb proc_root_fs +EXPORT_SYMBOL vmlinux 0x80912c87 lock_may_read +EXPORT_SYMBOL vmlinux 0x8094204a wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x809fd415 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x80c81272 set_irq_chip +EXPORT_SYMBOL vmlinux 0x80ca2713 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x80d8a96a fb_blank +EXPORT_SYMBOL vmlinux 0x8144380f fd_install +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8169e70b profile_pc +EXPORT_SYMBOL vmlinux 0x819eb5e2 page_symlink +EXPORT_SYMBOL vmlinux 0x81d448af dquot_acquire +EXPORT_SYMBOL vmlinux 0x81e5d45d __page_symlink +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82a5ef44 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x82b850ac sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x82d39b9f mem_map +EXPORT_SYMBOL vmlinux 0x82e1e7b6 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82fa26e6 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x83015749 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x83735679 seq_puts +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83cbc699 mutex_lock +EXPORT_SYMBOL vmlinux 0x83e3b57e sock_kmalloc +EXPORT_SYMBOL vmlinux 0x83e84bbe __mod_timer +EXPORT_SYMBOL vmlinux 0x83f8f6d8 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x8423d1f8 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x8425482f nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x843a6ac8 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x844be744 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x845c9cf8 invalidate_partition +EXPORT_SYMBOL vmlinux 0x847b9211 __kfifo_put +EXPORT_SYMBOL vmlinux 0x84c6e9d5 inet_listen +EXPORT_SYMBOL vmlinux 0x84c86c9a call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x84daabab empty_zero_page +EXPORT_SYMBOL vmlinux 0x84fe01cc write_one_page +EXPORT_SYMBOL vmlinux 0x8503e789 dev_load +EXPORT_SYMBOL vmlinux 0x85217a51 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x8524b64c xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x852abecf __request_region +EXPORT_SYMBOL vmlinux 0x85402f49 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x858e4b03 generic_readlink +EXPORT_SYMBOL vmlinux 0x85902f79 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85a1cd1f __serio_register_port +EXPORT_SYMBOL vmlinux 0x85b07190 nla_reserve +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e6172d kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f72b2a netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x86034cf8 dq_data_lock +EXPORT_SYMBOL vmlinux 0x86202b69 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x864a4975 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x8659f63b mempool_create +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1fa9d blk_init_tags +EXPORT_SYMBOL vmlinux 0x86a29d9f kernel_getpeername +EXPORT_SYMBOL vmlinux 0x86adc315 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x86b198a1 request_firmware +EXPORT_SYMBOL vmlinux 0x86b26c73 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x86c4beda neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x86c5d921 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871ddb75 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x87403ffb redraw_screen +EXPORT_SYMBOL vmlinux 0x874aea72 acpi_os_signal +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x8789cd47 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x878b2302 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x87c10088 block_prepare_write +EXPORT_SYMBOL vmlinux 0x87c9704c dquot_initialize +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88640159 _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x893aeeff per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x89735afe __scm_destroy +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8999dfc2 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x89aa1233 clear_inode +EXPORT_SYMBOL vmlinux 0x89b7e15f __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x89bfb764 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a646721 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x8a76332a sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aef7a67 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x8b0c31cb SELECT_DRIVE +EXPORT_SYMBOL vmlinux 0x8b131628 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1dcca2 find_vma +EXPORT_SYMBOL vmlinux 0x8b5e06f8 fb_pan_display +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b72ee3a generic_file_mmap +EXPORT_SYMBOL vmlinux 0x8b7c7112 pci_enable_device +EXPORT_SYMBOL vmlinux 0x8b8e76f9 tcp_poll +EXPORT_SYMBOL vmlinux 0x8b93f430 uart_match_port +EXPORT_SYMBOL vmlinux 0x8b99d3b6 unregister_console +EXPORT_SYMBOL vmlinux 0x8bb5d088 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x8bc0e76c pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x8bc40d07 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x8bd095ae sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x8c169c77 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x8c1f85c7 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x8c2238ec neigh_table_clear +EXPORT_SYMBOL vmlinux 0x8c361972 __scm_send +EXPORT_SYMBOL vmlinux 0x8c3a071f set_disk_ro +EXPORT_SYMBOL vmlinux 0x8c4123d0 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x8c6bd064 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cc80fa1 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x8cec27c2 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x8cf873dd ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d699489 sock_rfree +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d823621 input_free_device +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d938238 __free_pages +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e481c88 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e8b9c91 posix_test_lock +EXPORT_SYMBOL vmlinux 0x8e9a0c68 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x8ed12386 skb_append +EXPORT_SYMBOL vmlinux 0x8f0f81e4 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x8f1474ea remove_inode_hash +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f74a00e ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x8f769686 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x8f819db5 input_register_handler +EXPORT_SYMBOL vmlinux 0x8f8c932e elv_dequeue_request +EXPORT_SYMBOL vmlinux 0x8fac8341 register_filesystem +EXPORT_SYMBOL vmlinux 0x8fc42732 __brelse +EXPORT_SYMBOL vmlinux 0x8ffd1391 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x902f85b2 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x903c945a vc_resize +EXPORT_SYMBOL vmlinux 0x903d7c03 key_alloc +EXPORT_SYMBOL vmlinux 0x904571d0 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x9053cea3 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x908aa9b2 iowrite32 +EXPORT_SYMBOL vmlinux 0x909539ad alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90be74f0 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x90f66cdc pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x9122126b tcp_check_req +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x9199e730 remove_suid +EXPORT_SYMBOL vmlinux 0x91ca8959 acpi_get_register +EXPORT_SYMBOL vmlinux 0x91d6536d __mutex_init +EXPORT_SYMBOL vmlinux 0x91f638fa km_policy_notify +EXPORT_SYMBOL vmlinux 0x920c49ab rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x927ee2d4 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x92972fef netlink_unicast +EXPORT_SYMBOL vmlinux 0x92c41dce submit_bh +EXPORT_SYMBOL vmlinux 0x92dec7b8 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x92e518ec tty_vhangup +EXPORT_SYMBOL vmlinux 0x92f5d715 dma_async_client_register +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9326a7de gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x934c576c cpu_present_map +EXPORT_SYMBOL vmlinux 0x934cb83f vmtruncate +EXPORT_SYMBOL vmlinux 0x93590a1d generate_resume_trace +EXPORT_SYMBOL vmlinux 0x93632f3e kunmap +EXPORT_SYMBOL vmlinux 0x9379e226 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x939aef15 generic_write_end +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93de454b simple_lookup +EXPORT_SYMBOL vmlinux 0x942fefc5 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x9443349e mapping_tagged +EXPORT_SYMBOL vmlinux 0x945b9a0f sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x94601df4 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x949335b7 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x949e1978 no_llseek +EXPORT_SYMBOL vmlinux 0x94b6864e user_revoke +EXPORT_SYMBOL vmlinux 0x9504ec64 idr_get_new +EXPORT_SYMBOL vmlinux 0x952d7566 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9586db21 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x95a42185 blk_put_queue +EXPORT_SYMBOL vmlinux 0x95a86347 get_fs_type +EXPORT_SYMBOL vmlinux 0x95bf434b blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x95cc2139 __PAGE_KERNEL +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x95fde4e4 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0x961059a4 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x96461db9 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x964f7702 may_umount_tree +EXPORT_SYMBOL vmlinux 0x96924d33 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x969797da tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x96999e76 create_proc_entry +EXPORT_SYMBOL vmlinux 0x96adeca8 d_namespace_path +EXPORT_SYMBOL vmlinux 0x96b27088 __down_failed +EXPORT_SYMBOL vmlinux 0x96ead15e sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x96f929e9 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x970dcdde register_netdevice +EXPORT_SYMBOL vmlinux 0x97149c3b bd_set_size +EXPORT_SYMBOL vmlinux 0x971d6478 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x972f9567 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x97460501 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x974f9972 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x9750595f flush_old_exec +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975f8b3e ida_remove +EXPORT_SYMBOL vmlinux 0x977a6d1c blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x97891ac1 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98778d21 bio_free +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98b1f5e8 del_timer +EXPORT_SYMBOL vmlinux 0x98b5af00 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x98c614a7 freeze_bdev +EXPORT_SYMBOL vmlinux 0x98f53ca6 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x9907e76c pci_request_region +EXPORT_SYMBOL vmlinux 0x9941ccb8 free_pages +EXPORT_SYMBOL vmlinux 0x9968303e ide_end_request +EXPORT_SYMBOL vmlinux 0x998a4145 kobject_unregister +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999aab0b simple_link +EXPORT_SYMBOL vmlinux 0x999f6fc3 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99b3ae2e generic_fillattr +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99f0d5ec inode_init_once +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a595a9b end_that_request_last +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9ad3d4f1 uart_resume_port +EXPORT_SYMBOL vmlinux 0x9ad5a1cf tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x9adeff02 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x9ae8ea00 unregister_key_type +EXPORT_SYMBOL vmlinux 0x9afb8a38 path_release +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b718427 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9b861cbd acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x9b916d3d tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x9b993966 input_release_device +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bcebfef udplite_get_port +EXPORT_SYMBOL vmlinux 0x9c011b64 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c1f4d58 tc_classify +EXPORT_SYMBOL vmlinux 0x9c26e381 bio_alloc +EXPORT_SYMBOL vmlinux 0x9c42c834 pci_find_slot +EXPORT_SYMBOL vmlinux 0x9c48b555 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x9c4c0420 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9c6a3fea console_stop +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c7725b4 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd79f4b pci_release_region +EXPORT_SYMBOL vmlinux 0x9ce99d6a generic_removexattr +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9d0f5f26 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d43755c request_resource +EXPORT_SYMBOL vmlinux 0x9dd0d501 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x9de5d20c scm_detach_fds +EXPORT_SYMBOL vmlinux 0x9ded90ba skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x9df0542a idr_remove +EXPORT_SYMBOL vmlinux 0x9df20d64 fb_set_var +EXPORT_SYMBOL vmlinux 0x9df4c1bb clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x9df6e76f pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x9e43073c blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9eca1c47 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x9ed0095c pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f4e9c83 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9f7676f8 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fcf51d1 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x9feaa9d0 fb_class +EXPORT_SYMBOL vmlinux 0x9ff67119 ide_register_hw +EXPORT_SYMBOL vmlinux 0xa0350991 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa03d6a57 __get_user_4 +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa081102c pnp_register_driver +EXPORT_SYMBOL vmlinux 0xa091c87d blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xa0af7641 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b348b9 get_disk +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa169d702 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xa1723e05 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xa1a6414c iowrite32be +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1ea3778 d_move +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2103470 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xa2268b59 mutex_unlock +EXPORT_SYMBOL vmlinux 0xa22691c8 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xa2570a67 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xa29cd72c generic_delete_inode +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2f03534 force_sig +EXPORT_SYMBOL vmlinux 0xa304d1ca sk_reset_timer +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa3424439 tty_mutex +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37524e5 proc_dointvec +EXPORT_SYMBOL vmlinux 0xa3947635 kernel_listen +EXPORT_SYMBOL vmlinux 0xa395a772 kfifo_init +EXPORT_SYMBOL vmlinux 0xa3bbcd80 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xa3e1f4fb __user_walk_fd +EXPORT_SYMBOL vmlinux 0xa41df6a6 load_nls_default +EXPORT_SYMBOL vmlinux 0xa42cf911 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xa42f2231 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa46dc984 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xa4891ab6 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0xa4abb83c cpu_callout_map +EXPORT_SYMBOL vmlinux 0xa50439c5 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa527887f brioctl_set +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa56f42f2 dst_alloc +EXPORT_SYMBOL vmlinux 0xa57f0a13 bioset_free +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59c0666 acpi_strict +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa60908f8 register_gifconf +EXPORT_SYMBOL vmlinux 0xa638298b netdev_features_change +EXPORT_SYMBOL vmlinux 0xa64c2e6a bio_split +EXPORT_SYMBOL vmlinux 0xa65599ef xfrm_register_km +EXPORT_SYMBOL vmlinux 0xa668ea4c pci_fixup_device +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa6814433 groups_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a9a090 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0xa6a9c084 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xa6b00d9e ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xa6c1be89 sock_i_ino +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6dd6b11 d_validate +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71a9da5 set_blocksize +EXPORT_SYMBOL vmlinux 0xa73e88e6 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa76586f3 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0xa770b803 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xa78bca12 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xa7b1f797 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xa7b3ae55 ipv4_specific +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7cbbe73 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xa7e1b46c gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xa7e4b8d1 skb_copy +EXPORT_SYMBOL vmlinux 0xa7e7164c cfb_copyarea +EXPORT_SYMBOL vmlinux 0xa7fc7812 pci_release_regions +EXPORT_SYMBOL vmlinux 0xa843ef11 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xa86df4c9 pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0xa86f2144 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xa89b3b7b file_fsync +EXPORT_SYMBOL vmlinux 0xa8b2bb59 stop_tty +EXPORT_SYMBOL vmlinux 0xa8f64e34 kill_anon_super +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90bbb2d skb_over_panic +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa94b8fcd _write_trylock +EXPORT_SYMBOL vmlinux 0xa984725e tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa9be76e8 clocksource_register +EXPORT_SYMBOL vmlinux 0xa9e7ac16 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xaa3280da sock_create_kern +EXPORT_SYMBOL vmlinux 0xaa3f2d82 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xaa82878a pneigh_lookup +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa949a74 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xaa96de60 inet_frag_find +EXPORT_SYMBOL vmlinux 0xaaf62539 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab22f249 seq_lseek +EXPORT_SYMBOL vmlinux 0xab3ce182 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab5470b7 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab99684b simple_rmdir +EXPORT_SYMBOL vmlinux 0xab9bd2a1 __bforget +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xac22bc7d get_sb_bdev +EXPORT_SYMBOL vmlinux 0xac331e99 proc_symlink +EXPORT_SYMBOL vmlinux 0xac3a838d key_validate +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac4509a3 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xaca05577 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xacb7a1eb nf_getsockopt +EXPORT_SYMBOL vmlinux 0xacc0dbfc acpi_get_table +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd2d7e7 make_EII_client +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfd55fd ether_setup +EXPORT_SYMBOL vmlinux 0xacff52a5 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad54ccb4 forbid_dac +EXPORT_SYMBOL vmlinux 0xad5f6180 pnp_start_dev +EXPORT_SYMBOL vmlinux 0xad714ee1 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xada36e25 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb7a023 complete +EXPORT_SYMBOL vmlinux 0xae0b19bf audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xae653071 dev_driver_string +EXPORT_SYMBOL vmlinux 0xae867590 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0xaec4759f vprintk +EXPORT_SYMBOL vmlinux 0xaeee6158 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xaf210b8c __alloc_skb +EXPORT_SYMBOL vmlinux 0xaf53ecc0 tty_name +EXPORT_SYMBOL vmlinux 0xaf54bd55 key_task_permission +EXPORT_SYMBOL vmlinux 0xaf72029a input_flush_device +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xaf8199fa xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xafe889d3 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xafff6103 _write_lock +EXPORT_SYMBOL vmlinux 0xb0021cea lock_rename +EXPORT_SYMBOL vmlinux 0xb0137c2e open_by_devnum +EXPORT_SYMBOL vmlinux 0xb06a6d41 mnt_unpin +EXPORT_SYMBOL vmlinux 0xb0746b6b inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xb0756b2b register_nls +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0ca1b83 sock_create +EXPORT_SYMBOL vmlinux 0xb0d12460 get_super +EXPORT_SYMBOL vmlinux 0xb0db3b38 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1418a5e serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xb14b6b34 update_region +EXPORT_SYMBOL vmlinux 0xb15afeff unregister_filesystem +EXPORT_SYMBOL vmlinux 0xb16bc908 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb1a5b9d6 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xb1b06127 udp_poll +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cb1056 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xb1d61860 seq_open +EXPORT_SYMBOL vmlinux 0xb210d929 ip_fragment +EXPORT_SYMBOL vmlinux 0xb2204bbc truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xb2780f36 mempool_alloc +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb2bdbe65 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0xb2be638a dma_chan_cleanup +EXPORT_SYMBOL vmlinux 0xb2d56e2b per_cpu__cpu_info +EXPORT_SYMBOL vmlinux 0xb2e09fbc blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb321fe29 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xb32242d3 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb39026e4 mempool_resize +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3e28ed7 vfs_readlink +EXPORT_SYMBOL vmlinux 0xb407b205 ioport_resource +EXPORT_SYMBOL vmlinux 0xb40e88ea ip_getsockopt +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb43548e6 wake_up_process +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb464ff52 __nla_put +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4c4182e tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xb4e198a9 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb552d1c3 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xb58f0b49 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b9d827 kfifo_alloc +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb61cae56 request_key +EXPORT_SYMBOL vmlinux 0xb64de7d4 dput +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6b0d408 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xb6eb4e76 registered_fb +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb711551f do_splice_from +EXPORT_SYMBOL vmlinux 0xb7137d2c fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb765f52e blk_recount_segments +EXPORT_SYMBOL vmlinux 0xb77df0bc remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xb7a351b4 find_lock_page +EXPORT_SYMBOL vmlinux 0xb7a98958 rtnl_notify +EXPORT_SYMBOL vmlinux 0xb7ae5b4a pci_get_device +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7fc20c1 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xb81a98b6 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0xb8445a9f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xb852314c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb879e1f0 __alloc_pages +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb96d596f __pagevec_release +EXPORT_SYMBOL vmlinux 0xb9a30f9f pci_get_slot +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xb9d1c24d netpoll_setup +EXPORT_SYMBOL vmlinux 0xb9d6d94e bd_claim +EXPORT_SYMBOL vmlinux 0xb9e1edd4 iunique +EXPORT_SYMBOL vmlinux 0xb9f9b214 __lock_buffer +EXPORT_SYMBOL vmlinux 0xba1c0ea1 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4ea5d9 __napi_schedule +EXPORT_SYMBOL vmlinux 0xba5fc97e tcp_connect +EXPORT_SYMBOL vmlinux 0xba6e2743 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xba763fc3 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xba997bde ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xbaa99f1d do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xbaadbd11 __wake_up +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb2db03f vfs_readv +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb822b35 udp_disconnect +EXPORT_SYMBOL vmlinux 0xbb8ed4da xfrm_nl +EXPORT_SYMBOL vmlinux 0xbbafd2c4 input_grab_device +EXPORT_SYMBOL vmlinux 0xbbb8a845 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xbbbcf727 kobject_add +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbeb97af tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xbbec093b proc_dostring +EXPORT_SYMBOL vmlinux 0xbbfc733e iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xbc125f78 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xbc21efdb netdev_set_master +EXPORT_SYMBOL vmlinux 0xbc449819 key_revoke +EXPORT_SYMBOL vmlinux 0xbc64987d dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xbc7c3fd0 ide_spin_wait_hwgroup +EXPORT_SYMBOL vmlinux 0xbca09dc7 idr_pre_get +EXPORT_SYMBOL vmlinux 0xbca60f1b skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd1446d make_bad_inode +EXPORT_SYMBOL vmlinux 0xbcf8f452 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbd09aff4 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xbd2373cf task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xbd2bba0e proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xbd4204aa dmam_pool_create +EXPORT_SYMBOL vmlinux 0xbd454612 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xbd48af7a vfs_permission +EXPORT_SYMBOL vmlinux 0xbd4e941c arp_send +EXPORT_SYMBOL vmlinux 0xbd93b8c0 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xbdeaf41a percpu_counter_init +EXPORT_SYMBOL vmlinux 0xbded5112 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xbe095fa5 input_set_capability +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1d15e4 kill_pgrp +EXPORT_SYMBOL vmlinux 0xbe27d28f sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xbe319063 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xbe36c959 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xbe855bc9 generic_setlease +EXPORT_SYMBOL vmlinux 0xbea66078 inode_double_unlock +EXPORT_SYMBOL vmlinux 0xbecccddc __kill_fasync +EXPORT_SYMBOL vmlinux 0xbedd4ade cpu_online_map +EXPORT_SYMBOL vmlinux 0xbee63d26 dma_async_client_chan_request +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf0578f5 get_user_pages +EXPORT_SYMBOL vmlinux 0xbf2de32b get_io_context +EXPORT_SYMBOL vmlinux 0xbf5b03cf ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xbff8c2f7 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc02874d3 misc_register +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0fa04aa _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xc10790b3 seq_release_private +EXPORT_SYMBOL vmlinux 0xc140795f request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xc143b93b inet_ioctl +EXPORT_SYMBOL vmlinux 0xc2054a6a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xc21797b5 tty_register_device +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25ad766 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc282682b dev_remove_pack +EXPORT_SYMBOL vmlinux 0xc29018a3 kill_pid +EXPORT_SYMBOL vmlinux 0xc2b4b816 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d9d9c5 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e94ab4 pci_get_class +EXPORT_SYMBOL vmlinux 0xc30098be sk_stream_rfree +EXPORT_SYMBOL vmlinux 0xc320f9c0 sysctl_pathname +EXPORT_SYMBOL vmlinux 0xc332b701 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xc34c0caa d_prune_aliases +EXPORT_SYMBOL vmlinux 0xc359ec0d rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xc36ae36a blk_plug_device +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cac8fd kernel_accept +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3f8972a mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc44f187e ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xc458d24f kfree_skb +EXPORT_SYMBOL vmlinux 0xc48e8a3e blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc51356b1 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc55beee1 __user_walk +EXPORT_SYMBOL vmlinux 0xc5d54a29 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0xc612cc0d xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xc627d28f d_invalidate +EXPORT_SYMBOL vmlinux 0xc63575f3 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xc6ae6b3c eth_type_trans +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6b90c81 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xc6c0b94a compute_creds +EXPORT_SYMBOL vmlinux 0xc6c32d49 vfs_quota_on +EXPORT_SYMBOL vmlinux 0xc6c35e5f blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xc6eab8c9 simple_readpage +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7683e71 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0xc76bce66 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xc787f910 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7f16465 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xc7f1d6d5 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xc7f91f14 fb_find_mode +EXPORT_SYMBOL vmlinux 0xc82acbf4 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xc8910434 pci_enable_msi +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8be7b15 _spin_lock +EXPORT_SYMBOL vmlinux 0xc8c8d143 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc9132379 subsystem_register +EXPORT_SYMBOL vmlinux 0xc9588492 sock_no_poll +EXPORT_SYMBOL vmlinux 0xc96240ac pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xc966d31c div64_64 +EXPORT_SYMBOL vmlinux 0xc97b6269 __lock_page +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc99db977 fget +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b27289 rtc_control +EXPORT_SYMBOL vmlinux 0xc9b6adc0 vc_lock_resize +EXPORT_SYMBOL vmlinux 0xc9bc5a17 mpage_writepages +EXPORT_SYMBOL vmlinux 0xc9fd878f acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xca12ddc0 idr_init +EXPORT_SYMBOL vmlinux 0xca390e2b blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xca6c95f8 acpi_get_name +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca9204a7 serio_open +EXPORT_SYMBOL vmlinux 0xca97ae4c d_path +EXPORT_SYMBOL vmlinux 0xcae607fd posix_lock_file +EXPORT_SYMBOL vmlinux 0xcae6d5e1 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb83f112 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xcbda5a08 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4f729b deny_write_access +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc58b62b bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xcc765503 skb_seq_read +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc983cae _write_lock_irq +EXPORT_SYMBOL vmlinux 0xccb31db3 __find_get_block +EXPORT_SYMBOL vmlinux 0xccbbe9e7 bdget +EXPORT_SYMBOL vmlinux 0xccc23012 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0xccde02dc dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xcce54e70 set_anon_super +EXPORT_SYMBOL vmlinux 0xcce91bf5 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xcd0c8ec0 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xcd185f26 register_quota_format +EXPORT_SYMBOL vmlinux 0xcd276853 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xcd729319 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xcdbd3903 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xcddc73e2 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xcdff2755 __ht_create_irq +EXPORT_SYMBOL vmlinux 0xce045124 km_waitq +EXPORT_SYMBOL vmlinux 0xce06f37a schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xce126c15 security_inode_permission +EXPORT_SYMBOL vmlinux 0xce1affa9 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xce2cc81f __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xce365290 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4f5e06 mpage_readpages +EXPORT_SYMBOL vmlinux 0xce56c9c7 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce679430 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xcea2409e skb_split +EXPORT_SYMBOL vmlinux 0xceb6844f blk_run_queue +EXPORT_SYMBOL vmlinux 0xced41040 filemap_flush +EXPORT_SYMBOL vmlinux 0xcee45472 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf047c83 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0xcf47e392 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xcf54fcec generic_make_request +EXPORT_SYMBOL vmlinux 0xcfa0114f find_task_by_pid +EXPORT_SYMBOL vmlinux 0xcfade59d generic_osync_inode +EXPORT_SYMBOL vmlinux 0xcfd7e637 textsearch_register +EXPORT_SYMBOL vmlinux 0xcfe3530d pci_dev_get +EXPORT_SYMBOL vmlinux 0xcff5d8b6 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd05969da sget +EXPORT_SYMBOL vmlinux 0xd073d852 __getblk +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0ba8461 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0e18fb7 generic_file_open +EXPORT_SYMBOL vmlinux 0xd0ea714d elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f44335 input_event +EXPORT_SYMBOL vmlinux 0xd0f7fa71 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xd0fc0b51 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xd11179eb seq_read +EXPORT_SYMBOL vmlinux 0xd1125377 init_special_inode +EXPORT_SYMBOL vmlinux 0xd13e0465 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd16ac615 __get_user_1 +EXPORT_SYMBOL vmlinux 0xd18b4ef8 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd18b8ede devm_request_irq +EXPORT_SYMBOL vmlinux 0xd191bdaa blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xd1a5ffa9 avail_to_resrv_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd1b32ff0 read_dev_sector +EXPORT_SYMBOL vmlinux 0xd1dd8f19 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f91bcd dev_base_lock +EXPORT_SYMBOL vmlinux 0xd24c386d idr_for_each +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd25228fc redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd283eca6 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29aa55f posix_acl_permission +EXPORT_SYMBOL vmlinux 0xd2aaf2a8 follow_up +EXPORT_SYMBOL vmlinux 0xd2bee24a task_in_intr +EXPORT_SYMBOL vmlinux 0xd301cd89 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xd32a65e8 __init_rwsem +EXPORT_SYMBOL vmlinux 0xd344a4b5 fb_show_logo +EXPORT_SYMBOL vmlinux 0xd35a9ffb block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xd3658561 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xd36f7bb0 __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0xd3725118 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xd38f20a6 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3acda49 filemap_fault +EXPORT_SYMBOL vmlinux 0xd3c08233 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xd3ee3259 contig_page_data +EXPORT_SYMBOL vmlinux 0xd3f60824 bioset_create +EXPORT_SYMBOL vmlinux 0xd434ae12 simple_write_begin +EXPORT_SYMBOL vmlinux 0xd46df6fc fb_set_suspend +EXPORT_SYMBOL vmlinux 0xd494df32 __f_setown +EXPORT_SYMBOL vmlinux 0xd4bbdc24 __read_lock_failed +EXPORT_SYMBOL vmlinux 0xd4e1c73f key_type_keyring +EXPORT_SYMBOL vmlinux 0xd4f305e2 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xd55a4a1a tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd5774a93 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5bb770d flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xd5c5e9c2 mntput_no_expire +EXPORT_SYMBOL vmlinux 0xd5fc76e7 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd646db77 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0xd650664d udp_proc_register +EXPORT_SYMBOL vmlinux 0xd6875fa3 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6ca80d0 ida_pre_get +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd728576a pcim_pin_device +EXPORT_SYMBOL vmlinux 0xd7415947 skb_make_writable +EXPORT_SYMBOL vmlinux 0xd747dceb rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd797aa3e dcache_dir_open +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a1db4c blk_register_region +EXPORT_SYMBOL vmlinux 0xd7ca5fcf d_splice_alias +EXPORT_SYMBOL vmlinux 0xd7cbe810 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e7ca24 wake_up_bit +EXPORT_SYMBOL vmlinux 0xd7ffc717 pci_restore_state +EXPORT_SYMBOL vmlinux 0xd8308447 block_write_end +EXPORT_SYMBOL vmlinux 0xd84a4fd4 ida_destroy +EXPORT_SYMBOL vmlinux 0xd85a25a7 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xd874e156 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ede31f dev_alloc_name +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd94c1770 acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xd978e3df __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98e661e set_bdi_congested +EXPORT_SYMBOL vmlinux 0xd99108c6 __devm_request_region +EXPORT_SYMBOL vmlinux 0xd9c45b20 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xd9ca786f register_sysrq_key +EXPORT_SYMBOL vmlinux 0xd9e4cb1b alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda382fee splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda6704d3 pnp_resource_change +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8d9c70 do_splice_to +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xda9d5879 page_address +EXPORT_SYMBOL vmlinux 0xdaa87d71 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xdaec1526 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xdb1689a9 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xdb1c8ac4 cdev_add +EXPORT_SYMBOL vmlinux 0xdb6dee29 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xdb6e8e96 pci_remove_rom +EXPORT_SYMBOL vmlinux 0xdb6f59c9 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xdb85c1eb blk_free_tags +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb86f88c blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd0365c kmap_high +EXPORT_SYMBOL vmlinux 0xdbd273d3 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xdbdfa8dc blk_get_queue +EXPORT_SYMBOL vmlinux 0xdbf775ec dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xdc01a06e find_next_zero_bit +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc283f1c fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc317e46 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xdc398235 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc873a70 screen_info +EXPORT_SYMBOL vmlinux 0xdca7e967 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xdca7f2f9 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xdcccb57a dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xdce3153e blk_put_request +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd18fd9e ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xdd2d277d dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0xdd4279ed read_cache_page +EXPORT_SYMBOL vmlinux 0xdd686d13 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd768201 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xdd9976f6 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xdda9923c ida_get_new +EXPORT_SYMBOL vmlinux 0xddb6cb4c put_files_struct +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xde127a63 iput +EXPORT_SYMBOL vmlinux 0xde15046e udplite_prot +EXPORT_SYMBOL vmlinux 0xde1dd066 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xde3769a1 bio_endio +EXPORT_SYMBOL vmlinux 0xde5259cb xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xde69ce2d audit_log_end +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde981e7b __secpath_destroy +EXPORT_SYMBOL vmlinux 0xdebb59a7 input_open_device +EXPORT_SYMBOL vmlinux 0xdef0a156 nf_log_register +EXPORT_SYMBOL vmlinux 0xdef5c4a5 idr_destroy +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf22dec5 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa6f0c3 kick_iocb +EXPORT_SYMBOL vmlinux 0xdfc6509e register_key_type +EXPORT_SYMBOL vmlinux 0xdfe272dd __invalidate_device +EXPORT_SYMBOL vmlinux 0xdffdc2d2 elv_rb_find +EXPORT_SYMBOL vmlinux 0xe03075f8 km_state_expired +EXPORT_SYMBOL vmlinux 0xe032f4bd audit_log_start +EXPORT_SYMBOL vmlinux 0xe03ec530 elevator_init +EXPORT_SYMBOL vmlinux 0xe06c694d touch_atime +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0e1bb99 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xe0f60559 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xe11cd043 del_gendisk +EXPORT_SYMBOL vmlinux 0xe138a110 dcache_readdir +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe16e47c0 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe190b8c5 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1fd77e7 pci_find_bus +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26c73b5 seq_escape +EXPORT_SYMBOL vmlinux 0xe2a6bcc4 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xe2ba916e kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xe2cf276e secpath_dup +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2ea9191 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe31ff0ec kobject_get +EXPORT_SYMBOL vmlinux 0xe3373e02 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe382ee38 __rta_fill +EXPORT_SYMBOL vmlinux 0xe398c7c4 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xe3c14c98 skb_checksum +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4dd346c udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xe4ec155d inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5191d55 pci_select_bars +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe53b372b inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xe569d4ed ip_dev_find +EXPORT_SYMBOL vmlinux 0xe576bd11 seq_putc +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5df28ef ilookup5 +EXPORT_SYMBOL vmlinux 0xe6221304 vmap +EXPORT_SYMBOL vmlinux 0xe63c7a09 genl_register_ops +EXPORT_SYMBOL vmlinux 0xe6589278 register_framebuffer +EXPORT_SYMBOL vmlinux 0xe65cf980 simple_rename +EXPORT_SYMBOL vmlinux 0xe6b486bc neigh_create +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe729206d inet_register_protosw +EXPORT_SYMBOL vmlinux 0xe750d440 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xe7bf80fb subsystem_unregister +EXPORT_SYMBOL vmlinux 0xe7c9d15f pagevec_lookup +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe853e77f pcim_iomap +EXPORT_SYMBOL vmlinux 0xe8673e8c generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xe868af29 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8d4cff6 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xe8d9b3ae blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xe9147905 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe92a00e0 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xe9405958 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe95fca9f __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe97e82f7 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xe9e0c1a0 simple_statfs +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea15adc1 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea77cc86 nf_register_hook +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea8f9998 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xea9a247a filp_close +EXPORT_SYMBOL vmlinux 0xeaa9da1d default_hwif_mmiops +EXPORT_SYMBOL vmlinux 0xeac0bb29 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb091eb2 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xeb0de891 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xeb2991b1 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb829bbf kill_fasync +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb9e584b qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xebd4ac07 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec2b18d1 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xec5d0e6c blk_start_queue +EXPORT_SYMBOL vmlinux 0xec7f42d1 audit_log_format +EXPORT_SYMBOL vmlinux 0xecaa8d4c neigh_parms_release +EXPORT_SYMBOL vmlinux 0xecace651 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xecc4d14c __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xecd24bbd acpi_bus_start +EXPORT_SYMBOL vmlinux 0xecf6da9d sock_i_uid +EXPORT_SYMBOL vmlinux 0xed633abc pv_irq_ops +EXPORT_SYMBOL vmlinux 0xed82479b generic_commit_write +EXPORT_SYMBOL vmlinux 0xed9003ef pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xedb61c04 fb_get_mode +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc802d4 nla_put +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xeddfe49d rtc_unregister +EXPORT_SYMBOL vmlinux 0xee066cd3 single_open +EXPORT_SYMBOL vmlinux 0xee1bb43e nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3f47ec unregister_netdevice +EXPORT_SYMBOL vmlinux 0xee50018f nlmsg_notify +EXPORT_SYMBOL vmlinux 0xee5a11eb system_bus_clock +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee8acbb6 read_cache_pages +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeacdaa3 serio_close +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeeb3c82c __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xeec5932a sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xeed2a789 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0xeed8ba0c __netif_schedule +EXPORT_SYMBOL vmlinux 0xeee77789 iget5_locked +EXPORT_SYMBOL vmlinux 0xeef94723 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xef0e6e22 change_page_attr +EXPORT_SYMBOL vmlinux 0xef1130ca page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xef14d861 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xef5a5df9 neigh_lookup +EXPORT_SYMBOL vmlinux 0xef73dbc0 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xef79ac56 __release_region +EXPORT_SYMBOL vmlinux 0xef9598cf down_read_trylock +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefc5e4ab free_task +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0029afc pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xf047c7a5 unregister_netdev +EXPORT_SYMBOL vmlinux 0xf054033c ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xf066600f __write_lock_failed +EXPORT_SYMBOL vmlinux 0xf09b5eb3 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0bcc0b3 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0xf0c62606 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xf0c7cc95 down_read +EXPORT_SYMBOL vmlinux 0xf0ef08f8 cont_write_begin +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdfdd4 vfs_rename +EXPORT_SYMBOL vmlinux 0xf1022da0 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xf10d7fad register_con_driver +EXPORT_SYMBOL vmlinux 0xf1169441 put_page +EXPORT_SYMBOL vmlinux 0xf13fc8d6 _read_lock_irq +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17e9311 open_bdev_excl +EXPORT_SYMBOL vmlinux 0xf1896b72 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xf19240b5 get_write_access +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19804fd bio_clone +EXPORT_SYMBOL vmlinux 0xf19c2b5e key_put +EXPORT_SYMBOL vmlinux 0xf19c473f cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf1d373ce proto_register +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f89e69 end_queued_request +EXPORT_SYMBOL vmlinux 0xf202f537 _read_unlock +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf220be2c ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xf227c009 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xf24e5f66 dentry_unhash +EXPORT_SYMBOL vmlinux 0xf2966660 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29ea803 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2fc9e71 acpi_root_dir +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32d2678 schedule_work +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d9067d sk_receive_skb +EXPORT_SYMBOL vmlinux 0xf3e2880b pci_scan_slot +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf413ec22 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xf439342e ps2_init +EXPORT_SYMBOL vmlinux 0xf47d47e0 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4ce1363 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf5170a5f inet_bind +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf54ee030 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xf5bce608 proc_mkdir +EXPORT_SYMBOL vmlinux 0xf5bd3a9e unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e95499 tcf_register_action +EXPORT_SYMBOL vmlinux 0xf625a770 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xf63f0c50 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf651dc00 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xf67e6d32 should_remove_suid +EXPORT_SYMBOL vmlinux 0xf6aab5a3 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xf6ab3ff1 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xf6b04f06 neigh_for_each +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e0e400 _read_trylock +EXPORT_SYMBOL vmlinux 0xf6e519e6 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf7068a42 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xf743732c uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf77b39e5 set_page_dirty +EXPORT_SYMBOL vmlinux 0xf7800f90 arp_create +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a19c53 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xf7aaa992 dentry_open +EXPORT_SYMBOL vmlinux 0xf7e696b6 free_netdev +EXPORT_SYMBOL vmlinux 0xf7f29302 __grab_cache_page +EXPORT_SYMBOL vmlinux 0xf8135b58 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xf8166939 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf82f48fc acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xf8578d3f nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8b6e55d ide_set_handler +EXPORT_SYMBOL vmlinux 0xf8bc20b4 init_mm +EXPORT_SYMBOL vmlinux 0xf8c5db39 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xf8d814be skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xf90d7764 sysctl_string +EXPORT_SYMBOL vmlinux 0xf911c9e9 send_sig_info +EXPORT_SYMBOL vmlinux 0xf95b3b42 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xf99662a5 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xf9a02b7b _write_unlock +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xfa0449a5 page_readlink +EXPORT_SYMBOL vmlinux 0xfa11aa84 sock_init_data +EXPORT_SYMBOL vmlinux 0xfa230855 dma_async_client_unregister +EXPORT_SYMBOL vmlinux 0xfa2dbb10 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xfa47f684 vfs_getattr +EXPORT_SYMBOL vmlinux 0xfa5c48ba __wake_up_bit +EXPORT_SYMBOL vmlinux 0xfaa7444e udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xfaad2e7d uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb0d62ac lock_sock_nested +EXPORT_SYMBOL vmlinux 0xfb306e20 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb96ab2c unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xfba5df43 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xfbe04b95 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfbfbee63 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc31d552 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc5fe32c register_exec_domain +EXPORT_SYMBOL vmlinux 0xfca5571a qdisc_destroy +EXPORT_SYMBOL vmlinux 0xfca5eb1f neigh_connected_output +EXPORT_SYMBOL vmlinux 0xfcb8b131 idr_find +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcdfb2d8 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf5aaac dev_open +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd026335 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xfd03f1cd _read_unlock_irq +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdab2b9c rtc_register +EXPORT_SYMBOL vmlinux 0xfdb6ad4c sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xfe3cbf2d dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xfe517521 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0xfe56298c sock_no_mmap +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe64aaaf sk_alloc +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9891f6 elv_next_request +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff261920 skb_pad +EXPORT_SYMBOL vmlinux 0xff280d44 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xff3c2654 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xff57d338 unlock_super +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff70a586 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd91628 proto_unregister +EXPORT_SYMBOL vmlinux 0xffdc1f0d __first_cpu +EXPORT_SYMBOL vmlinux 0xffe6f214 tcp_v4_connect +EXPORT_SYMBOL_GPL crypto/aead 0x41f5277d crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x4b8022e6 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x11ad06cd async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x18d12660 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2aa84c45 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6b4a6db2 async_tx_issue_pending_all +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x96bcaf29 async_tx_run_dependencies +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf3c83d9c async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x947a93ab async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe79004ee async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/blkcipher 0x004db18b blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0x09abc6bb blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0x0e76780d crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0x0fbafc95 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x110ae107 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x7bd739ab twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00502a46 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x01021d78 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x02748a1f ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x084f41a3 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x08c7f435 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a66348b ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a7a3b9d ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0e653dc4 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1009dee1 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x11179766 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1180480c ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x134c7ee4 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x13e35efb ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x14734a02 ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1492508d ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x14f10a0e ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x198ed7df ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a0042a8 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a2d04ba ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1aed8c5d sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1c5b2a7f ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1efa5e08 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x20652392 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x20c50780 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2149ac10 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x21cbc336 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x21e3218a ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x23bb9c18 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x244d20d1 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2532f559 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28e00a8b sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2bc0d8ba ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2c1d59d0 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2cb77daa ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d4269d7 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2ede57a0 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3849986d ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x38da401c ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b375ce6 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3cce8fa5 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3d77ea06 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3fdb0a6f ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x41bf9d58 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x46c69e07 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4762e4b9 ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4969e44b ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x49c80281 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4b0fe5d8 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4c4f08e5 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fd464c0 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5051597e ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x508275ff ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x515f4684 ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x53d5132b pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5567f7cb ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x566b1e32 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x58d4073c ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5cbb72bc ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6135daf3 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x61ecef66 ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x628c83e8 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x65499f75 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x676a6c13 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x67ce1cee sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6889c3c6 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6f0efc43 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6f7325b9 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x720a4b5f ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x726b8954 ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x76e99dd9 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0x79f584de ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7a315426 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7b1d89cd ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7bc1b5ce ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f133c2a ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f824c0b ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x822cabb7 ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8300e195 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8508389e ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8c7f510a ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e0631db ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8fe9bc13 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x931e583b ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9455ce7a ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9b2c68aa ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9bd90f3f ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa114f96b ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2adb4ae ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa5a26a20 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa5e4ac74 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa6f91aa0 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa92c18dc sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9c48488 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaad15864 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xabb0fec9 class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaeed4c4d ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6d1fbad ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc061ec09 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc5409af0 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xca9a1c05 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd11ee239 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd38dae0c ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3ea782e ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd4e12258 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd4f5c769 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd8c05bef ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdae4bebc sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdaf1abc9 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf6bc83b ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0b5304c ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe1a5d727 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe72fc7c7 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe99fd914 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe9c601e9 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeb46728c ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xed4d5ae7 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf079d536 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf482072e ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf4f1445b ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa3f092e ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa556ead ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfaed1747 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb3c709a ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x4ba5f8ed agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xaa5680a8 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/hw_random/rng-core 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL drivers/char/hw_random/rng-core 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/dca/dca 0x08364733 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x1314ad3c unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x176f16ac register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x7a81d45f free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9ec25759 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe4da26af dca_remove_requester +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x22e8ef51 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x6864c616 i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x991f1119 i2c_new_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xc4daa9ed i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x15b42f7f dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x39f4590f dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x450719c5 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x64bf6938 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x73f3e9b5 dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xb84e5b09 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe2ac96d9 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe9453ff3 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x0d0c04a9 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x5985f7f5 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x5f62e545 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x774c6810 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7bf3397a dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x88b96b41 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xade38774 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xdcd84866 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xdd84d1ef md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xdf44e72c md_allow_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a02e1b1 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1605e436 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19326270 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a549e46 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x204e4e7d iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2c5cfc7a iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x30da89c4 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3161a6ec iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c3d5a8a iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x439c87f9 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x448c7e94 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4616bf6a iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a170f40 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5966abe0 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5dc01762 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72da1c13 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x760ffa11 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f0a668d iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbbc0c374 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbda52b80 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1bcd376 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4481b76 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc79485ef iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcd849106 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8b3fa1a class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe28d3b0a iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5dfd740 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x06fb3359 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0ca9058f sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2b84c9bf sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3395320b __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x37e7e9ea sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4defe708 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4f0ade64 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x69e2b6f4 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7c945f81 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7d2c71b3 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x80ea966d sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9a692a09 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9fc7b40f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb090f2f8 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb577ac91 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc5e96f20 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7e4969d sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6828a9e sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe15fb2dd sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe32c6b68 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x001d0fb4 scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1404ea66 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x276e08d4 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3c2899d2 scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x42bcf723 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4fe80463 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x53e1db5c scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x82a6013f scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9423adc2 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x96989f5e sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd53549d7 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xdb2b0829 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xec0ee743 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xf2e15053 scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x124c2af4 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x12b9fa37 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x226fe1d9 iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x351ead3e iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ff7e830 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x769532e6 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7714b99d iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9c91d0a1 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa6f6fd0d iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbe1c9364 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc38a1ea2 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc66ef97e iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd3174d48 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd35f3cd1 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd35f7dd0 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd8cadfa4 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/uio/uio 0x56ab0d60 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc2932693 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xcc9777ba uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1d083379 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1f2f4623 usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x201ce467 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2870d0e4 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x35eb6692 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4726131a usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x532c9510 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x56792111 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x765dd4fe usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8069230b usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x86fe1094 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xa64da6d2 usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb42bb1ac usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb4789087 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc52c345a usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd3930a07 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd4c8235c usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd7946f17 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd92af0e9 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf223cf7f usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf552677a usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x3f085304 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x55026602 fb_sys_read +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x02cc8dcf register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x4a925c4c unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x6a47050a register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x728991e3 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x03c4687d vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1d498aa8 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7f3800e2 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3f712225 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4e060f5a w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x533f1aaa w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x788567ae w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xab1d2653 w1_reset_select_slave +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xdeee84e4 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xf508c271 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x04547251 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x0b115559 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x247c3f32 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x39032575 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x495ac083 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x4cc2d58f fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x55eba9b1 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x6692a0a8 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x6fb31db3 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x8cf209f5 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xc9b2805d fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xcded2af9 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0xd894850a fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xdbc9ff87 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xdffbb055 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xe0b03f7f fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xfb1f533a fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x43524476 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x5241390b gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x57836a4a gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x5862b8e2 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x85ad291c gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x123f0782 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x32ada49e o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3ffff537 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x936e2b43 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa1d3a438 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaf95c29d o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd484aa66 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x07b0fc59 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1a18bca9 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x817657ea dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe47fb509 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe6d6ff1d dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf1807b10 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x1bc2a29e dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x49616841 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x67734b3f dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90aae1a6 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90d14b2a dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x9743f214 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x9fac3f74 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xb8177da1 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xbcd42644 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xc738d86f dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xd237a801 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x08de4a8a dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ce3ce17 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17190c4f ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1a09cf21 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x217d5078 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x24a8f288 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2680fc64 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x293c0935 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2da921af ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x36f02bb0 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b2ecd93 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b8d46de dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c4c6086 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c7606e1 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3da1ad83 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x42616fe4 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4795259e ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdb2693 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62b9bedb dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68b55fcb dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7544065f dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75df38b8 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c63a57b dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7da46936 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x80c01cad dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x85939ce2 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x91d1f534 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x971ee0ca dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x982c598f dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9b53c702 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9eb42356 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa091eb83 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa148169e dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xab19522b dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbacd4aec dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe6ca085 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbfedf052 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc4cd8749 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf7d9e2b dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd00c5121 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2a7cb76 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe42223cd dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6c3b7f1 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xecf8199b dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xee031277 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfac8bba5 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1f688d26 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c358448 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x77b12963 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9c2fdd49 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa2f63a6f dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa870c600 dccp_v4_connect +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x33b11fe2 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7d56c5f2 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8a4af152 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x905c293c nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc2c81d28 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x599d9a48 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x80ef4334 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x81b956ab tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa4263c5b tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf6f07919 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x019f9625 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0c30fc19 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x55311001 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6524cab0 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6b70e641 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x71ee3192 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7b0a3d50 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x9d640f1c ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc6df59e5 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcc93deb0 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd1c3eae3 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xda582a88 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe0325cae ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe26b5da0 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe6e20b93 ipv6_dup_options +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d323041 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12d768c7 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13d1f7f0 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x163f2b01 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2227acd0 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24094983 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d0c1eb4 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f84932a nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fe9c6ae nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x33c0176a nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34aecb0d nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x486ff042 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b55dcd7 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bc4d588 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5701686e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x581918d0 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a13f816 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e403f75 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6cecce92 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70d1d8a5 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x755342a3 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e8b27d3 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84be588a nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x875f7c08 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bea7431 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d45ffb4 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93cfa393 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa85fa7be nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6883a08 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc20d102a nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc41b73be nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7ed7fb4 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9b27f3b nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc786338 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xccb236e1 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd89fc4d print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3d2f35c nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4b1abf8 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe80dae10 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec1265b1 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf1146058 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf151136a nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x34aa46f5 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x78acc839 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xff58ee84 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x19e69d48 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6bdd81f4 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x74f0aab0 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7a306e7c nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x9ce9103c nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1bb769ae nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2551e61b nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7ac03eaf nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x95aa8609 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3415dfe9 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4d1fa581 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x609433b0 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x69d63c9f xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x709649be xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x904ee140 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd65338b1 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe2606242 xt_check_target +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0952c8b8 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14e8de13 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a27c140 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a2b7b65 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x392342a3 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46b34641 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d6fc8c1 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x554733e4 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58386254 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b2b0c35 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x668891f6 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x696d3937 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a946c45 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c46c4c5 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dcf9ee1 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c6ddf9e xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa974c0ce svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacf23c0c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf3dbbd4 xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb38e657c rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7662fe8 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc82019a0 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc9c5916 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2a93704 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2f30777 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd3a9a16 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedad60d6 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefd7032d xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf28a77a0 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf774e37b rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL sound/oss/ac97_codec 0x4fb7f49c ac97_tune_hardware +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x030b7a74 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b6eb51a snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1168bc5e snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14c3be1e snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x166c0c53 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18eb41dd snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1935cbc7 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b8078f3 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b8ad649 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c55148d snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3af0b127 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c478633 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d511140 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d35319f snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e41cd62 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4ba957f snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7fddb04 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa864d5f2 snd_soc_dapm_set_endpoint +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf2d923e snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbfea73ad snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc534d328 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6fdc680 snd_soc_dapm_connect_input +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc86b9b42 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca7dbb7f snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd29d8269 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8b4b663 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xddfb3232 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0170d72 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebaee1a2 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec8331ec snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc927291 snd_soc_dapm_sync_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00d038f8 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x02665768 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x03374604 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x037fa8a9 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x049c506c unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0586619c dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x05af0825 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06a64340 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x06f0662c platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x07263d25 device_add +EXPORT_SYMBOL_GPL vmlinux 0x07440292 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x0760c7db init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x076cd48e devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07e79455 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x08283793 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x0873c3be get_device +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092fc316 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x0a41c924 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0a85d4b8 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x0aeaedfe do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x0b1dbc1f __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x0c03b1c7 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0cb2006a ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x0cc93ae9 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0f0999c4 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x0f2be00c rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x0fb55602 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x0ffc7dd2 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x1000cb92 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x105be3e2 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x108954a6 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x1107ea9d page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x11ced708 class_register +EXPORT_SYMBOL_GPL vmlinux 0x11d98ad0 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x12fe845e k_handler +EXPORT_SYMBOL_GPL vmlinux 0x130b3c58 device_del +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x145a0daa tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x157e38f8 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x166be31e pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x16758474 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x16836e04 speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0x16e54884 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x175e5db8 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x18ba5e28 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x191ad75e devres_get +EXPORT_SYMBOL_GPL vmlinux 0x191e3670 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x19fda1ea page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x1ac61e0b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b348bb8 ide_end_dequeued_request +EXPORT_SYMBOL_GPL vmlinux 0x1b5094c0 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x1b7cd603 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c12a7b3 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x1c40401b audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x1c8d163a simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d2843bb driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1e50a66f devres_add +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f7df414 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1ffbd5c1 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x2023542b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x203740fb device_rename +EXPORT_SYMBOL_GPL vmlinux 0x208558c6 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x21d9f9b4 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x223c95af get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x230fd27e get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x235f4515 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23841980 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23ad8915 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x23cea294 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x23e5bc42 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x240ed566 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24c88950 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x259a776f cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x26063ef8 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x274245e9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x2761a68c inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x2783ae30 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x27d22302 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28c95177 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2940dc0a inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2d5d236e bus_register +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2da25095 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2db09936 __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2e92ccac proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2ffc0ef0 device_move +EXPORT_SYMBOL_GPL vmlinux 0x302314b1 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x3078374a transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x30d815b7 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x31edadeb bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x32d4c54f sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x332cf68c fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33da95c7 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x33f99d1b blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x34199896 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x34c750c4 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x35091eae crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x361f1ac9 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x3685ca9c cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x36e663d9 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x36f76cfd input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x3706ec11 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x370f20f7 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0x37e1b8c8 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x38fec00d power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x3901585a cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x394283d5 class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3b07b340 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x3b2fd9c9 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x3b80b72d relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c2a642f kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x3c596564 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cbfc1fe get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x3cca2990 __ide_error +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d950a65 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x3ecb8229 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f702fa2 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x3fb51a14 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3ff1c0de hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x404f77db tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x412da7a7 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL vmlinux 0x41f92683 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x420bf363 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x42b6ebff elv_register +EXPORT_SYMBOL_GPL vmlinux 0x436fd4c7 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x447cef59 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL_GPL vmlinux 0x4545b1cb inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45a115c1 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x45c7f1d9 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x45f4bedc debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x468372c1 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47684a42 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x479397e4 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x47b348ed relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x47c2a440 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47f5a2e2 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4991fcee user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x49ea5acf class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x4a498135 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0x4a57ad64 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x4a608804 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x4ac91af2 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4bd73d03 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x4c3a1fb3 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c849bea rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4cdb4bd0 speedstep_get_processor_frequency +EXPORT_SYMBOL_GPL vmlinux 0x4cdde02c pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x4df83fa7 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x4e42bdc2 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x4e67549e crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x4efcbbc8 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x4efd7d09 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4f53e507 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x50008bed page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x502c6089 srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x509ca483 ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0x50a4ecf0 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x514e91df pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x5198256f crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x51b32319 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x51d975d2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5208a0e5 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x5230da84 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53edf16d attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x543eae9d cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x5494bd81 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x559c8379 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x560e25a4 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x56676bdb crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x574d423c fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x577b4f4d queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57dae2bc transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x58157640 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x58ec0389 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x58f37dca class_device_del +EXPORT_SYMBOL_GPL vmlinux 0x58fe5f73 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x598fadc9 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x59e957b4 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a5ae659 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5a97f2ae cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x5ad09828 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b34dc94 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x5bcc6538 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c29f0b2 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x5c35f096 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x5c943e37 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x5ccd298c sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d035e4f inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e77a33d cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x5f1cced5 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f51845e register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x5f9a11da srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x5fe39c69 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x60717301 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60988256 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x6103889d vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x61ffebb5 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x6203f8eb inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x621eeabe class_device_create +EXPORT_SYMBOL_GPL vmlinux 0x62b94a0c platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x62d59ea4 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x63f99338 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x64003097 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x649953aa class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x651380c7 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x65adce4d inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6623f481 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66d9343d pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x6760fd60 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67f7b6f1 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68c26cd1 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x69919167 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x6a33155d ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0x6ac4319c inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x6acc329a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x6b8a9294 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x6ba73d9c crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6c1ca5ce platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6ccc7cf3 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x6d04d1a0 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x6d14afd9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6db4684a inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6e265ff9 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x6fccf93b kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6ffe1236 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x702a103d ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x7091f9f3 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x720a82c0 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x74809726 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x754d5914 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x75598bf3 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x758f3be9 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x765a6534 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x76e7c2ef atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x76ecda72 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x77c403b6 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x7817a254 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x78d45b30 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x796f6d0d rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a3eaf74 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x7a3fcf02 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7bb48452 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c7cbd05 input_class +EXPORT_SYMBOL_GPL vmlinux 0x7c918b53 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d0434db inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7d2f29e1 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7d4bf28e register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dd8aa70 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x7dfc73a3 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x7e1a31ce tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x7e71de9d pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x7e7298f7 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x7ea7d551 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ff1dea9 ide_find_port +EXPORT_SYMBOL_GPL vmlinux 0x80bce360 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x8100cfd8 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x810d7e96 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x813cb917 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81b2f684 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x81de929a kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x8250af10 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82d23e94 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x830daa38 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x83553786 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x838dce54 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x844d36bb inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL vmlinux 0x84cac4ba blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x85458490 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x86237e73 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x863914cc macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86b98218 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x86dbec80 ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x8706fba7 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x87098a2f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8730a344 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x874de12a class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x87690e07 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87e589b7 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x87e70b2d __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x882cf8d5 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88d8c843 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x89a92393 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x89adad79 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x89b8c031 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x89c94abc fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8a02989c crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x8a6243e6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x8af83aa6 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8b0aa76f debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x8b6588b4 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8bad78c5 __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x8bd6d1f1 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x8bdcd990 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8c178cc3 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x8c8d9120 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dfba176 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8e4c53a9 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x8f57d9d1 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8f60fc1f ide_setting_mtx +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90cd7c89 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9170dbad ide_wait_not_busy +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x9286661f device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x928a6e0e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x92948ead generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x929c6af8 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92d84259 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92fea2a8 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x937cabf3 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x944a40f3 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x955ba781 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x95ad58a7 pci_assign_resource_fixed +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x97362b4f vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x9a8286fc user_read +EXPORT_SYMBOL_GPL vmlinux 0x9a8f3e2f device_create +EXPORT_SYMBOL_GPL vmlinux 0x9aa40669 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x9ad9938c namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0x9b110cee transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9b1ded37 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x9b683b45 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bce5eff sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x9c11addf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9c191f2e transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9c34a1a9 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d1b323a pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x9d76e555 nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9daa181b ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x9dd3d47e find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x9e475101 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9ef63260 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0894d8b bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xa0a3a2c3 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xa0bbe131 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xa1bded91 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xa20cc898 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa35ec7bc ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0xa384f835 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xa3d2f2cd rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xa48ed411 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xa4973d3f securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa7d922bd get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xa806d415 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xa883fcc2 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa8bcbdf3 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xa8d06e9c class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaaa7e3a1 put_device +EXPORT_SYMBOL_GPL vmlinux 0xaaa820fe __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xaac43c82 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xaad25af5 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xab1fa96d destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xabb04349 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xabde77d2 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xac443949 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xac64aa18 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xae5de520 ide_get_best_pio_mode +EXPORT_SYMBOL_GPL vmlinux 0xaebdc993 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xaed6205c register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xaf5d533f klist_del +EXPORT_SYMBOL_GPL vmlinux 0xb02a37c7 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xb0bb9ed8 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xb140bcda register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb1949e35 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xb1eb1d72 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb205ef97 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0xb24533bd debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb28a750b fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb321f4c9 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xb456bd7d platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb5667d18 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xb5d2f9ef platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xb5f54afa __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb5f69d02 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xb77c90c7 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb80a74d2 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb98260b9 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xb9908cb5 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xba16353a inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xba87d6b3 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xbae39833 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbb6d1da2 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xbba20ccf __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbe0a00b pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xbc67f273 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xbcd9ba54 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xbd57b64f pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xbd6e3b45 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xbe777df4 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xbf4139e5 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xbf50d88f kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0xbf719fc6 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xbf840ea2 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xbfd3d62a devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xc046b50e device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc04bbc67 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xc0fefa6f generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xc2df6576 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xc329096e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xc33f4011 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc351795e crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xc4293d3d platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xc44115a0 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xc4591200 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc56adfd8 used_vectors +EXPORT_SYMBOL_GPL vmlinux 0xc57743ed task_nice +EXPORT_SYMBOL_GPL vmlinux 0xc57f9d28 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xc5b0c1ff tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xc6144286 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xc6aa8ac9 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xc6ac8880 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc7d8df30 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xc7df6d5e inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc821d515 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8b8b7d3 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc8d50528 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc99a1fc0 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc9a1a22a xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xca203870 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xca3d14b5 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xca76a4b9 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb4b343e input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcb92f872 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xcbcb9210 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xcc131460 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc5ffb0a sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd1118de proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xcd480f13 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xcdef819b sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xce66b6fc sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xcedc2c7a platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xcf084797 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xcf71b667 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xcf9a532b cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd01fc97a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd0b57d99 __ide_abort +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0cfa641 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1e69011 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xd27fb7b0 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xd2e2888e platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd31b510f class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd352237f __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd3fd3d60 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd42f6056 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xd494ee54 speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0xd5260f8f tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xd5a71ba9 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xd6817528 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd6cc0471 class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd6f0ee15 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd70f87d6 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xd74e9d5e skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0xd7616905 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd7f2823e xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xd83694a1 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xd858aa0b sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xd8de0261 percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0xd986dad1 kernel_fpu_begin +EXPORT_SYMBOL_GPL vmlinux 0xd9b305b6 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9f9e160 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xda1b2a34 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xda6361c5 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xda6f2358 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xdab6e01d sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdb95b8bf skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xdb97e76f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdbb4eaf0 device_register +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdcfc9b78 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xdd383594 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xde836474 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xdf5a9c15 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xe03b70e4 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe101bb02 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe185a1f8 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xe1d6a187 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xe2498748 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe2a2fce2 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe2fd4446 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xe3b74f46 user_update +EXPORT_SYMBOL_GPL vmlinux 0xe4419d88 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xe48a35b3 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xe48e2025 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe66e26f5 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xe68f860b tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xe6cbfd73 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xe6ec1384 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xe6effe0e relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xe75547d5 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xe7968a29 class_create +EXPORT_SYMBOL_GPL vmlinux 0xe797e794 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xe7bc2eb4 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xe84ede9b crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0xe8ec5636 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xe8f04c56 per_cpu__gdt_page +EXPORT_SYMBOL_GPL vmlinux 0xe915042c bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xe92e680f user_match +EXPORT_SYMBOL_GPL vmlinux 0xe9392ca3 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9d504c3 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9e0365a init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea39f5b0 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xea5339c7 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xeab4991a ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0xead58e5c mmput +EXPORT_SYMBOL_GPL vmlinux 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL vmlinux 0xecef9fbb acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xed284587 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xed3f8221 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xedc2ee24 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xedda0854 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xeedcc467 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xeedd89b4 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xef336e04 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xef36051e inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xef565c60 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xef897e8e __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xefcee7ff audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0xeff3a95c crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xf02de5ba srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf0c7ae13 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xf1735dc7 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1c2837c inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xf2e25052 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xf4bbaa42 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5bbbc35 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf6d0a6f2 find_pid +EXPORT_SYMBOL_GPL vmlinux 0xf6e03b77 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf6ebbcc9 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xf7bd6e93 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf7c1fb23 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf807fd65 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf91ccdc6 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0xf92f05b2 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9d0677b nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf9d8a2fa cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xfab9699d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfd04c4f9 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xfd3162f4 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0xfd472c1c sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xfda4db39 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xfdabc28b crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe003363 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xfed13911 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0xfee32a5f vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xff4e8aad acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xff714d7f class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xff7f604e inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xff83b2bf atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x16cacd0c usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x8bbf1ee9 usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xe42b0d15 usb_register_driver +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/generic +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/generic @@ -0,0 +1,6903 @@ +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x907665bd scx200_cb_base +EXPORT_SYMBOL arch/x86/kvm/kvm 0xce792259 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0xa4deb63c acpi_processor_notify_smm +EXPORT_SYMBOL drivers/acpi/processor 0xb9299c55 acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/acpi/processor 0xeacddb89 acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xfe459f2a acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/atm/suni 0xe552335a suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x6aceb43c uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0x64b56704 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x07e02d8b pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x093378fb pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x3dd683bd pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x7b054099 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x7d7f5242 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x82c94bad pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xab193507 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xb0725138 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xb16e818b pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xb67aa117 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xc54c3a38 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xc58f108a pi_read_block +EXPORT_SYMBOL drivers/cdrom/cdrom 0x21e1f53a register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x48176d1c unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x80a43bb8 cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0x8dde615e cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0x9bb71d35 cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0xa593eb47 cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb5cf4061 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcace3003 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcd8a2716 cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0xdacb13ae cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xde70c8a9 cdrom_media_changed +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0228e524 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2d7f118a agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2eada478 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x47544174 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x48d3645d agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x492542ac agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4f4a2c7c get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4f6930da agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x53c47142 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5d4f723f agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x694c4196 agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x71154012 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7c646d90 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7cbac4e9 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x90aa4138 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9b701ca6 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa168d6ac agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xae428e87 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xafd7ab5c agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb054aa62 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbf99108a agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd4f10055 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdbf696c5 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdf4f6744 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe2eb0ab9 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe4f75113 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xeb9cade5 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xed90a5e2 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf57f64cc agp_backend_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x025fadef drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x04b6f165 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0x05dc8695 drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x0f606f1b drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x22693802 drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x26426cce drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0x28c28fe1 drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2b8ebda3 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0x2c81b996 drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3058740b drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x441c84e1 drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0x464d1445 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x4a655f88 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0x4fd39c68 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x5b89f28e drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0x5cca681a drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0x62097add drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0x651a8cec drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x6a7b2e59 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x6e4a87de drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0x7ce0baf4 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x85925c85 drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0x8bcdde18 drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0x8e52f7d0 drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0x92c6667b drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x9911e2bc drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x9efeaf91 drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0xae902537 drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xb989dd2a drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0xbade0231 drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0xc14db28d drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0xc90cabb2 drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0xcd48f58b drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xd1fc2595 drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xd62a21cc drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0xe4cdbda0 drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0xe7f1684b drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xfbaec2a6 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0xfd1f7a69 drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/generic_serial 0x0ccf2679 gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0x18189433 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0x207b9611 gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x27242aed gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0x32072188 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0x342b58bc gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x42b243b8 gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0x45aabfff gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0x6acf217b gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x7f8b155b gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0xc7431f24 gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0xcd729fd6 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xdc44681e gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0xe6748745 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0xee9835f6 gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0xfd1580d0 gs_getserial +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x06670926 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x09d82526 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x17a37084 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a4d9846 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1e95e24e ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x270e34dc ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x33f30213 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c9c0db1 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x55d798c9 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5768b2cb ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5a6ef1eb ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5dd04f10 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67827212 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6d3ee4fc ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6df22816 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7367c552 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x87a85029 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8a150635 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8d65ee08 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcdf21d83 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe9755172 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe9fdf882 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf04dc13c ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf61db549 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nsc_gpio 0x1bad4d49 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x4cc94130 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x9aa9fea7 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/char/toshiba 0x9421a6a6 tosh_smm +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0x8756c34f cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0x3a19e871 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0x866b9514 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0x610f6a54 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xe35aff54 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xf11fe7b8 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xd6d723c8 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xec1feead i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x32482bad i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x4bca720d i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x721cd13d amd756_smbus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x06e2ad38 i2c_master_send +EXPORT_SYMBOL drivers/i2c/i2c-core 0x1d5b3f91 i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x318ca8f2 i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x34304d04 i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x363c61b6 i2c_detach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x364192ce i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x39a2fc3d i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x39fbd633 i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x3f1b03f1 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x41d1f187 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x53ea36fa i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x55c23b61 i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0x66e3b8d4 i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0x6e4cbccf i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb3a8e3e9 i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb3ce70f8 i2c_put_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xbe692f59 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc3a45295 i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc526fd50 i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc61e07f9 i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc969f44e i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd4916c7e i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe168be40 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe48812f8 i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xeff3c2af i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf78ad30b i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf86f8920 i2c_attach_client +EXPORT_SYMBOL drivers/ide/ide-core 0x01c70e9e generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0x03afc9ef task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x0a6d0afc __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x182ab179 ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x1b4ec372 default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0x378f47e7 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0x3812962f drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0x3bc5beac ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x3dd01051 ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0x3e838b4a ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x42c6c58c ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x452c5603 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x5fd01513 task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x60b63697 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0x776e5317 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x818eb79d ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0xa9731bba ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0xaa195aac ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xc87dacf7 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0xcadd18f6 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0xcc3b8ed0 ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0xd30dd856 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0xd3f4f462 __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0xd8d0d5ba ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xe9a16e3c SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0xea81a40f pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xec8e8794 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0xede61cfe ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xf08c58cc ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0xf4771b79 ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xf507e908 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0xfc6e98d2 ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0xfe03f36b ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xffeb24a4 ide_stall_queue +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x016630f3 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x02ad689e hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0ac73fd9 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c860218 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x133ab537 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1367e148 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x151cef54 hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1840e707 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f4faf10 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24600bbd hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x247a7735 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x261a5951 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2752b9a8 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x28d0aa5f hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29489bd7 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29fd73da __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2dffb560 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x30a40879 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x30d30f70 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37a736c9 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x39028993 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d434934 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46b1c301 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a976626 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4f10a5f3 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x595cbefa hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a24f479 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a61460c hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e89288a hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e9a2af5 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6336c9e1 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6eb0468a hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x737a6c39 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7698deac hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7fca1eb1 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x83647b25 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8462afc2 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8501a2d2 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8c8e589b hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e3b2733 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x90c11d40 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91c6bf24 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x944725cf hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9a701e1b hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa84e801d hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xac5f7420 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb118b1c2 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1ceeb34 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7cc1957 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbbef369f hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbcf697d9 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0c777ac hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc7238d54 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd51350ea hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd7b981af hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd83db99f hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdbe9c88b hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdc833ff1 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xddf1c7a0 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe47d62af hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe62d55a5 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe77566ba hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf1b53ee2 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf552b662 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x403a2814 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x4b981f11 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x841a1cc2 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x4666ae76 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x7fe9be7c rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x97a0f6c1 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9c447fba rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1fdcd6b9 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x25e38d86 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2c62389f ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x301018b2 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x560e4034 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x586e1388 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x790482ce ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7ce94b98 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9c3c1e62 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xae9d40d8 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaf4faee4 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbb128832 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc2a9a3bd ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd643df20 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe5a27fc0 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf81bee80 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02079a95 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02c4ffd5 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x034704fe ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x064e9797 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fae6c9a ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12792d27 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13714ba5 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1664cee6 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16fccfe6 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1cc4250c ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x213a079a ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x215b2c6f ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x268f5799 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x272485f2 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3693f834 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37495b23 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e86995a ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x430badb6 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x480657b5 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cc26a97 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e8bd36b ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5573a530 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56b985f0 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5832068b ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x585354bf ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x597e26ba ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b01ff13 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62a13a5e ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x640df18e ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67e9a6db ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69501b08 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d458ba6 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7949ff5f ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8101bede ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87009e7a ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b09632 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f6dafb5 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b1d56fc ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c8e2c48 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa73f006e ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa90f22e1 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa53e423 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac0078f1 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0e65bdc ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb286172a ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb488abd2 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7c28ffe ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbed54c35 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc77e8f7e ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd17ba9d1 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd32b50a7 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3a5d77b ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd52deefe ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd89ae18a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1d3c2ab ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4151896 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe45b1d64 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea58504f ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee535046 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf639a3fa ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf90e5e64 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9cbc5a7 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbcc0c9e ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0a055912 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x12b2dcd9 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x137355eb ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2adcc349 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x53d2ff10 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6168e8b2 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6bc84818 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7319b00a ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7c71d821 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb6f3fac6 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd7da5cf9 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdfdb0ec8 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x05b24047 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x34f23aa3 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3a733196 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x787a6435 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7a9948f2 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb57037c3 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbaf8b852 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe4bc6d75 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe896da45 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x223b0174 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x23524d60 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x456f05e9 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6be40753 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x77487f2e iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7ec6b24e iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x964b6769 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xabfdd178 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0174e223 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x092a0d2d rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21c1ea2c rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2bb4aa63 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x40a69986 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x572ac955 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6263edd9 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6cae0eec rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x800b57e7 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8306e7e5 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x87e064b3 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0f7929a rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xab9eb76a rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcdea77b1 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcf5b2168 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe9f680dd rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf570a919 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfc1786f5 rdma_init_qp_attr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x17db26ae __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3369e7ec gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x93315004 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb6d4e0df gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbb33c0c9 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbfb02653 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcda5ab8a gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe0c274dd gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf1c58d69 gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf4d4a446 __gameport_register_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x24a8e9ac input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6cc0f8a7 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9bc26ae1 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xce3ad3c3 input_unregister_polled_device +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x2c54c957 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xd0bc06ce capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1558b7b1 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x499c4809 capi_ctr_reseted +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa1a8b01d capi20_set_callback +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc091d2a4 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc2697b53 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc3fa1d53 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd0998a2a capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd11b5314 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xda4b8f45 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe899058f capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xeb6cd7e4 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1c37edca b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1e1d2fdd avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2c3e02bf b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x48d6fc9f b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4d71f867 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x57e75934 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6a7a35e6 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6ba171f2 b1ctl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x84826ea5 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x94882f37 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x96f9d2f4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaba293ed b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xafe09c13 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcee01609 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd291f773 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe9298b40 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2877b601 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2a386384 b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x61229233 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x61a1d53d b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x63673f3b b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x813daba4 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8d96d077 b1dmactl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x978b0386 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xba6840e5 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc2dc13d9 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x142bbc9a proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x40f13393 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa34c0a74 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb9e494e5 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe6d9da1c FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x0810c694 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x19cb781d isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x45f2fb25 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4b50c58d isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xcc81d124 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x1ee629e2 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x95aed401 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x9ffc8215 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0xf5c8131d isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x8a1b90fb isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa04142e2 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xf2d4bb79 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/md/dm-mirror 0x0990b571 dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xa65ce9cc dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xd28689b4 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xfdf8d049 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x0d4f0e80 kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x2de97045 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0x38db8f0a dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x420421f1 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x46dee869 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0x58b59677 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x59fda027 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0x5b932547 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x81960d5e kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x96bab2a7 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x9ccbf72f kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xb1e3401d dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xb60e2d50 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc8ef8e0c dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xc9b3e24d dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0xd081e529 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0xd3c25303 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0xdbd0b1d2 dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xe22e71a7 dm_get_device +EXPORT_SYMBOL drivers/md/md-mod 0x0421ea50 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x06f29a45 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x078ecf2b bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x0a678f08 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x13ddde95 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x239b3b79 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x30aef9a9 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x61a3f7e9 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x99a0f764 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x9b1acb58 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xa9dd0c98 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xb051dfe0 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0xca619439 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xe58e3889 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xee547718 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xf70b1c7e md_write_end +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x05acdc78 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0bf00755 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0c71848d flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0fb1e288 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1279dda0 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1b98a70b flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x256e9583 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x29859719 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2ca9d381 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x463298e5 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x47c13b94 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x669def57 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x699f140c flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x80154a54 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x92971dae flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa7e5d11f flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb99d13da flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe693d952 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf7e67b54 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xffd25960 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x13b0e09f bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x84e7bd94 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xda71597c bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xe50ad593 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1426e7b5 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1d659407 dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x318c125a dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x469f2003 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6060d4ce dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6f89525a dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x849abfef read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x88d30de5 rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x93664602 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa1fa07e4 dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa3700b97 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa72d9bea write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc6e6621c dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe432a91d rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xd8c7210b dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0a9c42ee dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x154133a8 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c1c729 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1ffe61af dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x28e69af7 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2e9ff168 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4536246c dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x46613586 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4bb95659 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4f7c70ca dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x504e5548 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5d908968 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6538f079 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6cfed801 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76101064 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x779b9990 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88ce57e1 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8dd83a37 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8f46d6d7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x991b8621 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa890cafd dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb44d6543 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5217f13 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb75456ea dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc51e8d5 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc20ccc57 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc5967654 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc5ed4b1a dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc7549169 dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdb2d4512 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe250cc8a dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe484f886 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe8823338 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe889e9b5 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe9819957 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf4a152be dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf7135637 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0b048098 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3dd2232d dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4fa21708 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x882276fa dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x981bcf80 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xca65864b dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe74c2fb8 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xe898c42b af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x01ecc7aa dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x12c8962c dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x19496ed9 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2d6a1689 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x35b06d90 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4e6d76b4 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x750908f7 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa3cbed56 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc7a296d1 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcfbb1106 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd6597fe0 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xc6c14435 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xe19a692c cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xea0d2bea cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xa523739e cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x46a9faf6 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x629d127e dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x839844fc dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x4e5be241 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2dddaff3 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x57b9ff2f dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa589d421 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa76a93eb dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbd28e1b9 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbf05e5c8 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x1c1a1fa1 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8f7640b4 dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xb44dfcdb dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4eb8d356 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6fdb2e80 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x87adf202 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9e95c837 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd7bbe1ea dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfb7c38cd dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2cd6d51c dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x75e8f29e dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf527fb91 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x28224dbe dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x44b2d272 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xdcf561f3 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x876dc7fc lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xfe604a35 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x4c43aa08 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x4a88bdba mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0x19f78154 mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x905ad3eb vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xbaefa5c5 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xa32aed65 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xa63b582b nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x0a48a950 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x7a6aff61 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0xfe7b78b4 qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x96955fad s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xd10bd090 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x232e14c6 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xaa2e648c sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xcda79e08 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x80fe9245 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xcf066c06 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xd6038ffe tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x151515ee tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x6e901417 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x790cce5e tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x342c50d1 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xe9bcb280 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0x32712d02 tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xd829deb4 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x969720b7 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xdb94188c ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x4c3950d7 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x1498193f ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xd1de728f ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xfa197345 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x7e8ac757 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x9feda12d bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xe8de90f2 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6e32396c btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe287222f btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x0f87a26c cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x1ca5f239 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3559ba71 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xfab424bd cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x00db98c0 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x0c053e4b vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6598b74b cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x95205ca2 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa4550f85 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb7f0ec3f cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xe9404a60 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2ac4f070 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x54c77cc9 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x60900f61 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x642c3499 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9eaca512 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa54784a4 cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd1c7d594 cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd2aa9479 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xdebcb589 cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x11c63826 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x17de39ea cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x223b8f67 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2f924810 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x392308cb cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x39ed39cc cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x59922ee0 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5a70092d cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6a1358bb cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6f269408 cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x838a7715 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x83f056b2 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8af927f1 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8b9aa49f cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xabc68cb4 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb1606886 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb1d78fa6 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb3e934b2 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb81ad435 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc362a4aa cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd876a3b4 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xecc1266c cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x21854e82 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x21dd3535 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x31de8841 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x344ff21d ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3563cb99 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3d27784f ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x58ecad2b ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x611d7d08 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x67ecb17e ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x81175499 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x96f668ab ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcaf6bf71 ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe304d388 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4443a12c saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x48915363 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x73ff464f saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7c42297d saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7d76a798 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8210e2f9 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x84bf7eaf saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x86c9b8ea saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8c4a6e0f saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc24950d3 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc6b6119b saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfa23b29e saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfb5078db saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/tveeprom 0xb2912ab1 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xd2357e55 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0efc5744 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0ff45263 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1c932f39 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2a025f50 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5433bbf6 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8ae216a2 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x90e7cff3 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xab239837 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xaedcf6b7 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xffe9eefd usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x1f9f7537 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x08df7b5b v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc369097d v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xcb862809 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1f45082 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xed275428 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x06334f7d videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x560a294e videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x007731e8 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0xa877e463 videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0xb2456ffc videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0xe3a0ebdb videocodec_attach +EXPORT_SYMBOL drivers/media/video/videodev 0x0e02a44d video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x175d154a video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x4ec258ba video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x64d2d1df video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x67894f13 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x69c5ed8b video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xa179d125 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xa3a65525 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0xed7fb113 video_usercopy +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0d7db39f mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2956ec00 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d21ccbb mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3217c3e8 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4fd6fcb4 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5d3f2f0d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6b977412 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x728f1c2d mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74811375 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b342dab mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c122c3e mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8e2407d5 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9d099084 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa15889fc mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb155f210 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbbde457f mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd37ef7ce mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xddb232f0 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe5ea9879 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe7d9c744 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe895f926 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf36e420e mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf69f7e28 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe3949a2 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05996fa3 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0fbd894f mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x163a91c2 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1db96fca mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2721d542 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b4877fa mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x53f8dff4 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x57fb4487 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x74d079b7 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c615d77 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7d6c02e2 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa21af0bb mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb2b6efcd mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc2ff1088 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcf7e1464 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd3c037ad mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd41c7246 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd58fbcd3 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe0ce5819 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe22d4b7c mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe409bc59 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf1599a69 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf32b5e16 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfa5ce77c mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x22d0b5a4 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3374dcdd i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x45094bf6 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x45d80411 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x51b0590f i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x61c6ea76 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7ce31f21 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8c70a62f i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa108feef i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa51df565 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb298eb4c i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbe687b5a i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8ceb43e i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe1e8a07b i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe4f20b1a i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe8e61449 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf53fb340 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf975cda8 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/misc/ioc4 0x878bc536 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xdab6a056 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/misc/tifm_core 0x0cf06dd2 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x0e01953f tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x4b51f316 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x5ce0480d tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x68dad2b1 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x6e6eb015 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x71744855 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xbfba9308 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xc28ace29 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xd96ad7ac tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xf2c25c94 tifm_map_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x4f1c4568 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x25081c43 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x303d4301 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5f99c161 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6eb7b19a mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x733633b2 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x78708f56 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x80fa0b5f mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x96b2cc25 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9e3a49f7 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb4bf73e7 mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb939a06f mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc1e07549 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd36d2076 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd38303fb mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd45641ef __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf4882e41 mmc_register_driver +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9344e0bf cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xb098822f cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xfb475c97 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x51fb04a9 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdf490d7d unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf5f176d9 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xfe8b4121 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x8f2a5a00 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x481e3c57 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x317e0f88 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x53387f9b del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x9eae7f7d mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xfef08571 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2c93399f nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x73128124 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0d1dd2fc onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x58f69e58 onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x18713872 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x2bb4bc0a ei_close +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x858544ab ei_open +EXPORT_SYMBOL drivers/net/8390 0x92435be1 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xb93e7ee4 ei_poll +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x30ebf561 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa900cd5e arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd6bf4cd6 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xeebcb159 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf5bfd98c arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfb461bb0 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x66db1d23 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xd791537c com20020_check +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0c0aa3df cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x14424c07 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x17bd02d9 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1b2b82da dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1c8966a7 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2b908f01 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2c9334e4 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x44945e68 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x53b750ec t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5c2a8c4f cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x704ff04b cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x72eafb27 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7674c691 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9acab58b cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbd04bc28 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf3d43e49 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x521d4351 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5e61cd17 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x73dbc9ae hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd26b5cba hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf63fb19f hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x23c86aa1 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2cac0b29 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8c7c3a7a sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa8cfdd2c irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xac5ce6af sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xacba81a3 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbb831cd3 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcc3ecde9 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xddbe0682 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe1abbfc6 sirdev_raw_write +EXPORT_SYMBOL drivers/net/mii 0x0c92defb mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x1db8b8c0 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x1fcbc659 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x3e680b98 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x4dd0f0c6 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x6ab2c3fa mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x756006df mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x9b83fc90 mii_link_ok +EXPORT_SYMBOL drivers/net/phy/fixed 0x54ec511c fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0x931a7e04 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x033b3e9a phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x23d08ece phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x26143ad8 phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x321548f1 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x3af38f46 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x3fa39112 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x442436ca phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x4e69fca6 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x638bf6f2 phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x657486c6 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x658b163c genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x68b55bf0 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x69c39d33 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0x6a625268 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x705a5d24 phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x830a7830 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x89ac9afd phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x8bd54d27 phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x8cad39fb phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x9d30531b phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x9fd51bbe phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xa02d1076 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xaf2a97b9 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0xc18229a1 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0xc4ec62d6 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0xcc7c3084 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0xd30d461e phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0xd374b41f phy_print_status +EXPORT_SYMBOL drivers/net/ppp_generic 0x20c037c8 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x32bc1f4e ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x5dc02939 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x6b6e826e ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x6bea3f6b ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x7c7aba8f ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x7ffa57b1 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xbce56dcb ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xc208b3fd ppp_channel_index +EXPORT_SYMBOL drivers/net/pppox 0x195d47ce pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x4dfa973c register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x613dad2a pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/net/sungem_phy 0x1e209eb8 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x0bd61967 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x32f273a2 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x88a59ade tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa38558ae tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1a914c43 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x504ec56c alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x56d94d48 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x65604a23 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7ffaa750 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdce6b94b hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdf52b992 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe2b56821 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf548277d detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/syncppp 0x018ed330 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0x919c76b9 sppp_detach +EXPORT_SYMBOL drivers/net/wan/syncppp 0x9466e136 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0xd0c1ea50 sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0xdeb315f7 sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xed908754 sppp_reopen +EXPORT_SYMBOL drivers/net/wan/z85230 0x0829b75f z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x1fd7caec z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x22c92ece z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x277e6768 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x283e799e z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x29ff9f8d z8530_get_stats +EXPORT_SYMBOL drivers/net/wan/z85230 0x30bbdbc2 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x40a03d7b z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x452acae7 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x5737b969 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x77d7692e z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x855705b8 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x9e7732a7 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0xa22abacc z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xac1fc8f7 z8530_txdma_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xbcd81ece z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xc18b7b3e z8530_dma_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xc2d008fe z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wireless/airo 0x3c28f8a6 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x899dcaa5 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x9dbd5613 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x67dd5d87 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x8b5c25e4 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x8cd4f684 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00e7e047 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05ca6e5f hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x074a829c hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d00314c hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1416b583 hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1c983969 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x211ec30c hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a785ae9 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2bb19c9d hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x34abce62 hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3b8d3061 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x646ff0d2 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7318340e hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74aa2b02 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7c2c0cba hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x885a2c32 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x97d50a2e hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x98f0c6c8 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa0b71d63 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa5e5154c hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb54c72d4 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcb057735 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd2f65617 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8800f5c hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe1103a64 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe5a85b16 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf49d04b0 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1dd92390 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x333ff252 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x4d9e4f6c free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x95b1e92a alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xf72edc6c __orinoco_up +EXPORT_SYMBOL drivers/parport/parport 0x0355b4f3 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x03a897a6 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x1bcd8493 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x209ac854 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x30f63b25 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x346cc819 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x35466f97 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x3873de02 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x409737a0 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x46affdaa parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x529934fa parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x5445c1d1 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x62e21c23 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x6ffb92a9 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x79c52c33 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x8369346b parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x88bff696 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x8e70bae1 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xb65b373d parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xb890beec parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xc4e58b16 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xd08a7674 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xd479cbc1 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xd53e7313 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xdfb0935f parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xe37a88dd parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xe8788c17 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xe892a620 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xe8b876cb parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xf7a4eb3b parport_remove_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x78712131 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x80219ec0 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x26fe6758 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x33ec5669 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3b78b1ff pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x56f5af69 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5eb978db pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6201882a pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6401b168 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x65d129dd pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x73b07a42 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x75a27402 cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8f69d595 pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x925d00a7 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xac547b86 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcf08b1e8 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd6869d23 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf15761de pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfbc4fbd2 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0443d89b pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x15c942eb pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x16f56003 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1707241a pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1b8e6fcc pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1c74f63b pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1f455d03 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x24a6f485 pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2b0ed382 pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x34d2a977 pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x40a1a7ed destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x465380b3 pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5f0226c7 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x72361554 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x73769be4 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x789c6c59 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x79e25172 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7a5a79ab pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7a9286a9 pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7d23431e pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8ec428d4 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9f5ae980 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc0322703 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc5dea28f pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe2bcf3d5 pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe5d67462 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe8633ce9 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf64e905a release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf8f8811d pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe896c46 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe970598 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x4ab6a508 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/53c700 0x3dc56344 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x5175c0f0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0x9c9118ed NCR_700_detect +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x54887c9f lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xdb3ecefb lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x419bc99f mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x00865ce8 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x75d9eb82 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8ec6c5c4 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x9db1c228 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xad309427 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xfef7b274 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/raid_class 0x318aa183 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x6fd7bd17 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xc1c951b0 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0e19431b scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0e4a20fd scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x12b44f16 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x13ae52ae scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1a700d74 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b609a23 scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1c73b71b scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1d0aaf41 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1ed7b294 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x242a9da1 __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x24964d88 scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2a50a3cf scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2a6f31fd scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d6cf16a scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2f2b38f4 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2fcba8cc scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x31c79036 __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x33131678 scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x39fd5aae scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3fe8e0d9 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4c053a1b scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4ef7383d scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x50cf20cc scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x50fba41f scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x525b8ac6 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x55a206f4 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5600126d scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x598214c9 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5c04ea42 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5cd19f7b scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5f62e2e2 scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x60711358 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6436ddf2 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x64ccb7e0 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x66703a10 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7aaccd04 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7c2dfa04 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7e4a8bc1 __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x806281fb scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x825a2905 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x868a88cf scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8a30d1e2 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8aa4a0a4 scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x92610587 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x92e7ba75 scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x95c847e7 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x99c9fd87 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9ac875ce scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9b4a6e94 scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa0e003a1 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1348153 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa33921cc scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa8bed91e scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaa864810 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaaf91600 scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbbb5f74d scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbc2bdc58 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbe755d45 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc0c07166 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc11a57e8 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc41e04a2 scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc43f393a scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc8c98114 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc90b14dc scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca45cfea scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xccaf0ee9 scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd81572ae scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdc54b0b5 scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xde3eee97 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe4e8d562 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe76ef193 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea887c28 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xeee510e1 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf1f16431 scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf3a02c76 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf5289a6b scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf5ee0904 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xff8e9336 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x02f3a93d fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x03fb68a1 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x198f5b5c scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1a851e0b fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x29ce0f47 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x30c0b189 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3f615b48 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4825d15c fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x82dfdaa2 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa313fe4c fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbb10c72a fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x11ab4570 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x11ec9a1d sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1c3722a7 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1f2e5643 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2553e854 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x27d269a5 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x42bf410c sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48701872 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c35d5ae scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4fa76836 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5eb8eaab sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6f58c98b sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c45058e sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7577884 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb9774440 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcb61c46 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbee1dac6 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc2f8f7f6 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb34fbeb sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd2a59ed8 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdbf95dc0 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdc81b2be sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe80f5a4e sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf303e028 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf5472ff5 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa310561 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x148f633e spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x51ee6739 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xbe770f44 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd00a20af spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xdc606f95 spi_release_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x1917b8cb ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x1a7124b1 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x2945d066 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x33d628ee ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4709ee7b ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x939566a5 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x9c17d398 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x9cf46cbe ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xa8235ca3 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xb0856cac ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd45d7e56 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd4737b67 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xeaea7826 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xf32050dc ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xff606541 ssb_bus_powerup +EXPORT_SYMBOL drivers/telephony/ixj 0x2763847b ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x76a4f8ad phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x84c91a7a phone_unregister_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x03efe0e0 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0d358731 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0f780bb1 usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1f9c3035 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0x210ccb29 usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2218024e usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0x25ad5ca3 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2702dcbb usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2d5ee177 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2ed3a9ef usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3358fcf6 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x36f6a859 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3a886ca7 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4153baa2 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4a0cf560 usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4dbd838b usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5dabc4b9 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x66071ae0 usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0x68308bac usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x68eb9536 usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6a43e6dd usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7061fa77 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7188431e usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x73a5e084 usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x77959e8c usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7c7af33b usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x889daca3 usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x892335e2 usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x91330550 usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x932b5c92 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9458c2f3 usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9df45db9 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa63fb8d0 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa77194e9 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa80038d6 usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xab447f2c usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xab7a9057 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb8133f51 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbb055ee3 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc19c8e2f usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc415da2f usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc784ae82 usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcfc23627 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd7043fcd usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe12949bd usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf301d78a usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfb43c778 usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfd1fe2bb usb_create_hcd +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x19ce4c79 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x44725535 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xfd4b6790 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xffc6ef2c sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1bb7a7b5 ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x2ee20cb8 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x662105f6 ezusb_set_reset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x84d1ccf8 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7364ee3e lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xa5e869a4 lcd_device_unregister +EXPORT_SYMBOL drivers/video/console/bitblit 0x726d74dc fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0xbb99125c get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0xa4e01415 soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0xb8ba3975 fbcon_set_tileops +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x40d43132 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x4ae9d6c2 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x66aa5902 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x76dd0059 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/display/display 0x4a53fb86 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xcbc41fe2 display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x137a693e mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x270bfa1d matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x896eb513 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8b47ca98 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x35037978 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x62a74c9b DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x7a82f97f DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x8f49566e matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x9de32124 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xa1021062 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2423d9d1 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7d69818e matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x81e92285 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x8b450eec matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x25994480 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x43131c7a matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x76b5204b matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7d95305d matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xbeef8d6e matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc48df53c matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xebe31b5e matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/output 0x91d0bdcd video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xdb3825b2 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x0f741b80 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x130b5627 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x5ab3c443 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x7f215317 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x9566275d svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x9c33c84b svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xffb4ff63 svga_tileblit +EXPORT_SYMBOL drivers/video/syscopyarea 0x6cbdddc0 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xaef0be5a sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xd6ef2b19 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x061e934b w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x1b05e7b2 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x26e92735 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xc1e0cc3d w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x04b87f74 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x19dfc1fb config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x2a1c3d25 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x2aa6ee4f config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x3bc606db config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x58e7a6bf configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x9cbeb796 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xa960ebf0 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xac31093a configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xb4bdab62 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xd489cac9 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xeda7d337 config_item_put +EXPORT_SYMBOL fs/jbd/jbd 0x00140ad3 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x0bb163ff journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x0e4d34af journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0x1559fb9d journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x17f64121 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x1ca439fc journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x20d0df46 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x22a4d45a journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0x27f92383 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x47f94bd5 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0x48351054 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x52f6f554 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x56304db8 journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x57a75e67 journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x59aafa2a journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x620bd337 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x649d3fe7 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x6bcbbcc0 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0x6c1f851a journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x70f20cf3 journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x77d21fc9 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x8a5247aa log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x90d3f497 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0x978f5e3c journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x984870eb journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x9ac92038 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x9d2d1a6c journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0xb1437c93 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0xb5af7c6b journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0xc02753ed journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xc07c91af journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0xd2bc4a6f journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0xd4bb26af journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0xe85ed54e journal_create +EXPORT_SYMBOL fs/jbd/jbd 0xeb84c36c journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xfd5478ec journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xffa73dc7 journal_extend +EXPORT_SYMBOL fs/lockd/lockd 0x5e0d439d nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x89613577 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x0bc8164f mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0x29f24bfe mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0x5905cc3d mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x67877dd8 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x935277c1 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xbd1cb878 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0xc74a4c40 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xd472dd44 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xea4708b3 mb_cache_entry_find_next +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x901c64ae nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xa4a229fa nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/xfs/xfs 0xc6e7724f xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x8ffdb3b8 crc16 +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x2329b292 crc32c_be +EXPORT_SYMBOL lib/libcrc32c 0x37d0b921 crc32c_le +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x1e577f43 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x57c82d0f destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x00e7e586 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x09511eb8 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x0f3569f7 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x15bac5b8 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1df84cae p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x1e676ddf p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x28eda73f p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x2cf3afc3 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x44d74d47 p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x4cadfc44 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x677be60e p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x6f2bca59 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x72180f92 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x80b7d718 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x8dfa3b54 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x965d3a56 p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0xa3f4196e p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xac0aec6a p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xb2e108d7 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xbbcad1f6 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xdf52ae2b p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xdf6ff9e3 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xe2ea3039 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xee337cfa p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xf129cb12 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xf3f95cd3 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfa7e1822 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x145a3815 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x4a13ffcc alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xa06f47c1 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xb5748c2a atrtr_get_dev +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2efa193c ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x710c724f ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x7c32bd70 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x83e91d9d ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x910d8419 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xa267b46e ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xe14d39a0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xe261456d ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xf54be028 ax25_header_ops +EXPORT_SYMBOL net/bluetooth/bluetooth 0x06651539 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0b335371 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1187227c hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x175ba032 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d7e8f80 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d92df5f bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x297cea8b bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ee70339 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x42ca83d9 hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0x495cfa84 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5c5527f2 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7983737e hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89904656 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x938332a7 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9473bd02 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x971b34d9 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d57a3df hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa973f259 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb00a1a54 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb376b02f hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xba482fad hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc67a5015 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc7a8c116 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd26e74b6 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe81318d5 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe90cb268 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf3c6a970 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf817bc87 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x2eebf12e br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0f053f9e ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x16628e72 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4b3088b0 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x795a9a7a ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9c5473eb ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc0370037 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc9e1dc24 ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd27b3278 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf35c49a1 ebt_unregister_table +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0e371b89 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0x1632d0f4 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x1c44bdfe ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x26169922 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x26e1a76d free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x27dda486 ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x28fd9af2 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x33c29816 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x80897efd ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x899dea02 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x9ed86cf7 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa4125bc3 ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa97402b7 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb101d321 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb70d2036 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc963d8b3 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe15d13e3 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xee0bb528 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf3f52e98 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x2abdb958 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x3caf5f0c ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x5a6c5d8c ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x90762ec2 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xd4145c2a ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xd497f1e3 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ipv4/inet_lro 0x0e1cecfc lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x20e0c6cb lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x5dc7cbe0 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x85f133f4 lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x989cb254 lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0xc9a67cee lro_flush_all +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x02e93984 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x050c4557 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x23a4e491 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x2e34b96d ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x3bfe2adb register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x4c766ec9 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x58cdbc96 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x59a3c50b ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x9870a465 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xccb37276 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd4274109 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4d84c164 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4ea6cba7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xab58ab35 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x131000b4 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x30e9f15b ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe68457a3 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x07516147 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x35583165 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4058fe89 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x67aa8838 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x88d82188 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe3c0f4bf nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x91c47a7e xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xb13f740b xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x0415774d inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x051f192e ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x0ba36a08 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x0c5a5805 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x349a38ef ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x40dcc7d7 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x5315d827 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x6156b9f5 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x628a0bb8 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x66505185 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x67d32f14 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x6a52155b xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x6edf9fd3 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x70d753b8 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x7724179c nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x8179eb48 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x87ddfff8 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x8f635b7c inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x93b49b41 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x9f8715cb inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0xb089d206 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xc352112d rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xc4074b77 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0xcc7bbc41 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xde7213d9 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xf4633b1e inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xfe9a91c9 icmpv6_send +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0fdf3d4b ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb80a3461 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc11e492a ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xfdd2e500 ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x54f8b568 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x697714e0 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2f4b0e80 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x36b2e774 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3940bae9 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x694d5eff ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7b8bf254 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7ed52e45 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x89e0f601 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcbd50cf3 ircomm_open +EXPORT_SYMBOL net/irda/irda 0x006d226a irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x008533c8 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x06a8e8b2 irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x081e41c0 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x0af6596b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x0bc39aae hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23568dde iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x2ca900e0 irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0x2e7b3a86 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x31fc9b81 irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0x359ca7ee irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x41458060 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x45e82001 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4f2709a8 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x5122e9af irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x5321e03d alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x5af3b570 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x5ce37bb9 iriap_close +EXPORT_SYMBOL net/irda/irda 0x5ed935ee irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x61d7b357 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x69c7294c hashbin_new +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x718cf266 irlap_open +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76724a12 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0x76f5669a irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7dc59e2b proc_irda +EXPORT_SYMBOL net/irda/irda 0x855a5d1b irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x891adbf4 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9e9d70f5 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xa54f1a1c irias_find_object +EXPORT_SYMBOL net/irda/irda 0xb25660b2 irlap_close +EXPORT_SYMBOL net/irda/irda 0xb6586d66 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xd321c521 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xd41879e4 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xd86eff1b irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xd93b0cc4 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xdbd5da79 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdfad59bb irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xe9c2b20b irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xe9d58deb hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xef3f1cba irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xefea54d7 iriap_open +EXPORT_SYMBOL net/irda/irda 0xf22aa033 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf5f7ccc5 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xf6c58c8d hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xfbff2302 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xff993691 irlmp_data_request +EXPORT_SYMBOL net/lapb/lapb 0x593ef000 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x7bb4f99e lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x8ce4222d lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x9ab55c57 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xc6d1c6e8 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xc9d762c9 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xe30584da lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xf1d60d0f lapb_connect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x02b5d076 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x0ac61414 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0bf7cdb2 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x18fe3b10 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0x19ef8ba6 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2dcbc01c ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x38612f56 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x3a3543b4 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x4078d4ef ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x49fcebaa __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x551f7d02 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x7c6e596c ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x89839cd9 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x8d1840fa ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x8dfe2f41 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9ccb6d9f ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x9e270802 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa70d33f2 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xaaee6c56 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaf24f233 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xb40af9b3 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbf95fc85 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd0a30e80 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xd2544694 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xd4d40333 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xe54e0e6b ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xec61a157 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0xf0b55108 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf33a050b ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xf3e17247 ieee80211_stop_queue +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x0edb3357 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2c844be8 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3b46a5c3 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x4c42ba0b xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x55ffdc3a xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6dc1e698 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x74895b5b xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7e358de2 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x85f15a80 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xab9b5d5c xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe8faf178 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xf4175420 xt_find_match +EXPORT_SYMBOL net/rfkill/rfkill 0x135356f2 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x2431cc12 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x33d7a219 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0xe57e8787 rfkill_free +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x04d130a5 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x423c814e rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x51d152c2 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5cdc39cb rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6252aaff rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6332d8f4 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6cf0cbc3 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x77745d1b rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7a6d45d1 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x93a872f7 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9dd51c68 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xab2f5650 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd0a002b8 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd13ae170 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd8356ea7 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1e20c6f5 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x20c1f185 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x39f2bd79 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5a39d68a gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5fbe9f1d gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x647669c1 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6789c1f2 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6d001b99 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x70972c16 gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x9c647429 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x9e9a122a make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb61c0171 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbee42675 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc03e119a gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd0476247 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x06ba09b2 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0x08389553 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0848d838 rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x085466c6 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0938b78b svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x09a4ff72 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x09ac7db4 svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0ae3e256 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0c8e0f0a auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0e7e3765 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f0cce5e svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x151c0a68 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x17c5710f sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2113c1bf put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x21705f7d rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2861c0e7 rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x28ec93dd sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x292328d3 xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2ec964c0 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x362d1136 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3aa2aca0 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3bb9ca1c rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3c711f62 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x44dc7309 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x478e4be2 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x47a004d4 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x48f83fbd svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4b4e1a98 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x547729c9 xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5518263d xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5688c9a8 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x577f01c5 rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x57dbd97d rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x588c60e4 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x64bf48fb rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6605ce54 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x66c52ef2 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6c25bd79 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6d03c4dc xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6df6897e rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7250e2b9 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x751a7e1e cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7b0708c7 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8220ee8c rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x82ce7571 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8569ecc5 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x85ad40e5 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8655f1f5 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0x876f67eb rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x88c966c6 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9240b69d svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9255edad rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x948dc747 svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x94d19cd1 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x99f04060 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9e26f689 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9f12371c rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5197c89 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaa858d0c auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xafd6499a auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb37f521b rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb5856a62 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb5ed853f rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb816173d svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xba204d8f svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0xba73210e xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbdd48360 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf32f87f cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc17945db rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc403a964 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc633287c xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc86ca179 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc9f4e230 rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcc9f0f94 rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xce26448f __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd37874e6 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd431f85c rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe0451a93 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe3c9cfd6 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe9595599 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe9e8ca4c svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeb25e140 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeb2ec364 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xee09cf49 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xef959147 xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf5abd991 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf7d95dc1 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8de8824 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8e53393 rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf92139e3 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfde5f306 rpcauth_create +EXPORT_SYMBOL net/tipc/tipc 0x01e61721 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x40fbe076 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x41914052 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x436dfc1d tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x6589bcb0 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x6a8ab2e7 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x76ca8e11 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x89c01ec3 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9d9f123d tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xaab277a2 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xaeba355d tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb1971a4e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xbd9c34e7 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcfb52ff9 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xf8a59d99 register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xbc7c51d1 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xd8fd2cf1 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xfb40dda5 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xfd9813fe wiphy_unregister +EXPORT_SYMBOL sound/ac97_bus 0x8cd68c28 ac97_bus_type +EXPORT_SYMBOL sound/soundcore 0x25b86f62 sound_class +EXPORT_SYMBOL sound/soundcore 0x61f3ffa4 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x7a8cd372 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x7c69d7d7 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x9353e753 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x98a76b10 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0x00112f51 groups_alloc +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x001adc7e gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x0045bed6 inet_bind +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00916193 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x00da2555 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00ffd3c7 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01155a42 dev_mc_add +EXPORT_SYMBOL vmlinux 0x01193167 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x012f405f lock_super +EXPORT_SYMBOL vmlinux 0x013ac644 netif_device_attach +EXPORT_SYMBOL vmlinux 0x0167bf3c tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x016e3c68 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01ee447a km_state_notify +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023eb25e put_unused_fd +EXPORT_SYMBOL vmlinux 0x02462292 _read_lock_bh +EXPORT_SYMBOL vmlinux 0x025da070 snprintf +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x029043ed acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02cd3086 __down_failed_trylock +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x030445cd dquot_free_inode +EXPORT_SYMBOL vmlinux 0x034a765e pci_get_slot +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037b4d82 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x037b6616 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x03960713 ioread16 +EXPORT_SYMBOL vmlinux 0x03a3bfa9 set_bh_page +EXPORT_SYMBOL vmlinux 0x03a8c36b skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x0419f55e sk_reset_timer +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043cbaeb proc_bus +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0471c859 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04de5469 fget +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05048b38 mca_is_adapter_used +EXPORT_SYMBOL vmlinux 0x0564edcb kmalloc_caches +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058c75d9 acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x058f1cd7 open_exec +EXPORT_SYMBOL vmlinux 0x058fd3b5 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x05d04054 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x05e1389a finish_wait +EXPORT_SYMBOL vmlinux 0x06127753 ioread16be +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0622f845 put_page +EXPORT_SYMBOL vmlinux 0x06348ef7 mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x0640bbdb sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x0643fb1c acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0685f11d skb_copy_bits +EXPORT_SYMBOL vmlinux 0x06a6a1ce ip_route_output_key +EXPORT_SYMBOL vmlinux 0x06f2d5c7 mempool_free +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07129a46 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x0714ca7b clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x0729bd50 read_cache_page +EXPORT_SYMBOL vmlinux 0x07374b32 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x073c92f5 stop_tty +EXPORT_SYMBOL vmlinux 0x075b6353 arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0x076a0d2f xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x076e21a7 find_vma +EXPORT_SYMBOL vmlinux 0x07904a4e xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x07994098 fasync_helper +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x079fa66e key_unlink +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b3abc5 end_page_writeback +EXPORT_SYMBOL vmlinux 0x07ca716e fb_class +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07dc946d default_llseek +EXPORT_SYMBOL vmlinux 0x07e43c47 wait_for_completion +EXPORT_SYMBOL vmlinux 0x08141975 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x085895da lookup_one_len +EXPORT_SYMBOL vmlinux 0x087d4ca9 add_disk +EXPORT_SYMBOL vmlinux 0x089f828c write_inode_now +EXPORT_SYMBOL vmlinux 0x08db36e0 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x08ecf3c7 kset_unregister +EXPORT_SYMBOL vmlinux 0x08ee6591 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x0904284d skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x093fbfd4 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0953a36d skb_clone +EXPORT_SYMBOL vmlinux 0x0957170e vfs_rename +EXPORT_SYMBOL vmlinux 0x0976a88f pnp_start_dev +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x097c3d0c contig_page_data +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099959ea fd_install +EXPORT_SYMBOL vmlinux 0x09a0b562 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x09aeaf8c out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09cc7a17 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a16a6ef lock_rename +EXPORT_SYMBOL vmlinux 0x0a1c9f3d mod_timer +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a598901 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0aa1f498 tcp_poll +EXPORT_SYMBOL vmlinux 0x0ab65cf7 init_mm +EXPORT_SYMBOL vmlinux 0x0acad7fa key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2cac87 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x0b353626 iowrite8_rep +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b785689 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x0b9f28cc udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x0baf117e kfifo_free +EXPORT_SYMBOL vmlinux 0x0baf63ac nobh_write_begin +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bce3753 ioread32be +EXPORT_SYMBOL vmlinux 0x0be0befd bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c636d2e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x0cda10c1 del_timer_sync +EXPORT_SYMBOL vmlinux 0x0cfd5cae blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x0d16f266 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x0d26c633 udp_prot +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4b77b7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5c5a41 blk_init_queue +EXPORT_SYMBOL vmlinux 0x0d61a774 blk_free_tags +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d6fa575 add_disk_randomness +EXPORT_SYMBOL vmlinux 0x0d7050d8 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dcd6cd9 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x0dd926cc kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x0ddb38a8 sock_no_bind +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e18ae1a _spin_lock_bh +EXPORT_SYMBOL vmlinux 0x0e5670b8 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x0e9b0240 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x0e9c4962 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x0ea3018f filp_open +EXPORT_SYMBOL vmlinux 0x0ead5073 vscnprintf +EXPORT_SYMBOL vmlinux 0x0ee45738 file_update_time +EXPORT_SYMBOL vmlinux 0x0efd6904 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x0eff65c3 misc_register +EXPORT_SYMBOL vmlinux 0x0f2c9c8f cpu_possible_map +EXPORT_SYMBOL vmlinux 0x0f5a92de dcache_lock +EXPORT_SYMBOL vmlinux 0x0f7f19bd vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x0faba6d2 kthread_stop +EXPORT_SYMBOL vmlinux 0x0fbad723 nf_log_packet +EXPORT_SYMBOL vmlinux 0x0fc2e00b kmem_cache_create +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x107d6ba3 __get_free_pages +EXPORT_SYMBOL vmlinux 0x1082eca1 simple_lookup +EXPORT_SYMBOL vmlinux 0x1087f8ac skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x10919135 eth_header +EXPORT_SYMBOL vmlinux 0x1098db69 tcp_prot +EXPORT_SYMBOL vmlinux 0x10d2a6bf dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x110b05a1 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x112f98a8 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x11319cb4 per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117ff0b3 bio_free +EXPORT_SYMBOL vmlinux 0x118775be km_policy_expired +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1191d1d4 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0x11920343 elv_add_request +EXPORT_SYMBOL vmlinux 0x11ccaa80 fb_find_mode +EXPORT_SYMBOL vmlinux 0x11d75315 mca_device_status +EXPORT_SYMBOL vmlinux 0x11db6826 atm_proc_root +EXPORT_SYMBOL vmlinux 0x11f0a3f9 simple_prepare_write +EXPORT_SYMBOL vmlinux 0x122617d8 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x128e0d66 devm_request_irq +EXPORT_SYMBOL vmlinux 0x12a7ec4b dev_get_by_index +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x131861af fb_set_suspend +EXPORT_SYMBOL vmlinux 0x1321c8c9 dev_driver_string +EXPORT_SYMBOL vmlinux 0x1328205f netlink_unicast +EXPORT_SYMBOL vmlinux 0x13ab889e key_link +EXPORT_SYMBOL vmlinux 0x13b52724 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x13ba7f94 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x13d2fd97 mpage_writepages +EXPORT_SYMBOL vmlinux 0x13db15e0 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x13ff13da netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x141dbf9b acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x141f4802 idr_replace +EXPORT_SYMBOL vmlinux 0x14215791 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x1424e6fb generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x14753be3 sk_stream_error +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x1478a538 sock_create +EXPORT_SYMBOL vmlinux 0x14a13f52 register_netdev +EXPORT_SYMBOL vmlinux 0x14a92632 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x14af0cf7 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x14bf973d tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1567f480 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x1575fcf1 tr_type_trans +EXPORT_SYMBOL vmlinux 0x1586e542 bdev_read_only +EXPORT_SYMBOL vmlinux 0x1595e376 load_nls +EXPORT_SYMBOL vmlinux 0x15dc29dc simple_write_begin +EXPORT_SYMBOL vmlinux 0x15ee55ac sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x15f28f83 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x1623f0f7 neigh_lookup +EXPORT_SYMBOL vmlinux 0x16611b34 netlink_ack +EXPORT_SYMBOL vmlinux 0x166a6e37 permission +EXPORT_SYMBOL vmlinux 0x16b683ab dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x16b82223 tty_hangup +EXPORT_SYMBOL vmlinux 0x16bbd268 dump_thread +EXPORT_SYMBOL vmlinux 0x16c8d1b8 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x16db53bc dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x172954a3 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x175a298d acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x175fc9a9 blk_insert_request +EXPORT_SYMBOL vmlinux 0x178fc345 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x17a0e075 get_write_access +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17d59d01 schedule_timeout +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f546ab ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x1813967a icmp_send +EXPORT_SYMBOL vmlinux 0x182cd209 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x18364dad unregister_nls +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18485e31 is_bad_inode +EXPORT_SYMBOL vmlinux 0x186d09f6 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x18a4580c vfs_symlink +EXPORT_SYMBOL vmlinux 0x18aedd4f pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x18ca0c95 blkdev_get +EXPORT_SYMBOL vmlinux 0x18e0fa73 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x190d17b8 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x191212c0 sock_no_getname +EXPORT_SYMBOL vmlinux 0x196ad7e0 llc_sap_open +EXPORT_SYMBOL vmlinux 0x196f25b6 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x1979e557 blk_plug_device +EXPORT_SYMBOL vmlinux 0x1990cd7e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19cf45f1 pnp_find_card +EXPORT_SYMBOL vmlinux 0x19d5d20a acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x19e966a6 genl_register_ops +EXPORT_SYMBOL vmlinux 0x19f2295f tcp_connect +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a492f94 path_release +EXPORT_SYMBOL vmlinux 0x1a8a819d sysctl_intvec +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad11750 generic_write_end +EXPORT_SYMBOL vmlinux 0x1ad5cca5 handle_sysrq +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b1b9fd2 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x1b3936c3 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b695dca skb_append +EXPORT_SYMBOL vmlinux 0x1b7d4074 printk +EXPORT_SYMBOL vmlinux 0x1b88bc9b register_sysrq_key +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1ba98e5a __inet6_hash +EXPORT_SYMBOL vmlinux 0x1bb8b400 d_invalidate +EXPORT_SYMBOL vmlinux 0x1bfe0679 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x1c0b7281 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x1c195860 generic_readlink +EXPORT_SYMBOL vmlinux 0x1c205834 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x1c50bdb7 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x1c7c4445 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1c9a8e96 ps2_drain +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cf4bc6d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x1cf603a6 force_sig +EXPORT_SYMBOL vmlinux 0x1d022c2b per_cpu__irq_regs +EXPORT_SYMBOL vmlinux 0x1d12c98a ___pskb_trim +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d2bb220 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x1d59ef63 invalidate_partition +EXPORT_SYMBOL vmlinux 0x1db8bf8d pcim_iounmap +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de314f3 hpet_control +EXPORT_SYMBOL vmlinux 0x1df05707 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x1e28ae3f lock_may_write +EXPORT_SYMBOL vmlinux 0x1e2c0816 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7e5254 page_put_link +EXPORT_SYMBOL vmlinux 0x1eb922a3 IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x1eba9e49 iowrite16_rep +EXPORT_SYMBOL vmlinux 0x1f391a8a generic_delete_inode +EXPORT_SYMBOL vmlinux 0x1f4c4922 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x1f69c879 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x1f869a62 sock_rfree +EXPORT_SYMBOL vmlinux 0x1f88fcde boot_cpu_data +EXPORT_SYMBOL vmlinux 0x1f9c767e __page_symlink +EXPORT_SYMBOL vmlinux 0x1f9cfe83 iomem_resource +EXPORT_SYMBOL vmlinux 0x1fcd2bb2 neigh_create +EXPORT_SYMBOL vmlinux 0x1fe101b6 pci_dev_put +EXPORT_SYMBOL vmlinux 0x1fe5ede6 per_cpu__irq_stat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x2037b3f7 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x2046eddb dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x2077dcb1 generic_setxattr +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x2099b9f0 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x20b2ab4a thaw_bdev +EXPORT_SYMBOL vmlinux 0x20bfbf1f call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x20c8fc33 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x20da4b93 __bforget +EXPORT_SYMBOL vmlinux 0x21271583 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x2241a928 ioread32 +EXPORT_SYMBOL vmlinux 0x2244321f acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x225830c4 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x2269e09b brioctl_set +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22b6ff24 pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0x22ca7ff6 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x231f6985 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x2348984e adjust_resource +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x23a43bd3 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23a9a4ca __inode_dir_notify +EXPORT_SYMBOL vmlinux 0x23ad070a set_current_groups +EXPORT_SYMBOL vmlinux 0x23c1fc7f __alloc_pages +EXPORT_SYMBOL vmlinux 0x23d43383 kobject_add +EXPORT_SYMBOL vmlinux 0x23d9c5e5 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x23ea7565 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240d5528 bio_init +EXPORT_SYMBOL vmlinux 0x242de687 inet_frags_init +EXPORT_SYMBOL vmlinux 0x243da486 set_binfmt +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2489b51b skb_free_datagram +EXPORT_SYMBOL vmlinux 0x24b8df02 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x251c8c94 __user_walk +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258e929a dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25f76214 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x2614d860 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x263ab451 skb_seq_read +EXPORT_SYMBOL vmlinux 0x263f282b fb_blank +EXPORT_SYMBOL vmlinux 0x2640abe8 filemap_flush +EXPORT_SYMBOL vmlinux 0x267e6a51 unload_nls +EXPORT_SYMBOL vmlinux 0x26802315 eth_header_cache +EXPORT_SYMBOL vmlinux 0x268144ab pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x269cb159 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x269eb2d2 pskb_copy +EXPORT_SYMBOL vmlinux 0x26a2ffdb proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x26db5464 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x26db96b1 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x26fd1f68 mem_map +EXPORT_SYMBOL vmlinux 0x270ce7e3 create_proc_entry +EXPORT_SYMBOL vmlinux 0x2710345d devm_free_irq +EXPORT_SYMBOL vmlinux 0x272552e6 add_wait_queue +EXPORT_SYMBOL vmlinux 0x2728d2dc kernel_bind +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x2747aa0a find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x2758f6e9 audit_log_format +EXPORT_SYMBOL vmlinux 0x2780f58f d_rehash +EXPORT_SYMBOL vmlinux 0x27a72488 ioread8_rep +EXPORT_SYMBOL vmlinux 0x27a7bedf init_task +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27ab09d2 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c030ba blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x27c398bf arp_tbl +EXPORT_SYMBOL vmlinux 0x28002f5e pnp_device_attach +EXPORT_SYMBOL vmlinux 0x283aa2e6 blkdev_put +EXPORT_SYMBOL vmlinux 0x2867530e send_sig_info +EXPORT_SYMBOL vmlinux 0x286c67b9 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x28a4cb65 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28bc059b call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x28c67d39 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f35813 scnprintf +EXPORT_SYMBOL vmlinux 0x291f9bed bio_split_pool +EXPORT_SYMBOL vmlinux 0x2923018d pcim_enable_device +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295a5ff9 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x29cd3d81 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x2a2cd8e5 unregister_netdev +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3aa883 nf_register_hook +EXPORT_SYMBOL vmlinux 0x2a46dd19 inode_init_once +EXPORT_SYMBOL vmlinux 0x2a4d1fba simple_rmdir +EXPORT_SYMBOL vmlinux 0x2a4d87c9 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x2a68d5ed page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x2a97d317 seq_release_private +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa33535 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x2b4809a4 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x2b497bbe sock_no_connect +EXPORT_SYMBOL vmlinux 0x2b54662d nf_setsockopt +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2b6ea852 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bbad503 _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bd18b78 posix_lock_file +EXPORT_SYMBOL vmlinux 0x2bd5c1fe invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x2becad38 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x2bed6ec5 input_set_capability +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2512ea get_zeroed_page +EXPORT_SYMBOL vmlinux 0x2c2929d2 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x2c2e261e remote_llseek +EXPORT_SYMBOL vmlinux 0x2c3eca89 seq_printf +EXPORT_SYMBOL vmlinux 0x2c480988 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x2c53fef7 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x2c5749e6 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x2c662bf7 posix_test_lock +EXPORT_SYMBOL vmlinux 0x2c8f5989 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x2ca53c5c gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2cb6da81 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2ce4464e dquot_free_space +EXPORT_SYMBOL vmlinux 0x2ce7ec2b proc_symlink +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d0d2f1c netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x2d299b74 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x2d5c06ec down_write_trylock +EXPORT_SYMBOL vmlinux 0x2db24237 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x2db717fe up_write +EXPORT_SYMBOL vmlinux 0x2dbc755e iowrite32_rep +EXPORT_SYMBOL vmlinux 0x2dc9dbf8 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x2dc9f418 cdev_init +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dfaa67d request_key_async +EXPORT_SYMBOL vmlinux 0x2e1d55b0 proc_dostring +EXPORT_SYMBOL vmlinux 0x2e1df655 noop_qdisc +EXPORT_SYMBOL vmlinux 0x2e3051eb pci_get_class +EXPORT_SYMBOL vmlinux 0x2e47d26d dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e6e0f1b ida_init +EXPORT_SYMBOL vmlinux 0x2e6e4acd inode_add_bytes +EXPORT_SYMBOL vmlinux 0x2e7afef2 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x2e9c3964 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x2ecb88df follow_down +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f41aaee ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x2f81697e skb_insert +EXPORT_SYMBOL vmlinux 0x2fac01d8 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x2fcdc818 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2ff5a11a seq_open +EXPORT_SYMBOL vmlinux 0x2ff92ca0 find_next_bit +EXPORT_SYMBOL vmlinux 0x2ffae8e4 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x302841c3 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x30343e46 iowrite16be +EXPORT_SYMBOL vmlinux 0x304e160e free_netdev +EXPORT_SYMBOL vmlinux 0x304fbd55 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x30bce981 console_start +EXPORT_SYMBOL vmlinux 0x30ddebad register_8022_client +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3109656c elv_queue_empty +EXPORT_SYMBOL vmlinux 0x3121e0c8 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x312a27c5 mca_device_set_name +EXPORT_SYMBOL vmlinux 0x313877fa mpage_readpage +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31519971 get_disk +EXPORT_SYMBOL vmlinux 0x315a2213 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x3167ea19 global_flush_tlb +EXPORT_SYMBOL vmlinux 0x31918dfb pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x31a2e2c1 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x31b7a003 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x31d35fad nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x322b8923 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x322c6fc2 __check_region +EXPORT_SYMBOL vmlinux 0x324f3dda single_release +EXPORT_SYMBOL vmlinux 0x327c4c3f dquot_acquire +EXPORT_SYMBOL vmlinux 0x327e368e page_readlink +EXPORT_SYMBOL vmlinux 0x32a60bb7 mpage_writepage +EXPORT_SYMBOL vmlinux 0x32b108f7 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x32c0716d key_alloc +EXPORT_SYMBOL vmlinux 0x32d01fec acpi_attach_data +EXPORT_SYMBOL vmlinux 0x32fc8e30 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x33019cc6 tc_classify +EXPORT_SYMBOL vmlinux 0x33181c92 generic_make_request +EXPORT_SYMBOL vmlinux 0x334180bf idr_get_new_above +EXPORT_SYMBOL vmlinux 0x3353a0bf xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x3360bb18 ioread32_rep +EXPORT_SYMBOL vmlinux 0x336128c2 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x33796173 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x3385c8cb per_cpu__this_cpu_off +EXPORT_SYMBOL vmlinux 0x33934162 release_firmware +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x34065b98 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x3421272c efi +EXPORT_SYMBOL vmlinux 0x3426a66e proc_root +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x345943d6 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x3468451e alloc_fcdev +EXPORT_SYMBOL vmlinux 0x3481362d ps2_command +EXPORT_SYMBOL vmlinux 0x34851b61 input_register_handle +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349cfe5a inet_csk_accept +EXPORT_SYMBOL vmlinux 0x34ba9e05 serio_reconnect +EXPORT_SYMBOL vmlinux 0x34f03650 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x3507b0b3 kill_pid +EXPORT_SYMBOL vmlinux 0x3594bba4 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x359b1708 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3614e85e pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x3669c7f0 skb_unlink +EXPORT_SYMBOL vmlinux 0x36d41680 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x36d5355b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x36e007df ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x37058f6e kernel_sendpage +EXPORT_SYMBOL vmlinux 0x375bf494 iowrite8 +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x379c0717 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x379d65f5 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x37a909f6 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x37b748a8 sock_create_lite +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f8d788 kernel_listen +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x38915bce genl_sock +EXPORT_SYMBOL vmlinux 0x38971dfc xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x389e200f ioread8 +EXPORT_SYMBOL vmlinux 0x38a08817 textsearch_register +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x39056c28 blk_get_request +EXPORT_SYMBOL vmlinux 0x3958d707 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39b1ac18 sock_no_listen +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a645323 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x3a9b5145 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9daa62 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x3ab2ca68 udp_proc_register +EXPORT_SYMBOL vmlinux 0x3aeb3aca dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x3b2a2100 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3bc30c5f shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd99b9a qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x3c1920c6 register_quota_format +EXPORT_SYMBOL vmlinux 0x3c512b41 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x3c59f31b bio_put +EXPORT_SYMBOL vmlinux 0x3c9ed3b9 netpoll_poll +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cd143bc put_filp +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf4e2a5 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x3d08eb4f inet_frags_fini +EXPORT_SYMBOL vmlinux 0x3d301ce7 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x3d34ee41 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x3d47401c neigh_connected_output +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da1b07a machine_real_restart +EXPORT_SYMBOL vmlinux 0x3e053729 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x3e1f021d tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x3e1f3f9f blk_put_queue +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e931b60 complete_request_key +EXPORT_SYMBOL vmlinux 0x3eb471c5 arp_create +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eef67ba blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x3f072204 complete_all +EXPORT_SYMBOL vmlinux 0x3f32d998 datagram_poll +EXPORT_SYMBOL vmlinux 0x3f3b5595 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x3f8ae8bb splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x3f92b0ec xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x3fa4460d proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fc8b450 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x3fe56992 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x401edd64 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40672e0d isapnp_protocol +EXPORT_SYMBOL vmlinux 0x4092adc0 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40d99f8a pci_release_region +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41419543 may_umount +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41533f49 ip_dev_find +EXPORT_SYMBOL vmlinux 0x417a7bd0 pci_bus_type +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419143b6 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x41cccb51 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x41e03ce9 send_sig +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422c05d0 acpi_get_data +EXPORT_SYMBOL vmlinux 0x422ee156 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x4234d3ea kmap_high +EXPORT_SYMBOL vmlinux 0x42516326 __scm_send +EXPORT_SYMBOL vmlinux 0x426828c9 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42a8ec1f mapping_tagged +EXPORT_SYMBOL vmlinux 0x42b89677 register_con_driver +EXPORT_SYMBOL vmlinux 0x42c9a8b5 submit_bio +EXPORT_SYMBOL vmlinux 0x42e301a3 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x42f90d65 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x43085769 __seq_open_private +EXPORT_SYMBOL vmlinux 0x432b6b54 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434cd8bf __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43592419 sleep_on +EXPORT_SYMBOL vmlinux 0x43800f68 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x4393280a __scm_destroy +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43b40de7 kunmap_atomic +EXPORT_SYMBOL vmlinux 0x43e7a8cd bio_add_page +EXPORT_SYMBOL vmlinux 0x4408bf07 dev_add_pack +EXPORT_SYMBOL vmlinux 0x440f7ef7 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x44290ff0 bdi_init +EXPORT_SYMBOL vmlinux 0x443647cf iunique +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x446b1a3e complete_and_exit +EXPORT_SYMBOL vmlinux 0x4481dcd7 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x4489238c pnp_find_dev +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44be5545 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x44c5e298 pci_iounmap +EXPORT_SYMBOL vmlinux 0x44cefee4 key_task_permission +EXPORT_SYMBOL vmlinux 0x451b4963 bio_copy_user +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x455548dd blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x455a5592 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x455fd57d acpi_set_register +EXPORT_SYMBOL vmlinux 0x45bb0352 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x45cb57ec find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x46414d31 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x4651e8dd proc_dointvec +EXPORT_SYMBOL vmlinux 0x46533915 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x4658dfc4 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4676ff60 allocate_resource +EXPORT_SYMBOL vmlinux 0x468f8bd3 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x46a07c4e bd_claim +EXPORT_SYMBOL vmlinux 0x46a07d87 acpi_extract_package +EXPORT_SYMBOL vmlinux 0x46a78368 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x46c0e697 dst_alloc +EXPORT_SYMBOL vmlinux 0x46ea6b66 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x47130cc5 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x474c6870 __grab_cache_page +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x476907d6 udp_disconnect +EXPORT_SYMBOL vmlinux 0x4775eacf iowrite16 +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x479d7281 con_is_bound +EXPORT_SYMBOL vmlinux 0x47b3470c end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x47e26124 vfs_writev +EXPORT_SYMBOL vmlinux 0x47f45b33 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x4802fd77 igrab +EXPORT_SYMBOL vmlinux 0x4817548c ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x482edfa2 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x483831cd lease_modify +EXPORT_SYMBOL vmlinux 0x483ad418 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x487a2cdb acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x487c1387 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x4888a014 __get_user_2 +EXPORT_SYMBOL vmlinux 0x488d7491 poll_initwait +EXPORT_SYMBOL vmlinux 0x488fb97a blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x48a84dd4 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x48d698df kfree_skb +EXPORT_SYMBOL vmlinux 0x48f07026 key_create_or_update +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x4971599f tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x498fc1a8 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0x4993a318 generic_listxattr +EXPORT_SYMBOL vmlinux 0x499faa3c kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x49bc6da3 udp_ioctl +EXPORT_SYMBOL vmlinux 0x49bece3d read_dev_sector +EXPORT_SYMBOL vmlinux 0x49ee73a6 input_inject_event +EXPORT_SYMBOL vmlinux 0x4a219979 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a4fbe8a __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4afc71c7 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x4b22d728 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b6c26c0 register_qdisc +EXPORT_SYMBOL vmlinux 0x4b8446fa rwsem_wake +EXPORT_SYMBOL vmlinux 0x4b8d7e56 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x4b9da9eb xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bce9cc3 submit_bh +EXPORT_SYMBOL vmlinux 0x4bdf631d kmap +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c267f60 is_container_init +EXPORT_SYMBOL vmlinux 0x4c41e79b sk_stop_timer +EXPORT_SYMBOL vmlinux 0x4c47966b vc_resize +EXPORT_SYMBOL vmlinux 0x4caff523 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x4cb30ac8 dquot_commit +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4ccbe204 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x4cd6cf49 kill_fasync +EXPORT_SYMBOL vmlinux 0x4cdec5b1 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x4ce159b3 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x4cf284ed tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x4cf71cd2 idr_remove_all +EXPORT_SYMBOL vmlinux 0x4d041493 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x4d0a8fc6 end_queued_request +EXPORT_SYMBOL vmlinux 0x4d2f58f7 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x4d33df45 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d578f23 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x4d889b51 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x4dbd679f kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x4dbf4a55 pci_set_master +EXPORT_SYMBOL vmlinux 0x4dc96fad posix_acl_permission +EXPORT_SYMBOL vmlinux 0x4dd27aac neigh_table_clear +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e472dc3 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x4e480744 kill_block_super +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e79aab8 elevator_exit +EXPORT_SYMBOL vmlinux 0x4e7edd9d skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9f3bcf keyring_clear +EXPORT_SYMBOL vmlinux 0x4efd6c8c subsystem_unregister +EXPORT_SYMBOL vmlinux 0x4f07317e truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x4f3a8e25 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x4f43de19 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x4f7b03d2 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe01fa7 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x4fe1eabc pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x4ff0b716 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x501e6fe0 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502be375 sk_common_release +EXPORT_SYMBOL vmlinux 0x50402a43 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x505408b1 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x507a2bca mca_bus_type +EXPORT_SYMBOL vmlinux 0x508ef3dd remove_wait_queue +EXPORT_SYMBOL vmlinux 0x50b1727b udplite_get_port +EXPORT_SYMBOL vmlinux 0x50c1c4a1 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x50dcdfb4 ht_create_irq +EXPORT_SYMBOL vmlinux 0x50e13b59 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x50edc34f ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x50f4ab6a mnt_unpin +EXPORT_SYMBOL vmlinux 0x5102b276 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5148ee2a rtc_lock +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x518eb764 per_cpu__cpu_number +EXPORT_SYMBOL vmlinux 0x51bdd393 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x51d7a776 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52142477 page_symlink +EXPORT_SYMBOL vmlinux 0x522f1fab call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x523d78d1 fb_pan_display +EXPORT_SYMBOL vmlinux 0x525cd570 per_cpu__cpu_core_map +EXPORT_SYMBOL vmlinux 0x52798d37 __next_cpu +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52e9d6cb set_anon_super +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530ce080 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53816c60 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c4b881 __kfifo_get +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x5431d774 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x54324f95 ioread16_rep +EXPORT_SYMBOL vmlinux 0x543f43c0 unlock_rename +EXPORT_SYMBOL vmlinux 0x54456132 __kfree_skb +EXPORT_SYMBOL vmlinux 0x546a889d tty_check_change +EXPORT_SYMBOL vmlinux 0x546f0b06 _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x549d9f7e netif_carrier_on +EXPORT_SYMBOL vmlinux 0x54b8a3f9 per_cpu__x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x552af364 make_bad_inode +EXPORT_SYMBOL vmlinux 0x55478f05 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x5568a400 kset_register +EXPORT_SYMBOL vmlinux 0x5568be43 lock_kernel +EXPORT_SYMBOL vmlinux 0x55865028 pci_get_device +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55c60f97 cdev_del +EXPORT_SYMBOL vmlinux 0x55dc373a init_file +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x56179c5f mtrr_add +EXPORT_SYMBOL vmlinux 0x56276279 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x5631d966 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x564876f1 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x564d1fb9 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x56592d98 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x56b17df2 inode_change_ok +EXPORT_SYMBOL vmlinux 0x56e61c0a ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x56ed9530 __pagevec_release +EXPORT_SYMBOL vmlinux 0x572699c8 mca_register_driver +EXPORT_SYMBOL vmlinux 0x572fcdfe input_allocate_device +EXPORT_SYMBOL vmlinux 0x5739acfe uts_sem +EXPORT_SYMBOL vmlinux 0x573d324f i8253_lock +EXPORT_SYMBOL vmlinux 0x57d6aa51 mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x57f99226 mpage_readpages +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5876611a pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x59010246 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x59070e1e ida_get_new_above +EXPORT_SYMBOL vmlinux 0x5913913a node_states +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5951dc5e keyring_search +EXPORT_SYMBOL vmlinux 0x598b248a llc_sap_close +EXPORT_SYMBOL vmlinux 0x59996233 block_sync_page +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59c18248 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59dca8c2 sock_no_accept +EXPORT_SYMBOL vmlinux 0x59fd3a69 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x5a1b5e63 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x5a3b3647 file_fsync +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5aa4c9a3 skb_dequeue +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ac9cfcf dquot_release +EXPORT_SYMBOL vmlinux 0x5ad79fcc atm_dev_register +EXPORT_SYMBOL vmlinux 0x5aef51f4 drop_super +EXPORT_SYMBOL vmlinux 0x5afc1c7b end_dequeued_request +EXPORT_SYMBOL vmlinux 0x5b11a046 inode_double_unlock +EXPORT_SYMBOL vmlinux 0x5b1ceb04 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x5b217954 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b5e5571 kthread_bind +EXPORT_SYMBOL vmlinux 0x5b7253c5 vfs_unlink +EXPORT_SYMBOL vmlinux 0x5bc1f0b8 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x5bdd6edb _spin_trylock +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c4a4415 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x5c527f41 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5c7fc372 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x5c93eb95 iput +EXPORT_SYMBOL vmlinux 0x5d15bec6 __f_setown +EXPORT_SYMBOL vmlinux 0x5d17518f schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x5d4f22b4 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x5d72ceb9 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5d8db9f8 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5db0881f inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5db0b7d3 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5dfe8f1a unlock_kernel +EXPORT_SYMBOL vmlinux 0x5e0c09ba bdi_destroy +EXPORT_SYMBOL vmlinux 0x5e1b0780 neigh_table_init +EXPORT_SYMBOL vmlinux 0x5e1f346b tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x5e358e05 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x5e38f38a flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5e3bfaad nonseekable_open +EXPORT_SYMBOL vmlinux 0x5e3c5bb6 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x5e3eebcd tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x5e536b64 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x5e574fcd register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x5e6410a4 kobject_register +EXPORT_SYMBOL vmlinux 0x5eb0e46b sock_kmalloc +EXPORT_SYMBOL vmlinux 0x5f068aff __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f6454c0 downgrade_write +EXPORT_SYMBOL vmlinux 0x5f9ec8cf __rta_fill +EXPORT_SYMBOL vmlinux 0x5fd2f17c neigh_for_each +EXPORT_SYMBOL vmlinux 0x60029b29 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f10d6 init_buffer +EXPORT_SYMBOL vmlinux 0x60253ab0 up_read +EXPORT_SYMBOL vmlinux 0x6036641b blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60a4461c __up_wakeup +EXPORT_SYMBOL vmlinux 0x60a92d88 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x60e4fe28 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x60ea172c neigh_seq_start +EXPORT_SYMBOL vmlinux 0x61151700 mutex_trylock +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61ccc1da generic_unplug_device +EXPORT_SYMBOL vmlinux 0x61d1e575 atm_dev_lookup +EXPORT_SYMBOL vmlinux 0x62001345 page_address +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x620de508 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x6220b0ab xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241fd2c acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x625acc81 __down_failed_interruptible +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62939bdc ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x62a513d1 dput +EXPORT_SYMBOL vmlinux 0x62ab85f6 compute_creds +EXPORT_SYMBOL vmlinux 0x62af4001 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x62b6b845 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x62e300e2 audit_log_start +EXPORT_SYMBOL vmlinux 0x63003ede fb_set_cmap +EXPORT_SYMBOL vmlinux 0x6317d870 ether_setup +EXPORT_SYMBOL vmlinux 0x632d9cf6 end_request +EXPORT_SYMBOL vmlinux 0x63459edf pci_choose_state +EXPORT_SYMBOL vmlinux 0x634b79df sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x6353c35f inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x63672cdf read_cache_pages +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x638c19a8 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x63aa9b36 kmap_atomic +EXPORT_SYMBOL vmlinux 0x63dfe1b4 hpet_unregister +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6402aaff release_resource +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64148a86 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x64238262 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x648d2394 skb_pad +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64cd975d fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x64f2150c eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x6506548b vc_cons +EXPORT_SYMBOL vmlinux 0x650ac4ec end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6561002c bd_release +EXPORT_SYMBOL vmlinux 0x65b15355 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x65c5d8a2 start_tty +EXPORT_SYMBOL vmlinux 0x6623214f down_write +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a32c8c pci_release_regions +EXPORT_SYMBOL vmlinux 0x66b470a2 eth_header_parse +EXPORT_SYMBOL vmlinux 0x66c703f4 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x66ddb0e0 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0x67229cad __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x673f4e25 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x679a54f2 init_timer +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b69a1e tcf_em_register +EXPORT_SYMBOL vmlinux 0x67c5c8c2 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x67f36b7c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x680912ce set_blocksize +EXPORT_SYMBOL vmlinux 0x68682ce3 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x686aa5fe alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x686f1325 hpet_alloc +EXPORT_SYMBOL vmlinux 0x6879d7d9 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0x68a99a02 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x68d42400 udp_poll +EXPORT_SYMBOL vmlinux 0x69005013 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x691cc919 kunmap +EXPORT_SYMBOL vmlinux 0x69213584 do_munmap +EXPORT_SYMBOL vmlinux 0x6989a769 vsnprintf +EXPORT_SYMBOL vmlinux 0x698b7d02 vfs_statfs +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69b8484c mark_page_accessed +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69eea93c serio_interrupt +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a05a799 nla_reserve +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a3eed4c alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a6906e5 free_task +EXPORT_SYMBOL vmlinux 0x6ac3a072 __lookup_hash +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b326300 kick_iocb +EXPORT_SYMBOL vmlinux 0x6b418f2c framebuffer_release +EXPORT_SYMBOL vmlinux 0x6b53acfb find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x6b62433f make_EII_client +EXPORT_SYMBOL vmlinux 0x6b6fbdd5 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x6b81dcd4 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6b95785b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x6c17c247 registered_fb +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c28f862 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c576453 have_submounts +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6c19dd input_register_device +EXPORT_SYMBOL vmlinux 0x6c8889c2 kill_pgrp +EXPORT_SYMBOL vmlinux 0x6c8a8fd3 __devm_request_region +EXPORT_SYMBOL vmlinux 0x6c9d5b5b proto_unregister +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cdfeded sync_page_range +EXPORT_SYMBOL vmlinux 0x6ce997ef __ip_select_ident +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d1ced27 vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0x6d204b2b kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d33adf8 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d57827e pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x6d6b5bf2 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x6d872586 vfs_write +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df65e1c arp_broken_ops +EXPORT_SYMBOL vmlinux 0x6e131cb0 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x6e171c4e __nla_reserve +EXPORT_SYMBOL vmlinux 0x6e185827 _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x6e1a4bbb udp_hash_lock +EXPORT_SYMBOL vmlinux 0x6e2ece60 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6e440b58 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x6e718e5f udp_get_port +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea7aaa6 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x6f24df30 atm_charge +EXPORT_SYMBOL vmlinux 0x6f7ba5d8 sock_register +EXPORT_SYMBOL vmlinux 0x6faa475a cond_resched_lock +EXPORT_SYMBOL vmlinux 0x6faed623 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fe5aadb lock_sock_nested +EXPORT_SYMBOL vmlinux 0x700236e7 dump_fpu +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x700fca92 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x702e312e seq_read +EXPORT_SYMBOL vmlinux 0x703a0577 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70759526 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x70b1d618 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x7126db3d ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x71515dd0 km_query +EXPORT_SYMBOL vmlinux 0x715e2517 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x716aea86 pci_find_capability +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x717fb923 blk_register_region +EXPORT_SYMBOL vmlinux 0x71a3aa92 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71cda0c1 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x722a0a0a _read_lock +EXPORT_SYMBOL vmlinux 0x726eb98d register_console +EXPORT_SYMBOL vmlinux 0x72760b9d tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x729fb311 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72cd37f8 put_io_context +EXPORT_SYMBOL vmlinux 0x73355d47 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x7352ae96 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x735b1b86 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x73703a01 pci_enable_wake +EXPORT_SYMBOL vmlinux 0x7372a750 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740c37b7 mempool_create_node +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741f1f6e hpet_register +EXPORT_SYMBOL vmlinux 0x7435f161 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7486c20b udplite_prot +EXPORT_SYMBOL vmlinux 0x74a343b7 tcp_check_req +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74eeccc1 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x751b4634 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7531e508 d_alloc_name +EXPORT_SYMBOL vmlinux 0x754b7572 find_or_create_page +EXPORT_SYMBOL vmlinux 0x75a1a747 skb_under_panic +EXPORT_SYMBOL vmlinux 0x75b3c728 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x75ba215d uart_suspend_port +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7619fa7c skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x7627c335 _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x76430786 _spin_unlock +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cad882 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d8b553 set_user_nice +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x77029733 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x77101d58 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x7722000b bio_split +EXPORT_SYMBOL vmlinux 0x77304cca simple_statfs +EXPORT_SYMBOL vmlinux 0x77524a43 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x7775b5df __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x7777bab9 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x7788dafb sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x77b34c53 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x77b91ed3 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x77ce8790 get_fs_type +EXPORT_SYMBOL vmlinux 0x77e98f2e __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f20a1b sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x787880e5 init_net +EXPORT_SYMBOL vmlinux 0x78aa6255 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x78d9fc0d acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ec2a42 km_policy_notify +EXPORT_SYMBOL vmlinux 0x790f8382 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x79158b6a block_write_begin +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794c1398 dmi_check_system +EXPORT_SYMBOL vmlinux 0x795340bb __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x7955b0b5 mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x798b7f48 open_by_devnum +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79cdca42 blk_run_queue +EXPORT_SYMBOL vmlinux 0x79ff20ce dmam_pool_create +EXPORT_SYMBOL vmlinux 0x7a228456 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x7a33e072 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x7a462708 vfs_quota_on +EXPORT_SYMBOL vmlinux 0x7ab724de proc_root_fs +EXPORT_SYMBOL vmlinux 0x7ac1c814 alloc_file +EXPORT_SYMBOL vmlinux 0x7ac46eb9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x7ad5f3ec pagecache_write_end +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b04cc91 mempool_destroy +EXPORT_SYMBOL vmlinux 0x7b1017b4 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7b16fac7 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x7b20ce76 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x7b216fcc neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x7b2461ff pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x7b2514ea uart_resume_port +EXPORT_SYMBOL vmlinux 0x7b298a2c blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b5324a0 update_region +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b6bfa40 __invalidate_device +EXPORT_SYMBOL vmlinux 0x7b88b173 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x7bf0cbc2 filemap_fault +EXPORT_SYMBOL vmlinux 0x7bf67866 uart_register_driver +EXPORT_SYMBOL vmlinux 0x7bf73fb8 tcp_close +EXPORT_SYMBOL vmlinux 0x7c05e781 vcc_release_async +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c56671e sock_release +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c896487 blk_complete_request +EXPORT_SYMBOL vmlinux 0x7c9049bf prepare_to_wait +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc6957d pci_enable_msi +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d278df7 _write_lock_bh +EXPORT_SYMBOL vmlinux 0x7d3baf4b ip_defrag +EXPORT_SYMBOL vmlinux 0x7d3e23e8 netif_device_detach +EXPORT_SYMBOL vmlinux 0x7d62a29d clear_inode +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7dacc271 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x7db212a1 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x7dcbaa82 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7e328a54 vfs_create +EXPORT_SYMBOL vmlinux 0x7e7024ce swap_io_context +EXPORT_SYMBOL vmlinux 0x7e70d32e input_event +EXPORT_SYMBOL vmlinux 0x7e8500d5 sock_create_kern +EXPORT_SYMBOL vmlinux 0x7e8570b4 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eeb27de iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x7f1f1c13 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f28eac9 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x7f3e0642 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x7f538f7c ps2_schedule_command +EXPORT_SYMBOL vmlinux 0x7f730eeb pci_request_region +EXPORT_SYMBOL vmlinux 0x7f846b85 block_commit_write +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7f886066 unregister_console +EXPORT_SYMBOL vmlinux 0x800d7565 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x800eb7c3 vmtruncate +EXPORT_SYMBOL vmlinux 0x80135223 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x803a5e6e prepare_binprm +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x806e106c mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x8087f216 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x8094204a wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x809e995a tty_unregister_device +EXPORT_SYMBOL vmlinux 0x80a4a06f vcc_insert_socket +EXPORT_SYMBOL vmlinux 0x80c81272 set_irq_chip +EXPORT_SYMBOL vmlinux 0x80ca2713 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x810cf83d nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x812f0c44 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8169e70b profile_pc +EXPORT_SYMBOL vmlinux 0x8180eeb7 pci_restore_state +EXPORT_SYMBOL vmlinux 0x81a1bcac sk_run_filter +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8239f82e simple_rename +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82647515 pci_find_slot +EXPORT_SYMBOL vmlinux 0x82d3a8c5 dma_async_client_register +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e96793 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x83015749 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x833132c2 __lock_page +EXPORT_SYMBOL vmlinux 0x83735679 seq_puts +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83af1b1b aio_complete +EXPORT_SYMBOL vmlinux 0x83bd6724 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x83c6ee4c pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x83cbc699 mutex_lock +EXPORT_SYMBOL vmlinux 0x83e84bbe __mod_timer +EXPORT_SYMBOL vmlinux 0x840a78f7 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x8432b262 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x843a6ac8 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x847b9211 __kfifo_put +EXPORT_SYMBOL vmlinux 0x849e0f69 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x84ad6147 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x84daabab empty_zero_page +EXPORT_SYMBOL vmlinux 0x851b114c do_SAK +EXPORT_SYMBOL vmlinux 0x852abecf __request_region +EXPORT_SYMBOL vmlinux 0x85402f49 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x854f8c66 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x8557eb4d audit_get_loginuid +EXPORT_SYMBOL vmlinux 0x85595200 km_state_expired +EXPORT_SYMBOL vmlinux 0x855fb8f1 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x8569b9ec acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x85902f79 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85bd2a3d __dst_free +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85e9c82f ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x85f73b11 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x86034cf8 dq_data_lock +EXPORT_SYMBOL vmlinux 0x861800dc uart_update_timeout +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8659f63b mempool_create +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8687a0ec kernel_connect +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86993da3 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x86b38aa0 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x871ddb75 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x874aea72 acpi_os_signal +EXPORT_SYMBOL vmlinux 0x8760834f pci_scan_slot +EXPORT_SYMBOL vmlinux 0x876b44c2 __elv_add_request +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87776a56 serio_rescan +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x87b801d9 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x886388fa __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x88640159 _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x88793c58 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x88a2ee0c tcp_ioctl +EXPORT_SYMBOL vmlinux 0x88d8ee8c lock_may_read +EXPORT_SYMBOL vmlinux 0x88e57446 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x890c396c init_special_inode +EXPORT_SYMBOL vmlinux 0x89119fe6 __user_walk_fd +EXPORT_SYMBOL vmlinux 0x893aeeff per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x896f9518 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898eba8d vmap +EXPORT_SYMBOL vmlinux 0x89bfb764 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89d6c3a6 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x89e8e556 input_grab_device +EXPORT_SYMBOL vmlinux 0x89f525e0 write_cache_pages +EXPORT_SYMBOL vmlinux 0x8a2cee90 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8a51313d tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x8a51e774 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ad59d42 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x8aef7a67 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b9e2bad unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x8bf85af7 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x8c03ebf9 find_lock_page +EXPORT_SYMBOL vmlinux 0x8c256a4b neigh_update +EXPORT_SYMBOL vmlinux 0x8c3c3d76 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x8c3eb238 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x8c4123d0 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x8c5d394a tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x8c6bd064 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x8c8ab3b2 notify_change +EXPORT_SYMBOL vmlinux 0x8ca66e77 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cd43ef8 km_new_mapping +EXPORT_SYMBOL vmlinux 0x8cff2fab simple_readpage +EXPORT_SYMBOL vmlinux 0x8d04cbd7 ll_rw_block +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d52f0f7 file_permission +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dcb7b45 sock_wake_async +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e01646a __getblk +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0c2fea check_disk_change +EXPORT_SYMBOL vmlinux 0x8e196b46 pci_save_state +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e82e8bb simple_transaction_get +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e9a0c68 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x8ea4bbdd path_lookup +EXPORT_SYMBOL vmlinux 0x8eee2e45 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x8f1079f3 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x8f14f119 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f9e7bbe unbind_con_driver +EXPORT_SYMBOL vmlinux 0x8fbbade8 dma_pool_create +EXPORT_SYMBOL vmlinux 0x8fd571c3 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x8fd7b0e2 sysctl_pathname +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90041338 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x90300fec names_cachep +EXPORT_SYMBOL vmlinux 0x90675543 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x908aa9b2 iowrite32 +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x9162c815 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x91b55eaa kernel_getsockname +EXPORT_SYMBOL vmlinux 0x91ca8959 acpi_get_register +EXPORT_SYMBOL vmlinux 0x91d6536d __mutex_init +EXPORT_SYMBOL vmlinux 0x91dff6c7 struct_module +EXPORT_SYMBOL vmlinux 0x92026089 bio_clone +EXPORT_SYMBOL vmlinux 0x920c49ab rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x92399250 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x926bd972 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92b66e4c vfs_link +EXPORT_SYMBOL vmlinux 0x92c64fda pci_iomap +EXPORT_SYMBOL vmlinux 0x92c9b84c generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9326a7de gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x93384dea __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x934c576c cpu_present_map +EXPORT_SYMBOL vmlinux 0x93580697 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x93590a1d generate_resume_trace +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x941b9824 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x946afb6c sysctl_string +EXPORT_SYMBOL vmlinux 0x94872cd1 inet_select_addr +EXPORT_SYMBOL vmlinux 0x949335b7 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x949bce08 proto_register +EXPORT_SYMBOL vmlinux 0x94a2af3c qdisc_destroy +EXPORT_SYMBOL vmlinux 0x94b6864e user_revoke +EXPORT_SYMBOL vmlinux 0x94be1497 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x95001336 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x9504ec64 idr_get_new +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x95488580 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x9576daa5 put_tty_driver +EXPORT_SYMBOL vmlinux 0x9581344e netpoll_setup +EXPORT_SYMBOL vmlinux 0x95cc2139 __PAGE_KERNEL +EXPORT_SYMBOL vmlinux 0x95d831a5 atm_init_aal5 +EXPORT_SYMBOL vmlinux 0x95ef53e7 block_write_full_page +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x95fde4e4 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0x961ba3fe proc_mkdir +EXPORT_SYMBOL vmlinux 0x962cc8d5 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x965240e5 try_to_release_page +EXPORT_SYMBOL vmlinux 0x965a4186 blk_unplug +EXPORT_SYMBOL vmlinux 0x96604b80 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x966f3c66 aio_put_req +EXPORT_SYMBOL vmlinux 0x967f3ef8 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x96a6b2d9 fb_show_logo +EXPORT_SYMBOL vmlinux 0x96ac7384 dev_open +EXPORT_SYMBOL vmlinux 0x96b27088 __down_failed +EXPORT_SYMBOL vmlinux 0x96b48f12 sysctl_data +EXPORT_SYMBOL vmlinux 0x96f929e9 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975f8b3e ida_remove +EXPORT_SYMBOL vmlinux 0x97c20e4d atm_alloc_charge +EXPORT_SYMBOL vmlinux 0x97da59e9 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f1bf4d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x982b84a6 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98b1f5e8 del_timer +EXPORT_SYMBOL vmlinux 0x98b5af00 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x98d1e145 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x98ee965e reset_files_struct +EXPORT_SYMBOL vmlinux 0x9904e920 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x991f675f kill_anon_super +EXPORT_SYMBOL vmlinux 0x99357ca7 netdev_set_master +EXPORT_SYMBOL vmlinux 0x9941ccb8 free_pages +EXPORT_SYMBOL vmlinux 0x994bfd46 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x99597d9c inode_needs_sync +EXPORT_SYMBOL vmlinux 0x997e40f6 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x99850530 kobject_get +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99a65dd0 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99baf254 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99c9ce16 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e04d84 load_nls_default +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a3ba890 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x9a3dae2f dget_locked +EXPORT_SYMBOL vmlinux 0x9a46a116 netdev_state_change +EXPORT_SYMBOL vmlinux 0x9a49c0cd fb_set_var +EXPORT_SYMBOL vmlinux 0x9a6804a9 pci_find_bus +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a8847d6 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x9aac983a cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x9acaebe2 pnp_is_active +EXPORT_SYMBOL vmlinux 0x9ae8ea00 unregister_key_type +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b718427 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9b83cb9c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x9b9d56fa audit_log_end +EXPORT_SYMBOL vmlinux 0x9b9f9c2b bio_hw_segments +EXPORT_SYMBOL vmlinux 0x9ba7078b change_page_attr +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbe5a30 netdev_features_change +EXPORT_SYMBOL vmlinux 0x9c008409 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c262e91 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x9c29a854 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x9c4ff4cb d_alloc_anon +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c7725b4 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3ab9e6 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x9d43755c request_resource +EXPORT_SYMBOL vmlinux 0x9d72e65c pci_set_mwi +EXPORT_SYMBOL vmlinux 0x9d8747eb inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x9db48c20 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x9de9f602 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x9df0542a idr_remove +EXPORT_SYMBOL vmlinux 0x9e2dacd9 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e650251 seq_open_private +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ed9521e sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2b078c redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f75d217 sock_i_ino +EXPORT_SYMBOL vmlinux 0x9f82e057 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fde5653 wake_up_process +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0x9fecbb81 dentry_unhash +EXPORT_SYMBOL vmlinux 0x9fffb89e acpi_bus_start +EXPORT_SYMBOL vmlinux 0xa0350991 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa03d6a57 __get_user_4 +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b79e10 d_path +EXPORT_SYMBOL vmlinux 0xa0bc8b70 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xa0d186ce kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xa1030ce5 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa15caffb d_delete +EXPORT_SYMBOL vmlinux 0xa16a4305 dma_async_client_unregister +EXPORT_SYMBOL vmlinux 0xa1a6414c iowrite32be +EXPORT_SYMBOL vmlinux 0xa1b2ab9b nf_register_hooks +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1dc9ec8 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xa2049f2b ilookup5 +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2268b59 mutex_unlock +EXPORT_SYMBOL vmlinux 0xa229dc44 flush_signals +EXPORT_SYMBOL vmlinux 0xa22a07e3 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xa2553ac6 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xa2837e74 d_lookup +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa32096eb find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa3424439 tty_mutex +EXPORT_SYMBOL vmlinux 0xa34a04e1 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa35f499c cdev_add +EXPORT_SYMBOL vmlinux 0xa3611bd4 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xa36d1ad5 may_umount_tree +EXPORT_SYMBOL vmlinux 0xa395a772 kfifo_init +EXPORT_SYMBOL vmlinux 0xa3b5df76 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xa3bbcd80 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xa3c8951c __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xa3d40851 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xa40dde18 remove_suid +EXPORT_SYMBOL vmlinux 0xa41ee8a6 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa46a637a qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0xa46dc984 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xa4abb83c cpu_callout_map +EXPORT_SYMBOL vmlinux 0xa4ac58f8 vfs_readlink +EXPORT_SYMBOL vmlinux 0xa508e4c7 simple_fill_super +EXPORT_SYMBOL vmlinux 0xa509dcb7 redraw_screen +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa5482a45 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa57f0a13 bioset_free +EXPORT_SYMBOL vmlinux 0xa5832e4f generic_removexattr +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa5928176 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59c0666 acpi_strict +EXPORT_SYMBOL vmlinux 0xa5b4564e dev_alloc_name +EXPORT_SYMBOL vmlinux 0xa5c7dc73 find_inode_number +EXPORT_SYMBOL vmlinux 0xa5cd29c3 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5e633a9 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xa5e9e747 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xa63ced03 module_refcount +EXPORT_SYMBOL vmlinux 0xa6793b09 deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa6814433 groups_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a9c084 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xa6afad60 sock_wfree +EXPORT_SYMBOL vmlinux 0xa6baa34b pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xa6c64787 input_flush_device +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e170d5 I_BDEV +EXPORT_SYMBOL vmlinux 0xa6e94ebd dst_destroy +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71480ca pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xa729bf7d netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa770b803 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xa78f7f10 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xa7981c7a unregister_quota_format +EXPORT_SYMBOL vmlinux 0xa79caaf6 block_read_full_page +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7cbbe73 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xa7e1b46c gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xa7e58dd8 arp_send +EXPORT_SYMBOL vmlinux 0xa8039724 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xa8054440 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xa807130a blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xa807b741 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0xa830c6c1 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xa84f88d4 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xa8628fe3 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xa86df4c9 pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0xa8ad6bfc __nla_put +EXPORT_SYMBOL vmlinux 0xa8ba8e62 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xa8cdf58e inet_accept +EXPORT_SYMBOL vmlinux 0xa8d6e2bf pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xa8fbbde3 take_over_console +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa941e0b4 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0xa94b8fcd _write_trylock +EXPORT_SYMBOL vmlinux 0xa984725e tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa9be76e8 clocksource_register +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa233d69 kernel_read +EXPORT_SYMBOL vmlinux 0xaa287acd pcim_iomap +EXPORT_SYMBOL vmlinux 0xaa2cb6b5 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xaa34056d unlock_page +EXPORT_SYMBOL vmlinux 0xaa49d0aa generic_ro_fops +EXPORT_SYMBOL vmlinux 0xaa57ef33 ps2_init +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa96de60 inet_frag_find +EXPORT_SYMBOL vmlinux 0xaa9bd2ed d_alloc_root +EXPORT_SYMBOL vmlinux 0xaa9d70cd tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xaab06e1d sock_init_data +EXPORT_SYMBOL vmlinux 0xaac0d9b7 mca_device_write_pos +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaaf6dd81 __napi_schedule +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafe1e00 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xab407802 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab5470b7 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab863db3 xfrm_nl +EXPORT_SYMBOL vmlinux 0xab928722 do_splice_to +EXPORT_SYMBOL vmlinux 0xaba840fa request_firmware +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xac1ccdba tty_vhangup +EXPORT_SYMBOL vmlinux 0xac3a838d key_validate +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac6ed164 d_instantiate +EXPORT_SYMBOL vmlinux 0xac990e0f deny_write_access +EXPORT_SYMBOL vmlinux 0xaca04c2c textsearch_prepare +EXPORT_SYMBOL vmlinux 0xacc0dbfc acpi_get_table +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd2dc6b neigh_destroy +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf5c5d0 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad053c84 xrlim_allow +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad54ccb4 forbid_dac +EXPORT_SYMBOL vmlinux 0xada78fd0 generic_writepages +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb525f6 blk_start_queueing +EXPORT_SYMBOL vmlinux 0xadb7a023 complete +EXPORT_SYMBOL vmlinux 0xadd331d5 set_page_dirty +EXPORT_SYMBOL vmlinux 0xae9c9e44 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xaec4759f vprintk +EXPORT_SYMBOL vmlinux 0xaef59d1f nf_afinfo +EXPORT_SYMBOL vmlinux 0xaf0c9ee0 simple_link +EXPORT_SYMBOL vmlinux 0xaf25084c elv_rb_add +EXPORT_SYMBOL vmlinux 0xaf3930b2 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xaf3945c4 generic_file_open +EXPORT_SYMBOL vmlinux 0xaf519b8a __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xaf5c31b4 dma_async_client_chan_request +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xaf95aca9 seq_path +EXPORT_SYMBOL vmlinux 0xafa51d2a __alloc_skb +EXPORT_SYMBOL vmlinux 0xafba65ff textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xafe889d3 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xafefce91 vfs_mknod +EXPORT_SYMBOL vmlinux 0xaff4aa2c pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xafff6103 _write_lock +EXPORT_SYMBOL vmlinux 0xb0602ac6 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb08f76ad gen_pool_free +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bc3817 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xb0c772a8 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb100ca8f in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12a8609 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xb1523d62 skb_checksum +EXPORT_SYMBOL vmlinux 0xb1680d66 vfs_llseek +EXPORT_SYMBOL vmlinux 0xb19efb8f __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cb1056 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xb20f6ba7 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xb213788b per_cpu__current_task +EXPORT_SYMBOL vmlinux 0xb21a30a1 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xb2211a5c generic_read_dir +EXPORT_SYMBOL vmlinux 0xb222aae3 dquot_initialize +EXPORT_SYMBOL vmlinux 0xb236f093 __bread +EXPORT_SYMBOL vmlinux 0xb2780f36 mempool_alloc +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb2be638a dma_chan_cleanup +EXPORT_SYMBOL vmlinux 0xb2d4f9cf inet_put_port +EXPORT_SYMBOL vmlinux 0xb2d56e2b per_cpu__cpu_info +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3182815 dev_change_flags +EXPORT_SYMBOL vmlinux 0xb32242d3 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb32e5e70 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb37a5796 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xb37bfa41 kobject_set_name +EXPORT_SYMBOL vmlinux 0xb39026e4 mempool_resize +EXPORT_SYMBOL vmlinux 0xb397e9c8 end_that_request_last +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3e11156 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xb407b205 ioport_resource +EXPORT_SYMBOL vmlinux 0xb41f164d __lock_buffer +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb448ff2a dquot_drop +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb4589005 vm_insert_page +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb471c38c backlight_device_register +EXPORT_SYMBOL vmlinux 0xb48fd0f9 nobh_writepage +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4ae084d proc_clear_tty +EXPORT_SYMBOL vmlinux 0xb4f461a1 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xb4f68758 skb_split +EXPORT_SYMBOL vmlinux 0xb4f6ed7f do_sync_write +EXPORT_SYMBOL vmlinux 0xb5008696 generic_commit_write +EXPORT_SYMBOL vmlinux 0xb5017355 inet_shutdown +EXPORT_SYMBOL vmlinux 0xb5255c31 nf_log_register +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb57695a1 simple_write_end +EXPORT_SYMBOL vmlinux 0xb585f8f9 alloc_disk +EXPORT_SYMBOL vmlinux 0xb58e288a call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xb59ab641 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aeef94 kobject_put +EXPORT_SYMBOL vmlinux 0xb5b39c23 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xb5b9d827 kfifo_alloc +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5ed924e dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xb605d29d posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb61cae56 request_key +EXPORT_SYMBOL vmlinux 0xb65132a5 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xb6525d4b simple_set_mnt +EXPORT_SYMBOL vmlinux 0xb67650b4 d_splice_alias +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb678b6d1 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0xb67c15ba netif_carrier_off +EXPORT_SYMBOL vmlinux 0xb68cc853 open_bdev_excl +EXPORT_SYMBOL vmlinux 0xb6c2271f sock_map_fd +EXPORT_SYMBOL vmlinux 0xb6d86e86 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xb6dab7d2 ilookup +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6fd6151 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7219e63 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xb7508913 qdisc_reset +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7773c74 pci_enable_device +EXPORT_SYMBOL vmlinux 0xb7a32723 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xb7ac7cb7 dev_close +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7d06d43 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xb80aa519 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xb8183862 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xb820ae64 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb844224f unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xb8445a9f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xb852314c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb868206f unlock_super +EXPORT_SYMBOL vmlinux 0xb86a2ee6 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xb86e1fe2 sget +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb883d08d __netif_schedule +EXPORT_SYMBOL vmlinux 0xb8995b26 mca_device_claimed +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb89eb388 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb8b07030 block_write_end +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8f0273d nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb90629e6 set_trace_device +EXPORT_SYMBOL vmlinux 0xb9404cbe pci_reenable_device +EXPORT_SYMBOL vmlinux 0xb945f98c dma_pool_free +EXPORT_SYMBOL vmlinux 0xb9764a5b dev_load +EXPORT_SYMBOL vmlinux 0xb979b0ea fsync_bdev +EXPORT_SYMBOL vmlinux 0xb9c1f853 serio_open +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xb9efbbcd seq_release +EXPORT_SYMBOL vmlinux 0xba034c96 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xba081b73 sock_no_poll +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba30f72e input_unregister_device +EXPORT_SYMBOL vmlinux 0xba472e82 input_close_device +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba66bd58 register_atm_ioctl +EXPORT_SYMBOL vmlinux 0xbaadbd11 __wake_up +EXPORT_SYMBOL vmlinux 0xbb10cb48 sock_i_uid +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1b8e09 kobject_del +EXPORT_SYMBOL vmlinux 0xbb2535ac unregister_con_driver +EXPORT_SYMBOL vmlinux 0xbb3706f0 register_chrdev +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6efa09 vc_lock_resize +EXPORT_SYMBOL vmlinux 0xbb735ead __sk_dst_check +EXPORT_SYMBOL vmlinux 0xbb7f3b4d ps2_handle_response +EXPORT_SYMBOL vmlinux 0xbb86efdd get_user_pages +EXPORT_SYMBOL vmlinux 0xbb9936b8 dquot_transfer +EXPORT_SYMBOL vmlinux 0xbbc0bb91 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbf3737f free_buffer_head +EXPORT_SYMBOL vmlinux 0xbc35ac3f nf_hook_slow +EXPORT_SYMBOL vmlinux 0xbc449819 key_revoke +EXPORT_SYMBOL vmlinux 0xbc4cf9b4 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xbc87adcf __find_get_block +EXPORT_SYMBOL vmlinux 0xbc89d9ae security_d_instantiate +EXPORT_SYMBOL vmlinux 0xbca09dc7 idr_pre_get +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbd09aff4 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xbd0b1b74 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xbd9d4284 pci_disable_device +EXPORT_SYMBOL vmlinux 0xbdbdb292 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xbdc60f61 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xbdd0b794 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0xbdeaf41a percpu_counter_init +EXPORT_SYMBOL vmlinux 0xbe0b553c vfs_readdir +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe390a00 register_netdevice +EXPORT_SYMBOL vmlinux 0xbe53d094 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xbea78ac6 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xbedd4ade cpu_online_map +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef5fe20 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbeff8b82 inet_listen +EXPORT_SYMBOL vmlinux 0xbf005518 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbfa4b78e proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xbfa9ea1d input_register_handler +EXPORT_SYMBOL vmlinux 0xbfde00a9 serio_close +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc02762d9 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc062a341 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xc089964a pcim_pin_device +EXPORT_SYMBOL vmlinux 0xc0bbad34 pci_dev_get +EXPORT_SYMBOL vmlinux 0xc0bc055f tty_devnum +EXPORT_SYMBOL vmlinux 0xc0dd473c __break_lease +EXPORT_SYMBOL vmlinux 0xc0e1d122 unlock_buffer +EXPORT_SYMBOL vmlinux 0xc0fa04aa _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xc123bd55 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xc1502f1f pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xc168d4ac blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xc18a9519 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xc18fa639 d_namespace_path +EXPORT_SYMBOL vmlinux 0xc2054a6a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xc2225877 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xc2480865 register_snap_client +EXPORT_SYMBOL vmlinux 0xc24d6af3 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0xc24e013a k8_northbridges +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc298fb6e vfs_follow_link +EXPORT_SYMBOL vmlinux 0xc29ad9cc lease_get_mtime +EXPORT_SYMBOL vmlinux 0xc2b13e92 d_move +EXPORT_SYMBOL vmlinux 0xc2b16e8c genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xc2cc0ffe ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e3b7a6 pci_request_regions +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc31ff8e5 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xc332b701 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xc3406b6b del_gendisk +EXPORT_SYMBOL vmlinux 0xc3508b79 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc359ec0d rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xc35d089e dev_get_by_name +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3d990fc __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc43866ba pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0xc45835a1 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xc479bd5f blk_start_queue +EXPORT_SYMBOL vmlinux 0xc495e475 kthread_create +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4bc0608 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xc518101e xfrm_lookup +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc55172ea tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0xc5cc7015 locks_init_lock +EXPORT_SYMBOL vmlinux 0xc5e3647e blk_get_queue +EXPORT_SYMBOL vmlinux 0xc5e85ca3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xc5ed660b xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xc5f6d16d rtnl_notify +EXPORT_SYMBOL vmlinux 0xc61176cc llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xc62db06f call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0xc63bb504 bdget +EXPORT_SYMBOL vmlinux 0xc649c505 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xc66eaf68 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xc672dc36 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xc6a7b1ad tcp_shutdown +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6b7e685 iget_locked +EXPORT_SYMBOL vmlinux 0xc6c5c1e9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xc6f77303 blk_put_request +EXPORT_SYMBOL vmlinux 0xc7021062 single_open +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c4d3d1 sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0xc7e64c00 sync_inode +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc88c75f8 mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8be7b15 _spin_lock +EXPORT_SYMBOL vmlinux 0xc8c4d4ef nf_reinject +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc8e8482b simple_sync_file +EXPORT_SYMBOL vmlinux 0xc8f7aba9 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xc927aabd xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xc966d31c div64_64 +EXPORT_SYMBOL vmlinux 0xc98bf04f ip_route_input +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b27289 rtc_control +EXPORT_SYMBOL vmlinux 0xc9d3bff2 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xc9d8e50a kunmap_high +EXPORT_SYMBOL vmlinux 0xc9f8d42f tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xc9fd878f acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xca12ddc0 idr_init +EXPORT_SYMBOL vmlinux 0xca199165 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xca576f73 skb_make_writable +EXPORT_SYMBOL vmlinux 0xca6c95f8 acpi_get_name +EXPORT_SYMBOL vmlinux 0xca7c17c8 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8df7fd ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xcaa9cf16 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xcb08db90 bio_alloc +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb3c11dd tty_name +EXPORT_SYMBOL vmlinux 0xcb4bf1dc simple_release_fs +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb83f112 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xcb85b61d proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xcba67a79 iget5_locked +EXPORT_SYMBOL vmlinux 0xcbda5a08 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcbe16de7 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xcc07d61e tty_set_operations +EXPORT_SYMBOL vmlinux 0xcc11b3fd skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc4bf1ad __free_pages +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc50b2ff filp_close +EXPORT_SYMBOL vmlinux 0xcc52e18a new_inode +EXPORT_SYMBOL vmlinux 0xcc5c47bd acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc983cae _write_lock_irq +EXPORT_SYMBOL vmlinux 0xccd14d46 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xcd078aeb arp_find +EXPORT_SYMBOL vmlinux 0xcd0e5300 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xcd276853 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xcd738701 module_put +EXPORT_SYMBOL vmlinux 0xcdc83d0a input_open_device +EXPORT_SYMBOL vmlinux 0xcde5465f inetdev_by_index +EXPORT_SYMBOL vmlinux 0xce045124 km_waitq +EXPORT_SYMBOL vmlinux 0xce06f37a schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3cc4c0 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xce3cd653 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce735ff7 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xce85abf3 inet_getname +EXPORT_SYMBOL vmlinux 0xceb78dec security_inode_permission +EXPORT_SYMBOL vmlinux 0xceef537f copy_io_context +EXPORT_SYMBOL vmlinux 0xcef1c6bf kmem_cache_size +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf047c83 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0xcf09f163 atm_dev_deregister +EXPORT_SYMBOL vmlinux 0xcf0a1871 get_empty_filp +EXPORT_SYMBOL vmlinux 0xcf2dca36 get_super +EXPORT_SYMBOL vmlinux 0xcf3e431b pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xcf4431dd __breadahead +EXPORT_SYMBOL vmlinux 0xcf47e392 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xcf6aa22e kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0xcf900175 arp_xmit +EXPORT_SYMBOL vmlinux 0xcfb13925 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xcff9b2c6 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0231c1b misc_deregister +EXPORT_SYMBOL vmlinux 0xd023d419 deactivate_super +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd068a399 register_exec_domain +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0a92e75 pci_remove_rom +EXPORT_SYMBOL vmlinux 0xd0c4c9b6 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xd0cbfa55 pci_find_device +EXPORT_SYMBOL vmlinux 0xd0cebd7b uart_add_one_port +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f9a308 seq_lseek +EXPORT_SYMBOL vmlinux 0xd0fd74eb get_io_context +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd15f1032 __bio_clone +EXPORT_SYMBOL vmlinux 0xd16ac615 __get_user_1 +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a5ffa9 avail_to_resrv_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd1c4e525 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xd1cefb9a pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f91bcd dev_base_lock +EXPORT_SYMBOL vmlinux 0xd1fa4f3c generic_getxattr +EXPORT_SYMBOL vmlinux 0xd1ff5c55 cdev_alloc +EXPORT_SYMBOL vmlinux 0xd21da65a blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xd23037dd cfb_imageblit +EXPORT_SYMBOL vmlinux 0xd24c386d idr_for_each +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27273d1 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xd2825ce5 bio_map_kern +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd32a65e8 __init_rwsem +EXPORT_SYMBOL vmlinux 0xd3367d51 cont_write_begin +EXPORT_SYMBOL vmlinux 0xd338d5df netif_rx +EXPORT_SYMBOL vmlinux 0xd34f0c62 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd3544070 uart_match_port +EXPORT_SYMBOL vmlinux 0xd36f7bb0 __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0xd384dc3d nla_put +EXPORT_SYMBOL vmlinux 0xd390279c sk_dst_check +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3cae334 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xd3d66d13 nobh_write_end +EXPORT_SYMBOL vmlinux 0xd3f60824 bioset_create +EXPORT_SYMBOL vmlinux 0xd4033c22 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xd413a64c sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xd4315ccc bmap +EXPORT_SYMBOL vmlinux 0xd47e93d6 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xd4b03916 tty_register_driver +EXPORT_SYMBOL vmlinux 0xd4bbdc24 __read_lock_failed +EXPORT_SYMBOL vmlinux 0xd4e1c73f key_type_keyring +EXPORT_SYMBOL vmlinux 0xd504694a scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd52f77c4 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0xd5310cb6 search_binary_handler +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd5a8a856 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5faf22e pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd63e515a d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xd6875fa3 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xd6a44326 block_truncate_page +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6bb143d do_splice_from +EXPORT_SYMBOL vmlinux 0xd6ca80d0 ida_pre_get +EXPORT_SYMBOL vmlinux 0xd6cab387 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xd6d13281 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd729a6ce register_filesystem +EXPORT_SYMBOL vmlinux 0xd72a971a cfb_copyarea +EXPORT_SYMBOL vmlinux 0xd776cac2 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7b7402b release_sock +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e7ca24 wake_up_bit +EXPORT_SYMBOL vmlinux 0xd8190e46 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xd84a4fd4 ida_destroy +EXPORT_SYMBOL vmlinux 0xd8531235 flush_old_exec +EXPORT_SYMBOL vmlinux 0xd85a5c53 simple_empty +EXPORT_SYMBOL vmlinux 0xd87034b1 vfs_getattr +EXPORT_SYMBOL vmlinux 0xd8840dd0 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd9170a8e dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xd9356898 should_remove_suid +EXPORT_SYMBOL vmlinux 0xd9390fba nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xd94bc67c f_setown +EXPORT_SYMBOL vmlinux 0xd94c1770 acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98c67ef netlink_broadcast +EXPORT_SYMBOL vmlinux 0xd9919b78 kernel_accept +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c594d2 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xda06fa33 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1c5725 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xda1cee68 give_up_console +EXPORT_SYMBOL vmlinux 0xda25c280 alloc_trdev +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda448158 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xda4816a2 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xda4ff700 set_device_ro +EXPORT_SYMBOL vmlinux 0xda6704d3 pnp_resource_change +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xdaadaee4 fput +EXPORT_SYMBOL vmlinux 0xdab521d2 skb_over_panic +EXPORT_SYMBOL vmlinux 0xdb0eabe3 bio_pair_release +EXPORT_SYMBOL vmlinux 0xdb10458e kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xdb42cf5c write_one_page +EXPORT_SYMBOL vmlinux 0xdb53ede2 vfs_readv +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb9f433a qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc01a06e find_next_zero_bit +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc46b578 elv_rb_find +EXPORT_SYMBOL vmlinux 0xdc719663 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xdc873a70 screen_info +EXPORT_SYMBOL vmlinux 0xdc8c0089 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xdccb9f12 llc_sap_find +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd35045e pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xdd60d270 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd890709 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xdda3464e inode_double_lock +EXPORT_SYMBOL vmlinux 0xdda9923c ida_get_new +EXPORT_SYMBOL vmlinux 0xddd36adf sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xdde21a34 kill_litter_super +EXPORT_SYMBOL vmlinux 0xddea44ed iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xddf3c846 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xde464bde __kill_fasync +EXPORT_SYMBOL vmlinux 0xde5ade86 touch_atime +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xded4c9d7 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xdef5c4a5 idr_destroy +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf487f0b do_sync_read +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6cc7b9 find_get_page +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfc6509e register_key_type +EXPORT_SYMBOL vmlinux 0xdfe03ce2 dev_get_flags +EXPORT_SYMBOL vmlinux 0xe032bb33 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xe0587b6a tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xe092c073 kobject_init +EXPORT_SYMBOL vmlinux 0xe09ffe65 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0ee512c vfs_quota_sync +EXPORT_SYMBOL vmlinux 0xe1233bf0 sync_blockdev +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1415637 console_stop +EXPORT_SYMBOL vmlinux 0xe14790da ipv4_specific +EXPORT_SYMBOL vmlinux 0xe14824ab d_prune_aliases +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1846151 put_disk +EXPORT_SYMBOL vmlinux 0xe1929941 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xe196d100 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xe1b81f60 register_gifconf +EXPORT_SYMBOL vmlinux 0xe1c3e85e pneigh_lookup +EXPORT_SYMBOL vmlinux 0xe1c6fa9e inet_ioctl +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1e2fac2 llc_add_pack +EXPORT_SYMBOL vmlinux 0xe2021c7c shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xe234f7c6 dev_unicast_add +EXPORT_SYMBOL vmlinux 0xe23f2b27 poll_freewait +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe251c08f generic_permission +EXPORT_SYMBOL vmlinux 0xe252293b blk_remove_plug +EXPORT_SYMBOL vmlinux 0xe25d57fe default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xe26c73b5 seq_escape +EXPORT_SYMBOL vmlinux 0xe27ce161 devm_iounmap +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2f57402 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe32c3b77 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xe33e990c dcache_readdir +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe35a9d0d register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0xe368e363 register_framebuffer +EXPORT_SYMBOL vmlinux 0xe36ef4c7 skb_store_bits +EXPORT_SYMBOL vmlinux 0xe37c5dda filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xe39b836a kernel_getpeername +EXPORT_SYMBOL vmlinux 0xe3cff773 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xe41f649f zero_fill_bio +EXPORT_SYMBOL vmlinux 0xe42d2c98 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe456da13 sk_free +EXPORT_SYMBOL vmlinux 0xe45e39dd follow_up +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe499a9fe module_remove_driver +EXPORT_SYMBOL vmlinux 0xe49f6123 vfs_read +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe55b4859 close_bdev_excl +EXPORT_SYMBOL vmlinux 0xe55f7bc5 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe5729b0a udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe576bd11 seq_putc +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57a2de3 eisa_bus_type +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a02b1e blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xe5c772b7 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e2b98f skb_truesize_bug +EXPORT_SYMBOL vmlinux 0xe5ee21be register_binfmt +EXPORT_SYMBOL vmlinux 0xe603a795 inode_setattr +EXPORT_SYMBOL vmlinux 0xe620f39c pci_select_bars +EXPORT_SYMBOL vmlinux 0xe6411b9e blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xe682d6b2 blk_init_tags +EXPORT_SYMBOL vmlinux 0xe6a7cb48 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xe6cf81e4 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xe6d33c0a dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xe6ef3c8c alloc_disk_node +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe72df5ec tcp_child_process +EXPORT_SYMBOL vmlinux 0xe747545f ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xe7919290 mnt_pin +EXPORT_SYMBOL vmlinux 0xe7a18bf2 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xe7bcd404 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7da5868 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe80d370d tcf_exts_change +EXPORT_SYMBOL vmlinux 0xe83262d6 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xe8392618 module_add_driver +EXPORT_SYMBOL vmlinux 0xe859dd9b add_to_page_cache +EXPORT_SYMBOL vmlinux 0xe868af29 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xe8c2a875 elv_rb_del +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8eea2f1 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xe8f4fbdf sock_no_mmap +EXPORT_SYMBOL vmlinux 0xe8f5efee call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0xe907734b xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xe9147905 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe92a00e0 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe965838e __ht_create_irq +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe98e03fb blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0xe9bb18f3 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xe9d944eb ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb23e315 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xeb36a14e tcf_hash_create +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb9380f7 d_validate +EXPORT_SYMBOL vmlinux 0xeb939d97 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xebd4ac07 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xebfb5d7f mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xec0137c4 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xec337a39 ip_fragment +EXPORT_SYMBOL vmlinux 0xeca7addb set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xecd06a54 proc_root_driver +EXPORT_SYMBOL vmlinux 0xece0c068 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xed2aedc8 skb_copy +EXPORT_SYMBOL vmlinux 0xed45ab86 acpi_bus_add +EXPORT_SYMBOL vmlinux 0xed5b1c3f block_prepare_write +EXPORT_SYMBOL vmlinux 0xed633abc pv_irq_ops +EXPORT_SYMBOL vmlinux 0xed9003ef pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xeddfe49d rtc_unregister +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee35a75c generic_osync_inode +EXPORT_SYMBOL vmlinux 0xee5611f8 eth_type_trans +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee9a9f93 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef6db85f acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xef79ac56 __release_region +EXPORT_SYMBOL vmlinux 0xef9598cf down_read_trylock +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefbddbc0 bio_endio +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xeffc935c generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0076e30 get_sb_single +EXPORT_SYMBOL vmlinux 0xf03baa7a __devm_release_region +EXPORT_SYMBOL vmlinux 0xf066600f __write_lock_failed +EXPORT_SYMBOL vmlinux 0xf08e6ea8 vfs_permission +EXPORT_SYMBOL vmlinux 0xf0b48b20 dentry_open +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0bcc0b3 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0xf0c7cc95 down_read +EXPORT_SYMBOL vmlinux 0xf0e74350 skb_find_text +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf1022313 generic_fillattr +EXPORT_SYMBOL vmlinux 0xf13fc8d6 _read_lock_irq +EXPORT_SYMBOL vmlinux 0xf14305a7 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1794c1f inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xf18994ac rtnl_unicast +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19958b7 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xf19c2b5e key_put +EXPORT_SYMBOL vmlinux 0xf1d68a79 kobject_unregister +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20169da dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xf202f537 _read_unlock +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2259496 generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a51f0e pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2bdd689 subsystem_register +EXPORT_SYMBOL vmlinux 0xf2be44ca __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f39ba6 register_nls +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31a32ca sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xf31c3760 bd_set_size +EXPORT_SYMBOL vmlinux 0xf31ece58 secpath_dup +EXPORT_SYMBOL vmlinux 0xf329a906 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xf32d2678 schedule_work +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf33b17bb bdevname +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf350b6db set_bdi_congested +EXPORT_SYMBOL vmlinux 0xf359171e ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xf35bbbb4 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xf38c1443 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c9f870 pci_map_rom +EXPORT_SYMBOL vmlinux 0xf3d141b4 __brelse +EXPORT_SYMBOL vmlinux 0xf3d71193 set_disk_ro +EXPORT_SYMBOL vmlinux 0xf3d9d220 dump_trace +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf47d47e0 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xf48166b4 sk_alloc +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4ac4f53 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xf4c124ca ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xf4d9597d fb_get_mode +EXPORT_SYMBOL vmlinux 0xf4e8fcc0 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf53c1351 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5e3f041 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xf61ddfa0 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xf628e5dc bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xf62bbff5 tty_register_device +EXPORT_SYMBOL vmlinux 0xf63f0c50 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf6aab5a3 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xf6b36da2 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c1500c xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xf6c4c475 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xf6e0e400 _read_trylock +EXPORT_SYMBOL vmlinux 0xf6ebac12 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf711a262 mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xf71d4f67 generic_write_checks +EXPORT_SYMBOL vmlinux 0xf72b829e uart_get_divisor +EXPORT_SYMBOL vmlinux 0xf73049de uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xf736bc17 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7f1b74a current_fs_time +EXPORT_SYMBOL vmlinux 0xf7fcb1f7 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0xf828fdc3 freeze_bdev +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82b5e53 no_llseek +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf82f48fc acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xf8422784 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0xf86ff62a __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf88b7f06 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8b8c487 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xf90ba04a d_genocide +EXPORT_SYMBOL vmlinux 0xf90d6e9c rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xf95a0e97 input_release_device +EXPORT_SYMBOL vmlinux 0xf977b0a3 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0xf9802829 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xf9979aec find_task_by_pid +EXPORT_SYMBOL vmlinux 0xf998e3fc generic_setlease +EXPORT_SYMBOL vmlinux 0xf9a02b7b _write_unlock +EXPORT_SYMBOL vmlinux 0xf9a12fb3 skb_queue_head +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a84a59 tcf_register_action +EXPORT_SYMBOL vmlinux 0xfa2dbb10 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xfa5c48ba __wake_up_bit +EXPORT_SYMBOL vmlinux 0xfa5f0ed3 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xfa6ff15e unregister_snap_client +EXPORT_SYMBOL vmlinux 0xfa90d493 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xfa9a880e page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xfaaa1efd blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb8d396c wireless_spy_update +EXPORT_SYMBOL vmlinux 0xfb8e095d simple_getattr +EXPORT_SYMBOL vmlinux 0xfb9dcbdd qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xfba0c2e0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xfbf89ee7 wireless_send_event +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc00436c inet_release +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc12fae5 put_files_struct +EXPORT_SYMBOL vmlinux 0xfc1e781d unregister_netdevice +EXPORT_SYMBOL vmlinux 0xfc27f1d9 tcp_unhash +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc418dfc d_alloc +EXPORT_SYMBOL vmlinux 0xfc4af9f6 devm_ioremap +EXPORT_SYMBOL vmlinux 0xfc7052a6 bdput +EXPORT_SYMBOL vmlinux 0xfc7183c6 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xfc750a69 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0xfcb8b131 idr_find +EXPORT_SYMBOL vmlinux 0xfcc9695b task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcdf1f48 get_sb_bdev +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd03f1cd _read_unlock_irq +EXPORT_SYMBOL vmlinux 0xfd081398 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xfd0929ea dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xfd1bc2ce remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xfd23e65c elv_next_request +EXPORT_SYMBOL vmlinux 0xfd25a455 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xfd44d7e4 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xfd5cc237 input_free_device +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfd99e025 subsys_create_file +EXPORT_SYMBOL vmlinux 0xfda373e7 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xfdab2b9c rtc_register +EXPORT_SYMBOL vmlinux 0xfde12913 sk_wait_data +EXPORT_SYMBOL vmlinux 0xfdea6b81 elevator_init +EXPORT_SYMBOL vmlinux 0xfe1c8352 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xfe33fabc blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xfe3ee570 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xfe510e30 simple_unlink +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9444a8 end_that_request_first +EXPORT_SYMBOL vmlinux 0xfeba9e2a d_find_alias +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff4a6a62 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xff643baf pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff990034 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb17d78 pci_match_id +EXPORT_SYMBOL vmlinux 0xffc66fc9 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdc1f0d __first_cpu +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x16836e04 speedstep_detect_processor +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x4cdb4bd0 speedstep_get_processor_frequency +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd494ee54 speedstep_get_freqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0271ae88 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06575749 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x069957fb kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08fea262 kvm_lapic_find_highest_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0aee0bff kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x142bea57 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x159ff1e1 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x17085765 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1815994e kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x184808e3 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20963ab2 kvm_create_lapic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2132d577 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x23124a15 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2dce5d4d fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f6305c1 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d634e9c kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43155d18 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f72f9b2 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5023a9ad kvm_lapic_get_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53f3003a kvm_timer_intr_post +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56d0f0b6 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5981c4b3 kvm_lapic_reset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x677d3fa9 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6c37e643 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6c959b7c kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x71a81fec kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b5e91ae kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x808fe0d8 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x812ea58d kvm_load_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82431779 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a7f3eee kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8bf1e048 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e7f9b47 segment_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9182f55d kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96218148 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99864dfd kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d06f66b kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6cae17c kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0108c14 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb229beaa kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8d29cb4 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbcb50b88 kvm_put_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbdf06afa emulator_read_std +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc0676abc kvm_emulate_pio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc4ba394f kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5509dd2 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6949fb3 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xca91ada4 kvm_emulate_pio_string +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce7cd968 kvm_lapic_enabled +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd6b81438 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf0c044d kvm_lapic_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe3b48482 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeae96ff0 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec05e994 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf32df52a kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf42f683d kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf891e02a kvm_get_cr8 +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x59e28cbb crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0xd462735f crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x1d87d397 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x05054ac0 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x13d01caa async_tx_run_dependencies +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5e10afc2 async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6b4a6db2 async_tx_issue_pending_all +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7c5338f8 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc8c6020c dma_wait_for_async_tx +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x02681025 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xf173d3a0 async_xor +EXPORT_SYMBOL_GPL crypto/blkcipher 0x842cb498 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0xa4b4a034 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0xc191fc92 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0xcde193e0 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0xdf2b3581 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/twofish_common 0xd6001d5e twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/bay 0xaa9fd641 eject_removable_drive +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x2611fbee register_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x09419381 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x817cf418 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x9a98d3f7 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xfab6c9b9 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x082c8319 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a963e58 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b22f325 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0dd03f83 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0df4558b ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0e1d6f81 ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1105f059 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x16c6ead6 ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x17cb0bc6 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x18f78613 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1bafd3d2 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d3fc72c ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1db88343 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2069331f sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2107edbe ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0x211b2264 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x25c50715 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x26d4d4e8 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2a4e3513 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2eaa43a0 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3520a63a ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x36af5caa ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3888768e ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x38d8b902 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x38eb2342 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3c5f5c1e ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x40e4b8c5 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4439360e ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45f9d4ad sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x46f533df sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4795f61d ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4933f451 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4cc9c1be ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fa03a2e ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x52244e18 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x53bf5d0a ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x54049f10 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x599e0efc ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5f534602 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5fffd4e8 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x62f6a688 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6328af16 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6a4191ff ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6c756b82 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6efae98d ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x70bfcc02 ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x72e2d891 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7307062d ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x76bf1217 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7a027729 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7a6d3405 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7dd6457b class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7ded7bcd ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fec214e ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x82102b80 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x848e59f5 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x871beb09 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x87859d7f ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x880d7533 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x891aa774 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8aaf8ee7 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b3b28f6 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8c5b8a40 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8dc8de42 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e9b1e24 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x93189e09 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x93eaa8f2 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x943f006a sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97915d70 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x98d1bd2e ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x990ed6e6 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9b81d740 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9d359078 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e2a723c ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f9315d8 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa0230295 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2e31ffd ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2fc2d9e ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa3005831 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa31b062a ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4b80601 ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa5c2e0af ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa5cbd601 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa622febf ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa75e2652 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa7d5f632 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa89ca380 ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa06860c sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xab050e2b ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xac9b0a3e ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaded9008 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb16f0cb3 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb4e830c3 ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb5acb5b9 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6a0ac83 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbc73d44d ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbcf2829e ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbd66c0c0 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc02f847e ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc595479e ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc6dd3242 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc7aee765 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc84ac3de ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcd2c1052 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcea63ea4 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd0efb63a ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3a2da51 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd4fc7dd8 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5a413af ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd62f2075 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd8263afd ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdb655802 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdca2d2c4 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe7c28f78 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeac57c1b ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0xece5725a ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0xed313ed4 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3945669 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf7c34a51 ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfcb1de5b ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfd64b811 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfe51e4b9 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0xffc94c5d ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xd5f872e1 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x520dc76b agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xdab546af agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x06efa104 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0a26e717 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0e9c156f tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x14229b82 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x24d48a2b tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x34a4b044 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x36b1c555 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3ac58941 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3d089acd tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3e049f98 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4f3e8a82 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6c609147 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9c47e1c5 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa9f5fd5a tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaf7e4cda tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb09cc985 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb28ecd93 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xba4359e6 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc70e5f40 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdb18ac1e tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xeb8ead7f tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf60a6cea tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x127868d6 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x720e2f07 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x25812eac cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x735885a3 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x817fc844 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xce1950ff cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL drivers/dca/dca 0x245dc152 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2d7bb6bd dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8a629a27 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x98f079ca register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9de510ba free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xea9924cd unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x092f45f3 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x12144ca1 edac_pci_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1ed44b32 edac_device_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x27619344 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2c05b712 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x390724a1 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x492e4ff5 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5f2e84c2 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6aaed009 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8a0fc979 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8c8c8bde edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9cf62501 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa9f1ce74 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xad40f56a edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb647f5bf edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb6cfe418 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb9ea096c edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc3adb672 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc7b41928 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd06bcbdb edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe2a41d20 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe65bc072 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe6cfd43f edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf1262284 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf7d67cab edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfe53e58c edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00307478 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x35b27760 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4d47adeb hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5752831f hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x74dc0ba4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7576bb5d hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x780188d3 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7a154b8b hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x800d808c hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb217c956 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb7e2fee0 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc9fac757 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfba9d455 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x338ea616 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x32361d72 i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x5ba33cbe i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xa0c34f36 i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xa8315dfb i2c_new_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x01502a9b ide_acpi_exec_tfs +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0bd6a6b2 ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0f39657a __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1a52f34f __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1e331918 ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x21a2dc45 ide_acpi_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3801079e ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3ce435ba ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4aabebcc ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5ab38f0a ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x60d02b6c ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x662e2284 ide_acpi_push_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x69e6bc2c ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6afc329e ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6cbd5647 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7268661e ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7657be4b ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x85b4d247 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x86132add ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8f60fc1f ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x916947d1 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x96989f1d ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x9e1cf6b2 ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa16bd9e7 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xabb32d89 ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb67551df ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc59213ae ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc7625d8a ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc96f0a80 ide_acpi_get_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd4ad41d4 ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xdcc0a44d ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xddf46297 ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xedb47688 ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xfa44a016 ide_set_pio +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x17f98295 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe67e79b6 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xb18eccc4 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0c820939 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1097cfdd gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x11d846fe gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x13da0cf2 gigaset_unassign +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x14511aa7 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f665904 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x38df8326 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x73b84a12 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x753c9bf8 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x77d122e1 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7fb55071 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9125e4b2 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa0e859ef gigaset_getunassignedcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xace70df1 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb8514278 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcc2cfe2e gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf7514e4e gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf8b28ae4 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x63d5f77f led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x65ae950e led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x87101f39 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xec3c169a led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x09546b2b dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x0b0a4336 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x1732cabc dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x501f7305 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x5408f84c dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x58ec851b dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xa85cfe91 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xd45be1ce dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x0ee507e3 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x196cc609 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x1add2bc7 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x889af320 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb99cdf39 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd590d02e dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5ff225e0 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x90a807e5 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xac74ad52 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xdc9f1463 md_do_sync +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x27c1761f ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x483ab7d1 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x68d3004b ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2a4799e4 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x43ef0aec saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x60a55837 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaf1d0795 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb1085ccd saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb902f2f5 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbc6cf14c saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdfd423a5 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xec1f2af0 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf11f46fb saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf14ddd15 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x18be9fb4 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x65c53923 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x77592e9c saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7c17c837 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xa73b6190 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc0523e0d saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf2e3fb43 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x06a78a25 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x3b485547 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4bcdd9c9 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x797ff762 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa7a24654 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xadbdf0f7 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb12275e3 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0xb0c5f95b v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x5b467c9d get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xc33ae8ab get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x30027088 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x556ff12f saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x3a5e0f27 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x6e102339 tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x75e8ff73 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x7cdf91e5 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x80cc65d9 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xbbbacc18 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xc9c65b7d simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc5675416 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xfcc13bc2 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0d2c52fa videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x129ed8c8 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1f7a2753 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2b761f61 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x331c52d4 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3737bc24 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4404a0f3 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x46018be4 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x77e91aef videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7cc6c84a videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x81af9e9d videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x843877d5 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8541f9e6 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9669dd09 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f30ca30 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa1319440 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb2c9af76 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbb701e7f videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbda6898b videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcd092a6e videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd3bf769a videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd8c6404c videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xefdbd609 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0a28c18d videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x14b4d112 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4acf1788 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5ec35c5f videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7169224c videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8c824c8c videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9c84f9fd videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa4a1d4ca videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb88a5f88 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xca2e9d59 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xcc8a6d22 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xced2ad4d videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd45765bd videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe26440dc videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x2e712782 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x3f47f9ba videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xe534d0f8 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x172a7fb2 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2d4ee9a9 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x641488e3 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8939ef6c sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf5e998bd sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf6963e26 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x088d2304 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0f50747f sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0f97df3b sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x185e04d0 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x24f0c959 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2c138e13 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x51c4ae82 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x63cf30e7 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x879cc175 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8ca3fea7 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9ccabe92 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9f2020e1 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa775e7bd sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbe3c2f9a sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcbfe4a83 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd387dbc2 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd43c71e1 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe37554bc sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf0a2c6a0 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfa1beb3f sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfcb1a71d sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x3cbd066a cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xb6f1825a cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xeb0bb8c3 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf0779556 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x85d30376 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x89c18b9a DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xbb37527b DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x3a213378 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x156230de del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x291f94bd mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x29599845 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x31efc7af unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38713b52 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x394b5e60 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x71cde486 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x86829ffa get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae896305 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb35f772b get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbeca7305 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd6d98db0 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdc56bd64 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdf1947b1 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe01ec73b register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe9d7cd8d put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x047e0ede deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x09769bdb register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x1b838fe4 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf6c2acd7 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x241414fa nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x336af5e8 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x510d7af8 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x5ff1b0ae nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x819a01ed nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x662e9795 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x6f8c2b90 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1bbfb46f ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1e0a6bb9 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3b49d17c ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8181c6d4 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8196ee07 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9b6382bf ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb016162a ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb8c8e236 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc4d74525 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5f1f6a5 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0669ac78 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0801a5e3 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e51f8b7 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x11169d86 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1479f155 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x221fe69c mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x230639f2 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x28e35ded mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b2e3b14 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x33a05b8e mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e7ccb7e __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4b778bb8 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5964ecaf mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6174ccd0 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x63110389 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x692d4764 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7067be45 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x71c412a8 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7b253cf9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7ddd28d9 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8375ca49 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8d072fe9 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9703fc80 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa251ac19 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa3d799b5 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa456fb46 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaa959334 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xadab9d1e mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb43184c0 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbad4c139 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf7e20c8 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe18699b2 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe4cb4a41 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe5ef6178 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe93b7bdf mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xee80da03 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf223aa4d mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf608d8da mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf624ad25 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb0907b3 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x70b315e2 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xcd219974 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x13f768d0 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x25d35fd2 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x502a99be usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6b0e32de usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6e2ec258 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7d3efe19 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fa4d32f usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa4b841e7 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xac473f43 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdf18a4f7 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe56ea993 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe8741d9b usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeefd10f0 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf392d14d usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8eede2d usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x16f59f20 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x27eb697c libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x634b9745 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x821cc096 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8531a49e libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa703e3b1 libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa837d3f2 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb1e23069 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbb606dad libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe10610c2 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfd2714df libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x795b3c6e p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xa20e797e p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xdee857c6 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xe602f032 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xfaacb3cb p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1d9f9454 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x250f3fa2 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d136e98 rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4a8b0cea rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x621d1bd9 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x830822da rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x855dbe9d rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90f9f99b rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9826c47b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa8e51558 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab3a7db7 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba1f9455 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf790cf7 rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc23f741d rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5d3b8c2 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd7ae3944 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xecce9f89 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf6908c19 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf703bb1b rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfe315fb1 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0d61090e rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3ac7016d rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x410b6a24 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x59a4c28d rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x78731f4d rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa60ccf0f rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa95d0fa4 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xac4fb655 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf9e22c50 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0fa85370 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x47564b82 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x897d7f30 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd354660f rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdca66632 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe1c8a059 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xea5bdc79 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xef49f55c rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xef7f2819 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf07ac868 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfdb8e379 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x2f48db87 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xe81255e3 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ad3b491 acpi_root_bridge +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x2538eb18 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x38967022 acpi_get_hp_params_from_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x5284ef0c pci_hp_register +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x780c8520 pci_hp_deregister +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xaeea0069 acpi_run_oshp +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xb9710e92 cpci_hp_register_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xbc23f3db pci_hotplug_slots_subsys +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xccf9700c pci_hp_change_slot_info +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xd5723624 cpci_hp_register_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xede355e4 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x12399563 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x4a79e3c0 rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x53973fdc rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x60348a5d rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x63df9a83 rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x843ad83a rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x8f0ca5f5 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x991989fe rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xa39dd24b rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xa614125e rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb4659241 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc5b123c2 rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xee67f17a rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xf518f5bb rtc_device_register +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04fb6fad iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06a0ec99 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x193ba052 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x380d7205 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e33b999 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40cede6d iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5ee7942f iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70239797 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x74ca950b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x805d9502 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84a89570 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c662e78 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8dee2881 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x93ef2a6d iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa329866e iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3b5406d iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1bcd376 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc36261a7 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca7b8cce class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd28f4fd8 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9a8c414 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe22d2ea7 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5dfd740 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeb32aae0 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xed46019e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeea13a49 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf912679c iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0110fdb8 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x03cebd18 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x09008b64 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1aacdbca sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30c42030 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3824a40f sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x53a5508a sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5ade2a25 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6dc806e3 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x75c2997f sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b0e135b sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8538f7f4 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x87426102 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc448648e sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd8d762f5 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe5c2c817 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xed2fdb93 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf43fa619 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf60b221b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9fbf5bd sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4f00830e srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x78cc2a6f srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x94fda6ef srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x990c16a6 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb28254dd srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfd8adfff srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3d1bd823 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x422b5fa7 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x6236ef92 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x6300e44d scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7ce41b52 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x98376b39 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xa5bb3a88 scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xa5e54698 scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xbb8e8a3b scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc2159329 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc6eb5e59 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd6dca5a4 scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xfc53c085 scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xfddf3556 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3a54ad3d scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4770b571 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4be723f5 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4fd3eee6 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x89dc2fdc scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8f9bb481 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9630c8c5 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb2a2909e scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xcb7608f2 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x214ecba0 iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x30da3bb6 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x33734228 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40a76980 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42a7a5b4 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x54ec4a19 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x813ed38b iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x957b776e iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xade3169f iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xba77b5db iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbabab0fe iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc99ca586 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5118608 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe2271378 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xee6ec26c iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf675c380 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x02091f79 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0e946eb8 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb93c4a55 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc3442462 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf1c069c0 srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x15613cd6 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x3777b7d6 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x64e91334 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x6714038e spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa48fbd0d spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc043defa spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/uio/uio 0x027493d5 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x495809ad __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe721384a uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x0303f7b1 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9d56b2c2 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x007cfc0c usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0d107a37 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x168cded3 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1c9f4be0 usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1edabc33 usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x23076e0f usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2c385bed usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2cc0a0f2 usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x44058a81 usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4726131a usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x532c9510 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x59b61a5d usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x618df389 usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x767ac8a1 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x78db5926 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x82434fba usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xacedb192 usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb02714bc usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xcf8a1e41 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd0b7e9b9 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe23fd65c usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9919ec2 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xefefae55 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf223cf7f usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf552677a usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x25d853ea usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x68a41e8d usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x99f48f3c usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb3dce4b2 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbe916d28 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbf305749 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd370acb7 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe760a166 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe85a6f9d usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x9a834b3b phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x09bd3ecb usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1244bfc3 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x26f22ac7 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2f025aba usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43e188dc usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x572b15da usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8333d67c usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd32e54d1 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xb200e45b fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x25a2c04c fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9b2c4f45 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x8e8b67c4 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xb99301f1 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x7bc426f7 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x8839cc0f unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xd73450c8 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe908fc73 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x03c4687d vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x65d4af62 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x81d40a15 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x29a1471d w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x49eaa5ad w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb63b3989 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe0950a1f w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf3ef02ab w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x61a643ae exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x7a236c3b exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x081aa5e3 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x0dc1d6e5 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x1fa2a90e fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x26e43b18 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x28a4e574 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x35f15f9e fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x3a84b26c fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x3e3a8639 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x52851bc6 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x672376ac fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x6787924e fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x6c29e0c1 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x77efe21d fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x88d22d0f fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x9e79f611 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xc70e2b65 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xcfe72f78 fat_build_inode +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x3ba66618 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x88b864d6 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x9dad2ee0 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xd16b090a gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xef57aa43 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5cd91871 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6756eb9f o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a9a0743 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9aae6677 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb0ab0dc9 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcf5b857a o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1443e82 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3bb6a7fc dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x96b5b3f7 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd702ae23 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe3341de8 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe592197d dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf1807b10 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xf73f9ea5 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x991f219a bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x2e6b6ff1 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x464f94a3 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x49616841 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x7214b18c dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x77ac40c7 dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90aae1a6 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xb536bb1b dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xc9e54f46 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xe8b22ec0 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf018a25c dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf177ba5b dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x05649d48 dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0621eae6 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x06224f7b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0776cf46 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x08884ce8 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a13834c dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1107e577 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2184cca2 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23e013e6 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a4091f2 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b98adfa dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33040f11 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3937e917 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a5aeb7b dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x500baf0b dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5160f94d dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5af1bee5 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x63ea7683 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6a5bfb4b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x714951ef dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x741d714a dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x76d5e428 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x77dc7b4d ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fdedef3 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8551719e dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x87297007 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d82c729 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9386d3de dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95b80cde dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a8803e4 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0abcc9e dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0acf350 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa2e11ac6 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac8d645f dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb521ca38 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb08e6eb dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf727f1a ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbfe0fb70 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8c05289 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9c69b22 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd38b8b34 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc685925 ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0xebe03448 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6bca744 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9fbc0cd ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdf8050c inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5ab94702 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e9948f2 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x67b26f94 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x84da794c dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x92e9c808 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd7ad1162 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x345a8b83 ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x35a86ae1 ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x6d07d832 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0937e4d5 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0b4db449 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0e3224f8 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x11b00824 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x13443180 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x1c713df4 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x31410085 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3b560e6a free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x46754f35 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6b503d53 ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x901ed0e0 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x9451cfd3 ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xacaeff6e ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb2e0dd42 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb9b8b7d9 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc04c5dfc ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xccfe7d00 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd78bf997 ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe4452647 ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xef260fb6 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf0a4236a ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x54dc8fc3 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xce3fa8b1 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcf409bbd nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xef971312 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf8830a69 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x19e4a983 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2f8d7e97 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x568dcfd0 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb4cf2d02 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe7297ccc tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x08c592b2 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4f49649b inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x55a65aa0 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5a50c7c6 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x764e27de ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x98e80c57 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa2f423e7 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa47e3d83 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbe20ed7d inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc2c933fa ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc448a744 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd9a47f4f ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdb2f3ead fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe595b7cc inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfad79a98 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x014fc4e3 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a42378d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1678dd50 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ccb788c __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1dd9966d nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x244ebfd2 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c8218d1 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d864c7f nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4695772b nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x490d5747 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5701686e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d95be32 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5db59790 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5df8d893 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67fd8b6a nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a1412da print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d1fcab9 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c5f367a nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e8b27d3 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8327c662 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84f9aedb nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b13092b nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90871899 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x937f5a0a __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94c99fdd nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95554042 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa684839e nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa948ce6c nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac964902 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6cfcc59 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc41b73be nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9052de1 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf1d2ef9 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0fed7d0 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8824e63 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda330d45 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb9a27a2 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6a38bfa nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe8a8b72b nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef5ce468 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5cd7f61 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff5fd51e nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7e079731 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xbef5c752 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x28caf172 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x352ff9e8 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3d32f9e3 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4e07a59b nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x56cae68f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8d541fa1 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc1ce2c0c set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc54b49f4 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf7e0ae14 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xd969cd2a nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x175dbc17 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x561b9744 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7cc5fb3e nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xef9651f7 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x48fdad4e nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bb818fe ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6e46869b nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa37fb829 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x96950482 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3e1ef44f nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x43c33e0d nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8363314b nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa5a376f7 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0a623862 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1551805f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2e20ca23 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3a5d07fc xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x81fab86b xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8fdb9a6b xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xab84243c xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xae912990 xt_replace_table +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2f9506e6 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x444376ff rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1719f1d7 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2fb57b xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fc45a4e xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x406027f1 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5434dd71 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f5f4ca1 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x761c71e2 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aad7c0e xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86378e2d svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8eb09628 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9710e0f3 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a0ddb61 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dae3551 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4e0ce35 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa679abaa xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb57b4028 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5d3110f rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb78a7819 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc596eae1 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6604828 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8f2c2b4 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde62acd6 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeccef59a xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3124f35 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf40d5899 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf526f21b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7fe7c6e xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8325f7f svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9ae0c32 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa6f73d0 rpc_max_payload +EXPORT_SYMBOL_GPL vmlinux 0x0031db43 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x013bc0bf tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02dca8f3 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0x0336c67e __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0391df59 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x039fe134 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x0405e4c0 crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x04077cd7 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04969b5e attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x049c506c unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x04ed29f6 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x0509b9d6 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05d6aa8d register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x05fb45b5 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x06195ae5 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06689c1f crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x0717e942 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x0760c7db init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x0778d34f tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x0781e165 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c1ccb4 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x086cdc08 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09436066 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x0958668f sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x097e55f7 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x0a85d4b8 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x0b24b42d sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x0c29f1c6 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0c3b3526 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0ef74d36 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x0fb1ac8e platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x0fe66ab4 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x10d93922 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x10e76f28 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x11d98ad0 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x12173124 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x12affa1a class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13c1e01b netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x13c35c66 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14cc7395 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x16084fc6 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x16bca5bd led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x16f90d52 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x1735901c fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x173a3a96 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x175e5db8 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x182e6265 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18e482dd __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x1906d3e5 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x191eb359 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x19fd5b1d rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1a50b57d crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x1a716f80 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x1abe4909 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x1af9f028 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c3cfd0b tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x1ccdb8f7 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x1d0646da transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x1d0edaea rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d2a972a platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x1da051a1 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f83b47f securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fb6962a sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1ff60a88 device_move +EXPORT_SYMBOL_GPL vmlinux 0x2009c825 input_class +EXPORT_SYMBOL_GPL vmlinux 0x2023542b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x2048af06 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x208558c6 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x21f0a41d skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x222cef2d device_create +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22e19555 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x2335c2a1 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x235f4515 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23841980 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23bc55b1 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x23cea294 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x25df5cc0 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x26047eab proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x260ab850 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x263e9978 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2672f476 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x274245e9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x27b68f15 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x27dd3815 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2808fc2a __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x2897bf4a platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2910f709 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x297e6c62 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x29ec68c6 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a68c8fd pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x2aaf1a4a platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2bab6ad1 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x2c0ce48b tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db09936 __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0x2dc59379 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x2e54eb51 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2ef9cc32 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2fbd5861 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x2fd89e75 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x304c86c3 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x304f8903 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x30fe7d05 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x33375fcc __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33a62a74 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x33f99d1b blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x345b8541 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x35014d5d sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x361f1ac9 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x3644f68e free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x36477846 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x36a1b51c sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x37794ba6 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0x380dfa68 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x389d3312 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x390c427e inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x39699249 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x396fde34 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x39f02b8f platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3a3dd775 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x3a7aa867 find_pid +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3abe634f pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3b63e7bc pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3bf284d9 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x3c127544 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3c30910a tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ccdf4bd __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd3fbc0 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x3d1e6763 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0x3d2bd2dd attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x3d857ba7 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3eaf1bb2 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3edb1c1e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f4dc800 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3facc737 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3ff1c0de hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x4116e4c6 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x41dc8b85 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x420bf363 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x42571eb8 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x42a9d7d3 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43968dd4 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x43cc4e1b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45f58b3a cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x474e7f81 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x476c2f8c sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x479397e4 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x481c2bb3 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x488ce71b inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x48fa9208 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4991fcee user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x49b4b635 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x4a06831d class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4a1a7bff tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x4a4b9cec inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x4a57ad64 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x4a9187e1 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4b1793c7 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x4b3c9628 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x4b3e5de1 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4c29c77e __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x4c3166af inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x4c320212 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4cdde02c pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d66b318 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x4d849518 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x4ef35843 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4efd7d09 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4f5190c2 device_add +EXPORT_SYMBOL_GPL vmlinux 0x4f6d68e0 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x502c6089 srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x50997fc1 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x5103b5c9 pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0x51491565 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x5230da84 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x52817a0c simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x537532b0 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54c98b97 mmput +EXPORT_SYMBOL_GPL vmlinux 0x56214282 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x565f7cbe devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56d69970 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x573e969b queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c8ccf3 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x58157640 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x5824889b devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x586c5050 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x58ad2b32 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x58ec0389 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x59968d12 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x59f4c252 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x5a3934e6 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x5aba9d34 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x5b686f4e relay_open +EXPORT_SYMBOL_GPL vmlinux 0x5b8e3795 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c9c8bb9 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d1682c5 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x5d624d2d class_register +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dcd9ba8 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e000ca0 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x5e328838 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x5f01909e nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x5f1cced5 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5f246e30 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f857f8a inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x5f9a11da srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x5fdb506e class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x603bc01d pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x61da3871 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x62718aef do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x6280fc9f anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x639c7279 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x63f9f161 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x64003097 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x6407459a generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x641cf42c __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x644512e5 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x645e00df proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x6494422a led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66c9e35b nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66d9343d pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x6741a80d simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x6a13bb40 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x6a37a1a9 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x6ab7b762 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x6b32cca5 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x6bf83821 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4a11a0 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x6d14afd9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6d9a9c9a crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6e651706 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6e743306 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x6f79ad80 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x6fee324c lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x70603fc6 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x714ba4b2 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x71b9d7b1 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x71c99fa4 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x71da1a8e simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x7230a163 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72cebd69 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x73b912a5 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x74232917 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x747f7134 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7484ffd4 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x749871a8 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x75598bf3 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76e2df38 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x76e7c2ef atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x76ecda72 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7739d15e cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x78e6e3df sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x78f01bf7 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x790d66b6 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x7955d235 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x79a0a398 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79d68648 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a82659a pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x7af86162 device_del +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7bb8cb19 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c6aebec sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7cc79784 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x7cce4bf2 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x7d469a30 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x7d4bf28e register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7d9cd422 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7df96293 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x7e048e24 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7e6d77f6 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x7ea7d551 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffd5335 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x801dc671 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x8051fab5 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x80e82356 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x810d7e96 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81b2f684 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x8231df91 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x8250af10 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x829eccdd fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82d23e94 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x83553786 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x836c6a19 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x84cac4ba blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x85f156b3 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x86237e73 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8706fba7 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x87098a2f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8771e9a3 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8778a38a isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x87a96e68 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x880263c1 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88068f77 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x884e3951 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x88d8c843 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x8915579e rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x89402cb2 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x898bac92 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x8a6243e6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x8b2b880b device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8b44b33e inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x8b9b0655 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8bad78c5 __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x8bf86127 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x8c178cc3 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x8d0b1f2c crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8db4cf2a class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8dfba176 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8e847816 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x8e95a5e3 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x8f69f8e2 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f86fd4c cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x9009e452 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x905506e1 class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90ddf8ac xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x916209b3 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x9299fa14 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x929aa229 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9330abcc invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x94042f76 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x944a40f3 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x953f81da relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x9556857e __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0x955ba781 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x9587053b cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x95c63907 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x96077135 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9638d035 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x97173dad securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x9795c15f bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9813f892 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x981e21b1 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x9871c084 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x98affa5a securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9974a2c3 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x9a18b6b8 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x9a284adc platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9a62536d led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9a8286fc user_read +EXPORT_SYMBOL_GPL vmlinux 0x9a84b1ee class_create +EXPORT_SYMBOL_GPL vmlinux 0x9ad9938c namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0x9af683c8 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x9b683b45 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x9b69bd1f audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9c11addf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9c2f527b device_register +EXPORT_SYMBOL_GPL vmlinux 0x9c89cd1e sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cee61a2 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x9d0d3230 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x9d76e555 nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9dcad958 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x9e51661c cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x9e7fab59 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9ed8bbd8 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0a65605 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xa126aeb0 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xa1902138 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xa249a7c0 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xa289420d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xa2b07c21 pci_assign_resource_fixed +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa31956c2 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa469f6ed pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5f17857 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xa6b69a83 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6e8ed88 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa6f32f58 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa734998e ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xa7ca4f52 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xa883fcc2 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaadebeb8 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xab596508 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xab7e5ee7 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xabcabefc default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xad39517d tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xad45e353 put_device +EXPORT_SYMBOL_GPL vmlinux 0xadd5d669 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0xadf320c1 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xae88c91f device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xaf5d533f klist_del +EXPORT_SYMBOL_GPL vmlinux 0xb011bf16 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xb0bb9ed8 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xb0f013fd kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xb1131fff cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb12cb850 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xb140bcda register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb1443b39 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb3451508 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb5bc2ccb __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb5cfb33a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xb5f54afa __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb5ff496b bus_register +EXPORT_SYMBOL_GPL vmlinux 0xb630e929 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xb6c798c6 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb71fbe32 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xb86deaf0 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xb87d754f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xb9f4b33a vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xbae39833 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbf7af01 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xbc25590d tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbc2bc733 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbc52388d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbc956083 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbcf44c6b debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xbcf90b62 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xbef9b299 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xbf685684 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xc09639b3 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xc241d719 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc24d5d6d inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xc256bad8 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc26824fd fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xc329096e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xc32a60a0 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc38101a3 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc4613da3 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xc4e1a619 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xc56adfd8 used_vectors +EXPORT_SYMBOL_GPL vmlinux 0xc59069b7 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xc6144286 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xc63be0c6 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xc66a1b65 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xc6a4b6b1 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xc6ac8880 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc6e4584f elv_register +EXPORT_SYMBOL_GPL vmlinux 0xc74c0e7a get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xc759ba91 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xc76f327e skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xc7f28498 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xc80df9b4 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8ab7ffe shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0xc906098e power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xc90c7a16 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9ca3329 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xca316d5d xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb4a7f31 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb58b00a get_device +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcc131460 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc3fe039 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcc94242b vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xcce38dac uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xcd697d2c device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xce3c78b0 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0181591 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd01fc97a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd0243111 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd040eb49 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd0bfa628 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1cd2ac4 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xd1ec1064 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd322b314 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xd34adcf0 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xd3f2f17c do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xd3fd3d60 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd4101aaa input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xd548c925 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xd60efacc inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xd696e7b0 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xd6e74289 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0xd7616905 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd76af15a inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xd80301aa inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xd8de0261 percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0xd91a4067 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xd986dad1 kernel_fpu_begin +EXPORT_SYMBOL_GPL vmlinux 0xd9f9e160 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd9fdd016 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xda0bf711 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xda6f2358 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xdb97e76f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdb9f9e87 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdbe1a5b4 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xdbe9321a find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xdc3369a9 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xdd29f1a9 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xddada202 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xdf3975e9 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf5a9c15 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xdf6a4016 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdfde5fe9 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe086b993 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xe0965372 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xe3279ebc devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xe35940a0 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe3b74f46 user_update +EXPORT_SYMBOL_GPL vmlinux 0xe3cd71ac sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe3f1cf27 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xe4419d88 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xe48a35b3 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xe4e72974 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xe4f57b94 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe5c55416 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe5d03346 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xe637d435 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0xe641e318 task_nice +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe688e9c6 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xe6a7078e pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xe74fcfc2 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xe779417c class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe7bd680d inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe80ed1df cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe82859b1 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe880f0ec devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xe89a1b67 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xe8f04c56 per_cpu__gdt_page +EXPORT_SYMBOL_GPL vmlinux 0xe91e8a09 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe92e680f user_match +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea0fa722 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xea20ebde sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xea3c3326 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xeb3be1dd k_handler +EXPORT_SYMBOL_GPL vmlinux 0xebb3d61a pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xebb42d1f platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xec0a102f device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xec13d499 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xecc1c8be fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xecef9fbb acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xecf68d7a kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0xecfaf790 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xed4fc8bd inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xee0d3e8c queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xee205b3a bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xee940932 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xeeb55e08 get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0xef53fcc0 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf0069c95 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xf02de5ba srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf0ee4345 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xf112d30c power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf2151c27 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xf3413c76 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0xf371a9fb elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf3c46597 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xf433b6f6 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xf47f6b06 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf4e25b9e platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf57c2ed8 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xf5cec01a relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xf7f8725f debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xf807fd65 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8a64e3b debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9bba41a skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xf9c066fa vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xfa032426 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xfab9699d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfba2866f leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfd95d8c8 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe003363 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xfe7ac897 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xff83b2bf atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xffe83d66 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xffeeae51 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xb98b7751 usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xf11b4817 usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xf2db50ca usb_deregister +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/server +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/server @@ -0,0 +1,6967 @@ +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x907665bd scx200_cb_base +EXPORT_SYMBOL arch/x86/kvm/kvm 0x40fa9b1e kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0xa4deb63c acpi_processor_notify_smm +EXPORT_SYMBOL drivers/acpi/processor 0xb9299c55 acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/acpi/processor 0xeacddb89 acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xfe459f2a acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/atm/suni 0x35a6904e suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xed1ab25a uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0x3c2fa535 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x2d87b9f3 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x3483921b pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x383f2727 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x3d9c3917 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x51f27e9f pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x6a8b0561 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x716dc428 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa1458d84 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xa3f3e555 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xb44d8dd3 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xe5484a50 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xe9f87160 paride_unregister +EXPORT_SYMBOL drivers/cdrom/cdrom 0x00430fdc cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0x01fed423 unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x15da5369 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x1d84fd67 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0x2058f8e7 cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0x2aa73302 cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0x30cbf636 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x7ca813a4 cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x86491c9a cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0x9124b959 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x914d5cec cdrom_mode_select +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0616bff8 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x09b09a73 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x152794d9 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0x15c68035 agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x24fe4a19 agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3f588988 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x45e39ee2 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x599373bb agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5a8d9100 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6702473c agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x715fa872 agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x765c32bf agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x77e21385 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x809789bd agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x88c29f68 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x897a4f88 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9b3e7fac agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaf0ad226 agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb3a54393 agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb6d8cf1c agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbdb5e45f get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc05de376 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc656f71c agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcbf7e358 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe38077d2 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe94f7e1e agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xefc84282 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf66c99c0 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf9557b03 agp_generic_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x001b1653 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x029dc3e2 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0x0592272e drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x1a7d7f67 drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x20b72369 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2aca7b65 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x38149b16 drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0x3899df54 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0x4441d861 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x4b01354d drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0x4cf3aef2 drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x56ac9e35 drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0x5d2f08f1 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0x6ef57bb1 drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x6fb63b0f drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0x7435d5ff drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0x74bf2926 drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x77b3988a drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0x8a725227 drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0x93cdd0fb drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0x97bc0c33 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x98ff3fef drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x995846b6 drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0x9ed004b7 drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0xa3190671 drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0xa628d670 drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0xa6a4ab96 drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xb230803c drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0xbaef3a0c drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0xc2bb6f87 drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0xc6831efd drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0xc8a7df74 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0xcc913004 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xd8ec4008 drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0xdc3700e0 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0xe1c10e14 drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0xe1e077df drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xf545bcbd drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xfae6df15 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/generic_serial 0x03a9628d gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0x0a62d7c6 gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0x10923839 gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x16a1bff8 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0x5c7bdbb1 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x620e9e55 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x70ed8e84 gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0x75d042c4 gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0x77428c82 gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0x84c9d58c gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0x8b7d392c gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0xa77a898a gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0xbd2c8e4e gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xe294edcb gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0xecd1f67e gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0xf6d4f131 gs_flush_buffer +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0e2f04e8 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0ec9254b ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x172508ba ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1757af29 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3f56359b ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x47d2fc4c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x62a0c2f5 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x725dc422 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x76003042 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7cb02e63 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x873c430e ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x894b42a1 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x94104b29 ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xabbc64a7 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xacbf727f ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb66e5db9 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb6e53848 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb8384039 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcbbf0848 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd10ed2c6 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd3e64873 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdf207eac ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xeca13ce8 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfb37e196 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/nsc_gpio 0x1bad4d49 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0x4cc94130 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x9aa9fea7 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/char/toshiba 0x9421a6a6 tosh_smm +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0x5edff9df cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0xd9e9339c cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0x08a6350a cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0x9ba0e98a edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xce4db4fc edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xe62669e6 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x6d17f3a5 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xb6017e10 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xe04ebad0 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xff095073 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xde0ce514 amd756_smbus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x06593394 i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x090707f8 i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0x0e8acd55 i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x217af84a i2c_master_send +EXPORT_SYMBOL drivers/i2c/i2c-core 0x2d44f078 i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x37984779 i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0x388d08cf i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4082ab66 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x507e23a6 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x56c40a9a i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x63bdb933 i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x6a50a8b0 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x6ee8265e i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x76ec399e i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x8f5a2a94 i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x914a70e1 i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x914fa5fa i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x9804891d i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x9e515492 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0xa0501d65 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb41a5b4a i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb5694081 i2c_attach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xbfb98b2f i2c_detach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc6750de9 i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd6e06790 i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0xdc6b2ec1 i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf441456c i2c_put_adapter +EXPORT_SYMBOL drivers/ide/ide-core 0x04e81013 SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0x0651203d ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x08a23562 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x1acd79ed ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0x235c2116 ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x2409a4ca pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x29d50b35 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x2f98474c task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x30c5c205 ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0x33b42692 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x3bd9a7ff ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0x4090cb86 ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x426e8301 ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x46de9989 task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x4975412c ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x4b2c08fd ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x5570e5ce generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0x5e4f7133 ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0x60b63697 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0x629920e8 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0x66b387d1 ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x6cb13103 ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x7ebd6443 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x9a4b5829 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0xa6d472ad ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0xa8368baf ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xb09292cf drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xb9b965ee ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0xbd396435 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0xdc113e68 ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0xe4664d7d ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0xe81870cc default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0xed5b69f6 __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0xed6693fa ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x061f6bb6 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x08d120d5 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c925415 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d1b502b hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0dcc14ce __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x125fbbb0 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x163ab8cd hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16b52e94 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x210b1737 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x25858f90 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x26986cb6 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2752b9a8 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x27d40260 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x27e4b863 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ed48beb hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2fb9c73b hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x358f1ba6 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x35bc9cd8 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37a736c9 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x39a1baef hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3a2c031c hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4249462f hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4451f1ae hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5268e796 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x52c5e14e hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x56df3825 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x66dbb98a hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x704c3db1 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x749fa8a5 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x768949c0 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76ccf3eb hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76e36fe1 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x797f52b4 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7eccbe54 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x84667e32 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x86e20634 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8aaf6145 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x97020a86 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa25f27e2 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6cf21d0 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa7680802 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8e8d4e2 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xad50576b hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb0fa3edc hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbe0baa62 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcbeef32a hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcdf5d24b hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd2a24870 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd67b5e53 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe0291979 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe0daab86 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe1dd938e hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeb43a8f1 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed05cb8d hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeea275e4 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeeb5ca82 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf30f932b hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf98de6ff hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9a73c84 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfa58f3bd hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfb7537e9 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfc83f0fd hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfe51b7b4 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfeb996ec hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xa761c3a4 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xe17711f0 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xefafa19a ohci1394_stop_context +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x7fe9be7c rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x882da3a1 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x97a0f6c1 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9c447fba rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x006e1729 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0d60a547 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4904327e ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4afd2beb ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x580d48ec ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x59da5b19 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5c5dccf2 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x617c63ce ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6df1ceea ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7d236a02 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8cc72f8a ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb92ad0db ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd0b9adad ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd6478774 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe61f1fb6 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf7feecb2 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cbe5522 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e1a016f ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14d6ca7d ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18127efd ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x190fefc7 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21dd8df7 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2393a8d1 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x277b1ca9 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28eb75d1 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2de8bb9c ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ffc6deb ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39b6d69a ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bd5e503 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e905b26 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x426c233c ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42da014b ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4557d8af ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e50a69e ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5209426e ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5250cc39 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5733cf9e ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x585c4cae ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cebde79 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62e3beff ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ed2025f ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73d85832 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74d497af ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78a9f6b3 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78ab207e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x791a172b ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7bdf3512 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d4ff076 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f4d9b9c ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8864ed06 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x891cfb31 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8df892cf ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fdaf1ac ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95623ec0 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa66440e5 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8c5bbb0 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8d1c353 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab007a7e ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb03da02e ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb785572 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2cbc780 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4c37118 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6d508a3 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9719913 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb3b7078 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd27711d ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce99b5ee ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf06314a ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd17ba9d1 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd89786e9 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd938b9df ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddbe93b5 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe247a0e5 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec246975 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf289176b ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5ae2e16 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf70ffcf1 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf98e5aab ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfed3e07f ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1e0994c1 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b6d6804 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6038820d ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x67f8d6df ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x80e364b6 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x86de1af3 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xae11e562 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xae18068f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcc0bf54f ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xddd570bb ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe74f8fba ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfee0621e ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x05b24047 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x24292292 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6016b480 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8b49fb11 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb57037c3 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc278ff97 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc9c94e4b ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd454a850 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe3d37614 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x29733c51 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7f5d4876 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x867668cd iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9bd7c9f7 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa9c5a3e4 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xacbc4a62 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb0432245 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf1ced774 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x139de7c8 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1aeb4a08 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1db66edb rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x29cdd714 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x499c676a rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x60543fb5 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x643d2622 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67cc57d0 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x824139ce rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x84db1d67 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x861926d9 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x87ee9bc2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x88b7d937 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa610e80b rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb49ce32a rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xca7b976b rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xccd7768b rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfd8cac40 rdma_reject +EXPORT_SYMBOL drivers/input/gameport/gameport 0x131f7442 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x23e41827 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2d6584e1 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x347edc80 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3ac16dd8 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4ce5ad39 gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0x539c4af6 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x82649ba5 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x93323a20 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc768ff1a gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x24a8e9ac input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6cc0f8a7 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9bc26ae1 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xce3ad3c3 input_unregister_polled_device +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x2c54c957 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xd0bc06ce capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0ed608fa capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1558b7b1 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x632c4352 capi_ctr_reseted +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x63c7edc4 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9b439e71 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa1a8b01d capi20_set_callback +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbb054a52 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc091d2a4 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcf3d4d6a capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd11b5314 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe73c0de2 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0634f5eb b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x44a10a69 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4bc61d39 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4e8f070e avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x62ce4716 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6d70afee b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7e469fc9 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8c35795a b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8d0febaf b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x96f9d2f4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9c1104c5 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc07bc82b b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd6f989ee b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe13f8873 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf78f92e1 b1ctl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa131242 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x02b9b6d4 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x23cdc351 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2a386384 b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4390c759 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xabc34959 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc43f681a b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc443aee8 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc82b9062 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xcff5f0eb b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xeb040f42 b1dmactl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0xf8aa616e proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x28302c5a hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x40f13393 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa34c0a74 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe6d9da1c FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x446aade6 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x670d3d7e isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8326f7b7 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd92dc264 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd9450690 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x1ee629e2 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x95aed401 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x9ffc8215 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0xf5c8131d isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x16c5b07b isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x8890beee isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xf90d0b66 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/md/dm-mirror 0x0694d8f7 dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x36d4b117 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xe53b48fd dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xf87b7b14 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x0ee0e6b5 kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x229070b1 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0x268dd871 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x26f6061e kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x38db8f0a dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x58505d7b dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0x6489430a dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x73624c26 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x7a6582a1 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x7f4869f0 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0x9a36702b dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0xa187e996 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0xb004f3f3 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0xb60e2d50 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xbbc4127c kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc8ef8e0c dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xdfefb168 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xec9d3345 dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xee9a0986 dm_get_device +EXPORT_SYMBOL drivers/md/md-mod 0x0000c03a md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x022f0865 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x1aa08872 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x37f5eecc unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x458c13a9 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x474c3a44 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x5ea69889 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x68fb3a65 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x6ea4f3a3 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x779af6e8 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x7aa4f063 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x9d106c2c bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa87dfb19 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xb04b12c1 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xb41f8cfb md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xdc32f369 md_write_start +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2c8de101 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2de366d9 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3a2045d0 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x42d48aed flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4b481cce flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x84351e53 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x929c81f5 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x93d9aad6 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x96eb3ffc flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xac6cfb31 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xafc46138 flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb5e2cb2a flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc009c6ce flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcaad478d flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcba5017a flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xceb645da flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd096f281 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe7fd3b0a flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xef3899a9 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfcca83d7 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2620290d bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x650df31e bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xabf131b4 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xf8f3ce07 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x15134b2e rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2543dc96 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5dac24a9 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6a5cb35f dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x714c5ee1 dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x99c3e1c0 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa17c3938 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xacac57cd rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xba2edd6c read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc0d41cc6 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc2a4b99e dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc472f6eb dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd5258b47 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xde9acce8 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x4944a7f7 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x02b42e6e dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x06ed5599 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0d416a27 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c1c729 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1ce7c953 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1ffe61af dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x252d7445 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2a441ff7 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2a5398e9 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2e308fc1 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4bb95659 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4f7c70ca dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x61dfd20a dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6538f079 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6cfed801 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76101064 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88ce57e1 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8f46d6d7 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x92d9e9d0 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa558b32e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb441bae1 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb44d6543 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb75456ea dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbee1c919 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc4b78600 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc5ed4b1a dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc7549169 dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc9c8bf32 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd8c7a12c dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdb2d4512 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe250cc8a dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe484f886 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe8823338 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf15b8692 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf26c1a9b dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf3c22363 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff44a46c dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x11ad3e3e dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x1479dadf dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4fa21708 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x531abb54 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x56ef254b dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x633483ac dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x85a30b9d usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x696224fb af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x105c4b81 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1c6263ed dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x47b5aee1 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x572f1ba7 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x57f654cf dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5abf940c dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9224266a dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xaf792fcb dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf0c59a65 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf878522d dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfc0fad13 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xa11cbc9f bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x897156b5 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x345d5dc2 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xcdc84c07 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x1a2f60a9 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7bd44bf4 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd0a87415 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x66aee006 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x062910dc dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x17a6c1ce dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9d2dfb6b dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbc2f60e6 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc4bc1652 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf8d53ba0 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x1c26d2f9 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x7244b695 dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x7418cb0f dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x024db153 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1ec2dba6 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x417a5b21 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4ea0ea53 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5ec0ffe3 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6be1d66f dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x21052486 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xdf1c4b5f dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xebfa04e2 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x3d24c490 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x6358b212 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x53de4559 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xaa6fce03 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xa81db7f9 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x20e001d7 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x262b1665 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0xa179451b mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x86bfa76e vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x39ce941f mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xbf1834d3 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x395b0d16 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x167a70e6 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x0ee40bf7 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0x46f5bcfb qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x5256f913 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x3ae33d7d s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x91488fc6 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x1848ff8c sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x931f4a59 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x975e4f19 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x2b3dc8f5 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x32382b0d tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x379c4c26 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x4c194ddf tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xfc729258 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x5cc76f48 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xfeaf4f83 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0x530823f9 tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xbbcfb889 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x92db7444 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xc0f8c6de ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x1fae7308 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xba45bf37 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x5b981cbf ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x705f1d75 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x3aa92b5b bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x4712f3b2 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xe0986afc bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x5013043c btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xecff91f7 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x11082098 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x4e3a629c cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3559ba71 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0x3c5930b8 cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x0f117354 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x527d749e vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x443b22c2 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6e7358b7 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb788cfda cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xc79aa5fc cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xf76df6d7 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x1500b4fa cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x24ebf494 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x37c517cb cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x43d1c009 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x53c61215 cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5d1853c4 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x87fe479a cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8d05ee0f cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa0839ad4 cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0d6b20fd cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x16013805 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1c66e5ee cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4371e219 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x47b640ae cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5435fa09 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5e4d20a1 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x69c3ef17 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x77f78ffb cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x89297f47 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8a769ffa cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x98a3908b cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa3e85067 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa6061fc2 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb1dbf80e cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbf6f3d94 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd06806a4 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd204b117 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd28688ec cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdc48ce99 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe4ca9c57 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe7ff3bf9 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x17fb6bad ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x192fed87 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3d6a01d3 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x53f579e6 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x69b8f9c3 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6a8cb50b ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x746ae7af ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc27f99d3 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcaf6bf71 ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd13349c5 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd8982800 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe26cf771 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf1c4d3c1 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0871e57c saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0da1fff2 saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x16c1d7c9 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1cf0da73 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1ed21deb saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x68ab5eb6 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x843d5454 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa0b25ea8 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa6124a1a saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xaa244718 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb79e548a saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc67e5630 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd6c4094d saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/tveeprom 0xdb8d7be0 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf84b9761 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0ff45263 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1c932f39 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2584c54f usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2cf89d03 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5ebfd25d usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x6f89cff2 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8ae216a2 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x90e7cff3 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x960b872e usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfdb9790a usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x0ec69a35 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3a1f4a25 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x46d1e417 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc369097d v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1f45082 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xed275428 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x53a5fbd5 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb3f8e890 videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x007731e8 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0xa877e463 videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0xb2456ffc videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0xe3a0ebdb videocodec_attach +EXPORT_SYMBOL drivers/media/video/videodev 0x12f05bac video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x3782b41d video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x48312878 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x59369329 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x69a676a4 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x8b457325 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x8d628eff video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xb69e7f3f video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xbc59a60d video_device_release +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0a7b6d1e mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x105d4f47 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x11b97a4e mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18da93cd mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18f4c387 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1bfabda8 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1f0b18e4 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x489af05f mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4e1ae124 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4e8890b4 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x626f0bf3 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x63c2fc63 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74c34dd4 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x893a4969 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa1890a10 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb223f6f2 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb46a8b96 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbbc31b95 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcd66b992 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd35675d3 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd4bcbf30 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd742059 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xddd77cd6 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe77bdbcb mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xec7f05f8 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x10c63afe mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1302f324 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26ad1ee7 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5277a805 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6ef2a16a mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f43d8c0 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x70a7c017 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7a17239a mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x81625641 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8810b43b mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8de22162 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e49d1d9 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9380bac9 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x95422f80 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x98cab19d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa84996b9 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xae6bd62c mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb0acfabe mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb7d075ff mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc30e25b7 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9c93779 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xda4c2f65 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xea144329 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7ecf724 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1a236b1c i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x249a9e0b i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2bfaad46 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3d54001b i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x459a3647 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x63a4b59b i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6bd8fcf5 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x954ac5d2 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb5f91088 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb67ec918 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb68324f0 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb9b49f52 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc4bf09a4 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc5eb6e97 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdbc23e9c i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdebbe25d i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf79dc275 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfae9bf02 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/misc/ioc4 0x2c80ccb1 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xb759c2f1 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/misc/tifm_core 0x11e60061 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x124db2e2 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x48f22a78 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5b16dcb0 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x60339be8 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x607044eb tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x729e6541 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x86bf80c2 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xbd2e9609 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdce92d01 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xfda1c408 tifm_alloc_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xfd6a1eb9 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x001b40bc mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x00461ea9 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0d613af8 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x12ab4366 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3665791c mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5b7b213e mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7aa41545 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x855d5bd7 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x85a84f36 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x92c708c3 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9465acc7 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9f2de192 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa1fc9472 mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe123f190 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xed9e67d6 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf456877b __mmc_claim_host +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1895c2d2 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x50d7a5d8 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa1e6ffe2 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6353a12d register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x82c08648 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x9a87e425 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xfe8b4121 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xa52d138d mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x415d495c simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x317e0f88 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x53387f9b del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x02ecac93 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x333ee77c mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2c93399f nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x73128124 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0d1dd2fc onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x58f69e58 onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x0e808f74 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x1a982e6b ei_close +EXPORT_SYMBOL drivers/net/8390 0x1f2ec660 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x2fdfd5d6 ei_open +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xc027140f NS8390_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1caec074 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5ce4b085 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6aaa71a3 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8379c0c1 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfb1ed871 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfd5f0344 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1608a911 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xd94d6ea7 com20020_found +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0934a945 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0fefe640 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x120f486b cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x20b8626c t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2c856995 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2d2a12c7 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x349e620f cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x42c52b2f cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e02a486 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x60bf6013 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x63c1b1c4 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6cdad2f6 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7f3deb65 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8ca43ae1 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x92043431 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb17565ee dev2t3cdev +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x19ee179d hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3260fe91 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6e610a3a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb8a04d62 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe6f244a1 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x03d7ab0f irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0cb289dd sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4c8da1ad sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x85990b71 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9ce08bb4 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa0de3141 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa3a4e6a5 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbe892f32 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc7db117b sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe7e60fda sirdev_raw_write +EXPORT_SYMBOL drivers/net/mii 0x16f8d3bc mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x28fa61e6 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x4758887d mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x643ae784 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x7a3b1b0a mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x7f8c9aa0 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xc618e23e mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xd966ce9b mii_check_link +EXPORT_SYMBOL drivers/net/phy/fixed 0xe2a6a9d7 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0xe6b68758 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x05c1c125 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x0e17afe0 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x17c92c09 phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x1b7c073d phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x26c4d9d3 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0x2eb89e08 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x326d36ea phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x3b676159 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x454014ea genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x4915986f phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x4c2e52ea phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x5b6e9cab mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x5bf0e0e3 phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x5c9ccce1 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x601d7f5f phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x719f5e7e genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x7bc9f3cf phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x9d0a15e8 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xade85ab5 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xb2d98510 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xb86ad1f9 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0xc0ce9b37 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xcdd3d543 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0xd8528915 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xeb9e4f4e phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0xf0813e1f genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xfbd124b7 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xfec8979b phy_write +EXPORT_SYMBOL drivers/net/ppp_generic 0x0af233d1 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x558c18a8 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x828722a2 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x8c00486d ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x8c73e0db ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xc0391839 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xd27f9d19 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xdd93eb2b ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0xfccfc4e3 ppp_input_error +EXPORT_SYMBOL drivers/net/pppox 0x6f3b45d9 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xa8886f5a pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xcff4a4c5 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/net/sungem_phy 0x19ef1a38 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7bdb0237 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcdc1f852 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xdaddbaa0 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xef1586e0 tmsdev_init +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x015a1bca hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0a9af783 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x17ce178e unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x558da291 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x61dadadf alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8302f9e8 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc10a7d89 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xccbb4522 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe74115a1 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/syncppp 0x372ff1c1 sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0x5a45f9f9 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0x99535b88 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0xb66a6c68 sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xc3d00082 sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0xfc26fe8a sppp_detach +EXPORT_SYMBOL drivers/net/wan/z85230 0x102c62e3 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x2610703e z8530_get_stats +EXPORT_SYMBOL drivers/net/wan/z85230 0x283e799e z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x3088f64d z8530_dma_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x3b04ec5c z8530_txdma_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x3ebd5eba z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x41bf4a90 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x41edcac1 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0x43ae6432 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x4e3e4656 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x74309827 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x8f7c9911 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x95661193 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x97876ea4 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xc2b7c759 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf0919929 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xf94b29d5 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0xfa6d14b3 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wireless/airo 0x18b04bb7 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x9f351738 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xf4e7aa6b stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x1bfb894e init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x424038d5 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x687aaf4c atmel_open +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00a519aa hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d5c0a8b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x170bf172 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e1294d5 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21e2a11f hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a488f45 hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2caeb677 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2f7dc07d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x34da60c3 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x45a423c8 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x47b28952 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x48ebff0e hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59edd840 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x61683b2f hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b382a3a hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b5f5e21 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6e311282 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8d8de44c hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ecc918d hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa939d250 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbfefa0fc hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc1238303 hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc601fe23 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe5902f88 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf00b2e61 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf8d73f4f hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfda89c32 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x50d38735 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x6f11aeaf __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x7e502af9 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xcefa161d free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xdb5bcf38 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/parport/parport 0x08621fe6 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x3ac10fc0 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4d505956 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x4dedda68 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x51dc377d parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x6f6b4f9a parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x715451b8 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x7521ce9a parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x77d33949 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x77f4c584 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x8039799f parport_release +EXPORT_SYMBOL drivers/parport/parport 0x81e99ab0 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x8847f9f1 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x9785aa31 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x97868f87 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x9a4064b7 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xaec882e3 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xb03adc21 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xb6c247ba parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xbaa676e9 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xc4505058 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xc54792ad parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xc8c5f00e parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xca16a3e4 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xce08b2aa parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xd05a0414 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xd5d4f024 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xd9892681 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xde6a8d48 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xf175d32b parport_register_device +EXPORT_SYMBOL drivers/parport/parport_pc 0xc1e8550c parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf8c9f85d parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x02824460 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x06d8fb1c pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1b7651a7 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x22accfc4 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x407b67a7 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x45e81cc9 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x477a98b3 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x727fce7b pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x79b52fbb pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa366730b pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xafa974f2 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb1b40bec pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb9212dad pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe8fa9b11 pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xef9a3cab pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf5c0cde6 cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfb37943c pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00f54926 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0b47e95a pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x16cd5aff pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x16f56003 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1838cf2d pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1a88a70a pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1b1c2f8c pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2555fe4a pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x279da816 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2d1f75b8 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x38e34c63 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x50144800 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5229b2fe pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x537b004f pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5a71220c pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x64038f32 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x66500ceb pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7563ab46 pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x89d1e5aa pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8a07116b pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9af1b3d0 pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9d9aa393 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xacfbd582 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb028e45a pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb450052f pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbbf054e0 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc117a633 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc2e57968 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xca9cb1ef destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe6aed347 pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf5b3c1e3 release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x11865364 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/53c700 0x5175c0f0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0x5f4c9010 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0x7c306ec8 NCR_700_release +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x2dbd9c1c lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x3757bb50 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x30b12c5c mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x12f79c6e qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5b918760 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x80bea63b qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x887e089b qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8ae9e58c qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd361e708 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x2478d062 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x95623473 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xeae95d7e raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x02539256 scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x06f508b4 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x09e43c6f scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0aa7b205 scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0aecab27 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c1f9415 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c21828c scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x104f47e6 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x17d8a3b2 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x18801827 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x19cbde54 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1ba9369c scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1c87ed9b scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x21427210 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x230de3d6 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x277870fb scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x28f13045 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2c6c0dfa scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2c7576d2 scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x344f51da scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x349fd2b1 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3fdebf76 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x48908aa7 scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x50fcf56b scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5c6fd404 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5d7f3c7a scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x62442768 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x62932b25 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x690fb6d4 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x695c16cf __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69cd85c3 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7118c4cf __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7267ad17 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7296da74 scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x76148e07 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x77f94556 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x78ce5c70 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7e682315 scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x82ce57c5 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x83d9ee7a scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x88db8851 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8a6431ce scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8b2dc9cf scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9590aa40 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x968a4abb scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa11c2e44 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1f52763 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa27c7d40 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa2dd2306 scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa376154b scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa45d4fdd scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa5ff6836 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa60b0efc scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa991171f __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xac985eeb scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb5cd268d scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb78b868a scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb9d484ab scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbad4bf08 scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc6de1fa0 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc82ebfcf scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca1d63e4 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcc347900 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcc954512 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd1f30fb4 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd369afd4 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd6171f3e scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd79aa107 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xded55c28 scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdf3bcb0c scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe25b3806 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe519f43e scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe77090b1 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe78afaa1 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf08606c4 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf5fa8a88 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf7fa3aee __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xff3d12bb scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2052eb16 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x27096849 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3bbfcea1 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x44bd236e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x763f4a6e fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x96c6e8e5 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9df6e652 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaf497b14 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc329e208 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xccc81f46 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd7ccf7f6 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e7fa3f4 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2005b2cd sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d6a9382 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x308ce470 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x33c15760 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x35cb1041 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4206940f sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x436c711e sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x447fae53 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x59ec8b78 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5fd92770 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x73442492 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c73bfbc sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x81796cd0 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa1f2e37b sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa34b59c5 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaa2a21b4 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaca76010 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xadf2a000 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xafa4a2b2 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb513c835 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb53ebc64 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb962ec4e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4a8f3c9 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc8e06fa5 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdedc5fd2 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x1990f3a1 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x30d0c5b7 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x462daf1c spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x68302e2a spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xcba7f34c spi_release_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x16031495 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x34851232 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4f742db8 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x659a47ff ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x7a06773a ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x7abf3915 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x877809d4 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb219207a ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcbffe550 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd36b7486 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xde5d3a25 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xe055a216 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xf08f5f7b ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xf3b122c0 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xf482b6fd ssb_bus_unregister +EXPORT_SYMBOL drivers/telephony/ixj 0xd3b6a1b2 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0xaae7c83a phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xf3ee09d5 phone_unregister_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0486c5ea usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0782fa80 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x091b1ab0 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1c7ae94a usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1f2667d8 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2052f7c3 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x24bc4d62 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0x252461fe usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2cf66fbd usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3a5af859 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3c687b6b usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3c734c4c usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3d8afc69 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3e6abfaf usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3f4f50c3 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4bc97f07 usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4e652fb7 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0x506a4393 usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5514d62c usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x589cff4b usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6b295a1f usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x76abaeb9 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7ffbc30b usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x826fc2dd usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x87a689e4 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8809e8c7 usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x90c4a150 usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x923ec687 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9efd0458 usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa99ad236 usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0xaa7d0b7e usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb06984e5 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb6e9f676 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb70282df usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb81a6e1a usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbc1ed38c usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc10ead2a usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc4248b7d usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xccfd08e3 usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xce4ebd49 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcf012cdb usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xda98ba85 usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdfbc406b usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe43417ed usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xea5905ab usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xed7b13bc usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf4aa046a usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfe855911 usb_create_hcd +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x4e7ba139 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xdeb2bf08 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xf9d58c77 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x36780856 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x09b994f7 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xdee13e19 ezusb_set_reset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xecfac622 ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf0ce33c9 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x785e7300 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xfc1b3073 lcd_device_register +EXPORT_SYMBOL drivers/video/console/bitblit 0xd632e852 fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0xbb99125c get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0xddfc1801 soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0x7d642807 fbcon_set_tileops +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0af4e983 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x64a8be5a cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd55b58cb cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xfb585869 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/display/display 0x4a53fb86 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xcbc41fe2 display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/macmodes 0xe4b5d4df mac_find_mode +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x61c808a7 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x71b79a51 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa193f67e matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x3e6ffee9 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x435f3590 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x60db23d2 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xe73268ab DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x742e2327 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x8568e8cc matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x10fe2378 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x259b9c3a matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x4a57ff3b matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9dfbd4c6 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x7636a5e7 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x924fba14 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x04bc970f matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x28f08814 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x333a9a58 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x99bdd4dc matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb2e04198 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/output 0x91d0bdcd video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xdb3825b2 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x2dce3985 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x551f522c svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x63e844dd svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x67e20089 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x6ba80e77 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xc8541877 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf9dcc3c9 svga_tilecopy +EXPORT_SYMBOL drivers/video/syscopyarea 0x43c74f72 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x479593e9 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xd7ffdf79 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x061e934b w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x1b05e7b2 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x3120d6b6 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x43dc0ac6 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x04b87f74 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x19dfc1fb config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x2a1c3d25 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x2aa6ee4f config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x3bc606db config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x58e7a6bf configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x9cbeb796 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xa960ebf0 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xac31093a configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xb4bdab62 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xd489cac9 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xeda7d337 config_item_put +EXPORT_SYMBOL fs/jbd/jbd 0x10ff0382 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x129598b5 log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x28d45cb1 journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x2a655478 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x2e800219 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0x387f8d2b journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x4602b45f journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0x46a670c8 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x491d034a journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x4b09fe7e journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0x581d4022 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0x60a760c2 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x6bcc4102 journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x6bdcd9dc journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x75069a89 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x7a65109d journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0x7d3bf8c6 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x85f68f9e journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0x8a23a46e journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0x8b0a3a83 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0x8c4031df journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x956d826c journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0xa263475f journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0xa4042cc7 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xaf4d25b7 journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0xb8643c31 journal_create +EXPORT_SYMBOL fs/jbd/jbd 0xcca6420b journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0xcd1e22e4 journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0xcf9d87d5 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0xd47f0770 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0xe3a757e7 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xe5ce87c8 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0xf082a3f7 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0xf643851b journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0xf8884e44 journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0xf92e9ffd journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0xf9aed60d journal_force_commit_nested +EXPORT_SYMBOL fs/lockd/lockd 0x4bdc1289 nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/lockd/lockd 0xd0f0140e nlmclnt_proc +EXPORT_SYMBOL fs/mbcache 0x0c20f375 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0x2d142f51 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0x2d9542db mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0x401836c0 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x8699a158 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0x92fff288 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0x96d4db31 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xc22a51c9 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xe47be9b3 mb_cache_entry_release +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x62e72810 nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xb69200f0 nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/xfs/xfs 0xe0cdc7c9 xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x8ffdb3b8 crc16 +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x2329b292 crc32c_be +EXPORT_SYMBOL lib/libcrc32c 0x37d0b921 crc32c_le +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x2af9b631 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xd26f7daf destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x00e7e586 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x09511eb8 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x0f3569f7 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x15bac5b8 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1df84cae p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x4cadfc44 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x677be60e p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x6f2bca59 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x72180f92 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x7385d279 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0x80b7d718 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x8dfa3b54 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x965d3a56 p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0xa3f4196e p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xac0aec6a p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xb2e108d7 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xbbcad1f6 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xd11b15db p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xdc468692 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xdf52ae2b p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xdf6ff9e3 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xe2ea3039 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xebbfa3cf p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0xee337cfa p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xf129cb12 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xf3f95cd3 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfa7e1822 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x149b7ac1 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x25f4bdb3 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x509f1258 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x69eef61e alloc_ltalkdev +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2761e569 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x2fd90d36 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x2ffcdcf3 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x37eef1bd ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4b0646a4 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x55302ccc ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x65bae50c ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x707db824 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x749a6070 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/bluetooth/bluetooth 0x01bf7cdb hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x044eb10d hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1042fdd9 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x15129886 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1838f5c9 hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1e00768d hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x27361d49 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2b40cc01 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ae2947a hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f83a313 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x55ad2c8f hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x59fc0f95 hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0x619632f0 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x64f34694 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x70ccbd39 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74549938 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ccf38e0 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c260520 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x935ac848 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99481dda bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac733830 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4e9fbfa bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5f53678 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd6ea8772 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf39960e hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xec160bd2 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed19ad02 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfc6de956 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x97011766 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x903b9ed4 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9499560a ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa5f8f67c ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xad937ec8 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xca6a450e ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xcde1c370 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe618de24 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf67734c0 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf8aaf0be ebt_unregister_target +EXPORT_SYMBOL net/ieee80211/ieee80211 0x1e3d58a5 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4536b686 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x5abc7abe ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6428df98 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6791e1ad ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6c823121 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6f15e80c free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x743ef173 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7ae993e7 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x824cb31e ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0x9e371f16 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xab31a4ca ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xae1c4ee5 ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb0661aee ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd6160144 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xdfefa52b ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe04b855e ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xeb897908 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfeeb1787 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x08847d6d ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x202068c3 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x211428c8 ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x9959fe6a ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xd5ac3c83 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xe8c8bc41 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ipv4/inet_lro 0x1c3db8a9 lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0x25732aa8 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xbd661409 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0xbeb03ae3 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xf11bafb4 lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xf99bf958 lro_receive_skb +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x04b0a1ea unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x0d84d2fe register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x1c1e1546 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x22be3d63 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x27ee6d5f unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x572281f5 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xb274c6fd ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd1b9cd17 ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd8736489 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xf5434dc1 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xfdd1bb91 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x3a64b798 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7c0d819a arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdcc5cb6d arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x64349d3a ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7b17d5a5 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xcc96fd91 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0c0b1e54 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x19284976 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1b783eb8 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7e746c79 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xbc17d705 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xedd8979c nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x79805f5b xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xcc9efb95 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x0d7a05a1 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x0e776097 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x1a842992 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x4a056006 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x4b2b10d5 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x4c048aec nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x588bc330 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x6216da81 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x6d2db63a ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x6eacd728 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x7319ad27 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x78a39ba8 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x8a4dead2 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x8a905a75 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x94d9f73d xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x98c1d698 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x99df46b5 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xa0a6cc0f ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0xa37e6c41 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xa77e76e8 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xa8a77476 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbaaa6300 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xc20a3110 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xdeacaf57 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xf1ae6fda inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xf81e6c07 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xfc220ffe ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x11b6b945 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1fc32b50 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa6bf82f8 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb659f686 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x1e8663da xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x5b24ef64 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x16e1cd80 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x398a2ff4 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5894247d ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7ef7251f ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x85c726a2 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc7dc9ccb ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd390b153 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfb5b27fb ircomm_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x06f4e411 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x07767948 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0af6596b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x0bc39aae hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x149b7a09 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2c0b94a1 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2c520a46 irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0x2e7b3a86 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x2f485b6c irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3bfaf80b irlap_close +EXPORT_SYMBOL net/irda/irda 0x3d8770e3 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x405b6b46 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x5122e9af irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x540cc53f proc_irda +EXPORT_SYMBOL net/irda/irda 0x5c4cca8c irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x69c7294c hashbin_new +EXPORT_SYMBOL net/irda/irda 0x69d9ef5d alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x6a38168a irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x70cf2010 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76f5669a irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x832d2942 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x8385966f iriap_open +EXPORT_SYMBOL net/irda/irda 0x855a5d1b irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x891adbf4 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x8ba79254 irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9319551c irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x93a23880 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9af0090c irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x9e9d70f5 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xa54f1a1c irias_find_object +EXPORT_SYMBOL net/irda/irda 0xa9ddf97b irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xaacfc3c7 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xb4915905 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0xb53ca67f iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xb6586d66 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xb7f4f6d1 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc054fe3a irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xc0faf480 iriap_close +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xda718186 irlap_open +EXPORT_SYMBOL net/irda/irda 0xdbd5da79 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe68d2155 irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0xe9d58deb hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xed1ef162 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf22aa033 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xf5f7ccc5 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xf6c58c8d hashbin_get_first +EXPORT_SYMBOL net/lapb/lapb 0x0b2e0cb1 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x0d49f6ae lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x22deced1 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x4eadb95b lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x57ae11bb lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xb9dab652 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xd03c2a1b lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xe56dcd26 lapb_connect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x01bb65e0 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x084c7ed2 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0e298ac1 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x20fbaf9f ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x246924d2 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x253e063a ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x2817cedb ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x295c24c5 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x29a6a6f8 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x2dfcc388 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0x35a8603e ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x3a8bd32c ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3d8539a5 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0x3de843f1 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x6b32a9e9 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x74373cf5 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x96209fcc ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9a94e744 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa84e8458 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa8cb411a ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xac984a70 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbb4116f1 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xbd612e1c ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xbdfeed5f ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xc90f62ed ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xcae3b80a ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xd76ded29 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xda884552 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe348d347 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xea1f6ae8 ieee80211_ctstoself_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x1ab8aa64 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x21f3b8e0 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2344734f xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3b46a5c3 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x51adb7e3 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6dc1e698 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x70f84a76 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x7428ef80 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x86fbc889 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x87c0ba7f xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xa299ab59 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xde9296d6 xt_find_match +EXPORT_SYMBOL net/rfkill/rfkill 0x135356f2 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x2431cc12 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x33d7a219 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0xe57e8787 rfkill_free +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x157135a7 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6252aaff rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6a789e32 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x72c22c21 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x792bb709 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8844fdcb rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb6f91a80 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc817d8c0 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc89bc5c1 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xce00c974 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd0a002b8 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd0ee3006 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdfc6efb4 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe2e8d75e rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf87c9acc rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x02f835e5 make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x359fea0d gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x36593207 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4055a24f gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5c6df1e1 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x609c05a0 gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6add8096 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7815e0f8 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7ee7860c krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x850ae0b1 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8fea250f gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8fea63c0 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xcf3640df svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xfdbd2871 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xffd23c1f gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x07564e8f auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x085466c6 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1096e749 svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x13b6c977 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x158dc19f rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x163fc963 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x172d879a auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2298bf76 xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23089290 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23974fff rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x24b075f6 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2b118028 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2d79a590 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3b398dba put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3b9178bf rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3dc32f43 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3e514cf9 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x40419e53 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x448d607e xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x451a8a27 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x466dfbaf rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x46a657fb rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x51599f02 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x52537b5e auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5c0a9d23 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5eae95aa svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0x60d7842b rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x68055351 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6bb69212 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6d0da081 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6d8c49c8 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eb44d0a xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x73e483be svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x764dd12e rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x76568343 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x77ad9186 svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x77ec1902 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7878965c xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7894b580 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x78c238d2 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7a077408 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7f1876c4 rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7f7f4473 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x807e14e3 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x809489ea svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x810bddb7 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x82832651 rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0x84740b62 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x85ad40e5 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x891b6f8d auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8e3e8766 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8e451a7c rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8e746ff2 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8f935769 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x94aca50b svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x997989de xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9b2939ea rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9c3cba68 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9edc7379 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa09b0f0d xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa1aaad88 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa2a26840 rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaaeb8922 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb1294914 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbb849394 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbd9ff3bc rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf36c854 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc0a684f5 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc357e01e rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc7f83818 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc9a6ca14 xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcc46e1c7 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcd7863cd xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcfb17bf9 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd1147bd6 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd2069732 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd23e4c76 xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd431f85c rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd655fb05 xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdd1040aa xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe4667b58 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe6da065e rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97ee240 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xebe044c5 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xebe88d1d svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeda7c90d rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf71a023d rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8363ea1 svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfa629d66 rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfd91e8b1 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0xff39122a cache_purge +EXPORT_SYMBOL net/tipc/tipc 0x01e61721 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0eb880ff tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x32e9cfc2 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3f75c27c tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x4fb38dd6 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x62f38981 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x7aa6a098 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x8512cb4a tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x988407fc tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9d9f123d tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xa3d1441a tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb1971a4e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb8a8346a tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xc3b1f376 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xe2ca0221 register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x0939cc02 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x0c342068 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x76320c91 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x8ee031f4 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL sound/ac97_bus 0x8cd68c28 ac97_bus_type +EXPORT_SYMBOL sound/soundcore 0x25b86f62 sound_class +EXPORT_SYMBOL sound/soundcore 0x61f3ffa4 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x7a8cd372 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x7c69d7d7 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x9353e753 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x98a76b10 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0x00112f51 groups_alloc +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x001adc7e gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x00600109 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x009192e4 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x00cb72ec simple_set_mnt +EXPORT_SYMBOL vmlinux 0x00e00a8a unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x00e6838b blk_run_queue +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00ffd3c7 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x010ddb2e tcp_sendpage +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x012a3951 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x012e6b2b inet_register_protosw +EXPORT_SYMBOL vmlinux 0x0160339a init_special_inode +EXPORT_SYMBOL vmlinux 0x0167bf3c tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x018a21d5 sk_run_filter +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01aa8f60 skb_pad +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0222d530 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023eb25e put_unused_fd +EXPORT_SYMBOL vmlinux 0x02462292 _read_lock_bh +EXPORT_SYMBOL vmlinux 0x025da070 snprintf +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x028488c9 inet_listen +EXPORT_SYMBOL vmlinux 0x0289b289 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x029043ed acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02c75b8a sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x02cd3086 __down_failed_trylock +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x0362d004 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037b6616 mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0x03960713 ioread16 +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03ca9385 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043b558e tty_register_device +EXPORT_SYMBOL vmlinux 0x0442b940 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0474cb63 km_policy_expired +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0490d5b0 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04e197f5 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05048b38 mca_is_adapter_used +EXPORT_SYMBOL vmlinux 0x050bd66b blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x0538a5db devm_ioport_map +EXPORT_SYMBOL vmlinux 0x0541699c sock_sendmsg +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05839232 bdi_destroy +EXPORT_SYMBOL vmlinux 0x058c75d9 acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x05ab5994 register_gifconf +EXPORT_SYMBOL vmlinux 0x05e1389a finish_wait +EXPORT_SYMBOL vmlinux 0x06108390 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x06127753 ioread16be +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x062a5665 redraw_screen +EXPORT_SYMBOL vmlinux 0x06348ef7 mca_device_set_claim +EXPORT_SYMBOL vmlinux 0x06377b13 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0643fb1c acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06a1aa24 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x06a456e6 dma_pool_free +EXPORT_SYMBOL vmlinux 0x06b845b5 bdevname +EXPORT_SYMBOL vmlinux 0x06d02c8f find_or_create_page +EXPORT_SYMBOL vmlinux 0x06db91f2 simple_write_end +EXPORT_SYMBOL vmlinux 0x06f2d5c7 mempool_free +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07048475 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0712c888 submit_bio +EXPORT_SYMBOL vmlinux 0x0731565c generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x07455ccf iget_locked +EXPORT_SYMBOL vmlinux 0x0753a354 set_page_dirty +EXPORT_SYMBOL vmlinux 0x075b6353 arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0x076efa7d ipv4_specific +EXPORT_SYMBOL vmlinux 0x0778a2c4 sock_no_bind +EXPORT_SYMBOL vmlinux 0x07848135 __breadahead +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x079fa66e key_unlink +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07e43c47 wait_for_completion +EXPORT_SYMBOL vmlinux 0x0809c2f2 unlock_page +EXPORT_SYMBOL vmlinux 0x080c114a shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x082bb8d3 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x087654c1 pci_dev_get +EXPORT_SYMBOL vmlinux 0x08cf4c9e __lock_page +EXPORT_SYMBOL vmlinux 0x08ecf3c7 kset_unregister +EXPORT_SYMBOL vmlinux 0x092111e4 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x09295058 skb_dequeue +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0934ca93 prepare_binprm +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x093fbfd4 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09668d57 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x0969a9b5 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a0b562 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x09aeaf8c out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x09c35b58 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d6a602 skb_under_panic +EXPORT_SYMBOL vmlinux 0x09f696e5 free_task +EXPORT_SYMBOL vmlinux 0x0a1c9f3d mod_timer +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a653f82 nf_log_packet +EXPORT_SYMBOL vmlinux 0x0a6c462a find_inode_number +EXPORT_SYMBOL vmlinux 0x0a7d20d1 blk_get_request +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0ac2ef3e vcc_insert_socket +EXPORT_SYMBOL vmlinux 0x0acad7fa key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b353626 iowrite8_rep +EXPORT_SYMBOL vmlinux 0x0b3e28c0 dst_alloc +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0baf117e kfifo_free +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bc6d920 __user_walk_fd +EXPORT_SYMBOL vmlinux 0x0bce3753 ioread32be +EXPORT_SYMBOL vmlinux 0x0bd7e145 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x0c2186a1 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c5fdeee tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x0ca214df pskb_copy +EXPORT_SYMBOL vmlinux 0x0cb6f854 atm_proc_root +EXPORT_SYMBOL vmlinux 0x0cda10c1 del_timer_sync +EXPORT_SYMBOL vmlinux 0x0d16f266 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4b77b7 gen_pool_add +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d7ac3ef blk_init_queue +EXPORT_SYMBOL vmlinux 0x0d7eae38 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0d8f63d6 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x0d9fd97e try_to_release_page +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dcf3c3b scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x0dd5e1cd d_invalidate +EXPORT_SYMBOL vmlinux 0x0decad93 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0df13dfb vm_insert_page +EXPORT_SYMBOL vmlinux 0x0e18ae1a _spin_lock_bh +EXPORT_SYMBOL vmlinux 0x0e746bed skb_split +EXPORT_SYMBOL vmlinux 0x0e8bb26d pnp_find_dev +EXPORT_SYMBOL vmlinux 0x0e9b0240 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x0ea7c088 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x0ead5073 vscnprintf +EXPORT_SYMBOL vmlinux 0x0ede5ad4 udp_prot +EXPORT_SYMBOL vmlinux 0x0eff65c3 misc_register +EXPORT_SYMBOL vmlinux 0x0f20956a call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x0f2c9c8f cpu_possible_map +EXPORT_SYMBOL vmlinux 0x0f31565b pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x0f5a92de dcache_lock +EXPORT_SYMBOL vmlinux 0x0fb58e7d hippi_type_trans +EXPORT_SYMBOL vmlinux 0x0fc386f2 generic_fillattr +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fe68457 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x0feb7286 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x107d6ba3 __get_free_pages +EXPORT_SYMBOL vmlinux 0x10892b26 nobh_write_end +EXPORT_SYMBOL vmlinux 0x10bf5259 dquot_transfer +EXPORT_SYMBOL vmlinux 0x10c419c1 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x10ed02f8 make_bad_inode +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x10f49a09 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x10fc65aa unregister_netdevice +EXPORT_SYMBOL vmlinux 0x11448973 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x11483685 fasync_helper +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11d75315 mca_device_status +EXPORT_SYMBOL vmlinux 0x12116015 __find_get_block +EXPORT_SYMBOL vmlinux 0x124873cf kmem_cache_create +EXPORT_SYMBOL vmlinux 0x12521317 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x1254e96f register_8022_client +EXPORT_SYMBOL vmlinux 0x1257b471 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x126d5a3f xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x126e146c blk_remove_plug +EXPORT_SYMBOL vmlinux 0x12a4c6f7 pci_find_device +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x1317db2e simple_release_fs +EXPORT_SYMBOL vmlinux 0x1321c8c9 dev_driver_string +EXPORT_SYMBOL vmlinux 0x13462e18 __brelse +EXPORT_SYMBOL vmlinux 0x134a204d udp_get_port +EXPORT_SYMBOL vmlinux 0x1357d636 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x1360478e tcp_prot +EXPORT_SYMBOL vmlinux 0x13a6d971 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x13ab889e key_link +EXPORT_SYMBOL vmlinux 0x13cfe0a5 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x13f6f841 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x14029a25 dev_open +EXPORT_SYMBOL vmlinux 0x141d08aa pci_set_master +EXPORT_SYMBOL vmlinux 0x141dbf9b acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x141f4802 idr_replace +EXPORT_SYMBOL vmlinux 0x14254778 poll_freewait +EXPORT_SYMBOL vmlinux 0x144074e6 skb_seq_read +EXPORT_SYMBOL vmlinux 0x147020bc xfrm_register_km +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x14af0cf7 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x14f13d3e icmp_send +EXPORT_SYMBOL vmlinux 0x151a314d tcf_action_exec +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x15456c08 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x154677ed iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x157e2b58 sk_stream_error +EXPORT_SYMBOL vmlinux 0x158e3493 sock_no_connect +EXPORT_SYMBOL vmlinux 0x1595e376 load_nls +EXPORT_SYMBOL vmlinux 0x15ae89a6 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x15cec7a8 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x15f28f83 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x15f92203 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x1638cf4f unregister_snap_client +EXPORT_SYMBOL vmlinux 0x164171a4 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x165b7a57 skb_append +EXPORT_SYMBOL vmlinux 0x165f034e free_netdev +EXPORT_SYMBOL vmlinux 0x16a0d934 netlink_ack +EXPORT_SYMBOL vmlinux 0x16a59fea permission +EXPORT_SYMBOL vmlinux 0x16bbd268 dump_thread +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17183bd3 lock_rename +EXPORT_SYMBOL vmlinux 0x172954a3 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x17381340 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x175a298d acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x1779cb15 find_task_by_pid +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17d59d01 schedule_timeout +EXPORT_SYMBOL vmlinux 0x17d7d255 put_files_struct +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17f98b5c sock_recvmsg +EXPORT_SYMBOL vmlinux 0x17ff6896 pnp_resource_change +EXPORT_SYMBOL vmlinux 0x18364dad unregister_nls +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1853beea eth_header_parse +EXPORT_SYMBOL vmlinux 0x1853f3d2 datagram_poll +EXPORT_SYMBOL vmlinux 0x18d9c9ad xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x193021c0 pcim_iomap +EXPORT_SYMBOL vmlinux 0x1938d3b0 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x19543c43 arp_send +EXPORT_SYMBOL vmlinux 0x1962df26 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19aa02f1 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x19c85c0c __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x19d5d20a acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x19f707df register_con_driver +EXPORT_SYMBOL vmlinux 0x1a2507a1 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a5dc61e inode_double_lock +EXPORT_SYMBOL vmlinux 0x1a5ef3d2 phys_to_machine_mapping +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b38720c inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6d9b3a tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x1b7d4074 printk +EXPORT_SYMBOL vmlinux 0x1b8bcb8c nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x1b90bc0e find_vma +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bb8c8a5 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x1beaaa2d __elv_add_request +EXPORT_SYMBOL vmlinux 0x1c69a032 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x1c788c98 dst_destroy +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cd5aa29 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x1d022c2b per_cpu__irq_regs +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de314f3 hpet_control +EXPORT_SYMBOL vmlinux 0x1df0fbff serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x1df73930 sk_free +EXPORT_SYMBOL vmlinux 0x1df7bc1c input_event +EXPORT_SYMBOL vmlinux 0x1e0b2e9c vfs_getattr +EXPORT_SYMBOL vmlinux 0x1e355f9d ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x1e4220d3 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x1e5ddbfd tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7f9f8a pci_reenable_device +EXPORT_SYMBOL vmlinux 0x1e93f6b7 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x1eb41d59 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x1eb922a3 IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x1eba9e49 iowrite16_rep +EXPORT_SYMBOL vmlinux 0x1f79950d path_lookup +EXPORT_SYMBOL vmlinux 0x1f88fcde boot_cpu_data +EXPORT_SYMBOL vmlinux 0x1f927b15 iunique +EXPORT_SYMBOL vmlinux 0x1fab3300 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x1fb469e2 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x1fba5fac inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x1fe5ede6 per_cpu__irq_stat +EXPORT_SYMBOL vmlinux 0x1ffa0791 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20104d23 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x2037b3f7 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x2060f57a neigh_event_ns +EXPORT_SYMBOL vmlinux 0x2064a1ca xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x2091f91c default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x20a0a9ff nf_reinject +EXPORT_SYMBOL vmlinux 0x20b3b3c2 d_find_alias +EXPORT_SYMBOL vmlinux 0x20c8fc33 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x211e4224 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x218a8590 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x21a53c8d __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x21b55ee7 dev_close +EXPORT_SYMBOL vmlinux 0x21bc6706 blk_put_request +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e81931 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x22187245 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x2241a928 ioread32 +EXPORT_SYMBOL vmlinux 0x2244321f acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x2248cc99 put_io_context +EXPORT_SYMBOL vmlinux 0x226313e0 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228bee98 input_unregister_device +EXPORT_SYMBOL vmlinux 0x2294e1c7 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x22a22f5e kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22f5ee05 neigh_for_each +EXPORT_SYMBOL vmlinux 0x22fc498d pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x23629393 update_region +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x236f0560 skb_clone +EXPORT_SYMBOL vmlinux 0x238b36b8 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x23a5a96b inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad070a set_current_groups +EXPORT_SYMBOL vmlinux 0x23d3f273 lock_may_read +EXPORT_SYMBOL vmlinux 0x23d43383 kobject_add +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2405ab85 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x242de687 inet_frags_init +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x244a04e9 acpi_root_dir +EXPORT_SYMBOL vmlinux 0x2483c21a kernel_bind +EXPORT_SYMBOL vmlinux 0x2490d614 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x24caccfb d_alloc_name +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24ed5ceb ht_create_irq +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2502092e tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x254a817b proc_bus +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x259970c1 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25fdd3aa bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x267b6ca4 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x267e6a51 unload_nls +EXPORT_SYMBOL vmlinux 0x268b071c netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x269daca8 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x26c9d390 ps2_drain +EXPORT_SYMBOL vmlinux 0x26cac7a2 input_register_handle +EXPORT_SYMBOL vmlinux 0x26e0a1ba dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x272552e6 add_wait_queue +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x27668764 file_fsync +EXPORT_SYMBOL vmlinux 0x2769b6ba pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x276a0b97 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x276e21eb skb_find_text +EXPORT_SYMBOL vmlinux 0x27821d41 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x27a27ac3 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x27a72488 ioread8_rep +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27d9e19a dma_async_client_unregister +EXPORT_SYMBOL vmlinux 0x27fbb6fb stop_tty +EXPORT_SYMBOL vmlinux 0x28552806 register_binfmt +EXPORT_SYMBOL vmlinux 0x2873f59f change_page_attr +EXPORT_SYMBOL vmlinux 0x2894fa42 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28d06fd8 search_binary_handler +EXPORT_SYMBOL vmlinux 0x28d3f3c0 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f35813 scnprintf +EXPORT_SYMBOL vmlinux 0x291f9bed bio_split_pool +EXPORT_SYMBOL vmlinux 0x2920ecd4 pci_enable_wake +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29749d36 follow_down +EXPORT_SYMBOL vmlinux 0x29c49ccc tc_classify +EXPORT_SYMBOL vmlinux 0x29cd3d81 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3c4dc2 proto_unregister +EXPORT_SYMBOL vmlinux 0x2a8e7444 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x2a97d317 seq_release_private +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2af13103 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x2b489532 tty_hangup +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2b819647 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bbad503 _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2becad38 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x2bfd7ceb fb_class +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c2512ea get_zeroed_page +EXPORT_SYMBOL vmlinux 0x2c3cbd5b generic_osync_inode +EXPORT_SYMBOL vmlinux 0x2c3eca89 seq_printf +EXPORT_SYMBOL vmlinux 0x2c5749e6 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x2c633002 bd_release +EXPORT_SYMBOL vmlinux 0x2c65a9f7 init_buffer +EXPORT_SYMBOL vmlinux 0x2c709c26 proc_symlink +EXPORT_SYMBOL vmlinux 0x2c89ea5e filemap_fault +EXPORT_SYMBOL vmlinux 0x2c8f5989 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x2ca20942 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x2ca53c5c gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2cb0e149 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x2cbcae99 acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2ced2fb3 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d5116bf dev_add_pack +EXPORT_SYMBOL vmlinux 0x2d5c06ec down_write_trylock +EXPORT_SYMBOL vmlinux 0x2d9227fe sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x2db717fe up_write +EXPORT_SYMBOL vmlinux 0x2dbc755e iowrite32_rep +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd3ac5a dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dfaa67d request_key_async +EXPORT_SYMBOL vmlinux 0x2e052ac8 __dst_free +EXPORT_SYMBOL vmlinux 0x2e0fd05b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x2e39de79 __alloc_pages +EXPORT_SYMBOL vmlinux 0x2e3f91b5 vfs_readv +EXPORT_SYMBOL vmlinux 0x2e51cf43 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x2e53ebcc __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e6e0f1b ida_init +EXPORT_SYMBOL vmlinux 0x2e9d3a7d mem_map +EXPORT_SYMBOL vmlinux 0x2f003354 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f5c4e5f sock_no_accept +EXPORT_SYMBOL vmlinux 0x2f65a5a5 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x2f9fd5d4 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x2fb14fa4 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2ff5a11a seq_open +EXPORT_SYMBOL vmlinux 0x2ff92ca0 find_next_bit +EXPORT_SYMBOL vmlinux 0x300c3bf2 netpoll_setup +EXPORT_SYMBOL vmlinux 0x3019b60a I_BDEV +EXPORT_SYMBOL vmlinux 0x30343e46 iowrite16be +EXPORT_SYMBOL vmlinux 0x30624c15 generic_read_dir +EXPORT_SYMBOL vmlinux 0x30c86d28 generic_commit_write +EXPORT_SYMBOL vmlinux 0x30e3b924 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ff6740 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3110f9f1 sysctl_data +EXPORT_SYMBOL vmlinux 0x3121e0c8 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x31241c79 do_splice_from +EXPORT_SYMBOL vmlinux 0x312a27c5 mca_device_set_name +EXPORT_SYMBOL vmlinux 0x312ec232 pnp_is_active +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314c4845 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x31644d18 block_prepare_write +EXPORT_SYMBOL vmlinux 0x3167ea19 global_flush_tlb +EXPORT_SYMBOL vmlinux 0x319102a0 __scm_send +EXPORT_SYMBOL vmlinux 0x31ab3460 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f1f475 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x321d351a generic_file_llseek +EXPORT_SYMBOL vmlinux 0x322502a4 kunmap +EXPORT_SYMBOL vmlinux 0x3231d503 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x3242aecb dev_unicast_add +EXPORT_SYMBOL vmlinux 0x324f3dda single_release +EXPORT_SYMBOL vmlinux 0x3257724f register_atm_ioctl +EXPORT_SYMBOL vmlinux 0x32d01fec acpi_attach_data +EXPORT_SYMBOL vmlinux 0x32f7e46d ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3309a19d register_qdisc +EXPORT_SYMBOL vmlinux 0x33232887 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x334180bf idr_get_new_above +EXPORT_SYMBOL vmlinux 0x33526483 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x3360bb18 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3379efa0 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x3385c8cb per_cpu__this_cpu_off +EXPORT_SYMBOL vmlinux 0x33934162 release_firmware +EXPORT_SYMBOL vmlinux 0x339578df tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x33967b0a handle_sysrq +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x3418b6e2 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x3421272c efi +EXPORT_SYMBOL vmlinux 0x34259f02 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b03e7b reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x34ddd799 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x34fc6781 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x357dcf46 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x35b474cb blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c4d7b0 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3652da36 sock_i_ino +EXPORT_SYMBOL vmlinux 0x3681f6e0 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x369ad5f0 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x36bd2865 __free_pages +EXPORT_SYMBOL vmlinux 0x36d5355b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x36f2c8e5 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x373e1ba5 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x374b0706 d_splice_alias +EXPORT_SYMBOL vmlinux 0x3756d07b inet_release +EXPORT_SYMBOL vmlinux 0x375bf494 iowrite8 +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x37644988 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x379d65f5 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x37a909f6 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d4b5ec dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37ea7d34 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x3800bfa4 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x380c7731 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x381a1c16 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x387434d1 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x387854df do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x389e200f ioread8 +EXPORT_SYMBOL vmlinux 0x38a08817 textsearch_register +EXPORT_SYMBOL vmlinux 0x38a8f605 secpath_dup +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38ce44d7 have_submounts +EXPORT_SYMBOL vmlinux 0x38ce4e86 tcp_close +EXPORT_SYMBOL vmlinux 0x38e9d58a call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x38f74922 tcf_register_action +EXPORT_SYMBOL vmlinux 0x38fed022 framebuffer_release +EXPORT_SYMBOL vmlinux 0x390bda98 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x3939a06a console_stop +EXPORT_SYMBOL vmlinux 0x39622ccd pskb_expand_head +EXPORT_SYMBOL vmlinux 0x3962c992 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39c6a9f0 elevator_exit +EXPORT_SYMBOL vmlinux 0x39cd771a ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x3a0fde3b compute_creds +EXPORT_SYMBOL vmlinux 0x3a1b9ca9 inet_accept +EXPORT_SYMBOL vmlinux 0x3a20f2f8 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a317e0e arp_find +EXPORT_SYMBOL vmlinux 0x3a3b23b7 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x3a43a65c eth_header_cache +EXPORT_SYMBOL vmlinux 0x3a7bfc8c ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3afe6499 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x3b1989df pnp_start_dev +EXPORT_SYMBOL vmlinux 0x3b2c7289 blk_complete_request +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b31426b invalidate_bdev +EXPORT_SYMBOL vmlinux 0x3b5ea4be iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x3bc0a144 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c2d3b62 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x3c4849e9 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x3c64b7d1 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cde8bbe register_netdevice +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d08eb4f inet_frags_fini +EXPORT_SYMBOL vmlinux 0x3d3ce86e get_io_context +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da1b07a machine_real_restart +EXPORT_SYMBOL vmlinux 0x3dc13c6d generic_listxattr +EXPORT_SYMBOL vmlinux 0x3dcdd7a1 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x3dce8a36 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x3ded866f blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x3dff4584 elevator_init +EXPORT_SYMBOL vmlinux 0x3e1df893 netdev_state_change +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e617be1 inet_ioctl +EXPORT_SYMBOL vmlinux 0x3e931b60 complete_request_key +EXPORT_SYMBOL vmlinux 0x3e95d1ea proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x3ed1234a invalidate_partition +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edb4524 may_umount_tree +EXPORT_SYMBOL vmlinux 0x3ef31711 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x3f072204 complete_all +EXPORT_SYMBOL vmlinux 0x3f0bfd2f write_inode_now +EXPORT_SYMBOL vmlinux 0x3f20eb88 generic_writepages +EXPORT_SYMBOL vmlinux 0x3f3c82f8 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x3f407eff ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x3f448332 simple_lookup +EXPORT_SYMBOL vmlinux 0x3f483887 input_register_handler +EXPORT_SYMBOL vmlinux 0x3fa0bf7c skb_copy +EXPORT_SYMBOL vmlinux 0x3fb37099 inode_double_unlock +EXPORT_SYMBOL vmlinux 0x3fb3ecad generic_make_request +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fe56992 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x40218981 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x40455cc8 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x405ef56e sock_setsockopt +EXPORT_SYMBOL vmlinux 0x4061ff6f neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x407a03f6 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x40956189 __kill_fasync +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a71749 simple_unlink +EXPORT_SYMBOL vmlinux 0x40b3c675 generic_write_checks +EXPORT_SYMBOL vmlinux 0x40dfbd60 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x40e7cb20 serio_interrupt +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41206e13 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41676a32 __nla_reserve +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418eaa2b ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x419143b6 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x41ec8a00 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422c05d0 acpi_get_data +EXPORT_SYMBOL vmlinux 0x422ee156 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x424166a3 __invalidate_device +EXPORT_SYMBOL vmlinux 0x4246d923 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x424d4b81 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x428ce555 send_sig +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x429c92d7 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x42a7097e send_sig_info +EXPORT_SYMBOL vmlinux 0x42cb4b6e elv_rb_add +EXPORT_SYMBOL vmlinux 0x42d79ffe nlmsg_notify +EXPORT_SYMBOL vmlinux 0x42de3ea8 nf_afinfo +EXPORT_SYMBOL vmlinux 0x42e61aa9 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x43085769 __seq_open_private +EXPORT_SYMBOL vmlinux 0x430b1e3a sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x431e23d9 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x432da342 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x43335a43 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x4357e0d8 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x43592419 sleep_on +EXPORT_SYMBOL vmlinux 0x435c9bf3 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x43800f68 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x43879e46 devm_free_irq +EXPORT_SYMBOL vmlinux 0x4398524f serio_unregister_port +EXPORT_SYMBOL vmlinux 0x43a8caf6 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x43b40de7 kunmap_atomic +EXPORT_SYMBOL vmlinux 0x43bdd372 request_resource +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x441fe079 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x44290bc7 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x443483c7 dget_locked +EXPORT_SYMBOL vmlinux 0x4442880d generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x446b1a3e complete_and_exit +EXPORT_SYMBOL vmlinux 0x4470fe19 kill_pid +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44bb647f mapping_tagged +EXPORT_SYMBOL vmlinux 0x44d65d32 console_start +EXPORT_SYMBOL vmlinux 0x44e69a3a xfrm_state_update +EXPORT_SYMBOL vmlinux 0x44f31ef0 inet_bind +EXPORT_SYMBOL vmlinux 0x45000847 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x4512bc69 __f_setown +EXPORT_SYMBOL vmlinux 0x451fd8d4 blk_unplug +EXPORT_SYMBOL vmlinux 0x452310ed blk_plug_device +EXPORT_SYMBOL vmlinux 0x45500240 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x455fd57d acpi_set_register +EXPORT_SYMBOL vmlinux 0x456213f0 end_request +EXPORT_SYMBOL vmlinux 0x45bb0352 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x45ca275f do_sync_write +EXPORT_SYMBOL vmlinux 0x4605f881 tcp_unhash +EXPORT_SYMBOL vmlinux 0x461d8f3f add_disk_randomness +EXPORT_SYMBOL vmlinux 0x461fdf24 __devm_request_region +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4694dcff dmam_pool_create +EXPORT_SYMBOL vmlinux 0x46a07d87 acpi_extract_package +EXPORT_SYMBOL vmlinux 0x46a9be0e skb_make_writable +EXPORT_SYMBOL vmlinux 0x46b6a6c9 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x46e51826 generic_getxattr +EXPORT_SYMBOL vmlinux 0x46eb2a0a dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x4727cf6e ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x472804ca devm_request_irq +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x4775eacf iowrite16 +EXPORT_SYMBOL vmlinux 0x477f7fd9 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x478ecc0c llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x47924aff inet_getname +EXPORT_SYMBOL vmlinux 0x47940a5d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x47a12a12 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x47f45b33 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x4807b785 neigh_update +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x481ff087 page_symlink +EXPORT_SYMBOL vmlinux 0x48326059 set_user_nice +EXPORT_SYMBOL vmlinux 0x48618fb7 pci_get_device +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x4873717a d_delete +EXPORT_SYMBOL vmlinux 0x487a2cdb acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x4888a014 __get_user_2 +EXPORT_SYMBOL vmlinux 0x4889c058 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x48a9fdbe generic_permission +EXPORT_SYMBOL vmlinux 0x48eec765 proc_root_driver +EXPORT_SYMBOL vmlinux 0x48f07026 key_create_or_update +EXPORT_SYMBOL vmlinux 0x491e8b40 end_page_writeback +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x49853ada iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x49c548c5 module_put +EXPORT_SYMBOL vmlinux 0x49d119a8 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x49d7b36b pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x49f41445 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x49f4e619 register_exec_domain +EXPORT_SYMBOL vmlinux 0x4a2d8f54 fb_find_mode +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a481ecb kthread_create +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4aebc45b bd_claim +EXPORT_SYMBOL vmlinux 0x4aff1e15 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x4b2e48ff security_inode_permission +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b48848a sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x4b6f34ad dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x4b8446fa rwsem_wake +EXPORT_SYMBOL vmlinux 0x4ba1c260 bdput +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c19624a iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x4c1fa18f km_policy_notify +EXPORT_SYMBOL vmlinux 0x4c3af445 __request_region +EXPORT_SYMBOL vmlinux 0x4c59652e ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4c5b2c2c nf_register_hooks +EXPORT_SYMBOL vmlinux 0x4c603683 __kfree_skb +EXPORT_SYMBOL vmlinux 0x4ca01f28 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cf71cd2 idr_remove_all +EXPORT_SYMBOL vmlinux 0x4cf9c90c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x4d10a478 notify_change +EXPORT_SYMBOL vmlinux 0x4d2e6f5b poll_initwait +EXPORT_SYMBOL vmlinux 0x4d33df45 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d58215d vc_lock_resize +EXPORT_SYMBOL vmlinux 0x4d658020 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x4d6d961c sock_no_getname +EXPORT_SYMBOL vmlinux 0x4d94fcd3 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x4d950ac8 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x4da3dcc3 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x4ddaa2ad kick_iocb +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df5aab7 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x4e180c97 ps2_init +EXPORT_SYMBOL vmlinux 0x4e1883ca atm_dev_deregister +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e4d64b2 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x4e59868b blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9d219c xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x4e9f3bcf keyring_clear +EXPORT_SYMBOL vmlinux 0x4ec34411 check_disk_change +EXPORT_SYMBOL vmlinux 0x4ec634a8 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x4ee23245 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x4efd6c8c subsystem_unregister +EXPORT_SYMBOL vmlinux 0x4f60904d sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5047afad vfs_mkdir +EXPORT_SYMBOL vmlinux 0x507a2bca mca_bus_type +EXPORT_SYMBOL vmlinux 0x508ef3dd remove_wait_queue +EXPORT_SYMBOL vmlinux 0x5091b14f dquot_initialize +EXPORT_SYMBOL vmlinux 0x50993dec pcim_iounmap +EXPORT_SYMBOL vmlinux 0x50aa177a rtnl_notify +EXPORT_SYMBOL vmlinux 0x5101c4fd dquot_free_space +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5119762f eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x5141414e dma_pool_create +EXPORT_SYMBOL vmlinux 0x51456fa9 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x5148ee2a rtc_lock +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x516c3cbe rtnl_create_link +EXPORT_SYMBOL vmlinux 0x5173c13d filemap_flush +EXPORT_SYMBOL vmlinux 0x518eb764 per_cpu__cpu_number +EXPORT_SYMBOL vmlinux 0x51a7a17c generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x51b799f6 km_state_expired +EXPORT_SYMBOL vmlinux 0x51ba5adb kernel_connect +EXPORT_SYMBOL vmlinux 0x51d7a776 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x51e3002b nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x524e4b69 register_chrdev +EXPORT_SYMBOL vmlinux 0x525cd570 per_cpu__cpu_core_map +EXPORT_SYMBOL vmlinux 0x52798d37 __next_cpu +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x532895ff __bio_clone +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x535d4e17 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x5379f142 generic_setlease +EXPORT_SYMBOL vmlinux 0x537fb515 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x53a5412d pci_find_bus +EXPORT_SYMBOL vmlinux 0x53a90cbb isapnp_protocol +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c4b881 __kfifo_get +EXPORT_SYMBOL vmlinux 0x53c90d8f generic_write_end +EXPORT_SYMBOL vmlinux 0x53d9f356 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x54324f95 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5439bac5 registered_fb +EXPORT_SYMBOL vmlinux 0x543c704e atm_dev_lookup +EXPORT_SYMBOL vmlinux 0x5442ceff pagecache_write_end +EXPORT_SYMBOL vmlinux 0x54545cf1 vfs_create +EXPORT_SYMBOL vmlinux 0x546f0b06 _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x549a34d7 submit_bh +EXPORT_SYMBOL vmlinux 0x54b8a3f9 per_cpu__x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x54da3406 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f88ea7 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x5504d358 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x551e667b pci_find_capability +EXPORT_SYMBOL vmlinux 0x5555b6b2 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x555e0b14 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x5566edf3 blk_get_queue +EXPORT_SYMBOL vmlinux 0x5568a400 kset_register +EXPORT_SYMBOL vmlinux 0x5568be43 lock_kernel +EXPORT_SYMBOL vmlinux 0x556ad1f2 blk_start_queue +EXPORT_SYMBOL vmlinux 0x557be50e read_cache_pages +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x5597b76e kmap_high +EXPORT_SYMBOL vmlinux 0x55ee350b __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x55f92479 open_exec +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x56179c5f mtrr_add +EXPORT_SYMBOL vmlinux 0x5628cb77 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x56954dff neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x56fa078d kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x5712fa11 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x571dd920 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x572699c8 mca_register_driver +EXPORT_SYMBOL vmlinux 0x5739acfe uts_sem +EXPORT_SYMBOL vmlinux 0x573b41a2 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x573d324f i8253_lock +EXPORT_SYMBOL vmlinux 0x57764b38 d_path +EXPORT_SYMBOL vmlinux 0x57986086 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x57bce42f pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0x57d6aa51 mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x5840de79 nobh_writepage +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x58488f9b ps2_schedule_command +EXPORT_SYMBOL vmlinux 0x585f28ee sysctl_string +EXPORT_SYMBOL vmlinux 0x5897bbef register_framebuffer +EXPORT_SYMBOL vmlinux 0x58aeeef4 audit_log_end +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x590342e9 copy_io_context +EXPORT_SYMBOL vmlinux 0x59070e1e ida_get_new_above +EXPORT_SYMBOL vmlinux 0x5913913a node_states +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5951dc5e keyring_search +EXPORT_SYMBOL vmlinux 0x5961bb33 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x597b81b3 tty_vhangup +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x5a06c01b get_write_access +EXPORT_SYMBOL vmlinux 0x5a3a08aa kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a800b1e cdev_init +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5aca3aa6 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x5ad7948d nf_getsockopt +EXPORT_SYMBOL vmlinux 0x5b1ceb04 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x5b28dae5 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x5b376ac3 module_remove_driver +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b69dcad bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x5bdd6edb _spin_trylock +EXPORT_SYMBOL vmlinux 0x5bfa7740 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x5bfd37ea elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c3cfe28 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5cbd43d1 release_sock +EXPORT_SYMBOL vmlinux 0x5cbeb8f3 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5ce90e83 kernel_read +EXPORT_SYMBOL vmlinux 0x5d17518f schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x5d2477b4 uart_resume_port +EXPORT_SYMBOL vmlinux 0x5d5133fb tty_check_change +EXPORT_SYMBOL vmlinux 0x5d54f9e6 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x5da46432 pci_find_slot +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dd545f5 arp_tbl +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5dfe8f1a unlock_kernel +EXPORT_SYMBOL vmlinux 0x5e0b4ddd mpage_writepages +EXPORT_SYMBOL vmlinux 0x5e1c1158 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x5e6410a4 kobject_register +EXPORT_SYMBOL vmlinux 0x5e76e30e pci_enable_device +EXPORT_SYMBOL vmlinux 0x5e808650 atm_charge +EXPORT_SYMBOL vmlinux 0x5eda76b5 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x5ede476c arp_create +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f6454c0 downgrade_write +EXPORT_SYMBOL vmlinux 0x5f696d2f free_buffer_head +EXPORT_SYMBOL vmlinux 0x5fa368d9 skb_store_bits +EXPORT_SYMBOL vmlinux 0x5fbb6ca0 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60253ab0 up_read +EXPORT_SYMBOL vmlinux 0x607b8c20 alloc_disk +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60a4461c __up_wakeup +EXPORT_SYMBOL vmlinux 0x60b81ea6 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x60be35e0 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x60cee8c6 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x60e93a68 pci_dev_put +EXPORT_SYMBOL vmlinux 0x61151700 mutex_trylock +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61308d61 kunmap_high +EXPORT_SYMBOL vmlinux 0x615f012b elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x61803e05 vfs_statfs +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61dc6da9 sock_release +EXPORT_SYMBOL vmlinux 0x61e38b2a qdisc_destroy +EXPORT_SYMBOL vmlinux 0x61e60dde do_splice_to +EXPORT_SYMBOL vmlinux 0x61fb5a29 block_commit_write +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x621bdf7d call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623fd391 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x6241fd2c acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x624f21df tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x625acc81 __down_failed_interruptible +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62892fd7 blk_insert_request +EXPORT_SYMBOL vmlinux 0x62c5a4f3 netlink_unicast +EXPORT_SYMBOL vmlinux 0x62c74450 filp_open +EXPORT_SYMBOL vmlinux 0x62f91807 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x6319a3cd kernel_getpeername +EXPORT_SYMBOL vmlinux 0x63600656 k8_northbridges +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x6378b2b3 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x63dfe1b4 hpet_unregister +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64238262 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x6429ea7e qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649fdfc7 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x64c9806b __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x64dd4880 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x64f2150c eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x64f4054a vcc_release_async +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x650e011a netif_carrier_off +EXPORT_SYMBOL vmlinux 0x65107ab3 names_cachep +EXPORT_SYMBOL vmlinux 0x652f7d50 unlock_super +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6587fd79 set_disk_ro +EXPORT_SYMBOL vmlinux 0x6599eecb end_that_request_last +EXPORT_SYMBOL vmlinux 0x65a18579 read_cache_page +EXPORT_SYMBOL vmlinux 0x65e843e7 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x65fdfa8a vc_resize +EXPORT_SYMBOL vmlinux 0x6623214f down_write +EXPORT_SYMBOL vmlinux 0x662f3b87 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x664a02fb blk_execute_rq +EXPORT_SYMBOL vmlinux 0x6671c5cc dev_get_flags +EXPORT_SYMBOL vmlinux 0x667ba685 cont_write_begin +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66bb8b09 sync_page_range +EXPORT_SYMBOL vmlinux 0x66f5907a request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x66ff80cb dev_get_by_index +EXPORT_SYMBOL vmlinux 0x671a4606 mpage_readpages +EXPORT_SYMBOL vmlinux 0x67229cad __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x679a54f2 init_timer +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67c3bc80 set_device_ro +EXPORT_SYMBOL vmlinux 0x67f36b7c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x681ae561 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x686f1325 hpet_alloc +EXPORT_SYMBOL vmlinux 0x68e8f7f6 vfs_llseek +EXPORT_SYMBOL vmlinux 0x68fc89f6 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x69005013 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x69306add elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x6989a769 vsnprintf +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69c1673a tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69e5ba64 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x69e6c570 bdev_read_only +EXPORT_SYMBOL vmlinux 0x69f4c0d3 init_file +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a085fa5 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x6a0d4175 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6aae755c alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b6fbdd5 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x6b737e45 bio_hw_segments +EXPORT_SYMBOL vmlinux 0x6b8c4f81 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x6b8e1f1e uart_register_driver +EXPORT_SYMBOL vmlinux 0x6b90f922 bio_put +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6b95785b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x6b9b1084 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c380750 brioctl_set +EXPORT_SYMBOL vmlinux 0x6c5003f7 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x6c60d896 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c7ef66f tcp_ioctl +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce183a0 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d1ced27 vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d33adf8 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d451868 qdisc_reset +EXPORT_SYMBOL vmlinux 0x6d8894b6 sock_no_listen +EXPORT_SYMBOL vmlinux 0x6da5497e simple_prepare_write +EXPORT_SYMBOL vmlinux 0x6da8a811 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6dd1ec75 pci_map_rom +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e04f482 pci_remove_rom +EXPORT_SYMBOL vmlinux 0x6e0ff1f9 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x6e185827 _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x6e1a4bbb udp_hash_lock +EXPORT_SYMBOL vmlinux 0x6e2ece60 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6e440b58 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e976e2b kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x6e9b4219 uart_match_port +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ebb9eeb d_alloc +EXPORT_SYMBOL vmlinux 0x6ebbc264 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x6faa475a cond_resched_lock +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x700236e7 dump_fpu +EXPORT_SYMBOL vmlinux 0x7004e3ff nla_put +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x702e312e seq_read +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7054e44c set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x706e796b kmem_cache_size +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e09ba8 __grab_cache_page +EXPORT_SYMBOL vmlinux 0x70e47f48 pci_select_bars +EXPORT_SYMBOL vmlinux 0x70fda703 simple_statfs +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x7164b233 may_umount +EXPORT_SYMBOL vmlinux 0x71688e67 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x716c1a8a dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7179511b scm_fp_dup +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71aa2ce3 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x71cc3739 con_is_bound +EXPORT_SYMBOL vmlinux 0x71d9a346 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x72050595 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x72086b7b put_filp +EXPORT_SYMBOL vmlinux 0x7209003c skb_over_panic +EXPORT_SYMBOL vmlinux 0x72093864 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x722a0a0a _read_lock +EXPORT_SYMBOL vmlinux 0x722a5b73 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x726cb82c fddi_type_trans +EXPORT_SYMBOL vmlinux 0x727c12c9 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b30674 kill_fasync +EXPORT_SYMBOL vmlinux 0x72d00fe8 inode_setattr +EXPORT_SYMBOL vmlinux 0x72dedb63 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x73010c95 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x7314c41e blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x7325e8d2 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x73442f8a sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x7354c445 page_readlink +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x739617d7 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x73acdb7d vfs_readdir +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740146e0 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740c37b7 mempool_create_node +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741f1f6e hpet_register +EXPORT_SYMBOL vmlinux 0x742b33c1 deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0x74420bcc sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x744a4d1c __alloc_skb +EXPORT_SYMBOL vmlinux 0x74616c28 vfs_symlink +EXPORT_SYMBOL vmlinux 0x7464453c inode_change_ok +EXPORT_SYMBOL vmlinux 0x74675ed2 sysctl_pathname +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74879c16 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x7492ff05 d_alloc_root +EXPORT_SYMBOL vmlinux 0x74a9583f pci_dev_driver +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74fe4190 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x75452a2e skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x75502131 xfrm_nl +EXPORT_SYMBOL vmlinux 0x75965ec2 vfs_read +EXPORT_SYMBOL vmlinux 0x75b12cc6 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x75ec5e65 bio_free +EXPORT_SYMBOL vmlinux 0x75f29934 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760a70f4 tcp_child_process +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7627c335 _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x763c94f7 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x76430786 _spin_unlock +EXPORT_SYMBOL vmlinux 0x765987f0 block_write_end +EXPORT_SYMBOL vmlinux 0x767de225 drop_super +EXPORT_SYMBOL vmlinux 0x7682a4be inet_csk_accept +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x7726dfe0 bdget +EXPORT_SYMBOL vmlinux 0x77395efa __user_walk +EXPORT_SYMBOL vmlinux 0x77524a43 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x775d5c49 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x7761caf9 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x77738d32 key_alloc +EXPORT_SYMBOL vmlinux 0x77ce8790 get_fs_type +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x7829d722 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x7833d1c9 atm_init_aal5 +EXPORT_SYMBOL vmlinux 0x78703b07 kill_anon_super +EXPORT_SYMBOL vmlinux 0x787880e5 init_net +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e1954f sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x78e5e4c2 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x792eee31 vmap +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794c1398 dmi_check_system +EXPORT_SYMBOL vmlinux 0x795340bb __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x7955b0b5 mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x7991e87a tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79b6aefc netdev_set_master +EXPORT_SYMBOL vmlinux 0x79d0f4ac create_empty_buffers +EXPORT_SYMBOL vmlinux 0x79d78ff5 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x7a16d083 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x7a20e50f swap_io_context +EXPORT_SYMBOL vmlinux 0x7a246032 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x7a513713 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x7a55bd79 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x7a57754d simple_readpage +EXPORT_SYMBOL vmlinux 0x7a812ff9 inet_shutdown +EXPORT_SYMBOL vmlinux 0x7ac2353e bio_split +EXPORT_SYMBOL vmlinux 0x7ac46eb9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x7ae957d1 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b04cc91 mempool_destroy +EXPORT_SYMBOL vmlinux 0x7b19d1b5 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x7b26aef0 pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b60ced0 mnt_unpin +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7c16e8cf sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x7c2e161e ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c9049bf prepare_to_wait +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7ccb6842 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x7cd457c0 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x7d01074d register_sysrq_key +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1f3cd4 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x7d278df7 _write_lock_bh +EXPORT_SYMBOL vmlinux 0x7d6cd37f remove_suid +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d93e385 follow_up +EXPORT_SYMBOL vmlinux 0x7d96af20 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x7dacc271 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x7db8984a current_fs_time +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de17331 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x7e007b3f wireless_send_event +EXPORT_SYMBOL vmlinux 0x7e1325a8 input_close_device +EXPORT_SYMBOL vmlinux 0x7e38a29e tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x7e5226d2 sock_register +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ea3db81 simple_rmdir +EXPORT_SYMBOL vmlinux 0x7ece1d05 pci_release_regions +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7f9f08e9 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0x7fa2db9a inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x806e106c mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x8094204a wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x80c81272 set_irq_chip +EXPORT_SYMBOL vmlinux 0x80ca2713 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x80d0d0d7 sock_create +EXPORT_SYMBOL vmlinux 0x8111a264 file_update_time +EXPORT_SYMBOL vmlinux 0x8132bb83 __bread +EXPORT_SYMBOL vmlinux 0x8144f305 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8151079d sk_reset_timer +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8169e70b profile_pc +EXPORT_SYMBOL vmlinux 0x818ab473 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x81d06abf blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81f07500 tty_register_driver +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212c556 inet_select_addr +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82617f9f mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x826a5324 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x82ad2541 dump_trace +EXPORT_SYMBOL vmlinux 0x82dce8d0 llc_sap_close +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x83015749 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x8304926c sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x833643a1 pci_match_id +EXPORT_SYMBOL vmlinux 0x833d40d6 __ht_create_irq +EXPORT_SYMBOL vmlinux 0x83457bf8 mnt_pin +EXPORT_SYMBOL vmlinux 0x83686074 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x83735679 seq_puts +EXPORT_SYMBOL vmlinux 0x8380091f llc_sap_find +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b0550d neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x83bd6724 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x83cbc699 mutex_lock +EXPORT_SYMBOL vmlinux 0x83d80cd4 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x83e84bbe __mod_timer +EXPORT_SYMBOL vmlinux 0x843a6ac8 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x844b1a6f dma_async_device_register +EXPORT_SYMBOL vmlinux 0x845876b2 blk_register_region +EXPORT_SYMBOL vmlinux 0x847b9211 __kfifo_put +EXPORT_SYMBOL vmlinux 0x84b1b0f3 kill_litter_super +EXPORT_SYMBOL vmlinux 0x84daabab empty_zero_page +EXPORT_SYMBOL vmlinux 0x84ee5580 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x8500b6fe inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x8528e49f skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x85402f49 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x854f8c66 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x854f9a25 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x855f73d7 per_cpu__current_task +EXPORT_SYMBOL vmlinux 0x8569b9ec acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x85902f79 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85b4fcf0 pci_request_regions +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x86034cf8 dq_data_lock +EXPORT_SYMBOL vmlinux 0x86259700 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8659f63b mempool_create +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8667009a redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86bc8694 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x86bd053a sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x86ca3252 do_munmap +EXPORT_SYMBOL vmlinux 0x86d9ccf9 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x87022d77 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x87143210 give_up_console +EXPORT_SYMBOL vmlinux 0x871ddb75 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x8727b2c3 module_add_driver +EXPORT_SYMBOL vmlinux 0x872acea3 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x874aea72 acpi_os_signal +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x87dec13b block_write_full_page +EXPORT_SYMBOL vmlinux 0x87e10e0a simple_transaction_release +EXPORT_SYMBOL vmlinux 0x87f3e2fe __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88640159 _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x886cc3f5 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x88793c58 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x88eaa90f mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x893aeeff per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89aab407 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x89bfb764 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e9e5a9 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x8a2413bd ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x8a7b6b15 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a90d932 allocate_resource +EXPORT_SYMBOL vmlinux 0x8a920213 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x8a9747f7 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9a57e8 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x8ad12c54 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x8aea3dfd __netif_schedule +EXPORT_SYMBOL vmlinux 0x8aef7a67 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b19aec5 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x8b25cb69 dma_async_client_chan_request +EXPORT_SYMBOL vmlinux 0x8b5a6eae pnp_device_attach +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7248d2 generic_readlink +EXPORT_SYMBOL vmlinux 0x8b735172 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x8b8230ea xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x8b8a3dc3 __vmalloc +EXPORT_SYMBOL vmlinux 0x8b9e2bad unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x8bb33e7d __release_region +EXPORT_SYMBOL vmlinux 0x8bbf3c20 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x8c224688 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x8c4123d0 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x8c6bd064 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d39d363 bdi_init +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d89f3a1 ip_fragment +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dfba886 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e18f198 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x8e48b761 wake_up_process +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e9294c2 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x8e9a0c68 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x8ed053f6 udp_ioctl +EXPORT_SYMBOL vmlinux 0x8f5abeea __rta_fill +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f8be1df tcf_hash_create +EXPORT_SYMBOL vmlinux 0x8fa8bbcd qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x8fb02387 km_new_mapping +EXPORT_SYMBOL vmlinux 0x8fba693d fd_install +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900d6536 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x9070b3f2 ioport_resource +EXPORT_SYMBOL vmlinux 0x90809a84 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x908aa9b2 iowrite32 +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90dd2a16 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x90e176db pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x9160344d contig_page_data +EXPORT_SYMBOL vmlinux 0x91998ee2 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x91ca8959 acpi_get_register +EXPORT_SYMBOL vmlinux 0x91d6536d __mutex_init +EXPORT_SYMBOL vmlinux 0x920c49ab rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x928c9e97 inode_init_once +EXPORT_SYMBOL vmlinux 0x92a3f2f3 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x92b2100c lock_sock_nested +EXPORT_SYMBOL vmlinux 0x92ba4e0d pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x930346df sock_no_mmap +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x931bf944 pci_iounmap +EXPORT_SYMBOL vmlinux 0x9326a7de gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x932b7f5e sock_map_fd +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x9340f02f dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x934c576c cpu_present_map +EXPORT_SYMBOL vmlinux 0x93590a1d generate_resume_trace +EXPORT_SYMBOL vmlinux 0x93857045 __getblk +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x942b10bd nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x9435296d ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x944c2b60 vc_cons +EXPORT_SYMBOL vmlinux 0x948ea4b7 set_anon_super +EXPORT_SYMBOL vmlinux 0x949335b7 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x94a72bc4 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x94b6864e user_revoke +EXPORT_SYMBOL vmlinux 0x94dedf36 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x9504ec64 idr_get_new +EXPORT_SYMBOL vmlinux 0x9532fa34 eth_type_trans +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x95475fa3 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x9548dbd0 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x958d5b2c end_that_request_first +EXPORT_SYMBOL vmlinux 0x95c10c54 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x95cc2139 __PAGE_KERNEL +EXPORT_SYMBOL vmlinux 0x95f33aa3 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x95fde4e4 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0x963fe699 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x966b66b7 thaw_bdev +EXPORT_SYMBOL vmlinux 0x9690c427 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x96b27088 __down_failed +EXPORT_SYMBOL vmlinux 0x96f929e9 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x96fed223 take_over_console +EXPORT_SYMBOL vmlinux 0x975472f1 d_instantiate +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975f8b3e ida_remove +EXPORT_SYMBOL vmlinux 0x9781d2e2 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x97a93016 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x97b5d191 __break_lease +EXPORT_SYMBOL vmlinux 0x97caf90d neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97edcc98 neigh_table_init +EXPORT_SYMBOL vmlinux 0x97f8fddf get_empty_filp +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x982e4cc3 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x9835f043 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x98453170 bio_copy_user +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98a7a709 km_query +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98b1f5e8 del_timer +EXPORT_SYMBOL vmlinux 0x98b5af00 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x98f5a7a9 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x9941ccb8 free_pages +EXPORT_SYMBOL vmlinux 0x99850530 kobject_get +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999a16c4 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99ccc620 deactivate_super +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99cf24a1 tty_set_operations +EXPORT_SYMBOL vmlinux 0x99e04d84 load_nls_default +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a1472ec sk_wait_data +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a4d63c7 posix_test_lock +EXPORT_SYMBOL vmlinux 0x9a5024bf iget5_locked +EXPORT_SYMBOL vmlinux 0x9a5656e6 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a7f232a xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x9aac983a cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x9ab9e42d pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x9ae562ac __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x9ae8b12a pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9ae8ea00 unregister_key_type +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b192848 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x9b229f78 block_truncate_page +EXPORT_SYMBOL vmlinux 0x9b28c545 devm_iounmap +EXPORT_SYMBOL vmlinux 0x9b2e26a8 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x9b5bdbcb __serio_register_port +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b718427 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9b76e913 init_task +EXPORT_SYMBOL vmlinux 0x9b7dd6da tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x9b7e3f24 input_free_device +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bda453c netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c047e91 d_namespace_path +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c7725b4 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x9c877b78 dquot_release +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cd2e1cc pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d4b4a0a set_binfmt +EXPORT_SYMBOL vmlinux 0x9d7b4c55 fput +EXPORT_SYMBOL vmlinux 0x9de5e164 genl_register_ops +EXPORT_SYMBOL vmlinux 0x9df0542a idr_remove +EXPORT_SYMBOL vmlinux 0x9e2847ee scm_detach_fds +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e650251 seq_open_private +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9eb92d48 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x9ebadc8e tcp_disconnect +EXPORT_SYMBOL vmlinux 0x9ebb60e4 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9edca1a7 fb_get_mode +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9eff34a1 bio_map_kern +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fce80f0 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0x9ff2310d blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x9ffad76d path_release +EXPORT_SYMBOL vmlinux 0x9ffb5058 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x9fffb89e acpi_bus_start +EXPORT_SYMBOL vmlinux 0xa020cdf6 dquot_drop +EXPORT_SYMBOL vmlinux 0xa0350991 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa03d6a57 __get_user_4 +EXPORT_SYMBOL vmlinux 0xa0497820 ether_setup +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05c1e77 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0dd7582 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xa0f3d47c sk_common_release +EXPORT_SYMBOL vmlinux 0xa0f8033b pci_set_mwi +EXPORT_SYMBOL vmlinux 0xa0fb44ac blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0xa0fdf460 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa125ad39 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa140db93 force_sig +EXPORT_SYMBOL vmlinux 0xa170bd6e put_disk +EXPORT_SYMBOL vmlinux 0xa1a6414c iowrite32be +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1d0ba48 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1eaf462 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2268b59 mutex_unlock +EXPORT_SYMBOL vmlinux 0xa26ee49c netlink_dump_start +EXPORT_SYMBOL vmlinux 0xa271c6b2 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2c9e22b dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xa2f2eb82 new_inode +EXPORT_SYMBOL vmlinux 0xa2fc95b8 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xa308ae50 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa3424439 tty_mutex +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37b7fcd pci_release_region +EXPORT_SYMBOL vmlinux 0xa3808500 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xa382ce72 ip_route_input +EXPORT_SYMBOL vmlinux 0xa38afbdf input_flush_device +EXPORT_SYMBOL vmlinux 0xa38d5b9d dput +EXPORT_SYMBOL vmlinux 0xa395a772 kfifo_init +EXPORT_SYMBOL vmlinux 0xa3bbcd80 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xa3ee4ab6 igrab +EXPORT_SYMBOL vmlinux 0xa3fb424a sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xa3fdf438 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xa40cb852 lease_modify +EXPORT_SYMBOL vmlinux 0xa4141eb9 pci_choose_state +EXPORT_SYMBOL vmlinux 0xa43cff29 blkdev_put +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa46dc984 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xa4abb83c cpu_callout_map +EXPORT_SYMBOL vmlinux 0xa4e987e1 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa5602baf proc_clear_tty +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa57f0a13 bioset_free +EXPORT_SYMBOL vmlinux 0xa580d44c fb_set_cmap +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59c0666 acpi_strict +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa657f6bd lookup_one_len +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa6814433 groups_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a9c084 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e7e0c2 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0xa7081aa3 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa72ae60e __pci_register_driver +EXPORT_SYMBOL vmlinux 0xa738962e fget +EXPORT_SYMBOL vmlinux 0xa749f852 add_disk +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa7578385 sock_create_kern +EXPORT_SYMBOL vmlinux 0xa7579d55 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xa770b803 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xa772a68e generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xa78c1853 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7cbbe73 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xa7d0bcb2 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xa7e1b46c gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xa8039724 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xa88c961e ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xa88d487b devm_ioremap +EXPORT_SYMBOL vmlinux 0xa8ad9b7b ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xa8bf9f88 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xa8d8a302 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa8eebd08 mpage_readpage +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91c9d3a wireless_spy_update +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa9323ae5 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xa94b8fcd _write_trylock +EXPORT_SYMBOL vmlinux 0xa9508a16 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xa984725e tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa9891e7c splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xa9aa3bf6 tty_name +EXPORT_SYMBOL vmlinux 0xa9be76e8 clocksource_register +EXPORT_SYMBOL vmlinux 0xa9bed780 km_state_notify +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa4d5853 udplite_prot +EXPORT_SYMBOL vmlinux 0xaa603444 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xaa72b368 nf_register_hook +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa96de60 inet_frag_find +EXPORT_SYMBOL vmlinux 0xaac0d9b7 mca_device_write_pos +EXPORT_SYMBOL vmlinux 0xaacaccf0 find_lock_page +EXPORT_SYMBOL vmlinux 0xaade7efd ilookup5 +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab49cc58 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xab5470b7 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab6ad34a elv_queue_empty +EXPORT_SYMBOL vmlinux 0xab6b5754 bio_alloc +EXPORT_SYMBOL vmlinux 0xab716971 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xab72cd56 make_EII_client +EXPORT_SYMBOL vmlinux 0xab95945a xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xab984e46 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xaba9ffff blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0xabc54bb2 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabf92ddf __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xac0af15e serio_reconnect +EXPORT_SYMBOL vmlinux 0xac3a838d key_validate +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xaca04c2c textsearch_prepare +EXPORT_SYMBOL vmlinux 0xacc0dbfc acpi_get_table +EXPORT_SYMBOL vmlinux 0xacc8dd43 vfs_quota_sync +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0ce984 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad14407c blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0xad54ccb4 forbid_dac +EXPORT_SYMBOL vmlinux 0xad55340f fb_blank +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb0668f inet_del_protocol +EXPORT_SYMBOL vmlinux 0xadb1057b inet_put_port +EXPORT_SYMBOL vmlinux 0xadb7a023 complete +EXPORT_SYMBOL vmlinux 0xadcee492 netif_device_attach +EXPORT_SYMBOL vmlinux 0xadfe5865 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xae3a6727 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0xaec4759f vprintk +EXPORT_SYMBOL vmlinux 0xaf03d600 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xaf2af931 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xaf38a6b9 input_release_device +EXPORT_SYMBOL vmlinux 0xaf3e4837 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xaf67271b tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xaf95aca9 seq_path +EXPORT_SYMBOL vmlinux 0xaf9f6576 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xafa06287 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xafba65ff textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xafe889d3 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xaff45468 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xaff85b7f flush_old_exec +EXPORT_SYMBOL vmlinux 0xafff6103 _write_lock +EXPORT_SYMBOL vmlinux 0xb01a9e80 input_set_capability +EXPORT_SYMBOL vmlinux 0xb059659c tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xb05fc1cf mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07ceae3 create_proc_entry +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb08f76ad gen_pool_free +EXPORT_SYMBOL vmlinux 0xb0989817 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c60426 unlock_buffer +EXPORT_SYMBOL vmlinux 0xb0d87ae2 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb11445c6 cdev_add +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb125d3db pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xb13e2e14 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c7ee17 freeze_bdev +EXPORT_SYMBOL vmlinux 0xb1cb1056 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xb1fde395 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xb24a7857 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb26bd030 d_move +EXPORT_SYMBOL vmlinux 0xb270cdcf pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xb2780f36 mempool_alloc +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb29af880 noop_qdisc +EXPORT_SYMBOL vmlinux 0xb2b01c8d __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xb2b7e152 sock_no_poll +EXPORT_SYMBOL vmlinux 0xb2be638a dma_chan_cleanup +EXPORT_SYMBOL vmlinux 0xb2d56e2b per_cpu__cpu_info +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb32242d3 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb367de4c dev_set_mtu +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb37bfa41 kobject_set_name +EXPORT_SYMBOL vmlinux 0xb389f407 arp_xmit +EXPORT_SYMBOL vmlinux 0xb39026e4 mempool_resize +EXPORT_SYMBOL vmlinux 0xb3a2d3fd tcf_hash_search +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3fc3b31 blk_put_queue +EXPORT_SYMBOL vmlinux 0xb40f345b kernel_sendpage +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb4a4fcb6 vfs_unlink +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4c2f3a7 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xb532e2aa pci_iomap +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb558802b kfree_skb +EXPORT_SYMBOL vmlinux 0xb559e895 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xb572b83f vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0xb58e6f60 set_blocksize +EXPORT_SYMBOL vmlinux 0xb59502aa dquot_commit +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aeef94 kobject_put +EXPORT_SYMBOL vmlinux 0xb5b4f0c9 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xb5b9d827 kfifo_alloc +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb61cae56 request_key +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb69324af udp_disconnect +EXPORT_SYMBOL vmlinux 0xb6c14ef1 bio_add_page +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7500665 dev_load +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7892d95 dentry_open +EXPORT_SYMBOL vmlinux 0xb7a32f58 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xb7b2578b inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7fc6d1d xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xb80f827e atm_alloc_charge +EXPORT_SYMBOL vmlinux 0xb8445a9f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xb852314c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb8654ce9 alloc_trdev +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8995b26 mca_device_claimed +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aaa201 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xb8b485a3 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e89b5e page_address +EXPORT_SYMBOL vmlinux 0xb92703a3 d_genocide +EXPORT_SYMBOL vmlinux 0xb93fc869 put_tty_driver +EXPORT_SYMBOL vmlinux 0xb9c1f941 simple_write_begin +EXPORT_SYMBOL vmlinux 0xb9c6b3f5 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xb9e05fa8 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0xb9efbbcd seq_release +EXPORT_SYMBOL vmlinux 0xb9f4c9ed set_bh_page +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba69dae3 proc_dostring +EXPORT_SYMBOL vmlinux 0xbaadbd11 __wake_up +EXPORT_SYMBOL vmlinux 0xbacd610b ll_rw_block +EXPORT_SYMBOL vmlinux 0xbb14e9fb register_console +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1b8e09 kobject_del +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb9c3517 get_sb_bdev +EXPORT_SYMBOL vmlinux 0xbb9d9e8d tcf_em_register +EXPORT_SYMBOL vmlinux 0xbbc3877f vfs_mknod +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbdc2002 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xbc449819 key_revoke +EXPORT_SYMBOL vmlinux 0xbca09dc7 idr_pre_get +EXPORT_SYMBOL vmlinux 0xbca5a971 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc94c0c blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xbcda50ad tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xbcda9db7 open_by_devnum +EXPORT_SYMBOL vmlinux 0xbcf8c1f8 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0xbcf8cf85 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xbd09aff4 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xbd27d0da tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xbd436f1e blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xbd586b3a input_open_device +EXPORT_SYMBOL vmlinux 0xbd61261f dev_change_flags +EXPORT_SYMBOL vmlinux 0xbd8113ba get_super +EXPORT_SYMBOL vmlinux 0xbda8d3de sync_blockdev +EXPORT_SYMBOL vmlinux 0xbde131f6 xrlim_allow +EXPORT_SYMBOL vmlinux 0xbdeaf41a percpu_counter_init +EXPORT_SYMBOL vmlinux 0xbdf814b3 fsync_bdev +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe3d7faa skb_truesize_bug +EXPORT_SYMBOL vmlinux 0xbe4ac71a __lock_buffer +EXPORT_SYMBOL vmlinux 0xbe77f6e2 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xbe958549 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xbedd4ade cpu_online_map +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf789510 put_page +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbfc2fa38 filp_close +EXPORT_SYMBOL vmlinux 0xbfd99a4c remove_proc_entry +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc03b1137 pci_disable_device +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05ee563 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xc0741e75 simple_fill_super +EXPORT_SYMBOL vmlinux 0xc086fe6f sock_rfree +EXPORT_SYMBOL vmlinux 0xc09bd611 generic_setxattr +EXPORT_SYMBOL vmlinux 0xc0cec030 audit_log_format +EXPORT_SYMBOL vmlinux 0xc0f7236b uart_update_timeout +EXPORT_SYMBOL vmlinux 0xc0fa04aa _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xc117fb7a bio_clone +EXPORT_SYMBOL vmlinux 0xc12de05e blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xc137cb14 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xc14a76d1 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xc1897ecc netif_device_detach +EXPORT_SYMBOL vmlinux 0xc202a884 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xc2054a6a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xc222a37e pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xc22b90b5 struct_module +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25f38de skb_queue_head +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc2c6d4a4 eth_header +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e84217 should_remove_suid +EXPORT_SYMBOL vmlinux 0xc2f60784 bmap +EXPORT_SYMBOL vmlinux 0xc3000d47 ip_dev_find +EXPORT_SYMBOL vmlinux 0xc3049699 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xc30dc637 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0xc32ad698 __nla_put +EXPORT_SYMBOL vmlinux 0xc332b701 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xc359ec0d rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xc38992e4 serio_close +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc404f78b pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xc44b5e86 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4adcc50 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xc4e2eabb elv_add_request +EXPORT_SYMBOL vmlinux 0xc50d5958 serio_rescan +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5391ec3 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xc5527a86 close_bdev_excl +EXPORT_SYMBOL vmlinux 0xc567b138 is_container_init +EXPORT_SYMBOL vmlinux 0xc588c6e4 ilookup +EXPORT_SYMBOL vmlinux 0xc5cdf989 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xc5f49825 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xc6044150 skb_unlink +EXPORT_SYMBOL vmlinux 0xc610ece0 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xc63b26ed pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xc6641b66 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xc66d71b2 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc7021062 single_open +EXPORT_SYMBOL vmlinux 0xc70abf4b lock_super +EXPORT_SYMBOL vmlinux 0xc715de27 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72d8064 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xc77e9657 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0xc780070d end_dequeued_request +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7e9188d pci_assign_resource +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8353a8e xfrm_state_add +EXPORT_SYMBOL vmlinux 0xc83d9d21 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xc853730b sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xc854077c generic_unplug_device +EXPORT_SYMBOL vmlinux 0xc8606115 backlight_device_register +EXPORT_SYMBOL vmlinux 0xc886155c tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xc88c75f8 mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8be7b15 _spin_lock +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc8cf9ad3 open_bdev_excl +EXPORT_SYMBOL vmlinux 0xc8d458b8 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xc8e8f427 serio_open +EXPORT_SYMBOL vmlinux 0xc8f66d7c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xc90a58ed elv_rb_find +EXPORT_SYMBOL vmlinux 0xc912b228 pci_restore_state +EXPORT_SYMBOL vmlinux 0xc91acc27 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0xc92ea824 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xc936807d clear_inode +EXPORT_SYMBOL vmlinux 0xc966d31c div64_64 +EXPORT_SYMBOL vmlinux 0xc9980c01 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b27289 rtc_control +EXPORT_SYMBOL vmlinux 0xc9f8654e read_dev_sector +EXPORT_SYMBOL vmlinux 0xc9fd878f acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xca12ddc0 idr_init +EXPORT_SYMBOL vmlinux 0xca1bbbfa pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xca4c32ed ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xca640bf3 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xca6c95f8 acpi_get_name +EXPORT_SYMBOL vmlinux 0xca885981 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca90851d dev_mc_delete +EXPORT_SYMBOL vmlinux 0xca954105 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xcada07a8 kill_block_super +EXPORT_SYMBOL vmlinux 0xcaf8638f skb_gso_segment +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb1aed23 set_trace_device +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb4c1d82 write_cache_pages +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb701c35 audit_log_start +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb82f0fe start_tty +EXPORT_SYMBOL vmlinux 0xcb83f112 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xcb9f0939 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xcba80d10 udp_proc_register +EXPORT_SYMBOL vmlinux 0xcbda5a08 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcbdaa5d3 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xcbebc15c dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xcc1b2476 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc983cae _write_lock_irq +EXPORT_SYMBOL vmlinux 0xcc9d58fc sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xcce3ad4e dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xcd0c0eac remap_pfn_range +EXPORT_SYMBOL vmlinux 0xcd276853 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xcd5e5ead bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xcd847b61 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xcda0d7c4 proto_register +EXPORT_SYMBOL vmlinux 0xcdd21954 blkdev_get +EXPORT_SYMBOL vmlinux 0xcdd6fc2a cdev_alloc +EXPORT_SYMBOL vmlinux 0xcdd97f60 blk_init_tags +EXPORT_SYMBOL vmlinux 0xce045124 km_waitq +EXPORT_SYMBOL vmlinux 0xce06f37a schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce9f92c3 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xceec0e7e unregister_quota_format +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf02e860 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xcf047c83 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0xcf25231a serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xcf47e392 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xcf7b6289 find_get_page +EXPORT_SYMBOL vmlinux 0xcf8c0baa acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xcfa35ce9 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0xcfbaf3bd page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xcfebdc48 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0231c1b misc_deregister +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd079a2de generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0885070 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xd0b8a2f7 llc_add_pack +EXPORT_SYMBOL vmlinux 0xd0d65aea __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0e91e80 dma_async_client_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0ef15f6 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xd0f9a308 seq_lseek +EXPORT_SYMBOL vmlinux 0xd108442d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xd1156488 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xd12f2ac5 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd15fe531 kthread_stop +EXPORT_SYMBOL vmlinux 0xd16ac615 __get_user_1 +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a5ffa9 avail_to_resrv_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f91bcd dev_base_lock +EXPORT_SYMBOL vmlinux 0xd21b3a71 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xd24c386d idr_for_each +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2d32a21 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xd2f0a6cc tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xd311c20c neigh_destroy +EXPORT_SYMBOL vmlinux 0xd32a65e8 __init_rwsem +EXPORT_SYMBOL vmlinux 0xd34f0c62 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd36f7bb0 __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0xd3940222 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3a71720 pci_get_class +EXPORT_SYMBOL vmlinux 0xd3b0ed30 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xd3b272f5 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xd3f252f6 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xd3f60824 bioset_create +EXPORT_SYMBOL vmlinux 0xd4260989 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xd49d00af qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0xd4a1a590 pci_request_region +EXPORT_SYMBOL vmlinux 0xd4afa525 sock_wake_async +EXPORT_SYMBOL vmlinux 0xd4bbdc24 __read_lock_failed +EXPORT_SYMBOL vmlinux 0xd4c6a2e4 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xd4c6e824 simple_rename +EXPORT_SYMBOL vmlinux 0xd4e1c73f key_type_keyring +EXPORT_SYMBOL vmlinux 0xd4edc6f2 end_queued_request +EXPORT_SYMBOL vmlinux 0xd4f4a509 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xd53f70a6 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xd540dc7e locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd54b201d unlock_new_inode +EXPORT_SYMBOL vmlinux 0xd556dec6 __pagevec_release +EXPORT_SYMBOL vmlinux 0xd566d0b7 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd568e93a __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd58afe0c register_snap_client +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5d4da45 netif_rx +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd6499cb7 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xd674f8ae kthread_bind +EXPORT_SYMBOL vmlinux 0xd6875fa3 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xd6b0d901 sk_dst_check +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6bf521f sysctl_intvec +EXPORT_SYMBOL vmlinux 0xd6ca80d0 ida_pre_get +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd729a6ce register_filesystem +EXPORT_SYMBOL vmlinux 0xd7514c28 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xd752467e blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xd7666a26 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7d14818 sock_create_lite +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e7ca24 wake_up_bit +EXPORT_SYMBOL vmlinux 0xd7fa1392 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xd807ac05 cdev_del +EXPORT_SYMBOL vmlinux 0xd82a6088 nf_log_register +EXPORT_SYMBOL vmlinux 0xd84a4fd4 ida_destroy +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8ddda8f kmem_cache_name +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8e89e81 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd8f1b17e xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd921a9fb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xd94c1770 acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xd94d451e simple_empty +EXPORT_SYMBOL vmlinux 0xd955a76c aio_complete +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9be0240 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9cc1918 tr_type_trans +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1c5725 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xda1d24ca udp_poll +EXPORT_SYMBOL vmlinux 0xda21d347 tcp_check_req +EXPORT_SYMBOL vmlinux 0xda318cc2 request_firmware +EXPORT_SYMBOL vmlinux 0xda31d116 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda73a1d0 __check_region +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda807cce alloc_file +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xdaa7df5f dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xdac50125 proc_root_fs +EXPORT_SYMBOL vmlinux 0xdac99283 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xdb012a22 __scm_destroy +EXPORT_SYMBOL vmlinux 0xdb6c369d no_llseek +EXPORT_SYMBOL vmlinux 0xdb6d9346 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdba1bcac nf_hook_slow +EXPORT_SYMBOL vmlinux 0xdbcbea98 __devm_release_region +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc01a06e find_next_zero_bit +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1c7ca4 __page_symlink +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3eaf70 iomem_resource +EXPORT_SYMBOL vmlinux 0xdc3fd696 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc873a70 screen_info +EXPORT_SYMBOL vmlinux 0xdcc6e8dc dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xdcd9cfbc pci_save_state +EXPORT_SYMBOL vmlinux 0xdcfe070a tty_unregister_device +EXPORT_SYMBOL vmlinux 0xdd04c8a9 elv_rb_del +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd520aa1 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd705a88 generic_file_open +EXPORT_SYMBOL vmlinux 0xdd84e9ee locks_init_lock +EXPORT_SYMBOL vmlinux 0xdda9923c ida_get_new +EXPORT_SYMBOL vmlinux 0xddd74089 sock_i_uid +EXPORT_SYMBOL vmlinux 0xdde6a9e4 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xddf7f047 sock_wfree +EXPORT_SYMBOL vmlinux 0xde17d416 key_task_permission +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdea9bd00 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xdec7bb9c fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xdecff951 file_permission +EXPORT_SYMBOL vmlinux 0xdedda77a proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xdeefb54f input_allocate_device +EXPORT_SYMBOL vmlinux 0xdef5c4a5 idr_destroy +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf3bf2d8 atm_dev_register +EXPORT_SYMBOL vmlinux 0xdf43020d simple_getattr +EXPORT_SYMBOL vmlinux 0xdf4bf482 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xdf5b82c5 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xdf5cfd5b blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf7670f6 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfc6509e register_key_type +EXPORT_SYMBOL vmlinux 0xe00fb238 release_resource +EXPORT_SYMBOL vmlinux 0xe01ca944 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xe02a0c9f posix_lock_file +EXPORT_SYMBOL vmlinux 0xe03a74a3 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xe07df18d register_quota_format +EXPORT_SYMBOL vmlinux 0xe092c073 kobject_init +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b5502d adjust_resource +EXPORT_SYMBOL vmlinux 0xe0bbaee0 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xe0ec1fc2 vfs_readlink +EXPORT_SYMBOL vmlinux 0xe130a7c9 proc_dointvec +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe143c2db backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe14667d8 tcp_poll +EXPORT_SYMBOL vmlinux 0xe156d192 bio_endio +EXPORT_SYMBOL vmlinux 0xe16cbcda find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xe1743088 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17aa634 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xe19e538d input_register_device +EXPORT_SYMBOL vmlinux 0xe1d67043 input_inject_event +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe204d208 netdev_features_change +EXPORT_SYMBOL vmlinux 0xe23a5e08 dev_mc_add +EXPORT_SYMBOL vmlinux 0xe23e4912 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe26c73b5 seq_escape +EXPORT_SYMBOL vmlinux 0xe2b64adc sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2efa1a3 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe33f5d24 kill_pgrp +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe35a9d0d register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0xe361a730 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xe3afb47c tc_classify_compat +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe4751d6f d_validate +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4e7ad14 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xe5012d7a con_copy_unimap +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe518ab84 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xe51b7bff __napi_schedule +EXPORT_SYMBOL vmlinux 0xe51e6439 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5304a86 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xe5329cd7 skb_checksum +EXPORT_SYMBOL vmlinux 0xe55ec69e tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xe576bd11 seq_putc +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57a2de3 eisa_bus_type +EXPORT_SYMBOL vmlinux 0xe57c34da xfrm_init_state +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a9d85d inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xe5b6ea89 neigh_lookup +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5c7aca6 get_sb_single +EXPORT_SYMBOL vmlinux 0xe5cf75a2 tcp_connect +EXPORT_SYMBOL vmlinux 0xe5ee3b9d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xe6259e5f pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xe64fc2cd kmap +EXPORT_SYMBOL vmlinux 0xe6508b06 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xe65f0e5f dentry_unhash +EXPORT_SYMBOL vmlinux 0xe6faba16 do_SAK +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe7275aa3 default_llseek +EXPORT_SYMBOL vmlinux 0xe75095f8 page_put_link +EXPORT_SYMBOL vmlinux 0xe7734c6e nonseekable_open +EXPORT_SYMBOL vmlinux 0xe790c03c pci_bus_type +EXPORT_SYMBOL vmlinux 0xe7a70132 tty_devnum +EXPORT_SYMBOL vmlinux 0xe7b48ed7 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xe7bb51d0 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xe7bb958e init_mm +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e31bc3 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7f92e4c block_read_full_page +EXPORT_SYMBOL vmlinux 0xe856d9fe write_one_page +EXPORT_SYMBOL vmlinux 0xe868af29 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xe86d44c9 ps2_command +EXPORT_SYMBOL vmlinux 0xe86f0bc9 elv_next_request +EXPORT_SYMBOL vmlinux 0xe8bafec8 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8daa539 unregister_console +EXPORT_SYMBOL vmlinux 0xe8e387c7 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xe8fb61cd neigh_compat_output +EXPORT_SYMBOL vmlinux 0xe9147905 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe92a00e0 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xe93005af dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xe935455d tcp_proc_register +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9574513 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe9b38ad6 block_sync_page +EXPORT_SYMBOL vmlinux 0xe9b9a134 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xe9c2b63c kmem_cache_free +EXPORT_SYMBOL vmlinux 0xe9cbd679 vfs_writev +EXPORT_SYMBOL vmlinux 0xe9f5897b dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea120939 d_lookup +EXPORT_SYMBOL vmlinux 0xea2b0e7b proc_mkdir +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xeac830d9 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xead923eb d_rehash +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb040427 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb63f50a netpoll_poll +EXPORT_SYMBOL vmlinux 0xeb83f0f1 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb9dca35 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xeba20aa8 do_sync_read +EXPORT_SYMBOL vmlinux 0xebae95c9 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xebd4ac07 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xebe8a8c4 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xebf39602 lock_may_write +EXPORT_SYMBOL vmlinux 0xebfb5d7f mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xec0a4310 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xec3ff272 remote_llseek +EXPORT_SYMBOL vmlinux 0xec5831cc neigh_create +EXPORT_SYMBOL vmlinux 0xeca8b9a1 __bforget +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xed299930 is_bad_inode +EXPORT_SYMBOL vmlinux 0xed414479 del_gendisk +EXPORT_SYMBOL vmlinux 0xed45ab86 acpi_bus_add +EXPORT_SYMBOL vmlinux 0xed633abc pv_irq_ops +EXPORT_SYMBOL vmlinux 0xed6b8c3f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xed77ccbd fb_pan_display +EXPORT_SYMBOL vmlinux 0xed9003ef pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xedac7e22 unlock_rename +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xeddfe49d rtc_unregister +EXPORT_SYMBOL vmlinux 0xee0a6ee3 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xee21b065 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xee23113d kernel_listen +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee566288 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee827f5f skb_insert +EXPORT_SYMBOL vmlinux 0xee88ade6 reset_files_struct +EXPORT_SYMBOL vmlinux 0xee992022 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xeea40822 bio_pair_release +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeecdc8f8 vfs_rename +EXPORT_SYMBOL vmlinux 0xeee9e748 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xef1a96ca vmtruncate +EXPORT_SYMBOL vmlinux 0xef2172ae skb_queue_tail +EXPORT_SYMBOL vmlinux 0xef39a057 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef51a3da deny_write_access +EXPORT_SYMBOL vmlinux 0xef6309c9 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xef8d53e0 add_to_page_cache +EXPORT_SYMBOL vmlinux 0xef9598cf down_read_trylock +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefbb6f9a pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf04b63ee get_disk +EXPORT_SYMBOL vmlinux 0xf066600f __write_lock_failed +EXPORT_SYMBOL vmlinux 0xf0679232 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xf08a65fb pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xf0927142 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xf0a916f0 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0b586fa neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xf0bcc0b3 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0xf0bfd10b neigh_table_clear +EXPORT_SYMBOL vmlinux 0xf0c72e1e pci_enable_msi +EXPORT_SYMBOL vmlinux 0xf0c7cc95 down_read +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf13fc8d6 _read_lock_irq +EXPORT_SYMBOL vmlinux 0xf142e926 sget +EXPORT_SYMBOL vmlinux 0xf144c0b3 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19c2b5e key_put +EXPORT_SYMBOL vmlinux 0xf1bccbd1 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xf1d68a79 kobject_unregister +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf2002b9f xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf202f537 _read_unlock +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21f220f dev_alloc_name +EXPORT_SYMBOL vmlinux 0xf23cbb70 touch_atime +EXPORT_SYMBOL vmlinux 0xf27b8d28 per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2bdd689 subsystem_register +EXPORT_SYMBOL vmlinux 0xf2c8c4e0 udplite_get_port +EXPORT_SYMBOL vmlinux 0xf2db5329 iput +EXPORT_SYMBOL vmlinux 0xf2e2e600 sync_inode +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf2f39ba6 register_nls +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32d2678 schedule_work +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf337bf69 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf3415123 mpage_writepage +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34cf388 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xf34ef73c block_write_begin +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3adefe8 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf40c5b96 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xf428373a kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf42df6c4 vfs_write +EXPORT_SYMBOL vmlinux 0xf4742321 get_user_pages +EXPORT_SYMBOL vmlinux 0xf47d47e0 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xf4874ae3 simple_sync_file +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4aebb07 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xf4b181d8 fb_set_var +EXPORT_SYMBOL vmlinux 0xf4d6274c xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xf4db1a6a call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf55c112a dquot_acquire +EXPORT_SYMBOL vmlinux 0xf568db16 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xf59d87c6 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5f7f24a __lookup_hash +EXPORT_SYMBOL vmlinux 0xf63f0c50 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf69ed87a flush_signals +EXPORT_SYMBOL vmlinux 0xf6aab5a3 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e0e400 _read_trylock +EXPORT_SYMBOL vmlinux 0xf6e9835a proc_root +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ed4071 fb_show_logo +EXPORT_SYMBOL vmlinux 0xf6f5c744 pci_get_slot +EXPORT_SYMBOL vmlinux 0xf711a262 mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xf7217084 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xf742e533 aio_put_req +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf784ac11 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a36e6b bd_set_size +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7b95ae0 llc_sap_open +EXPORT_SYMBOL vmlinux 0xf7f60954 f_setown +EXPORT_SYMBOL vmlinux 0xf7f9a906 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf82f48fc acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xf8384954 unregister_netdev +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89c6ea5 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf89ddde1 input_grab_device +EXPORT_SYMBOL vmlinux 0xf906ae4e llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xf9285a56 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xf928efe3 dcache_readdir +EXPORT_SYMBOL vmlinux 0xf94f74ba sk_alloc +EXPORT_SYMBOL vmlinux 0xf9528757 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xf9765714 genl_sock +EXPORT_SYMBOL vmlinux 0xf988af56 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xf994a41e ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xf9a02b7b _write_unlock +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9bdd32c xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xf9e8149a blk_requeue_request +EXPORT_SYMBOL vmlinux 0xf9f4556d simple_link +EXPORT_SYMBOL vmlinux 0xf9f4ce82 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xfa277b32 register_netdev +EXPORT_SYMBOL vmlinux 0xfa2dbb10 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xfa5c48ba __wake_up_bit +EXPORT_SYMBOL vmlinux 0xfa6bc172 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xfab714ea bio_init +EXPORT_SYMBOL vmlinux 0xfaf0520a ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb076ff6 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb0d52f6 kmap_atomic +EXPORT_SYMBOL vmlinux 0xfb1c81cd try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xfb3effd0 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xfb535e03 pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb945665 generic_removexattr +EXPORT_SYMBOL vmlinux 0xfb97fa36 __inet6_hash +EXPORT_SYMBOL vmlinux 0xfba0c2e0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xfbb4ee66 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xfbce1dc6 kernel_accept +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc13fff8 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4ab207 nla_reserve +EXPORT_SYMBOL vmlinux 0xfc4db260 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xfc7183c6 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xfc8c1b1d __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xfcb8b131 idr_find +EXPORT_SYMBOL vmlinux 0xfcc6da16 vfs_quota_on +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd03f1cd _read_unlock_irq +EXPORT_SYMBOL vmlinux 0xfd150957 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xfd340248 sock_init_data +EXPORT_SYMBOL vmlinux 0xfd715b9c module_refcount +EXPORT_SYMBOL vmlinux 0xfd74a41c vfs_link +EXPORT_SYMBOL vmlinux 0xfd95c275 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfd99e025 subsys_create_file +EXPORT_SYMBOL vmlinux 0xfdab2b9c rtc_register +EXPORT_SYMBOL vmlinux 0xfde81e13 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xfe0a9e3d blk_free_tags +EXPORT_SYMBOL vmlinux 0xfe4902d0 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xfe4b498d ip_defrag +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee22747 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xff114aa8 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2a5edb audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xff3dd22d vfs_permission +EXPORT_SYMBOL vmlinux 0xff522b57 mntput_no_expire +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffc7890b pnp_find_card +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdc1f0d __first_cpu +EXPORT_SYMBOL vmlinux 0xffe567b5 flush_tlb_page +EXPORT_SYMBOL vmlinux 0xfff3326c __skb_checksum_complete +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x16836e04 speedstep_detect_processor +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x4cdb4bd0 speedstep_get_processor_frequency +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd494ee54 speedstep_get_freqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x04232e66 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d9487d2 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10863a38 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14a0710c kvm_emulate_pio_string +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x16964066 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1d6bd2e1 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1f86a7f8 kvm_lapic_reset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x207efca4 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x238b47f0 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x29de5df5 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d65406b kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x358ef9c5 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x378ffbe7 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4826209e kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e502d7d kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x553925ac kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x554b1beb kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5acdcb1e kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fa70820 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60423e85 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x622f2f5e emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67af07d4 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6da77943 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70a56d6e kvm_emulate_pio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70feda9e kvm_lapic_find_highest_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87fbe849 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e7f9b47 segment_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8f00c511 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93d76ba5 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97d5c418 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d640c36 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d99eac2 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e9fd2a8 kvm_lapic_get_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fafcbce fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1fe7904 kvm_create_lapic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa56f4414 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xabf93f49 kvm_lapic_enabled +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb88811c1 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8f4c699 kvm_put_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc1e892a3 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc65ac1e6 emulator_read_std +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc767963b kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc9e53896 kvm_load_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce2621b3 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce6e3de4 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd59c5d12 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd822d5f8 kvm_timer_intr_post +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde9f9ac7 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe257f2af kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe29e5083 kvm_lapic_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe5b67ed3 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeaaa3393 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeb6a1e86 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeca73f9e kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeedeac9b kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf175b7a0 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf1b8c67a kvm_emulate_halt +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x59e28cbb crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0xd462735f crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xce3c6c3d async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x167889ea dma_wait_for_async_tx +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x52689fc7 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6b4a6db2 async_tx_issue_pending_all +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x74922319 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x92342af8 async_tx_run_dependencies +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb0c46a3b async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6221c496 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x755e1a0b async_xor +EXPORT_SYMBOL_GPL crypto/blkcipher 0x0e60491b blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0x26ecccce blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0x27c8e165 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x860ed037 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0x9f9f30d0 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/twofish_common 0xd6001d5e twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/bay 0xaa9fd641 eject_removable_drive +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x2611fbee register_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x09419381 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x817cf418 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x9a98d3f7 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xfab6c9b9 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x041e38a3 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x05c2c1c6 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x089b5dd9 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x08b42025 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0be7c15a ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0dd74e3e ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0e8f01ef ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x10ddb5b2 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x11a23003 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x152b553f ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x154ee1e1 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x15a6e202 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x187c604a ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1cb63ecd ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d06647c ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d151e2f ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d407f02 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1f1ffa94 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1f7cf753 ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x232e2d57 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2436fed4 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2659f477 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x26f14636 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2bdd90a3 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2bfc8f0f ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2f401654 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x302c095f ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x32509a5a ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3412f754 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x36dfffbf ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x374ebf58 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3929d53f ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x399a4d20 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3e752b65 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x401007a8 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x413488d8 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x42caca01 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x47c4222a ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d018afd ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4efa8666 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x575496ff ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x57bc8d00 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x59a4763f sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5a405cb5 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5af99e3e sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5c6cab02 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5d93bde7 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ecee135 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x60675f83 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x667a9291 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x67e5415b ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6836c074 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6854ba0b ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x68ce675f ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x68f6f62d ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x693d2bc9 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x70b93d6a ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7192212e ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x72a0d344 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73248368 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73a90c5b ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7627c72e ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x79ffc031 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7a0c3a18 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7d4f6892 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f4cdc46 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8202ae7a sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x87812aff ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8aa2d5d6 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8d20b6f0 ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e503c90 ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8fbf26b3 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8fdf4747 ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x924ef5d3 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x925c913c ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9447a201 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94aac302 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94e46c54 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x964f7851 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9c1b6935 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9d9c4f74 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f794c8f ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4017d35 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4d3a549 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa739cc1c ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa8f01830 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa27eda3 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb005045c ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb0ceb8ea ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb3e2cc68 ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb7aac08e sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbd37d2a1 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbec6217a ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc094f279 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc0f04ce2 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc164a53f ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc26948e9 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc333bd21 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3466685 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc50e29e9 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc54f57b6 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc83baec0 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcb45c19b ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcbaf54d7 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5da38c8 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdb521a35 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdd81fbcb ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf54ffca ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe7b6a6c2 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe7f2a905 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe87f465d ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeb920552 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xed95e56e ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xef8d6052 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf0a4581f ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf2f809f1 ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf6c669d0 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf7b3aecc sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf7d7bcb7 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb78efc1 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfbeb4bcf class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfc329c84 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfda54dc8 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x12b07406 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x5b658452 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe5f55702 agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x06efa104 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0f60596a tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x16e42e9c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1a180b2a tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x27a53fdf tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x33996c75 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x72769cad tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x72e6eda1 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8c0609de tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x951b13f4 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9cbbcf63 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9fd7d303 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa2c36f28 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa1f560a tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb5b244f0 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb61f5606 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc012139b tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc22a4bee tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd387bdd3 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe05f53d7 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe5c3b99c tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xff13c54c tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x73bbf0c7 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xe6df445b tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x25812eac cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x735885a3 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x817fc844 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xce1950ff cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL drivers/dca/dca 0x245dc152 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2d7bb6bd dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8a629a27 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x98f079ca register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9de510ba free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xea9924cd unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0aa7b74f edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x14aeec70 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x23077db3 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2f8c592b edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x33015d11 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3b0cbeef edac_device_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x42990452 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x472425d3 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x484e7e26 edac_pci_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4ce7f82a edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x51de9d08 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x595839c5 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x67f35827 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7d17f95e edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x86d11e4d edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x872a3434 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9274e4aa edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x99bab5c8 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9ee0e120 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa0494d12 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa5f0bdc1 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba6db6bd edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbd1ae57e edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdc62b5ce edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf5568a25 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfb500ef6 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/hid/hid 0x18aed8ea hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x26e2cf7f hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3195ec9a hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3a75acc3 hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4d47adeb hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5bbeeadd hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x74dc0ba4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7576bb5d hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7a154b8b hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x81a6c002 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf11e489 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc303ced8 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe940c7c3 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3f97ffec hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x24e29f82 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x306be453 i2c_new_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xbcb7c3b7 i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xbdf52dee i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0ca47d8f ide_acpi_exec_tfs +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x13722926 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x139ea918 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2256e4db ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2459c904 ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2d96d1da ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x347ff8cb ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4044584b ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4db93925 ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x801f6054 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x83c77f36 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x84914c58 ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x84f4c076 ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8be919bb ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8f60fc1f ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x9370cded ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x990f5625 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa558a91b ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb4ad2b2b ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb872da82 ide_acpi_push_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc1670764 __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc35b8adc ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc8a87aeb ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcbc5552f ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd4761544 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd6905db3 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd83c6e60 ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd87e183b ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xdc643bb7 ide_acpi_get_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe869f144 ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf28e6ec2 ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf3af2f39 __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf4037c77 ide_acpi_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf6ca7a2e ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x97443c20 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xbc7a641a hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xb18eccc4 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x02f103a7 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x270a4d5c gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x291eb45f gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5251c32b gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x586542f1 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x59e17fc3 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7685bc66 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x77d122e1 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x961077e2 gigaset_getunassignedcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaf399ae0 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbdf03e43 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbe86f14c gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc12ef61c gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc41acdc7 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe198cabe gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe5e135c1 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf59720b9 gigaset_unassign +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf84474a7 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x63d5f77f led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x65ae950e led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x87101f39 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xec3c169a led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x0c36d539 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x21914352 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x3b75229a dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x48e517f8 dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x5253e0a8 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x5e0bb363 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xf028b5d9 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xf6e68919 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x020a967c dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x0bed462f dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x623cf37a dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x747d8c16 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x81292a7e dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb26c424c dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x13a9ce15 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x59f8a7a1 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x615c8c8e md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xa734af18 md_new_event +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x27c1761f ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x483ab7d1 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x68d3004b ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0847f2bb saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x23a29e0c saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x26096c3c saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2ac507f4 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3f55b49b saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x404a7c8f saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x40d63b66 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4ce376c2 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x578f7882 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x79f1130b saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdfd423a5 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0c2ebeaf saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0f8c2c17 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5badadf9 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x65150bca saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8abbb81f saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8af2a6c5 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xaff785f8 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x1aeac341 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2bb93ce4 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x5882a445 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x803462c0 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd56a0dbf ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe2beb0b5 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf0036ead ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x78cb97c4 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x12e57669 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xc7a92ba0 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x6809daff microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x082510e6 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x17a76860 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x966cb97c tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x95e21b6e tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xe614e6dc tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x0e2b7099 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x5bb02805 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0x39e503b4 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x34a67cef v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb05f1323 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x11adaa83 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2f217ac9 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x32407cfc videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x356a04d2 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4572f4e0 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x54fc87fc videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x60c91486 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6150b741 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6772ce25 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x74385d33 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7926348a videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7afbfeb8 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x83575fea videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8a20b582 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x92ce51c6 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb21bd66b videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc41d9660 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc5a5c037 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc7fc9746 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xce6d7afb videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd3f6322e videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe7df0024 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xef337f00 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x14b4d112 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x25a61f87 videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2ee5e4ef videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x34acc033 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x60d1457c videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7091ca9e videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x799571a1 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x80c253c5 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8159027d videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x93df53cf videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa5f6f7bd videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xacdb4324 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xafaf5495 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xebaa6a4b videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x16d575ee videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xa0751a46 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xaa4ec914 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x12590cee sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x376a54d5 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x98434d90 sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc7bfcb38 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xdbffe33d sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf5c44aaf sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0a351e9e sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x196e2ee6 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x20e633cc sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x24638cd4 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x24771344 sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2926851c sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x29b81996 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2abff6e0 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x34e432e4 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x360624d7 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x50707e13 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5cc85d87 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x70273648 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x825556b0 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xaa24e5da sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbcf58fbc sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcc92ec55 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd3d76ec5 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd74f61e1 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe4614e01 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfb1d37cc sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2329e1ce cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x5b46de6d cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xf49f5f67 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1dc0c961 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x68645f41 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xb77a385a DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xbb37527b DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x3a213378 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x29599845 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38713b52 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3ac0ef96 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3be135bd mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5a01c548 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x71cde486 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae896305 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbeca7305 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2ad39aa unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd02f5978 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd87dc890 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xda11a835 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdc56bd64 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe01ec73b register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef2bc3e2 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfd56e59a add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5a88785a deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6fd62be0 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8e91ce1a register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd02ea919 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x1b307b13 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x37d82115 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x56c02494 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xab5731b0 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xcee522a1 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x5674d243 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xa39d3381 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1bb6686a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2bbec4e9 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x31516120 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3d951d48 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f8a2e1a ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x83891560 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8fab052d ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9d304aa9 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xceb842e1 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdab62aec ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x06dadaf1 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29beccbf mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2df18536 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x341f9785 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x356aec3e mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x359ea2fe mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x36d62a03 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x49705684 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5cc39eee mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e50add9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6db12886 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x735b77b2 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x739e6706 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7500277c mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8105db55 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8602e31d mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8d45b136 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9039196c mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x97c989dd mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa1983b20 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7fb21ca mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xac7380c7 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb8149853 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb8e9cd27 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd13af53 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd6d2de5 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbe623af2 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbec5e7f4 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc41ce7e9 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xca1b2aa0 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcca9fd29 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd2349855 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7c15370 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe29057d8 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xee779cd5 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf0c07665 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf5287b3d mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfa25d27e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb66e03a mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfdac9556 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x236b9c5d usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x43b80a44 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4f1033c0 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x66d8d7d9 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7ce155c7 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8bebf220 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95742843 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9a1b40e6 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe1e260e usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdec282da usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe13fb7ca usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe5c12b55 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe634abbf usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xed0d4b6a usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf697f215 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfbdf1892 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xffb8dd66 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x007a353a libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x18cfd03c libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1df62597 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2e41a0cd libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x58837c37 libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7660ef44 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9fa33cf2 libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xaefd340c libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdf7bf6f8 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe6ba2351 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfe9aa7d1 libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x2a198083 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x371217d8 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x57af4936 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x78fbc9d9 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xe30d354e p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x04fb8cbb rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x085a6316 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x086a162e rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x09d6820f rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e244d26 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1419780b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x14723dc4 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a9127ce rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f77897a rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x27b171ea rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c8dbbb5 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x50648550 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73f94d44 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x901d5c8f rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb88e6d32 rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc1506a26 rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd28f87e0 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe3d2e884 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeadeec94 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed7271c3 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x12fc6ca0 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x55d30a4e rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x57177f1d rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x64de2e3c rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x674bf7f2 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7b1f457c rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x961f0ebd rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc9d1ea09 rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd1686342 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x067b1e36 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3cad3407 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3d50efba rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x773347dc rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b264b5e rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x93866264 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa1382d8a rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbad0f4fe rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcfe88edd rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf3963513 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf76c63c2 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x7775337c acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xccb202a0 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x0c23991e cpci_hp_register_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ad3b491 acpi_root_bridge +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x23731e8e cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x27a81b22 cpci_hp_register_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x4109509d acpi_get_hp_params_from_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x64a602d9 pci_hotplug_slots_subsys +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x96c74f7e cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xa344680d pci_hp_deregister +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xaeea0069 acpi_run_oshp +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xbf14e76d pci_hp_change_slot_info +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xd47b78d4 pci_hp_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x0778e8eb rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x07ec5516 rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x2adf7005 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x2b1a8a50 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x2e0d3e32 rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x35045cd3 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x423bc9e0 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x78d6d9e5 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x9cd29e3d rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc9a6e78a rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xe33dcddf rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xe3744f50 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xef0f6d71 rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xf342fcb9 rtc_class_close +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1135fb25 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11865605 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x231e6b7d iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31daffae iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c5136dd iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d5fac42 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d92bc2d iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x48890664 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5242cc1d iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66b7197e iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x69fed4fb iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x742598f9 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7b0a99db class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f853973 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83073aa0 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x874440fd iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ab73661 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f9a2312 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa617ba72 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac38f0a0 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba6f6778 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1bcd376 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc76c0fd8 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcd3c7a25 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5dfd740 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf10dc7a9 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb9e4024 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x08d8e40a sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x095d19c5 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x14ed518b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x21603a31 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2d644edc sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2e687a46 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2f932749 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x38101716 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4083857b __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x471de511 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a17c87e sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x613aeec9 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7a72a031 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x86f7295a sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8807b4a0 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa8f8147f sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc098191c sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xea97381e sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeedc48d1 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf085ab4e sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4d8bf6de srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5c007781 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x62fd314c srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x79b1ea37 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa4f22d24 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xee61da70 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x0c8b63bc scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3bad0b64 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3bb1079c scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4dcb0036 scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x6b8c7d0d scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x71c56cbd scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7cb8c8de sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x90cd1983 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xa5f941ff __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc11bae36 scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xce19d9b2 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd1fd3089 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xdbe22991 scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xeeaa6f8a scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x019bc793 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1594eef3 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x169fc1ae scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3617a55f scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7273abaf scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x742a4702 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x98c48dde scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xab5f5e70 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb62e499c scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13643fe1 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2157eb95 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x25d78f5a iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2c9a96bf iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x342d4650 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4b305505 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6113a87f iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68ba8ed6 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d24bf66 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x877418ea iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97a0af52 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9f29ccc iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc01b09d0 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc23abd2f iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcf56d190 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfc5f8234 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x065cf0d9 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x13e96c0a srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x57270d3a srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x88688516 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd77a2b50 srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x0d3d892e spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x52fa3cd8 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x89c745f3 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x947d2f2d spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xae86de83 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xce149c04 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1c19b762 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe8076cf7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf208d7b0 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x51dfb2a4 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xe78c651d usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0ba0f5d6 usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x25ce6ba2 usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2f8c615b usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x30486c35 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x426a2d1c usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x45cd3a2a usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4726131a usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4ac59472 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5158c274 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x532c9510 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x59f87c7e usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x63dadfa8 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x776a63e0 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x948289d9 usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x949ed6d3 usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9890dfc4 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9a93fad3 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xad4cec74 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xbc8521e9 usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc7593999 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc9664612 usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd6681429 usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf223cf7f usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf552677a usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfefff6b3 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1340cfa6 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1c1614d9 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x636a3e17 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x73041e6d usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9a340183 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9f569211 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9fbe135a usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb1c17552 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfd903879 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x9a834b3b phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3c1af8b6 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ffefa72 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4006972e usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5899c564 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x76ddce40 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb8ed6b95 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd568d721 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xea5c2893 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x3f8007a3 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x270420e2 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xd27a96f9 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x6aa8ed2e sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xe36a028c sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x1224073d register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x29bd508c unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x2f3e08a3 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xd76420de unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x03c4687d vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3ea3d6e9 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6172de12 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x29a1471d w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x49eaa5ad w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb63b3989 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe0950a1f w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf3ef02ab w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x61a643ae exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x7a236c3b exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x0852ca21 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x21aa831b fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x2f8a2bd5 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x55b80d4e fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x7658d74b fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x79324f7d fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x7c3cfe2b fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x8db3fca6 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x9d8cb5d5 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xae437cd4 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xb04a92d5 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xcac21a93 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xcf74ffe1 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xdb309db2 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0xe7204cab fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xeaeb38b8 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xf8bd3083 fat_scan +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x385bf058 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x4c62b1a3 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xa608bbe1 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xb9c82c91 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xee8524f7 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3b870ce0 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x43d29d22 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x932ef92e o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x99daf9e3 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xad688250 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdeab9eb2 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf4fe35a6 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x04052ad0 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7586dc6c dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb3a8220d dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcb7c6a16 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe368cd01 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf1807b10 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0x4a6291a2 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xf4a8e3f4 bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x21a40d77 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x2bf537e2 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x49616841 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x668d08bf dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6a407f5e dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x7af871db dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x7d9e70a0 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90aae1a6 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xade3b621 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xbbec9932 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xcaca7197 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00e31945 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x03be64d7 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x07f1dc76 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x11da556a dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x11e45f46 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bc52e2f dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f2f5c3f dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2431c5bd ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x32847606 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33673370 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34cabf6f dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x38cd5d9c dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3cd6c9e8 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3da77283 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x48e5b0b7 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e1da10c dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e5f17b4 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55941dc1 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ab8d974 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5cdc6e21 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60ac0e0f dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x614a2357 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64a32ea1 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64b68f7f dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d7fc205 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6eba0d3d dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d48abd4 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x83072c5e dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x84c1d008 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x84fc2695 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86ba1bf8 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86c2df1f dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c9930e6 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92378c80 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9cfc37d0 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9e42700 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb700f3c0 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbdea9de5 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc76122fa dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8f19ac5 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd831514b dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xde7f83f7 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0a8de67 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe264faf9 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe970663a dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xefd0ed7c dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0c769010 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0da2660e dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1194ce87 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4533e65c dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x92d5532d dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x993d9282 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x4273cdf2 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x9143992c ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xf3904353 ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x17c290ce ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x18191afc ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x217ea653 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x2a5f6875 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x305d014e ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x30c4a9fd ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4facef67 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x56cea19a ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5a4cdaf5 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5fe6141f free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x73d3f9a0 ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x81be8fef ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x83c3fe0d ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x870c4dc6 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8b3f1885 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8dda8dd7 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x96701e77 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa57cd3b7 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd3be8181 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd8a32cc6 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf7aed16a ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x06ce3403 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x33883a74 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x373038c2 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcab00254 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd0cb96dd nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5d7a81dc tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x644847e7 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6fd0af7b tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x98a069bf tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe76345df tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0e4ae501 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0ed3afbb ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x180e5126 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1d4e6154 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2270a815 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x247aa1db ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4eb03e8b inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x62dd8751 ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7b1623b6 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7c57f637 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x9d0ce950 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb3ad16f6 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xda1f0e9b inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdd938992 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf951dd54 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01952cea __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13a7b910 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1624e393 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a1605e9 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ba95663 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bc53f63 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d24fa28 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x515dec8c nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x529e3de7 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54ca3bdc nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5701686e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5967e41f nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b5025ae __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5dc2e440 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60a3c61c nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66fc595e nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6aa8ce2d nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b4a94f4 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6bd7b771 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e778620 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74a5a352 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cca5f9f nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e8b27d3 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85bf3d55 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97977d30 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9bbd3b47 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa03fd9b7 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaddbfae9 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae86d34b nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb25d97cb nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7b309ec nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc41b73be nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc64b4857 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8a6ff7d nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce89118d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6c5475e nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd498726 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf7e053c nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe262999e __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4861717 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeab47903 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf47d2ad5 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x98eb5e18 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xcbb8e464 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0b749da0 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15751755 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x18cab45f set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x306cd851 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x39c4863f nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x49d5600b nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa07f78a1 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa8d60efb set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf37b2a7e set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x904829a3 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x0437a7be nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2751c2a3 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2e99a08a nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7bbc0e96 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bb818fe ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa37fb829 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe79cc7ab nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xee8cdfe0 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x23588268 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7cedd0ae nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x81739b83 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xab3e5bb2 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeb4acb4c nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ac621bf xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x26130d63 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x422e0bb4 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5deb38c6 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x616872bf xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x73eab8a8 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x78ebe359 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7e236e97 xt_check_match +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x3a246313 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x58ff6d60 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03ed3894 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x075285fc xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e9674bf xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3077e333 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3238f6ab xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34371532 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ab508c5 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b220258 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d0c03e9 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42d0203c rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44c7cf57 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4557654f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c5a9fba rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f13741b rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ea07d0a xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65bace65 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b56a1d2 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c30835c xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d518038 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f4ccf2c svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2a8b336 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa644737f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1e1903e xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb614ca0a xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6cf64a8 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc541af1f xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde5c0e66 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebbe210a xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf05c456f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45c2934 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL vmlinux 0x0031db43 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x02c8bb8c kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02fab9cd tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0391df59 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x03d0ce37 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04969b5e attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x049c506c unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04e0159b xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x04e17dad free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x04f868d1 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x054623c5 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06770297 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x0760c7db init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x07672958 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c1ccb4 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0958668f sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x097e55f7 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x09d04bff queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x0a84eed0 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0a85d4b8 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x0b24b42d sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x0b9f45a2 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x0c3b3526 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x0c950f47 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x0d5ddd58 crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0dfa17de sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0e204b02 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x0fd11902 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x1078cf43 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x10e76f28 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x11acd569 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x11d98ad0 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x12000582 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1277fd88 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x12affa1a class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x142d8a05 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x1466799f pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1494c0e8 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14cc7395 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x1548d3d8 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x16084fc6 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x1618c1a7 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x16bca5bd led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x175e5db8 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x1796c66a audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x182acac5 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x182e6265 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x191eb359 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x193e6377 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x195d0148 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x1b40c660 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x1b6693a4 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x1b7fda7b nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bbbe669 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x1c22a009 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x1c6e2d4f vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x1ccdb8f7 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x1ceaeb7e crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x1cf9a8b7 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1d0646da transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d5b3147 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x1d6fb98d xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x1db559a3 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x1dc68ceb pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x1df5a938 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x1e1f8e26 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x1e37824a debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f378ab5 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fa8fd2a vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x1fb6962a sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1ff60a88 device_move +EXPORT_SYMBOL_GPL vmlinux 0x2023542b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x20715483 pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0x208558c6 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2106afc0 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x21430c6d pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x222cef2d device_create +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x235f4515 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23841980 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2389f903 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x23bc55b1 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x23cea294 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x2433e1b6 find_pid +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24862ea3 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x25d8ae88 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x25db8b75 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x2600fee6 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x260ab850 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x2630326a inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x263e9978 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x26425dac pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x267c1ae2 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x27100a42 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x274245e9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x275b05da xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x2775318d tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x27b68f15 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x27f7acec rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x28780503 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2910f709 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x296ffce3 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aed6370 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x2b5c3fc5 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x2caee06e platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x2d34a209 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db09936 __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0x2e15f841 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2ec08b23 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x2ef96dc4 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x2fd89e75 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x3014cd8f vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x304c86c3 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x30619ada d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x31c4b0f1 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x32737468 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x3312fd52 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x332f304a tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x335a922a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x33f99d1b blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x34a3c3cf tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x34a7b73b exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x35c43522 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x36057419 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x361f1ac9 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x36a1b51c sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x36ecf818 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x36f03c82 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x37487f28 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x376099d6 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x37794ba6 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0x37ccfbfe get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x380dfa68 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x38142840 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x39699249 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c127544 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3c7c9eac xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x3c814927 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd3fbc0 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x3d2bd2dd attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x3d4278a5 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d857ba7 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3edb1c1e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f4dc800 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3facc737 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3fcb2159 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3ff1c0de hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x40d9e229 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x4143073c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x41a470ec crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x41dc8b85 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x41f2a5c9 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x420bf363 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x42a9d7d3 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x42b08cc1 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x4342eeaf debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL_GPL vmlinux 0x455c08ff platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x4567bcca tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45f11d4e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x463d1baf rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x467c5a67 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x4687008f find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x46c7b5e5 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x47054057 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x476c2f8c sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x479397e4 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x481c2bb3 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4991fcee user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x4a06831d class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4a11a4fb bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x4a57ad64 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x4a9187e1 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4acab169 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x4af94d05 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4b2f8877 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4bf21b27 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x4c320212 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4cdde02c pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d85688a skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x4d8d8ed7 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x4e1b01dd tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x4e1d37c8 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x4e615f0c __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x4e631e09 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4ef35843 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4efd7d09 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4f3bf3f9 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4f5190c2 device_add +EXPORT_SYMBOL_GPL vmlinux 0x4f7522e7 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x501abc3e debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x502c6089 srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x50a06ff0 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x50bb4d64 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x50e09c2f pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x51cbe898 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x5230da84 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x52728ce0 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x537532b0 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54ecc45d platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x55d39169 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x565f7cbe devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56d11465 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x56d69970 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x5824889b devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x585d6f5a bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x586c5050 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x5894d203 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x58a19454 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x58ec0389 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x5a25ff1f rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a3934e6 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b4f2846 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d624d2d class_register +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5df35ad2 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x5e000ca0 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x5ee68d16 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f9a11da srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x5fbff872 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x5fdb506e class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x61428ab5 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x63f9f161 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x64003097 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x645b8a65 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x6494422a led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x65a359d0 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66d9343d pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x670c06bd inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6758d1a5 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68f3a8f1 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x6959fffd anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x696d511e tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x696f71d8 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x6a42b112 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x6b362029 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6d14afd9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6d7204bf ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x6dc08c9a cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6e025f0e tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x6e0c9bab uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e651706 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6e957c57 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x6f2cacd4 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x6f9752a7 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x709366c9 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x70b5a0a7 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x70ddaa0d crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x71266cb1 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x714ba4b2 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x71c99fa4 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x728143f6 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x730ca512 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x73c1d60a get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x745501a5 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x747f7134 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x75598bf3 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f30199 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x7685aba2 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x76e2df38 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x76e7c2ef atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x76ecda72 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x77bd6789 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x78b24f28 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x78e6e3df sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x78f01bf7 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x78fdf49e xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x790d66b6 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x7931ede4 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x79a0a398 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a21d49c securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a8ce455 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x7af86162 device_del +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c6aebec sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7cf80a62 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x7d4bf28e register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7df96293 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x7e6d77f6 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x7ea7d551 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x7ee4806f fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f5d6f79 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7f7dec34 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x80075224 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x80788f4c uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x80ca101b crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x80cf2ebb crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x810d7e96 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81b2f684 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x82498fa6 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x8250af10 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x82d23e94 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x84cac4ba blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x85052a5c ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x854e85cb blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8576e1de crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x85f156b3 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x86237e73 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x86428982 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x8706fba7 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x87098a2f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8773699c alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8778a38a isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x879c71ab put_pid +EXPORT_SYMBOL_GPL vmlinux 0x87b2aab8 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x880263c1 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8806b054 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x88d8c843 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x89402cb2 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8a1ddc8d cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x8a6243e6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x8aad0e56 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x8b14badb inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x8b2b880b device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8b367c68 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x8bad78c5 __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c178cc3 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x8c2aa4a0 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x8c300930 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8cc230fe inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x8cdb9a75 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x8d187579 task_nice +EXPORT_SYMBOL_GPL vmlinux 0x8d970e1d proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x8db4cf2a class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8dfba176 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8f63cd65 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f72e168 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x9006055f inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x905506e1 class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x9133356b blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x927c7fde xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x92863403 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x9299fa14 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x930d2137 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x93a186ab __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x93a9c72f fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x94042f76 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x944a40f3 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x948a7cf1 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x955ba781 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x95c63907 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x95dbbf79 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x96077135 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x9795c15f bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9796ea6f __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x97abc21b inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97b8cc82 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x97c50e5f vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x9813f892 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x9940d9a2 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x99959862 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x9a410d9b shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x9a62536d led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9a8286fc user_read +EXPORT_SYMBOL_GPL vmlinux 0x9a84b1ee class_create +EXPORT_SYMBOL_GPL vmlinux 0x9abd4746 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9ad9938c namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0x9af683c8 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x9b1ba7cd __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9c11addf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9c2f527b device_register +EXPORT_SYMBOL_GPL vmlinux 0x9c89cd1e sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0d3230 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x9d230dc3 input_class +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d58af66 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x9d76e555 nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9dcf5ef7 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x9e7d3442 xenbus_resume +EXPORT_SYMBOL_GPL vmlinux 0x9e7fab59 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9ecd7072 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x9f22eb5e tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x9fbd7ab0 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd042b8 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x9ffb2b40 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xa0000b49 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa0dde1ac __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0xa18710c6 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa23077b9 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xa2c03841 bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa31956c2 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa4a6ade7 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa6b69a83 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6e8ed88 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa6f32f58 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa8377062 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa883fcc2 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa927c7af disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xa933bf9f sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaadebeb8 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xaae33f6b pci_assign_resource_fixed +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xaba6bd6c __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xabc28976 force_evtchn_callback +EXPORT_SYMBOL_GPL vmlinux 0xac657e5e init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xacfd08b0 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xad45e353 put_device +EXPORT_SYMBOL_GPL vmlinux 0xad5c45ec page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xad9775da pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0xadd5d669 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0xae67455c scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xae82ba32 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xaeaf8d8a crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xaecaf1b2 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xaf5d533f klist_del +EXPORT_SYMBOL_GPL vmlinux 0xb0bb9ed8 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xb0ef507e inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xb0f013fd kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xb1131fff cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb140bcda register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb22859a2 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xb25c26df find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb32d9940 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xb3451508 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb4cf06fe inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb56ebb09 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xb5cfb33a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xb5f54afa __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb5ff496b bus_register +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6b33651 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb7514098 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb7b46327 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xb85e01e6 mmput +EXPORT_SYMBOL_GPL vmlinux 0xb87ec731 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xb989619f platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xba77b15c dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xbae39833 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xbb8bdf1d __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xbb98b7b9 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbc2bc733 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbc2c9a53 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xbc52388d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbc956083 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbce1053e dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xc08b26ec default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xc0e4e4bc elv_register +EXPORT_SYMBOL_GPL vmlinux 0xc2403ef8 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xc256bad8 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2c210c7 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xc329096e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3b84af4 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xc3fbd1ce cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xc4238049 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xc42b2c9c debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xc4e1a619 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xc4f6eb15 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc56adfd8 used_vectors +EXPORT_SYMBOL_GPL vmlinux 0xc5e8a5f7 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc5fc623c __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xc6144286 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xc62f7294 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xc6a4b6b1 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xc6ac8880 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc7af5bb5 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xc80df9b4 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8d84f85 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0xc906098e power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xc90c7a16 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc987e641 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb4a7f31 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb58b00a get_device +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcba33624 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xcc131460 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc7023e8 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xcd1bc376 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xcd697d2c device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xce87b3a7 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xce89780e inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xcf4ad4ed generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xcf88ebc0 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd01fc97a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd0243111 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd044f13c pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xd0a9f119 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd114313b simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1cd2ac4 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd305f14b tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xd31796de debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd32ae05d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xd3b78da3 xenbus_suspend_cancel +EXPORT_SYMBOL_GPL vmlinux 0xd3fd3d60 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd4101aaa input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xd469b034 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xd514cce1 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xd5b7cece vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xd6ae71c6 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd70f2e93 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0xd71bd63e platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xd7616905 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd86f6d20 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd88c39e6 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xd8de0261 percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0xd97930e2 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xd986dad1 kernel_fpu_begin +EXPORT_SYMBOL_GPL vmlinux 0xd9f9e160 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xda6f2358 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xdb97e76f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdb9f9e87 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdbe1a5b4 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xdc193393 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xdc3369a9 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xdd39ea84 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xddd16c39 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xde03c724 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xdefd03a6 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xdf599219 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xdf5a9c15 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xdf6a4016 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdfde5fe9 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe00fc6a1 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xe0427e0f crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe09885d3 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe1047f8b __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xe1b63f9c set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0xe1fe9386 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xe25fef93 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0xe26a63a0 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xe3279ebc devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xe34fef50 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xe35940a0 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe37e2d47 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xe3b74f46 user_update +EXPORT_SYMBOL_GPL vmlinux 0xe3bc87d6 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xe4419d88 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xe48a35b3 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xe4d3cf2f __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe4e72974 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe5a71684 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe617689c __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe64f9fb7 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xe71b3b8b sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe779417c class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe7832b74 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xe7c42042 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xe7cb694a inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xe82859b1 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe880f0ec devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xe8f04c56 per_cpu__gdt_page +EXPORT_SYMBOL_GPL vmlinux 0xe92e680f user_match +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe99f6497 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea20ebde sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xea3c3326 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xeb45a743 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xebc18661 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xec0a102f device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xecc1c8be fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xecef9fbb acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xed3f9f33 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedfaa029 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xee205b3a bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xee4c3147 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xeefab081 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xef4518db inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xef53fcc0 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf02de5ba srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf112d30c power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1ce4b01 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xf2151c27 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xf266b2d3 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xf40c6348 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xf47f6b06 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf48f5879 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xf4aebdc3 xenbus_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5c3df97 k_handler +EXPORT_SYMBOL_GPL vmlinux 0xf6a38cb6 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8e73b4e tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xf950d784 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9e53f18 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfa34c10e inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xfab9699d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb607b40 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xfba2866f leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc24b6bf proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xfc79d2f6 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdfa77f5 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0xfe003363 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xfe7ac897 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xff08b9ae simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xff83b2bf atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xffe83d66 bus_remove_file +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x1b6ff32f usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x40503c4e usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xbdf38abc usb_register_driver +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/generic.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/generic.modules @@ -0,0 +1,1921 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +53c700 +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +82596 +8390 +9p +9pnet +9pnet_fd +9pnet_virtio +a100u2w +a3d +aacraid +abituguru +abituguru3 +ablkcipher +abyss +ac +ac3200 +ac97_bus +acecad +acenic +acpi-cpufreq +acpiphp +acpiphp_ibm +acquirewdt +act2000 +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +advansys +advantechwdt +aead +aec62xx +aes_generic +aes-i586 +affs +af_key +af_packet +af-rxrpc +agpgart +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airprime +alauda +ali14xx +ali-agp +ali-ircc +alim1535_wdt +alim15x3 +alim7101_wdt +ambassador +amd64-agp +amd76xrom +amd8111e +amd-k7-agp +amd-rng +analog +anubis +aoe +apm +appledisplay +applesmc +appletalk +appletouch +applicom +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arlan +arptable_filter +arp_tables +arpt_mangle +asb100 +asix +asus_acpi +asus-laptop +async_memcpy +async_tx +async_xor +at1700 +at25 +ata_generic +ata_piix +aten +ati-agp +atiixp +ati_remote +ati_remote2 +atl1 +atlas_btns +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +auerswald +authenc +auth_rpcgss +autofs +autofs4 +avma1_cs +avm_cs +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +battery +bay +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_aout +binfmt_misc +bitblit +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpck6 +bpqether +br2684 +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +button +bw-qcam +c101 +c4 +cafe_ccic +cafe_nand +camellia +capi +capidrv +capifs +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +ck804xrom +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cmd64x +cmtp +cn +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +container +cops +coretemp +corgi_bl +cosa +cp2101 +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpqphp +cpu5wdt +cpufreq_conservative +cpufreq-nforce2 +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +cpuid +c-qcam +cr_bllcd +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cs5535 +cs5535_gpio +cs553x_nand +cs89x0 +ct82c710 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyblafb +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dca +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +dell_rbu +depca +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +dilnetpc +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +dock +docprobe +donauboe +dpt_i2o +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dtc +dtc2278 +dtl1_cs +dtlk +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro +eepro100 +eeprom +eeprom_93cx6 +eexpress +efficeon-agp +efs +ehci-hcd +elo +elsa_cs +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +es3210 +esb2rom +esi-sir +esp4 +esp6 +et61x251 +eth1394 +eth16i +eurotechwdt +evbug +evdev +ewrk3 +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fakephp +fan +farsync +fat +faulty +fbcon +fb_ddc +fb_sys_fops +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +firestream +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +font +forcedeth +fore_200e +freevxfs +freq_table +friq +frpw +fscher +fschmd +fscpos +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +fuse +g450_pll +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic_serial +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +g_NCR5380 +g_NCR5380_mmio +grip +grip_mp +g_serial +gtco +guillemot +gunze +gx1fb +gxfb +gx-suspmod +g_zero +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hecubafb +hermes +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfc_usb +hfs +hfsplus +hgafb +hid +hidp +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hpfs +hp-plus +hpt34x +hpt366 +hptiop +ht6560b +hwmon-vid +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-core +i2c-dev +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i5000_edac +i5k_amb +i6300esb +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i830 +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmasm +ibmasr +ibmcam +ibmlana +ibmmca +ibmpex +ibmphp +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +in2000 +inet_lro +inftl +initio +inport +input-polldev +intel-agp +intelfb +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isl6421 +isofs +isp116x-hcd +it87 +it8712f_wdt +iTCO_vendor_support +iTCO_wdt +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +joydev +joydump +jsm +k8temp +kafs +kaweth +kbic +kbtab +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kvm +kvm-amd +kvm-intel +kyrofb +l2cap +l440gx +l64781 +lanai +lance +lanstreamer +lapb +lapbether +lcd +ldusb +lec +led-class +leds-net48xx +leds-wrap +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lne390 +lockd +lock_dlm +lock_nolock +logibm +longhaul +longrun +loop +lp +lp486e +lpfc +lrw +ltpc +ltv350qv +lxfb +lxt +lzo_compress +lzo_decompress +m25p80 +ma600-sir +mac80211 +machzwd +macmodes +macvlan +madgemc +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdacon +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +meye +mga +michael_mic +microcode +microtek +mii +minix +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msp3400 +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mwave +mxser_new +myri10ge +n2 +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +NCR53c406a +NCR_D700 +NCR_Q720_mod +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +net2280 +netconsole +netrom +netsc520 +nettel +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +ni52 +ni65 +nicstar +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidia-agp +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +opti621 +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p4-clockmod +p54common +p54pci +p54usb +p8023 +padlock-aes +padlock-sha +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_acpi +pata_amd +pata_artop +pata_atiixp +pata_cmd64x +pata_cs5520 +pata_cs5536 +pata_efar +pata_hpt366 +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_qdi +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300 +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9539 +pcbc +pcbit +pcd +pcf8574 +pcf8591 +pci +pci200syn +pciehp +pci_hotplug +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +pms +pnc2000 +powermate +powernow-k6 +powernow-k7 +powernow-k8 +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +processor +progear_bl +proteon +psi240i +psmouse +pt +pvrusb2 +pwc +qd65xx +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r82600_edac +r8a66597-hcd +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-gemtek-pci +radio-maestro +radio-maxiradio +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-terratec +radio-trust +radio-typhoon +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_gxx +sbni +sbp2 +sbs +sbshc +sc +sc1200 +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +scb2_flash +scc +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +scx200_32 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdio_uart +sdla +sd_mod +se401 +seagate +sealevel +sedlbauer_cs +seed +seeq8005 +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +shpchp +sidewinder +sierra +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +smbfs +smc9194 +smc91c92_cs +smc-mca +smctr +smc-ultra +smc-ultra32 +smsc +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +softcursor +softdog +sony-laptop +sonypi +soundcore +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedstep-centrino +speedstep-ich +speedstep-lib +speedstep-smi +speedtch +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +ssfdc +sstfb +st +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +sworks-agp +sx +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +tc86c001 +tcic +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram-sir +teles_cs +tg3 +tgr192 +thermal +thinkpad_acpi +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tileblit +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmscsim +tmspci +toshiba +toshiba_acpi +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +trancevibrator +tridentfb +trm290 +ts5500_flash +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +twofish-i586 +typhoon +u132-hcd +u14-34f +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +ultrastor +umc8672 +umem +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usbcore +usb_debug +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +via +via686a +via-agp +via_chrome9 +via-ircc +via-rhine +via-rng +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_net +virtio_pci +virtio_ring +visor +vitesse +vivi +vlsi_ir +vmlfb +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w9966 +w9968cf +wacom +wafer5823wdt +wanrouter +wanxl +warrior +wavelan +wavelan_cs +wbsd +wd +wd7000 +wdt +wdt_pci +whiteheat +winbond-840 +wire +wistron_btns +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xd +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +yenta_socket +z85230 +zatm +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/virtual.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/virtual.modules @@ -0,0 +1,684 @@ +8021q +8139too +8390 +9pnet +9pnet_fd +9pnet_virtio +ac +ac97_bus +ac97_codec +acpi-cpufreq +act_gact +act_ipt +act_mirred +act_nat +act_pedit +ad1848 +aead +aedsp16 +aes_generic +aes-i586 +af_key +af_packet +agpgart +ah4 +ah6 +anubis +appletalk +arc4 +arcfb +arptable_filter +arp_tables +arpt_mangle +async_memcpy +async_tx +async_xor +ata_generic +ata_piix +authenc +auth_rpcgss +autofs +autofs4 +befs +bfs +binfmt_aout +binfmt_misc +bitblit +blkcipher +blowfish +bonding +bridge +bsd_comp +BusLogic +button +cast5 +cast6 +cbc +cdrom +cifs +cirrusfb +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cn +coda +configfs +container +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +cpuid +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptoloop +crypto_null +dca +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_tfrc_lib +dcdbas +decnet +deflate +dell_rbu +des_generic +dlm +dm-crypt +dm-emc +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dm-zero +ds1682 +ds2760_battery +dummy +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +ecryptfs +eeprom_93cx6 +efs +ehci-hcd +em_cmp +em_meta +em_nbyte +em_text +em_u32 +eql +esp4 +esp6 +evbug +evdev +exportfs +ext2 +ext3 +fan +fat +faulty +fbcon +fb_sys_fops +floppy +font +freevxfs +fuse +gameport +geode-aes +gf128mul +gfs2 +gx-suspmod +hangcheck-timer +hfs +hfsplus +hpfs +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-core +i2c-dev +i2c-piix4 +i2c-taos-evm +icplus +ide-cd +ide-disk +ide-generic +ide_platform +ifb +inet_lro +intel-agp +intel-rng +ioatdma +ip6_tunnel +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipx +iscsi_tcp +isofs +isp116x-hcd +it8712f_wdt +iTCO_vendor_support +iTCO_wdt +ixgbe +jbd +jfs +kahlua +khazad +libata +libcrc32c +libiscsi +libphy +libsas +linear +llc +llc2 +lockd +lock_dlm +lock_nolock +longhaul +longrun +loop +lp +lrw +macvlan +mbcache +md4 +mdio-bitbang +md-mod +michael_mic +microcode +mii +mptbase +mptctl +mptfc +mptsas +mptscsih +mptspi +mpu401 +msdos +msnd +msnd_classic +msnd_pinnacle +msr +multipath +nbd +ne2k-pci +netconsole +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_ipv4 +nf_conntrack_irc +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_udplite +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +ntfs +nvram +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +opl3 +oprofile +output +p4-clockmod +p8022 +p8023 +padlock-aes +padlock-sha +parport +parport_pc +pas2 +pata_acpi +pata_amd +pata_artop +pata_atiixp +pata_cmd64x +pata_cs5536 +pata_hpt366 +pata_hpt3x3 +pata_platform +pata_via +pcbc +pcnet32 +pcspkr +pda_power +pktcdvd +pktgen +powernow-k6 +powernow-k7 +powernow-k8 +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoe +pppol2tp +pppox +ppp_synctty +processor +psmouse +psnap +pss +qla1280 +qnx4 +quota_v1 +quota_v2 +r8a66597-hcd +raid0 +raid1 +raid456 +raid_class +raw +reiserfs +rng-core +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +sb +sb1000 +sbc7240_wdt +sb_lib +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_mod +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_wait_scan +sctp +sd_mod +seed +serio_raw +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +sit +slhc +slip +smbfs +snd +snd-ac97-codec +snd-ad1889 +snd-ainstr-fm +snd-ainstr-simple +snd-ak4114 +snd-ak4531-codec +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigoio +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-maestro3 +snd-mia +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcm-oss +snd-pcxhr +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-rtctimer +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-instr +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-oss +snd-seq-virmidi +snd-serial-u16550 +snd-soc-core +snd-sonicvibes +snd-timer +snd-trident +snd-trident-synth +snd-usb-audio +snd-usb-caiaq +snd-usb-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-ymfpci +softcursor +softdog +sound +soundcore +sound_firmware +speedstep-centrino +speedstep-ich +sr_mod +ssb +sscape +sunrpc +syscopyarea +sysfillrect +sysimgblt +sysv +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tea +tehuti +tgr192 +thermal +tileblit +tipc +trident +trix +ts_bm +ts_fsm +ts_kmp +tsl2550 +tulip +tun +tunnel4 +tunnel6 +twofish +twofish_common +twofish-i586 +uart401 +uart6850 +udf +ufs +uhci-hcd +uio +uio_cif +usbcore +usb-storage +uvesafb +vesafb +veth +vfat +vga16fb +vgastate +virtio +virtio_balloon +virtio_blk +virtio_net +virtio_pci +virtio_ring +v_midi +w1_ds2760 +wire +wp512 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xor +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +zlib_deflate --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/386 +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/386 @@ -0,0 +1,6835 @@ +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/kernel/scx200_32 0x907665bd scx200_cb_base +EXPORT_SYMBOL arch/x86/kvm/kvm 0x6b35ce70 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0x062bdf72 acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0x4147dc0d acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0x7b4a271e acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xc3f95d0f acpi_processor_notify_smm +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/atm/suni 0xe5222d90 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xfd54c39d uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0x46f108d8 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x0c13ebc6 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x3cb31850 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x60ea7895 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x631d87a6 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x6f62307a paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x772400af pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x82689abb pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x88ce1975 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x8bbf277f pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xbf84a5c7 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xdebc7f55 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xf06d1b15 paride_unregister +EXPORT_SYMBOL drivers/cdrom/cdrom 0x400d5fde cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4bb65ddb cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x609b9104 cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0x681e272e cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x7300d07f register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x9e7b018f unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb265fc9a cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb2889bdf cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb4f67eda cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0xd3afff82 cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe0d30703 cdrom_get_media_event +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0be95821 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x287d6c42 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2a91035d agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x34aecfc4 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x40534dfb agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4bf88b03 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x50bad2e6 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x61d86dc1 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6487000d agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6ed29432 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x729ac393 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x75f26b96 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x81e3471b agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x86edfb61 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x877f6853 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x87d1fd15 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8d006606 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8d0cba8d agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8ed76fc1 agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa2372b4b agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaea2c4c8 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaed1e0e4 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbb2b13c8 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbe3c7b18 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5c3216d agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xced2719d agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd1ef8696 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xeba1bfed agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xed8e473b agp_alloc_page_array +EXPORT_SYMBOL drivers/char/drm/drm 0x028a946b drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x1206aec0 drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0x164440d3 drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x1803a836 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0x1a4e1356 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x22b8c68d drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x237612ff drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0x253e3552 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x34e1a7c3 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x40e71ff6 drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0x437f0016 drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0x45ba1f0b drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x463ea5f9 drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x4dbab2a7 drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x50825368 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x59db74b7 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x5eba2b64 drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0x60fa532c drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0x61e1d9fc drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0x63691f48 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0x6ae6b3c9 drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0x8e17d482 drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0x8f4ac5d0 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0x902dd25e drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0x923d0ac9 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0xa5ef106b drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0xa64c1947 drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xac98091e drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0xae5a3e2b drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xaf47c340 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0xb9dee894 drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0xbe10a186 drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xd42750c0 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0xd56dd119 drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0xde558b11 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0xdf683961 drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xefc0f912 drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0xf25c3b4b drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0xfd880394 drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/generic_serial 0x10555f03 gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0x12e46bc0 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x1a5bb73e gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0x2d15edfb gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x3c221bfe gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x55b64453 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0x58d7a242 gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0x77e92aa5 gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0x7ee0c3d8 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x82090769 gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0x8485b658 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x9f1646d5 gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0xaf21fab4 gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0xb22297f7 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0xc8a5aa3b gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0xf81350f1 gs_flush_buffer +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x14f8dfbc ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x161cf9ac ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x17953d73 ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aeda808 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4ec363d3 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x553b8a90 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x55600e2c ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5ba879c7 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x642a3853 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x671c3e06 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6c6c2d1b ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x83829801 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8456bc3e ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x867c475c ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x872b1297 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x87f6b047 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x89cd7205 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8f4f1afa ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x977c139d ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc2b17014 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xccf36439 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd53c5ae0 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe7bbe208 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfaa66b78 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/nsc_gpio 0x1ba99be8 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0x708c50db nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x74a93c11 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/char/rtc 0xc9b27289 rtc_control +EXPORT_SYMBOL drivers/char/rtc 0xeddfe49d rtc_unregister +EXPORT_SYMBOL drivers/char/rtc 0xfdab2b9c rtc_register +EXPORT_SYMBOL drivers/char/toshiba 0x9421a6a6 tosh_smm +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0x80f05145 cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0xf563f869 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0x039ddc22 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0x837a6dfa edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xc4ebe1c1 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xcd40664e edac_mc_find +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x59377dd1 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8f2fbc83 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xcedf03c9 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x9afe5973 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xb7cb08a2 amd756_smbus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x004ea0b9 i2c_put_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x01c15af2 i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x3c7ba0b6 i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x46d8458c i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4fdf298f i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x54b76214 i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x55147d3f i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0x5ec9480e i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x5fa8e6ad i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x638f0c32 i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x7a19b287 i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x7c4bff98 i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x83be8e88 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x86cdeb0e i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0x9130d875 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x9acaa63f i2c_attach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xa6dbfb07 i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb1fc5d9e i2c_master_send +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc6ddec70 i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xcaa2aedf i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xcab99f32 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd02118e3 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe51ceec6 i2c_detach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe7e115ff i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe8470011 i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xee4e3914 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf19f482e i2c_add_adapter +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x1bc11ef8 ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0x22f7e643 ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x2499007d __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0x29a4be72 ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x3035b383 ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0x3d31f8c0 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x484a5492 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x67f70fb5 ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0x6f70be49 ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0x77bceac3 ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x7bb24ee1 default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0x7f67af75 pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x80aeafd1 ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x8411fbf3 generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0x92813a6d task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xaa5a3853 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0xaae33002 ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0xac303dc4 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xacbae37e __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0xb0096879 SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xb2dd36e8 task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xc6a6a1f8 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0xd9f97237 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0xdb91f08c ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0xe0252b48 drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0xe1ce9ca5 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0xe45c69ec ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xe4a3659b ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0xe508a0d2 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xef91236c ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xf000d566 ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0xf1dced4c ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0xf84613ec ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0xf8e47091 ide_dump_status +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x03c6fe33 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0a12bca3 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x10876679 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x11352c22 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1513c7eb hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x162fecb0 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x228468fc hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x22cc42ed hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x248e4036 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2752b9a8 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2f0a09c1 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x316534bd hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37a736c9 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x38725750 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x38f17aaf hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3a1b4fc2 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3a3bcd07 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x449ddb54 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4652b0e3 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x478b7e75 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x489c29d5 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4da608e7 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4edb387a hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x502d4d54 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x51b15689 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x53f03a44 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x55186dff hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x55765545 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x55c7e2ae hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6053a7ae hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x62824a52 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b9ebbe4 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7a97a395 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7ef35810 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x84899d03 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x84a6530a hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x86180820 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x867ae0a1 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x89dfdf3f hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x991c1581 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa007ab29 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa0879a6f hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xae1d623f hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xae877c59 hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb068bddc hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb85d4aed hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba881522 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbbf21d9c hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2c88df2 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3312855 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc8367157 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd412f507 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd4234d88 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd8523616 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdb014c83 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdb703d98 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xddcbcd03 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xded0113a __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe54a22cd hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe69c2ad7 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe6a8939f hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe94d37ab hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf64c27fb hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfad9f36f hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x0cf8806e ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x6f99c588 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xef8dc934 ohci1394_stop_context +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd2caec8d rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd7fa0561 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xef54e022 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xf0755560 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x114c3ac1 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x38b19fd4 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a23dc3a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x41f79265 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x552e6c7f ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5d1ea90c ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7cba6c44 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x80f91b29 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x90ec27a3 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x976dd66d ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbb6a789b ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc00334fd ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc45ac305 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe01785f3 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf0965489 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf3784cff ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05adc9eb ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x107a3556 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1235ba6c ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x197c77aa ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b553b0b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fbbc797 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21a71497 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30c5e54f ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31505c87 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3349406c ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x361dfeae ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3baa7ba8 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e8c5123 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x403703f3 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4537a63b ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45b89dcf ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d9ea7ea ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x545bd7cf ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54c1e5e1 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x562d5989 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e804eac ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5edae73b ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fbeff81 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x68b68adc ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c5e8c8d ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e3f05c5 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x738de798 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76749cf6 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78336517 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d54b346 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f9d994c ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x835dca0b ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83c50249 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7d66cf ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9140faac ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91ecb90f ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x93f26cad ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98f40717 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5f1cf0e ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb18b40f2 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4ce7fc3 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7ec7ca6 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbfcc93d0 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0ee6630 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4c70cef ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcad15163 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb6ff589 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xceb30aa9 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfc6ec84 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0594765 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd17ba9d1 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd28db47b ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd600d2b5 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd905e2ef ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9a17384 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc9cfaaf ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe61bebd4 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeadd296c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8c212e2 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbe4ebc1 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfcd031cc ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfda740b2 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff9bde43 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0c5134df ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x107b24c3 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x20c3bb44 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4139277b ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x46b27a1f ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6318887c ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8781097e ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x87b24e4d ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa07214ff ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb12f6549 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc4ff8420 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd7ad0ce2 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0c23d888 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5afa5dca ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x66f7dcb7 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x853fd5c9 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x91b59c1a ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9d31b89b ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9e6851a2 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9eb08114 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe0e4c8af ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0c8068db iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x16af4347 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x25173a1d iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x86ef0c56 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb56cc2be iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbd1b3f92 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc0d13ee9 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe3307f30 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x18c07987 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x19532f36 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x20c01998 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x281d8ab0 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2869d79c rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x336c3867 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x41261e24 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4b88fe4c rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5062ddbc rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x51e3c6ba rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ce8cab7 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x77f31988 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8e6f1791 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb50328c3 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbb539883 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcb1db3d9 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd7113243 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe741ef62 rdma_connect +EXPORT_SYMBOL drivers/input/gameport/gameport 0x081d37b1 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x17e040da gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0x379f4580 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x538159b3 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x930702fc gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa61915ec __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa911edff gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbe7b13c1 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc77c98a0 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd30b5cac gameport_unregister_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x03445d5a input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x2958a2ee input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x3a3e6e19 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb814641e input_free_polled_device +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x2c54c957 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xd0bc06ce capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x202b8421 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x262b6987 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3dd7a1f0 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3e503ee5 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x546f0182 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x823a7547 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x82f39d28 capi_ctr_reseted +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9617e8a9 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc143b457 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc4e91f68 capi20_set_callback +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xea5a69c5 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x19dbafa7 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1a647765 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x26b2a16d b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x38528a14 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x812d2d06 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x90b5d840 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x96f9d2f4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9901ca24 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x99c83caa b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa1a6d58c b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa4a3bc0e b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc4fcc4b2 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd1000995 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd772921b b1ctl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf13ec25d b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf9cb7e71 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1f14a6e7 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2a386384 b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2c57de12 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x469baaab b1dmactl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x66095cbf b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x664bb4cd t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x78156b2d b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8b08454f b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbb15d9bd b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf698efe1 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x96346646 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x40f13393 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x77ee32f5 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa34c0a74 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe6d9da1c FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2764376f isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6dddede1 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x80373fe3 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8fc6b81a isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xaf788443 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x1ee629e2 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x95aed401 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x9ffc8215 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0xf5c8131d isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x43969dc9 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x97202446 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xea862f55 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/md/dm-mirror 0x80ae0ba8 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xc8a3e33a dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xd36853db dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xd75d3183 dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x112ec313 dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0x22f902ee kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x2a04d1b8 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x35ca914e dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x405177da kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x449d4571 dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x54db2d9f kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0x62494eb9 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0x65ef5fac dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x86793154 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x8800a162 dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x928c9cd2 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0x9ee38539 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0xa4e89d8e dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xaacf1ed3 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xad01fd60 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xdbfdfd5f dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0xed6e2ac4 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xee479421 dm_io_client_create +EXPORT_SYMBOL drivers/md/md-mod 0x0966f65d bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x202ad6b6 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x237bd18f register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x2b4753ec md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x4b620b0a md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x55775633 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x5b50e43b md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x7409ffeb md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x7c2d128b md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x8f4965dc md_error +EXPORT_SYMBOL drivers/md/md-mod 0xa6f84c06 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa7f155e7 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xaad0478a bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xb77446b1 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xb923c75f unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xcff07f49 bitmap_endwrite +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0d56d495 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1342b10f flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2066f56d flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3264ed26 flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x34c1c94b flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4062c73f flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x515cf934 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5a9c6551 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x70cfa78f flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7b6d6d04 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x950d9903 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xadde64cb flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbe754c90 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcd94a139 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd9215f39 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe2cec0d1 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe4cb2bd0 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe6f2ec0b flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf07ae66b flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfc732854 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x6acfb145 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x6d9348ed bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa9f6476b bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xb603fc6f bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x00887fc5 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x03bc4a58 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x03c4cb2d dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x19d332a5 dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1b1a49c6 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x504a8bd3 dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x541ac2ce rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5bce6aff dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x74155e79 dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc2793953 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc282dbba dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe0850fb4 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xeb6b1f17 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfdde5ed1 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x9f271cf4 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00cbdc37 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01154545 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01f4bbca dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0b2e9cdf dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x13ee8494 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x14c136db dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x20c0a34f dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2475c6bb dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2630d7b1 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31d54660 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x32b7d6b6 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x386634f4 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x432db8d3 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53b4deab dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x57826e46 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6a0e799a dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6b00c62c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74b702b6 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7999273e dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8577ba47 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x892f708e dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x94f10f50 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x95aa59ad dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa84e5541 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb6a46d88 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbfb04eec dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc856076d dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc8bf1185 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcc41083f dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcfcc652e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdc44c8bb dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe29e278c dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe8074fa5 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe9f0e3f6 dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeed03b98 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf195e953 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf6f2720c dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3ee1b516 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x455bfaf3 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x464ed627 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4fa21708 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x68377a20 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x69e57ea4 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x79f65739 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x0cba0f65 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00157b9f dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x05543d93 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4176eb13 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x65a85420 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7f4086d1 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa7c7d6ed dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa8004bc0 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdad5f687 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xea9313dd dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xefee1057 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf63ee70c dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x14d4de63 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x87e4718c cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x7426756f cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xc35d6b3e cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x1d7a5043 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x77303b5d dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x826f6c6b dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x0ce4652d dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0141e075 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x74e4c780 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x949a6cf1 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc93cda3a dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd4c7690c dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xfccef706 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x0e615435 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xf33c6a01 dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xf964710e dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1c7b95df dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6b4bf748 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7744d96b dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa3553506 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd1496e72 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd3bc45e2 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x1d70c392 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3ee97200 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf6df9174 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x98c87424 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x15a3d2ab isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xf85619bb l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x74203f66 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x7d4736ef lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0xa7930e30 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0xa1581982 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0xccfe6d48 mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x2d31912a vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x7ff33abf mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xc0e68d6c nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xcd572dfb nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x6984c959 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x0c45663f or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0x2b7294a8 qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xb4ab7454 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x9ec0f697 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x8bc24511 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x02c2355b sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x07ab4e15 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xdac30e0d stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x0521e2d0 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x1c240128 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x829992fe tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xf91c9307 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x6f72d1b4 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x52524871 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x4f228174 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0xb73ea07b tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x7280454b tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x226439f8 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xc944b753 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x5fb31f2e zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xd3473659 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x9655b0be ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xbd92b174 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x5c0fcd58 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x79a977bf bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xc6eb507a bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x560baba3 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x745bc8ea btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cpia 0x634f1c97 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x8093924d cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3559ba71 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa794cb9e cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x6d910c57 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xbf90d2d1 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x183fdf6f cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x4a1a8d43 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x804e6dca cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xbb5d44a5 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xc772817d cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x141d5a39 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x323bd30f cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x383e8c9a cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x3a285d75 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x3ecbaf19 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4755002b cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc608ffad cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc82cf383 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xdf965fff cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x07505ddb cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0ffdca85 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3856a31a cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4ee17416 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x563adaa6 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5a1fd187 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x654127ba cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6b19724d cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7ad1973b cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x85227da3 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x93b8566a cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x96d9a955 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x970be46a cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa2459578 cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb2ea1cba cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb69cf1fa cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd6078719 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd67db311 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdf31aa9f cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe77aa9a6 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf9b824b0 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfaab1318 cx88_reset +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x000d26ef ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1cd37050 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6d3b2350 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x78123a4f ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x891fe881 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb3bbda92 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb479cd09 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb5ab971a ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcdb5ed0f ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd56b0a68 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdfef06d4 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xeaea6358 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf2eef285 ivtv_api +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x15977595 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x38db67b5 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4765a9d9 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4d7f5c99 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x807a95ca saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8ebd62ba saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x915eb533 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb359b0a7 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb603d99c saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd573c077 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe7fdb9f0 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe8bf00df saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf2102889 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/tveeprom 0x440cb3f9 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x665d8da7 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x19d6d762 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x26af5b87 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x27824df6 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5a0ad483 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x633816ca usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x7a54a498 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa8caef21 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xb3f01b51 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xbc4a757d RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc1dd5e94 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x786109ac v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x202d062a v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3b0cd350 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc369097d v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1f45082 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xed275428 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd9b13621 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xdb67d7fe videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x255297d4 videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x624aaa90 videocodec_attach +EXPORT_SYMBOL drivers/media/video/videocodec 0xade271a6 videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0xe9bd818a videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videodev 0x3a88a61e video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x3e8be78c video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x45f7466f video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x5b143164 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5d2d8ce5 video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x9ee7fe31 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xaeba23f8 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0xf9980c89 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xfc87b90c video_register_device +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1039e379 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1a20ea1b mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x207019bc mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d5d07f7 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e971f38 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5432c861 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x555c42cf mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x560f22a4 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5c56bdfc mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x680d7406 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7edc5c16 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8329dc84 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x838eec5b mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x945900ef mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x95c99f78 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xafdf086f mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb7e477d2 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc4d3cafe mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc5793e12 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde50ce01 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf0d5c292 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf264526b mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4967f3f mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf5c4c732 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x04fff953 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0994fecb mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x10a0dc3f mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x16f46c3e mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20599b7b mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21b789c6 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x308ae7c1 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x396c972a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x43b895a1 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4ba2172d mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x61c96daa mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x67dcc46d mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a689713 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6c9aa21d mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7177d1ef mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c3916d2 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9b3e9be5 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9d2c7332 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa006c67e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb06f813d mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd169074f mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe435a292 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf11d40a2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf3ede9cc mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0dae194f i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x142d8611 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1e130ca0 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x21a87020 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4c7ff71c i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x590806b0 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x660ba99f i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6aef7e8f i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7eff29f2 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7f9d49a2 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8c0272dd i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa934676f i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaaf3b7c7 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0b0837a i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xccba7511 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe2965d6b i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xec97e7c0 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf0a1dbfa i2o_status_get +EXPORT_SYMBOL drivers/misc/ioc4 0x8a2e821c ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xaac231df ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/misc/tifm_core 0x00ec7ca3 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x309b2ff0 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x4adf8716 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x4cf168b8 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5341d042 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x550b2e85 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x55ac64ff tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x87119187 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8bbac884 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xe2ac5af0 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xf11e1c6f tifm_register_driver +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x7dfb2fcb mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x234ec142 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3080f001 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x42a727dc mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5fc651e5 mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x61549bdf mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6746ab23 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x69f70b1b mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6d21ac02 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x75539a39 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x831ccc58 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x995e5105 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa3ff5684 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa7f84f76 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc542c7a7 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xda915640 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe1c060f6 __mmc_claim_host +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1d791247 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc26a2e3b cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd1641cc6 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3a697ffc do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x66815fb1 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x83a8b469 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8624dbe2 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xd3da157c mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xdd28eaf6 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x909e7ad6 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xca5696ea del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x27741aab mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x37cfa0d3 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x03c37725 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xd17a8cd1 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x28e0f697 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xf3fd81ca onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x3c5e56c9 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x47335b22 ei_close +EXPORT_SYMBOL drivers/net/8390 0x51aabb5c ei_open +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x90723110 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xc36fb6aa NS8390_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00ad59af arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x069bdc13 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3748176a alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x77a04fe0 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9bfa6810 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbdc47bdb arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x4ca98f25 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7eebdecd com20020_found +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0c3608d3 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x283f5854 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x350ec140 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4176ae79 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x48b697b6 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x57f65382 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x60c53f5f cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x72b83166 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x74501b85 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7db74428 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x81b92da7 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x848b3f40 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xae9c4965 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe87884c1 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xee73934f cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf7a6d33b t3_l2t_get +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x082af86c hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1638920b hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6a65851f hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf23003de hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf464a4fe hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x094af906 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x23e1018c sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x61cbd919 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x706351d6 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x76377736 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x87704282 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8e160f3b sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x98afa96f sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc0a3b325 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc73315d8 sirdev_receive +EXPORT_SYMBOL drivers/net/mii 0x1cbc75da generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x653ffcca mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x7b481bec mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x9a61a0de mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x9e134022 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xc382d978 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xd0ab61e5 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xffd9330b mii_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/fixed 0x5939aa4b fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0xe37b9a41 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x2883192c phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x2d4412b5 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x2dfb3d13 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x3621f574 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x39545add phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x3beb062e mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x3ecef13e phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x40d53a19 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x442812e9 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x47569798 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x480838d8 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x57b056df phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x5c3c98db mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x5fad9a6a genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x6426a8b7 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x6b53412b phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x713ab0fb genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x73ea5eff phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x7edb42b7 phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x9ad375d1 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xb0b728b2 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0xc3165174 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0xc506004a phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xc69ee34a phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0xd4e23bfe genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xf3c28b6d phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xf400911d phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0xf4be0e5a mdiobus_unregister +EXPORT_SYMBOL drivers/net/ppp_generic 0x18323822 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x28e0fd22 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x2e31cdf1 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x39817036 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x56c9476e ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x5902f333 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x62069442 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xa4ee2d2f ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xb8caefcf ppp_output_wakeup +EXPORT_SYMBOL drivers/net/pppox 0x19a72436 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x832b7473 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xab978ef5 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/net/sungem_phy 0xae5e7736 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x04555dcb tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1ed1d2a7 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x5a0fe810 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6d130bdf tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x40907ee4 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x47bb903c hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x65c76e00 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x73de11d2 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb761b6ca attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xca4ca37e hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd2e10acd alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd46244c6 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd6dfc2ea unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/syncppp 0x34e912fc sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0x5fdd05cb sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0x60dcd6c4 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0x9180bb63 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0xba7b3084 sppp_detach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xed41aa5e sppp_attach +EXPORT_SYMBOL drivers/net/wan/z85230 0x0a0678b6 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x0aa502cc z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x142013a3 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x1c41e99c z8530_txdma_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0x1e5873e5 z8530_get_stats +EXPORT_SYMBOL drivers/net/wan/z85230 0x24927e77 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x283e799e z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0x2b8ae4fd z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0x3a8dc11d z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x4d1efe3c z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x61d90f70 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x6a2210e2 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x8171bf6b z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x96e07ac5 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xc62df8a3 z8530_dma_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xd59fe3dc z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xd7370672 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf31d0799 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wireless/airo 0x5d9d6fa3 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xe3e0b631 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xeb892fc6 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x0c1c2192 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x94360769 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xfe3200c5 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0dc42a87 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f917fe8 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x11aa90d6 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x19f6f2cd hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x44877367 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4f3daa11 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x542595d4 hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ac91860 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x63802d74 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x642ef052 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6a04ec68 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x706cc4a3 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8d7855c4 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3a072dc hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3e06652 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb831c48c hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbdb24274 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc0a01f1d hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1dfba9b hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd3f2b71e hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd461fd02 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdaa7fc5c hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe21a4ada hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xea53fb51 hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed68546c hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf72622ce hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfd6b14fd hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1429bc77 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x19c18998 __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xa4bcea6b __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xab9c2944 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xd15a640e orinoco_reinit_firmware +EXPORT_SYMBOL drivers/parport/parport 0x03eea80f parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x0b42d5f0 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x1267457d parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x1e7dee69 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x34afdbd9 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x3c3b26e2 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x4b0c47ff parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x68ffd57a parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x7368ab93 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x748e64b6 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x798c4fe8 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x8f4da53a parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x8fb8f0b3 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x90a957e0 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x9755ca85 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x9a7beb72 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x9f5c48df parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x9febdab7 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xb1dd8c77 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xbcfbbb45 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xbdcdad2d parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xc427be88 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xc85f381c parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xc9164418 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xca2e9f3e parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xca463cb3 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xcbfc8be6 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xd2f0a1d2 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xdc9722fa parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xe6443ee6 parport_claim +EXPORT_SYMBOL drivers/parport/parport_pc 0x673c31a4 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x7d3a7605 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x12dff920 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1fcef12f pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x46432db0 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4a213ad8 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x65a17d4b pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x805ffa36 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8f9cb2fa pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x90be6af5 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x99ecd69b pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9f0f8bbd pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa8bd5fda pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb309eb2e pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbbf4eccb pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc0b2c66c pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc7bfa1bc pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd6f5524c pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe4c701ca cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x036b4a8c pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x130f6b2a pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x17cbf106 pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x196b71d4 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x229c019d pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x30fb36ae release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3eeb6c7a destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3fc15d90 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4352d70c pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x444a3c64 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x55a3e337 pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x593a4970 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5c0755d9 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x62809fd8 pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x668b4ed2 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6d660197 pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7083cad0 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7ad5e6bf pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x982f74ba pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa8f0867c pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa9a9e0bd pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb216422c pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb610bd58 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbd7f95be pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc41ab1a0 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcc309af1 pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xce9e34e0 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd679f86c pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe6107c94 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xeff0f818 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf2b39d49 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x21e23213 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/53c700 0x0d6a86ad NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0x5175c0f0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0xbb204361 NCR_700_release +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x1056671b esp_proc_info +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x1f6799b6 esp_bootup_reset +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x2a749b90 esp_initialize +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x3c0050b2 esps_in_use +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x3c3b26f4 esp_reset +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x6161c33f esp_slave_destroy +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x6545ab4c esp_handle +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x68ed6ef5 esp_abort +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x7ef82675 esp_info +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x88c85a20 esp_allocate +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x948f6af1 esp_slave_alloc +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0x9c220f20 esp_deallocate +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0xa3693cf9 esp_intr +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0xcb0b02ee esp_release +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0xcc5540c4 nesps +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0xcf365900 esp_queue +EXPORT_SYMBOL drivers/scsi/NCR53C9x 0xdce80bbf esps_running +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x74d2181d lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xaa48569a lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x13722e1e mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x54e461cd qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x65957eac qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6989965f qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8a1220df qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xac07852b qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc89df33f qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x23376045 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x83cbdc64 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xecc51138 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x008cae3c scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0b711292 scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c16e4cd scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0f0b9eec scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11034b46 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x148cef07 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1509aa37 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1a2a1949 __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1aa72b03 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1d0aaf41 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1e9d7d11 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x229c648e scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2be20783 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2fc61563 scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3165be8c scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x31a7edce scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x32b7a534 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3439d923 __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x387a73d9 scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x38bd535e scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x38de4197 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3cb8e690 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3ce6a39c scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3dd728bc scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3f851a26 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x409e3d0b scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x43c45cf8 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x45983cb6 scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x478bd128 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4a28aab8 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4ad53938 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x50eb213c scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x515a7606 scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5917fbae scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x59950fc6 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5d6477a7 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6005c8c1 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x607c4331 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x61313a05 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x61e76655 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x66137306 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6783e730 scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6def4045 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6f1e2031 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x814eb4af scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x817a7889 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x82af9b20 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x83589ab3 scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8fd61b1f scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x923e8f86 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9945c362 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x99db8c4f scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9b1c69c6 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9d47b09f scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa0a21dfb scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa2b5ed0e __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa4cefa87 scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa81b857b scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb082a302 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbb710b4d scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbf6f331b scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc15bf4e7 scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc1b87d00 scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc39e9fe8 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc58b95e9 __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcafc0dde scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcb644fc2 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcd7ab55f scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd3f7c9ff scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd49cd1a5 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xde25fdb7 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe6d9f98f scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea769bc2 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xedf07cea scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xee4c84b0 scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfb06d7da scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfb31c991 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfff26298 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0d6c5e26 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x19ddae1d fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1b01462c fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x553ea032 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6779ec37 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x88f9a662 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x97f9a252 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x991cdba3 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaf64a80b fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcd2c0d5c fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe5c0a517 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16cb78a3 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1a1c8ceb sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1aa26b79 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x207cbd43 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x234fc0db sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x23589bdb sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2fb295d8 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37f6790c sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3b0bf1a2 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x47379aec sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69584edc sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x836b2d2b sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x85e17ebb sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x86b80138 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x918bd2b6 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x92ca23ad scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9359e444 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x99244468 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xab8305cc sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xba96e8ad scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd921d92e sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe05b679a scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6dfd793 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe97bde9d sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf40da924 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe215a8b sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x219d4f16 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x79b334a0 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xa19728d1 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xcfd97a2d spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe5591e1f spi_display_xfer_agreement +EXPORT_SYMBOL drivers/ssb/ssb 0x1da3569b ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x22e8b07a ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x2b0317a0 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x35491d04 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x418c14b1 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4a86c823 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4fa8b7d5 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x511d8ff9 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x58ed75a6 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x8b6c227b ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x9481163f ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xba276b25 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdc756e3f ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xe3a1282a ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xebdf06f0 ssb_set_devtypedata +EXPORT_SYMBOL drivers/telephony/ixj 0x82fb652a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x19ed4209 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xdcc671b7 phone_register_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x02dda34e usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x03615c6c usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x065b1902 usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x068ea880 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0857ef33 usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0a880b13 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0b39613b usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1048036e usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x192cc480 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1cdf8f99 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1f17170b usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x25ef7838 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x26ac8ba7 usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0x26e65fd4 usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3b069a9f usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x59438dd4 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5b5fc4ec usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5c9381e7 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x62cc94f8 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x69431267 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6b4add7b usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x85ce8103 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x86990241 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8ebabf59 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0x95c5e8c7 usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9905c40c usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9f492a8e usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa70936e7 usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa750893c usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xae417e40 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xba03e53b usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc53c2b94 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc6390d08 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc97f426e usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc9bacac8 usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xce07e641 usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd1146436 usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd9449056 usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe149fa9b usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe26dbbee usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe48847b5 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe59e8476 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf17c79a2 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf42ec487 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf5ef0d96 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf689157b usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf757ebee usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfda77e9e usb_buffer_free +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x5623bdf7 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x57b15d3e net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xc91dd3f0 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x1e8bda56 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x32ae146f ezusb_set_reset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x33213f16 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x71bfbde2 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc90044ba ezusb_writememory +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9a7e4571 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xcb7d4be9 lcd_device_register +EXPORT_SYMBOL drivers/video/console/bitblit 0x8b4b9427 fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0xbb99125c get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0x1c5c029a soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0xd9f23517 fbcon_set_tileops +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x6070522f cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0x77167c58 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xcb79001b cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xfc14d8cc cyber2000fb_attach +EXPORT_SYMBOL drivers/video/display/display 0x3622cb14 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x6d380c6e display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x85159ac5 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x481867f9 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x4a28e81a matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x72ab8ef3 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x0206af79 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x13519eba DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6e89d3cd matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x91d41358 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xa5002917 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x22e915ef matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0c92a37e matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x40ce48e4 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7460b4a1 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9b3b5b59 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x160a8713 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe264bd21 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1695f5a8 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x42ec8967 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x5d817da5 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb7cb6e43 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcfc21a34 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/output 0x838bf9b4 video_output_register +EXPORT_SYMBOL drivers/video/output 0xd03bccf5 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x3a450889 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x567c45a7 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6f6e285f svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x87c2b987 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x904c62f8 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x9943db95 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xc8579694 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x3473ced9 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x2749c9d2 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x65ece4c4 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x76dced4f w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb5ffea2d w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x3a21d18d w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x8ec68651 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x1c665247 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x5d9376a8 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x6e91401d config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xab253f16 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xb71b4a84 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xbbe4e248 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xbcc314aa configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd35461d9 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xe1eecd4b config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xe76fa3ad config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xf352944f config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xf6c250a3 configfs_undepend_item +EXPORT_SYMBOL fs/jbd/jbd 0x0383faca journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x03b92926 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x09664396 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x0cc60c41 journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x262e8fe2 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x2712c2be journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x2e2c017a journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x48acebc9 journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x4a7c4e7f journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x4fda845f journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x52043ca5 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x53d3a155 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x6321992e journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x65142275 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0x653599ae journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x68395d47 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x6a08c4c5 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x70db5c30 journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x78bfd19c journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0x7ff44d33 journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x85b17051 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0x8da56ad2 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x919aedd9 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x98c0f8c5 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0xab466b28 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0xab50b612 log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0xafdd8aca journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0xb3472753 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0xba95b413 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0xbd680afe journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0xc4754ac3 journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xc63a7786 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0xc707834e journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0xcd05b128 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0xd44caa47 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xebe96016 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0xfcd6a6c3 journal_invalidatepage +EXPORT_SYMBOL fs/lockd/lockd 0x841b1920 nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/lockd/lockd 0xf2a3e52e nlmclnt_proc +EXPORT_SYMBOL fs/mbcache 0x0948ccd0 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x2f7c3c45 mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0x34c3db42 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0x375df2f9 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0x5a26394a mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x5cc7e822 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0xc4f03eef mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0xd33f5531 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xf4127a58 mb_cache_shrink +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x49ec1fbc nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x8927a18a nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/xfs/xfs 0x646ac0f6 xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x8ffdb3b8 crc16 +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x2329b292 crc32c_be +EXPORT_SYMBOL lib/libcrc32c 0x37d0b921 crc32c_le +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x33229564 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x7c8d44d5 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x06f0a937 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x3542313a p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0x36a39bbc p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x37df859c p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3cf598a8 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x403a1c19 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x506119a8 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x53b4a8cb p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x62d13cfb p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x65f60aa6 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x7f214637 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x7fb8be75 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x811a2c35 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x85da5532 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x8bb499d1 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x92f85e96 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x95eaea84 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xa5194a00 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xc2867b6a p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xc700dd04 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xc7690607 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xccb97237 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xce4027c3 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7c83b46 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe9312a9b p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xeabe9e4f p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xeb2aaf67 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x0143a807 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x343fbf9c alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x6f470b4f atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xe4381622 atalk_find_dev_addr +EXPORT_SYMBOL net/ax25/ax25 0x1ede0a9d ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x22972514 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x27b32e1f ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x48911615 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6de609ee ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb4db78e6 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc9a23a04 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xda34a2f9 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xf81dca5c ax25_listen_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x04237d66 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0765b502 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1cc6cbed hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ebe1107 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3808e8db hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6049b9c3 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x62893fa5 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x641d7d50 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f3944c0 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x75554cff bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x75e96dc1 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d204cda hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x808eaa43 hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x85c6c1f2 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8729bd23 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ed8a9d8 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0237abc hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf8da7ad bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5fd83d7 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbcb9ecf9 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd6a0546 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd2436e8c hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdcebdb63 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea5ad640 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf62edced bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf70c6d53 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf753bd71 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff841204 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x24512c3d br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x07d43c6b ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x235bced9 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x388934a6 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4e73b994 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5e64c98b ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6cb1b885 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x80e72e72 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa80493d4 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xedd82070 ebt_unregister_target +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0a9ee28a ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x1fcfab72 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x24c864f7 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x305997bf ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0x36351fc4 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x46f1c24e ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4ccaf2a0 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0x82216202 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x8d8509a5 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x97aaeae9 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa6b6b11e ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xab45a7a8 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xab4b6672 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0xaf84a2ea ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd0b5f3df ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe4db9963 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xee59dfa0 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf31af7b5 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf76a1cc6 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x2e183e55 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x46447639 ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x6b789c52 ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x8c06e3c4 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xa875d053 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xdad1868f ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ipv4/inet_lro 0x44ae0b8d lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x4bc85594 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0x65abfcbb lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x6cbae5d8 lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0xefbe17d8 lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xf2ca6077 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x0459e6be ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x15f20203 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x431a9ec6 ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x471ceff5 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x50c39e83 ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x8608d4a6 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x86298833 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x9aaa36d7 register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd9e6fe31 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xecf700b2 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xf5d9aec7 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x01bee65b arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x74e89ea5 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb8bf5e70 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x5c9dec6d ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xdd18d3cd ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe669df0b ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1197f976 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1dbfe533 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1dd035d8 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3c1aca48 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd87787f5 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf1d0a816 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0xb4510525 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xfb7f917a xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x02b309ed inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x14d5b676 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x228f64aa ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x2867b223 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x29784be4 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x2e9863ae in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x33eac9c1 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x37409954 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x4438d437 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x4ee212a3 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x5374e01b inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x57e1f2b3 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x60739c33 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x6f5f2b72 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x7397aa49 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x80da3656 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x89444af8 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x937447d5 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x975aebf6 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xace727c7 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xb510ffe7 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbc91e66d ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xbe7d13d6 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xc8dc9f46 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd9450b33 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xf4651705 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xfe7a0c1b xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0510525e ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x585823ba ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6941151c ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe169559f ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x0abe4d9c xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x5376910b xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0ea17563 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x15998435 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x178fe14a ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2835ca83 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x60a2a109 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7bb93efa ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa4bf39bf ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xaf131947 ircomm_flow_request +EXPORT_SYMBOL net/irda/irda 0x026193f4 iriap_open +EXPORT_SYMBOL net/irda/irda 0x05d7cfe5 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x062f3a26 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07b2fa75 irlap_open +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x165a7fde irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x19d79c82 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1c51e992 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22b0f52d hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x267c9788 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2cfa6d8c irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0x2d80c433 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x30827e1c irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x34c4e847 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x38b163c6 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x3b2e9df9 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x42c7c5ce irias_find_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x519118cc irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x538fe1e0 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x5504cf7c hashbin_new +EXPORT_SYMBOL net/irda/irda 0x57fb1ed2 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x5aad87aa irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x5d609063 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x5df47f76 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x5dff3566 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x638471ec proc_irda +EXPORT_SYMBOL net/irda/irda 0x6621aa8a hashbin_find +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6fdfd219 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x701e028e irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x72dea9cd irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0x739a0d02 iriap_close +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7f227d94 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x80fac337 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x81bc775a irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x857f66ee irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x86104065 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0x8a922c85 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9ae8aba0 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x9be6c3f7 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xa72603f7 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xb1f84765 irlap_close +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc72ffdd7 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xdc7dc982 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdf1d07bf irttp_dup +EXPORT_SYMBOL net/irda/irda 0xe2f84c82 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf8ed747a irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0xffd68b6a alloc_irdadev +EXPORT_SYMBOL net/lapb/lapb 0x2c074cca lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x398b160c lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x44e09458 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x4fb1b5e5 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x5b7e4bb4 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x65af7d53 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xd8130153 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xf12e12bf lapb_register +EXPORT_SYMBOL net/mac80211/mac80211 0x008c5105 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x19a6ba8d __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x2eb9674a ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x31950159 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x4a2e8e6b __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4e5970c0 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4e85635b ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x69e3af5b ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x6b9cc0a5 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x6fe74f34 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x7013d864 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7b09330c ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x7fe66564 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x82034d67 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x82b176ad ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x831777a8 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x840b6891 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x8d4c533a __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9fed4c30 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0xa718ee91 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xaa943eb4 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0xab19ba22 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb2f77255 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbfc0bf40 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc1958c08 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xcb8a00f9 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xcc1aedd8 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd19e0b4a ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xe3f80da8 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xe6aeb1ee ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x14df6540 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x39e16024 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x56ec85b1 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6797e4bb xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6c68ac94 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7c932b5b xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x8229e770 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xa45b4705 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xaf15f90c xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc2e1f996 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xcb5c2e99 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xf068dc09 xt_free_table_info +EXPORT_SYMBOL net/rfkill/rfkill 0x08018c72 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0x195ac763 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x2e0dd551 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0xad0a6ebb rfkill_register +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x279d5b32 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x32460763 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x417929df rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5ba40a0b rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5d9ca209 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x61829cc4 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6e775058 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x783fa5ad rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x82c15a43 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x845217fc rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x873ddc3e rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8eb6c6f5 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbfb59a2f rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd00afe3c rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdf327e31 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0aa1bd60 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x12edbcc5 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4ae9c051 make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5016f699 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x71b101cf gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x76f31cbf gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x77d79f85 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xa2c0fc41 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc7602377 gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xcb821286 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xdec6e68f gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe419b628 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf1e6caa5 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf28fe2cb svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf45a0a97 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x002242a3 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x01d266e8 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x06776751 rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0x07866b82 xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0x07993d3e xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0d22b11d rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x10580afc rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1302b7ad rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x19141bc1 rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1bae16f1 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1db385e5 rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1eb14eba svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x210d58c6 xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2238a969 rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2253bfec xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x284c29c7 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2ae76c60 rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x36a2f70e svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x38503270 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3da0ac26 rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4244d4d3 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x42db36e3 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x442824d8 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x44d7d591 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x458a5609 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x46eda291 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x488f69e6 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x493b3e0b svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4ed8adc5 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53e61180 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53f3c949 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0x567c48a0 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5ede6f21 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5f288b52 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5fcaf18a sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6fd4c526 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x72cabd30 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x738e7aef xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x74860a21 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x74a9d09c svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7562591f svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7882c9fa rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x858deb5b cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x877064c6 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8bc5e5da cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8cd77208 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8d649c6b xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8dc4f1f5 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8fd87c99 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x903a09ea svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x92e692ca rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x96a4fc42 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9a015928 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9b546d3f auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9d01d6cb svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9d585558 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9e211716 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9e7a26c3 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9f15c6f1 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa48d0ca2 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5eb1bf7 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa6f0dff2 svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa75e400e auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xab852c07 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xac1c3d75 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb2f3d692 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb332808f rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb540815b rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc53e13a1 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc5927a38 rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc7c03585 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e5e5be rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd13a8f3d svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd1b5f7d8 cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd1dde511 rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd208466c auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd8cf94f4 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd9366dc7 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd9561699 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe3485df3 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe8862dc3 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xea02ced5 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xee9748f5 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xef528b23 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0xef9ba680 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf354be85 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf7c6935b rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfcb9e9e0 rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xff4ed2ea svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xff515455 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xffbaa156 xdr_encode_pages +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x17ec2193 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x204e336e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0x2470c6a4 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3e93b677 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x47315098 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x4d564db0 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x4e796163 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8f8c25a3 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x965e8dba tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1cb765a tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xc32b2476 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xddc36f4a tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe049f6c3 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf5f39871 tipc_send_buf +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xd0af4fe6 register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x2dee28c1 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x5111ca5d wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xaa8dc7ba wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xf90073f7 wiphy_unregister +EXPORT_SYMBOL sound/ac97_bus 0xdd8db16f ac97_bus_type +EXPORT_SYMBOL sound/soundcore 0x571eb7cf register_sound_special +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x80f22e19 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xada9e1bb register_sound_midi +EXPORT_SYMBOL sound/soundcore 0xc42f1b5c register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xd1f78637 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0xd7acd9a6 sound_class +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0x00037d1b tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x00112f51 groups_alloc +EXPORT_SYMBOL vmlinux 0x0014de75 put_disk +EXPORT_SYMBOL vmlinux 0x00386fe8 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x004dcff5 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00a2267a pci_release_regions +EXPORT_SYMBOL vmlinux 0x00a9c9d4 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x00ac1ef3 simple_statfs +EXPORT_SYMBOL vmlinux 0x00bc5513 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x00dc87e6 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x016255e1 tcp_prot +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x023eb25e put_unused_fd +EXPORT_SYMBOL vmlinux 0x024ae214 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x025da070 snprintf +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x029043ed acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02b083b2 read_cache_pages +EXPORT_SYMBOL vmlinux 0x02c1d0dc blk_execute_rq +EXPORT_SYMBOL vmlinux 0x02cd3086 __down_failed_trylock +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e785fa sysctl_jiffies +EXPORT_SYMBOL vmlinux 0x030a7c70 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x03415eb3 pci_iounmap +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03960713 ioread16 +EXPORT_SYMBOL vmlinux 0x03a66661 bdget +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03c55c3f remove_suid +EXPORT_SYMBOL vmlinux 0x03e1d947 pci_map_rom +EXPORT_SYMBOL vmlinux 0x03f1cff2 generic_setlease +EXPORT_SYMBOL vmlinux 0x03f4b2d7 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x03f94dec remove_arg_zero +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043b8483 __kfifo_get +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0458aca0 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x046a6543 input_flush_device +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048827cf call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x048e20e1 km_new_mapping +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04f21fda skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x04f2bf2e tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05048b38 mca_is_adapter_used +EXPORT_SYMBOL vmlinux 0x05295a91 lock_may_write +EXPORT_SYMBOL vmlinux 0x05325061 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x0561f1c3 sync_inode +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0589908a pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x058c75d9 acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x05e0c0c0 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x05f46cea kernel_accept +EXPORT_SYMBOL vmlinux 0x05f911e5 unregister_key_type +EXPORT_SYMBOL vmlinux 0x05fdae6c neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x06127753 ioread16be +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x062aba95 mempool_free +EXPORT_SYMBOL vmlinux 0x066de523 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068b9420 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x06ac357f atm_proc_root +EXPORT_SYMBOL vmlinux 0x06b73fee llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x06cb34e5 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x06e04de3 init_timer +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070c2090 dev_add_pack +EXPORT_SYMBOL vmlinux 0x0733b442 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x0767d464 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x077fd370 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x078d859d current_fs_time +EXPORT_SYMBOL vmlinux 0x07977e1c serio_unregister_port +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x07a28fc3 eth_header_cache +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07ad2514 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x07b30f7e mpage_writepages +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07e1b9f9 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x07e4775d ip_dev_find +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0887f203 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x08ab688b blk_put_queue +EXPORT_SYMBOL vmlinux 0x08b5027c __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x08c1e6e7 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x091bfd7a con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x092b007a sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled +EXPORT_SYMBOL vmlinux 0x0938753e inode_get_bytes +EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x097168a3 simple_sync_file +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a776b7 generic_listxattr +EXPORT_SYMBOL vmlinux 0x09aeaf8c out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09d38715 create_proc_entry +EXPORT_SYMBOL vmlinux 0x09eb2a72 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a4a543f ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x0a85c98e ilookup5 +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0a9be5ec unregister_filesystem +EXPORT_SYMBOL vmlinux 0x0ab6abc0 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x0ab7bc65 inet_release +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ae875a8 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x0aef0593 module_put +EXPORT_SYMBOL vmlinux 0x0aff4ad6 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x0b17222e netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b251cbe __find_get_block +EXPORT_SYMBOL vmlinux 0x0b353626 iowrite8_rep +EXPORT_SYMBOL vmlinux 0x0b44cf74 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x0b69963e module_add_driver +EXPORT_SYMBOL vmlinux 0x0b6c2527 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b855b4a read_cache_page +EXPORT_SYMBOL vmlinux 0x0ba95591 netif_device_attach +EXPORT_SYMBOL vmlinux 0x0bce3753 ioread32be +EXPORT_SYMBOL vmlinux 0x0be28a45 get_fs_type +EXPORT_SYMBOL vmlinux 0x0bff9bb3 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x0c249b0f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x0c3b14b8 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x0c4400fb sk_free +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c85b3d4 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0c85eb48 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x0c9da1b0 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x0ccc1b4c pci_dev_put +EXPORT_SYMBOL vmlinux 0x0cf9ba27 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0d1b09f1 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x0d20f217 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d426fa6 downgrade_write +EXPORT_SYMBOL vmlinux 0x0d43f3ff inet_getname +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d7e20a9 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da130ac do_sync_read +EXPORT_SYMBOL vmlinux 0x0dcbd539 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x0dd87e02 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0dfff355 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x0e37d5eb d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x0e4374ff __nla_put +EXPORT_SYMBOL vmlinux 0x0e905b3e request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x0e9b0240 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x0ea844a6 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x0ead5073 vscnprintf +EXPORT_SYMBOL vmlinux 0x0ee2db1a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x0f01a078 lock_rename +EXPORT_SYMBOL vmlinux 0x0f2b8c2e pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0f352941 aio_put_req +EXPORT_SYMBOL vmlinux 0x0f4cbcf9 deactivate_super +EXPORT_SYMBOL vmlinux 0x0f4e7c1b linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x0f7cd2f6 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x0f85d934 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x0fbffb83 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x107d6ba3 __get_free_pages +EXPORT_SYMBOL vmlinux 0x10b4e468 free_task +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x11326058 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x114c2003 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11714590 fb_set_var +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1199ee51 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x11c6211e ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x12138f6c xfrm_register_km +EXPORT_SYMBOL vmlinux 0x1263060a mntput_no_expire +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x126b7cea open_exec +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x131d2b95 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x1320a5e9 vfs_quota_on +EXPORT_SYMBOL vmlinux 0x13597079 bd_set_size +EXPORT_SYMBOL vmlinux 0x137dc3c0 tty_set_operations +EXPORT_SYMBOL vmlinux 0x1414e0c1 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x141dbf9b acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x1433a9f2 inet_bind +EXPORT_SYMBOL vmlinux 0x1449100a do_munmap +EXPORT_SYMBOL vmlinux 0x144ed3a1 dev_base_lock +EXPORT_SYMBOL vmlinux 0x1457557a alloc_trdev +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x14b39567 inet_select_addr +EXPORT_SYMBOL vmlinux 0x14bf1853 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x14fdd61c pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x15042031 down_read_trylock +EXPORT_SYMBOL vmlinux 0x151b312d dev_mc_delete +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x156b2d9d udplite_get_port +EXPORT_SYMBOL vmlinux 0x157694e6 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x15779866 __scm_send +EXPORT_SYMBOL vmlinux 0x15882de6 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x15b4f5a9 __bio_clone +EXPORT_SYMBOL vmlinux 0x15bea4d2 pci_request_regions +EXPORT_SYMBOL vmlinux 0x15bf15fe skb_make_writable +EXPORT_SYMBOL vmlinux 0x15f305e4 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x164054b0 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x16418a49 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x16479e8f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x16744785 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x1681f91a dentry_unhash +EXPORT_SYMBOL vmlinux 0x168368ab may_umount_tree +EXPORT_SYMBOL vmlinux 0x16bbd268 dump_thread +EXPORT_SYMBOL vmlinux 0x16d350ae filp_open +EXPORT_SYMBOL vmlinux 0x16da8b78 simple_rename +EXPORT_SYMBOL vmlinux 0x16e1fb35 skb_store_bits +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17339b84 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x17341e78 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x175a298d acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x175ff2d2 vc_cons +EXPORT_SYMBOL vmlinux 0x177e3c6a generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x17a29637 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x17a6f6b8 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17b7303e inet_put_port +EXPORT_SYMBOL vmlinux 0x17d59d01 schedule_timeout +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17fbb532 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x181fd18b find_task_by_pid +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x183fb694 poll_freewait +EXPORT_SYMBOL vmlinux 0x185953fc pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x1870f920 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x18822746 devm_free_irq +EXPORT_SYMBOL vmlinux 0x18ddf6f8 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0x18f34db4 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x1927f186 fasync_helper +EXPORT_SYMBOL vmlinux 0x195aff0f dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x1972c0c1 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19d5d20a acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a620714 pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x1a8ff1c1 generic_write_end +EXPORT_SYMBOL vmlinux 0x1a99b1ec set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x1aae7480 is_bad_inode +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad42e1c sock_wfree +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b2211b0 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x1b2f11cd skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b69546c bdev_read_only +EXPORT_SYMBOL vmlinux 0x1b7138ba __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x1b7d4074 printk +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bd24f61 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x1c478a82 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x1cc2195b __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cdc48bb udp_prot +EXPORT_SYMBOL vmlinux 0x1ce8ee99 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x1d022c2b per_cpu__irq_regs +EXPORT_SYMBOL vmlinux 0x1d256a44 skb_over_panic +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d2cfc36 sk_alloc +EXPORT_SYMBOL vmlinux 0x1d3b6a2e vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x1dbdc841 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de314f3 hpet_control +EXPORT_SYMBOL vmlinux 0x1deef462 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x1dfb6aa9 ps2_command +EXPORT_SYMBOL vmlinux 0x1e202f06 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x1e608370 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e73ad27 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x1e77b1a0 seq_path +EXPORT_SYMBOL vmlinux 0x1eac8cac serio_rescan +EXPORT_SYMBOL vmlinux 0x1eb922a3 IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x1eba9e49 iowrite16_rep +EXPORT_SYMBOL vmlinux 0x1ebcc02a idr_for_each +EXPORT_SYMBOL vmlinux 0x1ebe8428 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x1f08814b blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x1f153348 may_umount +EXPORT_SYMBOL vmlinux 0x1f5f1bca read_cache_page_async +EXPORT_SYMBOL vmlinux 0x1f7cc628 mempool_create +EXPORT_SYMBOL vmlinux 0x1f9cfe83 iomem_resource +EXPORT_SYMBOL vmlinux 0x1fae7a0b wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x1fb99349 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x1fc8a8a6 block_read_full_page +EXPORT_SYMBOL vmlinux 0x1fe5ede6 per_cpu__irq_stat +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x2007c71c rwsem_wake +EXPORT_SYMBOL vmlinux 0x20282688 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x203bb2d1 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x203c4177 compute_creds +EXPORT_SYMBOL vmlinux 0x206c6868 dquot_release +EXPORT_SYMBOL vmlinux 0x207e26f1 arp_xmit +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20b03464 filp_close +EXPORT_SYMBOL vmlinux 0x20c8fc33 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x21533de7 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x215bc5ff audit_log_format +EXPORT_SYMBOL vmlinux 0x218e0e57 blk_register_region +EXPORT_SYMBOL vmlinux 0x21c401dc input_unregister_handler +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e5c34d igrab +EXPORT_SYMBOL vmlinux 0x22147f5b bio_endio +EXPORT_SYMBOL vmlinux 0x2241a928 ioread32 +EXPORT_SYMBOL vmlinux 0x2244321f acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x22541e09 proc_root_driver +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a3d6bb seq_open +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22d78d6e blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x22dad0e7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x22fd03da register_atm_ioctl +EXPORT_SYMBOL vmlinux 0x2348984e adjust_resource +EXPORT_SYMBOL vmlinux 0x234cb490 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x2386881a locks_remove_posix +EXPORT_SYMBOL vmlinux 0x23a3debb set_device_ro +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad070a set_current_groups +EXPORT_SYMBOL vmlinux 0x23b25772 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x23c3c0ec key_unlink +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241c2d4c elv_add_request +EXPORT_SYMBOL vmlinux 0x2434bd78 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x24355655 notify_change +EXPORT_SYMBOL vmlinux 0x24390b7a km_query +EXPORT_SYMBOL vmlinux 0x243a35d1 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x243b6175 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x245a05c6 d_path +EXPORT_SYMBOL vmlinux 0x24a5d544 xfrm_nl +EXPORT_SYMBOL vmlinux 0x24b7ef0f register_netdevice +EXPORT_SYMBOL vmlinux 0x24c409d9 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x24c6ebb4 pci_find_capability +EXPORT_SYMBOL vmlinux 0x24d05e42 dma_async_client_unregister +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24e06399 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x24e9c816 cdev_alloc +EXPORT_SYMBOL vmlinux 0x24f0b4ad i8253_lock +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x251267ef ip_getsockopt +EXPORT_SYMBOL vmlinux 0x2513a709 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x251bb942 sk_run_filter +EXPORT_SYMBOL vmlinux 0x252265ca __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x2537bacb tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x254806e9 copy_io_context +EXPORT_SYMBOL vmlinux 0x254fd38c pnp_find_card +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25939071 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x25ba121c mempool_resize +EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x25fa6f17 wait_for_completion +EXPORT_SYMBOL vmlinux 0x261bd228 register_con_driver +EXPORT_SYMBOL vmlinux 0x2674b844 pci_match_id +EXPORT_SYMBOL vmlinux 0x2684597a send_sig +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x26fc4345 generic_fillattr +EXPORT_SYMBOL vmlinux 0x271fa390 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x27a72488 ioread8_rep +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27b47413 bio_split_pool +EXPORT_SYMBOL vmlinux 0x27bae6d8 vfs_link +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c1109b skb_copy_expand +EXPORT_SYMBOL vmlinux 0x27cddeb0 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x2809a79a security_inode_permission +EXPORT_SYMBOL vmlinux 0x2870d21f fput +EXPORT_SYMBOL vmlinux 0x2896a17c netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28be478e dev_open +EXPORT_SYMBOL vmlinux 0x28cd52c3 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f35813 scnprintf +EXPORT_SYMBOL vmlinux 0x291ef907 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x29351405 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x2940bb15 __mutex_init +EXPORT_SYMBOL vmlinux 0x294589b5 proc_dostring +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2983b6a9 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x2a11f746 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a358b0a reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x2a4464e9 simple_release_fs +EXPORT_SYMBOL vmlinux 0x2a4d4302 skb_copy +EXPORT_SYMBOL vmlinux 0x2a7b11d4 finish_wait +EXPORT_SYMBOL vmlinux 0x2a918a82 blk_complete_request +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aae4a53 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x2ae8bb09 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x2b038620 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x2b124027 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x2b3a8042 bio_clone +EXPORT_SYMBOL vmlinux 0x2b6901fb inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2b84ea3f alloc_fddidev +EXPORT_SYMBOL vmlinux 0x2b92d3ec d_find_alias +EXPORT_SYMBOL vmlinux 0x2b93a7dc redraw_screen +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bdc368b pagevec_lookup +EXPORT_SYMBOL vmlinux 0x2be49c30 acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c1e4933 set_disk_ro +EXPORT_SYMBOL vmlinux 0x2c2512ea get_zeroed_page +EXPORT_SYMBOL vmlinux 0x2c38a518 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x2c465bfa blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x2c4ddf8f uart_match_port +EXPORT_SYMBOL vmlinux 0x2c5749e6 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x2c709214 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x2c7f08fe textsearch_register +EXPORT_SYMBOL vmlinux 0x2c81d540 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x2c8f5989 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x2c9818f2 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x2cbb4c33 dput +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cd55530 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x2cd8ef60 simple_empty +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cde2d59 up_write +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d141fa4 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x2d1790bc uart_suspend_port +EXPORT_SYMBOL vmlinux 0x2d706697 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x2d8325f8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x2dbc755e iowrite32_rep +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dfb767b dev_get_by_index +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e651113 subsystem_unregister +EXPORT_SYMBOL vmlinux 0x2e726a41 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x2e746f88 sock_no_poll +EXPORT_SYMBOL vmlinux 0x2e785e5e pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x2e91d922 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x2eadb293 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x2ec3773c __lock_buffer +EXPORT_SYMBOL vmlinux 0x2ef92031 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x2f055e70 find_get_page +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f622d81 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x2f89d6c2 sock_create_lite +EXPORT_SYMBOL vmlinux 0x2fd18a7a pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x2fd1a7a9 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2febe1d5 dquot_initialize +EXPORT_SYMBOL vmlinux 0x2ff92ca0 find_next_bit +EXPORT_SYMBOL vmlinux 0x30343e46 iowrite16be +EXPORT_SYMBOL vmlinux 0x3036e2b0 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x305d52e3 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x307daaf5 set_user_nice +EXPORT_SYMBOL vmlinux 0x308b7c64 mca_device_status +EXPORT_SYMBOL vmlinux 0x30bf972f vfs_readlink +EXPORT_SYMBOL vmlinux 0x30cf2973 filemap_flush +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3167ea19 global_flush_tlb +EXPORT_SYMBOL vmlinux 0x318efdc1 inet_accept +EXPORT_SYMBOL vmlinux 0x319962c0 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x31acf9a8 generic_read_dir +EXPORT_SYMBOL vmlinux 0x31c762ae dcache_readdir +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31eb46b9 vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0x31ef909e register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x31faf316 aio_complete +EXPORT_SYMBOL vmlinux 0x322c6fc2 __check_region +EXPORT_SYMBOL vmlinux 0x32be4e03 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x32c1b6b4 netif_device_detach +EXPORT_SYMBOL vmlinux 0x32d01fec acpi_attach_data +EXPORT_SYMBOL vmlinux 0x32fe1967 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x3338a694 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x334d0e86 tty_devnum +EXPORT_SYMBOL vmlinux 0x335a1ec4 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x335b987d proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x3360bb18 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3369cc9c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x33934162 release_firmware +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33f03e13 register_snap_client +EXPORT_SYMBOL vmlinux 0x3421272c efi +EXPORT_SYMBOL vmlinux 0x342a8994 d_lookup +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3460fff8 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c64295 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x34cea7c9 block_prepare_write +EXPORT_SYMBOL vmlinux 0x35066b96 nf_log_register +EXPORT_SYMBOL vmlinux 0x35417366 devm_iounmap +EXPORT_SYMBOL vmlinux 0x355299a4 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x35776b18 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x359103fe bioset_create +EXPORT_SYMBOL vmlinux 0x359650a5 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x35aee59b reset_files_struct +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35e87776 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x36037742 key_type_keyring +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x363d8ff5 pci_bus_type +EXPORT_SYMBOL vmlinux 0x3672abe5 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x3693a2b0 skb_seq_read +EXPORT_SYMBOL vmlinux 0x369e0adf tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x36b63f3d con_is_bound +EXPORT_SYMBOL vmlinux 0x36d5355b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x36fa18dc xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x372bdbe0 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x375bf494 iowrite8 +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37cd0c2d posix_acl_permission +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37e99eda posix_lock_file +EXPORT_SYMBOL vmlinux 0x37feefbc generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0x3849ce68 nf_register_hook +EXPORT_SYMBOL vmlinux 0x3857d9b5 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x3895bd73 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x389e200f ioread8 +EXPORT_SYMBOL vmlinux 0x38abb30b tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bd2024 idr_remove_all +EXPORT_SYMBOL vmlinux 0x38c4403d atm_dev_register +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38f50ace cont_write_begin +EXPORT_SYMBOL vmlinux 0x392ad0e1 wireless_send_event +EXPORT_SYMBOL vmlinux 0x392cb98a __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x39512174 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3992b382 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x39bb40c8 pci_get_class +EXPORT_SYMBOL vmlinux 0x39cf2146 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x3a14f8dc update_region +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a5f42ba iget_locked +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa6635a sock_wmalloc +EXPORT_SYMBOL vmlinux 0x3abae056 complete_request_key +EXPORT_SYMBOL vmlinux 0x3acdd36c dev_driver_string +EXPORT_SYMBOL vmlinux 0x3acf3cdc xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x3ae42f3b swap_io_context +EXPORT_SYMBOL vmlinux 0x3aeac42e skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b47d70d mca_device_read_stored_pos +EXPORT_SYMBOL vmlinux 0x3b4b65b6 d_instantiate +EXPORT_SYMBOL vmlinux 0x3b580442 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x3b68fe8d security_task_getsecid +EXPORT_SYMBOL vmlinux 0x3b7eca07 end_request +EXPORT_SYMBOL vmlinux 0x3b9f081e uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x3ba70699 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x3bb74d6c end_queued_request +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bddabd1 sock_i_ino +EXPORT_SYMBOL vmlinux 0x3be262c7 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x3c08adf5 mca_device_transform_irq +EXPORT_SYMBOL vmlinux 0x3c4f0ae8 udplite_prot +EXPORT_SYMBOL vmlinux 0x3c66a8cb pnp_find_dev +EXPORT_SYMBOL vmlinux 0x3c6eda67 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x3c92db4b submit_bio +EXPORT_SYMBOL vmlinux 0x3c98b5a1 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3ce060e2 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ceac4b7 send_sig_info +EXPORT_SYMBOL vmlinux 0x3d4540b7 fsync_bdev +EXPORT_SYMBOL vmlinux 0x3d5ba3f4 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da1b07a machine_real_restart +EXPORT_SYMBOL vmlinux 0x3dbab21a cfb_imageblit +EXPORT_SYMBOL vmlinux 0x3dbea1a7 __f_setown +EXPORT_SYMBOL vmlinux 0x3dcd8321 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x3dd2a72c blk_init_tags +EXPORT_SYMBOL vmlinux 0x3df2e369 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x3e221351 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e2aecee end_that_request_last +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e6855dd ht_create_irq +EXPORT_SYMBOL vmlinux 0x3e7c3d91 wake_up_process +EXPORT_SYMBOL vmlinux 0x3e8070c9 neigh_destroy +EXPORT_SYMBOL vmlinux 0x3e81c4ba subsystem_register +EXPORT_SYMBOL vmlinux 0x3e8b3b1c kmalloc_caches +EXPORT_SYMBOL vmlinux 0x3e962f4e d_alloc +EXPORT_SYMBOL vmlinux 0x3eb03746 simple_write_end +EXPORT_SYMBOL vmlinux 0x3ecb42a5 inet_frag_find +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee300c3 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x3f320676 llc_sap_open +EXPORT_SYMBOL vmlinux 0x3f503463 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x3f51b397 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x3f566838 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x3f5c2993 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x3fbc4e6f inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fe516c0 pci_get_slot +EXPORT_SYMBOL vmlinux 0x3fe796b6 bio_init +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4018352a ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x402427eb wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x404c205c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x404ca6fd pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406e521a flush_old_exec +EXPORT_SYMBOL vmlinux 0x40848fa2 nf_reinject +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a65f17 tty_register_driver +EXPORT_SYMBOL vmlinux 0x40a87b53 pci_restore_state +EXPORT_SYMBOL vmlinux 0x40bdbea6 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x40cdaee5 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x412ddc0c dcache_lock +EXPORT_SYMBOL vmlinux 0x4136eace init_file +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41bf4fbf d_namespace_path +EXPORT_SYMBOL vmlinux 0x41e6543d generic_ro_fops +EXPORT_SYMBOL vmlinux 0x41f1f7c1 remote_llseek +EXPORT_SYMBOL vmlinux 0x420e210e blk_stop_queue +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42183c3f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x422c05d0 acpi_get_data +EXPORT_SYMBOL vmlinux 0x4251e427 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x42590253 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x4263dc93 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x4275cd22 file_permission +EXPORT_SYMBOL vmlinux 0x428efd7d ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x4295f1bc pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x42b60f35 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x42d1303c sock_register +EXPORT_SYMBOL vmlinux 0x42e7cfa4 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x42eacf08 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x43070fdd bit_waitqueue +EXPORT_SYMBOL vmlinux 0x430a530f pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x431e6130 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x4338893e pci_enable_msix +EXPORT_SYMBOL vmlinux 0x433e1511 vfs_readv +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43800f68 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43b40de7 kunmap_atomic +EXPORT_SYMBOL vmlinux 0x43d6e516 __lookup_hash +EXPORT_SYMBOL vmlinux 0x43e0d712 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x43f999d7 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x440e7507 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x442199dd mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x4435cece __seq_open_private +EXPORT_SYMBOL vmlinux 0x443d586a __free_pages +EXPORT_SYMBOL vmlinux 0x44468885 vcc_insert_socket +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x448ae2f8 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x44a0013f blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x44b41301 __elv_add_request +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d4caf5 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x44d70650 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x44f0a330 find_inode_number +EXPORT_SYMBOL vmlinux 0x451dfe72 register_qdisc +EXPORT_SYMBOL vmlinux 0x453fa266 dst_alloc +EXPORT_SYMBOL vmlinux 0x455855d4 vc_lock_resize +EXPORT_SYMBOL vmlinux 0x455fd57d acpi_set_register +EXPORT_SYMBOL vmlinux 0x45aea136 nobh_write_end +EXPORT_SYMBOL vmlinux 0x45bb0352 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x45d7390b ip_setsockopt +EXPORT_SYMBOL vmlinux 0x45d8168c eth_header_parse +EXPORT_SYMBOL vmlinux 0x45da4f36 mem_map +EXPORT_SYMBOL vmlinux 0x45ef31bb blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x4601f75d nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x460e1c50 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x465746ee dev_mc_add +EXPORT_SYMBOL vmlinux 0x46608fc7 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4676ff60 allocate_resource +EXPORT_SYMBOL vmlinux 0x46a07d87 acpi_extract_package +EXPORT_SYMBOL vmlinux 0x46bd75c0 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x46c7b898 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x4719ba4e kfifo_free +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x47341e38 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x4775eacf iowrite16 +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47b4f369 mca_device_transform_ioport +EXPORT_SYMBOL vmlinux 0x47ceba66 mnt_pin +EXPORT_SYMBOL vmlinux 0x47d5a7e1 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x480e6f62 end_dequeued_request +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x487a2cdb acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x4888a014 __get_user_2 +EXPORT_SYMBOL vmlinux 0x48b2c24d pci_enable_msi +EXPORT_SYMBOL vmlinux 0x48be901d posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x48f07026 key_create_or_update +EXPORT_SYMBOL vmlinux 0x48f9f12d complete_all +EXPORT_SYMBOL vmlinux 0x490fe53f sync_page_range +EXPORT_SYMBOL vmlinux 0x4913898f pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x491544f3 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x491dd0f3 is_container_init +EXPORT_SYMBOL vmlinux 0x492ee6e6 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x49371a79 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x493fc65f get_sb_single +EXPORT_SYMBOL vmlinux 0x4945ef8d bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x4967b90d d_alloc_anon +EXPORT_SYMBOL vmlinux 0x4969670c sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x49dfd975 d_rehash +EXPORT_SYMBOL vmlinux 0x49e49b58 deny_write_access +EXPORT_SYMBOL vmlinux 0x49f71a64 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x4a24992a tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a6d258c simple_transaction_read +EXPORT_SYMBOL vmlinux 0x4a914b42 __user_walk_fd +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4a9d35c0 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x4ab6f8bb __serio_register_driver +EXPORT_SYMBOL vmlinux 0x4ad7ff44 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x4aea2d7a sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x4b23ca65 kill_pid +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b4ba8e0 blk_init_queue +EXPORT_SYMBOL vmlinux 0x4b9f3684 kfifo_init +EXPORT_SYMBOL vmlinux 0x4bab77aa nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd23358 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c219a18 console_stop +EXPORT_SYMBOL vmlinux 0x4c2ec246 seq_open_private +EXPORT_SYMBOL vmlinux 0x4c312b03 mod_timer +EXPORT_SYMBOL vmlinux 0x4c3ca86b tty_name +EXPORT_SYMBOL vmlinux 0x4c59ed44 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x4c60b0f9 follow_down +EXPORT_SYMBOL vmlinux 0x4c7eeb4c lookup_one_len +EXPORT_SYMBOL vmlinux 0x4c912b27 inode_setattr +EXPORT_SYMBOL vmlinux 0x4cb3108b unregister_nls +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4ccd661b request_key +EXPORT_SYMBOL vmlinux 0x4ce4a293 write_one_page +EXPORT_SYMBOL vmlinux 0x4d09ffe2 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x4d33df45 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4da72925 tcp_child_process +EXPORT_SYMBOL vmlinux 0x4db62be4 vmap +EXPORT_SYMBOL vmlinux 0x4dc0aebc write_cache_pages +EXPORT_SYMBOL vmlinux 0x4dc16882 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x4dd8b052 sget +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e1e701a blk_put_request +EXPORT_SYMBOL vmlinux 0x4e299a61 block_commit_write +EXPORT_SYMBOL vmlinux 0x4e34ac7f atm_alloc_charge +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e41c847 gen_pool_create +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7ca53c mpage_readpage +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e8a6731 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x4e901ceb locks_copy_lock +EXPORT_SYMBOL vmlinux 0x4f1419c3 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4f15e3e9 dget_locked +EXPORT_SYMBOL vmlinux 0x4f82daec vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x4fa7ee32 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x4fc063ff blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x4fc64914 mca_unregister_driver +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe63515 d_move +EXPORT_SYMBOL vmlinux 0x4ffe278c register_key_type +EXPORT_SYMBOL vmlinux 0x500cc238 dquot_commit +EXPORT_SYMBOL vmlinux 0x50156d27 register_netdev +EXPORT_SYMBOL vmlinux 0x5015eeba __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502194b5 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51332dc0 skb_checksum +EXPORT_SYMBOL vmlinux 0x51420e7c generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x51569bad fb_set_suspend +EXPORT_SYMBOL vmlinux 0x5164f5c3 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x518eb764 per_cpu__cpu_number +EXPORT_SYMBOL vmlinux 0x51c99604 subsys_create_file +EXPORT_SYMBOL vmlinux 0x51d7a776 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52333459 alloc_file +EXPORT_SYMBOL vmlinux 0x52638a60 page_symlink +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52c87015 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x532e1bea bio_put +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53daa68a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x53dcbf08 bdi_destroy +EXPORT_SYMBOL vmlinux 0x53fea6d7 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x54324f95 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5448f1bb pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x548fa8e7 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a989ea init_buffer +EXPORT_SYMBOL vmlinux 0x54db4cbc km_state_expired +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5515954a dev_get_by_name +EXPORT_SYMBOL vmlinux 0x55195a25 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x556643e3 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x56179c5f mtrr_add +EXPORT_SYMBOL vmlinux 0x561bc557 __break_lease +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x564fd88b reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x567751c4 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x56781718 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x567d9d92 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x56bcca1d dst_destroy +EXPORT_SYMBOL vmlinux 0x56bd1c2b neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x57072755 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5715e1a9 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x5777e38c blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x57a0e2b0 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x57a5d9b2 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x57d6439f change_page_attr +EXPORT_SYMBOL vmlinux 0x57f3f71d call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x5816632b kill_pgrp +EXPORT_SYMBOL vmlinux 0x582f92e6 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x58314ca4 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x585d9c9d d_splice_alias +EXPORT_SYMBOL vmlinux 0x586acb43 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x586e7dfe bio_add_page +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x5913913a node_states +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x59350735 sock_create +EXPORT_SYMBOL vmlinux 0x594b7d30 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594d80f7 neigh_update +EXPORT_SYMBOL vmlinux 0x597ec6ec make_bad_inode +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59bc8f39 llc_sap_find +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59f1cd57 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a501cf1 input_register_handle +EXPORT_SYMBOL vmlinux 0x5a551c52 skb_unlink +EXPORT_SYMBOL vmlinux 0x5a57d961 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5ab91096 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ace079a tcf_action_exec +EXPORT_SYMBOL vmlinux 0x5b00a192 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x5b23d4bf tcf_hash_search +EXPORT_SYMBOL vmlinux 0x5b29b6b4 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5bda55a8 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x5c03214f gen_new_estimator +EXPORT_SYMBOL vmlinux 0x5c12421a skb_dequeue +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c4572cb tcp_connect +EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos +EXPORT_SYMBOL vmlinux 0x5d17518f schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x5d1a184b sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x5d4cbe8c gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x5d5de35b dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x5daafecf vfs_follow_link +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e029cb6 block_write_end +EXPORT_SYMBOL vmlinux 0x5e27bea3 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x5e2a5b48 serio_reconnect +EXPORT_SYMBOL vmlinux 0x5e36c14f rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x5e915d41 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x5e987f72 arp_create +EXPORT_SYMBOL vmlinux 0x5eeab9d1 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x5eec8a8c dma_async_device_register +EXPORT_SYMBOL vmlinux 0x5efed57e d_genocide +EXPORT_SYMBOL vmlinux 0x5f0cb96f km_policy_notify +EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter +EXPORT_SYMBOL vmlinux 0x5f1d333a tcp_check_req +EXPORT_SYMBOL vmlinux 0x5f2e01fb dmam_pool_create +EXPORT_SYMBOL vmlinux 0x5f59815f km_state_notify +EXPORT_SYMBOL vmlinux 0x5f6ee029 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5f735f6f serial8250_register_port +EXPORT_SYMBOL vmlinux 0x5f761004 keyring_search +EXPORT_SYMBOL vmlinux 0x5f7cd6af search_binary_handler +EXPORT_SYMBOL vmlinux 0x5f996ad5 init_special_inode +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6007067d atm_charge +EXPORT_SYMBOL vmlinux 0x600a7bfb inode_init_once +EXPORT_SYMBOL vmlinux 0x6047c4da gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x60610c03 down_write +EXPORT_SYMBOL vmlinux 0x6083cc40 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x6096d125 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60a4461c __up_wakeup +EXPORT_SYMBOL vmlinux 0x60b6f06f ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x60cde87f __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x612da48c ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x61319dbb sk_common_release +EXPORT_SYMBOL vmlinux 0x6141950c inode_double_unlock +EXPORT_SYMBOL vmlinux 0x618e614e mapping_tagged +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61dd06a0 sock_wake_async +EXPORT_SYMBOL vmlinux 0x61e2342f request_key_async +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241fd2c acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6245092f iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x625acc81 __down_failed_interruptible +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627476dc br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x627b316d rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x62bb5e86 key_validate +EXPORT_SYMBOL vmlinux 0x62db1143 block_sync_page +EXPORT_SYMBOL vmlinux 0x62ea1595 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x62ed2fa2 invalidate_partition +EXPORT_SYMBOL vmlinux 0x630b867b xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x6345374c skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x634f2044 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x635151e6 ilookup +EXPORT_SYMBOL vmlinux 0x635b8bec start_tty +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63af27b2 kmap_atomic +EXPORT_SYMBOL vmlinux 0x63d2df72 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x63dfe1b4 hpet_unregister +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6402aaff release_resource +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640f4ced xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x646ba4f6 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64c6d617 vfs_unlink +EXPORT_SYMBOL vmlinux 0x64d96acd gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x64e4ded7 sock_no_accept +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654d3ad8 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x658c566c fb_pan_display +EXPORT_SYMBOL vmlinux 0x661e6ec8 bioset_free +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x667fd062 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a97783 netdev_state_change +EXPORT_SYMBOL vmlinux 0x66b736f1 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x66d415cf vfs_writev +EXPORT_SYMBOL vmlinux 0x67232134 input_register_device +EXPORT_SYMBOL vmlinux 0x6724d9f8 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x6733cd76 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x6739fdce __dst_free +EXPORT_SYMBOL vmlinux 0x674c4e7a kmem_cache_free +EXPORT_SYMBOL vmlinux 0x67537580 user_revoke +EXPORT_SYMBOL vmlinux 0x676a1bd1 netpoll_poll +EXPORT_SYMBOL vmlinux 0x6774c11f dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x6787ede4 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67ce37c7 bd_release +EXPORT_SYMBOL vmlinux 0x6810b0f7 rtnl_notify +EXPORT_SYMBOL vmlinux 0x685ee542 kmap +EXPORT_SYMBOL vmlinux 0x686f1325 hpet_alloc +EXPORT_SYMBOL vmlinux 0x68850954 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x68971f4a __alloc_skb +EXPORT_SYMBOL vmlinux 0x68ded4f7 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x69005013 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x691315bf get_super +EXPORT_SYMBOL vmlinux 0x692a6153 generic_readlink +EXPORT_SYMBOL vmlinux 0x696c13ad free_buffer_head +EXPORT_SYMBOL vmlinux 0x6989a769 vsnprintf +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69b7e503 __getblk +EXPORT_SYMBOL vmlinux 0x69c7c835 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69db6ff9 atm_init_aal5 +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a377cd8 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x6a3dbcf0 generic_setxattr +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a631fae netif_carrier_off +EXPORT_SYMBOL vmlinux 0x6a84a618 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x6ad2d3ef xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x6ad778e5 up_read +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b0364a2 per_cpu__current_task +EXPORT_SYMBOL vmlinux 0x6b04612c fddi_type_trans +EXPORT_SYMBOL vmlinux 0x6b1a6767 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4f40ca generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used +EXPORT_SYMBOL vmlinux 0x6c0eb07a netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x6c1389f7 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c247f47 cdev_init +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c440a63 make_EII_client +EXPORT_SYMBOL vmlinux 0x6c579106 keyring_clear +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c9b5f0c splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x6c9fef84 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x6ca1dda6 read_dev_sector +EXPORT_SYMBOL vmlinux 0x6ca49e00 f_setown +EXPORT_SYMBOL vmlinux 0x6cadad7f neigh_table_clear +EXPORT_SYMBOL vmlinux 0x6cc50505 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce66043 mutex_unlock +EXPORT_SYMBOL vmlinux 0x6ce6cfe9 __kfree_skb +EXPORT_SYMBOL vmlinux 0x6ce8fe40 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x6ceb1b61 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6da6eeb4 unlock_buffer +EXPORT_SYMBOL vmlinux 0x6da7106b dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x6dc1d3d3 module_refcount +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e2a3e38 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x6e2d245a tcp_make_synack +EXPORT_SYMBOL vmlinux 0x6e2ece60 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6e440b58 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x6e4bf874 find_lock_page +EXPORT_SYMBOL vmlinux 0x6e4f0786 bio_hw_segments +EXPORT_SYMBOL vmlinux 0x6e66b424 fb_blank +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eac97d3 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x6ebe1532 end_that_request_first +EXPORT_SYMBOL vmlinux 0x6ed1dc87 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x6ee77e6e task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x6ef96461 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x6f06b2c4 cdev_add +EXPORT_SYMBOL vmlinux 0x6f08b092 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x6f48cc3c blk_unplug +EXPORT_SYMBOL vmlinux 0x6f5a54a1 do_splice_from +EXPORT_SYMBOL vmlinux 0x6f7dda17 ida_pre_get +EXPORT_SYMBOL vmlinux 0x6fabb25f xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x6fb38ed6 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x6fb86a5a force_sig +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x700236e7 dump_fpu +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x7039e14f dev_close +EXPORT_SYMBOL vmlinux 0x704c0b32 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70d096d9 page_readlink +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70df7375 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x716bfaa0 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7171f2b0 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x718ec4e3 freeze_bdev +EXPORT_SYMBOL vmlinux 0x719d90af tcf_em_register +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71bfb408 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x71c757ac xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x71c98772 framebuffer_release +EXPORT_SYMBOL vmlinux 0x71cb580f cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x7208e01f xfrm_state_add +EXPORT_SYMBOL vmlinux 0x720b897d shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x7227659f acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x72353755 ps2_init +EXPORT_SYMBOL vmlinux 0x725ec94d generic_write_checks +EXPORT_SYMBOL vmlinux 0x728edf6a elevator_exit +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b8793b ip_route_output_key +EXPORT_SYMBOL vmlinux 0x72bd7f26 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x72cc28cb mpage_writepage +EXPORT_SYMBOL vmlinux 0x72fc296f textsearch_unregister +EXPORT_SYMBOL vmlinux 0x7314ffd2 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x733c3b9e simple_prepare_write +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7369e55d alloc_disk_node +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x739c63ba inet_stream_ops +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73fae167 locks_init_lock +EXPORT_SYMBOL vmlinux 0x74054131 key_link +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741f1f6e hpet_register +EXPORT_SYMBOL vmlinux 0x745b6957 skb_find_text +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a10afc sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74d90703 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x74e985b6 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x7502850e nla_reserve +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x75a615f8 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x75df1cf5 sock_rfree +EXPORT_SYMBOL vmlinux 0x75e82242 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7630a36d kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x76573591 netdev_set_master +EXPORT_SYMBOL vmlinux 0x765b172e xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x76bc8230 proc_root +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf7d8f pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x7700acb5 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x77524a43 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x77b0f5e7 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x77c9faf1 pci_find_device +EXPORT_SYMBOL vmlinux 0x77cc3111 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x78000459 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x780165b7 lock_super +EXPORT_SYMBOL vmlinux 0x78176462 proc_symlink +EXPORT_SYMBOL vmlinux 0x78244a70 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x783b8c42 check_disk_change +EXPORT_SYMBOL vmlinux 0x784b1998 inode_double_lock +EXPORT_SYMBOL vmlinux 0x784d14da vfs_llseek +EXPORT_SYMBOL vmlinux 0x787880e5 init_net +EXPORT_SYMBOL vmlinux 0x78d0ffc4 mutex_lock +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e7ff10 kobject_put +EXPORT_SYMBOL vmlinux 0x79225269 default_llseek +EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt +EXPORT_SYMBOL vmlinux 0x794c1398 dmi_check_system +EXPORT_SYMBOL vmlinux 0x7952ed4b inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x795340bb __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x79749b4b xfrm_state_update +EXPORT_SYMBOL vmlinux 0x79802675 fb_class +EXPORT_SYMBOL vmlinux 0x79876e2e dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79ab83c7 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x79dbd651 tcp_unhash +EXPORT_SYMBOL vmlinux 0x7a0fe173 open_by_devnum +EXPORT_SYMBOL vmlinux 0x7a2a48f0 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x7a919b76 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7aaece1d k8_northbridges +EXPORT_SYMBOL vmlinux 0x7ae71454 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b0e83d6 skb_pad +EXPORT_SYMBOL vmlinux 0x7b3d221a call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x7b67ffa7 vm_insert_page +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b6a4162 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x7b9b2d4a boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7bbae577 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x7bd9cffb dquot_drop +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c573519 clear_inode +EXPORT_SYMBOL vmlinux 0x7c6039e0 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c7144ed set_blocksize +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1ed1f2 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x7d2080df dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x7d2362f5 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x7d496918 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x7d5eedb4 pci_request_region +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d8cafeb serio_close +EXPORT_SYMBOL vmlinux 0x7d8cf3f7 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7e444100 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x7e6af759 set_irq_chip +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7eb099e6 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x7ef4854b pci_release_region +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f65d011 ip_defrag +EXPORT_SYMBOL vmlinux 0x7f743901 dquot_acquire +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7f92f35c nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x7fa63d98 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x7fb39f2b d_alloc_root +EXPORT_SYMBOL vmlinux 0x7fbc485e blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x7fdc42ff pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x7fe0d55d dev_get_flags +EXPORT_SYMBOL vmlinux 0x7fe9c426 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x7ff71a3a proto_register +EXPORT_SYMBOL vmlinux 0x803b5986 pcim_iomap +EXPORT_SYMBOL vmlinux 0x803d8f49 vfs_getattr +EXPORT_SYMBOL vmlinux 0x8063be35 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x80d8800a ip_ct_attach +EXPORT_SYMBOL vmlinux 0x80fcbe7b blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x8123e62f ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x8124df7c vfs_readdir +EXPORT_SYMBOL vmlinux 0x8132dcbe generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8169e70b profile_pc +EXPORT_SYMBOL vmlinux 0x8195fadf security_inode_init_security +EXPORT_SYMBOL vmlinux 0x81d8b9c5 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x822bba53 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82688411 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x828331b5 file_update_time +EXPORT_SYMBOL vmlinux 0x82925746 blk_get_queue +EXPORT_SYMBOL vmlinux 0x82a58e8a pagecache_write_end +EXPORT_SYMBOL vmlinux 0x82a5e51e generic_getxattr +EXPORT_SYMBOL vmlinux 0x82d92467 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x832ca8fb tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838494c2 xrlim_allow +EXPORT_SYMBOL vmlinux 0x83911a3c sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x839a4a4d simple_rmdir +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83fd1b24 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x841c4c87 touch_atime +EXPORT_SYMBOL vmlinux 0x8480574a kill_anon_super +EXPORT_SYMBOL vmlinux 0x84ad6c05 qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x84d007d6 kill_fasync +EXPORT_SYMBOL vmlinux 0x84daabab empty_zero_page +EXPORT_SYMBOL vmlinux 0x84de087e n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x84ef61e7 backlight_device_register +EXPORT_SYMBOL vmlinux 0x852abecf __request_region +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x85902f79 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85c2b1e6 __rta_fill +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8642a414 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x8648d9e1 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x865da0ac ida_remove +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x868bfa62 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x86ceb740 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870408cb blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x871e0944 blk_plug_device +EXPORT_SYMBOL vmlinux 0x874aea72 acpi_os_signal +EXPORT_SYMBOL vmlinux 0x875075d1 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x878a7ef3 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x87aa34d8 dma_pool_create +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88255094 ps2_drain +EXPORT_SYMBOL vmlinux 0x886fd5b8 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x88701bc9 arp_send +EXPORT_SYMBOL vmlinux 0x8892b5a8 register_chrdev +EXPORT_SYMBOL vmlinux 0x88a54e33 d_invalidate +EXPORT_SYMBOL vmlinux 0x88ad5c3c proc_bus +EXPORT_SYMBOL vmlinux 0x88bbb945 get_empty_filp +EXPORT_SYMBOL vmlinux 0x88d91d40 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x88dc9e5c mca_device_claimed +EXPORT_SYMBOL vmlinux 0x890c9ddc register_framebuffer +EXPORT_SYMBOL vmlinux 0x8910f99a acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x891e32b8 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x896b96df tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89a68760 fb_get_mode +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89d87688 put_tty_driver +EXPORT_SYMBOL vmlinux 0x8a07ecc5 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x8a49655b tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x8a529da3 del_gendisk +EXPORT_SYMBOL vmlinux 0x8a55b6e1 pci_choose_state +EXPORT_SYMBOL vmlinux 0x8a72813e do_splice_to +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9e25d2 nf_afinfo +EXPORT_SYMBOL vmlinux 0x8aa23f4f proto_unregister +EXPORT_SYMBOL vmlinux 0x8ab5a6d5 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x8b15e218 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b2e8857 dentry_open +EXPORT_SYMBOL vmlinux 0x8b4b0146 iunique +EXPORT_SYMBOL vmlinux 0x8b58cac3 pci_disable_device +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6298cc nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x8b636b23 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x8b6a0676 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x8b7b34f0 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x8b81a70b elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x8bb0fe6c create_empty_buffers +EXPORT_SYMBOL vmlinux 0x8bc8979d __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x8be06a03 set_binfmt +EXPORT_SYMBOL vmlinux 0x8beae743 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x8bf66ce0 atm_dev_deregister +EXPORT_SYMBOL vmlinux 0x8c3f1d7f pci_remove_rom +EXPORT_SYMBOL vmlinux 0x8c6e8636 audit_log_start +EXPORT_SYMBOL vmlinux 0x8c77e3bc kobject_unregister +EXPORT_SYMBOL vmlinux 0x8c9f149e tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x8ca022b1 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8ce96492 sock_map_fd +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5642fc wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x8d666e40 skb_queue_head +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d9e025a nf_log_packet +EXPORT_SYMBOL vmlinux 0x8dc35435 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x8dc5e110 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e137b57 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x8e1432dc elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x8e2c3ce1 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x8e415803 set_anon_super +EXPORT_SYMBOL vmlinux 0x8e6bae38 load_nls +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e8b732b iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x8e9eceaa complete_and_exit +EXPORT_SYMBOL vmlinux 0x8ec275c7 __nla_reserve +EXPORT_SYMBOL vmlinux 0x8ecc999d sock_no_mmap +EXPORT_SYMBOL vmlinux 0x8f08fbf5 path_lookup +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f865a69 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x8f8747b7 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x8f87df4d pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x8f9b86b2 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90106b37 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x904eb4d6 skb_insert +EXPORT_SYMBOL vmlinux 0x9067bc87 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x9085489c elevator_init +EXPORT_SYMBOL vmlinux 0x908aa9b2 iowrite32 +EXPORT_SYMBOL vmlinux 0x909c9da0 neigh_lookup +EXPORT_SYMBOL vmlinux 0x909ce646 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x90a8eb39 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90e55efa mca_device_set_name +EXPORT_SYMBOL vmlinux 0x90fe5d8b request_firmware +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x9148c7ae dma_spin_lock +EXPORT_SYMBOL vmlinux 0x916ccfca ida_init +EXPORT_SYMBOL vmlinux 0x917a2e3f seq_printf +EXPORT_SYMBOL vmlinux 0x918f58db tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x91ca8959 acpi_get_register +EXPORT_SYMBOL vmlinux 0x91ff87d8 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x920241b9 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x9250cb0e request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x928f3d66 audit_get_loginuid +EXPORT_SYMBOL vmlinux 0x92b75712 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x92b78b2f dump_trace +EXPORT_SYMBOL vmlinux 0x92b9e089 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x92c2618c invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9308941c tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x93311a5f register_nls +EXPORT_SYMBOL vmlinux 0x9355ad08 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x93590a1d generate_resume_trace +EXPORT_SYMBOL vmlinux 0x9368f6f2 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93abcc89 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93d7af8d pci_get_device +EXPORT_SYMBOL vmlinux 0x94250f71 pskb_copy +EXPORT_SYMBOL vmlinux 0x9438057c __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x9452d65c sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x947cb768 simple_write_begin +EXPORT_SYMBOL vmlinux 0x94d70d56 inet_ioctl +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x95cc2139 __PAGE_KERNEL +EXPORT_SYMBOL vmlinux 0x95dfa75b cpu_present_map +EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x95fde4e4 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0x9605d311 I_BDEV +EXPORT_SYMBOL vmlinux 0x960a9d05 brioctl_set +EXPORT_SYMBOL vmlinux 0x96395089 generic_permission +EXPORT_SYMBOL vmlinux 0x96514798 clocksource_register +EXPORT_SYMBOL vmlinux 0x9690e787 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x96b27088 __down_failed +EXPORT_SYMBOL vmlinux 0x96d02d04 mutex_trylock +EXPORT_SYMBOL vmlinux 0x96d9d3fc nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x96f929e9 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x96fc2b5c find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x971176ee pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x978a95c6 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x9795683c vfs_permission +EXPORT_SYMBOL vmlinux 0x97d484db input_open_device +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f97a20 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x9834c826 bio_pair_release +EXPORT_SYMBOL vmlinux 0x98633aab dev_unicast_delete +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98f83a6f pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x9941ccb8 free_pages +EXPORT_SYMBOL vmlinux 0x9960313e __ht_create_irq +EXPORT_SYMBOL vmlinux 0x997246e5 neigh_create +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99a2a0cc acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x99a4a5b9 nonseekable_open +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d5db56 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a03b04f unload_nls +EXPORT_SYMBOL vmlinux 0x9a108cd3 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a29a74e neigh_connected_output +EXPORT_SYMBOL vmlinux 0x9a3fd900 vfs_create +EXPORT_SYMBOL vmlinux 0x9a42c734 vfs_rename +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a789049 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x9a7cfb70 bdevname +EXPORT_SYMBOL vmlinux 0x9aa0db33 netlink_unicast +EXPORT_SYMBOL vmlinux 0x9aa10d98 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x9ac1cbf3 seq_escape +EXPORT_SYMBOL vmlinux 0x9ac23cc3 d_alloc_name +EXPORT_SYMBOL vmlinux 0x9ad7d923 sock_i_uid +EXPORT_SYMBOL vmlinux 0x9ae33101 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b0824e9 seq_release +EXPORT_SYMBOL vmlinux 0x9b273da5 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x9b29dae9 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x9b2e8ce5 load_nls_default +EXPORT_SYMBOL vmlinux 0x9b5ae006 pci_dev_get +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b98629b cpu_online_map +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9be9a6d5 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x9bee3c5a xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x9bf10ca7 unlock_super +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c2def00 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9c4b8e9a generic_make_request +EXPORT_SYMBOL vmlinux 0x9c6b596f neigh_for_each +EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt +EXPORT_SYMBOL vmlinux 0x9c8dfd6c register_filesystem +EXPORT_SYMBOL vmlinux 0x9c96eecc tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x9cafbcff sysctl_data +EXPORT_SYMBOL vmlinux 0x9cb6eaa3 input_release_device +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9ce3050c remove_wait_queue +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d43755c request_resource +EXPORT_SYMBOL vmlinux 0x9d7c0613 no_llseek +EXPORT_SYMBOL vmlinux 0x9d873581 kernel_connect +EXPORT_SYMBOL vmlinux 0x9d9b63a3 vfs_write +EXPORT_SYMBOL vmlinux 0x9db4f5f7 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x9dc3b951 ll_rw_block +EXPORT_SYMBOL vmlinux 0x9dc75b15 __init_rwsem +EXPORT_SYMBOL vmlinux 0x9dd5d56c pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x9e3d5c08 down_write_trylock +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9ea4d0b2 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ed8840e kthread_stop +EXPORT_SYMBOL vmlinux 0x9ee85511 init_task +EXPORT_SYMBOL vmlinux 0x9ee90053 do_sync_write +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9ef7e999 qdisc_reset +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2bea94 devm_request_irq +EXPORT_SYMBOL vmlinux 0x9f37e6d4 seq_putc +EXPORT_SYMBOL vmlinux 0x9f6796dc qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x9f81a85f alloc_disk +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9987ab sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x9f9ebf7f skb_under_panic +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0xa0064969 kick_iocb +EXPORT_SYMBOL vmlinux 0xa014c160 names_cachep +EXPORT_SYMBOL vmlinux 0xa02a6a24 vfs_mknod +EXPORT_SYMBOL vmlinux 0xa02fb629 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xa033a81e icmp_send +EXPORT_SYMBOL vmlinux 0xa03443c1 find_vma +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa03d6a57 __get_user_4 +EXPORT_SYMBOL vmlinux 0xa04d5236 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xa05afeee pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa07a8d22 sleep_on +EXPORT_SYMBOL vmlinux 0xa07e7cb9 dma_async_client_register +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0eb24da tty_vhangup +EXPORT_SYMBOL vmlinux 0xa106056a blk_free_tags +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1289825 dev_unicast_add +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa1408146 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xa1518b5c pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xa18ba34a blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xa18bf3c9 __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xa1a6414c iowrite32be +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bc908e pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1ddf306 secpath_dup +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20e4cf0 __mod_timer +EXPORT_SYMBOL vmlinux 0xa218bf61 complete +EXPORT_SYMBOL vmlinux 0xa2343c8e kset_unregister +EXPORT_SYMBOL vmlinux 0xa270ccbc init_mm +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2a8b28e skb_append +EXPORT_SYMBOL vmlinux 0xa2a948d4 __devm_release_region +EXPORT_SYMBOL vmlinux 0xa2b0824f pci_enable_wake +EXPORT_SYMBOL vmlinux 0xa2bbc80e sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0xa2c3d934 kmap_high +EXPORT_SYMBOL vmlinux 0xa2cf398a pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xa2d2a9b3 __lock_page +EXPORT_SYMBOL vmlinux 0xa309f75b unlock_rename +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa3395770 uart_resume_port +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa3511b2c unregister_binfmt +EXPORT_SYMBOL vmlinux 0xa35c27d9 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3a4ed03 cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa3bbcd80 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xa3beef75 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xa3c0cab8 lock_may_read +EXPORT_SYMBOL vmlinux 0xa3ea3a5d kernel_read +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa47090bf tr_type_trans +EXPORT_SYMBOL vmlinux 0xa4b73026 bio_copy_user +EXPORT_SYMBOL vmlinux 0xa4c003b9 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xa4da2cb8 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xa4daf376 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xa4edb4f5 __napi_schedule +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa5357397 pnp_start_dev +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa583ff6f __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa593017d mca_device_transform_memory +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59c0666 acpi_strict +EXPORT_SYMBOL vmlinux 0xa5a40ad6 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5f97e21 genl_register_ops +EXPORT_SYMBOL vmlinux 0xa622c03e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xa628371c ip_route_input +EXPORT_SYMBOL vmlinux 0xa6681265 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa6814433 groups_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6878abb pci_set_mwi +EXPORT_SYMBOL vmlinux 0xa697f275 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa770b803 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xa781bf99 mpage_readpages +EXPORT_SYMBOL vmlinux 0xa7b5214a __user_walk +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa82b80e6 sock_no_connect +EXPORT_SYMBOL vmlinux 0xa8428a31 tty_hangup +EXPORT_SYMBOL vmlinux 0xa86df4c9 pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0xa8799a59 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xa8990f13 key_revoke +EXPORT_SYMBOL vmlinux 0xa8c6b298 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xa8d80f90 devm_ioremap +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90f11ac inode_set_bytes +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa9461131 udp_disconnect +EXPORT_SYMBOL vmlinux 0xa95288a6 pci_save_state +EXPORT_SYMBOL vmlinux 0xa95dff2e xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xa9c08adf cfb_copyarea +EXPORT_SYMBOL vmlinux 0xa9c7c75f devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xa9c95278 get_disk +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa13c757 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xaa527612 __kfifo_put +EXPORT_SYMBOL vmlinux 0xaa6cd3dc page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xaa7a6d0a unregister_netdevice +EXPORT_SYMBOL vmlinux 0xaa7c3a0e kmem_cache_size +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaa97ca0d __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xaaa1d96d xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xaaba28af pci_assign_resource +EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab53b0a8 mempool_alloc +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab6a89a9 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xab6ce036 ida_get_new +EXPORT_SYMBOL vmlinux 0xab75b1e5 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xab76a6de put_io_context +EXPORT_SYMBOL vmlinux 0xab8f2178 add_wait_queue +EXPORT_SYMBOL vmlinux 0xabad83d7 udp_hash_lock +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xac09960a pci_enable_device +EXPORT_SYMBOL vmlinux 0xac138f9b key_payload_reserve +EXPORT_SYMBOL vmlinux 0xac39ae87 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac54fc9f mempool_destroy +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac78d604 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xac9a702e seq_lseek +EXPORT_SYMBOL vmlinux 0xacc0dbfc acpi_get_table +EXPORT_SYMBOL vmlinux 0xacc4b118 key_alloc +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdb8e84 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0bc00b vfs_rmdir +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad54ccb4 forbid_dac +EXPORT_SYMBOL vmlinux 0xad885db5 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xad9418ad inet_shutdown +EXPORT_SYMBOL vmlinux 0xada3d25c __scm_destroy +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb8f261 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xaddc807e filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xade02dac contig_page_data +EXPORT_SYMBOL vmlinux 0xae0298b2 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xae2dcbbc set_bdi_congested +EXPORT_SYMBOL vmlinux 0xaec0c5df xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xaec4759f vprintk +EXPORT_SYMBOL vmlinux 0xaec709de dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xaf02387a pnp_is_active +EXPORT_SYMBOL vmlinux 0xaf171920 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xaf5109d0 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xaf650044 generic_osync_inode +EXPORT_SYMBOL vmlinux 0xaf67af19 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xaf6f5e01 iput +EXPORT_SYMBOL vmlinux 0xaf8effb0 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0xafb342f2 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xafbbc09d tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xafe889d3 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xb01114d0 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xb01fa25f put_page +EXPORT_SYMBOL vmlinux 0xb03d62d5 register_quota_format +EXPORT_SYMBOL vmlinux 0xb05b5caa alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb08134b5 sock_init_data +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12391ca elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb14f9780 simple_unlink +EXPORT_SYMBOL vmlinux 0xb158312a arp_broken_ops +EXPORT_SYMBOL vmlinux 0xb1667c5e proc_dointvec +EXPORT_SYMBOL vmlinux 0xb1ba55b9 audit_log_end +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6abc5 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xb1e26b7f path_release +EXPORT_SYMBOL vmlinux 0xb1e2ce1c unregister_netdev +EXPORT_SYMBOL vmlinux 0xb1f88535 inode_change_ok +EXPORT_SYMBOL vmlinux 0xb1fd30be dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xb20a2149 add_disk_randomness +EXPORT_SYMBOL vmlinux 0xb2288790 input_inject_event +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb2a916d6 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xb2ac7e63 __invalidate_device +EXPORT_SYMBOL vmlinux 0xb2be638a dma_chan_cleanup +EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb2ff36a6 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xb30954a8 eisa_driver_register +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb368752d inet_frags_init +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb39c7662 mca_register_driver +EXPORT_SYMBOL vmlinux 0xb39f14dd dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b364b0 seq_read +EXPORT_SYMBOL vmlinux 0xb3be64a9 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xb3c1e953 generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0xb3c9daa2 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xb3d70ecd input_register_handler +EXPORT_SYMBOL vmlinux 0xb3e314f8 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xb407b205 ioport_resource +EXPORT_SYMBOL vmlinux 0xb42110a4 eisa_bus_type +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xb441dc20 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb46096ed seq_release_private +EXPORT_SYMBOL vmlinux 0xb47ba577 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4af4d68 bio_map_kern +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa283e blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb6153bae __bforget +EXPORT_SYMBOL vmlinux 0xb6172af1 find_or_create_page +EXPORT_SYMBOL vmlinux 0xb622d47f sysctl_pathname +EXPORT_SYMBOL vmlinux 0xb63945a9 __devm_request_region +EXPORT_SYMBOL vmlinux 0xb63af726 kset_register +EXPORT_SYMBOL vmlinux 0xb63dae50 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb68131b3 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xb6b0e9ce fb_find_mode +EXPORT_SYMBOL vmlinux 0xb6c4e1ad idr_get_new +EXPORT_SYMBOL vmlinux 0xb6e69f2c nf_hook_slow +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6ff08e8 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7496871 __grab_cache_page +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb797aa70 cpu_possible_map +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb800e333 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xb80ba541 proc_mkdir +EXPORT_SYMBOL vmlinux 0xb855018e blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb87a02c9 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8c75446 dma_async_client_chan_request +EXPORT_SYMBOL vmlinux 0xb8de37b8 serio_interrupt +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8efcd44 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xb90852dd __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xb90e6354 udp_poll +EXPORT_SYMBOL vmlinux 0xb956d71a close_bdev_excl +EXPORT_SYMBOL vmlinux 0xb97e0ef2 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xb982f0bd dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xb98ab74f eth_type_trans +EXPORT_SYMBOL vmlinux 0xb9a2b7a9 dquot_transfer +EXPORT_SYMBOL vmlinux 0xb9b469a7 sock_no_listen +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xb9d910ff should_remove_suid +EXPORT_SYMBOL vmlinux 0xba171934 cdev_del +EXPORT_SYMBOL vmlinux 0xba1fb94c uart_register_driver +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3f2fb7 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba566bb1 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xba95152a idr_init +EXPORT_SYMBOL vmlinux 0xbac77bcf input_unregister_handle +EXPORT_SYMBOL vmlinux 0xbafa8dd4 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xbafe02ab permission +EXPORT_SYMBOL vmlinux 0xbb00003a poll_initwait +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb256260 acpi_root_dir +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb635f8f release_sock +EXPORT_SYMBOL vmlinux 0xbb8d1fcf register_console +EXPORT_SYMBOL vmlinux 0xbb9aedc9 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbe81ece skb_clone +EXPORT_SYMBOL vmlinux 0xbbf719d9 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xbc01502e __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xbc552e75 __pagevec_release +EXPORT_SYMBOL vmlinux 0xbc55fb11 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbc5c6352 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xbc7f5ced put_filp +EXPORT_SYMBOL vmlinux 0xbc8803da sk_dst_check +EXPORT_SYMBOL vmlinux 0xbc9a9e9d __bread +EXPORT_SYMBOL vmlinux 0xbca6d899 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbce67cc4 down_read +EXPORT_SYMBOL vmlinux 0xbd0e553b xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0xbd72584f ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xbddc50a2 simple_set_mnt +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe38bbe7 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xbea443c3 netdev_features_change +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef7f62b tcp_sendpage +EXPORT_SYMBOL vmlinux 0xbf0a62e5 tcf_register_action +EXPORT_SYMBOL vmlinux 0xbf3233cf console_start +EXPORT_SYMBOL vmlinux 0xbf4081b3 llc_sap_close +EXPORT_SYMBOL vmlinux 0xbf4acfc8 d_delete +EXPORT_SYMBOL vmlinux 0xbf8011ba vfs_symlink +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbfbb4235 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xbfdb12aa simple_link +EXPORT_SYMBOL vmlinux 0xbff76c98 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc00597b4 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc021e07f generic_commit_write +EXPORT_SYMBOL vmlinux 0xc02235f1 rtc_lock +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc06a1dc0 sysctl_string +EXPORT_SYMBOL vmlinux 0xc090ce11 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc0e0d2e7 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xc0f37519 __kill_fasync +EXPORT_SYMBOL vmlinux 0xc0feee98 input_grab_device +EXPORT_SYMBOL vmlinux 0xc161a454 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xc16f18c1 get_io_context +EXPORT_SYMBOL vmlinux 0xc1cf939d elv_next_request +EXPORT_SYMBOL vmlinux 0xc24bcd75 new_inode +EXPORT_SYMBOL vmlinux 0xc2560276 generic_removexattr +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc281c899 __wake_up +EXPORT_SYMBOL vmlinux 0xc2adb8b3 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc2c40c3b pcim_pin_device +EXPORT_SYMBOL vmlinux 0xc2c7c1b9 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xc2d6366f prepare_binprm +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e177e9 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc308f638 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xc310f248 simple_getattr +EXPORT_SYMBOL vmlinux 0xc39418ed request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xc39c4033 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b3e48d block_write_full_page +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc4080f9b proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xc458b2ea gen_pool_add +EXPORT_SYMBOL vmlinux 0xc461bd81 inet_listen +EXPORT_SYMBOL vmlinux 0xc46bdf35 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xc496d398 sk_wait_data +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4b5933a blk_get_request +EXPORT_SYMBOL vmlinux 0xc4ea0138 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0xc4fad095 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xc5008cea atm_dev_lookup +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54952a2 sync_blockdev +EXPORT_SYMBOL vmlinux 0xc5a0ca7b fget +EXPORT_SYMBOL vmlinux 0xc60d8660 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xc616e806 tcp_close +EXPORT_SYMBOL vmlinux 0xc622e97a kobject_register +EXPORT_SYMBOL vmlinux 0xc65b30e7 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xc66bf8f3 add_disk +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6c7d053 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xc6eeae19 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xc6f5eac5 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc722a0e2 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0xc72c3dc0 register_gifconf +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c38cfd boot_cpu_data +EXPORT_SYMBOL vmlinux 0xc7c91dda try_to_release_page +EXPORT_SYMBOL vmlinux 0xc7d5d92e udp_ioctl +EXPORT_SYMBOL vmlinux 0xc7e1f8b4 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7f60f70 follow_up +EXPORT_SYMBOL vmlinux 0xc7f6f41e elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xc7f96a79 mnt_unpin +EXPORT_SYMBOL vmlinux 0xc8665775 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xc8956870 have_submounts +EXPORT_SYMBOL vmlinux 0xc8a063e6 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xc8a39d23 unregister_console +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b68114 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc8f72ec6 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xc92309a1 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xc966d31c div64_64 +EXPORT_SYMBOL vmlinux 0xc970c0a0 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0xc9796dc6 elv_rb_add +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9a053d0 thaw_bdev +EXPORT_SYMBOL vmlinux 0xc9aab65a nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9ad1374 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xc9f3ca3d unlock_page +EXPORT_SYMBOL vmlinux 0xc9fd878f acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xca0b368c dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xca6c95f8 acpi_get_name +EXPORT_SYMBOL vmlinux 0xca735653 bio_split +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8ecaa4 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xca96728a __alloc_pages +EXPORT_SYMBOL vmlinux 0xca9a6703 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xcab291ff mca_register_driver_integrated +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb2f1841 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb83f112 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xcbba5c68 vfs_read +EXPORT_SYMBOL vmlinux 0xcbc392a7 bmap +EXPORT_SYMBOL vmlinux 0xcc0db2d9 km_policy_expired +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc82ef08 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xcd7a888e dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xcd867291 __brelse +EXPORT_SYMBOL vmlinux 0xcdbe3cfa __breadahead +EXPORT_SYMBOL vmlinux 0xce06f37a schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xce16d9f8 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xce2684a7 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce7dde6b vfs_quota_sync +EXPORT_SYMBOL vmlinux 0xcea79b04 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xced4370e arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf01f698 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xcf047c83 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0xcf47e392 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xcf5141a3 pci_set_master +EXPORT_SYMBOL vmlinux 0xcf65a6dd tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xcf6aba8b nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xcf6b8116 kunmap +EXPORT_SYMBOL vmlinux 0xcfad2b69 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcfb0bc54 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xcfba0a8d input_close_device +EXPORT_SYMBOL vmlinux 0xcfbe5f7f struct_module +EXPORT_SYMBOL vmlinux 0xcfc10352 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xcfd665eb mca_device_set_claim +EXPORT_SYMBOL vmlinux 0xcfdca20b filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xcfe566c1 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xd005c5e1 give_up_console +EXPORT_SYMBOL vmlinux 0xd00a652f tty_register_device +EXPORT_SYMBOL vmlinux 0xd014b614 bio_alloc +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02bd1c2 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd0553679 set_bh_page +EXPORT_SYMBOL vmlinux 0xd05b92a1 __netif_schedule +EXPORT_SYMBOL vmlinux 0xd06e4ca3 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08fa2c7 noop_qdisc +EXPORT_SYMBOL vmlinux 0xd09a6a3d idr_get_new_above +EXPORT_SYMBOL vmlinux 0xd0d05642 take_over_console +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd1047ba4 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xd1182de9 get_write_access +EXPORT_SYMBOL vmlinux 0xd13c4d62 genl_sock +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd150c0b2 free_netdev +EXPORT_SYMBOL vmlinux 0xd16ac615 __get_user_1 +EXPORT_SYMBOL vmlinux 0xd1752fd4 idr_replace +EXPORT_SYMBOL vmlinux 0xd1a5ffa9 avail_to_resrv_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd20207ec inode_add_bytes +EXPORT_SYMBOL vmlinux 0xd2093749 module_remove_driver +EXPORT_SYMBOL vmlinux 0xd22d9603 eth_header +EXPORT_SYMBOL vmlinux 0xd24cb115 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26626e2 input_allocate_device +EXPORT_SYMBOL vmlinux 0xd28ce560 pnp_device_detach +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd29734fd simple_readpage +EXPORT_SYMBOL vmlinux 0xd2e463b2 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xd3236811 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xd3427f73 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd36f7bb0 __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0xd376bd89 bdi_init +EXPORT_SYMBOL vmlinux 0xd3918dd5 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd39e87fd vc_resize +EXPORT_SYMBOL vmlinux 0xd3d0679f fd_install +EXPORT_SYMBOL vmlinux 0xd40e77a7 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xd410a883 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xd44b2e6c misc_deregister +EXPORT_SYMBOL vmlinux 0xd44f4645 blkdev_put +EXPORT_SYMBOL vmlinux 0xd4682213 single_open +EXPORT_SYMBOL vmlinux 0xd4996786 seq_puts +EXPORT_SYMBOL vmlinux 0xd4a4170d tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xd4a714c0 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd4fe24f5 idr_pre_get +EXPORT_SYMBOL vmlinux 0xd54756fb mca_bus_type +EXPORT_SYMBOL vmlinux 0xd54bd452 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5c733a2 sock_no_bind +EXPORT_SYMBOL vmlinux 0xd5e579a6 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd650029d sock_create_kern +EXPORT_SYMBOL vmlinux 0xd685bfb4 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd70c2f89 datagram_poll +EXPORT_SYMBOL vmlinux 0xd733a7a0 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd74c29c9 pci_iomap +EXPORT_SYMBOL vmlinux 0xd764213c sock_release +EXPORT_SYMBOL vmlinux 0xd775c472 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xd782e857 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xd78ad35d register_binfmt +EXPORT_SYMBOL vmlinux 0xd793eaf1 open_bdev_excl +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7b78b82 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e7ca24 wake_up_bit +EXPORT_SYMBOL vmlinux 0xd7fe7a71 registered_fb +EXPORT_SYMBOL vmlinux 0xd812d6e9 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xd83f467e acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xd848e628 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0xd86c8dc5 pnp_register_driver +EXPORT_SYMBOL vmlinux 0xd88def70 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xd88df3b6 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8d0f00b page_put_link +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd90040fb acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd9175fc1 single_release +EXPORT_SYMBOL vmlinux 0xd9234a2e scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xd92da3fd neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xd94c1770 acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xd9576be9 netpoll_setup +EXPORT_SYMBOL vmlinux 0xd95ef0e3 lease_modify +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9b400cc file_fsync +EXPORT_SYMBOL vmlinux 0xd9c11ab7 netif_rx +EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused +EXPORT_SYMBOL vmlinux 0xd9c496de pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xd9e83664 cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0xd9ecbb3f pci_set_power_state +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda17996e key_put +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda6704d3 pnp_resource_change +EXPORT_SYMBOL vmlinux 0xda67c76f kernel_getsockname +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xdac5a7ac pci_remove_bus +EXPORT_SYMBOL vmlinux 0xdad53732 idr_destroy +EXPORT_SYMBOL vmlinux 0xdb2b520a inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xdb3174e4 udp_proc_register +EXPORT_SYMBOL vmlinux 0xdb3c010a netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb99c0e7 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xdb9b76c9 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc01a06e find_next_zero_bit +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc17ab2f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4907b6 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xdc873a70 screen_info +EXPORT_SYMBOL vmlinux 0xdca1d910 input_unregister_device +EXPORT_SYMBOL vmlinux 0xdccb58c4 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xdced380c bd_claim +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd33a5a4 dquot_free_space +EXPORT_SYMBOL vmlinux 0xdd396412 sk_stream_error +EXPORT_SYMBOL vmlinux 0xdd46a769 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xdd475132 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xdd541b30 nla_put +EXPORT_SYMBOL vmlinux 0xdd690910 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdda1c471 arp_tbl +EXPORT_SYMBOL vmlinux 0xddc056d4 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xddcc08db vfs_statfs +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xddf4c6fb generic_writepages +EXPORT_SYMBOL vmlinux 0xde5df2be udp_sendmsg +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde79e541 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xde803265 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdea1d638 sock_no_getname +EXPORT_SYMBOL vmlinux 0xdeac45c4 tty_check_change +EXPORT_SYMBOL vmlinux 0xded23a43 nobh_writepage +EXPORT_SYMBOL vmlinux 0xded8b4a2 mca_device_write_pos +EXPORT_SYMBOL vmlinux 0xdee075ba gen_pool_free +EXPORT_SYMBOL vmlinux 0xdef0722e ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xdef2862b block_write_begin +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfbc1fdf arp_find +EXPORT_SYMBOL vmlinux 0xe00f7dbc proc_root_fs +EXPORT_SYMBOL vmlinux 0xe01843b7 end_page_writeback +EXPORT_SYMBOL vmlinux 0xe08ac33a tty_mutex +EXPORT_SYMBOL vmlinux 0xe0aac0b9 elv_rb_find +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0c548d4 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xe0d71dc3 input_free_device +EXPORT_SYMBOL vmlinux 0xe10fef2f pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xe112c1b6 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17ac493 d_validate +EXPORT_SYMBOL vmlinux 0xe1ceb1f7 pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe2044747 __page_symlink +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe27cd7f9 register_8022_client +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2dd9e16 put_files_struct +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe30fd05a flush_signals +EXPORT_SYMBOL vmlinux 0xe34bf7c5 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe36e461a unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0xe3bb0cf9 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xe3c4dc2f ether_setup +EXPORT_SYMBOL vmlinux 0xe3ef2161 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xe42b8d4c bio_free +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe4490479 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xe47458a6 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4a8edc6 add_to_page_cache +EXPORT_SYMBOL vmlinux 0xe4b771a6 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xe4d12380 set_trace_device +EXPORT_SYMBOL vmlinux 0xe4e498e9 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe52e1f68 simple_lookup +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5880fc6 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5c99662 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xe5d978c7 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xe5e07766 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xe64517b0 idr_remove +EXPORT_SYMBOL vmlinux 0xe65d490c skb_split +EXPORT_SYMBOL vmlinux 0xe664a334 kthread_create +EXPORT_SYMBOL vmlinux 0xe6b97b52 posix_test_lock +EXPORT_SYMBOL vmlinux 0xe6b9c544 deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0xe6dd804b hippi_type_trans +EXPORT_SYMBOL vmlinux 0xe6e4687d tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xe6fa0f11 write_inode_now +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe70a0dcc sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe7306a25 ipv4_specific +EXPORT_SYMBOL vmlinux 0xe7532de4 netlink_ack +EXPORT_SYMBOL vmlinux 0xe7997237 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xe7a280f4 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe7b54fdb kobject_init +EXPORT_SYMBOL vmlinux 0xe7b6116f acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7fd3708 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xe83e9a64 key_task_permission +EXPORT_SYMBOL vmlinux 0xe8558f45 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xe868af29 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xe87afe8f serio_open +EXPORT_SYMBOL vmlinux 0xe8bd7542 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xe8cadbce kfree_skb +EXPORT_SYMBOL vmlinux 0xe8ccf2b6 acpi_bus_start +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe902ffe4 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xe9147905 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93b4793 kobject_del +EXPORT_SYMBOL vmlinux 0xe93bdc3c generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe94fd806 blkdev_get +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe96a09a4 drop_super +EXPORT_SYMBOL vmlinux 0xe9c2454a fb_validate_mode +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea46eae4 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xea5147f2 tc_classify +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea764377 ip_fragment +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7fea9f input_set_capability +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea8642a6 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xea9a2505 input_event +EXPORT_SYMBOL vmlinux 0xeadb9f00 blk_insert_request +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeafec270 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0xeb13f9a0 kernel_bind +EXPORT_SYMBOL vmlinux 0xeb1653db sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb66c25b ida_destroy +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xebc49fac filemap_fault +EXPORT_SYMBOL vmlinux 0xebd7e302 llc_add_pack +EXPORT_SYMBOL vmlinux 0xebedf775 generic_file_open +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec2f9e74 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0xec43f3ca vcc_release_async +EXPORT_SYMBOL vmlinux 0xecbb4646 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xecc29ab7 pci_find_slot +EXPORT_SYMBOL vmlinux 0xed2b49e9 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xed364cff dev_change_flags +EXPORT_SYMBOL vmlinux 0xed442c1d register_exec_domain +EXPORT_SYMBOL vmlinux 0xed633abc pv_irq_ops +EXPORT_SYMBOL vmlinux 0xed7b2f05 kernel_listen +EXPORT_SYMBOL vmlinux 0xed9003ef pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xedbaed9f pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedda337e fb_show_logo +EXPORT_SYMBOL vmlinux 0xedf7386a skb_gso_segment +EXPORT_SYMBOL vmlinux 0xee194f85 elv_rb_del +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee431eaa pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0xee4c7115 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xee57ad39 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xee7a7392 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee90884e dq_data_lock +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeef98d9d __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xeefa3981 kobject_add +EXPORT_SYMBOL vmlinux 0xef1a1668 km_waitq +EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter +EXPORT_SYMBOL vmlinux 0xef6d7cff del_timer +EXPORT_SYMBOL vmlinux 0xef79ac56 __release_region +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefd15efd __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xeff64349 kill_litter_super +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01d79b1 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xf029435d prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf02b84da __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf03b0e52 idr_find +EXPORT_SYMBOL vmlinux 0xf0805bee pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0bcc0b3 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f44082 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xf137a847 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xf13d7552 kunmap_high +EXPORT_SYMBOL vmlinux 0xf143430f rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xf143fb98 misc_register +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf185cc1d blk_start_queue +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1977226 dev_load +EXPORT_SYMBOL vmlinux 0xf1af817d pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xf1d144fd register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1fd6f8b bdput +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21bc3f2 handle_sysrq +EXPORT_SYMBOL vmlinux 0xf24c5aa1 do_SAK +EXPORT_SYMBOL vmlinux 0xf2976958 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2c5de75 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xf2d9e995 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31747a5 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xf32d2678 schedule_work +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf367cd5c ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c0c7a4 pci_find_bus +EXPORT_SYMBOL vmlinux 0xf3cbcde9 tcp_poll +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf405b333 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xf4134d37 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xf429419e vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0xf4361a30 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xf43dc58d pci_select_bars +EXPORT_SYMBOL vmlinux 0xf456f355 page_address +EXPORT_SYMBOL vmlinux 0xf4672d27 kobject_set_name +EXPORT_SYMBOL vmlinux 0xf47d47e0 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4d44a83 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf51c639f interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xf57abcec xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5caf72f kobject_get +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf63bc42e udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d4b769 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6efdcbe dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xf6f47df8 stop_tty +EXPORT_SYMBOL vmlinux 0xf7249fea uts_sem +EXPORT_SYMBOL vmlinux 0xf733ae8f blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xf75f149e truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xf761784d __inet6_hash +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf77299ea vmtruncate +EXPORT_SYMBOL vmlinux 0xf77b0949 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xf77dc654 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78d821b per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xf794e482 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf82f48fc acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xf881346c vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a48bc0 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xf905e850 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xf91dfa8c simple_fill_super +EXPORT_SYMBOL vmlinux 0xf94b47e7 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a8d71d dma_pool_free +EXPORT_SYMBOL vmlinux 0xf9ad4018 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xf9b200f6 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xf9b28bac interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xf9fc2a72 neigh_table_init +EXPORT_SYMBOL vmlinux 0xfa035062 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xfa1ad2e4 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xfa2dbb10 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xfa3400dc textsearch_destroy +EXPORT_SYMBOL vmlinux 0xfa3fb5d7 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xfa40c4cf unregister_snap_client +EXPORT_SYMBOL vmlinux 0xfa6b667e acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xfa938292 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xfabd80d9 kthread_bind +EXPORT_SYMBOL vmlinux 0xfac33122 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xfad32fe0 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xfae799ec eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xfaef06bc lease_get_mtime +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb0e77ae set_page_dirty +EXPORT_SYMBOL vmlinux 0xfb5824c4 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb6dd8f7 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xfba2725c tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xfba3e151 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xfbdc53e9 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xfbf0372f generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc18de62 mca_device_read_pos +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc6127fc blk_run_queue +EXPORT_SYMBOL vmlinux 0xfc7c854a kill_block_super +EXPORT_SYMBOL vmlinux 0xfc82bd19 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfa178e skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xfd4c2a6d flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdc40d9b inode_needs_sync +EXPORT_SYMBOL vmlinux 0xfdf45a77 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xfe58ce58 udp_get_port +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe9229a3 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xfeb3859e iget5_locked +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xff06a80b block_truncate_page +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff5e4350 submit_bh +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff977586 get_user_pages +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x16836e04 speedstep_detect_processor +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x4cdb4bd0 speedstep_get_processor_frequency +EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd494ee54 speedstep_get_freqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08039e8d kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0deadbff kvm_lapic_enabled +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0e54e8af kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x11d6c618 kvm_emulate_pio_string +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12ff3c5a kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x154aa65c kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x176bbef1 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b54a217 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x261047ec kvm_load_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a5ad951 kvm_timer_intr_post +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2bb53018 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31d66281 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a8e571b kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3be33f0d kvm_emulate_pio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de4f9cc kvm_lapic_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x428110de kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x47107db2 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4aed78ba kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4eb8dd36 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5992d8f2 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a9c9222 kvm_lapic_get_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5d3d1b5e kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e14b6f0 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7a794f19 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b1fbbbb kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7bb43f6f kvm_put_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7d818ec4 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80287121 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x832da447 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x868f4812 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x89c340b8 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8df46602 kvm_lapic_find_highest_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e7f9b47 segment_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8fa21183 emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9f66fff8 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa45340c5 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5419a58 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8784986 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa91bedf7 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab3c3606 emulator_read_std +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb0e239f kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc5c490a fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc21d3d31 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7ce24c6 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7dff9b7 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xced705f0 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcfb887a1 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd24cb574 kvm_lapic_reset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdc28ce20 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4dc3c29 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe75917ae kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe89b058e kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8ab4516 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeb4dde29 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeccfad1f kvm_create_lapic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf03ad243 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf99cead8 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL crypto/ablkcipher 0xaffe508e crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x0b5022a1 crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x295e4fc9 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x119e7002 async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x30c2e770 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5f86aca4 async_tx_run_dependencies +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6b4a6db2 async_tx_issue_pending_all +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7486a53c async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x781d1528 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x3a0cd2d6 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x46441032 async_xor +EXPORT_SYMBOL_GPL crypto/blkcipher 0x341747bb blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x49318d4e crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0xc9fb65c9 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0xf07421b6 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0xf7a9450f blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0x0cb7020c twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/bay 0x792d1421 eject_removable_drive +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x2611fbee register_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1d79b28a acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xc99a305a acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xd71b12d1 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xf7762fed acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0268ee5b ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0430d34e ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x05d2ade8 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x08930177 ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0x08d81f85 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x08ea0f04 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0c83e6c2 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0d7383dd ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0f2c200f sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x11673fab ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x126f9ff7 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x13a54573 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x19c0f97e ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1c2b12ff ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x21e7a2b0 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x22a499c1 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x242e3ce2 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x24b5c324 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x255a65af ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x26158010 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2769049a ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x29ab3d28 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2c5b39f7 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2c9205eb ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d722e6a ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2e9cd531 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x31c3db1a ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x339d07c7 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x34c481b0 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x35a309e8 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3a23fe24 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3a9b5f6f ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3ba647c8 ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3ec30b7d sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3f0b5913 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x431f853c ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x434d8409 sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x449de2df ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4a7c9b5f ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x51d783bd ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x59a94e5a ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5fb98d95 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x61e31ab6 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6610b3df ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x695de787 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69da194d ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6b0ab29f ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6e165c7a ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6f3065e8 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0x708cd853 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7334b3b0 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73547a00 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x78fdefff ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x799a052c ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7bf44c7d sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7d1c2782 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e2beb5e pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e802788 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7eb5ee63 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8275e63e ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x86889654 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8a8ea3bd __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b74c8c6 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8d1a50e8 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e1c1087 ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e98971d ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x93a2c4ec ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x93efc13b ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x962ef3a7 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97983591 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x99442e68 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0x99abad6e ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa0cfcd7f ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa198e7df ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2ab5485 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa34845b0 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa886c485 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0xac10cd9c ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaf674516 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb069d979 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb1a30a9d ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2830c0c ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb38bae3a ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb425f402 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb4261b08 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6ef9bb1 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb7b193f8 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb826b001 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb8871270 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xba1d52e9 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbd47255b ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc2bc9917 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4ebcb55 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc8e7457c ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcd78babe ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcdd4bbb7 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd15e0ad0 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd2f31b19 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd4c6811f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd71ceeab ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd924ebdf class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd9feb489 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdc72aaba sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdce2e019 ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdede57f2 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf357d9d ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe25b941f ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe550cdd6 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe6b8e37a ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe9b5f798 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeb468f03 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xecf4df7c ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xee166997 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf0e01596 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf35f3761 ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf680a504 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf7dd5434 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf829c6b7 ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa0f2a19 ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb8723b9 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfc6ced5c ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfdc471d9 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfffacb64 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xa2e2c02b sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x23f14d4c agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x2f28d204 agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x05d49ed7 scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x03add502 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0c2a36dc tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1418a747 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x14591c25 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1fcfab73 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x31fdf1c6 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3c14cfdd tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x41142879 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x57e851f8 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5e8d886a tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6f504f4c tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa433bcf3 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb7ff8c8f tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd273588f tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd937f56f tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdd0e28c5 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe5bb9d30 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xeff6e2ee tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf319e2cc tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf48c0058 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf976eb0d tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x2077bef4 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xcd31ab50 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x697f0b43 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x6a7a7fd0 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xa71f72d6 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xb5874811 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL drivers/dca/dca 0x0423d1f4 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x38643a4a unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x44119dfd dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x9bafdfec alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xbf3cd811 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd006fdca register_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x193b2bd7 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1d6dce31 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1fba799a edac_device_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2506e0e7 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x28b2f75f edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x342c10ca edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5ceb06cd edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6273a791 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7cc9cc33 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x85f36b39 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9e801af1 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa7bf6e3d edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa8d09fcc edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb359ce61 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb7c8762a edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbff339a4 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc1618481 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc7602649 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc80c9098 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd031054a edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xda20d97d edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdc1f21f0 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdf5c42c6 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xedea917a edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef71d591 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfe2c0e49 edac_pci_find +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01237943 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3003aade hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x35f33519 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4fbe20f1 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x514ef50b hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x52792e82 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x735c8d6c hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x81e0460f hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9f3832c0 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb5a49173 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbbc83ffd hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xde847808 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe469988f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xca4b38be hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x682678ae i2c_new_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x9602b3f3 i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xa6f9791e i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xadf7b417 i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x007b5a21 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x11ed04eb ide_acpi_push_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x16d3e222 ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1bb1f043 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x266ab575 ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2a552f3b ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x316a3c4d ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x42ef111a ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x586a711d __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5e027ad6 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x62be13e4 ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6b1f4559 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6c55cb4e __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x75467555 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7616a7cf ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7c3469ae ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x850f2ee7 ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x916cf740 ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x95be2880 ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa1cea245 ide_acpi_exec_tfs +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa4efaa25 ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb0a4cf56 ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbb7ee9fe ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbc54df3f ide_acpi_get_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc8a98f84 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcb171743 ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcefa9979 ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd1cf089b ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd1d4430b ide_acpi_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd6cce47f ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xdd95b76d ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe2e5583f ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xeda7c5c6 ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xfb647dce ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x51c83474 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x7a668486 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x6ab17882 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x099bd6c3 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x107f2943 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x13ddd68a gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x146c5ff3 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x14a9d417 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2ab40a9f gigaset_unassign +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2d21db6c gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3513963d gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x352074ce gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5f3cc9b8 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6482addf gigaset_getunassignedcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7643202e gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x77d122e1 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x78bf08aa gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaece9c2c gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd1b044ce gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd205044a gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xef6f9873 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x121a392f led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x33cfdfa1 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x553a011b led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xf6027a23 led_classdev_register +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x06101201 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x0f4680e4 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x11c943a0 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x303aa483 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x75c5acaa dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x9edc6e6f dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe3571e97 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xfb0cbcc3 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x08465761 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x10972ab7 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x2f2325b3 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x547c59ad dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb44cfc72 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd7cd387e dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x7a1bf6b5 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xa612adb1 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xc9675a76 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xd4dc3644 md_allow_write +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2025d25d ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x49e06a05 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xe87c7b16 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3eba3a9f saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6ad61ecf saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x915d55cf saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x94998f84 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa4114b5f saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa7235129 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbfba2c3c saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc2270616 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdd96fcfc saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe5378a62 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe6e23382 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x14f3d9d7 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x15bec891 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4efed027 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x90afadbb saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xa222a012 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xd19b1b4a saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xd1bb4560 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x1136ef55 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2079de71 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2e7d3b1a ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4ad066a5 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa2fb8b66 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf61bcd2d ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xfe2d9eeb ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x9693a0cd v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x3c65e6b6 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xa0e7eb79 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x1daa369e microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x9971cef4 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x4df087f3 tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x95ef44ff tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xaf31b4d4 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xd63f5f1d tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x186d6c76 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x7da5efe7 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xd47d6334 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc5d18bd0 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xd5901b09 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x025f2d9e videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0e8e1a2a videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2e746cad videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3881c7e5 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x43b1ae83 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4e49b324 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5afd3381 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x837ef138 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8a99e037 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9221d6b4 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x981907ba videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f92f984 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaff3515b videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb0ca5a4a videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb14b05b9 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb24622f2 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb6a5f1bd videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb7b02abf videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb7b92e04 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbdc7e372 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc9f433b2 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd33baaf7 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xffbe49d6 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x14b4d112 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x36870832 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x465d0342 videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5b0432cc videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6ace1d08 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x76b13c54 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7ce19864 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8529d6c5 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8a74f03d videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8b954bf6 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9c84f9fd videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc42ca902 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdbd9a0c4 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfad5ef5c videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x1411e5e2 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xa6e49124 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xd5222cbe videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6e0557fd sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x769d0fb8 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x78a40c73 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc05c4727 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcc693301 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd4d0b12f sm501_set_clock +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0e5a4d89 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x16232813 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2fed7c76 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x32907520 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x452c8230 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x470925ff sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x52737368 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x541f5f9d sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x76aaa176 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8cc0ae01 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa3929620 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa4593dbb sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xba8f3135 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xce074209 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcf4cfe5e sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd1f6ecfc sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd802772f sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe8098abe sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xef446073 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfad22479 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfb176cd6 sdio_readb +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x28f61547 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9498c703 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xff40abee cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd21ed00f cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xa7ba462f cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x745fe059 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x289789ba DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xc6bcc050 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x04333746 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1394b937 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x30274e55 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x317df671 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3c3181ab mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4fc04982 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6c391225 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7b6a6cd5 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c06d00e mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7f581ed9 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8fc21a4e register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x94fa513c register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9c6c77d4 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa636202b deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc302e863 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcc6a0081 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x214eae27 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5016bf8c del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa2232349 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe2292bbc register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2d95e785 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x6e3effb7 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x83e42b23 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x85084b70 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf40cf8a3 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x4cac9862 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xf73316c2 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x56e75f1b ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x834c88b2 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x859a8928 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x95036a41 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa087af7a ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd15de562 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd1fb7aca ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd50069a6 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd872861e ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe20859a1 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x018e0b8d mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0a71e250 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x12b54fb3 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2211f8bd mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x242699a2 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3448a235 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ec4538b __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x473be757 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x48d70fec mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x512e1732 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x53baba90 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x577ffba1 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x582df3b2 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x59070255 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5971b8e2 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x615a7a50 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x61913469 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6d58d9c2 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7abfbd60 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7c4f314c mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x950ca38b mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x955b1a21 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b40e091 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa3ed82f9 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xab17f643 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd7d4b9c mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc27a1ff6 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc513ded3 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb4c792d mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcccc8d8c mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcd792088 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcd94e672 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd225988d mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3b59a5b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdbf2e117 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe73c8137 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe83592ef mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xef9a1e9f mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfc9a9346 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfeb92bcb mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x42821082 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4f929f9d usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0386a85d usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x05013f7b usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x148179e1 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x17d770c5 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1dee56c7 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x463f4809 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x84175142 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b72c32e usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8dad5cf9 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95425f68 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa90db466 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2b72ca4 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xceaf131b usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd193ae6a usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8171241 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x11c62b94 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1e89bd70 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2651e9d9 libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3f6b78aa libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x73ce7ecc libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8187b06a libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xaf3e1069 libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcc4e38dc libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd43812e8 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe09c77ea libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe992baee libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x0486d304 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x3043d6bc p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x596186df p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x81d46b3c p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xc07974e9 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00d0c194 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x010e18d7 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0166e674 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b93a383 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x11c1a7c3 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13f34e95 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x16c092ae rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37782e00 rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x461f8655 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ce2a9c1 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x65a42481 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6b43bae9 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ca28129 rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8a870007 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a48db26 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5af5ef1 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe47f4b90 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe636282a rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf0010c78 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf43aa098 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x09245e50 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x13c9dad7 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4486e2ef rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x72242084 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x76416487 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7b4fd93a rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9bb556e8 rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe919aa0e rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xeaf63555 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x29424ac1 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2f2a9619 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3e8896f2 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x52591874 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x647233d0 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7063d3a7 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b095e29 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaef15915 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb6f1d917 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb8fb059e rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc781c968 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x0ead3976 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x2305be98 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x09682198 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ad3b491 acpi_root_bridge +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x20889b51 acpi_get_hp_params_from_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x3a7be243 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x4284a786 pci_hotplug_slots_subsys +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x486f0db7 pci_hp_register +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x5a95245a cpci_hp_register_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xaeea0069 acpi_run_oshp +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xc79912ed cpci_hp_register_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xc927dcad pci_hp_deregister +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xd7846d09 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x1f09375e rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x208de380 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x369a782d rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x3f375969 rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x4cc56424 rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x52fac55e rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x5eb9dc30 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x6241cd8d rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x6c153960 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x7cf6da67 rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x8d6cc71d rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xa81c5bed rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb940aea2 rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc2c456e3 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0209a670 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0394dc23 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04d3fb1e iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0939e4b6 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09c5079e iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e5055c5 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x191e9bdf iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32543bf3 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52b5c3ce iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7685f745 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x82a17e3c class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x877eefb2 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x949b1bd0 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x996c6d8c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4b45e58 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5cd7ba1 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa079f68 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb053a82b iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd221f57f iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf39c79c iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2447f14 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5bab76b iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea731da2 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefdca39b iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb9198ea iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb9b0a82 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc54a0a9 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x013c1f8c sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0b25e8f2 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x135421b4 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1829fe8c sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x216a2e87 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x32e4d8cb sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x46b0c085 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4d697623 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e5acc4c sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x70ecb7ad sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x76ac38eb sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78d1d652 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9050e56f sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa01ebf52 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb7c0ab53 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc544668a sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd1430aba sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe5f1edfb sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf21090ac sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfdf1b8cb sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x21e6a897 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5761cd34 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x70824153 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9e29a26a srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xcc1957bb srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xef429a64 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x044ddfbb scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x079d2a22 scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3083b5b9 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x52d36041 scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x8123c6da scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x82fc43fe __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x8463c4bf scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x85e6d91f scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9d5df322 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xababb9f2 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xcff5594b scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xdf3e7047 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xf2c70e43 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xf9e52951 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x16a1c439 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3d8889d6 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x48fba19c scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x652c1e71 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x696f13ff scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b83961b scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdd6f05e8 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xee2843e7 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfa22e6b8 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x018ac816 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x02e3a55a iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e5107c2 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13ca1738 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17c55fee iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43e3ce00 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x61bef05f iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x62b541d0 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7e970d57 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9190ba05 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97d463df iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xadaea93e iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xafbb2177 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1fecd46 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xec973340 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa3da897 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0b71f058 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3deccb94 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x60a698d5 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9f8ff05f srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xbe2c0799 srp_release_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x0c64a980 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x3fc4248e spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x606eafa9 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x88c283c3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa153515b spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc279e68b spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/uio/uio 0x0004ef07 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x016a2266 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7616270c uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x10eb7fc5 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xd2cdbc24 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0191ee34 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x05695378 usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0d0237be usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0df13a77 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1783311c usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x18266281 usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x19dea0ca ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1a8e26c7 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1d692718 usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2797735a usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3057b11a usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x35135bad usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x381c0f69 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3949b040 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3e96edcc usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x43834c15 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5e86f80d usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x66d19bb5 usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x72e22979 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7d1649e3 usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8c503d26 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xcbfe8c6b usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xcefa37d4 usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd1c21d07 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd3f5a2a0 usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0ecd6f3a usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x25100f0a usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2fb96950 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x56ef652e usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x73dbe918 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7c6332c8 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9dcdb1a5 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9ecf3aa1 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xea21e694 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x1717bddc phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x10ae7e07 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x387b4fcb usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x604cf087 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x63c8fc54 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x68946f60 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9ddcd016 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca57f832 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd0d762ca usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x2f738901 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x34bc376b fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x8de4ee50 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x00d1dc0f sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x09b1e157 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x16396cea register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x22c7dff3 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x38a34237 register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x3b967f70 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x03c4687d vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x89f5c5c1 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf7ae3526 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x14301099 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5d1ad56e w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb0f5489c w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe09158a0 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf6c91126 w1_reset_bus +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x45f4dec9 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe9717a46 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x1362faf2 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x2e194bef fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x3a820d5a fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x3bf468a6 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x3fb76227 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x6bf6474d fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x6ef912ec fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x768ee0e5 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xc0d69d4b fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xc2505603 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xcdab1989 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0xd46f5b8a fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xda26e688 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xdd1df315 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xe3836f92 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xf153c098 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xf30291f9 fat_notify_change +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x03c7ca9b gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x07335c35 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x1ac23e44 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x917ab021 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x9ca6de32 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x04a8999b o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x14c06de0 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x25563bda o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3df6303b o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4881587f o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6f98fb1a o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd00b5e3c o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x42171f35 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x72e39ff9 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8701ec43 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x9ed08c48 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xda738f80 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xee227989 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xe832c12e ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x4ccc41c3 bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x32b30e18 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x3f87fb7c dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x3fcf5e7d dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x49616841 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c2fc78d dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90aae1a6 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x9631ef59 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xbf876a06 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xcd179811 dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xde5f6608 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xea311fa6 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0b728a88 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0f456f28 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1173e633 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x130549ac dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e926e66 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x20016c47 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2dc752c8 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c000b70 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x473c6a40 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x48d970ac dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4fdb55eb dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59b3b1f3 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a0db101 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6587e6c5 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x66b5d86b dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d703d43 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e42618e dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6fcd4c1d dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71685d8b ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x840c8a3a dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x878e395e ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f969dcd dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x918f359b dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92a3b556 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95c0edfd dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9931c2a1 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaa6ea21a dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae81b43d dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaf013790 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2b112cc dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb3cb9881 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb461bf8b inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbfaaded9 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3ef722a dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6e52a4d dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc83011cd dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xceb9fbae dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf3f5fe9 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd216aafa dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd21f1c90 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd67c44b8 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9fff929 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea87f52f dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2ed8434 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4a437be ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb09d815 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6015fe72 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x609e5fbb dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x67c0a9b4 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbc1c0257 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xeebb55aa dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xef141c6b dccp_v4_send_check +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x8a188955 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xa79d7dae ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xe0ddaa5d ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x15180b34 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x1872b61f ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x1c63cf7f ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x2d0c66c7 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x348e8104 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3621611f ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x370a55fc ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3aefb7aa ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x49e935b8 ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5d826cee ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x602f412d ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x63ab9bd8 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x66cc0d23 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x70079815 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x75810d5f alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x958879ba ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xae063137 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xafe09422 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb395f7fb ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb8b8377b free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd3532147 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x2675aeb1 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x29fceed2 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5b6c79fb nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9b45c228 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa2093723 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x559ae291 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6de04675 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc889cadd tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc9935259 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd040664d tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x00cde30d ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x13725fae inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x324965f9 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3b89c203 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3dde2092 ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x45b1def1 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x499f7e6a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4bf34804 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa1a17d04 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa29f5550 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xaf955394 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb6183dbe inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbfb8623b ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xce226c38 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfd66931e inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0061f918 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1559b388 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ad14380 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9b6092 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cef9cd1 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3abba0a5 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x41857a25 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4323a400 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x491265db print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x522d4baa nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53ed5b4d nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x56785d21 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d475365 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62dc849f nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65a0a829 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f7131e7 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x732e4bf7 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73839b96 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c512716 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80860f23 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x859dbcf9 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c6ba242 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93257ef5 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9427bcb5 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa1cd34ce nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa409bb80 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xabe92ec5 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4896b54 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb62bfef9 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6910647 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0957808 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc77d1d93 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfc620ee nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea5de9ac nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xedcf2639 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf352bfeb nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3a1fdc8 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9b3f06d nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9c7e96d nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfdf0426c nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfec020f8 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff031317 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x56c69a6f nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xa2d79641 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x43f8361b set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4b5b91eb nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4e6f5f46 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5231dda7 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x649ac745 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x67860780 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd8923065 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdcb89182 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe555f185 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xa4ef8dca nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x0f5c5de9 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5b643f29 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa47f5925 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe92facb1 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x451d814a nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bb818fe ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa37fb829 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe5015fd1 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x726aeab8 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1b833bb3 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5c377081 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce54bb5 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x939bfe42 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x020ee2ef xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x11d5cc43 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5df32dff xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7ffa1155 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x88692cfd xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x91a15802 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdbf750b6 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfdc365a2 xt_table_unlock +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2c55e9a0 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x548c65a4 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00e01218 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x099a96dd xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20170683 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c3277c6 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d5420c4 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec472f xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x338d5e53 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x340c80bc svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3adfbea4 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x495b69e4 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f655740 xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x604b5396 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60da0788 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bb36f11 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fa3826a rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90af8f93 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x986863e5 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0d1ab5f rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1ff8a82 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1047c02 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb225e760 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5a1fc4b rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc020b346 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb9821df xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2052907 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3da5a1b xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6034f32 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2cbaa3e rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8853965 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffe0ca2e xprt_unregister_transport +EXPORT_SYMBOL_GPL vmlinux 0x0039e0a3 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00f903d5 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x0143ed8e hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x02427628 class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x025a1bdd devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02eaff59 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x03438a6c relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x049c506c unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x0539fcc0 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x057fd75f securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065e8201 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x06f3cb1a hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x079b499b pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d93f50 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x07da7017 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x0855f4a0 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x0866e5f5 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092dfde7 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x09eef486 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x0ac59f02 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b484edb fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x0c37e959 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x0ce3425c tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x0d6fb450 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0e0b8cbf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0e18f288 put_device +EXPORT_SYMBOL_GPL vmlinux 0x0eb82963 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x0ece36ed queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x1051c720 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x126fed21 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x1274f6b2 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x132c1034 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1331637f pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13f04c7a elv_register +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15cf005f device_del +EXPORT_SYMBOL_GPL vmlinux 0x15f884e6 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x171cc612 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x183b0a58 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189ee394 __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0x18cf8649 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x1aaa40de platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x1adbb017 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x1b0d8443 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x1b86ac52 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1b945d40 find_pid +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c21fd84 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x1cc4a103 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d395a9f __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x1e2fbcc8 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x1e41b2a3 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1e423537 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebb790b put_driver +EXPORT_SYMBOL_GPL vmlinux 0x1f1db827 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x1f3bbb33 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x1f544983 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1f56dfe4 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fc838de user_update +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe95623 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x200a8552 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x2023542b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x203a3cd3 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x204f3616 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x20a657ae hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20ff4b52 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x213084b4 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x21ab60de pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x21f4ccf2 get_device +EXPORT_SYMBOL_GPL vmlinux 0x22132e74 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x226c75e1 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22999e0c tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x22e2c20b atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x235f4515 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24fcdb2f xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x261ac3a6 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x26b68b05 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x26b9fd19 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x26ed569d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x26f682a3 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x277d0e59 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x285e387e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x289ca6b6 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b2cc80 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28e9266f posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x29060058 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x29526a1f sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x296e9e62 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x296ff2f0 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x29b39c7f spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x29d3148b devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a910acb copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x2b5e57cb inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2bd334cd platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2bfdb074 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x2d07dbe9 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d5f4e97 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2ee92123 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x2fed48fc vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x30bb0dd0 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x32214598 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x3245cdf0 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x32d1983c debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x32d3de77 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x32f8c355 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3360c459 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x338fa9ab sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x33fda6bc inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x3432082f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x348800f2 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x35244632 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x35a36dd0 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3682b2a1 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x371b63fa bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x37453d41 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x37e2db05 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x37f07dbd class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3846fd87 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x38c3a119 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x395a551a devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x39819646 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x39dd87ac do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x3a248aa3 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0x3a3187cf class_create +EXPORT_SYMBOL_GPL vmlinux 0x3a5783f1 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3af0fd09 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x3b388e05 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x3bd66a30 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d0cd557 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x3d9217f1 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x3db76b6f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x3e04616c vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x3e3cfd22 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x3ef20083 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f92c67d tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3fc60187 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x40555cf5 device_register +EXPORT_SYMBOL_GPL vmlinux 0x40a16db1 inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x41881d8f transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x41d3594d tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x41d36c1d crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x420bf363 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x427e82e2 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x429f53ec sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x43c2e816 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x43fb4af0 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x443460dd platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL_GPL vmlinux 0x44fb3d55 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x454ef9b1 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45eac503 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x467e2df0 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4682d03b kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x46bf6d78 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x4753b369 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x47a0b93d crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a4db34 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x4a18ad15 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x4a4dd235 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x4a57ad64 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x4aab3ba4 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ac5c06c inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x4af21b71 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4bf97a36 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4cdde02c pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d154feb inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x4d693c38 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x4efd7d09 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4f5c6ff7 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x4f7f8938 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x4fab0b9b spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x5149ca3a pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x51912d2b relay_open +EXPORT_SYMBOL_GPL vmlinux 0x52125a86 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x525df8ae inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x530014c3 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x5307d95a transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x53537a60 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53acb2ae tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5454c571 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x5500c0bc sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x551eed66 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564a911f xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x56bc7158 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x56cd7e99 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56faeef2 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x58157640 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x587160cc fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x5aacb795 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x5ae322d8 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5b006c17 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x5b6f4521 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x5bc74cf9 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c9b9367 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5d18f905 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x5d37972f sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5d41444b kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x5d60f1a3 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d856a0f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5ea8693a skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x5f1cced5 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f7ad77a devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x6043a0c9 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x60f7748f transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x61334630 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x615d846b relay_close +EXPORT_SYMBOL_GPL vmlinux 0x617be6eb crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x61d126ce devres_find +EXPORT_SYMBOL_GPL vmlinux 0x62c0a896 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x62fc9c7f page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x633fb69d hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x63aa9cf6 crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x63d558c0 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x64003097 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x641327f5 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x64266964 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x65372bd7 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x65648123 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x65aed812 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6679d457 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66b5e3ca driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66d9343d pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0x6786861b __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68d5b2b3 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x68e7afd0 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x68e9fc23 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x6926f96f tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x699b3ea9 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x69bf3257 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x69dff4fa disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x6a9ccec0 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6aebe956 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x6b3460aa driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x6b37f30c input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x6bc2d377 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c5097b3 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x6c64304d xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x6ccb142f cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x6d010726 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x6d156f4e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x6d379aeb device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6eca1fa8 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x6f589b70 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x7003fcc3 device_create +EXPORT_SYMBOL_GPL vmlinux 0x70257d96 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72a8dd1b crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x734dc357 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x73580404 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x73637052 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7380e44e driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x73a6cb15 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x7431dc23 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74bf669f rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7514e72d class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75b042c8 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7606eb00 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x763637b3 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x775f6754 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x78048bf5 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x78ebd4f0 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7a1b4a25 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7b05b04e debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b87ef10 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7cf1be77 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7d4bf28e register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7d77c663 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e2e201c bus_register +EXPORT_SYMBOL_GPL vmlinux 0x7ea7d551 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f6c7c86 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x801928e2 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x8050ebf5 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x8146cb8a klist_init +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81b2f684 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x820cc974 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82a8843d srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x830c1e1a register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x830c8b60 input_class +EXPORT_SYMBOL_GPL vmlinux 0x8338c60c rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x83553786 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x83d0ca94 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x8447f326 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x85b57922 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x860feeea class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x86135f87 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x8622859a class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x86237e73 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x865954d2 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86d798a4 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x8706fba7 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x88b81f40 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x892e2990 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x893f613b crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x8a0fdb1c __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x8a444308 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x8a74597a uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x8ab503d0 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x8afd62dc platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8b20cf14 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8b56ee28 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8dfb4bdc crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x8f1d889f isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8f341581 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8ff4e08a fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x903fb318 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x911c130b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92e34d86 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x93605dca skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x93b37a9f platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x93c18f44 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e065c4 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x93e83dd2 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x94036c4a power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x944a40f3 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x946cb787 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x9495fa3d skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x949f49f4 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x94fde950 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x961f2599 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x9681e3f0 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x98324e3c sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x98419170 device_move +EXPORT_SYMBOL_GPL vmlinux 0x999b0396 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x99b701e5 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x99b984d1 user_read +EXPORT_SYMBOL_GPL vmlinux 0x99f205c4 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x9a566e6c pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x9ab6ce88 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9b010a65 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x9b683b45 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x9b686a78 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bc2babc uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x9c0e46b7 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x9cab1ce3 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d18f657 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x9d76e555 nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9de19835 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x9e190b76 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x9ea14fb5 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x9f14c375 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0x9fc012f1 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa004fcf8 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa05b819a fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa0acbef8 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa212f395 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xa238dced audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0xa262518d relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3e18518 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa42ec7ff sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa461b978 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa4c986f6 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xa4d2de9c crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa6a6c73d pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xa7039b0a class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa7799842 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xa852872f vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa9079d80 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa91386f2 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9aec33e skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa8d9792 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xab78b691 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xabc08a89 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xac03750f sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xac7e9faa tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xad3de9f7 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xadb0952a put_pid +EXPORT_SYMBOL_GPL vmlinux 0xadb8c6c1 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xae520413 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0xae6eff3a dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xae8ae767 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xaec6d754 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xaec9cbd9 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xaef6e481 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xafe48b9e get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0xb06e0082 get_driver +EXPORT_SYMBOL_GPL vmlinux 0xb1149c59 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xb140bcda register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb167ce88 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb2b4899c inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xb323135b inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xb342a398 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xb379cf88 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb3dfb042 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb3e2160c class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb44fdc23 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb46dd01f user_match +EXPORT_SYMBOL_GPL vmlinux 0xb4b1135d cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52673e2 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb5c4f48e destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xb5f24c9a class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb69abbc5 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xb7d8a61e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xb7ef1b43 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xb8eccb64 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xb9aa4a70 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb9e623a2 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xbb9b9355 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbc28a23c led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xbc3bd6af fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xbc6779db crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xbca23d45 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xbca6b8a3 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xbcdc7792 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xbd33c5a9 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xbec93770 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xbf10a94e preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xc02facea synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc0bbe760 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xc116970d __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc1bc23a1 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xc2259728 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc2552f7c pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc25e3d39 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc2c67895 k_handler +EXPORT_SYMBOL_GPL vmlinux 0xc2f82e2e sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xc329096e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc39c77ca kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xc410a2ba device_add +EXPORT_SYMBOL_GPL vmlinux 0xc4a75160 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc56adfd8 used_vectors +EXPORT_SYMBOL_GPL vmlinux 0xc60f7e16 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc6a8399a flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc6ed917b __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc77bb6a5 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xc7fafa07 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8b356b9 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xca8ddbf7 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacb5a51 pci_assign_resource_fixed +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcba7a8d6 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbac5b3c bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xcbd9f967 mmput +EXPORT_SYMBOL_GPL vmlinux 0xcbfc24c0 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0xcc0f49b5 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xcc131460 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc2ce1b6 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xcc42f03f devres_add +EXPORT_SYMBOL_GPL vmlinux 0xcd3d98a3 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfd1e138 klist_next +EXPORT_SYMBOL_GPL vmlinux 0xd01f9014 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xd01fc97a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd0a6a8ac srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0e4895a tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xd0f80d1f fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1840d13 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd1e3eae0 pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2be600f debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd3033f37 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd33ada50 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xd385c7cb spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xd3ecd706 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0xd46dbfcb apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xd50e4116 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xd5272775 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xd5724898 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd5c02579 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd610b644 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xd6159b8e sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd67edb23 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xd6a0ad82 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xd7616905 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd7efee05 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xd7f772f3 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd872c58e ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xd88b6366 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xd8c5221c klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xd986dad1 kernel_fpu_begin +EXPORT_SYMBOL_GPL vmlinux 0xd997da9a find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xd9fd6c7e crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xda1e2952 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xda293765 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0xdb36c180 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xdb97e76f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdbcad35a crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xdc4c0fbf inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xdcbe3ab2 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xdd0323be isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xddc575a6 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xdf126b29 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xdf8b81b4 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe095662f crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xe0e2e156 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe0f9cf1f pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xe191b723 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe2e4e8f4 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe3caa39f skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xe3f04de2 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xe4c5ca7b transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe58c2b17 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe6bdd64a find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xe6e178f4 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xe6e4d9b9 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xe74ad6a4 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xe7c6acae map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe8f04c56 per_cpu__gdt_page +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9e99a4f bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea51799a tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xeb157f1d vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xeb3f2814 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xebc8e9b3 class_register +EXPORT_SYMBOL_GPL vmlinux 0xebf171d6 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xec0cdfd6 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xec39bbb9 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec3d4a0f klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec41c88f cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xecdf57ac tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xed3f4dc0 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xed84cf84 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xedd9ae51 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeeb59ee8 task_nice +EXPORT_SYMBOL_GPL vmlinux 0xeec52bc4 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xef4e963e __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xef917b8e led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xefb2536b tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xefb2c3a8 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xf03b5b77 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1d2909d rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xf2bcb4cc pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf2f65ae1 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xf3790bd5 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xf3fb3cc9 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xf3fcab40 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf5012542 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xf52b8ee9 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf58d3ff5 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf630ac51 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xf67433f8 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xf6c6681a __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xf6f7dcb5 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0xf7a374a1 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xf7abb2df sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf807fd65 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8b94c33 class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf8f4637a sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xfa291ad8 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfa6aa501 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfab9699d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xfb093d18 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xfb6adf15 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xfbe974a5 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc49b809 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xfce4d1a2 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xfd9bd022 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xfda170e1 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe003363 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xfe046e1c rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xfe87d16d attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xff2c8470 transport_class_unregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x01db3bc1 usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x0f04d62e usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x7a8ff2aa usb_deregister +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/386.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/386.modules @@ -0,0 +1,1937 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +53c700 +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +82596 +8390 +9p +9pnet +9pnet_fd +9pnet_virtio +a100u2w +a3d +aacraid +abituguru +abituguru3 +ablkcipher +abyss +ac +ac3200 +ac97_bus +acecad +acenic +acpi-cpufreq +acpiphp +acpiphp_ibm +acquirewdt +act2000 +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +advansys +advantechwdt +aead +aec62xx +aes_generic +aes-i586 +affs +af_key +af_packet +af-rxrpc +agpgart +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airprime +alauda +ali14xx +ali-agp +ali-ircc +alim1535_wdt +alim15x3 +alim7101_wdt +ambassador +amd64-agp +amd76xrom +amd8111e +amd-k7-agp +amd-rng +analog +anubis +aoe +apm +appledisplay +applesmc +appletalk +appletouch +applicom +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arlan +arptable_filter +arp_tables +arpt_mangle +asb100 +asix +asus_acpi +asus-laptop +async_memcpy +async_tx +async_xor +at1700 +at25 +ata_generic +ata_piix +aten +ati-agp +atiixp +ati_remote +ati_remote2 +atl1 +atlas_btns +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +auerswald +authenc +auth_rpcgss +autofs +autofs4 +avma1_cs +avm_cs +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +battery +bay +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_aout +binfmt_misc +bitblit +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpck6 +bpqether +br2684 +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +button +bw-qcam +c101 +c4 +cafe_ccic +cafe_nand +camellia +capi +capidrv +capifs +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +ck804xrom +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cmd64x +cmtp +cn +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +container +cops +coretemp +corgi_bl +cosa +cp2101 +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpqphp +cpu5wdt +cpufreq_conservative +cpufreq-nforce2 +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +cpuid +c-qcam +cr_bllcd +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cs5535 +cs5535_gpio +cs553x_nand +cs89x0 +ct82c710 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyblafb +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dca +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +dell_rbu +depca +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +dilnetpc +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm9601 +dmascc +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +dock +docprobe +donauboe +dpt_i2o +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dtc +dtc2278 +dtl1_cs +dtlk +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro +eepro100 +eeprom +eeprom_93cx6 +eexpress +efficeon-agp +efs +ehci-hcd +elo +elsa_cs +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +es3210 +esb2rom +esi-sir +esp4 +esp6 +et61x251 +eth1394 +eth16i +eurotechwdt +evbug +evdev +ewrk3 +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fakephp +fan +farsync +fat +faulty +fbcon +fb_ddc +fb_sys_fops +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +firestream +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +font +forcedeth +fore_200e +freevxfs +freq_table +friq +frpw +fscher +fschmd +fscpos +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +fuse +g450_pll +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic_serial +gen_probe +genrtc +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +g_NCR5380 +g_NCR5380_mmio +grip +grip_mp +g_serial +gtco +guillemot +gunze +gx1fb +gxfb +gx-suspmod +g_zero +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hecubafb +hermes +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfc_usb +hfs +hfsplus +hgafb +hid +hidp +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hpfs +hp-plus +hpt34x +hpt366 +hptiop +ht6560b +hwmon-vid +hysdn +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-core +i2c-dev +i2c-elektor +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i5000_edac +i5k_amb +i6300esb +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i830 +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmasm +ibmasr +ibmcam +ibmlana +ibmmca +ibmpex +ibmphp +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +in2000 +inet_lro +inftl +initio +inport +input-polldev +intel-agp +intelfb +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irport +irtty-sir +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isdnloop +isl6421 +isofs +isp116x-hcd +istallion +it87 +it8712f_wdt +iTCO_vendor_support +iTCO_wdt +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +joydev +joydump +jsm +k8temp +kafs +kaweth +kbic +kbtab +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kvm +kvm-amd +kvm-intel +kyrofb +l2cap +l440gx +l64781 +lanai +lance +lanstreamer +lapb +lapbether +lcd +ldusb +lec +led-class +leds-net48xx +leds-wrap +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lne390 +lockd +lock_dlm +lock_nolock +logibm +longhaul +longrun +loop +lp +lp486e +lpfc +lrw +ltpc +ltv350qv +lxfb +lxt +lzo_compress +lzo_decompress +m25p80 +ma600-sir +mac80211 +machzwd +macmodes +macvlan +madgemc +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mca_53c9x +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdacon +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +meye +mga +michael_mic +microcode +microtek +mii +minix +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +moxa +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msp3400 +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mwave +mxser_new +myri10ge +n2 +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +NCR53c406a +NCR53C9x +NCR_D700 +NCR_Q720_mod +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +net2280 +netconsole +netrom +netsc520 +nettel +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +ni5010 +ni52 +ni65 +nicstar +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidia-agp +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +opti621 +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p4-clockmod +p54common +p54pci +p54usb +p8023 +padlock-aes +padlock-sha +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_acpi +pata_amd +pata_artop +pata_atiixp +pata_cmd64x +pata_cs5520 +pata_cs5536 +pata_efar +pata_hpt366 +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_qdi +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300 +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9539 +pcbc +pcbit +pcd +pcf8574 +pcf8591 +pci +pci200syn +pciehp +pci_hotplug +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +pms +pnc2000 +powermate +powernow-k6 +powernow-k7 +powernow-k8 +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +processor +progear_bl +proteon +psi240i +psmouse +pt +pvrusb2 +pwc +qd65xx +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r82600_edac +r8a66597-hcd +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-gemtek-pci +radio-maestro +radio-maxiradio +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-terratec +radio-trust +radio-typhoon +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio +rio500 +riscom8 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_gxx +sbni +sbp2 +sbs +sbshc +sc +sc1200 +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +scb2_flash +scc +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +scx200_32 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdio_uart +sdla +sd_mod +se401 +seagate +sealevel +sedlbauer_cs +seed +seeq8005 +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +shpchp +sidewinder +sierra +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +smbfs +smc9194 +smc91c92_cs +smc-mca +smctr +smc-ultra +smc-ultra32 +smsc +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +softcursor +softdog +sony-laptop +sonypi +soundcore +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedstep-centrino +speedstep-ich +speedstep-lib +speedstep-smi +speedtch +spi_bitbang +spi_butterfly +spi_lm70llp +sr_mod +ssb +ssfdc +sstfb +st +stallion +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +sworks-agp +sx +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +tc86c001 +tcic +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram-sir +teles_cs +tg3 +tgr192 +thermal +thinkpad_acpi +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tileblit +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmscsim +tmspci +toshiba +toshiba_acpi +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +trancevibrator +tridentfb +trm290 +ts5500_flash +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +twofish-i586 +typhoon +u132-hcd +u14-34f +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +ultrastor +umc8672 +umem +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usbcore +usb_debug +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +via +via686a +via-agp +via_chrome9 +via-ircc +via-rhine +via-rng +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_net +virtio_pci +virtio_ring +visor +vitesse +vivi +vlsi_ir +vmlfb +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w9966 +w9968cf +wacom +wafer5823wdt +wanrouter +wanxl +warrior +wavelan +wavelan_cs +wbsd +wd +wd7000 +wdt +wdt_pci +whiteheat +winbond-840 +wire +wistron_btns +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xd +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xircom_tulip_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yellowfin +yenta_socket +z85230 +zatm +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/i386/server.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/i386/server.modules @@ -0,0 +1,1923 @@ +3c359 +3c501 +3c503 +3c505 +3c507 +3c509 +3c515 +3c523 +3c527 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +53c700 +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +8250_mca +82596 +8390 +9p +9pnet +9pnet_fd +9pnet_virtio +a100u2w +a3d +aacraid +abituguru +abituguru3 +ablkcipher +abyss +ac +ac3200 +ac97_bus +acecad +acenic +acpi-cpufreq +acpiphp +acpiphp_ibm +acquirewdt +act2000 +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +advansys +advantechwdt +aead +aec62xx +aes_generic +aes-i586 +affs +af_key +af_packet +af-rxrpc +agpgart +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airprime +alauda +ali14xx +ali-agp +ali-ircc +alim1535_wdt +alim15x3 +alim7101_wdt +ambassador +amd64-agp +amd76xrom +amd8111e +amd-k7-agp +amd-rng +analog +anubis +aoe +apm +appledisplay +applesmc +appletalk +appletouch +applicom +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arlan +arptable_filter +arp_tables +arpt_mangle +asb100 +asix +asus_acpi +asus-laptop +async_memcpy +async_tx +async_xor +at1700 +at25 +ata_generic +ata_piix +aten +ati-agp +atiixp +ati_remote +ati_remote2 +atl1 +atlas_btns +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +auerswald +authenc +auth_rpcgss +autofs +autofs4 +avma1_cs +avm_cs +ax25 +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +battery +bay +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_aout +binfmt_misc +bitblit +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpck6 +bpqether +br2684 +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +button +bw-qcam +c101 +c4 +cafe_ccic +cafe_nand +camellia +capi +capidrv +capifs +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +ck804xrom +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cmd64x +cmtp +cn +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +container +cops +coretemp +corgi_bl +cosa +cp2101 +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpqphp +cpu5wdt +cpufreq_conservative +cpufreq-nforce2 +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +cpuid +c-qcam +cr_bllcd +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cs5535 +cs5535_gpio +cs553x_nand +cs89x0 +ct82c710 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyblafb +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dca +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +dell_rbu +depca +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +dilnetpc +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +dock +docprobe +donauboe +dpt_i2o +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dtc +dtc2278 +dtl1_cs +dtlk +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +e2100 +e752x_edac +e7xxx_edac +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro +eepro100 +eeprom +eeprom_93cx6 +eexpress +efficeon-agp +efs +ehci-hcd +elo +elsa_cs +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +es3210 +esb2rom +esi-sir +esp4 +esp6 +et61x251 +eth1394 +eth16i +eurotechwdt +evbug +evdev +ewrk3 +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fakephp +fan +farsync +fat +faulty +fbcon +fb_ddc +fb_sys_fops +fcrypt +fd_mcs +fdomain +fdomain_cs +fealnx +ff-memless +firestream +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +font +forcedeth +fore_200e +freevxfs +freq_table +friq +frpw +fscher +fschmd +fscpos +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +fuse +g450_pll +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic_serial +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +g_NCR5380 +g_NCR5380_mmio +grip +grip_mp +g_serial +gtco +guillemot +gunze +gx1fb +gxfb +gx-suspmod +g_zero +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hecubafb +hermes +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfc_usb +hfs +hfsplus +hgafb +hid +hidp +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp +hp100 +hp4x +hpfs +hp-plus +hpt34x +hpt366 +hptiop +ht6560b +hwmon-vid +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-core +i2c-dev +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i5000_edac +i5k_amb +i6300esb +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i830 +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmasm +ibmasr +ibmcam +ibmlana +ibmmca +ibmpex +ibmphp +ib_mthca +ibmtr +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +in2000 +inet_lro +inftl +initio +inport +input-polldev +intel-agp +intelfb +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isl6421 +isofs +isp116x-hcd +it87 +it8712f_wdt +iTCO_vendor_support +iTCO_wdt +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +joydev +joydump +jsm +k8temp +kafs +kaweth +kbic +kbtab +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kvm +kvm-amd +kvm-intel +kyrofb +l2cap +l440gx +l64781 +lanai +lance +lanstreamer +lapb +lapbether +lcd +ldusb +lec +led-class +leds-net48xx +leds-wrap +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lne390 +lockd +lock_dlm +lock_nolock +logibm +longhaul +longrun +loop +lp +lp486e +lpfc +lrw +ltpc +ltv350qv +lxfb +lxt +lzo_compress +lzo_decompress +m25p80 +ma600-sir +mac80211 +machzwd +macmodes +macvlan +madgemc +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdacon +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +meye +mga +michael_mic +microcode +microtek +mii +minix +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msp3400 +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mwave +mxser_new +myri10ge +n2 +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +NCR53c406a +NCR_D700 +NCR_Q720_mod +ne +ne2 +ne2k-pci +ne3210 +neofb +net1080 +net2280 +netconsole +netrom +netsc520 +nettel +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +ni52 +ni65 +nicstar +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidia-agp +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +opti621 +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p4-clockmod +p54common +p54pci +p54usb +p8023 +padlock-aes +padlock-sha +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_acpi +pata_amd +pata_artop +pata_atiixp +pata_cmd64x +pata_cs5520 +pata_cs5536 +pata_efar +pata_hpt366 +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_qdi +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300 +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9539 +pcbc +pcbit +pcd +pcf8574 +pcf8591 +pci +pci200syn +pciehp +pci_hotplug +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +pms +pnc2000 +powermate +powernow-k6 +powernow-k7 +powernow-k8 +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +processor +progear_bl +proteon +psi240i +psmouse +pt +pvrusb2 +pwc +qd65xx +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r82600_edac +r8a66597-hcd +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-gemtek-pci +radio-maestro +radio-maxiradio +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-terratec +radio-trust +radio-typhoon +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_gxx +sbni +sbp2 +sbs +sbshc +sc +sc1200 +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +scb2_flash +scc +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +scx200_32 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_i2c +scx200_wdt +sdhci +sdio_uart +sdla +sd_mod +se401 +seagate +sealevel +sedlbauer_cs +seed +seeq8005 +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +shpchp +sidewinder +sierra +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +skfp +skge +skisa +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +smbfs +smc9194 +smc91c92_cs +smc-mca +smctr +smc-ultra +smc-ultra32 +smsc +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +softcursor +softdog +sony-laptop +sonypi +soundcore +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedstep-centrino +speedstep-ich +speedstep-lib +speedstep-smi +speedtch +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +ssfdc +sstfb +st +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +sworks-agp +sx +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +tc86c001 +tcic +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram-sir +teles_cs +tg3 +tgr192 +thermal +thinkpad_acpi +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tileblit +tipc +ti_usb_3410_5052 +tlan +tlclk +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmscsim +tmspci +toshiba +toshiba_acpi +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +trancevibrator +tridentfb +trm290 +ts5500_flash +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +twofish-i586 +typhoon +u132-hcd +u14-34f +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +ultrastor +umc8672 +umem +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usbcore +usb_debug +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +via +via686a +via-agp +via_chrome9 +via-ircc +via-rhine +via-rng +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_net +virtio_pci +virtio_ring +visor +vitesse +vivi +vlsi_ir +vmlfb +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w9966 +w9968cf +wacom +wafer5823wdt +wanrouter +wanxl +warrior +wavelan +wavelan_cs +wbsd +wd +wd7000 +wdt +wdt_pci +whiteheat +winbond-840 +wire +wistron_btns +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xd +xen-blkfront +xen-netfront +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +yenta_socket +z85230 +zatm +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +znet +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/hppa/hppa32 +++ linux-2.6.24/debian/abi/2.6.24-24.56/hppa/hppa32 @@ -0,0 +1,4858 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/block/loop 0x864e3f0c loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/cdrom/cdrom 0x1e28336b cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x42e70ce6 cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0x5cc3cfed unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x77cf2a2d cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x8d22dedd cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x90fe98ce cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0x981982d5 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xbec4c385 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0xdb7bb346 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe27a6e9b cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe29310ac cdrom_number_of_slots +EXPORT_SYMBOL drivers/char/agp/agpgart 0x07183987 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1a96dc72 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x235229ac agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x25944510 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x285ef994 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2cf1a54d agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3302fc9f agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x42c67f60 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6259d19d agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x659087c9 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x683f305d agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7958dfbf agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7e2ab974 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x840d6f37 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8752059e agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9c870dee agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb42d4b0c get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb586d28d agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb72c0f10 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbfeb65bb agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc8b8d182 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xda567508 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe3fe2481 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe4fddfb3 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xeb90831f agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf11388dd agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf38385c3 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf790db11 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xfb3e4517 agp_generic_remove_memory +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/ide/ide-core 0x0b102397 task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x30af3c8f ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0x32b76101 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0x33b756e8 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0x359c55b7 ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x46b41d82 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0x4b449b30 ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x4c9e3222 ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x51b8767e ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x5b292d96 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x5bc4f747 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0x6155fbb0 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x64ac916c pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x727ebbfe drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0x74e23248 ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0x79419424 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x86eba092 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x8f6fbfb5 ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x8fa7d8ed ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x9812ee4d task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xa24a2de3 generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0xaad7ae1a SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xbafc0777 ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0xc5495bf9 default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0xc633a1f8 ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0xd29afab2 ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0xdc022f18 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0xdc1747ca ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xdf007f88 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0xe134d1a7 ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0xe859e304 __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0xeaf818af ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xfde262a2 ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xfe49fa74 ide_init_drive_cmd +EXPORT_SYMBOL drivers/input/input-polldev 0x6a1b2a26 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa6ff04cb input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xe604ea79 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf3b4f3f0 input_register_polled_device +EXPORT_SYMBOL drivers/input/serio/hil_mlc 0x6c3fec95 hil_mlc_register +EXPORT_SYMBOL drivers/input/serio/hil_mlc 0xf9ec1aba hil_mlc_unregister +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0x1b8e0535 hp_sdc_dequeue_transaction +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0x2d7c4a70 hp_sdc_release_hil_irq +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0x4233a8eb hp_sdc_request_cooked_irq +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0x9dccd37d hp_sdc_release_timer_irq +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0xb12bc1bd hp_sdc_request_timer_irq +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0xc5226cfa hp_sdc_enqueue_transaction +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0xc7d4b66c __hp_sdc_enqueue_transaction +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0xcf402f97 hp_sdc_request_hil_irq +EXPORT_SYMBOL drivers/input/serio/hp_sdc 0xd97b8d49 hp_sdc_release_cooked_irq +EXPORT_SYMBOL drivers/md/dm-mirror 0x267d3738 dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x5307d63d dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x53263c31 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x8b569065 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x1d6e33f1 dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x2cad1864 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0x2f02e322 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x304062f8 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0x319541e2 dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x32af4242 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x38b5ec45 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0x4363bc78 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x598a3462 kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x5f497a8f dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x6b73edc1 kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x6d344e1f dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0x7c3447dd dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0xa02905ed dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0xa3d14ef8 dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc989e6f5 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xd2eeca15 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0xefb18a4b dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0xf3d4f217 dm_unregister_target +EXPORT_SYMBOL drivers/md/md-mod 0x0e5039d2 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x1c2b6ab4 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x34be9394 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x5cee7e3e md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x5e5d96d2 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x65b94667 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa1fcbdcb unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xb14e20e2 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xb3875355 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xba6ddc82 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xc54f38ef register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xcc79d2bd md_error +EXPORT_SYMBOL drivers/md/md-mod 0xce360e5d md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0xe48da229 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0xe60a4cb5 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xef83005c md_unregister_thread +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x86039110 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1dcaa0c8 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2f639468 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x76ba9a9a v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x95284709 v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9c7de443 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa9f23a39 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbdafa201 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbecd2858 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc369097d v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1f45082 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xed275428 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0x154c2b8d video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x4bedc90b video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x729c9bb4 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x85978bea video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xa3efadf5 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xa98da667 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xc2fe51be video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xf9e9cf17 video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0xfb1ee138 video_device_alloc +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03806ef7 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0bf9b208 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0fd5ca72 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1462e821 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x206a1d77 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x426df8bf mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5a1daf09 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5d5da292 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x72206c1b mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x91ca2889 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x95d14af1 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9e06cbfb mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa6c900ff mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb3bb7283 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb448d4b3 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbb556eda mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2536fed mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc3435045 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd846798f mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdb66479e mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe83590d2 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4d6ec71 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20c65fb7 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2d7af586 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x409c6f10 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5354edb6 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5a93951c mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x602bf465 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x691dadc4 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6cdec09d mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6dda5ea4 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x83a64f96 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xae4aac9e mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb0357eff mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0465239 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc205ced7 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc3da0cd9 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc4327246 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc833da0c mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd88c89ec mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdd97624b mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9e008b7 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xef762211 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf8f27d8e mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x02c1a73f i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x138a2f2a i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x253a1f82 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x27a910c0 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2cb00906 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x34f14037 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x46c8ca70 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x523cf9c8 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa197062c i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa47a12ed i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xab7a64c6 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbd5961b3 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc629eebd i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xca8a06ef i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcc0df814 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xef55579b i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf786e176 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfe940532 i2o_parm_table_get +EXPORT_SYMBOL drivers/misc/ioc4 0xe8f01aba ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xeec2a3d1 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0eeec075 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x15873906 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x17d421ca tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x19388821 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x27427085 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x2763331a tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x5b248784 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x71f982a4 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x7e29cc12 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x94e180c8 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe1848c66 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xfed63d34 tifm_free_adapter +EXPORT_SYMBOL drivers/net/8390 0x37c0ba43 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x73fd471b NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x8611fc1d ei_close +EXPORT_SYMBOL drivers/net/8390 0xe2206590 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xe33c30d1 ei_open +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x04043a04 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1e19338e cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2a450e34 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x329194eb cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x35545618 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6768c372 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x72ed093e t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x743c1f60 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x794684e3 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa14de6ae cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaaf56fb1 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb2b7ebaf cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc22e54fc cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc9e2e476 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdd9c4431 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xde553e8d cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/mii 0x1d36fcba mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x3d18dece mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x53dabb29 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xb312c361 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xccc4ab39 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xdbb41f95 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xe7874583 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xf824ea9b generic_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/fixed 0xe539069b fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/fixed 0xed8cbac3 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/libphy 0x0885db55 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x2e79c14d phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x363bbf14 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x38459ccd phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x483982f9 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0x49c386e9 phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x543e041a phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x651fd6f0 phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x749d5b54 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x75de0ab2 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x803c0565 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x87a06b1f genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x9b3e9449 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0xa8ac55b2 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0xacfcb67d phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0xb065d5e1 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xb361756a mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0xb5f982f3 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xbf1edb08 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xc4ec436f genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xc6411efa phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0xc9d911cb genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xd9cca826 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xe74e5ac5 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0xf421eff7 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0xf98b1286 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0xfcb68e71 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xfccfa8e8 phy_detach +EXPORT_SYMBOL drivers/net/ppp_generic 0x3d2f9e04 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x540c6801 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x5e344dae ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x65e6b5f9 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x71f06d94 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0xa338506d ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xbee3975c ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xf3ee3255 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xf850c85a ppp_input_error +EXPORT_SYMBOL drivers/net/pppox 0x0fd177eb register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xb529c977 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xcec5e077 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0xf9e95e8c mii_phy_probe +EXPORT_SYMBOL drivers/net/wireless/airo 0x6f24ae62 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x8b09a59c reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xcf77b9fa init_airo_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1a20b23a hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1fe7a10a hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2dbeb464 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x450c3b38 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b695b7b hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5001fadf hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x52eb344a hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x57e8b35f hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a5b932e hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x67c32f8d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6c2e2d13 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x79fe59a3 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7f55a924 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x80bf958c hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x86903355 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8c9a7ba0 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8e4fc866 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9770e270 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x99555c06 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa5d955a6 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa9c78c3e hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae0df77a hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb53dd63a prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc770cf4f hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcf365b6a hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd48e98ee hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe363b636 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf8ac7ad4 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x16774224 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x4c5792db orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x50f71ee0 __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x7aeb107c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x993cc0f8 __orinoco_down +EXPORT_SYMBOL drivers/parport/parport 0x0ad22b6d parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x16f60e7f parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x25c61aaf parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x356eb1bf parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x3b06eaa4 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x3f259dd6 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x47211e55 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5457cda3 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x56dbe5fb parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x65310d59 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x66c1d2dd parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x6a2d9c55 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x8737a496 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x8e81369e parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x912b51c0 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xa05a848b parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xa860d97e parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xa88ac9b6 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xa9043dff parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xac5cecb4 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xb2376892 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xb5c73e91 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xb7543b1b parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xc367706b parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xd99e0ba2 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xde45ab1c parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xe7b3ff7e parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xf0122ddc parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xf9f4610d parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xfb853e6d parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport_pc 0x317122fb parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xc07dce81 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x15266b5a pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x228f83f5 pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2aa3af3d cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2adf4555 pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x34ed3c36 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x398383f4 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6e49d065 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8b9b01f2 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8c8d86d2 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x91491a57 pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x959eacf9 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9d241ae5 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc4b942b9 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc61482b1 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcaf68501 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf5713202 pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf790dac2 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x003a1c44 pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0a7fa2f5 pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1c677c34 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1c702d02 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1e5ad0b5 destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x21bfa3dd pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2ee1af18 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3d3b5e84 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3f145713 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x40753428 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x59ecee74 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6a9f0ac7 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x76450bc9 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7edc2cee pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x97cbb47b pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa92bd897 pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb2d41052 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb6704b1b pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb67cb3dd pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc38fe41f pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc4f7e889 pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd337b8dd pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd33fd4b1 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd56f60b1 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe08e1018 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe5b32507 pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe7c82727 pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xebc8bea8 pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf4c0841c release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe448f70 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe7a3e17 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x257bd0b3 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/53c700 0x5175c0f0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0xbfa98c59 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0xe82ceaac NCR_700_release +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x1acdba12 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xadb7792f lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xcba5be39 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0cfb193e qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x580c73ec qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x59449220 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x93d4331b qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xfc63dbdc qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xfdc3b794 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/raid_class 0xd009c759 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xf7a9f712 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xf9c54aa0 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2a09080b scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x520cead0 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x582b9bbe fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x70010c6c fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7548c713 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x806ed1c0 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9dcfc088 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb4468250 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbef256fd scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd31d49ab fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe581b1e6 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0658158d sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x13ecec8c sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1a78185e sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x219329d2 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22690dcb sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x245939e5 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x403181a1 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x40870b95 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4b29676d sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ba340f8 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x50cc8b2d sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x59a72d29 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5d58f86b sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d9d6a73 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6ee1075f sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x71b2c93a sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x847dc8af sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84bd1191 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8d2b59a9 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb159acb0 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb3ba2c5b sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb6cd6ae sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6463aed sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf0584997 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf25b3922 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfbd04b84 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/ssb/ssb 0x0385f1b6 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x0474ce0e ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x08375da0 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x0cbb6e5b ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x1428f163 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1a193de3 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x1d5847fc ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x1e6f46f5 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x27683532 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x32492449 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x465ac473 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x55fdb664 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x91042710 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xb65121ae ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xb7e3d0b9 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/usb/core/usbcore 0x069a8bde usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0bdb2e5e usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1c8304e0 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1dfd6909 usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x200b89a9 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2b98b5bd usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3562f981 usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x358eeb9d usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3af09a21 usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3cf6dedf usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0x47005814 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4769357d usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x50a3e82b usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0x516cc717 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5239a6df usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x52c61a67 usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5bd4135d usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5ff5c6d0 usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x67cf01d1 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6800fb05 usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6843c305 usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x748e4f70 usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x780ba8b3 usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8346b146 usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x84038394 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8a889358 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8ab9df70 usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9b508c5b usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9cb48c61 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa12d5abf usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa3ce3f05 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa567793c usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa6699e19 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb0f865df usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb3a0ee37 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcb7ed726 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcc2603ef usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd179a5c2 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd665f2a7 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xda6793a1 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdbda7e42 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe4a94334 usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe9826617 usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xeb8c9db1 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xed914b1a usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf5711fd1 usb_string +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x01d3e019 sl811h_driver +EXPORT_SYMBOL drivers/video/backlight/backlight 0x028cc146 backlight_device_register +EXPORT_SYMBOL drivers/video/backlight/backlight 0x0759809e backlight_device_unregister +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb1297ce8 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xf0f1f2ea lcd_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x3a5c606c display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x41519cf2 display_device_unregister +EXPORT_SYMBOL drivers/video/output 0x7035f7b9 video_output_register +EXPORT_SYMBOL drivers/video/output 0x84d8ed0d video_output_unregister +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x620432cd w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb1fde828 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x50acce9a w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xe96a9bda w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x19bfc160 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x5160f555 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x55c37216 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x691170df configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x77363229 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7ed28868 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xa9c4c4cf config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xb379c422 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xcde0c075 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd38fb361 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd4b8aa22 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xee8fbf8d configfs_unregister_subsystem +EXPORT_SYMBOL fs/jbd/jbd 0x06a8395c journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x0c57c922 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x0e409bad journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x16f503b4 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x175b8753 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x1c2a206a log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x1ea8803d journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x24f1b10e journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x2e19a6dc journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x32ebb6e0 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x34340421 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x3768061e journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x3cfce18e journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x443703ff journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x51fef6db journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x5c4d8610 journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x5d9c7299 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0x62eb8c75 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x6a48975f journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0x712c0240 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0x71eff828 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x77f35c26 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x7ca2ce63 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x827a1cc1 journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x842be705 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x9ac23868 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xa083dd12 journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xa6a3c761 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0xb8302320 journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0xc6087f9a journal_start +EXPORT_SYMBOL fs/jbd/jbd 0xc8c7330e journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0xd1b2e9db journal_load +EXPORT_SYMBOL fs/jbd/jbd 0xd43ee306 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0xd6cfb66d journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0xe3129dc3 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xed41595e journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0xfec3c516 journal_get_write_access +EXPORT_SYMBOL fs/mbcache 0x20da49d6 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0x338fc66c mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x663ba669 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0x87ab4187 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0x94a56116 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xa99e06a2 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0xadc14311 mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0xc9d64375 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xf0ee15c3 mb_cache_entry_free +EXPORT_SYMBOL fs/nfsd/nfsd 0x0e195c1c nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x28fb929b nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/xfs/xfs 0x10d457ef xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x8ffdb3b8 crc16 +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x2329b292 crc32c_be +EXPORT_SYMBOL lib/libcrc32c 0x37d0b921 crc32c_le +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x4c435c8f register_8022_client +EXPORT_SYMBOL net/802/p8022 0x527792e7 unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x04f82f01 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x30ff14f4 register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x00edb1f0 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x08c57076 p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x0a5199c3 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x1a4220a0 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x23133119 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3bfaf8dc p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x3c091509 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x591ffa61 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x5c325650 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x66bde25c p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x6f964689 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x89311384 p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0x8cd62384 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x8da8c05e p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0xa0a0d165 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xb25e53f2 p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xb9602256 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xba952cfc p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xcc90e709 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xcdc15934 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xd80b7a0f p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xd9856bf2 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xdc7e1132 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xe00e0e61 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe72860e1 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xf3e96de4 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xfa1d8f26 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/bridge/bridge 0xdaa76045 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x06ad75a9 ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x14c25ee0 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x3f1f3624 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x48eb53cd ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4a281a35 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8fa47517 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x957d5ba1 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc1e104ec ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd36a5c29 ebt_register_watcher +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0105bdf1 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0x09260ee3 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0x108bb221 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x1636a925 ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0x18402f7a ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x1b825722 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x22fd3421 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x5bc4b804 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6375982e ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x8e3b22dd ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x93009476 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x9d89ecf0 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb85c0cc6 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd59f1d83 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xda02e692 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xdf82b9f5 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf8c806dc ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfc81eb87 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfe6be0ee ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x11bcecd2 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x526102da ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x7855a80f ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x9a13ff66 ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xc11bbae6 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xe0d315d7 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ipv4/inet_lro 0x142a46ee lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0x34c9ba96 lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x4a6e1df1 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0x582b5e44 lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xc27f36d7 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xec417866 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x07b1a027 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x2e5d02ef arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xed9c3a89 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x37a07af1 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc90356aa ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf135cef0 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0d246369 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x10ee05a5 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1661e8c8 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x44f80992 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x552969de nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6e76c87f nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7cfe91aa nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x81e51398 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xb3723fa3 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xf0ed413a xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x00090526 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x041ac12e ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x05d8e749 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x064a9df5 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x0aec670b ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x13a46c81 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x1a909fff ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x2cb30569 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x2d55d469 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x483953db xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x48a6b25a ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x5e745856 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x64d19289 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x724abc01 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x78dcc515 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x83d92964 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x88eb7b17 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x8bf0acad inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x8f14197f ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x9667e959 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x9fff62f0 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xb67f7c42 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xcb106696 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd4c397ee nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0xd6fac967 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xef904f59 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0xf8b224dc rt6_lookup +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x039a910f ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2f6fe636 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8c019da0 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb0d12b7d ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x735c7a74 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x8da15fda xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/llc/llc 0x37e5307a llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x4a9bc2f4 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL net/llc/llc 0x6085038c llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x8286baf1 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x9f02e3b8 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xa20dc1a1 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xb6f4d14d llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xe274a26a llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/mac80211/mac80211 0x01f7aeca ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x03b9c25f ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x04539dce ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1c683733 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1f58bb64 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x373b1a00 ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4022b2d7 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x4498587f __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x4c2689e0 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x4d252b04 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x53774ee4 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x540b02aa ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x63027365 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x655e54fa ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6a55a8dc ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x723e6e15 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7ddaa9a9 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x81ac0ed4 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x82df7323 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8c48b7ff sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0x8dc42cdc ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x8df1c9ae ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x9fd03b19 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xa2d15d73 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xac7b5f6c ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb97095f2 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd699ce7f ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xe52d4bda __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xea927fee __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xf021a0bb ieee80211_rts_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x003ac427 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa5f6e66e __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x18f6b8ca xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2076d245 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x26454d99 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2902ec31 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6357eb52 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x730b902a xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8061f352 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x8a3e72a4 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb29657bd xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb67dcc20 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xbf979226 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xf3ac9a57 xt_register_matches +EXPORT_SYMBOL net/rfkill/rfkill 0x0e4f7b5c rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0x47461b91 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x77fe6755 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x888f6dd2 rfkill_register +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2935a296 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2cdcf7f7 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x40459271 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7185969b rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x86faa356 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x89807cf1 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8e2bd2d9 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa7cd3bb1 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xba2e63f9 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc190b60f rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc73ef87a rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1bf881d rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd97bfef5 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe161c17d rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe24600c1 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0be20b3f tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x22e8fdb0 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x32bac4e4 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3814d116 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3fbf1b20 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x485529b6 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x4bcfc901 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5ab6def4 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x83cd9bd8 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa4f9819a tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xc5853d06 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xc6e8f3ae tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xc7b5d905 tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xfb323507 tipc_continue +EXPORT_SYMBOL net/wireless/cfg80211 0x00989bf4 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x0cd97401 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x93bda206 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xb71dbd73 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x00217a39 sk_dst_check +EXPORT_SYMBOL vmlinux 0x00425cf6 ida_init +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00962ce3 follow_down +EXPORT_SYMBOL vmlinux 0x0098df66 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x00c014b1 rpc_call_null +EXPORT_SYMBOL vmlinux 0x00c3c6d8 xdr_reserve_space +EXPORT_SYMBOL vmlinux 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL vmlinux 0x00c69f4b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x00e52c47 flush_signals +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0103a4ce arp_broken_ops +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x010de014 dput +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01386402 input_event +EXPORT_SYMBOL vmlinux 0x014ffee8 bio_copy_user +EXPORT_SYMBOL vmlinux 0x01520770 d_delete +EXPORT_SYMBOL vmlinux 0x0176d998 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a8f44e request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x024ac4a1 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x02552810 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x025da070 snprintf +EXPORT_SYMBOL vmlinux 0x02633d82 sock_no_listen +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0275e203 inet_frag_find +EXPORT_SYMBOL vmlinux 0x0280458a spi_release_transport +EXPORT_SYMBOL vmlinux 0x02a01458 $$divI_3 +EXPORT_SYMBOL vmlinux 0x02c2e943 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x02d3a7eb d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x02f4860d blk_recount_segments +EXPORT_SYMBOL vmlinux 0x03072f1b seq_putc +EXPORT_SYMBOL vmlinux 0x0322234d __scm_send +EXPORT_SYMBOL vmlinux 0x03279d0a mempool_alloc +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038ddce0 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x03992ae0 vfs_symlink +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03c0f882 tty_register_device +EXPORT_SYMBOL vmlinux 0x03d5461c _read_lock_bh +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0423a8ab pdc_stable_write +EXPORT_SYMBOL vmlinux 0x042709e8 _write_lock_irq +EXPORT_SYMBOL vmlinux 0x042808fd pneigh_lookup +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x045d9890 __scm_destroy +EXPORT_SYMBOL vmlinux 0x046f1b43 bdi_init +EXPORT_SYMBOL vmlinux 0x04708e29 input_grab_device +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04b10ebc __devm_release_region +EXPORT_SYMBOL vmlinux 0x04ba6959 module_refcount +EXPORT_SYMBOL vmlinux 0x04c8945a sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05204d8d netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x05231df3 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x05235379 generic_setxattr +EXPORT_SYMBOL vmlinux 0x052b2967 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0x055a618e fb_show_logo +EXPORT_SYMBOL vmlinux 0x056e3d75 read_dev_sector +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058d80d4 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x05ab4e32 sock_rfree +EXPORT_SYMBOL vmlinux 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061a5b66 may_umount +EXPORT_SYMBOL vmlinux 0x064ebcc2 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL vmlinux 0x065ac1e9 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x066ecc17 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x067903f4 proc_root_fs +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06824fc2 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x068c26a7 mpage_writepage +EXPORT_SYMBOL vmlinux 0x068dd1a6 bdget +EXPORT_SYMBOL vmlinux 0x06c56b2b dev_alloc_name +EXPORT_SYMBOL vmlinux 0x06cd622b block_write_begin +EXPORT_SYMBOL vmlinux 0x06eb4df9 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x06ee0ccb sk_run_filter +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0706350d gss_mech_get +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x076b0c5f pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b908aa inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07dce943 stop_tty +EXPORT_SYMBOL vmlinux 0x07f32464 rpc_wake_up +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x085e2d17 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x086d211e kobject_unregister +EXPORT_SYMBOL vmlinux 0x08aea11c skb_checksum +EXPORT_SYMBOL vmlinux 0x08fa4c5d notify_change +EXPORT_SYMBOL vmlinux 0x09143039 release_sock +EXPORT_SYMBOL vmlinux 0x0920f72f pci_select_bars +EXPORT_SYMBOL vmlinux 0x092f4fbc put_filp +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095ebcc4 _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x0980e912 devm_ioremap +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09b318f3 blk_init_queue +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09f9ff76 may_umount_tree +EXPORT_SYMBOL vmlinux 0x0a133f23 elevator_init +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3021db elevator_exit +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a322f88 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x0a8481f6 kset_register +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0a9f9e60 vfs_read +EXPORT_SYMBOL vmlinux 0x0ab74952 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x0ab79655 fd_install +EXPORT_SYMBOL vmlinux 0x0abe6b0c simple_statfs +EXPORT_SYMBOL vmlinux 0x0ac8ad42 auth_domain_put +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b28b065 poll_initwait +EXPORT_SYMBOL vmlinux 0x0b64cf5d rpc_wake_up_status +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7907a4 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x0bacd87c path_release +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bc051bb xdr_inline_decode +EXPORT_SYMBOL vmlinux 0x0bd29a1e xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x0be089d7 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x0c397ea0 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c757b48 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0cc11e96 filemap_flush +EXPORT_SYMBOL vmlinux 0x0cc9d084 km_state_expired +EXPORT_SYMBOL vmlinux 0x0ce18810 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x0cf8df64 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x0d2597d6 cpu_present_map +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d7411b2 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0df1b1bd truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x0e40f0f7 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x0e459919 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x0e637f29 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x0e961600 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0ead5073 vscnprintf +EXPORT_SYMBOL vmlinux 0x0eadda56 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x0ecd1b8f input_open_device +EXPORT_SYMBOL vmlinux 0x0efd8156 rpc_execute +EXPORT_SYMBOL vmlinux 0x0f05ede1 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x0f0afb46 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x0f1ef871 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x0f209092 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0f23f015 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x0f305db2 freeze_bdev +EXPORT_SYMBOL vmlinux 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL vmlinux 0x0f683670 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x0fbb1b47 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x0fcae908 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x0fd7b5bd dev_load +EXPORT_SYMBOL vmlinux 0x0ff86ee8 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x10097ed0 mutex_lock +EXPORT_SYMBOL vmlinux 0x103a7644 scsi_device_get +EXPORT_SYMBOL vmlinux 0x10705c22 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10902bf7 insb +EXPORT_SYMBOL vmlinux 0x109ab564 scsi_host_put +EXPORT_SYMBOL vmlinux 0x10a8845a dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x10adabc0 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x10af5da3 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x10e5a560 complete_and_exit +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x111bcb2c groups_free +EXPORT_SYMBOL vmlinux 0x111fc2ee ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1128faf1 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x113f847c _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x1159f86b pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11666567 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x11a72515 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x11dbde0a sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x1200b210 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x1228329d pdc_stable_verify_contents +EXPORT_SYMBOL vmlinux 0x123007bf down_write_trylock +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x1297433d schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x1297b2bc proc_root_driver +EXPORT_SYMBOL vmlinux 0x12d32f74 noop_qdisc +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL vmlinux 0x12ea337e outsb +EXPORT_SYMBOL vmlinux 0x12f92f37 seq_open_private +EXPORT_SYMBOL vmlinux 0x12fa180d __cmpxchg_u32 +EXPORT_SYMBOL vmlinux 0x12fb5fd1 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x13298b64 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x134833b7 pci_set_master +EXPORT_SYMBOL vmlinux 0x1361bbc9 devm_request_irq +EXPORT_SYMBOL vmlinux 0x13639faf iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x137145ae inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1378ea3f kmem_cache_free +EXPORT_SYMBOL vmlinux 0x13ba19b4 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x13de6228 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x14136adf xdr_init_decode +EXPORT_SYMBOL vmlinux 0x14194778 default_llseek +EXPORT_SYMBOL vmlinux 0x141b0bc1 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x142f14c4 __elv_add_request +EXPORT_SYMBOL vmlinux 0x14485e55 xdr_process_buf +EXPORT_SYMBOL vmlinux 0x144c38fa request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x14c29c82 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15d796c8 seq_path +EXPORT_SYMBOL vmlinux 0x16965077 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x16a2b692 vc_cons +EXPORT_SYMBOL vmlinux 0x16c0a8b6 d_splice_alias +EXPORT_SYMBOL vmlinux 0x16cd108f udp_disconnect +EXPORT_SYMBOL vmlinux 0x16e97729 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x16ee959b netif_rx +EXPORT_SYMBOL vmlinux 0x1708d66b blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x1737f859 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x17403878 tty_name +EXPORT_SYMBOL vmlinux 0x1764f8d4 fb_pan_display +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17c866d0 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x1814f405 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x185be0de sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x18659af2 kobject_put +EXPORT_SYMBOL vmlinux 0x18d3bcb1 generic_readlink +EXPORT_SYMBOL vmlinux 0x18f12cb8 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x1929269e simple_write_end +EXPORT_SYMBOL vmlinux 0x192f696a scsi_register_driver +EXPORT_SYMBOL vmlinux 0x19473d11 drop_super +EXPORT_SYMBOL vmlinux 0x195cb7c6 is_container_init +EXPORT_SYMBOL vmlinux 0x1961a2ee rpc_proc_register +EXPORT_SYMBOL vmlinux 0x1992c767 pci_choose_state +EXPORT_SYMBOL vmlinux 0x199b701e inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b623f9 __down_read_trylock +EXPORT_SYMBOL vmlinux 0x19cf280d dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x1a2a750b cdev_add +EXPORT_SYMBOL vmlinux 0x1a3d946e vfs_readdir +EXPORT_SYMBOL vmlinux 0x1a81be3f d_rehash +EXPORT_SYMBOL vmlinux 0x1a876130 con_is_bound +EXPORT_SYMBOL vmlinux 0x1a8acb80 vmap +EXPORT_SYMBOL vmlinux 0x1a8b5306 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x1aa21df5 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x1ab7122a inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x1ac2ee0f gss_pseudoflavor_to_service +EXPORT_SYMBOL vmlinux 0x1ac6e173 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad571e8 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x1addc0cc scsi_get_command +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b20de3d register_key_type +EXPORT_SYMBOL vmlinux 0x1b2c49bd end_dequeued_request +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b8c9c83 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x1b916981 __devm_request_region +EXPORT_SYMBOL vmlinux 0x1b926b07 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9bbea4 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb0bbea tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x1bc0b8f3 free_buffer_head +EXPORT_SYMBOL vmlinux 0x1bd70a82 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x1bd8597c mempool_create_node +EXPORT_SYMBOL vmlinux 0x1c16d902 skb_under_panic +EXPORT_SYMBOL vmlinux 0x1c5fddcf fixup_put_user_skip_2 +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c85954a simple_sync_file +EXPORT_SYMBOL vmlinux 0x1ca93fcd remap_pfn_range +EXPORT_SYMBOL vmlinux 0x1cc5d50a kill_pgrp +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cdb9164 permission +EXPORT_SYMBOL vmlinux 0x1d0ffa54 __kill_fasync +EXPORT_SYMBOL vmlinux 0x1d1ed1d2 d_lookup +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d26fb80 add_disk +EXPORT_SYMBOL vmlinux 0x1d3944bc xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x1d4ebd7c dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x1d527c36 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x1d55c4b4 xdr_inline_pages +EXPORT_SYMBOL vmlinux 0x1d5a7c81 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x1d73adf1 $global$ +EXPORT_SYMBOL vmlinux 0x1d87d421 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x1d94c0b2 tcf_register_action +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e1c086e brioctl_set +EXPORT_SYMBOL vmlinux 0x1e38e5fa get_disk +EXPORT_SYMBOL vmlinux 0x1e4aa23d tty_vhangup +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e83765c dget_locked +EXPORT_SYMBOL vmlinux 0x1eaab767 pci_find_capability +EXPORT_SYMBOL vmlinux 0x1eac02e4 up_write +EXPORT_SYMBOL vmlinux 0x1ecb9943 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x1ece21b1 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x1ee34036 vfs_llseek +EXPORT_SYMBOL vmlinux 0x1f219bb0 $$divU_14 +EXPORT_SYMBOL vmlinux 0x1f25e271 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x1f316167 d_alloc_name +EXPORT_SYMBOL vmlinux 0x1f740057 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x1fa6c0eb put_files_struct +EXPORT_SYMBOL vmlinux 0x1fa914e1 seq_puts +EXPORT_SYMBOL vmlinux 0x1faf7382 clear_inode +EXPORT_SYMBOL vmlinux 0x1fb36075 bdi_destroy +EXPORT_SYMBOL vmlinux 0x1fd97ed8 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x1fdbd16e tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x1ff89d0a pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x206ff15a kill_pid +EXPORT_SYMBOL vmlinux 0x209df05f rpc_killall_tasks +EXPORT_SYMBOL vmlinux 0x20a94a2d ip_fragment +EXPORT_SYMBOL vmlinux 0x20c0bd90 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x20cc137d xfrm_state_update +EXPORT_SYMBOL vmlinux 0x20d1f590 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x20d69712 rpc_wake_up_next +EXPORT_SYMBOL vmlinux 0x21325f20 sti_get_rom +EXPORT_SYMBOL vmlinux 0x217915dc blk_remove_plug +EXPORT_SYMBOL vmlinux 0x2179c295 make_bad_inode +EXPORT_SYMBOL vmlinux 0x21a14e47 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x21bb8dcc sk_receive_skb +EXPORT_SYMBOL vmlinux 0x21bc887c blk_insert_request +EXPORT_SYMBOL vmlinux 0x21c1455c flush_data_cache_local +EXPORT_SYMBOL vmlinux 0x21cf83c0 open_bdev_excl +EXPORT_SYMBOL vmlinux 0x2209d417 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x220c9547 uart_register_driver +EXPORT_SYMBOL vmlinux 0x221573ed rpc_alloc_iostats +EXPORT_SYMBOL vmlinux 0x2230dcef rpcauth_register +EXPORT_SYMBOL vmlinux 0x224553c1 vfs_statfs +EXPORT_SYMBOL vmlinux 0x227329d7 ip_dev_find +EXPORT_SYMBOL vmlinux 0x2283635e unregister_filesystem +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22c26a55 outl +EXPORT_SYMBOL vmlinux 0x22d79cb1 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x22e397b7 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x22fabeec file_fsync +EXPORT_SYMBOL vmlinux 0x23294d43 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x23318668 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x2368ee89 nfsacl_decode +EXPORT_SYMBOL vmlinux 0x2398dd8c clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23b17093 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x23d5f2b0 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x23ecf776 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2406afdd cpu_possible_map +EXPORT_SYMBOL vmlinux 0x240f446a take_over_console +EXPORT_SYMBOL vmlinux 0x2461948c blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x24bd930a outsl +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250680ca vfs_writev +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25882a5f page_follow_link_light +EXPORT_SYMBOL vmlinux 0x25986ebd struct_module +EXPORT_SYMBOL vmlinux 0x25b0c0aa netlink_broadcast +EXPORT_SYMBOL vmlinux 0x25e6ee08 __bread +EXPORT_SYMBOL vmlinux 0x267255d9 pci_remove_rom +EXPORT_SYMBOL vmlinux 0x2676f1df skb_copy +EXPORT_SYMBOL vmlinux 0x267fc65b __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x268b74cc vfs_create +EXPORT_SYMBOL vmlinux 0x269a1b9f set_device_ro +EXPORT_SYMBOL vmlinux 0x26eb7708 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x26efc255 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x26f7f79a pdc_tod_read +EXPORT_SYMBOL vmlinux 0x26fb4656 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x270e284f nf_afinfo +EXPORT_SYMBOL vmlinux 0x27269eb4 mempool_create +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x274d4911 sk_stream_error +EXPORT_SYMBOL vmlinux 0x27535271 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x276334a1 module_remove_driver +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27b18aa9 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x27b3a56e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x2801c3a8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x280f9f14 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x281be83a xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x282ea77c vm_insert_page +EXPORT_SYMBOL vmlinux 0x286bea97 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x28721c5a bdevname +EXPORT_SYMBOL vmlinux 0x28756573 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x288eee10 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x28afa777 scsi_put_command +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f35813 scnprintf +EXPORT_SYMBOL vmlinux 0x28fb3639 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x293be03c svcauth_unix_set_client +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2958d34e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x29598183 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x296b977c scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x298a6bb1 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x299ebc35 _spin_unlock +EXPORT_SYMBOL vmlinux 0x29ae3208 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x29eaa88f _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x29fe2400 dcache_stride +EXPORT_SYMBOL vmlinux 0x2a0267ce __alloc_skb +EXPORT_SYMBOL vmlinux 0x2a0cc039 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x2a2ea250 page_put_link +EXPORT_SYMBOL vmlinux 0x2a3e9255 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x2a46efa4 register_netdev +EXPORT_SYMBOL vmlinux 0x2a6fb1c7 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x2a79be54 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x2a91816c ___pskb_trim +EXPORT_SYMBOL vmlinux 0x2a9fb25f bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL vmlinux 0x2ab9a126 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x2ac8394b generic_read_dir +EXPORT_SYMBOL vmlinux 0x2ad7f72c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x2af682ee __napi_schedule +EXPORT_SYMBOL vmlinux 0x2afc6135 wake_up_process +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b239e2b unregister_parisc_driver +EXPORT_SYMBOL vmlinux 0x2b5a2f9c bit_waitqueue +EXPORT_SYMBOL vmlinux 0x2b65b9ec dentry_unhash +EXPORT_SYMBOL vmlinux 0x2b737a92 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x2b98c6d0 __pagevec_release +EXPORT_SYMBOL vmlinux 0x2ba353a2 unlock_page +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bdafa06 bio_endio +EXPORT_SYMBOL vmlinux 0x2bebf212 filp_close +EXPORT_SYMBOL vmlinux 0x2beec627 add_wait_queue +EXPORT_SYMBOL vmlinux 0x2bf9a521 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x2c1d0b79 $$divU_3 +EXPORT_SYMBOL vmlinux 0x2c353080 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x2c380d45 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2c3c26cf __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x2c41e34f generic_commit_write +EXPORT_SYMBOL vmlinux 0x2c59fe39 find_vma +EXPORT_SYMBOL vmlinux 0x2c77150d sync_inode +EXPORT_SYMBOL vmlinux 0x2cc1e5e5 read_cache_pages +EXPORT_SYMBOL vmlinux 0x2cd01e0f do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d138516 d_path +EXPORT_SYMBOL vmlinux 0x2d17fa58 kfifo_init +EXPORT_SYMBOL vmlinux 0x2d31e012 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x2d4ba13f sock_wfree +EXPORT_SYMBOL vmlinux 0x2d87bb41 tcp_poll +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2dad5880 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x2db812cb generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x2dc71ca2 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x2dd23abe page_readlink +EXPORT_SYMBOL vmlinux 0x2de645e8 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2e250a9e d_alloc_root +EXPORT_SYMBOL vmlinux 0x2e3756c1 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x2e5c02e4 d_genocide +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e70f645 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x2e72ba12 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x2e75d28a __wait_on_bit +EXPORT_SYMBOL vmlinux 0x2e83e317 cache_unregister +EXPORT_SYMBOL vmlinux 0x2e973125 rpcauth_create +EXPORT_SYMBOL vmlinux 0x2e97b376 svc_drop +EXPORT_SYMBOL vmlinux 0x2eabd659 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x2eb338be pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL vmlinux 0x2ef3eab1 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f2b99be netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x2f2eb089 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x2f32f1df prepare_to_wait +EXPORT_SYMBOL vmlinux 0x2f5b5884 current_fs_time +EXPORT_SYMBOL vmlinux 0x2f6bae8d pagevec_lookup +EXPORT_SYMBOL vmlinux 0x2f937fdb scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x2fa2fa5f xfrm_register_km +EXPORT_SYMBOL vmlinux 0x2faaa2a0 xdr_enter_page +EXPORT_SYMBOL vmlinux 0x2fca3e06 cache_check +EXPORT_SYMBOL vmlinux 0x2fcf85b4 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2ff5599f neigh_table_init +EXPORT_SYMBOL vmlinux 0x3013bd33 lock_rename +EXPORT_SYMBOL vmlinux 0x30494f6f serio_reconnect +EXPORT_SYMBOL vmlinux 0x3049ec0c inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x307174cc bio_split_pool +EXPORT_SYMBOL vmlinux 0x307acde8 flush_kernel_icache_range_asm +EXPORT_SYMBOL vmlinux 0x308a1827 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x30955061 netif_device_attach +EXPORT_SYMBOL vmlinux 0x309e431e __inet6_hash +EXPORT_SYMBOL vmlinux 0x30cf89ce inet_frags_fini +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ec425b kthread_stop +EXPORT_SYMBOL vmlinux 0x3105cce8 inet_accept +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31358b74 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x313edf0d tty_unregister_device +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31a89d59 rpc_debug +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31b83087 register_console +EXPORT_SYMBOL vmlinux 0x31d13faa xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x3222257a dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x322ce3ba kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x322e9944 pci_dev_get +EXPORT_SYMBOL vmlinux 0x3254c4de svc_create +EXPORT_SYMBOL vmlinux 0x326abd3e pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x328f4a4c blk_put_queue +EXPORT_SYMBOL vmlinux 0x32917217 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x329a3f0b redraw_screen +EXPORT_SYMBOL vmlinux 0x32c42101 neigh_destroy +EXPORT_SYMBOL vmlinux 0x32c4ca5e unix_domain_find +EXPORT_SYMBOL vmlinux 0x32ed80ce blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x331a321b lease_modify +EXPORT_SYMBOL vmlinux 0x3321e767 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x333c4f92 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x33670475 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x337020ce netif_rx_ni +EXPORT_SYMBOL vmlinux 0x33934162 release_firmware +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33de5f6f __next_cpu +EXPORT_SYMBOL vmlinux 0x34153284 gss_decrypt_xdr_buf +EXPORT_SYMBOL vmlinux 0x3457cc5a end_queued_request +EXPORT_SYMBOL vmlinux 0x345dd3f9 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x3460ae03 simple_fill_super +EXPORT_SYMBOL vmlinux 0x347a5b8a remove_arg_zero +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x34999bf8 flush_kernel_dcache_page_addr +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a267a4 kobject_del +EXPORT_SYMBOL vmlinux 0x34e34619 scsi_host_get +EXPORT_SYMBOL vmlinux 0x34e9ee18 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x34eba23a dev_add_pack +EXPORT_SYMBOL vmlinux 0x350f14fd tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x35285707 __kfifo_put +EXPORT_SYMBOL vmlinux 0x35524093 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x357bf5ae blk_start_queueing +EXPORT_SYMBOL vmlinux 0x35baff6f arp_create +EXPORT_SYMBOL vmlinux 0x35fe80a3 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360c6bdd register_nls +EXPORT_SYMBOL vmlinux 0x362fff2c rpc_sleep_on +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x365a76ac sk_reset_timer +EXPORT_SYMBOL vmlinux 0x36601543 keyring_search +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x3688ee50 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x369f39eb tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x36d28824 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x36d6778b __find_get_block +EXPORT_SYMBOL vmlinux 0x37257605 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x373eb062 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x3777d5f5 rpc_exit_task +EXPORT_SYMBOL vmlinux 0x378ba740 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x37a8c3d6 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c1e03e hwpath_to_device +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x386f1480 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x3883b3f6 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x388c92e5 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x3895ac94 textsearch_register +EXPORT_SYMBOL vmlinux 0x38a71c86 block_sync_page +EXPORT_SYMBOL vmlinux 0x38b1b12d gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38ea1281 vfs_write +EXPORT_SYMBOL vmlinux 0x396dc8de end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39d102eb sock_sendmsg +EXPORT_SYMBOL vmlinux 0x39db404f write_cache_pages +EXPORT_SYMBOL vmlinux 0x39e25be6 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x39e80976 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x3a03c5b2 fb_get_mode +EXPORT_SYMBOL vmlinux 0x3a180b69 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a3c0f96 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x3a456c00 $$divU +EXPORT_SYMBOL vmlinux 0x3a6b5793 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x3a753373 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x3a8f3706 bio_hw_segments +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab9ed3f xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x3ac00cb3 filemap_fault +EXPORT_SYMBOL vmlinux 0x3ac214f4 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x3adc15b9 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x3ae5b842 __down_write_trylock +EXPORT_SYMBOL vmlinux 0x3ae712a6 mempool_resize +EXPORT_SYMBOL vmlinux 0x3ae831b6 kref_init +EXPORT_SYMBOL vmlinux 0x3b1fe7eb uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x3b4396be nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x3b642fe4 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x3b66604d bio_add_page +EXPORT_SYMBOL vmlinux 0x3b81af02 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x3bc7dc42 rpc_unlink +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd492b7 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x3c01b19a posix_lock_file +EXPORT_SYMBOL vmlinux 0x3c059b53 bio_map_kern +EXPORT_SYMBOL vmlinux 0x3c512671 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x3c579f8d nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cbc2704 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf39481 sget +EXPORT_SYMBOL vmlinux 0x3cfc038f scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x3d55e60e neigh_event_ns +EXPORT_SYMBOL vmlinux 0x3d68bd4b flow_cache_genid +EXPORT_SYMBOL vmlinux 0x3d7e70e2 blk_init_tags +EXPORT_SYMBOL vmlinux 0x3d80ba0e scsi_register +EXPORT_SYMBOL vmlinux 0x3db4b567 __seq_open_private +EXPORT_SYMBOL vmlinux 0x3dbe2ca4 skb_seq_read +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e783fd4 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x3e833893 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x3ed59f3d mnt_pin +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0f02b2 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4b85cc blk_sync_queue +EXPORT_SYMBOL vmlinux 0x3f5a95aa bd_set_size +EXPORT_SYMBOL vmlinux 0x3f794a09 __rpc_wait_for_completion_task +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3ff05d6d per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400db841 device_to_hwpath +EXPORT_SYMBOL vmlinux 0x401740cf tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x401af7f8 get_io_context +EXPORT_SYMBOL vmlinux 0x40342e44 mpage_writepages +EXPORT_SYMBOL vmlinux 0x40454d09 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x404bb161 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4064e79c __scsi_put_command +EXPORT_SYMBOL vmlinux 0x406e4c3e posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x4086e942 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40e71daf xdr_read_pages +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x40f972f8 kernel_accept +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41823f57 eth_header +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41aec2f0 tty_check_change +EXPORT_SYMBOL vmlinux 0x41d93dfb __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x42098cba tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x420de6d1 dcache_lock +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42234110 inode_change_ok +EXPORT_SYMBOL vmlinux 0x42401165 skb_make_writable +EXPORT_SYMBOL vmlinux 0x426b0fa9 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x42784074 input_register_handle +EXPORT_SYMBOL vmlinux 0x42bee035 generic_writepages +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4305ebd3 $$remU +EXPORT_SYMBOL vmlinux 0x4311cdc4 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x434148f2 dst_destroy +EXPORT_SYMBOL vmlinux 0x4345fb29 sock_no_poll +EXPORT_SYMBOL vmlinux 0x434bb920 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43bdd372 request_resource +EXPORT_SYMBOL vmlinux 0x43d9ba81 sock_release +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x4422ef91 register_parisc_driver +EXPORT_SYMBOL vmlinux 0x4426e5c4 __breadahead +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444b6fd7 blk_complete_request +EXPORT_SYMBOL vmlinux 0x449f178b proc_symlink +EXPORT_SYMBOL vmlinux 0x44a030dc rpcauth_init_cred +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c46850 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x44c68a3d pci_release_region +EXPORT_SYMBOL vmlinux 0x44d2466e scsi_device_resume +EXPORT_SYMBOL vmlinux 0x44f15bc1 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x44f57ba1 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45ba4cea xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x45d7b394 bio_free +EXPORT_SYMBOL vmlinux 0x45e17a33 get_empty_filp +EXPORT_SYMBOL vmlinux 0x4627f115 proc_dostring +EXPORT_SYMBOL vmlinux 0x462c739b scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x469bdd33 __kfree_skb +EXPORT_SYMBOL vmlinux 0x46bd31b8 input_free_device +EXPORT_SYMBOL vmlinux 0x46e6ce73 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x473a4745 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x47436e3d tty_set_operations +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47670c0a proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x47890649 kernel_bind +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47c68a53 mutex_unlock +EXPORT_SYMBOL vmlinux 0x47e0ef41 seq_escape +EXPORT_SYMBOL vmlinux 0x4802d7e1 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x48113fd7 nobh_write_end +EXPORT_SYMBOL vmlinux 0x48219661 down_write +EXPORT_SYMBOL vmlinux 0x48242256 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x483b35b8 complete_request_key +EXPORT_SYMBOL vmlinux 0x48668f8d xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x48a80214 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x48bf3e1c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x48e28afb lock_may_read +EXPORT_SYMBOL vmlinux 0x48f07026 key_create_or_update +EXPORT_SYMBOL vmlinux 0x493dc1ef inw +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x49da34d4 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x49da6f24 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x49eea7ac load_nls +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3a2567 __page_symlink +EXPORT_SYMBOL vmlinux 0x4a41f3db kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x4a53856d key_task_permission +EXPORT_SYMBOL vmlinux 0x4a772171 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x4a7ed458 blk_get_queue +EXPORT_SYMBOL vmlinux 0x4a85422a __bforget +EXPORT_SYMBOL vmlinux 0x4a8ec2f4 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4ac65eb4 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x4ad406b7 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x4ada41be sock_wmalloc +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b00cc66 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x4b2d8a4a _read_lock_irq +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b61868c nonseekable_open +EXPORT_SYMBOL vmlinux 0x4b8e13a0 simple_link +EXPORT_SYMBOL vmlinux 0x4bace58f input_close_device +EXPORT_SYMBOL vmlinux 0x4bb1877b touch_atime +EXPORT_SYMBOL vmlinux 0x4bba1ed3 sk_free +EXPORT_SYMBOL vmlinux 0x4bbba760 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x4bea03dd fsync_bdev +EXPORT_SYMBOL vmlinux 0x4bfa344b bd_release +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c26e956 km_waitq +EXPORT_SYMBOL vmlinux 0x4c3af445 __request_region +EXPORT_SYMBOL vmlinux 0x4c5bf9b1 scsi_alloc_sgtable +EXPORT_SYMBOL vmlinux 0x4c9c685f mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x4caa3e40 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x4cb7911c set_binfmt +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cecd00d auth_domain_lookup +EXPORT_SYMBOL vmlinux 0x4d047371 __down_interruptible +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4db4e515 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x4dbd2cca set_blocksize +EXPORT_SYMBOL vmlinux 0x4dc2318f bio_put +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4de94a18 kthread_bind +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4dedeb3a sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e0a4bb5 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x4e0d0517 ipv4_specific +EXPORT_SYMBOL vmlinux 0x4e10f9d0 km_policy_notify +EXPORT_SYMBOL vmlinux 0x4e277d04 cache_purge +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e39922e inet_release +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e77f76b proc_dointvec +EXPORT_SYMBOL vmlinux 0x4e7bc574 __xchg8 +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e984725 unregister_console +EXPORT_SYMBOL vmlinux 0x4ea1e420 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x4ea73172 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x4f0261ce seq_open +EXPORT_SYMBOL vmlinux 0x4f30acec __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x4f5651c3 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x4f8b878b tty_hangup +EXPORT_SYMBOL vmlinux 0x4f995ad8 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x4fa233fe rtnl_unicast +EXPORT_SYMBOL vmlinux 0x4fd489dd tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x4ff3d7fa svc_create_pooled +EXPORT_SYMBOL vmlinux 0x4ffbbb42 generic_setlease +EXPORT_SYMBOL vmlinux 0x50095163 get_super +EXPORT_SYMBOL vmlinux 0x501fdaa8 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50383c12 rpc_wake_up_task +EXPORT_SYMBOL vmlinux 0x504c1aef pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x505907ed console_start +EXPORT_SYMBOL vmlinux 0x505d8558 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x5067e4ad zero_fill_bio +EXPORT_SYMBOL vmlinux 0x50829cdf tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51288f07 request_key +EXPORT_SYMBOL vmlinux 0x5145b54a scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x515a2bc9 d_invalidate +EXPORT_SYMBOL vmlinux 0x516fb209 gss_mech_unregister +EXPORT_SYMBOL vmlinux 0x51817c53 init_mm +EXPORT_SYMBOL vmlinux 0x5193548c dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x51a5bb00 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x51c6de76 d_instantiate +EXPORT_SYMBOL vmlinux 0x51cd47e2 groups_alloc +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f0035b __nla_put +EXPORT_SYMBOL vmlinux 0x51f5af92 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x523383f9 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x528f2ba2 sock_no_bind +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52cb8c69 iget5_locked +EXPORT_SYMBOL vmlinux 0x52d05b30 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x532c0531 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533903d8 outsw +EXPORT_SYMBOL vmlinux 0x534252ea soft_cursor +EXPORT_SYMBOL vmlinux 0x53445f68 nlm_debug +EXPORT_SYMBOL vmlinux 0x53622bb3 pdc_get_initiator +EXPORT_SYMBOL vmlinux 0x536636f1 $$divI_14 +EXPORT_SYMBOL vmlinux 0x53729d5f subsystem_register +EXPORT_SYMBOL vmlinux 0x53732efc alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x539e2b9c udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x53a00fcd pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d02c10 ida_destroy +EXPORT_SYMBOL vmlinux 0x53d815d8 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x53f1d56f blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x53f205c7 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x543b0850 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x544ebabf inet_frag_kill +EXPORT_SYMBOL vmlinux 0x546a19d4 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x546c5b71 tty_register_driver +EXPORT_SYMBOL vmlinux 0x548b9b65 kobject_register +EXPORT_SYMBOL vmlinux 0x54903b82 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0x549e1b1f __grab_cache_page +EXPORT_SYMBOL vmlinux 0x54cc8b6f xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54e9864f km_policy_expired +EXPORT_SYMBOL vmlinux 0x54fa2dd3 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x555a2dcf get_sb_bdev +EXPORT_SYMBOL vmlinux 0x557ecb6d blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a76dfc seq_release +EXPORT_SYMBOL vmlinux 0x55f9ec2a dev_remove_pack +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5632b09a __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5661ed3b scsi_add_host +EXPORT_SYMBOL vmlinux 0x568313e4 __up +EXPORT_SYMBOL vmlinux 0x5690b7ef mod_timer +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56df5407 sock_wake_async +EXPORT_SYMBOL vmlinux 0x570be115 rpc_restart_call +EXPORT_SYMBOL vmlinux 0x571a5caf inet_register_protosw +EXPORT_SYMBOL vmlinux 0x57228bd1 _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x572bd6ca try_to_release_page +EXPORT_SYMBOL vmlinux 0x5734662e sock_init_data +EXPORT_SYMBOL vmlinux 0x5734f4c2 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x573b4db1 gss_encrypt_xdr_buf +EXPORT_SYMBOL vmlinux 0x57914f0e rpc_call_async +EXPORT_SYMBOL vmlinux 0x57b8d504 lclear_user +EXPORT_SYMBOL vmlinux 0x57bf5f7e elv_rb_del +EXPORT_SYMBOL vmlinux 0x57c91b68 unlock_rename +EXPORT_SYMBOL vmlinux 0x5810b2a7 __down_read +EXPORT_SYMBOL vmlinux 0x581321cf search_binary_handler +EXPORT_SYMBOL vmlinux 0x581f99ce do_munmap +EXPORT_SYMBOL vmlinux 0x584b88ab vfs_getattr +EXPORT_SYMBOL vmlinux 0x5853c40b set_bh_page +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5877c381 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x588e8eb7 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x588f894b inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x58d282f6 lstrncpy_from_user +EXPORT_SYMBOL vmlinux 0x5913913a node_states +EXPORT_SYMBOL vmlinux 0x5921158a print_pa_hwpath +EXPORT_SYMBOL vmlinux 0x5927b026 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5968b1c3 unregister_netdev +EXPORT_SYMBOL vmlinux 0x597d72cb block_truncate_page +EXPORT_SYMBOL vmlinux 0x598d5c43 del_timer_sync +EXPORT_SYMBOL vmlinux 0x5995d7f3 __up_read +EXPORT_SYMBOL vmlinux 0x59a86302 do_splice_from +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59b7435f user_revoke +EXPORT_SYMBOL vmlinux 0x59c0635f udp_proc_register +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x5a0dd876 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x5a1d750a __brelse +EXPORT_SYMBOL vmlinux 0x5a2317a5 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x5a6b1a4c tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a80f626 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x5ab7b901 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x5ae83b6e scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x5b4db895 _spin_lock +EXPORT_SYMBOL vmlinux 0x5ba1fcbc pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x5bbab0e6 svc_auth_register +EXPORT_SYMBOL vmlinux 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL vmlinux 0x5be737e4 input_inject_event +EXPORT_SYMBOL vmlinux 0x5c0eccac pci_bus_type +EXPORT_SYMBOL vmlinux 0x5c3a5892 rpc_clone_client +EXPORT_SYMBOL vmlinux 0x5c579eaa pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x5cba10b9 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x5ccc7cff netdev_set_master +EXPORT_SYMBOL vmlinux 0x5ccd7174 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0x5d20f341 __lookup_hash +EXPORT_SYMBOL vmlinux 0x5d4aa73b $$divU_6 +EXPORT_SYMBOL vmlinux 0x5d7a71b6 no_llseek +EXPORT_SYMBOL vmlinux 0x5da9a6b1 give_up_console +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dc3b356 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e1664dd mpage_readpage +EXPORT_SYMBOL vmlinux 0x5e1a5585 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x5e2169fc tcp_unhash +EXPORT_SYMBOL vmlinux 0x5e44636a netif_carrier_off +EXPORT_SYMBOL vmlinux 0x5e851871 close_bdev_excl +EXPORT_SYMBOL vmlinux 0x5e8a0f1d sk_stop_timer +EXPORT_SYMBOL vmlinux 0x5e8df005 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x5eae7c0d load_nls_default +EXPORT_SYMBOL vmlinux 0x5eb66861 audit_log_format +EXPORT_SYMBOL vmlinux 0x5ee3d0ee dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x5ef2e131 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x5f06415f gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x5f0d9556 neigh_for_each +EXPORT_SYMBOL vmlinux 0x5f27ff83 rpc_init_task +EXPORT_SYMBOL vmlinux 0x5fb7a676 put_io_context +EXPORT_SYMBOL vmlinux 0x6004783d mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x602b72b3 update_region +EXPORT_SYMBOL vmlinux 0x603fb1bf blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x6047aabe blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x6048d540 xdr_write_pages +EXPORT_SYMBOL vmlinux 0x605237c9 rpc_run_task +EXPORT_SYMBOL vmlinux 0x606f6448 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x60757752 svc_authenticate +EXPORT_SYMBOL vmlinux 0x607a1847 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x607d5ffb tcp_check_req +EXPORT_SYMBOL vmlinux 0x6093248d ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2984a seq_printf +EXPORT_SYMBOL vmlinux 0x60cac9a4 gss_mech_register +EXPORT_SYMBOL vmlinux 0x60e998b6 datagram_poll +EXPORT_SYMBOL vmlinux 0x61152ce4 set_page_dirty +EXPORT_SYMBOL vmlinux 0x61157493 auth_unix_add_addr +EXPORT_SYMBOL vmlinux 0x61162f5c inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x616afc36 complete_all +EXPORT_SYMBOL vmlinux 0x6196487b skb_free_datagram +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c8a7f3 finish_wait +EXPORT_SYMBOL vmlinux 0x61cd6e7b xdr_encode_array2 +EXPORT_SYMBOL vmlinux 0x61d69f59 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x621b855c simple_prepare_write +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62d3250f kernel_read +EXPORT_SYMBOL vmlinux 0x62de9094 igrab +EXPORT_SYMBOL vmlinux 0x62f25b64 free_task +EXPORT_SYMBOL vmlinux 0x6309b890 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6316025c generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x635ab741 sync_blockdev +EXPORT_SYMBOL vmlinux 0x637c1fc4 km_state_notify +EXPORT_SYMBOL vmlinux 0x638d79ea hppa_dma_ops +EXPORT_SYMBOL vmlinux 0x63d5bb7d blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x63d8fca8 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6404f470 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x640a7078 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x641c8cd1 set_anon_super +EXPORT_SYMBOL vmlinux 0x64285846 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x647bfc27 inet_listen +EXPORT_SYMBOL vmlinux 0x648258e4 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x64923540 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649fb1a8 generic_write_end +EXPORT_SYMBOL vmlinux 0x64b67f69 lookup_one_len +EXPORT_SYMBOL vmlinux 0x64bc3ee2 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x64c417c8 rpc_delay +EXPORT_SYMBOL vmlinux 0x64e42bbb sock_kfree_s +EXPORT_SYMBOL vmlinux 0x64e9698f dev_set_mtu +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65449eb5 __netif_schedule +EXPORT_SYMBOL vmlinux 0x6546583f flush_old_exec +EXPORT_SYMBOL vmlinux 0x6551a06e scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x655e4acf xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x6560e73d page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x65873384 sunrpc_cache_update +EXPORT_SYMBOL vmlinux 0x65c3c4f3 rpcauth_lookup_credcache +EXPORT_SYMBOL vmlinux 0x665ddb90 inode_double_lock +EXPORT_SYMBOL vmlinux 0x6671bac0 inb +EXPORT_SYMBOL vmlinux 0x667c517e cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x6684d628 pci_get_device +EXPORT_SYMBOL vmlinux 0x668ad800 spi_dv_device +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66b5792f ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x66be2a8b __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x67354a8e udplite_prot +EXPORT_SYMBOL vmlinux 0x6761f9e2 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x6771e043 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x67ab42f5 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x681a0784 nfsacl_encode +EXPORT_SYMBOL vmlinux 0x684f8126 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x68a62159 xdr_encode_pages +EXPORT_SYMBOL vmlinux 0x68a8d05c scsi_remove_target +EXPORT_SYMBOL vmlinux 0x68b0f84c __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x68c28b4e skb_over_panic +EXPORT_SYMBOL vmlinux 0x68d91252 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x68eacfc4 svc_process +EXPORT_SYMBOL vmlinux 0x68fff6dd skb_queue_purge +EXPORT_SYMBOL vmlinux 0x69010b06 insw +EXPORT_SYMBOL vmlinux 0x691ccdc5 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x6926b60b scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x697eeed4 __f_setown +EXPORT_SYMBOL vmlinux 0x6989a769 vsnprintf +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69c17cbd register_con_driver +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d193ad ps2_drain +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69ea5463 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x69f15c2c generic_getxattr +EXPORT_SYMBOL vmlinux 0x6a016284 sk_alloc +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a48305b _read_lock +EXPORT_SYMBOL vmlinux 0x6aa5815f key_put +EXPORT_SYMBOL vmlinux 0x6aabc4d0 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x6ac9c6e4 fb_blank +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acbde05 auth_domain_find +EXPORT_SYMBOL vmlinux 0x6ad89769 secpath_dup +EXPORT_SYMBOL vmlinux 0x6ae85394 pdc_tod_set +EXPORT_SYMBOL vmlinux 0x6aec04bc bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x6aee4304 netpoll_poll +EXPORT_SYMBOL vmlinux 0x6b0f89e4 key_validate +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3256a9 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x6b417034 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x6b69cbab d_prune_aliases +EXPORT_SYMBOL vmlinux 0x6bb063fb blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x6bb6f206 uart_resume_port +EXPORT_SYMBOL vmlinux 0x6bc182bd scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x6be26435 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x6bf8e44d scsi_block_requests +EXPORT_SYMBOL vmlinux 0x6c07f3c5 _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2b89e0 end_that_request_first +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c731a6d locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6c7d299a wireless_send_event +EXPORT_SYMBOL vmlinux 0x6c911f35 fixup_get_user_skip_1 +EXPORT_SYMBOL vmlinux 0x6cbbfcc1 auth_unix_lookup +EXPORT_SYMBOL vmlinux 0x6cc03691 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d04bc9f ps2_command +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d1ea047 inet_shutdown +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6da41e98 memset_io +EXPORT_SYMBOL vmlinux 0x6ddf6830 clear_user_page +EXPORT_SYMBOL vmlinux 0x6de308a7 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e0c20b0 downgrade_write +EXPORT_SYMBOL vmlinux 0x6e2c60ee __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x6e440b58 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x6e50a626 send_sig_info +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e76bcf5 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x6e983ab5 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ec743bc find_task_by_pid +EXPORT_SYMBOL vmlinux 0x6edbe798 check_disk_change +EXPORT_SYMBOL vmlinux 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL vmlinux 0x6f0f3733 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x6f266974 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x6f50a7e2 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x6f51f698 __dst_free +EXPORT_SYMBOL vmlinux 0x6f6211ce pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x6f88b937 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x6f99248a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x702ddd08 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x7040ceb7 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x7042cc25 svc_set_num_threads +EXPORT_SYMBOL vmlinux 0x7064daae remove_inode_hash +EXPORT_SYMBOL vmlinux 0x70919612 key_alloc +EXPORT_SYMBOL vmlinux 0x70921a74 xrlim_allow +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70e287f3 find_lock_page +EXPORT_SYMBOL vmlinux 0x70e61167 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x712307c9 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x715ace97 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x715c6b3e tcp_ioctl +EXPORT_SYMBOL vmlinux 0x718a6521 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71db0980 bioset_free +EXPORT_SYMBOL vmlinux 0x71e564d7 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x71fa908a cache_flush +EXPORT_SYMBOL vmlinux 0x7232b62e init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x727e5659 sock_create_lite +EXPORT_SYMBOL vmlinux 0x72cc11ab key_link +EXPORT_SYMBOL vmlinux 0x72d03b25 lock_super +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ef7e49 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x72f0e3e2 proc_mkdir +EXPORT_SYMBOL vmlinux 0x72fbae28 set_current_groups +EXPORT_SYMBOL vmlinux 0x7312139a tcp_proc_register +EXPORT_SYMBOL vmlinux 0x73173d9a eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x732e80a2 dev_base_lock +EXPORT_SYMBOL vmlinux 0x73336b10 dev_close +EXPORT_SYMBOL vmlinux 0x735e410f kick_iocb +EXPORT_SYMBOL vmlinux 0x7363f75d skb_split +EXPORT_SYMBOL vmlinux 0x737b5e1a sk_wait_data +EXPORT_SYMBOL vmlinux 0x737e6299 __mutex_init +EXPORT_SYMBOL vmlinux 0x7388aec5 init_task +EXPORT_SYMBOL vmlinux 0x738ad205 sync_page_range +EXPORT_SYMBOL vmlinux 0x73aaf66f udp_poll +EXPORT_SYMBOL vmlinux 0x73e0877a insl +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f7b81a $$divI_6 +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74949e0d open_by_devnum +EXPORT_SYMBOL vmlinux 0x74af9ac6 vc_lock_resize +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74d30d78 file_update_time +EXPORT_SYMBOL vmlinux 0x74f244fe key_negate_and_link +EXPORT_SYMBOL vmlinux 0x74fcbc34 find_inode_number +EXPORT_SYMBOL vmlinux 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL vmlinux 0x75726a6d scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x75929a62 svc_destroy +EXPORT_SYMBOL vmlinux 0x759706de proto_register +EXPORT_SYMBOL vmlinux 0x75a8f60c rpc_init_wait_queue +EXPORT_SYMBOL vmlinux 0x75f5a5db sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760a88ac __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761db7ae textsearch_unregister +EXPORT_SYMBOL vmlinux 0x765f47dc qdisc_reset +EXPORT_SYMBOL vmlinux 0x767f6fe1 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x769e7165 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x76afe574 netif_device_detach +EXPORT_SYMBOL vmlinux 0x76b02218 scsi_print_result +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d310db simple_pin_fs +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x770f0a10 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x7736d0c5 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x775f13b4 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x776d38b9 copy_user_page +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x77c131fb skb_gso_segment +EXPORT_SYMBOL vmlinux 0x77c4d0f6 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x77cf3d5f sock_i_uid +EXPORT_SYMBOL vmlinux 0x77d926bb bio_phys_segments +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x7812e7a1 key_unlink +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x7858c785 pci_restore_state +EXPORT_SYMBOL vmlinux 0x7886420c ilookup +EXPORT_SYMBOL vmlinux 0x78d60e4e mem_map +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f6f958 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x79095b8b pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x7909b937 rpc_print_iostats +EXPORT_SYMBOL vmlinux 0x79200f50 serio_interrupt +EXPORT_SYMBOL vmlinux 0x792b9809 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x793ca5e0 sock_no_accept +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798409b1 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x79a67f43 _spin_trylock +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79ad224b tasklet_kill +EXPORT_SYMBOL vmlinux 0x79d692f7 __kfifo_get +EXPORT_SYMBOL vmlinux 0x7a044659 d_find_alias +EXPORT_SYMBOL vmlinux 0x7a542f2d fb_class +EXPORT_SYMBOL vmlinux 0x7aa75ac0 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x7b28c997 reset_files_struct +EXPORT_SYMBOL vmlinux 0x7b4120a2 bio_clone +EXPORT_SYMBOL vmlinux 0x7b838e04 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x7b914bf3 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x7ba9883d task_session_nr_ns +EXPORT_SYMBOL vmlinux 0x7bf4faed netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x7c066cec sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x7c0a2fd2 should_remove_suid +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9ed2a2 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x7c9f7d1c tty_mutex +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7ccc7e9d inet_put_port +EXPORT_SYMBOL vmlinux 0x7ce854e6 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x7cfa50aa blk_start_queue +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d3fd20d unregister_netdevice +EXPORT_SYMBOL vmlinux 0x7d42f208 __alloc_pages +EXPORT_SYMBOL vmlinux 0x7d4fc4dc xdr_decode_array2 +EXPORT_SYMBOL vmlinux 0x7d633829 aio_complete +EXPORT_SYMBOL vmlinux 0x7d729ae8 _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x7d75f529 simple_getattr +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd9e8f9 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x7dec633c tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7e00c8c5 elv_rb_add +EXPORT_SYMBOL vmlinux 0x7e88bcb9 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ebb8118 rpc_clnt_sigmask +EXPORT_SYMBOL vmlinux 0x7ee18036 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fe5b93d xdr_decode_word +EXPORT_SYMBOL vmlinux 0x7ffce046 write_inode_now +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8014bdeb pci_disable_device +EXPORT_SYMBOL vmlinux 0x803118fe tcp_connect +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x8071bbf3 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x807c09bf pci_find_device +EXPORT_SYMBOL vmlinux 0x80b8774d d_alloc +EXPORT_SYMBOL vmlinux 0x80d649b8 xdr_encode_word +EXPORT_SYMBOL vmlinux 0x813345f1 inet_getname +EXPORT_SYMBOL vmlinux 0x8136df9a mempool_free +EXPORT_SYMBOL vmlinux 0x81446f97 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x8156bb7f add_disk_randomness +EXPORT_SYMBOL vmlinux 0x815750ce pci_get_slot +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x819cfcb9 kill_block_super +EXPORT_SYMBOL vmlinux 0x81d1ab58 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x82312435 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8244bf31 create_proc_entry +EXPORT_SYMBOL vmlinux 0x824a1076 simple_lookup +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8282e54d tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x82d47fb9 remove_suid +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x831f7f68 flush_kernel_dcache_range_asm +EXPORT_SYMBOL vmlinux 0x83333ca3 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x83553d63 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x836a55de do_gettimeofday +EXPORT_SYMBOL vmlinux 0x839279cc iput +EXPORT_SYMBOL vmlinux 0x83a4314b pcim_enable_device +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a9d7af blkdev_get +EXPORT_SYMBOL vmlinux 0x83c69fe1 register_binfmt +EXPORT_SYMBOL vmlinux 0x84122f3b locks_remove_posix +EXPORT_SYMBOL vmlinux 0x84248e80 uts_sem +EXPORT_SYMBOL vmlinux 0x847345aa _write_unlock +EXPORT_SYMBOL vmlinux 0x84ac94f2 vmalloc_start +EXPORT_SYMBOL vmlinux 0x84ae7558 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84b43af6 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x84e540d2 alloc_disk +EXPORT_SYMBOL vmlinux 0x84f6a9af kill_anon_super +EXPORT_SYMBOL vmlinux 0x85357aca pci_release_regions +EXPORT_SYMBOL vmlinux 0x853c69ff xfrm_register_type +EXPORT_SYMBOL vmlinux 0x85655e71 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x85783cc1 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x85893992 init_file +EXPORT_SYMBOL vmlinux 0x85902f79 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85ac7f10 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x85ba2a51 simple_rename +EXPORT_SYMBOL vmlinux 0x85bac17c gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x85bdbbce fixup_put_user_skip_1 +EXPORT_SYMBOL vmlinux 0x85ca11c2 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85eb791f boot_cpu_data +EXPORT_SYMBOL vmlinux 0x86012f16 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x862bac20 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x86484b9c cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1c752 gss_svc_to_pseudoflavor +EXPORT_SYMBOL vmlinux 0x86aa7ad0 pci_request_region +EXPORT_SYMBOL vmlinux 0x86b663b6 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x86c30f0c tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x86de157d kernel_listen +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86fe8226 page_symlink +EXPORT_SYMBOL vmlinux 0x8708fede cfb_fillrect +EXPORT_SYMBOL vmlinux 0x87591c46 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x876e272e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x877be136 module_add_driver +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x8788b1e2 find_get_page +EXPORT_SYMBOL vmlinux 0x87a3236c unregister_nls +EXPORT_SYMBOL vmlinux 0x87bddc0c __pci_register_driver +EXPORT_SYMBOL vmlinux 0x87c13c67 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x87c289d6 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x87d4348a new_inode +EXPORT_SYMBOL vmlinux 0x87f70582 fb_set_var +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881a0e5f kfifo_alloc +EXPORT_SYMBOL vmlinux 0x883f0cb1 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x8887e9aa kfree_skb +EXPORT_SYMBOL vmlinux 0x889a1c2a svc_reserve +EXPORT_SYMBOL vmlinux 0x88eea2b2 subsys_create_file +EXPORT_SYMBOL vmlinux 0x88f05e98 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x88fc96cb read_cache_page +EXPORT_SYMBOL vmlinux 0x89159352 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x891a4820 __rta_fill +EXPORT_SYMBOL vmlinux 0x891eb339 nlmclnt_proc +EXPORT_SYMBOL vmlinux 0x895bfa11 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8991b60c kernel_connect +EXPORT_SYMBOL vmlinux 0x8996acdd _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8999319f generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x89c9221e neigh_update +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e045d8 seq_lseek +EXPORT_SYMBOL vmlinux 0x89e319ec __nla_reserve +EXPORT_SYMBOL vmlinux 0x89fe9565 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x8a1203a9 kref_get +EXPORT_SYMBOL vmlinux 0x8a4303d7 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a90d932 allocate_resource +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa7fc5e skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x8ac02c5f blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x8aec0ba8 xdr_buf_from_iov +EXPORT_SYMBOL vmlinux 0x8af2728f put_rpccred +EXPORT_SYMBOL vmlinux 0x8af839ee alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x8afcce52 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x8b2093a5 __break_lease +EXPORT_SYMBOL vmlinux 0x8b6816ef eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x8b7417cc blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x8bb33e7d __release_region +EXPORT_SYMBOL vmlinux 0x8bbe1899 print_pci_hwpath +EXPORT_SYMBOL vmlinux 0x8bbfa2b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x8bd6a6a5 rpc_put_task +EXPORT_SYMBOL vmlinux 0x8bfcdb57 __mod_timer +EXPORT_SYMBOL vmlinux 0x8bfd2603 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0x8c015dc1 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c38769a blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x8c518e58 tty_devnum +EXPORT_SYMBOL vmlinux 0x8c66ce6b outw +EXPORT_SYMBOL vmlinux 0x8c88f223 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8ca6f199 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8d080ef7 eth_header_cache +EXPORT_SYMBOL vmlinux 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL vmlinux 0x8d2d7e17 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d41497a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d670b2e scsi_register_interface +EXPORT_SYMBOL vmlinux 0x8d6d05ca _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e3304cf percpu_counter_init +EXPORT_SYMBOL vmlinux 0x8e6af288 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e8722ad find_or_create_page +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e8aabf3 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x8f05f8ed blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x8f28c834 get_sb_single +EXPORT_SYMBOL vmlinux 0x8f29fbda iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8fa02a79 cad_pid +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90057238 fasync_helper +EXPORT_SYMBOL vmlinux 0x9039179f __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x9070b3f2 ioport_resource +EXPORT_SYMBOL vmlinux 0x90918311 pdc_stable_initialize +EXPORT_SYMBOL vmlinux 0x90b1ed8e idr_remove +EXPORT_SYMBOL vmlinux 0x90e45b9e single_release +EXPORT_SYMBOL vmlinux 0x910302ef __wake_up +EXPORT_SYMBOL vmlinux 0x912a40cd pci_dev_put +EXPORT_SYMBOL vmlinux 0x914334f2 blkdev_put +EXPORT_SYMBOL vmlinux 0x9187985c kill_fasync +EXPORT_SYMBOL vmlinux 0x918b9bee svc_proc_register +EXPORT_SYMBOL vmlinux 0x91a70fd3 gss_service_to_auth_domain_name +EXPORT_SYMBOL vmlinux 0x9214553d read_bytes_from_xdr_buf +EXPORT_SYMBOL vmlinux 0x921e7f4d shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x925085c5 cont_write_begin +EXPORT_SYMBOL vmlinux 0x929d952d sock_map_fd +EXPORT_SYMBOL vmlinux 0x92c3b9a6 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x92c5a8c8 init_timer +EXPORT_SYMBOL vmlinux 0x92e5aa02 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x92e8e931 $$divI_15 +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x9338e996 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x933a7114 do_SAK +EXPORT_SYMBOL vmlinux 0x93460558 pci_find_slot +EXPORT_SYMBOL vmlinux 0x93791125 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93d79bc0 __lock_page +EXPORT_SYMBOL vmlinux 0x93e56ce8 set_disk_ro +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x93ff1649 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x94044ae7 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x940accfc jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x94212938 nlmsvc_ops +EXPORT_SYMBOL vmlinux 0x9422ced5 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x9441579d generic_permission +EXPORT_SYMBOL vmlinux 0x944434c2 km_query +EXPORT_SYMBOL vmlinux 0x9462ab03 rpc_queue_upcall +EXPORT_SYMBOL vmlinux 0x94847b23 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x948ae84e security_d_instantiate +EXPORT_SYMBOL vmlinux 0x94b5e432 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x94d87f88 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x9509503e __free_pages +EXPORT_SYMBOL vmlinux 0x95365fae serio_rescan +EXPORT_SYMBOL vmlinux 0x95643ab5 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x957f1fd3 d_namespace_path +EXPORT_SYMBOL vmlinux 0x95c20288 _read_unlock +EXPORT_SYMBOL vmlinux 0x95cb9d1a try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x9628a2ea kobject_set_name +EXPORT_SYMBOL vmlinux 0x962c9e79 proc_bus +EXPORT_SYMBOL vmlinux 0x96ab1bc0 framebuffer_release +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96e3a7a0 eisa_bus_type +EXPORT_SYMBOL vmlinux 0x97024427 skb_unlink +EXPORT_SYMBOL vmlinux 0x970f0702 kfifo_free +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x972ca699 pskb_copy +EXPORT_SYMBOL vmlinux 0x97419da4 netdev_features_change +EXPORT_SYMBOL vmlinux 0x974a3945 udp_get_port +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976e539e lockd_up +EXPORT_SYMBOL vmlinux 0x97c14673 scsi_execute +EXPORT_SYMBOL vmlinux 0x97ff0b38 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x982a3488 simple_release_fs +EXPORT_SYMBOL vmlinux 0x9833cb30 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9850c0b8 module_put +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98775dbe tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x98adc497 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98e535e1 genl_sock +EXPORT_SYMBOL vmlinux 0x98ee13e8 skb_pad +EXPORT_SYMBOL vmlinux 0x99049ca2 pdc_stable_read +EXPORT_SYMBOL vmlinux 0x991d967b dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x991ec8f2 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x99312739 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x9933780f proto_unregister +EXPORT_SYMBOL vmlinux 0x993d1724 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x9964a567 dev_open +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9998a879 generic_make_request +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99ae4100 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bcf157 bioset_create +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d0b6e4 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a0ed672 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9aaec90d init_buffer +EXPORT_SYMBOL vmlinux 0x9ab31681 generic_listxattr +EXPORT_SYMBOL vmlinux 0x9ab9c858 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b0a9a15 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b8bfeae bd_claim +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9be5690b scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x9bf7739d set_user_nice +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc478fb $$divU_7 +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d0af667 scsi_req_abort_cmd +EXPORT_SYMBOL vmlinux 0x9d101435 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x9d45bd9c set_irq_chip +EXPORT_SYMBOL vmlinux 0x9dd16e8f iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x9dda5b3f add_to_page_cache +EXPORT_SYMBOL vmlinux 0x9de03309 block_write_end +EXPORT_SYMBOL vmlinux 0x9e0a9104 get_fs_type +EXPORT_SYMBOL vmlinux 0x9e0e8cf0 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x9e11c47b gsc_alloc_irq +EXPORT_SYMBOL vmlinux 0x9e1cb6bc get_sb_nodev +EXPORT_SYMBOL vmlinux 0x9e662dc0 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x9e883991 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x9e98f143 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x9ea1e3c0 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x9ea93a0c $$divI +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9ec3c8f4 register_exec_domain +EXPORT_SYMBOL vmlinux 0x9ece2a2f end_page_writeback +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9edaee9d generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x9ee50870 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f03dc8f scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f219ca8 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f36c63e console_stop +EXPORT_SYMBOL vmlinux 0x9f8f782a xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9f93c5c9 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa8849a elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fd88da6 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x9fe734a7 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9febf17e __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9ff142cc remove_wait_queue +EXPORT_SYMBOL vmlinux 0x9ff925e6 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xa010b0c8 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa0407132 ip_defrag +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa14d6e88 svc_seq_show +EXPORT_SYMBOL vmlinux 0xa188d657 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bdf7f1 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xa1cdce17 flush_cache_all_local +EXPORT_SYMBOL vmlinux 0xa1d60f0f memcpy_toio +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1e44ce4 netlink_ack +EXPORT_SYMBOL vmlinux 0xa1fd23d6 pci_iomap +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2499d79 misc_deregister +EXPORT_SYMBOL vmlinux 0xa25df60c sleep_on +EXPORT_SYMBOL vmlinux 0xa27897c9 krb5_encrypt +EXPORT_SYMBOL vmlinux 0xa29b1708 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2dc9bff scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xa314f053 per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3674f57 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xa3829261 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xa393fcb0 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xa3d145e1 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa4b7fbad invalidate_bdev +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c8a274 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xa4d74a68 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xa4ddc9d9 tcf_em_register +EXPORT_SYMBOL vmlinux 0xa50a3a11 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xa52f0287 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xa5306155 inode_double_unlock +EXPORT_SYMBOL vmlinux 0xa53c986c arp_send +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa54e5c08 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xa555bcbe vfs_rename +EXPORT_SYMBOL vmlinux 0xa5595db0 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa57f027d inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xa5808bbf tasklet_init +EXPORT_SYMBOL vmlinux 0xa585f55e key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58e7230 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a020c6 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xa5b0d8d1 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xa5e3363e pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xa60f99ff rpcauth_lookupcred +EXPORT_SYMBOL vmlinux 0xa63feb78 _read_trylock +EXPORT_SYMBOL vmlinux 0xa641ca34 mapping_tagged +EXPORT_SYMBOL vmlinux 0xa67da934 sock_register +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6886db7 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xa6c3ba66 block_write_full_page +EXPORT_SYMBOL vmlinux 0xa6cf0aa1 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xa6d7ecd6 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6df1ecf neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xa72e035d pci_fixup_device +EXPORT_SYMBOL vmlinux 0xa7421d0c _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7546b45 __up_write +EXPORT_SYMBOL vmlinux 0xa766d8ef deactivate_super +EXPORT_SYMBOL vmlinux 0xa796380b nla_put +EXPORT_SYMBOL vmlinux 0xa799f2cc directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xa7b91a7b lockd_down +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7ca3749 mutex_trylock +EXPORT_SYMBOL vmlinux 0xa7e4ea76 iunique +EXPORT_SYMBOL vmlinux 0xa7e8a574 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xa8057c9f tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xa82f75a1 keyring_clear +EXPORT_SYMBOL vmlinux 0xa830536d rpc_clnt_sigunmask +EXPORT_SYMBOL vmlinux 0xa8506006 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xa8605bd8 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xa8e136ce pci_assign_resource +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa909f938 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa977ca54 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL vmlinux 0xa98ff31d blk_run_queue +EXPORT_SYMBOL vmlinux 0xa9d98cc7 uart_match_port +EXPORT_SYMBOL vmlinux 0xa9f5dcec kmem_cache_name +EXPORT_SYMBOL vmlinux 0xaa1927e0 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xaa19e290 write_one_page +EXPORT_SYMBOL vmlinux 0xaa43d08d mnt_unpin +EXPORT_SYMBOL vmlinux 0xaa4c76cb block_commit_write +EXPORT_SYMBOL vmlinux 0xaa8cfcf3 register_chrdev +EXPORT_SYMBOL vmlinux 0xaab28827 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0xaabadabb idr_for_each +EXPORT_SYMBOL vmlinux 0xaac0278c pskb_expand_head +EXPORT_SYMBOL vmlinux 0xaad2027e clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaaff4607 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xab20b470 simple_rmdir +EXPORT_SYMBOL vmlinux 0xab29a081 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab4e4345 pdc_iodc_read +EXPORT_SYMBOL vmlinux 0xab5c7ecf inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab654359 __atomic_hash +EXPORT_SYMBOL vmlinux 0xab6b1e67 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xab723612 rpc_mkpipe +EXPORT_SYMBOL vmlinux 0xabad7a5e dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabf70b04 input_register_device +EXPORT_SYMBOL vmlinux 0xac2495f1 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac468cec dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xacb75785 end_that_request_last +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL vmlinux 0xad38853c sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0xad39bda2 input_set_capability +EXPORT_SYMBOL vmlinux 0xad3b20c1 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xad3c508f mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xad447da7 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xad4d8b0e ip_route_input +EXPORT_SYMBOL vmlinux 0xada240d4 ida_get_new +EXPORT_SYMBOL vmlinux 0xadb82ea3 idr_find +EXPORT_SYMBOL vmlinux 0xadc012c7 d_validate +EXPORT_SYMBOL vmlinux 0xae069fd4 unlock_super +EXPORT_SYMBOL vmlinux 0xae075c6a pci_find_bus +EXPORT_SYMBOL vmlinux 0xae1e7581 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xae582f11 force_sig +EXPORT_SYMBOL vmlinux 0xae5cd23f redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xae6d97da inet_csk_accept +EXPORT_SYMBOL vmlinux 0xae7556ef rpc_call_setup +EXPORT_SYMBOL vmlinux 0xae9b3240 inet_bind +EXPORT_SYMBOL vmlinux 0xaecc25e6 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xaed013b9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xaee44ce8 rpc_bind_new_program +EXPORT_SYMBOL vmlinux 0xaee461f2 kobject_get +EXPORT_SYMBOL vmlinux 0xaf4860a3 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xaf4ae3d4 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL vmlinux 0xaf7dab5d __lock_buffer +EXPORT_SYMBOL vmlinux 0xaf7e2b92 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xafb11810 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xaff6ff91 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xaff8e832 $$divU_10 +EXPORT_SYMBOL vmlinux 0xaffa1d32 init_special_inode +EXPORT_SYMBOL vmlinux 0xb00a15d0 ilookup5 +EXPORT_SYMBOL vmlinux 0xb01e7db6 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xb02bb060 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xb0513505 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xb06e4f0e rpc_shutdown_client +EXPORT_SYMBOL vmlinux 0xb0939c0f tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xb09a9a7b inet_sendmsg +EXPORT_SYMBOL vmlinux 0xb0b0dd15 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0db0e6c blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f39bed scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb14a1e89 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xb1659d9b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xb17b1563 simple_write_begin +EXPORT_SYMBOL vmlinux 0xb17b21b5 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xb17c4852 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xb1bc9f2b vfs_link +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1dcfb33 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb1f9a1f2 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xb27967da $$divI_7 +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb29c81fb simple_readpage +EXPORT_SYMBOL vmlinux 0xb2bf9931 dev_get_flags +EXPORT_SYMBOL vmlinux 0xb30e5765 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb38853d9 cpu_online_map +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3ccf8e3 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xb3d6395d unregister_binfmt +EXPORT_SYMBOL vmlinux 0xb3d87f7a cdev_del +EXPORT_SYMBOL vmlinux 0xb3f19f04 _spin_lock_bh +EXPORT_SYMBOL vmlinux 0xb3f94a7b tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xb4025b72 eth_header_parse +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb434333e inode_add_bytes +EXPORT_SYMBOL vmlinux 0xb44d328f _read_unlock_irq +EXPORT_SYMBOL vmlinux 0xb452f7ca end_request +EXPORT_SYMBOL vmlinux 0xb4543dc8 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xb4691dfe input_register_handler +EXPORT_SYMBOL vmlinux 0xb485ab24 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4a7540f dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xb515011d nf_hook_slow +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb56e75fc wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb57f2d8a qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xb5860e00 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xb59fde0a tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xb5a0944c compute_creds +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5af0b80 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xb5dea7ef g_token_size +EXPORT_SYMBOL vmlinux 0xb5f37207 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0xb60caee2 cond_resched_lock +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb62233f7 dev_mc_add +EXPORT_SYMBOL vmlinux 0xb629708f scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xb65d4b87 input_unregister_device +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb68b25ee sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xb6aed3a8 unregister_key_type +EXPORT_SYMBOL vmlinux 0xb6c1952c tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xb6c43aec tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c8d639 svc_set_client +EXPORT_SYMBOL vmlinux 0xb7115d1f sock_no_mmap +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb726422e pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ca2acb blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0xb815bc74 __downgrade_write +EXPORT_SYMBOL vmlinux 0xb848013f input_release_device +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb882bb27 elv_add_request +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8d7ed1f sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xb8dfedeb ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xb8e1b726 skb_clone +EXPORT_SYMBOL vmlinux 0xb9054fde free_netdev +EXPORT_SYMBOL vmlinux 0xb907dd51 del_timer +EXPORT_SYMBOL vmlinux 0xb9131b1f try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xb94ab116 put_page +EXPORT_SYMBOL vmlinux 0xb95d6995 xfrm_nl +EXPORT_SYMBOL vmlinux 0xb98bb468 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb98ef804 vm_stat +EXPORT_SYMBOL vmlinux 0xb9bf6adf neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba750377 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xbaed101a ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xbaf4d91d wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xbaf8c5fd pci_enable_wake +EXPORT_SYMBOL vmlinux 0xbb0c7d24 d_move +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5a96da udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbaaf389 profile_pc +EXPORT_SYMBOL vmlinux 0xbbafa18c sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbd3fcb2 $$divI_12 +EXPORT_SYMBOL vmlinux 0xbc1ab918 sock_create_kern +EXPORT_SYMBOL vmlinux 0xbc44e696 submit_bh +EXPORT_SYMBOL vmlinux 0xbc73afee udp_ioctl +EXPORT_SYMBOL vmlinux 0xbca88447 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xbcb5d9b8 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xbcca92c7 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xbccf7ff8 $$dyncall +EXPORT_SYMBOL vmlinux 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL vmlinux 0xbcef6f16 idr_get_new +EXPORT_SYMBOL vmlinux 0xbcfadbcc inet_stream_ops +EXPORT_SYMBOL vmlinux 0xbd1d7931 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xbd35cc0f gss_mech_get_by_name +EXPORT_SYMBOL vmlinux 0xbd3afae5 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xbd66da2f nlmsg_notify +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe24594b uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xbe5bb1a3 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xbe881dc5 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefb034a kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xbf2c2635 have_submounts +EXPORT_SYMBOL vmlinux 0xbf85c0e5 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL vmlinux 0xbfb042dc netdev_state_change +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfeb873a pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0xbff1ff37 wait_for_completion +EXPORT_SYMBOL vmlinux 0xc02c6711 generic_file_open +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0595590 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xc06d83ce kill_litter_super +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc107400c scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xc13377e4 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xc1436aa7 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc16cbbe3 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xc18fa5a7 idr_remove_all +EXPORT_SYMBOL vmlinux 0xc1b383d7 pci_enable_device +EXPORT_SYMBOL vmlinux 0xc1cce310 rpc_call_sync +EXPORT_SYMBOL vmlinux 0xc1d83dad find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0xc206d68b neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xc21db316 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xc2241816 simple_unlink +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc28f93b4 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xc2c40575 bio_init +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2dcf571 irq_stat +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc30fa545 put_tty_driver +EXPORT_SYMBOL vmlinux 0xc314b113 remote_llseek +EXPORT_SYMBOL vmlinux 0xc31b99de sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xc359f6bf dev_get_by_index +EXPORT_SYMBOL vmlinux 0xc36848ad pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xc387ec0b __xchg32 +EXPORT_SYMBOL vmlinux 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL vmlinux 0xc395ee04 copy_io_context +EXPORT_SYMBOL vmlinux 0xc39e5235 dma_pool_create +EXPORT_SYMBOL vmlinux 0xc3be5837 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc4314152 request_firmware +EXPORT_SYMBOL vmlinux 0xc45a8f82 clocksource_register +EXPORT_SYMBOL vmlinux 0xc465d9cd tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xc47cc998 bio_split +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a63d7a task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xc4a8c13a $$divU_5 +EXPORT_SYMBOL vmlinux 0xc4c65ccf blk_get_request +EXPORT_SYMBOL vmlinux 0xc4c6f9e3 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xc4fca979 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc53d4b11 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc56a0ddc scsi_scan_target +EXPORT_SYMBOL vmlinux 0xc56dd248 request_key_async +EXPORT_SYMBOL vmlinux 0xc57a3036 prepare_binprm +EXPORT_SYMBOL vmlinux 0xc58a1a6c open_exec +EXPORT_SYMBOL vmlinux 0xc5d305c2 pci_save_state +EXPORT_SYMBOL vmlinux 0xc5e9792a svc_wake_up +EXPORT_SYMBOL vmlinux 0xc633495b schedule_work +EXPORT_SYMBOL vmlinux 0xc655f9f3 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xc6698a8d tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xc6b14b1b rtnl_notify +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc722227e posix_acl_clone +EXPORT_SYMBOL vmlinux 0xc7287f85 up_read +EXPORT_SYMBOL vmlinux 0xc73451e8 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xc783266a ether_setup +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b54217 vmtruncate +EXPORT_SYMBOL vmlinux 0xc7cb609f unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc83eb279 rpc_setbufsize +EXPORT_SYMBOL vmlinux 0xc8463b9b qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0xc84972ce register_netdevice +EXPORT_SYMBOL vmlinux 0xc879edf0 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xc87c4d6c nf_register_hook +EXPORT_SYMBOL vmlinux 0xc89b697f locks_init_lock +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b9503f generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xc8e96dea qword_addhex +EXPORT_SYMBOL vmlinux 0xc93af767 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0xc940bb7b idr_init +EXPORT_SYMBOL vmlinux 0xc966d31c div64_64 +EXPORT_SYMBOL vmlinux 0xc97dbd3b contig_page_data +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xca1ed299 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xca2d773e ps2_handle_response +EXPORT_SYMBOL vmlinux 0xca389f1e call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca9372af generic_unplug_device +EXPORT_SYMBOL vmlinux 0xcaabde73 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xcab148f7 inet_select_addr +EXPORT_SYMBOL vmlinux 0xcac7d397 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xcacaf0af blk_put_request +EXPORT_SYMBOL vmlinux 0xcaf91596 tcp_close +EXPORT_SYMBOL vmlinux 0xcb134e29 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb441a70 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb537bcd __down_write +EXPORT_SYMBOL vmlinux 0xcb5d6117 nf_log_register +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb772d95 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xcb805871 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xcbc6f4a5 __user_walk_fd +EXPORT_SYMBOL vmlinux 0xcbd20598 idr_replace +EXPORT_SYMBOL vmlinux 0xcc0bb9ac ps2_init +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc794ffc gsc_claim_irq +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccaf77fb deny_write_access +EXPORT_SYMBOL vmlinux 0xccb3b767 skb_queue_head +EXPORT_SYMBOL vmlinux 0xcccb67a6 qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0xcccdd0d4 udp_hash_lock +EXPORT_SYMBOL vmlinux 0xcccf15dc simple_transaction_read +EXPORT_SYMBOL vmlinux 0xccd41761 block_read_full_page +EXPORT_SYMBOL vmlinux 0xccdcd4de scsi_ioctl +EXPORT_SYMBOL vmlinux 0xcd2e2186 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xcd72b82b audit_log_start +EXPORT_SYMBOL vmlinux 0xcd982c42 make_checksum +EXPORT_SYMBOL vmlinux 0xcdb88ece genl_register_ops +EXPORT_SYMBOL vmlinux 0xcdc1403b scsi_target_resume +EXPORT_SYMBOL vmlinux 0xcdd38c77 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xce12559e nobh_writepage +EXPORT_SYMBOL vmlinux 0xce1c704c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xce334d26 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5c89a5 eth_type_trans +EXPORT_SYMBOL vmlinux 0xce67b3ce pdc_stable_get_size +EXPORT_SYMBOL vmlinux 0xce7a2fd8 cache_register +EXPORT_SYMBOL vmlinux 0xce8d0c28 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xceb140c1 down_read_trylock +EXPORT_SYMBOL vmlinux 0xceb253fd $$divU_9 +EXPORT_SYMBOL vmlinux 0xcebc6916 __user_walk +EXPORT_SYMBOL vmlinux 0xcecf7b5e bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xced1ef65 svc_makesock +EXPORT_SYMBOL vmlinux 0xcef30706 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xcef9fbb0 bio_alloc +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf19a0ac arp_find +EXPORT_SYMBOL vmlinux 0xcf1c8a77 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xcf487796 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xcf4d33e9 kset_unregister +EXPORT_SYMBOL vmlinux 0xcf5d61f8 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xcf68187f ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xcf6bea5a invalidate_partition +EXPORT_SYMBOL vmlinux 0xcf71197e eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xcf96b65b pdc_add_valid +EXPORT_SYMBOL vmlinux 0xcfb3c252 get_write_access +EXPORT_SYMBOL vmlinux 0xcfd571a0 poll_freewait +EXPORT_SYMBOL vmlinux 0xcfe35b26 serio_open +EXPORT_SYMBOL vmlinux 0xcff53400 kref_put +EXPORT_SYMBOL vmlinux 0xd0150ffd schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd057f0b3 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xd074362e key_revoke +EXPORT_SYMBOL vmlinux 0xd07d6a55 elv_rb_find +EXPORT_SYMBOL vmlinux 0xd0836ca5 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xd08d3778 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd08eab23 idr_destroy +EXPORT_SYMBOL vmlinux 0xd0bf4bb0 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd152a78b blk_register_region +EXPORT_SYMBOL vmlinux 0xd16c5aba aio_put_req +EXPORT_SYMBOL vmlinux 0xd18b0b2f tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xd1a8681a unload_nls +EXPORT_SYMBOL vmlinux 0xd1dcb7ee ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd227c2ef dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xd2332988 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2b786a0 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xd303e5e9 security_inode_permission +EXPORT_SYMBOL vmlinux 0xd32e52c7 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0xd3352fb0 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xd34b4b41 scsi_device_put +EXPORT_SYMBOL vmlinux 0xd3564603 neigh_create +EXPORT_SYMBOL vmlinux 0xd377477b inl +EXPORT_SYMBOL vmlinux 0xd38fbd52 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xd390a066 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xd3dc1c8d pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xd3eb77fb nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xd49f2aa5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xd4c67b45 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xd509282d thaw_bdev +EXPORT_SYMBOL vmlinux 0xd53a5222 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xd5647810 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd5d93079 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd606523b inet_ioctl +EXPORT_SYMBOL vmlinux 0xd6154a1c nf_log_packet +EXPORT_SYMBOL vmlinux 0xd624bb77 lstrnlen_user +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd631477a ip_route_output_key +EXPORT_SYMBOL vmlinux 0xd6473a3a I_BDEV +EXPORT_SYMBOL vmlinux 0xd665f0b7 dev_driver_string +EXPORT_SYMBOL vmlinux 0xd674f7ad pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xd67bb05c ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xd6a4b6bf _write_lock_bh +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6fc6f58 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xd6fd1c45 ida_remove +EXPORT_SYMBOL vmlinux 0xd73300d8 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xd7829b3f simple_transaction_get +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a070ad gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd7abd55d get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xd7b60f8c generic_write_checks +EXPORT_SYMBOL vmlinux 0xd7dd3a8b get_user_pages +EXPORT_SYMBOL vmlinux 0xd7e70258 netpoll_setup +EXPORT_SYMBOL vmlinux 0xd7e764d4 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0xd8282ff0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xd83079e6 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xd83791bc nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd8410f3e ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xd873df74 vfs_permission +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8a74ae7 dcache_readdir +EXPORT_SYMBOL vmlinux 0xd8d3a94e tcf_hash_search +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8e57a5e __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xd933c60e kmalloc_caches +EXPORT_SYMBOL vmlinux 0xd93b918b scsi_print_command +EXPORT_SYMBOL vmlinux 0xd9637103 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xd96ba407 path_lookup +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9be5e70 block_prepare_write +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d5439b sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xd9ddccaf __down_write_nested +EXPORT_SYMBOL vmlinux 0xd9df23bf xdr_init_encode +EXPORT_SYMBOL vmlinux 0xd9e164fb iget_locked +EXPORT_SYMBOL vmlinux 0xd9ef7744 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xda2f81c7 sock_no_connect +EXPORT_SYMBOL vmlinux 0xda3169cf xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda62c050 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xda73a1d0 __check_region +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda94ff3e pagecache_write_end +EXPORT_SYMBOL vmlinux 0xdab89d46 neigh_lookup +EXPORT_SYMBOL vmlinux 0xdacf9ab0 __serio_register_port +EXPORT_SYMBOL vmlinux 0xdad538a7 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xdae8db96 handle_sysrq +EXPORT_SYMBOL vmlinux 0xdb110c35 input_flush_device +EXPORT_SYMBOL vmlinux 0xdb431791 generic_osync_inode +EXPORT_SYMBOL vmlinux 0xdb4e5aef scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdbb4f7b9 _write_trylock +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd75070 names_cachep +EXPORT_SYMBOL vmlinux 0xdbe7034a inet_frags_init +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3eaf70 iomem_resource +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4f16e7 sunrpc_cache_lookup +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcd0ef14 xdr_buf_subsegment +EXPORT_SYMBOL vmlinux 0xdd0590f9 parisc_bus_is_phys +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1311bd inet_stream_connect +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd33a185 subsystem_unregister +EXPORT_SYMBOL vmlinux 0xdd4cf26f dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xdd4e401a __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd81b2da sock_no_getname +EXPORT_SYMBOL vmlinux 0xdd886ac5 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xdde664e5 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xdded9372 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde793cf1 dentry_open +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdeaf4470 $$divU_15 +EXPORT_SYMBOL vmlinux 0xdebddf89 pci_get_class +EXPORT_SYMBOL vmlinux 0xdee1c09a pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0xdef04791 get_pci_node_path +EXPORT_SYMBOL vmlinux 0xdf0b1440 registered_fb +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf2321c7 flush_kernel_dcache_page_asm +EXPORT_SYMBOL vmlinux 0xdf5c0616 cdev_init +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfd642ae kobject_init +EXPORT_SYMBOL vmlinux 0xdff326cf netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xe00f4cdc $$divI_9 +EXPORT_SYMBOL vmlinux 0xe00fb238 release_resource +EXPORT_SYMBOL vmlinux 0xe0378a94 pci_request_regions +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b5502d adjust_resource +EXPORT_SYMBOL vmlinux 0xe0dfff2e dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe0f6cba7 bio_pair_release +EXPORT_SYMBOL vmlinux 0xe105e676 sock_i_ino +EXPORT_SYMBOL vmlinux 0xe110f6ae start_tty +EXPORT_SYMBOL vmlinux 0xe1130bda put_disk +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1226d39 devm_free_irq +EXPORT_SYMBOL vmlinux 0xe163ec7b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe193a682 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xe1955262 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xe1b20fc3 is_bad_inode +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe2498146 alloc_file +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe25172ec fget +EXPORT_SYMBOL vmlinux 0xe25760a0 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xe2bbd43a outb +EXPORT_SYMBOL vmlinux 0xe2d4f883 scsi_execute_req +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe359a698 skb_dequeue +EXPORT_SYMBOL vmlinux 0xe39301ee bdev_read_only +EXPORT_SYMBOL vmlinux 0xe395ba1a unlock_buffer +EXPORT_SYMBOL vmlinux 0xe39a18b0 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0xe39ded1b sysctl_pathname +EXPORT_SYMBOL vmlinux 0xe39e203d filp_open +EXPORT_SYMBOL vmlinux 0xe3a8ea40 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xe3bf4573 $$divI_10 +EXPORT_SYMBOL vmlinux 0xe3ea0010 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xe3ea1928 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xe43aaefc input_allocate_device +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48cbf83 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xe48ebaac xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4d58628 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xe4e46dbb do_splice_to +EXPORT_SYMBOL vmlinux 0xe500caa0 register_qdisc +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5380d6a seq_release_private +EXPORT_SYMBOL vmlinux 0xe5392fc4 do_sync_write +EXPORT_SYMBOL vmlinux 0xe5399fc7 __invalidate_device +EXPORT_SYMBOL vmlinux 0xe55b06b9 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xe57024bc vfs_mknod +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL vmlinux 0xe5abd8e7 bdput +EXPORT_SYMBOL vmlinux 0xe5c40b76 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5da9ed0 tc_classify +EXPORT_SYMBOL vmlinux 0xe5f05bbf del_gendisk +EXPORT_SYMBOL vmlinux 0xe5facf18 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0xe639cc16 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xe657da2d register_filesystem +EXPORT_SYMBOL vmlinux 0xe6b66964 lock_may_write +EXPORT_SYMBOL vmlinux 0xe6ce7dd2 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xe6eff0db __down +EXPORT_SYMBOL vmlinux 0xe6f60c81 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe7043306 iounmap +EXPORT_SYMBOL vmlinux 0xe73446dd devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xe7687170 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xe7765108 pdc_lan_station_id +EXPORT_SYMBOL vmlinux 0xe786d390 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe7b21248 send_sig +EXPORT_SYMBOL vmlinux 0xe7c4da0e idr_pre_get +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e9bddf $$remI +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7f6bdb9 auth_unix_forget_old +EXPORT_SYMBOL vmlinux 0xe8061146 bmap +EXPORT_SYMBOL vmlinux 0xe825d87f sock_create +EXPORT_SYMBOL vmlinux 0xe8ca7e41 mpage_readpages +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8f85209 rpcauth_init_credcache +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91a04f5 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9494fc1 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xe94bfeb8 __getblk +EXPORT_SYMBOL vmlinux 0xe95e9830 pci_map_rom +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe97229b7 kobject_add +EXPORT_SYMBOL vmlinux 0xe97f4ce5 qword_get +EXPORT_SYMBOL vmlinux 0xe9969f7e inode_setattr +EXPORT_SYMBOL vmlinux 0xe9e2e742 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xe9e85e52 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1125a3 netlink_unicast +EXPORT_SYMBOL vmlinux 0xea15de1b $$divI_5 +EXPORT_SYMBOL vmlinux 0xea208ef0 skb_store_bits +EXPORT_SYMBOL vmlinux 0xea2712e0 svc_sock_names +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea75b293 sysctl_data +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xeaa1ccfe serio_close +EXPORT_SYMBOL vmlinux 0xeacd6f07 dst_alloc +EXPORT_SYMBOL vmlinux 0xeb1752d8 scsi_add_device +EXPORT_SYMBOL vmlinux 0xeb1b141d unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb968730 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xebafadee ll_rw_block +EXPORT_SYMBOL vmlinux 0xebd7e002 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xebe92200 __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec0b054f fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xec439657 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xec9777b9 svcauth_gss_flavor +EXPORT_SYMBOL vmlinux 0xecc76f11 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xecc8e0d7 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xecf6abfb svc_create_thread +EXPORT_SYMBOL vmlinux 0xed0bae65 __bio_clone +EXPORT_SYMBOL vmlinux 0xed336c23 register_framebuffer +EXPORT_SYMBOL vmlinux 0xed6614d5 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xed6a8961 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xed953373 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xeda01970 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xedabef49 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xedb60579 udp_prot +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedcf6be4 qword_add +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee644d84 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xee8b4fbc pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xee9a62b6 sysctl_string +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xef5dcc58 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xefa18b41 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xeff48873 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0081823 tcp_prot +EXPORT_SYMBOL vmlinux 0xf00835b6 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xf012b05f qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf09c3a32 arp_tbl +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf101a495 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xf1080944 devm_iounmap +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1121607 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xf1183971 elv_next_request +EXPORT_SYMBOL vmlinux 0xf145890d inode_init_once +EXPORT_SYMBOL vmlinux 0xf14ce203 follow_up +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf16db1fb fb_validate_mode +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf18ff106 generic_removexattr +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf195dda8 scsi_unregister +EXPORT_SYMBOL vmlinux 0xf1c18bd5 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf226468b dev_change_flags +EXPORT_SYMBOL vmlinux 0xf2454c36 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2b4938e pdc_sti_call +EXPORT_SYMBOL vmlinux 0xf2b83b2b input_unregister_handler +EXPORT_SYMBOL vmlinux 0xf2d32366 udplite_get_port +EXPORT_SYMBOL vmlinux 0xf2e254b4 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf2e88232 vfs_readlink +EXPORT_SYMBOL vmlinux 0xf2f6b0a7 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3204ba9 sk_common_release +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf34526a3 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf364fce7 rpcauth_unregister +EXPORT_SYMBOL vmlinux 0xf36ba783 mempool_destroy +EXPORT_SYMBOL vmlinux 0xf3786076 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xf3862053 blk_plug_device +EXPORT_SYMBOL vmlinux 0xf38ab871 __canonicalize_funcptr_for_compare +EXPORT_SYMBOL vmlinux 0xf397b9aa __tasklet_schedule +EXPORT_SYMBOL vmlinux 0xf3982847 scsi_free_sgtable +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3a15e0c pci_iounmap +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c8e911 seq_read +EXPORT_SYMBOL vmlinux 0xf3e2c33a skb_append +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf434d62d security_task_getsecid +EXPORT_SYMBOL vmlinux 0xf43b357e generic_fillattr +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4488381 swap_io_context +EXPORT_SYMBOL vmlinux 0xf4f0be8c xdr_buf_read_netobj +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f572ba cdev_alloc +EXPORT_SYMBOL vmlinux 0xf50436e1 __init_rwsem +EXPORT_SYMBOL vmlinux 0xf5737934 fixup_get_user_skip_2 +EXPORT_SYMBOL vmlinux 0xf57f234f __first_cpu +EXPORT_SYMBOL vmlinux 0xf5841fe7 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xf5a3e885 audit_log_end +EXPORT_SYMBOL vmlinux 0xf5ac22a8 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5da303e single_open +EXPORT_SYMBOL vmlinux 0xf5f5d4d2 skb_find_text +EXPORT_SYMBOL vmlinux 0xf5f9c7b9 svc_exit_thread +EXPORT_SYMBOL vmlinux 0xf61f07d3 fput +EXPORT_SYMBOL vmlinux 0xf66da8d9 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xf676e367 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0xf68cafa2 proc_root +EXPORT_SYMBOL vmlinux 0xf6aec921 _write_lock +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d3ee34 tcp_child_process +EXPORT_SYMBOL vmlinux 0xf6df43dc nla_reserve +EXPORT_SYMBOL vmlinux 0xf6ea26bf cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf71e4d40 submit_bio +EXPORT_SYMBOL vmlinux 0xf727e9d9 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xf72f8b27 vc_resize +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf778a1ec xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79451f3 $$divU_12 +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7cc8eac blk_unplug +EXPORT_SYMBOL vmlinux 0xf7f60ab5 skb_insert +EXPORT_SYMBOL vmlinux 0xf7f8567c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf857bc51 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xf86ddff0 $$mulI +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL vmlinux 0xf8c97b41 register_gifconf +EXPORT_SYMBOL vmlinux 0xf8deb219 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xf9044db4 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xf91ee319 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xf9220aae pci_match_id +EXPORT_SYMBOL vmlinux 0xf92db239 f_setown +EXPORT_SYMBOL vmlinux 0xf978d9b0 down_read +EXPORT_SYMBOL vmlinux 0xf979028d icmp_send +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xfa0b4d32 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xfa26f6b6 init_net +EXPORT_SYMBOL vmlinux 0xfa4ed043 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xfa562be0 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0xfa70cb6d ip_setsockopt +EXPORT_SYMBOL vmlinux 0xfa7494e5 ida_pre_get +EXPORT_SYMBOL vmlinux 0xfad06101 file_permission +EXPORT_SYMBOL vmlinux 0xfad6e733 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb062e46 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb551aca pci_set_mwi +EXPORT_SYMBOL vmlinux 0xfb5aa274 pcim_iomap +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfbae045f fb_find_mode +EXPORT_SYMBOL vmlinux 0xfbbb764c memcpy_fromio +EXPORT_SYMBOL vmlinux 0xfbd5e92d arp_xmit +EXPORT_SYMBOL vmlinux 0xfbf273da serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc03c9e4 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xfc164fc3 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xfc1b17eb fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xfc1f74de simple_set_mnt +EXPORT_SYMBOL vmlinux 0xfc229791 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4b311e xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xfc4e97d4 km_new_mapping +EXPORT_SYMBOL vmlinux 0xfc558ed1 xdr_shift_buf +EXPORT_SYMBOL vmlinux 0xfc60af03 complete +EXPORT_SYMBOL vmlinux 0xfc7b5fda neigh_table_clear +EXPORT_SYMBOL vmlinux 0xfc9a9ebc rpcauth_destroy_credcache +EXPORT_SYMBOL vmlinux 0xfca27d27 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc26834 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xfcd79397 vfs_readv +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf2c05f ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1915f5 svc_recv +EXPORT_SYMBOL vmlinux 0xfd29a7fe kthread_create +EXPORT_SYMBOL vmlinux 0xfd4b889c gss_mech_put +EXPORT_SYMBOL vmlinux 0xfd6e9bfd nf_reinject +EXPORT_SYMBOL vmlinux 0xfd8e9a89 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfde503a4 posix_test_lock +EXPORT_SYMBOL vmlinux 0xfdf7bc16 vfs_unlink +EXPORT_SYMBOL vmlinux 0xfe369d7f invalidate_inodes +EXPORT_SYMBOL vmlinux 0xfe520739 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5e8800 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xfe66fdf4 misc_register +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1df9a7 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff237774 blk_free_tags +EXPORT_SYMBOL vmlinux 0xff45a9da pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xff56c541 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xff5b28bb key_type_keyring +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6d7db6 simple_empty +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xff9f8e09 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xffc301cc __generic_unplug_device +EXPORT_SYMBOL vmlinux 0xffd2b4a1 krb5_decrypt +EXPORT_SYMBOL vmlinux 0xffd4e9c5 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff2ddda do_sync_read +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x584ef322 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x4fd55a52 crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xb1f2cf28 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x582f87e1 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xca88ff1f async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x0926044a async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x772b9657 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/twofish_common 0x18690893 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x03538688 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x060c0932 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0944ff66 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0f36d86a ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x10af8245 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x113305a1 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x11643515 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x13d4e613 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x161f109d sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1897ee10 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1aca7ac8 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d19b9d2 ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d952425 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x207bbd6c ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x216d3538 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x25de9e19 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x288a3473 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28d478f3 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2c4d1f4e ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d4f261e ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d82f0ae ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x32fb1842 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3bb2e58e ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3dc40f99 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3fa796e0 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x43ce6a07 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x453176d0 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4612d69d ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x46c7f60f ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d047178 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x50cf8e62 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x521773bb ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x52d8f7b8 ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0x563d6916 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5e11029c ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x61fc71ba ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x64ebd662 class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x683cfc65 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6e597012 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6f0a1d67 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x76e22430 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7981084d ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7a02045f ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7d38234c ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f133e8c ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x81fbab9f ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x829143f6 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x82aa5add ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x82c1a10a ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x85f45cc0 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8aec94d0 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b5a607e ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8cde40c9 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8d529908 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8ebeb82a ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x909bb412 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x90febec7 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x91ed73a2 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9204c4d4 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x93f06bed ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94d87c36 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94e55970 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9589f47b ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x96fe7d78 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9a6bf346 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f50f187 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa37caae5 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa3c92a4b sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa43b08d3 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa68418b4 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa761dadc ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa7cf2fe0 ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa91a1189 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa58530f sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0xabba84e3 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0xabf8f193 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xac763366 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xae6042b9 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb0596057 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb36138c7 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb4b6c6a5 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb5ff4ee0 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb60177f6 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6e11692 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb82ff8dc ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbd2481fc ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4f83a31 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc521d486 ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc648b095 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc8203fb4 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc85d2271 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcc97b123 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcfdf12b0 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd024a05c ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd517d04d ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd7a788c0 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xda1459c5 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf73f055 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe08eb831 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe2aa6c07 sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe3a138ad ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe5689010 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe5b3ef27 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe6b28657 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe7d26561 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0xecdaa4c8 ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xee0be792 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf02d4c60 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf4b6d01b ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf5a2c010 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf69f31dc ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf98fb664 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfca7bb2c sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfe765d68 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x4a6e3ad3 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xaab4f871 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xee9db49f agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0677c95c hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x152f2c4d hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d67fe4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1b98df87 hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c8d4354 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x45f81928 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5407418b hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5d050bf7 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb59e9804 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb72e63e0 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0f9631b hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe7a8f2d2 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf5b6a190 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0c34d1a5 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x002c1dd4 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x04a5cde8 ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x13fad967 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x14b96a66 ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1cbd618a ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x26dba124 ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3a0ed26e ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x43c61a52 ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5bbb1315 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x619c6375 ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6dc60f8c ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7ac07737 ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7db834b5 ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x82ad0580 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8bd83e44 ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa5ce57c6 ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xaee05ed0 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb0628d55 ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb5e2d32b ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbd5ed261 ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbf365bfc ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc57f8eb3 ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc936adb6 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcc45d353 __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd022feab ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd6488128 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xdeac8fb2 ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe6f482b4 __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xef5a431d ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf2c6bc2c ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xad5df708 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x0cb218cf led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x128cc2ad led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x22af60f1 led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x7bf6b516 led_classdev_resume +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x2de3e280 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x3e6b489e dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x59d8b337 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x7e8347ca dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xa282fba5 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xa61440b1 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xd9a9be94 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe3826032 dm_put +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x25f88c58 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x4b06c518 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x6de8dd39 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x83d69317 md_allow_write +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x31484063 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x3866e27e v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7ca8d8ab v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x253ddf97 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x28a7a6a0 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa9736886 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb94da48b sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcc4e3f40 sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd6a9ba1d sm501_set_clock +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0d55b500 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x40d8e3ad libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5367b6d5 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5efe880f libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x627692ac libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7298965f libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb0ea8f2b libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb91013cb libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbe85e772 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc250656c libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd1673c63 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x52be6c97 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa4cb03d p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xd93f5c9f p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xdead1c2a p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xf3ead1bc p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x061ab203 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x114a9ae2 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1647acaa rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1dd9757b rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x261f2310 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39b56874 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3f2f837f rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3fd8edb4 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4f621c64 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5394ba68 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x700083c8 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c0cf411 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x897e91fa rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8fdda73f rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x928002b1 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa096d4cf rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa76d9bbe rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb0ca2bb4 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8fd4c79a rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9be31cc0 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc26b53c8 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc8edebca rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcd51cd30 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcdbc0ac3 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdae3da4c rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x13cd24d4 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x42051282 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5643c320 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9e233d17 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xad44d909 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc422d5d1 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xce410c2f rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd408ec23 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeaf11aa0 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x2694eb1c power_supply_register +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x6e6408a8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x839186c6 power_supply_unregister +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xbda07d59 power_supply_changed +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xe753e3cc power_supply_class +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x21d97d23 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x285dc4ef rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x293de5db rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x2ad6d113 rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x3bc4f38d rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x5d613ffc rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x7093db1b rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x72cd8f55 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xab3ee3cd rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xac586d78 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xbc87c15d rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xe2525a57 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xef3a3503 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xffdb6736 rtc_read_time +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04f52221 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e52aab2 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f0da4d0 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10657980 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1940c41c iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20813ffd iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x221dd8dd iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a004093 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49533800 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49ead1aa iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d22da0a iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56b84f68 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b3bd35d class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bad4b0b iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c4caf30 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x74628f81 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8475e87a iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e835273 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d308532 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa092a693 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa23373c9 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2ef7b4a iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5570961 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd540d38d iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd4e5a4a iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xedee31c5 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9ba366e iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0fbd0b4b sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1461c03d sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x20c47017 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x314a678f sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4172c54b sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x468b700a sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x48ad6d2d sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5ba4f67e sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8071741c sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8b1d76be sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x94459807 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9712b899 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa3e376fa __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xac9026a5 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb8b88f45 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc1e32355 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd32fd4ce sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe6459662 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8b649aa sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfe8557f9 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2cee4fc0 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3371d650 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x903af8bf srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc1a02549 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc6cd6426 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd8d32b76 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0e68c8d8 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3148d224 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5d620b87 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x82c3356a scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9acec3a2 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa0e3540c scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb4cbd385 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb6460b23 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdab1861a scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x108d708c iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1bd1a319 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x25b14a71 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2c4f3147 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2ef5f329 iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3bc657ce iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x418a330b iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43c5c56b iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4d375538 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x577ef889 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x733a155a iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x850338ab iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88d13239 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9ac6aa9d iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb699b129 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xefd7a8da iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3ad2e4d8 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x97105265 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb77909ff srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb77977ab srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdda732ec srp_release_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x0e784cff spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x48d3e108 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x52390662 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x562b9729 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x79993478 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd7264a5f spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/uio/uio 0x5e2ce100 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc4528347 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xd75c8f35 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0068edb4 usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x37e7304f usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x427af989 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x46d9674d usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x555db44c usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6c91f3f5 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x73b877a4 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x77d23c8a usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7fce67d7 usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8656110c ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9070ceba usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb01c40d4 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc28d4aba usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdb4ba4b5 usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdbc976cf usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe4b4c8e3 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf2232b07 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf2635316 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf55afaf0 usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf9f5fec3 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x03bb68b2 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x08f4f215 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1566a00a usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4bfe9996 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7535838d usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x91b9e434 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa3857f38 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd3639a24 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf2ba0aa5 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x2e6db401 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/w1/wire 0x06cccfe0 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x355df22f w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5ad6ed58 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x716e2d10 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xddd623c3 w1_write_8 +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x466bad03 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xf358c10b exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x36ed575d fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x51bbf37a fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x7668e7de fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x77c61b5a fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x7e24aa93 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x91150b8f fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xb14858e9 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xb6314b53 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xba53d922 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xde7d0ab8 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xe2c7851c fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0xe401a194 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xeb531ac4 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xef645f9d fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xf353402f fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xf808bb6f fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xfe206304 fat_free_clusters +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x009a4468 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xafb42231 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xee3910b1 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xfe9176a3 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xff34466f gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x19f6fa26 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x1db80d25 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x31d80526 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x67902ef2 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6dcc8d70 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x70c6893b dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x85c21eb1 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x904dc189 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xab2efe04 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xac4c19fa dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf9855ba2 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x081eb8bd dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x171a6927 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d1e1792 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22ca4a08 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22ff9dc0 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2475a980 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x266bfa84 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x279a10ea dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2c375285 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2fe85baf ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x344cf67d dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x350bdbee dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x38840d5f ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43d94cd2 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ecc8823 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56a9071b dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x584ef749 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6518e7e0 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x66a2cc23 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6fa4bd56 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71436155 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x72119b89 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x72e530c1 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x756d50eb dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78c706da dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82263a9a dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x867c78e7 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88d3e23a dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8acc9fe3 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cb3498f dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f70666e dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92ca7058 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9db1a76e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa286b887 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0f5b1e3 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba7e3859 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb5c2dca ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd9728c2 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7fe9fe7 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9a3dfdb inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xccde0072 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd49bf63d dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdabdafec dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xec023fbd dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf02a0908 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf36441b9 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc538cc7 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x037f8c67 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x07c5e074 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x44b89b1f dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa3cffc00 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbab1244c dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xde8d21b2 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x21d432fa ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x5377055d ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xc171a40f ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0fca5b23 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x1748bfe7 free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x45fcb9c2 ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4c55b0c8 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4d6304f4 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x50b798d8 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x52648a4f ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5cdd2a41 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5e9adcc3 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x822e63c2 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x84985114 ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x9ed4cf41 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x9faad9f6 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb122d79e ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc0622b1d ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc894328d ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc9a286b1 ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xcfcf9dbe ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xec2dc7bb ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf86422e1 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf8bac942 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0fcef422 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa27fdeb1 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbd7d87ca nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xddf68be6 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfc3f7a90 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1fb331f0 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x279c1806 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x309175dd tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4b322dbf tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe0a818eb tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0b110ca7 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0d8e6905 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4e97f87e ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8ea200d2 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x95b39f74 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa2c6bed7 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xac5039ab inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb01e58d8 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb25ad84c ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb337b419 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb43bb494 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbda4ca2c ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe724b554 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf59c2a49 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfafe65f1 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01710404 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08c93616 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b8b247c nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0dc2705d nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16688254 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191df23b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19df068f nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x235a37f7 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ede2d01 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x33a34936 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x393e7c74 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cc5f275 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x409e6bbb nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40e5874a nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x450fe66f nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4874278b nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a4decac nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4bd0a1fd nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ee9388e nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x500c43f2 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57baf530 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a4555eb nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a9ada07 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x701674e5 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x709a20f4 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x733bb699 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79e6c37f nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a412fb2 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7df7acf4 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80db853a nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8fbf31c2 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92ddde23 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x966cecff nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x977690cc nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99ca639a nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9d7b6a78 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9fe09044 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa364bcad nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9faf345 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0cfc0eb nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1c73f56 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd4f2ea9 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbde4c4fb __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe2b74b3 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf5047d4 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf7c57b5 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfd4ddca nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4a07de4 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd705344c nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd951d276 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc26cffa nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdec52799 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe06be3a3 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5536edf nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe85c107f nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb67b0f4 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed4b22c2 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7fb8d2e7 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x6dc778e2 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x040900b8 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2fc0fd1c nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x83e4e1c3 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9a6bce1e nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa1a01faf nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa330aa52 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa774abef nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcf48b143 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe94f40ea set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf6ae10e2 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x855a27b4 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x19009af5 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5a62b1bf nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc249ddf2 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc6c37e29 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x6d5cf2c7 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x7c4da559 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x09ea7ef9 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7f7e7c96 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa37fb829 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaac05d89 ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x6c9b619e nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x136ed4f4 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x46289f31 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x98010088 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb39ce67f nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x060dc92f xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0f024b83 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x33ff1fd0 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x57ab1bf2 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x57d6edff xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8f1ac538 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xeca1d683 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xed63d9a5 xt_find_table_lock +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x24b2e12c rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xeda4041f rxrpc_unregister_security +EXPORT_SYMBOL_GPL vmlinux 0x00138746 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0094650c macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x00c5d8dd simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x00e28ffa inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x0140d8e8 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x018c9cca svc_print_addr +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c20a26 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x01db3199 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x0202d83a transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0212fb35 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x03cb512f sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x0407aa3c class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x048d97e2 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x04d5a51e bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05d6dca0 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06e143b6 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x06f0bcd0 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0797ea99 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0879d9d5 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x087f098d device_del +EXPORT_SYMBOL_GPL vmlinux 0x08eb37a3 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092a8621 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x0977c573 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x099dba98 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x09a3c239 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x09a66c02 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x0a92e206 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x0ae2dca0 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b9383a0 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x0c93049b kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x0d7f4a12 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x0d8c185f sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0d8d6f98 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f7f0b1c blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0f8ca785 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x0fd11b56 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x104c0121 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x108e771b inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x111b6bfc __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x1130ff0b rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x128ea5df alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x12c5a38c skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x13398d6a user_read +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x140974ab rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x14d7c190 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x1519e079 get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15d2a846 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x1626c2cf platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x162d535f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x1648be6b __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1649924e hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x1686be61 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x1741f1cf uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x176cfbd4 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x18014da8 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x180d4eee sba_list +EXPORT_SYMBOL_GPL vmlinux 0x184d7903 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x1862d35a platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x197043c2 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1982b230 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1abe299a crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x1aecdc89 xprt_update_rtt +EXPORT_SYMBOL_GPL vmlinux 0x1b075a56 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x1bb1a73b netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d41efc3 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x1d9d945c sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x1df6c67e klist_next +EXPORT_SYMBOL_GPL vmlinux 0x1e460e18 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1e4d2c77 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e855bc6 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eddf256 rpc_max_payload +EXPORT_SYMBOL_GPL vmlinux 0x1f199bfb device_rename +EXPORT_SYMBOL_GPL vmlinux 0x1fb424e5 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x1fcd246d klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fef40e0 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x20abe6a2 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c41839 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x20ddda17 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x20fa2562 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x21026032 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x219d768b securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2246a819 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x22556eb5 svc_max_payload +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23869dc7 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x246bd7f1 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250f9344 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x251dd8a9 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x25241cbd dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x25bf0bd4 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d29cb5 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x26fb0f33 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x279c95e1 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28aa14b8 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x28d27706 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29352d48 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x29560d68 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x29694a34 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x29ed5cbd inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL vmlinux 0x2a41a5ec input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x2b29b4b1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2bf6005f pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x2c1ce026 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x2d4b2d6c xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL vmlinux 0x2d50c29b alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e1a48f3 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x303e6297 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3085209d srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x31f6ca36 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x325dd802 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x32d5cb6f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x33030507 put_device +EXPORT_SYMBOL_GPL vmlinux 0x330e069c vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x334b6132 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x34ab312a class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x34f59256 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x3576b5a6 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x36288329 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x368c9314 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0x36ca3809 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL vmlinux 0x36f4c229 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x379d0972 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x37eb3985 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x37ef4ce2 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x38396562 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x38895729 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x38cc79b1 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x393346d0 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL vmlinux 0x39362743 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x3a39da0b xprt_adjust_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3a5472b6 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3a8127b8 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c4a8907 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ce8eec1 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x3cfc6482 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x3d4c8772 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0x3f2239d3 input_class +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3fd3bc6a lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x40bb5d78 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x419ebd86 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x42148b85 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x42f0b2af inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x43862432 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x43adf8cf lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x4445d0a1 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x44a6a6ed __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0x44fd39ba init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4569ea13 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45efd81b crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x46057626 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x460ad861 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x463691b2 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x46a67cdf xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL vmlinux 0x46daf5c8 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x474629e5 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x47ba8f98 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x47d859a6 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x48122730 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x482b444f vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x48307e4b attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x487152ff fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x48ba8d34 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x48f90ea2 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4a92e712 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x4adf8b26 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x4b294293 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x4c199aac mmput +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4d81a902 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x4dc7ea54 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x4de7e968 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x4dfaaaab __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4dfc17b7 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x4e1fc41d driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x4e6feca5 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x4ea7c189 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x4ee495d7 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4f47ee0d xprt_register_transport +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x51237369 xprt_write_space +EXPORT_SYMBOL_GPL vmlinux 0x51d7cc7b platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x51f9c743 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x5211c305 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x524f3307 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x52ba4b29 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x533dc552 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53b64e63 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x54ab08b6 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x54f04a0a user_update +EXPORT_SYMBOL_GPL vmlinux 0x55bea732 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x578a387e crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x5902e868 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x597a9c31 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x59924905 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x59963726 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x59ca3224 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x5a0393b8 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5a0fb9df device_attach +EXPORT_SYMBOL_GPL vmlinux 0x5bc524f0 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c198e34 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x5c2a523b nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5da1c0d2 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e100409 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x5f6b5546 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x5f71451d rpc_force_rebind +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a79a27 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x60b418aa __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x60b6707d sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x646dda74 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x64e30e02 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x651d4ce0 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6557b23a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x65a15879 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x65cc5d4e pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65ded6d6 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x660c77e1 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6664e6b0 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66ce7556 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6740e9da tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x67756556 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67e787b4 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x689b9f3d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x6900bba9 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6a42507e get_device +EXPORT_SYMBOL_GPL vmlinux 0x6a5029a7 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x6a7c79a0 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x6aa700b4 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x6b3e2a87 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x6c1ccaae device_create +EXPORT_SYMBOL_GPL vmlinux 0x6d0b4ef4 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x6d15894a anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x6d62ba59 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x6d8dfa69 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x6e7136ff rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x6e776b00 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x6e963aac do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x6f0b8a5b sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6f1f1880 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x6f72b71e sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6f9b1323 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x701bab07 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x708539ba inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x71196147 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x723e6fd1 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72d7885d relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x73185e33 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7340cd58 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x736351fe sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x73667258 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x74149bcb unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x74272c21 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7486289a init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74d0df98 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x7514b67a class_create +EXPORT_SYMBOL_GPL vmlinux 0x75c52cbc input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7681ff12 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x769fe397 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x76db04c1 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x76f238c7 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x770c3e38 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x7777a68c crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x78d00ccd register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x79996354 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x79a6b958 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x79ae71ba tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x7acf1fa9 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x7b11fad3 class_register +EXPORT_SYMBOL_GPL vmlinux 0x7b16663d blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c2322da get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x7c507926 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7dadf066 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7ec207ef rpc_create +EXPORT_SYMBOL_GPL vmlinux 0x7f467094 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x7f4ea0bf page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x7f857610 k_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fd49d3d class_device_del +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8005a10b debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x8081b447 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x80bb847c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x80bfb889 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x813bace7 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x8189b42a vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82b135a8 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x83a7ecd5 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x83b81bf6 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x84ebcd87 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x856b8e3f sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x859864c0 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x865aa005 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86b3c10c generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x87238c63 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x87405f87 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8784c91a attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x87979aa0 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x8819841a devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x89b88bfd debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x8a5ed8dd exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x8a982c4a tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x8aefe246 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x8b1a00aa cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x8b84c881 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8c8602be flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8ce56974 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x8d25a1ff class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8da3fd63 task_nice +EXPORT_SYMBOL_GPL vmlinux 0x8de4c186 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL vmlinux 0x8e26ffa8 find_pid +EXPORT_SYMBOL_GPL vmlinux 0x8e8320be __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x8ead7feb sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8eb7f8ae debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x8ec29531 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x8ecb6ca5 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8efb7c82 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x8f074aec inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fb98503 crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x8feeba2e destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x908ec29b scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90d1702f spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x90ef51cd devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x92038c70 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x92484696 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x92507275 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9337fc66 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x936fd74e device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x94e360ec transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x96997ee0 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x970658f6 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9713aa40 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x979a792d class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98275b08 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9881cabd spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x98aeaead queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x98bcc49d audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x990894ec srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x9915dddd __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x996595f9 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x9adbbf94 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9af6c094 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9be5474a tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x9c3f6a08 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x9c6ac28e __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d4426ae xprt_release_xprt +EXPORT_SYMBOL_GPL vmlinux 0x9d76e555 nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9d85db93 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x9d8f07e9 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x9ec069bf rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9edce021 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x9edf3e5b led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f11544d inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x9f9881a5 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa100cc60 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xa1a45817 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xa1d25381 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa241b7d5 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xa273f1c9 svc_addsock +EXPORT_SYMBOL_GPL vmlinux 0xa2b36d1e platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa401cc54 xprt_complete_rqst +EXPORT_SYMBOL_GPL vmlinux 0xa4229fda securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa4aeac41 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xa50cee0b platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xa5410843 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xa59dd3b1 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5d74f53 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa6534323 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xa69fbba5 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xa7400062 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xa7a49914 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xa7efcdcb tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xa8547e91 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xa941dc43 rpc_peeraddr +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9feebff devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xaa0059ba get_driver +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xab7b10c0 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xabf8db0b fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xac09d7ea relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xac4ba1b5 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xac69d778 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xaca42d06 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacb58dea transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xace9202e rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xad175dcd relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xad3babb4 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xad8a2d28 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xae36e17a hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xae5b5a0b pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0xae6b6376 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xaf9f0503 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xb01c7aee device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb039336e inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xb0bd957b nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xb0dfc876 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xb24393b9 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xb2538d8a driver_find +EXPORT_SYMBOL_GPL vmlinux 0xb2f948b9 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xb4efa95e inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xb5302aeb isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb5769fc3 device_move +EXPORT_SYMBOL_GPL vmlinux 0xb662f64d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb675d5e7 class_device_put +EXPORT_SYMBOL_GPL vmlinux 0xb78a8c88 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xb80f6d9c debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xb81cf1d4 device_add +EXPORT_SYMBOL_GPL vmlinux 0xb89fa671 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0xb9f6ad07 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xba221ac8 device_register +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xba954b5c get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xbabe5cfa xprt_lookup_rqst +EXPORT_SYMBOL_GPL vmlinux 0xbcc4117e nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xbcec5007 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xbd41c81b sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xbd4215cb platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xbdbcd253 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xbe434d8d firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xbe4ad925 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0xbeaf46ad relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xbef3d636 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xc0ab6236 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL vmlinux 0xc1a4345a class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc25054e7 rpcb_getport_async +EXPORT_SYMBOL_GPL vmlinux 0xc2513c11 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xc259c5c8 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xc29baf49 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc2a5e569 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc2ed7c69 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xc30afce5 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc372f45f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc47ef362 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xc6170d7d atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc7a38830 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xc7de5389 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xc7e55059 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc91de6e4 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xc9432028 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xc943ff3d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc94ae4fa inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc94dd42c scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc957aef4 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xc95e31b8 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xc980b47e xprt_disconnect +EXPORT_SYMBOL_GPL vmlinux 0xc98fcff3 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL vmlinux 0xc9e4fdbf tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xcaa61bea crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xcb0d5ad4 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcbe78eef debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc925770 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xcca81308 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xcceade13 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xccf0a669 rpc_peeraddr2str +EXPORT_SYMBOL_GPL vmlinux 0xcd74c286 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xce47e74c pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xce50be2e kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xcf0917d9 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xcf690098 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfcff7b9 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xcfe5de5e spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd037629f bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd051e438 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0f6d93d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd122590a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd22ef86a sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd34f3d7d scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xd3c7b53a crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xd52e6062 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xd52eb62d platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd55336fb genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xd58d21d3 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xd6179bc4 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xd67bbca5 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xd6be7f45 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd7504217 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xd78e799b fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xd7b84fb6 class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd85fa1a1 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xd8abc746 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xd8de0261 percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0xd93e96f0 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd98ceee9 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xd98cef60 xprt_unregister_transport +EXPORT_SYMBOL_GPL vmlinux 0xda37bd8a put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xda66ee74 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xdb0b9c05 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xdbaf8c84 user_match +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdbd4ad35 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdc962738 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xdcecd28c led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xdd2a28f4 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdde96649 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xde612c1a pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xdea53821 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xdeea40b2 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xe0e9fb27 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xe2888976 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe2e849eb fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xe33cb787 queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe4ba4fb7 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xe527f5f3 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xe5583396 xprt_reserve_xprt +EXPORT_SYMBOL_GPL vmlinux 0xe5a820df crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe8745f09 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xe8954baa crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xe928c25d devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe95e31c7 scsi_execute_async +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeb0f0681 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeb128ad2 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xeb4b4d28 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeb591893 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xecbb17af __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xeccad278 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xed231d8a sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xed9d9461 xdr_skb_read_bits +EXPORT_SYMBOL_GPL vmlinux 0xedb9bcf7 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xede1c453 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xeea88bc7 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL vmlinux 0xeeca09e2 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xef3a11b8 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL vmlinux 0xef481de3 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xef76e280 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xef9f937c __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf1463412 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf1812421 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf2536468 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf3867506 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xf3a541b9 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xf3e7a57a class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xf420e8f9 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf450f4e0 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf4616469 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xf4c7a079 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0xf5d1da38 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xf5e537c7 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xf63338d2 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xf6c142f8 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf7850c03 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8e3ed2c spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xf90dde65 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xf918ef37 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xf96f964c hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfbf9ee11 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfc07163c scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xfc5858db blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xfd163b0d led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xfd6bf871 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xfda6dd9a debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xfdc53402 rpc_malloc +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe003363 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0xfe21e916 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xfed1ae94 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xfed7449f kobject_uevent_env +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xa44293ee usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xcf8a5d46 usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xe1a1aae2 usb_match_id +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/hppa/hppa64.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/hppa/hppa64.modules @@ -0,0 +1,586 @@ +3c501 +3c503 +3c507 +3c509 +3c574_cs +3c589_cs +3c59x +53c700 +8021q +8390 +9pnet +9pnet_fd +a100u2w +ablkcipher +acenic +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +adm8211 +adutux +advansys +aead +aes_generic +af_key +af-rxrpc +ah4 +ah6 +ahci +aic94xx +ali14xx +anubis +aoe +appledisplay +arc4 +arcmsr +arptable_filter +arp_tables +arpt_mangle +async_memcpy +async_tx +async_xor +ata_generic +ata_piix +authenc +auth_rpcgss +b43 +b43legacy +backlight +berry_charge +binfmt_misc +blkcipher +blowfish +bridge +broadcom +bsd_comp +camellia +cassini +cast5 +cast6 +cbc +cdrom +cfg80211 +ch +cicada +cifs +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cn +compat_ioctl32 +configfs +corgi_bl +cpqarray +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cypress_cy7c63 +dabusb +davicom +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_tfrc_lib +de2104x +deflate +delkin_cb +des_generic +dm-crypt +dm-mirror +dm-mod +dm-snapshot +dm-zero +ds2490 +ds2760_battery +dtc2278 +dummy +e100 +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +eeprom_93cx6 +ehci-hcd +em_cmp +emi26 +emi62 +em_meta +em_nbyte +em_text +em_u32 +esp4 +esp6 +exportfs +fat +faulty +fcrypt +fdomain_cs +fixed +ftdi-elan +gf128mul +hermes +hp100 +hptiop +ht6560b +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i82092 +i82365 +icplus +ide-cd +ide-core +ide-disk +ide-generic +ide_platform +ide-scsi +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +inet_lro +initio +input-polldev +ioc4 +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipcomp +ipcomp6 +ipg +ip_gre +ipip +ip_queue +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ipw2100 +ipw2200 +iscsi_tcp +ixgbe +jfs +khazad +lasi700 +lasi_82596 +lcd +ldusb +libata +libcrc32c +libertas +libertas_cs +libiscsi +libphy +libsas +libsrp +libusual +linear +llc +lockd +loop +lpfc +lrw +lxt +mac80211 +macvlan +marvell +matrox_w1 +md4 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +michael_mic +mii +mptbase +mptctl +mptfc +mptsas +mptscsih +mptspi +msdos +multipath +nbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nls_ascii +nls_cp437 +nls_cp850 +nls_iso8859-1 +nls_iso8859-15 +nls_utf8 +ns87415 +ohci-hcd +oprofile +orinoco +orinoco_cs +osst +output +p54common +p54pci +p54usb +p8022 +parport +parport_ax88796 +parport_cs +parport_pc +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_qdi +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pcbc +pcmcia +pcmcia_core +pcnet32 +pd6729 +pda_power +pdc_adma +phantom +phidget +phidgetkit +phidgetmotorcontrol +pktcdvd +plip +power_supply +ppp_async +ppp_deflate +ppp_generic +pppol2tp +pppox +ppp_synctty +psnap +qd65xx +qla1280 +qla2xxx +qla4xxx +qlogic_cs +qlogicfas408 +qsemi +r8a66597-hcd +raid0 +raid1 +raid10 +raid456 +raid_class +ray_cs +rfkill +rfkill-input +rng-core +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtl8187 +rxkad +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sd_mod +seed +serial_cs +serpent +sg +sha1_generic +sha256_generic +sha512 +sit +sl811_cs +sl811-hcd +slhc +smbfs +smc9194 +smc91c92_cs +smc-ultra +smc-ultra32 +smsc +spectrum_cs +sr_mod +ssb +st +stex +sungem +sungem_phy +sunhme +sunrpc +sym53c500_cs +sym53c8xx +tc86c001 +tcic +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tea +tehuti +tg3 +tgr192 +tifm_7xx1 +tifm_core +tipc +tmscsim +trancevibrator +ts_bm +ts_fsm +ts_kmp +tun +tunnel4 +tunnel6 +twofish +twofish_common +typhoon +u132-hcd +udf +ufs +uio +uio_cif +umc8672 +usb8xxx +usbcore +usbhid +usbkbd +usbmon +usbmouse +usb-storage +v4l1-compat +v4l2-common +v4l2-int-device +veth +vfat +videodev +vitesse +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +wd +wire +wp512 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +yenta_socket +zalon7xx +zd1211rw +zlib_deflate +zlib_inflate --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/hppa/hppa32.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/hppa/hppa32.modules @@ -0,0 +1,742 @@ +3c501 +3c503 +3c507 +3c509 +3c574_cs +3c589_cs +3c59x +53c700 +8021q +8139cp +8139too +8250_accent +8250_boca +8250_exar_st16c554 +8250_fourport +8250_hub6 +82596 +8390 +9p +9pnet +9pnet_fd +a100u2w +ablkcipher +ac3200 +acecad +acenic +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +adm8211 +adutux +advansys +aead +aes_generic +af_key +af-rxrpc +agpgart +ah4 +ah6 +aha152x_cs +ahci +aic94xx +aiptek +airo +airo_cs +ali14xx +amd8111e +anubis +aoe +appledisplay +appletouch +arc4 +arcmsr +arptable_filter +arp_tables +arpt_mangle +async_memcpy +async_tx +async_xor +at1700 +at25 +ata_generic +ata_piix +ati_remote +ati_remote2 +atl1 +authenc +autofs +autofs4 +axnet_cs +b43 +b43legacy +b44 +backlight +bcm43xx +berry_charge +binfmt_misc +blowfish +bnx2 +bridge +broadcom +bsd_comp +camellia +cassini +cast5 +cast6 +cdrom +cfg80211 +ch +cicada +cifs +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cn +compat_ioctl32 +configfs +corgi_bl +cpqarray +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cs89x0 +cxgb +cxgb3 +cypress_cy7c63 +dabusb +davicom +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_tfrc_lib +deflate +delkin_cb +depca +display +dl2k +dlm +dm-crypt +dm-mirror +dm-mod +dm-snapshot +dm-zero +dpt_i2o +ds2490 +ds2760_battery +dtc2278 +dummy +e100 +e1000 +e1000e +e2100 +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +ecryptfs +eepro +eepro100 +eeprom_93cx6 +eexpress +ehci-hcd +em_cmp +emi26 +emi62 +em_meta +em_nbyte +em_text +em_u32 +epic100 +es3210 +esp4 +esp6 +eth16i +evdev +ewrk3 +exportfs +ext2 +ext3 +f71805f +f71882fg +fat +faulty +fcrypt +fdomain_cs +fealnx +ff-memless +fixed +fmvj18x_cs +forcedeth +freevxfs +ftdi-elan +fuse +gf128mul +gfs2 +gtco +hamachi +hermes +hid +hilkbd +hil_kbd +hil_mlc +hil_ptr +hostap +hostap_cs +hostap_pci +hostap_plx +hp +hp100 +hp-plus +hp_sdc +hp_sdc_mlc +hp_sdc_rtc +hptiop +ht6560b +hwmon-vid +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +i82365 +icplus +ide-cd +ide-core +ide-disk +ide-generic +ide_platform +ide-scsi +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +inet_lro +initio +input-polldev +ioc4 +iowarrior +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipcomp +ipcomp6 +ipg +ip_gre +ipip +ip_queue +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ipw2100 +ipw2200 +iscsi_tcp +isofs +it87 +ixgb +ixgbe +jbd +jfs +kbtab +keyspan_remote +khazad +ks0108 +lasi700 +lasi_82596 +lcd +ldusb +led-class +ledtrig-heartbeat +ledtrig-timer +libata +libcrc32c +libertas +libertas_cs +libiscsi +libphy +libsas +libsrp +libusual +linear +llc +lm70 +lne390 +lock_dlm +lock_nolock +loop +lp +lp486e +lpfc +lrw +ltv350qv +lxt +mac80211 +macvlan +marvell +matrox_w1 +mbcache +md4 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +michael_mic +mii +mptbase +mptctl +mptfc +mptsas +mptscsih +mptspi +msdos +multipath +myri10ge +natsemi +nbd +ne +ne2k-pci +ne3210 +netconsole +netwave_cs +netxen_nic +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfsd +nls_cp437 +nls_iso8859-1 +nls_utf8 +nmclan_cs +ns83820 +ns87415 +nsp32 +nsp_cs +ntfs +ohci-hcd +oprofile +orinoco +orinoco_cs +osst +output +p54common +p54pci +p54usb +p8022 +parport +parport_ax88796 +parport_cs +parport_pc +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_qdi +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pcbc +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pd6729 +pda_power +pdc_adma +phantom +phidget +phidgetkit +phidgetmotorcontrol +pktcdvd +plip +pm3fb +powermate +power_supply +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoe +pppol2tp +pppox +ppp_synctty +psmouse +psnap +qd65xx +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qsemi +r8169 +r8a66597-hcd +raid0 +raid1 +raid10 +raid456 +raid_class +ray_cs +reiserfs +rfkill +rfkill-input +rpcsec_gss_spkm3 +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-core +rtc-ds1553 +rtc-ds1742 +rtc-lib +rtc-m48t59 +rtc-m48t86 +rtc-max6902 +rtc-rs5c348 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtl8187 +rxkad +s2io +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +sc92031 +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +scsi_wait_scan +sctp +sd_mod +seed +seeq8005 +serial_cs +serio_raw +serpent +sg +sha1_generic +sha256_generic +sha512 +shaper +sis190 +sis5595 +sis900 +sit +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +sm501 +sm501fb +smbfs +smc9194 +smc91c92_cs +smc-ultra +smc-ultra32 +smsc +smsc47b397 +smsc47m1 +spectrum_cs +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +st +starfire +stex +stowaway +sundance +sungem +sungem_phy +sunhme +sym53c500_cs +sym53c8xx +synclink_cs +tc86c001 +tcic +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tea +tehuti +tg3 +tgr192 +tifm_7xx1 +tifm_core +tipc +tlan +tle62x0 +tmscsim +trancevibrator +ts_bm +ts_fsm +ts_kmp +tulip +tun +tunnel4 +tunnel6 +twofish +twofish_common +typhoon +u132-hcd +udf +uio +uio_cif +uli526x +umc8672 +usb8xxx +usbcore +usbhid +usbkbd +usbmon +usbmouse +usb-storage +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +veth +vfat +via686a +via-rhine +via-velocity +videodev +vitesse +vt1211 +vt8231 +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +wacom +wavelan_cs +wd +wire +wl3501_cs +wp512 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +yealink +yellowfin +yenta_socket +zalon7xx +zd1211rw +zlib_deflate --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/hppa/hppa64 +++ linux-2.6.24/debian/abi/2.6.24-24.56/hppa/hppa64 @@ -0,0 +1,4524 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/loop 0xc7edce2e loop_register_transfer +EXPORT_SYMBOL drivers/cdrom/cdrom 0x06f38f07 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x16ba49fa cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x2d61ca25 cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x3995469b cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0x57675239 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x97147f42 unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xc8801a60 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe3ead6cd cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe8807028 cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0xed377eb1 cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0xf8a0d7ad cdrom_ioctl +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/ide/ide-core 0x0014d1e1 drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0x05084af3 ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x1a28b9bc ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x2564a940 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x25c85cd0 ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0x2b390868 ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0x3fac1e42 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0x40b986a3 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x463e18cd task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x486f8028 ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x52aeba97 ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x53b73508 pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x5fe48e74 task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x62ab9844 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0x6b84e389 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x7097ab87 ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x75917a72 default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0x7a1a128b __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0x7aa91646 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x8c1970e5 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x8e8b9b1f SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0xa0ebfd5d ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0xa59d31ba ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xb511f915 ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0xb53e4ad2 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xbae47dc0 ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0xbc957571 ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xd4de011d generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0xddf2056b __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0xe395d81e ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xf1dced4c ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0xf75e28ad ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0xf87f7075 ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xf917473b ide_register_hw +EXPORT_SYMBOL drivers/input/input-polldev 0x12d7dfca input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x3804df8d input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x43160d75 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6ebd5953 input_free_polled_device +EXPORT_SYMBOL drivers/md/dm-mirror 0x0141d76c dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x06bc5755 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x38ba7ea8 dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x955ed182 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x0a85d291 kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x0f37de99 dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x1ae9ba43 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0x32535225 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x35ca914e dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x40c36606 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0x5597002c dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x68cfcbbf dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x7f0e879e dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x8634c525 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0x869455bf dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xaacf1ed3 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xaf15c5a1 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc8250ddd dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xe053ee45 kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xec47410f kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xee479421 dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xfa46a3de dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0xfc422ef6 dm_put_device +EXPORT_SYMBOL drivers/md/md-mod 0x027556bc md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x2f6d0e50 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x40aa9c2a bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x60960759 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x6388a592 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x63e752a0 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x725eea44 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x7b7ef523 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x92d04053 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0xbf5864da md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xc753e9a0 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xd9e2d055 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0xe7cd63b1 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xeba560f6 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xf3218892 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xfd6c65a5 md_error +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xdedc6cfc v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1dcaa0c8 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2f639468 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x76ba9a9a v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x95284709 v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9c7de443 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbecd2858 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc1bd89f6 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc369097d v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1764e31 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1f45082 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xed275428 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0x181722a0 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x1cdb359b video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x30d2da4a video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x39d9ba5f video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x41be66a2 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x6f050cc3 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x87cb751e video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xcbd5bad5 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xdc95d526 video_devdata +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06e2858c mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1ad7c053 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b0de3eb mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x41a8174b mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x42dbc0d7 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x490bff1d mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4f8adba8 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x516d816b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x583f6487 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7056620e mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x78aeefda mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7aea41b3 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x935770d9 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9bfcd6aa mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9cd86f9d mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa5f6a723 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa98fc2c0 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd3435f10 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9735427 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdc6b82a6 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf0c4e96b mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe150062 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05c9f237 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0e298519 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29854f0f mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29e14973 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2ecdd71c mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2eff4b5a mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ae78f03 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x492b7d3a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7208288f mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7f55c214 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x93470066 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9414e7c6 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x95ad108f mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa31dcc8e mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa8eaf1ee mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbc3b862c mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc299a927 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xca911721 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xccfe048c mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddc21a7b mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdfc5009d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfef69619 mptscsih_abort +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c13719e i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1fb8bd19 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x25f7aa3c i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2b873959 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2d0cdb10 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4b1c36b9 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4b217042 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x647a64ab i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x654f9fa7 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x74fef06d i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7eafee4f i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9078db0f i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9c0f1e78 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9cec353f i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9dc56831 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb7f9268f i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbcee35c8 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcdb4b764 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdaeead8c i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe2043eb4 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf4996d16 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf807e626 i2o_msg_get_wait +EXPORT_SYMBOL drivers/misc/ioc4 0x33712cdf ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xfd339d3e ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0130e4c8 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x0223c1e1 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x053fd4d6 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x0590c0d1 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x1429810a tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x1713f32c tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x3ea0c3fb tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x403941ae tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5536312f tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x69b80e0d tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x923e8eac tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xd78cdaef tifm_queue_work +EXPORT_SYMBOL drivers/net/8390 0x5bec83d1 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x9913ce6d __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xb90ac779 ei_open +EXPORT_SYMBOL drivers/net/8390 0xefdd2ff6 ei_close +EXPORT_SYMBOL drivers/net/mii 0x0e945b56 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x22efc96d mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x3c0b8314 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x448865fc mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x4a76018f mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x57e427c2 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xc190202e mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xf8fd36aa mii_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/fixed 0x370b4e43 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0xcb496c64 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x099ec69f phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x0fa4188b genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x1ffb4e5c phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x2162e862 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x333efb94 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x3b3d5771 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x3c5f7035 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x3d56b404 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0x442a962d phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x448ec9e7 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x5436cb52 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x560960ac phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x5b6ca1fb phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x66fd1526 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x684498db phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x6cb08fb3 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x6f25e02b phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x77709236 phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x78884b36 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x86ab88b1 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x87edaeb0 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x91656802 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x9642f5c0 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xa0882c2b phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0xaf917242 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0xdeb8fa38 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xe5838bd5 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xf92c4efe phy_ethtool_sset +EXPORT_SYMBOL drivers/net/ppp_generic 0x134626c6 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x2c41b505 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x4ee461f9 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x8c525ea7 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xafa35117 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xbb355252 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xc1b216ef ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xd9174aa9 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xe9ebd2d1 ppp_unit_number +EXPORT_SYMBOL drivers/net/pppox 0x3cc2449e register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x6871a243 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0c48415 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0x5fbcb691 mii_phy_probe +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x5c6237fa alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x9b720786 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x9de9b7f0 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xb4bf9a0e free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xdab2fc99 __orinoco_up +EXPORT_SYMBOL drivers/parport/parport 0x023ffe11 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x040a0db3 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x0a290719 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x1524dcab parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x2660920a parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x2e429761 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x3814abd7 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x40234154 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x40c74788 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4470ed80 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5e0a3021 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x667921b3 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x75734217 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x7ce93f31 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x8b240746 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x90b90f32 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x922f81c9 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xa7b512b8 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xaa42e436 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xad2cf002 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xb251d0ce parport_release +EXPORT_SYMBOL drivers/parport/parport 0xb93901da parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xbba44c4b parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xbbc9181d parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xc0d6d1ad parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xc1ca47d7 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xc7bb4054 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xe7e05a33 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xe93318e8 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xfba9f626 parport_find_base +EXPORT_SYMBOL drivers/parport/parport_pc 0xdb813c2e parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xe5c4f537 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x23703ac9 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2ba0d3f7 pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2c9eecd4 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2f21842c pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x355b1f9b pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3e44739d pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x40534dea pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x47207584 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x676509c9 pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x68889503 pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7261806f cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x83c5402b pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xacd7cbb0 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc7701bd1 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc9767cd9 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd93c56fc pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe12e78d8 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x07e6039e pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0df242d1 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x12dae413 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x176e9e17 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1ea45b01 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x344fd61e pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x36ab23a8 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x414d0176 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x419a7460 pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4432a29b pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x47620117 pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x59f2c7fd pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5c82484a pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5f31acb5 pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6841e5f6 pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6f4faaa4 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x70f9dee6 destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x74506c22 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fa57851 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x819e8320 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x820b4852 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x86015fd5 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8d283140 release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8e9a04a0 pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9362c9e6 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaab5884f pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xabeb6252 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc1c0f971 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc8f1b1e6 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xce71374f pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd90498e6 pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x912b2f02 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/scsi/53c700 0x37b2f525 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0x444af1c3 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x5175c0f0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x6c794152 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xa30a1f2f lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x81971b53 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2fbd68d3 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x356c21a9 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x69b4edd4 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x83d6f171 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xcfd6cf28 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2591ded qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x13e49594 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x4eee7122 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x83d60fbd raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x145bde60 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x182fe4d7 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1d7bcfe0 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x284f12e4 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2a11b1ee fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2cf99d23 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x39dfea19 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x40097562 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa66053c8 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb91fd15b fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfb45c217 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ccf65e0 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1d4aa526 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1f7525cd sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2b157c2a sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2f70c314 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3c614191 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ead0ee4 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5c87bc25 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6bb1ea89 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6ca32c2a sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x71a12255 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78348dad sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x920704c8 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa4ba65ae sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xab001973 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb65ee934 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbacbcec7 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbbf6f0b8 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd58d19f sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc97f9e09 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd09a3c3d sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd1c4eeb5 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdbc32551 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xecfe7300 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf9ab701a sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfdb05e38 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/ssb/ssb 0x016cd0ee __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x0bccfcf2 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x0e38e896 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x251a8e9f ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x28f272f9 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x340c6347 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x47d1d0e2 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x4dafab21 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x61caed9f ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x894da328 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xa0d5fc0a ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xb143be94 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xba9e6a03 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xbc6d9321 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcf87e87a ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/usb/core/usbcore 0x006dd527 usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x008df152 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0347a4a4 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0dfc832a usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1009c1de usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1075ef2a usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x12a87cf3 usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x22324478 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2605f9bf usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x27e3d896 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2a2c5117 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x334ccf64 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x33ff934a usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3530947d usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4da1571a usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0x567c5fc4 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x573fccce usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5e211981 usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x61c274eb usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x61e1706e usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x637b92de usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x725b943d usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x748e1f1c usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x750a83f9 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x757610ac usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x77b1b224 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x80d65e00 usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0x861bb838 usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x87dfec8f usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8c821774 usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x94781e35 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa0637a9f usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xaa544166 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbeea5a22 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc03fc700 usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc41894fb usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc693ff8b usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc6a19679 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc702904d usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcdd39ed2 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd1c2bf39 usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd290ed22 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd966e0d2 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdeebeb36 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe6be9baa usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0xec8d1688 usb_sg_init +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xa7f5a6e9 sl811h_driver +EXPORT_SYMBOL drivers/video/backlight/backlight 0x2a9c6bbc backlight_device_register +EXPORT_SYMBOL drivers/video/backlight/backlight 0xdaca79ab backlight_device_unregister +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x3a230d0c lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8fa9fcdb lcd_device_unregister +EXPORT_SYMBOL drivers/video/output 0x45ab4da4 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xad723d79 video_output_register +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x0ef48587 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x23840eab w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x777f5c5d w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xb2b5b6c5 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x105fbc72 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x27150994 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x4eb85c03 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6220dc16 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x675e87b5 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x6a71d03e config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x7e3fb4b7 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x92f83575 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xd26d43b1 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xdbca2544 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xe8c52b63 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xf902e465 configfs_depend_item +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa73dfa64 nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/lockd/lockd 0xe93e733f nlmclnt_proc +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x418a1a7a nfsacl_decode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xcead9945 nfsacl_encode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0e195c1c nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x28fb929b nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x13c0c38e crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0x41bcd8b3 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL lib/zlib_inflate/zlib_inflate 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL lib/zlib_inflate/zlib_inflate 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL lib/zlib_inflate/zlib_inflate 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL lib/zlib_inflate/zlib_inflate 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL lib/zlib_inflate/zlib_inflate 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL lib/zlib_inflate/zlib_inflate 0x881039d0 zlib_inflate +EXPORT_SYMBOL lib/zlib_inflate/zlib_inflate 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL net/802/p8022 0x2111d883 register_8022_client +EXPORT_SYMBOL net/802/p8022 0x8da3c21f unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x769f7193 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xae1feb3f unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x016346d9 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21156e33 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x36a39bbc p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3cf598a8 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x403a1c19 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x506119a8 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x53b4a8cb p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x62d13cfb p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x65f60aa6 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x7f214637 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x7fb8be75 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x85da5532 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x86eca123 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x92f85e96 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x95eaea84 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x9eb00e7d p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xa022b0de p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xa43ce343 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xc2867b6a p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xc700dd04 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xc7690607 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xc9c5ce38 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xd3d56f39 p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7c83b46 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe9312a9b p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xeabe9e4f p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xf145495a p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/bridge/bridge 0x5494e55c br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x013486e6 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x217186cb ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x43b9e10b ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x829e3a3c ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9c6dae51 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb1e283f3 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb29d366f ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb90483eb ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc9be8454 ebt_unregister_watcher +EXPORT_SYMBOL net/ieee80211/ieee80211 0x11641437 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x293da22f ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x39fb49b9 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x3c4e381e ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4bafd936 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4bbe8a07 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x56fece98 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x62c9f0f6 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6a86de9c alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6af716eb ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x78f3deb8 ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7fe2ea84 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0x82b1a8ba ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x8cdf3694 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x90edd52a ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa5c6b910 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc66adeb4 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc73feae0 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf59382c0 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x558f82d2 ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x6cb38399 ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x7082f8c6 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x890ec1c2 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xb2897988 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xdc9e972e ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ipv4/inet_lro 0x13b1cfdb lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x30859ea5 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0x62991add lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xa3110850 lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xc829ba90 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xd214716d lro_flush_pkt +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x148db17d arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x98d61d95 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xf35fbf0a arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb01c2733 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb78e5565 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe1be4605 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x08f0e400 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x55a1ad21 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x913a2410 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb38b1583 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd35efb53 nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdc657698 nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe05d0390 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xea014141 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x4f2033c8 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x888db454 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x01757c5e xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x034033f9 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x27d406d7 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x297c842a inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x3408d305 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x3f5213cc rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x47a0bbdc inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x5a78b990 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x60dc9776 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x71266733 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x78a1d54c ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x7d8c3e34 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x84d8f898 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x85e872c3 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x92cf481c xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xa4264cc2 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xa688673c compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xab85a699 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xadd875e2 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xb74ecdf6 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xc7ee5355 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd264a15e ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0xd57c5983 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0xd57c8a68 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xdf7a55cd nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xe28ad5f3 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0xe50ff1ec inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xef095ea5 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xf5f5011c ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4f629dae ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb9bbd268 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd974c52f ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe853d354 ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3f282ea8 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xebc3a08e xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x556643e3 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x596fc5a3 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL net/llc/llc 0x649b51c9 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x69a65c1c llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x743abce0 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x916d2f64 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xb22b3b23 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xef687a97 llc_sap_open +EXPORT_SYMBOL net/mac80211/mac80211 0x078fc944 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x12f31cea ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1ccdbe57 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x28453f33 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x2a2bc88a sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3533fc4a ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x42a69bec ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x7524af89 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x75b59fb9 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x78bed1fd ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x82fe4356 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x842f33da ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8b27b696 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x97867039 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x97bb0a32 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9eacded4 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaf2309f1 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xb3468eea ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc810df4e ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xc8d08a17 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xca23901d ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0xd4c89ebe ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd554193d sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0xf3ab6e79 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xf65671f7 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xf6e119f3 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xfa4d6b52 ieee80211_wake_queues +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x12a55ed1 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xf31ae86c __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x0e0ab430 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x18fdc3d0 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x1e84a276 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x62058ad1 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x6b22adbc xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6edf03d3 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7c52049b xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xaf15f90c xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xe97ddc60 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xf068dc09 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf663e69a xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xfece1938 xt_register_target +EXPORT_SYMBOL net/rfkill/rfkill 0x3d4e6ccc rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x4ad377a9 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x8c0c27b2 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0x933406d3 rfkill_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0105b783 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x01e34af7 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0e25ffaf rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x21aca02e rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x353e6e93 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3deea899 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x47cbac91 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x555c581d rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x59c3180a rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x81ee6007 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x930632d7 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa570b837 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc1b72be8 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd039d3bd rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf8558696 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2f2a8147 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x360c3889 gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3af0560d gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x50ac8729 make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5538d237 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x644e1ac5 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x9908780a gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbbbc742b gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc983c5f6 gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xda41bcc6 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe459b119 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe98f91bb gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xef9fcf14 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf5a23324 gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf5fa8891 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x01498fc7 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0501892f rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e45f82 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x070f5ece xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x09a4f30f auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x10e9483f rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x14d83e97 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1874d49f svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x18adfdde rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1c2ebaa6 rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1db02b83 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1f12bdc9 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x22ad96ba rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2525de66 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x26740665 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2b746953 rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2d84b761 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2ddf5fb5 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3027e050 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31907272 svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x37c72182 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3a147111 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3baace3b rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3dea4287 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x41883d43 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x426f9acb rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x42746334 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x42e7b8c8 rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x44b57b38 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x48838a8a xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4a7fbf35 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x502d27e2 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x558db7c7 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5c0722a9 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5deb4bd9 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x62e1c970 xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x678b72d2 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x679dbc45 svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0x686758cf cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71214f40 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x73a59dd8 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7dd0b21a svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7df040ac rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x834021ed xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8873ee9c svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8f0f923f rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x900b8ea9 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x937d8410 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x94fbc985 rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9a0ea18a xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9c321c6b rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9dd13f48 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9f15c6f1 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa57f7562 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa85b2186 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xad4a8b92 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf3ee20f svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb546ef93 xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0xba7d61dd cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbb9a15f0 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbcda802a auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc4be76db rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc5927a38 rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc83b495d rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcbb550bd svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xccb4ee7a rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcee3925b rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd7890813 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0xda9c5ad1 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdbfbcb0f svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdd204925 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xde1f9efb rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0xde40ce7a rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe292715a cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe339539f svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe35bfa04 xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5d7e5a4 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe623cfd7 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe7cc45a9 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe7eb638c xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xea02ced5 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf0355855 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf14c2511 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf38b6255 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf4dc3de2 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf6bcc63b auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf72c2583 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8a20c89 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8ae3e73 rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfbd5708c rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfe6dfbe0 auth_unix_forget_old +EXPORT_SYMBOL net/tipc/tipc 0x00d250a1 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0a13f613 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x204e336e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0x218c9f22 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x395da8d3 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3e93b677 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4e796163 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x66cfeef9 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x7f931574 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xa42dae55 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xa772c23d tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xc1b6d21c tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe6c2594d tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xe7f7c8e4 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x0b753be2 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x3ac741c1 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x7af15a66 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x94925cf8 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL vmlinux 0x00020b70 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x001f2118 vfs_read +EXPORT_SYMBOL vmlinux 0x003ac14f sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x007c5c1f compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x007e465c dev_load +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x008c8df3 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x00e9485d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0102fdb8 proc_root_fs +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x0141e365 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x014555db set_user_nice +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01c73a37 skb_under_panic +EXPORT_SYMBOL vmlinux 0x01fab075 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x020187c7 mod_timer +EXPORT_SYMBOL vmlinux 0x0242f889 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x02479655 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x025d6478 skb_make_writable +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x028862e5 pci_set_master +EXPORT_SYMBOL vmlinux 0x02921bd5 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x02a01458 $$divI_3 +EXPORT_SYMBOL vmlinux 0x02aa1856 inet_bind +EXPORT_SYMBOL vmlinux 0x02f421b2 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x02f924b9 new_inode +EXPORT_SYMBOL vmlinux 0x0346e1c8 remove_suid +EXPORT_SYMBOL vmlinux 0x0350e2f4 up_read +EXPORT_SYMBOL vmlinux 0x035ac451 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x036ae293 d_validate +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037c7967 file_update_time +EXPORT_SYMBOL vmlinux 0x037fca33 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x03970b65 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x039e4a61 malloc_sizes +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x0400f0ef scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0423a8ab pdc_stable_write +EXPORT_SYMBOL vmlinux 0x04289d3c __scm_send +EXPORT_SYMBOL vmlinux 0x043b8483 __kfifo_get +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0457fb8a tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x0460446d force_sig +EXPORT_SYMBOL vmlinux 0x04643964 pci_request_regions +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04aa2ea2 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x04aaec01 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x04d20d1c spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x04f2bf2e tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x04f92079 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05331c52 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x05692269 open_exec +EXPORT_SYMBOL vmlinux 0x056c365d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x057af20c pci_scan_slot +EXPORT_SYMBOL vmlinux 0x05823689 read_cache_pages +EXPORT_SYMBOL vmlinux 0x059baffc krealloc +EXPORT_SYMBOL vmlinux 0x0602b713 alloc_disk +EXPORT_SYMBOL vmlinux 0x0611ff95 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x062aba95 mempool_free +EXPORT_SYMBOL vmlinux 0x06698385 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06a1c01b scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x06bd1be4 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x06cb34e5 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x06f953af dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0712ed8f tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07309c2e sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x0745a59f module_refcount +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cd4092 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x07fa6f0d copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x080968ae vc_lock_resize +EXPORT_SYMBOL vmlinux 0x0821f323 pci_release_regions +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0856a22f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x08726599 cpu_online_map +EXPORT_SYMBOL vmlinux 0x088a4e27 take_over_console +EXPORT_SYMBOL vmlinux 0x088d9098 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x08b25742 __scm_destroy +EXPORT_SYMBOL vmlinux 0x0902935a tty_unregister_device +EXPORT_SYMBOL vmlinux 0x09240418 sock_wfree +EXPORT_SYMBOL vmlinux 0x092b007a sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0961c43f sock_setsockopt +EXPORT_SYMBOL vmlinux 0x0965b8aa __dst_free +EXPORT_SYMBOL vmlinux 0x0994c20f xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x09a6211b d_alloc_anon +EXPORT_SYMBOL vmlinux 0x09a95982 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x09b80379 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x09b92018 vfs_link +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09f9e272 uart_resume_port +EXPORT_SYMBOL vmlinux 0x0a0bee75 console_stop +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a536ed5 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x0a616914 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x0a6d9f53 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0a9d4620 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x0ab74952 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0af7cdac xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x0b0b10a2 seq_puts +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1d143b vfs_create +EXPORT_SYMBOL vmlinux 0x0b2d9b4a netif_device_detach +EXPORT_SYMBOL vmlinux 0x0b3a1ac4 generic_readlink +EXPORT_SYMBOL vmlinux 0x0b642d08 kernel_read +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b93b033 lease_modify +EXPORT_SYMBOL vmlinux 0x0bdc71a2 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x0c01f4c3 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x0c51d6e7 dev_add_pack +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6a569c add_disk +EXPORT_SYMBOL vmlinux 0x0c6ba056 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x0c704952 kill_litter_super +EXPORT_SYMBOL vmlinux 0x0c84feb9 journal_set_features +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c8e4901 console_start +EXPORT_SYMBOL vmlinux 0x0ca00b98 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x0ca24500 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x0cd2a076 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x0cdf0b9e init_buffer +EXPORT_SYMBOL vmlinux 0x0d12aa38 skb_checksum +EXPORT_SYMBOL vmlinux 0x0d233983 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x0d342208 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0daedd4c blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0df2e26a scsi_finish_command +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0eb3d8e7 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x0f1c7120 seq_release_private +EXPORT_SYMBOL vmlinux 0x0f1ef871 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x0f28b5c7 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x0f529bce pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x0f5547a0 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x0f618d69 sock_no_poll +EXPORT_SYMBOL vmlinux 0x0f7a7c4f tcp_ioctl +EXPORT_SYMBOL vmlinux 0x0fc9e116 mb_cache_create +EXPORT_SYMBOL vmlinux 0x0fd47bff dget_locked +EXPORT_SYMBOL vmlinux 0x0ff1db60 sysctl_data +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10902bf7 insb +EXPORT_SYMBOL vmlinux 0x10c3daa6 mapping_tagged +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x111bcb2c groups_free +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x114253c2 bio_put +EXPORT_SYMBOL vmlinux 0x114a6f8c dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117ba658 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x119d8762 register_console +EXPORT_SYMBOL vmlinux 0x11a359cc __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x1228329d pdc_stable_verify_contents +EXPORT_SYMBOL vmlinux 0x12416345 cdev_add +EXPORT_SYMBOL vmlinux 0x12432a87 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x1245fe88 journal_update_format +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x12ea337e outsb +EXPORT_SYMBOL vmlinux 0x12f194a3 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x12fa180d __cmpxchg_u32 +EXPORT_SYMBOL vmlinux 0x13399f40 follow_down +EXPORT_SYMBOL vmlinux 0x1362b402 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x13a72d59 datagram_poll +EXPORT_SYMBOL vmlinux 0x13ae064b mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x13b85150 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x13dc3510 blk_free_tags +EXPORT_SYMBOL vmlinux 0x14060260 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x14387653 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x144ed3a1 dev_base_lock +EXPORT_SYMBOL vmlinux 0x14d58d72 bio_hw_segments +EXPORT_SYMBOL vmlinux 0x1501623b __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1557396b vm_insert_page +EXPORT_SYMBOL vmlinux 0x15819949 __pagevec_release +EXPORT_SYMBOL vmlinux 0x15a0ca1e alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x15a1863d module_put +EXPORT_SYMBOL vmlinux 0x15d01daa dput +EXPORT_SYMBOL vmlinux 0x161f631d tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x163e6a35 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x16479e8f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x16892740 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x1689f63e xfrm_state_add +EXPORT_SYMBOL vmlinux 0x16c00e49 sock_no_getname +EXPORT_SYMBOL vmlinux 0x16c83dcc bdi_init +EXPORT_SYMBOL vmlinux 0x16f3608b kill_fasync +EXPORT_SYMBOL vmlinux 0x171442de blk_init_tags +EXPORT_SYMBOL vmlinux 0x171b9d87 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x17200e5f tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x172c4545 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x173117d5 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x173ac2df skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1786f5f0 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17b10aef dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x17c152ea tcf_register_action +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17d36b6f get_user_pages +EXPORT_SYMBOL vmlinux 0x17d4d2b1 eth_header_parse +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17ed15a7 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x17fc8840 __cmpxchg_u64 +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x187797e1 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x18794ed0 d_delete +EXPORT_SYMBOL vmlinux 0x18980fd4 sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x18b89340 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x193d1063 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x1961aace generic_file_llseek +EXPORT_SYMBOL vmlinux 0x1986cf21 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x19944786 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19c6e371 blk_put_request +EXPORT_SYMBOL vmlinux 0x1a08bdf3 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x1a18314d nla_reserve +EXPORT_SYMBOL vmlinux 0x1a1c76d4 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x1a370426 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x1a4d74c4 nf_log_packet +EXPORT_SYMBOL vmlinux 0x1a62be95 __page_symlink +EXPORT_SYMBOL vmlinux 0x1a7bc97c find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x1a820d30 dentry_unhash +EXPORT_SYMBOL vmlinux 0x1a8b288e journal_start +EXPORT_SYMBOL vmlinux 0x1ab81146 d_splice_alias +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae26c1f inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b2311cb __bread +EXPORT_SYMBOL vmlinux 0x1b5d3af6 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b675af3 key_put +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb3521f do_munmap +EXPORT_SYMBOL vmlinux 0x1bc5cebb cpu_possible_map +EXPORT_SYMBOL vmlinux 0x1c13f036 fget +EXPORT_SYMBOL vmlinux 0x1c5fddcf fixup_put_user_skip_2 +EXPORT_SYMBOL vmlinux 0x1c617330 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x1c6eebb9 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cdca5f2 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x1d0561ae gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x1d119ddd kernel_getsockname +EXPORT_SYMBOL vmlinux 0x1d247f01 skb_copy +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d57210a kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x1d82b5ab uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x1da3101c inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1dbcd3c5 eth_header +EXPORT_SYMBOL vmlinux 0x1dee8b8e scsi_execute_req +EXPORT_SYMBOL vmlinux 0x1e0f7b6f neigh_event_ns +EXPORT_SYMBOL vmlinux 0x1e308730 end_queued_request +EXPORT_SYMBOL vmlinux 0x1e5543e2 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1ed7e854 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x1edc9598 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x1f021183 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x1f04254e ip_defrag +EXPORT_SYMBOL vmlinux 0x1f219bb0 $$divU_14 +EXPORT_SYMBOL vmlinux 0x1f37ef83 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x1f7cc628 mempool_create +EXPORT_SYMBOL vmlinux 0x1f87bf1e tcp_unhash +EXPORT_SYMBOL vmlinux 0x1fae7a0b wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x1fc91fb2 request_irq +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x201665f9 nf_reinject +EXPORT_SYMBOL vmlinux 0x202d5911 d_move +EXPORT_SYMBOL vmlinux 0x203ec206 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x207a9eca uart_get_divisor +EXPORT_SYMBOL vmlinux 0x20ae3c24 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x20d7d87c scsi_print_sense +EXPORT_SYMBOL vmlinux 0x2106d982 find_or_create_page +EXPORT_SYMBOL vmlinux 0x21abcef7 fput +EXPORT_SYMBOL vmlinux 0x21b00fd0 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x21c1455c flush_data_cache_local +EXPORT_SYMBOL vmlinux 0x21ca1b2c register_con_driver +EXPORT_SYMBOL vmlinux 0x21e8dbde unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x2206fbba neigh_seq_next +EXPORT_SYMBOL vmlinux 0x226c181a __nla_put +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x228e811e skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x2290b7db blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22c26a55 outl +EXPORT_SYMBOL vmlinux 0x230ebcca scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x231cf494 up_write +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x23806e85 __brelse +EXPORT_SYMBOL vmlinux 0x23838107 __down_write +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23a84b27 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x23efb5e7 kunmap_parisc +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24055ff2 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x243a2838 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x244b1156 inet_accept +EXPORT_SYMBOL vmlinux 0x245fb02d unlock_page +EXPORT_SYMBOL vmlinux 0x247aaec4 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x24bd930a outsl +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x251d2bab sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x2522d581 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x252d8d32 flush_old_exec +EXPORT_SYMBOL vmlinux 0x2537bacb tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x25482e8f remove_inode_hash +EXPORT_SYMBOL vmlinux 0x255683c0 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x259a4fc1 locks_init_lock +EXPORT_SYMBOL vmlinux 0x25ba121c mempool_resize +EXPORT_SYMBOL vmlinux 0x25fa6f17 wait_for_completion +EXPORT_SYMBOL vmlinux 0x264540e2 sock_release +EXPORT_SYMBOL vmlinux 0x267f0355 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x267fc65b __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x26f7f79a pdc_tod_read +EXPORT_SYMBOL vmlinux 0x26fd14ac submit_bh +EXPORT_SYMBOL vmlinux 0x26ff4769 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x27175b84 devm_free_irq +EXPORT_SYMBOL vmlinux 0x27218ec8 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x2725683b udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x273b5eb9 deny_write_access +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27b47413 bio_split_pool +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27f9dffb input_register_device +EXPORT_SYMBOL vmlinux 0x284864b6 pci_get_device +EXPORT_SYMBOL vmlinux 0x285e5cea xfrm_register_type +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x2890be51 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2892691f unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x28d10e18 mpage_writepage +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28e49a9e inode_setattr +EXPORT_SYMBOL vmlinux 0x28e52468 init_task +EXPORT_SYMBOL vmlinux 0x290add20 inet_getname +EXPORT_SYMBOL vmlinux 0x291cfd2c simple_set_mnt +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29db0864 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x29fe2400 dcache_stride +EXPORT_SYMBOL vmlinux 0x2a3352e3 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x2a637f74 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x2aa07b5d inet_frags_init +EXPORT_SYMBOL vmlinux 0x2ac0b281 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x2ae13856 unlock_super +EXPORT_SYMBOL vmlinux 0x2af539d2 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x2b0394e0 nf_register_hook +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b28bd8c alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x2b40baff __down_write_nested +EXPORT_SYMBOL vmlinux 0x2b7b58a6 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x2b9f1ec2 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x2ba19757 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2babebf1 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x2bb06ada neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x2c09877b nf_register_hooks +EXPORT_SYMBOL vmlinux 0x2c1d0b79 $$divU_3 +EXPORT_SYMBOL vmlinux 0x2c2bfc00 seq_open +EXPORT_SYMBOL vmlinux 0x2c9baef3 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2cc1e35d tcp_close +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cf50076 security_inode_permission +EXPORT_SYMBOL vmlinux 0x2d228193 ll_rw_block +EXPORT_SYMBOL vmlinux 0x2d3d63cc bdput +EXPORT_SYMBOL vmlinux 0x2d69aeff idr_remove +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2dbc62f1 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x2dd7d572 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x2ddc3475 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x2ddd94d0 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2dfc5c2f pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x2e5e0c23 free_netdev +EXPORT_SYMBOL vmlinux 0x2e674618 mnt_unpin +EXPORT_SYMBOL vmlinux 0x2ea03e7d proc_root_driver +EXPORT_SYMBOL vmlinux 0x2ed19658 aio_complete +EXPORT_SYMBOL vmlinux 0x2edfe434 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x2eeee3de pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f52d03d nf_hook_slow +EXPORT_SYMBOL vmlinux 0x2f53d1bb ida_destroy +EXPORT_SYMBOL vmlinux 0x2f84946c scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x2f84b8e6 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x2fb6febd posix_test_lock +EXPORT_SYMBOL vmlinux 0x2fcc7fdd arp_find +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2ff0faa4 keyring_clear +EXPORT_SYMBOL vmlinux 0x30171eae d_rehash +EXPORT_SYMBOL vmlinux 0x30236113 scsi_execute +EXPORT_SYMBOL vmlinux 0x307acde8 flush_kernel_icache_range_asm +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3130161a compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x3143737a dst_destroy +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31725618 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x31755723 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x31829811 __find_get_block +EXPORT_SYMBOL vmlinux 0x318aa254 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x319909e1 aio_put_req +EXPORT_SYMBOL vmlinux 0x31a1f3f4 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31e9a269 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x32093cc7 __udivdi3 +EXPORT_SYMBOL vmlinux 0x323222ba mutex_unlock +EXPORT_SYMBOL vmlinux 0x324380f1 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x325ce937 eisa_bus_type +EXPORT_SYMBOL vmlinux 0x328436ca pci_bus_type +EXPORT_SYMBOL vmlinux 0x32f550cc set_binfmt +EXPORT_SYMBOL vmlinux 0x3311fe73 nf_log_register +EXPORT_SYMBOL vmlinux 0x333256e8 inet_select_addr +EXPORT_SYMBOL vmlinux 0x3343086e generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x3363be48 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x336cd9af blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33e16d5d xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x33fb5ae0 make_bad_inode +EXPORT_SYMBOL vmlinux 0x33fe31ca __lock_buffer +EXPORT_SYMBOL vmlinux 0x3423c097 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x342633f4 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x3459bf3a neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x34999bf8 flush_kernel_dcache_page_addr +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a1f34e dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x34a6b3d8 iget_locked +EXPORT_SYMBOL vmlinux 0x34ad8227 igrab +EXPORT_SYMBOL vmlinux 0x34b1afa2 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x34c32599 misc_register +EXPORT_SYMBOL vmlinux 0x34d146a1 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x34f9e7d5 idr_destroy +EXPORT_SYMBOL vmlinux 0x353ea7e4 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x354b2df9 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x357739d7 invalidate_partition +EXPORT_SYMBOL vmlinux 0x357ebb1e request_key_async +EXPORT_SYMBOL vmlinux 0x359103fe bioset_create +EXPORT_SYMBOL vmlinux 0x35b2d9c5 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x35fe47a1 init_timer +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x3628e9ac __elv_add_request +EXPORT_SYMBOL vmlinux 0x36631380 d_invalidate +EXPORT_SYMBOL vmlinux 0x3672bc7f pci_get_subsys +EXPORT_SYMBOL vmlinux 0x3680e69f journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36a89b01 ida_get_new +EXPORT_SYMBOL vmlinux 0x36ab31fb generic_make_request +EXPORT_SYMBOL vmlinux 0x36e47222 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x371e4950 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x376cf82c udplite_get_port +EXPORT_SYMBOL vmlinux 0x379ba462 proc_dostring +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x38169123 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x38839430 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x388565e4 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x38b854d4 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38e0ce48 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x3946a3d1 sock_map_fd +EXPORT_SYMBOL vmlinux 0x395c228c dev_remove_pack +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x398508db set_device_ro +EXPORT_SYMBOL vmlinux 0x39ca1c4d blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x39d8bb7f tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x3a013cbf blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a456c00 $$divU +EXPORT_SYMBOL vmlinux 0x3a6ffc76 journal_abort +EXPORT_SYMBOL vmlinux 0x3a978294 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3adc15b9 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x3ae831b6 kref_init +EXPORT_SYMBOL vmlinux 0x3b030539 filemap_flush +EXPORT_SYMBOL vmlinux 0x3b17b71d idr_find +EXPORT_SYMBOL vmlinux 0x3b857fde handle_sysrq +EXPORT_SYMBOL vmlinux 0x3bcc96b2 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd568ab d_namespace_path +EXPORT_SYMBOL vmlinux 0x3be58f1b proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x3bf0b37f compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x3bf1aa99 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x3c0e5ffb sget +EXPORT_SYMBOL vmlinux 0x3ca9e401 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d0cf0df __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x3d1448db mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x3d1b96b6 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x3d2f6f6b __lock_page +EXPORT_SYMBOL vmlinux 0x3d68bd4b flow_cache_genid +EXPORT_SYMBOL vmlinux 0x3d7a505f __bio_clone +EXPORT_SYMBOL vmlinux 0x3d7d3acc genl_sock +EXPORT_SYMBOL vmlinux 0x3d7fc30e secpath_dup +EXPORT_SYMBOL vmlinux 0x3d804be8 get_empty_filp +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3ddb5843 __f_setown +EXPORT_SYMBOL vmlinux 0x3de32204 __inode_dir_notify +EXPORT_SYMBOL vmlinux 0x3dfa20d1 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x3e28277b kill_anon_super +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e476d40 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x3e4b7805 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x3e6caebd add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x3ea7ab10 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x3eb617c6 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x3ed701b3 release_sock +EXPORT_SYMBOL vmlinux 0x3edc9401 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x3ee0d9b5 fasync_helper +EXPORT_SYMBOL vmlinux 0x3ee11328 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4d8703 bio_split +EXPORT_SYMBOL vmlinux 0x3f72073d d_alloc_root +EXPORT_SYMBOL vmlinux 0x3f82819f blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x3fa79c74 pci_find_device +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4007d57d uart_register_driver +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40627caf add_disk_randomness +EXPORT_SYMBOL vmlinux 0x40744fcc __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40b52c72 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x40f5e0cf sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x4109b35c file_permission +EXPORT_SYMBOL vmlinux 0x411d594a blkdev_get +EXPORT_SYMBOL vmlinux 0x412ddc0c dcache_lock +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x415d4ff6 km_policy_expired +EXPORT_SYMBOL vmlinux 0x4172b6a1 simple_write_end +EXPORT_SYMBOL vmlinux 0x41778baa input_release_device +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41a9f569 reset_files_struct +EXPORT_SYMBOL vmlinux 0x41c44141 tcp_prot +EXPORT_SYMBOL vmlinux 0x41e9d92d ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x42066d64 pci_iomap +EXPORT_SYMBOL vmlinux 0x423a008a pneigh_lookup +EXPORT_SYMBOL vmlinux 0x4262ae99 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x42a7be12 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x42acbf72 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x42cb7218 __alloc_skb +EXPORT_SYMBOL vmlinux 0x42cf1e86 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x42d3ea38 blk_start_queue +EXPORT_SYMBOL vmlinux 0x42f173bf sock_register +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4305ebd3 $$remU +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43634c11 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4394233a d_alloc +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43bc49b4 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x43bdd372 request_resource +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43f9205b security_task_getsecid +EXPORT_SYMBOL vmlinux 0x44098431 unregister_nls +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x441de738 device_to_hwpath +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x446456f7 sock_i_ino +EXPORT_SYMBOL vmlinux 0x4491de25 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x44b4c00c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c214d1 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x44c707d3 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x456bc396 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x456e18c4 sock_no_listen +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4572190a ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x45e0e09f pci_get_class +EXPORT_SYMBOL vmlinux 0x45ea74df copy_user_page +EXPORT_SYMBOL vmlinux 0x4610d538 km_policy_notify +EXPORT_SYMBOL vmlinux 0x4613fa3d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x46395e42 generic_removexattr +EXPORT_SYMBOL vmlinux 0x465e6fb9 tty_devnum +EXPORT_SYMBOL vmlinux 0x46cfbe9b xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x46fda94a gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x46ff98fa page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x4719ba4e kfifo_free +EXPORT_SYMBOL vmlinux 0x471f928f get_disk +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x477a0e8b generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47c9490d elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x47d567e7 generic_setlease +EXPORT_SYMBOL vmlinux 0x47ec6d40 seq_open_private +EXPORT_SYMBOL vmlinux 0x481e5902 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x484866b6 __inet6_hash +EXPORT_SYMBOL vmlinux 0x484ccee7 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x484f7993 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x48603639 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x48ccbc30 dev_mc_add +EXPORT_SYMBOL vmlinux 0x48e757cb pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0x48f9f12d complete_all +EXPORT_SYMBOL vmlinux 0x49169b44 generic_write_end +EXPORT_SYMBOL vmlinux 0x4932b2d6 block_read_full_page +EXPORT_SYMBOL vmlinux 0x49370481 sk_dst_check +EXPORT_SYMBOL vmlinux 0x493dc1ef inw +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x49627209 generic_listxattr +EXPORT_SYMBOL vmlinux 0x49ec7c1a neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a541e2a __umoddi3 +EXPORT_SYMBOL vmlinux 0x4a6d52f2 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x4ad17a2e tcp_disconnect +EXPORT_SYMBOL vmlinux 0x4ad4886d key_validate +EXPORT_SYMBOL vmlinux 0x4afd7e48 scsi_unregister +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b00cc66 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x4b0b99c8 single_release +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b8f13dc truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x4b9f3684 kfifo_init +EXPORT_SYMBOL vmlinux 0x4bad3732 filp_close +EXPORT_SYMBOL vmlinux 0x4bedc981 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1b69c9 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x4c3af445 __request_region +EXPORT_SYMBOL vmlinux 0x4c49f213 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c8102d5 find_task_by_pid +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4d00ca41 ilookup5 +EXPORT_SYMBOL vmlinux 0x4d13f408 input_open_device +EXPORT_SYMBOL vmlinux 0x4d276fd6 skb_insert +EXPORT_SYMBOL vmlinux 0x4d4565ee end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x4d60562f bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x4db59969 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x4dc38898 journal_revoke +EXPORT_SYMBOL vmlinux 0x4dcc7c28 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x4dd62818 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e0701c6 seq_putc +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7bc574 __xchg8 +EXPORT_SYMBOL vmlinux 0x4eabcb29 key_alloc +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4eebcfa4 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x4f2a719a scsi_host_get +EXPORT_SYMBOL vmlinux 0x4f5651c3 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x4f7c9836 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x4f87b69b is_bad_inode +EXPORT_SYMBOL vmlinux 0x4f90f043 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x4fafc154 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x4fb80492 bd_release +EXPORT_SYMBOL vmlinux 0x4fc85d69 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x4fea6aea put_files_struct +EXPORT_SYMBOL vmlinux 0x5012d8e8 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50637dc8 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x50a2a0de blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x50b6d6ea skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x50b6f09e ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x50b93adf journal_errno +EXPORT_SYMBOL vmlinux 0x50eef007 skb_seq_read +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51493d94 finish_wait +EXPORT_SYMBOL vmlinux 0x51710006 get_io_context +EXPORT_SYMBOL vmlinux 0x5193bc34 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x51afc97a neigh_create +EXPORT_SYMBOL vmlinux 0x51cd47e2 groups_alloc +EXPORT_SYMBOL vmlinux 0x51ea667b xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x52109cd5 free_buffer_head +EXPORT_SYMBOL vmlinux 0x5220462a compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x52354a0b mutex_trylock +EXPORT_SYMBOL vmlinux 0x529455a0 may_umount +EXPORT_SYMBOL vmlinux 0x52a34e49 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x52a49783 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52c7fb37 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0x52de064c posix_acl_permission +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53377cbd sock_init_data +EXPORT_SYMBOL vmlinux 0x533903d8 outsw +EXPORT_SYMBOL vmlinux 0x533f1c24 submit_bio +EXPORT_SYMBOL vmlinux 0x533f2750 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x53622bb3 pdc_get_initiator +EXPORT_SYMBOL vmlinux 0x536636f1 $$divI_14 +EXPORT_SYMBOL vmlinux 0x536a36de skb_pad +EXPORT_SYMBOL vmlinux 0x537a3ea3 lock_rename +EXPORT_SYMBOL vmlinux 0x53aca512 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d5b47b free_task +EXPORT_SYMBOL vmlinux 0x53e73804 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x53e98c16 netif_device_attach +EXPORT_SYMBOL vmlinux 0x541d6eaf register_nls +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x542b8e06 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x542e2caf sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x545e9688 unregister_netdevice +EXPORT_SYMBOL vmlinux 0x54817d0b netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x5481d474 ipv4_specific +EXPORT_SYMBOL vmlinux 0x54b9c5cd idr_init +EXPORT_SYMBOL vmlinux 0x54c40363 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ee1646 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x5507a0d5 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5557946c read_cache_page +EXPORT_SYMBOL vmlinux 0x5559dc2a ida_init +EXPORT_SYMBOL vmlinux 0x557016f3 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a76a9f nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x565aa0b4 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x565d9a27 journal_start_commit +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f941e6 udp_disconnect +EXPORT_SYMBOL vmlinux 0x56fe6675 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x5732f1ca __xchg64 +EXPORT_SYMBOL vmlinux 0x574a81a3 vfs_statfs +EXPORT_SYMBOL vmlinux 0x5751b47c journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5790b6b8 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x57b8d504 lclear_user +EXPORT_SYMBOL vmlinux 0x57f0df60 bd_claim +EXPORT_SYMBOL vmlinux 0x5804d958 kernel_connect +EXPORT_SYMBOL vmlinux 0x581860fd pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x5820cc4c textsearch_unregister +EXPORT_SYMBOL vmlinux 0x5841123f neigh_lookup +EXPORT_SYMBOL vmlinux 0x58568960 key_link +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585c5ee1 genl_register_ops +EXPORT_SYMBOL vmlinux 0x58977e2b generic_fillattr +EXPORT_SYMBOL vmlinux 0x58abbbc7 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x58ad633b __lookup_hash +EXPORT_SYMBOL vmlinux 0x58d282f6 lstrncpy_from_user +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594f5c89 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x598b6ee1 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59cf41c3 xfrm_nl +EXPORT_SYMBOL vmlinux 0x59d5d436 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59f1cd57 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x59fca08f init_mm +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4a8b22 generic_osync_inode +EXPORT_SYMBOL vmlinux 0x5a4ae1e8 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x5a52232a copy_io_context +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a6ab5d6 block_write_begin +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a993ff2 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x5ac5ed54 kernel_bind +EXPORT_SYMBOL vmlinux 0x5ac73e7f blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x5b5f51e9 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x5b94ca86 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x5bd812e2 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x5c03214f gen_new_estimator +EXPORT_SYMBOL vmlinux 0x5c0b16ea __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x5c1a37ad journal_stop +EXPORT_SYMBOL vmlinux 0x5c2fb03b __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x5c3906ca iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x5c5eb252 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x5c673bc8 tty_mutex +EXPORT_SYMBOL vmlinux 0x5c7a5c1b udp_prot +EXPORT_SYMBOL vmlinux 0x5ca51b6b dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccdd293 d_alloc_name +EXPORT_SYMBOL vmlinux 0x5cdde8da blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x5d327171 tcf_em_register +EXPORT_SYMBOL vmlinux 0x5d4aa73b $$divU_6 +EXPORT_SYMBOL vmlinux 0x5d59c0f1 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x5d7beae0 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dad36ef netlink_ack +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5dc80569 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x5dd236e6 sk_free +EXPORT_SYMBOL vmlinux 0x5ddb04de unregister_parisc_driver +EXPORT_SYMBOL vmlinux 0x5df5ce03 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e029525 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x5e636c80 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x5e9e5cb3 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x5ebb56fb down_read +EXPORT_SYMBOL vmlinux 0x5f28ae0a tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x5f43c52f generic_commit_write +EXPORT_SYMBOL vmlinux 0x5f51ad61 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x5f71fcad elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x5f9811cc get_fs_type +EXPORT_SYMBOL vmlinux 0x5fa888a4 ip_route_input +EXPORT_SYMBOL vmlinux 0x5fea33ef lock_super +EXPORT_SYMBOL vmlinux 0x5ff4b57f schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600937c7 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x601ca6b2 register_exec_domain +EXPORT_SYMBOL vmlinux 0x602ea1d9 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x604e0860 permission +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x60666f0f simple_statfs +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60c165bf sock_no_bind +EXPORT_SYMBOL vmlinux 0x60c2198d vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x60cd9852 __down +EXPORT_SYMBOL vmlinux 0x60f8416f qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x61082938 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x611225a6 pci_release_region +EXPORT_SYMBOL vmlinux 0x61296ca1 inet_listen +EXPORT_SYMBOL vmlinux 0x616d8910 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x61752a90 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x61760dd3 input_register_handle +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61cf7e88 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x6214344a tcf_hash_create +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62b51c23 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x62b9fe9b udp_ioctl +EXPORT_SYMBOL vmlinux 0x62ef6553 km_query +EXPORT_SYMBOL vmlinux 0x62faf25e netif_rx_ni +EXPORT_SYMBOL vmlinux 0x6303431f scsi_device_get +EXPORT_SYMBOL vmlinux 0x6367e462 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x63919353 scsi_print_command +EXPORT_SYMBOL vmlinux 0x639a42f2 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x63b1d670 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x63cb5516 scsi_register +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640a7078 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x6410cbfa scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x641c2642 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x6442b0af sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x6451ba00 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x645ee1d6 unregister_key_type +EXPORT_SYMBOL vmlinux 0x646b7ca1 input_close_device +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649a6f36 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x64c492e4 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x65114d69 write_one_page +EXPORT_SYMBOL vmlinux 0x651ce58f generic_ro_fops +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6542895b init_special_inode +EXPORT_SYMBOL vmlinux 0x65553563 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x656f1959 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x661e6ec8 bioset_free +EXPORT_SYMBOL vmlinux 0x6642b4a5 simple_unlink +EXPORT_SYMBOL vmlinux 0x664dfd77 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x666e7aae __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x6671bac0 inb +EXPORT_SYMBOL vmlinux 0x66803a6b skb_dequeue +EXPORT_SYMBOL vmlinux 0x6686df22 pcim_iomap +EXPORT_SYMBOL vmlinux 0x66b16696 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x66c63a62 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x67107831 audit_log_end +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67356b6f scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x67475049 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67ba5619 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x67f1a7c8 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6826856f kthread_stop +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x68877bf5 inet_ioctl +EXPORT_SYMBOL vmlinux 0x68977030 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x68a152f6 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x68b9c091 journal_init_inode +EXPORT_SYMBOL vmlinux 0x69010b06 insw +EXPORT_SYMBOL vmlinux 0x6904146e sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x6907c926 path_release +EXPORT_SYMBOL vmlinux 0x6927de18 iunique +EXPORT_SYMBOL vmlinux 0x695a9942 neigh_for_each +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a1189d kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69cc3dee zero_fill_bio +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69daf84a simple_pin_fs +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a2f8258 skb_queue_head +EXPORT_SYMBOL vmlinux 0x6a33e321 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6aaac020 devm_ioremap +EXPORT_SYMBOL vmlinux 0x6ab22b64 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x6ac45c28 __up_write +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad570b2 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x6ad59311 idr_replace +EXPORT_SYMBOL vmlinux 0x6ae85394 pdc_tod_set +EXPORT_SYMBOL vmlinux 0x6aed0dcd tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x6b079711 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x6b0bbac3 kset_unregister +EXPORT_SYMBOL vmlinux 0x6b167484 simple_rmdir +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b534bfa d_find_alias +EXPORT_SYMBOL vmlinux 0x6b57dbfc simple_dir_operations +EXPORT_SYMBOL vmlinux 0x6b625d39 user_revoke +EXPORT_SYMBOL vmlinux 0x6b859641 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6c072e4f idr_pre_get +EXPORT_SYMBOL vmlinux 0x6c1ac754 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x6c36a5c1 __mutex_init +EXPORT_SYMBOL vmlinux 0x6c5cc812 seq_lseek +EXPORT_SYMBOL vmlinux 0x6c911f35 fixup_get_user_skip_1 +EXPORT_SYMBOL vmlinux 0x6c925eb9 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x6ca11f17 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x6ce1beb9 input_allocate_device +EXPORT_SYMBOL vmlinux 0x6ce70443 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2ebd31 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x6d3195fb poll_freewait +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3fe5cd flush_dcache_page +EXPORT_SYMBOL vmlinux 0x6d45cb33 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x6d5ae9b0 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x6d7590c3 sk_stream_error +EXPORT_SYMBOL vmlinux 0x6da41e98 memset_io +EXPORT_SYMBOL vmlinux 0x6db56240 udp_poll +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e6674bf key_task_permission +EXPORT_SYMBOL vmlinux 0x6e6d6786 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e904c63 bd_set_size +EXPORT_SYMBOL vmlinux 0x6e91f1ea blkdev_put +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ef56f31 release_firmware +EXPORT_SYMBOL vmlinux 0x6f1c48ea compute_creds +EXPORT_SYMBOL vmlinux 0x6f631886 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x6f6da6b3 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x6f76ae66 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x6f7f4ab1 inet_release +EXPORT_SYMBOL vmlinux 0x6f7f78ed pci_remove_rom +EXPORT_SYMBOL vmlinux 0x6f8f167d pci_choose_state +EXPORT_SYMBOL vmlinux 0x6fad6afa invalidate_inodes +EXPORT_SYMBOL vmlinux 0x6fc3de24 __break_lease +EXPORT_SYMBOL vmlinux 0x6ff5b44b mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x6ff63b9b find_vma +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x70299123 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x704bd219 proc_root +EXPORT_SYMBOL vmlinux 0x707ea549 struct_module +EXPORT_SYMBOL vmlinux 0x708155a3 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x70b1d87a simple_release_fs +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x714bb4d8 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x716f7b47 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71bb1801 set_bh_page +EXPORT_SYMBOL vmlinux 0x71ce55c9 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x72537097 blk_plug_device +EXPORT_SYMBOL vmlinux 0x72644c2b journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7289da97 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x72cded68 proc_dointvec +EXPORT_SYMBOL vmlinux 0x72d1892e neigh_compat_output +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72fbae28 set_current_groups +EXPORT_SYMBOL vmlinux 0x72fc6b1f generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x737ca994 set_anon_super +EXPORT_SYMBOL vmlinux 0x7380d444 file_fsync +EXPORT_SYMBOL vmlinux 0x73847b90 km_state_notify +EXPORT_SYMBOL vmlinux 0x73b680d7 scsi_req_abort_cmd +EXPORT_SYMBOL vmlinux 0x73d9a28f pci_dev_put +EXPORT_SYMBOL vmlinux 0x73de38ea bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x73e0877a insl +EXPORT_SYMBOL vmlinux 0x73f7b81a $$divI_6 +EXPORT_SYMBOL vmlinux 0x73fa293d mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x7408b546 pci_map_rom +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x743c98df log_wait_commit +EXPORT_SYMBOL vmlinux 0x747b7e80 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74891ccf clear_inode +EXPORT_SYMBOL vmlinux 0x7499bb44 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x7521bcf6 mpage_writepages +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x7572fb7f simple_rename +EXPORT_SYMBOL vmlinux 0x7598d581 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x75a9153e tty_name +EXPORT_SYMBOL vmlinux 0x75b38522 del_timer +EXPORT_SYMBOL vmlinux 0x75b685a6 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x75c5738e tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x75dc9cb9 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7624d9fa pci_enable_device +EXPORT_SYMBOL vmlinux 0x76456c94 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x7647063c proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x76587ddc xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x7667ab77 scsi_alloc_sgtable +EXPORT_SYMBOL vmlinux 0x7676a4a5 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e14645 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x772106f8 key_unlink +EXPORT_SYMBOL vmlinux 0x773a510d hppa_dma_ops +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x779179ac nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x77f4ae9e pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x7806ae27 current_fs_time +EXPORT_SYMBOL vmlinux 0x7820d3f8 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x786bfb20 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x78acaf71 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x79261521 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79a2ccba netif_rx +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79ad224b tasklet_kill +EXPORT_SYMBOL vmlinux 0x79c0ec67 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x79ce05cc sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x79eac745 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x7a28eabd bio_map_kern +EXPORT_SYMBOL vmlinux 0x7a35b956 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x7a8fffce xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x7ac48693 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x7b022e51 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x7b17c274 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x7b3c691d tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x7b422c70 cpu_present_map +EXPORT_SYMBOL vmlinux 0x7b675fb9 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bd15815 tty_hangup +EXPORT_SYMBOL vmlinux 0x7bd91b5b qdisc_destroy +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c4fafd1 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c642163 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7c67eb42 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cee7d63 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x7cf1dfd6 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x7d0c76df xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d4506b0 __up +EXPORT_SYMBOL vmlinux 0x7d4f9def skb_over_panic +EXPORT_SYMBOL vmlinux 0x7d55f4da bdev_read_only +EXPORT_SYMBOL vmlinux 0x7d7b3ae9 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x7d7c248b pci_iounmap +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d952814 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x7dbeb5d3 audit_log_start +EXPORT_SYMBOL vmlinux 0x7dc82e4f wireless_send_event +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dec856f tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7df92aa2 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x7dfee4db udp_sendmsg +EXPORT_SYMBOL vmlinux 0x7e065a8d pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x7e2bf0ea tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x7e8c1461 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x7e9e2966 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7f100630 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f3d3b3f scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x7f6de3c0 vmtruncate +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fafaf85 generic_file_open +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8026a6c7 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x804b9753 sk_run_filter +EXPORT_SYMBOL vmlinux 0x8085c7b1 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x80dfd96a ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x80e27422 audit_log_format +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81811fbe sock_no_mmap +EXPORT_SYMBOL vmlinux 0x81c49db6 sysctl_pathname +EXPORT_SYMBOL vmlinux 0x81ceab85 node_data +EXPORT_SYMBOL vmlinux 0x81e25705 per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x826a2326 d_instantiate +EXPORT_SYMBOL vmlinux 0x826c5606 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x8276c4a7 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x8289a0f6 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x82cc2803 posix_lock_file +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x831f7f68 flush_kernel_dcache_range_asm +EXPORT_SYMBOL vmlinux 0x83202078 send_sig +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x83296e98 lookup_one_len +EXPORT_SYMBOL vmlinux 0x835123d9 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x836a55de do_gettimeofday +EXPORT_SYMBOL vmlinux 0x838363ed netlink_unicast +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d16605 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x84207695 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x84767b0b tcp_poll +EXPORT_SYMBOL vmlinux 0x84ac94f2 vmalloc_start +EXPORT_SYMBOL vmlinux 0x84b67329 uts_sem +EXPORT_SYMBOL vmlinux 0x850349c3 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x8503dfd3 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8525efde sock_i_uid +EXPORT_SYMBOL vmlinux 0x85410310 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x854cee1c neigh_table_init +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x858829c8 kobject_unregister +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85bdbbce fixup_put_user_skip_1 +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85eb00e5 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x85eb791f boot_cpu_data +EXPORT_SYMBOL vmlinux 0x85f52700 kobject_get +EXPORT_SYMBOL vmlinux 0x86023b7c compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x862049e3 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x86247c78 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x867e1712 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8699041c pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x869df11c __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x86c6e750 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x86d02b06 should_remove_suid +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x872576dd sock_create +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x87e3abba compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x87e407b4 register_netdev +EXPORT_SYMBOL vmlinux 0x88147200 eth_type_trans +EXPORT_SYMBOL vmlinux 0x8821d624 nobh_write_end +EXPORT_SYMBOL vmlinux 0x882dd8b6 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x890da5aa no_llseek +EXPORT_SYMBOL vmlinux 0x891e32b8 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x8946f39e pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x89588591 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x8958dd68 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x896b96df tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8989cd33 journal_destroy +EXPORT_SYMBOL vmlinux 0x89b34d15 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89eea43c __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x8a0c2a04 find_inode_number +EXPORT_SYMBOL vmlinux 0x8a1203a9 kref_get +EXPORT_SYMBOL vmlinux 0x8a252d8d remove_arg_zero +EXPORT_SYMBOL vmlinux 0x8a303235 kobject_put +EXPORT_SYMBOL vmlinux 0x8a328e0c locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8a469807 textsearch_register +EXPORT_SYMBOL vmlinux 0x8a472d4d spi_dv_device +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a8f0544 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x8a90d932 allocate_resource +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8abefe76 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x8aee80e4 keyring_search +EXPORT_SYMBOL vmlinux 0x8afb62f8 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x8b1732e9 km_new_mapping +EXPORT_SYMBOL vmlinux 0x8b221d8c blk_get_queue +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b9ee9b8 simple_sync_file +EXPORT_SYMBOL vmlinux 0x8bb33e7d __release_region +EXPORT_SYMBOL vmlinux 0x8bbf8d12 sk_wait_data +EXPORT_SYMBOL vmlinux 0x8bbfa2b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x8bdb16e8 scsi_get_command +EXPORT_SYMBOL vmlinux 0x8c096e4d journal_get_write_access +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c21e31a tcp_check_req +EXPORT_SYMBOL vmlinux 0x8c34603e end_that_request_last +EXPORT_SYMBOL vmlinux 0x8c3afd1a pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x8c5fade2 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x8c66ce6b outw +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cb542f7 drop_super +EXPORT_SYMBOL vmlinux 0x8cbeff0b pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cf623a4 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x8d2b27c8 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5642fc wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x8d686638 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8da54126 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x8db0dc12 set_disk_ro +EXPORT_SYMBOL vmlinux 0x8dec2a72 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x8df47176 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e2c12e6 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x8e4749f5 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e938d4e input_set_capability +EXPORT_SYMBOL vmlinux 0x8e9eceaa complete_and_exit +EXPORT_SYMBOL vmlinux 0x8eb79b13 ip_fragment +EXPORT_SYMBOL vmlinux 0x8eb95365 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x8f07d8ca __wait_on_bit +EXPORT_SYMBOL vmlinux 0x8f2093f6 seq_escape +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f9b86b2 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x8fa02a79 cad_pid +EXPORT_SYMBOL vmlinux 0x8fd08822 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x8fe204de tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x8ff87a9f nonseekable_open +EXPORT_SYMBOL vmlinux 0x8ffae29d unregister_netdev +EXPORT_SYMBOL vmlinux 0x8ffce88d kobject_add +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90145126 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x901c1695 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x9027d9d7 print_pa_hwpath +EXPORT_SYMBOL vmlinux 0x90382581 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x903ab395 __moddi3 +EXPORT_SYMBOL vmlinux 0x9070b3f2 ioport_resource +EXPORT_SYMBOL vmlinux 0x90739688 cdev_init +EXPORT_SYMBOL vmlinux 0x90918311 pdc_stable_initialize +EXPORT_SYMBOL vmlinux 0x90dc8745 do_SAK +EXPORT_SYMBOL vmlinux 0x90eafbf3 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x90f959bb __scsi_add_device +EXPORT_SYMBOL vmlinux 0x91a766e4 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x91b85b54 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x91e00954 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x91fe3273 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x920778a2 key_revoke +EXPORT_SYMBOL vmlinux 0x920cd0b2 inode_init_once +EXPORT_SYMBOL vmlinux 0x92252701 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x922d67fd uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x92ab2be1 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x92e8e931 $$divI_15 +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92f4e173 eth_header_cache +EXPORT_SYMBOL vmlinux 0x93036cc7 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x930e9cf4 end_that_request_first +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x933ab7c6 do_splice_to +EXPORT_SYMBOL vmlinux 0x9356d843 sock_no_connect +EXPORT_SYMBOL vmlinux 0x93936972 kthread_bind +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b55263 journal_init_dev +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93cced0d prepare_binprm +EXPORT_SYMBOL vmlinux 0x93d26177 arp_send +EXPORT_SYMBOL vmlinux 0x93d88d30 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x93db400a __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x93e7842f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x93f367d0 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9406bf65 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x94096d2d dmam_pool_create +EXPORT_SYMBOL vmlinux 0x940accfc jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9452032e pskb_expand_head +EXPORT_SYMBOL vmlinux 0x947c4418 skb_split +EXPORT_SYMBOL vmlinux 0x94847b23 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x9490efab xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x9491129c get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x94961bd8 print_pci_hwpath +EXPORT_SYMBOL vmlinux 0x94a8a95f tty_set_operations +EXPORT_SYMBOL vmlinux 0x9501d078 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x95653219 __alloc_pages +EXPORT_SYMBOL vmlinux 0x9569e342 dentry_open +EXPORT_SYMBOL vmlinux 0x959f9a50 inode_double_unlock +EXPORT_SYMBOL vmlinux 0x95b6df6a create_proc_entry +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x960e9903 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x9698ff0f con_is_bound +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96ce491f block_sync_page +EXPORT_SYMBOL vmlinux 0x96e855b6 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x970fb9aa tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x97479659 f_setown +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x978083b8 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x9796e6f1 bio_add_page +EXPORT_SYMBOL vmlinux 0x9797f027 kfree_skb +EXPORT_SYMBOL vmlinux 0x97d7bb65 flush_signals +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x9835275e vc_resize +EXPORT_SYMBOL vmlinux 0x984b7403 set_blocksize +EXPORT_SYMBOL vmlinux 0x985c59a6 put_disk +EXPORT_SYMBOL vmlinux 0x987dee42 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98cbd719 simple_empty +EXPORT_SYMBOL vmlinux 0x98ef7813 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x99049ca2 pdc_stable_read +EXPORT_SYMBOL vmlinux 0x99340b9d inet_sendmsg +EXPORT_SYMBOL vmlinux 0x99538291 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x9997f5d3 vfs_unlink +EXPORT_SYMBOL vmlinux 0x999ab0c7 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bbf92e I_BDEV +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c27473 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99cee2fc inet_frag_kill +EXPORT_SYMBOL vmlinux 0x99e556e4 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a108cd3 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x9a13b0a5 km_state_expired +EXPORT_SYMBOL vmlinux 0x9a1b1b86 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a36cd45 schedule_work +EXPORT_SYMBOL vmlinux 0x9a49d28c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x9a69710e scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x9a882d0f may_umount_tree +EXPORT_SYMBOL vmlinux 0x9aea263c iput +EXPORT_SYMBOL vmlinux 0x9af4a2e0 module_remove_driver +EXPORT_SYMBOL vmlinux 0x9afe9c91 __mod_timer +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b1ec672 ilookup +EXPORT_SYMBOL vmlinux 0x9b236153 inet_put_port +EXPORT_SYMBOL vmlinux 0x9b346a50 journal_extend +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b41671a pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x9b458f90 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9c06d2d7 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c2571f4 __down_read +EXPORT_SYMBOL vmlinux 0x9c613601 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x9c6792ba scsi_add_host +EXPORT_SYMBOL vmlinux 0x9c9d8b4d end_page_writeback +EXPORT_SYMBOL vmlinux 0x9ca07cd8 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x9ca92812 init_net +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc478fb $$divU_7 +EXPORT_SYMBOL vmlinux 0x9cd0cd1c skb_clone +EXPORT_SYMBOL vmlinux 0x9cf2aefb unregister_qdisc +EXPORT_SYMBOL vmlinux 0x9cfc8c7b journal_create +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d0651cb ip_ct_attach +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dcfa34d sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x9dd9cc4a inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x9e0b4e7b sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x9e11c47b gsc_alloc_irq +EXPORT_SYMBOL vmlinux 0x9e5aedb1 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x9e7f526d sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x9e9634aa inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x9ea93a0c $$divI +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3b5b62 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x9f7c68dc sockfd_lookup +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9faa7eb0 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x9fb5e401 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fd054ef generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xa02967d7 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa07a8d22 sleep_on +EXPORT_SYMBOL vmlinux 0xa07df1d2 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0be8d87 skb_unlink +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa13abd9b kernel_listen +EXPORT_SYMBOL vmlinux 0xa15021da blk_complete_request +EXPORT_SYMBOL vmlinux 0xa1cdce17 flush_cache_all_local +EXPORT_SYMBOL vmlinux 0xa1d60f0f memcpy_toio +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1e10a6f find_get_page +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20f7f41 sk_common_release +EXPORT_SYMBOL vmlinux 0xa218bf61 complete +EXPORT_SYMBOL vmlinux 0xa240ce36 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xa24f14bd kset_register +EXPORT_SYMBOL vmlinux 0xa2736a4d deactivate_super +EXPORT_SYMBOL vmlinux 0xa28cdbb4 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xa28f87fb proto_register +EXPORT_SYMBOL vmlinux 0xa29b1708 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2a8e33d sock_rfree +EXPORT_SYMBOL vmlinux 0xa2abf763 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xa2e4c17a pci_restore_state +EXPORT_SYMBOL vmlinux 0xa314f053 per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa32b0300 irq_stat +EXPORT_SYMBOL vmlinux 0xa32c224e mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3527725 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa38b2881 pci_find_bus +EXPORT_SYMBOL vmlinux 0xa38ee9a4 give_up_console +EXPORT_SYMBOL vmlinux 0xa3969f9a __neigh_event_send +EXPORT_SYMBOL vmlinux 0xa3a4ed03 cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa404cee1 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xa405bf2e put_tty_driver +EXPORT_SYMBOL vmlinux 0xa439bcf5 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0xa452ce2d kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xa4a47eb9 register_qdisc +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c16372 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xa53497e6 nf_afinfo +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa5808bbf tasklet_init +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa59559dd kobject_init +EXPORT_SYMBOL vmlinux 0xa5c4f122 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xa5d6cbb6 inode_change_ok +EXPORT_SYMBOL vmlinux 0xa5e89e87 bdget +EXPORT_SYMBOL vmlinux 0xa67700c1 register_binfmt +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68f1787 d_genocide +EXPORT_SYMBOL vmlinux 0xa6a86fac node_states +EXPORT_SYMBOL vmlinux 0xa6b58628 vc_cons +EXPORT_SYMBOL vmlinux 0xa6d0d57b load_nls_default +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e493b8 blk_run_queue +EXPORT_SYMBOL vmlinux 0xa70b129a inet_del_protocol +EXPORT_SYMBOL vmlinux 0xa713b4ff __down_interruptible +EXPORT_SYMBOL vmlinux 0xa73c8881 vmap +EXPORT_SYMBOL vmlinux 0xa7463996 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xa74d0713 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0xa74ddd83 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7687146 kill_pid +EXPORT_SYMBOL vmlinux 0xa78ebffd locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xa7a62cb9 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7c81686 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xa7de4041 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xa7e6bbfd get_write_access +EXPORT_SYMBOL vmlinux 0xa8590b76 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xa8704444 get_super +EXPORT_SYMBOL vmlinux 0xa8859d21 kthread_create +EXPORT_SYMBOL vmlinux 0xa885ab4f netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xa889ff73 scsi_print_result +EXPORT_SYMBOL vmlinux 0xa893be60 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa9283809 fd_install +EXPORT_SYMBOL vmlinux 0xa9306608 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0xa9513697 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0xa994a01e textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xa9c482cb schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0xa9f1ed23 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xa9f9720a qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xaa01357f udplite_prot +EXPORT_SYMBOL vmlinux 0xaa1184d1 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0xaa15c15b pcim_iounmap +EXPORT_SYMBOL vmlinux 0xaa527612 __kfifo_put +EXPORT_SYMBOL vmlinux 0xaa93900d __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xaac41a09 request_firmware +EXPORT_SYMBOL vmlinux 0xaadd827a journal_clear_err +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab35c2d6 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xab35dc15 kobject_register +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab4e4345 pdc_iodc_read +EXPORT_SYMBOL vmlinux 0xab53b0a8 mempool_alloc +EXPORT_SYMBOL vmlinux 0xab5418c7 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab64527d mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xab680c96 __down_read_trylock +EXPORT_SYMBOL vmlinux 0xab6c4c7b simple_getattr +EXPORT_SYMBOL vmlinux 0xab7bdc3e seq_path +EXPORT_SYMBOL vmlinux 0xab82fc22 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xaba6156f register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xabad83d7 udp_hash_lock +EXPORT_SYMBOL vmlinux 0xabcc8068 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xac0c277a generic_getxattr +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac54fc9f mempool_destroy +EXPORT_SYMBOL vmlinux 0xac696415 register_gifconf +EXPORT_SYMBOL vmlinux 0xac9b2a53 clocksource_register +EXPORT_SYMBOL vmlinux 0xacc756d6 mntput_no_expire +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd37096 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xacdb4249 write_cache_pages +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf6971d elevator_init +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad07a580 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xad2fc17c __kill_fasync +EXPORT_SYMBOL vmlinux 0xad394310 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xad3a9954 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xad704f40 subsystem_unregister +EXPORT_SYMBOL vmlinux 0xad719470 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xad8e30c3 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xadb792c2 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xade317be neigh_destroy +EXPORT_SYMBOL vmlinux 0xadf0c270 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xae3cb002 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xae64e2ae tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xaec51afa generic_delete_inode +EXPORT_SYMBOL vmlinux 0xaed013b9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf32b1f1 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xaf41aac4 elv_rb_del +EXPORT_SYMBOL vmlinux 0xaf543763 dma_pool_free +EXPORT_SYMBOL vmlinux 0xaf8bbc94 __free_pages +EXPORT_SYMBOL vmlinux 0xaf9bd80f ida_pre_get +EXPORT_SYMBOL vmlinux 0xafa7e91f alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xafa9a8a8 input_inject_event +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafef245b neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xaff03606 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xaff8e832 $$divU_10 +EXPORT_SYMBOL vmlinux 0xb004a521 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xb008734b mpage_readpage +EXPORT_SYMBOL vmlinux 0xb00a91bb dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xb01a1a11 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xb023f716 blk_unplug +EXPORT_SYMBOL vmlinux 0xb055d8da posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xb05aaed2 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb08fd32a block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xb0b580ad get_sb_nodev +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0fbb344 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0xb0ffa6b3 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb1212399 put_io_context +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb180bc0a journal_flush +EXPORT_SYMBOL vmlinux 0xb18145c7 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb1a441a0 simple_lookup +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb222a513 noop_qdisc +EXPORT_SYMBOL vmlinux 0xb249aec6 __bforget +EXPORT_SYMBOL vmlinux 0xb27967da $$divI_7 +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb281d2e6 sock_create_kern +EXPORT_SYMBOL vmlinux 0xb2a15ca9 stop_tty +EXPORT_SYMBOL vmlinux 0xb2b23004 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xb2bf1312 __up_read +EXPORT_SYMBOL vmlinux 0xb2dd4198 end_request +EXPORT_SYMBOL vmlinux 0xb2e0734d simple_transaction_get +EXPORT_SYMBOL vmlinux 0xb2f1a19c elv_rb_add +EXPORT_SYMBOL vmlinux 0xb31ddca3 pskb_copy +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b5cd06 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0xb3e24797 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0xb3f80b64 icmp_send +EXPORT_SYMBOL vmlinux 0xb3fe02b1 down_write +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb46d693b qdisc_reset +EXPORT_SYMBOL vmlinux 0xb486f061 d_lookup +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4c309ed get_sb_single +EXPORT_SYMBOL vmlinux 0xb4e949ab register_parisc_driver +EXPORT_SYMBOL vmlinux 0xb5175614 swap_io_context +EXPORT_SYMBOL vmlinux 0xb51fdb8e unlock_buffer +EXPORT_SYMBOL vmlinux 0xb531dc4d __user_walk +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb58554fe block_invalidatepage +EXPORT_SYMBOL vmlinux 0xb59921a1 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5c95743 vfs_llseek +EXPORT_SYMBOL vmlinux 0xb5d775b7 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb5ebd231 input_flush_device +EXPORT_SYMBOL vmlinux 0xb5ee24f4 close_bdev_excl +EXPORT_SYMBOL vmlinux 0xb5f5ec31 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb62d2527 udp_get_port +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6a1093a journal_wipe +EXPORT_SYMBOL vmlinux 0xb6b5873f ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c70a7d __wake_up +EXPORT_SYMBOL vmlinux 0xb6dad0a8 __seq_open_private +EXPORT_SYMBOL vmlinux 0xb6eea9fb xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb798898c __napi_schedule +EXPORT_SYMBOL vmlinux 0xb7a71713 dev_close +EXPORT_SYMBOL vmlinux 0xb7a797d1 journal_update_superblock +EXPORT_SYMBOL vmlinux 0xb7e2c3d1 bio_init +EXPORT_SYMBOL vmlinux 0xb8316d97 proc_symlink +EXPORT_SYMBOL vmlinux 0xb849720e journal_release_buffer +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8709e6c wireless_spy_update +EXPORT_SYMBOL vmlinux 0xb874d3de dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8aaf60e pci_get_slot +EXPORT_SYMBOL vmlinux 0xb8cefc04 vfs_symlink +EXPORT_SYMBOL vmlinux 0xb8cf31fd ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xb8fe8729 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xb9270566 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xb96024fd pci_save_state +EXPORT_SYMBOL vmlinux 0xb9705fbf wake_up_process +EXPORT_SYMBOL vmlinux 0xb97d4c9c mutex_lock +EXPORT_SYMBOL vmlinux 0xb99daa64 vm_stat +EXPORT_SYMBOL vmlinux 0xb9a3b1e1 skb_find_text +EXPORT_SYMBOL vmlinux 0xb9b51837 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xb9f60624 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xba0d9daf simple_link +EXPORT_SYMBOL vmlinux 0xba197310 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xba3bda2a __downgrade_write +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaa53e72 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xbac4d125 register_netdevice +EXPORT_SYMBOL vmlinux 0xbae622cf unlock_rename +EXPORT_SYMBOL vmlinux 0xbae7b636 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xbaf34bc4 put_page +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1d0a90 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xbb239906 sync_blockdev +EXPORT_SYMBOL vmlinux 0xbb2b8d77 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xbb417cdf iget5_locked +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb7858ea uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xbba8a4f1 bio_alloc +EXPORT_SYMBOL vmlinux 0xbba97b36 __netif_schedule +EXPORT_SYMBOL vmlinux 0xbbaaf389 profile_pc +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbd3fcb2 $$divI_12 +EXPORT_SYMBOL vmlinux 0xbbed9888 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xbc3c86d3 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xbc6572bc simple_write_begin +EXPORT_SYMBOL vmlinux 0xbcc94d07 send_sig_info +EXPORT_SYMBOL vmlinux 0xbccb973e scsi_register_interface +EXPORT_SYMBOL vmlinux 0xbd285a27 have_submounts +EXPORT_SYMBOL vmlinux 0xbd8375fb qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0xbd964030 notify_change +EXPORT_SYMBOL vmlinux 0xbda8c7ca __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xbe20192b spi_release_transport +EXPORT_SYMBOL vmlinux 0xbe260f1f inode_get_bytes +EXPORT_SYMBOL vmlinux 0xbe783c58 blk_insert_request +EXPORT_SYMBOL vmlinux 0xbe7d270d bmap +EXPORT_SYMBOL vmlinux 0xbeca7559 journal_restart +EXPORT_SYMBOL vmlinux 0xbef36d8a bio_endio +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef5b5d5 alloc_file +EXPORT_SYMBOL vmlinux 0xbef7a220 netdev_state_change +EXPORT_SYMBOL vmlinux 0xbf11b274 set_page_dirty +EXPORT_SYMBOL vmlinux 0xbf11d44c bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xbf7ba134 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0xbfa6383b scsi_put_command +EXPORT_SYMBOL vmlinux 0xbfb12d9e udp_proc_register +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfcb0919 arp_create +EXPORT_SYMBOL vmlinux 0xbfdaaa46 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xc001bafe vfs_readdir +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0538641 freeze_bdev +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0602031 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xc06e1966 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xc082b5df search_binary_handler +EXPORT_SYMBOL vmlinux 0xc082d1f3 page_put_link +EXPORT_SYMBOL vmlinux 0xc08e63c1 devm_iounmap +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc11c8487 open_by_devnum +EXPORT_SYMBOL vmlinux 0xc123b758 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc12aa095 sock_no_accept +EXPORT_SYMBOL vmlinux 0xc1337b77 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xc14b43cd get_pci_node_path +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc1756e68 dma_pool_create +EXPORT_SYMBOL vmlinux 0xc1bd69d1 misc_deregister +EXPORT_SYMBOL vmlinux 0xc20bd2f2 poll_initwait +EXPORT_SYMBOL vmlinux 0xc21ddfe4 block_prepare_write +EXPORT_SYMBOL vmlinux 0xc22616f1 __init_rwsem +EXPORT_SYMBOL vmlinux 0xc22eca53 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xc23ce1cc __invalidate_device +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2766d2c inet_frag_find +EXPORT_SYMBOL vmlinux 0xc29e86a1 idr_get_new +EXPORT_SYMBOL vmlinux 0xc2a61ae1 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xc2d9a32d bdi_destroy +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc30345b3 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xc35fe966 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xc387ec0b __xchg32 +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc40199d7 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xc4782ec4 nla_put +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a8c13a $$divU_5 +EXPORT_SYMBOL vmlinux 0xc4bf1d43 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xc4d8d586 thaw_bdev +EXPORT_SYMBOL vmlinux 0xc4ffc070 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xc517d812 vfs_getattr +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc57c1f54 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xc5af4dc1 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xc5b0e13e dev_change_flags +EXPORT_SYMBOL vmlinux 0xc5caa88a pci_request_region +EXPORT_SYMBOL vmlinux 0xc63284c5 unload_nls +EXPORT_SYMBOL vmlinux 0xc6561919 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xc657d02c pci_assign_resource +EXPORT_SYMBOL vmlinux 0xc67a7bc1 lock_may_read +EXPORT_SYMBOL vmlinux 0xc69675bb invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xc6a35cec page_symlink +EXPORT_SYMBOL vmlinux 0xc6de2de6 __kfree_skb +EXPORT_SYMBOL vmlinux 0xc6eb5170 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xc6f778a5 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc722227e posix_acl_clone +EXPORT_SYMBOL vmlinux 0xc735dbf3 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc75776c2 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xc77161f7 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xc796856e open_bdev_excl +EXPORT_SYMBOL vmlinux 0xc79e00fb bio_pair_release +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c6bb1b dev_driver_string +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc7f46984 vfs_permission +EXPORT_SYMBOL vmlinux 0xc80de694 down_write_trylock +EXPORT_SYMBOL vmlinux 0xc821c560 del_gendisk +EXPORT_SYMBOL vmlinux 0xc824c88b pci_dev_get +EXPORT_SYMBOL vmlinux 0xc8376501 start_tty +EXPORT_SYMBOL vmlinux 0xc860f57d skb_store_bits +EXPORT_SYMBOL vmlinux 0xc8a92c5b dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc90ef009 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xc95a1598 netdev_set_master +EXPORT_SYMBOL vmlinux 0xc97690c7 serial8250_register_port +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xca111331 journal_force_commit +EXPORT_SYMBOL vmlinux 0xca193300 proc_bus +EXPORT_SYMBOL vmlinux 0xca412642 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca883229 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xcacdb9fe kill_pgrp +EXPORT_SYMBOL vmlinux 0xcad4acca ip_dev_find +EXPORT_SYMBOL vmlinux 0xcad507d0 sock_create_lite +EXPORT_SYMBOL vmlinux 0xcb01e87a devm_request_irq +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb290205 kobject_del +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb37a17e pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0xcb4ee389 elv_next_request +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb946945 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xcba83f2b arp_xmit +EXPORT_SYMBOL vmlinux 0xcbc7cce0 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xcbdb744c xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xcc050d01 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3b7281 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xcc4ce993 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc6863f7 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xcc77aeee unregister_console +EXPORT_SYMBOL vmlinux 0xcc794ffc gsc_claim_irq +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc9a0248 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xcd5e1c59 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xcd73a04d skb_append +EXPORT_SYMBOL vmlinux 0xce361b72 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce484648 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xce676e4c dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xce67b3ce pdc_stable_get_size +EXPORT_SYMBOL vmlinux 0xce753f5e ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xceb253fd $$divU_9 +EXPORT_SYMBOL vmlinux 0xcec9cdfe pci_set_mwi +EXPORT_SYMBOL vmlinux 0xced7bb34 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xcedcbca8 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xcefa35a5 tcp_connect +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf0a97e6 generic_permission +EXPORT_SYMBOL vmlinux 0xcf6a6b28 set_irq_chip +EXPORT_SYMBOL vmlinux 0xcf83acc6 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xcf96b65b pdc_add_valid +EXPORT_SYMBOL vmlinux 0xcf9dc781 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xcfc0972b __nla_reserve +EXPORT_SYMBOL vmlinux 0xcfda1e0b blk_register_region +EXPORT_SYMBOL vmlinux 0xcff1f8ae pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xcff53400 kref_put +EXPORT_SYMBOL vmlinux 0xcffccbf4 bio_copy_user +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd0b8a34d proto_unregister +EXPORT_SYMBOL vmlinux 0xd0d32d10 block_truncate_page +EXPORT_SYMBOL vmlinux 0xd0e1a8cc kick_iocb +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd128331e request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xd12a368f blk_remove_plug +EXPORT_SYMBOL vmlinux 0xd14ab98d kmem_cache_create +EXPORT_SYMBOL vmlinux 0xd14d15b5 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd1614f50 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xd1a944eb inet_shutdown +EXPORT_SYMBOL vmlinux 0xd1d3fde2 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xd1d837a5 subsys_create_file +EXPORT_SYMBOL vmlinux 0xd200d32c __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2f55b2c scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xd32e52c7 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0xd32ed99f tty_check_change +EXPORT_SYMBOL vmlinux 0xd3427f73 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd377477b inl +EXPORT_SYMBOL vmlinux 0xd3858156 block_write_end +EXPORT_SYMBOL vmlinux 0xd3b0f576 brioctl_set +EXPORT_SYMBOL vmlinux 0xd3b542c1 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd3e568be udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd4190b3f blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0xd42cd507 tty_register_device +EXPORT_SYMBOL vmlinux 0xd4537f7b filp_open +EXPORT_SYMBOL vmlinux 0xd4848bef key_type_keyring +EXPORT_SYMBOL vmlinux 0xd48545a6 page_readlink +EXPORT_SYMBOL vmlinux 0xd4a56ba4 xrlim_allow +EXPORT_SYMBOL vmlinux 0xd4b2bad8 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xd4cc96db sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd56d2dc9 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xd5713744 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xd574bc5a arp_tbl +EXPORT_SYMBOL vmlinux 0xd5b53289 put_filp +EXPORT_SYMBOL vmlinux 0xd5db570f nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xd601a738 kill_block_super +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd603a220 block_commit_write +EXPORT_SYMBOL vmlinux 0xd624bb77 lstrnlen_user +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63e436a xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd64ee52d simple_readpage +EXPORT_SYMBOL vmlinux 0xd65873df devm_ioport_map +EXPORT_SYMBOL vmlinux 0xd66c6228 down_read_trylock +EXPORT_SYMBOL vmlinux 0xd691f0c3 idr_remove_all +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd70048c9 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xd712382b dev_open +EXPORT_SYMBOL vmlinux 0xd72cbff6 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xd751b9ff vfs_rename +EXPORT_SYMBOL vmlinux 0xd77508ec pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xd78a18a9 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7c46405 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xd7ecaabb netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0xd7fadf70 generic_setxattr +EXPORT_SYMBOL vmlinux 0xd805880d pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xd8282ff0 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0xd83791bc nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd88ed14c cdev_alloc +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8ab7bc9 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xd8b67a98 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ffe2bd journal_get_create_access +EXPORT_SYMBOL vmlinux 0xd9028f55 do_splice_from +EXPORT_SYMBOL vmlinux 0xd9157b3a netlink_dump_start +EXPORT_SYMBOL vmlinux 0xd95e3a5a blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98cd108 pci_find_capability +EXPORT_SYMBOL vmlinux 0xd9bcd6cc unregister_binfmt +EXPORT_SYMBOL vmlinux 0xda283420 cont_write_begin +EXPORT_SYMBOL vmlinux 0xda2f63c5 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda4af40f sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xda4b8a41 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xda5c541e __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xda654ed8 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xda73a1d0 __check_region +EXPORT_SYMBOL vmlinux 0xda8b5096 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xda908cc2 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xdab57d7e pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xdaf0d78c simple_prepare_write +EXPORT_SYMBOL vmlinux 0xdb00d978 __devm_release_region +EXPORT_SYMBOL vmlinux 0xdb2a48a3 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xdbb29be2 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbf7eba3 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xdc03f1f2 blk_init_queue +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc192133 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc382877 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xdc3eaf70 iomem_resource +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc5231d2 generic_writepages +EXPORT_SYMBOL vmlinux 0xdc7bba53 scsi_add_device +EXPORT_SYMBOL vmlinux 0xdc981231 dst_alloc +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcd6b1b7 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xdce5c0c7 idr_for_each +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd597ea4 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xdd764173 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xddbd7e48 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xddd7327f tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xde027571 generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde0df8bc seq_read +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdeaf4470 $$divU_15 +EXPORT_SYMBOL vmlinux 0xdeb4999b genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xdedd880c scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xdee85944 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf2321c7 flush_kernel_dcache_page_asm +EXPORT_SYMBOL vmlinux 0xdf47d2b9 vfs_mknod +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfaa3657 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xdfc72f2d textsearch_prepare +EXPORT_SYMBOL vmlinux 0xe00f4cdc $$divI_9 +EXPORT_SYMBOL vmlinux 0xe00fb238 release_resource +EXPORT_SYMBOL vmlinux 0xe00fd713 pfnnid_map +EXPORT_SYMBOL vmlinux 0xe0137f33 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xe03c4c9a call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xe04bf610 simple_fill_super +EXPORT_SYMBOL vmlinux 0xe067091f d_path +EXPORT_SYMBOL vmlinux 0xe08171c4 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xe084da53 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xe09e7d78 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b5502d adjust_resource +EXPORT_SYMBOL vmlinux 0xe0bc8b2a scsi_host_put +EXPORT_SYMBOL vmlinux 0xe0e2d1ac register_filesystem +EXPORT_SYMBOL vmlinux 0xe0e3a8fd bio_clone +EXPORT_SYMBOL vmlinux 0xe0e3b0a7 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe143de21 bdevname +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe178e840 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe23be253 tty_vhangup +EXPORT_SYMBOL vmlinux 0xe24b9aee rtnl_notify +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2634fb4 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xe2899a02 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xe2bbd43a outb +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d70607 add_to_page_cache +EXPORT_SYMBOL vmlinux 0xe30dac7b sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe3b726b8 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xe3bf4573 $$divI_10 +EXPORT_SYMBOL vmlinux 0xe3cbff68 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xe3cd11d5 find_lock_page +EXPORT_SYMBOL vmlinux 0xe3eb9e50 blk_put_queue +EXPORT_SYMBOL vmlinux 0xe43cdc1f d_prune_aliases +EXPORT_SYMBOL vmlinux 0xe43f45c9 ether_setup +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe494311b __grab_cache_page +EXPORT_SYMBOL vmlinux 0xe4a97c71 __down_write_trylock +EXPORT_SYMBOL vmlinux 0xe4af1076 complete_request_key +EXPORT_SYMBOL vmlinux 0xe4ee2013 follow_up +EXPORT_SYMBOL vmlinux 0xe50ec96b ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xe54a3c0f tcp_child_process +EXPORT_SYMBOL vmlinux 0xe55180c8 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xe5541c1a proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xe565ecb0 sysctl_string +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a153fb __devm_request_region +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d83b7e pci_match_id +EXPORT_SYMBOL vmlinux 0xe60a6073 ida_remove +EXPORT_SYMBOL vmlinux 0xe61d3d4a eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xe620789f ip_route_output_key +EXPORT_SYMBOL vmlinux 0xe678d964 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xe6cd3ed9 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xe6f318f4 nobh_writepage +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe7043306 iounmap +EXPORT_SYMBOL vmlinux 0xe71b2aa4 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xe72ab582 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xe72acfe0 single_open +EXPORT_SYMBOL vmlinux 0xe75f302a sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xe775d4a5 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xe7765108 pdc_lan_station_id +EXPORT_SYMBOL vmlinux 0xe78399fd neigh_update +EXPORT_SYMBOL vmlinux 0xe7a1c61b pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xe7ab9e79 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e9bddf $$remI +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7ec351b input_register_handler +EXPORT_SYMBOL vmlinux 0xe7f37e11 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xe827f07f sk_receive_skb +EXPORT_SYMBOL vmlinux 0xe8679178 __divdi3 +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe9023abc elevator_exit +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe99b29e1 bio_free +EXPORT_SYMBOL vmlinux 0xe99cb570 generic_read_dir +EXPORT_SYMBOL vmlinux 0xe99f0a9d fsync_bdev +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea13cfe3 load_nls +EXPORT_SYMBOL vmlinux 0xea15de1b $$divI_5 +EXPORT_SYMBOL vmlinux 0xea1ee027 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xea2934e3 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xea2bb0ad elv_rb_find +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xeaa6386a pci_select_bars +EXPORT_SYMBOL vmlinux 0xeab0fc26 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xeab5aca0 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xeac8fa74 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeaeaf93e scsi_free_sgtable +EXPORT_SYMBOL vmlinux 0xeb18a84d __getblk +EXPORT_SYMBOL vmlinux 0xeb3104ae do_sync_write +EXPORT_SYMBOL vmlinux 0xeb394495 path_lookup +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb47a650 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xeb84c354 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeba451e1 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebce3666 pci_find_slot +EXPORT_SYMBOL vmlinux 0xebe88a3b redraw_screen +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec15b11c remote_llseek +EXPORT_SYMBOL vmlinux 0xec657df4 block_write_full_page +EXPORT_SYMBOL vmlinux 0xec7910db generic_write_checks +EXPORT_SYMBOL vmlinux 0xec923047 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xeceb3d4d tc_classify +EXPORT_SYMBOL vmlinux 0xecf8a1d5 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xecf91065 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xed043053 inode_double_lock +EXPORT_SYMBOL vmlinux 0xed292aa0 clear_user_page +EXPORT_SYMBOL vmlinux 0xed58a35a subsystem_register +EXPORT_SYMBOL vmlinux 0xed6a60a1 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xed713859 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee882912 kernel_accept +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeeda6819 register_key_type +EXPORT_SYMBOL vmlinux 0xef1a1668 km_waitq +EXPORT_SYMBOL vmlinux 0xef1cb0ef scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xef210b2d __breadahead +EXPORT_SYMBOL vmlinux 0xef5d019d register_chrdev +EXPORT_SYMBOL vmlinux 0xefb1164f tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe7494a __user_walk_fd +EXPORT_SYMBOL vmlinux 0xefea10f5 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xefee296f cdev_del +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00d098e ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xf01d79b1 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0b19cfe dcache_readdir +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf19dd56c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xf1bc4943 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ebdaec kobject_set_name +EXPORT_SYMBOL vmlinux 0xf1fc7a2b vfs_write +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2b4938e pdc_sti_call +EXPORT_SYMBOL vmlinux 0xf2c7f9f5 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xf2dcefa8 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xf2f022fb dev_mc_delete +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3178e6d vfs_writev +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf359c15a tcp_make_synack +EXPORT_SYMBOL vmlinux 0xf38ab871 __canonicalize_funcptr_for_compare +EXPORT_SYMBOL vmlinux 0xf397b9aa __tasklet_schedule +EXPORT_SYMBOL vmlinux 0xf397fac8 sync_inode +EXPORT_SYMBOL vmlinux 0xf3b5f300 end_dequeued_request +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4467f54 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xf471a649 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0xf4a4a53f journal_ack_err +EXPORT_SYMBOL vmlinux 0xf4a7b232 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xf4ba46bd journal_forget +EXPORT_SYMBOL vmlinux 0xf4de7daa sync_page_range +EXPORT_SYMBOL vmlinux 0xf4ed66af uart_match_port +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf501332d pci_disable_device +EXPORT_SYMBOL vmlinux 0xf51c639f interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xf520f472 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xf53920e0 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xf5396555 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xf5737934 fixup_get_user_skip_2 +EXPORT_SYMBOL vmlinux 0xf59e3794 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xf5a394e3 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xf5c75c6e init_file +EXPORT_SYMBOL vmlinux 0xf5e77242 sk_alloc +EXPORT_SYMBOL vmlinux 0xf5edb000 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xf6176a10 read_dev_sector +EXPORT_SYMBOL vmlinux 0xf63a1b24 journal_load +EXPORT_SYMBOL vmlinux 0xf646a797 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xf671fc48 try_to_release_page +EXPORT_SYMBOL vmlinux 0xf67d0417 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xf68ac60e input_free_device +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf723e10b filemap_fault +EXPORT_SYMBOL vmlinux 0xf7384f52 downgrade_write +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79451f3 $$divU_12 +EXPORT_SYMBOL vmlinux 0xf7b76f12 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf7d0b269 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xf7eb495e shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf825b9cc tty_register_driver +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf85361e1 input_grab_device +EXPORT_SYMBOL vmlinux 0xf86ddff0 $$mulI +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf88b05f0 scsi_device_put +EXPORT_SYMBOL vmlinux 0xf895c35a __rta_fill +EXPORT_SYMBOL vmlinux 0xf8c169c4 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf92bf1f2 write_inode_now +EXPORT_SYMBOL vmlinux 0xf9307ec9 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf94264d1 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xf948cbd5 proc_mkdir +EXPORT_SYMBOL vmlinux 0xf9990d57 seq_release +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b28bac interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xf9b589e8 request_key +EXPORT_SYMBOL vmlinux 0xf9d4134b neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xf9fe89f7 module_add_driver +EXPORT_SYMBOL vmlinux 0xfa0952db vfs_readv +EXPORT_SYMBOL vmlinux 0xfa0a9dbe tcp_shutdown +EXPORT_SYMBOL vmlinux 0xfa15877c skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xfa567658 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xfa5d1c7d touch_atime +EXPORT_SYMBOL vmlinux 0xfa8499eb blk_get_request +EXPORT_SYMBOL vmlinux 0xfa8a0712 sock_wake_async +EXPORT_SYMBOL vmlinux 0xfa983b51 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xfabf9f08 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb35f46d mnt_pin +EXPORT_SYMBOL vmlinux 0xfb37ba33 do_sync_read +EXPORT_SYMBOL vmlinux 0xfb3c1433 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0xfb3e8770 input_unregister_device +EXPORT_SYMBOL vmlinux 0xfb503be6 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xfb56a5b1 mpage_readpages +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb709a4f input_unregister_handle +EXPORT_SYMBOL vmlinux 0xfbb619d0 lock_may_write +EXPORT_SYMBOL vmlinux 0xfbbb764c memcpy_fromio +EXPORT_SYMBOL vmlinux 0xfbbde2e1 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xfbc97540 update_region +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfbfb97ca seq_printf +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0ff0b2 check_disk_change +EXPORT_SYMBOL vmlinux 0xfc216f2e nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc538d79 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xfca24961 dev_get_flags +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcabe299 elv_add_request +EXPORT_SYMBOL vmlinux 0xfcd15d0b inet_csk_accept +EXPORT_SYMBOL vmlinux 0xfcd1cbce netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfd25b1f3 netdev_features_change +EXPORT_SYMBOL vmlinux 0xfd8dba4c add_wait_queue +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfde42149 default_llseek +EXPORT_SYMBOL vmlinux 0xfdf45a77 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xfdf93d2e dev_mc_sync +EXPORT_SYMBOL vmlinux 0xfdfe361f tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xfe24acd1 hwpath_to_device +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfeac29d1 vfs_readlink +EXPORT_SYMBOL vmlinux 0xfeb6490c is_container_init +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfef99ff0 input_event +EXPORT_SYMBOL vmlinux 0xff041b30 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xff1063b3 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffef6d33 pci_bus_write_config_word +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x15895011 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x62c20ce5 crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x55c276cd async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x68fb8612 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc71f9395 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2570395d async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xf348adee async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/blkcipher 0x1e1a4ccc crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0xa802af16 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0xc64158e8 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0xeae28d4f blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0xfb4908c0 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/twofish_common 0x36ae2aab twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0206aa10 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0233a84c ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x02ae0b5d ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x09965a25 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a5bc4e3 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0cd4e1ad ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0ec25480 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0f3cf47a ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x12386771 ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0x17a4b915 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a8e9e41 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1bf1222a ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1e3db172 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1f8c0284 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x20904f9a ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x22e703ed sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28523abc sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x29bb206c ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2aff5523 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b67f4e9 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2c6e947c ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x323eee73 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4012d6e0 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x41544e40 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x41f45960 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4604e4ba ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4725463e ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4c12d242 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4c64be15 ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4ea242e7 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x50c145f8 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5748e04f ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x58fcf1d6 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ce9ea30 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5dd26462 ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ee2a54e ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ffc9ed2 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x61116a58 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x68f9591a ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x698faae6 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69df5aea class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6af9a8c6 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6c3a194d ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6fb426a8 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73bc78dc ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7607bf00 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x76188719 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x76b51deb ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x76dff9cc ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x77d18dc2 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x78ef52c5 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x79300341 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7a5f8bf4 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7ddf7ce7 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f514a07 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7faf877d ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fd31766 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7ffb6416 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x819ae214 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x86a8aa4b ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x87fbe1c6 ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b844182 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8c3d715a ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f14bbb6 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x904601f1 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x922ba32c sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x954bbe02 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa373fb2c ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa3e7c252 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4bdcc12 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa55d6c84 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa734e868 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xabbb209c ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xac3ab569 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0xac42eb7c ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xadca22e3 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaf2a5c69 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb5055fe7 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbb07ce7e ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbb36b294 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbcefe7e0 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe773886 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc133428e ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc297f301 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc324e848 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4460d88 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc8586e9d ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc8e7c095 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xca62cea5 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcbf5375c sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcf4e5043 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd35aabcd ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd65f25b7 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdba1b49b ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdd459ef8 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdfa727fb ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdff469a2 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0e767eb ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe16382cc sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe225d6f7 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe7da461d ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe87ab0a3 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0xec0b2f68 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xec4ddfca sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xef866d06 ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xefabbc96 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf1676b4e ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf846cc94 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8cced61 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f6b371 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfe165e04 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfee31743 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0xff4ab236 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0xffa6b86c ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x18bbfe20 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/char/hw_random/rng-core 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL drivers/char/hw_random/rng-core 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x060a108d hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x00bd7dba ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x03582a5c ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0faccf60 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x12107520 ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x14e2595c ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x22e0eb33 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x448775f8 ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5184fed4 ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x51c92654 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x52e7f779 __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x645f52f5 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x671ec7f0 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x69b1b8c3 ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7ccde90f __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x934c0ba8 ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x95ac6ad5 ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x991eb933 ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa3e72fdd ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa7b7d3d2 ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xac115e2e ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb0881847 ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb9d459c5 ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc6798374 ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd23815a1 ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd4eaadc2 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe0be6d09 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe1eefd62 ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf10545ad ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf19b65dc ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf714138f ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x25484f35 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x4f18a6a1 dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xac6abb36 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xb0e89bdc dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xb7f84bd0 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xba748c80 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xdff74174 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xf9cf41c0 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2da0bc20 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x4505f39a md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9face487 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xe715ac63 sync_page_io +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0xebb4267b v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x39c7a98f v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xe8c569ab v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x29e92248 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x47517dd9 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x47c56b8a libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x829cff66 libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x88a46403 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9044af9d libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9c69bdd5 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb5196e1b libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcaaa4272 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdb67b86d libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf9e84c2d libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x05fa375d p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x8f4253ac p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xa364054d p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xb3204145 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xd9efa6d1 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x071bc470 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0ce70c56 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x27a6126d rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c72c1ec rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2df00ca0 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x364962c7 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x456c55a7 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4712fef2 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x610f5245 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x68485a8d rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x795d2453 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x903e11c9 rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9079b98c rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab3d712b rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd4cfa36c rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed2eb10f rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf76d7868 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfd09447e rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x27ee6306 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2decf5a2 rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2ecd1e7d rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x412fc184 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x71389b68 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x79f7414f rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd1ca6a48 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x11156cce rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x12a772fa rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x210504e6 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2a30e8ed rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x335777e5 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x69c2f891 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x788db158 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b2a0e8a rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcc17c92b rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x0e798d49 power_supply_register +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x1a57a2b6 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x677eb80f power_supply_unregister +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x67a2a770 power_supply_changed +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xf15c079e power_supply_class +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0394dc23 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e5055c5 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f50eec6 class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3639d163 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3887f746 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cd17204 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b57db81 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e45572e iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x58090922 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5918c49d iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62e8309c iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71e4419e __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x847edefb iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c81d4c8 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f1805b0 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9930567f iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b4338d6 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa1c34155 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc272b401 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc48cf315 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb0ecf89 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd62b58b9 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9ffdacf iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xda3a37b7 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc1bf4ed iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe12c9171 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd113f4e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0cfd7cec sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x100abd2c sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1612bf61 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x28e6b0ad __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30e27657 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x35591c93 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3fbbd27e sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x496fc5fd sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e7969d6 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63a09cb8 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6803eaf4 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7c91d4be sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d1db9e5 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9f7ea762 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1806ff6 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc88bfcd9 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd93bed56 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xefe1b537 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfa1aa8f0 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfdf01efd sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x25bddba2 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3b27400b srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x68c4e4ed srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x94c81939 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xbbb61534 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xeaf10a84 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x03be8ead scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x18b237dd scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2be35723 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x69c89a2a scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x72415edb scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9832561c scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa0550810 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdd191164 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf07a4ca8 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b158527 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2b3d6e8d iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4049f422 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49cc1195 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4f0568e0 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ec614fd iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x620fd524 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6551f4ef iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8fc241a9 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x968bf2f7 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7198bae iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb5b96dc iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc82b232d iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd658a404 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xea75bb0c iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf57db68e iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x32e9d457 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa14bbb3f srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb6e2b344 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc8d678f2 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe860223d srp_attach_transport +EXPORT_SYMBOL_GPL drivers/uio/uio 0x0562f00a uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x21a5a940 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x3ce83449 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x04077e48 usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x04771fca usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x09844069 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x212ac56c usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x28a79544 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x35135bad usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x46c72860 usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5b7dae12 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6e84963e usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7527539b usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7b5cc88c usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x80251996 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x961b7567 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb4eb52f6 usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb5048969 usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc349f08c usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc5fb55b8 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xcbfe8c6b usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdc3cd78c usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf37f5fd7 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x018fc9f1 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x32870b23 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5d0f479c usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x61c9bb97 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7bdb5276 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9366d2ff usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa1a87b06 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xaa9a482b usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcc4c0046 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0xb39e4729 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0f1c5a1a w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1a6f0457 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa4cbcb85 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc278ddee w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf23cb5ab w1_write_8 +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x85d5dea0 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xa962990c exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x13f4e195 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x28a31311 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x3c284f0f fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x47e05245 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x4b342c50 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x5c6ca288 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x624ede42 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x7b8037a3 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x8db09afc fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x8dee405f fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x91ba6f53 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x9bd84aa4 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x9d585e00 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xdc43bc45 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xea3a3457 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xeec52345 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0xfe06da62 fat_alloc_new_dir +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x1871bdb5 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x1f45fe7d dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x2321333e dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x49616841 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x761a5c32 dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x79aa7585 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90aae1a6 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xa94f0ee6 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xc2999a81 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xe7c3b892 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xeb68bab0 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x004c4148 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x08e22136 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09169b90 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ef06ba4 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x11e654d4 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x19e52bcc dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x244f1943 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2df14c77 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x344350b4 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b747d9d dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x42dd9803 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55dae609 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55f7565a dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d6f7777 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6580d228 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x69ae521b dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f24ecf0 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cb3498f dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x947b77a6 dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x94e12d3b dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x97411f54 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9cf2ec1b ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa28cdeb9 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa2bc3913 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa48f22b7 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa49ddd7c dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad2ed67f ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5438f14 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb57e77bc dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd7e74ba compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc4af4b48 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc57f841b dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd150bd8 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd92d4f3 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2f577f3 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd32df18a dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd351ccb6 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5451253 ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd8e3f722 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda8f6515 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc5b0c4c dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xde04da45 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf5443f3 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe33b5c1a dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea498545 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed76e6c9 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf0b23cc0 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8fe3d56 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf92723d6 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x249ec4c9 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2771d931 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa8c9e03d dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd789c125 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe59c140d dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xed2d39f8 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x8890e298 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xa8ed7958 ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xabf28d61 ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0a44074c ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x10771c1e ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x14f3aa8a ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x26698cb9 ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x37a46f04 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x38520c7f ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3a801b37 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3b163e2c ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3b407839 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x48569662 ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x530dff8c ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x61d82bcd ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6b34f99b ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7dbfb3be ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x95038288 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb14c41bb ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb9fd9b69 ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd0b1825d ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd33503b7 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd3c7f08d free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf61082e8 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x25862daa nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x325b6ba7 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb91e5edd nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd322ce6c nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd43a1687 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2a390565 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6f05e961 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa68a1378 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcd475e99 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf075064d tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x100943f6 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x19945d73 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2192102e ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5345c25d inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x67c69bed ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6bf9dc1c ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8114611c ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x917e5004 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x9e44ce5e inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa77995f1 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb3e5205c inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb8a30b87 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd7b5449c inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xea8572d5 ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf8b79ac2 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0469ce51 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11f13f1e __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1461d3e3 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1594a2f3 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d89b69c nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1dd02559 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x217d8ada nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x287ac6de print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a2c7e65 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x319c6985 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37be1862 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a6e723e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e1e085f nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4323a400 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x432d83e8 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x482003f1 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51800caf nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x577ff190 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a08505d __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b483915 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5be7a994 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65499312 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65f9d31a nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66c8b3ab nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b2836db nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b683336 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6be38f69 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7459dce1 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79337c4b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b0be531 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f4b8c4f nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x83baf02c nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87132e5c nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c30600c nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c663635 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97428822 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x981fb6e0 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cbff3e nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd939659 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3d4c99 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5fe821b nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4557671 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4a07de4 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd50ee73c nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdbe426d4 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde4c5743 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xded63d49 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe22b0b7d __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6a2c8e7 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe70be839 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee46fd45 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeee890ed nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3e6e4a1 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf630c7db __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7c8e099 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9b3f06d nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9c7e96d nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x02e30360 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x105b8b90 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1d8289aa set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x337c58a5 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7d7e4ff8 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb3c8f255 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbbe59578 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc844a112 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd03066ef set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd1e1d809 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd2d04819 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfb132caf nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xb9730df8 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x491a1825 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdbaae219 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xee917507 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf13f2715 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x9e53b70f nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbbcaf558 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1c01a1e1 ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x38bb9c10 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc3edcd16 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xca7359da nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x98a9bf87 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x98d18355 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa63b335f nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcebce67b nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1572c1ec xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x202df34f xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x283e88a1 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2d0f721e xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x362064f3 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3b093e29 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4b5fef6c xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x566fbd7b xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7cc7827a xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ab1635f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xab94ddfd xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc514bea7 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd7338e96 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe8b62eca xt_table_unlock +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6734f521 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfc660bf2 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x061e6231 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09973b61 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x223befa8 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22a84695 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x337d7f61 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b262c8b xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x559f24e4 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62261946 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62f4c527 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x631d1f4f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ac99d5c svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6df056c5 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72c725fb rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d3caa9d xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x878e4097 xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87e760be xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e5166b2 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9154e194 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x944f34e9 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2e7f765 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6f50ceb xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa888b188 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacb45d86 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad891c50 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8ad2d2d xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf6ee3f3 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4b947e9 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed8ad735 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6967c3c rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb4b0dad xprt_update_rtt +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01af9096 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x01c9df07 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x01e22ed5 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x02153135 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x026ba4a6 hid_input_report +EXPORT_SYMBOL_GPL vmlinux 0x0293daee nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x02bbfeb2 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x035cd72a hid_set_field +EXPORT_SYMBOL_GPL vmlinux 0x036547da scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x050ff256 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05572d48 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x055951d9 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x067aa50c genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x083f7eed lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x0889aabc sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0949ec94 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x09fe07b9 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0a3e500f vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x0a769637 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x0ae37285 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0b70c48d input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x0c9a85fb kmem_cache_name +EXPORT_SYMBOL_GPL vmlinux 0x0d4a1e55 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x0d8b7bf0 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f774789 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0f7effeb input_class +EXPORT_SYMBOL_GPL vmlinux 0x10d18862 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x1184586b bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1376929f inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13d1718c page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x146ea460 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x183fd621 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x186b8f8f generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x18d31f95 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x190c4b2d uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x191fb096 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x19bc2e8d pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x1a58eca8 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x1ad67be6 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x1b4f1c0a crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x1b647a62 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0x1c1d6259 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x1c2d0a57 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x1c725eaa device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d5a2ee8 scsi_execute_async +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb267a1 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ec3fe54 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1eda2ec6 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x1f44fd1a driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x20683844 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x207962fd device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x213d639e bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22e2c20b atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x237395de platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x24309390 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x2435c3c8 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24a44e9a pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x25e487d2 hidraw_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x288c455a relay_close +EXPORT_SYMBOL_GPL vmlinux 0x28b2cc80 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29467acd class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x29c233d1 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x2a0506d2 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x2a9771b6 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2ab58eaa platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x2ad32ce2 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x2c1de664 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x2cd3a4fb klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x2d28ea08 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e2bc044 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x2e3723b3 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x2e3d08b9 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2e4b081c crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x2fac2a82 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x2fdd8f89 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x30930e3c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x3165e647 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x31874bce alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x31fb8152 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33b970ef bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x34b257c2 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x3595c711 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35e84f69 hid_input_field +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x365d8639 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x36a24f30 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x36c78403 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x3707b00b blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x37629df2 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x379ba85d device_rename +EXPORT_SYMBOL_GPL vmlinux 0x37b55c60 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x393214a2 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x39819646 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x3a297375 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x3a67d54a sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3ae10c9c inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x3affe13d hid_free_device +EXPORT_SYMBOL_GPL vmlinux 0x3b93dc8a inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x3bc33f65 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c0c7cf2 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c59a898 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d65686e simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x3d8831ba tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x3dbea788 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f66f3b3 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x40058ef5 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x40587f7f kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x41503f31 class_create +EXPORT_SYMBOL_GPL vmlinux 0x42164cdc sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4263a97e tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x42a432be device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4401521a tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x442bcba0 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x44bcc006 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45871ff9 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x4618a3ff crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x46aaa0c4 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x471517dd __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x48a76c2e rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4a0b2d3d anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x4a0c74b1 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x4a518b1a free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x4abcfb3a kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4b808d1d inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x4bea08d4 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4ce2736b inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x4dba3bb5 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x4dfa3832 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4e0139fa isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4f4826c0 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x4f932ef6 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x4fa01977 get_device +EXPORT_SYMBOL_GPL vmlinux 0x504c6bae sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50c34746 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x50f9b180 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5123d6b7 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5211c305 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x52b965cb sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52f2b5f4 sba_list +EXPORT_SYMBOL_GPL vmlinux 0x5305611f k_handler +EXPORT_SYMBOL_GPL vmlinux 0x534a30d6 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5425064e driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x543a8bb3 hidinput_find_field +EXPORT_SYMBOL_GPL vmlinux 0x546b7047 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x55b1e7e1 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x55f4c961 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x565f0a78 hidinput_report_event +EXPORT_SYMBOL_GPL vmlinux 0x5697cb39 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c9fb24 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x58191d65 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x597a9c31 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x5a748730 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5ac32321 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5bb42de2 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5ca633a7 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e2981b4 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x5e88cbca class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5eca721f class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x5f23e3f7 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x5f2977af simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x5f3471fb sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6060593b class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x6066e54f apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60c17169 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x61735dea platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x618735ee sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x622b3e2c srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x633574d8 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x636ac957 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x63d7d9e5 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x646f072c devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x650dfce1 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x65387cdb file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x65af1850 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65ff9d4d sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6626032e transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b1abd4 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66b87c00 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x66bec0f4 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e81492 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x66e82e80 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67d8aee7 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x68318a7b tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x69922925 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x6a7c79a0 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x6b2e5962 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x6cdd7f76 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x6d3684c3 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x6db85d95 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x6e9ee278 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x7010524c devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x702ebba8 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0x70761bb6 nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x71196147 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x71a39073 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0x7242dd42 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72a099ca task_nice +EXPORT_SYMBOL_GPL vmlinux 0x7326f6f7 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x73324cce __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x7375246b __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x7421fed7 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7486289a init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74df9e6e d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x75195f69 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x77213b10 hidinput_connect +EXPORT_SYMBOL_GPL vmlinux 0x788e674a scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x78af7c8f init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7948d109 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7951e624 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x797bd981 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x7990bae8 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x7a5fc9b6 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7a61b08a netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x7a6cb18b inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x7aad0e63 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7b3014ad inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x7bb9abf0 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x7bbacb58 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c69cdda crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x7c7bcaee queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7d83299c put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL vmlinux 0x7e519175 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x7ea9e3cc rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fa00180 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fdbd807 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7ffa801f driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x803d01a4 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x805fa0c0 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x836d2cc9 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8412e3c5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x8447161c fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x846b7cab transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x847a143a user_match +EXPORT_SYMBOL_GPL vmlinux 0x84a1bc7c klist_del +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x8655e512 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x86667eff pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8705cd94 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x870e1737 hid_output_report +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87e896af bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x88ab207f tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x88fcfb26 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x89578b6b klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x89c5235d devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x89db611f cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x89ec0b6a blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8a664973 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x8ba33ef2 get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x8c93f0a6 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x8cfadb29 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8d0de035 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x8d0e70c6 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x8d4b86a7 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x8d517052 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x8d5d4d38 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x8d7d9f0a anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x8d9a2932 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8ea5fc46 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8efb7c82 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f871588 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x908ec29b scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x91599a0e scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x915acc1f klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x915b1ee5 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92e8d1e5 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9352a9b1 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x935c2a54 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9388d48c crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x938e2cb6 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x93a11433 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x94813aea sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x94e44baa scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x955961f0 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x96013bd9 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x967f749f sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x970eab43 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x97524fc5 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x979dfd69 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x97bef096 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x97db2c7a get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x97e8a0c5 device_add +EXPORT_SYMBOL_GPL vmlinux 0x9803083c attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x98196f5b blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x99612ea6 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x99b82416 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x99fbe915 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x9a4cd97d driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9abb3cd0 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x9ae95fed user_read +EXPORT_SYMBOL_GPL vmlinux 0x9af0d84d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cc6fda7 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x9d05ffbd crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x9d29812a anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ea2eecb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x9eb2eef6 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9ec64324 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa1295370 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xa1942932 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa1afa73e generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xa2526db0 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xa310192a vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xa3cf3df0 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xa3e837a8 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa429139c class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa4b27a97 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xa5a60943 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5fe76cf inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xa633f649 mmput +EXPORT_SYMBOL_GPL vmlinux 0xa6a8d4f8 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xa7ca7854 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0xa8d53563 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xa8e77cfa dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xa99d1f3b tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa4c7e5a devres_get +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa69cb66 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xab441979 device_move +EXPORT_SYMBOL_GPL vmlinux 0xab7eb207 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xab88ef72 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xaba64d96 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xaf02f251 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xafb6d3e7 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xafbd2192 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xafc9d465 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb040a61d device_register +EXPORT_SYMBOL_GPL vmlinux 0xb0442361 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xb1c9dcce sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xb289d02c devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb4a4b9fb blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb4d64e3c klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xb5a020af audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0xb5dec493 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xb651cc6d inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xb68c665e elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb7d14b54 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xb8759c2c srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xb931120d class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb9d7e4aa get_driver +EXPORT_SYMBOL_GPL vmlinux 0xba549831 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0xbbc74785 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xbd4c87b6 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xbd90510a relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xbdc7aa9a kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbde6f6d1 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xbe0aafdc pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xbe97d97f dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xbeea7a2b srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbf480f4b inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xbf979917 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0xbf9d7eb9 class_device_add +EXPORT_SYMBOL_GPL vmlinux 0xbfd011cd crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xc05b4366 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xc1a52970 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xc1f8052f tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc2bb20e9 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xc2fbeffa bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35680d9 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xc407f0a0 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc482f701 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xc4ebcf74 user_update +EXPORT_SYMBOL_GPL vmlinux 0xc4ee7303 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc69321f1 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xc6d0d97f posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc92fded6 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xc960833e get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc98b58b9 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc9e28838 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xca5f775f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xca962cae hid_parse_report +EXPORT_SYMBOL_GPL vmlinux 0xcad95397 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xcb0c2ebf __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcb52355c inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcb95adc7 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc53ccb3 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcc5bca57 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xcc8aea51 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcc8f4f62 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xcd0a7f9d tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xcdd89631 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcdf5a0ac crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0xcebb2afa vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xcec01071 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd185c003 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xd232a082 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xd29f033a device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xd2b67585 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xd34f3d7d scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xd392a3a2 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xd4f8b6a5 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xd52c6c1c relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xd5dd30ac klist_next +EXPORT_SYMBOL_GPL vmlinux 0xd6326b0f inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xd6432b5d input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xd65a5a12 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xd741cfcf blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd790a61d __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd818f3b9 queue_work +EXPORT_SYMBOL_GPL vmlinux 0xd8216896 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd8d65b5a kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xd9739c81 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xd97db8ad platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xd9b64022 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdb0be9d6 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xdb4db6ba fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xdd305215 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xdd33fec4 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xdd893807 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xdd9c2e48 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xddfd18b8 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xde5820d0 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xdef79d22 hidraw_connect +EXPORT_SYMBOL_GPL vmlinux 0xdf0f606c put_device +EXPORT_SYMBOL_GPL vmlinux 0xe050b1bb sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xe0f420b5 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xe18ae60c inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xe24fda59 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xe26a7d85 find_pid +EXPORT_SYMBOL_GPL vmlinux 0xe2a723f4 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xe2bceecb page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xe35253d0 class_register +EXPORT_SYMBOL_GPL vmlinux 0xe36ed893 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe38bb292 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xe3d67ab2 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xe43808d9 device_create +EXPORT_SYMBOL_GPL vmlinux 0xe53127a7 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xe5ff53f0 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xe7042851 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xe707769b invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xe72666b8 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xe7c60265 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe7d327b2 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xe84adf4f hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xe8517a9e pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe88434d4 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe8daf8a5 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xe91beed2 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea66b49e user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xeac361cb isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xeafe702a srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0xeb36a5e5 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeb7b52d5 hidraw_report_event +EXPORT_SYMBOL_GPL vmlinux 0xed144d61 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xeddcba69 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xee1704c5 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xeec45a4a pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xef4e963e __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xef647450 device_del +EXPORT_SYMBOL_GPL vmlinux 0xef82fdba srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xefe1497a device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xf070f812 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf242576d inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xf259aa21 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xf34fcff7 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xf35b1a1b sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xf3a49520 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xf3a541b9 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xf3ee89c7 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0xf45ab6b5 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xf4f79ed5 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xf696b6d3 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xf6f128e2 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xf70c95fa inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf74dca9d ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xf8083a93 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0xf83486f1 class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf85334f3 hidinput_disconnect +EXPORT_SYMBOL_GPL vmlinux 0xf88ea24e bus_register +EXPORT_SYMBOL_GPL vmlinux 0xf8b83aa8 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8c9702e class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf96e69aa platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xfa52db8b devres_add +EXPORT_SYMBOL_GPL vmlinux 0xfa5e1189 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfae93c65 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xfb733b8e bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfb83b9b1 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc03d40b sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfc3f3e8b inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfc8374c8 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xfd6bee17 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfdc53639 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe4e50e6 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xfe59fda0 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xff76950c relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xffaf7bbb __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xffccea4f platform_get_irq_byname +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x1df2c760 usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x4543b06e usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xedd3d5d8 usb_register_driver --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/sparc/sparc64-smp.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/sparc/sparc64-smp.modules @@ -0,0 +1,1069 @@ +3c59x +3w-9xxx +3w-xxxx +8021q +8139cp +8139too +8390 +9p +9pnet +9pnet_fd +a100u2w +aacraid +ablkcipher +ac97_bus +ac97_codec +acecad +acenic +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adm1026 +adm1029 +adm8211 +adm9240 +adt7470 +adutux +aead +aes_generic +affs +af_key +af-rxrpc +ah4 +ah6 +ahci +aic79xx +aic94xx +aiptek +airprime +alim15x3 +anubis +aoe +appledisplay +appletalk +appletouch +applicom +arc4 +arcmsr +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +ati_remote +ati_remote2 +atl1 +atmel +atmel_pci +atp870u +atxp1 +authenc +auth_rpcgss +autofs +autofs4 +b43 +b43legacy +bbc +bcm43xx +befs +berry_charge +bfs +binfmt_misc +blkcipher +blowfish +bnx2 +bonding +bridge +broadcom +bsd_comp +cafe_ccic +camellia +cassini +cast5 +cast6 +catc +cbc +cdc_ether +cdc_subset +cdrom +cfg80211 +cicada +cifs +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cmd64x +cn +coda +compat_ioctl32 +configfs +corgi_bl +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +crypto_null +cs53l32a +cs5530 +cx2341x +cx25840 +cxgb +cxgb3 +cy82c693 +cyclades +cypress_cy7c63 +cytherm +dabusb +davicom +dc395x +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +de600 +de620 +decnet +deflate +display +display7seg +dl2k +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +ds1337 +ds1374 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dummy +dv1394 +e100 +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +ecryptfs +eeprom_93cx6 +efs +ehci-hcd +em_cmp +emi26 +emi62 +em_meta +em_nbyte +em_text +em_u32 +envctrl +epca +epic100 +eql +esp4 +esp6 +esp_scsi +et61x251 +eth1394 +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fat +faulty +fcrypt +fealnx +ff-memless +fixed +flash +ftdi-elan +fuse +generic_serial +gf128mul +gfs2 +gl520sm +gl620a +gtco +hermes +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hostap +hostap_pci +hostap_plx +hpfs +hptiop +hwmon-vid +i2c-algo-pca +i2c-algo-pcf +i2c-dev +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-simtec +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i5k_amb +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmpex +ib_mthca +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-tape +idmouse +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +imm +inet_lro +initio +input-polldev +ioc4 +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipcomp +ipcomp6 +ipg +ipip +ipmi_devintf +ipmi_msghandler +ipmi_si +ipmi_watchdog +ip_queue +ipr +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw2100 +ipw2200 +ipx +ir-common +ir-kbd-i2c +iscsi_tcp +isofs +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +jbd +jsm +kafs +kaweth +kbtab +keyspan_remote +khazad +ks0108 +lcd +ldusb +led-class +libata +libcrc32c +libertas +libertas_sdio +libiscsi +libphy +libsas +libsrp +linear +lkkbd +llc +llc2 +lm63 +lm70 +lm87 +lm92 +lm93 +lockd +lock_dlm +lock_nolock +lp +lpfc +lrw +ltv350qv +lxt +mac80211 +macvlan +marvell +matrox_w1 +max6650 +max6875 +mbcache +mcs7830 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mga +michael_mic +microtek +mii +minix +mlx4_core +mlx4_ib +mmc_block +mmc_core +mmc_spi +moxa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msnd +msnd_classic +msnd_pinnacle +msp3400 +mt20xx +multipath +mxser_new +myri10ge +myri_sbus +natsemi +nbd +ncpfs +ne2k-pci +net1080 +netconsole +netxen_nic +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +n_hdlc +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +n_r3964 +ns83820 +ns87415 +nvidiafb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +openpromfs +option +orinoco +osst +output +ov7670 +p54common +p54pci +p54usb +p8022 +p8023 +parport +parport_ax88796 +parport_pc +parport_sunbpp +pata_amd +pata_cmd640 +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pdc2027x +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca9539 +pcbc +pcilynx +pcnet32 +pda_power +pdc202xx_old +pdc_adma +pegasus +phantom +phidget +phidgetkit +phidgetmotorcontrol +pktcdvd +pl2303 +plip +plusb +pm3fb +powermate +power_supply +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoe +pppol2tp +pppox +ppp_synctty +psnap +pvrusb2 +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogicpti +qsemi +quota_v2 +r128 +r8a66597-hcd +radeon +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +rdma_cm +rdma_ucm +reiserfs +rfkill +rfkill-input +ricoh_mmc +rio +rio500 +rndis_host +rocket +romfs +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +saa5246a +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-empress +saa7134-oss +saa7146 +saa7146_vv +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbp2 +sc92031 +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdhci +sdio_uart +sd_mod +seed +serio_raw +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +sis190 +sis5595 +sis900 +sisusbvga +sit +skfp +skge +sky2 +sl811-hcd +slhc +slip +sm501 +sm501fb +smbfs +smsc +smsc47b397 +smsc47m1 +smsc47m192 +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ainstr-fm +snd-ainstr-simple +snd-ak4114 +snd-ak4531-codec +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs8427 +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigoio +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-maestro3 +snd-mia +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcm-oss +snd-pcxhr +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-instr +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-oss +snd-seq-virmidi +snd-serial-u16550 +snd-soc-core +snd-sonicvibes +snd-sun-amd7930 +snd-sun-cs4231 +snd-sun-dbri +snd-tea575x-tuner +snd-timer +snd-trident +snd-trident-synth +snd-usb-audio +snd-usb-caiaq +snd-usb-lib +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-ymfpci +solaris +soundcore +sound_firmware +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +st +starfire +stex +stowaway +strip +sunbmac +sundance +sun_esp +sunlance +sunqe +sunrpc +sunvdc +sunvnet +svgalib +sx +sx8 +sym53c8xx +synclink_gt +synclinkmp +sysv +tc86c001 +tcm825x +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tda8290 +tda9840 +tdfx +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tg3 +tgr192 +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tipc +tle62x0 +tlv320aic23b +tpm +tpm_atmel +trancevibrator +trident +trm290 +ts_bm +ts_fsm +ts_kmp +tsl2550 +tulip +tun +tuner +tuner-simple +tunnel4 +tunnel6 +tveeprom +tvp5150 +twofish +twofish_common +typhoon +u132-hcd +udf +ufs +uhci-hcd +uio +uio_cif +uli526x +upd64031a +upd64083 +usb8xxx +usbhid +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usb-storage +usbvision +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +veth +vfat +vgastate +via +via-rhine +via-velocity +video1394 +videobuf-core +videobuf-dma-sg +videodev +vitesse +vp27smpx +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83791d +w83792d +w83793 +wacom +winbond-840 +wire +wm8739 +wm8775 +wp512 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xor +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +yealink +yellowfin +zc0301 +zd1201 +zd1211rw +zlib_deflate +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/sparc/sparc64-smp +++ linux-2.6.24/debian/abi/2.6.24-24.56/sparc/sparc64-smp @@ -0,0 +1,5994 @@ +EXPORT_SYMBOL crypto/gf128mul 0x24ed78f1 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x26f4c894 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0x3048a718 gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x61dc7b4e gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x67230a48 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x79a10b7e gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7ade1ff9 gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7f5e7a78 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x83dff6a6 gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0xac500869 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0xb81a3b33 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0xcd29b909 gf128mul_4k_lle +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/cdrom/cdrom 0x0f02d297 unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x35e0da6c cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x593fec2f cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x63b58b17 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0x6fa4857f cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0x87fe6ab7 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x8df4de40 cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0x910e1c7e cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0xbf5751db cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcdf2ea44 cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xfa9d13fb register_cdrom +EXPORT_SYMBOL drivers/char/generic_serial 0x06dbcf36 gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0x0ad06642 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0x21caa663 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x24edd9c6 gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x5f7df0bf gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x61b64f73 gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0x66e1b67f gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x73ca0f2b gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x9a5a3763 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x9c6639aa gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0xac8db65f gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0xb1d5d494 gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0xb4644e3e gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0xb76d41d2 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0xd206e8bc gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0xf4a69131 gs_stop +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0f6e2813 ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x11042784 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x209dd7c6 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x349dd738 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6b3245f2 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6bcf0d2b ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x718bbe9a ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x80be7bf4 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8be56779 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x90eb668a ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9d4cd0ad ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa190b9d4 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2280d43 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa7756b76 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa910649d ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaccb3a68 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc107c6c1 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc56d05dc ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd29cb495 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd6d6ab5c ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd75dd31d ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd975edeb ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe22edd43 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfbae6ef1 ipmi_request_settime +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xd4583690 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xc73840c3 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x2662855d ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0x29b66b23 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0x2b35389d ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x31a7528b default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0x32aa64f4 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x3fcca94e ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x4dd360c7 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x53b80ec5 task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x55b99272 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0x5662129c __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0x57be753e ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x5ffb9dd7 ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x64a294b2 ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x75bd55fa ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x9105a4c8 ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x96d00074 pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x9d59e6f8 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0xa2ebc078 ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xad7c34db ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xb54529ee ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xb77089f1 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0xb964c6e9 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0xbcc9ff11 ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xdb8d963a drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0xdf3caddf ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0xdf8f4bf8 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xe4276064 ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xf0592160 generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0xf0d08d9c ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xf48a45a0 SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0xf9b2cfc8 ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0xfa1f339e ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0xfba53634 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0xfcbb1437 task_no_data_intr +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0059a40b hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0191d6ee hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0768b0ed hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07ae113a hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e81f4ea hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1a200e5a csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1a526d94 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1aa41e2c hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24328cdd hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x26f1d14c hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x28ca08bf hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x298f9858 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2a4cc36b csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x34cce7be hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x38c26c03 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x464783f1 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a490b17 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a9cd770 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4c9b2977 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4cbec391 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x55ce0ded hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x58ad8dfd hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a99dd60 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5c44be18 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5d090b3b dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5f5fdd2f csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6344219a hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x63654875 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x68b544ed hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6df952be hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6e92a91b hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6fd21469 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x704afd7c hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70bc9fff hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x73809256 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79665353 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7ba99a5e hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7d5a9f08 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8734ccb0 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x89204857 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8cf54a48 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e65fee7 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ee820ae hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ff6869d hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x946b1796 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x97a20bc7 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x997e793a hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ebfc42b csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa9f18033 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa79cceb hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaef57bb5 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb753049f hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb8d14907 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbaf47546 hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbbe4b820 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc33f9bb5 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc35133ef hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc463f73e hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc6d12e97 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd07717dc hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd26319f2 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd992c6fc hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe046c05f hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe492ff3f hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xef3c570a hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xef8da133 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf22095e1 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf255c748 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf892a783 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x167cba30 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x1d5aeebc ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x90384b96 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xf0275b82 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x03fcaaba rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x7eeff7de rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xe275925e rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xfe13d5c7 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0db9f14f ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x26eddd86 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2cb097d3 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x31a93f9b ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4aeb7614 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x55e6a05f ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x73e9fd4d ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x74d5c685 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9571dbbe ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9bb95b02 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9f3fa59a ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc29fc68a ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc8469515 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd055b332 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdea9371a ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xeee32760 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00dc87cd ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c277f31 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11725ad0 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b575c41 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1be731a3 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24e4504b ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d99a4bf ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2dfe3d90 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3080b0c5 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x390c05dc ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fbb879b ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42c03e7e ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x432b4054 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43acb0b9 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4504bd04 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45ff2add ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46002bb4 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x469deb7f ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d69891c ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d80be21 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56ed5bd8 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5abe9fe9 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d288e51 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5de40ec9 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x611b7672 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x658b97c3 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69c73f9f ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6cef02a7 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ee8300d ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f8c3f00 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7374dad1 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78f1b190 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87119053 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88da2395 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a24fa8e ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b2a57d5 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b5fd3f9 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bce0afd ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bd8ca2d ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d7e36a5 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92889828 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94c22a72 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95aed27f ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97751682 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2ff54b5 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4bef9b3 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7cc5de5 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa925443e ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa93a2bb0 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab4259ee ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb886fda5 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbaffda77 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6ca95dd ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1a334a1 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd40ad431 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd60336ac ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda09d955 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdbfd67da ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd6971ce ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe29477cb ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe30afcb4 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe50b5cff ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe565dd7e ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7ce172f ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee93b3f2 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1950a6f0 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1bff11fa ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x24f065ef ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2ff8ed43 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x53e5693e ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x62a83afd ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x710f4ded ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x81c84b2e ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x92229e26 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9d5f9067 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa917a8a5 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xde2c3cd1 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf80a64fa ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0a1d8a52 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0d0e5932 ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x392f9ea3 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x70d693c0 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x812f0f6b ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa89104e3 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xaedd29ee ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xcf4a32b1 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe6307f78 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xed71c3d5 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x057cb4d2 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x36a35a2f ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3e0ed3f0 ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa12a9ec5 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x02dc79b0 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x50ab8daa iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa0ae4669 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xad79d906 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xafa534ae iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdc22995e iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdf6e1bbf iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xeb9c3b0f iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x02983271 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x198afe8f rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2848c908 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x53d388ba rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x54fb6f14 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x55ff6922 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x59366f67 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5948390d rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x657f137e rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x777c1f47 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x83a9ef38 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8834ebdb rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x98c822f2 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb9ff226b rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc94d1da8 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcaf839db rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe13bc136 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf70ebf37 rdma_set_ib_paths +EXPORT_SYMBOL drivers/input/input-polldev 0x64433eb8 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7fbacd0a input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x80df73c6 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xdf970487 input_unregister_polled_device +EXPORT_SYMBOL drivers/md/dm-mirror 0x40278476 dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x5b50b301 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x9c9acf40 dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xc553bb18 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mod 0x00933c07 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x121b06b1 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x176d5c2e kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x41482109 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x47a75fff dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x492a3c61 dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x7de70a5b dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x9b7f4e32 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xa554425c dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0xad033a55 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0xb4d5ca0e dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0xb86dd686 dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xd1b78e55 dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xd5849004 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0xde62c7ce kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xe0a2e7a6 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xedff2857 kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xeee9e81e dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0xeefc0da8 dm_io +EXPORT_SYMBOL drivers/md/md-mod 0x1bb5da1d bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x23e99755 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x280044b1 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x443a51a1 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x544b2efa md_error +EXPORT_SYMBOL drivers/md/md-mod 0x5b3b465f md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x5c0ac809 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x6588ea8d md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x8efc47bb md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x943baaae md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x98e15776 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xcc95384d register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xd9eaab16 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0xe31da2d7 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xe630bcc1 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xf37b9aaa md_register_thread +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xbbc08e0f cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x12a3ab13 saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1b0b51e5 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x203b9360 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x318f26eb saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3a35fb9a saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6af33aa8 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7d5daf62 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x81d2a0a9 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa4bac5ce saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc206d2da saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcd3a05b1 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcd7ca1a8 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd0c9214c saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/tveeprom 0x03c26afb tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x89bbdf57 tveeprom_read +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x99d4d223 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0b7a898d v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1dcaa0c8 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2f639468 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42f5b31d v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x572269cb v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x76ba9a9a v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x94d8a5d8 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x95284709 v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9c7de443 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb5266c1a v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbecd2858 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xea6b1ba9 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videodev 0x094ebb22 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x17fff0f0 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x77eac7b2 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x818ea9db video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x8489467c video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0xaf2b888a video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0xca34ff81 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xf441ba22 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xfde6cb29 video_device_release +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x035c03dc mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0709004d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x21b8599b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x26aa0650 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2fe02cfb mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x339f689a mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x36c40090 mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x41c0ce3c mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x461bdd31 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x462bea71 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x73a950ee mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b627adf mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7be75879 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7bf9ec9c mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d3af7f4 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9600b110 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9def62ad mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa922c316 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa97b5c10 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcd3c8cae mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe22448c6 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8533b46 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x02c8fd21 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0c534b28 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x23903f32 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26e274f1 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x284b3a2e mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x322547ea mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x36d4d2e5 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3a492fe9 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5485d473 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x648e9d85 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x76329742 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x77ddfb29 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x79c7f8fd mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e09469f mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9354cc95 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x981e0896 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9abf84a2 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xba3841db mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbfd49551 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe243e561 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe3589e1a mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfad0ab31 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x02016236 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x08166b3c i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1233d640 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1f5558bc i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x285b7843 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x347e60bd i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3aaaea94 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x46738d93 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x51163dd1 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x55cf7e46 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x69bc1f7e i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6dfb74c1 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7dda8c9f i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7f80dd11 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x80d59cf7 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x82dff070 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x84b3840d i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x991775fd i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb96215bf i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc894e41b i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe6864f41 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf16b6e7d i2o_status_get +EXPORT_SYMBOL drivers/misc/ioc4 0x593b9092 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x6e22bcd8 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x13971205 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x1ed98c34 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x20e3dff3 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x2fb48fe8 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x3bd73b3f tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x450ddf59 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x65749102 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x7249fe6a tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x9470fe63 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa34eb4b5 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xb0c05a9d tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xeefd03e9 tifm_register_driver +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x588b0491 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0969f5ec mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x21b085e9 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2344141a mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2c57547c mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x49b311cb __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x63cda77a mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x66b65dd8 mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x849c9ee5 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9b727e44 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa11e94f1 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa8058853 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc7aaa031 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf501d5b6 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfa35e58f mmc_remove_host +EXPORT_SYMBOL drivers/net/8390 0x217b93f9 ei_close +EXPORT_SYMBOL drivers/net/8390 0x45bdfea2 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x4dc9b03f ei_poll +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xa47e808e ei_open +EXPORT_SYMBOL drivers/net/8390 0xa53382f9 NS8390_init +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0614da45 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x12205b67 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x235a4918 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4b9438c1 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x56127f14 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x661a3cc2 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6835acd0 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x74025a6d cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x76c8ba53 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x96ede7ff cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9b252a54 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9e7ff13c cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa39b7c4b cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbb7958f5 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd0dabd3c cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd9ea89a1 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/mii 0x069386e6 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x67e14c22 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x8edb4f4d mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x9cebda3e mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xad28b995 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xb3f6270f mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xc60ca0a8 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xfeb4cc94 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/fixed 0x7639e2bc fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/fixed 0xb37c4392 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/libphy 0x02240046 phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x047ce129 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x0d6945f8 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x0f6322d7 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x19b48470 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x1fb6ccc1 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x23c5b665 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x37f191d8 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x3e16ffc7 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x4196b417 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x43a38eff mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x5acc43db phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x8429289e phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x8d20da14 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x8dbe4f5e phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x90c99582 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0xa667ef59 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0xa86d6df3 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0xa8d53f75 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0xc06b4e04 phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0xc6770b48 phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xe60e9fa8 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xe7ef15bb genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xe94c7fbb phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xf78455a3 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0xfa6ae1a8 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xfc88c9cf phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xfd0ed546 genphy_read_status +EXPORT_SYMBOL drivers/net/ppp_generic 0x19bbf7e5 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x60a8ad93 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x973e1fb9 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x9f689b7a ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xd2281bf6 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xdac7dfbc ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0xe8c4f483 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xedb347fe ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xef970c3a ppp_input_error +EXPORT_SYMBOL drivers/net/pppox 0x1e6bc503 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x5ca2b5d0 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x6fb2d56d pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/wireless/atmel 0x0e076df6 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x266cdc46 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x80d9bea5 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0eb42553 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1f34d4fa hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x223db327 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22e5bc44 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x30644096 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3f490b4b hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4388e3c5 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x44255fde hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4aa1a10e hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x573cf49e hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5846bc10 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x58f91bb9 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a5fc46e hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5d87bfb6 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x780371ab hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x850e30ae prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8b701868 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae3e2a67 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb687e81b hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb94d33ad hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcef622cd hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd6ddd74a hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe08f32db hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe20a5fea hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb9b42e3 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xee2d710d hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf2de3045 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfb46eaa0 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x01b338fb alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x12adc9a0 __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a0d66f5 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1e03f8f6 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xa3dfa672 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/parport/parport 0x1685bb11 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x19ba5f84 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x252cc00a parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x2e667d49 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x33f54bbe parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x36b53d2a parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x3cb53c61 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x412bac4f parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x4ae6240b parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x56ebbdeb parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x56f361ee parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x57d5fdfa parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x596ebd17 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x5d630444 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x6321c7b9 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x6eb91efa parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x6f8f63c3 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x70832ec6 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x72e3738e parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x93f54417 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x941d6886 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x9604391b parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xae70ca66 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xc5c9a464 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0xd584eb32 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xdc952e3d parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xdf1a9763 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xe649d506 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xe750e877 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xfefa455a parport_claim +EXPORT_SYMBOL drivers/parport/parport_pc 0x1412254a parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x58db91ab parport_pc_unregister_port +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/sbus/char/bbc 0x0587c052 bbc_i2c_attach +EXPORT_SYMBOL drivers/sbus/char/bbc 0x0856586b bbc_i2c_getdev +EXPORT_SYMBOL drivers/sbus/char/bbc 0x26a796ea bbc_i2c_write_buf +EXPORT_SYMBOL drivers/sbus/char/bbc 0x3d08810b bbc_i2c_read_buf +EXPORT_SYMBOL drivers/sbus/char/bbc 0x842b291c bbc_i2c_detach +EXPORT_SYMBOL drivers/sbus/char/bbc 0x95619328 bbc_i2c_readb +EXPORT_SYMBOL drivers/sbus/char/bbc 0xcd7c28a2 bbc_i2c_writeb +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x57f25270 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x99576dba scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x9fc861b9 scsi_esp_register +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xed73dae9 scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xef2a7370 scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x270fb0dc lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x2d090417 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xcf68f8da mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/raid_class 0x30f6fd99 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x58c32a76 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x59aa54be raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x00444eb1 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x004bf2d3 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0187aebb scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x034c8e9f scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0d560e3e __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0d9b55b6 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x12aa001e scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x136754ba scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x15f899ba scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1611922d scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x17f14ae2 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b533643 scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1e823d1f scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x21246f7f scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x21e33b8e scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x26e4dc96 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x27096964 scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x27ef5e3c scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2ba6219e scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2de0b487 __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3567592b scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3a02f119 scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3a0ce08a scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3a4a8d77 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3db02833 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3dd69e63 scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4211e59f scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x455505c8 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4679f5a2 __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4953cca0 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4978369a scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4a40c13d scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4a918819 scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x52ed1382 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x553f3348 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x55b86e93 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56987c01 scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x57458d73 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5841dbfe scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5ecc81c8 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5f41ce38 scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5f6672d9 scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x60dc5d9b scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6a3a4e21 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x700911f7 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x749d0842 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7dc43fdc scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7fdeedb9 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x82deb0d9 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x895e0e55 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8b700310 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x98ae7226 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x99038d37 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x99ce4e9e scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9ceef438 scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaa2a0813 scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xac79b383 scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad0a76ef scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb2763b31 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xba6bd5ef scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbb2a8319 scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbfa6d003 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc5ecccf2 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcb3e803c scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd8089eed scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd843ec14 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe404fecb scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe54cdf85 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe9dc2e81 scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xeb485d18 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xec72196c __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xec8e683b __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xed7fa5cc scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xedf54fff scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xee155884 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf29bfb2d scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf3e51f82 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf9b8255b scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfbaa41e3 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x014ec9ce scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0da90f63 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x29b27415 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2cb5a4e7 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4011fcb4 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x69e65c84 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x78102925 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x92b6fd39 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa908f49f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xac6d56bb scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdea682b4 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0c367c9d sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x105645e2 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3176c9ce sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f21e0e9 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x41cb0192 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44f6f62f sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ce3f0be sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e22838a sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x654e4fad sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d62eaf0 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6fce96bf sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x76007aa6 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c9acc03 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8e6c73e1 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x913e8182 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x97a89f99 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98adf264 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ce336bf sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f63d59a sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa459c698 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9c074f2 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf0087b4 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xca4aad0d sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xce263378 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd4d03bb sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6f1f9ad sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x533dedd3 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xa433902f spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xaf794eb0 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb469c019 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xba5b6b87 spi_attach_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x1ade9bd5 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x3746ad21 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x3f714709 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x4377b0a0 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x68a4e907 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x88059516 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x8a76c4d7 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x8a9e2ba3 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9210aaee ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x9e9afe77 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xa79c4cb1 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xa81b0b19 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xbaaafb2e ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc57572df ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xebb92e4b ssb_dma_translation +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xa6a0cba9 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1a855fb5 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xed704db0 usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1d501249 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x38a5070b lcd_device_register +EXPORT_SYMBOL drivers/video/display/display 0x6d3a8fd0 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xa0a78270 display_device_unregister +EXPORT_SYMBOL drivers/video/output 0x4f1d5f74 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xe78098f1 video_output_register +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1793912d svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x28eb6527 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x86b2ccb4 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x8a477200 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x8eb94778 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xbb793328 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xd8ce2a31 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe6a20928 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xeadc8dd0 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x062d9e08 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x77d017b6 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xa6bbda99 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xf446dc42 w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x0a3e319d configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x14872a92 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x16cf8bc6 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x356f4c9c config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x3b54e8ed config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x54c992d6 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x5591a82d configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x5f4a0569 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6b82a53f config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x7931d45c configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xc5025333 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xddbe9e79 config_item_set_name +EXPORT_SYMBOL fs/jbd/jbd 0x05557eea journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0x07a78266 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0x08cedb66 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x112950ff journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x18231764 journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x1d6e8a11 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x1d7df343 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0x1f11faff journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x2d46663e journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x30ee743e journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x34ef761e journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x36cb9513 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x56ccc4ad journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x5b4bce57 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0x5b850c74 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x5e233b0b journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x6b2d6e4d journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x71d1cdb0 log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x74b405bf journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0x7b24f136 journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x7b4d3454 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x805db390 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x89ded767 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0xa32c3549 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0xb51a53fa journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0xb7bbf4ce journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0xb9d001e0 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0xc0b461ba journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0xc730174e journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0xcb01e781 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0xdb4cdf88 journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0xe44d4bf6 journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xeddca59d journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xf281a3a8 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0xf39a3f56 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0xf661f3e4 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0xfc866ca5 journal_lock_updates +EXPORT_SYMBOL fs/lockd/lockd 0x3d1a13f1 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0x8e05aea5 nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x074b24aa mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0x306282b3 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x70b4261d mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0x718ca48b mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0x99451918 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0xc5d94f57 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xc79bbcf9 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0xcb1c3a27 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xe4e18e30 mb_cache_entry_find_first +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x01cbb01c nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x85c40027 nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x1f573533 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0xdb389aec nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/xfs/xfs 0xb3a3f2e8 xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x9aabc564 crc16 +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x13c0c38e crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0x41bcd8b3 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x4c5291b7 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xef3e02b4 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x2b35cd58 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x8f1c8d5b destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x809e2442 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xa49debf8 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x11b295bd p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x170b60a6 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x2a2a1bc9 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x2ec6ae53 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x2f989ecf p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x2fbaf88d p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0x3789bf6c p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3b550e16 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f4045cc p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x3f7c7ffb p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x455b8963 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x4e67e679 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x5082d7a6 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0x5690e6fd p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x6886f8e2 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x7a3ae9c4 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x889fe74d p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x8af4fb69 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x8cef3ffd p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x8dbafd13 p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x8f1eb47f p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x917bdb14 p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0x95577e26 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x95874392 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0x97e0d934 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x9a7787fd p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xa13bf1a9 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xa2bc5827 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xa6670f31 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xaa3a2695 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0xb91b36ad p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xbb73347b p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0xc1bfebbf p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xcccde93c p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0xd19236c6 p9_create_tflush +EXPORT_SYMBOL net/9p/9pnet 0xd241eb99 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xd544d6f8 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0xd8e59790 p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0xdcd7bef9 p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xec9d7990 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xf41f57cb p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xf4c31654 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xf633a506 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xf90d6e1c p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xfecc8e84 p9_client_uwrite +EXPORT_SYMBOL net/appletalk/appletalk 0xbc1f4673 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xe8b4cf3e atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xf68ef0ad atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xf75e72bb alloc_ltalkdev +EXPORT_SYMBOL net/bridge/bridge 0xc377b4ff br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x13b0498a ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x14f81fc9 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x296f8146 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4c263f4e ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x88c932eb ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa76f5697 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa95f0d24 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd6c1e11a ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xfc1020aa ebt_unregister_target +EXPORT_SYMBOL net/ieee80211/ieee80211 0x011d202a ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x03db504f ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0a79c928 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x27c23085 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0x286b3bd6 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x445c98f5 ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x57de9677 ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0x672c07d0 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6d0abc77 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x76b558b8 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x79556db9 ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7b338fde ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0x91101211 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa3e05113 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa3e69660 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa4b1ba26 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc3db8bab ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc6aedb41 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf7c41d8e ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x0e99a9d3 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x21a2386e ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x25e85502 ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x8a11ec51 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xe6c6068c ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xfe8f64d9 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ipv4/inet_lro 0x02baf73b lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x050124da lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x21196e1b lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0x5a6ca5ac lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x6258c678 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0xcf9edd8e lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x0f83a1b4 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x10083f64 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x346bb722 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x5472449f register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x63fd9509 register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x7a4bd1b7 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x8f1ddeb1 ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x9bf892c2 ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xcfbfb9ac ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xef2e9a70 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xfe759364 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x13725559 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x35ff6841 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x452c88f7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x5cdc67b5 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7348de48 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xefc58ce9 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1f4854f3 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6e76c87f nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7cfe91aa nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x85da1d4e nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x936abb1f nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa9f6275e nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xddedf057 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf0f8d1b8 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x8753fbb1 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x9a368fed xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x01315d93 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x071f6fac ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x27de62b1 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x286735d8 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x32f18ac0 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x36d55037 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x3c737820 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x52bb1f5c xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x603c54cd ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x6057d699 compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x61be2da5 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x6de0466b inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x723835c3 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x79e0b0a8 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x81f2ea4b in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x8438e211 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x84a82121 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x89676f4e ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x8cca50d4 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x9903f2dc inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xb5460ed8 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbab928c2 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xbeeefdbc xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0xcdc020f9 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd5b60a86 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xd6059d90 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xdcf20355 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xe6963161 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0xfa893741 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x10aa3044 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1e3ff89b ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x63b023af ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb4dd6766 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x1e4fb623 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x544e98fc xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/llc/llc 0x316795ed llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x54caa3b8 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL net/llc/llc 0x5f69c2db llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x63653255 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x757e547e llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x799bb771 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x9a715f34 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xab27db9e llc_set_station_handler +EXPORT_SYMBOL net/mac80211/mac80211 0x093bfe41 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x171fd574 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x24d5b179 ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x2dfccd86 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x35593f28 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x45568478 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x4ff5463b ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x571e9785 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x5ea7e02d ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x610bb1ac __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x65905e4d ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x70d916cc ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7ff16be9 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0x86dca934 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x8bc0dada ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x8c315139 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x92f1550d ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9303bc3d ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x9ec4678e ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa405f731 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaf9b7d9b __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xb2edba01 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbba6aa5a ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc25ea4e8 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xced2f42e __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd013dcfb ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xe6e99936 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe7982b46 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xec4f5d5a sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0xf62aa785 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x003ac427 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa5f6e66e __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x029c9001 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x0b5b0d00 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x16381b8f xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x392082ef xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3966d20b xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x757555e8 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x7bfd87fb xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x9e37bf4b xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb058a5db xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xbe07939c xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc3ed1efb xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xdceaa8ea xt_free_table_info +EXPORT_SYMBOL net/rfkill/rfkill 0x18dc51e6 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x49e93af1 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x8030c49d rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x92cf3f8b rfkill_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1606bb3e rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1cb9ee9d rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2685b1c1 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5553a549 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x60762178 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x66271ec6 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6751f2a4 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6a026660 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7569513a rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9d9f05af rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc25aa9be rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd347a2a0 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd74fc1c8 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdef88582 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf01952f1 key_type_rxrpc +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x04e72039 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x29bfb666 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2abef2d1 make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2f8a18ba gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5985e8e9 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7c4e8f20 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8c999ed6 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8cf79c1d gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x92d77881 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x9a6171a2 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xba555d16 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc57fe5c3 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd332c2c7 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd5dc7086 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf5d99c5f gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x011f0ef9 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x01f08b56 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x03f69443 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x04fd1a78 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x06e6e7d7 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x093d8ddf svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0c28cd1d rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1220ce1a rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x126232b0 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x13f28bac auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1421897a rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x14c562b6 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1713ff10 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1eee758b rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x22b4f75f xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x22ec1cfb rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x298e446a xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2b3198a3 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2feaf380 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x35ecded4 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x36f1726f xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x37e18c1c xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3bb99653 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3c1c9868 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x41e2f260 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x44cf700f rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0x46cf3d0a svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x51448bb7 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5185d55d rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5470e105 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x553f37f6 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x58f48240 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x598bbf00 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5a054bcc cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5a7b86ff rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5d6431a2 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5daf1b04 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x618dd2cb rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x63f52e20 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6611b10c rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6c0828d7 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6de3ca8f unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6dfb99a0 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6ed9f526 rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x753719c0 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7daccc86 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8204b253 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x84e04009 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8614d151 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8830c7c0 rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8ce8f514 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9009865e svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x90a87f82 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x92ab3fa2 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x935370fa svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9452d4f0 xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0x95c2cb86 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9efbf533 xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ff26bf9 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa4b914a0 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa692ae2f rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa6b27cf8 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa8f78e9e svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaae5ba58 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0xacaf276b rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xacd630e0 xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb2f6fa10 cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb53eb5a5 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb74f2277 svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbd56ee7b svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc50cb5e8 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc6935f90 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8cb4132 svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd007ff3d rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd1552427 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd190ec80 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd4692c9f rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd566c0e5 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd6ed45b0 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd81b47cb xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd953739e xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdf01294b sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe0af5127 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe19ee73d rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe296b3ba auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe319f464 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe54e75ae rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe63b8287 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf3c82bf5 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfa3b9033 rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfef6d3e4 rpc_delay +EXPORT_SYMBOL net/tipc/tipc 0x0536aa42 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x0bafe5de tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x1637ac3a tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x37ea1484 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3c27ac67 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x598d5552 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x74654854 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x8babdb91 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xa27c08a9 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xaf37f87d tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb63bd362 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xc616c7dd tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xd81f72e4 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xfd6aaaa5 tipc_set_msg_option +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x1d013ce3 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x41ecc5da wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x4c4f3fa4 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xe02a323a wiphy_free +EXPORT_SYMBOL sound/ac97_bus 0x1f6496c6 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xcd26d135 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-fm 0x5a3e4571 snd_seq_fm_init +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-simple 0xd5791cfd snd_seq_simple_init +EXPORT_SYMBOL sound/core/seq/snd-seq 0x005ff50a snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x09a327c0 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x296b99f2 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x66212d85 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x69ee7fd1 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x83fa7332 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x89947013 snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc84df378 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcab6cb74 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x17d9e4cf snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x60301ba8 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x92c51d38 snd_seq_instr_free_use +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xac353baf snd_seq_instr_list_new +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xb4897b8c snd_seq_instr_find +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xc5352a7c snd_seq_instr_list_free_cond +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xd42e1c95 snd_seq_instr_list_free +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xd45f2187 snd_seq_instr_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6c6f1a61 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x22b99667 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x42a6fdda snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x48f7eed6 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x521cf955 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x6917e001 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x81942dc7 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xc89e0d38 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf54a0e9f snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xd0984a34 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0b2ac40c snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x0bdf6db5 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x0c5bf7bc snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x0e2b97ed snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x1018915c snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x1074a0dd snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x1972dd65 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x1c7a9415 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x267e1931 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x305d8c74 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x30ee5292 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x324b745e snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x33196303 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b1b2f78 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x3bb4db10 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x3fb177b6 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x3fe11541 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x44c2af18 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x47c40228 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4d6602b8 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x5350c88c snd_info_register +EXPORT_SYMBOL sound/core/snd 0x643dd6be snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x661f390d snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x6dbf1196 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x72178694 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x7f358924 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x7f60a903 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x7f948aaa snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x81a21595 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x8c137a6e snd_card_new +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x91a16a05 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xab657df8 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xb213fe8b snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb986f73b snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xc140ea70 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xc40bedf5 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xc55e5317 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xc91ae24b snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xd9c32c13 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xe18ae591 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xe60f1b43 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xfa129c62 snd_cards +EXPORT_SYMBOL sound/core/snd 0xfa72e8f3 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd-hwdep 0xbfbb8113 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x37b7a8fe snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb10ee1e4 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb89957c6 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xbb8f563e snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf3be12ac snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x055b729c snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x17a74dcb snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1e19601a snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x26c56be0 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x2e3e3642 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x2fc664d6 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x3651ff9a snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x385a2406 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3f45aff2 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x3fc7623b snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x41ec4306 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x43d0cc8f snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x48253cbd snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x48f74b24 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x4900eb3d snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x49c811f1 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x4c783de8 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x4d88276c snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52002af6 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x58ce3563 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6c58a89a snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x6e9f6656 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x733435ec snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x7c5cec98 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x869be930 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x89a31a56 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x921f92c9 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x9fdea959 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0xa22d2bab snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xa381b7d2 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xb47e2d3d snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc09f2c6a snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd09ec896 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xdb7d81f0 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xe3bc0858 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xe4ab28cb snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe967b06e snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xefebf31d snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfb926fb5 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06d6e596 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x08c62039 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x094db07b snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0aa35a46 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0efc1062 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1f64ed94 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3dff6586 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4a867df9 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5e46c6fa snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6226e285 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x623d4097 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaa09a1f8 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb1d17112 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xba388137 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcda6e445 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xceee2f8a snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfc43c9be snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-timer 0x22ec9db9 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x3fa589ba snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x591e69d5 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x5b0571f6 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x7eb51fd1 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x85ce151e snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xa933af8f snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xae8d5758 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc2266cad snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xd3112523 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xeda520df snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xf578bf15 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xf82c667e snd_timer_pause +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x73c4c993 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xd11db59b snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfe618b58 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x20657061 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x31485506 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3f761f01 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8b0ff413 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x94aad6cd snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb15ba29e snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf66faf2b snd_opl3_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cadb14b snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2f16aed9 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x580c37ac snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x91661dd7 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x93317986 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xadf2f78d snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbb8f4fbb snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc53d64b1 snd_vx_setup_firmware +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0676988d snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3d983e83 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6df38f0f snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8a1429d6 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xce9328a6 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xffefcea3 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0eda5e76 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4d1a7ba8 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x987d5d50 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf2b1bec1 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x60672b89 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x925df610 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x15517833 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xe86d5982 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x1301bb28 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8c1a85f3 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x90b17c4d snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd4ce92fc snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd55f9b8f snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-i2c 0x13a2d092 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5bc2e015 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x691c5ab2 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x81105b34 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x88917250 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xce7b1cb8 snd_i2c_sendbytes +EXPORT_SYMBOL sound/oss/ac97_codec 0x07279f3c ac97_release_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0x2a16bfae ac97_set_adc_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0x34b4a8ef ac97_probe_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xac881b4a ac97_alloc_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xbae4da72 ac97_read_proc +EXPORT_SYMBOL sound/oss/ac97_codec 0xfa54120f ac97_set_dac_rate +EXPORT_SYMBOL sound/oss/msnd 0x141fba4d msnd_fifo_read_io +EXPORT_SYMBOL sound/oss/msnd 0x180cefff msnd_fifo_free +EXPORT_SYMBOL sound/oss/msnd 0x2c3ebd6a msnd_send_word +EXPORT_SYMBOL sound/oss/msnd 0x340a3ddf msnd_init_queue +EXPORT_SYMBOL sound/oss/msnd 0x3a2a7347 msnd_send_dsp_cmd +EXPORT_SYMBOL sound/oss/msnd 0x65bdcc6a msnd_enable_irq +EXPORT_SYMBOL sound/oss/msnd 0x679297db msnd_fifo_make_empty +EXPORT_SYMBOL sound/oss/msnd 0x68473da1 msnd_fifo_init +EXPORT_SYMBOL sound/oss/msnd 0x80504a66 msnd_fifo_write_io +EXPORT_SYMBOL sound/oss/msnd 0x90fb689e msnd_disable_irq +EXPORT_SYMBOL sound/oss/msnd 0x9853d449 msnd_fifo_alloc +EXPORT_SYMBOL sound/oss/msnd 0x9885c9a7 msnd_upload_host +EXPORT_SYMBOL sound/oss/msnd 0xb1670092 msnd_register +EXPORT_SYMBOL sound/oss/msnd 0xc8646b7f msnd_fifo_write +EXPORT_SYMBOL sound/oss/msnd 0xca41668a msnd_fifo_read +EXPORT_SYMBOL sound/oss/msnd 0xe394602b msnd_unregister +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x131a697d snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3b7f1c6c snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x420dbecd snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54edbb0c snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5d64e817 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x706bd490 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x70f5f364 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x725e04b0 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x774c85fd snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7e88a47a snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc08bd852 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcc68abb6 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd5980139 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd84471c2 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe77b5fe5 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x609eb3b5 snd_ak4531_mixer +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2d232ef4 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x56e06a6a snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9b6278de snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa5188de5 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa63ce6ca snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb26cf958 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe0fad02d snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xea89d9d5 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf7092341 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x3307e5f4 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x3672144e snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbf5ccb42 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x02ecb73e snd_trident_synth_copy_from_user +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x18997f4b snd_trident_synth_alloc +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4dcee7d2 snd_trident_synth_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x56bb06cc snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x68dfa328 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6b684b93 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xcd657cf6 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xfc63e20b snd_trident_write_voice_regs +EXPORT_SYMBOL sound/sound_firmware 0x39e3dd23 mod_firmware_load +EXPORT_SYMBOL sound/soundcore 0x1223a3bd register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x3ee2f0d6 sound_class +EXPORT_SYMBOL sound/soundcore 0x746a3013 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x7ea1d0b1 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x8e3d5427 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xc9f9311d register_sound_midi +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0486bf0f snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5c52d2fa snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6aa18bd4 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc439dd8a snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc64a9b2f snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xddd19f5f snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x00cbf740 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x34acacc9 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3ba85db3 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x44a957b4 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x541f3f97 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa45ae948 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xcc845d34 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe3df4ca3 __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usb-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usb-lib 0xf69277a0 snd_usb_create_midi_interface +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00ba5b34 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011ecf52 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x01546382 proc_dointvec +EXPORT_SYMBOL vmlinux 0x016bf552 iomem_resource +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a6a948 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x01ab0f38 dev_base_lock +EXPORT_SYMBOL vmlinux 0x01b57494 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x01cf0907 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x01d711de __up_write +EXPORT_SYMBOL vmlinux 0x01e48ec4 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x01e4b694 get_disk +EXPORT_SYMBOL vmlinux 0x01f67911 ___copy_in_user +EXPORT_SYMBOL vmlinux 0x022df0f7 simple_write_begin +EXPORT_SYMBOL vmlinux 0x023aacb6 sock_no_listen +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x029a8ac2 drm_vbl_send_signals +EXPORT_SYMBOL vmlinux 0x02a9e27e netif_carrier_on +EXPORT_SYMBOL vmlinux 0x02cd461f blk_init_tags +EXPORT_SYMBOL vmlinux 0x02d11f3e kill_fasync +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02f9d620 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0x02fb211a prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x031ee678 xor_niagara_2 +EXPORT_SYMBOL vmlinux 0x03230cbe put_fs_struct +EXPORT_SYMBOL vmlinux 0x032db1e9 pci_release_region +EXPORT_SYMBOL vmlinux 0x0359ac60 deny_write_access +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03939ca3 del_gendisk +EXPORT_SYMBOL vmlinux 0x039a3ac2 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03b92598 _spin_lock +EXPORT_SYMBOL vmlinux 0x03cdb9be __getblk +EXPORT_SYMBOL vmlinux 0x03d120e2 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x03ea9cf3 sun4v_hvapi_get +EXPORT_SYMBOL vmlinux 0x03f44c94 kill_pid +EXPORT_SYMBOL vmlinux 0x03fc6fa7 eth_header_parse +EXPORT_SYMBOL vmlinux 0x0400d895 pci_find_bus +EXPORT_SYMBOL vmlinux 0x04039719 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042e9452 d_delete +EXPORT_SYMBOL vmlinux 0x04486d2b tty_unregister_device +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x047d3a35 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048a0d20 neigh_update +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04cff06f inet_bind +EXPORT_SYMBOL vmlinux 0x04d79f02 iput +EXPORT_SYMBOL vmlinux 0x04e46bdb up_read +EXPORT_SYMBOL vmlinux 0x04f6717a subsystem_register +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05070588 nf_afinfo +EXPORT_SYMBOL vmlinux 0x05186ca4 flush_icache_range +EXPORT_SYMBOL vmlinux 0x051d779a is_bad_inode +EXPORT_SYMBOL vmlinux 0x053585fe create_proc_entry +EXPORT_SYMBOL vmlinux 0x054927b6 get_write_access +EXPORT_SYMBOL vmlinux 0x054fec5b pci_reenable_device +EXPORT_SYMBOL vmlinux 0x0560fd8f atomic_sub_ret +EXPORT_SYMBOL vmlinux 0x05a39d0b put_files_struct +EXPORT_SYMBOL vmlinux 0x05b77fc3 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x060165a8 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x06144f88 inode_double_unlock +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061b807d __scm_send +EXPORT_SYMBOL vmlinux 0x062e6fba kobject_unregister +EXPORT_SYMBOL vmlinux 0x06362b6b put_filp +EXPORT_SYMBOL vmlinux 0x0644d37c bio_add_page +EXPORT_SYMBOL vmlinux 0x06468420 vio_ldc_alloc +EXPORT_SYMBOL vmlinux 0x06627871 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06bd177c kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x06c17ede blk_init_queue +EXPORT_SYMBOL vmlinux 0x06ebacd3 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0709a769 bio_put +EXPORT_SYMBOL vmlinux 0x0716e576 vfs_permission +EXPORT_SYMBOL vmlinux 0x071d35a6 __rta_fill +EXPORT_SYMBOL vmlinux 0x071dd307 netpoll_poll +EXPORT_SYMBOL vmlinux 0x071e3858 mod_timer +EXPORT_SYMBOL vmlinux 0x0722f86b blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x073b4679 d_validate +EXPORT_SYMBOL vmlinux 0x074ed400 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07ec7c3a set_bdi_congested +EXPORT_SYMBOL vmlinux 0x08035463 d_splice_alias +EXPORT_SYMBOL vmlinux 0x081b434e devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x0826b0dc __flush_dcache_range +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0834057f tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x0836695c drm_sman_takedown +EXPORT_SYMBOL vmlinux 0x08611160 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x0864205f usb_clear_halt +EXPORT_SYMBOL vmlinux 0x086b016d bio_alloc +EXPORT_SYMBOL vmlinux 0x08816c83 usb_remove_hcd +EXPORT_SYMBOL vmlinux 0x08ae3440 generic_commit_write +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x090193ea nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x09161b90 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x0935c9b3 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0965af92 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09928aa7 kobject_add +EXPORT_SYMBOL vmlinux 0x0993c000 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x09b819ba ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09dac46f seq_puts +EXPORT_SYMBOL vmlinux 0x09e2f2ba _write_lock_irq +EXPORT_SYMBOL vmlinux 0x09f6af83 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x0a032704 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x0a234b1d sync_inode +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a549aa2 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0abfc78c sys_getpid +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ad8e3e0 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x0ae9ae96 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x0b0290eb gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b48db2d usb_get_urb +EXPORT_SYMBOL vmlinux 0x0b528eb5 sbus_dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x0b6bcef0 down +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bac3dc4 netif_rx +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bddba6e simple_lookup +EXPORT_SYMBOL vmlinux 0x0be38c41 init_file +EXPORT_SYMBOL vmlinux 0x0c0beea7 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c637e19 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x0c6d7671 vio_control_pkt_engine +EXPORT_SYMBOL vmlinux 0x0ce1f2d8 of_device_unregister +EXPORT_SYMBOL vmlinux 0x0d19339b skb_make_writable +EXPORT_SYMBOL vmlinux 0x0d1e4006 elv_add_request +EXPORT_SYMBOL vmlinux 0x0d4cabc9 of_dev_get +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5db390 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x0d7c9bc5 tl0_solaris +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dc373bb elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x0dd145c7 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e0d2688 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0ea1af0f _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0eea339b uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x0f058337 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x0f1ef871 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x0f265553 verify_compat_iovec +EXPORT_SYMBOL vmlinux 0x0f378a1e ___copy_from_user +EXPORT_SYMBOL vmlinux 0x0f41bd8a complete_all +EXPORT_SYMBOL vmlinux 0x0f6ef982 kthread_create +EXPORT_SYMBOL vmlinux 0x0fdef2f6 __alloc_skb +EXPORT_SYMBOL vmlinux 0x1016ebaa pci_enable_device +EXPORT_SYMBOL vmlinux 0x103a64ae tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x10902bf7 insb +EXPORT_SYMBOL vmlinux 0x109f707e inet_frags_init +EXPORT_SYMBOL vmlinux 0x10aab078 block_write_end +EXPORT_SYMBOL vmlinux 0x10c19029 make_bad_inode +EXPORT_SYMBOL vmlinux 0x10e8b202 user_revoke +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x1100ad15 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x110b0e14 aio_put_req +EXPORT_SYMBOL vmlinux 0x113987d7 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x115e5a7a usb_reset_composite_device +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x1165b372 register_chrdev +EXPORT_SYMBOL vmlinux 0x11793d13 ebus_dma_unregister +EXPORT_SYMBOL vmlinux 0x11838f64 usb_submit_urb +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a046ce prom_palette +EXPORT_SYMBOL vmlinux 0x11d3ccbc xfrm_init_state +EXPORT_SYMBOL vmlinux 0x11daf6a3 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x1267bb7a pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x127b9b13 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x12d09a67 sun4v_hvapi_unregister +EXPORT_SYMBOL vmlinux 0x12d37715 mac_find_mode +EXPORT_SYMBOL vmlinux 0x12ea337e outsb +EXPORT_SYMBOL vmlinux 0x12f192ad bio_hw_segments +EXPORT_SYMBOL vmlinux 0x12f31318 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x13036293 usb_put_dev +EXPORT_SYMBOL vmlinux 0x135208d7 sbus_alloc_consistent +EXPORT_SYMBOL vmlinux 0x137aeb46 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x137c51e3 sock_no_poll +EXPORT_SYMBOL vmlinux 0x1380d8c7 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x1391c7cf shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x13b57e43 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x14240f9b d_invalidate +EXPORT_SYMBOL vmlinux 0x14414d6f drop_super +EXPORT_SYMBOL vmlinux 0x144f1f76 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x1456309a sys_geteuid +EXPORT_SYMBOL vmlinux 0x146123ee qdisc_reset +EXPORT_SYMBOL vmlinux 0x149528d8 generic_writepages +EXPORT_SYMBOL vmlinux 0x14a812f5 skb_copy +EXPORT_SYMBOL vmlinux 0x14d3ee11 netpoll_setup +EXPORT_SYMBOL vmlinux 0x14e392f0 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x150a4b72 blk_start_queue +EXPORT_SYMBOL vmlinux 0x1521fa4c ida_get_new +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15e0a280 km_query +EXPORT_SYMBOL vmlinux 0x15ed6cca search_binary_handler +EXPORT_SYMBOL vmlinux 0x1625cd17 tty_register_device +EXPORT_SYMBOL vmlinux 0x164e78c2 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x16674e40 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x167d633c tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x167d9758 may_umount +EXPORT_SYMBOL vmlinux 0x168755f5 mpage_writepages +EXPORT_SYMBOL vmlinux 0x168a5d4d splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x168b6e3f start_tty +EXPORT_SYMBOL vmlinux 0x169e6690 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x16a2ddbc input_register_device +EXPORT_SYMBOL vmlinux 0x16b11bbf clocksource_register +EXPORT_SYMBOL vmlinux 0x16b7e2c3 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x16ba3f2f vfs_rmdir +EXPORT_SYMBOL vmlinux 0x16c29f4b elv_rb_add +EXPORT_SYMBOL vmlinux 0x16d52263 filemap_fault +EXPORT_SYMBOL vmlinux 0x170b4745 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x1724bda6 simple_write_end +EXPORT_SYMBOL vmlinux 0x173016f1 blk_insert_request +EXPORT_SYMBOL vmlinux 0x173ee0e2 dentry_unhash +EXPORT_SYMBOL vmlinux 0x17587efb register_gifconf +EXPORT_SYMBOL vmlinux 0x176ab54b show_regs +EXPORT_SYMBOL vmlinux 0x1789a04f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x1790749f sys_getuid +EXPORT_SYMBOL vmlinux 0x17a27047 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17aeb10f key_put +EXPORT_SYMBOL vmlinux 0x17b7181a keyring_clear +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e92bba cdev_alloc +EXPORT_SYMBOL vmlinux 0x1801bb0d skb_copy_expand +EXPORT_SYMBOL vmlinux 0x1821fdb1 usb_buffer_alloc +EXPORT_SYMBOL vmlinux 0x1829b8f8 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1844e212 sbusfb_compat_ioctl +EXPORT_SYMBOL vmlinux 0x185eba10 input_register_handler +EXPORT_SYMBOL vmlinux 0x1876c9ad kfifo_free +EXPORT_SYMBOL vmlinux 0x18878da0 mdesc_next_arc +EXPORT_SYMBOL vmlinux 0x189043f1 path_lookup +EXPORT_SYMBOL vmlinux 0x189e47f6 subsys_create_file +EXPORT_SYMBOL vmlinux 0x18dc1b0b udp_proc_register +EXPORT_SYMBOL vmlinux 0x18f5e69f sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1943cdc6 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x195a2947 usb_get_dev +EXPORT_SYMBOL vmlinux 0x19755650 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x197aae63 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL vmlinux 0x19b3fed5 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x19f725c3 usb_get_hcd +EXPORT_SYMBOL vmlinux 0x1a35bcbc VISenter +EXPORT_SYMBOL vmlinux 0x1a3ba9bd mapping_tagged +EXPORT_SYMBOL vmlinux 0x1a7ed2d8 tty_set_operations +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad63306 mpage_readpages +EXPORT_SYMBOL vmlinux 0x1ad9f95a prom_finddevice +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0af810 inet_put_port +EXPORT_SYMBOL vmlinux 0x1b29fcdf skb_queue_tail +EXPORT_SYMBOL vmlinux 0x1b4019a7 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b744f7c tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x1b8bcf91 register_console +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1ba11f45 sleep_on +EXPORT_SYMBOL vmlinux 0x1bafb069 fb_set_var +EXPORT_SYMBOL vmlinux 0x1bc079f6 request_key +EXPORT_SYMBOL vmlinux 0x1c0dcd49 alloc_file +EXPORT_SYMBOL vmlinux 0x1c14289b sock_rfree +EXPORT_SYMBOL vmlinux 0x1c4171c3 of_unregister_driver +EXPORT_SYMBOL vmlinux 0x1c4876ba ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x1c4baa1f xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x1c718a99 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c936b0f add_disk_randomness +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cdf0ee8 usb_init_urb +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d2d656d __seq_open_private +EXPORT_SYMBOL vmlinux 0x1d89b513 register_netdevice +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dfc56b7 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x1e02352f pci_set_power_state +EXPORT_SYMBOL vmlinux 0x1e265831 cond_resched_lock +EXPORT_SYMBOL vmlinux 0x1e5e685c input_unregister_handler +EXPORT_SYMBOL vmlinux 0x1e619cc4 usb_set_interface +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6f66a0 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x1e6fb3b4 down_write +EXPORT_SYMBOL vmlinux 0x1e73c405 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x1e8c7f49 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x1eaa613c sync_blockdev +EXPORT_SYMBOL vmlinux 0x1eb7debc solaris_syscall +EXPORT_SYMBOL vmlinux 0x1ed753e1 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x1ede0f97 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x1f4f7059 usb_reset_device +EXPORT_SYMBOL vmlinux 0x1f6d5c94 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x1f756c6c mntput_no_expire +EXPORT_SYMBOL vmlinux 0x1fb3e87a compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x1fc8cd4d linux_sparc_syscall +EXPORT_SYMBOL vmlinux 0x1fd96aa2 sbus_dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x1fdf5bfd netlink_ack +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200df248 write_inode_now +EXPORT_SYMBOL vmlinux 0x204b37be blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x204d2570 remote_llseek +EXPORT_SYMBOL vmlinux 0x20645642 drm_debug +EXPORT_SYMBOL vmlinux 0x208ce54a sys_ioctl +EXPORT_SYMBOL vmlinux 0x209969d8 posix_lock_file +EXPORT_SYMBOL vmlinux 0x20a8e2a4 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x20b6ddaf __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x20e2a4bc inode_add_bytes +EXPORT_SYMBOL vmlinux 0x213922f2 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x213da397 idr_pre_get +EXPORT_SYMBOL vmlinux 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL vmlinux 0x21593225 tcp_prot +EXPORT_SYMBOL vmlinux 0x2178c545 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x218c8db7 skb_find_text +EXPORT_SYMBOL vmlinux 0x2199000f iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x21a5389e should_remove_suid +EXPORT_SYMBOL vmlinux 0x21ce448b unlock_new_inode +EXPORT_SYMBOL vmlinux 0x21d25f2f kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x21e20902 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x22055173 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x221ca3a3 key_task_permission +EXPORT_SYMBOL vmlinux 0x22253df5 skb_pad +EXPORT_SYMBOL vmlinux 0x22673387 init_special_inode +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22962e77 serio_reconnect +EXPORT_SYMBOL vmlinux 0x229d25aa cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22c31025 usb_driver_claim_interface +EXPORT_SYMBOL vmlinux 0x22edef26 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x230ab4c9 _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x232a3f84 nobh_writepage +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234a0007 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x23577023 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x2384b8e8 __read_lock +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad8bbf ns_to_timespec +EXPORT_SYMBOL vmlinux 0x23cc478d inode_init_once +EXPORT_SYMBOL vmlinux 0x23cc89cd sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x245ac263 tcp_close +EXPORT_SYMBOL vmlinux 0x24951ad2 sock_map_fd +EXPORT_SYMBOL vmlinux 0x24a71040 struct_module +EXPORT_SYMBOL vmlinux 0x24bd930a outsl +EXPORT_SYMBOL vmlinux 0x24d2a3ee bdget +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24e17021 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x24e7f33c redraw_screen +EXPORT_SYMBOL vmlinux 0x24f57fa9 seq_putc +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2591ffcf uart_register_driver +EXPORT_SYMBOL vmlinux 0x25b79cb0 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x25bb86ae end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x25c3dbca prom_nextprop +EXPORT_SYMBOL vmlinux 0x25c47b00 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x25f9c9d5 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x26478b5b simple_link +EXPORT_SYMBOL vmlinux 0x26515253 init_mm +EXPORT_SYMBOL vmlinux 0x265f9e97 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x267fc65b __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x2697014c ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x26b26949 arp_xmit +EXPORT_SYMBOL vmlinux 0x26c24642 udplite_prot +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x27562c2a sbus_free_consistent +EXPORT_SYMBOL vmlinux 0x27797691 notify_change +EXPORT_SYMBOL vmlinux 0x27b81daa xor_niagara_3 +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27cdde8f generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x27f424c8 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x27f79cd1 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x27ffe5b1 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x280f7336 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x2814bbd0 set_bh_page +EXPORT_SYMBOL vmlinux 0x28151e27 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x2839f5cb drm_init +EXPORT_SYMBOL vmlinux 0x2850edd3 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x28d59e37 unlock_rename +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2967fc88 tty_mutex +EXPORT_SYMBOL vmlinux 0x299489ca balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x29a28e78 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x29c0bdb5 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x29c38fb2 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x29dc4be7 of_console_options +EXPORT_SYMBOL vmlinux 0x29f6df92 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x2a0b5548 set_blocksize +EXPORT_SYMBOL vmlinux 0x2a8a30a5 drm_locked_tasklet +EXPORT_SYMBOL vmlinux 0x2a8a93fe sock_register +EXPORT_SYMBOL vmlinux 0x2ac93783 vfs_lstat +EXPORT_SYMBOL vmlinux 0x2adc0d6c dev_get_by_name +EXPORT_SYMBOL vmlinux 0x2b44d2ed generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x2b64bbdc i2c_attach_client +EXPORT_SYMBOL vmlinux 0x2b73934b netif_device_detach +EXPORT_SYMBOL vmlinux 0x2b8a3fc4 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x2b937a6f __ret_efault +EXPORT_SYMBOL vmlinux 0x2b9d5565 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bae6718 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x2bdc747e task_session_nr_ns +EXPORT_SYMBOL vmlinux 0x2beb9604 sbusfb_ioctl_helper +EXPORT_SYMBOL vmlinux 0x2bf02aaa give_up_console +EXPORT_SYMBOL vmlinux 0x2bf1da02 inet_listen +EXPORT_SYMBOL vmlinux 0x2c2192f0 kthread_stop +EXPORT_SYMBOL vmlinux 0x2c2d140d br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x2c2d37a4 dev_change_flags +EXPORT_SYMBOL vmlinux 0x2c2fb930 blk_free_tags +EXPORT_SYMBOL vmlinux 0x2c544084 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0x2c6af63e input_unregister_device +EXPORT_SYMBOL vmlinux 0x2c79bfad eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d263da7 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x2d2db57a xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x2d904d36 usb_hcd_giveback_urb +EXPORT_SYMBOL vmlinux 0x2d952efb vfs_rename +EXPORT_SYMBOL vmlinux 0x2daa7939 xor_vis_4 +EXPORT_SYMBOL vmlinux 0x2dc48626 pci_request_region +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2df97781 ps2_init +EXPORT_SYMBOL vmlinux 0x2dfe0feb sock_kfree_s +EXPORT_SYMBOL vmlinux 0x2e038bfa pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x2e2d3ad4 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x2e42d217 misc_deregister +EXPORT_SYMBOL vmlinux 0x2e4a3694 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x2e563df7 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x2e5b4e59 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x2e5e7811 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x2e642c24 vfs_writev +EXPORT_SYMBOL vmlinux 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL vmlinux 0x2ec7d89e do_sync_read +EXPORT_SYMBOL vmlinux 0x2ee0c8b4 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x2eeb8957 pci_remove_rom +EXPORT_SYMBOL vmlinux 0x2f38d721 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x2f845eef bmap +EXPORT_SYMBOL vmlinux 0x2f8c31e0 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x2fb44924 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x2fc097a2 nf_reinject +EXPORT_SYMBOL vmlinux 0x2fc81e6a of_release_dev +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2fda8fa1 dev_open +EXPORT_SYMBOL vmlinux 0x2fdf5d8e tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x300b2000 of_find_in_proplist +EXPORT_SYMBOL vmlinux 0x303871d0 of_register_driver +EXPORT_SYMBOL vmlinux 0x3042f3a3 rtrap +EXPORT_SYMBOL vmlinux 0x3074f033 drm_order +EXPORT_SYMBOL vmlinux 0x3083a0ff ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x30b6bb36 sysctl_data +EXPORT_SYMBOL vmlinux 0x30f3b164 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x312ba318 rwsem_wake +EXPORT_SYMBOL vmlinux 0x31446996 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31686b60 ldc_unmap +EXPORT_SYMBOL vmlinux 0x3168a4c2 release_sock +EXPORT_SYMBOL vmlinux 0x31a6c396 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31bf59c3 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x31cbaf82 open_bdev_excl +EXPORT_SYMBOL vmlinux 0x31ce1ea9 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x31ceda77 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x31f2b6b2 seq_lseek +EXPORT_SYMBOL vmlinux 0x320a3613 generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x323cefec copy_from_user_fixup +EXPORT_SYMBOL vmlinux 0x325cb14e blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x32624a56 compat_sys_ioctl +EXPORT_SYMBOL vmlinux 0x326ba0c4 km_report +EXPORT_SYMBOL vmlinux 0x32757b92 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x328ef0e8 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x328ff3d6 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x32905468 mempool_create +EXPORT_SYMBOL vmlinux 0x32ade501 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x32d6e553 sock_no_bind +EXPORT_SYMBOL vmlinux 0x32eda32f locks_init_lock +EXPORT_SYMBOL vmlinux 0x32fe64b0 __write_unlock +EXPORT_SYMBOL vmlinux 0x33389381 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x3339381b nf_hook_slow +EXPORT_SYMBOL vmlinux 0x3355c243 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x335e0207 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x3361c1ea __secpath_destroy +EXPORT_SYMBOL vmlinux 0x3374a768 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x3395ff3c vc_lock_resize +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33fec043 pci_iounmap +EXPORT_SYMBOL vmlinux 0x341ee983 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349d2a61 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x34ce5349 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x34edc16f fb_pan_display +EXPORT_SYMBOL vmlinux 0x34f98486 proc_mkdir +EXPORT_SYMBOL vmlinux 0x350f4de2 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x3515e255 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x352cd507 vio_send_sid +EXPORT_SYMBOL vmlinux 0x35507e08 fb_get_mode +EXPORT_SYMBOL vmlinux 0x358e1a3d xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x35aa1308 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x35b3fae4 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x35ca58fd key_validate +EXPORT_SYMBOL vmlinux 0x35d82f48 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x35d84066 ebus_dma_prepare +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x363c31cc pci_request_regions +EXPORT_SYMBOL vmlinux 0x36443be9 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x364659bc key_unlink +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x368a40b3 netif_device_attach +EXPORT_SYMBOL vmlinux 0x36b02c17 drm_irq_uninstall +EXPORT_SYMBOL vmlinux 0x36df931a netdev_state_change +EXPORT_SYMBOL vmlinux 0x36fbee52 register_qdisc +EXPORT_SYMBOL vmlinux 0x375431fe cdev_add +EXPORT_SYMBOL vmlinux 0x3776e5d0 arp_send +EXPORT_SYMBOL vmlinux 0x3778f5de gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x378a58a5 input_event +EXPORT_SYMBOL vmlinux 0x379a0568 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0x37b1c6b1 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x37bb4058 inet_getname +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x38569593 down_read +EXPORT_SYMBOL vmlinux 0x38585e38 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x38680eb6 inet_select_addr +EXPORT_SYMBOL vmlinux 0x388e3618 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38daff2d generic_setlease +EXPORT_SYMBOL vmlinux 0x38edc011 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x392a3946 find_inode_number +EXPORT_SYMBOL vmlinux 0x39379826 drm_pci_free +EXPORT_SYMBOL vmlinux 0x3947bd4f blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x3951f490 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x3953c900 nonseekable_open +EXPORT_SYMBOL vmlinux 0x39691fcd neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x397afcc7 wake_up_process +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39e14282 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x39feaeba tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a6bedc7 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x3a79076e pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0x3a7de31a __downgrade_write +EXPORT_SYMBOL vmlinux 0x3a822e37 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x3a8d3706 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x3a919d40 gen_pool_free +EXPORT_SYMBOL vmlinux 0x3a97b7eb load_nls_default +EXPORT_SYMBOL vmlinux 0x3a9aa54d clear_bit +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ac56eea request_firmware +EXPORT_SYMBOL vmlinux 0x3ae831b6 kref_init +EXPORT_SYMBOL vmlinux 0x3b08411f usb_sg_init +EXPORT_SYMBOL vmlinux 0x3b0af931 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x3b38995e pci_map_single +EXPORT_SYMBOL vmlinux 0x3b3fe8cb prom_getsibling +EXPORT_SYMBOL vmlinux 0x3b89a0be rtnl_create_link +EXPORT_SYMBOL vmlinux 0x3ba2edd4 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x3baa53d3 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd91a1f tcf_action_exec +EXPORT_SYMBOL vmlinux 0x3be97dc3 qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x3c040cc3 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x3c098a5d simple_rmdir +EXPORT_SYMBOL vmlinux 0x3c3c461f ldc_free_exp_dring +EXPORT_SYMBOL vmlinux 0x3c44fcfa i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x3c4d2dfd netif_carrier_off +EXPORT_SYMBOL vmlinux 0x3cab7d47 usb_altnum_to_altsetting +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce72f7f udp_prot +EXPORT_SYMBOL vmlinux 0x3cee2e66 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x3d061d24 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x3d1e0a02 kernel_read +EXPORT_SYMBOL vmlinux 0x3d68bd4b flow_cache_genid +EXPORT_SYMBOL vmlinux 0x3d834faa blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dc15c35 vfs_quota_on +EXPORT_SYMBOL vmlinux 0x3dd7e058 sbusfb_mmap_helper +EXPORT_SYMBOL vmlinux 0x3e00530e ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5d4efb end_that_request_first +EXPORT_SYMBOL vmlinux 0x3e5f80a3 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x3e670b6f pci_dev_put +EXPORT_SYMBOL vmlinux 0x3e9e42f7 proc_root_fs +EXPORT_SYMBOL vmlinux 0x3eb41ee7 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x3ece279c fput +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee75e03 _read_lock +EXPORT_SYMBOL vmlinux 0x3f3d5fcc get_sb_nodev +EXPORT_SYMBOL vmlinux 0x3f447c0c usb_ifnum_to_if +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5533cb sys_call_table32 +EXPORT_SYMBOL vmlinux 0x3f5eea31 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x3f85aab8 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x3f9067b0 kobject_register +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa10d79 set_anon_super +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3facbf40 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fc10b6f noop_qdisc +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400b1347 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x400ea9fc blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x401586f5 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x40242463 kernel_bind +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4081228d tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x4085c5c8 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x409e9351 atomic64_sub_ret +EXPORT_SYMBOL vmlinux 0x40b17684 dev_load +EXPORT_SYMBOL vmlinux 0x40c3fdaf _spin_unlock +EXPORT_SYMBOL vmlinux 0x40c91859 sunserial_register_minors +EXPORT_SYMBOL vmlinux 0x40ed0f17 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x41007395 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41316f22 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x417ae5ee i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41982153 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x41ac4793 groups_free +EXPORT_SYMBOL vmlinux 0x41df8700 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42296432 skb_queue_head +EXPORT_SYMBOL vmlinux 0x423ad499 usb_hcd_pci_shutdown +EXPORT_SYMBOL vmlinux 0x423e52e8 mnt_unpin +EXPORT_SYMBOL vmlinux 0x424f9026 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x4293e92a dev_get_by_index +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42a71326 usb_buffer_unmap_sg +EXPORT_SYMBOL vmlinux 0x42acbf72 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x42c24caf of_console_device +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43373bc3 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x433ab4a0 gen_pool_add +EXPORT_SYMBOL vmlinux 0x434a1c70 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x439090b9 kernel_thread +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43bea045 auxio_register +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x4436487d sysctl_string +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x44696784 vio_link_state_change +EXPORT_SYMBOL vmlinux 0x44715e78 pci_unmap_sg +EXPORT_SYMBOL vmlinux 0x4475e712 __bio_clone +EXPORT_SYMBOL vmlinux 0x447834ff generic_write_end +EXPORT_SYMBOL vmlinux 0x448f691f blk_get_queue +EXPORT_SYMBOL vmlinux 0x44af87fe usb_hub_tt_clear_buffer +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c8870e filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x44d53051 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x44e13218 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x4540849a usb_sg_cancel +EXPORT_SYMBOL vmlinux 0x454cbd8e mdesc_release +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4552553c idr_remove_all +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4589491c key_link +EXPORT_SYMBOL vmlinux 0x458b1a30 fsync_bdev +EXPORT_SYMBOL vmlinux 0x45952cdd seq_open_private +EXPORT_SYMBOL vmlinux 0x45aa4cf5 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x45c3c15a tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x45cda74c ioport_resource +EXPORT_SYMBOL vmlinux 0x45e91fbf skb_queue_purge +EXPORT_SYMBOL vmlinux 0x45ee5231 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x45ff2798 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x4602b49f page_readlink +EXPORT_SYMBOL vmlinux 0x4605977f neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x4609e98b elevator_init +EXPORT_SYMBOL vmlinux 0x460d60a5 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x4635ed57 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4677392f sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x469a6295 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x469da5a8 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x46a00a41 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x46e7697a pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x471e323c sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x471ef451 sock_create +EXPORT_SYMBOL vmlinux 0x472dbdcc file_permission +EXPORT_SYMBOL vmlinux 0x472ee408 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475e1ce8 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x475e54ed pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x4782d893 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x47982574 usb_put_hcd +EXPORT_SYMBOL vmlinux 0x479a340d block_write_begin +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47e38629 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x48036543 open_by_devnum +EXPORT_SYMBOL vmlinux 0x481f7c96 seq_path +EXPORT_SYMBOL vmlinux 0x483e5518 pci_restore_state +EXPORT_SYMBOL vmlinux 0x48472710 proc_root_driver +EXPORT_SYMBOL vmlinux 0x485e3823 audit_log_format +EXPORT_SYMBOL vmlinux 0x48894e8d security_inode_permission +EXPORT_SYMBOL vmlinux 0x48a5e5ba task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x48aef1ae drm_release +EXPORT_SYMBOL vmlinux 0x49136e6f generic_make_request +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x4967a90f set_page_dirty +EXPORT_SYMBOL vmlinux 0x496aed0c kobject_set_name +EXPORT_SYMBOL vmlinux 0x497186d8 __init_rwsem +EXPORT_SYMBOL vmlinux 0x497b5ff8 km_new_mapping +EXPORT_SYMBOL vmlinux 0x49a5b591 tcp_unhash +EXPORT_SYMBOL vmlinux 0x49d9fdea unregister_quota_format +EXPORT_SYMBOL vmlinux 0x49e2c51d del_timer_sync +EXPORT_SYMBOL vmlinux 0x49e79328 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x4a0a9c40 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x4a142d5c rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x4a15ae23 prom_node_has_property +EXPORT_SYMBOL vmlinux 0x4a16a29e dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a4317d1 dcache_readdir +EXPORT_SYMBOL vmlinux 0x4a71dbca elevator_exit +EXPORT_SYMBOL vmlinux 0x4a9422a2 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x4aa2959c xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x4aa891b4 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x4aa8951c blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x4acf2486 sbus_unmap_single +EXPORT_SYMBOL vmlinux 0x4add718f simple_statfs +EXPORT_SYMBOL vmlinux 0x4b00cc66 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x4b1b4cf9 set_user_nice +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b42653f mpage_readpage +EXPORT_SYMBOL vmlinux 0x4b5cc78f dma_pool_create +EXPORT_SYMBOL vmlinux 0x4b81b4e0 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x4bcfb363 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x4be97134 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x4be9d079 udp_ioctl +EXPORT_SYMBOL vmlinux 0x4bfe398a cpu_core_map +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c21f140 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c7b5ec9 input_set_capability +EXPORT_SYMBOL vmlinux 0x4ca942d5 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x4cb549ba genl_register_ops +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbda2bf prom_setprop +EXPORT_SYMBOL vmlinux 0x4ccb8b29 netlink_unicast +EXPORT_SYMBOL vmlinux 0x4cff557c inet_accept +EXPORT_SYMBOL vmlinux 0x4d13b5a8 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x4d394fc1 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x4d436d0b secpath_dup +EXPORT_SYMBOL vmlinux 0x4d481436 sparc64_valid_addr_bitmap +EXPORT_SYMBOL vmlinux 0x4d6ae354 pci_find_device +EXPORT_SYMBOL vmlinux 0x4ddb7d1e pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e0cf2ba usb_reset_configuration +EXPORT_SYMBOL vmlinux 0x4e1fbc1e km_state_expired +EXPORT_SYMBOL vmlinux 0x4e24745d simple_dir_operations +EXPORT_SYMBOL vmlinux 0x4e2add5a tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ed42cdc simple_unlink +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f359b29 blk_plug_device +EXPORT_SYMBOL vmlinux 0x4f4414f2 bio_clone +EXPORT_SYMBOL vmlinux 0x4f456b46 find_get_page +EXPORT_SYMBOL vmlinux 0x4f4d1335 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x4f561010 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4f5651c3 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x4f5a5665 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x4f7f4775 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x4fc3b990 proc_symlink +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe031ec generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50871311 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x50d56018 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x50da30a2 dcache_lock +EXPORT_SYMBOL vmlinux 0x50f27c11 d_alloc_name +EXPORT_SYMBOL vmlinux 0x5116390e call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x515b5fe2 I_BDEV +EXPORT_SYMBOL vmlinux 0x516fab42 key_alloc +EXPORT_SYMBOL vmlinux 0x518bf704 elv_rb_del +EXPORT_SYMBOL vmlinux 0x51c838ec blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x52046e13 atomic_sub +EXPORT_SYMBOL vmlinux 0x5251cae4 prom_getbool +EXPORT_SYMBOL vmlinux 0x5259c81d of_get_parent +EXPORT_SYMBOL vmlinux 0x5267f329 seq_escape +EXPORT_SYMBOL vmlinux 0x52929f3f tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52e093a7 key_revoke +EXPORT_SYMBOL vmlinux 0x531b8516 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53339c11 vmtruncate +EXPORT_SYMBOL vmlinux 0x533903d8 outsw +EXPORT_SYMBOL vmlinux 0x533a61e3 schedule_work +EXPORT_SYMBOL vmlinux 0x53748b6f nobh_write_begin +EXPORT_SYMBOL vmlinux 0x537b58bc xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x537d971a seq_release_private +EXPORT_SYMBOL vmlinux 0x537df389 inet_ioctl +EXPORT_SYMBOL vmlinux 0x538d7258 vio_register_driver +EXPORT_SYMBOL vmlinux 0x53ab88ed lock_may_read +EXPORT_SYMBOL vmlinux 0x53bc86e2 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53dac4a8 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x541cbffb fb_find_mode +EXPORT_SYMBOL vmlinux 0x54283119 vm_insert_page +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x5460f8c8 tty_name +EXPORT_SYMBOL vmlinux 0x5492c604 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x54bf8689 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x54e32d51 pci_domain_nr +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5505a9ee __lock_buffer +EXPORT_SYMBOL vmlinux 0x551be6ff xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x55560579 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x556db901 xor_vis_5 +EXPORT_SYMBOL vmlinux 0x557cfb94 mutex_trylock +EXPORT_SYMBOL vmlinux 0x55801983 usb_free_urb +EXPORT_SYMBOL vmlinux 0x55908116 drm_ati_pcigart_cleanup +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a13aa5 i2c_smbus_write_quick +EXPORT_SYMBOL vmlinux 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL vmlinux 0x55f3017e ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56644029 module_remove_driver +EXPORT_SYMBOL vmlinux 0x56791257 ebus_dma_enable +EXPORT_SYMBOL vmlinux 0x567fdc24 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x5687958e gen_pool_create +EXPORT_SYMBOL vmlinux 0x569c09fd get_user_pages +EXPORT_SYMBOL vmlinux 0x56c5f369 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x56d9aca4 block_write_full_page +EXPORT_SYMBOL vmlinux 0x56e87d10 vm_stat +EXPORT_SYMBOL vmlinux 0x56e992a5 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x56f01a9b gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x570f0f41 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x572188ec percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x57296898 eth_header +EXPORT_SYMBOL vmlinux 0x573f35c4 register_quota_format +EXPORT_SYMBOL vmlinux 0x5764f719 neigh_destroy +EXPORT_SYMBOL vmlinux 0x576d1104 sock_no_accept +EXPORT_SYMBOL vmlinux 0x577ceac7 vio_driver_init +EXPORT_SYMBOL vmlinux 0x577f4bff do_BUG +EXPORT_SYMBOL vmlinux 0x57a8f671 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x57bf9d4d posix_acl_permission +EXPORT_SYMBOL vmlinux 0x57cf28bc blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x57d18ef2 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x58182c50 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x582e2cfd sockfd_lookup +EXPORT_SYMBOL vmlinux 0x582fef16 auxio_set_lte +EXPORT_SYMBOL vmlinux 0x584cb1b1 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x5850e455 nobh_write_end +EXPORT_SYMBOL vmlinux 0x586383d6 cdev_del +EXPORT_SYMBOL vmlinux 0x586a8081 udplite_get_port +EXPORT_SYMBOL vmlinux 0x588c31a2 open_exec +EXPORT_SYMBOL vmlinux 0x588c6d29 atomic64_add +EXPORT_SYMBOL vmlinux 0x58b08ab7 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x58bf2888 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x58c82409 kfree_skb +EXPORT_SYMBOL vmlinux 0x58cb9e8f poll_initwait +EXPORT_SYMBOL vmlinux 0x58d61e35 percpu_counter_init +EXPORT_SYMBOL vmlinux 0x58ea631b set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x58eb215b prepare_binprm +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5935e7ea generic_file_mmap +EXPORT_SYMBOL vmlinux 0x593ea8f7 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5992535e nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59c3cc8c tty_vhangup +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59fa42f1 d_alloc +EXPORT_SYMBOL vmlinux 0x5a015247 file_update_time +EXPORT_SYMBOL vmlinux 0x5a1db971 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a402b9e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5a522e49 close_bdev_excl +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a634dce wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a779140 __up_read +EXPORT_SYMBOL vmlinux 0x5aa800a1 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x5ad3c7ed ip_ct_attach +EXPORT_SYMBOL vmlinux 0x5aead428 drm_addmap +EXPORT_SYMBOL vmlinux 0x5afd5b37 bio_copy_user +EXPORT_SYMBOL vmlinux 0x5b0e981b wait_for_completion +EXPORT_SYMBOL vmlinux 0x5b1642f2 sbus_map_single +EXPORT_SYMBOL vmlinux 0x5b64d67b proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x5c3b8193 _write_unlock +EXPORT_SYMBOL vmlinux 0x5c5da3b7 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x5c81b5a3 vfs_fstat +EXPORT_SYMBOL vmlinux 0x5c9d105b drm_core_reclaim_buffers +EXPORT_SYMBOL vmlinux 0x5cb69cdc tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x5cc31e65 force_sig +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccf676f get_sb_single +EXPORT_SYMBOL vmlinux 0x5ce875cf prom_root_node +EXPORT_SYMBOL vmlinux 0x5d4d0e26 __csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x5d695a2c subsystem_unregister +EXPORT_SYMBOL vmlinux 0x5d76fc66 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5dfdd93a seq_read +EXPORT_SYMBOL vmlinux 0x5e19021f find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x5e299133 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0x5e54b5fb __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x5e72a847 __next_cpu +EXPORT_SYMBOL vmlinux 0x5e86377e pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x5ee0a984 prom_getchild +EXPORT_SYMBOL vmlinux 0x5ee5eac1 sync_page_range +EXPORT_SYMBOL vmlinux 0x5f03180f ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x5f12f3e3 drm_idlelock_release +EXPORT_SYMBOL vmlinux 0x5f15868f blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x5f21b831 dquot_release +EXPORT_SYMBOL vmlinux 0x5f392199 sbus_bus_type +EXPORT_SYMBOL vmlinux 0x5f3e96a5 drm_idlelock_take +EXPORT_SYMBOL vmlinux 0x5f4aea04 sget +EXPORT_SYMBOL vmlinux 0x5fb41419 kset_register +EXPORT_SYMBOL vmlinux 0x5fcb40c8 handle_sysrq +EXPORT_SYMBOL vmlinux 0x5fd27115 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x5feda736 vio_ldc_send +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x602f6f61 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60a573f9 inode_double_lock +EXPORT_SYMBOL vmlinux 0x60d09fe1 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x60fccc87 have_submounts +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128f6d1 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x615c3d41 neigh_table_init +EXPORT_SYMBOL vmlinux 0x617deb41 kill_pgrp +EXPORT_SYMBOL vmlinux 0x61a4285e pci_dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bc8a5c profile_pc +EXPORT_SYMBOL vmlinux 0x61c62ca8 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x6203969e xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x620cc2eb pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x621d3a06 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x621e07d8 unlock_super +EXPORT_SYMBOL vmlinux 0x62317440 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x623f5c16 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x625e0587 con_is_bound +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62a9293f _clear_page +EXPORT_SYMBOL vmlinux 0x62b591ab directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x62e42542 usb_kill_urb +EXPORT_SYMBOL vmlinux 0x62e69063 init_timer +EXPORT_SYMBOL vmlinux 0x62ef3927 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x630dc8f5 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x631176ef of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x6315a2f9 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x635b099f blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x635b0af2 copy_io_context +EXPORT_SYMBOL vmlinux 0x63648635 ldc_disconnect +EXPORT_SYMBOL vmlinux 0x6367d368 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x63a34a26 skb_store_bits +EXPORT_SYMBOL vmlinux 0x63ae3324 usb_register_dev +EXPORT_SYMBOL vmlinux 0x63c30db2 blk_put_queue +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f5fa5a inode_get_bytes +EXPORT_SYMBOL vmlinux 0x6400f618 input_open_device +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64215622 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x643ceefa mempool_destroy +EXPORT_SYMBOL vmlinux 0x6442058f register_binfmt +EXPORT_SYMBOL vmlinux 0x644ea98b udp_disconnect +EXPORT_SYMBOL vmlinux 0x645fc35c remove_proc_entry +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64c4f784 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x64d067c0 kfifo_init +EXPORT_SYMBOL vmlinux 0x64de9a0c sk_free +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x650c7e39 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x65320838 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654aba4d find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x657250cd dev_mc_delete +EXPORT_SYMBOL vmlinux 0x65744b76 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x65b0a97e _PAGE_IE +EXPORT_SYMBOL vmlinux 0x65b8c219 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x65da29f3 __first_cpu +EXPORT_SYMBOL vmlinux 0x660de646 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x66383099 sock_wake_async +EXPORT_SYMBOL vmlinux 0x6654c8e8 up_write +EXPORT_SYMBOL vmlinux 0x66608e6a mdesc_node_by_name +EXPORT_SYMBOL vmlinux 0x668c38ea cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a290d0 find_task_by_pid +EXPORT_SYMBOL vmlinux 0x66b9dde1 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x66cae227 stop_a_enabled +EXPORT_SYMBOL vmlinux 0x66f123ae __netif_schedule +EXPORT_SYMBOL vmlinux 0x66f8a8fc soft_cursor +EXPORT_SYMBOL vmlinux 0x66f93b89 blk_put_request +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6748037f i2c_probe +EXPORT_SYMBOL vmlinux 0x6777889d tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x677eea7d ns87303_lock +EXPORT_SYMBOL vmlinux 0x6782a832 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x67881bd6 ebus_dma_register +EXPORT_SYMBOL vmlinux 0x67ae3724 bio_free +EXPORT_SYMBOL vmlinux 0x67c29108 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x67d8dcac simple_pin_fs +EXPORT_SYMBOL vmlinux 0x67e965ff tcf_register_action +EXPORT_SYMBOL vmlinux 0x6845ddb2 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x68576339 svr4_getcontext +EXPORT_SYMBOL vmlinux 0x6860f8c5 generic_readlink +EXPORT_SYMBOL vmlinux 0x6866f9d5 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x687c2f32 __down_write +EXPORT_SYMBOL vmlinux 0x68a42057 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x68e2a1ec __user_walk_fd +EXPORT_SYMBOL vmlinux 0x68f8686f __brelse +EXPORT_SYMBOL vmlinux 0x69010b06 insw +EXPORT_SYMBOL vmlinux 0x6911aeb7 unregister_netdev +EXPORT_SYMBOL vmlinux 0x691394ac __kill_fasync +EXPORT_SYMBOL vmlinux 0x692be15f tcp_ioctl +EXPORT_SYMBOL vmlinux 0x692fcfc4 skb_checksum +EXPORT_SYMBOL vmlinux 0x693d6b54 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x693dcf0e remove_suid +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a183cea follow_up +EXPORT_SYMBOL vmlinux 0x6a321a9d put_disk +EXPORT_SYMBOL vmlinux 0x6a38532b wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x6a3b1e61 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x6a40abb8 mpage_writepage +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a57f5b3 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a9de6d3 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x6ab9b289 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x6abdc248 sbus_map_sg +EXPORT_SYMBOL vmlinux 0x6ac47c5f sock_wmalloc +EXPORT_SYMBOL vmlinux 0x6aee1e7b put_io_context +EXPORT_SYMBOL vmlinux 0x6b1005b7 backlight_device_register +EXPORT_SYMBOL vmlinux 0x6b16629b kill_anon_super +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b371eff do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x6b469cfe vfs_mknod +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b7765ea inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bc646c2 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x6bf6cff3 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x6bfe993d _write_trylock +EXPORT_SYMBOL vmlinux 0x6c072aee unload_nls +EXPORT_SYMBOL vmlinux 0x6c0eb831 __check_region +EXPORT_SYMBOL vmlinux 0x6c153bb5 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x6c17c47f sbus_dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x6c39f0b6 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6ceabbc7 blk_run_queue +EXPORT_SYMBOL vmlinux 0x6cecaaa8 blkdev_put +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d1d61fc sk_dst_check +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d5454a1 console_stop +EXPORT_SYMBOL vmlinux 0x6d5afba8 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x6d849cb0 read_cache_pages +EXPORT_SYMBOL vmlinux 0x6d870f8c dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x6d8daf2f single_release +EXPORT_SYMBOL vmlinux 0x6db9fc13 fb_show_logo +EXPORT_SYMBOL vmlinux 0x6de375c1 xor_niagara_5 +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e3b8fa3 vfs_create +EXPORT_SYMBOL vmlinux 0x6e56ecbb mdesc_node_name +EXPORT_SYMBOL vmlinux 0x6e6095a8 usb_control_msg +EXPORT_SYMBOL vmlinux 0x6e6943da devm_iounmap +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ead485f simple_release_fs +EXPORT_SYMBOL vmlinux 0x6ee0f1e3 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x6ef483bb pci_release_regions +EXPORT_SYMBOL vmlinux 0x6ef56d60 mem_section +EXPORT_SYMBOL vmlinux 0x6ef56f31 release_firmware +EXPORT_SYMBOL vmlinux 0x6f013962 ida_init +EXPORT_SYMBOL vmlinux 0x6f0aaf48 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x6f8a4a2d usb_unlink_urb +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x7007b513 usb_hcd_platform_shutdown +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x702f162c __memscan_generic +EXPORT_SYMBOL vmlinux 0x703886d9 clear_inode +EXPORT_SYMBOL vmlinux 0x70541ae7 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x706fae60 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x70996d7b vfs_readlink +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70f14f58 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x70f3bf2f idr_replace +EXPORT_SYMBOL vmlinux 0x712730a7 __flushw_user +EXPORT_SYMBOL vmlinux 0x712b2a81 add_disk +EXPORT_SYMBOL vmlinux 0x712b8f03 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x715dff3a simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x7163c7d6 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7171dfce xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71dbe65a tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x722ab79a generic_file_open +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x725b85f3 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x72906968 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x729570d6 lease_modify +EXPORT_SYMBOL vmlinux 0x72d5e1a1 load_nls +EXPORT_SYMBOL vmlinux 0x72d7c299 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x72e9b8dc pci_match_id +EXPORT_SYMBOL vmlinux 0x72ebe44a __wake_up +EXPORT_SYMBOL vmlinux 0x72fa49ef serio_close +EXPORT_SYMBOL vmlinux 0x731f27ee __mod_timer +EXPORT_SYMBOL vmlinux 0x7383e000 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x7387f8c3 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x738e6f8d blk_get_request +EXPORT_SYMBOL vmlinux 0x73a9330a i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x73b4aad7 __request_region +EXPORT_SYMBOL vmlinux 0x73e0877a insl +EXPORT_SYMBOL vmlinux 0x73f6f76b pci_assign_resource +EXPORT_SYMBOL vmlinux 0x74290d89 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x7483491b of_iounmap +EXPORT_SYMBOL vmlinux 0x748393c5 proc_bus +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748b20e3 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74d2a3e8 fget +EXPORT_SYMBOL vmlinux 0x74da5c0b kthread_bind +EXPORT_SYMBOL vmlinux 0x74dee54f bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x750956ce of_getintprop_default +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75794576 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x75b7af09 ldc_copy +EXPORT_SYMBOL vmlinux 0x75cfa774 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x75d0f034 uart_resume_port +EXPORT_SYMBOL vmlinux 0x75e0ffd5 _read_trylock +EXPORT_SYMBOL vmlinux 0x75f5279c igrab +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76509fd4 input_grab_device +EXPORT_SYMBOL vmlinux 0x768c613e bio_map_kern +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e06657 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x76e6d18c __bread +EXPORT_SYMBOL vmlinux 0x76ff6098 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x7761c1ea alloc_disk_node +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x777b4157 ldc_map_sg +EXPORT_SYMBOL vmlinux 0x77ad1cc7 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x77b7bc40 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x77d8b22b dquot_free_space +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x7808db44 _spin_trylock +EXPORT_SYMBOL vmlinux 0x78163f9d is_container_init +EXPORT_SYMBOL vmlinux 0x7824836f km_state_notify +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x782cb47d _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x7840e825 console_start +EXPORT_SYMBOL vmlinux 0x784ebad0 eth_header_cache +EXPORT_SYMBOL vmlinux 0x787cc573 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x78bcb02b __write_trylock +EXPORT_SYMBOL vmlinux 0x78c7f617 mdesc_arc_target +EXPORT_SYMBOL vmlinux 0x78cf9ed8 pci_select_bars +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78eadedb __per_cpu_shift +EXPORT_SYMBOL vmlinux 0x79689497 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79ad224b tasklet_kill +EXPORT_SYMBOL vmlinux 0x79e4c626 pci_free_consistent +EXPORT_SYMBOL vmlinux 0x79e8a8c2 ilookup5 +EXPORT_SYMBOL vmlinux 0x79f52b75 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7a1526b6 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x7a190d0f xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x7a1b70aa i2c_transfer +EXPORT_SYMBOL vmlinux 0x7a1bf0d4 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x7a4d44dd bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x7a631c3b netdev_features_change +EXPORT_SYMBOL vmlinux 0x7ac1c46f _read_unlock +EXPORT_SYMBOL vmlinux 0x7acc0b91 pci_dma_supported +EXPORT_SYMBOL vmlinux 0x7ad6fd37 lock_super +EXPORT_SYMBOL vmlinux 0x7ae7a610 tcf_em_register +EXPORT_SYMBOL vmlinux 0x7aead4ae submit_bh +EXPORT_SYMBOL vmlinux 0x7af195a5 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x7b8ab507 default_llseek +EXPORT_SYMBOL vmlinux 0x7b92376f inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bc9e8a1 __dst_free +EXPORT_SYMBOL vmlinux 0x7bd40d6a sk_wait_data +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c0b6973 find_vma +EXPORT_SYMBOL vmlinux 0x7c298f72 sock_release +EXPORT_SYMBOL vmlinux 0x7c3eac02 input_free_device +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c6ac648 cont_write_begin +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cba5721 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7ccbfea8 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x7cda61d6 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x7cf00471 dev_get_flags +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d65f403 tcp_check_req +EXPORT_SYMBOL vmlinux 0x7d785952 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x7d82d67d xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d8b3472 put_tty_driver +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dda8f05 ldc_map_single +EXPORT_SYMBOL vmlinux 0x7dfd2449 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x7e216dc0 flush_signals +EXPORT_SYMBOL vmlinux 0x7e253b30 mempool_create_node +EXPORT_SYMBOL vmlinux 0x7e27f495 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL vmlinux 0x7e833292 release_resource +EXPORT_SYMBOL vmlinux 0x7e9129e1 sk_run_filter +EXPORT_SYMBOL vmlinux 0x7ea9c90d bd_claim +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7edd6b3a gen_new_estimator +EXPORT_SYMBOL vmlinux 0x7ede82a0 audit_get_loginuid +EXPORT_SYMBOL vmlinux 0x7ee9938d _write_lock_bh +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f488505 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x7f536a94 pci_unmap_single +EXPORT_SYMBOL vmlinux 0x7f59f9cf drm_addbufs_pci +EXPORT_SYMBOL vmlinux 0x7f7591ca kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7ffa72e0 d_instantiate +EXPORT_SYMBOL vmlinux 0x80184b26 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x803176e8 __alloc_pages +EXPORT_SYMBOL vmlinux 0x8065f122 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x807b7089 prom_firstprop +EXPORT_SYMBOL vmlinux 0x807c20ca idprom +EXPORT_SYMBOL vmlinux 0x814630d2 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8180da8d __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x818bda23 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x820a2e61 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x8220d977 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x822fe0ab blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x82471949 get_fs_type +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82777395 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x8289036a submit_bio +EXPORT_SYMBOL vmlinux 0x82c0c793 node_states +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x83488620 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x836a55de do_gettimeofday +EXPORT_SYMBOL vmlinux 0x836eaaeb xfrm_nl +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c43dc1 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x83e218d9 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x83ebf193 vmap +EXPORT_SYMBOL vmlinux 0x83ef782b cpu_present_map +EXPORT_SYMBOL vmlinux 0x84146690 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x8446bcde _read_unlock_irq +EXPORT_SYMBOL vmlinux 0x845ab0d7 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x84744983 input_allocate_device +EXPORT_SYMBOL vmlinux 0x84974958 __page_symlink +EXPORT_SYMBOL vmlinux 0x84af4866 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x84eabbe4 audit_log_end +EXPORT_SYMBOL vmlinux 0x8526de7a init_buffer +EXPORT_SYMBOL vmlinux 0x8538e196 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x8578bae1 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x8588030b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85a5cc64 simple_getattr +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85b4b757 sock_create_lite +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e36259 pci_get_slot +EXPORT_SYMBOL vmlinux 0x85e429ae tcp_child_process +EXPORT_SYMBOL vmlinux 0x85f48278 idr_find +EXPORT_SYMBOL vmlinux 0x85f521f3 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x85fb421a __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x8601c3cd blk_complete_request +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8683772e do_sync_write +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a5df48 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x86a83aa2 contig_page_data +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x872bd087 suncore_mouse_baud_detection +EXPORT_SYMBOL vmlinux 0x872db331 __invalidate_device +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x8793f8f7 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x87b85383 tty_check_change +EXPORT_SYMBOL vmlinux 0x87bee4a5 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x880d7ea4 __read_unlock +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881113cd adjust_resource +EXPORT_SYMBOL vmlinux 0x881428af complete +EXPORT_SYMBOL vmlinux 0x88213975 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x8832a2ce xfrm_state_add +EXPORT_SYMBOL vmlinux 0x8834d515 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x8837e132 end_queued_request +EXPORT_SYMBOL vmlinux 0x88469009 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x886aa274 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x886cc29a bioset_free +EXPORT_SYMBOL vmlinux 0x8897fc34 arp_create +EXPORT_SYMBOL vmlinux 0x88b88e5d boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x88c95517 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x88dc1e96 down_read_trylock +EXPORT_SYMBOL vmlinux 0x88f7647e ipv4_specific +EXPORT_SYMBOL vmlinux 0x88feaa20 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x8902f1af of_console_path +EXPORT_SYMBOL vmlinux 0x89055262 dquot_initialize +EXPORT_SYMBOL vmlinux 0x895adca8 vfs_link +EXPORT_SYMBOL vmlinux 0x895f4e80 elv_rb_find +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89974a74 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x89b0d362 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e9299a inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x89eafca2 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x8a0008a6 sock_i_uid +EXPORT_SYMBOL vmlinux 0x8a1203a9 kref_get +EXPORT_SYMBOL vmlinux 0x8a45d68d page_follow_link_light +EXPORT_SYMBOL vmlinux 0x8a518795 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x8a73c1ca kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a8d956e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x8a9251ce vfs_mkdir +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aad665c dev_unicast_delete +EXPORT_SYMBOL vmlinux 0x8acce162 free_task +EXPORT_SYMBOL vmlinux 0x8af238a7 datagram_poll +EXPORT_SYMBOL vmlinux 0x8b0403e6 prom_getproperty +EXPORT_SYMBOL vmlinux 0x8b07f626 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x8b0a28da serio_rescan +EXPORT_SYMBOL vmlinux 0x8b4d94cb ldc_read +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b8f2af7 kick_iocb +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b94a7cd __devm_request_region +EXPORT_SYMBOL vmlinux 0x8bb12511 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x8bbfa2b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x8be01530 free_netdev +EXPORT_SYMBOL vmlinux 0x8bf3a412 __bforget +EXPORT_SYMBOL vmlinux 0x8bf87169 __bzero +EXPORT_SYMBOL vmlinux 0x8c174b47 put_page +EXPORT_SYMBOL vmlinux 0x8c3ebc72 saved_command_line +EXPORT_SYMBOL vmlinux 0x8c4b4cf1 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x8c537c45 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x8c832364 pci_get_device +EXPORT_SYMBOL vmlinux 0x8c92d0d0 nf_register_hook +EXPORT_SYMBOL vmlinux 0x8ca0e65d __prom_getchild +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cdb949e truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5eff7d sock_no_mmap +EXPORT_SYMBOL vmlinux 0x8d7b0c9b scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x8da618dc __prom_getsibling +EXPORT_SYMBOL vmlinux 0x8ddeef18 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x8de7ec97 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x8de86b59 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x8de8e42a __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8e0146f3 alloc_disk +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e527c53 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x8e7052e0 __napi_schedule +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e836e8f inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e9ade0a blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x8ed6d91a inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x8ee1f892 write_one_page +EXPORT_SYMBOL vmlinux 0x8ee88d1c __down_read_trylock +EXPORT_SYMBOL vmlinux 0x8f66c250 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f9c240d get_io_context +EXPORT_SYMBOL vmlinux 0x8fa02a79 cad_pid +EXPORT_SYMBOL vmlinux 0x8fc920a9 input_release_device +EXPORT_SYMBOL vmlinux 0x8fca34f5 ebus_dma_residue +EXPORT_SYMBOL vmlinux 0x8fd4333d skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9015251b blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x90188d63 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x904a2b33 register_filesystem +EXPORT_SYMBOL vmlinux 0x907a665d uts_sem +EXPORT_SYMBOL vmlinux 0x90a06276 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x90c79ec6 drm_get_drawable_info +EXPORT_SYMBOL vmlinux 0x91030f47 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x9117a881 prom_getstring +EXPORT_SYMBOL vmlinux 0x914453ae unregister_key_type +EXPORT_SYMBOL vmlinux 0x915ad1b8 sock_no_getname +EXPORT_SYMBOL vmlinux 0x917715a4 register_nls +EXPORT_SYMBOL vmlinux 0x91b0f887 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x91f9db09 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x921f4390 atomic_add +EXPORT_SYMBOL vmlinux 0x923d28de vfs_llseek +EXPORT_SYMBOL vmlinux 0x9264c257 sbus_unmap_sg +EXPORT_SYMBOL vmlinux 0x92717e94 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x928b5adf mark_info_dirty +EXPORT_SYMBOL vmlinux 0x92c7f8cf sbus_set_sbus64 +EXPORT_SYMBOL vmlinux 0x92d0d1f4 _write_lock +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x931b39c5 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x93274a49 pci_find_capability +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x935eb055 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0x936a32e3 pci_choose_state +EXPORT_SYMBOL vmlinux 0x93a5f4fb drm_fasync +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93d1269b pci_alloc_consistent +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940accfc jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x94339d35 drm_i_have_hw_lock +EXPORT_SYMBOL vmlinux 0x9443289e set_bit +EXPORT_SYMBOL vmlinux 0x94483b6d downgrade_write +EXPORT_SYMBOL vmlinux 0x946f187e __per_cpu_base +EXPORT_SYMBOL vmlinux 0x94847b23 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x94b5ecaf input_inject_event +EXPORT_SYMBOL vmlinux 0x950b0b51 test_and_set_bit +EXPORT_SYMBOL vmlinux 0x95415266 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x956b6287 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x956c1c0a compute_creds +EXPORT_SYMBOL vmlinux 0x9577e88a tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x95862a0a iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x95c31ed8 unregister_netdevice +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x964d75e0 request_resource +EXPORT_SYMBOL vmlinux 0x9655c476 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x9681265d set_binfmt +EXPORT_SYMBOL vmlinux 0x968fad73 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9694f81c in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x96999a68 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x96ac0440 ldc_free +EXPORT_SYMBOL vmlinux 0x96c36f27 d_alloc_root +EXPORT_SYMBOL vmlinux 0x96ecb8a1 misc_register +EXPORT_SYMBOL vmlinux 0x9729c49d unregister_nls +EXPORT_SYMBOL vmlinux 0x97431055 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9759e14a tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x975d315d netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x977f43f7 km_policy_expired +EXPORT_SYMBOL vmlinux 0x978ddcdb vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x97928961 idr_for_each +EXPORT_SYMBOL vmlinux 0x97b8e5c9 vfs_statfs +EXPORT_SYMBOL vmlinux 0x97d69f93 invalidate_partition +EXPORT_SYMBOL vmlinux 0x97fd469f tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x9801534b pci_map_rom +EXPORT_SYMBOL vmlinux 0x981b61f3 __serio_register_port +EXPORT_SYMBOL vmlinux 0x984f37db vfs_read +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9896d7a7 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x9899ee5b tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x98a123c3 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98c5747f proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x98e478b5 set_disk_ro +EXPORT_SYMBOL vmlinux 0x98e76121 of_set_property +EXPORT_SYMBOL vmlinux 0x99009b22 end_page_writeback +EXPORT_SYMBOL vmlinux 0x99124920 mnt_pin +EXPORT_SYMBOL vmlinux 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL vmlinux 0x9947cae3 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x99845c02 kernel_accept +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999fe899 set_current_groups +EXPORT_SYMBOL vmlinux 0x99a16a9e path_release +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99ca1e3f dcache_dir_open +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99de2bce invalidate_bdev +EXPORT_SYMBOL vmlinux 0x99df280e km_policy_notify +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99f35fbf ip_route_output_key +EXPORT_SYMBOL vmlinux 0x9a06452f setup_arg_pages +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a52f61c kmem_cache_name +EXPORT_SYMBOL vmlinux 0x9a87ea30 single_open +EXPORT_SYMBOL vmlinux 0x9a895f7a sbusfb_fill_var +EXPORT_SYMBOL vmlinux 0x9aa19946 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x9aaa78c2 tick_ops +EXPORT_SYMBOL vmlinux 0x9aacd62b prom_getintdefault +EXPORT_SYMBOL vmlinux 0x9ab55639 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b21926f tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b40f571 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb1baaf __release_region +EXPORT_SYMBOL vmlinux 0x9bbf7223 down_trylock +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9be8f3cf sock_no_connect +EXPORT_SYMBOL vmlinux 0x9bfaed0a svr4_setcontext +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c28558d neigh_table_clear +EXPORT_SYMBOL vmlinux 0x9c42f25f qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x9c5f8035 follow_down +EXPORT_SYMBOL vmlinux 0x9c703ae6 _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x9ca16cd0 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cac705a __kfifo_get +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc5ff52 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x9d117fe6 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x9d318a9f neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x9d3a8a08 register_framebuffer +EXPORT_SYMBOL vmlinux 0x9da0bbf1 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9db37875 change_bit +EXPORT_SYMBOL vmlinux 0x9e235597 isa_chain +EXPORT_SYMBOL vmlinux 0x9e771285 _PAGE_E +EXPORT_SYMBOL vmlinux 0x9e77a70c dma_supported +EXPORT_SYMBOL vmlinux 0x9e7c1d38 ip_defrag +EXPORT_SYMBOL vmlinux 0x9e9782f0 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f0784d9 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2bdc62 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x9f62bfc5 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x9f63e08b generic_getxattr +EXPORT_SYMBOL vmlinux 0x9f7d062b init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x9f866e26 dump_fpu +EXPORT_SYMBOL vmlinux 0x9f8cf51e default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x9f94ccfe __lookup_hash +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb8df97 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x9fc05588 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fd09533 aio_complete +EXPORT_SYMBOL vmlinux 0x9fe25a07 find_or_create_page +EXPORT_SYMBOL vmlinux 0xa0174901 d_alloc_anon +EXPORT_SYMBOL vmlinux 0xa020cbec tc_classify_compat +EXPORT_SYMBOL vmlinux 0xa0251737 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa02b662c uart_get_divisor +EXPORT_SYMBOL vmlinux 0xa0341e4d pskb_expand_head +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0799cb1 simple_prepare_write +EXPORT_SYMBOL vmlinux 0xa079c419 vfs_quota_sync +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b4a848 generic_read_dir +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0ebb2ba _PAGE_CACHE +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa16c7520 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xa17f95cb isa_bus_type +EXPORT_SYMBOL vmlinux 0xa1912dd8 find_lock_page +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c0fb3a tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0xa1c9d513 netdev_set_master +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1eaab90 mutex_lock +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa222d439 ll_rw_block +EXPORT_SYMBOL vmlinux 0xa2230181 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xa225c5fe pci_iomap +EXPORT_SYMBOL vmlinux 0xa2291276 block_prepare_write +EXPORT_SYMBOL vmlinux 0xa28dbb5a xfrm_state_update +EXPORT_SYMBOL vmlinux 0xa29b1708 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ed8abf generic_setxattr +EXPORT_SYMBOL vmlinux 0xa312d114 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa34a4aa7 ___copy_to_user +EXPORT_SYMBOL vmlinux 0xa3541161 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xa358e0ef drm_core_get_reg_ofs +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3c696aa del_timer +EXPORT_SYMBOL vmlinux 0xa3dd65d7 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xa3f0bea1 kobject_put +EXPORT_SYMBOL vmlinux 0xa3f79ad0 of_get_property +EXPORT_SYMBOL vmlinux 0xa40d00bc send_sig_info +EXPORT_SYMBOL vmlinux 0xa48d9032 drm_core_ioremap +EXPORT_SYMBOL vmlinux 0xa496e0fc blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa4a74611 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xa51c50e7 pci_save_state +EXPORT_SYMBOL vmlinux 0xa53c68dc blk_register_region +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa54c72cb pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xa57916a7 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xa5808bbf tasklet_init +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a2b1d5 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xa5ac2c52 module_put +EXPORT_SYMBOL vmlinux 0xa5b3eb65 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xa5c940b5 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xa5d1bb8a simple_set_mnt +EXPORT_SYMBOL vmlinux 0xa5d2fc8e dquot_commit_info +EXPORT_SYMBOL vmlinux 0xa5d3bdbd __breadahead +EXPORT_SYMBOL vmlinux 0xa5e68673 tlb_type +EXPORT_SYMBOL vmlinux 0xa5f5e824 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xa6144606 arp_broken_ops +EXPORT_SYMBOL vmlinux 0xa6172061 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xa61fdbf1 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xa657be50 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xa65a78e0 ldc_bind +EXPORT_SYMBOL vmlinux 0xa66513e5 dget_locked +EXPORT_SYMBOL vmlinux 0xa6779c5f usb_add_hcd +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa685607f clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xa6b04851 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xa6c2119b posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xa6ca0910 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xa6ca1ae3 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa6d9d197 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6e661b8 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xa7315faf ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa76635a0 up +EXPORT_SYMBOL vmlinux 0xa7883379 __user_walk +EXPORT_SYMBOL vmlinux 0xa7892741 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7f6ebe6 of_get_next_child +EXPORT_SYMBOL vmlinux 0xa7f830c7 __nla_reserve +EXPORT_SYMBOL vmlinux 0xa834a8fa tty_devnum +EXPORT_SYMBOL vmlinux 0xa83a1da4 elv_next_request +EXPORT_SYMBOL vmlinux 0xa8551d38 devm_free_irq +EXPORT_SYMBOL vmlinux 0xa8630ee9 names_cachep +EXPORT_SYMBOL vmlinux 0xa86a37aa generic_fillattr +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8b9dfaf reset_files_struct +EXPORT_SYMBOL vmlinux 0xa8dc438c tc_classify +EXPORT_SYMBOL vmlinux 0xa8dd369a ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa959856c sock_i_ino +EXPORT_SYMBOL vmlinux 0xa97060cb bdevname +EXPORT_SYMBOL vmlinux 0xa99387db get_fb_unmapped_area +EXPORT_SYMBOL vmlinux 0xa9a4bda9 keyring_search +EXPORT_SYMBOL vmlinux 0xa9d16f56 serio_open +EXPORT_SYMBOL vmlinux 0xa9f93876 bio_pair_release +EXPORT_SYMBOL vmlinux 0xaa4b5b52 bio_endio +EXPORT_SYMBOL vmlinux 0xaaed335f dmam_pool_create +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab07bc1a ip_getsockopt +EXPORT_SYMBOL vmlinux 0xab1e2ed3 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xab2a8640 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xab432b8e fb_blank +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xaba4c38d blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xabb98cee neigh_for_each +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xac05b575 usb_hcd_pci_probe +EXPORT_SYMBOL vmlinux 0xac2dab09 prom_getint +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac739730 i2c_detach_client +EXPORT_SYMBOL vmlinux 0xac75fac8 __kfree_skb +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfb6601 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0e93e8 udp_get_port +EXPORT_SYMBOL vmlinux 0xad915210 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xada92257 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xae56dcae pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xaec24d57 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xaed013b9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xaef587b9 kernel_listen +EXPORT_SYMBOL vmlinux 0xaeffdd02 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xaf0e30cb pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xaf19cd33 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf29788e drm_sman_init +EXPORT_SYMBOL vmlinux 0xaf2b67c7 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0xaf414a97 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xaf68226a get_unmapped_area +EXPORT_SYMBOL vmlinux 0xafadb447 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0xafdc211b nf_log_packet +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xafec03ee devm_ioport_map +EXPORT_SYMBOL vmlinux 0xaffb41d6 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xb01321c1 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xb0543071 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xb055d8da posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d26d5c pci_get_class +EXPORT_SYMBOL vmlinux 0xb0d857ed rtnl_notify +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e7b76a per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb13f8fb6 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xb1453119 inode_change_ok +EXPORT_SYMBOL vmlinux 0xb1566a6e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb169b9b8 atomic64_add_ret +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb1b6e39c filp_open +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1ee8714 dquot_transfer +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb2053ad4 simple_readpage +EXPORT_SYMBOL vmlinux 0xb211dcc8 request_key_async +EXPORT_SYMBOL vmlinux 0xb2340505 tcp_connect +EXPORT_SYMBOL vmlinux 0xb2781d94 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb292e558 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xb2ceaac4 complete_request_key +EXPORT_SYMBOL vmlinux 0xb2da6a0f ebus_dma_request +EXPORT_SYMBOL vmlinux 0xb2ef9075 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xb3035edf tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xb312e5a3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb31f4529 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xb32220ee tcf_hash_search +EXPORT_SYMBOL vmlinux 0xb3368dd6 __lock_page +EXPORT_SYMBOL vmlinux 0xb363b1f7 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xb36dd972 drm_pci_alloc +EXPORT_SYMBOL vmlinux 0xb38ef59f request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xb38f161d page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3be33e4 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42c7b10 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xb4784bd1 end_dequeued_request +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4b31f21 unlock_buffer +EXPORT_SYMBOL vmlinux 0xb4b47b48 mii_phy_probe +EXPORT_SYMBOL vmlinux 0xb4fdac5b simple_rename +EXPORT_SYMBOL vmlinux 0xb50fbe72 seq_release +EXPORT_SYMBOL vmlinux 0xb535b8ce generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54ceddf register_netdev +EXPORT_SYMBOL vmlinux 0xb552aebb tcp_shutdown +EXPORT_SYMBOL vmlinux 0xb55d21a7 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xb5622656 sock_create_kern +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5c32e21 do_SAK +EXPORT_SYMBOL vmlinux 0xb6091ee5 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb6486e11 send_sig +EXPORT_SYMBOL vmlinux 0xb657fb5f fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67dd4d9 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xb68fd831 finish_wait +EXPORT_SYMBOL vmlinux 0xb692edfa mempool_free +EXPORT_SYMBOL vmlinux 0xb69d3489 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xb6b4a5bf sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb6b58f02 ps2_drain +EXPORT_SYMBOL vmlinux 0xb6cbf010 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb732969f ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xb743b8fa __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb744ca2f usb_get_descriptor +EXPORT_SYMBOL vmlinux 0xb75dcfee _read_lock_irq +EXPORT_SYMBOL vmlinux 0xb76d2137 dev_driver_string +EXPORT_SYMBOL vmlinux 0xb779986d kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xb7949b81 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xb79c592e sk_stream_error +EXPORT_SYMBOL vmlinux 0xb7a76a95 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xb7affdd1 write_cache_pages +EXPORT_SYMBOL vmlinux 0xb7b3169e sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xb7c68173 mem_map +EXPORT_SYMBOL vmlinux 0xb7d64633 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xb7e2d684 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xb7e5be3e pci_find_slot +EXPORT_SYMBOL vmlinux 0xb804a333 add_to_page_cache +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb889236c xfrm_lookup +EXPORT_SYMBOL vmlinux 0xb89399be pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8afb43d blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xb8be08b2 dma_ops +EXPORT_SYMBOL vmlinux 0xb8f4b95d blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xb9225082 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xb966aa53 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xb9787df2 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xb9a77718 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xb9fc2969 ps2_command +EXPORT_SYMBOL vmlinux 0xba03755c pci_disable_device +EXPORT_SYMBOL vmlinux 0xba344def simple_fill_super +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba7dffca page_symlink +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbabc0b89 input_register_handle +EXPORT_SYMBOL vmlinux 0xbaffe4b4 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1f1904 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xbb1f1bbb sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb760fbf usb_find_interface +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbc273b6 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbc5b465d fd_install +EXPORT_SYMBOL vmlinux 0xbc77053c usb_string +EXPORT_SYMBOL vmlinux 0xbc78a217 make_EII_client +EXPORT_SYMBOL vmlinux 0xbc8b4c14 per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xbcb33749 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xbcba693f of_match_device +EXPORT_SYMBOL vmlinux 0xbce0fb24 generic_unplug_device +EXPORT_SYMBOL vmlinux 0xbcec8ef6 vfs_getattr +EXPORT_SYMBOL vmlinux 0xbcf74d14 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0xbcf87073 pci_map_sg +EXPORT_SYMBOL vmlinux 0xbd14eebd bdev_read_only +EXPORT_SYMBOL vmlinux 0xbd564923 vfs_unlink +EXPORT_SYMBOL vmlinux 0xbd6348e2 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xbd78981e of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xbd7dd291 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xbda6a0c3 block_sync_page +EXPORT_SYMBOL vmlinux 0xbdca1d4d __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xbdcedd22 __devm_release_region +EXPORT_SYMBOL vmlinux 0xbdd8dcb8 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xbe122842 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xbe12fa2c copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xbe40651e input_flush_device +EXPORT_SYMBOL vmlinux 0xbe485f4e udp_hash_lock +EXPORT_SYMBOL vmlinux 0xbe55548d of_ioremap +EXPORT_SYMBOL vmlinux 0xbe628f1e register_con_driver +EXPORT_SYMBOL vmlinux 0xbe63056a new_inode +EXPORT_SYMBOL vmlinux 0xbe665635 kobject_get +EXPORT_SYMBOL vmlinux 0xbe696583 hweight64 +EXPORT_SYMBOL vmlinux 0xbe7e920b kernel_connect +EXPORT_SYMBOL vmlinux 0xbea88db7 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xbeb12b2c gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf10b54f genl_sock +EXPORT_SYMBOL vmlinux 0xbf338076 fb_class +EXPORT_SYMBOL vmlinux 0xbf4e2092 pci_set_master +EXPORT_SYMBOL vmlinux 0xbf7280ad neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xbf75ccc4 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xbf9305d7 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xbf993764 __memscan_zero +EXPORT_SYMBOL vmlinux 0xbfa458b9 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xbfaa2620 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xbfb2ad58 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xbfbe7502 block_truncate_page +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc000d59e init_net +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc007348c serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xc009370b neigh_seq_next +EXPORT_SYMBOL vmlinux 0xc00d230b sys_getegid +EXPORT_SYMBOL vmlinux 0xc01499c7 pci_dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xc01917c1 lock_rename +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a805be bdi_init +EXPORT_SYMBOL vmlinux 0xc0dcd4fe input_close_device +EXPORT_SYMBOL vmlinux 0xc10bd840 drm_open +EXPORT_SYMBOL vmlinux 0xc1495643 ebus_bus_type +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc1a4e529 textsearch_register +EXPORT_SYMBOL vmlinux 0xc1b47fc4 udp_poll +EXPORT_SYMBOL vmlinux 0xc1df98c7 km_waitq +EXPORT_SYMBOL vmlinux 0xc1ee17ca test_and_change_bit +EXPORT_SYMBOL vmlinux 0xc23dbfb2 vfs_readdir +EXPORT_SYMBOL vmlinux 0xc23f2fe5 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25be94a xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc27c86a9 freeze_bdev +EXPORT_SYMBOL vmlinux 0xc2824dc2 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xc28f3d07 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xc2d61c61 of_find_property +EXPORT_SYMBOL vmlinux 0xc2e223e0 d_find_alias +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f1cde5 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xc34e334e devm_request_irq +EXPORT_SYMBOL vmlinux 0xc35930e8 idr_destroy +EXPORT_SYMBOL vmlinux 0xc36adfc1 inet_shutdown +EXPORT_SYMBOL vmlinux 0xc3750797 vfs_readv +EXPORT_SYMBOL vmlinux 0xc387a84a per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xc38c4ca2 PAGE_SHARED +EXPORT_SYMBOL vmlinux 0xc3b61c7c ebus_dma_irq_enable +EXPORT_SYMBOL vmlinux 0xc3cb670e sys_getgid +EXPORT_SYMBOL vmlinux 0xc3eb78ae pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0xc3fac2e0 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xc420ae97 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xc4244c46 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xc45fd506 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xc46ef171 simple_sync_file +EXPORT_SYMBOL vmlinux 0xc4754abf arp_tbl +EXPORT_SYMBOL vmlinux 0xc482b72c xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a86685 usb_get_status +EXPORT_SYMBOL vmlinux 0xc4a86849 complete_and_exit +EXPORT_SYMBOL vmlinux 0xc4ae22aa devm_ioremap +EXPORT_SYMBOL vmlinux 0xc4c5f7c2 dquot_acquire +EXPORT_SYMBOL vmlinux 0xc4dccc32 iget_locked +EXPORT_SYMBOL vmlinux 0xc4fac2dc sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc592c8fd drm_mmap +EXPORT_SYMBOL vmlinux 0xc59b7a05 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xc5d33384 generic_osync_inode +EXPORT_SYMBOL vmlinux 0xc5fbe43a netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0xc61b85b6 drm_poll +EXPORT_SYMBOL vmlinux 0xc6327b65 sun4v_chip_type +EXPORT_SYMBOL vmlinux 0xc680b2d3 d_rehash +EXPORT_SYMBOL vmlinux 0xc6a79b91 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xc7007509 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xc70fc5ce mdesc_get_property +EXPORT_SYMBOL vmlinux 0xc722227e posix_acl_clone +EXPORT_SYMBOL vmlinux 0xc724402b __mutex_init +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc74546a1 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xc7885744 cpu_online_map +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c4d151 nla_put +EXPORT_SYMBOL vmlinux 0xc7d98829 dquot_commit +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc8100b5f dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xc810a1fa fb_validate_mode +EXPORT_SYMBOL vmlinux 0xc833d31d pskb_copy +EXPORT_SYMBOL vmlinux 0xc850c943 blkdev_get +EXPORT_SYMBOL vmlinux 0xc86cd749 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xc8722d03 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xc88faeb3 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xc8939928 eth_type_trans +EXPORT_SYMBOL vmlinux 0xc8a60fe1 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc9149bec tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc91fb9aa _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9c315e1 allocate_resource +EXPORT_SYMBOL vmlinux 0xca214bba neigh_connected_output +EXPORT_SYMBOL vmlinux 0xca77fa76 vc_cons +EXPORT_SYMBOL vmlinux 0xca7dc980 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xca954841 usb_alloc_urb +EXPORT_SYMBOL vmlinux 0xcac420e6 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xcac4d7ff _read_lock_bh +EXPORT_SYMBOL vmlinux 0xcad6328c sysctl_intvec +EXPORT_SYMBOL vmlinux 0xcadaf682 stop_tty +EXPORT_SYMBOL vmlinux 0xcae6377b _spin_lock_bh +EXPORT_SYMBOL vmlinux 0xcb182c62 sysctl_pathname +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb2bf11e skb_split +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb537109 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xcb555b54 sock_init_data +EXPORT_SYMBOL vmlinux 0xcb66cb24 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcbd02620 read_cache_page +EXPORT_SYMBOL vmlinux 0xcc06b5f0 kobject_del +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc120a22 of_dev_put +EXPORT_SYMBOL vmlinux 0xcc24c90d dentry_open +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc76bbe4 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8f794b __free_pages +EXPORT_SYMBOL vmlinux 0xcc977a1c __break_lease +EXPORT_SYMBOL vmlinux 0xcca8bf69 iget5_locked +EXPORT_SYMBOL vmlinux 0xccdf3e9b wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xcceea13b vfs_quota_off +EXPORT_SYMBOL vmlinux 0xcd12203e ip_dev_find +EXPORT_SYMBOL vmlinux 0xcd75f64c usb_sg_wait +EXPORT_SYMBOL vmlinux 0xcdb3ef98 sock_wfree +EXPORT_SYMBOL vmlinux 0xcdc100a2 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xcdd8b2eb vio_conn_reset +EXPORT_SYMBOL vmlinux 0xce077345 end_that_request_last +EXPORT_SYMBOL vmlinux 0xce1c0845 vio_port_up +EXPORT_SYMBOL vmlinux 0xce2d6eb2 vfs_write +EXPORT_SYMBOL vmlinux 0xce2fec52 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce9dc670 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xce9f17e8 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0xcec6516a pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xcec657d4 flush_old_exec +EXPORT_SYMBOL vmlinux 0xceff9c9f proc_dostring +EXPORT_SYMBOL vmlinux 0xcf025be3 __memcmp +EXPORT_SYMBOL vmlinux 0xcf0c8fd8 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xcf13e037 uart_match_port +EXPORT_SYMBOL vmlinux 0xcf480c60 dquot_drop +EXPORT_SYMBOL vmlinux 0xcf5d68da tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xcf5f0cf1 sunserial_console_match +EXPORT_SYMBOL vmlinux 0xcf7677f4 vio_ldc_free +EXPORT_SYMBOL vmlinux 0xcf955db8 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xcfba536f skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xcfdc012d usb_get_current_frame_number +EXPORT_SYMBOL vmlinux 0xcfe13710 sparc64_get_clock_tick +EXPORT_SYMBOL vmlinux 0xcff53400 kref_put +EXPORT_SYMBOL vmlinux 0xcff8b799 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01f2608 sbus_root +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd04559cb per_cpu__kstat +EXPORT_SYMBOL vmlinux 0xd059cbf6 get_empty_filp +EXPORT_SYMBOL vmlinux 0xd0896d76 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xd0be1a2e __memset +EXPORT_SYMBOL vmlinux 0xd0d9b649 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xd0db1c48 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xd0e188a0 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xd0ec3eee panic_notifier_list +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f8c9e0 ldc_alloc +EXPORT_SYMBOL vmlinux 0xd117d226 current_fs_time +EXPORT_SYMBOL vmlinux 0xd11f0375 check_disk_change +EXPORT_SYMBOL vmlinux 0xd147e5ba brioctl_set +EXPORT_SYMBOL vmlinux 0xd1584a56 ether_setup +EXPORT_SYMBOL vmlinux 0xd176f0f1 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xd19560db xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xd1edddd6 d_namespace_path +EXPORT_SYMBOL vmlinux 0xd2193912 module_refcount +EXPORT_SYMBOL vmlinux 0xd22c030f vfs_symlink +EXPORT_SYMBOL vmlinux 0xd22c31fe inet_frags_fini +EXPORT_SYMBOL vmlinux 0xd231218e framebuffer_release +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2a3da2d mempool_alloc +EXPORT_SYMBOL vmlinux 0xd2aa0292 _read_unlock_bh +EXPORT_SYMBOL vmlinux 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL vmlinux 0xd31c0b01 ida_remove +EXPORT_SYMBOL vmlinux 0xd38bdef6 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xd3c5950c i2c_master_send +EXPORT_SYMBOL vmlinux 0xd3d9ec12 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xd3e3caee find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xd3e8ad3c usb_buffer_free +EXPORT_SYMBOL vmlinux 0xd3e8ed71 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xd3eaf3a5 __f_setown +EXPORT_SYMBOL vmlinux 0xd3fbd69a qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xd4177395 vio_validate_sid +EXPORT_SYMBOL vmlinux 0xd41d9230 idr_remove +EXPORT_SYMBOL vmlinux 0xd4205e60 sunserial_unregister_minors +EXPORT_SYMBOL vmlinux 0xd465144e i2c_release_client +EXPORT_SYMBOL vmlinux 0xd49f1ef6 test_and_clear_bit +EXPORT_SYMBOL vmlinux 0xd4c66be3 sparc32_open +EXPORT_SYMBOL vmlinux 0xd4cb4985 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xd4ffee39 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xd5243d84 bd_release +EXPORT_SYMBOL vmlinux 0xd53ed8a9 inet_frag_find +EXPORT_SYMBOL vmlinux 0xd54d21b9 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xd56ba0a0 sun4v_hvapi_register +EXPORT_SYMBOL vmlinux 0xd57e7435 skb_over_panic +EXPORT_SYMBOL vmlinux 0xd5945e82 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xd5d3903e idr_get_new +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd60a3f97 drm_rmmap +EXPORT_SYMBOL vmlinux 0xd6208e03 deactivate_super +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd68719cb thaw_bdev +EXPORT_SYMBOL vmlinux 0xd695c60e neigh_create +EXPORT_SYMBOL vmlinux 0xd696db44 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xd6bb478d seq_printf +EXPORT_SYMBOL vmlinux 0xd6bf27b4 of_device_register +EXPORT_SYMBOL vmlinux 0xd6d36578 set_irq_chip +EXPORT_SYMBOL vmlinux 0xd6db979a tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f2f31f __write_lock +EXPORT_SYMBOL vmlinux 0xd712baa8 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xd716e9c2 __any_online_cpu +EXPORT_SYMBOL vmlinux 0xd75c41b3 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xd76d471b usb_lock_device_for_reset +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a4fec8 xrlim_allow +EXPORT_SYMBOL vmlinux 0xd7b03326 file_fsync +EXPORT_SYMBOL vmlinux 0xd7e62200 generic_write_checks +EXPORT_SYMBOL vmlinux 0xd7fd1c80 inode_setattr +EXPORT_SYMBOL vmlinux 0xd832c9e5 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xd83791bc nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd856f1fe f_setown +EXPORT_SYMBOL vmlinux 0xd859ab2b ebus_chain +EXPORT_SYMBOL vmlinux 0xd85edf12 down_interruptible +EXPORT_SYMBOL vmlinux 0xd8601404 block_read_full_page +EXPORT_SYMBOL vmlinux 0xd86743ec nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xd870ab12 update_region +EXPORT_SYMBOL vmlinux 0xd886ed6d drm_exit +EXPORT_SYMBOL vmlinux 0xd8959f23 auxio_set_led +EXPORT_SYMBOL vmlinux 0xd89f30ad udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xd8adb6ca d_prune_aliases +EXPORT_SYMBOL vmlinux 0xd8c27c4a tty_std_termios +EXPORT_SYMBOL vmlinux 0xd8c98779 jiffies_64 +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8eb69e8 cdev_init +EXPORT_SYMBOL vmlinux 0xd90200bc xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xd934a64c take_over_console +EXPORT_SYMBOL vmlinux 0xd958628f dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xd9599305 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xd9612c2f nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xd972cda3 kill_block_super +EXPORT_SYMBOL vmlinux 0xd97d7dea bdi_destroy +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9d2458b inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xd9dbd09d ida_destroy +EXPORT_SYMBOL vmlinux 0xd9ffe57c kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xda0ca6ea inet_frag_kill +EXPORT_SYMBOL vmlinux 0xda0e7a58 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xda11fbbb nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xda191fd4 nla_reserve +EXPORT_SYMBOL vmlinux 0xda1f63cb fasync_helper +EXPORT_SYMBOL vmlinux 0xda2dbd24 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xda3d2c3c prom_feval +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda500239 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xda778652 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9f6355 groups_alloc +EXPORT_SYMBOL vmlinux 0xdaa43b5f dma_chain +EXPORT_SYMBOL vmlinux 0xdad2b2f8 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xdadea1bf iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xdb9088af skb_seq_read +EXPORT_SYMBOL vmlinux 0xdb9153f1 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xdb981d40 __find_get_block +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc02d3f8 lookup_one_len +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1a6e37 __scm_destroy +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4d427c dst_destroy +EXPORT_SYMBOL vmlinux 0xdc53db05 per_cpu____cpu_data +EXPORT_SYMBOL vmlinux 0xdc6716a5 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xdc6818b4 seq_open +EXPORT_SYMBOL vmlinux 0xdc834ae3 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xdc8653f1 simple_empty +EXPORT_SYMBOL vmlinux 0xdc8b2a43 bd_set_size +EXPORT_SYMBOL vmlinux 0xdca5e829 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcc17ab1 kset_unregister +EXPORT_SYMBOL vmlinux 0xdcccb7bc sbus_dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xdcce8019 __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xdcf23742 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xdd0898a5 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xdd1197c8 xor_vis_3 +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd2ba1f4 of_match_node +EXPORT_SYMBOL vmlinux 0xdd37eabd dev_close +EXPORT_SYMBOL vmlinux 0xdd4b84f4 permission +EXPORT_SYMBOL vmlinux 0xdd4da54e pci_dev_get +EXPORT_SYMBOL vmlinux 0xdd509aa6 drm_core_ioremapfree +EXPORT_SYMBOL vmlinux 0xdd6559da mutex_unlock +EXPORT_SYMBOL vmlinux 0xdd65af64 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xddb780ae generic_permission +EXPORT_SYMBOL vmlinux 0xde2a99c5 sys_sigsuspend +EXPORT_SYMBOL vmlinux 0xde3d8a8d vc_resize +EXPORT_SYMBOL vmlinux 0xde589e60 xor_vis_2 +EXPORT_SYMBOL vmlinux 0xde58ffdf generic_ro_fops +EXPORT_SYMBOL vmlinux 0xde7502a8 PAGE_KERNEL +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9077ec dma_set_mask +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9404df clear_user_page +EXPORT_SYMBOL vmlinux 0xdee2d656 touch_atime +EXPORT_SYMBOL vmlinux 0xdef9dae8 serio_interrupt +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf7b1d4b neigh_lookup +EXPORT_SYMBOL vmlinux 0xdf8fef53 prom_getproplen +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa1c865 drm_get_resource_len +EXPORT_SYMBOL vmlinux 0xdfb872f3 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xdfc8aa33 d_lookup +EXPORT_SYMBOL vmlinux 0xdfdedecb drm_ati_pcigart_init +EXPORT_SYMBOL vmlinux 0xdfeff14d dq_data_lock +EXPORT_SYMBOL vmlinux 0xdfff50f7 pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0xe042c57d _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xe0566a6e may_umount_tree +EXPORT_SYMBOL vmlinux 0xe06d54d5 swap_io_context +EXPORT_SYMBOL vmlinux 0xe07d60ec request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xe07e7716 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xe0809bdc interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xe0a45e54 end_request +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe107395e devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1212c1c init_task +EXPORT_SYMBOL vmlinux 0xe14eb78d key_type_keyring +EXPORT_SYMBOL vmlinux 0xe16cba22 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17a0ed5 do_munmap +EXPORT_SYMBOL vmlinux 0xe17b01fd skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xe18c5937 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xe1906dbb compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xe1b4731a registered_fb +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1fb076b proc_root +EXPORT_SYMBOL vmlinux 0xe1ffc4fa do_splice_to +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe2a76311 ldc_connect +EXPORT_SYMBOL vmlinux 0xe2bbb2ec neigh_app_ns +EXPORT_SYMBOL vmlinux 0xe2d41352 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d64e4c pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xe2d835f8 tty_hangup +EXPORT_SYMBOL vmlinux 0xe2e47af7 mstk48t02_regs +EXPORT_SYMBOL vmlinux 0xe2e713c2 usb_bulk_msg +EXPORT_SYMBOL vmlinux 0xe2fd6e1f shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xe32c7920 unlock_page +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe35bc0b1 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xe37f370e tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xe3814f2f proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xe38ea997 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xe3aed374 copy_user_page +EXPORT_SYMBOL vmlinux 0xe3b1141d sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xe3b5c9f3 drm_get_resource_start +EXPORT_SYMBOL vmlinux 0xe3deab68 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xe41bae6d drm_compat_ioctl +EXPORT_SYMBOL vmlinux 0xe4218b70 no_llseek +EXPORT_SYMBOL vmlinux 0xe433069b __elv_add_request +EXPORT_SYMBOL vmlinux 0xe4742021 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4bf3e2a d_move +EXPORT_SYMBOL vmlinux 0xe4e3a4a2 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52e8fa8 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xe5476ea6 sunos_sys_table +EXPORT_SYMBOL vmlinux 0xe54eb098 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe594d6e0 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xe5af61f4 drm_getsarea +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e08285 down_write_trylock +EXPORT_SYMBOL vmlinux 0xe61e275a proto_register +EXPORT_SYMBOL vmlinux 0xe6301c52 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xe66489b2 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xe6727c61 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xe6cb2439 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0xe6cd4d0d arp_find +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe7169c7a ldc_state +EXPORT_SYMBOL vmlinux 0xe719f351 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xe76f58e4 generic_listxattr +EXPORT_SYMBOL vmlinux 0xe782899e prom_searchsiblings +EXPORT_SYMBOL vmlinux 0xe784eb93 cpu_possible_map +EXPORT_SYMBOL vmlinux 0xe7895f24 __kfifo_put +EXPORT_SYMBOL vmlinux 0xe7a98815 mostek_lock +EXPORT_SYMBOL vmlinux 0xe7ca7475 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7dd7098 filemap_flush +EXPORT_SYMBOL vmlinux 0xe7e5daf0 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7fec2a2 skb_clone +EXPORT_SYMBOL vmlinux 0xe815f168 ldc_alloc_exp_dring +EXPORT_SYMBOL vmlinux 0xe8190617 idr_init +EXPORT_SYMBOL vmlinux 0xe8331eff __inet6_hash +EXPORT_SYMBOL vmlinux 0xe88bdc28 __down_write_trylock +EXPORT_SYMBOL vmlinux 0xe89cf3f4 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xe8ac5741 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xe8c5f0af ip_route_input +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8d1191c skb_gso_segment +EXPORT_SYMBOL vmlinux 0xe8d7d2b3 bioset_create +EXPORT_SYMBOL vmlinux 0xe8dfcdf9 __csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0xe8f45ee3 idr_get_new_above +EXPORT_SYMBOL vmlinux 0xe9037a52 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL vmlinux 0xe93c37f0 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xe93eed10 wireless_send_event +EXPORT_SYMBOL vmlinux 0xe943071b tcp_poll +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe973f9c0 skb_under_panic +EXPORT_SYMBOL vmlinux 0xe98a3f87 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xea0677eb try_to_release_page +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea2125dc atomic64_sub +EXPORT_SYMBOL vmlinux 0xea4ce2e0 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea7a98df generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xea925ac4 sk_alloc +EXPORT_SYMBOL vmlinux 0xea94da72 block_commit_write +EXPORT_SYMBOL vmlinux 0xeacfa3b8 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeadeb62c skb_append +EXPORT_SYMBOL vmlinux 0xeaf41917 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xeaffc71a generic_file_llseek +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb610733 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xeb68d188 sys_getppid +EXPORT_SYMBOL vmlinux 0xeb6bd992 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xeb75b58f dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xeb8344e7 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb92b503 ida_pre_get +EXPORT_SYMBOL vmlinux 0xeb92bfa1 i2c_use_client +EXPORT_SYMBOL vmlinux 0xebab9578 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xebae5a47 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebc8210c bio_split_pool +EXPORT_SYMBOL vmlinux 0xebd9b94a security_task_getsecid +EXPORT_SYMBOL vmlinux 0xebe127ed tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xebe827f4 tty_register_driver +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xebf2299a alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xebfb34bb netif_rx_ni +EXPORT_SYMBOL vmlinux 0xec0372c6 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xec48ba16 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xecd99124 die_if_kernel +EXPORT_SYMBOL vmlinux 0xecf3f6e6 usb_hcd_pci_remove +EXPORT_SYMBOL vmlinux 0xecfc96b3 proto_unregister +EXPORT_SYMBOL vmlinux 0xed05492f dput +EXPORT_SYMBOL vmlinux 0xed276cfc __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xed308dab do_splice_from +EXPORT_SYMBOL vmlinux 0xed5f03d8 syscall_trace +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbba815 audit_log_start +EXPORT_SYMBOL vmlinux 0xedbca61e posix_test_lock +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xee1b13be d_path +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee63cedf drm_sg_alloc +EXPORT_SYMBOL vmlinux 0xee76eb52 drm_ioctl +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeedd0568 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xef335d40 mdesc_grab +EXPORT_SYMBOL vmlinux 0xef41f827 bdput +EXPORT_SYMBOL vmlinux 0xef4df193 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xef5b14c2 bio_split +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefdde57a pneigh_lookup +EXPORT_SYMBOL vmlinux 0xefe37d50 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xeff5cec0 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf015d993 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0xf0160b20 io_remap_pfn_range +EXPORT_SYMBOL vmlinux 0xf02d1075 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xf039a248 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xf06aac84 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0bec117 usb_buffer_map_sg +EXPORT_SYMBOL vmlinux 0xf0d3d1cf __nla_put +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf115a502 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf16a569e dma_pool_free +EXPORT_SYMBOL vmlinux 0xf1713829 page_put_link +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c3b00e copy_in_user_fixup +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf23bade7 get_super +EXPORT_SYMBOL vmlinux 0xf254d917 sk_common_release +EXPORT_SYMBOL vmlinux 0xf25cc2bd pcim_pin_device +EXPORT_SYMBOL vmlinux 0xf263c0f6 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf27a40bd sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xf2997a30 kobject_init +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2e6e860 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xf309e186 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31a4ae8 blk_unplug +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf34237f1 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf347c3ae pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xf351092f generic_removexattr +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf37e4f24 of_platform_bus_type +EXPORT_SYMBOL vmlinux 0xf397b9aa __tasklet_schedule +EXPORT_SYMBOL vmlinux 0xf3a2f38c blk_execute_rq +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e11cff skb_unlink +EXPORT_SYMBOL vmlinux 0xf3e65125 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xf3f13b8a __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf400a166 free_buffer_head +EXPORT_SYMBOL vmlinux 0xf409ae71 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xf4237c4c pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xf4e7170b kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf4f5c766 kill_litter_super +EXPORT_SYMBOL vmlinux 0xf531167c task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0xf55a4a7d dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xf575317f poll_freewait +EXPORT_SYMBOL vmlinux 0xf597667c read_dev_sector +EXPORT_SYMBOL vmlinux 0xf5e22223 skb_insert +EXPORT_SYMBOL vmlinux 0xf5e90fa9 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf5f42c05 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xf657c877 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0xf6639043 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xf68ab015 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xf6aeeb15 suncore_mouse_baud_cflag_next +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6cc8247 dev_add_pack +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75f4c87 vfs_stat +EXPORT_SYMBOL vmlinux 0xf761c3ae copy_to_user_fixup +EXPORT_SYMBOL vmlinux 0xf769910f _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0xf78b83d3 __down_read +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a9ea7f blk_stop_queue +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7c96e38 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xf7d40bdb tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xf7d8bbef gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xf80c69d2 __strlen_user +EXPORT_SYMBOL vmlinux 0xf80e11ad set_device_ro +EXPORT_SYMBOL vmlinux 0xf8191240 add_wait_queue +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82c6358 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf83ddd48 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xf84b38c3 atomic_add_ret +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf88f9d0f pci_bus_type +EXPORT_SYMBOL vmlinux 0xf894a803 ldc_write +EXPORT_SYMBOL vmlinux 0xf8a46bea inet_stream_ops +EXPORT_SYMBOL vmlinux 0xf8c7c993 icmp_send +EXPORT_SYMBOL vmlinux 0xf935b973 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xf951a364 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xf97d8c06 unregister_console +EXPORT_SYMBOL vmlinux 0xf9a42aa1 skb_dequeue +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xfa378b2f nf_log_register +EXPORT_SYMBOL vmlinux 0xfaace474 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xfad16907 mempool_resize +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafe6336 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xfb09d81a pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb700601 usb_deregister_dev +EXPORT_SYMBOL vmlinux 0xfbb8790e register_key_type +EXPORT_SYMBOL vmlinux 0xfbc4acd7 inet_release +EXPORT_SYMBOL vmlinux 0xfbc525c7 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xfbd56678 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc37418c filp_close +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3a0d1c dev_set_mtu +EXPORT_SYMBOL vmlinux 0xfc4aa4f0 iunique +EXPORT_SYMBOL vmlinux 0xfc84b2e1 __pagevec_release +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcadf542 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfd4d8b dev_mc_add +EXPORT_SYMBOL vmlinux 0xfd0bbdc8 lock_may_write +EXPORT_SYMBOL vmlinux 0xfd1916f8 usb_create_hcd +EXPORT_SYMBOL vmlinux 0xfd1b2c0b iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xfd272d35 module_add_driver +EXPORT_SYMBOL vmlinux 0xfd62c62a __grab_cache_page +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdb79962 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xfdc87d6d usb_driver_release_interface +EXPORT_SYMBOL vmlinux 0xfddc6792 register_exec_domain +EXPORT_SYMBOL vmlinux 0xfde5db71 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xfde84b9f pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL vmlinux 0xfe304ed5 bio_init +EXPORT_SYMBOL vmlinux 0xfe389428 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe3d2df2 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xfe57194c tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe65fdaf tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xfe6bb79b d_genocide +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe78010d xor_niagara_4 +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe96d39f ilookup +EXPORT_SYMBOL vmlinux 0xfec05366 sun_do_break +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfee7b0d3 dst_alloc +EXPORT_SYMBOL vmlinux 0xfeea700c ebus_dma_addr +EXPORT_SYMBOL vmlinux 0xff1dacab pcim_iomap +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff67d757 ip_fragment +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6b770e gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe25711 inet_dgram_ops +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x33a82172 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x1e6e54f9 crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x167a4860 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1c013d24 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc6d5d83b async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2ce04bb1 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x534c5f97 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/blkcipher 0x3ab54417 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0x401bd0c2 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x90087f39 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0xdedad397 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0xedc6a30f blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0x9417396d twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x02bf2ade sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x036b122b sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x03add2ff ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0545ccfe ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a3428d8 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b8b3bcf sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0bc08e19 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0d1d2fcd ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0eb3300c sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0eec44bf ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0f79bdf7 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1241d5f2 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0x17ef488e ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x22afbcec ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2440e0cb ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x252bc467 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2685c19d ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28029e56 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2941c5ad ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2bd02a4c ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d9da3be sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2de8d445 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x31ff9027 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x32bc4f77 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x338c1316 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x34cafde2 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x39a4229b ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x39cf59c0 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x39f4e5af ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b980866 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3d1ce5b9 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3d6a6fe6 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3e49e216 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x41c5e376 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x43ceffae sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x44d510df ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x46657c32 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4a7511b3 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x519b57b6 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x51a96a8b pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x554d283b ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x55cb8ba4 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5738f285 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5b7d9a46 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5dd85e66 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5e099c54 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6484962e sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x674ab953 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x687c98fa sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x687e6ab6 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d45d2ae ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6db71ce7 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6ed0d2d8 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6fb3785d ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x71431537 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x717c8e4b ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73599fdb ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0x78001403 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7864b0a7 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x798db3c8 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7acd6cdb ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e1e0935 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fd1965b ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x82c58c99 ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x83c10c74 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8887f05f class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x896c51ab ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8d10dd60 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f96fd70 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8ff75689 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x91d544ce ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x92d423bc ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x955a4513 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x973f455d ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x974b8a5e ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97dddb42 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9c3eb566 ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e3a620e ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f50352d ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa0d8bfe1 ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa32290d2 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa632bc62 ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xae68d7e1 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb624f9e8 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb64bad09 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6eec40e ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb8312597 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbcce374b ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe7bbafb ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbff7a424 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc06b3de0 ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc10fe5ad ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc114a26d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc1db0bf1 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc7f583f2 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcb5c57d0 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcd41a831 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd28fa998 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd32046cc ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd68498a8 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdff7c304 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe4034363 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe574fab0 ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe6cd75b3 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe7c75ae7 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0xea4e447b ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xec5c207b ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0xedcd0874 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xee87e892 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf11896ba ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3f846fa ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf74240b3 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf773bcc5 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8636d92 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xba837401 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0a654b94 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x10ae47d4 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x366e1aed tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x432b22d6 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x53564c2f tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5c137875 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x602c1f37 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x67e96cc2 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x773b3cac tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x78c2e52d tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7f454deb tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x84338666 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8b8ba608 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x99c34f4e tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xae0519b8 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb1869fa9 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb4d102e6 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc9c00fdc tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd69160c4 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd701bc54 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf57b18b6 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/hid/hid 0x355d413d hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x360d5427 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x364a2ca7 hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x718921f5 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7ce23ebc hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x84de02e4 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8cbc40da hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4775b6f hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb5ab4527 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbcd09f62 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf4497c8 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xee0620e5 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf2b6b009 hid_parse_report +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x04a656fa ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x050fbe40 ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x14b6bb87 ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x16cfa457 ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x276e6427 ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2c7e6cfb ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x356d6bad ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x366495f8 ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x470b5ad9 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4828e110 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4d3ec24f ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4defdd47 __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x550b51f6 ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5c81883d ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x64866246 ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x655c7a1d ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6b1b2ce3 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6f4c839e ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x9279d76b ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa0223921 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xaafd581c ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xae2e664f ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbd870985 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbd9c4e3a ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc0254ed0 ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc24428d4 ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc27257c0 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc6319382 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcf571aa5 __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xee8bd309 ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x35ac45e5 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x6469e7a2 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xcccf67fc input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x34df2bd0 led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x77bef584 led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x7cb701c1 led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xd2516456 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x02bcacad dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x481a522e dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x89af8da7 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x92f50d29 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x96e8121b dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xd983572e dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xdfe5d6e6 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe749a4bb dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x4aae6921 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x5ea0b844 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x71dd1a20 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x97f18272 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd66a0938 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xedf8d917 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x569e21fb sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x64ee72c2 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x65eacdea md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xe3ee4140 md_allow_write +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x27abcd29 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x58716c39 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5fdf13d4 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x20ad949a saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2573b7b2 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x32d9b839 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4223586b saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6ffab4f8 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x74883197 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa1616f4c saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb91a9f44 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbf81f192 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd2444209 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd66d17d5 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0be1ee0b saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x21ef59b0 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3d1b1dbc saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4f6c1820 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x95514305 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9d42d7ac saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe1c5e147 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0xe48e7d26 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x5f4cb3d4 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xb1ebcc49 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x462c7b5e microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x06a9fafc saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x50100a77 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x67442836 tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x0740f124 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x5daef120 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x2fa117d2 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x93fcc24b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0x2c5a65d2 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x454ff477 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xd9ea1f70 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x027ab40b videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x04185adb videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0f6f4855 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0fe9167f videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1dba2ffa videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2015662a videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3f9606e1 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x42d238eb videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x47b3cd05 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58483230 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x61c0a5e8 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6e0cb040 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6e614f52 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d32dbc4 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa1b62ae8 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa4cbad6e videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xad8b0012 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbe1643c7 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbfe7b893 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf4f1f203 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf70c6e18 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf96daa2b videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfd1a8f93 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0452662e videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x05c0eba0 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x204acf55 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x262add09 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2cc6793f videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2fb8f547 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x51099ec6 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x590c5ac2 videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x77cb68c5 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x93169c65 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac33c6f0 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbf7b4068 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xcd8283df videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xeb1ee151 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x005b4f06 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x37615caf sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x44ce6b63 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7dcb5c80 sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x97e8be78 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf7f8b894 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0b2d51d7 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0c3a13a0 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1de0cc36 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x43fd8988 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x44c70204 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4e580783 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x50115df2 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x624077d8 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x62c51452 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x653c94ff sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x66168f89 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7831b778 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x971bbf49 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa1f99cf9 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa464e374 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa9389a55 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xade966e6 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb2509534 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb799d2db sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc9d6f8cf sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd8f2dee9 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0fe86bb6 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x157b2312 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x171d6c9e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1d2ebd5b mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2f9f9911 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3987e976 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x39f99f19 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4101943d mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4385a5b5 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x47821ffa mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x48480b25 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4b2a6e32 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5a428fd2 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5b17539e mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5bcfb34e mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e3ed35d mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x614c6878 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x66385766 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x66475fe2 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x77b70364 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x81047661 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9524a3a4 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x97d9a095 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x99733eb9 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9fa404b9 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa746b355 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7edb12d mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xad5543d1 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb616241e mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb76fd73f mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd1584017 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd28cbae5 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7321810 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xde042b36 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdebf67b7 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe3523bd6 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8c92c43 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe90e0e75 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf4016670 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfe180225 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xc4d0d6c5 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xea9effed usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0c5ff791 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1a22d908 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2aecf0a8 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x344a6043 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3a6f2a0c usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x48f4451e usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x868493de usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x87892552 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9a2ea96e usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9d056d11 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa0c51f64 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xae1c198e usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe3d069a usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xce54fa79 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe09e74b1 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1f1cf769 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x336a1ed8 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9cd7bda7 libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc610b5e1 libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xca2a93df libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd3fbdbbc libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd4edd0b5 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe45ba690 libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe68e089e libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeb761c46 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf62588aa libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x057dfbd4 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x0f518414 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x51e5f298 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x8880e416 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x93119859 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x035b639b rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x178faf64 rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fb1815d rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4fbf8b3c rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x612806ab rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6de1c8ed rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7a8fbb72 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7dfd7931 rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x995bcff1 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa33bf7a8 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xac2a6c29 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6c70d97 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbfcdef19 rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd27fcf88 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd55ede81 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf09a775c rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf76f53b8 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfb71609c rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x11add047 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1e192ae7 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x67b98325 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x940b3a4d rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9ceba6ea rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa56527af rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xda9692f5 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x10a292db rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x26e97e79 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2ef04c7a rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5decc9af rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x60346f29 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x72b3362c rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x82d16823 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc03ab692 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe39727a9 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x3af64269 power_supply_unregister +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x458a9c39 power_supply_register +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x4622e1a8 power_supply_class +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x89d0b56f power_supply_am_i_supplied +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xb6467028 power_supply_changed +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x112aaa61 rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x376fe49f rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x49cc9ea4 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x5537c402 rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x6e7552e1 rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x70c38289 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x7fe16b29 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x8fd03228 rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xa44e8c11 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb923efc4 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc7e74568 rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xe3867f8f rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xe5465606 rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xf67d0371 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0aa83c9a iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a36bd08 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1bea1830 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1fc27aec iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x211f1840 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f343915 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x361bed38 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37987827 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x451f703f iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x575fa8cd iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5be87129 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e29cd71 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x80d35fcf iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85f641f7 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa1f6ee80 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4c5facc iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaef8dff8 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8c7d74d iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb62f43b iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2757b70 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd95ad093 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe54170b2 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeb7a24e6 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee334631 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf16ee5ca class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf32cd605 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf496513f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1730b83d sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2491c55a sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x412f8fca sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4700bee8 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5b488212 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5c72c276 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6283b0dc sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64d38fef sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64dbeddd sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64eaa872 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f3cd5a1 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7706eedf __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93ec2430 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6069d26 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd0838b03 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe2bbfe76 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe468bd43 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeb5c7167 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee3bddc8 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfd604cb3 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1adc5b09 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3c044ecc srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6047508c srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc51bdd78 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe7c3b76e srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf200d213 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1793bfe7 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x19d7c3dc sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x25d72bfe __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x29b7ef88 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3f2d42be scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x52436c56 scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x667461e0 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9474de8e scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xa171f94b scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xb0c8c232 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc2a9fb8e scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd9b5f8a9 scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xe63d99d1 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xf114fd62 scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0301f904 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x11152997 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3b23a598 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x43258449 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4c028b76 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5009b094 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x63163482 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa69e3cdf scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd85d2b19 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x324b73d8 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37208de2 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3778b3fb iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d4061e8 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81cb7f52 iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84a436a3 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8937e16d iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b500e52 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9cb0939f iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc323cd0 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd6b3ad6 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd1387d38 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6ea6993 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeb0f9e4a iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xec8ab5a6 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf096d02d iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x528e2fb9 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7ef939d3 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa45a07fa srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf75b3292 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfa87266a srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x72b69269 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa06e1c9d spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xabab1b83 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd7cee1bc spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xdd0b4f0d spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xed8dfa40 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/uio/uio 0x33ad3911 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x642c27da uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xfacb4a4b __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0029b247 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0b17c957 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x272b9f1b ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7ecfc686 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8e05912a usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa88d76b6 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc6f68cd1 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdb961763 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf16d5bf8 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0xcfed2058 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3eef385d usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6362f874 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x68f85306 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x74ff9a87 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7e203d2a usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9cf1058e usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa6d8054e usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xad43007b usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/w1/wire 0x22d91d72 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x73d455cb w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9e0f2f45 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd7a80b9c w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xff096448 w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x3763f98a exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x6e112641 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x1a9ac855 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x506336ea fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x64ad41cd fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x72721325 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x8255610c fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x8e57c3d1 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xb15ae1d0 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xb7b0ff3b fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xba25b995 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xbcee3836 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xbd810112 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xc6a71cf0 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xd20a1ba4 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xe1842c44 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xee736216 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xf923a13c fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xfd419e53 fat_attach +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x6c1711a8 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x925ab6b3 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x9c244c4b gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xa26c17fe gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xfd6a18e3 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x066dea74 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2911bb55 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4b6f6940 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5c04d35d o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x61c3c8d0 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa632cd76 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfa5ba65b o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0b4c82d1 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5b2bb217 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x620e8acf dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x75cbaa8f dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa9a4fac7 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xce217a59 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x022af4df dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x13fe7e9a dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x2dbb3942 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x2def3457 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x584f40bd dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x67ded184 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x7cb17c81 dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x80dec7e9 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xaecd662f dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xaef94420 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xc97d3648 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xfe7582a0 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x043e5ea1 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09d63eae dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a0d9c90 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e190b7d ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x179c6bca dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1fa04a7c dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x20285d8e dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2275dfac ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x234775c6 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x27a6e8e7 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2aed8e3b dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b094bb5 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b9deb3f dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d3a1cca dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f4319d3 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33546e2e dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3679afd5 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3786b4f3 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39ac3aec dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a4382da dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62112208 dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x644bb4b0 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6467ebf6 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6612f0c4 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6875fd7f dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6b28788e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d060d49 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75d984d9 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x77f52ffa dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d2d7d76 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cb3498f dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9188a4c7 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x961d4c43 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4979ed4 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa6cf5552 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9beabd7 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xacc9efa1 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb830b60d ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba1fe8aa compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf8096b3 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc616326e dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xceb08600 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf2f44e6 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf7f9094 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd11bb57f dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdba77da7 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe1d1a583 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4fd8b64 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea8ec2c8 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed75addc dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xedda1b25 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf155051e ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x27ad472a dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3fe9ed72 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5c7a0a9f dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6ae787cb dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x92115d8d dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd04ef9cb dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x8b9efe6c ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xab4c16fc ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xda636d50 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x00629cd7 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x17cda02f ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x265ee663 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x2eb73a2a ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x2f5c1dc3 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3380e4ef ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x345ea61e ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3b9f5a26 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3cec8253 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4464def7 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5927eeac ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5da4b2d3 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6a62c91a ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x76196fb8 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8c0dc455 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8d45aeeb ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x918dc89d free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb58f4a59 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xbd66e512 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd07bc61e ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xeb67d97f ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0588ace0 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0f4d5bce nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6d8026fe nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb89eafc4 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xde38fc52 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x30b55858 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7d2d1f65 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8e27a613 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbe0dd351 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfc7c681f tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1b37297b ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x262e1116 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3790278c ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5f852013 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6e6a960a ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x72e8f7fb ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x873bb19e fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8a35d216 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8ac9ba15 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8f8c3d42 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8fb549a5 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x92ee2421 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa3c7ad5a inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xceada966 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe1332f23 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16688254 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x184a5909 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191df23b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ad73308 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f923d4b nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27ae815a nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ede2d01 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fdce461 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32e64ca4 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34960cfa nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bf1d860 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c36fcf3 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d143f58 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40e5874a nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4874278b nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55c03d7a nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x56c3f910 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57baf530 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a4555eb nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b518735 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5eca2357 nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f0c4afc __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64f59b92 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7259288b nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x733bb699 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7bf4da44 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cb1e71e nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f1c25f7 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x803934ad nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89d727a2 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b4bf2a7 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8eb045ac nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91fc184a nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9396a0ba __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cb1f385 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa35c641f nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa364bcad nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9faf345 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0cfc0eb nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb918aa15 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd4f2ea9 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbde4c4fb __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfc4ea15 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc13c79fc nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4428a9b nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4a07de4 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4ce4df1 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd861c746 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdec52799 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe45a773a nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeaf75bda nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xece89797 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee3e5d6e nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3c86855 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf674e819 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfac54b3e nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfca38dc4 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x9930ab3c nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x5ee7429f nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x16f80faa set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x35969350 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3644ad7c set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5c4f9cc8 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x61a6f969 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x968e8149 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xafd07dfa set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc076c30c set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc172c341 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcf48b143 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x02f78210 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x15cd0fb6 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2d2a441f nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6c737930 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa3eeb462 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x6d5cf2c7 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x7c4da559 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3515b34b nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x73f04855 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7d6c711c ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x85b02e7d nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8c706835 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8d46d2a6 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd958e9a6 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf825790f nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x11a70140 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2fd66b06 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x323c77c6 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x410381f8 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4d10f84e xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x500ed4f1 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56aa64cb xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x59ae5450 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x65f1f304 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d5bf72f xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x78b7e342 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7ac03eed xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb9b4aa1c xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcc03a1f5 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1b878942 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x3178f41d rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00474c12 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00ee9286 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x165f1b24 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1decb229 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d682401 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x303ec755 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37da2930 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41cc1f57 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x428e1869 xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42934352 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c936c0f xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x595e2d37 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c91e4a3 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cbd11f1 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690bfe37 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79220364 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a177fb9 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ec7d748 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x815736c1 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8962ca70 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bacfd84 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x902a770c xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95af6d7c xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafe48b62 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc296549 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc95a07ff xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfab1e34 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe24d4760 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4600d9a rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1d50121 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL sound/oss/ac97_codec 0x371ab4cd ac97_tune_hardware +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0641de58 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b7f819b snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12d3de15 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14e57bc1 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15eacee8 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x180a8313 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22bde4f8 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29bb9fb0 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b1f98ec snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3639e2bd snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x439f6808 snd_soc_dapm_set_endpoint +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x510afa20 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x519b5f2a snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f5a327d snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x723632ee snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76a3e7ad snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7af7e561 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8178b38c snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b3b1ff1 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8eb3e8fa snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93ad28e9 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9dda91bb snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa19aa3c1 snd_soc_dapm_sync_endpoints +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb40f5e88 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbee65975 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6578831 snd_soc_dapm_connect_input +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc67e3df6 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda3908db snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1dc4b97 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe665efdb snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb9e3318 snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x00036e6d tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00650cf1 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x00a39788 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00f51f82 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01e6013a scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x0216057b __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0283d8ab class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x02940822 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x029b2165 input_class +EXPORT_SYMBOL_GPL vmlinux 0x02beb556 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x02cb7608 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x02fd6a7d crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x034539b1 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04907aca dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x049f23ea exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x04f70ba0 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05c2ff71 class_register +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06b2b08a crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07dd8ae9 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x095df0e8 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x09726838 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x098455c3 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x0a8d04e7 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x0b020533 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b32ca49 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0d5db8b3 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x0d5e7ed6 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x0d6cdf1a securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x0d704538 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x0d875fb8 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0dac4c34 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x0e4c2c68 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x0f7d69dd map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0ff92657 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x1021dae4 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x10993f9c crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x10edef5c debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x11810da6 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x1248ea9b generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x1510c36e inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15c7b73d put_device +EXPORT_SYMBOL_GPL vmlinux 0x165074f4 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x16e25e9a crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x17048161 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x183c6915 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x1896f9b9 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x18a1398d usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x1a710549 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1a9472b2 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1aa895f7 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x1b4f0854 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x1b5370b9 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba40d3e pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x1c19e412 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1cf14c86 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d69e0a1 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x1e4cbb50 class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f944c4d class_device_del +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd41694 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x20726486 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x20b33e36 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d4e0f6 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x20ff4003 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x21881f05 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x21f6689a bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x231354ac sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x24068146 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f9ba8c class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x25359086 class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x25a4fbd1 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x25a75dbf crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x25c13e21 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x26256e16 __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0x262e15f5 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26721cd7 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x26f3592e pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x27660319 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x27cf4663 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x2867de3f elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x286c9ec1 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x28bf4973 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x28ee6dba alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2958338e __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x298a432b kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x29b5e6ca debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x2a264e84 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2a9a0ab8 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2b517ed8 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b9aacc9 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2c04d3a1 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x2c0b9d76 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x2c8f60d9 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x2dddd4fc crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2dee63b3 srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2fa1d779 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3028c357 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x30d0c492 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x30ea9b02 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x311c9f02 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x315b5f5a kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x31ac15be xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x31d2ac38 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x32a2dca8 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x32ea0f62 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33ba5a2a uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x33bf72a8 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x3426c454 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x35b35199 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36909fe7 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3756af8d __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x37c2295e class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x37c78467 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x380c8ca3 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x38778b26 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x38e83f1e vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3ae39866 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3b1d45a1 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x3b4705f5 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x3b8f0322 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x3bcd1d70 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3cba1694 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3db2566d generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x3dc23e29 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x3de154cf inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x3de5febb inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x3e3ccade init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3ec718b8 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3f0c0a0c class_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3f124021 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x3fd925ac spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x425e9045 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x42e79a43 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x43364b27 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x43879290 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x448a22f5 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x45403af0 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4607c1e3 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x46991fc8 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x469eddba get_device +EXPORT_SYMBOL_GPL vmlinux 0x46a0b0fa percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0x46f90f0f driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x473dee33 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x474515c9 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x4886e5f5 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x497bd280 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4d55d338 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x4d916a42 user_update +EXPORT_SYMBOL_GPL vmlinux 0x4d938f69 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4dac516c register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4dbdaae6 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x4dcb7c69 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x4e234fd8 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x4f5439d2 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4f83693f invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x4fcd1e7a bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x50078fcb driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50ecf3a6 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x5284a9a4 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x528582fa tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x52940874 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x53719d2c rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x53905a02 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54293550 __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0x54476529 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x55ead803 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x56afa6a1 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56fdfeb2 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x57777e7e pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b383d2 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x57d22437 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x5967aa91 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x598a1ae1 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x59cf7972 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x5acf6804 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x5ad08a70 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x5ae5bc81 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5ba0f4b4 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5bf0105f class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c0445b4 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x5c16d718 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dd6c5eb user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5e54a517 user_match +EXPORT_SYMBOL_GPL vmlinux 0x5e726b54 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5ec32acf tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x612f6597 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x614d83a2 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x61ce03df elv_register +EXPORT_SYMBOL_GPL vmlinux 0x6283fc62 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x62ee6f56 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x63170d61 inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x637f7f6a inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x63ac8b29 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x643b2c64 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x64b6c392 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x6545be98 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x65c07a02 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65e9c884 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x65f12157 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x667c6357 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x6690d3f5 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x66ab9493 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d39493 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66ee59cb queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x66f08dbc atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6753bf62 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x678b714d get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x6793d5ad tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x68500620 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68a7c05b hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x68ca44df class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x68d16546 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x68f1ded1 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x694c74d9 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x6a450807 ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x6a4e2079 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x6a9822c4 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x6ab40655 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6ada49b9 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6b0bc654 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x6be24c6b device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x6c24b6eb usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x6c280cad user_read +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c554941 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x6c563a72 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x6cf24065 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6d9796fa bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x6dad8d19 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x6e283573 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x6f85b362 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x7049c05d find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7090136b inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x71196147 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x71269bb2 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x7151efb1 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71a5d4f7 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72e01b33 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x73215599 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x7486289a init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x7599f90f get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x75da78bd set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75fb809b inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x7664c9b9 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x7684adf3 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x774166a5 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x77b34fe0 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x78f2744c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x799fd990 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x79d77d27 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x7b13dbd8 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x7b3c3730 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x7bbfd895 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c2e7fb8 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7cbd2f0a sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d58c663 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x7da4cf1b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7db4f2e1 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7dbdbb63 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dd19200 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x7df67304 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x7e046d84 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x7e0a55a9 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x7f1fb54f usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x80c4904c device_create +EXPORT_SYMBOL_GPL vmlinux 0x80fc8615 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x81516dd2 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x81862b1b __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8196c0b2 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81f6f320 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82d23ac8 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x83664a3a crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x844196df inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x84e69c9b transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8505d388 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x850d6670 device_move +EXPORT_SYMBOL_GPL vmlinux 0x850e78a6 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86b2ee1e usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x87241c64 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0x876dfcdb devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x888bbdcc relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x888cd3b9 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x88a4e262 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x88d7120e pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x89b86441 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x8a064090 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x8ab841fd destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8b3d4de6 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x8bd8262b inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x8c5c6014 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0x8dbd9fd6 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x8e0826c6 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x8e1baa0b debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x8e76fed4 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x8e797c15 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fa8319c find_pid +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x911b8bcc k_handler +EXPORT_SYMBOL_GPL vmlinux 0x91b5768f vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x91c92246 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x91e162eb tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x921c4514 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x926faaea devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x92d33c23 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x93b25ba8 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x93bafbd3 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x9461d86f class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x946d6f0b init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x94b07736 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9532ad5b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x95ff9f87 class_create +EXPORT_SYMBOL_GPL vmlinux 0x963c4d27 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x969fb480 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x9722e74a hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x975bbcb1 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x97b6f91b tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x97d9c66a nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x98079340 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x98e9be0b platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x99a74124 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x99fd868b usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x9a225f52 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x9a22ab63 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9a2b354d get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x9a7513da crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x9ae42627 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x9b01a057 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9bf41d38 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9c68a3ea led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cb956e0 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x9cf85fa3 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9f4791ed tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa01842ad srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa01c73dd platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa074f5e3 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xa09c42a1 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xa126443d usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xa1aeeea8 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xa251bf41 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa29a066c rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xa32e0167 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa4b7eb47 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa4be6b8f usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xa512944c crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa5aaec55 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5e0fd7b pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xa63c6adb relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xa654b713 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xa686fe81 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xa749b460 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xa760cf75 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xa773d477 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa7ffea5e inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xa8359197 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa8c7f443 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xa94de182 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xa98cdb1b put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa89ee33 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa927ca0 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xaad14c6c pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xab364530 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xac1cc832 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xac201635 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf32a61 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xad2d8249 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xad3c9ed6 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xad496c31 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xaecffdf9 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xaf909345 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0f72236 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb13f167c klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0xb1b664e8 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xb22e92a2 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xb351e50f skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0xb3d43849 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xb3f3458d platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb53e05a8 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xb5719069 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb5c40d4d __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0xb682b883 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xb6c815b4 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xb77259ff __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xb8e2d68e crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xb93bad15 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb95f8b2b driver_find +EXPORT_SYMBOL_GPL vmlinux 0xb96fb367 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xba03e4e9 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xba4bfd49 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xba70c4f5 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xbbae0439 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xbbb577a0 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xbc1ddec4 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xbc20d367 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbc91ea53 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbcb1009a invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xbd367d12 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xbda48d31 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xbddd209c debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xbf8f8dc5 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0xbf94a97f kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbfded276 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xc0053415 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0xc00b78eb nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xc0176f89 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xc0db18f9 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xc10d845f attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xc12dd648 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xc1be1205 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xc1f44fb4 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc2a55bfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc399faa7 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0xc39a85e6 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xc39c258d tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xc3c6b37e blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc45ffde5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xc4724f83 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xc4bf87f6 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xc4fb30d1 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc5862254 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xc6932560 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xc69d8631 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xc6aac6ba attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xc6cc9cfb inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0xc6d7b784 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc7470809 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xc7ff788d led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xc827adfe tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xc86c733b __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8a5d9c3 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xc9561167 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc95b8668 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xc9c8a068 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc9e53ce4 device_del +EXPORT_SYMBOL_GPL vmlinux 0xcac8c0c8 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xcaf504b0 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xcb383dea skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xcb416f85 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcb69cdad unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcd4b2535 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xcd8d60d0 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcd999236 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xce91bf51 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xcef29b9f usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xcf75fc3c crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcf821caf spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd020d4a7 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xd08fa7c5 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd12b45db debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xd13488f4 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xd1353e2e sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1761f13 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd1bf4563 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2c310ba inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xd2cd5fb2 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xd3038eef sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd3060e6c tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xd30c6c03 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xd41824da crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xd428f622 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xd52e273f class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd5a38e28 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xd62e5bc7 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xd6dca524 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xd7be3638 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xd801b512 sys_call_table +EXPORT_SYMBOL_GPL vmlinux 0xd815e01d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xd840ac91 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xd89734a5 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xd8c43762 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xd8ccd255 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0xd994332e devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xd9df9f3a mmput +EXPORT_SYMBOL_GPL vmlinux 0xd9e3dceb sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xd9f840b6 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xda68b3a0 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xda928a7e sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xdadb465e xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xdafbdfc3 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdca02bed klist_del +EXPORT_SYMBOL_GPL vmlinux 0xdd0e9c4d sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xddb11075 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0xded42c40 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xdf28147f put_pid +EXPORT_SYMBOL_GPL vmlinux 0xdf497c36 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe026b9cc genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe22cac9f debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xe306066a scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xe4012306 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xe4272762 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe42b2653 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xe434812e devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xe4811a9b sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xe53c7ad1 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xe66ef1f5 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xe686d846 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe743b01c tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe7749d15 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xe781191b sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xe7cfb584 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe7e6d177 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe89c80bb inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xe91c2766 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe9fc9b35 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xeb4cd2e3 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xebc9967f anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xec599769 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xecae6fca usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xee0a4e14 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee5efa71 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xeec5e2da inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xef1f9458 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xefdff933 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xf0214b48 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf04bf7f2 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf14cd724 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1ea6188 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf2417858 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xf25dd806 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xf27f69e6 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf4f9e57d crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf5a0b536 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf66293d5 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf6e55f13 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf7bd9d71 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xf86f6742 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8bd633d device_add +EXPORT_SYMBOL_GPL vmlinux 0xf8e60636 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xfa84f93c usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xfbd82819 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc9fd87b vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xfcce6598 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xfd14f5e4 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xfd899d8d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe83ddd5 task_nice +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xffac4c90 device_register +EXPORT_SYMBOL_GPL_FUTURE vmlinux 0x3c3276de usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE vmlinux 0x9dd0ea1c usb_match_id +EXPORT_SYMBOL_GPL_FUTURE vmlinux 0xef247b0b usb_deregister +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/sparc/sparc64.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/sparc/sparc64.modules @@ -0,0 +1,1070 @@ +3c59x +3w-9xxx +3w-xxxx +8021q +8139cp +8139too +8390 +9p +9pnet +9pnet_fd +a100u2w +aacraid +ablkcipher +ac97_bus +ac97_codec +acecad +acenic +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adm1026 +adm1029 +adm8211 +adm9240 +adt7470 +adutux +aead +aes_generic +affs +af_key +af-rxrpc +ah4 +ah6 +ahci +aic79xx +aic94xx +aiptek +airprime +alim15x3 +anubis +aoe +appledisplay +appletalk +appletouch +applicom +arc4 +arcmsr +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +ati_remote +ati_remote2 +atl1 +atmel +atmel_pci +atp870u +atxp1 +authenc +auth_rpcgss +autofs +autofs4 +b43 +b43legacy +bbc +bcm43xx +befs +berry_charge +bfs +binfmt_misc +blkcipher +blowfish +bnx2 +bonding +bridge +broadcom +bsd_comp +cafe_ccic +camellia +cassini +cast5 +cast6 +catc +cbc +cdc_ether +cdc_subset +cdrom +cfg80211 +cicada +cifs +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cmd64x +cn +coda +compat_ioctl32 +configfs +corgi_bl +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +crypto_null +cs53l32a +cs5530 +cx2341x +cx25840 +cxgb +cxgb3 +cy82c693 +cyclades +cypress_cy7c63 +cytherm +dabusb +davicom +dc395x +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +de600 +de620 +decnet +deflate +display +display7seg +dl2k +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +ds1337 +ds1374 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dummy +dv1394 +e100 +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +ecryptfs +eeprom_93cx6 +efs +ehci-hcd +em_cmp +emi26 +emi62 +em_meta +em_nbyte +em_text +em_u32 +envctrl +epca +epic100 +eql +esp4 +esp6 +esp_scsi +et61x251 +eth1394 +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fat +faulty +fcrypt +fealnx +ff-memless +fixed +flash +ftdi-elan +fuse +generic_serial +gf128mul +gfs2 +gl520sm +gl620a +gtco +hermes +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hostap +hostap_pci +hostap_plx +hpfs +hptiop +hwmon-vid +i2c-algo-pca +i2c-algo-pcf +i2c-dev +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-simtec +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i5k_amb +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmpex +ib_mthca +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-tape +idmouse +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +imm +inet_lro +initio +input-polldev +ioc4 +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipcomp +ipcomp6 +ipg +ipip +ipmi_devintf +ipmi_msghandler +ipmi_si +ipmi_watchdog +ip_queue +ipr +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw2100 +ipw2200 +ipx +ir-common +ir-kbd-i2c +iscsi_tcp +isofs +istallion +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +jbd +jsm +kafs +kaweth +kbtab +keyspan_remote +khazad +ks0108 +lcd +ldusb +led-class +libata +libcrc32c +libertas +libertas_sdio +libiscsi +libphy +libsas +libsrp +linear +lkkbd +llc +llc2 +lm63 +lm70 +lm87 +lm92 +lm93 +lockd +lock_dlm +lock_nolock +lp +lpfc +lrw +ltv350qv +lxt +mac80211 +macvlan +marvell +matrox_w1 +max6650 +max6875 +mbcache +mcs7830 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mga +michael_mic +microtek +mii +minix +mlx4_core +mlx4_ib +mmc_block +mmc_core +mmc_spi +moxa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msnd +msnd_classic +msnd_pinnacle +msp3400 +mt20xx +multipath +mxser_new +myri10ge +myri_sbus +natsemi +nbd +ncpfs +ne2k-pci +net1080 +netconsole +netxen_nic +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +n_hdlc +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +n_r3964 +ns83820 +ns87415 +nvidiafb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +openpromfs +option +orinoco +osst +output +ov7670 +p54common +p54pci +p54usb +p8022 +p8023 +parport +parport_ax88796 +parport_pc +parport_sunbpp +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pdc2027x +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc87360 +pc87427 +pca9539 +pcbc +pcilynx +pcnet32 +pda_power +pdc202xx_old +pdc_adma +pegasus +phantom +phidget +phidgetkit +phidgetmotorcontrol +pktcdvd +pl2303 +plip +plusb +pm3fb +powermate +power_supply +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoe +pppol2tp +pppox +ppp_synctty +psnap +pvrusb2 +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogicpti +qsemi +quota_v2 +r128 +r8a66597-hcd +radeon +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +rdma_cm +rdma_ucm +reiserfs +rfkill +rfkill-input +ricoh_mmc +rio500 +riscom8 +rndis_host +rocket +romfs +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +saa5246a +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-empress +saa7134-oss +saa7146 +saa7146_vv +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbp2 +sc92031 +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdhci +sdio_uart +sd_mod +seed +serio_raw +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +sis190 +sis5595 +sis900 +sisusbvga +sit +skfp +skge +sky2 +sl811-hcd +slhc +slip +sm501 +sm501fb +smbfs +smsc +smsc47b397 +smsc47m1 +smsc47m192 +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ainstr-fm +snd-ainstr-simple +snd-ak4114 +snd-ak4531-codec +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs8427 +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigoio +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-maestro3 +snd-mia +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcm-oss +snd-pcxhr +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-instr +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-oss +snd-seq-virmidi +snd-serial-u16550 +snd-soc-core +snd-sonicvibes +snd-sun-amd7930 +snd-sun-cs4231 +snd-sun-dbri +snd-tea575x-tuner +snd-timer +snd-trident +snd-trident-synth +snd-usb-audio +snd-usb-caiaq +snd-usb-lib +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-ymfpci +solaris +soundcore +sound_firmware +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +st +stallion +starfire +stex +stowaway +strip +sunbmac +sundance +sun_esp +sunlance +sunqe +sunrpc +sunvdc +sunvnet +svgalib +sx +sx8 +sym53c8xx +synclink_gt +synclinkmp +sysv +tc86c001 +tcm825x +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tda8290 +tda9840 +tdfx +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tg3 +tgr192 +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tipc +tle62x0 +tlv320aic23b +tpm +tpm_atmel +trancevibrator +trident +trm290 +ts_bm +ts_fsm +ts_kmp +tsl2550 +tulip +tun +tuner +tuner-simple +tunnel4 +tunnel6 +tveeprom +tvp5150 +twofish +twofish_common +typhoon +u132-hcd +udf +ufs +uhci-hcd +uio +uio_cif +uli526x +upd64031a +upd64083 +usb8xxx +usbhid +usbkbd +usblcd +usbled +usblp +usbmouse +usbnet +usbserial +usb-storage +usbvision +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +veth +vfat +vgastate +via +via-rhine +via-velocity +video1394 +videobuf-core +videobuf-dma-sg +videodev +vitesse +vp27smpx +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83791d +w83792d +w83793 +wacom +winbond-840 +wire +wm8739 +wm8775 +wp512 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xor +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +yealink +yellowfin +zc0301 +zd1201 +zd1211rw +zlib_deflate +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/sparc/sparc64 +++ linux-2.6.24/debian/abi/2.6.24-24.56/sparc/sparc64 @@ -0,0 +1,5918 @@ +EXPORT_SYMBOL crypto/gf128mul 0x24ed78f1 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x26f4c894 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0x3048a718 gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x61dc7b4e gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x67230a48 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x79a10b7e gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7ade1ff9 gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7f5e7a78 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x83dff6a6 gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0xac500869 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0xb81a3b33 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0xcd29b909 gf128mul_4k_lle +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/cdrom/cdrom 0x045c5e8c unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x0af76737 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x3252477d cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x39c3a1ed cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0x555cf112 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0x85ca8692 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xa49ace81 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0xaf14d998 cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0xc46d3b7a cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0xd851962a cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0xea939a0e cdrom_release +EXPORT_SYMBOL drivers/char/generic_serial 0x176260d3 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0x17f5e9a7 gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x21d35e4f gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x32d3e662 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x49e8f3be gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0x5718c458 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0x5acdfe97 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x633df9ef gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0x6683a0da gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0x70db07b5 gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0x800ae7af gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0x84e08b31 gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x9fbceee8 gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0xd251a1b0 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0xdb866b13 gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0xea087012 gs_hangup +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00417e35 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x004eef7d ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1bfd623b ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2bbe76bc ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2e51081d ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2e7ff6cd ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x308e9a7c ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3d80d490 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6792b284 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6837c44e ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7d2c20b1 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7f845f7f ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8d76e5f3 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96de9034 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb2c74a1d ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb8a37e18 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbd3ca36b ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc55076c5 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc7f38270 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcfdfff68 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdd6f376f ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf08f9043 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf7fc6ad2 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfbdd524d ipmi_free_recv_msg +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3119397d i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xb59d966f i2c_pcf_add_bus +EXPORT_SYMBOL drivers/ide/ide-core 0x02abdd03 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0x079dab35 ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x0b345707 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x15a3a3f4 ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0x163c7a7e ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x2c2c4692 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x30e47da9 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x4174947e default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0x45d35319 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0x4a5610c5 ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x4b5547fb __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x550be116 generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0x5e2774c5 ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0x5f8621cf ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0x616e12ff ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x618e5b62 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x66865a09 ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x693371cb ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0x71df86f0 __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0x72bb2645 task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x74c80eaa ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x7838cfa5 ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0x9aba2dfd ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xa3170ff8 ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0xa38e66f3 pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xaef8eb5a task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xb65ef8e4 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0xca4061a2 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xcdd9f923 drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0xd4eb2df3 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0xe8d2f328 ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xf15dfdbf SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0xf1dced4c ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0xf80825aa ide_dma_host_off +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x01321d97 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x022727ab hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x02b71f10 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x08d5e08a hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0a0fcb8c hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0fb3418a hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x117369b8 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x12d21054 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x18b2be2e hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1a200e5a csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1a526d94 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1e09ef13 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1e44be2d hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x25f9bbad hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x27eaffb6 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2a4cc36b csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3009b731 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x348dcfae hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3759591a hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37cbdf39 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3bebfb79 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x43c7ad2b hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x47b2544b hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a9cd770 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x56a4b479 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5d471a69 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5ecf6772 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5f5fdd2f csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5f80b589 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x63b28b45 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6990913f hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6a72e3c7 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b87718e hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6d2eec14 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6e3de6e1 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6f16d0a8 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7233d540 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x72c33165 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x75e7bdd3 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7c87c53b hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e794c77 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x823a1e91 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91c4d273 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x996e7568 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9cb2eac8 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ebfc42b csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ec99854 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa48cd964 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa553f195 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8b19b82 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xad4651c8 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaef57bb5 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xafb31efc hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb871522a hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0df802d hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc798b8ba hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc82c54b3 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xca9903ad hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd0dd266a hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd48d584a hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6e7a9a3 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdd77ea3b hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdde248eb hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe5604164 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe599e4ba hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf02f2453 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf2b68126 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf2f063a5 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf340b497 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x0ac1faa1 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x0cb66271 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x1d5aeebc ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xdc594775 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x08a37740 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x78372658 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xb0900f14 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1dbe744 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0641ec0f ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0ecb3e7a ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2ea2ce2b ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3ff9328d ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x41089dd6 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x42f0b2e4 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x47e415d3 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x48f928f7 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56fe9060 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x688ed6fc ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7dc0c698 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8bd47781 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9e16c24a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb12be149 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc356e039 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc608b95c ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06de2db8 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cc2bbec ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13e486c6 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16bf2608 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2de689f0 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f5a7b01 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3500d66c ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3877ce37 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c6078d5 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x400b4daa ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4316f45a ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43dd6eed ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47e3c4ba ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48b2bb76 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48e351b2 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ebbf4b9 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5064f155 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53bfa389 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56ef0af0 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c370be4 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f3308c4 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6672aeab ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69b9dc3d ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fe13b0a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x711849d8 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71621023 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78f1b190 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x798e8f24 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7bbfe34a ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8271c241 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x852a53ea ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8af23f2e ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bf626be ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e95f6e3 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91138596 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91aca7d5 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9364c285 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94315369 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96b954dd ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a51b42d ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9fcb06f9 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa472a974 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5d8aefe ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5ea548f ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6fc7dd4 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7cc5de5 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8e72e88 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8f70bf7 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa925443e ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xacfa4957 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb751e98a ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb8510b35 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbbd2fc6e ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdecb463 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc07854ef ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1bd95e5 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc386f8a4 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5c84172 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8109a7f ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc94b6a9b ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce66636a ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd926d476 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd98e6109 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0df8891 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6aed4e8 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0585d03a ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x392929c4 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x53e5693e ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6b1ee819 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9cb5fd53 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa3e94be6 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xab36f76e ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbd4d92d9 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbf7d04d3 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc9e20d0b ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xca88f756 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcb30bffa ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf2681602 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0d0e5932 ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x20d615df ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3073254b ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4337239b ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5ae4741c ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5d72dabc ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6d94b6da ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x73a64cb5 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x775864a8 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc5786fa9 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x057cb4d2 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x36a35a2f ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3e0ed3f0 ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa12a9ec5 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5c23bcce iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x90968d69 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9202f41f iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa4d2442e iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xabafb4d3 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf1398144 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf7dc9c42 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfea58ae7 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x00e7d6a9 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x034f09ff rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x094c71e4 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0f72df93 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x119ff088 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x23e17609 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x25a81f14 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a2c6195 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3fe0f38c rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x63ef15d5 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6796f2ec rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6cbd4ffb rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a26bef1 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5ac7f3b rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae3d3a8a rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc3b795b2 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcbd858b8 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe215dfd3 rdma_connect +EXPORT_SYMBOL drivers/input/input-polldev 0x74c9d555 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7de14e74 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xdfda16c9 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf52d3956 input_unregister_polled_device +EXPORT_SYMBOL drivers/md/dm-mirror 0x3f9621f3 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x45af914b dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x49f0b7c7 dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x4ae2c37c dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x10dad076 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0x1163da11 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x280a18d4 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0x35ca914e dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x4cb17448 dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x65758faa dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x87c9d662 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x893cef13 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0x8bfb1e5a dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x9c181c56 kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xa6bf197b dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0xaacf1ed3 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xb49a3341 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0xb71b9e4f dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xd96ac38b dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0xd9739346 kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xe4e57842 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0xee479421 dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xfeeca4be dm_get_mapinfo +EXPORT_SYMBOL drivers/md/md-mod 0x0800ffe8 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x0ae08e2e bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x12722c03 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x2376f710 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x35df718c md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0x47746382 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x66e5ebbf bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x714221aa bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x8488c9e5 md_error +EXPORT_SYMBOL drivers/md/md-mod 0x886078e4 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xa01a4090 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xdf7bfec9 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0xe000eb30 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xf218880b md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0xf987948f md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xfcc8de42 md_wakeup_thread +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xbbc08e0f cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1e1b8eeb saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x216b9009 saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2da6c90f saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x307a1c97 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x55643f0c saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x604766fd saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7c8dfa6b saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x873868db saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x93246199 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x981b9064 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa5413a7e saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc0418233 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdd9000f7 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/tveeprom 0x53ad72f6 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0x7cab511d tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x194f464a v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0b7a898d v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1dcaa0c8 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2f639468 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37918f44 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x572269cb v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x76ba9a9a v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x95284709 v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9c7de443 v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb5266c1a v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbecd2858 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xea6b1ba9 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xea8f9485 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/videodev 0x1c2b87b3 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x47d818b3 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x5d2fe451 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x6d82e319 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x707cec64 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xad0e74e6 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xc6a0c53b video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0xd92e9149 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xfeb1656d video_unregister_device +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x250ff7be mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x26c0447c mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2b1b705d mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3904171d mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x517ac01b mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5fadab4d mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6e9f5fed mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6f7115e2 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7005380d mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7235bcfa mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8080275b mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x90042140 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xacdfe420 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb011821d mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb09993bd mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb90d3f5c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc3f8a911 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcacfa460 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xddc0d27c mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe1860869 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe5329809 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe888dfd2 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x203d146e mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2047918e mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29317c33 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2eaabaa9 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30541b14 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x338d1396 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b9bfd40 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6982c92f mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x742d57ce mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x81eaee68 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x94e24449 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9e114290 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4b044d6 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa6edd9ee mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb7b65af5 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcbea4399 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd0d6643 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0db5fff mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe9bcdedb mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf2ea5d69 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf3527884 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf46ce4b6 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x014c41f1 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0ea7bbe7 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x103a55cc i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1380a119 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5e97b7ef i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x66d62867 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x76e8628a i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x77ef2230 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8a1cdc06 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9def6d82 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9eb002c4 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xad0cc59c i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xae036b48 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc18f9a68 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc1edffc7 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc219ac61 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8c7714f i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe2860c2f i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xea396220 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xecaa28df i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf4014210 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfce3b6f3 i2o_parm_table_get +EXPORT_SYMBOL drivers/misc/ioc4 0x42776f6c ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xbc74aa5f ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0564400e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x318ae77d tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x352552d5 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x3be29eb5 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x4cd67623 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x5ea50f17 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x65749102 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x731702a4 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xac5f9d08 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xce0d2bb1 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe5ea2c99 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xfeee65d2 tifm_alloc_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x3dd2f187 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0c6c2edd mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1f05b3f2 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x22c69ccb mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x278c4889 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3f4f53a9 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x449f5ac9 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x593e411a mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x684071c8 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6e17430e mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x73c92033 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x938377f4 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb79c63bf mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd6ebf78a mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xdf9a5342 mmc_alloc_host +EXPORT_SYMBOL drivers/net/8390 0x4067ebbb NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x54091bb4 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x73a12b3f ei_poll +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xbe8ee383 ei_open +EXPORT_SYMBOL drivers/net/8390 0xdbe554b4 ei_close +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x04cb3b87 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x19237385 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x31e1a4b0 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x32708b47 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3d87a910 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x47196c20 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x47619bd3 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4b678f92 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x57310342 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x688cfcad cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6b144817 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc2c313d5 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc7d5c29a t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcdd29e5d cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd398904d t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf4a5d6ba cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/mii 0x3bfed78f mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x53bb4194 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x82bdb144 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x986f3513 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xc2b3fc2f mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xe2ccb0ad mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xe7102d72 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xf9e57611 mii_check_link +EXPORT_SYMBOL drivers/net/phy/fixed 0xe55a4fb9 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0xe5d74cd3 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x091525f5 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x0d1d4a89 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x1b9c3dfb phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x3a37720c mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x47570151 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x4bfc1e51 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x583fb00f phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x5d7cdf5c phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x764082ba phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x76e5c444 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x77dce787 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x825a2636 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x84e3321d phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x86a3f065 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0x93aa7108 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xa01a2c61 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xaad68111 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xb7800054 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0xb9023026 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0xb9287a28 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xcb9e94da phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xe24d12d4 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xe55f131b phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0xe639967b phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xf2025bb4 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0xf5feb32e genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0xf68ff428 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0xf7f413ca phy_mii_ioctl +EXPORT_SYMBOL drivers/net/ppp_generic 0x2eab52d1 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x2ff0ac2b ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x666fa409 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x707756e3 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x935076d3 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x9bc7d5ab ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xa68a3b4f ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xb458a2f3 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xced91bfd ppp_unit_number +EXPORT_SYMBOL drivers/net/pppox 0x46fcf30b register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xb305e77c pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xed314489 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/wireless/atmel 0x468aedef atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x747173d5 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xe0dac299 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10898361 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12e349c7 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x17b979b5 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x223db327 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2e8d3755 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x305eb7fa hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5a61a6bc hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x62e2d5b4 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x701490bb hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7ae990e3 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x821a9873 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x95c3ea6e hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa6a91dc3 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa9ea0de4 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc315f243 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc5a03669 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcdc83539 hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd18f988e hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd7b757f2 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xddba9fab hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdf9b21d9 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe1164aa1 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe6551049 hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe711382e hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb2c7cb9 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xec9c321c hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf0179ebc hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf4fa6606 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x0b0631a2 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x474d2c20 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x55523e86 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xf57ac700 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xfe1b641b __orinoco_up +EXPORT_SYMBOL drivers/parport/parport 0x0a436593 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x138e4504 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x15bdf57d parport_read +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x2012058e parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x32e75dff parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x3bf6356f parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x518c1561 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x51cd82ba parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x5c6f2026 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x62919111 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x741b9f11 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x778289a0 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x793be549 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x7a678844 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x7e53e831 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x81941b36 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x8c7c5d3a parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x91c992a4 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x9a2c9235 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x9a64f293 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x9c58b6b2 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xa62d3d27 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xad7389b0 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xb6595cdd parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xd7e256f5 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xe06c2d7c parport_write +EXPORT_SYMBOL drivers/parport/parport 0xef0a438a parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xf013cc7e parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xf497f6e0 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xfd6eda2a parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport_pc 0x391910ca parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xbc79c60d parport_pc_unregister_port +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/sbus/char/bbc 0x6973a1be bbc_i2c_write_buf +EXPORT_SYMBOL drivers/sbus/char/bbc 0xb724a64c bbc_i2c_read_buf +EXPORT_SYMBOL drivers/sbus/char/bbc 0xba4abeb5 bbc_i2c_attach +EXPORT_SYMBOL drivers/sbus/char/bbc 0xcebbd00e bbc_i2c_writeb +EXPORT_SYMBOL drivers/sbus/char/bbc 0xe14d0937 bbc_i2c_readb +EXPORT_SYMBOL drivers/sbus/char/bbc 0xe861635d bbc_i2c_detach +EXPORT_SYMBOL drivers/sbus/char/bbc 0xeaeb15ff bbc_i2c_getdev +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x0740f2cc scsi_esp_register +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x09566dc6 scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x1291affe scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x57f25270 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x9d575c08 scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xc144c702 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xe5941bc1 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xf78c4986 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/raid_class 0x3139b059 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xb138997e raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe406aecb raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x00304c88 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x00573930 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x00ecc72b scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0358fd2b scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x043e3f09 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x08c2a0f2 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x09227540 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0daa7047 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0f22f1f1 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1cebc50a scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x257889d3 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b746481 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d31b88d scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d4edb33 scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x318bfe1c scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3383e839 scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x37a9a476 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3caed531 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3e05717a scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x428726e3 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4db23bd7 scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x54759e8c scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5499f180 scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x55688aee scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56987c01 scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5a821fbe scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5be25204 scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5ed98237 scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x60075f41 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6088be22 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x63980f50 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x64bfd76b scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x66339ccf scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6caef211 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x75d6ab38 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x75f5b1c7 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7837506a scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7cd9a673 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7d523387 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x83593e06 scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x85362c8f scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x85fc6fbf scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x89ca31bb scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x90305cd0 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x925626e7 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9d1ba463 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9dae3ca3 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9e653a00 scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9f2d8d7b scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa0d352a7 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1875f23 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa710683f scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa8ef3536 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad0c0820 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad8e0d86 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb07127a8 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb0edb5f6 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb292085b scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb5115dd4 __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xba8c618f scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbc6a1b20 scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbea02433 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc2d4fc7f scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc3c57293 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc8e3dc7b scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcc1e531d scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcdcbbf84 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd1ae2e31 scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd4097f72 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd7930513 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd9a0f056 __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe257e1cb __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe73e2f48 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf14fe582 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf4a2807e scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf71851d2 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf78d394d scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf7a4bdd6 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfbaa41e3 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0b1afda8 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0c3af442 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2dcbd788 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3bf71e15 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x66093bc2 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7f168d5b fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8e2ec00f scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa6b1b52b fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa8f9e58c fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd1c11468 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdf0d2fb0 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x01f46432 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x05e584ab sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0716874b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x07cf5209 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22515b42 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x233c32de scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x28d1a51c sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44c1a533 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x476d785d sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x47ec5d50 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d1d7978 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x53c7d8a7 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x738d015a sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8995bdc2 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb3072e73 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb52bff2d scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbc0cd24c sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0750527 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc32c3a26 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc6c97d12 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb0f2b29 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xda6cb668 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe8b7a5b0 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf148c089 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6941cff sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8792a7e sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7b4b8d94 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8c9ff979 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb11faa26 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xec8bd368 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf58ebd5b spi_schedule_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x19553b89 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x2252d544 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x39d632ee ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x414bc8c8 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x434a9c52 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x4a85c7a3 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x526e9d63 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x76d47098 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x7b483d7b ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x94bf8f97 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x9954a0ef ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xaa6ba7b3 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc8b4c8e4 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xebd7d115 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xfc2d44c6 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x6e3ae352 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x9cc7af21 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe58d9f82 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x2c15d905 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x5bfbbd07 lcd_device_register +EXPORT_SYMBOL drivers/video/display/display 0x9a6d1734 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0xb8ce3445 display_device_register +EXPORT_SYMBOL drivers/video/output 0x981267e1 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xd7be236d video_output_register +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x4f31353c svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x50d7252d svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x7cb0e95a svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x7e8bfcb6 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xd953ce69 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe21e2a4d svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf5401ed5 svga_tileblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x21453ed4 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x58e535b2 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x062d9e08 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xef7ea02d w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xf446dc42 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf8392f6c w1_unregister_family +EXPORT_SYMBOL fs/configfs/configfs 0x07f5a1f6 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x42f1e9a7 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x4895e7d7 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x5aaa49ff config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x6c76b45f configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xb91722ec config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xc4e317f1 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xce1dae86 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd49d55c9 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xe2ebdb58 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xe46e897c config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xee1ef136 configfs_unregister_subsystem +EXPORT_SYMBOL fs/jbd/jbd 0x03d7d74c journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0x07019b17 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x0ebdadbd journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x154724ac journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x193f02b5 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0x1cbb168b journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0x27762d65 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0x2c87a51d journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x33e2192a journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0x379d1800 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x383a7000 journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x38db7454 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x3ba0ac5a journal_start +EXPORT_SYMBOL fs/jbd/jbd 0x44e999e7 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x44ed17b0 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x488e823f journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x5dcaa946 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x6ac6f70b log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x6b37a25e journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x71b3ffd8 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x7b2a79ac journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x8b3803df journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x8f287fba journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x9271dc25 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x94a07a61 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x996715bb journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0xa07231b2 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0xa0810b10 journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xa11a77b2 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xad7c5fb1 journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0xbbfaaf1f journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0xce21bbea journal_create +EXPORT_SYMBOL fs/jbd/jbd 0xd9382e12 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0xdbebda08 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xdd987dfd journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0xe707338f journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0xe93332b0 journal_try_to_free_buffers +EXPORT_SYMBOL fs/lockd/lockd 0x3fdd4609 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/lockd/lockd 0xb329fb3c nlmsvc_ops +EXPORT_SYMBOL fs/mbcache 0x319c9391 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0x34f5d696 mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0x6c82a762 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0x85d471c2 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x8d262e31 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0xb3875f75 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0xc75f4be4 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xd9c696fe mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xf1604619 mb_cache_create +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x5698c313 nfsacl_decode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xfae701e2 nfsacl_encode +EXPORT_SYMBOL fs/nfsd/nfsd 0x1f573533 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0xdb389aec nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/xfs/xfs 0xde7f906c xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x9aabc564 crc16 +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x13c0c38e crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0x41bcd8b3 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x53e39259 register_8022_client +EXPORT_SYMBOL net/802/p8022 0xc95c953e unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0x47d4bb4d destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x8ec7e696 make_8023_client +EXPORT_SYMBOL net/802/psnap 0x36e48399 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x9b41867a register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x170b60a6 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0x1a1b1efa p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x26393168 p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0x2ec6ae53 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x2f989ecf p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x2fbaf88d p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0x37250af3 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x3789bf6c p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3dff9f96 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0x3f4045cc p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x3f7c7ffb p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x3fc48cb6 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x454e9d02 p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x506119a8 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x509f91d7 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x53b4a8cb p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x557aa023 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x5690e6fd p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x608bb33c p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0x6e97839b p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x74d80fcf p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x87444c8e p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x8a211320 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x8dbafd13 p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x8f8c227b p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x917bdb14 p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0x95577e26 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x97e0d934 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x99e3e214 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xaa3a2695 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0xb722ec7a p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xb923390a p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0xbaae6936 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xcbe8ebb7 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xcccde93c p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0xd19236c6 p9_create_tflush +EXPORT_SYMBOL net/9p/9pnet 0xd544d6f8 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0xd8e59790 p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0xdba4eba1 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xe0acfa7d p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xe10d48aa p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7c83b46 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xef86b845 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xf9042c16 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xf90d6e1c p9_create_tremove +EXPORT_SYMBOL net/appletalk/appletalk 0x1cc3145c alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x2429c97a atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x2fdf2aaf atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x9e35b2d6 aarp_send_ddp +EXPORT_SYMBOL net/bridge/bridge 0x6148be63 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x264a797c ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x27149afe ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4afed8e9 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x55082139 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x621cf22e ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa8ebd9e0 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xebb95e01 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf61c1e49 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf9d3bee6 ebt_do_table +EXPORT_SYMBOL net/ieee80211/ieee80211 0x021a1bd2 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x10459abd ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x26579aff ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x3ec88ca3 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4a54ef42 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x57814661 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6d81103f free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x76abd11b ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7a634dfb ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7af866ac ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x88c9ec84 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x93d988cf ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb26f37c7 ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb5ee1b91 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc4a4e1f7 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd6c6e21b ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd7577cf2 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd7ecd03f ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0xddd7d58c ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x0816f5e3 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x48e2df73 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x833c3d56 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x9a4f780e ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xa221de9c ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xd6663869 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ipv4/inet_lro 0x20526101 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x6497b43a lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x878191bd lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xab6076a2 lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0xc332868f lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xd3b529d1 lro_flush_all +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x20613138 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x20caa8db unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x4addf163 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x604398b9 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x660c425b register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x98e22ef7 ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x9d21c7ab ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa4b24e44 ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xb1a7b9bf register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xba731f9f register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd5fa44d0 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1219d1e4 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x85fd1c25 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa3446eab arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x676837de ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x6a87ce0c ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbbe9e590 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3f80702b nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6e76c87f nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7cfe91aa nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8de69103 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x96bf8534 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa88f0190 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcd0b8b48 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf57dc701 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x546e4ad7 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x93323152 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x04d0c4aa inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x0b779c3a inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x13c40dca inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x14eb1f94 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x1b6b0046 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x267743c6 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x29309d14 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x3861b05c ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x4534f03e inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x49d9a3eb nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x5882d62b inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x76869fe8 compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x798198ce ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x79b6d18d ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x9605623f rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x989f2f38 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x9ae8f8af ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x9c154ee2 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0xa1531d3a ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xaaad9372 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0xabb53dee ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbc4fb58b ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xbdb12f26 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xc75bfcb9 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xcc30859e inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd49fff35 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xd6f721de ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0xdfdd9067 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xebd06279 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x161dd091 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa7b57423 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xabd95d76 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xdbe1014a ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3241e7ba xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf5122788 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/llc/llc 0x01a10515 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x2835f586 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x4cf9fa73 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x556643e3 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL net/llc/llc 0x67e94264 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x68db9b1c llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x6df0cec3 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x86bb1870 llc_sap_find +EXPORT_SYMBOL net/mac80211/mac80211 0x024289b0 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x0a412ef3 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0a66c709 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x2628cb7e ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2ba873d0 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x38dad91a ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3f38aa06 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x586ea60c ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x604d0ab6 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x673c12c9 ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x73608f27 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x74c5d3fe ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x77b92e9d ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x7c991a5f ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x99e8578b ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9a084fe1 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x9ec5af99 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xa01bb7cc ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0xa0b5e946 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xa5d30f06 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xa6587f16 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xab04dde0 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb1d5b024 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb2f5cb0f __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xb6c6b65b __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc3ab3a7d sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0xcc14e13e ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xcd048edb ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe0d7edac ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xfd02c4b9 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x003ac427 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa5f6e66e __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x099f4f3b xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x28c0b417 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2c9c8fc6 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x74f83f40 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7bdc3950 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x7f1affd0 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x8432d784 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xaf15f90c xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xcbeada3e xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xcf073bfc xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf068dc09 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf776c323 xt_unregister_matches +EXPORT_SYMBOL net/rfkill/rfkill 0x1b597d37 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x47b14366 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0xab2a3c03 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0xc911f319 rfkill_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0e171786 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x122c9274 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24cc1a82 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2929ddda rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2adb06ea rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7323fcd0 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9040430c rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa8ca04f0 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb912032b rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbdb37e8b key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc19d3902 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcee226c6 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcfcba745 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd76f3452 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xde6d467c rxrpc_get_server_data_key +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1b4dba1f gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1b714dde gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2392a9b3 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x24e6fd31 make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x46a842db gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6d3280c6 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7965f35b svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb224debe gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc9dfbfbb gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xcb7ea8eb gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xdebbc5c5 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe6ce7840 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf179eb18 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf2d6e4d7 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8f8855a gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0199c643 xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02ac3840 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x04ca2dc2 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0da8d6c1 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x11235ff3 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x20b2ea61 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0x215de526 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0x22f9e748 rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x24a1323e rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x24e0d3d2 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2599afd3 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2698cceb xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x26ad9c3f __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2a0988bf rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2af71700 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e4a495a xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e832aad svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2f141366 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x310e37bc rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x36e97e8a svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x39529630 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3ce49d5a cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3df52f1e rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3fb69f95 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4093bf65 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x44e710fe rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4a6686ab xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53996c14 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x55a7c29a unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5669c467 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x581bdeec xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x58c42868 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5cab62b4 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5ccdfd0b put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6161dfed xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x624e838e rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x672c060f rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x69dafd0c read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6b66d7bc svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6be1ee23 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6ed187af rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x70207ca2 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x72019f36 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x74d93fe6 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x771f0f60 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x777f281c xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x79000632 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0x797bc61a svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7b9326f6 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7ea4e4d0 xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x83880b85 rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8401de0b rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8518dff3 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x860d47bc sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x87081a13 rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8ae9ce50 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8b1a0812 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8f081fe5 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x90f4a086 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x929ab214 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9395fc39 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x99bef14c rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9e19756d xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ea72c8f svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9f15c6f1 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5a20670 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb45c9f87 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb50a1134 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb95d7345 rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb9d6de52 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbd852e84 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbddc2cd4 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbe08bf6e svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc2e84d8d rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc5765e0a svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc5927a38 rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc71e4afd rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc7836c1f svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcadefe8d svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0xce5d40ab rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd036c2da rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd5aa7dbc rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdf8c590e svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe51eb304 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xea02ced5 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeabc24f0 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeb7af18e rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xece4537c svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xed1c4d23 svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf535d6e5 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xff4b007b rpc_clone_client +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1294d75b tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1a796982 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x204e336e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3e93b677 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4e796163 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x62e65297 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x7cf44567 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x8072f245 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x896dc7f7 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x8c952890 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbc8642c9 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xc0d20872 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xcf086cde tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xfc1f4c2e tipc_forward_buf2port +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x5055640a wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x5c58b044 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x6dca1b8a wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xd7c619f2 wiphy_register +EXPORT_SYMBOL sound/ac97_bus 0x2d9cfe27 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xefd90bc4 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-fm 0x5a3e4571 snd_seq_fm_init +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-simple 0xd5791cfd snd_seq_simple_init +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x296b99f2 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3411f809 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x66212d85 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x69ee7fd1 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x72a66eed snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x78644e31 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc84df378 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xedb33ec6 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x29c36a13 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xa06c32f3 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x02e3d70b snd_seq_instr_list_free +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x43c74dd9 snd_seq_instr_list_new +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x59ddd045 snd_seq_instr_event +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x60b39c96 snd_seq_instr_free_use +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x7b717608 snd_seq_instr_list_free_cond +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xc98993bc snd_seq_instr_find +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6c6f1a61 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x68b9bd07 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x998f2126 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9b1825a9 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc51650a snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd9381115 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xde2fd5a5 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe58d6519 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xebb191cc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x01ebca9b snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0bdf6db5 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x107bdf57 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x13ed1877 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x1d57ada2 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x23f6755c snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x27b5ebc2 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x27cd3b96 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x300929a0 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x31a213cf snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x33196303 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x3826c15e snd_device_free +EXPORT_SYMBOL sound/core/snd 0x3964eee0 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3bceeeba snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x3ef05516 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4f9c854a snd_card_register +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x5674381c snd_card_new +EXPORT_SYMBOL sound/core/snd 0x5ae54f40 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x5be0cee0 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x63748268 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x6473f39a snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x6576b978 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x6cbe8bf5 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x71fa0776 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x8363c4a4 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x93fcb6f9 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x977392b6 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x9c5d3ef5 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x9d5f9721 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x9efe4e06 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x9f852e44 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xabb81510 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xb213fe8b snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xb2b09164 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb35bf628 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0xbcd61c2a snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xc2e70fd0 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xd5efdbed snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xde7dcd87 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xe35b37ef snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xf5b5307a snd_cards +EXPORT_SYMBOL sound/core/snd 0xf6332702 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xfb259f12 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xfcb40feb snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd-hwdep 0x786c89e4 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x044cd797 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x4dc59eb1 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x84c58b0c snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x96f8897b snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd98f7a27 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x08a85810 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x0a4d074c snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x2502c4ae snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x261e8848 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x2af612d2 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x2c65dc6c snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x2dc077ce snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x2e9ef919 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x369c1a94 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x395e287f snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0x3e1cc22a snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x403b7a57 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x4947a1e1 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x5076bbaf snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x532a15f6 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x58f7da86 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x672aa32d snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x67fde92d snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ce38f07 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x750c9199 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x757a6304 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x7c5cec98 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x886b7ae6 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x89a31a56 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x8f012609 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x90151708 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x961d5c1a snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x9cf12b98 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x9fdea959 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xac9ccbad snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb0aa8b56 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xb79b866e snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xba026f43 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xba55dbf6 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xcbe22907 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd5292250 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xdb39e24d snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xe4eb4a6b snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xf123995c snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-rawmidi 0x02c28afe snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x16020394 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1dc08e09 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2dbc0b48 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3e1b9a05 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4431a2d6 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x45f589be snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5e9235bd snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x90747c11 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa2743bd2 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb06ff9c7 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc0913192 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc35883fa snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc7779595 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd08f89d4 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd4044c9d snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdf72fe8a snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-timer 0x09b1a22b snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x0ca959a3 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x4e1f688c snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x69f8d05b snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x6b6fea99 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x746f6ad6 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x7f3f193e snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x899ceb5b snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x9f2ac041 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xb96b37c3 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xc5482038 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xcff6eb06 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xe1328ad2 snd_timer_open +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x39271bf0 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x73c4c993 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfe618b58 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1380180c snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2f575c51 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3bfca60f snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8f59e936 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbfe77c03 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc531475c snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdbdc0d4f snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cadb14b snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cd3855a snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x21cc9067 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x68eee950 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x876bab98 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe53da1ce snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xeb818793 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1c12667 snd_vx_load_boot_image +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x501c13d3 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5f00628b snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x75839a3e snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9e570de8 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb1289c19 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcf658224 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x12026dec snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6dbef5b3 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x87a00717 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbc978826 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x29aaba70 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x925d60cd snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x11d42bad snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x6b522ed1 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x147556e6 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x328defc0 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x72b57462 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x771e24ed snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb715ab2c snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x14e04e4e snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x26b095c6 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2ea74f3b snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5359703c snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xeb3d5cb6 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xfebfea76 snd_i2c_bus_create +EXPORT_SYMBOL sound/oss/ac97_codec 0x099991f9 ac97_set_adc_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0x19548499 ac97_release_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0x4e34ccc6 ac97_alloc_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0x95c02bc6 ac97_set_dac_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0xa70e340e ac97_probe_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xbae4da72 ac97_read_proc +EXPORT_SYMBOL sound/oss/msnd 0x141fba4d msnd_fifo_read_io +EXPORT_SYMBOL sound/oss/msnd 0x180cefff msnd_fifo_free +EXPORT_SYMBOL sound/oss/msnd 0x335b8dbd msnd_unregister +EXPORT_SYMBOL sound/oss/msnd 0x340a3ddf msnd_init_queue +EXPORT_SYMBOL sound/oss/msnd 0x38203b1e msnd_enable_irq +EXPORT_SYMBOL sound/oss/msnd 0x679297db msnd_fifo_make_empty +EXPORT_SYMBOL sound/oss/msnd 0x68473da1 msnd_fifo_init +EXPORT_SYMBOL sound/oss/msnd 0x6fc8855b msnd_disable_irq +EXPORT_SYMBOL sound/oss/msnd 0x710284dc msnd_send_dsp_cmd +EXPORT_SYMBOL sound/oss/msnd 0x7451702c msnd_register +EXPORT_SYMBOL sound/oss/msnd 0x80504a66 msnd_fifo_write_io +EXPORT_SYMBOL sound/oss/msnd 0x9853d449 msnd_fifo_alloc +EXPORT_SYMBOL sound/oss/msnd 0xc8646b7f msnd_fifo_write +EXPORT_SYMBOL sound/oss/msnd 0xca41668a msnd_fifo_read +EXPORT_SYMBOL sound/oss/msnd 0xfc2dc144 msnd_send_word +EXPORT_SYMBOL sound/oss/msnd 0xfe24b29e msnd_upload_host +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1ac9ff99 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x39445bfa snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3bf03b01 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4966826e snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x555281f4 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6c9edbf0 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6e2110c1 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6e277d4d snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6efc857a snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x71a20cc0 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7f848364 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa702bf3a snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb7ac4373 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd002921e snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdd1b7197 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x8381b655 snd_ak4531_mixer +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x01d67cfb snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x59e7a327 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6c0dba58 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x977622d6 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9c488d21 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb6024d50 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xda37455c snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdf24f880 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfe049609 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x2b736fba snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xd522f54f snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xd9b3b280 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x12591b74 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x29cc8c72 snd_trident_synth_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x315dff27 snd_trident_synth_alloc +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x391ebe49 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x3e857399 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x48c6ad22 snd_trident_synth_copy_from_user +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd28d8d5c snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf2621667 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/sound_firmware 0x39e3dd23 mod_firmware_load +EXPORT_SYMBOL sound/soundcore 0x417befe2 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x76380444 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x852a457d register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x880f654c register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xb33ed37a sound_class +EXPORT_SYMBOL sound/soundcore 0xc235d6fd register_sound_midi +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x42bfc352 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x53c9e75b snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5bc8fe13 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x62414860 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x94d10806 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xfd0a42de snd_emux_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x01e234f2 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0895e1a9 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x15cfaea4 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2ba29873 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x45c2abb1 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d2130f4 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xab810f2e __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb2676a58 snd_util_mem_free +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x60cd860e snd_usb_create_midi_interface +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usb-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x000cf454 find_get_page +EXPORT_SYMBOL vmlinux 0x0021e6b3 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x0035447e pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x0058bcca sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x009a0dca drm_fasync +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x010404ac proc_bus +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0132f581 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x01420cd9 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x016bf552 iomem_resource +EXPORT_SYMBOL vmlinux 0x0177c220 is_bad_inode +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01ce28fc __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x01f67911 ___copy_in_user +EXPORT_SYMBOL vmlinux 0x01f9b95f simple_release_fs +EXPORT_SYMBOL vmlinux 0x0211210b tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x021451cb vfs_readdir +EXPORT_SYMBOL vmlinux 0x021a1475 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x02270e46 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02b62007 bio_init +EXPORT_SYMBOL vmlinux 0x02c046d5 dma_supported +EXPORT_SYMBOL vmlinux 0x02ce4cb3 mem_map +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02dfe24e sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x02f354c5 usb_driver_release_interface +EXPORT_SYMBOL vmlinux 0x02fbfda1 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x031ee678 xor_niagara_2 +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03ea9cf3 sun4v_hvapi_get +EXPORT_SYMBOL vmlinux 0x0415247c proc_dointvec +EXPORT_SYMBOL vmlinux 0x041a0322 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043b8483 __kfifo_get +EXPORT_SYMBOL vmlinux 0x043d491e flush_dcache_page +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04a8af75 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x04c969db should_remove_suid +EXPORT_SYMBOL vmlinux 0x04cbf84b simple_rename +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x0512a7bb tcp_prot +EXPORT_SYMBOL vmlinux 0x05186ca4 flush_icache_range +EXPORT_SYMBOL vmlinux 0x052735c4 elv_rb_add +EXPORT_SYMBOL vmlinux 0x05335dab vfs_llseek +EXPORT_SYMBOL vmlinux 0x0560fd8f atomic_sub_ret +EXPORT_SYMBOL vmlinux 0x05960aca elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x05e7e6c6 may_umount_tree +EXPORT_SYMBOL vmlinux 0x05f2f2f0 lookup_one_len +EXPORT_SYMBOL vmlinux 0x060bec6d fget +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x062aba95 mempool_free +EXPORT_SYMBOL vmlinux 0x06524f0a pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x065528ab alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x0671b940 netdev_features_change +EXPORT_SYMBOL vmlinux 0x067a36ab netif_rx_ni +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0693ba1e pci_assign_resource +EXPORT_SYMBOL vmlinux 0x06a90afb of_get_next_child +EXPORT_SYMBOL vmlinux 0x06c7c9ae find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x06cb34e5 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x06e4068b set_blocksize +EXPORT_SYMBOL vmlinux 0x06f77798 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07017a39 inet_bind +EXPORT_SYMBOL vmlinux 0x0702e943 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x0713888e drop_super +EXPORT_SYMBOL vmlinux 0x071439ae inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x073b17d4 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x0754bdbd gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x0757cce1 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b94109 dentry_open +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d7f596 init_special_inode +EXPORT_SYMBOL vmlinux 0x0809fcbd qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x0826b0dc __flush_dcache_range +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0834a322 usb_hcd_pci_shutdown +EXPORT_SYMBOL vmlinux 0x0836695c drm_sman_takedown +EXPORT_SYMBOL vmlinux 0x084079e1 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x0848b5ef generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x084cb468 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x084e0c47 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x08726599 cpu_online_map +EXPORT_SYMBOL vmlinux 0x088e55af pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x089caa47 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x08c99682 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x08ca4054 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x090235c2 ldc_map_single +EXPORT_SYMBOL vmlinux 0x092b007a sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x097aea70 skb_copy +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0994db0a i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x09b068d6 register_con_driver +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09fedc79 unregister_netdev +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a919e8e fd_install +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0aa9bff3 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x0ab3626d pci_get_class +EXPORT_SYMBOL vmlinux 0x0abfc78c sys_getpid +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0af94262 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1cbb77 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x0b21a65c pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x0b6a81f9 pci_find_slot +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7ebb66 __page_symlink +EXPORT_SYMBOL vmlinux 0x0b8b5746 seq_printf +EXPORT_SYMBOL vmlinux 0x0bcaa98f sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x0bcb6703 tcp_close +EXPORT_SYMBOL vmlinux 0x0bceb605 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x0be5f4ca pci_get_device +EXPORT_SYMBOL vmlinux 0x0bf5c0e8 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x0c45ea66 unlock_rename +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c68e309 vio_control_pkt_engine +EXPORT_SYMBOL vmlinux 0x0c7ba7a7 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x0c857b87 arp_find +EXPORT_SYMBOL vmlinux 0x0c8a2861 generic_read_dir +EXPORT_SYMBOL vmlinux 0x0ccff2a9 proc_root +EXPORT_SYMBOL vmlinux 0x0cd54303 vfs_quota_on +EXPORT_SYMBOL vmlinux 0x0cee28ce find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x0d0e87c0 del_gendisk +EXPORT_SYMBOL vmlinux 0x0d2a44a9 i2c_attach_client +EXPORT_SYMBOL vmlinux 0x0d2cddc4 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x0d4bd0bb rtnl_notify +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d729c76 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x0d7c9bc5 tl0_solaris +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0d91bb84 sbusfb_compat_ioctl +EXPORT_SYMBOL vmlinux 0x0d9bcbc4 register_netdev +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0ddaa3a2 get_super +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0e580aa2 clocksource_register +EXPORT_SYMBOL vmlinux 0x0e62cd70 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x0e83e689 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x0eb73b4f ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x0f192c48 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x0f1ef871 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x0f265553 verify_compat_iovec +EXPORT_SYMBOL vmlinux 0x0f378a1e ___copy_from_user +EXPORT_SYMBOL vmlinux 0x0fda3a90 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x0feba9ff dev_alloc_name +EXPORT_SYMBOL vmlinux 0x100916dd backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x1013dafa copy_io_context +EXPORT_SYMBOL vmlinux 0x1039a14e i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x103aa286 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x1058b001 sbus_set_sbus64 +EXPORT_SYMBOL vmlinux 0x105966a5 d_find_alias +EXPORT_SYMBOL vmlinux 0x106fdc04 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x107d2f02 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x10902bf7 insb +EXPORT_SYMBOL vmlinux 0x10a556e2 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x10d346c7 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x1103bed7 __invalidate_device +EXPORT_SYMBOL vmlinux 0x113d5997 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x118aad0a follow_up +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a046ce prom_palette +EXPORT_SYMBOL vmlinux 0x11b4e89f tcp_child_process +EXPORT_SYMBOL vmlinux 0x11bd12ef handle_sysrq +EXPORT_SYMBOL vmlinux 0x11ee9b97 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x12301a28 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x123c426f ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x126185c1 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x1262ce00 key_validate +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x127b3650 input_allocate_device +EXPORT_SYMBOL vmlinux 0x127b9b13 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x128e4ef5 module_put +EXPORT_SYMBOL vmlinux 0x12b1316d km_policy_notify +EXPORT_SYMBOL vmlinux 0x12d09a67 sun4v_hvapi_unregister +EXPORT_SYMBOL vmlinux 0x12ea337e outsb +EXPORT_SYMBOL vmlinux 0x130742e6 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x13880a9a dput +EXPORT_SYMBOL vmlinux 0x1390df1e remove_proc_entry +EXPORT_SYMBOL vmlinux 0x13a5385b __sk_dst_check +EXPORT_SYMBOL vmlinux 0x13ae02b6 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x13b0bd1d sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x14136442 bdevname +EXPORT_SYMBOL vmlinux 0x1431b658 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x144ed3a1 dev_base_lock +EXPORT_SYMBOL vmlinux 0x1456309a sys_geteuid +EXPORT_SYMBOL vmlinux 0x1492bd8b vfs_write +EXPORT_SYMBOL vmlinux 0x14a483e9 init_task +EXPORT_SYMBOL vmlinux 0x14ca47cc ldc_read +EXPORT_SYMBOL vmlinux 0x14d2be30 skb_dequeue +EXPORT_SYMBOL vmlinux 0x14daa83a neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x151f69d5 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x15290de8 eth_header_parse +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155b7293 read_cache_page +EXPORT_SYMBOL vmlinux 0x1564377b ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x15eafa50 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x162e1a08 arp_tbl +EXPORT_SYMBOL vmlinux 0x163d571b sockfd_lookup +EXPORT_SYMBOL vmlinux 0x16479e8f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1677ec95 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1684364c __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x168a8896 of_match_device +EXPORT_SYMBOL vmlinux 0x16a8283d put_disk +EXPORT_SYMBOL vmlinux 0x16ac7047 update_region +EXPORT_SYMBOL vmlinux 0x16b4cad6 devm_ioremap +EXPORT_SYMBOL vmlinux 0x16d1d078 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x16d713aa tc_classify_compat +EXPORT_SYMBOL vmlinux 0x16e055bf i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x16e6bf5b unregister_qdisc +EXPORT_SYMBOL vmlinux 0x16e911d4 down_write +EXPORT_SYMBOL vmlinux 0x16f32e96 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x16f40624 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x176ab54b show_regs +EXPORT_SYMBOL vmlinux 0x1790749f sys_getuid +EXPORT_SYMBOL vmlinux 0x1791fcd3 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e811d5 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x17efde5a of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x17f1eb0d unlock_new_inode +EXPORT_SYMBOL vmlinux 0x1821a0cf sbus_unmap_single +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18505e3e input_inject_event +EXPORT_SYMBOL vmlinux 0x18878da0 mdesc_next_arc +EXPORT_SYMBOL vmlinux 0x18a1bb68 pci_map_rom +EXPORT_SYMBOL vmlinux 0x18acbae1 udp_prot +EXPORT_SYMBOL vmlinux 0x18ae7f8f secpath_dup +EXPORT_SYMBOL vmlinux 0x18b6d2a2 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x18d6b5b2 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x18e28603 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x18ec72b6 of_find_property +EXPORT_SYMBOL vmlinux 0x19069ff5 d_path +EXPORT_SYMBOL vmlinux 0x1911b22b tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x191c5c39 __elv_add_request +EXPORT_SYMBOL vmlinux 0x19301ef9 uart_match_port +EXPORT_SYMBOL vmlinux 0x1935350c drm_ati_pcigart_cleanup +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1966bf16 down_read_trylock +EXPORT_SYMBOL vmlinux 0x1978234c key_unlink +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL vmlinux 0x19a5b17a locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x19bc9f9c drm_idlelock_release +EXPORT_SYMBOL vmlinux 0x19bd20a8 set_user_nice +EXPORT_SYMBOL vmlinux 0x19c6dc5c vfs_readlink +EXPORT_SYMBOL vmlinux 0x1a0e4aed sock_wake_async +EXPORT_SYMBOL vmlinux 0x1a24e564 bio_put +EXPORT_SYMBOL vmlinux 0x1a2db4db of_platform_bus_type +EXPORT_SYMBOL vmlinux 0x1a35bcbc VISenter +EXPORT_SYMBOL vmlinux 0x1a5b8bbf drm_pci_free +EXPORT_SYMBOL vmlinux 0x1aaa81ee xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x1ac3c184 give_up_console +EXPORT_SYMBOL vmlinux 0x1acc550f tcf_hash_create +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad15b1c pci_enable_device +EXPORT_SYMBOL vmlinux 0x1ad24fb9 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x1ad742c0 __napi_schedule +EXPORT_SYMBOL vmlinux 0x1ad9f95a prom_finddevice +EXPORT_SYMBOL vmlinux 0x1ae6b745 devm_request_irq +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1af8edb4 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b29ade5 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x1b29b615 ldc_copy +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b65346a tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x1b83ddfe sock_no_bind +EXPORT_SYMBOL vmlinux 0x1b94cb68 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bc5cebb cpu_possible_map +EXPORT_SYMBOL vmlinux 0x1bce0a7d neigh_ifdown +EXPORT_SYMBOL vmlinux 0x1bf0f43a drm_core_get_reg_ofs +EXPORT_SYMBOL vmlinux 0x1c0ff904 block_write_end +EXPORT_SYMBOL vmlinux 0x1c201014 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1ca0092a qdisc_reset +EXPORT_SYMBOL vmlinux 0x1cbcf6c6 usb_put_dev +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce06dd4 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x1d08b69d pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0x1d237a30 clear_user_page +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d5e81be sbusfb_mmap_helper +EXPORT_SYMBOL vmlinux 0x1d60727a filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x1d77c8e4 bio_pair_release +EXPORT_SYMBOL vmlinux 0x1d8adc7a cdev_alloc +EXPORT_SYMBOL vmlinux 0x1d900d71 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x1d908d7e genl_sock +EXPORT_SYMBOL vmlinux 0x1d9548d5 subsystem_register +EXPORT_SYMBOL vmlinux 0x1da1af26 iget_locked +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de08ad4 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1e026bd2 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x1e0abd31 input_register_device +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6e6dba usb_get_urb +EXPORT_SYMBOL vmlinux 0x1eb7debc solaris_syscall +EXPORT_SYMBOL vmlinux 0x1ebcf2c4 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x1edc9598 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x1f532e4e usb_register_dev +EXPORT_SYMBOL vmlinux 0x1f6dc23a invalidate_partition +EXPORT_SYMBOL vmlinux 0x1f710c98 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x1f7cc628 mempool_create +EXPORT_SYMBOL vmlinux 0x1fae7a0b wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x1fc8cd4d linux_sparc_syscall +EXPORT_SYMBOL vmlinux 0x1fd2ec19 input_register_handler +EXPORT_SYMBOL vmlinux 0x1fdbde5b compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20117e19 seq_open +EXPORT_SYMBOL vmlinux 0x2057b408 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0x20645642 drm_debug +EXPORT_SYMBOL vmlinux 0x208ce54a sys_ioctl +EXPORT_SYMBOL vmlinux 0x2094ef88 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x20d56e22 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x211c952e usb_get_status +EXPORT_SYMBOL vmlinux 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL vmlinux 0x21727c07 get_fb_unmapped_area +EXPORT_SYMBOL vmlinux 0x21741943 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x217b808f xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x21e08dee vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x22055173 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x221aaa66 blk_init_tags +EXPORT_SYMBOL vmlinux 0x223a027e vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x226eddbc dev_get_flags +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x229d25aa cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22cd6bd1 usb_add_hcd +EXPORT_SYMBOL vmlinux 0x22d754d0 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x230b1a81 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x234638a1 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x23701bc7 pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad8bbf ns_to_timespec +EXPORT_SYMBOL vmlinux 0x23b331a8 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x23e11a19 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2442e07a dev_get_by_index +EXPORT_SYMBOL vmlinux 0x245bb1bb nf_ct_attach +EXPORT_SYMBOL vmlinux 0x2465a42e block_write_begin +EXPORT_SYMBOL vmlinux 0x249e893f ebus_dma_prepare +EXPORT_SYMBOL vmlinux 0x24bd930a outsl +EXPORT_SYMBOL vmlinux 0x24c40c71 bmap +EXPORT_SYMBOL vmlinux 0x24c5597f bio_alloc +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24f0d8cd sk_stream_error +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x25283c01 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x2564b90a down_trylock +EXPORT_SYMBOL vmlinux 0x2572f61e dev_get_by_name +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2595be3f sock_map_fd +EXPORT_SYMBOL vmlinux 0x25a4553a rtnl_create_link +EXPORT_SYMBOL vmlinux 0x25ba121c mempool_resize +EXPORT_SYMBOL vmlinux 0x25c3dbca prom_nextprop +EXPORT_SYMBOL vmlinux 0x25c671f6 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x25f466c3 vc_lock_resize +EXPORT_SYMBOL vmlinux 0x25f8a835 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x25fa6f17 wait_for_completion +EXPORT_SYMBOL vmlinux 0x262eea91 __up_read +EXPORT_SYMBOL vmlinux 0x26441c03 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x2666296d mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x267fc65b __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x26cf0190 add_to_page_cache +EXPORT_SYMBOL vmlinux 0x26cf243a sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x2737575e xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x273f6dd7 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x2743b8fd set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x27553eb4 datagram_poll +EXPORT_SYMBOL vmlinux 0x2795915c kill_anon_super +EXPORT_SYMBOL vmlinux 0x27b47413 bio_split_pool +EXPORT_SYMBOL vmlinux 0x27b81daa xor_niagara_3 +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27e51f4d of_match_node +EXPORT_SYMBOL vmlinux 0x27ee3775 __init_rwsem +EXPORT_SYMBOL vmlinux 0x27f424c8 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x27fffe35 __getblk +EXPORT_SYMBOL vmlinux 0x280eb280 dquot_release +EXPORT_SYMBOL vmlinux 0x282106ef pci_choose_state +EXPORT_SYMBOL vmlinux 0x2843e71f proc_clear_tty +EXPORT_SYMBOL vmlinux 0x2859754d tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x286fcb70 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x288ccde0 neigh_update +EXPORT_SYMBOL vmlinux 0x2891a687 i2c_master_send +EXPORT_SYMBOL vmlinux 0x289bb5c3 security_inode_permission +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28ebccff ilookup +EXPORT_SYMBOL vmlinux 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL vmlinux 0x2941e94e nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29786280 noop_qdisc +EXPORT_SYMBOL vmlinux 0x297b9111 register_chrdev +EXPORT_SYMBOL vmlinux 0x298b3a6a nf_getsockopt +EXPORT_SYMBOL vmlinux 0x298cbe4f __inode_dir_notify +EXPORT_SYMBOL vmlinux 0x2996e059 __find_get_block +EXPORT_SYMBOL vmlinux 0x29c35eca posix_test_lock +EXPORT_SYMBOL vmlinux 0x29c49d4d kernel_sendpage +EXPORT_SYMBOL vmlinux 0x29dc4be7 of_console_options +EXPORT_SYMBOL vmlinux 0x29e8c8c0 bdi_init +EXPORT_SYMBOL vmlinux 0x2a0ae48c eth_type_trans +EXPORT_SYMBOL vmlinux 0x2a1c499c block_truncate_page +EXPORT_SYMBOL vmlinux 0x2a515ce0 file_fsync +EXPORT_SYMBOL vmlinux 0x2a588558 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x2a5fd988 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x2aba0660 of_dev_get +EXPORT_SYMBOL vmlinux 0x2ac93783 vfs_lstat +EXPORT_SYMBOL vmlinux 0x2af37272 fb_pan_display +EXPORT_SYMBOL vmlinux 0x2afc7514 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x2b3cb9f0 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x2b5a1270 fb_find_mode +EXPORT_SYMBOL vmlinux 0x2b5e1731 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x2b63ae5b blk_sync_queue +EXPORT_SYMBOL vmlinux 0x2b846743 request_key_async +EXPORT_SYMBOL vmlinux 0x2b91e517 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x2b937a6f __ret_efault +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb823ff simple_transaction_read +EXPORT_SYMBOL vmlinux 0x2bbd9c0b touch_atime +EXPORT_SYMBOL vmlinux 0x2bbf1782 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x2beadd83 of_device_unregister +EXPORT_SYMBOL vmlinux 0x2c1dc51e vfs_follow_link +EXPORT_SYMBOL vmlinux 0x2c25e0a6 udplite_get_port +EXPORT_SYMBOL vmlinux 0x2c305092 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x2c37ae92 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x2c4bfb08 bio_clone +EXPORT_SYMBOL vmlinux 0x2c7c7f62 netif_device_detach +EXPORT_SYMBOL vmlinux 0x2caeedde elv_dequeue_request +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2cf20783 inode_init_once +EXPORT_SYMBOL vmlinux 0x2d0eb3cc ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x2d12f904 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x2d5987a2 usb_hcd_pci_remove +EXPORT_SYMBOL vmlinux 0x2d69aeff idr_remove +EXPORT_SYMBOL vmlinux 0x2d9c53ed inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x2daa7939 xor_vis_4 +EXPORT_SYMBOL vmlinux 0x2db86464 send_sig_info +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2e658bfe get_user_pages +EXPORT_SYMBOL vmlinux 0x2e6ceb35 pci_match_id +EXPORT_SYMBOL vmlinux 0x2e904753 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2eb23d88 generic_write_end +EXPORT_SYMBOL vmlinux 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL vmlinux 0x2eba3ea7 ldc_unmap +EXPORT_SYMBOL vmlinux 0x2f53d1bb ida_destroy +EXPORT_SYMBOL vmlinux 0x2fb30acd drm_get_resource_start +EXPORT_SYMBOL vmlinux 0x2fcd6e8f remote_llseek +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2ff86d16 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x2ff9d19b vio_register_driver +EXPORT_SYMBOL vmlinux 0x300b2000 of_find_in_proplist +EXPORT_SYMBOL vmlinux 0x3042f3a3 rtrap +EXPORT_SYMBOL vmlinux 0x3074f033 drm_order +EXPORT_SYMBOL vmlinux 0x3084617c con_is_bound +EXPORT_SYMBOL vmlinux 0x30af1c6e mntput_no_expire +EXPORT_SYMBOL vmlinux 0x30b83a6f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x313307e0 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3175656c dcache_readdir +EXPORT_SYMBOL vmlinux 0x318e0e8c inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x31903f6a call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31ba3e7e __f_setown +EXPORT_SYMBOL vmlinux 0x31c3fcbc d_alloc +EXPORT_SYMBOL vmlinux 0x31db8a4a dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x321c20fb dma_set_mask +EXPORT_SYMBOL vmlinux 0x322d6f63 framebuffer_release +EXPORT_SYMBOL vmlinux 0x323222ba mutex_unlock +EXPORT_SYMBOL vmlinux 0x323cefec copy_from_user_fixup +EXPORT_SYMBOL vmlinux 0x32624a56 compat_sys_ioctl +EXPORT_SYMBOL vmlinux 0x326ba0c4 km_report +EXPORT_SYMBOL vmlinux 0x328ac856 pci_dma_supported +EXPORT_SYMBOL vmlinux 0x32ba7a54 alloc_file +EXPORT_SYMBOL vmlinux 0x32f1c610 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x3316793d pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x33396b9f pci_find_device +EXPORT_SYMBOL vmlinux 0x333b2e59 i2c_smbus_write_quick +EXPORT_SYMBOL vmlinux 0x334d16d7 mpage_writepages +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x34015730 d_move +EXPORT_SYMBOL vmlinux 0x3424c87b pci_unmap_sg +EXPORT_SYMBOL vmlinux 0x34490b1f pci_select_bars +EXPORT_SYMBOL vmlinux 0x34796de9 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x348747f7 bdput +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a57ece generic_osync_inode +EXPORT_SYMBOL vmlinux 0x34a73eab blk_start_queueing +EXPORT_SYMBOL vmlinux 0x34da56ad pci_get_slot +EXPORT_SYMBOL vmlinux 0x34e8e918 elv_rb_del +EXPORT_SYMBOL vmlinux 0x34f9e7d5 idr_destroy +EXPORT_SYMBOL vmlinux 0x3502bcc7 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x355157cd pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x356486ad sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x35848064 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x358a1bb6 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x359103fe bioset_create +EXPORT_SYMBOL vmlinux 0x35cdb1c6 ebus_dma_addr +EXPORT_SYMBOL vmlinux 0x35eeb355 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x3605fe1c usb_unlink_urb +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x363c05ed drm_ati_pcigart_init +EXPORT_SYMBOL vmlinux 0x366c7f62 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x36789ede fb_show_logo +EXPORT_SYMBOL vmlinux 0x368c5b88 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x36a89b01 ida_get_new +EXPORT_SYMBOL vmlinux 0x36d8d886 vfs_writev +EXPORT_SYMBOL vmlinux 0x36e47222 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x36e50ebe __grab_cache_page +EXPORT_SYMBOL vmlinux 0x36eefda1 of_device_register +EXPORT_SYMBOL vmlinux 0x37074bb4 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x370de572 filemap_flush +EXPORT_SYMBOL vmlinux 0x370e23c3 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x3711125c qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x37356ee0 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x37a39f39 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c63e95 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x37cdd55a tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x37f15683 lease_modify +EXPORT_SYMBOL vmlinux 0x3832bd0a tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x387b0092 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x392ebefb put_fs_struct +EXPORT_SYMBOL vmlinux 0x3933e5e4 deny_write_access +EXPORT_SYMBOL vmlinux 0x3957e8ff __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3997aa2e cfb_copyarea +EXPORT_SYMBOL vmlinux 0x39da9ef9 lock_may_read +EXPORT_SYMBOL vmlinux 0x3a18b967 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a66f8b8 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x3a6b09a1 bio_free +EXPORT_SYMBOL vmlinux 0x3a8a28a1 bio_map_kern +EXPORT_SYMBOL vmlinux 0x3a9343c0 unload_nls +EXPORT_SYMBOL vmlinux 0x3a9aa54d clear_bit +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ae831b6 kref_init +EXPORT_SYMBOL vmlinux 0x3aed46b6 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x3aff31e1 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x3b17b71d idr_find +EXPORT_SYMBOL vmlinux 0x3b3fe8cb prom_getsibling +EXPORT_SYMBOL vmlinux 0x3b419a02 igrab +EXPORT_SYMBOL vmlinux 0x3b5f8950 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x3b620774 f_setown +EXPORT_SYMBOL vmlinux 0x3b78fd30 prepare_binprm +EXPORT_SYMBOL vmlinux 0x3b7a56fb mark_page_accessed +EXPORT_SYMBOL vmlinux 0x3b865b83 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x3ba183de i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3c084dd6 skb_seq_read +EXPORT_SYMBOL vmlinux 0x3c6f3137 usb_init_urb +EXPORT_SYMBOL vmlinux 0x3c7f5113 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x3caaf291 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cd338a2 i2c_release_client +EXPORT_SYMBOL vmlinux 0x3cdfceb5 set_device_ro +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cee5543 do_splice_from +EXPORT_SYMBOL vmlinux 0x3d1d8c77 unlock_super +EXPORT_SYMBOL vmlinux 0x3d27237c skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x3d2ecbf8 pci_map_single +EXPORT_SYMBOL vmlinux 0x3d68bd4b flow_cache_genid +EXPORT_SYMBOL vmlinux 0x3d812b76 netpoll_setup +EXPORT_SYMBOL vmlinux 0x3d868bb7 vfs_mknod +EXPORT_SYMBOL vmlinux 0x3d86ba15 vfs_create +EXPORT_SYMBOL vmlinux 0x3d978b30 usb_control_msg +EXPORT_SYMBOL vmlinux 0x3d98e0c4 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x3da420e3 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x3dabbd15 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dedc23f usb_reset_configuration +EXPORT_SYMBOL vmlinux 0x3df8556f netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x3df9c4d7 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e6caebd add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x3e6cb1ef compute_creds +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee2ecc7 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x3f1d668f open_exec +EXPORT_SYMBOL vmlinux 0x3f3db773 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5533cb sys_call_table32 +EXPORT_SYMBOL vmlinux 0x3f7e30cd elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3facbf40 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x3fb9f597 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fe1d80a udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x403b8782 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406666ca pci_bus_type +EXPORT_SYMBOL vmlinux 0x4066b1f7 file_permission +EXPORT_SYMBOL vmlinux 0x4075fdbc wireless_spy_update +EXPORT_SYMBOL vmlinux 0x409e9351 atomic64_sub_ret +EXPORT_SYMBOL vmlinux 0x4106c2a7 complete_request_key +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x411cff25 pci_set_master +EXPORT_SYMBOL vmlinux 0x412ddc0c dcache_lock +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4160d5f6 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x417c9484 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41ac4793 groups_free +EXPORT_SYMBOL vmlinux 0x41c8c51c tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x41d86502 input_release_device +EXPORT_SYMBOL vmlinux 0x41f5feaf put_io_context +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x425af4c8 drm_getsarea +EXPORT_SYMBOL vmlinux 0x425faacb __downgrade_write +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42acbf72 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x42b674a1 ilookup5 +EXPORT_SYMBOL vmlinux 0x42bc7e37 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43108474 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x435d44b8 __devm_request_region +EXPORT_SYMBOL vmlinux 0x4364c5b5 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x438791e2 posix_lock_file +EXPORT_SYMBOL vmlinux 0x439090b9 kernel_thread +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43bea045 auxio_register +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x446b7e1e __alloc_skb +EXPORT_SYMBOL vmlinux 0x44782a62 d_alloc_root +EXPORT_SYMBOL vmlinux 0x447cceea tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x4480e55e find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x4483d104 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x448a58ca dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x448c930c dev_remove_pack +EXPORT_SYMBOL vmlinux 0x44b7f74a do_munmap +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c0548b uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x44c214d1 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x44c54539 simple_statfs +EXPORT_SYMBOL vmlinux 0x44e60730 make_EII_client +EXPORT_SYMBOL vmlinux 0x44f5eb96 drm_poll +EXPORT_SYMBOL vmlinux 0x454cbd8e mdesc_release +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x45a0c6b7 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x45cc0502 free_task +EXPORT_SYMBOL vmlinux 0x45cda74c ioport_resource +EXPORT_SYMBOL vmlinux 0x45eed929 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x46145311 sbus_bus_type +EXPORT_SYMBOL vmlinux 0x462b5677 pci_dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x468075a8 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x469817fb kernel_listen +EXPORT_SYMBOL vmlinux 0x46d430ff vfs_rename +EXPORT_SYMBOL vmlinux 0x46ded16e ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x4719ba4e kfifo_free +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475364eb register_key_type +EXPORT_SYMBOL vmlinux 0x476e58f2 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x479419fa down_read +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x48617e09 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x486c357a uart_get_divisor +EXPORT_SYMBOL vmlinux 0x48a02290 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x48f9f12d complete_all +EXPORT_SYMBOL vmlinux 0x492de346 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x494ae369 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x4969c1b2 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x49782bdb call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x497fb2fc block_read_full_page +EXPORT_SYMBOL vmlinux 0x4995607b tcf_action_exec +EXPORT_SYMBOL vmlinux 0x49a87837 sock_create_kern +EXPORT_SYMBOL vmlinux 0x49bc691e kmem_cache_name +EXPORT_SYMBOL vmlinux 0x49cf21d3 write_one_page +EXPORT_SYMBOL vmlinux 0x49e79328 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x49ebc418 inode_setattr +EXPORT_SYMBOL vmlinux 0x4a15ae23 prom_node_has_property +EXPORT_SYMBOL vmlinux 0x4a1afd4c generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x4a34a600 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a50086c uart_resume_port +EXPORT_SYMBOL vmlinux 0x4aa30c61 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x4b00cc66 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x4b184796 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x4b1b7549 pci_request_region +EXPORT_SYMBOL vmlinux 0x4b2c889f serio_reconnect +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b80f2a7 pci_save_state +EXPORT_SYMBOL vmlinux 0x4b85a269 end_dequeued_request +EXPORT_SYMBOL vmlinux 0x4b8cfbc1 usb_sg_init +EXPORT_SYMBOL vmlinux 0x4b9006c3 __serio_register_port +EXPORT_SYMBOL vmlinux 0x4b9f3684 kfifo_init +EXPORT_SYMBOL vmlinux 0x4baf2154 usb_reset_device +EXPORT_SYMBOL vmlinux 0x4c04b9d1 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c260de2 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x4c312b03 mod_timer +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c6d1763 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x4c6f3e0b tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x4c9e48d1 blk_unplug +EXPORT_SYMBOL vmlinux 0x4ca2ec22 tcp_poll +EXPORT_SYMBOL vmlinux 0x4cac1afb devm_iounmap +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbda2bf prom_setprop +EXPORT_SYMBOL vmlinux 0x4cbe9650 netif_rx +EXPORT_SYMBOL vmlinux 0x4cdedbc3 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x4ce385e4 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x4cf7c19b mpage_readpages +EXPORT_SYMBOL vmlinux 0x4d3df865 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x4d481436 sparc64_valid_addr_bitmap +EXPORT_SYMBOL vmlinux 0x4db10ffc pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x4db62ae7 sock_release +EXPORT_SYMBOL vmlinux 0x4dc233cc eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x4dc878ba nf_register_hooks +EXPORT_SYMBOL vmlinux 0x4dd792e4 d_alloc_name +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e07f4c8 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e41c847 gen_pool_create +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e991e18 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ed03247 ebus_dma_enable +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f445bcf grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x4f5651c3 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x4f56f7e5 alloc_disk +EXPORT_SYMBOL vmlinux 0x4f6da987 usb_sg_cancel +EXPORT_SYMBOL vmlinux 0x4f6de73d udp_poll +EXPORT_SYMBOL vmlinux 0x4f712a9c __ip_select_ident +EXPORT_SYMBOL vmlinux 0x4f918bbb kthread_stop +EXPORT_SYMBOL vmlinux 0x4fc283fb vfs_link +EXPORT_SYMBOL vmlinux 0x4fd6065b pskb_copy +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50551a0b vfs_unlink +EXPORT_SYMBOL vmlinux 0x5087b95b sock_no_connect +EXPORT_SYMBOL vmlinux 0x50c784d8 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x50d56018 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x50dc78de poll_initwait +EXPORT_SYMBOL vmlinux 0x5108761c tty_devnum +EXPORT_SYMBOL vmlinux 0x5136f6a3 drm_pci_alloc +EXPORT_SYMBOL vmlinux 0x51493d94 finish_wait +EXPORT_SYMBOL vmlinux 0x515939f5 inet_put_port +EXPORT_SYMBOL vmlinux 0x51771ae3 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x51842a62 usb_get_dev +EXPORT_SYMBOL vmlinux 0x51a14346 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x51b13a06 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x52046e13 atomic_sub +EXPORT_SYMBOL vmlinux 0x520de853 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x522a9ffe xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x52354a0b mutex_trylock +EXPORT_SYMBOL vmlinux 0x5240e440 contig_page_data +EXPORT_SYMBOL vmlinux 0x5251cae4 prom_getbool +EXPORT_SYMBOL vmlinux 0x5267150f find_lock_page +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x531b8516 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x531e950d vfs_getattr +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53329dad pci_dev_put +EXPORT_SYMBOL vmlinux 0x533903d8 outsw +EXPORT_SYMBOL vmlinux 0x533a61e3 schedule_work +EXPORT_SYMBOL vmlinux 0x533ba528 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x5353736d redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x53a98f20 ps2_drain +EXPORT_SYMBOL vmlinux 0x53ae0615 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53dacb05 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x54321735 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x5434542b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x54aba07b bdev_read_only +EXPORT_SYMBOL vmlinux 0x54b9c5cd idr_init +EXPORT_SYMBOL vmlinux 0x54c52a57 block_sync_page +EXPORT_SYMBOL vmlinux 0x54ca9794 send_sig +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ed7bb1 dquot_acquire +EXPORT_SYMBOL vmlinux 0x54f3056a input_unregister_handler +EXPORT_SYMBOL vmlinux 0x550e3fd9 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x551d64c6 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x5559dc2a ida_init +EXPORT_SYMBOL vmlinux 0x556db901 xor_vis_5 +EXPORT_SYMBOL vmlinux 0x557b4b0b fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x5580235f elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x558dacd4 __dst_free +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a8a3e2 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x55b10818 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x55c693b1 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5601937e ns87303_lock +EXPORT_SYMBOL vmlinux 0x5624bada sbus_dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x56260f82 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56422580 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x564fc808 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0x56bf007c neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x56dede1a bio_phys_segments +EXPORT_SYMBOL vmlinux 0x56e0cf86 seq_lseek +EXPORT_SYMBOL vmlinux 0x56e87d10 vm_stat +EXPORT_SYMBOL vmlinux 0x5725a7f4 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x5737a905 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5747bfa5 d_genocide +EXPORT_SYMBOL vmlinux 0x57600a16 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x57699165 flush_old_exec +EXPORT_SYMBOL vmlinux 0x577f4bff do_BUG +EXPORT_SYMBOL vmlinux 0x57a225f7 ldc_alloc +EXPORT_SYMBOL vmlinux 0x57a95636 module_add_driver +EXPORT_SYMBOL vmlinux 0x57bb4731 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x57caaa03 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x57f47a03 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x57f84900 of_console_device +EXPORT_SYMBOL vmlinux 0x5812cd2a nf_log_register +EXPORT_SYMBOL vmlinux 0x582fef16 auxio_set_lte +EXPORT_SYMBOL vmlinux 0x5886a9a3 generic_write_checks +EXPORT_SYMBOL vmlinux 0x588c6d29 atomic64_add +EXPORT_SYMBOL vmlinux 0x589916b2 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x58ab5d05 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x592afc2f generic_file_llseek +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bb820 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594bf74d icmp_send +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59c7bac3 sbus_dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59df6a72 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x59f0312d fb_blank +EXPORT_SYMBOL vmlinux 0x5a14f0b6 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x5a26aa65 drm_mmap +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a416a71 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x5a49214a qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x5a565d6e pneigh_lookup +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a6c865e dev_open +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a7ff88e bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x5a8780db udp_sendmsg +EXPORT_SYMBOL vmlinux 0x5b1a5060 get_fs_type +EXPORT_SYMBOL vmlinux 0x5b1cd9e3 thaw_bdev +EXPORT_SYMBOL vmlinux 0x5b505921 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x5bc4ff00 vmap +EXPORT_SYMBOL vmlinux 0x5be302f8 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x5bfb3e95 register_console +EXPORT_SYMBOL vmlinux 0x5c673bc8 tty_mutex +EXPORT_SYMBOL vmlinux 0x5c81b5a3 vfs_fstat +EXPORT_SYMBOL vmlinux 0x5c8f377e find_inode_number +EXPORT_SYMBOL vmlinux 0x5ca284a0 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x5cacacbc sock_create_lite +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ce875cf prom_root_node +EXPORT_SYMBOL vmlinux 0x5ce9ffac tcp_check_req +EXPORT_SYMBOL vmlinux 0x5d1f0685 xrlim_allow +EXPORT_SYMBOL vmlinux 0x5d2a8252 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x5d44e581 permission +EXPORT_SYMBOL vmlinux 0x5d4d0e26 __csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x5d6997c5 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x5d6f3758 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dae54b4 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5de086b0 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x5df27f71 usb_clear_halt +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e8bac1c is_container_init +EXPORT_SYMBOL vmlinux 0x5ea6702e blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x5eb4c158 cdev_add +EXPORT_SYMBOL vmlinux 0x5eb71dd6 deactivate_super +EXPORT_SYMBOL vmlinux 0x5eda6896 sock_init_data +EXPORT_SYMBOL vmlinux 0x5ee0a984 prom_getchild +EXPORT_SYMBOL vmlinux 0x5ee4f023 uart_register_driver +EXPORT_SYMBOL vmlinux 0x5ee7394e netdev_state_change +EXPORT_SYMBOL vmlinux 0x5f06dc50 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x5f07708f generic_make_request +EXPORT_SYMBOL vmlinux 0x5f46f177 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x5f6fe0f3 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x5f711e9d task_session_nr_ns +EXPORT_SYMBOL vmlinux 0x5f9301d7 arp_send +EXPORT_SYMBOL vmlinux 0x5fa69206 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x5faad9c9 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x5fc1db8c free_netdev +EXPORT_SYMBOL vmlinux 0x5fc3aa73 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x5fffffcc elv_add_request +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601a2818 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x601b17e4 skb_clone +EXPORT_SYMBOL vmlinux 0x603422fb __neigh_event_send +EXPORT_SYMBOL vmlinux 0x6047c4da gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x6055e24a inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x60614a4d i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x6062345c dquot_free_inode +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x60690ffd kobject_unregister +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60bae6f6 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x610d9399 d_splice_alias +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6146694a input_open_device +EXPORT_SYMBOL vmlinux 0x61967f13 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61daaea7 sk_dst_check +EXPORT_SYMBOL vmlinux 0x61f7633f drm_vbl_send_signals +EXPORT_SYMBOL vmlinux 0x6227c983 seq_escape +EXPORT_SYMBOL vmlinux 0x6272c6b9 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6281682c put_tty_driver +EXPORT_SYMBOL vmlinux 0x62a9293f _clear_page +EXPORT_SYMBOL vmlinux 0x62f01619 kobject_init +EXPORT_SYMBOL vmlinux 0x62f2e155 km_new_mapping +EXPORT_SYMBOL vmlinux 0x6304a28d lock_rename +EXPORT_SYMBOL vmlinux 0x637668ff mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x637ce771 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6443c587 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x6453521c close_bdev_excl +EXPORT_SYMBOL vmlinux 0x646aaaf9 neigh_destroy +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64dfedcf end_that_request_last +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x652a5114 usb_free_urb +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65612ed2 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x65744b76 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x65937302 inet_frag_find +EXPORT_SYMBOL vmlinux 0x65a8628e copy_user_page +EXPORT_SYMBOL vmlinux 0x65b0a97e _PAGE_IE +EXPORT_SYMBOL vmlinux 0x65ce5edf dentry_unhash +EXPORT_SYMBOL vmlinux 0x65d8dba1 eth_header_cache +EXPORT_SYMBOL vmlinux 0x65deff21 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x65f614cc linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x65f86a06 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x6604baf7 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x661e6ec8 bioset_free +EXPORT_SYMBOL vmlinux 0x662a80ae alloc_fcdev +EXPORT_SYMBOL vmlinux 0x66379138 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x66608e6a mdesc_node_by_name +EXPORT_SYMBOL vmlinux 0x6679b1af blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668ddca1 gen_pool_add +EXPORT_SYMBOL vmlinux 0x66c95153 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x66cae227 stop_a_enabled +EXPORT_SYMBOL vmlinux 0x67197c1b kset_unregister +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x672369da km_state_expired +EXPORT_SYMBOL vmlinux 0x67b24840 of_getintprop_default +EXPORT_SYMBOL vmlinux 0x67e9d490 neigh_for_each +EXPORT_SYMBOL vmlinux 0x67ec31b0 __breadahead +EXPORT_SYMBOL vmlinux 0x680c9e44 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x68576339 svr4_getcontext +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x68ab17ac tcf_register_action +EXPORT_SYMBOL vmlinux 0x68dfa86d drm_locked_tasklet +EXPORT_SYMBOL vmlinux 0x68e08270 ipv4_specific +EXPORT_SYMBOL vmlinux 0x69010b06 insw +EXPORT_SYMBOL vmlinux 0x691925de ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x692a854a invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x6990c2c4 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69c41f60 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69df8bf7 ip_route_input +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1232f7 register_binfmt +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a824113 fsync_bdev +EXPORT_SYMBOL vmlinux 0x6ad59311 idr_replace +EXPORT_SYMBOL vmlinux 0x6ae917a7 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x6ae9a4d8 kobject_register +EXPORT_SYMBOL vmlinux 0x6b06f59b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b5706a1 search_binary_handler +EXPORT_SYMBOL vmlinux 0x6b97b3b8 blk_register_region +EXPORT_SYMBOL vmlinux 0x6bb15bd8 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bc8f647 dev_add_pack +EXPORT_SYMBOL vmlinux 0x6c0576e1 pci_release_regions +EXPORT_SYMBOL vmlinux 0x6c072e4f idr_pre_get +EXPORT_SYMBOL vmlinux 0x6c0eb831 __check_region +EXPORT_SYMBOL vmlinux 0x6c2c7a49 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x6c36a5c1 __mutex_init +EXPORT_SYMBOL vmlinux 0x6c3e7d9d sysctl_string +EXPORT_SYMBOL vmlinux 0x6c5c7f54 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c62bd3f cdev_del +EXPORT_SYMBOL vmlinux 0x6c69b32e path_release +EXPORT_SYMBOL vmlinux 0x6c71a766 sbus_free_consistent +EXPORT_SYMBOL vmlinux 0x6ce3cedc ldc_connect +EXPORT_SYMBOL vmlinux 0x6cf50521 seq_open_private +EXPORT_SYMBOL vmlinux 0x6cfa8783 notify_change +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d32cf08 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x6d37ec37 blk_put_request +EXPORT_SYMBOL vmlinux 0x6d4eacbe bdget +EXPORT_SYMBOL vmlinux 0x6d80cf23 unregister_con_driver +EXPORT_SYMBOL vmlinux 0x6d845d83 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x6da508d3 rwsem_wake +EXPORT_SYMBOL vmlinux 0x6de375c1 xor_niagara_5 +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfbaef3 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x6e188df8 nonseekable_open +EXPORT_SYMBOL vmlinux 0x6e235406 vmtruncate +EXPORT_SYMBOL vmlinux 0x6e56ecbb mdesc_node_name +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e940cb0 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eed270f devm_ioport_map +EXPORT_SYMBOL vmlinux 0x6ef56d60 mem_section +EXPORT_SYMBOL vmlinux 0x6ef56f31 release_firmware +EXPORT_SYMBOL vmlinux 0x6f22159e elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x6f3af3d3 register_netdevice +EXPORT_SYMBOL vmlinux 0x6f3d5edf i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x6f74762c blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x6f784d69 dev_mc_add +EXPORT_SYMBOL vmlinux 0x6f898e65 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x6fac7d01 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x70058b4b sync_inode +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x70134d09 inet_shutdown +EXPORT_SYMBOL vmlinux 0x702f162c __memscan_generic +EXPORT_SYMBOL vmlinux 0x70717126 textsearch_register +EXPORT_SYMBOL vmlinux 0x70946761 filemap_fault +EXPORT_SYMBOL vmlinux 0x70b5a794 ldc_write +EXPORT_SYMBOL vmlinux 0x70c64df4 vio_driver_init +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70c6e302 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x70ce8920 get_empty_filp +EXPORT_SYMBOL vmlinux 0x70d0ed3d fput +EXPORT_SYMBOL vmlinux 0x70d985c6 kobject_get +EXPORT_SYMBOL vmlinux 0x70ff4131 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x7119bb60 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x712730a7 __flushw_user +EXPORT_SYMBOL vmlinux 0x712fd0be wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x7148ad92 bio_add_page +EXPORT_SYMBOL vmlinux 0x7164a78d ldc_free +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7175bfbb udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x71864671 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x718f2bce simple_transaction_get +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c51961 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x71c966b7 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x71d6763f skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x71d8ddb7 names_cachep +EXPORT_SYMBOL vmlinux 0x71e523de usb_sg_wait +EXPORT_SYMBOL vmlinux 0x723f7108 skb_append +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x72ac0c44 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x72af2087 usb_remove_hcd +EXPORT_SYMBOL vmlinux 0x72d26f10 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x73065fee netlink_ack +EXPORT_SYMBOL vmlinux 0x73123fa8 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x731a449c drm_core_ioremapfree +EXPORT_SYMBOL vmlinux 0x734dbb0b put_page +EXPORT_SYMBOL vmlinux 0x735018a0 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x7358d0c1 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x736255c6 xfrm_nl +EXPORT_SYMBOL vmlinux 0x7365542f framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x73933b83 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x7399305c serio_rescan +EXPORT_SYMBOL vmlinux 0x7399c6e1 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x739ae79f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x73a159ac ps2_init +EXPORT_SYMBOL vmlinux 0x73b4aad7 __request_region +EXPORT_SYMBOL vmlinux 0x73e0877a insl +EXPORT_SYMBOL vmlinux 0x73ea8b75 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x741a67e1 sunserial_console_match +EXPORT_SYMBOL vmlinux 0x7422fe9a i2c_master_recv +EXPORT_SYMBOL vmlinux 0x7429ec41 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x743ac502 cdev_init +EXPORT_SYMBOL vmlinux 0x74561c61 usb_buffer_unmap_sg +EXPORT_SYMBOL vmlinux 0x7483491b of_iounmap +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a4e970 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x74c4754b pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x74c4c7e6 __kfree_skb +EXPORT_SYMBOL vmlinux 0x74c6fad3 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74de56a0 dget_locked +EXPORT_SYMBOL vmlinux 0x74e58373 __free_pages +EXPORT_SYMBOL vmlinux 0x74f267cc usb_string +EXPORT_SYMBOL vmlinux 0x74f4b98e gen_pool_free +EXPORT_SYMBOL vmlinux 0x75079561 audit_log_start +EXPORT_SYMBOL vmlinux 0x75215746 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x7531a5dc read_dev_sector +EXPORT_SYMBOL vmlinux 0x75321236 netdev_set_master +EXPORT_SYMBOL vmlinux 0x7536aa0e xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x757e5cdf dquot_transfer +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76176b67 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x7657d085 vm_insert_page +EXPORT_SYMBOL vmlinux 0x76a0c04d generic_block_bmap +EXPORT_SYMBOL vmlinux 0x76b12de6 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76df930e generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x770bc4c6 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x774bc078 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x775b1478 ldc_disconnect +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x778236c1 tty_register_driver +EXPORT_SYMBOL vmlinux 0x77bafa6c __scm_send +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x78471ade register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7872bd66 skb_pad +EXPORT_SYMBOL vmlinux 0x78b288a6 netif_device_attach +EXPORT_SYMBOL vmlinux 0x78c7f617 mdesc_arc_target +EXPORT_SYMBOL vmlinux 0x78c9c719 register_nls +EXPORT_SYMBOL vmlinux 0x78db839f tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78edc92a inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x791879f6 skb_queue_head +EXPORT_SYMBOL vmlinux 0x79354c90 put_files_struct +EXPORT_SYMBOL vmlinux 0x798c585b input_set_capability +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79ad224b tasklet_kill +EXPORT_SYMBOL vmlinux 0x79c2ca0f seq_release_private +EXPORT_SYMBOL vmlinux 0x79e3f6fd ip_ct_attach +EXPORT_SYMBOL vmlinux 0x79e8a2b9 of_release_dev +EXPORT_SYMBOL vmlinux 0x7a56c9a8 vio_port_up +EXPORT_SYMBOL vmlinux 0x7a7539a2 struct_module +EXPORT_SYMBOL vmlinux 0x7a8851c1 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x7aaed910 isa_chain +EXPORT_SYMBOL vmlinux 0x7acf6cdb __user_walk_fd +EXPORT_SYMBOL vmlinux 0x7b022e51 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x7b362d4e remove_inode_hash +EXPORT_SYMBOL vmlinux 0x7b422c70 cpu_present_map +EXPORT_SYMBOL vmlinux 0x7b4f4c99 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x7b793fc0 generic_setxattr +EXPORT_SYMBOL vmlinux 0x7b9b2d4a boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bbcb6d1 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x7bc34889 drm_init +EXPORT_SYMBOL vmlinux 0x7be1b765 __inet6_hash +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c3183fe generic_writepages +EXPORT_SYMBOL vmlinux 0x7c406430 sync_blockdev +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c679129 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cb30e6f key_put +EXPORT_SYMBOL vmlinux 0x7cf10b26 nobh_writepage +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d2debdd skb_queue_purge +EXPORT_SYMBOL vmlinux 0x7d30384e pci_find_bus +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d94e3da tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x7db2bae3 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7df7eb72 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x7dff30b4 of_unregister_driver +EXPORT_SYMBOL vmlinux 0x7e4a1d88 blk_init_queue +EXPORT_SYMBOL vmlinux 0x7e51b74c do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x7e63d2c4 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x7e63da04 open_by_devnum +EXPORT_SYMBOL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL vmlinux 0x7e7f1944 of_register_driver +EXPORT_SYMBOL vmlinux 0x7e814fae i2c_transfer +EXPORT_SYMBOL vmlinux 0x7e833292 release_resource +EXPORT_SYMBOL vmlinux 0x7ea06f75 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ed2dd3d sk_common_release +EXPORT_SYMBOL vmlinux 0x7edcb701 init_timer +EXPORT_SYMBOL vmlinux 0x7f16378d pci_dev_driver +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f4760a6 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x7f59566e blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x7f762109 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7f88f14a inet_frags_init +EXPORT_SYMBOL vmlinux 0x7f93ffae register_exec_domain +EXPORT_SYMBOL vmlinux 0x7fa6d0aa __pci_register_driver +EXPORT_SYMBOL vmlinux 0x7faf24d6 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7fe3a565 vfs_statfs +EXPORT_SYMBOL vmlinux 0x806b4a7f pcim_iomap +EXPORT_SYMBOL vmlinux 0x807b7089 prom_firstprop +EXPORT_SYMBOL vmlinux 0x807c20ca idprom +EXPORT_SYMBOL vmlinux 0x8085c7b1 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x80a1fc7d tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x80b807a8 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x80bfb05b skb_checksum +EXPORT_SYMBOL vmlinux 0x81124515 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x81451bc5 blk_complete_request +EXPORT_SYMBOL vmlinux 0x81499598 fb_get_mode +EXPORT_SYMBOL vmlinux 0x814cc8d2 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81a0b7c1 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x81de8c62 usb_set_interface +EXPORT_SYMBOL vmlinux 0x81f4fba8 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x824cee16 set_anon_super +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x827cb1fd tty_name +EXPORT_SYMBOL vmlinux 0x82c0c793 node_states +EXPORT_SYMBOL vmlinux 0x82d8642a page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x8318d45e __nla_put +EXPORT_SYMBOL vmlinux 0x83194f67 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x8325927d inet_listen +EXPORT_SYMBOL vmlinux 0x83329e3a inetdev_by_index +EXPORT_SYMBOL vmlinux 0x83367051 end_that_request_first +EXPORT_SYMBOL vmlinux 0x835c349b pci_remove_rom +EXPORT_SYMBOL vmlinux 0x836a55de do_gettimeofday +EXPORT_SYMBOL vmlinux 0x839e30ea tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c43dc1 posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x8436e290 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x8439e170 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x8442c138 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x844557d9 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x8453da4e ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x84ae748d usb_hcd_pci_probe +EXPORT_SYMBOL vmlinux 0x84fdce53 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x85672a4b sock_sendmsg +EXPORT_SYMBOL vmlinux 0x85749582 udp_get_port +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85abeec2 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860518c3 dev_close +EXPORT_SYMBOL vmlinux 0x860e0d81 mii_phy_probe +EXPORT_SYMBOL vmlinux 0x8617d48c compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x86247c78 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x863ebf1c blk_run_queue +EXPORT_SYMBOL vmlinux 0x8645421a xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x8650351f end_request +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86f1526e request_firmware +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x872bd087 suncore_mouse_baud_detection +EXPORT_SYMBOL vmlinux 0x873c658d nf_afinfo +EXPORT_SYMBOL vmlinux 0x87587a8b ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x877a7d78 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x877e1131 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x87b5f599 release_sock +EXPORT_SYMBOL vmlinux 0x87ba6e9d task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881113cd adjust_resource +EXPORT_SYMBOL vmlinux 0x8836e97e of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x88440e0b wake_up_process +EXPORT_SYMBOL vmlinux 0x886aa274 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x88726b37 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x88919e4e sock_recvmsg +EXPORT_SYMBOL vmlinux 0x8899f784 aio_complete +EXPORT_SYMBOL vmlinux 0x88c4f060 iput +EXPORT_SYMBOL vmlinux 0x88e8cdcf sock_no_accept +EXPORT_SYMBOL vmlinux 0x88fdd76a xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x88fff506 vio_ldc_alloc +EXPORT_SYMBOL vmlinux 0x8902f1af of_console_path +EXPORT_SYMBOL vmlinux 0x891e32b8 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x892d7f03 check_disk_change +EXPORT_SYMBOL vmlinux 0x8947687b sk_free +EXPORT_SYMBOL vmlinux 0x8958f4e3 fb_class +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x899a05fe blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89dab8f2 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x8a1203a9 kref_get +EXPORT_SYMBOL vmlinux 0x8a22cf63 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x8a497aca end_queued_request +EXPORT_SYMBOL vmlinux 0x8a5b1d72 misc_deregister +EXPORT_SYMBOL vmlinux 0x8a6e6544 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x8a765323 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab931a9 keyring_search +EXPORT_SYMBOL vmlinux 0x8ae38f1a sbus_dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x8af8af2d skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x8b0403e6 prom_getproperty +EXPORT_SYMBOL vmlinux 0x8b154e6f ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x8b239e6c eth_header +EXPORT_SYMBOL vmlinux 0x8b399cb1 drm_open +EXPORT_SYMBOL vmlinux 0x8b442ea5 clear_inode +EXPORT_SYMBOL vmlinux 0x8b4f6898 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b83bc67 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b95bd4c arp_create +EXPORT_SYMBOL vmlinux 0x8bbfa2b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x8bdd7bc0 set_page_dirty +EXPORT_SYMBOL vmlinux 0x8be1faa7 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x8be45d3a of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x8bf87169 __bzero +EXPORT_SYMBOL vmlinux 0x8c1baad6 dquot_commit +EXPORT_SYMBOL vmlinux 0x8c1fdc0a elv_rb_find +EXPORT_SYMBOL vmlinux 0x8c23adfa blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x8c31d8cc tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x8c3ebc72 saved_command_line +EXPORT_SYMBOL vmlinux 0x8c432aa0 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x8c460876 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x8c537c45 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x8c600eec tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x8c648b3e blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x8c7be3c2 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x8c9061f8 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x8ca0e65d __prom_getchild +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cd48d2c simple_fill_super +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d4f42ee end_page_writeback +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5642fc wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x8d59d045 input_grab_device +EXPORT_SYMBOL vmlinux 0x8d616387 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x8d631929 __brelse +EXPORT_SYMBOL vmlinux 0x8d8e9300 d_validate +EXPORT_SYMBOL vmlinux 0x8da618dc __prom_getsibling +EXPORT_SYMBOL vmlinux 0x8e099728 key_task_permission +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e3183f2 nla_reserve +EXPORT_SYMBOL vmlinux 0x8e52781e add_disk +EXPORT_SYMBOL vmlinux 0x8e5d38ab __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e85d685 __user_walk +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e894ac8 lock_super +EXPORT_SYMBOL vmlinux 0x8e8da35a audit_log_format +EXPORT_SYMBOL vmlinux 0x8e9eceaa complete_and_exit +EXPORT_SYMBOL vmlinux 0x8f07d8ca __wait_on_bit +EXPORT_SYMBOL vmlinux 0x8f1a9835 pci_free_consistent +EXPORT_SYMBOL vmlinux 0x8f2a0ce0 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x8f39b123 mpage_readpage +EXPORT_SYMBOL vmlinux 0x8f4420c9 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f80c493 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x8f9b86b2 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x8fa02a79 cad_pid +EXPORT_SYMBOL vmlinux 0x8fc6528d qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900ab096 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x9036e199 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x90b845be pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x90d210b6 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x9117a881 prom_getstring +EXPORT_SYMBOL vmlinux 0x916081da generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x916f650b console_stop +EXPORT_SYMBOL vmlinux 0x917c0791 d_namespace_path +EXPORT_SYMBOL vmlinux 0x91831873 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x91977dd0 neigh_table_init +EXPORT_SYMBOL vmlinux 0x91c57f7b sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x91f119ee write_inode_now +EXPORT_SYMBOL vmlinux 0x91f2fca6 get_write_access +EXPORT_SYMBOL vmlinux 0x91fbab00 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x921f4390 atomic_add +EXPORT_SYMBOL vmlinux 0x921f69e0 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x9224231f uart_update_timeout +EXPORT_SYMBOL vmlinux 0x926672d4 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x9285b856 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x92912006 sync_page_range +EXPORT_SYMBOL vmlinux 0x92d62c34 usb_hcd_giveback_urb +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9313e8cc xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x93444806 swap_io_context +EXPORT_SYMBOL vmlinux 0x93505a41 pci_unmap_single +EXPORT_SYMBOL vmlinux 0x93742a7b textsearch_unregister +EXPORT_SYMBOL vmlinux 0x9375392a __serio_register_driver +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93ea2153 usb_kill_urb +EXPORT_SYMBOL vmlinux 0x93efeae1 simple_sync_file +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940accfc jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9443289e set_bit +EXPORT_SYMBOL vmlinux 0x944922e7 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x944c1621 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x946c2974 pci_find_capability +EXPORT_SYMBOL vmlinux 0x9480dfa3 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x94847b23 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x94972950 usb_get_current_frame_number +EXPORT_SYMBOL vmlinux 0x94bac285 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x94d2eec2 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x94e369c4 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x94e82bd7 make_bad_inode +EXPORT_SYMBOL vmlinux 0x94fcfa6e dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x9501d078 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9509efe7 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x950b0b51 test_and_set_bit +EXPORT_SYMBOL vmlinux 0x953e693a d_invalidate +EXPORT_SYMBOL vmlinux 0x9583dbb7 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x959455c2 proto_unregister +EXPORT_SYMBOL vmlinux 0x9596de2e arp_xmit +EXPORT_SYMBOL vmlinux 0x95ab0f19 usb_buffer_map_sg +EXPORT_SYMBOL vmlinux 0x95ce8fb7 bio_endio +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95df023e end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x96291369 current_fs_time +EXPORT_SYMBOL vmlinux 0x964d75e0 request_resource +EXPORT_SYMBOL vmlinux 0x96654fd0 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x966b6b49 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x96b67464 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x97022095 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x974f8162 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976c788d blk_free_tags +EXPORT_SYMBOL vmlinux 0x9778bdaf filp_close +EXPORT_SYMBOL vmlinux 0x9788bac3 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x978a082d tty_check_change +EXPORT_SYMBOL vmlinux 0x97ae58d4 drm_release +EXPORT_SYMBOL vmlinux 0x97cb6ca7 have_submounts +EXPORT_SYMBOL vmlinux 0x983c5f3a vfs_read +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9889fc5a pci_dev_get +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98d36495 skb_unlink +EXPORT_SYMBOL vmlinux 0x990da249 usb_ifnum_to_if +EXPORT_SYMBOL vmlinux 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL vmlinux 0x992b7620 set_bh_page +EXPORT_SYMBOL vmlinux 0x99684bcd netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x998ccb71 sbus_map_sg +EXPORT_SYMBOL vmlinux 0x998f7139 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999a1f54 generic_commit_write +EXPORT_SYMBOL vmlinux 0x999fe899 set_current_groups +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99acfc09 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99ca3cbc elv_queue_empty +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a00dec4 redraw_screen +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2f6c86 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x9a3bd4d6 simple_readpage +EXPORT_SYMBOL vmlinux 0x9a895f7a sbusfb_fill_var +EXPORT_SYMBOL vmlinux 0x9a89ace7 mpage_writepage +EXPORT_SYMBOL vmlinux 0x9a9484e0 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x9aaa78c2 tick_ops +EXPORT_SYMBOL vmlinux 0x9aacd62b prom_getintdefault +EXPORT_SYMBOL vmlinux 0x9ac9653b load_nls_default +EXPORT_SYMBOL vmlinux 0x9ae78fd5 unregister_netdevice +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b1cc477 generic_listxattr +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b3fbda1 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x9b46da6a truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb1baaf __release_region +EXPORT_SYMBOL vmlinux 0x9bb3c828 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9bdfa0ae down +EXPORT_SYMBOL vmlinux 0x9bfaed0a svr4_setcontext +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0407f4 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x9c248f85 __scm_destroy +EXPORT_SYMBOL vmlinux 0x9c2b665b seq_putc +EXPORT_SYMBOL vmlinux 0x9c5834a9 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x9c70cfa4 try_to_release_page +EXPORT_SYMBOL vmlinux 0x9c786c68 seq_release +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc4ba07 __down_read_trylock +EXPORT_SYMBOL vmlinux 0x9ce459b7 simple_link +EXPORT_SYMBOL vmlinux 0x9cf5d523 bdi_destroy +EXPORT_SYMBOL vmlinux 0x9d0494f6 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x9d217f0a usb_buffer_free +EXPORT_SYMBOL vmlinux 0x9d339750 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x9d57afb8 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9db37875 change_bit +EXPORT_SYMBOL vmlinux 0x9dc10ff1 inet_getname +EXPORT_SYMBOL vmlinux 0x9df18db1 usb_deregister_dev +EXPORT_SYMBOL vmlinux 0x9df7f509 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x9e044541 register_qdisc +EXPORT_SYMBOL vmlinux 0x9e286f7c sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x9e30cd96 blk_get_queue +EXPORT_SYMBOL vmlinux 0x9e4a876f I_BDEV +EXPORT_SYMBOL vmlinux 0x9e6c3e8e skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x9e771285 _PAGE_E +EXPORT_SYMBOL vmlinux 0x9e7abf00 start_tty +EXPORT_SYMBOL vmlinux 0x9e807f10 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x9e8deb03 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x9e9935c9 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x9ea24c83 new_inode +EXPORT_SYMBOL vmlinux 0x9ea26c4c down_write_trylock +EXPORT_SYMBOL vmlinux 0x9ecc3356 unlock_page +EXPORT_SYMBOL vmlinux 0x9ee9e68d gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f0b9fed proc_root_driver +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f866e26 dump_fpu +EXPORT_SYMBOL vmlinux 0x9f8b4c98 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x9f9668a6 seq_read +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9b6946 up +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0xa0083044 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xa033d05a up_read +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06f0f5c pci_dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xa07a8d22 sleep_on +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0be2fe3 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0d797e0 dma_pool_create +EXPORT_SYMBOL vmlinux 0xa0ebb2ba _PAGE_CACHE +EXPORT_SYMBOL vmlinux 0xa0f00d16 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10ebd1a write_cache_pages +EXPORT_SYMBOL vmlinux 0xa1151ee6 kill_pgrp +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12ae7f4 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa15111a9 skb_find_text +EXPORT_SYMBOL vmlinux 0xa153464f skb_under_panic +EXPORT_SYMBOL vmlinux 0xa15990ef __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xa17306c1 read_cache_pages +EXPORT_SYMBOL vmlinux 0xa1aa1ccb blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1f20ec1 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20e4cf0 __mod_timer +EXPORT_SYMBOL vmlinux 0xa20f5cf1 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xa218bf61 complete +EXPORT_SYMBOL vmlinux 0xa224b3f9 kill_pid +EXPORT_SYMBOL vmlinux 0xa23a4e23 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xa23f257c neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xa25f923f ldc_map_sg +EXPORT_SYMBOL vmlinux 0xa262dd3f tty_vhangup +EXPORT_SYMBOL vmlinux 0xa271e180 pci_disable_device +EXPORT_SYMBOL vmlinux 0xa274d01f pci_alloc_consistent +EXPORT_SYMBOL vmlinux 0xa286507f inode_double_lock +EXPORT_SYMBOL vmlinux 0xa28a1490 sk_alloc +EXPORT_SYMBOL vmlinux 0xa2959f4d init_file +EXPORT_SYMBOL vmlinux 0xa29b1708 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b7df76 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xa2e32905 drm_i_have_hw_lock +EXPORT_SYMBOL vmlinux 0xa2ee6802 __nla_reserve +EXPORT_SYMBOL vmlinux 0xa312d114 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xa31afcd8 input_unregister_device +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa32d50b8 dma_pool_free +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa34a4aa7 ___copy_to_user +EXPORT_SYMBOL vmlinux 0xa357e447 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa370807f copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xa37e5ec3 drm_exit +EXPORT_SYMBOL vmlinux 0xa3823399 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a02479 blk_insert_request +EXPORT_SYMBOL vmlinux 0xa3a365ab pci_request_regions +EXPORT_SYMBOL vmlinux 0xa3a4ed03 cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa3c08441 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xa3c14178 ll_rw_block +EXPORT_SYMBOL vmlinux 0xa3d1048b xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xa3fe957a inet_frags_fini +EXPORT_SYMBOL vmlinux 0xa40ed7ad kernel_accept +EXPORT_SYMBOL vmlinux 0xa411090a blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xa41b8303 __rta_fill +EXPORT_SYMBOL vmlinux 0xa433cf4d i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xa439995a cfb_imageblit +EXPORT_SYMBOL vmlinux 0xa444111b ebus_dma_unregister +EXPORT_SYMBOL vmlinux 0xa46a3f1c pcim_iounmap +EXPORT_SYMBOL vmlinux 0xa47537bb pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xa4805d67 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xa497ebbd rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xa49a2a63 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xa4a74611 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xa4bc01d4 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xa4eb6810 usb_alloc_urb +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa546c0d3 usb_buffer_alloc +EXPORT_SYMBOL vmlinux 0xa57907a1 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xa5808bbf tasklet_init +EXPORT_SYMBOL vmlinux 0xa58163df drm_addbufs_pci +EXPORT_SYMBOL vmlinux 0xa58a8363 blkdev_put +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa58ebb71 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xa5924a66 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5b62214 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xa5e68673 tlb_type +EXPORT_SYMBOL vmlinux 0xa6348ea7 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xa64246b5 __pagevec_release +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6cbf6d4 nf_register_hook +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7296eff compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa782ec11 proc_mkdir +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7fea85e xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xa819d017 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0xa824ce74 proc_dostring +EXPORT_SYMBOL vmlinux 0xa879689c reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0xa8806b87 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8ed8db6 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa9441cc2 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xa9838df8 sbus_root +EXPORT_SYMBOL vmlinux 0xa99648d0 __down_read +EXPORT_SYMBOL vmlinux 0xa9f1ed23 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xaa27cf60 generic_getxattr +EXPORT_SYMBOL vmlinux 0xaa527612 __kfifo_put +EXPORT_SYMBOL vmlinux 0xaa8cf02a sbusfb_ioctl_helper +EXPORT_SYMBOL vmlinux 0xaa9d3324 aio_put_req +EXPORT_SYMBOL vmlinux 0xaab3d975 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xaadd1d11 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xaaeca06c dquot_initialize +EXPORT_SYMBOL vmlinux 0xaaf0bc6b sock_kfree_s +EXPORT_SYMBOL vmlinux 0xaaf23043 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab44434f usb_bulk_msg +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab53b0a8 mempool_alloc +EXPORT_SYMBOL vmlinux 0xab8ecdb8 key_revoke +EXPORT_SYMBOL vmlinux 0xabad83d7 udp_hash_lock +EXPORT_SYMBOL vmlinux 0xabb9f3c0 sock_wfree +EXPORT_SYMBOL vmlinux 0xabbd6c35 get_io_context +EXPORT_SYMBOL vmlinux 0xabe6b442 udplite_prot +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabe94a23 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xac1b7b5e drm_ioctl +EXPORT_SYMBOL vmlinux 0xac2dab09 prom_getint +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac54fc9f mempool_destroy +EXPORT_SYMBOL vmlinux 0xac70f23b tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xac7eae5e nla_put +EXPORT_SYMBOL vmlinux 0xac8b295f ip_dev_find +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccd280f i2c_del_driver +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad075e74 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xad1f1d42 brioctl_set +EXPORT_SYMBOL vmlinux 0xad52e564 udp_disconnect +EXPORT_SYMBOL vmlinux 0xad554886 single_release +EXPORT_SYMBOL vmlinux 0xad7a8f2e elv_next_request +EXPORT_SYMBOL vmlinux 0xad97c662 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xada3f969 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xadb792c2 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xae06590f task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xae2a833d cfb_fillrect +EXPORT_SYMBOL vmlinux 0xae2ae5e4 unlock_buffer +EXPORT_SYMBOL vmlinux 0xae3335cf sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xae47891c sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xae4a7f54 unregister_nls +EXPORT_SYMBOL vmlinux 0xae58bdfb kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xae630bb5 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xae6809a4 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xae84a804 open_bdev_excl +EXPORT_SYMBOL vmlinux 0xae8fd82a down_interruptible +EXPORT_SYMBOL vmlinux 0xaecbdab6 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xaed013b9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xaed8f421 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xaee6ad0c tc_classify +EXPORT_SYMBOL vmlinux 0xaf1ec774 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf29788e drm_sman_init +EXPORT_SYMBOL vmlinux 0xaf2d5fdb skb_over_panic +EXPORT_SYMBOL vmlinux 0xaf6b2d7e default_llseek +EXPORT_SYMBOL vmlinux 0xaf7fec2f pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xaf9bd80f ida_pre_get +EXPORT_SYMBOL vmlinux 0xafbb4af0 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb003906b find_vma +EXPORT_SYMBOL vmlinux 0xb00fe96e input_free_device +EXPORT_SYMBOL vmlinux 0xb0252ce9 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xb0306702 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xb0353b5a mnt_pin +EXPORT_SYMBOL vmlinux 0xb035b622 register_filesystem +EXPORT_SYMBOL vmlinux 0xb055d8da posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xb096864b block_write_full_page +EXPORT_SYMBOL vmlinux 0xb0b064ef pci_iomap +EXPORT_SYMBOL vmlinux 0xb0b4a23b sunserial_register_minors +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c04c7a xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e46c40 d_rehash +EXPORT_SYMBOL vmlinux 0xb0e7b76a per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb133463f drm_idlelock_take +EXPORT_SYMBOL vmlinux 0xb138fc32 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xb169b9b8 atomic64_add_ret +EXPORT_SYMBOL vmlinux 0xb16f00cc kick_iocb +EXPORT_SYMBOL vmlinux 0xb185f5c5 usb_hcd_platform_shutdown +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb1aa7615 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xb1ab9545 netpoll_poll +EXPORT_SYMBOL vmlinux 0xb1ab9cd5 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xb1be2156 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d6309f inet_accept +EXPORT_SYMBOL vmlinux 0xb1d640bb ip_getsockopt +EXPORT_SYMBOL vmlinux 0xb1def1bb kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0xb2189cd5 bio_split +EXPORT_SYMBOL vmlinux 0xb231dae1 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xb240a05a generic_file_open +EXPORT_SYMBOL vmlinux 0xb26baa19 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xb2729f56 nf_reinject +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb296e99e __lock_buffer +EXPORT_SYMBOL vmlinux 0xb2b4553d inode_double_unlock +EXPORT_SYMBOL vmlinux 0xb2d073b3 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xb2eb5237 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xb2f8652d generic_ro_fops +EXPORT_SYMBOL vmlinux 0xb3007589 bd_set_size +EXPORT_SYMBOL vmlinux 0xb31f2a3a kobject_put +EXPORT_SYMBOL vmlinux 0xb3371715 sbus_map_single +EXPORT_SYMBOL vmlinux 0xb3501ce4 of_set_property +EXPORT_SYMBOL vmlinux 0xb382d8cf xfrm_lookup +EXPORT_SYMBOL vmlinux 0xb38bf56b xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb411fa92 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb435dd80 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xb4468f80 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xb462d4a0 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xb46b7aa0 wireless_send_event +EXPORT_SYMBOL vmlinux 0xb479ac12 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb51d06a3 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54e0c0e splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xb55cab41 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ac370f submit_bio +EXPORT_SYMBOL vmlinux 0xb5aff50a find_task_by_pid +EXPORT_SYMBOL vmlinux 0xb5f19cc1 follow_down +EXPORT_SYMBOL vmlinux 0xb600caed pci_iounmap +EXPORT_SYMBOL vmlinux 0xb60cd4dc page_follow_link_light +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb61533f8 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xb6194547 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xb64675ef d_instantiate +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6c70a7d __wake_up +EXPORT_SYMBOL vmlinux 0xb6df7439 sysctl_pathname +EXPORT_SYMBOL vmlinux 0xb6e3559d set_binfmt +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7190d06 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xb7565640 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xb7679396 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xb779986d kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xb79aa96a __secpath_destroy +EXPORT_SYMBOL vmlinux 0xb7eaba00 kfree_skb +EXPORT_SYMBOL vmlinux 0xb7ffa98e fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xb80b104f __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xb8342380 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xb8623270 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb88af338 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xb88d892c inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8f52271 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0xb90106b1 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xb952cf44 ether_setup +EXPORT_SYMBOL vmlinux 0xb97d4c9c mutex_lock +EXPORT_SYMBOL vmlinux 0xb98861fb kobject_add +EXPORT_SYMBOL vmlinux 0xb9bb0a33 request_key +EXPORT_SYMBOL vmlinux 0xb9c51b92 misc_register +EXPORT_SYMBOL vmlinux 0xb9ef01f0 bd_claim +EXPORT_SYMBOL vmlinux 0xba1353ab pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xba24b6b4 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbb11b203 get_sb_single +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb5bb985 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb8169d1 mac_find_mode +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbcca349 km_state_notify +EXPORT_SYMBOL vmlinux 0xbbfc958c skb_insert +EXPORT_SYMBOL vmlinux 0xbc074826 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xbc337860 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xbc34c6f8 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xbc426424 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xbc80de62 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xbcb3fc1e filp_open +EXPORT_SYMBOL vmlinux 0xbd2386cc flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xbd251b95 __bio_clone +EXPORT_SYMBOL vmlinux 0xbd279d2b of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xbd5c0ea4 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xbd62fb2e take_over_console +EXPORT_SYMBOL vmlinux 0xbd66a4b8 sysctl_data +EXPORT_SYMBOL vmlinux 0xbdce39d4 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xbde3c256 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xbdfadf55 subsystem_unregister +EXPORT_SYMBOL vmlinux 0xbe55548d of_ioremap +EXPORT_SYMBOL vmlinux 0xbe696583 hweight64 +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf0db1ab audit_log_end +EXPORT_SYMBOL vmlinux 0xbf1546c2 pci_restore_state +EXPORT_SYMBOL vmlinux 0xbf65ff9c pagecache_write_end +EXPORT_SYMBOL vmlinux 0xbf68aaec seq_puts +EXPORT_SYMBOL vmlinux 0xbf993764 __memscan_zero +EXPORT_SYMBOL vmlinux 0xbf9f5bfc inet_stream_connect +EXPORT_SYMBOL vmlinux 0xbfa3f1ab genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xbfb9009e uart_suspend_port +EXPORT_SYMBOL vmlinux 0xbfc12834 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0xbfc5eee1 bio_copy_user +EXPORT_SYMBOL vmlinux 0xbfddfdd4 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xbfe86286 vfs_symlink +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc000d59e init_net +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc00d230b sys_getegid +EXPORT_SYMBOL vmlinux 0xc019595a usb_get_hcd +EXPORT_SYMBOL vmlinux 0xc0234e2f xfrm_init_state +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0542bc0 drm_core_reclaim_buffers +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc07a79c3 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xc091a3ff lock_may_write +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b16091 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xc0d815f5 up_write +EXPORT_SYMBOL vmlinux 0xc15c1ca9 kill_litter_super +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc1663916 registered_fb +EXPORT_SYMBOL vmlinux 0xc167f82f fb_set_var +EXPORT_SYMBOL vmlinux 0xc1bbc7f6 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xc1da3abf ldc_free_exp_dring +EXPORT_SYMBOL vmlinux 0xc1e9b0f1 dev_unicast_add +EXPORT_SYMBOL vmlinux 0xc1ee17ca test_and_change_bit +EXPORT_SYMBOL vmlinux 0xc2093dc4 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xc251d59e i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26e991d dev_change_flags +EXPORT_SYMBOL vmlinux 0xc2734467 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xc29e86a1 idr_get_new +EXPORT_SYMBOL vmlinux 0xc2ccf836 simple_empty +EXPORT_SYMBOL vmlinux 0xc2dbc306 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f34e14 file_update_time +EXPORT_SYMBOL vmlinux 0xc316a384 genl_register_ops +EXPORT_SYMBOL vmlinux 0xc3200b83 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xc351402e create_proc_entry +EXPORT_SYMBOL vmlinux 0xc3599476 find_or_create_page +EXPORT_SYMBOL vmlinux 0xc38c4ca2 PAGE_SHARED +EXPORT_SYMBOL vmlinux 0xc3b052fe vfs_permission +EXPORT_SYMBOL vmlinux 0xc3c22cce dev_load +EXPORT_SYMBOL vmlinux 0xc3cb670e sys_getgid +EXPORT_SYMBOL vmlinux 0xc411630c tcp_unhash +EXPORT_SYMBOL vmlinux 0xc4254acb dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xc43eb60a sbus_unmap_sg +EXPORT_SYMBOL vmlinux 0xc46f59c2 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4c24c52 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xc509f576 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xc51af92b simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc536122f __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xc5370821 page_put_link +EXPORT_SYMBOL vmlinux 0xc5755010 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xc5a27adf __lock_page +EXPORT_SYMBOL vmlinux 0xc6053b07 get_disk +EXPORT_SYMBOL vmlinux 0xc61a653d neigh_lookup +EXPORT_SYMBOL vmlinux 0xc6327b65 sun4v_chip_type +EXPORT_SYMBOL vmlinux 0xc6346b70 input_register_handle +EXPORT_SYMBOL vmlinux 0xc63b502c udp_proc_register +EXPORT_SYMBOL vmlinux 0xc670afd2 ebus_chain +EXPORT_SYMBOL vmlinux 0xc6aeac10 inode_change_ok +EXPORT_SYMBOL vmlinux 0xc6d02e72 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xc6e61688 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xc70fc5ce mdesc_get_property +EXPORT_SYMBOL vmlinux 0xc7174d3d sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xc722227e posix_acl_clone +EXPORT_SYMBOL vmlinux 0xc724fd48 generic_fillattr +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ac3cf4 simple_prepare_write +EXPORT_SYMBOL vmlinux 0xc7b686a4 reset_files_struct +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc81ea4b1 usb_driver_claim_interface +EXPORT_SYMBOL vmlinux 0xc8244b3c input_close_device +EXPORT_SYMBOL vmlinux 0xc842bdc5 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xc849034e register_gifconf +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cd20a6 simple_lookup +EXPORT_SYMBOL vmlinux 0xc8d06c0d tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xc8e14a7e skb_store_bits +EXPORT_SYMBOL vmlinux 0xc9540c54 add_disk_randomness +EXPORT_SYMBOL vmlinux 0xc96b9101 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xc98c7ed7 locks_init_lock +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9a3c308 init_mm +EXPORT_SYMBOL vmlinux 0xc9c315e1 allocate_resource +EXPORT_SYMBOL vmlinux 0xc9d60f81 proc_symlink +EXPORT_SYMBOL vmlinux 0xc9f1e584 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xca0e9f88 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xca692f50 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xca86750a tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xca96c1e1 kernel_bind +EXPORT_SYMBOL vmlinux 0xcb1928b7 sock_i_ino +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb2b1891 arp_broken_ops +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb4c5eae nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xcb4d51c8 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xcb4fe65d tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb7244be ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xcb7c3420 vio_ldc_send +EXPORT_SYMBOL vmlinux 0xcb97ea3e tty_set_operations +EXPORT_SYMBOL vmlinux 0xcbb6beb3 register_quota_format +EXPORT_SYMBOL vmlinux 0xcbe88f75 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xcbece4c6 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xcbf2bdc8 sbus_dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc65c062 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8814ec drm_get_drawable_info +EXPORT_SYMBOL vmlinux 0xcc8a7688 of_dev_put +EXPORT_SYMBOL vmlinux 0xccbde31e tcf_em_register +EXPORT_SYMBOL vmlinux 0xcccda10f nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xccd1d93c call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0xcce813f7 __up_write +EXPORT_SYMBOL vmlinux 0xcd42991b inet_sendmsg +EXPORT_SYMBOL vmlinux 0xcdbcda53 __down_write +EXPORT_SYMBOL vmlinux 0xcdd01e3b blk_plug_device +EXPORT_SYMBOL vmlinux 0xce23d563 io_remap_pfn_range +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4236f2 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xced1c2b3 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xcf025be3 __memcmp +EXPORT_SYMBOL vmlinux 0xcf13620a generic_setlease +EXPORT_SYMBOL vmlinux 0xcf2c1889 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xcf3652a8 ip_fragment +EXPORT_SYMBOL vmlinux 0xcf610777 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0xcf6a6b28 set_irq_chip +EXPORT_SYMBOL vmlinux 0xcfaf710a ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xcfc0b47c __kill_fasync +EXPORT_SYMBOL vmlinux 0xcfca0a16 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcfd61272 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xcfe13710 sparc64_get_clock_tick +EXPORT_SYMBOL vmlinux 0xcfe77b1f input_flush_device +EXPORT_SYMBOL vmlinux 0xcfeca32f blk_execute_rq +EXPORT_SYMBOL vmlinux 0xcff4be78 neigh_create +EXPORT_SYMBOL vmlinux 0xcff53400 kref_put +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd03cb5c7 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xd04559cb per_cpu__kstat +EXPORT_SYMBOL vmlinux 0xd0be1a2e __memset +EXPORT_SYMBOL vmlinux 0xd0d03585 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0c7b0 usb_create_hcd +EXPORT_SYMBOL vmlinux 0xd11a73c9 ebus_dma_register +EXPORT_SYMBOL vmlinux 0xd12207e0 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xd15d4e82 dquot_drop +EXPORT_SYMBOL vmlinux 0xd16dbf25 seq_path +EXPORT_SYMBOL vmlinux 0xd177f92d i2c_detach_client +EXPORT_SYMBOL vmlinux 0xd1ebe5b6 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xd202f2c7 unregister_key_type +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd25b3775 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd264b174 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2bf3f3b tty_hangup +EXPORT_SYMBOL vmlinux 0xd2c53d3a do_splice_to +EXPORT_SYMBOL vmlinux 0xd2e2186b devm_free_irq +EXPORT_SYMBOL vmlinux 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL vmlinux 0xd3040ce5 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0xd31e0777 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xd32aca7f tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xd3427f73 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd37c242d load_nls +EXPORT_SYMBOL vmlinux 0xd37d27b1 drm_sg_alloc +EXPORT_SYMBOL vmlinux 0xd3b3c6cd tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xd3c52a69 kill_block_super +EXPORT_SYMBOL vmlinux 0xd3d81f9d lease_get_mtime +EXPORT_SYMBOL vmlinux 0xd3e8ed71 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xd3eb65fa ps2_command +EXPORT_SYMBOL vmlinux 0xd43b1137 submit_bh +EXPORT_SYMBOL vmlinux 0xd441df34 proc_root_fs +EXPORT_SYMBOL vmlinux 0xd492fac9 single_open +EXPORT_SYMBOL vmlinux 0xd49f1ef6 test_and_clear_bit +EXPORT_SYMBOL vmlinux 0xd4c66be3 sparc32_open +EXPORT_SYMBOL vmlinux 0xd4fc90e6 page_symlink +EXPORT_SYMBOL vmlinux 0xd549decb drm_get_resource_len +EXPORT_SYMBOL vmlinux 0xd54cee12 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xd56ba0a0 sun4v_hvapi_register +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd68d8129 key_alloc +EXPORT_SYMBOL vmlinux 0xd691f0c3 idr_remove_all +EXPORT_SYMBOL vmlinux 0xd69532ef ebus_dma_request +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd708761d mapping_tagged +EXPORT_SYMBOL vmlinux 0xd711748f alloc_fddidev +EXPORT_SYMBOL vmlinux 0xd7234239 init_buffer +EXPORT_SYMBOL vmlinux 0xd73e4e82 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xd74060ab iget5_locked +EXPORT_SYMBOL vmlinux 0xd751b0aa alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xd77505d5 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd79924cd proto_register +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7dfba92 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xd7f7815e dcache_dir_open +EXPORT_SYMBOL vmlinux 0xd822d6c2 vio_send_sid +EXPORT_SYMBOL vmlinux 0xd836ed27 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xd83791bc nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd86424cb ebus_bus_type +EXPORT_SYMBOL vmlinux 0xd87e42a2 kernel_connect +EXPORT_SYMBOL vmlinux 0xd8959f23 auxio_set_led +EXPORT_SYMBOL vmlinux 0xd89e3b4c con_copy_unimap +EXPORT_SYMBOL vmlinux 0xd8c27c4a tty_std_termios +EXPORT_SYMBOL vmlinux 0xd8c98779 jiffies_64 +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd915876d xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xd94c1949 simple_rmdir +EXPORT_SYMBOL vmlinux 0xd95f20a5 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xd981c049 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98afa60 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xd9c7eb65 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0xd9df0ab7 dst_destroy +EXPORT_SYMBOL vmlinux 0xd9f6bb8b input_event +EXPORT_SYMBOL vmlinux 0xda3d2c3c prom_feval +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda440d64 iunique +EXPORT_SYMBOL vmlinux 0xda44e1ca __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda4b8cdf sock_no_poll +EXPORT_SYMBOL vmlinux 0xda561847 no_llseek +EXPORT_SYMBOL vmlinux 0xda599bbc pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xda6ea46b vc_cons +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda80dd50 poll_freewait +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8b5096 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xda9f6355 groups_alloc +EXPORT_SYMBOL vmlinux 0xdacc39dc free_buffer_head +EXPORT_SYMBOL vmlinux 0xdaefb60b serio_close +EXPORT_SYMBOL vmlinux 0xdb2928ff compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xdb3ebd82 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xdb809054 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0xdba06699 usb_hub_tt_clear_buffer +EXPORT_SYMBOL vmlinux 0xdba2a319 pci_map_sg +EXPORT_SYMBOL vmlinux 0xdbb06313 blk_put_queue +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd6f3e2 vio_validate_sid +EXPORT_SYMBOL vmlinux 0xdbdd2b36 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xdbef7ee9 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xdbf1dff5 kernel_read +EXPORT_SYMBOL vmlinux 0xdbf787a4 stop_tty +EXPORT_SYMBOL vmlinux 0xdbf9ec5a nf_log_packet +EXPORT_SYMBOL vmlinux 0xdbfdcf39 __lookup_hash +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc53db05 per_cpu____cpu_data +EXPORT_SYMBOL vmlinux 0xdc5eb10a vio_conn_reset +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdccd5b16 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xdce5c0c7 idr_for_each +EXPORT_SYMBOL vmlinux 0xdd1197c8 xor_vis_3 +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd1dc646 i2c_use_client +EXPORT_SYMBOL vmlinux 0xddb88eea ldc_state +EXPORT_SYMBOL vmlinux 0xddd1ee8b ldc_bind +EXPORT_SYMBOL vmlinux 0xde2a99c5 sys_sigsuspend +EXPORT_SYMBOL vmlinux 0xde4c1f88 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xde589e60 xor_vis_2 +EXPORT_SYMBOL vmlinux 0xde7502a8 PAGE_KERNEL +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde885717 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9c8581 dma_chain +EXPORT_SYMBOL vmlinux 0xdea67ce1 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xdefed867 path_lookup +EXPORT_SYMBOL vmlinux 0xdf104acd vc_resize +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf440a5b pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xdf4515d3 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf815b4c kthread_bind +EXPORT_SYMBOL vmlinux 0xdf81bcd2 usb_lock_device_for_reset +EXPORT_SYMBOL vmlinux 0xdf8fef53 prom_getproplen +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfaebc41 usb_find_interface +EXPORT_SYMBOL vmlinux 0xdfb53805 block_prepare_write +EXPORT_SYMBOL vmlinux 0xdfb7139e vfs_quota_sync +EXPORT_SYMBOL vmlinux 0xdfc35ce6 usb_submit_urb +EXPORT_SYMBOL vmlinux 0xdff9f8de vfs_mkdir +EXPORT_SYMBOL vmlinux 0xe03b6c5d isa_bus_type +EXPORT_SYMBOL vmlinux 0xe03f9d8a tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xe0720919 pci_domain_nr +EXPORT_SYMBOL vmlinux 0xe0a1cd64 mnt_unpin +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0de9d3f user_revoke +EXPORT_SYMBOL vmlinux 0xe10b831b __netif_schedule +EXPORT_SYMBOL vmlinux 0xe10d6b2a subsys_create_file +EXPORT_SYMBOL vmlinux 0xe10ef8fa dcache_dir_close +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe175bd3a ebus_dma_residue +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19ff689 ldc_alloc_exp_dring +EXPORT_SYMBOL vmlinux 0xe1d5149d __bforget +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe20c8ade blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xe20fefa3 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xe22f330c block_invalidatepage +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe2892997 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xe2a12fe5 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xe2a30d84 netlink_unicast +EXPORT_SYMBOL vmlinux 0xe2a439f9 fasync_helper +EXPORT_SYMBOL vmlinux 0xe2c35333 bio_hw_segments +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2de076c sysctl_intvec +EXPORT_SYMBOL vmlinux 0xe2e0780d blkdev_get +EXPORT_SYMBOL vmlinux 0xe2e47af7 mstk48t02_regs +EXPORT_SYMBOL vmlinux 0xe2fc18e2 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xe31bb1f0 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe385db7f inet_ioctl +EXPORT_SYMBOL vmlinux 0xe38658c5 udp_ioctl +EXPORT_SYMBOL vmlinux 0xe3b8d8d1 uts_sem +EXPORT_SYMBOL vmlinux 0xe43ccd2e sock_create +EXPORT_SYMBOL vmlinux 0xe463e621 elevator_init +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4ea9261 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xe4f0497e blk_start_queue +EXPORT_SYMBOL vmlinux 0xe532e43a qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xe5476ea6 sunos_sys_table +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5851288 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xe5858e26 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e8d816 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xe60a6073 ida_remove +EXPORT_SYMBOL vmlinux 0xe632f425 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0xe662d431 page_readlink +EXPORT_SYMBOL vmlinux 0xe66489b2 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xe67f43d9 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xe6bb7557 sget +EXPORT_SYMBOL vmlinux 0xe6c44352 may_umount +EXPORT_SYMBOL vmlinux 0xe6d12f86 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe71d66a6 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0xe738e536 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xe782899e prom_searchsiblings +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe82cac11 backlight_device_register +EXPORT_SYMBOL vmlinux 0xe84c88e4 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xe862f9d9 tty_register_device +EXPORT_SYMBOL vmlinux 0xe86e5fc1 downgrade_write +EXPORT_SYMBOL vmlinux 0xe872aaee dma_ops +EXPORT_SYMBOL vmlinux 0xe87357a8 dev_driver_string +EXPORT_SYMBOL vmlinux 0xe8aa062b skb_make_writable +EXPORT_SYMBOL vmlinux 0xe8ab6434 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8dfcdf9 __csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL vmlinux 0xe9272330 km_policy_expired +EXPORT_SYMBOL vmlinux 0xe941438d d_delete +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe9a730c3 serio_open +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea2125dc atomic64_sub +EXPORT_SYMBOL vmlinux 0xea25ce5b drm_compat_ioctl +EXPORT_SYMBOL vmlinux 0xea3cd22d skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xea40e705 simple_getattr +EXPORT_SYMBOL vmlinux 0xea4398e6 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xea44b1c4 elevator_exit +EXPORT_SYMBOL vmlinux 0xea514773 put_filp +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea820ab4 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xea8890ff tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xea996214 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xea9abe9b sock_no_listen +EXPORT_SYMBOL vmlinux 0xeabe066f ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xeac077d1 pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xead63053 __break_lease +EXPORT_SYMBOL vmlinux 0xeae811ad cont_write_begin +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb59ebc5 ip_defrag +EXPORT_SYMBOL vmlinux 0xeb5c0f8e soft_cursor +EXPORT_SYMBOL vmlinux 0xeb68d188 sys_getppid +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb984dc9 do_sync_read +EXPORT_SYMBOL vmlinux 0xebba2405 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xebbbd3a6 dquot_free_space +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebdc6f74 inet_select_addr +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec2680e2 blk_get_request +EXPORT_SYMBOL vmlinux 0xec41884f of_get_property +EXPORT_SYMBOL vmlinux 0xec831cf2 kobject_set_name +EXPORT_SYMBOL vmlinux 0xec88ac72 drm_core_ioremap +EXPORT_SYMBOL vmlinux 0xeccea9bc simple_write_end +EXPORT_SYMBOL vmlinux 0xecd99124 die_if_kernel +EXPORT_SYMBOL vmlinux 0xecf6c979 vfs_quota_off +EXPORT_SYMBOL vmlinux 0xed02d532 inet_release +EXPORT_SYMBOL vmlinux 0xed128989 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xed1d51f7 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xed3cdee2 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xed3f9211 flush_signals +EXPORT_SYMBOL vmlinux 0xed579c6f do_SAK +EXPORT_SYMBOL vmlinux 0xed5f03d8 syscall_trace +EXPORT_SYMBOL vmlinux 0xeda859ac sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc41620 sock_register +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xee18dffa sock_i_uid +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4f6c53 kill_fasync +EXPORT_SYMBOL vmlinux 0xee4fdf48 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0xee695fa9 freeze_bdev +EXPORT_SYMBOL vmlinux 0xee8d5ebb inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xee90884e dq_data_lock +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeebe5a39 register_framebuffer +EXPORT_SYMBOL vmlinux 0xeef55a6e wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xef06695e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xef0a86b6 usb_altnum_to_altsetting +EXPORT_SYMBOL vmlinux 0xef1a1668 km_waitq +EXPORT_SYMBOL vmlinux 0xef335d40 mdesc_grab +EXPORT_SYMBOL vmlinux 0xef35a510 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xef35ef61 key_link +EXPORT_SYMBOL vmlinux 0xef3b6496 skb_split +EXPORT_SYMBOL vmlinux 0xef6d7cff del_timer +EXPORT_SYMBOL vmlinux 0xef8e6bd1 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xef8ff1ff ebus_dma_irq_enable +EXPORT_SYMBOL vmlinux 0xef960196 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xefa891cc ___pskb_trim +EXPORT_SYMBOL vmlinux 0xefc55834 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xeff1ef85 tcp_connect +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf002fc7f __bread +EXPORT_SYMBOL vmlinux 0xf01c682e remove_suid +EXPORT_SYMBOL vmlinux 0xf0294473 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf07bec36 console_start +EXPORT_SYMBOL vmlinux 0xf0b3bc76 generic_removexattr +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0b7e6d3 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xf0e4eed8 d_lookup +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17fa3ef generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xf18bdf18 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xf1911085 key_type_keyring +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c3b00e copy_in_user_fixup +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf25fcc3b __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xf2624a00 module_refcount +EXPORT_SYMBOL vmlinux 0xf2924664 kobject_del +EXPORT_SYMBOL vmlinux 0xf2a27069 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2d3b436 sk_run_filter +EXPORT_SYMBOL vmlinux 0xf30b92b2 nobh_write_end +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf337087b do_sync_write +EXPORT_SYMBOL vmlinux 0xf33792bc simple_write_begin +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf391f0de pci_remove_bus +EXPORT_SYMBOL vmlinux 0xf397b9aa __tasklet_schedule +EXPORT_SYMBOL vmlinux 0xf39ae178 generic_permission +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e35e3c ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xf3eee2ba vio_link_state_change +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf40e5752 unregister_console +EXPORT_SYMBOL vmlinux 0xf429db72 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xf497eebb __down_write_trylock +EXPORT_SYMBOL vmlinux 0xf4ca18f0 simple_unlink +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf51411ea create_empty_buffers +EXPORT_SYMBOL vmlinux 0xf51c639f interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xf525df40 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xf5339e22 drm_addmap +EXPORT_SYMBOL vmlinux 0xf5bafdd6 __devm_release_region +EXPORT_SYMBOL vmlinux 0xf5d5b9b7 __alloc_pages +EXPORT_SYMBOL vmlinux 0xf65e64bb mostek_lock +EXPORT_SYMBOL vmlinux 0xf67936f2 bd_release +EXPORT_SYMBOL vmlinux 0xf6a9035a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xf6aeeb15 suncore_mouse_baud_cflag_next +EXPORT_SYMBOL vmlinux 0xf6b63da8 usb_reset_composite_device +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c3ac52 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f61a58 of_get_parent +EXPORT_SYMBOL vmlinux 0xf741d191 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xf74c0d71 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75f4c87 vfs_stat +EXPORT_SYMBOL vmlinux 0xf761c3ae copy_to_user_fixup +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7e34ebe vfs_readv +EXPORT_SYMBOL vmlinux 0xf80c69d2 __strlen_user +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf8342c3c generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xf84b38c3 atomic_add_ret +EXPORT_SYMBOL vmlinux 0xf84efea2 drm_rmmap +EXPORT_SYMBOL vmlinux 0xf851251b pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0xf852d733 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf889956a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xf8cc27c9 dst_alloc +EXPORT_SYMBOL vmlinux 0xf8e2b181 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xf91a213a generic_readlink +EXPORT_SYMBOL vmlinux 0xf926c7aa gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xf934cb6b serio_interrupt +EXPORT_SYMBOL vmlinux 0xf95b43c7 usb_put_hcd +EXPORT_SYMBOL vmlinux 0xf96af43c i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xf970d129 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xf98d29e0 kthread_create +EXPORT_SYMBOL vmlinux 0xf99437ac pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9accd1b simple_dir_operations +EXPORT_SYMBOL vmlinux 0xf9b28bac interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xfa139f96 neigh_app_ns +EXPORT_SYMBOL vmlinux 0xfa411f84 sbus_alloc_consistent +EXPORT_SYMBOL vmlinux 0xfa462e00 module_remove_driver +EXPORT_SYMBOL vmlinux 0xfa51e314 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xfa632b0c proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xfa70f3da __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafe6336 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfbb09cf2 pci_release_region +EXPORT_SYMBOL vmlinux 0xfbb0adf5 drm_irq_uninstall +EXPORT_SYMBOL vmlinux 0xfbb2655c km_query +EXPORT_SYMBOL vmlinux 0xfbb62729 block_commit_write +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc190c93 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xfc1a786d skb_copy_bits +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb80357 set_disk_ro +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfc9eb1 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xfd2e9b7e per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xfd3fe206 force_sig +EXPORT_SYMBOL vmlinux 0xfd593dd9 audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xfd8dba4c add_wait_queue +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdbd6ca5 simple_set_mnt +EXPORT_SYMBOL vmlinux 0xfdeb594d blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL vmlinux 0xfe185b1e tcp_sendpage +EXPORT_SYMBOL vmlinux 0xfe3159fc sock_rfree +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe40979b sk_wait_data +EXPORT_SYMBOL vmlinux 0xfe598f72 usb_get_descriptor +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6364b5 i2c_probe +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe78010d xor_niagara_4 +EXPORT_SYMBOL vmlinux 0xfec05366 sun_do_break +EXPORT_SYMBOL vmlinux 0xfed674bb fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2c1a9f devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xff613cea vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dec8b kset_register +EXPORT_SYMBOL vmlinux 0xff76a224 vio_ldc_free +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa12d2a keyring_clear +EXPORT_SYMBOL vmlinux 0xffb413c6 sunserial_unregister_minors +EXPORT_SYMBOL vmlinux 0xffb761d0 sock_no_getname +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x43cd62f5 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x7e8edb8f crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd78fc773 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x4ec2a9a1 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd77365ff async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x1b024cbf async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x85b5b5c9 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/blkcipher 0x4163220f blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x54ecd529 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0x6afea1da blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0x905a745c blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0xe2a2b954 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/twofish_common 0xc79ed587 twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0014a30a ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0433af11 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x08003a20 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x09ee50e4 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a97c348 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0aa162b7 ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0aacdd06 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0ae25170 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b2cba7b ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0c7e24ef ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0c8983dd ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0f82aab4 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x11deb4c4 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x129b8d07 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x12c1b723 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x12f9b164 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a2905e8 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1b9a3883 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d4855d6 ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1db3bf38 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1ecdd66b sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x22e9ea45 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x239d0df1 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x246483a7 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x25d15a05 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x25e970e4 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0x25fa6961 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x263b3207 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x264a1f04 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x279764c9 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28b16a51 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b4dcb0b sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b89a397 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2c39c6c5 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2cb2f23b ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2cc23039 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2ee4fe75 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x32b877a9 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x34d69842 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3d4f2b47 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3f4f3c69 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x41986732 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x449272b8 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x481a0ac2 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x485aecd7 class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4cc9c9de ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d035a50 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d2c7a42 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x53c1dcc1 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x542312ed ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5595ee5a ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x559a8f93 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x56ceb5d8 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x58d4d52a ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5a868d48 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6550744b ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6ba3ccee ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6c16e460 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6cea5b44 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6e948457 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6f41ab16 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x723083df sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7499eeb0 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x74c0db83 ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7b43133b ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fecd4b0 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8718aeae ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x87500cf7 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8760cc5b ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x88d74e21 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8959ac89 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x89969c92 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e9e3838 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x92266211 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x92790b00 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x929a91f3 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x95834950 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x95fe99af ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x98489b1c ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9cb7552a ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa6880ae7 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa77c0dac __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa810615 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0xae235b1a ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaee4b9ca ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaf3d321f sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2f31e7e ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb5877b88 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb7ffeb91 ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb8430277 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0xba3f780c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xba4f3474 ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xba77c07e ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbc94429c ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc29bc8be sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc2c03d9f ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc7fd098d sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc8f7d66c ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc9027ad6 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcd74c3de ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd0d64083 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd511cf64 ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd838d060 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd97283e4 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0xde587ad0 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0d07574 ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe6569fd1 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe873a2f3 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe9921129 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe9e723ce ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xec9cf9e8 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf485c993 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa7818d8 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfda1ffab ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xf6f29a19 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x032db79b tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x12cfb030 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1b6be86a tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2548d61c tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x45dc8bb5 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x482c02e1 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x48c3fb4c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4d3abd5a tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x55b48d61 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x72984e3d tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x73387a4f tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x881fcbdb tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9875c5f3 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9bf81e80 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9e8a9154 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb2061323 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4b6b980 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xca63a16d tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xccf54337 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd95db21a tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe1c836eb tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ed3db69 hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4d2085c4 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x750a4ca4 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x777a0646 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb73bdb8d hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0df0617 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3764357 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc8aece4e hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcbd1de2d hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd859613f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe9c1aa76 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf8792b78 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfcaab937 hid_parse_report +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x03582a5c ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x05006950 __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0f220411 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x14aa7751 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x17c202dc ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x295ae8f3 ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3b4f4f93 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x400852b0 ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4bac8e5d ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4fa20f50 ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x55989921 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x582659ea ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5b282c6c ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5e23d2bc ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5e5402ea ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7387addf ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7d430feb __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7e9e389c ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x83a983eb ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x87e12d09 ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x93be1c81 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x9982a3a8 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa6a0370f ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa94b4bbf ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb1c97e5d ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbb4a358a ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc6b9ca5f ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xdb945d95 ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xdda60084 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xff901328 ide_set_pio +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xbec1373b hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xddd4945d hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xe73bf31d input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x097788e5 led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x4e79bc3b led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xf5d96114 led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xf7ca01aa led_classdev_resume +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x5d176cd9 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x72165017 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x722ea891 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x80c2d45c dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xa2b7eb36 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xcaae799b dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe12796a1 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe1994be3 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x246da325 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x38bd90ed dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x3dc56fe7 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x75c40314 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xde08df7e dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xf4237e03 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x3a2a20ec md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xce4c74b7 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xdba8ba84 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf9c9762c md_do_sync +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e9f6d5 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x878812cb ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x883f554f ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x19b0ac4f saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x31a52f3d saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x45d3945d saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7a90f214 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7ef68416 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa4750f1a saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc2899cb9 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcde43c30 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe29019d9 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe644e2d0 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf4322a66 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4b8b77b2 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8378a4d3 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8e3728a9 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xac94e02c saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xae6c34d3 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc0d7771b saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc37962dd saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x16b4fe54 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xa730c427 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xcefb4c24 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x3fef5ad0 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xcde63e10 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x698d1b42 tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x822b2823 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x1e0796f3 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x8326f185 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x7fae234a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xd055a598 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xdd3e99c7 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5be8c757 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x683fae70 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x062fd685 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0ab67362 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0f774151 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22f41fbe videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38a732f1 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x41f5635b videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5334768c videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x59b774cb videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5ef5ce69 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x62e90f8f videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x79c0513d videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x89303820 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x89897832 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8a01777d videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8e5e1919 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9694927f videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x98a43621 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa27cf24d videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xae6ad80a videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xafbec374 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe0ebe2b2 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe7973a0e videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfa2a0090 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x018a20c7 videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x37886f97 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x70240b5e videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7c8e900d videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8b57e4be videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9e86a906 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac33c6f0 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb46f9869 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb8b285a2 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbef77308 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc9099b8b videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xde807148 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xeb1ee151 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf5c9a103 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x069f9fda sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x32db403c sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x332d0aec sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x695665b9 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8a5d2b50 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfa3c73c0 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x04ea828f sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x09745153 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0f3dc7ea sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1fdfe790 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2cd52990 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4556edfd sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x499ec116 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x50084129 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x55a6abe4 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x58fb1e6b sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5fa4f61b sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x68051c75 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x88cff10d sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8e96ccf8 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x915e29b5 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbf5513db sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcbcbf94f sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd3169b46 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xef14becc sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf1253061 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf18a48f2 sdio_writesb +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x022f0737 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x084ff8ac mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b4081fa mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x17e70a72 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1e843848 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24fb0975 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2839f95b mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29464a27 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29b31519 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29c9be77 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2ba0defc mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x33b3b4a5 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x363fc3b4 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3c9cf0b8 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4470538c mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x482ec3a0 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4a369ba4 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c10c6b7 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5139786a mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a3feecc mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7accd7c3 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7acde7c6 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d8a2868 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x86876d00 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8ee6d13e mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9864af8a mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xabefdddf mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb1d9b97a mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb8576ba7 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc5ab8471 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6483741 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd0a53509 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd40d9643 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe36b81e4 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe3d283c8 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe5660168 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe84011a1 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8fbcacc mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xec6f7dde mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf7b09afd mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x0f5e0a5c usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe475edaa usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x08459235 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x229f539b usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6f3521c1 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x85275395 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b2aad9c usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x93753c7f usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x953b4ad7 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa21c1710 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa56b3078 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xadc8d0b8 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf5895ab usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xefab1c96 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf5efb4b3 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfb0a478c usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfed4df7e usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x04dec61c libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x169f62f2 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2eece516 libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4279e914 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6be93b6c libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x92669efc libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9d58a3d9 libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb5740b32 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc1b34c78 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xde31374f libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf3dd6ada libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x2c6aee08 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x52c2cb1c p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x592a2a18 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x7f3b0bc8 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xdd47fbb8 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00e9d6df rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a16b5fe rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x225f2d0d rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x347c5aaf rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4e0c3cfb rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5565ec11 rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x590462a5 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x78219e38 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8a8a83b5 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9eb6789e rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf9611e6 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc9619e73 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcbec4490 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0a4b469 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd54d4f8c rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea226476 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf74520a0 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfae3d417 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x005f9c9b rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x137ab08c rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1fca2a2a rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x22af83b6 rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4ca107bd rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x72597aba rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe9f7ca78 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x175a38c3 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1936c265 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1e5876fc rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x24a67613 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2d6c16fc rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3ffc74a9 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75835804 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x831d45ae rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd4c19da0 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x03ad9337 power_supply_register +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x67115981 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x79fc99b5 power_supply_class +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x8e51251f power_supply_changed +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xfa35c6c1 power_supply_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x01803a76 rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x05cea847 rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x093b55f2 rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x15bd1bf4 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x30d2825e rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x44c48547 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x4624fc67 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x527e543c rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x54b7871c rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x5a4ae575 rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xa579e529 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xabdd1cec rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc0cf89f1 rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xe73344a1 rtc_read_time +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0394dc23 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e5055c5 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ef52bb1 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10a731ec iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x148aa45a iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c8a22bc iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1cc171b6 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29ad94a8 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3fe96708 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x46b114aa iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ba4fa41 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d5f5698 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c977237 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6058c833 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x615ae511 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b7b54e0 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8054b94a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x850fadcd iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x927ee61a iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b769148 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e64703f iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5e3dc1c iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd29527dc class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd3799eac iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd919608d iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3a44354 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9edebd5 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x16c81b6c sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1f3cad2e sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e3839a5 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4f4c4b69 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x59e32db1 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a08b5ac __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5f32fd14 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6b6f6bb5 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6fd97e67 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7e80660f sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7ebc0e0d sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x899c15e8 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8e65c956 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9f6bf5c7 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaa323a49 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbc096c49 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd2ee2da4 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe38069b2 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xed4ab1ef sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xedc6a9ef sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3cf42bf3 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x47f85539 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x83e6cf86 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xac882266 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdbc8faf8 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe53aec37 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x063b4877 scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x183b91cc scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1f5652f7 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x280e0d5d scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x2d490508 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x5b4e8ddb scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7de3ebcc scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x852284ae scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9504147c scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9aba23d0 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xa25bc224 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xb940b053 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc8f2880a scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xf42b2424 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x38f94d2a scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x399fdfef scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x533d1c7c scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x831d2c83 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x85321d39 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x973acb64 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb8f45a77 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc500ed5a scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdc669357 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x096f655b iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32c26a43 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x38186836 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4240a9e2 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5dd4868e iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x64f03035 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x74f962a2 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88f9b8b3 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91a2b5a6 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x952f4d74 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97fb584d iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9ca7475b iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa343469b iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xde24ca4d iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6d11a44 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfc93466f iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2edf5fdf srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7bd8597d srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x965f7865 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa4d8becf srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf3070a87 srp_rport_add +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x37205a46 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x9834f1ec spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x9cef1964 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa3936255 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe9da0cb4 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfebde27a spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2239510b uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7fd50852 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xd4306fe3 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0e899b5d usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3020a84b ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4f3f0ebc usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4f598fab usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x58e0f8fd usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x642b7949 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x847c389b usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x93ac5bdf usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa1edc816 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0xb3dcab92 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x13015204 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2804ead3 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x41a9ae80 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c4a0958 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb36f193f usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb983efbd usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd993521 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc6594ed8 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/w1/wire 0x714c1fb6 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8491f878 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb4698655 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc5a70ab2 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xda149efc w1_reset_select_slave +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x53b7f1cf exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x5bb62e80 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x073810d0 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x2343df16 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x3bdbce66 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x62438ec9 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x7f2ab47f fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x981c49e3 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x9ab70537 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xaec78913 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0xb3044756 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xb511ce3c fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xbb67c99f fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0xbfa1479a fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xd017914c fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xe0c64b51 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xe8770e56 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0xea573745 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xf8009bb3 fat_detach +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x1f8e6411 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x352039ac gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x3ea677ea gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x505dc9d0 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x5ab4b55d gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x023c4acb o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x04545518 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x061f0c3b o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x295007f0 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x606f2608 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdad26e3c o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf8177412 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x087e5d71 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4a50fac3 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcb9699d5 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xce6fb1eb dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcfe3c84f dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeef978ff dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x14bead6a dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x2def3457 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x366b52b1 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x3c2ccc8f dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x439f1f93 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48665b23 dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x5caf1ed8 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x629f8da4 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xabc5202e dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xaecd662f dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xb3d4504c dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xfe7582a0 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00978c6f dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1073ebf2 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x17cc85a3 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x194962e3 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e7d8f4c dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b094bb5 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e3e77a8 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33546e2e dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43e7c05e dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61f66ffc dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62112208 dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6833d4f1 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x758431f5 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75e977f1 dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78bd0f2b dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7aeb6aec dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7e57a176 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f6e141e dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fd47af1 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x805e001c dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x85bb33b1 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86068f5b ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c7b8c0b ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cb3498f dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x900270a4 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92e06655 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95d35fc2 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95f1d47b dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d38c3ca dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e0d69fc ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ef96923 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f22cbe7 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa2b604db dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9454454 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac32a019 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xade8fd86 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb1c5bce1 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb3d1fc63 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb452edf9 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb536041e dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbbbe4493 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd21f9fc dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcea88d20 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd1e766b4 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda785a7a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xde437e49 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe169cc5c dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea4288a0 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xee8b4965 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf5f81bab dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf60043e4 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfbf0f50d dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x06c7cd07 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1d909bb3 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x25ad9b01 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6cedf4ce dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb020d860 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb06253b4 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x2a3a3de0 ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x66bc4018 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xd57da5b1 ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x08aee386 ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0e1e3a80 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0f3658e0 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3a87c54e ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3b94e296 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x46388e9d ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4981e3fc ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5eb2fb68 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x609c99b4 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6667c544 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x68c77539 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8b3ffce0 ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8d7e9d16 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x929cefa0 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa717392f ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc9de1fed ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xcbf7af72 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xcf58f2c1 ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe706164f free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xea085578 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xfa400655 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa7d778a3 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc4f19149 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xce224404 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd2fe949b nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xeec517ea nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x89753bac tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9434a93a tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xaa601626 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbb6bd136 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf2fb8f7d tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x056667f0 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0ccb14c3 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0efa6ac3 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1646ff2f inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1e6a849c ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x28ea22cf inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3720b171 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4e3c5d05 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x561ac49c ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5a82238a inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7c883f35 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x96202a8d ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa9b93c7a ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xab5b0c51 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc104b924 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0131d1b6 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x055d5476 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0683f607 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08706448 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11efadd0 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12ecc267 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1523620c nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16688254 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x170becd9 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x180d0f13 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191df23b nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2715008e nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27fed52c nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x281da9ce nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ede2d01 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3075d538 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3177af1b nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35fe5bf1 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36a94402 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40e5874a nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4323a400 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4874278b nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b0357ac nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c5b4fc5 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x534a2d3b __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57baf530 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a4555eb nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5dba4e95 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63fb5faf nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6685f690 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72b6c7bc __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x733bb699 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75117eb1 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x866417b0 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8668ac38 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87a21187 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87fd1311 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8cfa9812 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa364bcad nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9faf345 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0cfc0eb nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5947305 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb81c6de1 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd4f2ea9 nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbde4c4fb __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1e322b8 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4a07de4 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd1439b4 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdec52799 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe442c8c1 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5b28438 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0141fe5 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf52aa704 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9b3f06d nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9c7e96d nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe7435e2 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfef22ac8 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x821b563f nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x1d419365 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0e3bd61a set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0e8dd114 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0fcda37f set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4a6a7a9c nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4da324d7 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x50d6f9e1 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x955db95d set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcf48b143 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd91fa49d nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xec8416ef nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x14888dd4 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x28b7d396 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x374664d6 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x509fd1ce nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc28a9b38 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x6d5cf2c7 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x7c4da559 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7d6c711c ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7ebbb635 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcf771482 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xb0cecadb nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x07382bbf nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb14fecba nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcf0f7aaf nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf4aac05d nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0425b431 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x26c5a9ff xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2fb9ed3b xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x31997026 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3b06310c xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3fd7157f xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4ba4d3ba xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6e6fd60d xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f2bdb9c xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7155a7d4 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9bcc8be4 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb6c23a37 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xda2c2c65 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfa9d5922 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x9e68088b rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xb929c52b rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06103440 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27f5f032 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a128c7 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f6dbe78 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3671cc08 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b14ff40 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x470a86cf xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dfddebb rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e4c9949 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52299229 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f0e959c xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5feed2ff svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x624f40c3 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7547dbe2 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7645a07e rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77e40286 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x830495cf svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b9520e1 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1e30a6a xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9110d4e xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca545f86 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfca741e rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4018ac9 xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe62afd0a xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe85afa85 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea708b16 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeab8a859 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6cf98a9 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf72c3eba svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd5e6ea4 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL sound/oss/ac97_codec 0xd39e8c2f ac97_tune_hardware +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04d0ef85 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08f1b8ba snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x098f7602 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ce27c6c snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d597f5b snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1964ba62 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b547114 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c5f8f33 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43b79e1b snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54c508b8 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e330287 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x733c1fdd snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73cf58e5 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7449bd9f snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c71f01a snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x824aa3f3 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83db1b01 snd_soc_dapm_connect_input +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x996e86d1 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f8eb4ee snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa17cc945 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa856e705 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa90cc11a snd_soc_dapm_sync_endpoints +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaca92f98 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3571575 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd20fc170 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8dc62d5 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9ab9267 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1f4015a snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf56ba7b6 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfaeca9a3 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfeaa92e7 snd_soc_dapm_set_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x0031ada7 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00d4e9f5 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01e6013a scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x02fbe800 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x04017974 user_update +EXPORT_SYMBOL_GPL vmlinux 0x040a6212 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04be3291 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x04c49f55 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0x04c66b8f device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x053a93a0 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06a3f638 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x06d379f9 class_register +EXPORT_SYMBOL_GPL vmlinux 0x06e7a63d class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x071ee365 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x0768eb42 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x081607c5 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x08ac62f0 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x09074647 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0955ae75 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0a244694 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x0a791f4b transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x0ab75579 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0ae580e4 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x0b0b54d9 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x0b207adc exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x0b9d8f96 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x0bd31d4f __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x0c11a99e transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x0cfce777 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x0d69fc9b class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0ec71c7b platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x11b81862 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x1306724a crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13bf0c88 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x14222769 input_class +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x155008bc vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x16dcaa0d user_match +EXPORT_SYMBOL_GPL vmlinux 0x16fb347b __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x17048161 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x177c2c57 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18443458 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x18a2066a kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x18d57363 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x191fb096 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1923e8ee platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x1951fd1d devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x19b98ac4 user_read +EXPORT_SYMBOL_GPL vmlinux 0x19f4f0ce usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x1a0dbf31 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x1b3ddcf2 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x1b7e1505 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x1b997146 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c16766b simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x1caf528f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x1cc37a30 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d30a322 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x1d9b94b9 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x1dd208f8 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1dfcf3d1 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8483f8 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f40a4da vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x1fa036dc pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x200b4d54 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d39f4d inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x20e6f841 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x20f1ce59 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x215a3121 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x226f02fb transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22e2c20b atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x23100fa4 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23d61063 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x2560dcd5 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x26411afe device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x268ffff4 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x269a20a6 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x26ffc9eb pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x270a3bbf register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x277e7daa __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x279f80cb sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x27ed8469 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x2822c936 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x287b910f hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x289d60f6 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x28b2cc80 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x294d3438 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x2a3ba44a inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x2af0c7ba usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x2c2afcfb bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x2cd3a4fb klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x2da407ad apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x2e1165ee device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x2e6728c6 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x2e99ea7f d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x2ebf5ad0 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x2ef411ab securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x2f8a02be hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2fc78b50 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x2fce45c0 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x2fd7b40f debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x300a0615 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30300e1c spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x305973c7 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x3099cdd0 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x30b34433 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x30c54d90 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x30d664d1 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x311242ba inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x3115a24e tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x3186d404 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x31cbf1ea spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3297a245 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x32fb78b9 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3381d9df pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x33cea813 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x3440e505 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x34f06fcf bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x35135bad usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x35d9b76f fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36588838 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x36909fe7 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x36bc6145 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3828c41c get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x38de254e usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x393b2788 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x39819646 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x39bd0d9f attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x39e7102e pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x3a45825d platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3a8d73c1 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x3b2f6fee sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x3bc33f65 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x3bc82015 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d1330bf devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x3d34d1e4 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x3de154cf inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x3de8dc55 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3e40cb29 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3e44d27a generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL vmlinux 0x3f4ac411 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x40f8a025 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x41e085b1 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x41f49a55 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x4285257d simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x42c348af skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x434e9a20 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x43e8eacc bus_register +EXPORT_SYMBOL_GPL vmlinux 0x443f2e48 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4444d6c4 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0x44b5228f usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x44c38765 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x4506279f devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x452b47b2 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4607d395 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x46c72860 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x46ef87a3 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x472fba9f crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4735d7de crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x473dee33 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x47a37d86 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x47c05f15 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x4825e306 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x4967034f put_driver +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4a38ec77 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x4a75dc68 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x4a93499c unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x4aa2de90 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x4b85663d driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4c72c022 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4ca7a9ee inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x4d38cd5a tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x4dac516c register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4df1020c fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4e3d4b6a crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x4f424d54 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4fe7932f relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x50263e66 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x5048ee0c pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x506ffffd sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x5122a2e9 mmput +EXPORT_SYMBOL_GPL vmlinux 0x516d1fa9 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x51a0a60b relay_close +EXPORT_SYMBOL_GPL vmlinux 0x51ad6b4c disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x51f15308 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5201ddb3 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53a09943 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x540f9980 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x542db501 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x54b3e86e audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x54e716c4 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x5504a23e sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x553a22bd hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x558c608d simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x55b1e7e1 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x55cb4fc2 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x563c0276 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x5659319d class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5662c161 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x571c286d inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b383d2 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x583af1f9 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x58b866f1 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x59606fc0 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x59e5a260 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5a3a5966 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x5b04db9b inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x5b327f49 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x5b46c690 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5ba5246a debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c84034e rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x5ca3671f driver_find +EXPORT_SYMBOL_GPL vmlinux 0x5cb59ec1 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x5cbc2967 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dcb2a7f inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e5a6604 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x5f953949 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x607471cd fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x6082ab67 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x60d32ffc file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x611b59be __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x61f095d3 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x61f5cef0 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x622b3e2c srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x62d8098e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x6315908b get_driver +EXPORT_SYMBOL_GPL vmlinux 0x63b80707 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x644d79a3 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x646d15c7 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x6556bbfb anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x682da063 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68f1ded1 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x69a885c1 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x6a450807 ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x6a71a4c8 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x6ae5da56 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6d083f25 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x6e3c302a task_nice +EXPORT_SYMBOL_GPL vmlinux 0x6e4c8696 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x6e6f1200 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x6ec59ee6 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x6f0f80f0 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x6f9594c5 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6ff8b1a6 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x70e5d738 class_create +EXPORT_SYMBOL_GPL vmlinux 0x71196147 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x71a5d4f7 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x71babf60 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x72411d98 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x7277768a inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x731ba509 get_device +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x73d4e4b2 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x7454c554 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7486289a init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x74b661e3 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x74cfa376 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x75249c6f key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x75cbca68 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x762f64bf ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x767b7ea8 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x787ccb8d usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x78af7c8f init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7948d109 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x79a08a22 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x79d6894f pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x7a5c1270 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x7a75d808 class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7b29a212 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7bbaddf7 device_move +EXPORT_SYMBOL_GPL vmlinux 0x7bd050aa get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x7c015f07 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c17b291 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c5f0a52 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x7c98e42e vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x7cd32187 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x7d862d78 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x7dc5c054 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e2d200b uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x7ef644bf i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7f45bbe7 get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x802e16a0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x80585d8a rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x80740374 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x81911428 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8310aa85 class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x83c1a697 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x8412e3c5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x84a1bc7c klist_del +EXPORT_SYMBOL_GPL vmlinux 0x8505d388 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x855b6010 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x8635f7fa pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x86642da5 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86f6804d alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87c9c7a4 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x87de983e driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88633188 k_handler +EXPORT_SYMBOL_GPL vmlinux 0x88d4fc34 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x890f286e class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x89578b6b klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x89a1a1f1 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL vmlinux 0x8a38a425 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x8a8a6037 device_del +EXPORT_SYMBOL_GPL vmlinux 0x8ac9b4d9 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x8b0fc85e crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x8b6b2516 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x8b75efde skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x8bc0a9bd crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x8c1e9baa rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8c5c6014 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0x8d182f62 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x8dc5d40e device_register +EXPORT_SYMBOL_GPL vmlinux 0x8e233a95 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x8e5f78a5 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x8ed32996 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8edcc934 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x8f1c8314 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x915acc1f klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x919b6cbf fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x91c10676 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x91c92246 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x91e162eb tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x921c23e1 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x92c3090a inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x93779137 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93f3cf7f i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x94cc7990 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x94f3d6f9 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x955b2e00 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x955d3a85 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x95b57c6c rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x96533a1c blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x96d9e10e __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x9752be14 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x97d9c66a nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9869b5e7 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x98bbaf95 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98d4dac8 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x98de8253 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x9906f95b fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x994c18e7 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x99b82416 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x99baea72 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x99d8ac04 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9ab019f9 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d7f0aa9 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x9e0b3486 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x9e7e4319 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x9e97103b genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0x9ea2eecb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x9fbcb150 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa02c0da4 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xa03f8a52 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xa08e1bf5 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xa1a9f99d debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xa1abec3d sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa2b76505 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xa2e2a810 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xa30dee4b rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa37dea29 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa3b5491b vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xa3e837a8 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xa3f6de98 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xa55db017 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa55e6b96 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa6fb5b35 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xa8603ac6 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xa966d220 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa85e1f7 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaacfeace tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xabc36679 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xac0a1e43 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xac6336ed fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xae342f70 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xae719735 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xb065441b inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xb068a505 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xb06a24d8 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xb09c921d inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xb0ad907c i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb1f8721c pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xb40df70e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xb48b4b07 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb48f7bb0 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xb4c580a5 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xb4d64e3c klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xb546c96c kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xb6396a0b find_pid +EXPORT_SYMBOL_GPL vmlinux 0xb6900ebc sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb83865e8 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xb8591680 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xb8759c2c srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xb9562902 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb9cdaa29 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xba03e4e9 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xba549831 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0xbaad1c08 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xbb21e110 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0xbc9d36c9 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xbd14efad pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xbd1618f1 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xbdd1c040 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xbeea7a2b srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbf3a18a5 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xbfe9ca98 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc00ab338 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xc1f53237 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xc2a55bfe scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3957561 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xc3a08fef bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc3e40e89 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xc4147353 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xc42edfa6 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xc4b02ad9 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc538a566 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc5505e40 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xc609b09a driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc6b6d4c4 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc6df493c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xc6eefb2a tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xc703f64f driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xc7f8e1b1 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xc83ba251 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8c3f758 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc8c8a3f7 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc9121edf debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xca01ce4e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xca909610 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xcae3e52a get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xcb08d3cd class_device_get +EXPORT_SYMBOL_GPL vmlinux 0xcb0c2ebf __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcb69cdad unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xcbfe8c6b usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcd50cfd5 class_device_add +EXPORT_SYMBOL_GPL vmlinux 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL vmlinux 0xcdfed241 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce007b11 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xcecbc98e fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xcf4d79ac platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xcf863b4a pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xcf992d9d usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0eb2b3a spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1761f13 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd1be5d02 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xd1d35a00 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd20aaffb anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2411aee debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xd2e86a3e vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xd2fc95fe sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xd518b2b7 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd5dd30ac klist_next +EXPORT_SYMBOL_GPL vmlinux 0xd801b512 sys_call_table +EXPORT_SYMBOL_GPL vmlinux 0xd8047e24 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd8655c3b crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0xd86a7221 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd86f274c led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd89734a5 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xd9abcbb2 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xd9fe4565 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xdb4eb961 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xdbcae6ba crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xdc30122a dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xdc36eaee blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdca1f6df __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL vmlinux 0xde3cda05 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xdf473c47 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xdf8e2c28 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdfe58ef6 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe008c4ee usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xe0354868 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe09edc15 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xe0e76f38 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe15e8517 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xe1d4e5f2 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe1f34107 device_add +EXPORT_SYMBOL_GPL vmlinux 0xe22b13f6 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xe306066a scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xe3088e83 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe33cc1fc devres_get +EXPORT_SYMBOL_GPL vmlinux 0xe38c76f3 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xe38c9ccd inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xe4272762 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe54a0407 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xe6d97b3b class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe6d9c400 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7a598d4 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe7be3ce0 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xe7d2b81a devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xe826c5bb macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xe907e32c sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xe91c2766 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xe922fd77 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0xe99fdd71 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xe9d7dd82 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xeafe702a srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0xec957a76 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xef4e963e __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xef75b866 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0xef82fdba srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xf040465f generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xf0c78ed8 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xf1231ac4 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1e5d925 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0xf34e6def __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xf3895452 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xf3b2d562 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xf3c1eb63 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf3e57fc9 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xf42976b6 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf4aa1bc8 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf70af0d3 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xf7c3e5f2 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xf7ed2b48 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xf80ac519 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xf8302a39 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf875a324 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf90b8a26 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf95c33ec user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xfbd7bba1 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc19771e get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xfc2acc6d dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xfc30b544 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xfc34698e device_create +EXPORT_SYMBOL_GPL vmlinux 0xfc6d1422 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xfce1e11f class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfd6a9541 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0xfd8ef8ca crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfd9907ec platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xff90589f queue_work +EXPORT_SYMBOL_GPL vmlinux 0xffa584fe securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xffaf7bbb __wake_up_sync +EXPORT_SYMBOL_GPL_FUTURE vmlinux 0x7bdba562 usb_match_id +EXPORT_SYMBOL_GPL_FUTURE vmlinux 0xa94ed63b usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE vmlinux 0xb57f62e2 usb_deregister +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/ia64/itanium.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/ia64/itanium.modules @@ -0,0 +1,1476 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +8021q +8139cp +8139too +8390 +9p +9pnet +9pnet_fd +a100u2w +a3d +aacraid +ablkcipher +acecad +acenic +acpiphp +acpiphp_ibm +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adt7470 +adutux +adv7170 +adv7175 +advansys +aead +aec62xx +aes_generic +affs +af_key +af-rxrpc +agpgart +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airprime +alauda +alim15x3 +amd74xx +amd8111e +analog +anubis +aoe +appledisplay +appletalk +appletouch +applicom +arc4 +arcmsr +arcnet +arc-rawmode +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +aten +ati_remote +ati_remote2 +atl1 +atmel +atmel_cs +atmel_pci +atp870u +atxp1 +aty128fb +atyfb +auerswald +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bay +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_misc +bitblit +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpqether +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +button +bw-qcam +cafe_ccic +cafe_nand +camellia +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cmd64x +cn +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +comm +compat_ioctl32 +configfs +container +corgi_bl +cp2101 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +c-qcam +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +dock +docprobe +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dst +dst_ca +dstr +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +ecryptfs +eepro100 +eeprom +eeprom_93cx6 +efivars +efs +ehci-hcd +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +epat +epia +epic100 +eql +err_inject +et61x251 +eth1394 +evbug +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fakephp +fan +farsync +fat +faulty +fbcon +fb_ddc +fcrypt +fdomain_cs +fealnx +ff-memless +fit2 +fit3 +fixed +fm801-gp +fmvj18x_cs +font +forcedeth +freevxfs +freq_table +friq +frpw +ftdi-elan +ftdi_sio +ftl +funsoft +fuse +g450_pll +gamecon +gameport +garmin_gps +generic_serial +gen_probe +gf128mul +gf2k +gfs2 +gl518sm +gl520sm +gl620a +grip +grip_mp +gtco +guillemot +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hermes +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hidp +hostap +hostap_cs +hostap_pci +hostap_plx +hp4x +hp-agp +hpfs +hpt34x +hpt366 +hptiop +hwmon-vid +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-core +i2c-dev +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i460-agp +i5k_amb +i8042 +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmcam +ibmpex +ib_mthca +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +inet_lro +inftl +initio +input-polldev +intel-rng +intel_vr_nor +interact +ioc3 +ioc3_serial +ioc4 +ioc4_serial +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isl6421 +isofs +it87 +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kyrofb +l2cap +l64781 +lcd +ldusb +led-class +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lockd +lock_dlm +lock_nolock +loop +lp +lpfc +lrw +ltv350qv +lxt +lzo_compress +lzo_decompress +m25p80 +mac80211 +macmodes +macvlan +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mbcs +mca_recovery +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mga +michael_mic +microtek +mii +minix +mlx4_core +mlx4_ib +mos7720 +mos7840 +moxa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msp3400 +mspec +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +multipath +mxser_new +myri10ge +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netrom +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +opti621 +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p54common +p54pci +p54usb +p8023 +palinfo +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300 +pc87360 +pc87427 +pca9539 +pcbc +pcd +pcf8574 +pcf8591 +pci +pci200syn +pciehp +pci_hotplug +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pd +pd6729 +pda_power +pdc202xx_old +pdc_adma +pegasus +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoe +pppol2tp +pppox +ppp_synctty +processor +psmouse +pt +pvrusb2 +pwc +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r8a66597-hcd +radeon +radeonfb +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +rio +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbp2 +sc1200 +sc92031 +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sd_mod +se401 +seed +serial_cs +serio_raw +sermouse +serpent +serport +sg +sgiioc4 +sha1_generic +sha256_generic +sha512 +shaper +shpchp +sidewinder +sierra +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +skfp +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +smbfs +smc91c92_cs +smsc +smsc47b397 +smsc47m1 +smsc47m192 +sn9c102 +softcursor +sp8870 +sp887x +spaceball +spaceorb +spectrum_cs +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +ssfdc +sstfb +st +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sunkbd +sunrpc +svgalib +sx8 +sym53c500_cs +sym53c8xx +synclink_cs +synclink_gt +synclinkmp +syncppp +sysv +tc86c001 +tcm825x +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tg3 +tgr192 +thermal +thmc50 +tifm_7xx1 +tifm_core +tileblit +tipc +ti_usb_3410_5052 +tle62x0 +tlv320aic23b +tmdc +tmscsim +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +trancevibrator +tridentfb +trm290 +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +typhoon +u132-hcd +ubi +udf +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +umem +upd64031a +upd64083 +usb8xxx +usbcore +usb_debug +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbvideo +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +veth +vfat +vgastate +via +via686a +via-rhine +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +visor +vitesse +vivi +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83l785ts +w9966 +w9968cf +wacom +wanrouter +wanxl +warrior +wavelan_cs +whiteheat +winbond-840 +wire +wl3501_cs +wm8739 +wm8775 +wp512 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xp +xpad +xpc +xpnet +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +yam +yealink +yellowfin +yenta_socket +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/ia64/itanium +++ linux-2.6.24/debian/abi/2.6.24-24.56/ia64/itanium @@ -0,0 +1,6517 @@ +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x345c9217 xpc_disconnect +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x39046c7a xpc_clear_interface +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x4c64fab4 xpc_set_interface +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x77ac8ff0 xpc_connect +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x7c3462de xp_nofault_PIOR +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x8e3dcd44 xpc_registrations +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0xa2083314 xp_nofault_PIOR_target +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0xfb8aec18 xpc_interface +EXPORT_SYMBOL crypto/gf128mul 0x24ed78f1 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x26f4c894 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0x3048a718 gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x61dc7b4e gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x67230a48 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x79a10b7e gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7ade1ff9 gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7f5e7a78 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x83dff6a6 gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0xac500869 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0xb81a3b33 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0xcd29b909 gf128mul_4k_lle +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0x42471eaf acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0x47673a49 acpi_processor_notify_smm +EXPORT_SYMBOL drivers/acpi/processor 0x6b138cd0 acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0xb1a49b9d acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/loop 0xebe7880e loop_register_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x0f9ee0cb pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x15abe632 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x2427ab01 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x2d6835d5 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x3ab0de17 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x7a3fae2e pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xa4b13df6 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xaa89171a pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xc18e9d86 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xd53ab72e pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xe434ab69 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xfd8c5a35 pi_init +EXPORT_SYMBOL drivers/cdrom/cdrom 0x01d5b8e0 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x1615f518 cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4842d52f cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x5a83d897 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x5f812587 unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x98dd1b10 cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb9dbe85b cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0xc1049651 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcc9157aa cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcfaf76d5 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe41dcd87 cdrom_ioctl +EXPORT_SYMBOL drivers/char/agp/agpgart 0x17688278 agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x20e8d329 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x237bff58 agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3519d569 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4351c620 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4a1e8546 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4bce5e38 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4d5d07cb agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x518fb80d agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6867f988 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6d58f69e agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0x736cad67 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x78dc812c agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x83567935 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8c0393bc agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa27935de agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa57d8d70 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaf53e7e1 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0xafa37826 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb647fe77 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb677a59a agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xba846f9e agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbb670393 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbd99112d agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcf09aff1 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0d83d93 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf06b5969 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf4a83970 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf4f60767 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf5ac5d70 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xff98680e agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/drm/drm 0x019784e7 drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x01f27421 drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0x06f4813d drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x0d6c823f drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0x0d7cee2a drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0x10af2731 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0x12d71b83 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x13d52ddc drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0x1938cb2c drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0x1af103ed drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0x1afc0de8 drm_compat_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x1d020b83 drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2bd8d5d1 drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0x2ccc89b1 drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x2eade03d drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x348a14d4 drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0x387b8ae8 drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0x3db75eb8 drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0x416dc998 drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0x43fca028 drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x456eb9e2 drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x475a6bd5 drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0x49e9b359 drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x572e9638 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x6bb72f9c drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x78b50747 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x7e696046 drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0x81495c37 drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0x8deb2af6 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0x931336b6 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x9b9ca861 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0xa0efd829 drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0xad35adf0 drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xaed591d7 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xb39980fd drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0xb8d15f8f drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xe05dc116 drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0xe6d54989 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xea3a4ef7 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xff93dac5 drm_idlelock_release +EXPORT_SYMBOL drivers/char/generic_serial 0x136cbc88 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x27c91a1c gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x3480a0a7 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x4634ee86 gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x499d7c82 gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0x505c9b73 gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0x5aef52e4 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x5d8472f5 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0xac961100 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0xae5b0a86 gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0xbc1edb10 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xc7255fba gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0xd178e8eb gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0xd1ae797b gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0xdf7be4e7 gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xe97544a8 gs_hangup +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0369975e ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x05dd5922 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x245482f7 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x254e2d98 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2d0706a4 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x380982b3 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3d972047 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x41f1d7c5 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fc88c03 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x54bb6b8d ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5800b59d ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7ee612a3 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9b34264f ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9cbf6fae ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa870060e ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa96aedca ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xab4a8f63 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xac6e7e27 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb723ac50 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcf7b0539 ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdaf5aa46 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdd6a82a3 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdf0e032a ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xea929d8d ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0x439f24e0 cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0x357637a0 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0xd4a24dca cpufreq_gov_userspace +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0x09b86f02 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x2f9e7f8e vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x446615bd vid_from_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8c956049 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xd87eb4b8 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x1acb5d34 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xf0afe546 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x71514fc2 amd756_smbus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x0441e8e3 i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x08207e95 i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x211b860d i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x29e227af i2c_detach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x383ee8d3 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4af765e5 i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0x802dc1e0 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x83563eb3 i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x8a7aedc9 i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb26d7d96 i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb8e941de i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xbd0ff963 i2c_put_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xcaa53223 i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0xcb7e3e9a i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd0f6749d i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd5574684 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd6f148a0 i2c_attach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd773d5fa i2c_master_send +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd82e48d2 i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd8867f6d i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd99d55b4 i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xdc036d7c i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe5a40873 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe9e8c6b9 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xec3a59da i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf2a8df40 i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xfffb1570 i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/ide/ide-core 0x02642f90 generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x0e1f0532 ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x0f3f2168 ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x124257bb ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0x21f8f4b9 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x30ea5673 ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0x3449c593 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x3aa7cf21 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x3d58ac81 drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0x41098ab4 SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0x41150f21 ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x420bb849 task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x4bbfe54d ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x4c54e286 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x51a62942 __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0x5306d7c9 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x5e97aec8 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0x66daa11b pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x69eaf813 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x6d6d2553 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0x70883578 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x79e8b03c ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x804926bb ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0x86135f0b task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x988bc3ab ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0x9d8cb3b3 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0xa31284c3 default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0xab4759ce ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xb6be4590 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0xce2d3d11 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0xdbb219b5 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xde918358 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0xde98b4a9 ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xe27e9d73 ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xf46c3c88 ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0xfc73b7d5 ide_wait_stat +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0215ae61 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x052dc643 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x05d3c48f hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x094e39d0 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0ac03085 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b71ad8b hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0cbe110c hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e2df1b3 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0f1fe14a __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x15f18344 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b8797b4 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f173309 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x20f4da92 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2796a83a hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2a0e20c1 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2c41249e hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3176ce35 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33642fc9 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x38093e1f hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x39e43b22 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d367078 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3fe17321 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x414280f8 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x491fb9bb hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4cc8a01f hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d690fc3 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x517e0a58 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5260d6ec hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x53181ee7 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a216dd5 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5dc27c00 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x60c363b6 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x62d770e5 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b6cf8a1 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x704c5f0e hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7265a531 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78f4204c hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e081662 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e99e03f hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f2a35df hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f393a20 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x819d65ce hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x82679312 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x86988f92 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b6e9e8f hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e6a778e hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x911ffcc5 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x95f8211e csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x96ffe1a3 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa0297a1e csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6d833aa hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xacf063bd hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb4849ce0 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb534a652 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb543146c hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb75df035 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb872f19b hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0ed8c56 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3674a26 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3ba9576 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc7c0e8f2 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcea45a92 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd10c1cb8 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd2b87589 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xde6ff263 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe6c25295 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe894ea36 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe951f443 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe965ebed hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xec4b022a hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed7c9ae3 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf440b392 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xff75868d csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x515b073a ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x59f75ab6 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x64c5414e ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xa7deb82c ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x6173267b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x65be15ce rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9feb2c34 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd5147e32 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x08746a9c ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x148ed0de ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x17e0f0a7 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x34a2aace ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4f5b9786 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5777998c ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5c884f90 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6a0b0b64 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x914842c8 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb69a3d5c ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd63d4d98 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd994197b ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe1576751 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe4833b23 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xece0e887 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf7a5c250 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04dc868c ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0632beb8 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0baf160e ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c642e5f ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0dda6ef9 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16d7c0bd ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x193d1f8e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c046772 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d2bb0b8 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f620966 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26b38a0d ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d33d962 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2de3c197 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3621e946 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a3d75f2 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3cd7454a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x464560da ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47e543ba ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x497d3855 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b4b944c ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bb6bcb4 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x508fa718 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x509ea80f ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54a1be33 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5742eb76 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5938cf3c ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e36a5f5 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f05c658 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x720ec5c1 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7273ff4c ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x753a759a ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7add77ba ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d5b80e3 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x818c4fa6 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82ddf2e5 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x869b32d0 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8adb21e0 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d520cc5 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c5ad87f ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa192ed99 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb63f0e9d ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9322fc3 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcb12a76 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1ed0e60 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2464997 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc60f746 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd25027d0 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4f8cb5d ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5f21755 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdedfc0b6 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe35942a9 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5ead451 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6da27ca ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec3b8862 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedd5258d ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeedd77c5 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef601b42 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf05455c0 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf06ba876 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf683a247 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6af0205 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6c2d339 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9bd1d03 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfecb3929 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff8162b6 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1432c82f ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3217d152 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4799c316 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4e36433f ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x58c3086f ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x613b1e2e ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6c24c03f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6e3f26d6 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x76ccf145 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x80bd0105 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb4f29159 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc1778834 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdc0c1dac ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe153009a ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3356b8d3 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4c9985e4 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x50b3795f ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5441ad53 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5d8ce1a5 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9002f081 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa32c5601 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb6b1007f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd09aa5f6 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe24316b9 ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3746f804 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8a31deb4 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa25a95b2 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbbe8af5b ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0a096f40 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x28efde0c iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x304b5e77 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x47aed93d iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8fb89d64 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x93233104 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x94ba0042 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf6fe0e49 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x016f0c72 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05c9b996 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21cf54c6 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x43bf004c rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4cf7c206 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50ee96aa rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5959b180 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x59d4c321 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5c25019c rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x82fb7c77 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8f272fb2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x94c6be99 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9528e8d2 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc4fe61fe rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc99e39c2 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xccd08c16 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe20b3e69 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf7694284 rdma_create_qp +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0f933f6b gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x40700dbe gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x76174b0e __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x96a16b4d gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9ed7cf8e gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9fec058a gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa047fdd2 gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcb2183e8 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd81560c6 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe88385fb gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x0d450cf9 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x2a12d9fb input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa148eaf5 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xe37d6d14 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/serio/i8042 0x4fdee897 i8042_command +EXPORT_SYMBOL drivers/md/dm-mirror 0x07904eff dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x12b74b35 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x4e16d6d6 dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xf6fb80c6 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mod 0x2276a42b kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x3d969c3e dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x5d791988 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0x6586161b dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x67c29390 dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0x750b5eb8 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0x7772e08d dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x868a67fe dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x87e58be3 dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x88fbb8c1 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x8c70a4a0 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x8fca57da dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x918bed36 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xb1ecf87e dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0xbae8cfe7 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc97c4310 dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xd3133534 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xe87f4138 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0xf1051385 kcopyd_client_create +EXPORT_SYMBOL drivers/md/md-mod 0x02fef2f5 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x04c06185 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x22736413 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x38d3f314 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x691cf981 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x7975b5b1 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x848c1dd3 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x91ac9e4a unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x9e7dfe21 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xaaa55cf7 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xc2d6da11 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0xca205ecb md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xdaa1f1cb md_error +EXPORT_SYMBOL drivers/md/md-mod 0xe804d1e6 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xf523e4b8 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xfaef056d bitmap_end_sync +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0673dd63 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x161731ee flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x24301c7f flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x24659550 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3464da36 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x36d9e828 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x36f1874b flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3d77e6c2 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3fab5d61 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4d106548 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4d15a995 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4fc28be9 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6420b21b flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x695b89c1 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8940a14e flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa21fec7c flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb978397b flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbb263652 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdea4dc32 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf00b9986 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2832eca3 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x84c9293d bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbd8e311e bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbea02e72 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x26ac6340 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2822a27e rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2e9d0315 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4199e5f2 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5142b7ba dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x63b46fe3 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x83799a0d write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x85289b0c dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa041c7f7 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb5c81fa1 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc70b6d66 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdc165a3b dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf487a3fb dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf6f5f56c dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x152f3cff dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x08733236 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x09ecad35 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0fe6fddd dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1209ade6 dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d44ddc9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2089c52e dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x21614a2d dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x33ecf6d3 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x401b6563 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x409a230f dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4595ed1e dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x51df4805 dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5212fd66 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x576f80d9 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5af0903d dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5f2b1d95 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x713ee3b7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7613476f dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x770a560f dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8df8085c dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9379f72a dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9568691f dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99cc2bad dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9b3b97e7 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9c7c71ea dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa1a8c7f9 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac136ce1 dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb2656290 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xba564a23 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbe56ff41 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc06febe4 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcaecd98e dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xccc37af9 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdf819738 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe028e3d2 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe287e9a8 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe3b8ed16 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe429d23d dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeac260a4 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf2110909 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfa7c3791 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff65b629 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x224d6878 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x29ccf3c9 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x400f16dc dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x53bdf809 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x59051491 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x76ad5da2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xed8128cf dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x4b185496 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xafc85f5b af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x15178d45 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4c688099 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4fe30788 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x55c7c5af dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x596eeddd dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x71b682f0 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7c48e964 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa4dba045 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xac34890f dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbf352014 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcebb1378 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfdd2bf97 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xbd22adfe bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x3e5d30b4 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x5973e40e cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x7ae42a06 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xd9ba587c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xcffeb824 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xeb6368b3 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x7e292921 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1a947717 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x425ca53f dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x59640d90 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x69916912 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x927a8fc6 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa9f3842d dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x1a21fb1d dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x5f2b327b dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd6408a4d dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6649632c dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6e31dad0 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x75f30697 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x905dc7ad dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9611a034 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xec3d955d dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x64b083aa dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe465acb1 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf61a4ad5 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x5bf70ace dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x1d695359 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x0d88ac17 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xdfd04857 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x59b4e553 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x43bab0b7 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x4571a705 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0xf9eb5c97 mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x3b75e56e vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x1bfaed20 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x3f043637 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xfdbb82a7 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x96667202 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x8d107b87 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0x1e67a577 qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x7b879d44 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xc9be1a68 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x89a9e875 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x00a9983f sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xea7a65cc stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xb627149c stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xfecf36b1 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xe7cad549 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xa69d8b47 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xdd188abe tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x5e8b0a6f tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xebeb0949 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x0dc7b35e tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0x061395aa tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x70f30cf7 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xef5412ef ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x5e1183fd ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xf68cafc8 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xf8f2fef2 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x01ea4189 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x2a2d4043 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xa8f9d98f bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xcc347210 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xe68b0ecf bttv_sub_register +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc07054aa btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe3c4c632 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cpia 0xad512be4 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xc061dce1 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x05680554 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2047c1a5 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x28130475 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x7ddcf727 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xb5068324 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe05747dd cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0x5013e640 cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xaab6d553 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xe8880597 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xff9bf89e vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x409d46d2 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x72558880 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8d8d2dda cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa2619b97 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xc7cf3020 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xfa4f4e38 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x18a1ca0c cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x3e13fc46 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x554fc265 cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5fd523b6 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6fb72cc7 cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x876c536c cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb3631cb5 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xdb6badfd cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xde7176d3 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x03a3912d cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x090a2d88 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0dab755e cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x16f6ea8d cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x17a2e62e cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x29898711 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2d3adc46 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3c388285 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x40a7236a cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x55b54784 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x675a8dff cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7c9951b9 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7f3154cb cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x87a667ea cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8d71f28c cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x94f1f6c4 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa5bab043 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb1f666d6 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbb16aafc cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcf933a51 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd92a8ca4 cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe85e8b6a cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xeca13737 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf71bdd3e cx88_reset +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x07f38118 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0bc66638 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0e1d4923 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x20e1ca3d ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3b62e80b ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4095e84d ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4176c75c ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x43c21f52 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4783c50d ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4be5df9e ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x74a31a03 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa7b6dfad ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xce8a3626 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x07af8872 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1956bc4c saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x40091290 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x407efa94 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x44d1d3ee saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4efff99f saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x810b4b52 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8df69a49 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9574d6f2 saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x97c4a661 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa77c1fc3 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa8fe2bd4 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc74f84fc saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/tveeprom 0x39633238 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x3a29a358 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x11371616 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1bc506e7 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x23ecbae1 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x37a3adf1 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5e1d70f4 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x76255c0d usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8af78015 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9b098564 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd5112b23 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf4dcb853 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x6063249a v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0843f0c7 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0a59df07 v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0b7a898d v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0e4707f2 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1cef839c v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x24eaf883 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x379df2e3 v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x39c02d9f v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x572269cb v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x62c15600 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x7121c34d v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x931bfaa6 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd493aa21 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd80f6f19 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xea6b1ba9 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x19ca6294 videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x91d441d4 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x0d33acda videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x4efdae7a videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x73663713 videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0xbe336400 videocodec_attach +EXPORT_SYMBOL drivers/media/video/videodev 0x017bf627 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x09a720e2 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x0c2ac6d4 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5ea4af58 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x605ee36c video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x64d65805 video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x68cbe20f video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x6c62e226 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x95b04f3d video_device_alloc +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00ca74cf mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x16a854bf mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x197247dc mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20131eb8 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2242f235 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x280d8b55 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x31ad796f mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e19c515 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4d8a931b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54ad37b5 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x59b9c68d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x89019e23 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x946ffe89 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x981efe92 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa40ab1fc mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xabc831ff mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb25d1fc7 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb562d042 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd19c91f2 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2985bd1 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdef9cd20 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdfacecc6 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe15d817e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe532351d mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6c1e126 mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe81c6841 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xffe1e629 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x035c40bd mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2335903a mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28166cb3 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29ea6bc1 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x32c43de3 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3693a3a7 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40953725 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x448aa865 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46aeefdc mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5fe23676 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6bd84045 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x73c9ffec mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x76fe15aa mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e0d1562 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa2b4d685 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xad40093a mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb9820b3b mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbf20f594 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd60abae7 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd7bfbdf4 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd900ae00 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdda84407 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf2f3def2 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf5d854a2 mptscsih_suspend +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0289f173 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x19fc7c90 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a941c56 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2b89e02d i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2db1ec91 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4ceff41e i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5cd1b1ee i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x61f1a12f i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62ecd315 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7d133c6f i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8e683d20 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8fe2f9a8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9ea75bd2 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa20858af i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa432fa3f i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa74ad9bb i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb7f0ea64 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc2bed665 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeb95f7f2 i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xed2256ed i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf3d61314 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfa951e3a i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfe628b07 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/misc/ioc4 0x43739417 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xea6f8ff0 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x2617e7e0 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x65749102 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x6e83bcf1 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x7a9484cc tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8970c708 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9b1229c6 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9c2752a3 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xca31496b tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe22a2ab6 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe48cf3c5 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xec87b59e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xfe82645d tifm_eject +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x40b186c4 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x664a0352 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xed5d7211 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0e78ab5e map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2de22b3d do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x38ced1c3 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7f0d2e15 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x27d4f899 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xb2cc6aec simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x0794fc42 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xae82f7a5 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x5bb38f2b mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x9fb98ca0 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc8fbeeb0 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xdece9563 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1fb76305 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x6a3bdf7b onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x1662968c ei_open +EXPORT_SYMBOL drivers/net/8390 0x5acdd296 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xa18ace0c NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xec2b09f7 ei_close +EXPORT_SYMBOL drivers/net/8390 0xec688130 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4d3ea8bc arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd0c2b6fe arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdb3b103c arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdb600323 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdda3060a arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfb73a865 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9029d7ac com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x98fc4d4c com20020_check +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x065fc8cd t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0b6820d8 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x10abcc4d dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1183f45e cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1fdece11 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x272e014d cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2e8fe08f cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x30decc8e t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x55c227ae cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6b48d3f9 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x83e12f04 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8eabdbdc t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9499a0a1 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb33bd32f cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf369bd47 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfb69d0a2 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0683bdb5 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x511d9451 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7cc53220 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x88c0183d hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9f3bea7f hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x219b25e6 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x783e8ffc sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x91e2c4b4 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x93b3ddd1 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa07291b1 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaad0dbf4 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xafd3b701 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb6cef715 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd555dcf0 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdca77d1c sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/mii 0x03d0f753 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x0bb20de8 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x2307e84c mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x33a65171 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x3dfc31fc mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x7e4f631e mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x95799b51 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xb5565d1a mii_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/fixed 0x5321c3b9 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/fixed 0xcbffbd78 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/libphy 0x0955e3af phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x0bc2d685 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x16099128 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x1934b04a genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x2545ef5c phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x3214e7f8 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x434c2f15 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x452fc9fb phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x608fdd6f mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x62494582 phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x6404f466 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x75a01830 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x7ee9cb5e phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x827b2965 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x9289c6d5 phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x9748cc8b phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x9c662f3b phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0xa5fe807d mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xb5d51055 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0xc294536a mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xd03f2ae8 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0xd37b8ff5 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0xd8dc7287 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0xdc0c47c3 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xe0d13f59 phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0xf97332e6 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0xf9f2bee8 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xfcde3f31 phy_attach +EXPORT_SYMBOL drivers/net/ppp_generic 0x04bc308f ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x054bed91 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x34e98440 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x4382b4e7 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xb3f7060c ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xc3676747 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xe505d295 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xed801489 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xf49053b5 ppp_channel_index +EXPORT_SYMBOL drivers/net/pppox 0x1eca4c98 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xacc7daf8 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xfc07a19e pppox_ioctl +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/net/wan/hdlc 0x01b0716a hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3f846447 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x51197612 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5758a52f alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6566a4d2 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x90cf2265 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd26083df unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd8092d8d unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe7222e45 hdlc_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0x05e78fc7 sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0x0d3614f6 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0x6a3cf6ed sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0x6ff8a636 sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xd239e2b2 sppp_detach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xeee7b9b7 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wireless/airo 0x1a97d896 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x6730c385 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xe8c9377a init_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x04e6257f stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x5ce5642a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc0dfa70a atmel_open +EXPORT_SYMBOL drivers/net/wireless/hermes 0x00f56735 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0x2743ed5f hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0x2aa8b098 hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0x52657e6d hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0x586026a5 hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0x66c87edb hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0x7e23508a hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc0b735be hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x125371a4 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21f94767 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x223db327 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2812b672 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3b2eca64 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3d91a091 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4de0a850 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5b0cb839 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x65e97ebc hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6722635f hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x67b7d268 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x75195af8 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x75c5349d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x776d19bd hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x781f9bb8 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7e3fb278 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8f5834c4 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x94f26e8c hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9599f805 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x96c84ea1 hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa055d9c3 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaba1bf0e hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xace243bb hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc09b27cc hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc0c74b87 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc9af5c75 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd0b3e7c9 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xda52672b hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf75621be hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfa26b89f hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xffc35e5b hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x209b9ddc __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x38f2f9cc alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x4f38ce3e orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x560c0549 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x736aa4c6 __orinoco_up +EXPORT_SYMBOL drivers/parport/parport 0x13689a1b parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x29155be3 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x39f38d71 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x45515fcf parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x4a9838c5 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x55000f87 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x60795bd2 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x6481aaf8 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x6beb418b parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x79ec7266 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x81f87d15 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x90a56b4a parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x923dc611 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x9711ae6f parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xa9dd740f parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xb4fa6945 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xb6077ebd parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xbf8b13d8 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xc1193b88 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xc1e4fae0 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xc2726e5d parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xc2c4ef94 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xc94d44d0 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xcd940804 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xd6c717f2 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xdb719993 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xdca28d2f parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xe03335df parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xf26114f4 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xf6f5f75d parport_get_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x0d6ddbbe parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x172b8613 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x171d74ed pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x272d56f4 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3664739d pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d9ee5eb pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4c49f76e pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x53b39a4a pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6e55e789 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8c875169 pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8cdfbcfb pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9ce8e809 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa6482458 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbae5b6dc cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3eb568a pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe59fc5c6 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe5b86f57 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xecd1e72c pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf1dbedad pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x01739973 pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x03d016cb pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0837b1aa pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0d8a2dad pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2c3d3db4 pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x32977dfb pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x33c94e0f pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x38f0db6f pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3e2fb94d pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3fd3b97d pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4eafcb47 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x644460b1 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6ce56551 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x74975828 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x819a564a pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x83f4a7ec pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8a1c52e9 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8a7f0277 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8cd7c6fa release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x97b0ee0b pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9be2b45e pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9d6e3d27 pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb07f7ac2 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb3b9f8a7 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb533d105 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc08c7285 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc7dc5d96 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd7a26b3a destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdbde45cc pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe2c1354e pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfaa5a60b pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x427f9a1f pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xac32d37f lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xe92c9588 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x418db8fc mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0f0e8e15 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7b650f74 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7fbd9873 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa3423e03 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdd759eee qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdeb5f9a3 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x78b12eb0 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x80799fe0 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xbbf3a08d raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x00597066 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0347c001 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x05ec0b6f scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0d196574 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x13054548 scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x14ec403c scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x183f3a61 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1c72a54c scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1c8ac1dc scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1f14d363 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1f57b393 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x26b60ead scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2918fc16 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2acb2ef5 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d596d2f scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d66fedb scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2e5dba84 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x305e0550 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x34e4bb2e scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x365973da scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x392f0050 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x39971f91 scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x40e80b4b scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x41cda578 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x47495f29 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x49e9e8e3 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4d27a551 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4ea09325 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x51dbe45d __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x542067b4 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x571d910a scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x58610f82 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x59bad2af __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x613d3183 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x61d1926c scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x64846d97 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6a503c89 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6e694a4a scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6f826804 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7241149c __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x749e78cb scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x74dd7c48 scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x755ddb28 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7b184e5e scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7f9bd928 scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x813cd63f scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x817ac2bd scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x872d6abb scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8990da44 scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8d053f69 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9993ce9c scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9b0720f8 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9c6c480c scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1abb90b scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1e87c43 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa539914c scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa6ac93cb scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa88e95d9 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad509944 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad54f9ca scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb83c35a3 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb97a5499 scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc369234b scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc4d1dbfd scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc57c7e83 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc9f70c51 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcc656231 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcdc023f5 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd217331e scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdc579594 scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe61a8a08 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe6e8d424 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe741376b scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea17ca41 scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xed0d8fff scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf0f64430 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf56d4256 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf74bc131 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf7e8de4c scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf9abfbc4 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfac23462 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xff9f622e scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x106dd445 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x18af12b9 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x396d48dd fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x593322e8 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5e394a95 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x655c0cbb scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x657c6d46 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x748edd6d scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xce1e5220 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf4efcd11 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfaf057a5 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2bc6430e sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ee4f472 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x362a373c scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f0482a4 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x413ad904 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4a8baa84 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4f82c8f2 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x506ff076 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5a65ab42 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5bf87b6a sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x68119c8b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6c16ffc2 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83c61314 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x898ce5b9 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x946176dc sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f008c1f sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9d9dfc8 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xabd65b2b sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcfa14118 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd245ed90 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd2f3dd3d sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe0912f18 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe862403a sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf529915b sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfc42cbbb sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe7498d9 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x26520588 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2c5c44be spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7772432f spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9737af20 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd0db713f spi_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x0007c326 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x36f5f847 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x5bdb9cc0 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x65f1b00a ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x7840b376 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x85591c81 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x8b1da17e ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x8b2ef564 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x8bdaaad2 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x96ae4607 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x97aad012 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x98b84dbc ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xb8c33d44 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xcafe2f36 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xcb17f1cb ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xdfc7c6ef ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xf241f492 __ssb_driver_register +EXPORT_SYMBOL drivers/telephony/ixj 0x5ebe9676 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x5ce9c051 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x609926f3 phone_unregister_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x016175b8 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0e3d15e0 usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x106f652c usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x18e58d52 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x26930daf usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x297bd0a7 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2cd73049 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2e3656f2 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0x31db41e8 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3230b4fa usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x328a767d usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x375a13da usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3fc2e11d usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4afa0624 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x52bfb303 usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x54f4d073 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x55e3f046 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x68c2f034 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6e689282 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6eaf9334 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x79598dc3 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7c0e575e usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x81c2475a usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x82e311dc usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x844a212e usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x85307b17 usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8ccabef1 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8f1f5c8f usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa19085f9 usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa2cb9adf usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xad1107c1 usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xafa75c67 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb11c2da6 usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb1a2ef69 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb9f00798 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbcf624c7 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc5cd2a2b usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcfd16c5d usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd028e346 usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd05e2bc5 usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd38ec539 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdfe1422a usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe317460c usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe4213de5 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe4be2dbe usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe57ed85b usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf1ddc991 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfa56ea17 usb_get_descriptor +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xe280aa6b sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x03c6859b ezusb_set_reset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x117be126 ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x466046ba usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa3d7a4f7 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9a7ce616 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xc5a1fcb8 lcd_device_unregister +EXPORT_SYMBOL drivers/video/console/bitblit 0x98ab52bc fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0x68a90b51 get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0x45a2d499 soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0x98bbefdb fbcon_set_tileops +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x3b00610d cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb6d387e9 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd90b0e76 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xda1a9cab cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x933ef078 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9c6c7a8d display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x39f48a19 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x5f06a67a matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x75f9f1fd g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc031c784 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x37fc2bf3 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6aef8adf matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x79ca9d9e matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xf201ab36 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x5811f740 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x0561167a matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x409f814e matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x816ed31a matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xbe71758f matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xdbedf6e2 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x776a9e01 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd1f4c952 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x13e8ee4b matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x26ad8b13 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x82001233 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc7b1bc96 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe5232991 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/output 0x8dbe75c0 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xff5a908e video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0xfe963115 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x156e435a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1af195d4 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x37f3d8cf svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x3d330aa6 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x54312cca svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x68fe9372 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0x7ff654f4 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb8ca57d5 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xd6ec2c44 svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xd7ca42d6 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xeb8260b4 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xee095a48 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xf838f24a svga_get_caps +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb3cc64ad w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xee753c9e w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x80e2ad07 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcd4d7800 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd3382592 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xe771155f w1_unregister_family +EXPORT_SYMBOL fs/configfs/configfs 0x02562d16 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x02efb4dd config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x2d83e6ad config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x642da9d9 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x806ebacb configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x94c2f514 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x9f768b33 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x9f84a20d config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xba422811 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xbc789de8 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xc1ce9029 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xdd6e4984 config_item_init +EXPORT_SYMBOL fs/jbd/jbd 0x00c127a3 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0x0cdd5e37 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x119d2e9d journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x13687fb9 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x1abb56b3 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x1e41034d journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x232dbdc4 journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x2402c185 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x310dbdb5 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0x363d8c41 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x3727635f journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x4fac835e journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x5399553c journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x5746b58e journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x574ee0b1 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x5ab93695 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0x6049476b journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x605ca8f3 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x6a18b63d journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x6acc99dd log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x7492c7bc journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x7eeb4eaa journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x808c8ce8 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0x8e1872ec journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x90919476 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x923e2b18 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x9d66ff68 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0xba7f4df7 journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xbb869cc8 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0xbf232023 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0xc0b577d9 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0xc25ddb16 journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xd0b2c478 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0xd28a1811 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xe7f2d470 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0xea99e0b1 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xfddc0e92 journal_dirty_data +EXPORT_SYMBOL fs/lockd/lockd 0x8891e428 nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xa9594432 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x36a300d8 mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0x8be3c6e8 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0x962e42e6 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0x97a5eeb9 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x9d85c306 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xc395381d mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xd279978f mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xd62cd9a4 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0xda736db1 mb_cache_entry_get +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x1028c873 nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x2deb3737 nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x1287bb3a nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0xa39051ea nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xef013964 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/xfs/xfs 0xa31cf18e xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x7e821ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd819a524 crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xdf59602c crc_itu_t +EXPORT_SYMBOL lib/crc16 0x146289b7 crc16_table +EXPORT_SYMBOL lib/crc16 0x84d4c8cc crc16 +EXPORT_SYMBOL lib/crc7 0x0ac94d23 crc7_syndrome_table +EXPORT_SYMBOL lib/crc7 0xecfd4ee6 crc7 +EXPORT_SYMBOL lib/libcrc32c 0x90ec507c crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0xc2904b41 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x60ef30ef make_8023_client +EXPORT_SYMBOL net/802/p8023 0xa66a69a7 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x13217a49 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0x1360c2dd p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0x1acc38f3 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x205c4fdc p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x2760c1dd p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x27af52ae p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x2ca6e0d2 p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x30a7c989 p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0x34ce663a p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x38db99c4 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x43d5aaec p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x4438ddff p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x46af27af p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x4cb4ec0c p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x4f474556 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x5040278d p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x54f9325d p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x5a0cee4f p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x5fa77b63 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x60d5c22e p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x60e54c0e p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x6979ce42 p9_create_tflush +EXPORT_SYMBOL net/9p/9pnet 0x6b946aee p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x6ed838f2 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0x83195dcf p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x85a15d8c p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0x89138d97 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x962d56d7 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x96678f45 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x9cc8806e p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x9fb67b63 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xabfe435b p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xad006724 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xb00caf31 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xbc6dfe52 p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0xc91a29de p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0xd38b67d0 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xe1e530e5 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe59d8918 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xe71e12a6 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe820e483 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xea37b1b1 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xedcfdec2 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0xf04105a4 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf9298403 p9_create_tcreate +EXPORT_SYMBOL net/appletalk/appletalk 0x0a4a4b45 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x29176ed3 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xf20e8b60 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xf99e0f5a alloc_ltalkdev +EXPORT_SYMBOL net/ax25/ax25 0x026ce336 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x0f6562d3 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x1252d1a7 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x296351f6 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x41cf0f0c ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x76119bab ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc75a482c ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xe10a6616 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xe3df7d36 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xf5550f68 ax25_findbyuid +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0995140c hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x19fbd976 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24c63ffa hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33ae4646 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35865603 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39c4c528 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c41f553 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x45450a90 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x48016cc3 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x544c7a0d hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d554172 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x60ebbd36 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x71819c7d hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a499d7f bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x80be7a98 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x858a6b61 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9218ac1d bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x92c48e42 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2a2f01b hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7da4204 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xad5cd628 hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0xadd58075 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc219dcd3 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc262a99c hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9f9a9fc bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd56b0305 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe2a4b59f bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9c3def6 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x8ec2927f br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x04592ec2 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x47995c0e ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5f6c549f ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7150a991 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x972f39bc ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xac7fed1e ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc20121ea ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xdebe25ef ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe6cddbdd ebt_register_table +EXPORT_SYMBOL net/ieee80211/ieee80211 0x10733b7a free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x13b203b4 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x387581ac ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x52ff2cde ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x561da108 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6531fe0f alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6e3aa4c3 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x83b3925b ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0x8b13facc ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x8fb5fedb ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x96f4f984 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa32467aa ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa48792ec ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa676a4a5 ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb731e545 escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc7b5bbc1 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xcfaab5cc ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd770f2e0 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xeeb7dbd5 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf0eb6974 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x16901bc9 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x271b2dcd ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x9f0b44e4 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xca6afab6 ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xdd1ebb8b ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xdf06b559 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ipv4/inet_lro 0x082a1f22 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0x2f58dce8 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x70a65b89 lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x7afb5bc4 lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xa1d9c506 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xfab8500a lro_flush_pkt +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x0778c3aa ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x087262f5 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x2d45c9bd ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x43e2fb4e register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x4a9c7ca9 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x61052889 ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x6dcf99eb ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x73cdbf0e unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x83ceb21c ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x942749e6 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xeec00114 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x21b262e8 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x62d0315e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd5b22602 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x24d9bed5 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd4d965af ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd97f00a9 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2b37bc3e nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x79e28cec nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7b585362 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x804e44dd nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9fbbbafe nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa5176eb0 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb15290b6 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xcae1c5ec nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xe66e8a87 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xfce0e0fe xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x0ab08e03 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x0abdf609 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x0d6dce63 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x0fd5e34d ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x11fdfb2c compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x13eb91eb inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x1b28b039 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x22c2dae7 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x2ecafa91 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x473b04f2 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x4a485f9e ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x4bea5e20 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x4e41aed5 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x65cb6b26 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x718b12f1 compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x745c3c58 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x751ba4be xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x7cf5cb05 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x7d173b16 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0xa308cd52 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xa98885dc inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xb1d2fbe9 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xc3c55401 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd7810f18 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xe1418f4a inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xf491ae51 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xf7df0f4d rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xfd7c6d71 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xff4f8f23 ip6_route_output +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2ef0a6b0 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x42f9e170 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6a407e2a ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x80472a0b ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe1472776 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x4289b6f3 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x9c9eaf7c xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0c184b4d ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1e340f54 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x682fadec ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6fb73731 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9f251f22 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb9e2ffe5 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xeea7c3fe ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf0f205e2 ircomm_open +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0f70ea6a irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1a617b1d irias_find_object +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x263f5ab4 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x2e35a650 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x3e0f1b87 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x4096621c irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x441fea95 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4ba5dc74 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x4cb0c3a2 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x5020ce5a irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x5958d1a6 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x5b8b95bb hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x5d1487c7 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x62c83096 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x6630548b irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6d5c7c2c irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0x6fde5381 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7e3d4358 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0x86d490f7 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x8a0d5218 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x8d876862 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x905ce72b async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x9073b294 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x91b41089 iriap_close +EXPORT_SYMBOL net/irda/irda 0x9694bb4c hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x982b6b09 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9fea5965 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xa45993f4 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xa7418839 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xaf4e53cc irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xb50ca4d1 iriap_open +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbde32277 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc10f5acd irias_new_object +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xcc087739 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xccf3f73d irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xd3edad11 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd50c1096 proc_irda +EXPORT_SYMBOL net/irda/irda 0xd8d9542b irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdfaf55d4 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xe541e2c2 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xe8cec238 irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xef582c5f irlap_close +EXPORT_SYMBOL net/irda/irda 0xf33550f0 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xf4ef84a5 irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0xf61f12d5 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xf6b13f08 irlap_open +EXPORT_SYMBOL net/mac80211/mac80211 0x00c032e7 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x272a0041 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x37c7f770 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4061c2c6 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x4373022e ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x437c99b1 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x46be67a2 ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4939c168 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4a1344e3 ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x617b7ca8 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x6ecdd69a ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x74d99da2 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x82331b1d ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x82f77d20 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x838bd290 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x88cf8707 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x8bf8c48c ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x90d0f85d ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xa94f6cfb sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xac23b588 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xace643c0 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xae4f2d73 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xb0afb960 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xbd30a64a ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc076574a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xd12dfdbe __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xd4b4ed0f __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xde94d1be ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xf27d5ebf ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xf5e44f66 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0xffac967d __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x780f3b94 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7d468724 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb056a72e per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x38442952 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x5eae93f9 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x778c018c xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x83a3d111 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x92eb3dc7 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x9e4d6751 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xca8fa108 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xcbd82510 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xd16cae93 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd264c4b6 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd5c271c9 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd7e5bc7a xt_register_matches +EXPORT_SYMBOL net/rfkill/rfkill 0x505a73fe rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x51c600ab rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x77ebc5e7 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0xd23caf5b rfkill_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0e1d653b rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2a666e82 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3d0f7488 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x57845e3a rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5fda38cb rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x61b287ee rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8686424a rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x96fdd122 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xadefbf1b rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb178f76f rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb85d8ed2 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbb33f5e6 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xddce8098 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf5483c44 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf94dc19c rxrpc_kernel_reject_call +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x08c9b811 gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0d9fd9d6 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3da4bd40 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4165f126 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4 g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6522e575 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x75f1b735 gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7739a254 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x978d7a29 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb0af174a gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb0c372f2 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb13bd3f5 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbc1ce8eb gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xcab7795d make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe6fe0930 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf0f931c4 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf5a527d9 gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x001f8c39 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0071e26f unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x012dc4f6 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02622f0b rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x03e2a0ea rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x04531bd9 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0681b4d5 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x09aeb210 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0b4ace5a svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0c72ebd1 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x11ff07d0 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12d6dc54 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x17bd3225 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1836e8c6 cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1a4b5275 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1bf40d08 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1f1052e5 svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1f68d75c rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23ad3479 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23dd1b6d svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23f0b58e svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x27bc3d2e rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2a642a6d rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2b38bf61 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2c9122fc rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e856f8f xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3059edc0 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31773070 rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3a55afee svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3c5778ca xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3d335808 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x43595f7a rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4868b1f9 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x498e483f rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4a38ff92 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4cbd2255 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4faa1148 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x51c1d054 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5260f8d0 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x56ac18f7 xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x587ef634 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5dc1a9b5 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5ffc4444 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6000aae8 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x67065d58 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6957c769 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x695ff3d6 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x70e3e6ae read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x73303c03 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7595917a rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x76e2fee9 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x79ee6c79 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7b9dd140 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x801f6ba9 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x83598f87 rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x85dbbbf1 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9041dcc6 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x921c2789 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ac72c69 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa7af3053 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0xac059e64 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xadf521cf xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaecae8da xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb0e48bda rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb1910984 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb419d0f1 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb58568f9 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb5a224df rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb88422bc svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb91a614e svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbd1cd39f rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbdae3e0b xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc36f24e4 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc46a65a4 rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc4ec6df3 xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc64beb74 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc653151a rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd13f9a77 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd1b3f0b4 svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd7dfe0bf rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdbd8e678 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdfd69364 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe0ba941c xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeacf4004 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xefd5f42d rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf0792b94 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf093ed47 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8e907a3 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfa48e027 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfa7146bb rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfffc2599 svc_exit_thread +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1b509e49 tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x236a2239 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x2e25ad7a tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0x304d7d8c tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x31480d03 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x3c5c1bbc tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0x3d33445c tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x4ccd5f7d tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0x535c2b64 tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x53bfe9d5 tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5681f1b2 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x5a2556a2 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x5b6a7717 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x5da1c9ef tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x5fb2f4bf tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x6b51b348 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x71dbc2b7 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x7ca349d0 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x8c7cb54e tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x96f85231 tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x9b57f911 tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0xa40e28fb tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xa77b9c72 tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb467f1c1 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xb6bfa1cf tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xb703abd0 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xb73cd311 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xb84b0d26 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xbe9c572c tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xc74d0dce tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xc8ffd4c1 tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xccb3e9ef tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0xd0db9a7e tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0xd706c839 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0xd976f2e3 tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xe430ccdb tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeb94d5b9 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xee132845 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xef8295ea tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xfaec8bb9 tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xfce23467 tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0xffd56365 tipc_reject_msg +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xe41c283c register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x1cd68241 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x4728e806 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x59a773ee wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x68aa9fc3 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x9474eb54 ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xfb2f7542 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x0046bb69 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x005f616e xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x008d14bc kernel_getpeername +EXPORT_SYMBOL vmlinux 0x0093c29f tc_classify_compat +EXPORT_SYMBOL vmlinux 0x00ab2397 sget +EXPORT_SYMBOL vmlinux 0x00d0412c d_alloc +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x0117e0ab find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x0119ad8d skb_checksum_help +EXPORT_SYMBOL vmlinux 0x0131f697 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x014c1fa1 audit_log_start +EXPORT_SYMBOL vmlinux 0x015553f5 seq_escape +EXPORT_SYMBOL vmlinux 0x0163ac87 print_mac +EXPORT_SYMBOL vmlinux 0x016b3ff7 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x0178c85b sn_dma_set_mask +EXPORT_SYMBOL vmlinux 0x017bd979 elv_rb_del +EXPORT_SYMBOL vmlinux 0x018334e9 rtnl_notify +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a94cc2 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x01b5e1d2 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x01baae71 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x01e8917c vfs_quota_sync +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0215201f pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0269cc83 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x026c3d97 init_net +EXPORT_SYMBOL vmlinux 0x027933e1 tiocx_dma_addr +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x029a0f24 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x02a67a7d tty_name +EXPORT_SYMBOL vmlinux 0x02a9856b pfm_mod_write_ibrs +EXPORT_SYMBOL vmlinux 0x02bfdf7c iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e860de init_special_inode +EXPORT_SYMBOL vmlinux 0x03053a3e skb_split +EXPORT_SYMBOL vmlinux 0x034794d7 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03976b21 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03acbf54 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x03dbc29e vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x04038c0d wireless_spy_update +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x044f98bd kernel_sendpage +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x046eb862 skb_checksum +EXPORT_SYMBOL vmlinux 0x0471e3fa idr_remove_all +EXPORT_SYMBOL vmlinux 0x0484c6c4 acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x0489d241 d_delete +EXPORT_SYMBOL vmlinux 0x048bc3c4 nla_reserve +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04a4c834 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x04fa9e9d idr_replace +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05495e67 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x05a36a07 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x05b76f0e tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x05b8f2bc hp_acpi_csr_space +EXPORT_SYMBOL vmlinux 0x05d10128 d_instantiate +EXPORT_SYMBOL vmlinux 0x060d680f xor_ia64_4 +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x064163be tty_register_device +EXPORT_SYMBOL vmlinux 0x0660553b ida_get_new +EXPORT_SYMBOL vmlinux 0x067cc70a netlink_unicast +EXPORT_SYMBOL vmlinux 0x069c0bf3 register_snap_client +EXPORT_SYMBOL vmlinux 0x06a86bc1 iowrite16 +EXPORT_SYMBOL vmlinux 0x06bfd4f6 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x06cebeb3 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x06f96315 set_binfmt +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070aadd3 alloc_disk +EXPORT_SYMBOL vmlinux 0x0718c22c _write_lock_irq +EXPORT_SYMBOL vmlinux 0x071fe53a tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x07745451 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07febad6 input_release_device +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083b28dc __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x084ffe26 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x08697a5d inet_frags_fini +EXPORT_SYMBOL vmlinux 0x089dc4d3 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x08c911e7 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x08e5e0cc simple_link +EXPORT_SYMBOL vmlinux 0x08e6b007 ia64_iobase +EXPORT_SYMBOL vmlinux 0x08eea01c neigh_table_clear +EXPORT_SYMBOL vmlinux 0x090f7ef0 registered_fb +EXPORT_SYMBOL vmlinux 0x09115174 cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x092e61b7 __release_region +EXPORT_SYMBOL vmlinux 0x093712e5 acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09676f49 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x0989da28 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09991e7b kfifo_init +EXPORT_SYMBOL vmlinux 0x099e092d d_alloc_root +EXPORT_SYMBOL vmlinux 0x09acf14e request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a372247 acpi_get_pxm +EXPORT_SYMBOL vmlinux 0x0a37d36c blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x0a4459d5 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acca637 min_low_pfn +EXPORT_SYMBOL vmlinux 0x0b0ba580 unregister_netdevice +EXPORT_SYMBOL vmlinux 0x0b1221c4 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b33b78e tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x0b55220a set_device_ro +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9c3c41 write_inode_now +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bd4cb0c mnt_pin +EXPORT_SYMBOL vmlinux 0x0be7a943 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0be7e3d7 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x0c0cd206 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0x0c3dbccd reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x0c4dcd47 _read_unlock_irq +EXPORT_SYMBOL vmlinux 0x0c5f4c1f gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x0ccaff37 ida_init +EXPORT_SYMBOL vmlinux 0x0cd7d26b _read_lock +EXPORT_SYMBOL vmlinux 0x0cdccbc8 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0x0ce2e0b4 pfm_mod_read_pmds +EXPORT_SYMBOL vmlinux 0x0cec5511 elevator_init +EXPORT_SYMBOL vmlinux 0x0d17ba15 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0d1afd7c hwsw_unmap_sg +EXPORT_SYMBOL vmlinux 0x0d2f50b5 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0d4cb4f7 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d63748f remove_inode_hash +EXPORT_SYMBOL vmlinux 0x0d756cc7 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da9776d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x0dd123f9 skb_queue_head +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e07152e blk_init_tags +EXPORT_SYMBOL vmlinux 0x0e20ba74 current_fs_time +EXPORT_SYMBOL vmlinux 0x0e32d1d5 km_query +EXPORT_SYMBOL vmlinux 0x0e34b6bf percpu_counter_init +EXPORT_SYMBOL vmlinux 0x0e402370 ia64_pal_call_phys_static +EXPORT_SYMBOL vmlinux 0x0e4dfaf6 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x0e53adaa open_by_devnum +EXPORT_SYMBOL vmlinux 0x0e563fcc get_disk +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0e9f8877 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0eaefbf8 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x0ebdb05b kobject_set_name +EXPORT_SYMBOL vmlinux 0x0ec06557 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x0ec136bc acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x0ed00ba1 try_to_release_page +EXPORT_SYMBOL vmlinux 0x0f486190 hwsw_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x0f616fc0 sn_pci_unfixup_slot +EXPORT_SYMBOL vmlinux 0x0f72958a vc_cons +EXPORT_SYMBOL vmlinux 0x0f7f62c8 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x0fe2b8d8 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x0ffa0741 skb_dequeue +EXPORT_SYMBOL vmlinux 0x0fffb762 f_setown +EXPORT_SYMBOL vmlinux 0x1029387e put_filp +EXPORT_SYMBOL vmlinux 0x102b5b21 sn_system_serial_number_string +EXPORT_SYMBOL vmlinux 0x1033b35c vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x104d432b kfifo_free +EXPORT_SYMBOL vmlinux 0x105c1f98 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107e99e4 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x10fd2ac5 ip_defrag +EXPORT_SYMBOL vmlinux 0x11001f52 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x110f8cb5 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116fc341 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11be1d51 __netif_schedule +EXPORT_SYMBOL vmlinux 0x11c254a1 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x11dc5e18 __alloc_skb +EXPORT_SYMBOL vmlinux 0x11e89d74 search_binary_handler +EXPORT_SYMBOL vmlinux 0x124c157f acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x124c9939 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x124e8859 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x12655913 sba_map_single +EXPORT_SYMBOL vmlinux 0x12688ec2 open_exec +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x126be65c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x127b9b13 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x128cc347 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x129697b8 memcpy_toio +EXPORT_SYMBOL vmlinux 0x12a0f2dc skb_pad +EXPORT_SYMBOL vmlinux 0x12ab301d dput +EXPORT_SYMBOL vmlinux 0x12b0f15c do_splice_from +EXPORT_SYMBOL vmlinux 0x12d97ab1 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x12eaeef6 ilookup +EXPORT_SYMBOL vmlinux 0x130afd75 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x1313ea16 qdisc_reset +EXPORT_SYMBOL vmlinux 0x131b8d5e xfrm_register_km +EXPORT_SYMBOL vmlinux 0x131e96c5 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x138e41a4 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x13ae98cf pci_find_capability +EXPORT_SYMBOL vmlinux 0x13be1c27 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x13ed5895 __kfree_skb +EXPORT_SYMBOL vmlinux 0x1411293e inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x1412952a ida_pre_get +EXPORT_SYMBOL vmlinux 0x141ae23c __sk_dst_check +EXPORT_SYMBOL vmlinux 0x1438dc57 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x14669691 netdev_state_change +EXPORT_SYMBOL vmlinux 0x146ff028 km_report +EXPORT_SYMBOL vmlinux 0x147c50e3 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x14c44901 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x14d6e8a4 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x15085089 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x151e1128 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15527c1d block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x15552aa7 handle_sysrq +EXPORT_SYMBOL vmlinux 0x157b13d9 request_key +EXPORT_SYMBOL vmlinux 0x158ac7ed blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x159193c7 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x15aa0769 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x16052b30 serio_open +EXPORT_SYMBOL vmlinux 0x16089259 d_invalidate +EXPORT_SYMBOL vmlinux 0x161ba357 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x16357482 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x1674f888 vfs_stat +EXPORT_SYMBOL vmlinux 0x16875605 bmap +EXPORT_SYMBOL vmlinux 0x168bfbd5 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x1692d8bb netpoll_poll +EXPORT_SYMBOL vmlinux 0x16e4e378 bio_split_pool +EXPORT_SYMBOL vmlinux 0x16e6e429 submit_bh +EXPORT_SYMBOL vmlinux 0x170ddf79 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0x17165b2c unregister_snap_client +EXPORT_SYMBOL vmlinux 0x171826ab sn_coherency_id +EXPORT_SYMBOL vmlinux 0x171f269a __serio_register_driver +EXPORT_SYMBOL vmlinux 0x1780c84c vfs_statfs +EXPORT_SYMBOL vmlinux 0x179c61e4 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17bd35b0 machvec_dma_sync_sg +EXPORT_SYMBOL vmlinux 0x17be68ca acpi_clear_event +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17cc840b new_inode +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17fd99bd sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x182b122f tcp_proc_register +EXPORT_SYMBOL vmlinux 0x18339ef0 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1895fe6f wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x18c9b991 kick_iocb +EXPORT_SYMBOL vmlinux 0x18ccf675 user_revoke +EXPORT_SYMBOL vmlinux 0x18fba205 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x190b990f set_blocksize +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x195a6cff vfs_read +EXPORT_SYMBOL vmlinux 0x197251a7 input_register_handle +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19d3e6ed sba_free_coherent +EXPORT_SYMBOL vmlinux 0x19f44033 llc_sap_open +EXPORT_SYMBOL vmlinux 0x1a09f8e2 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x1a2def9b udp_hash_lock +EXPORT_SYMBOL vmlinux 0x1a4d649e ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x1a5ba3ec tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x1a6f2521 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x1a891d09 devm_free_irq +EXPORT_SYMBOL vmlinux 0x1aab4ca8 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x1ab75b39 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x1ab8eed6 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae3728b do_splice_to +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1aebdff6 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b65045c tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x1b6a0a2a __any_online_cpu +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1be1babf add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x1bec25d7 register_nls +EXPORT_SYMBOL vmlinux 0x1bfd6ed8 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x1bfe6734 __breadahead +EXPORT_SYMBOL vmlinux 0x1c07bb14 freeze_bdev +EXPORT_SYMBOL vmlinux 0x1c30a365 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x1c465a2a __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0x1c58427f acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x1c69b598 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce89ffe proc_root_driver +EXPORT_SYMBOL vmlinux 0x1cf357e5 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x1cf7528b d_alloc_name +EXPORT_SYMBOL vmlinux 0x1d05ad72 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d4b51fc tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x1d4bec3d key_revoke +EXPORT_SYMBOL vmlinux 0x1d6e1d43 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x1d7df06d sn_dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x1da65c7c init_task +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e4ebfe9 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x1e6974e5 mutex_trylock +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e91df85 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x1ead6e91 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x1efab1d0 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x1f573c11 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x1f5a4039 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x1f656415 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x1f6a0d43 pci_set_master +EXPORT_SYMBOL vmlinux 0x1f772630 input_register_device +EXPORT_SYMBOL vmlinux 0x1f8ab8df pfm_mod_write_dbrs +EXPORT_SYMBOL vmlinux 0x1facc7e4 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20301636 physical_node_map +EXPORT_SYMBOL vmlinux 0x20599da4 keyring_clear +EXPORT_SYMBOL vmlinux 0x206a10c1 skb_append +EXPORT_SYMBOL vmlinux 0x20c09bd8 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20e3b175 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x210f0448 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x214c0dca generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x2177bd71 acpi_disable_event +EXPORT_SYMBOL vmlinux 0x21aa0302 unw_access_ar +EXPORT_SYMBOL vmlinux 0x21e05e58 __kfifo_put +EXPORT_SYMBOL vmlinux 0x21ebfe70 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x221f6543 load_nls_default +EXPORT_SYMBOL vmlinux 0x224ac7f4 seq_puts +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b4a111 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x22cf1b4e I_BDEV +EXPORT_SYMBOL vmlinux 0x22d33014 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x22de2cc0 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x230176e1 pfm_register_buffer_fmt +EXPORT_SYMBOL vmlinux 0x2312e536 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x233161a0 tcp_poll +EXPORT_SYMBOL vmlinux 0x2338d762 lock_may_write +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x23618484 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x236cf5dd tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x237492d2 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x23a5b4d3 dev_open +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23e6f1dd netpoll_print_options +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2410b275 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x241af1b0 console_start +EXPORT_SYMBOL vmlinux 0x242d6041 add_wait_queue +EXPORT_SYMBOL vmlinux 0x2437685d _write_unlock +EXPORT_SYMBOL vmlinux 0x24397f1b subsys_create_file +EXPORT_SYMBOL vmlinux 0x243e5d92 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x24671aa0 swiotlb_map_single +EXPORT_SYMBOL vmlinux 0x2477af08 register_netdev +EXPORT_SYMBOL vmlinux 0x24a62c58 tcp_unhash +EXPORT_SYMBOL vmlinux 0x24c44db8 nonseekable_open +EXPORT_SYMBOL vmlinux 0x24d2dbb1 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x24d68408 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x24db4ad9 put_io_context +EXPORT_SYMBOL vmlinux 0x24e3d33e neigh_seq_start +EXPORT_SYMBOL vmlinux 0x24ea842a pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x24fb243b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250e46e0 tioca_gart_found +EXPORT_SYMBOL vmlinux 0x254fb6df bdget +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25ae0c84 node_to_cpu_mask +EXPORT_SYMBOL vmlinux 0x25b4eb5e _read_lock_irq +EXPORT_SYMBOL vmlinux 0x26223b32 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x262a59d8 notify_change +EXPORT_SYMBOL vmlinux 0x2640a49f ec_transaction +EXPORT_SYMBOL vmlinux 0x2644467d simple_empty +EXPORT_SYMBOL vmlinux 0x2651f885 skb_over_panic +EXPORT_SYMBOL vmlinux 0x268520e4 blk_free_tags +EXPORT_SYMBOL vmlinux 0x2686dfee cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x26a4a82d udp_prot +EXPORT_SYMBOL vmlinux 0x26c013f7 register_framebuffer +EXPORT_SYMBOL vmlinux 0x26d0f989 neigh_destroy +EXPORT_SYMBOL vmlinux 0x26f3b58f simple_sync_file +EXPORT_SYMBOL vmlinux 0x26f7de5b proc_dostring +EXPORT_SYMBOL vmlinux 0x26f8f0b8 iowrite16be +EXPORT_SYMBOL vmlinux 0x26feac2d bte_copy +EXPORT_SYMBOL vmlinux 0x27175260 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x272a109a acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x272fd12f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x27783f90 register_quota_format +EXPORT_SYMBOL vmlinux 0x279f12cc dmam_pool_create +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c35e34 tty_register_driver +EXPORT_SYMBOL vmlinux 0x280d96b2 cpu_present_map +EXPORT_SYMBOL vmlinux 0x282b5899 _read_trylock +EXPORT_SYMBOL vmlinux 0x2842c556 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x2877c70c grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x2887cb47 key_link +EXPORT_SYMBOL vmlinux 0x289929e4 fb_get_mode +EXPORT_SYMBOL vmlinux 0x28aa8e90 idr_init +EXPORT_SYMBOL vmlinux 0x28b7f825 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x28bcefa4 bioset_free +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f745c9 pci_map_rom +EXPORT_SYMBOL vmlinux 0x29442fa4 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x294b372f simple_release_fs +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x297f4242 pci_iomap +EXPORT_SYMBOL vmlinux 0x29a4541f inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x29af9ec8 hwsw_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x29c43601 key_type_keyring +EXPORT_SYMBOL vmlinux 0x2a13ccc3 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x2a1bab71 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x2a5465cf vmalloc_end +EXPORT_SYMBOL vmlinux 0x2a6bb2c8 mempool_free +EXPORT_SYMBOL vmlinux 0x2a7221cd igrab +EXPORT_SYMBOL vmlinux 0x2af1141d fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x2af8e74a may_umount +EXPORT_SYMBOL vmlinux 0x2b5b38f8 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x2b5fd887 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x2b6837ef per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x2b697a6d kern_mem_attribute +EXPORT_SYMBOL vmlinux 0x2b7e2e0c inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bd0ac57 sock_map_fd +EXPORT_SYMBOL vmlinux 0x2bfef4b6 set_page_dirty +EXPORT_SYMBOL vmlinux 0x2c4dcd81 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x2c4ebccf pci_remove_rom +EXPORT_SYMBOL vmlinux 0x2c5edd7e vfs_getattr +EXPORT_SYMBOL vmlinux 0x2c75ebc5 end_that_request_last +EXPORT_SYMBOL vmlinux 0x2c793507 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x2c9367fb mempool_create +EXPORT_SYMBOL vmlinux 0x2ca63452 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cdb7d70 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x2ce1e27f __sn_mmiowb +EXPORT_SYMBOL vmlinux 0x2ce4be72 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x2ce57d67 kill_litter_super +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d06043c __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x2d0de272 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x2d1f8c14 mpage_writepage +EXPORT_SYMBOL vmlinux 0x2d23d64f pfm_unregister_buffer_fmt +EXPORT_SYMBOL vmlinux 0x2dc67825 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x2de39d9e kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2df762cb neigh_table_init +EXPORT_SYMBOL vmlinux 0x2e00447e inet_frag_kill +EXPORT_SYMBOL vmlinux 0x2e0f6b47 d_genocide +EXPORT_SYMBOL vmlinux 0x2e45e323 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x2e694b71 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2e99186e bitrev32 +EXPORT_SYMBOL vmlinux 0x2e992abb read_cache_pages +EXPORT_SYMBOL vmlinux 0x2ed29291 write_cache_pages +EXPORT_SYMBOL vmlinux 0x2ee1b8ff mpage_readpages +EXPORT_SYMBOL vmlinux 0x2f367d8c xor_ia64_3 +EXPORT_SYMBOL vmlinux 0x2f4adafb sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x2f4e9767 hwsw_map_single +EXPORT_SYMBOL vmlinux 0x2f5f4c8b acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x2f7340be set_irq_chip +EXPORT_SYMBOL vmlinux 0x2f97cc23 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x2faed47f pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x2fbc7843 struct_module +EXPORT_SYMBOL vmlinux 0x2fbe51bd xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x2fca70a1 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2fdb59bd shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x2fe1f5a2 release_sock +EXPORT_SYMBOL vmlinux 0x30013610 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x304cba08 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x307fc64d sock_no_poll +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f55165 invalidate_partition +EXPORT_SYMBOL vmlinux 0x30f56b6f hwsw_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x310a3666 pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0x3124b5cc posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x31286481 single_release +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3146eb24 block_read_full_page +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31549f21 d_validate +EXPORT_SYMBOL vmlinux 0x3170a190 dma_pool_create +EXPORT_SYMBOL vmlinux 0x3173a061 d_path +EXPORT_SYMBOL vmlinux 0x3177ba65 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x3185f491 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x31959ff0 ps2_init +EXPORT_SYMBOL vmlinux 0x31a5fbb7 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x32093cc7 __udivdi3 +EXPORT_SYMBOL vmlinux 0x32538421 module_remove_driver +EXPORT_SYMBOL vmlinux 0x32797be4 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x32faa2de blk_run_queue +EXPORT_SYMBOL vmlinux 0x3307a728 free_buffer_head +EXPORT_SYMBOL vmlinux 0x33310733 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x3359f763 path_lookup +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x336cb5e3 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x3370a913 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x33908571 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x33b328bb neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x33b7385e nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bdf13b swap_io_context +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33ccd047 filp_open +EXPORT_SYMBOL vmlinux 0x340fcb79 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x341c4c97 proc_symlink +EXPORT_SYMBOL vmlinux 0x3430daf0 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x343da08c __wake_up_bit +EXPORT_SYMBOL vmlinux 0x34425b37 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x34519d42 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x346732b6 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x3470b9e2 down_write_trylock +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34ce08e4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x3508388c names_cachep +EXPORT_SYMBOL vmlinux 0x350e9ba4 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x3532400b pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x3554203c nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x35a3902f follow_down +EXPORT_SYMBOL vmlinux 0x35ba2f18 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x35ba4ba0 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x3601b489 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x360741b2 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360e4ca8 generic_readlink +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x369380ac kernel_read +EXPORT_SYMBOL vmlinux 0x36e727bc read_cache_page +EXPORT_SYMBOL vmlinux 0x36e72efd arp_find +EXPORT_SYMBOL vmlinux 0x36f29efe vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x3717dbf9 ia64_pfn_valid +EXPORT_SYMBOL vmlinux 0x3728f63a tty_unregister_device +EXPORT_SYMBOL vmlinux 0x375f9341 sn_io_slot_fixup +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x3764198c kobject_get +EXPORT_SYMBOL vmlinux 0x3781812e __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x37835013 sock_wake_async +EXPORT_SYMBOL vmlinux 0x378a20d5 locks_init_lock +EXPORT_SYMBOL vmlinux 0x379fd5e4 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x37a4ce20 __alloc_pages +EXPORT_SYMBOL vmlinux 0x37a77946 tiocx_irq_free +EXPORT_SYMBOL vmlinux 0x37b4a79d complete_request_key +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37cb325d acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x37ee3f18 kobject_add +EXPORT_SYMBOL vmlinux 0x37fb8c25 key_task_permission +EXPORT_SYMBOL vmlinux 0x37fcca9c init_mm +EXPORT_SYMBOL vmlinux 0x382970f1 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x382af83b swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x384852c6 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x386a87a0 llc_sap_find +EXPORT_SYMBOL vmlinux 0x3877c195 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x389329e3 dst_alloc +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38e1b891 ip_fragment +EXPORT_SYMBOL vmlinux 0x38ed670e unload_nls +EXPORT_SYMBOL vmlinux 0x38fd29c6 nobh_write_end +EXPORT_SYMBOL vmlinux 0x391cc016 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x393875ef dget_locked +EXPORT_SYMBOL vmlinux 0x393c14e1 blk_put_request +EXPORT_SYMBOL vmlinux 0x3947c486 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x3962cc29 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x396bc69d pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x396f7836 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a54966 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x39a70c03 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x39b4b605 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x39d68297 force_sig +EXPORT_SYMBOL vmlinux 0x39ef4637 uart_match_port +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a265e0c bte_unaligned_copy +EXPORT_SYMBOL vmlinux 0x3a27a2b6 acpi_get_data +EXPORT_SYMBOL vmlinux 0x3a371bd5 kernel_accept +EXPORT_SYMBOL vmlinux 0x3a4f3b60 vfs_symlink +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ad5f055 kthread_create +EXPORT_SYMBOL vmlinux 0x3aed7527 isa_irq_to_vector_map +EXPORT_SYMBOL vmlinux 0x3b029f48 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x3b1ab577 tcp_prot +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b30581e __mod_timer +EXPORT_SYMBOL vmlinux 0x3b3aa08b secpath_dup +EXPORT_SYMBOL vmlinux 0x3b3be38d sn_region_size +EXPORT_SYMBOL vmlinux 0x3b68e7a2 read_dev_sector +EXPORT_SYMBOL vmlinux 0x3b78cd1a rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd646e2 bio_clone +EXPORT_SYMBOL vmlinux 0x3c00a24e tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x3c1e90cd xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x3c29e626 dev_close +EXPORT_SYMBOL vmlinux 0x3c2b5491 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x3c6586bc kset_unregister +EXPORT_SYMBOL vmlinux 0x3c8fe40e shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cbe524a generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x3cda70bf sk_reset_timer +EXPORT_SYMBOL vmlinux 0x3cdde3b7 ia64_ivt +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ceb16f1 module_add_driver +EXPORT_SYMBOL vmlinux 0x3d014d03 filemap_fault +EXPORT_SYMBOL vmlinux 0x3d18763c _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x3d1c167e bio_split +EXPORT_SYMBOL vmlinux 0x3d27a53f __grab_cache_page +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dc97166 sk_free +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e50d044 __elv_add_request +EXPORT_SYMBOL vmlinux 0x3e9345a8 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x3e9d6718 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x3e9e539a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1d31ad tiocx_swin_base +EXPORT_SYMBOL vmlinux 0x3f33821b cx_driver_unregister +EXPORT_SYMBOL vmlinux 0x3f392a60 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4a2f0b d_alloc_anon +EXPORT_SYMBOL vmlinux 0x3f6baf1d misc_deregister +EXPORT_SYMBOL vmlinux 0x3f6bc633 __do_clear_user +EXPORT_SYMBOL vmlinux 0x3f72ee13 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x3f8064ce crc32_be +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fc6cd19 blk_get_request +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffde5b8 fasync_helper +EXPORT_SYMBOL vmlinux 0x40012a9f input_event +EXPORT_SYMBOL vmlinux 0x401ea869 clocksource_register +EXPORT_SYMBOL vmlinux 0x4055a920 acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a88c25 udplite_prot +EXPORT_SYMBOL vmlinux 0x40ce4f71 remote_llseek +EXPORT_SYMBOL vmlinux 0x40f5b6d6 posix_acl_clone +EXPORT_SYMBOL vmlinux 0x4108c1e7 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x41429220 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4171fa1e load_nls +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41a23290 tioca_fastwrite_enable +EXPORT_SYMBOL vmlinux 0x41b3e367 bio_pair_release +EXPORT_SYMBOL vmlinux 0x41bfc91c tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x41d42afa neigh_create +EXPORT_SYMBOL vmlinux 0x41e5113d generic_setlease +EXPORT_SYMBOL vmlinux 0x41ef1b3e uart_add_one_port +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421fe93f nlmsg_notify +EXPORT_SYMBOL vmlinux 0x42261efd fb_pan_display +EXPORT_SYMBOL vmlinux 0x42578e80 acpi_get_type +EXPORT_SYMBOL vmlinux 0x426c1274 dquot_initialize +EXPORT_SYMBOL vmlinux 0x428c8d73 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x429fa39a sk_wait_data +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42bed219 kobject_del +EXPORT_SYMBOL vmlinux 0x42c7d73f __seq_open_private +EXPORT_SYMBOL vmlinux 0x42de6a27 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x42fee245 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x433a4d61 release_firmware +EXPORT_SYMBOL vmlinux 0x433e0591 sn_generate_path +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436a7f98 groups_free +EXPORT_SYMBOL vmlinux 0x439090b9 kernel_thread +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43c66da6 km_policy_notify +EXPORT_SYMBOL vmlinux 0x43dcc2e5 inet_getname +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43f13099 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x44198573 __nla_reserve +EXPORT_SYMBOL vmlinux 0x4434950d inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x4444a7d4 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x4454a218 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x447b38f6 bio_map_kern +EXPORT_SYMBOL vmlinux 0x44902cff acpi_enable_event +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c0d7d0 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x4505ff07 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x4515cc4c seq_open_private +EXPORT_SYMBOL vmlinux 0x4521280d skb_copy_expand +EXPORT_SYMBOL vmlinux 0x454fb519 ioremap +EXPORT_SYMBOL vmlinux 0x4559629f block_write_end +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x45730a65 cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x4599f4b7 seq_read +EXPORT_SYMBOL vmlinux 0x45cccf2f tty_check_change +EXPORT_SYMBOL vmlinux 0x45cdbf55 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x45d8000a downgrade_write +EXPORT_SYMBOL vmlinux 0x45dd6557 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x45ecc7f6 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x45f9d331 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x46035099 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4612f3a1 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x4622f01b bio_init +EXPORT_SYMBOL vmlinux 0x46432b86 km_policy_expired +EXPORT_SYMBOL vmlinux 0x4696be0a wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x46a3a1c5 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x46b399f5 poll_initwait +EXPORT_SYMBOL vmlinux 0x46bef10f elv_add_request +EXPORT_SYMBOL vmlinux 0x46c9ca75 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x46d0f5c2 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x46edf16d put_page +EXPORT_SYMBOL vmlinux 0x47027ef7 skb_clone +EXPORT_SYMBOL vmlinux 0x47172435 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x47297f48 dma_get_cache_alignment +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47868486 pci_request_regions +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47c8e9d5 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x47d4b195 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x47fc29a7 unw_access_gr +EXPORT_SYMBOL vmlinux 0x48325af6 kobject_register +EXPORT_SYMBOL vmlinux 0x48341c14 mpage_readpage +EXPORT_SYMBOL vmlinux 0x483af1bf neigh_lookup +EXPORT_SYMBOL vmlinux 0x4863ab0f generic_setxattr +EXPORT_SYMBOL vmlinux 0x4891c9af llc_add_pack +EXPORT_SYMBOL vmlinux 0x48bb66a0 dquot_transfer +EXPORT_SYMBOL vmlinux 0x48d0d4ca try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x48d73a86 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x490abdb3 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x493b0b46 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x4943ebd8 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x49d42b48 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x49fb6b79 file_permission +EXPORT_SYMBOL vmlinux 0x4a0eabe5 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x4a117a36 page_readlink +EXPORT_SYMBOL vmlinux 0x4a2e39f2 wait_for_completion +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a453f53 iowrite32 +EXPORT_SYMBOL vmlinux 0x4a541e2a __umoddi3 +EXPORT_SYMBOL vmlinux 0x4a61f1c8 idr_for_each +EXPORT_SYMBOL vmlinux 0x4a777c57 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x4a83769c acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x4a93691d sock_release +EXPORT_SYMBOL vmlinux 0x4add7dbc register_console +EXPORT_SYMBOL vmlinux 0x4b103d59 genl_sock +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b323e99 is_container_init +EXPORT_SYMBOL vmlinux 0x4b6b8d13 vmem_map +EXPORT_SYMBOL vmlinux 0x4b942cfe mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x4bb06735 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x4bb9a7ee uncached_alloc_page +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bf355ce skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x4c045fdc filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c15e46f kobject_init +EXPORT_SYMBOL vmlinux 0x4c332df5 nobh_writepage +EXPORT_SYMBOL vmlinux 0x4c38bc9a proc_bus +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c4dbbe1 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x4c5a7f36 dev_add_pack +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc552dc end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x4cd080b9 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x4cd62e14 vm_insert_page +EXPORT_SYMBOL vmlinux 0x4cee2e8c devm_request_irq +EXPORT_SYMBOL vmlinux 0x4d199660 find_get_page +EXPORT_SYMBOL vmlinux 0x4d61f8e2 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x4d64a7f7 sn_dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x4d6d2809 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x4d6dc3e1 _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x4d6e74ff jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x4dab675e flush_tlb_range +EXPORT_SYMBOL vmlinux 0x4dbe6864 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e0d036f udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x4e349f22 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e41e617 sync_page_range +EXPORT_SYMBOL vmlinux 0x4e5a8c7b uart_suspend_port +EXPORT_SYMBOL vmlinux 0x4e5da9cd get_unmapped_area +EXPORT_SYMBOL vmlinux 0x4e5f1c50 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x4e6a4505 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea2e396 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x4ea4f403 keyring_search +EXPORT_SYMBOL vmlinux 0x4eb47549 register_chrdev +EXPORT_SYMBOL vmlinux 0x4eb84fec console_stop +EXPORT_SYMBOL vmlinux 0x4ebc09f5 __invalidate_device +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee1e7ba simple_transaction_release +EXPORT_SYMBOL vmlinux 0x4ee5ba63 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x4efa5892 iget5_locked +EXPORT_SYMBOL vmlinux 0x4f05af11 vfs_create +EXPORT_SYMBOL vmlinux 0x4f18770b set_current_groups +EXPORT_SYMBOL vmlinux 0x4f18997e blk_insert_request +EXPORT_SYMBOL vmlinux 0x4f49ffbd __down_interruptible +EXPORT_SYMBOL vmlinux 0x4f6158c8 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x4f65557d blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x4fa8cf1a get_write_access +EXPORT_SYMBOL vmlinux 0x4fb0aa21 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x4fc0d4e9 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x4fc25521 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x4fdbed28 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x4ffb49ac blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502f852c swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x503410a3 kill_anon_super +EXPORT_SYMBOL vmlinux 0x50608d55 inet_listen +EXPORT_SYMBOL vmlinux 0x50899ed1 pci_restore_state +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50cc87fd tty_devnum +EXPORT_SYMBOL vmlinux 0x50d2acbc gen_pool_free +EXPORT_SYMBOL vmlinux 0x50d5242d register_exec_domain +EXPORT_SYMBOL vmlinux 0x51433fbb file_fsync +EXPORT_SYMBOL vmlinux 0x5196de6c compute_creds +EXPORT_SYMBOL vmlinux 0x51a925f1 key_validate +EXPORT_SYMBOL vmlinux 0x51d8032c serio_close +EXPORT_SYMBOL vmlinux 0x51eba19d get_empty_filp +EXPORT_SYMBOL vmlinux 0x520f8ceb blk_init_queue +EXPORT_SYMBOL vmlinux 0x522d6f2c start_tty +EXPORT_SYMBOL vmlinux 0x524d36d2 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x52805742 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x528faa6b tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x52c88213 bd_claim +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x53255c0f sn_bus_store_sysdata +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533a61e3 schedule_work +EXPORT_SYMBOL vmlinux 0x534d0727 init_buffer +EXPORT_SYMBOL vmlinux 0x536cdd01 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x538fd0d0 per_cpu____sn_hub_info +EXPORT_SYMBOL vmlinux 0x53990da9 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x53afae74 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x53b655e7 fd_install +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c4deef mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x53e9dfb0 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x53f66cf3 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0x540a6d95 fb_find_mode +EXPORT_SYMBOL vmlinux 0x5413bdd2 tr_type_trans +EXPORT_SYMBOL vmlinux 0x54192741 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x54364e41 bio_free +EXPORT_SYMBOL vmlinux 0x544b8413 backlight_device_register +EXPORT_SYMBOL vmlinux 0x547e3344 acpi_disable +EXPORT_SYMBOL vmlinux 0x54965a5b input_open_device +EXPORT_SYMBOL vmlinux 0x54a61228 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x54c1ccca stop_tty +EXPORT_SYMBOL vmlinux 0x54cc170c pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55cc4ab0 simple_lookup +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563d4da0 input_unregister_device +EXPORT_SYMBOL vmlinux 0x5640b920 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x56552730 pci_get_slot +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56ca38ff _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x56e87d10 vm_stat +EXPORT_SYMBOL vmlinux 0x56f2a4ce idr_pre_get +EXPORT_SYMBOL vmlinux 0x570b0303 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x57107cf3 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x5751a4b9 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x575ea7c4 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x57671257 inode_setattr +EXPORT_SYMBOL vmlinux 0x577df49a xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x5784e056 request_key_async +EXPORT_SYMBOL vmlinux 0x579d9ca8 fb_blank +EXPORT_SYMBOL vmlinux 0x57a0888d prepare_binprm +EXPORT_SYMBOL vmlinux 0x580991f7 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x584022c5 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5859adbe gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x586e259a __brelse +EXPORT_SYMBOL vmlinux 0x58864654 __bforget +EXPORT_SYMBOL vmlinux 0x58cbdb0d sock_kfree_s +EXPORT_SYMBOL vmlinux 0x58ed46d6 nla_parse +EXPORT_SYMBOL vmlinux 0x58f8dadb get_sb_single +EXPORT_SYMBOL vmlinux 0x590d4f0e unw_init_running +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594c25f1 down_read_trylock +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x5959942c blk_remove_plug +EXPORT_SYMBOL vmlinux 0x59926714 dev_change_flags +EXPORT_SYMBOL vmlinux 0x599d012b pci_fixup_device +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59cfe7ed udp_ioctl +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59f26895 xrlim_allow +EXPORT_SYMBOL vmlinux 0x5a1bd189 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4b1d35 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a77910c xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x5a7f76c6 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x5a8d433f find_task_by_pid +EXPORT_SYMBOL vmlinux 0x5aab354f sysctl_intvec +EXPORT_SYMBOL vmlinux 0x5ab23bc2 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5ab2ce5b find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x5b0968d0 devm_iounmap +EXPORT_SYMBOL vmlinux 0x5b261a00 sock_no_getname +EXPORT_SYMBOL vmlinux 0x5b677239 skb_store_bits +EXPORT_SYMBOL vmlinux 0x5b85ba1b fb_class +EXPORT_SYMBOL vmlinux 0x5b8d9af4 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0x5b8fedd6 unw_init_frame_info +EXPORT_SYMBOL vmlinux 0x5bdf7db5 skb_seq_read +EXPORT_SYMBOL vmlinux 0x5bf8af6a register_binfmt +EXPORT_SYMBOL vmlinux 0x5c1127e2 sysctl_pathname +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c43b510 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x5c4e5b7e interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x5c7a8717 ia64_sal_oemcall +EXPORT_SYMBOL vmlinux 0x5c7b583b blkdev_get +EXPORT_SYMBOL vmlinux 0x5cc4da55 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5d2aa54b read_cache_page_async +EXPORT_SYMBOL vmlinux 0x5d31b101 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x5d379476 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x5d88cbe0 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5dbf45ea d_find_alias +EXPORT_SYMBOL vmlinux 0x5dbf55c1 bioset_create +EXPORT_SYMBOL vmlinux 0x5ddb3d56 efi_mem_attributes +EXPORT_SYMBOL vmlinux 0x5de4565d end_that_request_first +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e0a753f cx_device_register +EXPORT_SYMBOL vmlinux 0x5e523a9e acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x5e606c95 add_disk +EXPORT_SYMBOL vmlinux 0x5e682012 cx_driver_register +EXPORT_SYMBOL vmlinux 0x5e7437db xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x5ebbac43 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x5edabcfa alloc_file +EXPORT_SYMBOL vmlinux 0x5f0266e9 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x5f0c4aa2 pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x5f11a465 __bio_clone +EXPORT_SYMBOL vmlinux 0x5f41d97b vfs_rename +EXPORT_SYMBOL vmlinux 0x5f67fb8d blk_start_queueing +EXPORT_SYMBOL vmlinux 0x5f6b0c84 uncached_free_page +EXPORT_SYMBOL vmlinux 0x5f827b2d redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x5f8fe01c __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x5fb7ec10 generic_listxattr +EXPORT_SYMBOL vmlinux 0x5fd63012 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x603a73a9 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x603e4274 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x6048f395 update_region +EXPORT_SYMBOL vmlinux 0x604f68c8 register_con_driver +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x606fa328 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ad7810 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x60c54cfd generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x60e86c34 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x6105b0ef tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x612c0252 netdev_set_master +EXPORT_SYMBOL vmlinux 0x614e44f2 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x615938cc unw_access_pr +EXPORT_SYMBOL vmlinux 0x618eb907 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61f569b5 make_bad_inode +EXPORT_SYMBOL vmlinux 0x620dd8cb secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x62515232 make_EII_client +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x629bf31c inet_add_protocol +EXPORT_SYMBOL vmlinux 0x62c9469c tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x62e10701 ilookup5 +EXPORT_SYMBOL vmlinux 0x62fb7285 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x630a705e kernel_bind +EXPORT_SYMBOL vmlinux 0x631318b8 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x634e29c2 fb_show_logo +EXPORT_SYMBOL vmlinux 0x63665fb7 set_user_nice +EXPORT_SYMBOL vmlinux 0x6387cd1e __dst_free +EXPORT_SYMBOL vmlinux 0x63b6b18a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f80f37 acpi_set_register +EXPORT_SYMBOL vmlinux 0x63fc073b node_states +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x642c28c4 acpi_os_execute +EXPORT_SYMBOL vmlinux 0x6434ca72 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64ac6c77 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x64c46059 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x651edf20 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x6532408b ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654ee44d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x656e8bfd kernel_listen +EXPORT_SYMBOL vmlinux 0x65744b76 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x65ad6e67 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x6608f566 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x660e30d4 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x668ce139 simple_rmdir +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669d5ff7 sock_create_kern +EXPORT_SYMBOL vmlinux 0x66d2ae13 km_state_notify +EXPORT_SYMBOL vmlinux 0x66d3f3c3 __bread +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x673aa1de rwsem_wake +EXPORT_SYMBOL vmlinux 0x673add35 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x6740a3c3 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x67712dfc uart_register_driver +EXPORT_SYMBOL vmlinux 0x677355b4 ia64_reg_MCA_extension +EXPORT_SYMBOL vmlinux 0x679bd709 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x67a9d989 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67d00ee7 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x67e53dbd swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x67ef98d4 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x68092d39 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x684689ae request_firmware +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x68875102 input_inject_event +EXPORT_SYMBOL vmlinux 0x688aa954 per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x68956357 block_sync_page +EXPORT_SYMBOL vmlinux 0x689faff4 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x68cf6f48 pskb_copy +EXPORT_SYMBOL vmlinux 0x68d3b84e inet_accept +EXPORT_SYMBOL vmlinux 0x68e23ef5 __page_symlink +EXPORT_SYMBOL vmlinux 0x68ed9da8 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x6922aaae generic_osync_inode +EXPORT_SYMBOL vmlinux 0x693ac2bb blk_requeue_request +EXPORT_SYMBOL vmlinux 0x69575bcc tasklet_init +EXPORT_SYMBOL vmlinux 0x6966bbbe unw_init_from_blocked_task +EXPORT_SYMBOL vmlinux 0x69735089 set_disk_ro +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x699def25 sock_init_data +EXPORT_SYMBOL vmlinux 0x69c39ded elevator_exit +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a071c50 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x6a097dd8 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6a1b46e9 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a634432 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x6a6899f9 acpi_terminate +EXPORT_SYMBOL vmlinux 0x6a81fabf sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x6aa11393 __first_cpu +EXPORT_SYMBOL vmlinux 0x6ab2c5c3 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x6ac86ece proto_unregister +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6af5504b kobject_put +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b833871 brioctl_set +EXPORT_SYMBOL vmlinux 0x6bb7d827 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x6bc3b473 pnp_is_active +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bdec668 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6beb2c34 create_proc_entry +EXPORT_SYMBOL vmlinux 0x6bf4a793 llc_sap_close +EXPORT_SYMBOL vmlinux 0x6c005c56 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x6c103a26 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x6c112adf block_write_full_page +EXPORT_SYMBOL vmlinux 0x6c2faf22 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x6c595e51 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6ca79440 put_tty_driver +EXPORT_SYMBOL vmlinux 0x6cf5c821 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d1554af put_files_struct +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d49afea __ip_select_ident +EXPORT_SYMBOL vmlinux 0x6d824298 _read_lock_bh +EXPORT_SYMBOL vmlinux 0x6d8be717 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x6de5c1ad sock_sendmsg +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfc7ff3 crc32_le +EXPORT_SYMBOL vmlinux 0x6e477acb tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x6e597290 del_timer_sync +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6e9e720e ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x6ea7587c dev_mc_add +EXPORT_SYMBOL vmlinux 0x6ebc9f69 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x6ec9c01b tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x6ecb6645 dcache_lock +EXPORT_SYMBOL vmlinux 0x6ef6bf7e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x6efc229d cpu_possible_map +EXPORT_SYMBOL vmlinux 0x6f1fe2a2 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x6f42702d tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x6f4a7298 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x6f4fc248 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fe19ece ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x6ff129c4 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x7026277f pci_find_slot +EXPORT_SYMBOL vmlinux 0x705f28cd groups_alloc +EXPORT_SYMBOL vmlinux 0x7087a1c7 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x708b808d alloc_pages_current +EXPORT_SYMBOL vmlinux 0x708d8013 sn_dma_unmap_single +EXPORT_SYMBOL vmlinux 0x7097352d inode_init_once +EXPORT_SYMBOL vmlinux 0x70a86d7a eth_header +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70fd189d mnt_unpin +EXPORT_SYMBOL vmlinux 0x71426fb0 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x714d3b35 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x7154eeed ia64_mca_printk +EXPORT_SYMBOL vmlinux 0x715a208f inode_double_lock +EXPORT_SYMBOL vmlinux 0x71661e3e nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x719a1b14 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71baba93 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x71d47557 key_alloc +EXPORT_SYMBOL vmlinux 0x72215781 sk_dst_check +EXPORT_SYMBOL vmlinux 0x722254fb lease_get_mtime +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x7276bb74 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x728de7e8 blk_put_queue +EXPORT_SYMBOL vmlinux 0x72d6045a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x72f08cb0 acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x730b307a del_gendisk +EXPORT_SYMBOL vmlinux 0x73579956 kobject_unregister +EXPORT_SYMBOL vmlinux 0x737134c9 pci_dev_put +EXPORT_SYMBOL vmlinux 0x737172bd rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x73763c74 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x737b036b __devm_request_region +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x738b53ea call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x739ef4d8 find_lock_page +EXPORT_SYMBOL vmlinux 0x73ade306 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x73edff37 aio_complete +EXPORT_SYMBOL vmlinux 0x742c628f sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x7466bb13 sn_dma_flush +EXPORT_SYMBOL vmlinux 0x74754435 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74bed8df dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74e05d8c tasklet_kill +EXPORT_SYMBOL vmlinux 0x74e40dc1 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x74e8bb97 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x74f7310b neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x75202d8f inode_double_unlock +EXPORT_SYMBOL vmlinux 0x75370133 pci_release_region +EXPORT_SYMBOL vmlinux 0x75472a2c sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0x75625fcd elv_rb_add +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x757bce65 datagram_poll +EXPORT_SYMBOL vmlinux 0x75833b69 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x75871f5e acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x75a2aac5 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x75ad291f uart_update_timeout +EXPORT_SYMBOL vmlinux 0x75b99a55 seq_lseek +EXPORT_SYMBOL vmlinux 0x75c5a3f2 tiocx_irq_alloc +EXPORT_SYMBOL vmlinux 0x75cf744d pci_enable_device +EXPORT_SYMBOL vmlinux 0x75f6381b sk_receive_skb +EXPORT_SYMBOL vmlinux 0x75fa0aa7 simple_readpage +EXPORT_SYMBOL vmlinux 0x75fd7f04 per_cpu__cpu_info +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7616fae5 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x7655c7a5 netif_rx +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e2d6a0 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x771758ba ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x7767c3af xfrm_init_state +EXPORT_SYMBOL vmlinux 0x7785c705 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x77dc6e62 send_sig_info +EXPORT_SYMBOL vmlinux 0x77eb2315 vfs_readv +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x7814a08f simple_unlink +EXPORT_SYMBOL vmlinux 0x781d07d0 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x78605606 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x789394b9 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x78d82f86 eth_header_cache +EXPORT_SYMBOL vmlinux 0x78dc4c2f inode_add_bytes +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f22e39 sn_dma_supported +EXPORT_SYMBOL vmlinux 0x78fa0d82 arp_xmit +EXPORT_SYMBOL vmlinux 0x79002c60 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x79019480 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x791e93be clear_inode +EXPORT_SYMBOL vmlinux 0x79384a28 __devm_release_region +EXPORT_SYMBOL vmlinux 0x793cbe84 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x7956451b remap_pfn_range +EXPORT_SYMBOL vmlinux 0x7965b9f5 sba_alloc_coherent +EXPORT_SYMBOL vmlinux 0x7986a6b4 add_disk_randomness +EXPORT_SYMBOL vmlinux 0x79a2fd35 ia64_unreg_MCA_extension +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79d74e83 hwsw_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x79d980c9 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x79f313d3 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x7a2a3d06 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7a56e18d dcache_readdir +EXPORT_SYMBOL vmlinux 0x7a5b7f95 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x7aa0f563 machvec_dma_sync_single +EXPORT_SYMBOL vmlinux 0x7aa18292 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x7af0e1a6 idr_get_new +EXPORT_SYMBOL vmlinux 0x7af165ec elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x7afa4eb5 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x7b2afda5 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x7b2c0736 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x7b5452b8 acpi_unregister_gsi +EXPORT_SYMBOL vmlinux 0x7b8880ab skb_insert +EXPORT_SYMBOL vmlinux 0x7ba49896 default_llseek +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bc0e4f4 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7be65745 input_grab_device +EXPORT_SYMBOL vmlinux 0x7bf708f5 bdput +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c1a9ce2 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7caaded7 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x7cac2e92 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x7ccf3751 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x7cd84886 wake_up_process +EXPORT_SYMBOL vmlinux 0x7ce51b50 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x7cf35c87 d_rehash +EXPORT_SYMBOL vmlinux 0x7d04a8b8 thaw_bdev +EXPORT_SYMBOL vmlinux 0x7d0d3b0e netlink_broadcast +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d12d76d acpi_get_parent +EXPORT_SYMBOL vmlinux 0x7d64fcad input_register_handler +EXPORT_SYMBOL vmlinux 0x7d6af016 arp_tbl +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d87fb46 aio_put_req +EXPORT_SYMBOL vmlinux 0x7dc49365 dquot_acquire +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de86321 blk_plug_device +EXPORT_SYMBOL vmlinux 0x7dec82b7 devm_ioremap +EXPORT_SYMBOL vmlinux 0x7e04f788 cdev_alloc +EXPORT_SYMBOL vmlinux 0x7e10298d mntput_no_expire +EXPORT_SYMBOL vmlinux 0x7e4b243a scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x7e4be0b4 nf_afinfo +EXPORT_SYMBOL vmlinux 0x7e58eaec tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7e8007e7 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x7eb07d0b kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7ebf2b87 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ef0512f jiffies_64 +EXPORT_SYMBOL vmlinux 0x7efa1547 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x7f1e0fc5 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f5a6bbe bio_alloc +EXPORT_SYMBOL vmlinux 0x7f6154b4 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x7f82887a compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x7f855725 hwsw_dma_supported +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7f99b6c4 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x7fb8ec9f __pagevec_release +EXPORT_SYMBOL vmlinux 0x7fd5bc9a generic_commit_write +EXPORT_SYMBOL vmlinux 0x7fdc549c serio_rescan +EXPORT_SYMBOL vmlinux 0x800beeb7 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x8058038d bd_release +EXPORT_SYMBOL vmlinux 0x8060aa03 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x80671888 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x809dbdbf sn_dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x81036527 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x81485932 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81614de6 take_over_console +EXPORT_SYMBOL vmlinux 0x81686932 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x81970556 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82169cc9 proc_root +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x82437536 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x827d5807 printk +EXPORT_SYMBOL vmlinux 0x828a146d invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x8294422b pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x82b6148e generic_getxattr +EXPORT_SYMBOL vmlinux 0x82ca29da remove_wait_queue +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x83024602 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x8326c58f __free_pages +EXPORT_SYMBOL vmlinux 0x83432de5 eth_type_trans +EXPORT_SYMBOL vmlinux 0x834e8dd2 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x835a7216 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x8371a992 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x8373b7ae generic_read_dir +EXPORT_SYMBOL vmlinux 0x83998b0b ia64_save_scratch_fpregs +EXPORT_SYMBOL vmlinux 0x839f86f3 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83bb2b55 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x83c4b150 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x83d782a3 give_up_console +EXPORT_SYMBOL vmlinux 0x83e9dfe0 get_super +EXPORT_SYMBOL vmlinux 0x846f02e5 pci_get_class +EXPORT_SYMBOL vmlinux 0x84779ad1 iget_locked +EXPORT_SYMBOL vmlinux 0x848d372e iowrite8 +EXPORT_SYMBOL vmlinux 0x84b13c85 module_put +EXPORT_SYMBOL vmlinux 0x84e78f36 register_filesystem +EXPORT_SYMBOL vmlinux 0x84f4bd01 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x84fcf667 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x850fa128 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x853dd80d key_payload_reserve +EXPORT_SYMBOL vmlinux 0x8542b64b vfs_unlink +EXPORT_SYMBOL vmlinux 0x856c15b5 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x85760af3 acpi_get_table +EXPORT_SYMBOL vmlinux 0x8582d473 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85d21f92 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860719f4 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0x860a76ff audit_log_format +EXPORT_SYMBOL vmlinux 0x86132aa1 per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x861cffd5 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866a7695 complete +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869b2831 complete_and_exit +EXPORT_SYMBOL vmlinux 0x86df04a4 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x86e0b2cc follow_up +EXPORT_SYMBOL vmlinux 0x86e7474e bdevname +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8716021f tioca_list +EXPORT_SYMBOL vmlinux 0x872d62b2 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x8790eefd cad_pid +EXPORT_SYMBOL vmlinux 0x8791cd7d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x8792e45a generic_block_bmap +EXPORT_SYMBOL vmlinux 0x87d3374d bdi_init +EXPORT_SYMBOL vmlinux 0x87d4585e __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x87fec422 ida_remove +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8864919a eth_header_parse +EXPORT_SYMBOL vmlinux 0x886c4e4f inet_release +EXPORT_SYMBOL vmlinux 0x886e9bb6 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x8877aaec ll_rw_block +EXPORT_SYMBOL vmlinux 0x88ad341e inet_bind +EXPORT_SYMBOL vmlinux 0x88f54926 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x88f7dc66 pci_choose_state +EXPORT_SYMBOL vmlinux 0x88fed2ed free_task +EXPORT_SYMBOL vmlinux 0x892db368 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x8935a2e0 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x893ccc86 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89816966 register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x899de066 dma_pool_free +EXPORT_SYMBOL vmlinux 0x89c243ec drop_super +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e5fb04 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x89ed4fee mempool_destroy +EXPORT_SYMBOL vmlinux 0x89fce547 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x8a0b14ea ida_get_new_above +EXPORT_SYMBOL vmlinux 0x8a0ba840 _spin_trylock +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8adeda8a _spin_lock +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b883b55 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8b966b63 sn_rtc_cycles_per_second +EXPORT_SYMBOL vmlinux 0x8ba088ac block_truncate_page +EXPORT_SYMBOL vmlinux 0x8bce6bf3 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x8bfd749d mod_timer +EXPORT_SYMBOL vmlinux 0x8c07e7da find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x8c13d0bc mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x8c64acc2 sba_dma_supported +EXPORT_SYMBOL vmlinux 0x8ca87438 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cada733 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x8cb0dea0 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8ce7b165 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d5133bd pci_remove_bus +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6d1c18 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x8d6e221c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x8d970d87 __lookup_hash +EXPORT_SYMBOL vmlinux 0x8daa44b3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x8ddb1a2b __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x8de6b7ea skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x8df01146 sn_partition_id +EXPORT_SYMBOL vmlinux 0x8df999fa pci_match_id +EXPORT_SYMBOL vmlinux 0x8e3dc1b6 dst_destroy +EXPORT_SYMBOL vmlinux 0x8e4df36a arp_send +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8eb1f01e do_munmap +EXPORT_SYMBOL vmlinux 0x8eb6fc61 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x8ecfeb3f __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x8edf1c9c _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x8f1149fa pci_select_bars +EXPORT_SYMBOL vmlinux 0x8f2206ea sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8fa171ec unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x8fb0417a nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x8fd3f6dd linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x8fe3902b pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x8fe4412a end_page_writeback +EXPORT_SYMBOL vmlinux 0x8feb424f acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9011950e may_umount_tree +EXPORT_SYMBOL vmlinux 0x901a3617 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x901cc0d9 generic_writepages +EXPORT_SYMBOL vmlinux 0x903ab395 __moddi3 +EXPORT_SYMBOL vmlinux 0x90441237 set_anon_super +EXPORT_SYMBOL vmlinux 0x90b80878 seq_open +EXPORT_SYMBOL vmlinux 0x911b8195 cdev_add +EXPORT_SYMBOL vmlinux 0x912f98ba init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91510cbf _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x9164deb3 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x91840757 per_cpu____sn_cnodeid_to_nasid +EXPORT_SYMBOL vmlinux 0x918bfbf8 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x918db58a ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x919e0a08 inet_shutdown +EXPORT_SYMBOL vmlinux 0x91a6968e d_move +EXPORT_SYMBOL vmlinux 0x923d7148 permission +EXPORT_SYMBOL vmlinux 0x9257331b blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x9269d4b5 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x9273e0cc tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x928ab4ba __down_trylock +EXPORT_SYMBOL vmlinux 0x92b1ccfe tcf_register_action +EXPORT_SYMBOL vmlinux 0x92c92171 arp_create +EXPORT_SYMBOL vmlinux 0x92cb8046 sn_acpi_slot_fixup +EXPORT_SYMBOL vmlinux 0x92d1f4e2 end_queued_request +EXPORT_SYMBOL vmlinux 0x92f62f1c sock_no_listen +EXPORT_SYMBOL vmlinux 0x92f64b72 find_inode_number +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9322c355 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x935dce0c buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x9369350e sock_no_accept +EXPORT_SYMBOL vmlinux 0x937958a6 mempool_resize +EXPORT_SYMBOL vmlinux 0x9391d46a invalidate_inodes +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93da5f6f sock_create +EXPORT_SYMBOL vmlinux 0x93eb8c64 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x93fc4ae5 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940cf421 noop_qdisc +EXPORT_SYMBOL vmlinux 0x9410ee20 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x94378098 arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0x944f105b tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x948b045f acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x9494fa5f dev_driver_string +EXPORT_SYMBOL vmlinux 0x94be5d20 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x94bfd54e single_open +EXPORT_SYMBOL vmlinux 0x94f664ff tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x952b311f unregister_key_type +EXPORT_SYMBOL vmlinux 0x956beb45 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x9572067d km_state_expired +EXPORT_SYMBOL vmlinux 0x9580988b redraw_screen +EXPORT_SYMBOL vmlinux 0x959f28ad tcp_check_req +EXPORT_SYMBOL vmlinux 0x95bb634b try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95e48958 find_vma +EXPORT_SYMBOL vmlinux 0x95e5397b do_sync_read +EXPORT_SYMBOL vmlinux 0x95fbb32a pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0x9602692e add_to_page_cache +EXPORT_SYMBOL vmlinux 0x96311ea5 ipv4_specific +EXPORT_SYMBOL vmlinux 0x9645dc71 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x965ecdd2 generic_write_end +EXPORT_SYMBOL vmlinux 0x9671728d ifla_policy +EXPORT_SYMBOL vmlinux 0x9679d026 acpi_attach_data +EXPORT_SYMBOL vmlinux 0x9686ce04 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x969ad2d6 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x969b4f36 skb_make_writable +EXPORT_SYMBOL vmlinux 0x96db92a7 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x96ebfec8 find_or_create_page +EXPORT_SYMBOL vmlinux 0x974f284d qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x978d9db3 lease_modify +EXPORT_SYMBOL vmlinux 0x97a56aab gen_pool_add +EXPORT_SYMBOL vmlinux 0x97a97a01 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x97ce9a73 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x986d3cd3 __find_get_block +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98ccd6e0 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x98dfaa55 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x99142589 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x994a3592 input_allocate_device +EXPORT_SYMBOL vmlinux 0x9975dc22 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x997c9617 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d2dd5c create_empty_buffers +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ef87e2 _spin_unlock +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a287b28 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x9a36f137 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x9a61ea6d sn_partition_serial_number +EXPORT_SYMBOL vmlinux 0x9a773535 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x9a916344 hwsw_alloc_coherent +EXPORT_SYMBOL vmlinux 0x9abfb6dd max_low_pfn +EXPORT_SYMBOL vmlinux 0x9ad71d44 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b089cc2 _write_lock +EXPORT_SYMBOL vmlinux 0x9b227831 sn_dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b761d54 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x9b7bf6e9 open_bdev_excl +EXPORT_SYMBOL vmlinux 0x9ba1f5ba __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb11d25 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x9bbdad1e ioport_resource +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9bd0dd0e tty_set_operations +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c30fcda migrate_page +EXPORT_SYMBOL vmlinux 0x9c3892ba generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9c4bbaf8 udplite_get_port +EXPORT_SYMBOL vmlinux 0x9c7f74b4 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x9c8edc26 lock_super +EXPORT_SYMBOL vmlinux 0x9c92fe9b generic_file_mmap +EXPORT_SYMBOL vmlinux 0x9c9820bf mapping_tagged +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cfa9eee skb_unlink +EXPORT_SYMBOL vmlinux 0x9d035012 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9d498a6b cont_write_begin +EXPORT_SYMBOL vmlinux 0x9d722468 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dd60a39 kill_block_super +EXPORT_SYMBOL vmlinux 0x9e153757 free_netdev +EXPORT_SYMBOL vmlinux 0x9e20cbce uts_sem +EXPORT_SYMBOL vmlinux 0x9e54275f blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x9e56092b rtnl_create_link +EXPORT_SYMBOL vmlinux 0x9e8e2948 hwsw_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x9e9eaf97 kill_pid +EXPORT_SYMBOL vmlinux 0x9ebad9eb write_one_page +EXPORT_SYMBOL vmlinux 0x9ebc1b3a pfm_sysctl +EXPORT_SYMBOL vmlinux 0x9ece2ad1 fb_set_var +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9efc6515 sk_stream_error +EXPORT_SYMBOL vmlinux 0x9f0adb35 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3bf87b posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x9f4dfc14 del_timer +EXPORT_SYMBOL vmlinux 0x9f8387b0 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x9f92e3c9 unlock_buffer +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fe97783 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa056f9b8 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa07b9987 pci_iounmap +EXPORT_SYMBOL vmlinux 0xa09fdf8c bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b1fcc2 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fe5946 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1269531 skb_copy +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa1432c3c page_follow_link_light +EXPORT_SYMBOL vmlinux 0xa1665893 dmi_check_system +EXPORT_SYMBOL vmlinux 0xa17246ba d_lookup +EXPORT_SYMBOL vmlinux 0xa177dcdf cdev_init +EXPORT_SYMBOL vmlinux 0xa1a1a96e nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xa1d2934d sn_hwperf_get_nearest_node +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1ed3038 acpi_os_signal +EXPORT_SYMBOL vmlinux 0xa2044cd2 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa206893d neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2755c7b fpswa_interface +EXPORT_SYMBOL vmlinux 0xa27cdb1b kthread_stop +EXPORT_SYMBOL vmlinux 0xa29222f8 ether_setup +EXPORT_SYMBOL vmlinux 0xa299aaac netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xa2a99075 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xa2b3179a cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa2b542ab seq_path +EXPORT_SYMBOL vmlinux 0xa2f24785 machvec_timer_interrupt +EXPORT_SYMBOL vmlinux 0xa30554f4 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xa312d114 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa33a289f flow_cache_genid +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa34227ab bdev_read_only +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3632b59 gen_new_estimator +EXPORT_SYMBOL vmlinux 0xa36f12de locks_copy_lock +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3ca4e17 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xa3d6c02c icmp_send +EXPORT_SYMBOL vmlinux 0xa40d3340 check_disk_change +EXPORT_SYMBOL vmlinux 0xa40ff01b acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xa42447bb __user_walk_fd +EXPORT_SYMBOL vmlinux 0xa43f1538 block_prepare_write +EXPORT_SYMBOL vmlinux 0xa44fffc1 schedule +EXPORT_SYMBOL vmlinux 0xa46ea42a gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xa471ecf4 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xa4890783 ns_to_timespec +EXPORT_SYMBOL vmlinux 0xa489547f inet_stream_connect +EXPORT_SYMBOL vmlinux 0xa4a74611 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdf3a8 unlock_page +EXPORT_SYMBOL vmlinux 0xa4c4ecd9 __lock_buffer +EXPORT_SYMBOL vmlinux 0xa4d8a048 vfs_readlink +EXPORT_SYMBOL vmlinux 0xa50d16f9 blk_register_region +EXPORT_SYMBOL vmlinux 0xa51e13e6 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa57003b0 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xa59ce7a1 d_splice_alias +EXPORT_SYMBOL vmlinux 0xa5b76231 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa5cebfed dev_base_lock +EXPORT_SYMBOL vmlinux 0xa5d6a6fe tty_hangup +EXPORT_SYMBOL vmlinux 0xa5faba0d mempool_alloc +EXPORT_SYMBOL vmlinux 0xa626be04 swiotlb_unmap_single +EXPORT_SYMBOL vmlinux 0xa671cda9 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xa6785873 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6de796c netlink_ack +EXPORT_SYMBOL vmlinux 0xa6fddf2f dev_get_flags +EXPORT_SYMBOL vmlinux 0xa72324f6 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0xa72fe8de arp_broken_ops +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa7673514 page_symlink +EXPORT_SYMBOL vmlinux 0xa79b364b pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7f5c9f2 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xa805ecfc acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0xa8390eb8 subsystem_register +EXPORT_SYMBOL vmlinux 0xa852904c compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xa85914db pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8d5b19f acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9017d82 simple_prepare_write +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa93c2310 register_8022_client +EXPORT_SYMBOL vmlinux 0xa96ccc7c remove_suid +EXPORT_SYMBOL vmlinux 0xa9bc32c1 acpi_get_name +EXPORT_SYMBOL vmlinux 0xaa5a3e8d gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xaa78264a task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xaaa0789a pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xaabbd94b dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xaac589c3 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xaad06be5 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xaad70aea acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xaae4a000 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xaaebc2ec alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xaafa1a23 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0186c6 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab71763d blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xab95a674 unregister_nls +EXPORT_SYMBOL vmlinux 0xabc2f95e ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xabc7d1c0 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabf73e50 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xabfd357c skb_copy_bits +EXPORT_SYMBOL vmlinux 0xac006fb3 __next_cpu +EXPORT_SYMBOL vmlinux 0xac24f428 vfs_mknod +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac40bd4f input_free_device +EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac812950 sn_send_IPI_phys +EXPORT_SYMBOL vmlinux 0xacae6d43 sn_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xacb37d2b neigh_parms_release +EXPORT_SYMBOL vmlinux 0xacb82a60 vmap +EXPORT_SYMBOL vmlinux 0xace4e418 __request_region +EXPORT_SYMBOL vmlinux 0xacf28696 simple_statfs +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad8eb286 ia64_pal_call_static +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb8ee38 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xadcb9ada block_commit_write +EXPORT_SYMBOL vmlinux 0xae13f703 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xae1400d8 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xae1b75b4 bio_copy_user +EXPORT_SYMBOL vmlinux 0xae2118cb have_submounts +EXPORT_SYMBOL vmlinux 0xae4a1bda csum_tcpudp_nofold +EXPORT_SYMBOL vmlinux 0xae5211a4 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xae649140 _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xae8556af acpi_bus_start +EXPORT_SYMBOL vmlinux 0xaebf91fb mutex_unlock +EXPORT_SYMBOL vmlinux 0xaec3363b dquot_free_space +EXPORT_SYMBOL vmlinux 0xaef5de76 key_put +EXPORT_SYMBOL vmlinux 0xaefe9082 simple_rename +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf6226be acpi_extract_package +EXPORT_SYMBOL vmlinux 0xaf6bbc60 machvec_setup +EXPORT_SYMBOL vmlinux 0xaf7d1fb6 __f_setown +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xafa00a27 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xafa9fa42 ip_dev_find +EXPORT_SYMBOL vmlinux 0xafb5cf7a skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xafc13e64 ia64_pal_call_stacked +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb00e3d08 ida_destroy +EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xb048e3df dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xb090974c tcp_connect +EXPORT_SYMBOL vmlinux 0xb0996e23 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d7ba1a pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb1022a52 sn_dma_map_single +EXPORT_SYMBOL vmlinux 0xb1094aad inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xb10c660e random32 +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb188aaae tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb1a369e1 nf_register_hook +EXPORT_SYMBOL vmlinux 0xb1a85ab2 __user_walk +EXPORT_SYMBOL vmlinux 0xb1aa802f tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d29333 proc_root_fs +EXPORT_SYMBOL vmlinux 0xb1f32d3d ia64_max_iommu_merge_mask +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb21fd99e acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xb2345f67 pci_get_device +EXPORT_SYMBOL vmlinux 0xb2716fe5 pci_find_device +EXPORT_SYMBOL vmlinux 0xb28927ba __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xb2a9020b pci_enable_wake +EXPORT_SYMBOL vmlinux 0xb2c1cb91 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xb30dd505 sba_map_sg +EXPORT_SYMBOL vmlinux 0xb32568ae ip_getsockopt +EXPORT_SYMBOL vmlinux 0xb396f91f in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3bb7743 reset_files_struct +EXPORT_SYMBOL vmlinux 0xb3d6652c unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0xb3e25133 bio_hw_segments +EXPORT_SYMBOL vmlinux 0xb3fd3954 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xb40a442a lock_sock_nested +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4477e2e key_unlink +EXPORT_SYMBOL vmlinux 0xb488ab21 tty_mutex +EXPORT_SYMBOL vmlinux 0xb4964308 gen_pool_create +EXPORT_SYMBOL vmlinux 0xb4afdb46 allocate_resource +EXPORT_SYMBOL vmlinux 0xb4c169af __mutex_init +EXPORT_SYMBOL vmlinux 0xb4c2afa5 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xb4e86c8c netdev_features_change +EXPORT_SYMBOL vmlinux 0xb503f441 genl_register_ops +EXPORT_SYMBOL vmlinux 0xb5189b8e sk_common_release +EXPORT_SYMBOL vmlinux 0xb524be62 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54d9805 poll_freewait +EXPORT_SYMBOL vmlinux 0xb54ef893 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xb570222f pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xb5733ba5 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb580da5e uart_resume_port +EXPORT_SYMBOL vmlinux 0xb59d7692 vc_lock_resize +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b90efa sync_blockdev +EXPORT_SYMBOL vmlinux 0xb5cadfa0 vfs_writev +EXPORT_SYMBOL vmlinux 0xb5cd2070 put_disk +EXPORT_SYMBOL vmlinux 0xb5d0a720 hwsw_map_sg +EXPORT_SYMBOL vmlinux 0xb5e48e92 __kfifo_get +EXPORT_SYMBOL vmlinux 0xb5f79756 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb62ebda4 dentry_open +EXPORT_SYMBOL vmlinux 0xb62f3c30 inet_frags_init +EXPORT_SYMBOL vmlinux 0xb66445a3 finish_wait +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6bb8b5f pagecache_write_end +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6e7b967 touch_atime +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb720bd12 nla_put +EXPORT_SYMBOL vmlinux 0xb721c38e fsync_bdev +EXPORT_SYMBOL vmlinux 0xb7290775 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb769dad5 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xb779986d kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xb7c4f38f up_write +EXPORT_SYMBOL vmlinux 0xb7e0824d nf_log_register +EXPORT_SYMBOL vmlinux 0xb805892a do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xb8256002 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xb82632e8 sn_dma_map_sg +EXPORT_SYMBOL vmlinux 0xb86221f4 unw_access_br +EXPORT_SYMBOL vmlinux 0xb8936b3f acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xb8938895 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xb8f77155 audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xb91a7f6c unw_unwind +EXPORT_SYMBOL vmlinux 0xb9446042 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xb9616f9f tcf_exts_change +EXPORT_SYMBOL vmlinux 0xb97fc44f should_remove_suid +EXPORT_SYMBOL vmlinux 0xb98acdc6 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xb9d6100f __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xba067767 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xba10204d sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xba2364ce serio_reconnect +EXPORT_SYMBOL vmlinux 0xba2f1869 register_netdevice +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba6a57ca tcf_hash_check +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaa6aef6 acpi_root_dir +EXPORT_SYMBOL vmlinux 0xbaba8969 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xbaecaa80 pci_save_state +EXPORT_SYMBOL vmlinux 0xbb10fcf6 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbbaf6ac3 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbfbb505 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xbc499218 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0xbcb415c3 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xbcda1123 pcim_iomap +EXPORT_SYMBOL vmlinux 0xbceff87a pnp_device_detach +EXPORT_SYMBOL vmlinux 0xbd0712b5 kref_get +EXPORT_SYMBOL vmlinux 0xbd163c66 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xbd621ca2 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xbddc1e6e tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xbde674a0 __scm_destroy +EXPORT_SYMBOL vmlinux 0xbde7c789 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xbe2fdf43 get_io_context +EXPORT_SYMBOL vmlinux 0xbe5bf9f7 flush_old_exec +EXPORT_SYMBOL vmlinux 0xbe5d743d __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xbe6f4f23 fget +EXPORT_SYMBOL vmlinux 0xbe7c0a6c module_refcount +EXPORT_SYMBOL vmlinux 0xbededbe9 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xbee7c001 skb_under_panic +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf3193ec acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xbf32780e ps2_command +EXPORT_SYMBOL vmlinux 0xbfb08627 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc50af1 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xbfd3ef90 acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xbff9c035 lock_may_read +EXPORT_SYMBOL vmlinux 0xbffe58eb adjust_resource +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc03c6f5f km_waitq +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0xc0a3408d block_write_begin +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0abf6ff tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xc107141d vfs_write +EXPORT_SYMBOL vmlinux 0xc118c471 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xc1305dee pfm_mod_write_pmcs +EXPORT_SYMBOL vmlinux 0xc1642570 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xc175da7c pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xc18b34aa blk_unplug +EXPORT_SYMBOL vmlinux 0xc1b9f9a1 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xc1e30651 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xc21a182e dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xc23ef1f6 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xc2445f2b filp_close +EXPORT_SYMBOL vmlinux 0xc24b2c95 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc29d5343 sn_flush_all_caches +EXPORT_SYMBOL vmlinux 0xc2a375fb textsearch_register +EXPORT_SYMBOL vmlinux 0xc2d38624 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fa3e36 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xc2fa530e udp_disconnect +EXPORT_SYMBOL vmlinux 0xc31191b3 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xc37c6f7c xfrm_register_type +EXPORT_SYMBOL vmlinux 0xc38f4dfe end_dequeued_request +EXPORT_SYMBOL vmlinux 0xc3bd892e _write_lock_bh +EXPORT_SYMBOL vmlinux 0xc4193ff0 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xc431e790 tc_classify +EXPORT_SYMBOL vmlinux 0xc433adc5 acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xc43519c5 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xc43a46a5 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc469bdc1 __down +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc508a273 path_release +EXPORT_SYMBOL vmlinux 0xc51f11d3 unlock_super +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc5bde815 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xc5cf6b7e init_file +EXPORT_SYMBOL vmlinux 0xc644f0f9 seq_release +EXPORT_SYMBOL vmlinux 0xc6da9066 __scm_send +EXPORT_SYMBOL vmlinux 0xc708f1fe ec_write +EXPORT_SYMBOL vmlinux 0xc710408c __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xc710606d scm_fp_dup +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72e53cb km_new_mapping +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc7526138 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xc75d3af0 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xc76d1f7a neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xc76ea676 inet_frag_find +EXPORT_SYMBOL vmlinux 0xc780083d per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xc783b7cf xor_ia64_5 +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc86fa40c prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc8893dc6 __rta_fill +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc8ec8253 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xc9015533 acpi_get_id +EXPORT_SYMBOL vmlinux 0xc925dc17 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xc9266a5a ia64_load_scratch_fpregs +EXPORT_SYMBOL vmlinux 0xc928ca6f __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xc93637c7 dentry_unhash +EXPORT_SYMBOL vmlinux 0xc939d7b0 per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9ac8422 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xc9b3bfa9 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xc9da5713 __inet6_hash +EXPORT_SYMBOL vmlinux 0xc9e41f06 input_set_capability +EXPORT_SYMBOL vmlinux 0xc9f34c1d acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0xc9fd1cff generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xca065bac kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xca4495bc ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xca49a417 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xca50c920 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xca7d99af pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xca92920b page_put_link +EXPORT_SYMBOL vmlinux 0xca9694b5 _read_unlock +EXPORT_SYMBOL vmlinux 0xcaadcf83 pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xcab16355 inet_put_port +EXPORT_SYMBOL vmlinux 0xcacded88 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xcade6ded generic_permission +EXPORT_SYMBOL vmlinux 0xcae6c184 sk_alloc +EXPORT_SYMBOL vmlinux 0xcaf11ca1 seq_putc +EXPORT_SYMBOL vmlinux 0xcafa9495 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xcaff62bf iomem_resource +EXPORT_SYMBOL vmlinux 0xcb0b4df5 pnp_resource_change +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32ae05 sn_sharing_domain_size +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb36103f netpoll_setup +EXPORT_SYMBOL vmlinux 0xcb4a5116 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xcb50bece skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb5e10a4 xfrm_nl +EXPORT_SYMBOL vmlinux 0xcb6af99c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb830a57 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xcba0b666 __nla_put +EXPORT_SYMBOL vmlinux 0xcbe9d892 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc37ceeb tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xcc3ff596 hwsw_free_coherent +EXPORT_SYMBOL vmlinux 0xcc4ea8f1 mpage_writepages +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5166dc submit_bio +EXPORT_SYMBOL vmlinux 0xcc702bb8 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcd473329 memset_io +EXPORT_SYMBOL vmlinux 0xcd4cb334 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xcd8ce890 acpi_format_exception +EXPORT_SYMBOL vmlinux 0xcd9630c2 posix_lock_file +EXPORT_SYMBOL vmlinux 0xcda37d84 pci_find_bus +EXPORT_SYMBOL vmlinux 0xcda5cb0e efi +EXPORT_SYMBOL vmlinux 0xcdb16630 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xcdcbcee9 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xce00c63f do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xce01ac3a pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4ac3f0 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xce58e87e blkdev_put +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce851684 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xce8ff836 kfree_skb +EXPORT_SYMBOL vmlinux 0xce99c1b3 pci_disable_device +EXPORT_SYMBOL vmlinux 0xcedb99d3 subsystem_unregister +EXPORT_SYMBOL vmlinux 0xcedd7dc8 close_bdev_excl +EXPORT_SYMBOL vmlinux 0xcef1a3e5 fb_match_mode +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf150920 con_is_bound +EXPORT_SYMBOL vmlinux 0xcf1adefe deny_write_access +EXPORT_SYMBOL vmlinux 0xcf1f4449 seq_release_private +EXPORT_SYMBOL vmlinux 0xcf479800 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xcf8c8170 send_sig +EXPORT_SYMBOL vmlinux 0xcfa68cec __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xcfac439d get_sb_bdev +EXPORT_SYMBOL vmlinux 0xcfc631fe ps2_drain +EXPORT_SYMBOL vmlinux 0xcfd60c36 netif_device_detach +EXPORT_SYMBOL vmlinux 0xcfd9f705 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xcfee5997 end_request +EXPORT_SYMBOL vmlinux 0xcff89dd4 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xcfff88d3 down_write +EXPORT_SYMBOL vmlinux 0xd01445d6 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd0555adc sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xd061e0f5 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xd075d05b elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xd08d456c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xd09c6374 kset_register +EXPORT_SYMBOL vmlinux 0xd0b4e893 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xd0e7663c idr_remove +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd135ee4c xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd1597f8a vfs_quota_on +EXPORT_SYMBOL vmlinux 0xd166c042 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd17a43ee simple_transaction_get +EXPORT_SYMBOL vmlinux 0xd17abd1b compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xd18f0082 security_inode_permission +EXPORT_SYMBOL vmlinux 0xd194ddf9 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xd19cc680 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xd1aebf8a kref_init +EXPORT_SYMBOL vmlinux 0xd2378b2c bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xd23c3f86 kref_put +EXPORT_SYMBOL vmlinux 0xd2479261 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xd253d25d sn_dma_free_coherent +EXPORT_SYMBOL vmlinux 0xd25b9ecb pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd28147e2 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xd28dd8dd inet_select_addr +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2df4d42 bd_set_size +EXPORT_SYMBOL vmlinux 0xd2f4507b sock_i_uid +EXPORT_SYMBOL vmlinux 0xd32013ea splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xd356c816 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xd3a77797 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xd3cabef1 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd3d710fa dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd3e8ed71 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xd405d5fe do_sync_write +EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xd4413557 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xd44b4fbe sysctl_string +EXPORT_SYMBOL vmlinux 0xd4541c5a xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0xd48c3f3e file_update_time +EXPORT_SYMBOL vmlinux 0xd4ad5d38 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xd5015e3f tcp_read_sock +EXPORT_SYMBOL vmlinux 0xd508214e mark_info_dirty +EXPORT_SYMBOL vmlinux 0xd57450bc up_read +EXPORT_SYMBOL vmlinux 0xd5781554 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xd59b80c2 pci_bus_type +EXPORT_SYMBOL vmlinux 0xd59d8102 acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xd5bda535 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xd5dd62d1 per_cpu____sn_nodepda +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd6077bbb generic_write_checks +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd643239a acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xd64d24a3 ia64_sal_oemcall_nolock +EXPORT_SYMBOL vmlinux 0xd67440e7 ia64_sal_oemcall_reentrant +EXPORT_SYMBOL vmlinux 0xd6ce81f3 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xd6d5ba3a simple_write_begin +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f9a014 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xd70824eb lookup_one_len +EXPORT_SYMBOL vmlinux 0xd76c808e __lock_page +EXPORT_SYMBOL vmlinux 0xd7878140 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xd7907b0f sn_system_size +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79ed038 sock_i_ino +EXPORT_SYMBOL vmlinux 0xd7f3b48f generic_fillattr +EXPORT_SYMBOL vmlinux 0xd807fcc3 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xd809a87e iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xd80f1d0c tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xd81849d7 tcf_em_register +EXPORT_SYMBOL vmlinux 0xd870b8d4 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8b71ebf inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd8bfa41e flush_signals +EXPORT_SYMBOL vmlinux 0xd8dc4cbe acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8e4e22d vfs_fstat +EXPORT_SYMBOL vmlinux 0xd936e6b8 sock_no_bind +EXPORT_SYMBOL vmlinux 0xd93cb8be sn_bus_free_sysdata +EXPORT_SYMBOL vmlinux 0xd9473e31 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xd9534dec ia64_mv +EXPORT_SYMBOL vmlinux 0xd95e4e6a qdisc_destroy +EXPORT_SYMBOL vmlinux 0xd97283dc tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd993ab20 misc_register +EXPORT_SYMBOL vmlinux 0xd9b940cc __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xd9d57abd input_close_device +EXPORT_SYMBOL vmlinux 0xd9ecbff9 _spin_lock_bh +EXPORT_SYMBOL vmlinux 0xda12773f find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xda216689 kernel_connect +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda57fda9 request_resource +EXPORT_SYMBOL vmlinux 0xda5a4fbf pci_request_region +EXPORT_SYMBOL vmlinux 0xda6ac93a netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xda7d5d6e alloc_trdev +EXPORT_SYMBOL vmlinux 0xdaba43fd cdev_del +EXPORT_SYMBOL vmlinux 0xdae3bf5f kmalloc_caches +EXPORT_SYMBOL vmlinux 0xdb22ec6b sn_prom_feature_available +EXPORT_SYMBOL vmlinux 0xdb23e6ea unregister_con_driver +EXPORT_SYMBOL vmlinux 0xdb2ec783 blk_complete_request +EXPORT_SYMBOL vmlinux 0xdb2fcb2f pci_reenable_device +EXPORT_SYMBOL vmlinux 0xdb34ec7e generic_unplug_device +EXPORT_SYMBOL vmlinux 0xdb5c8104 complete_all +EXPORT_SYMBOL vmlinux 0xdbc7ec9e generic_ro_fops +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbdbb35e xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xdc096b60 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc40dea3 bio_add_page +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc477230 sn_io_addr +EXPORT_SYMBOL vmlinux 0xdc623a8a blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xdc667b19 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xdc987114 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcc6e32a idr_destroy +EXPORT_SYMBOL vmlinux 0xdcf313e9 deactivate_super +EXPORT_SYMBOL vmlinux 0xdd1bc39a cx_device_unregister +EXPORT_SYMBOL vmlinux 0xdd7906b9 ia64_spinlock_contention +EXPORT_SYMBOL vmlinux 0xddad7952 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xddbb788e posix_acl_permission +EXPORT_SYMBOL vmlinux 0xddd35a97 blk_get_queue +EXPORT_SYMBOL vmlinux 0xddfa6b85 kill_pgrp +EXPORT_SYMBOL vmlinux 0xde2dd330 d_namespace_path +EXPORT_SYMBOL vmlinux 0xde558e02 ia64_mlogbuf_dump +EXPORT_SYMBOL vmlinux 0xde569e2a init_timer +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde76e7bc sys_close +EXPORT_SYMBOL vmlinux 0xde89e70d acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde96c72b _write_trylock +EXPORT_SYMBOL vmlinux 0xdea3e474 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xdec58650 elv_next_request +EXPORT_SYMBOL vmlinux 0xdeeac280 acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0xdeefaca5 skb_find_text +EXPORT_SYMBOL vmlinux 0xdef29882 vprintk +EXPORT_SYMBOL vmlinux 0xdf125c1f swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xdf13b85c sock_create_lite +EXPORT_SYMBOL vmlinux 0xdf228a17 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xdf2fb3ba kfifo_alloc +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf86c280 sba_unmap_sg +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfd21ecf test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xdfdfe9a5 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes +EXPORT_SYMBOL vmlinux 0xe0188681 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xe026693a generic_file_open +EXPORT_SYMBOL vmlinux 0xe02aae93 get_fs_type +EXPORT_SYMBOL vmlinux 0xe02bc811 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xe05559b9 tty_vhangup +EXPORT_SYMBOL vmlinux 0xe0676269 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xe06eed20 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xe089130c flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xe0972edc register_key_type +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0c148d7 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xe0c391b3 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xe0cae486 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xe0cbeedd sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xe0e9cf67 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1190c8d pci_assign_resource +EXPORT_SYMBOL vmlinux 0xe130a4fa sock_kmalloc +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18c4880 vfs_lstat +EXPORT_SYMBOL vmlinux 0xe1a4c5ca framebuffer_release +EXPORT_SYMBOL vmlinux 0xe1aae688 __check_region +EXPORT_SYMBOL vmlinux 0xe1be2d85 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xe1bf97c0 dq_data_lock +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1f8cb13 sock_rfree +EXPORT_SYMBOL vmlinux 0xe20a52d7 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xe22dcb20 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xe2323d80 __init_rwsem +EXPORT_SYMBOL vmlinux 0xe23e718f acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xe259f923 ip_route_input +EXPORT_SYMBOL vmlinux 0xe2a4594e vfs_permission +EXPORT_SYMBOL vmlinux 0xe2ba974f nla_validate +EXPORT_SYMBOL vmlinux 0xe2c37434 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e004d4 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xe30eeed5 udp_poll +EXPORT_SYMBOL vmlinux 0xe3337f11 __up +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe35430ab __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe37fc27f balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xe37fd583 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xe3a3eb0a neigh_update +EXPORT_SYMBOL vmlinux 0xe3d3394f per_cpu__local_per_cpu_offset +EXPORT_SYMBOL vmlinux 0xe3d4cede unw_unwind_to_user +EXPORT_SYMBOL vmlinux 0xe40cb44e generic_delete_inode +EXPORT_SYMBOL vmlinux 0xe419bc99 iowrite32be +EXPORT_SYMBOL vmlinux 0xe43d6207 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xe453c4f2 simple_write_end +EXPORT_SYMBOL vmlinux 0xe473b4d9 unw_access_fr +EXPORT_SYMBOL vmlinux 0xe481faf8 get_user_pages +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4c05764 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xe4d80bf4 acpi_enable +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe526f136 __copy_user +EXPORT_SYMBOL vmlinux 0xe52d755f ia64_cpu_to_sapicid +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58b33e7 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xe5a15f26 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xe5b8f8dc acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xe5bed09d __getblk +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d620bd tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xe612633f gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xe63ce738 _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xe6663eb6 proc_mkdir +EXPORT_SYMBOL vmlinux 0xe676e51e vc_resize +EXPORT_SYMBOL vmlinux 0xe69480b0 no_llseek +EXPORT_SYMBOL vmlinux 0xe6aededc dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fc9b21 vfs_link +EXPORT_SYMBOL vmlinux 0xe717db58 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe78dd362 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe78ed3cc pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xe7ca4389 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7ed0080 tcp_child_process +EXPORT_SYMBOL vmlinux 0xe7f7140d idr_find +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8211798 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xe8413b5c acpi_load_tables +EXPORT_SYMBOL vmlinux 0xe858545a proto_register +EXPORT_SYMBOL vmlinux 0xe8679178 __divdi3 +EXPORT_SYMBOL vmlinux 0xe873795a bio_endio +EXPORT_SYMBOL vmlinux 0xe89a1f73 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0xe8b4be94 vfs_llseek +EXPORT_SYMBOL vmlinux 0xe8dfd5f5 set_bh_page +EXPORT_SYMBOL vmlinux 0xe8fbda64 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xe9026bb1 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe935f4fa serio_interrupt +EXPORT_SYMBOL vmlinux 0xe9360c8e __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xe9389b10 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xe94b02cb acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0xe9781c45 posix_test_lock +EXPORT_SYMBOL vmlinux 0xe9803057 vfs_readdir +EXPORT_SYMBOL vmlinux 0xe9c6aef4 down_read +EXPORT_SYMBOL vmlinux 0xe9c81dac wireless_send_event +EXPORT_SYMBOL vmlinux 0xe9de8b41 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xe9dfadc7 sock_no_connect +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea161f3c security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xea38e767 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xea5644d5 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xea68493b iput +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea8fe989 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xeaa9b9c8 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xead7e69a elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xeae552e6 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xeb00e716 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xeb16163b io_space +EXPORT_SYMBOL vmlinux 0xeb18424b sn_dma_unmap_sg +EXPORT_SYMBOL vmlinux 0xeb1e57c6 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb79aab9 kill_fasync +EXPORT_SYMBOL vmlinux 0xeb7d817e register_gifconf +EXPORT_SYMBOL vmlinux 0xeb7f6046 acpi_get_devices +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb8fb3a5 sk_run_filter +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec22f9ff dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xec2edfe9 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xec3cf5ba fput +EXPORT_SYMBOL vmlinux 0xec7cc8cb sk_stop_timer +EXPORT_SYMBOL vmlinux 0xec94a9f8 dquot_commit +EXPORT_SYMBOL vmlinux 0xecb04c2a sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xecc9abab pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xecd1ae1a __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xecfdb8cb release_resource +EXPORT_SYMBOL vmlinux 0xed262ff2 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xed289eaf tiocx_bus_type +EXPORT_SYMBOL vmlinux 0xed40678a xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xed49c8e2 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xed61f6b3 security_release_secctx +EXPORT_SYMBOL vmlinux 0xed63a045 unregister_console +EXPORT_SYMBOL vmlinux 0xeda88a82 mempool_create_node +EXPORT_SYMBOL vmlinux 0xedba9aac generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc8e28d skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedff4be5 acpi_load_table +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee355c2d dev_load +EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee886436 generic_make_request +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeeb8a24c xor_ia64_2 +EXPORT_SYMBOL vmlinux 0xeec21ba7 simple_fill_super +EXPORT_SYMBOL vmlinux 0xeed73f58 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xeefce4fd proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xef7c5bb6 register_qdisc +EXPORT_SYMBOL vmlinux 0xef8efb4f input_flush_device +EXPORT_SYMBOL vmlinux 0xef94ab7c sync_inode +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefb9796d invalidate_bdev +EXPORT_SYMBOL vmlinux 0xefbbc715 mutex_lock +EXPORT_SYMBOL vmlinux 0xeff9de5f netif_device_attach +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf070f837 lock_rename +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0ca08ad dquot_drop +EXPORT_SYMBOL vmlinux 0xf0d3520d bio_put +EXPORT_SYMBOL vmlinux 0xf0deb897 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf0ea3e52 copy_io_context +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1394a2a __strlen_user +EXPORT_SYMBOL vmlinux 0xf13ad1fd acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19efc66 seq_printf +EXPORT_SYMBOL vmlinux 0xf1e3b664 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xf1e4166e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf26e5455 udp_get_port +EXPORT_SYMBOL vmlinux 0xf26e642f hwsw_unmap_single +EXPORT_SYMBOL vmlinux 0xf27e6360 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf299fd68 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xf29bb1b3 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xf2a6c9f0 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2f34753 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xf300881b generic_removexattr +EXPORT_SYMBOL vmlinux 0xf3025b65 pnp_device_attach +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf332ef8b neigh_for_each +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf3447fd8 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf3728d5c sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0xf37728a9 sleep_on +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d96711 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xf3e76604 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf4168f12 sba_unmap_single +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44d53da security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xf44fd0e2 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xf45b976b cpu_online_map +EXPORT_SYMBOL vmlinux 0xf461f3fc input_unregister_handle +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf50f3673 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf549d8e5 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xf55520ac __break_lease +EXPORT_SYMBOL vmlinux 0xf58d6001 zero_page_memmap_ptr +EXPORT_SYMBOL vmlinux 0xf5f514dc inet_register_protosw +EXPORT_SYMBOL vmlinux 0xf5f9648d __napi_schedule +EXPORT_SYMBOL vmlinux 0xf6023342 bdi_destroy +EXPORT_SYMBOL vmlinux 0xf6459518 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xf6948605 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d84e18 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6fbeb23 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xf74b1f72 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xf75c883e sn_dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf78cf2b9 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78fc570 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xf7986a3a srandom32 +EXPORT_SYMBOL vmlinux 0xf79ca3bb acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0xf7aec35e inode_change_ok +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7d371da tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf84becac call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0xf84c22a1 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf8835cc1 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a0a1ff posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0xf8aabfb0 dquot_release +EXPORT_SYMBOL vmlinux 0xf8d51e52 __kill_fasync +EXPORT_SYMBOL vmlinux 0xf8d87f8b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xf8ea1693 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xf8ef6438 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xf8f7f2ce iunique +EXPORT_SYMBOL vmlinux 0xf8fe7c7f kthread_bind +EXPORT_SYMBOL vmlinux 0xf97ba9ee unlock_rename +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c58281 __tasklet_schedule +EXPORT_SYMBOL vmlinux 0xfa23279c pci_dev_get +EXPORT_SYMBOL vmlinux 0xfa2421e9 sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xfa4f7f58 qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0xfa60c412 sock_register +EXPORT_SYMBOL vmlinux 0xfaae85bc __wake_up +EXPORT_SYMBOL vmlinux 0xfaf229ea blk_start_queue +EXPORT_SYMBOL vmlinux 0xfafcd25b vmtruncate +EXPORT_SYMBOL vmlinux 0xfb022db4 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb5f6e4f tcp_close +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7a72a2 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb818271 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xfb97dfd7 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xfbbca7dc ia64_pal_call_phys_stacked +EXPORT_SYMBOL vmlinux 0xfbdf1bd0 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xfbeb5b28 unregister_netdev +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc2501cc _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xfc2543d1 do_SAK +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3e8f07 audit_log_end +EXPORT_SYMBOL vmlinux 0xfc40c40a qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xfc4152fc ec_read +EXPORT_SYMBOL vmlinux 0xfc6df5b6 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcbf83ef sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xfcc58e2d sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xfcd35030 pci_release_regions +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfce23187 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfd19eaeb memcpy_fromio +EXPORT_SYMBOL vmlinux 0xfd1b138a sysctl_data +EXPORT_SYMBOL vmlinux 0xfd1cda14 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xfd50e926 nf_log_packet +EXPORT_SYMBOL vmlinux 0xfd5a33bb acpi_get_register +EXPORT_SYMBOL vmlinux 0xfd79eb7a sba_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xfd821793 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xfd8e3273 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc75a84 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfdcc8a0e fb_find_best_display +EXPORT_SYMBOL vmlinux 0xfdcebcc6 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5c4c7a skb_truesize_bug +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe71cc36 filemap_flush +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe81295c simple_transaction_read +EXPORT_SYMBOL vmlinux 0xfe8e044e udp_proc_register +EXPORT_SYMBOL vmlinux 0xfe9cb4ec sock_wfree +EXPORT_SYMBOL vmlinux 0xfeb36417 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xfebd7d18 nf_reinject +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xff1e5b24 simple_getattr +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff57c690 inet_ioctl +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff85304a blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xff8a365b pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xffa0d574 elv_rb_find +EXPORT_SYMBOL vmlinux 0xffbb750b tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfffc20c4 kernel_sock_ioctl +EXPORT_SYMBOL_GPL crypto/ablkcipher 0xc39e7435 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x4cda90ae crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x8e675ec6 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9cc58622 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfdad2484 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x346f5469 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x473a3c7e async_xor +EXPORT_SYMBOL_GPL crypto/blkcipher 0x20a4bd62 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0x70dd2c49 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x99fb1235 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0xb5c0a01e blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0xe4454e17 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/twofish_common 0x980d1555 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/bay 0x4f837893 eject_removable_drive +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x4ab479a6 register_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL drivers/ata/libata 0x04e07f1f ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x064ba368 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0d45f968 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0dca7e43 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0dd6dd2a ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0fada8ab ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x15479687 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x163e96ae ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x18221219 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a9a8414 ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1b513341 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1c4949fe sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d6ec5a9 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1e0234b0 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1e49f408 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1ede2e3e ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x24579651 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x260fc01c ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28f00ab4 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x29d41db8 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x309567f6 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3166977f ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x33ce8b7f ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x33e03c95 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x35c776d0 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x36d07dfe ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x38099d69 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b0a382e ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3bed7d94 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3f2b41e5 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4200035f ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x42bee796 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45084403 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45fe019f ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x48698302 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4e173b53 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x521d24f6 ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x55a6e481 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x565deaba ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x568a8dae ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5b968018 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5e812368 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x64453c28 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x65368173 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x686c4939 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6bc3a9c7 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6c946a91 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d5e889b ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6dc0c20c sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x718e22a5 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x71db9327 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7365d120 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73f0f547 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x799ed310 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e1cec18 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f28b52f ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x801a218d ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x80c7b1ce class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8257f9a3 ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x83efff88 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x84337507 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x860cace9 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8741dd2e ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x876bf7bb ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x87c262ea ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8946005a ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b1786a2 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e0301f5 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f45ac5f ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x905d342d ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x90a77d56 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x921f0c3d sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x937beda4 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x95ddc226 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x96951657 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97b9815a ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97fe76b9 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9b2aa785 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9bf67800 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9c2646b7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e2f99e1 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e818666 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f590305 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa0fb5e7f ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa21b297a sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa25eca91 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2928534 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2c24920 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa45f89dc ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa474d520 ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9f02c30 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaeac6926 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xafddd545 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb0878ec3 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb1db1202 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb4a44ada sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb8ca118c ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb912eb93 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb962578b sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xba124b26 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbcf4bd4d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe73dd4d ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3483c88 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4b8bf05 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4be3a7d ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc547b964 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc63d7699 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xccd86806 ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd0f9d93f ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd11b1e00 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd25f9a2e ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3b1369e ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd83e2e9e ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdc803dbf ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdead158b ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe2fc25b1 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe3bd30dc ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe76712d3 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeb079b91 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0xee64669b ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf1550183 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf37baf4b ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3ee07b1 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf5b4d2e8 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf75a8174 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa8a804d ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfadfcdf1 ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb731a7f ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfccbea95 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xf7fe104d sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x1e804fd8 agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x8dca833a agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x13915864 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x18cbb2b0 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1a19fcdd tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1b081d6f tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x260b14ff tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x42230a19 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x654bc9b8 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x75c696b8 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x934e59e2 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa007848c tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa0bd6454 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb7baf3f9 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb8495810 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc1a32beb tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc5bcd123 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcf48e7e7 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd47025fa tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe2be3361 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe770a77c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf4d72939 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf850c03e tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x630e085f tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x7df70490 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/connector/cn 0x969b8068 cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x47b468f4 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x57544ccd cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xa15036e0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xd3c7ff5e cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL drivers/hid/hid 0x107e60d9 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2f99d076 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3376896d hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5adaa7f3 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x78f29608 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8fe21300 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba755f86 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc65fa238 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcca75ef8 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe7100523 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xefe24fbf hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf9467e09 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfba83b4b hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdaff2751 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x474fe500 i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x4ce8b78e i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xa616c322 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xeb354e4a i2c_new_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x01488910 ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0a6af7b5 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0c01f2dc ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x15ab6001 ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1dcaabb7 ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x20fafb43 ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x21a875fb ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2885cbfc ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x327f05e0 __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x361716f8 ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x36666326 ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x373e9ddb ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x43aceab6 ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x465a7cad ide_acpi_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x537df486 ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5763c871 __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6e3c952c ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7df0442c ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x82b82bed ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x892a4f42 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x996640a3 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x9c5bf712 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa2d0918e ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa6fd8752 ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xac6dc4ba ide_acpi_get_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xac906c9c ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbc8c0856 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbef2dcdc ide_acpi_exec_tfs +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc3679690 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc975eff6 ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcaf89770 ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd91dedaa ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe8461691 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf5b05dec ide_acpi_push_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf7c3f31f ide_dma_start +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x2560e3c3 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x47f19dab hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x48e008fa input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x46645e7c led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x62041a3b led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x92679d97 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xf75b0c9f led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x46f81ad4 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x56a31d81 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x681bc8f3 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x9bf26e53 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x9c39d1ca dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xa5dfc720 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xc067aa3b dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xfd7b4aba dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x78c85ef9 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7a800322 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x93fdb485 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xafdc5d99 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe3b5f498 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xeb4f1d35 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x0c628c3d md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x49e86ec8 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5c7d87fa sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xb475703b md_allow_write +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x078f621b ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x136cc044 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x20102c8a ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x27feb0cd ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x29283e40 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2fe18ec0 ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x360ba019 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3935a7d3 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x40350979 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43eda01a ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x44c715df ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45ae7384 ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x48b53439 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4906453d ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4de265fc ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x58719ab7 ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5e6fea37 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x61a9042e ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6896a5f6 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6a7cd4bf ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b6af17a ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7646d342 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7dce94df ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x828ace4d ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x877fb5d5 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x88ce9df6 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x953031a2 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x95d28726 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x9b5552c6 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x9d01d36f ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xa1667eee ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xa3dc60f8 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xa8f0fa39 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb4ac75d0 ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb688ba50 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xca5b997d ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd2a4d8d4 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd489fc1b ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfb06965 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfee1185 ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xe8e8790c ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xe9f08798 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xea2ad56d ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xea83ba6f ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf7dd8c1d ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x132111fb saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3416b01f saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4afa6813 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x553af5b8 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x569fe133 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7445af7a saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x90a3aacb saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9cc3dbb3 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb64ae187 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd6e30720 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdd31f932 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x16fece79 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2606ba04 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x763d2635 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xa8c39696 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xbcdc4a2a saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf13d512b saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf82bfb48 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x0d4e9c98 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x31ca0ac8 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x60e7da1c ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x986fd363 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xabe56806 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd99a60a4 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe9287e0b ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x7900a2a5 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x01391a6a get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xd492449c get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0xdf7fba70 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb58034a2 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x149878dc tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0xc3ea2231 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x14c567d6 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xc8e5e9de tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x06b7dab5 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xa473885f tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xbb123b9c simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x1ca1d57d v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x8c35bb09 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x01d833d3 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0a089339 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0f0e10f9 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x12536dee videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18a20271 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1f880951 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x207732ba videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22282f9b videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2947922e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x308923a7 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x308bfaf7 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4cc6e523 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5744dafe videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58e5f21b videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6691e771 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8ab43b27 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x93ef3829 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x942109fd videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xba16ce46 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbfdd1961 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc90d7dcf videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd424d53d videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfe9a4012 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x114032fa videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1b85636c videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x27aba0ec videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3b55e7a1 videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4d681c1e videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4ee4a263 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6fe49db1 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x77053dc5 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8e7dcc3e videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x955282fe videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac33c6f0 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xacb86ed9 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xce7f5490 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdc259e3d videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8243659c videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xc9f802e7 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xdbdfa924 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x04197ff0 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x17cae5f7 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2c4e0de4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5128f3d6 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x89184845 sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xdf56c6e2 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0xb0971564 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0xe036168c eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x52c90433 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x857fba9a cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9a7eaa02 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xdcf8bd0e cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xa95c2b2e cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x1c226756 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x9428c3ad DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xa7ac3a44 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0de798ca add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0e370cf1 mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x290eb6fc get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x372753a6 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3946efae del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x43d5945a unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4ba0629a get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4c6dbabe default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x614f6984 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7de9503d mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9755e2c6 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa827bdb2 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc549023 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc9a7320d put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd264b16c parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf088fb7f deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x538ef6ff del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x862df602 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xab5c09bb deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf7508add add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x15ef833a nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x187c089b nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7ba238f0 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xafc559c8 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf407c386 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2f37d000 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xee9a0229 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0abefd18 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x35693265 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x551f8b5e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5f238b8c ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8a56f98f ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x91c26a84 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcef3a1d4 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd4d75e54 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdbbbe03a ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf146f6a6 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08a5feee mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e1b5b06 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e4a438b mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x13f6d69b __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x189dfbbd mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1e47d3ac mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x250d5db2 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29ea32ec mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2fe34b1f mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x30ef9852 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ccdb28a mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4386d34b mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x52dc67e7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x57fa090f mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5dcefb3f mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5f71c1c3 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65014024 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6563b783 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7346650c mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x77a74bb7 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f255b10 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8161926f mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x82f86235 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x921e73e4 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9d14ad3b mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa0de15e4 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa144ad6c mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xab805d8e mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4dd72a5 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xca6eaf56 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcd46c8a6 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd1902ba5 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdec40e39 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3a8aff9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf4f8d7a6 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf73a58aa mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf89f3f38 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfcb624e8 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd9440f2 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfe014543 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x76ec348c usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x92f489ab usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0084334e usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x06477c76 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1490ff35 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2397520a usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2a3a6694 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x364e9ce8 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x37ebd289 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x48c45b3a usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a44bf80 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a6859d0 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4eb25161 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaaf42a86 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8444dd6 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb1d7eef usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf9595fab usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1221ba64 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x456fe074 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x47bb7833 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x57abc620 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x690bac89 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x69efbcfa libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7453df6f libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x94684b6b libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbb85016f libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc6eeb888 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeb97f805 libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x37cc1778 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x479fa79a p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x58cc48f0 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x645ae928 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xa8881397 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xb0523ff9 p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x044beb02 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a98b6d7 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b378d8b rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0fd6fc9f rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c56d2b8 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x53b9382f rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71c63e3e rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x758cfa23 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8cdb4215 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8d8d5548 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e330657 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa02f3bda rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb07dd344 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9419424 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbe6ce03 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf54fd2b rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc875f10d rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd60c3fb rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf2cebb7 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf757988b rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x13cdd183 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1785611f rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1b5853b7 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x222d58bf rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x36e34b19 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9ebc3c30 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa51f24ee rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdd060d12 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf1a09e68 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x16966339 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x24c76778 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5e7735d3 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6993f037 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x813828f9 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x99d13783 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac446500 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xae062da8 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb6525ae1 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe69d2e7e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeb70a46a rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x65ef34cc acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x9867836e acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x05b6f635 acpi_run_oshp +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x188777ae cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ad3b491 acpi_root_bridge +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1c54f218 acpi_get_hp_params_from_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x2a70bb09 cpci_hp_register_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x46b91224 pci_hp_register +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x4d8bb937 cpci_hp_register_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x791f9fde cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x7dcbb964 pci_hp_deregister +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x8e109d14 pci_hotplug_slots_subsys +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x93e1d156 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x0160a4bb rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x0423a4a8 rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x17c2c138 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x2845dc7b rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x49d9587d rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x871b5788 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x998765d2 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb16bab8d rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc4fb340f rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc682c12b rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xce01b748 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xd3798f95 rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xdb09376e rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xf059b4b5 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0025217b iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06601f92 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c265b72 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29a02150 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3198b6a8 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34090739 class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x533b7449 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e28867d iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x624703b9 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65da4dc9 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fc6fcb5 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x836e328c iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8905bc10 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b7c85a9 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4ad0a9e iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa4d931a iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac03cf26 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae7c14a6 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2e87cb3 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc232ec49 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9e76ffd iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2083c76 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4f30bc8 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8c1695b iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf200171d iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf84c52ff __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfbb057f3 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x05b50fdf sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1b20e555 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1bf3ef99 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x459fa3de sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5d3ca66b sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x607d8837 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6375d2ed sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x694fc1c2 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7bc1dfb6 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa4b5c78a sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa5173a3e sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6ec4bc3 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xab74b0dd sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbcb681fc sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbd93bd24 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd103f21f sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd64a6870 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf50933f sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf58cb855 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfe986447 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x186b4602 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x19358e8e srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x577377dd srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x680f1bd1 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7e952ce1 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc3136c31 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x07939ff0 scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x0bca5c9a scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x0cbb83cd scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x2a0a53a6 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x324435dc scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x33f69d33 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4c0bd66e scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4cf68a53 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x70748385 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x73350b81 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x901fa703 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x92ae3436 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9f997e5c scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xafe268b1 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x16a1c8b7 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5330862f scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x59d64166 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6837380c scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7763ee14 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x978f0a46 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xabab6d5b scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd382ef9a scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeac3228b scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07c2409d iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0b9993c1 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x27ab1f5f iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28399176 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6e1572bb iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x789a2801 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91bd4bf6 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x960089c7 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa11c03f8 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7589d37 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb3753870 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdaa916af iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdfb55a1e iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe76c4fc0 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xebb2dcf6 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf957f702 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x36d2cc7e srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x62d6af00 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8cb53991 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xded5dd39 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xeb769839 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x562c47cb ioc3_unregister_submodule +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x5b4e8850 ioc3_gpcr_set +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x61f97e39 ioc3_disable +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x9be94736 ioc3_ack +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0xb6f88d3e ioc3_enable +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0xe2b01ea4 ioc3_register_submodule +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x11593224 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x17d56913 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2a291589 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x89624683 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x969b7b40 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xab519fb5 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/uio/uio 0x6f343e29 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x97058e8e __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc5ef52d7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x09cd63fb usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0bb118d1 usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1314a261 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x249df4dd usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x297cafdd usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x30be45fe usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x39832774 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4582776b usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5134d7e0 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x525df35b usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x52fafc26 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x56a5e1fb usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5bf60f48 usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6ae95bc3 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7a30a1fd usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8a2da485 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8b0b88f5 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb98f80db usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xbd274593 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc857487d usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xca26455f usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdbde6335 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdd50f42e usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xddad9325 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf0ea2416 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1dc43307 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x22fb841f usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2658f989 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4049ab84 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x61f287a6 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x68281d00 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6d8b7022 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xab855d97 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd6c9121e usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x465f9737 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x16492fa4 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2036c86f usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x26f7405c usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2ddf0420 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x337b52e5 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ba28a53 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f59dd97 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x908d116b usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x1419facb fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xbd2ba4ed sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xda7334ad sis_free_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x45a7e8b3 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x87b87014 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa291c585 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdaa8cd64 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf69c275e w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xa61b583a exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xf3fdc230 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x018ee7fc fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x33df5783 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x34fe2af9 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x4c8f4e5f fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x4d3501f6 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x4fffa64e fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x6de14293 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x778bc5f5 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x80ede42d fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x82390533 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x8a4db267 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x92c533f4 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xa1330a67 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xbac87b9c fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xd8f81bac fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xf2e85634 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xf33f71a0 fat_attach +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x0ca23f20 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x33a6dfbf gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x916b3366 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xcb2e5316 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xea691b6e gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0d1079a8 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3d143878 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x91adeebb o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa170a350 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaa29f952 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb35a8de5 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb7f5ce81 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdc273f8e o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfa83d357 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1e308d91 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4149dc25 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7d09adcb dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x96473042 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x9e88b69a dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd9fb1911 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xadff0aec ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x37a1f7a7 bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x27f93234 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x3b3a928a tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x56fe28ad dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x5ed082e4 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6b4e97e3 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x87634e95 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x96896a1b dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x9fbc0833 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xa74eb8d4 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xab25bbce dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xb0804a57 dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xbab1330f dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xda055db0 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xe17f4659 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf28eb3a2 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x01ca3c4d dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x03335614 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x065ef540 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a6105db dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d930dd7 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x123056fd compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x12fdf3de dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x147385a0 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16156f94 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b094bb5 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2c18676a dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x38ec8e7d dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a07caff dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3bb0a6a2 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ca56dc3 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e3041f4 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f157931 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44c46df2 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x477562f4 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x51af9f5c dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x58d1acc2 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5eb50923 ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62112208 dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64dd7c2f dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x662c4c1d ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e2f197a dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x757d9c93 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7bb4df4d compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x80993155 dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x89c183ea dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ea39bd6 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x918dfeff dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9aa57da4 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3a00a15 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa435d139 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa7329152 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa78b91ed dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8337290 dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xace59590 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae82484a ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb239aeca dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb336926e dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc48f6078 dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc57acf5c dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc451140 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdcba1cd0 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe12ae399 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeaadd35a dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf442e3a0 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6a0af19 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf790465d dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd2380cd dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd27e829 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2865370a dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x39b82b2f dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x47bb0e0d dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7b835b0f dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xaf93b126 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf13608c1 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x1d9870cd ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x3b9f170b ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x3ce7221e ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x01be1807 free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0e92c3c9 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x293f3f59 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x44e5a387 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4c1f12ab alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x52993deb ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x63485f17 ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x65b628d6 ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x78de1527 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7e417bb6 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8357db68 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x9108cd0c ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x9670f819 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xae3e4373 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc0f90329 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xcdaa6113 ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xdae1d492 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe0112b39 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xeb3d28df ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf8a5d166 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xfecc24db ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x10d3167d nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8aa5451f nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8ea645ff nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x91991087 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xdbaf341a nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1f168ca4 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x72645c5c tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9c0a3f4d tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdc94b4a6 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfe213d9e tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x01ffe8b8 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x127dc72d inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1d1d7fbc inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x34877146 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x46ce4384 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x615f5dd1 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x75d4fba9 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7692a9ae inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x77799208 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa093b77a ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xca2523d4 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe73dabf1 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xeb3771a2 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf128c37a ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf13c194f fl6_sock_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02d955a5 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03125731 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03eb4248 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08b2a75e nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cb81902 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1213f502 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x151a548f nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x161642de nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a95f01c nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x272c360d nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27dbadf8 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29986f66 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f3c19e3 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32f29d12 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34885d2b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x371f644d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3fde8b5f nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42cabe43 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a4d0c32 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50df2dea __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51cf4f23 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55061fb2 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a36effd nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5cc03416 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66f58704 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ca14463 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73606e2c nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7abdf3e9 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81a66355 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x879b2704 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c811cc2 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d6ca8de nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8df3b41f nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93c4f4f5 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94f19515 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9abb2939 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9d40cfa4 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9a7b773 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1918466 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1dd2029 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5ad4586 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba0f9cac nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf0f1450 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfe1fa3d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc46c2468 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbb3d900 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdab4a469 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc65d369 nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdce3e46c nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf36c81f nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe107598d nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1359deb nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6c904da nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xedc505a6 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee2d27fd nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5a8a031 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf81f00b9 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbd1a7a1 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x095687d7 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x8e3e5183 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e3e3b69 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x74512b14 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7c1bac33 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x966d7a55 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa151336c set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xad6822d8 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc214189f nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc4690540 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdb9d62ac set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xde18de6c nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x9553ff17 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00d4beb2 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1f06b5d7 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x60008ecc nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6e35393b nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xce2e507b nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf7d3462f nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x084fe56f nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x445ea6f2 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfb1e6a78 ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x5c2a9da1 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4ce41eb1 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x65d48329 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8132cad1 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9df5d95a nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1dea9b8e xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3fd65c74 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x536d3aba xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5d391270 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5db6fa73 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6726d652 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8db1c2f6 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x94093c30 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ee1744d xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa3836fc1 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb46e8b6e xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb526624e xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc1038155 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3714f01 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3b4f431 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x8a858425 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf76cfa57 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0348b909 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05d8635a xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a10a6c1 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f8a86fd xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x109c20c3 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1754ccd4 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1aa8f5dd xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x277678e0 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f2b1e40 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e491d63 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4069fb90 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ecfe1c5 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67415eb8 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7586cd78 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8064e4b8 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80b4ccc6 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8633461a xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f2ac286 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93ed952c svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d52cf41 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa44081bf xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa602ccc9 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafc0898f xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd5c709b svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5e4e9d4 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6af13d9 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcebe81ff xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc25258f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe23dbae2 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe65c3320 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c72e5f pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x00f1f5a3 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x0124b3f9 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x018b9da6 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01c631a9 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x048429a5 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x04a4a7b3 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x04aa134b device_rename +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x04f79739 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x05361b7f audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0575ba8a device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0587ae70 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x05c170f6 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x062dfcf3 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06de8aa6 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0x0725f20a ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07da3b22 sal_pcibr_slot_disable +EXPORT_SYMBOL_GPL vmlinux 0x083a0676 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x0853ef32 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x0880ffb1 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x08c824ec get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0975b685 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x09a9217c led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x0b3c3e1a pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x0bcd4cc0 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x0c17213b rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0c91d712 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x0cc62aba platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d50d34e class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0d518732 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x0d5a36cc init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x0e17dd0c scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x0ee973e8 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0x0f15d724 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0f185dae inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x0fc47fe2 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x0fef6e6d inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1085f2d2 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x10a734e8 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x1107a590 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x114ee9c4 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1166f8de copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x116e99de ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x11c23240 crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12913c99 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x12d1bc36 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x1346e8c4 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13dc77ca tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x13e37faf securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x141db64a crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x143d57eb uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x14935a76 __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15e2fbed xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x16c603e1 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x16de489f crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x17048161 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x170e181c inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x17fa877d netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x181a98fb apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x1905164b driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1974e188 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x19751346 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x1a4a3d4f power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1aa8bbde get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x1af19435 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x1b15acf9 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x1c241aac debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x1d2522c1 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e989e64 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f55b868 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe7c764 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2022272a pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x203e07c1 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x207c5edb devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x208494d0 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x208548a0 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x20b94fa4 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x21b1e83e acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x21bccaa0 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x21fed565 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2398b68a tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x240e1708 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x243f0b4b crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24edb8f5 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x24efd244 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x2510c2a2 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2519a0df queue_work +EXPORT_SYMBOL_GPL vmlinux 0x25511135 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28024765 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2853d58d inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x2886faeb inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x294ad1a6 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2a117a6a bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2ab28551 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2b6bd18a sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2baa1ec6 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x2c1538d1 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x2c17729e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2c52f4de xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x2c9554cf inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x2db935b1 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x2dd5c1ed fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2e82872c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x2ed05038 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x2f1f7564 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2f2035bc devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x2fd68650 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x2fda6646 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x3117c71c device_register +EXPORT_SYMBOL_GPL vmlinux 0x3175763b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x32469c43 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x325949f5 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x325f5d0e attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x32a11c48 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x32aadce7 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x32b94d1c tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x337b3987 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x34a560b5 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x35288d70 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x356c9dab nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x358fdd7f sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x35eb79d0 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x35eebb92 class_register +EXPORT_SYMBOL_GPL vmlinux 0x35f54fdf tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x35fb0b5e class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x364ea3d6 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x36a98d9f inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x36bf14ff task_nice +EXPORT_SYMBOL_GPL vmlinux 0x37035af8 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x37174359 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x376b84dc device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x37964cbf fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x37a5388e scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x382e78b4 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x38d79d74 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x3999c5fb klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x39c2d111 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x3a69e163 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x3a770b8b inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3b5fa18d crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x3bb22e6f sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x3bba6fbc sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c41b08e sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3c613207 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d46b9cb crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3d5c15a1 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x3d8d95ca attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x3dd29278 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x3de154cf inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x3e195c31 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x3ed0884b platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3f083e31 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f3b9343 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x3fd50d10 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x405b2bac srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x40af7964 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x40bddb4b sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x4124093a bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x41b61405 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x41c20dae class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x42710e75 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x4273308d inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x437bb9c3 class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x43c5d70a skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x43d02662 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x442f1b8f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x4458f5df class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x455d7e13 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4585e92e tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x4648a1c4 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x46a0b0fa percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0x46ae3beb tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x46d8f6b5 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x473dee33 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x48319207 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x4835feb1 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x486435aa relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x486f1096 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49dfc56d user_describe +EXPORT_SYMBOL_GPL vmlinux 0x4a419738 pfm_install_alt_pmu_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x4a7eec3b bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x4ac7a91e vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x4acca702 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x4b372435 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x4bef5d0b led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x4c3871e1 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c8f9324 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4d3a930e driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4d88b90c led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x4deba4c2 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x4e5495c5 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x4edfeca4 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4f6bd220 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x505a5f81 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x51205de2 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x51910d19 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x526ce7c7 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x52c0be00 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5350eed9 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x5389f09e klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54a4b6d9 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x54b49fb1 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x54e04428 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x552cd962 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x552f39f7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5560b4a6 mmput +EXPORT_SYMBOL_GPL vmlinux 0x55c3b19c tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x55e675c4 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x55e908fd tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x56068779 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x56151e8e user_read +EXPORT_SYMBOL_GPL vmlinux 0x56330074 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564c9c23 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x566741fa do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56d9e73a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x5759f258 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x5771afe0 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x58763315 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x58d59b95 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x5924ce3f rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5935ce17 sal_pcibr_slot_enable +EXPORT_SYMBOL_GPL vmlinux 0x59b891ed d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x5a1ea078 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x5a60cac3 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5ac6d06e sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x5b5fa9a0 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5bf4768c debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c0fb9f7 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d090cb1 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x5d6b4e78 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd2bff2 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5ea3ae5e xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x5eee2949 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x5f2ef59a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x5f84ec7a pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x5f95aab6 sn_acpi_rev +EXPORT_SYMBOL_GPL vmlinux 0x6028c95d kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x61c3460f rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x61dd13f7 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x62332716 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x623f8080 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x6294fa46 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x629fc4a7 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x62abc933 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x630a1422 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x63bd3521 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x649e4991 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x654e645e led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x673c5163 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x675ec084 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67c88ff7 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x67db292c nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x67dceb56 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x6837b93f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x685d2977 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68c0b459 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x698ff44b __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x69c82c30 get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x69e5a45c led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x69ef2cc5 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x69fc4580 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a0aa9f0 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x6a1aa1c6 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x6ac7091f fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x6bc2f534 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6c07e729 swiotlb_sync_single_range_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6c126f68 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6c5e0b6f crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6d05db4d hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x6f28c3e1 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x6f9f221e find_pid +EXPORT_SYMBOL_GPL vmlinux 0x6fba9ec7 pfm_remove_alt_pmu_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x6fe034e9 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0x70f367de xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x711bf3e6 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x7186426a fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7327efd5 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x73365b4a xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x73a53ef6 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x743ddc50 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x7534103a anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x754c8b1f driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x755ed3c6 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x75bfd6ae sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76265047 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x765ea8c1 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x7686e3c3 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x775fad87 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x78041b8f byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x78a17834 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x78a4cc29 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x79ce84e6 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x7a81665a inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x7ba987f4 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7baffd47 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c5d3825 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7c6f336d register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7c954d7a init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7d64b063 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dfe6fb2 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7e57580c blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7eb662f0 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7fc64fb2 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x80149a64 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x8077138e __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x807eaf7f devres_get +EXPORT_SYMBOL_GPL vmlinux 0x809b7b14 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81b1aa00 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x81da1c5b device_create +EXPORT_SYMBOL_GPL vmlinux 0x825f0569 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e1e08d cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x830f8f49 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x84189430 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8435fff3 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x858f0d7d debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x8596bf62 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d2d6b0 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x860019b1 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86bd3347 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x87112055 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x886150ed hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x899c2717 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x89e340cf acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x8a3236c0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x8a5bb923 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x8b3aaeec proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x8b4a8bf5 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x8c967706 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8cb2d629 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x8cdceb19 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x8d1a3f1d class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8d201514 is_multithreading_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8d2d3897 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0x8d45e996 __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0x8d9a30e2 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x8dc8e212 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8de54741 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x8ec55b20 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x8ee8e9bf devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f1c00b7 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x8f4a2bd9 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x9023c7ae pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x90b2c3ac generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x90d840e5 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x924ed7b8 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x939048e6 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x93b6161e class_create +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x9549d81b acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x954fb59e scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x95906ff3 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x95da680d spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x97d9c66a nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9a7f705f device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9ae12b8f rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x9b114c25 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ce4defd platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9da0dd7f srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9dc8b5e1 user_update +EXPORT_SYMBOL_GPL vmlinux 0x9dfedb64 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x9e46c1a4 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x9e8c11b6 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x9ebd307e xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x9f1d30ee __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x9f4295c1 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x9f45ea0f tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x9f9e0d7e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fde8dbb input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xa1221e4f devres_find +EXPORT_SYMBOL_GPL vmlinux 0xa14d0d65 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xa1630ac4 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xa19c1d3d put_pid +EXPORT_SYMBOL_GPL vmlinux 0xa1cf664d transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa1fd2e5c simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xa225a96a audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0xa2420903 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xa2d17b9f per_cpu__pfm_syst_info +EXPORT_SYMBOL_GPL vmlinux 0xa3cbb188 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xa3cd99c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xa4311dda crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xa4333473 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xa501a795 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa61bdbb9 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa64d9d79 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xa6ddb098 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa701c105 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xa7baad8f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa825d5a5 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xa858e1df __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa94ecb5f elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9850064 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa9982e16 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa029827 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaaec9c5e inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xabf55aba skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xac3584b4 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xac6ed688 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xac9899a0 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xac9f47b8 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xacad5c30 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xacb856e8 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xaf1c7494 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xaf3954dd device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb0c8f228 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb1068ff5 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb165adb6 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xb17a451d inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb27345bd devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb3323d65 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb34b5625 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb36a3e05 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb4653c13 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb4f4d705 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb591cd90 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5eed08b map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xb685de26 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb6cc6583 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb8aac001 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xb905b34f cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xbaae9970 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbb24ed71 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbc6d2a83 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xbcf64e75 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xbd43ccaf pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xbdaa1452 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xbe30ed2d get_device +EXPORT_SYMBOL_GPL vmlinux 0xbf046fa2 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xbf1325db fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xbfc531ac sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc051d44b attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xc0799c53 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xc0a08de1 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xc0cff9b3 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xc176f30b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xc1867aa8 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc1c55283 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xc276f753 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xc27dee28 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xc31e9702 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35fc7db vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc3c045ed class_device_add +EXPORT_SYMBOL_GPL vmlinux 0xc4696741 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc59ee360 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xc719cfe6 swiotlb_sync_single_range_for_device +EXPORT_SYMBOL_GPL vmlinux 0xc73c441b nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xc869589d hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc920554e klist_init +EXPORT_SYMBOL_GPL vmlinux 0xc94dd4a5 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9ad3323 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xca3fc1da pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xcab36a43 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xcb04f88f blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc799377 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xcc92f0f4 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xcce44263 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xcd143470 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xcd5fb04c crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xcdaf74b6 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xcddbfb70 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0xcdfd664e sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xce033996 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xce28b821 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xcf02a710 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xcfac1fdb __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0dfc4c6 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xd262c5c9 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xd3e3e9b5 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xd473d6ca class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xd4a6abad sn_ioboard_to_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0xd527a720 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xd53e9c04 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xd682cdb8 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6c15278 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6cc0f4f input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xd6ec63b1 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd7446737 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xd74d736d inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xd78031b0 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd84737a9 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd87aeab6 jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0xd89734a5 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xd9924406 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0xda13b4c3 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0xda744781 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdaa232c6 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xdb5b9f19 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xdbbacd2b file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xdc28ded5 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xdc45de81 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xdc89980a inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdcc7faad pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xde1eeed5 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xde2a3fc2 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0xdebb05ef skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xdef2eef7 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xdefdeb7f class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf2ffe9c klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xdf8b2817 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xdf95a48e spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xdfb1a652 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xe07f7b05 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xe137b48b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xe15b0d26 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xe2109d5c transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe2f65493 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0xe3308a22 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xe3be6826 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe3d9bd74 inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xe3e1f28b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xe3e60be9 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0xe3e9d6bb spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe3eb3737 pcibios_fixup_device_resources +EXPORT_SYMBOL_GPL vmlinux 0xe3ebd326 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xe440fddf __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xe7a6cfab device_add +EXPORT_SYMBOL_GPL vmlinux 0xe9240fe7 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea955ade securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xeb66d7b0 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xeb98ca29 device_move +EXPORT_SYMBOL_GPL vmlinux 0xebaec2ca inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xec58a227 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xed077693 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xed27b65b sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xeded8133 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xee575ac7 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xeeb23165 pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0xeec30d04 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xeeed1890 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xef372a54 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0xef4bf493 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xefcbb956 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xeff8baf3 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf0797992 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0c8ecd1 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf1014b16 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xf105019c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xf1569412 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xf171f26b device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xf17e7e6b power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1f77520 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xf2210018 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf24e9600 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xf32b95e4 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf3a11109 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xf3a6c323 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf3b6ee85 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf3f671f7 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xf43874d8 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf51c18ba tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xf56ae3a7 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xf5d708f2 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xf6a121cb device_del +EXPORT_SYMBOL_GPL vmlinux 0xf7acc968 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xf7edf766 user_match +EXPORT_SYMBOL_GPL vmlinux 0xf8eb0593 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a9fa3e __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xfa0fd095 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xfa735b78 mca_recover_range +EXPORT_SYMBOL_GPL vmlinux 0xfa91da08 k_handler +EXPORT_SYMBOL_GPL vmlinux 0xfadbb5c6 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xfaef48b9 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfb4b07e0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfb7e5479 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0a0904 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xfc0f9cfb __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xfdc3b86a class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfe666aac vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xff951c47 input_class +EXPORT_SYMBOL_GPL vmlinux 0xffbd997f put_driver +EXPORT_SYMBOL_GPL vmlinux 0xfff91c13 device_remove_bin_file +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x0d59e0e0 usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x21e66ca9 usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xc0603a79 usb_register_driver +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/ia64/mckinley +++ linux-2.6.24/debian/abi/2.6.24-24.56/ia64/mckinley @@ -0,0 +1,6517 @@ +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x345c9217 xpc_disconnect +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x39046c7a xpc_clear_interface +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x4c64fab4 xpc_set_interface +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x77ac8ff0 xpc_connect +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x7c3462de xp_nofault_PIOR +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0x8e3dcd44 xpc_registrations +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0xa2083314 xp_nofault_PIOR_target +EXPORT_SYMBOL arch/ia64/sn/kernel/xp 0xfb8aec18 xpc_interface +EXPORT_SYMBOL crypto/gf128mul 0x24ed78f1 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x26f4c894 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0x3048a718 gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x61dc7b4e gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x67230a48 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x79a10b7e gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7ade1ff9 gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7f5e7a78 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x83dff6a6 gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0xac500869 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0xb81a3b33 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0xcd29b909 gf128mul_4k_lle +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0x42471eaf acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0x47673a49 acpi_processor_notify_smm +EXPORT_SYMBOL drivers/acpi/processor 0x6b138cd0 acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0xb1a49b9d acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/block/loop 0x6b551150 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x0f9ee0cb pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x15abe632 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x2427ab01 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x2d6835d5 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x3ab0de17 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x7a3fae2e pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xa4b13df6 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xaa89171a pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xc18e9d86 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xd53ab72e pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xe434ab69 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xfd8c5a35 pi_init +EXPORT_SYMBOL drivers/cdrom/cdrom 0x01d5b8e0 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x1615f518 cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4842d52f cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x5a83d897 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x5f812587 unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x98dd1b10 cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xb9dbe85b cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0xc1049651 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcc9157aa cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcfaf76d5 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe41dcd87 cdrom_ioctl +EXPORT_SYMBOL drivers/char/agp/agpgart 0x17688278 agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x20e8d329 agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x237bff58 agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3519d569 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4351c620 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4a1e8546 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4bce5e38 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4d5d07cb agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x518fb80d agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6867f988 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6d58f69e agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0x736cad67 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x78dc812c agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x83567935 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8c0393bc agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa27935de agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa57d8d70 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaf53e7e1 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0xafa37826 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb647fe77 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb677a59a agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xba846f9e agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbb670393 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xbd99112d agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcf09aff1 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0d83d93 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf06b5969 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf4a83970 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf4f60767 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf5ac5d70 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xff98680e agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/drm/drm 0x029339f7 drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x0b8fd6a7 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0x0d325a3f drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x10c62765 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0x172af741 drm_compat_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x177dcb8b drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0x1a154686 drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x21d332c6 drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x350612e6 drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0x3f1417a7 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x41584437 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x4299d81f drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0x43e2544e drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0x4ac22f5b drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0x4ead0e71 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0x4f554611 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x50e71592 drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x52feb7e5 drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x54860bed drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x58e576a6 drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0x5a2bde69 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0x6a0614e5 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0x6b3b4abe drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0x757180bc drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x76a47409 drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0x78b6156e drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x99e004a6 drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0x9e716e8d drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0xa1f6d8b4 drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0xa39d2504 drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0xa81bb39e drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xafa8cb21 drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xb72a265d drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xdb272e1f drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0xdba30162 drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0xddddcca1 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0xe00d6a7f drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xf2768865 drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0xf664bf61 drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0xfdbca2d5 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/generic_serial 0x136cbc88 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x27c91a1c gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x3480a0a7 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x4634ee86 gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x499d7c82 gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0x505c9b73 gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0x5aef52e4 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x5d8472f5 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0xac961100 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0xae5b0a86 gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0xbc1edb10 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xc7255fba gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0xd178e8eb gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0xd1ae797b gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0xdf7be4e7 gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xe97544a8 gs_hangup +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0369975e ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x05dd5922 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x245482f7 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x254e2d98 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2d0706a4 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x380982b3 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3d972047 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x41f1d7c5 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fc88c03 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x54bb6b8d ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5800b59d ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7ee612a3 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9b34264f ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9cbf6fae ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa870060e ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa96aedca ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xab4a8f63 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xac6e7e27 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb723ac50 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcf7b0539 ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdaf5aa46 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdd6a82a3 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdf0e032a ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xea929d8d ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0x439f24e0 cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0x357637a0 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0xd4a24dca cpufreq_gov_userspace +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0x09b86f02 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x2f9e7f8e vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x446615bd vid_from_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8c956049 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xd87eb4b8 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x1acb5d34 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xf0afe546 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x71514fc2 amd756_smbus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x0441e8e3 i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x08207e95 i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x211b860d i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x29e227af i2c_detach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x383ee8d3 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4af765e5 i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0x802dc1e0 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x83563eb3 i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x8a7aedc9 i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb26d7d96 i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb8e941de i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xbd0ff963 i2c_put_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xcaa53223 i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0xcb7e3e9a i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd0f6749d i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd5574684 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd6f148a0 i2c_attach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd773d5fa i2c_master_send +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd82e48d2 i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd8867f6d i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd99d55b4 i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xdc036d7c i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe5a40873 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe9e8c6b9 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xec3a59da i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf2a8df40 i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xfffb1570 i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/ide/ide-core 0x069914cd default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x17a2681f ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x1adef645 ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x1b1e6bc8 ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x21a812be ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x250b815e ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0x28b97bac drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0x34192394 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x359e1050 ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x39d00d87 ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0x3aa7cf21 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x4447fe6f __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x54e85d99 SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0x57ea6f64 task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x58a70c98 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x59b535ab __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0x5e97aec8 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0x628e8a6c ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0x6ee72ea5 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0x703ef02f ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x76597d9d ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x788cf27e ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0x7eaf3380 pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x8a8f8a4b ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0x8ccf11e4 ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0x8d6a1486 ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0x92373228 ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x93f28826 task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xa35f92bd ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0xb023e79b ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0xcb705475 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0xce2d3d11 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0xce53ce98 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0xd9fd21ca generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0xde98b4a9 ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xe58d3294 ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0215ae61 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x052dc643 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x05d3c48f hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x094e39d0 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0ac03085 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b71ad8b hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0cbe110c hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e2df1b3 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0f1fe14a __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x15f18344 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1b8797b4 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f173309 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x20f4da92 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2796a83a hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2a0e20c1 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2c41249e hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3176ce35 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33642fc9 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x38093e1f hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x39e43b22 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d367078 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3fe17321 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x414280f8 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x491fb9bb hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4cc8a01f hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d690fc3 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x517e0a58 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5260d6ec hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x53181ee7 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a216dd5 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5dc27c00 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x60c363b6 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x62d770e5 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b6cf8a1 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x704c5f0e hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7265a531 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78f4204c hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e081662 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e99e03f hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f2a35df hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f393a20 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x819d65ce hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x82679312 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x86988f92 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b6e9e8f hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e6a778e hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x911ffcc5 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x95f8211e csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x96ffe1a3 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa0297a1e csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6d833aa hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xacf063bd hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb4849ce0 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb534a652 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb543146c hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb75df035 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb872f19b hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0ed8c56 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3674a26 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3ba9576 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc7c0e8f2 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcea45a92 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd10c1cb8 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd2b87589 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xde6ff263 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe6c25295 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe894ea36 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe951f443 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe965ebed hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xec4b022a hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed7c9ae3 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf440b392 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xff75868d csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x515b073a ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x59f75ab6 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x64c5414e ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xa7deb82c ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x22a558f8 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x65be15ce rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9feb2c34 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd5147e32 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x08746a9c ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x148ed0de ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x17e0f0a7 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x34a2aace ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4f5b9786 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5777998c ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5c884f90 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6a0b0b64 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x914842c8 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb69a3d5c ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd63d4d98 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd994197b ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe1576751 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe4833b23 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xece0e887 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf7a5c250 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04dc868c ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0632beb8 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0baf160e ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c642e5f ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0dda6ef9 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16d7c0bd ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x193d1f8e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c046772 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d2bb0b8 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f620966 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26b38a0d ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d33d962 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2de3c197 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3621e946 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a3d75f2 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3cd7454a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x464560da ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47e543ba ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x497d3855 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b4b944c ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bb6bcb4 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x508fa718 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x509ea80f ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54a1be33 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5742eb76 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5938cf3c ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e36a5f5 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f05c658 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x720ec5c1 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7273ff4c ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x753a759a ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7add77ba ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d5b80e3 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x818c4fa6 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82ddf2e5 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x869b32d0 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8adb21e0 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d520cc5 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c5ad87f ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa192ed99 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb63f0e9d ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9322fc3 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcb12a76 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1ed0e60 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2464997 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc60f746 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd25027d0 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4f8cb5d ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5f21755 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdedfc0b6 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe35942a9 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5ead451 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6da27ca ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec3b8862 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedd5258d ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeedd77c5 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef601b42 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf05455c0 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf06ba876 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf683a247 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6af0205 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6c2d339 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9bd1d03 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfecb3929 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff8162b6 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1432c82f ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3217d152 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4799c316 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4e36433f ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x58c3086f ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x613b1e2e ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6c24c03f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6e3f26d6 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x76ccf145 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x80bd0105 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb4f29159 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc1778834 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdc0c1dac ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe153009a ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3356b8d3 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4c9985e4 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x50b3795f ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5441ad53 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5d8ce1a5 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9002f081 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa32c5601 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb6b1007f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd09aa5f6 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe24316b9 ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3746f804 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8a31deb4 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa25a95b2 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbbe8af5b ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0a096f40 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x28efde0c iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x304b5e77 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x47aed93d iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8fb89d64 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x93233104 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x94ba0042 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf6fe0e49 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x016f0c72 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05c9b996 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21cf54c6 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x43bf004c rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4cf7c206 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50ee96aa rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5959b180 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x59d4c321 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5c25019c rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x82fb7c77 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8f272fb2 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x94c6be99 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9528e8d2 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc4fe61fe rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc99e39c2 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xccd08c16 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe20b3e69 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf7694284 rdma_create_qp +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0f933f6b gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x40700dbe gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x76174b0e __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x96a16b4d gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9ed7cf8e gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9fec058a gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa047fdd2 gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcb2183e8 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd81560c6 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe88385fb gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x0d450cf9 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x2a12d9fb input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa148eaf5 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xe37d6d14 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/serio/i8042 0x4fdee897 i8042_command +EXPORT_SYMBOL drivers/md/dm-mirror 0x07904eff dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x12b74b35 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x4e16d6d6 dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xf6fb80c6 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mod 0x2276a42b kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x3d969c3e dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x5d791988 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0x6586161b dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x67c29390 dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0x750b5eb8 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0x7772e08d dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x868a67fe dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x87e58be3 dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x88fbb8c1 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x8c70a4a0 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x8fca57da dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x918bed36 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xb1ecf87e dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0xbae8cfe7 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc97c4310 dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xd3133534 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xe87f4138 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0xf1051385 kcopyd_client_create +EXPORT_SYMBOL drivers/md/md-mod 0x01c2cd22 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x0e4864d1 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x179dc495 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x1e235d30 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x1f595da9 md_error +EXPORT_SYMBOL drivers/md/md-mod 0x2dfc7d84 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x53d8924b bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x624ce95d unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x841d0d29 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x8eea1ea9 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0xb57b7793 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xbfc66a97 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xd0422297 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xd1931304 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xd835e6a4 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0xe3d88083 md_unregister_thread +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x21a7eb3c flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2814f4a2 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2f75ea23 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x368a5c4b flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x36f1874b flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3fab5d61 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x43d103db flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5f569be0 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x63395b76 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x758b843f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9ce7e996 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9ef570a2 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc1bcc3b3 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd1b9995d flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd8adf26c flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xda7ad010 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe9d76911 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xea07aeca flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf1845b86 flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfcf6394b flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2832eca3 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x84c9293d bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbd8e311e bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xbea02e72 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x26ac6340 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2822a27e rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2e9d0315 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4199e5f2 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5142b7ba dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x63b46fe3 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x83799a0d write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x85289b0c dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa041c7f7 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb5c81fa1 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc70b6d66 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdc165a3b dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf487a3fb dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf6f5f56c dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x152f3cff dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x07a3d64e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x08733236 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x09ecad35 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0fe6fddd dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1209ade6 dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d44ddc9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2089c52e dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x21614a2d dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x33ecf6d3 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x401b6563 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x409a230f dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4595ed1e dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x51df4805 dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5212fd66 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x576f80d9 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5af0903d dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5f2b1d95 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x713ee3b7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7613476f dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x770a560f dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x802792e8 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8df8085c dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9379f72a dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9568691f dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99cc2bad dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9b3b97e7 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9c7c71ea dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa1a8c7f9 timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac136ce1 dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb2656290 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xba564a23 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbe56ff41 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc06febe4 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcaecd98e dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xccc37af9 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe028e3d2 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe3b8ed16 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe429d23d dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeac260a4 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf2110909 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfa7c3791 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff65b629 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0abe9474 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x29ccf3c9 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x372a69f0 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3f255707 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x400f16dc dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x543d0aa5 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x59051491 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x847f1499 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xafc85f5b af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x03818aca dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x08532226 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x144d700e dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3bf8ccca dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x44dde226 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x51937538 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x55c7c5af dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa481ebb0 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xac6ec2fa dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc8d2864c dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe5da4703 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfdd2bf97 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xbd22adfe bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x3e5d30b4 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x5973e40e cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x7ae42a06 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xd9ba587c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xcffeb824 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xeb6368b3 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x7e292921 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1a947717 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x425ca53f dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x59640d90 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x69916912 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x927a8fc6 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa9f3842d dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x1a21fb1d dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x5f2b327b dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xd6408a4d dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6649632c dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6e31dad0 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x75f30697 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x905dc7ad dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9611a034 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xec3d955d dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x64b083aa dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe465acb1 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf61a4ad5 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x5bf70ace dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x1d695359 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x0d88ac17 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xdfd04857 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x59b4e553 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x43bab0b7 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x4571a705 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0xf9eb5c97 mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x3b75e56e vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x1bfaed20 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x3f043637 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xfdbb82a7 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x96667202 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x8d107b87 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0x1e67a577 qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x7b879d44 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xc9be1a68 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x89a9e875 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x00a9983f sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xea7a65cc stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xb627149c stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xfecf36b1 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xe7cad549 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xa69d8b47 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xdd188abe tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x5e8b0a6f tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xebeb0949 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x0dc7b35e tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0x061395aa tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x70f30cf7 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xef5412ef ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x5e1183fd ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xf68cafc8 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xf8f2fef2 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x01ea4189 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x2a2d4043 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xa8f9d98f bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xcc347210 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xe68b0ecf bttv_sub_register +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc07054aa btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe3c4c632 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cpia 0xad512be4 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xc061dce1 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x05680554 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x2047c1a5 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0x28130475 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x7ddcf727 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0xb5068324 cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx2341x 0xe05747dd cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xaab6d553 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xc4217ab5 cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x6e57f9a0 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x794404a9 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x155676ef cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5ed498b3 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6770e692 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8bfe1df9 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa2619b97 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb67e63e1 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x0a8a85be cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x0d96551b cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x439a92cc cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5b75cdd9 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x61d6bb9d cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa55df07d cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb3f52a94 cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xca821964 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf0b71b60 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x007e77b9 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x01f59c99 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x07791c9c cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x16f6ea8d cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x174f4ee8 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x17a2e62e cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x289080f6 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x29898711 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x54a25142 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x671f190d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x675a8dff cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7b57b98e cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7ecf5c0d cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7f3154cb cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8403f876 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x87a667ea cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8a77101e cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x951ba17d cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x96ada137 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9a09b72a cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdc223d47 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe99d3be4 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf21200a6 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfcb3945f cx88_ir_start +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x07f38118 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0bc66638 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0e1d4923 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x20e1ca3d ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3b62e80b ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4095e84d ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4176c75c ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x43c21f52 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4783c50d ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4be5df9e ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x74a31a03 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa7b6dfad ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xce8a3626 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x00c0f5fb saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x34f8bf18 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x407efa94 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x44d1d3ee saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4efff99f saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x52fba7f5 saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x5381df0c saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7cdef2a5 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9429cbe1 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x942b28a9 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xab134654 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbddcab67 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc721f909 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/tveeprom 0x39633238 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0x3a29a358 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x11371616 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1bc506e7 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x23ecbae1 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x37a3adf1 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5e1d70f4 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x76255c0d usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8af78015 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9b098564 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd5112b23 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf4dcb853 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x7a0689b1 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0843f0c7 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0a59df07 v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0b7a898d v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0e4707f2 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1cef839c v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x24eaf883 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x379df2e3 v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x39c02d9f v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x572269cb v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x62c15600 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x7121c34d v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x931bfaa6 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd493aa21 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd80f6f19 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xea6b1ba9 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1f496333 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x926988b6 videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x0d33acda videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x4efdae7a videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x73663713 videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0xbe336400 videocodec_attach +EXPORT_SYMBOL drivers/media/video/videodev 0x017bf627 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x09a720e2 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x0c2ac6d4 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x5ea4af58 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x605ee36c video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x64d65805 video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x68cbe20f video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x6c62e226 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x95b04f3d video_device_alloc +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00ca74cf mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x16a854bf mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x197247dc mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20131eb8 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2242f235 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x280d8b55 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x31ad796f mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e19c515 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4d8a931b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54ad37b5 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x59b9c68d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x89019e23 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x946ffe89 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x981efe92 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa40ab1fc mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xabc831ff mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb25d1fc7 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb562d042 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd19c91f2 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2985bd1 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdef9cd20 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdfacecc6 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe15d817e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe532351d mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6c1e126 mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe81c6841 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xffe1e629 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x035c40bd mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2335903a mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28166cb3 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29ea6bc1 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x32c43de3 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3693a3a7 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x40953725 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x448aa865 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46aeefdc mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5fe23676 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6bd84045 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x73c9ffec mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x76fe15aa mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e0d1562 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa2b4d685 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xad40093a mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb9820b3b mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbf20f594 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd60abae7 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd7bfbdf4 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd900ae00 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdda84407 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf2f3def2 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf5d854a2 mptscsih_suspend +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0289f173 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x19fc7c90 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a941c56 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2b89e02d i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2db1ec91 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4ceff41e i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5cd1b1ee i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x61f1a12f i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62ecd315 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7d133c6f i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8e683d20 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8fe2f9a8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9ea75bd2 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa20858af i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa432fa3f i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa74ad9bb i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb7f0ea64 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc2bed665 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeb95f7f2 i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xed2256ed i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf3d61314 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfa951e3a i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfe628b07 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/misc/ioc4 0x43739417 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xea6f8ff0 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x2617e7e0 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x65749102 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x6e83bcf1 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x7a9484cc tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8970c708 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9b1229c6 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9c2752a3 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xca31496b tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe22a2ab6 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe48cf3c5 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xec87b59e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xfe82645d tifm_eject +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x40b186c4 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x664a0352 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xed5d7211 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0e78ab5e map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2de22b3d do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x38ced1c3 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7f0d2e15 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x27d4f899 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xb2cc6aec simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x0794fc42 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xae82f7a5 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x5bb38f2b mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x9fb98ca0 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc8fbeeb0 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xdece9563 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1fb76305 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x6a3bdf7b onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x374ec784 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x6d08f5fc __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x7be1839e ei_open +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x81a81ce5 ei_close +EXPORT_SYMBOL drivers/net/8390 0xf87734c8 NS8390_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x118f5b34 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6a730eb2 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6ab49d25 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb910a2b9 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd11d51d9 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf9156e5a arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc9d42d68 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf57f585e com20020_check +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0039107e t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x151c5d07 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x17099387 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x27f737c2 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4093f96b cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x44110ce7 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x46f95c7b t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x529108b8 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6debde7d cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6e217f4c cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x86a594d1 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x978fffca t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaa6c8eff dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xba675c0c cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xcac34665 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe9b2c93d t3_l2e_free +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x11462732 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x213c7294 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x76a25b70 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaf89e470 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb884255e hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1152b68c sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4ef1e966 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5a777194 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7d30350f sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x823b6fd9 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x99f544ce irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9a08885e sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9ba45dab irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe7e4adcf sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfd5e2a75 sirdev_receive +EXPORT_SYMBOL drivers/net/mii 0x175ca1a6 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x1f3e5b1d mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x378bbeb9 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x6ac335eb mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x996b54cd mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xb9449286 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xc7c2314e mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xf6f91c6f generic_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/fixed 0x2a67b84e fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0xa481c7d0 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x02cdb84b phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x02debe18 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x0de39f7a genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x100581ba phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x1028d8d7 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x12bfedfd phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x29fee9aa phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x3eafe10e phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x40382073 phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x5ec5c7a9 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x608fdd6f mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x6416c380 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x6503c50c phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x6e4a1662 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x72cbe2ce phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x8ca2c2d9 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x99912737 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0xa3964227 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xae3f1e07 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0xb0bbd721 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0xb6572009 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0xb716c509 phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0xc3367cd5 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0xc4fc9130 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xc7e64991 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xc89181a7 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0xd43d5b1c phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0xf9e0890e phy_driver_register +EXPORT_SYMBOL drivers/net/ppp_generic 0x04bc308f ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x04cdadf8 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x2545a849 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x522e98ee ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x638cf13f ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x92574f1b ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0xa5a07be9 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xcc467fb9 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xe505d295 ppp_register_compressor +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe2911c22 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xea8033cc register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xfb65a1ee pppox_unbind_sock +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/net/wan/hdlc 0x275fe7c1 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3f3ce943 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4d6639b7 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x69d43d06 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8814a1e3 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc4766228 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcabb0059 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf4cafd8d attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfff9adc3 hdlc_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0x07bfe3ff sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0x3085b863 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0x60b501e4 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0x68649ad5 sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0xbfbaf7a0 sppp_detach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xcfc7da70 sppp_attach +EXPORT_SYMBOL drivers/net/wireless/airo 0x75cd5521 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xe7bbde04 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xf71ac40a reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x50f5a085 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x6030aec5 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x94cc22f0 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x00f56735 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0x2743ed5f hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0x2aa8b098 hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0x52657e6d hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0x586026a5 hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0x66c87edb hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0x7e23508a hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc0b735be hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05f41684 hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x06e8414a hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0cce8a0f hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0de15e9d hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x125371a4 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x223db327 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2465a969 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a92e900 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3d91a091 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3eb2246a hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x487c465e hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x567eceae hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x69457fb2 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ca9d595 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x79af9347 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7ba35c76 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ac4daca hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9005160b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x96c84ea1 hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ded0939 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa753960a hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa97eadb5 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbbbe37a7 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc507c9c2 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcc33b27b hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdc9b6ecd hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe4e7f34e hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe8592e69 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf5c37933 hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf754ce08 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf79dd5e7 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x08c13544 __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x2da794cb free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x34935fbc orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x5b300c5e __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xcc5d00ef alloc_orinocodev +EXPORT_SYMBOL drivers/parport/parport 0x13689a1b parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x29155be3 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x39f38d71 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x45515fcf parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x4a9838c5 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x55000f87 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x60795bd2 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x6481aaf8 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x6beb418b parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x79ec7266 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x81f87d15 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x90a56b4a parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x923dc611 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x9711ae6f parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xa9dd740f parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xb4fa6945 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xb6077ebd parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xbf8b13d8 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xc1193b88 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xc1e4fae0 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xc2726e5d parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xc2c4ef94 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xc94d44d0 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xcd940804 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xd6c717f2 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xdb719993 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xdca28d2f parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xe03335df parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xf26114f4 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xf6f5f75d parport_get_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x0d6ddbbe parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x172b8613 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x171d74ed pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x272d56f4 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3664739d pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d9ee5eb pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4c49f76e pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x53b39a4a pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6e55e789 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8c875169 pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8cdfbcfb pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9ce8e809 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa6482458 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbae5b6dc cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3eb568a pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe59fc5c6 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe5b86f57 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xecd1e72c pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf1dbedad pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x01739973 pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x03d016cb pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0837b1aa pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0d8a2dad pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2c3d3db4 pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x32977dfb pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x33c94e0f pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x38f0db6f pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3e2fb94d pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3fd3b97d pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4eafcb47 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x644460b1 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6ce56551 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x74975828 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x819a564a pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x83f4a7ec pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8a1c52e9 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8a7f0277 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8cd7c6fa release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x97b0ee0b pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9be2b45e pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9d6e3d27 pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb07f7ac2 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb3b9f8a7 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb533d105 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc08c7285 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc7dc5d96 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd7a26b3a destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdbde45cc pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe2c1354e pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfaa5a60b pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x427f9a1f pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xac32d37f lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xe92c9588 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x418db8fc mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0f0e8e15 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7b650f74 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7fbd9873 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa3423e03 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdd759eee qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdeb5f9a3 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x78b12eb0 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x80799fe0 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xbbf3a08d raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x00597066 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0347c001 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x05ec0b6f scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0d196574 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x13054548 scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x14ec403c scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x183f3a61 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1c72a54c scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1c8ac1dc scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1f14d363 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1f57b393 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x26b60ead scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2918fc16 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2acb2ef5 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d596d2f scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d66fedb scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2e5dba84 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x305e0550 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x34e4bb2e scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x365973da scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x392f0050 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x39971f91 scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x40e80b4b scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x41cda578 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x47495f29 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x49e9e8e3 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4d27a551 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4ea09325 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x51dbe45d __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x542067b4 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x571d910a scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x58610f82 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x59bad2af __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x613d3183 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x61d1926c scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x64846d97 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6a503c89 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6e694a4a scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6f826804 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7241149c __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x749e78cb scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x74dd7c48 scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x755ddb28 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7b184e5e scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7f9bd928 scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x813cd63f scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x817ac2bd scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x872d6abb scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8990da44 scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8d053f69 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9993ce9c scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9b0720f8 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9c6c480c scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1abb90b scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1e87c43 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa539914c scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa6ac93cb scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa88e95d9 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad509944 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad54f9ca scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb83c35a3 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb97a5499 scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc369234b scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc4d1dbfd scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc57c7e83 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc9f70c51 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcc656231 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcdc023f5 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd217331e scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdc579594 scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe61a8a08 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe6e8d424 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe741376b scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea17ca41 scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xed0d8fff scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf0f64430 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf56d4256 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf74bc131 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf7e8de4c scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf9abfbc4 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfac23462 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xff9f622e scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x106dd445 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x18af12b9 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x396d48dd fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x593322e8 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5e394a95 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x655c0cbb scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x657c6d46 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x748edd6d scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xce1e5220 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf4efcd11 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfaf057a5 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2bc6430e sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ee4f472 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x362a373c scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f0482a4 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x413ad904 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4a8baa84 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4f82c8f2 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x506ff076 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5a65ab42 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5bf87b6a sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x68119c8b sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6c16ffc2 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83c61314 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x898ce5b9 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x946176dc sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f008c1f sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9d9dfc8 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xabd65b2b sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcfa14118 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd245ed90 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd2f3dd3d sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe0912f18 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe862403a sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf529915b sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfc42cbbb sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe7498d9 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x26520588 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2c5c44be spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7772432f spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9737af20 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd0db713f spi_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x0007c326 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x36f5f847 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x5bdb9cc0 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x65f1b00a ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x7840b376 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x85591c81 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x8b1da17e ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x8b2ef564 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x8bdaaad2 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x96ae4607 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x97aad012 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x98b84dbc ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xb8c33d44 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xcafe2f36 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xcb17f1cb ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xdfc7c6ef ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xf241f492 __ssb_driver_register +EXPORT_SYMBOL drivers/telephony/ixj 0x5ebe9676 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x5ce9c051 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x609926f3 phone_unregister_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x016175b8 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0e3d15e0 usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x106f652c usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x18e58d52 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x26930daf usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x297bd0a7 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2cd73049 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2e3656f2 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0x31db41e8 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3230b4fa usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x328a767d usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x375a13da usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3fc2e11d usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4afa0624 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x52bfb303 usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x54f4d073 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x55e3f046 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x68c2f034 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6e689282 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6eaf9334 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x79598dc3 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7c0e575e usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x81c2475a usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x82e311dc usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x844a212e usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x85307b17 usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8ccabef1 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8f1f5c8f usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa19085f9 usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa2cb9adf usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xad1107c1 usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xafa75c67 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb11c2da6 usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb1a2ef69 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb9f00798 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbcf624c7 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc5cd2a2b usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcfd16c5d usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd028e346 usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd05e2bc5 usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd38ec539 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdfe1422a usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe317460c usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe4213de5 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe4be2dbe usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe57ed85b usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf1ddc991 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfa56ea17 usb_get_descriptor +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xe280aa6b sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x03c6859b ezusb_set_reset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x117be126 ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x466046ba usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa3d7a4f7 usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9a7ce616 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xc5a1fcb8 lcd_device_unregister +EXPORT_SYMBOL drivers/video/console/bitblit 0x98ab52bc fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0x68a90b51 get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0x45a2d499 soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0x98bbefdb fbcon_set_tileops +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x3b00610d cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb6d387e9 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd90b0e76 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xda1a9cab cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x933ef078 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x9c6c7a8d display_device_register +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x39f48a19 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x5f06a67a matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x75f9f1fd g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc031c784 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x37fc2bf3 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6aef8adf matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x79ca9d9e matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xf201ab36 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x5811f740 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x0561167a matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x409f814e matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x816ed31a matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xbe71758f matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xdbedf6e2 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x776a9e01 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xd1f4c952 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x13e8ee4b matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x26ad8b13 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x82001233 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc7b1bc96 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe5232991 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/output 0x8dbe75c0 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xff5a908e video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0xfe963115 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x156e435a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x1af195d4 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x37f3d8cf svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x3d330aa6 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x54312cca svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x68fe9372 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0x7ff654f4 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb8ca57d5 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xd6ec2c44 svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xd7ca42d6 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xeb8260b4 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xee095a48 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xf838f24a svga_get_caps +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb3cc64ad w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xee753c9e w1_ds2760_read +EXPORT_SYMBOL drivers/w1/wire 0x80e2ad07 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcd4d7800 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd3382592 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xe771155f w1_unregister_family +EXPORT_SYMBOL fs/configfs/configfs 0x02562d16 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x02efb4dd config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x2d83e6ad config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x642da9d9 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x806ebacb configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x94c2f514 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x9f768b33 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x9f84a20d config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xba422811 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xbc789de8 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xc1ce9029 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xdd6e4984 config_item_init +EXPORT_SYMBOL fs/jbd/jbd 0x00c127a3 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0x0cdd5e37 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x119d2e9d journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x13687fb9 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x1abb56b3 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x1e41034d journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x232dbdc4 journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x2402c185 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x310dbdb5 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0x363d8c41 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x3727635f journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x4fac835e journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x5399553c journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x5746b58e journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x574ee0b1 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x5ab93695 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0x6049476b journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x605ca8f3 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x6a18b63d journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x6acc99dd log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x7492c7bc journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x7eeb4eaa journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x808c8ce8 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0x8e1872ec journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x90919476 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x923e2b18 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x9d66ff68 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0xba7f4df7 journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xbb869cc8 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0xbf232023 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0xc0b577d9 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0xc25ddb16 journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xd0b2c478 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0xd28a1811 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xe7f2d470 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0xea99e0b1 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xfddc0e92 journal_dirty_data +EXPORT_SYMBOL fs/lockd/lockd 0x70c2144a nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xa9594432 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x36a300d8 mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0x8be3c6e8 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0x962e42e6 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0x97a5eeb9 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x9d85c306 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xc395381d mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xd279978f mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xd62cd9a4 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0xda736db1 mb_cache_entry_get +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x1028c873 nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x2deb3737 nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x1287bb3a nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0xa39051ea nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xef013964 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/xfs/xfs 0xa2709659 xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x7e821ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd819a524 crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xdf59602c crc_itu_t +EXPORT_SYMBOL lib/crc16 0x146289b7 crc16_table +EXPORT_SYMBOL lib/crc16 0x84d4c8cc crc16 +EXPORT_SYMBOL lib/crc7 0x0ac94d23 crc7_syndrome_table +EXPORT_SYMBOL lib/crc7 0xecfd4ee6 crc7 +EXPORT_SYMBOL lib/libcrc32c 0x90ec507c crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0xc2904b41 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x77a5a356 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xa3365ba7 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x13217a49 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0x1360c2dd p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0x1acc38f3 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x205c4fdc p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x2760c1dd p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x27af52ae p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x2ca6e0d2 p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x30a7c989 p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0x34ce663a p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x38db99c4 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x43d5aaec p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x4438ddff p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x46af27af p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x4cb4ec0c p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x4f474556 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x5040278d p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x54f9325d p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x5a0cee4f p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x5fa77b63 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x60d5c22e p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x60e54c0e p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x6979ce42 p9_create_tflush +EXPORT_SYMBOL net/9p/9pnet 0x6b946aee p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x6ed838f2 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0x83195dcf p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x85a15d8c p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0x89138d97 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x962d56d7 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x96678f45 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x9cc8806e p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x9fb67b63 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xabfe435b p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xad006724 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xb00caf31 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xbc6dfe52 p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0xc91a29de p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0xd38b67d0 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xe1e530e5 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe59d8918 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xe71e12a6 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe820e483 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xea37b1b1 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xedcfdec2 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0xf04105a4 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf9298403 p9_create_tcreate +EXPORT_SYMBOL net/appletalk/appletalk 0x35a92013 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x84a0eb6d atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x9b7de5c7 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xb0d53eb3 alloc_ltalkdev +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4038cf08 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x525dcae2 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6c81fd3f ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9a64b715 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xadba23b2 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xbd1f71ef ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc328bf24 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xdd608849 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xe52e8c01 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xf5550f68 ax25_findbyuid +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0aebc917 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0cf870db hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e3bf5b2 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0ed07a07 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x11440b92 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x12e77186 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1554a075 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24c3a50f hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2855b42b hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3119e2fa hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x34ad6875 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3a2f40f1 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x45597b6a hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x59bfd35c hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x87e9ad6c bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88d27cc8 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e5bd2ea bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb9c9a7ed hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbd7f244 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5bad70b bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcf3abe35 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd0253a8e hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd37c33f6 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd83314ac hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd9728b25 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0346ecc bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe27ff345 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf3ced7a6 hci_get_route +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x02118bca br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5b4e7976 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5c195dc6 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x63ff01ca ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8f39a22e ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa5a70ee2 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc6a8be7d ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd0ae89b1 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xfd4dda15 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xfe9274bf ebt_unregister_watcher +EXPORT_SYMBOL net/ieee80211/ieee80211 0x17a1f015 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x2c83307f ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0x2ebbd767 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x3e62aa6b ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x437652e1 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x49bd6d85 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x50002e39 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6b36f8bc ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x77ae24cf ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7d53beb4 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x84338bf0 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x8ba60d7a ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x94f6c2d1 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xaaf0eaca ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb731e545 escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xce09afc6 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd2eba009 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe968d4cb ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf0671eba ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf7c4ebfc ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x4bc01f83 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x8e61df28 ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x9f94323f ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xace08e58 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xb3a6f130 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xbfeae92c ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ipv4/inet_lro 0x1c5b1661 lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x53cc2f86 lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x892eb332 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x98de2de1 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xa91b462d lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0xfd460008 lro_flush_pkt +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x1438bf9b register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x2d697c3c unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x85078ac2 ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x9bf1409e unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa9aea3cb register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xc52bc5ac ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd061d925 register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd70e2e18 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xdbc49f7a ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xf5c6009e ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xffc9b98c ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x21b262e8 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x62d0315e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa6dbbef9 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x24d9bed5 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x588725d7 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd97f00a9 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0315125a nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1018aa8c nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2bfd6408 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x804e44dd nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9fbbbafe nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb43bbb41 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdd5a2f88 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf1ced35e nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xc8b6c211 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xd238a868 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x11621d8a ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x15ca838f ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x29338d9b rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x30a3c630 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x34396fc2 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x3f845352 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x4435906c compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x534dd460 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x6909a9c1 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x7375fd62 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x737dc84e xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x7487383e inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x7bff2c48 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x849046f8 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x849c9638 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x91f10c3d ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x935a7c24 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xa031d9f8 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0xa3556161 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xb018123a ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbecda409 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xc029282d ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0xc78ae93d inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd2c11dcc inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xd6a4d8c9 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xe59bf902 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xe656b928 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0xfa669950 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xfd5aa8d6 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6a407e2a ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x80472a0b ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcea7a108 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe1472776 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xeba5f159 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x77814837 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xa99651b8 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1d1a6d66 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x56f39a20 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7a34d9c5 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7eb5111a ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8e273909 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa8e0d9ce ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb3c8d3a7 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf729cab5 ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x01bfa857 irlap_close +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x184e24d7 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1a617b1d irias_find_object +EXPORT_SYMBOL net/irda/irda 0x1d62660d irttp_dup +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x263f5ab4 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x286f27cd irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x2df5da87 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x35f99e7d irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x39cfa84c irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x4096621c irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x411f65ce irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x489d2842 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x4ba5dc74 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x52041559 irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0x5b8b95bb hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x5d1487c7 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x62c83096 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x782b3dbe alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7c265388 irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0x82ac847b irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x88ecb6a9 irlap_open +EXPORT_SYMBOL net/irda/irda 0x8ce1ecb4 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0x8efa358a async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9694bb4c hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x982b6b09 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9d9a8889 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x9fea5965 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xa45993f4 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xae7c935c irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xb26ca82d irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xb5907850 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xb751f481 iriap_close +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcac2e67 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbde32277 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0649052 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xc10f5acd irias_new_object +EXPORT_SYMBOL net/irda/irda 0xc74e623e async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xc8ad9cf5 iriap_open +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xcbb7edd0 irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0xd3edad11 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd50c1096 proc_irda +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdfaf55d4 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xe0ace4c6 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xe541e2c2 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xec284a42 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf163b8fe irlmp_connect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x13c37f58 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x22256fd5 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0x23e2deff ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x27fbfb96 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x37c7f770 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4061c2c6 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x4373022e ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x437c99b1 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x46be67a2 ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4939c168 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4a1344e3 ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x5c800e32 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x617b7ca8 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x6ecdd69a ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x82f77d20 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x838bd290 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x8417c0e9 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x88cf8707 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x93052a74 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xaa076e7c ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xace643c0 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaddc28ba ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xb0afb960 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xbd30a64a ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc076574a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc0f6b797 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xd4b4ed0f __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd929527c ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe503a9c4 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0xf27d5ebf ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xffac967d __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x780f3b94 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7d468724 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb056a72e per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x27e979ab xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2afc642b xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3fde4b2a xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x701663f4 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x732bbff2 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x7347fb45 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x73cf7cfc xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7621e770 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xc9a77910 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd16cae93 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd264c4b6 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xff6ac8f3 xt_register_matches +EXPORT_SYMBOL net/rfkill/rfkill 0x505a73fe rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x51c600ab rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x77ebc5e7 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0xd23caf5b rfkill_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x076f77b5 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x08f99455 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0b97ef61 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x109d490f rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x354c23f9 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3d0f7488 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x401e5113 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x465f5116 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5959c097 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5daf7513 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x67a931da rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8564a9f9 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x96fdd122 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe44e3f89 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xec105978 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x08c9b811 gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0d9fd9d6 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3da4bd40 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4165f126 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4 g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6522e575 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x75f1b735 gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7739a254 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x978d7a29 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb0af174a gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb0c372f2 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb13bd3f5 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbc1ce8eb gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xcab7795d make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe6fe0930 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf0f931c4 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf5a527d9 gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x001f8c39 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0071e26f unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x012dc4f6 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02622f0b rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x03e2a0ea rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x04531bd9 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0681b4d5 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x09aeb210 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0b4ace5a svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0c72ebd1 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x11ff07d0 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12d6dc54 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x17bd3225 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1836e8c6 cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1a4b5275 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1bf40d08 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1f68d75c rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23ad3479 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23dd1b6d svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23f0b58e svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x27bc3d2e rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2a642a6d rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2b38bf61 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2c9122fc rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e856f8f xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3059edc0 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31773070 rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3a55afee svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3c5778ca xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3d335808 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x43595f7a rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4868b1f9 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x498e483f rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4a38ff92 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4cbd2255 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4faa1148 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x51c1d054 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5260f8d0 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x56393023 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x56ac18f7 xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x587ef634 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5dc1a9b5 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5ffc4444 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6000aae8 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x67065d58 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6957c769 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x695ff3d6 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x70e3e6ae read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x73303c03 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7595917a rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x76e2fee9 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x79ee6c79 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x83598f87 rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x85dbbbf1 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9041dcc6 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x921c2789 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ac72c69 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9c3fd2ab sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xac059e64 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xadf521cf xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaecae8da xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb0e48bda rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb1910984 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb419d0f1 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb58568f9 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb5a224df rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb88422bc svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb91a614e svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbd1cd39f rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbdae3e0b xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc36f24e4 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc46a65a4 rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc4ec6df3 xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc64beb74 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc653151a rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd13f9a77 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd1b3f0b4 svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd7dfe0bf rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd83880e6 svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdbd8e678 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdfd69364 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe0ba941c xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe80d43d9 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeacf4004 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xefd5f42d rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf0792b94 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf093ed47 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8e907a3 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfa48e027 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfa7146bb rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfffc2599 svc_exit_thread +EXPORT_SYMBOL net/tipc/tipc 0x0862beda tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1b509e49 tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x233ad38f tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x236a2239 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x2b6a745d tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x2e25ad7a tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0x30694ed4 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x31480d03 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x34a1ef65 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x3c5c1bbc tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0x4c167687 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x4ccd5f7d tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0x535c2b64 tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x53bfe9d5 tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5681f1b2 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x5a2556a2 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x5da1c9ef tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x5fb2f4bf tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x5fd7a787 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x67da81ee tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x6b51b348 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x71dbc2b7 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x8c7cb54e tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x96f85231 tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x9b57f911 tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0xa77b9c72 tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb18ab21a tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xb467f1c1 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xb6bfa1cf tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xb703abd0 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xc74d0dce tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xc8ffd4c1 tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xccb3e9ef tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0xd706c839 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0xd976f2e3 tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xe430ccdb tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeb94d5b9 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xef8295ea tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xf647c85c tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xfaec8bb9 tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xfce23467 tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0xfd648646 tipc_send_buf +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x33900981 register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x1cd68241 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x4728e806 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x59a773ee wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x68aa9fc3 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x9474eb54 ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xfb2f7542 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL vmlinux 0x001425d2 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x003afce5 path_lookup +EXPORT_SYMBOL vmlinux 0x0046bb69 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00ab2397 sget +EXPORT_SYMBOL vmlinux 0x00e6cd2f skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x013cb4a6 vfs_quota_on +EXPORT_SYMBOL vmlinux 0x0142ae0f no_llseek +EXPORT_SYMBOL vmlinux 0x015553f5 seq_escape +EXPORT_SYMBOL vmlinux 0x0163ac87 print_mac +EXPORT_SYMBOL vmlinux 0x016b3ff7 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x0178c85b sn_dma_set_mask +EXPORT_SYMBOL vmlinux 0x017bd979 elv_rb_del +EXPORT_SYMBOL vmlinux 0x01848880 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a94cc2 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x01b5e1d2 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x01baae71 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x01e0cfc5 alloc_trdev +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0215201f pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0269cc83 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x026c3d97 init_net +EXPORT_SYMBOL vmlinux 0x027933e1 tiocx_dma_addr +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e860de init_special_inode +EXPORT_SYMBOL vmlinux 0x03092dbc xfrm_nl +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03976b21 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03acbf54 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x03dbc29e vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x04102db5 tcp_connect +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0456acec block_commit_write +EXPORT_SYMBOL vmlinux 0x0463ba1a xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x0471e3fa idr_remove_all +EXPORT_SYMBOL vmlinux 0x047d06db alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x04829e90 ipv4_specific +EXPORT_SYMBOL vmlinux 0x0484c6c4 acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04c14197 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x04fa9e9d idr_replace +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x052a3ad6 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x0532adea proc_clear_tty +EXPORT_SYMBOL vmlinux 0x05514171 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x05a36a07 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x05b76f0e tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x05b8f2bc hp_acpi_csr_space +EXPORT_SYMBOL vmlinux 0x05e01f88 tcp_child_process +EXPORT_SYMBOL vmlinux 0x05fda4c3 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x060d680f xor_ia64_4 +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0660553b ida_get_new +EXPORT_SYMBOL vmlinux 0x06a86bc1 iowrite16 +EXPORT_SYMBOL vmlinux 0x06bfd4f6 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x06e0a824 tty_name +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070aadd3 alloc_disk +EXPORT_SYMBOL vmlinux 0x0718c22c _write_lock_irq +EXPORT_SYMBOL vmlinux 0x0764ffd5 end_page_writeback +EXPORT_SYMBOL vmlinux 0x07745451 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07f38564 tcp_unhash +EXPORT_SYMBOL vmlinux 0x07febad6 input_release_device +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083b28dc __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x08697a5d inet_frags_fini +EXPORT_SYMBOL vmlinux 0x086ca575 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x089d5595 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x089dc4d3 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x08b688d0 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x08c911e7 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x08e5e0cc simple_link +EXPORT_SYMBOL vmlinux 0x08e6b007 ia64_iobase +EXPORT_SYMBOL vmlinux 0x08fb1745 netlink_ack +EXPORT_SYMBOL vmlinux 0x090f7ef0 registered_fb +EXPORT_SYMBOL vmlinux 0x09115174 cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x09148ff7 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x092e61b7 __release_region +EXPORT_SYMBOL vmlinux 0x093712e5 acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x0942a4ae xfrm_register_km +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09676f49 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x09710f07 sk_stream_error +EXPORT_SYMBOL vmlinux 0x0989da28 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09991e7b kfifo_init +EXPORT_SYMBOL vmlinux 0x09acf14e request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x09bcfe69 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e8acda kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2d95ed scm_fp_dup +EXPORT_SYMBOL vmlinux 0x0a372247 acpi_get_pxm +EXPORT_SYMBOL vmlinux 0x0a37d36c blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x0a4459d5 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0aad6e16 udp_disconnect +EXPORT_SYMBOL vmlinux 0x0ac5cff7 vfs_writev +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acca637 min_low_pfn +EXPORT_SYMBOL vmlinux 0x0b0cf29e block_prepare_write +EXPORT_SYMBOL vmlinux 0x0b1221c4 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b36d5aa unregister_netdevice +EXPORT_SYMBOL vmlinux 0x0b4dca45 lock_may_write +EXPORT_SYMBOL vmlinux 0x0b55220a set_device_ro +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9c3c41 write_inode_now +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bd4cb0c mnt_pin +EXPORT_SYMBOL vmlinux 0x0be7a943 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0be7e3d7 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x0c27175f netlink_broadcast +EXPORT_SYMBOL vmlinux 0x0c4dcd47 _read_unlock_irq +EXPORT_SYMBOL vmlinux 0x0c5f4c1f gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x0c6d7bbd tcp_disconnect +EXPORT_SYMBOL vmlinux 0x0cb45c9e release_sock +EXPORT_SYMBOL vmlinux 0x0ccaff37 ida_init +EXPORT_SYMBOL vmlinux 0x0cd7d26b _read_lock +EXPORT_SYMBOL vmlinux 0x0cdccbc8 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0x0cec5511 elevator_init +EXPORT_SYMBOL vmlinux 0x0d1afd7c hwsw_unmap_sg +EXPORT_SYMBOL vmlinux 0x0d2f50b5 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0d4cb4f7 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d63748f remove_inode_hash +EXPORT_SYMBOL vmlinux 0x0d756cc7 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x0d88cfce d_alloc +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da9776d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x0db9ef01 netpoll_setup +EXPORT_SYMBOL vmlinux 0x0dcb3d32 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e07152e blk_init_tags +EXPORT_SYMBOL vmlinux 0x0e20ba74 current_fs_time +EXPORT_SYMBOL vmlinux 0x0e334583 find_get_page +EXPORT_SYMBOL vmlinux 0x0e34b6bf percpu_counter_init +EXPORT_SYMBOL vmlinux 0x0e402370 ia64_pal_call_phys_static +EXPORT_SYMBOL vmlinux 0x0e53adaa open_by_devnum +EXPORT_SYMBOL vmlinux 0x0e563fcc get_disk +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0ebdb05b kobject_set_name +EXPORT_SYMBOL vmlinux 0x0ec136bc acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x0ecf4849 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x0f486190 hwsw_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x0f616fc0 sn_pci_unfixup_slot +EXPORT_SYMBOL vmlinux 0x0f62902b vfs_llseek +EXPORT_SYMBOL vmlinux 0x0f72958a vc_cons +EXPORT_SYMBOL vmlinux 0x0f7f62c8 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x0f919a8b ether_setup +EXPORT_SYMBOL vmlinux 0x0fe2b8d8 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x10261aa3 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x102b5b21 sn_system_serial_number_string +EXPORT_SYMBOL vmlinux 0x104d432b kfifo_free +EXPORT_SYMBOL vmlinux 0x105c1f98 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x11001f52 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x110f8cb5 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x114bee06 sock_register +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11836d7b __netif_schedule +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11abf8ef find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x11cce88e neigh_connected_output +EXPORT_SYMBOL vmlinux 0x1228701a rtnl_unicast +EXPORT_SYMBOL vmlinux 0x124c157f acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x124c9939 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x124e8859 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x12655913 sba_map_single +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x126be65c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x127b9b13 schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x12813a97 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x129697b8 memcpy_toio +EXPORT_SYMBOL vmlinux 0x129b7226 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x12d97ab1 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x12eaeef6 ilookup +EXPORT_SYMBOL vmlinux 0x130afd75 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x131e96c5 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x135e39af xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x138e41a4 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x13ae98cf pci_find_capability +EXPORT_SYMBOL vmlinux 0x13ef2bd2 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x13f58990 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x1412952a ida_pre_get +EXPORT_SYMBOL vmlinux 0x1420fe2e splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x1438dc57 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x143d65cc __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x145be6bb netdev_state_change +EXPORT_SYMBOL vmlinux 0x146ff028 km_report +EXPORT_SYMBOL vmlinux 0x147a0c2e task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x1487d4dc ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x14928061 poll_initwait +EXPORT_SYMBOL vmlinux 0x1496125a dev_change_flags +EXPORT_SYMBOL vmlinux 0x14ae5b50 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x14b881bb tr_type_trans +EXPORT_SYMBOL vmlinux 0x14dd9a5e do_splice_from +EXPORT_SYMBOL vmlinux 0x15085089 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x1538ff5d qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15552aa7 handle_sysrq +EXPORT_SYMBOL vmlinux 0x157b13d9 request_key +EXPORT_SYMBOL vmlinux 0x158ac7ed blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x15aa0769 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x16052b30 serio_open +EXPORT_SYMBOL vmlinux 0x161ba357 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x1643c6a3 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x1674f888 vfs_stat +EXPORT_SYMBOL vmlinux 0x167d617c dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x16875605 bmap +EXPORT_SYMBOL vmlinux 0x168bfbd5 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x169259a4 tty_register_device +EXPORT_SYMBOL vmlinux 0x16e4e378 bio_split_pool +EXPORT_SYMBOL vmlinux 0x170ddf79 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0x171826ab sn_coherency_id +EXPORT_SYMBOL vmlinux 0x171f269a __serio_register_driver +EXPORT_SYMBOL vmlinux 0x177a2d99 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17bd35b0 machvec_dma_sync_sg +EXPORT_SYMBOL vmlinux 0x17be68ca acpi_clear_event +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17cc840b new_inode +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17dfc5b4 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x17e8617c kernel_sendpage +EXPORT_SYMBOL vmlinux 0x17fe2512 filp_close +EXPORT_SYMBOL vmlinux 0x181cf251 fasync_helper +EXPORT_SYMBOL vmlinux 0x182b122f tcp_proc_register +EXPORT_SYMBOL vmlinux 0x18339ef0 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18b0ca6d aio_complete +EXPORT_SYMBOL vmlinux 0x18ccf675 user_revoke +EXPORT_SYMBOL vmlinux 0x18fba205 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x190b990f set_blocksize +EXPORT_SYMBOL vmlinux 0x191fbb42 sock_release +EXPORT_SYMBOL vmlinux 0x19274643 generic_setxattr +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x197251a7 input_register_handle +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19d3e6ed sba_free_coherent +EXPORT_SYMBOL vmlinux 0x1a06f857 netdev_set_master +EXPORT_SYMBOL vmlinux 0x1a09f8e2 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x1a2def9b udp_hash_lock +EXPORT_SYMBOL vmlinux 0x1a2ecc44 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x1a6255be sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1a891d09 devm_free_irq +EXPORT_SYMBOL vmlinux 0x1aab4ca8 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x1ab8eed6 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6a0a2a __any_online_cpu +EXPORT_SYMBOL vmlinux 0x1b8eefcc udp_get_port +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bb63d36 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x1be1babf add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x1be71542 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x1bec25d7 register_nls +EXPORT_SYMBOL vmlinux 0x1c58427f acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x1c69b598 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x1c6c835c inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x1cc44da4 ip_defrag +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1ce89ffe proc_root_driver +EXPORT_SYMBOL vmlinux 0x1cf357e5 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x1cf7528b d_alloc_name +EXPORT_SYMBOL vmlinux 0x1d03ff88 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x1d05ad72 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d2f284c tcp_shutdown +EXPORT_SYMBOL vmlinux 0x1d41f094 nf_register_hook +EXPORT_SYMBOL vmlinux 0x1d4bec3d key_revoke +EXPORT_SYMBOL vmlinux 0x1d6df98f dev_remove_pack +EXPORT_SYMBOL vmlinux 0x1d6e1d43 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x1d7df06d sn_dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x1dc43ea5 free_buffer_head +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e348a74 __rta_fill +EXPORT_SYMBOL vmlinux 0x1e4ebfe9 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0x1e6974e5 mutex_trylock +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e91df85 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x1e9cd85a sk_free +EXPORT_SYMBOL vmlinux 0x1eefdb52 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x1f225140 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1f623067 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x1f656415 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x1f6a0d43 pci_set_master +EXPORT_SYMBOL vmlinux 0x1f772630 input_register_device +EXPORT_SYMBOL vmlinux 0x1f8e9a37 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x1fa69400 __kill_fasync +EXPORT_SYMBOL vmlinux 0x1fc26c75 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x1fc347b6 do_sync_read +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20301636 physical_node_map +EXPORT_SYMBOL vmlinux 0x20599da4 keyring_clear +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20e3b175 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x210f0448 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x214033ea register_qdisc +EXPORT_SYMBOL vmlinux 0x2175b4e3 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x2177bd71 acpi_disable_event +EXPORT_SYMBOL vmlinux 0x217dfeb1 prepare_binprm +EXPORT_SYMBOL vmlinux 0x21901b83 arp_find +EXPORT_SYMBOL vmlinux 0x21aa0302 unw_access_ar +EXPORT_SYMBOL vmlinux 0x21b997c0 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x21cfa618 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x21d9b278 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x21e05e58 __kfifo_put +EXPORT_SYMBOL vmlinux 0x21ebfe70 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x21ec96b6 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x221f6543 load_nls_default +EXPORT_SYMBOL vmlinux 0x224ac7f4 seq_puts +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22921120 follow_down +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b4a111 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x22cf1b4e I_BDEV +EXPORT_SYMBOL vmlinux 0x22de2cc0 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x2312e536 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x23334016 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x2352d80f nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x235e2737 neigh_for_each +EXPORT_SYMBOL vmlinux 0x2398c4f9 dev_open +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23c66079 kick_iocb +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240ba532 node_to_cpu_mask +EXPORT_SYMBOL vmlinux 0x2410b275 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x241af1b0 console_start +EXPORT_SYMBOL vmlinux 0x242d6041 add_wait_queue +EXPORT_SYMBOL vmlinux 0x2437685d _write_unlock +EXPORT_SYMBOL vmlinux 0x24397f1b subsys_create_file +EXPORT_SYMBOL vmlinux 0x243e5d92 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x244a4c06 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x244adf22 register_netdev +EXPORT_SYMBOL vmlinux 0x244ae7ed nobh_write_end +EXPORT_SYMBOL vmlinux 0x24671aa0 swiotlb_map_single +EXPORT_SYMBOL vmlinux 0x246a2c89 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x248f7b04 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x24b1490c pfm_mod_write_dbrs +EXPORT_SYMBOL vmlinux 0x24d68408 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x24db4ad9 put_io_context +EXPORT_SYMBOL vmlinux 0x24ea842a pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x24fb243b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250e46e0 tioca_gart_found +EXPORT_SYMBOL vmlinux 0x253d446c sk_dst_check +EXPORT_SYMBOL vmlinux 0x254aaa1b is_container_init +EXPORT_SYMBOL vmlinux 0x254fb6df bdget +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25b4eb5e _read_lock_irq +EXPORT_SYMBOL vmlinux 0x260f015a free_task +EXPORT_SYMBOL vmlinux 0x26223b32 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x262a59d8 notify_change +EXPORT_SYMBOL vmlinux 0x2640a49f ec_transaction +EXPORT_SYMBOL vmlinux 0x2644467d simple_empty +EXPORT_SYMBOL vmlinux 0x26572b3d nf_log_unregister +EXPORT_SYMBOL vmlinux 0x268520e4 blk_free_tags +EXPORT_SYMBOL vmlinux 0x2686dfee cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x26c013f7 register_framebuffer +EXPORT_SYMBOL vmlinux 0x26f3b58f simple_sync_file +EXPORT_SYMBOL vmlinux 0x26f7de5b proc_dostring +EXPORT_SYMBOL vmlinux 0x26f8f0b8 iowrite16be +EXPORT_SYMBOL vmlinux 0x26feac2d bte_copy +EXPORT_SYMBOL vmlinux 0x27175260 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x271894aa eth_header +EXPORT_SYMBOL vmlinux 0x2726b950 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x272a109a acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x274ba850 compute_creds +EXPORT_SYMBOL vmlinux 0x2790a994 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x279f12cc dmam_pool_create +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27e5182c tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x280d96b2 cpu_present_map +EXPORT_SYMBOL vmlinux 0x282b5899 _read_trylock +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x2887cb47 key_link +EXPORT_SYMBOL vmlinux 0x289929e4 fb_get_mode +EXPORT_SYMBOL vmlinux 0x28aa8e90 idr_init +EXPORT_SYMBOL vmlinux 0x28b7f825 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x28bcefa4 bioset_free +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f745c9 pci_map_rom +EXPORT_SYMBOL vmlinux 0x294b372f simple_release_fs +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x297f4242 pci_iomap +EXPORT_SYMBOL vmlinux 0x29812b2f vfs_mknod +EXPORT_SYMBOL vmlinux 0x29918df9 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x29af9ec8 hwsw_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x29c43601 key_type_keyring +EXPORT_SYMBOL vmlinux 0x2a13ccc3 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x2a5465cf vmalloc_end +EXPORT_SYMBOL vmlinux 0x2a6bb2c8 mempool_free +EXPORT_SYMBOL vmlinux 0x2a7221cd igrab +EXPORT_SYMBOL vmlinux 0x2a72fee5 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x2af1141d fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x2af8e74a may_umount +EXPORT_SYMBOL vmlinux 0x2b1f7f91 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x2b4532d4 dquot_release +EXPORT_SYMBOL vmlinux 0x2b5fd887 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x2b6648d2 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x2b6837ef per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x2b697a6d kern_mem_attribute +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb64158 kthread_bind +EXPORT_SYMBOL vmlinux 0x2bf13c6a put_files_struct +EXPORT_SYMBOL vmlinux 0x2bf1d796 km_query +EXPORT_SYMBOL vmlinux 0x2bfef4b6 set_page_dirty +EXPORT_SYMBOL vmlinux 0x2c3d4d57 unlock_page +EXPORT_SYMBOL vmlinux 0x2c4ebccf pci_remove_rom +EXPORT_SYMBOL vmlinux 0x2c555db2 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x2c75ebc5 end_that_request_last +EXPORT_SYMBOL vmlinux 0x2c793507 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x2c9367fb mempool_create +EXPORT_SYMBOL vmlinux 0x2ca63452 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2ce1e27f __sn_mmiowb +EXPORT_SYMBOL vmlinux 0x2ce57d67 kill_litter_super +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d0de272 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x2d1f8c14 mpage_writepage +EXPORT_SYMBOL vmlinux 0x2d23d64f pfm_unregister_buffer_fmt +EXPORT_SYMBOL vmlinux 0x2d2da6ba audit_log_end +EXPORT_SYMBOL vmlinux 0x2d3d79c6 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2e00447e inet_frag_kill +EXPORT_SYMBOL vmlinux 0x2e3be2ef skb_dequeue +EXPORT_SYMBOL vmlinux 0x2e694b71 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x2e77c7ed dquot_transfer +EXPORT_SYMBOL vmlinux 0x2e99186e bitrev32 +EXPORT_SYMBOL vmlinux 0x2e992abb read_cache_pages +EXPORT_SYMBOL vmlinux 0x2eb6e39c do_SAK +EXPORT_SYMBOL vmlinux 0x2ed29291 write_cache_pages +EXPORT_SYMBOL vmlinux 0x2ee1b8ff mpage_readpages +EXPORT_SYMBOL vmlinux 0x2f367d8c xor_ia64_3 +EXPORT_SYMBOL vmlinux 0x2f4e9767 hwsw_map_single +EXPORT_SYMBOL vmlinux 0x2f5f4c8b acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x2f7340be set_irq_chip +EXPORT_SYMBOL vmlinux 0x2f89f0fd __find_get_block +EXPORT_SYMBOL vmlinux 0x2f97cc23 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x2faed47f pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x2fbc7843 struct_module +EXPORT_SYMBOL vmlinux 0x2fbe51bd xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x2fca70a1 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x30013610 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x3024385f xrlim_allow +EXPORT_SYMBOL vmlinux 0x303e87ed netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x30ae68a0 eth_header_parse +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f55165 invalidate_partition +EXPORT_SYMBOL vmlinux 0x30f56b6f hwsw_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x310a3666 pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0x31286481 single_release +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3170a190 dma_pool_create +EXPORT_SYMBOL vmlinux 0x3177ba65 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x31851212 nf_reinject +EXPORT_SYMBOL vmlinux 0x3185f491 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x31959ff0 ps2_init +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x32093cc7 __udivdi3 +EXPORT_SYMBOL vmlinux 0x321dff50 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x32538421 module_remove_driver +EXPORT_SYMBOL vmlinux 0x3254ffff secpath_dup +EXPORT_SYMBOL vmlinux 0x32797be4 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x32ac846c sock_setsockopt +EXPORT_SYMBOL vmlinux 0x32c6f9f4 tty_vhangup +EXPORT_SYMBOL vmlinux 0x32faa2de blk_run_queue +EXPORT_SYMBOL vmlinux 0x33310733 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x3349d836 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x3363fe18 sock_create_kern +EXPORT_SYMBOL vmlinux 0x336cb5e3 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x3370a913 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x3374e564 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x33908571 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x33b5922c ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x33b7385e nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bdf13b swap_io_context +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33cf1487 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x340fcb79 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x341c4c97 proc_symlink +EXPORT_SYMBOL vmlinux 0x343da08c __wake_up_bit +EXPORT_SYMBOL vmlinux 0x3443519f inet_csk_accept +EXPORT_SYMBOL vmlinux 0x3457b472 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0x345a5751 tcf_register_action +EXPORT_SYMBOL vmlinux 0x346732b6 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x3470b9e2 down_write_trylock +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34ce08e4 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x34ce4cbf genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x350e9ba4 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x3532400b pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x35c8e3cb sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x35d6cd74 inet_shutdown +EXPORT_SYMBOL vmlinux 0x360741b2 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x362969d8 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x364f0cb7 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x36abf003 open_exec +EXPORT_SYMBOL vmlinux 0x3717dbf9 ia64_pfn_valid +EXPORT_SYMBOL vmlinux 0x373adafd posix_test_lock +EXPORT_SYMBOL vmlinux 0x375f9341 sn_io_slot_fixup +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x3764198c kobject_get +EXPORT_SYMBOL vmlinux 0x37a4ce20 __alloc_pages +EXPORT_SYMBOL vmlinux 0x37a77946 tiocx_irq_free +EXPORT_SYMBOL vmlinux 0x37b4a79d complete_request_key +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c2f6ef vfs_readdir +EXPORT_SYMBOL vmlinux 0x37cb325d acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x37d91167 pfm_mod_read_pmds +EXPORT_SYMBOL vmlinux 0x37ee3f18 kobject_add +EXPORT_SYMBOL vmlinux 0x37fb8c25 key_task_permission +EXPORT_SYMBOL vmlinux 0x3816e96f neigh_destroy +EXPORT_SYMBOL vmlinux 0x38257da4 submit_bh +EXPORT_SYMBOL vmlinux 0x382af83b swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x3877c195 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x38912986 nla_reserve +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38ed670e unload_nls +EXPORT_SYMBOL vmlinux 0x392bf7ed datagram_poll +EXPORT_SYMBOL vmlinux 0x393c14e1 blk_put_request +EXPORT_SYMBOL vmlinux 0x3947c486 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x39589e8d locks_remove_posix +EXPORT_SYMBOL vmlinux 0x3962cc29 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x396bc69d pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x396f7836 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x399274b8 pfm_mod_write_ibrs +EXPORT_SYMBOL vmlinux 0x39a2625b ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x39b4b605 get_sb_nodev +EXPORT_SYMBOL vmlinux 0x39d68297 force_sig +EXPORT_SYMBOL vmlinux 0x39ef4637 uart_match_port +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a265e0c bte_unaligned_copy +EXPORT_SYMBOL vmlinux 0x3a27a2b6 acpi_get_data +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aed7527 isa_irq_to_vector_map +EXPORT_SYMBOL vmlinux 0x3aee7259 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x3b029f48 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x3b2796c7 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b30581e __mod_timer +EXPORT_SYMBOL vmlinux 0x3b3be38d sn_region_size +EXPORT_SYMBOL vmlinux 0x3b5d869f kernel_getpeername +EXPORT_SYMBOL vmlinux 0x3b68e7a2 read_dev_sector +EXPORT_SYMBOL vmlinux 0x3b736f9d xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3b78cd1a rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x3b852669 llc_add_pack +EXPORT_SYMBOL vmlinux 0x3baa101c vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd646e2 bio_clone +EXPORT_SYMBOL vmlinux 0x3c14960c dev_close +EXPORT_SYMBOL vmlinux 0x3c2b5491 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x3c44de59 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x3c6586bc kset_unregister +EXPORT_SYMBOL vmlinux 0x3c67d263 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x3c930c4c __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cdde3b7 ia64_ivt +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ceb16f1 module_add_driver +EXPORT_SYMBOL vmlinux 0x3d0c364f vfs_create +EXPORT_SYMBOL vmlinux 0x3d18763c _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x3d1c167e bio_split +EXPORT_SYMBOL vmlinux 0x3d4669bd xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e50d044 __elv_add_request +EXPORT_SYMBOL vmlinux 0x3e6db187 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1d31ad tiocx_swin_base +EXPORT_SYMBOL vmlinux 0x3f33821b cx_driver_unregister +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f6a7440 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x3f6baf1d misc_deregister +EXPORT_SYMBOL vmlinux 0x3f6bc633 __do_clear_user +EXPORT_SYMBOL vmlinux 0x3f72ee13 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x3f7b249c dquot_commit +EXPORT_SYMBOL vmlinux 0x3f8064ce crc32_be +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fc6cd19 blk_get_request +EXPORT_SYMBOL vmlinux 0x3fcb2daa block_sync_page +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffeb5b3 dentry_open +EXPORT_SYMBOL vmlinux 0x40012a9f input_event +EXPORT_SYMBOL vmlinux 0x4029d55a sock_recvmsg +EXPORT_SYMBOL vmlinux 0x404c4400 sock_no_bind +EXPORT_SYMBOL vmlinux 0x4055a920 acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40627193 udplite_get_port +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40c1c261 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x40f5b6d6 posix_acl_clone +EXPORT_SYMBOL vmlinux 0x4122bc89 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x41429220 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x415f15cd grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x4171fa1e load_nls +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41a23290 tioca_fastwrite_enable +EXPORT_SYMBOL vmlinux 0x41b3e367 bio_pair_release +EXPORT_SYMBOL vmlinux 0x41c5d585 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x41e20133 lookup_one_len +EXPORT_SYMBOL vmlinux 0x41ef1b3e uart_add_one_port +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42261efd fb_pan_display +EXPORT_SYMBOL vmlinux 0x42578e80 acpi_get_type +EXPORT_SYMBOL vmlinux 0x4257f19f __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x428c8d73 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42bed219 kobject_del +EXPORT_SYMBOL vmlinux 0x42c7d73f __seq_open_private +EXPORT_SYMBOL vmlinux 0x42d7bfb3 generic_write_checks +EXPORT_SYMBOL vmlinux 0x42de6a27 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x42fee245 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x433a4d61 release_firmware +EXPORT_SYMBOL vmlinux 0x433e0591 sn_generate_path +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x4368296d vfs_write +EXPORT_SYMBOL vmlinux 0x436a7f98 groups_free +EXPORT_SYMBOL vmlinux 0x4385ed4f inet_bind +EXPORT_SYMBOL vmlinux 0x439090b9 kernel_thread +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x4444a7d4 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x447b38f6 bio_map_kern +EXPORT_SYMBOL vmlinux 0x44902cff acpi_enable_event +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c0d7d0 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x44d6a3d3 cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x44e9f6d5 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x4505ff07 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x4515cc4c seq_open_private +EXPORT_SYMBOL vmlinux 0x4517b047 audit_log_format +EXPORT_SYMBOL vmlinux 0x451f7ac6 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x454fb519 ioremap +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x4599f4b7 seq_read +EXPORT_SYMBOL vmlinux 0x45ac0740 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x45afb028 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x45d8000a downgrade_write +EXPORT_SYMBOL vmlinux 0x45dd6557 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x45ecc7f6 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x45f9d331 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x4608f3a9 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x4622f01b bio_init +EXPORT_SYMBOL vmlinux 0x468822ae aio_put_req +EXPORT_SYMBOL vmlinux 0x468e1058 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x4696be0a wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x46a3a1c5 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x46bef10f elv_add_request +EXPORT_SYMBOL vmlinux 0x46d0f5c2 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x46e9ca56 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x46edf16d put_page +EXPORT_SYMBOL vmlinux 0x46eff0ae deny_write_access +EXPORT_SYMBOL vmlinux 0x46f3f3f1 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x47172435 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x47297f48 dma_get_cache_alignment +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47868486 pci_request_regions +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47c3b4ad nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x47d4b195 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x47e904b0 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x47fc29a7 unw_access_gr +EXPORT_SYMBOL vmlinux 0x482286a7 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x48325af6 kobject_register +EXPORT_SYMBOL vmlinux 0x48341c14 mpage_readpage +EXPORT_SYMBOL vmlinux 0x4860d38a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x48d73a86 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x49584e84 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x49f4e164 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x4a0eabe5 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x4a2e39f2 wait_for_completion +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a418006 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x4a453f53 iowrite32 +EXPORT_SYMBOL vmlinux 0x4a541e2a __umoddi3 +EXPORT_SYMBOL vmlinux 0x4a61f1c8 idr_for_each +EXPORT_SYMBOL vmlinux 0x4a83769c acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x4ad23628 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x4add7dbc register_console +EXPORT_SYMBOL vmlinux 0x4ade6dc9 find_lock_page +EXPORT_SYMBOL vmlinux 0x4ae3c350 km_state_notify +EXPORT_SYMBOL vmlinux 0x4b18d7b5 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b671cc0 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x4b6b8d13 vmem_map +EXPORT_SYMBOL vmlinux 0x4b9f74e8 clocksource_register +EXPORT_SYMBOL vmlinux 0x4bb9a7ee uncached_alloc_page +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bfda76f llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c15e46f kobject_init +EXPORT_SYMBOL vmlinux 0x4c38bc9a proc_bus +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c6c49a0 alloc_file +EXPORT_SYMBOL vmlinux 0x4c93539c unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x4ca28907 find_or_create_page +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbf161d tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x4cc3bc4b sk_stop_timer +EXPORT_SYMBOL vmlinux 0x4cc540fb pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x4cd62e14 vm_insert_page +EXPORT_SYMBOL vmlinux 0x4cd78f33 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x4cdd4667 skb_store_bits +EXPORT_SYMBOL vmlinux 0x4cee2e8c devm_request_irq +EXPORT_SYMBOL vmlinux 0x4d54922c inet_stream_ops +EXPORT_SYMBOL vmlinux 0x4d64a7f7 sn_dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x4d6dc3e1 _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x4d6e74ff jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x4d732da3 have_submounts +EXPORT_SYMBOL vmlinux 0x4dab675e flush_tlb_range +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e5a8c7b uart_suspend_port +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea2e396 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x4ea4f403 keyring_search +EXPORT_SYMBOL vmlinux 0x4eb47549 register_chrdev +EXPORT_SYMBOL vmlinux 0x4eb591fe d_instantiate +EXPORT_SYMBOL vmlinux 0x4eb84fec console_stop +EXPORT_SYMBOL vmlinux 0x4ebc09f5 __invalidate_device +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee1e7ba simple_transaction_release +EXPORT_SYMBOL vmlinux 0x4ee5ba63 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x4efa5892 iget5_locked +EXPORT_SYMBOL vmlinux 0x4f18770b set_current_groups +EXPORT_SYMBOL vmlinux 0x4f18997e blk_insert_request +EXPORT_SYMBOL vmlinux 0x4f2870d8 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x4f2e7f45 __breadahead +EXPORT_SYMBOL vmlinux 0x4f34d1a3 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x4f49ffbd __down_interruptible +EXPORT_SYMBOL vmlinux 0x4f551c94 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x4f65557d blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x4f837b5e xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x4fb0aa21 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x4fc0d4e9 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x4fc25521 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x4fe13fab xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x4ffb49ac blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502f852c swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x503410a3 kill_anon_super +EXPORT_SYMBOL vmlinux 0x50899ed1 pci_restore_state +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50d2acbc gen_pool_free +EXPORT_SYMBOL vmlinux 0x50d5242d register_exec_domain +EXPORT_SYMBOL vmlinux 0x516dd1c2 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x51a925f1 key_validate +EXPORT_SYMBOL vmlinux 0x51d8032c serio_close +EXPORT_SYMBOL vmlinux 0x51d91fd5 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x51e8980b d_path +EXPORT_SYMBOL vmlinux 0x51e8efbc add_to_page_cache +EXPORT_SYMBOL vmlinux 0x520f8ceb blk_init_queue +EXPORT_SYMBOL vmlinux 0x52239cbe vfs_permission +EXPORT_SYMBOL vmlinux 0x526f7905 eth_type_trans +EXPORT_SYMBOL vmlinux 0x52805742 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x52c870c3 register_gifconf +EXPORT_SYMBOL vmlinux 0x52c88213 bd_claim +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x531633be tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x53255c0f sn_bus_store_sysdata +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533a61e3 schedule_work +EXPORT_SYMBOL vmlinux 0x536cdd01 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x537713e0 skb_unlink +EXPORT_SYMBOL vmlinux 0x538fd0d0 per_cpu____sn_hub_info +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c08169 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x53e9dfb0 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x53f66cf3 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0x540a6d95 fb_find_mode +EXPORT_SYMBOL vmlinux 0x54192741 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x54364e41 bio_free +EXPORT_SYMBOL vmlinux 0x544b5424 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x544b8413 backlight_device_register +EXPORT_SYMBOL vmlinux 0x547e3344 acpi_disable +EXPORT_SYMBOL vmlinux 0x54965a5b input_open_device +EXPORT_SYMBOL vmlinux 0x54a2e70f nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x54cc170c pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x54d3c035 tcf_em_register +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54eace48 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x55120e28 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55cc4ab0 simple_lookup +EXPORT_SYMBOL vmlinux 0x55ccff6f iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x56166706 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563d4da0 input_unregister_device +EXPORT_SYMBOL vmlinux 0x5640b920 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x56552730 pci_get_slot +EXPORT_SYMBOL vmlinux 0x566ae88e do_sync_write +EXPORT_SYMBOL vmlinux 0x567db1b4 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x56982545 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56c8b35f call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x56ca38ff _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x56e87d10 vm_stat +EXPORT_SYMBOL vmlinux 0x56f2a4ce idr_pre_get +EXPORT_SYMBOL vmlinux 0x570b0303 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x574490aa find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x575ea7c4 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5763637b unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x57671257 inode_setattr +EXPORT_SYMBOL vmlinux 0x577ec57c llc_sap_find +EXPORT_SYMBOL vmlinux 0x5784e056 request_key_async +EXPORT_SYMBOL vmlinux 0x579d9ca8 fb_blank +EXPORT_SYMBOL vmlinux 0x57d198b2 __scm_send +EXPORT_SYMBOL vmlinux 0x580991f7 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x5838065b dev_get_by_index +EXPORT_SYMBOL vmlinux 0x58387cf4 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x584022c5 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5859adbe gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x58ed46d6 nla_parse +EXPORT_SYMBOL vmlinux 0x58f8dadb get_sb_single +EXPORT_SYMBOL vmlinux 0x58fb759d compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x590d4f0e unw_init_running +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594c25f1 down_read_trylock +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x5959942c blk_remove_plug +EXPORT_SYMBOL vmlinux 0x59802042 pskb_copy +EXPORT_SYMBOL vmlinux 0x5987ce37 ll_rw_block +EXPORT_SYMBOL vmlinux 0x599d012b pci_fixup_device +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59eeacb4 block_write_end +EXPORT_SYMBOL vmlinux 0x5a1bd189 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4b1d35 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x5a4f88c1 generic_file_open +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5aab354f sysctl_intvec +EXPORT_SYMBOL vmlinux 0x5ab23bc2 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5af66fe8 inet_release +EXPORT_SYMBOL vmlinux 0x5b0968d0 devm_iounmap +EXPORT_SYMBOL vmlinux 0x5b18fcbb sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x5b85ba1b fb_class +EXPORT_SYMBOL vmlinux 0x5b8fedd6 unw_init_frame_info +EXPORT_SYMBOL vmlinux 0x5c1127e2 sysctl_pathname +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c43b510 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x5c4e5b7e interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x5c7a8717 ia64_sal_oemcall +EXPORT_SYMBOL vmlinux 0x5c7b583b blkdev_get +EXPORT_SYMBOL vmlinux 0x5c951074 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5d31b101 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x5d8dc675 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5dbf55c1 bioset_create +EXPORT_SYMBOL vmlinux 0x5ddb3d56 efi_mem_attributes +EXPORT_SYMBOL vmlinux 0x5de4565d end_that_request_first +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e0a753f cx_device_register +EXPORT_SYMBOL vmlinux 0x5e523a9e acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x5e606c95 add_disk +EXPORT_SYMBOL vmlinux 0x5e682012 cx_driver_register +EXPORT_SYMBOL vmlinux 0x5ea99c5b sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x5eaf8c50 d_validate +EXPORT_SYMBOL vmlinux 0x5eb6df52 unlock_rename +EXPORT_SYMBOL vmlinux 0x5ebbac43 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x5f0c4aa2 pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x5f11a465 __bio_clone +EXPORT_SYMBOL vmlinux 0x5f5197cc __bread +EXPORT_SYMBOL vmlinux 0x5f67fb8d blk_start_queueing +EXPORT_SYMBOL vmlinux 0x5f69b228 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x5f6b0c84 uncached_free_page +EXPORT_SYMBOL vmlinux 0x5f827b2d redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x5f8fe01c __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x5fa3408f tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x5fd63012 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x5fec3e71 __lock_page +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6048f395 update_region +EXPORT_SYMBOL vmlinux 0x604f68c8 register_con_driver +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ad7810 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x610f12e5 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x614e44f2 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x615938cc unw_access_pr +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61f569b5 make_bad_inode +EXPORT_SYMBOL vmlinux 0x620dd8cb secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x6210ccc5 __scm_destroy +EXPORT_SYMBOL vmlinux 0x62715462 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6283f08e register_8022_client +EXPORT_SYMBOL vmlinux 0x62e10701 ilookup5 +EXPORT_SYMBOL vmlinux 0x62ea6020 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x62fb7285 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x63393a3c dentry_unhash +EXPORT_SYMBOL vmlinux 0x634e29c2 fb_show_logo +EXPORT_SYMBOL vmlinux 0x63665fb7 set_user_nice +EXPORT_SYMBOL vmlinux 0x638cd584 lock_rename +EXPORT_SYMBOL vmlinux 0x63b6b18a posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63f80f37 acpi_set_register +EXPORT_SYMBOL vmlinux 0x63fc073b node_states +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64165592 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x642c28c4 acpi_os_execute +EXPORT_SYMBOL vmlinux 0x6434ca72 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x648e8702 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a27f42 page_symlink +EXPORT_SYMBOL vmlinux 0x64c46059 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x64d63ab9 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x64d83471 file_permission +EXPORT_SYMBOL vmlinux 0x64ffe74e sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x65042ad9 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x651dfdbd netlink_unicast +EXPORT_SYMBOL vmlinux 0x651edf20 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654ee44d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x6557b573 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x65744b76 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x65dd36d2 sock_wfree +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x668ce139 simple_rmdir +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a827ff generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x66f2cbdf xfrm_init_state +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67363642 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x673aa1de rwsem_wake +EXPORT_SYMBOL vmlinux 0x67613c31 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x67712dfc uart_register_driver +EXPORT_SYMBOL vmlinux 0x677355b4 ia64_reg_MCA_extension +EXPORT_SYMBOL vmlinux 0x6785cfb3 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x67915b72 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67c3f92b ip_dev_find +EXPORT_SYMBOL vmlinux 0x67e53dbd swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x68092d39 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x684689ae request_firmware +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x68875102 input_inject_event +EXPORT_SYMBOL vmlinux 0x688aa954 per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x68a04067 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x68cd55b2 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x68ff7192 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x68ff9529 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x6911ca5f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x6921a49c skb_under_panic +EXPORT_SYMBOL vmlinux 0x6922aaae generic_osync_inode +EXPORT_SYMBOL vmlinux 0x693ac2bb blk_requeue_request +EXPORT_SYMBOL vmlinux 0x69575bcc tasklet_init +EXPORT_SYMBOL vmlinux 0x6966bbbe unw_init_from_blocked_task +EXPORT_SYMBOL vmlinux 0x69735089 set_disk_ro +EXPORT_SYMBOL vmlinux 0x697a58c8 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69c39ded elevator_exit +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a097dd8 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a634432 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x6a6899f9 acpi_terminate +EXPORT_SYMBOL vmlinux 0x6aa11393 __first_cpu +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6af5504b kobject_put +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3865c9 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x6b4945a8 inet_accept +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b5c7e6e kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x6bb087d1 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x6bc3b473 pnp_is_active +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bdec668 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6beb2c34 create_proc_entry +EXPORT_SYMBOL vmlinux 0x6c103a26 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x6c595e51 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c76be8d kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x6c78ed17 set_bh_page +EXPORT_SYMBOL vmlinux 0x6cb4b665 tcp_check_req +EXPORT_SYMBOL vmlinux 0x6cf5c821 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d21a64e search_binary_handler +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d824298 _read_lock_bh +EXPORT_SYMBOL vmlinux 0x6d8be717 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df2e8f7 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x6dfc7ff3 crc32_le +EXPORT_SYMBOL vmlinux 0x6e477acb tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x6e497827 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x6e56f5e4 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x6e597290 del_timer_sync +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e7c4d85 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x6e991822 kill_fasync +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb2507f eth_header_cache +EXPORT_SYMBOL vmlinux 0x6ecb6645 dcache_lock +EXPORT_SYMBOL vmlinux 0x6ef6bf7e fb_set_suspend +EXPORT_SYMBOL vmlinux 0x6efc229d cpu_possible_map +EXPORT_SYMBOL vmlinux 0x6efe7091 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x6f1fe2a2 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x6f436e7f ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x6f4a7298 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x6f4fc248 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x6f8d38fc arp_xmit +EXPORT_SYMBOL vmlinux 0x6fa88cce xfrm_register_type +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6ff9dc7e neigh_event_ns +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x7026277f pci_find_slot +EXPORT_SYMBOL vmlinux 0x7045ebdf km_policy_notify +EXPORT_SYMBOL vmlinux 0x705f28cd groups_alloc +EXPORT_SYMBOL vmlinux 0x7087a1c7 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x708b808d alloc_pages_current +EXPORT_SYMBOL vmlinux 0x708d8013 sn_dma_unmap_single +EXPORT_SYMBOL vmlinux 0x7097352d inode_init_once +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70c8325d inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x70fd189d mnt_unpin +EXPORT_SYMBOL vmlinux 0x7154eeed ia64_mca_printk +EXPORT_SYMBOL vmlinux 0x715a208f inode_double_lock +EXPORT_SYMBOL vmlinux 0x715da24d __kfree_skb +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71baba93 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x71d47557 key_alloc +EXPORT_SYMBOL vmlinux 0x720a4669 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x723b1bf8 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x72665354 filemap_flush +EXPORT_SYMBOL vmlinux 0x7272fc8a arp_tbl +EXPORT_SYMBOL vmlinux 0x7276bb74 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x728de7e8 blk_put_queue +EXPORT_SYMBOL vmlinux 0x72d6045a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x72f08cb0 acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x73030494 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x730b307a del_gendisk +EXPORT_SYMBOL vmlinux 0x73579956 kobject_unregister +EXPORT_SYMBOL vmlinux 0x737134c9 pci_dev_put +EXPORT_SYMBOL vmlinux 0x737172bd rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x73763c74 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x737b036b __devm_request_region +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x73a1d6c0 generic_fillattr +EXPORT_SYMBOL vmlinux 0x7419e169 icmp_send +EXPORT_SYMBOL vmlinux 0x74376ab0 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x7466bb13 sn_dma_flush +EXPORT_SYMBOL vmlinux 0x74754435 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74a77ec9 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x74b3a095 dst_destroy +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74e05d8c tasklet_kill +EXPORT_SYMBOL vmlinux 0x74f7eb87 fput +EXPORT_SYMBOL vmlinux 0x7503105d unregister_snap_client +EXPORT_SYMBOL vmlinux 0x751b0545 llc_sap_open +EXPORT_SYMBOL vmlinux 0x75202d8f inode_double_unlock +EXPORT_SYMBOL vmlinux 0x75370133 pci_release_region +EXPORT_SYMBOL vmlinux 0x75384f68 __getblk +EXPORT_SYMBOL vmlinux 0x75472a2c sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0x75625fcd elv_rb_add +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75871f5e acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x75ad291f uart_update_timeout +EXPORT_SYMBOL vmlinux 0x75b99a55 seq_lseek +EXPORT_SYMBOL vmlinux 0x75c5a3f2 tiocx_irq_alloc +EXPORT_SYMBOL vmlinux 0x75cf744d pci_enable_device +EXPORT_SYMBOL vmlinux 0x75fa0aa7 simple_readpage +EXPORT_SYMBOL vmlinux 0x75fd7f04 per_cpu__cpu_info +EXPORT_SYMBOL vmlinux 0x7601c091 skb_seq_read +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7616fae5 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x7645dfd9 __bforget +EXPORT_SYMBOL vmlinux 0x764d31fd skb_clone +EXPORT_SYMBOL vmlinux 0x76983278 remove_suid +EXPORT_SYMBOL vmlinux 0x76adbc17 __brelse +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e2d6a0 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x76facf1e iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x77265904 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x774506b3 tty_hangup +EXPORT_SYMBOL vmlinux 0x77a0bfeb tcp_sendpage +EXPORT_SYMBOL vmlinux 0x77b097cd should_remove_suid +EXPORT_SYMBOL vmlinux 0x77d14041 kthread_stop +EXPORT_SYMBOL vmlinux 0x77dc6e62 send_sig_info +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x78036f31 __nla_reserve +EXPORT_SYMBOL vmlinux 0x7814a08f simple_unlink +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x785c7e08 sock_map_fd +EXPORT_SYMBOL vmlinux 0x789394b9 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x78be8658 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f22e39 sn_dma_supported +EXPORT_SYMBOL vmlinux 0x79002c60 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x7915a9c5 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x791e93be clear_inode +EXPORT_SYMBOL vmlinux 0x79384a28 __devm_release_region +EXPORT_SYMBOL vmlinux 0x7956451b remap_pfn_range +EXPORT_SYMBOL vmlinux 0x7965b9f5 sba_alloc_coherent +EXPORT_SYMBOL vmlinux 0x7986a6b4 add_disk_randomness +EXPORT_SYMBOL vmlinux 0x79a2fd35 ia64_unreg_MCA_extension +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79ad986b skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x79d74e83 hwsw_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x79f313d3 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x7a2a3d06 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7a4add8f reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x7a56e18d dcache_readdir +EXPORT_SYMBOL vmlinux 0x7a5b7f95 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x7a6ce925 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0x7aa0f563 machvec_dma_sync_single +EXPORT_SYMBOL vmlinux 0x7aa18292 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x7ab9492d sock_rfree +EXPORT_SYMBOL vmlinux 0x7af0e1a6 idr_get_new +EXPORT_SYMBOL vmlinux 0x7af165ec elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x7b2afda5 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x7b2c0736 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x7b5452b8 acpi_unregister_gsi +EXPORT_SYMBOL vmlinux 0x7b74795f __sk_dst_check +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bdaa457 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x7be65745 input_grab_device +EXPORT_SYMBOL vmlinux 0x7bf708f5 bdput +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c1a9ce2 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5d7932 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7cac2e92 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x7cd84886 wake_up_process +EXPORT_SYMBOL vmlinux 0x7d074762 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d12ba5b xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x7d12d76d acpi_get_parent +EXPORT_SYMBOL vmlinux 0x7d20c454 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x7d3226bb generic_listxattr +EXPORT_SYMBOL vmlinux 0x7d64fcad input_register_handler +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7db466de vfs_quota_sync +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de10dfe xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x7de86321 blk_plug_device +EXPORT_SYMBOL vmlinux 0x7dec82b7 devm_ioremap +EXPORT_SYMBOL vmlinux 0x7df28ff9 vfs_link +EXPORT_SYMBOL vmlinux 0x7e04f788 cdev_alloc +EXPORT_SYMBOL vmlinux 0x7e05f715 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x7e10298d mntput_no_expire +EXPORT_SYMBOL vmlinux 0x7e4b243a scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x7e53e022 dev_load +EXPORT_SYMBOL vmlinux 0x7e8007e7 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x7e8ea0dd __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x7e9bf2cb xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x7eb07d0b kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7ec0fdfb vfs_symlink +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ef0512f jiffies_64 +EXPORT_SYMBOL vmlinux 0x7efa1547 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x7f1f963e reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f426b91 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x7f5a6bbe bio_alloc +EXPORT_SYMBOL vmlinux 0x7f855725 hwsw_dma_supported +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fb8ec9f __pagevec_release +EXPORT_SYMBOL vmlinux 0x7fdc549c serio_rescan +EXPORT_SYMBOL vmlinux 0x801307c4 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x8058038d bd_release +EXPORT_SYMBOL vmlinux 0x80671888 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x80916fcc task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x809dbdbf sn_dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x80becf61 start_tty +EXPORT_SYMBOL vmlinux 0x80edfb8d dquot_free_inode +EXPORT_SYMBOL vmlinux 0x80f281bb __break_lease +EXPORT_SYMBOL vmlinux 0x81036527 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x8117dcc7 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x812253c6 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81614de6 take_over_console +EXPORT_SYMBOL vmlinux 0x8177e304 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x8187651d in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x81970556 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81f1579b d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x82169cc9 proc_root +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x825f27b0 tty_devnum +EXPORT_SYMBOL vmlinux 0x827d5807 printk +EXPORT_SYMBOL vmlinux 0x82867314 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x828a146d invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x828a9fb4 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x8294422b pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x82949cb0 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x82ca29da remove_wait_queue +EXPORT_SYMBOL vmlinux 0x82cb5134 __user_walk +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82ecd446 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x83024602 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x8326c58f __free_pages +EXPORT_SYMBOL vmlinux 0x835a7216 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x836894ed tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x8371a992 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x8373b7ae generic_read_dir +EXPORT_SYMBOL vmlinux 0x83998b0b ia64_save_scratch_fpregs +EXPORT_SYMBOL vmlinux 0x839f86f3 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83bb2b55 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x83c4b150 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x83cc2ba7 kernel_accept +EXPORT_SYMBOL vmlinux 0x83d782a3 give_up_console +EXPORT_SYMBOL vmlinux 0x83e9dfe0 get_super +EXPORT_SYMBOL vmlinux 0x83f5f221 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x8412df90 vfs_rename +EXPORT_SYMBOL vmlinux 0x841598d2 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x846f02e5 pci_get_class +EXPORT_SYMBOL vmlinux 0x84779ad1 iget_locked +EXPORT_SYMBOL vmlinux 0x848d372e iowrite8 +EXPORT_SYMBOL vmlinux 0x84b13c85 module_put +EXPORT_SYMBOL vmlinux 0x84bbe863 set_binfmt +EXPORT_SYMBOL vmlinux 0x84e78f36 register_filesystem +EXPORT_SYMBOL vmlinux 0x84f4bd01 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x84fcf667 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x850fa128 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x853dd80d key_payload_reserve +EXPORT_SYMBOL vmlinux 0x856c15b5 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x8575ad7d nf_getsockopt +EXPORT_SYMBOL vmlinux 0x85760af3 acpi_get_table +EXPORT_SYMBOL vmlinux 0x8582d473 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85d21f92 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x860719f4 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0x86132aa1 per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x86526c87 stop_tty +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866a7695 complete +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869189b5 udplite_prot +EXPORT_SYMBOL vmlinux 0x869a0626 init_task +EXPORT_SYMBOL vmlinux 0x869b2831 complete_and_exit +EXPORT_SYMBOL vmlinux 0x86a85155 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x86df04a4 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x86e7474e bdevname +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8716021f tioca_list +EXPORT_SYMBOL vmlinux 0x8771215b xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x8790eefd cad_pid +EXPORT_SYMBOL vmlinux 0x8791cd7d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x87d3374d bdi_init +EXPORT_SYMBOL vmlinux 0x87ea65b2 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0x87fec422 ida_remove +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881c8661 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x8876cd42 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x889187d0 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x88a21692 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x88d3ec67 permission +EXPORT_SYMBOL vmlinux 0x88e22643 put_filp +EXPORT_SYMBOL vmlinux 0x88f7dc66 pci_choose_state +EXPORT_SYMBOL vmlinux 0x8935a2e0 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x893ccc86 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x895f3f69 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89816966 register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x899de066 dma_pool_free +EXPORT_SYMBOL vmlinux 0x89c243ec drop_super +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e5fb04 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x89ed4fee mempool_destroy +EXPORT_SYMBOL vmlinux 0x8a077554 __lock_buffer +EXPORT_SYMBOL vmlinux 0x8a0b14ea ida_get_new_above +EXPORT_SYMBOL vmlinux 0x8a0ba840 _spin_trylock +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9f940f sock_wmalloc +EXPORT_SYMBOL vmlinux 0x8adeda8a _spin_lock +EXPORT_SYMBOL vmlinux 0x8ae903f9 generic_write_end +EXPORT_SYMBOL vmlinux 0x8aed19b3 sock_create_lite +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b883b55 proc_dointvec +EXPORT_SYMBOL vmlinux 0x8b966b63 sn_rtc_cycles_per_second +EXPORT_SYMBOL vmlinux 0x8bc0e660 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x8bfd749d mod_timer +EXPORT_SYMBOL vmlinux 0x8c13d0bc mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x8c59d94d do_splice_to +EXPORT_SYMBOL vmlinux 0x8c64acc2 sba_dma_supported +EXPORT_SYMBOL vmlinux 0x8c88747b dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x8c8d72ad find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x8c8fe2c5 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x8ca87438 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cced802 names_cachep +EXPORT_SYMBOL vmlinux 0x8cdd4206 km_policy_expired +EXPORT_SYMBOL vmlinux 0x8ce7b165 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x8cf2348c ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x8d0686cc neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d5133bd pci_remove_bus +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6d1c18 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x8db1a427 km_new_mapping +EXPORT_SYMBOL vmlinux 0x8ddb1a2b __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x8df01146 sn_partition_id +EXPORT_SYMBOL vmlinux 0x8df999fa pci_match_id +EXPORT_SYMBOL vmlinux 0x8e11e85e compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8edf1c9c _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x8f1149fa pci_select_bars +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8fbf3c7e kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x8fd76400 dquot_free_space +EXPORT_SYMBOL vmlinux 0x8fe3902b pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x8feb424f acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x8ff7118e pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90045c26 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x9011950e may_umount_tree +EXPORT_SYMBOL vmlinux 0x901cc0d9 generic_writepages +EXPORT_SYMBOL vmlinux 0x903ab395 __moddi3 +EXPORT_SYMBOL vmlinux 0x90441237 set_anon_super +EXPORT_SYMBOL vmlinux 0x90802b9e nobh_writepage +EXPORT_SYMBOL vmlinux 0x908603ce tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x909eedb0 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x90b38281 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x90b80878 seq_open +EXPORT_SYMBOL vmlinux 0x91029623 rtnl_notify +EXPORT_SYMBOL vmlinux 0x911b8195 cdev_add +EXPORT_SYMBOL vmlinux 0x911ece99 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x912f98ba init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x913129ba inet_getname +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91510cbf _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x9164deb3 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x91679d2a sock_no_listen +EXPORT_SYMBOL vmlinux 0x91840757 per_cpu____sn_cnodeid_to_nasid +EXPORT_SYMBOL vmlinux 0x918bfbf8 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x919f765b inet_del_protocol +EXPORT_SYMBOL vmlinux 0x91bb07f2 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x91d133c3 follow_up +EXPORT_SYMBOL vmlinux 0x91ea4075 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x924bed6b tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x9257331b blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x928ab4ba __down_trylock +EXPORT_SYMBOL vmlinux 0x929f5326 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x92a9e10c end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x92b4da19 dev_mc_add +EXPORT_SYMBOL vmlinux 0x92cb8046 sn_acpi_slot_fixup +EXPORT_SYMBOL vmlinux 0x92d1f4e2 end_queued_request +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9322c355 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x935dce0c buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x937958a6 mempool_resize +EXPORT_SYMBOL vmlinux 0x937c1232 vfs_read +EXPORT_SYMBOL vmlinux 0x9391d46a invalidate_inodes +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93fc4ae5 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9400ee2c compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x94378098 arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0x948b045f acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x9494fa5f dev_driver_string +EXPORT_SYMBOL vmlinux 0x949ff499 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x94be9e2f ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x94bfd54e single_open +EXPORT_SYMBOL vmlinux 0x94c331d5 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x94eef1e4 ip_route_input +EXPORT_SYMBOL vmlinux 0x952b311f unregister_key_type +EXPORT_SYMBOL vmlinux 0x952ec05b filemap_fault +EXPORT_SYMBOL vmlinux 0x95468031 d_lookup +EXPORT_SYMBOL vmlinux 0x954ddff4 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x957a08b4 skb_copy +EXPORT_SYMBOL vmlinux 0x9580988b redraw_screen +EXPORT_SYMBOL vmlinux 0x95b69c1f vfs_getattr +EXPORT_SYMBOL vmlinux 0x95bb634b try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95fbb32a pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0x963ad667 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x9645dc71 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x964ccc16 skb_split +EXPORT_SYMBOL vmlinux 0x964d32b2 sk_common_release +EXPORT_SYMBOL vmlinux 0x96628b61 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x9671728d ifla_policy +EXPORT_SYMBOL vmlinux 0x9679d026 acpi_attach_data +EXPORT_SYMBOL vmlinux 0x969ad2d6 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x96bb35a6 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x96db92a7 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x970403fd nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x97474c3d __user_walk_fd +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975f6f62 tty_check_change +EXPORT_SYMBOL vmlinux 0x978cdd12 lock_may_read +EXPORT_SYMBOL vmlinux 0x97a56aab gen_pool_add +EXPORT_SYMBOL vmlinux 0x97bf76d7 nla_put +EXPORT_SYMBOL vmlinux 0x97c27353 km_state_expired +EXPORT_SYMBOL vmlinux 0x97dace91 dquot_initialize +EXPORT_SYMBOL vmlinux 0x98075b45 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x9825bed7 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98dfaa55 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x9901298d nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x99142589 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x994a3592 input_allocate_device +EXPORT_SYMBOL vmlinux 0x9975dc22 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x99763bfb __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99b95028 sock_wake_async +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d7c445 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x99e696df xfrm_lookup +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ef87e2 _spin_unlock +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a287b28 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x9a36f137 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x9a55cdfb arp_send +EXPORT_SYMBOL vmlinux 0x9a55f9b8 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9a61ea6d sn_partition_serial_number +EXPORT_SYMBOL vmlinux 0x9a773535 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x9a916344 hwsw_alloc_coherent +EXPORT_SYMBOL vmlinux 0x9abfb6dd max_low_pfn +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b089cc2 _write_lock +EXPORT_SYMBOL vmlinux 0x9b2075be qdisc_reset +EXPORT_SYMBOL vmlinux 0x9b227831 sn_dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b761d54 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x9b7bf6e9 open_bdev_excl +EXPORT_SYMBOL vmlinux 0x9ba1f5ba __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb11d25 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x9bbdad1e ioport_resource +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c30fcda migrate_page +EXPORT_SYMBOL vmlinux 0x9c3f4cc3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9c72b629 default_llseek +EXPORT_SYMBOL vmlinux 0x9c7f74b4 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x9c8edc26 lock_super +EXPORT_SYMBOL vmlinux 0x9c9820bf mapping_tagged +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cbc7a90 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x9cecb6a2 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x9d035012 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9d09ce27 reset_files_struct +EXPORT_SYMBOL vmlinux 0x9d957a97 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dd60a39 kill_block_super +EXPORT_SYMBOL vmlinux 0x9e20cbce uts_sem +EXPORT_SYMBOL vmlinux 0x9e28477d free_netdev +EXPORT_SYMBOL vmlinux 0x9e54275f blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x9e8e2948 hwsw_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x9e9eaf97 kill_pid +EXPORT_SYMBOL vmlinux 0x9eadac43 nonseekable_open +EXPORT_SYMBOL vmlinux 0x9ebad9eb write_one_page +EXPORT_SYMBOL vmlinux 0x9ebc1b3a pfm_sysctl +EXPORT_SYMBOL vmlinux 0x9ece2ad1 fb_set_var +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9efa79e2 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3bf87b posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x9f4dfc14 del_timer +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa169ef d_rehash +EXPORT_SYMBOL vmlinux 0x9fb929bd proto_unregister +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa056f9b8 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06574ea page_put_link +EXPORT_SYMBOL vmlinux 0xa07b9987 pci_iounmap +EXPORT_SYMBOL vmlinux 0xa0acca62 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fe5946 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa15af77c remove_arg_zero +EXPORT_SYMBOL vmlinux 0xa1665893 dmi_check_system +EXPORT_SYMBOL vmlinux 0xa16ab259 locks_init_lock +EXPORT_SYMBOL vmlinux 0xa177dcdf cdev_init +EXPORT_SYMBOL vmlinux 0xa1d2934d sn_hwperf_get_nearest_node +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1ed3038 acpi_os_signal +EXPORT_SYMBOL vmlinux 0xa2044cd2 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa24915cb __secpath_destroy +EXPORT_SYMBOL vmlinux 0xa26a3956 generic_readlink +EXPORT_SYMBOL vmlinux 0xa2755c7b fpswa_interface +EXPORT_SYMBOL vmlinux 0xa2a99075 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xa2b3179a cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa2b542ab seq_path +EXPORT_SYMBOL vmlinux 0xa2ed4529 udp_prot +EXPORT_SYMBOL vmlinux 0xa2f24785 machvec_timer_interrupt +EXPORT_SYMBOL vmlinux 0xa2f6848c kernel_listen +EXPORT_SYMBOL vmlinux 0xa312d114 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa33a289f flow_cache_genid +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa34227ab bdev_read_only +EXPORT_SYMBOL vmlinux 0xa34ca301 lease_modify +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3632b59 gen_new_estimator +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3c3c521 dst_alloc +EXPORT_SYMBOL vmlinux 0xa3ca4e17 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xa40d3340 check_disk_change +EXPORT_SYMBOL vmlinux 0xa40ff01b acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xa44b2cb0 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xa44fffc1 schedule +EXPORT_SYMBOL vmlinux 0xa46ea42a gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xa47697f7 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xa4890783 ns_to_timespec +EXPORT_SYMBOL vmlinux 0xa4a74611 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c88cce read_cache_page_async +EXPORT_SYMBOL vmlinux 0xa50d16f9 blk_register_region +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa54cc822 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xa555d94b netif_carrier_on +EXPORT_SYMBOL vmlinux 0xa57003b0 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xa5a15777 find_vma +EXPORT_SYMBOL vmlinux 0xa5cebfed dev_base_lock +EXPORT_SYMBOL vmlinux 0xa5faba0d mempool_alloc +EXPORT_SYMBOL vmlinux 0xa60226fc kernel_connect +EXPORT_SYMBOL vmlinux 0xa60f6a3b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa626be04 swiotlb_unmap_single +EXPORT_SYMBOL vmlinux 0xa671cda9 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xa6785873 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6c0af05 dev_get_flags +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa71861ce remote_llseek +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa79b364b pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7dbb349 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xa805ecfc acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0xa826e867 neigh_update +EXPORT_SYMBOL vmlinux 0xa8390eb8 subsystem_register +EXPORT_SYMBOL vmlinux 0xa847c7e1 get_write_access +EXPORT_SYMBOL vmlinux 0xa85914db pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xa874f31e f_setown +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8c6e0d3 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xa8d5b19f acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xa8ef9fb8 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9017d82 simple_prepare_write +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa92e239f get_unmapped_area +EXPORT_SYMBOL vmlinux 0xa936dacf wireless_spy_update +EXPORT_SYMBOL vmlinux 0xa954d6ec mark_info_dirty +EXPORT_SYMBOL vmlinux 0xa9a3f8a3 skb_checksum +EXPORT_SYMBOL vmlinux 0xa9aa2dd0 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xa9bc32c1 acpi_get_name +EXPORT_SYMBOL vmlinux 0xaa04f98c generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xaa0f8c76 inet_select_addr +EXPORT_SYMBOL vmlinux 0xaa20a0ae sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xaa4722ed sync_page_range +EXPORT_SYMBOL vmlinux 0xaa5a3e8d gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xaa9bafac tcp_parse_options +EXPORT_SYMBOL vmlinux 0xaa9dee7f xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xaaa0789a pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xaaa6cb79 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xaabbd94b dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xaacdb678 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xaad70aea acpi_get_object_info +EXPORT_SYMBOL vmlinux 0xaaebc2ec alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0186c6 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xab2d44d3 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab71763d blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xab875137 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xab95a674 unregister_nls +EXPORT_SYMBOL vmlinux 0xabc7d1c0 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabf73e50 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xac006fb3 __next_cpu +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b1852 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac3bff1c pskb_expand_head +EXPORT_SYMBOL vmlinux 0xac3f02ee kfree_skb +EXPORT_SYMBOL vmlinux 0xac40bd4f input_free_device +EXPORT_SYMBOL vmlinux 0xac4cb81c iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac770cff ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xac812950 sn_send_IPI_phys +EXPORT_SYMBOL vmlinux 0xacae6d43 sn_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xacb82a60 vmap +EXPORT_SYMBOL vmlinux 0xace4e418 __request_region +EXPORT_SYMBOL vmlinux 0xacf28696 simple_statfs +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad2b3ffa sock_no_mmap +EXPORT_SYMBOL vmlinux 0xad7213b6 wireless_send_event +EXPORT_SYMBOL vmlinux 0xad8eb286 ia64_pal_call_static +EXPORT_SYMBOL vmlinux 0xada66755 register_quota_format +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadeeaf66 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xae13f703 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xae1b75b4 bio_copy_user +EXPORT_SYMBOL vmlinux 0xae2b1e01 dquot_acquire +EXPORT_SYMBOL vmlinux 0xae4a1bda csum_tcpudp_nofold +EXPORT_SYMBOL vmlinux 0xae649140 _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xae8556af acpi_bus_start +EXPORT_SYMBOL vmlinux 0xaeaeefa2 file_fsync +EXPORT_SYMBOL vmlinux 0xaebf91fb mutex_unlock +EXPORT_SYMBOL vmlinux 0xaef5de76 key_put +EXPORT_SYMBOL vmlinux 0xaefe9082 simple_rename +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf6226be acpi_extract_package +EXPORT_SYMBOL vmlinux 0xaf6bbc60 machvec_setup +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xafa00a27 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xafc13e64 ia64_pal_call_stacked +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb00e3d08 ida_destroy +EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xb043f727 arp_create +EXPORT_SYMBOL vmlinux 0xb0676d30 neigh_lookup +EXPORT_SYMBOL vmlinux 0xb0a22cb4 block_write_full_page +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c1b21b wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xb0d4cbbd shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xb0d7ba1a pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f82457 init_mm +EXPORT_SYMBOL vmlinux 0xb1022a52 sn_dma_map_single +EXPORT_SYMBOL vmlinux 0xb102e2ef inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xb1094aad inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xb10c660e random32 +EXPORT_SYMBOL vmlinux 0xb10f2393 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb123262a ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xb1359804 tty_set_operations +EXPORT_SYMBOL vmlinux 0xb1517a44 unlock_buffer +EXPORT_SYMBOL vmlinux 0xb1676fa1 __dst_free +EXPORT_SYMBOL vmlinux 0xb188aaae tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb19458f5 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d29333 proc_root_fs +EXPORT_SYMBOL vmlinux 0xb1d3e15d inode_get_bytes +EXPORT_SYMBOL vmlinux 0xb1f32d3d ia64_max_iommu_merge_mask +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb21fd99e acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xb2345f67 pci_get_device +EXPORT_SYMBOL vmlinux 0xb2716fe5 pci_find_device +EXPORT_SYMBOL vmlinux 0xb2a9020b pci_enable_wake +EXPORT_SYMBOL vmlinux 0xb2dc23ce nf_log_packet +EXPORT_SYMBOL vmlinux 0xb2e45146 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xb30dd505 sba_map_sg +EXPORT_SYMBOL vmlinux 0xb3818137 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xb3925d9f find_task_by_pid +EXPORT_SYMBOL vmlinux 0xb395916b inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xb39b5cb4 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3d6652c unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0xb3e25133 bio_hw_segments +EXPORT_SYMBOL vmlinux 0xb3f9a992 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xb3ffb623 netif_rx +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4284731 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xb4477e2e key_unlink +EXPORT_SYMBOL vmlinux 0xb488ab21 tty_mutex +EXPORT_SYMBOL vmlinux 0xb4964308 gen_pool_create +EXPORT_SYMBOL vmlinux 0xb4afdb46 allocate_resource +EXPORT_SYMBOL vmlinux 0xb4c169af __mutex_init +EXPORT_SYMBOL vmlinux 0xb4c2afa5 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xb4d51ca6 netdev_features_change +EXPORT_SYMBOL vmlinux 0xb524be62 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54ef893 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xb56fff11 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xb570222f pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xb580da5e uart_resume_port +EXPORT_SYMBOL vmlinux 0xb59d7692 vc_lock_resize +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5cd2070 put_disk +EXPORT_SYMBOL vmlinux 0xb5d0a720 hwsw_map_sg +EXPORT_SYMBOL vmlinux 0xb5e48e92 __kfifo_get +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb62f3c30 inet_frags_init +EXPORT_SYMBOL vmlinux 0xb655770f rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xb66445a3 finish_wait +EXPORT_SYMBOL vmlinux 0xb6665533 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6ac7867 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6e7b967 touch_atime +EXPORT_SYMBOL vmlinux 0xb6e7f408 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb769dad5 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xb779986d kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xb786c4e9 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xb7980e3f block_truncate_page +EXPORT_SYMBOL vmlinux 0xb7b4bbcf make_EII_client +EXPORT_SYMBOL vmlinux 0xb7c4f38f up_write +EXPORT_SYMBOL vmlinux 0xb8205bb3 sock_init_data +EXPORT_SYMBOL vmlinux 0xb82632e8 sn_dma_map_sg +EXPORT_SYMBOL vmlinux 0xb85fcd98 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xb86221f4 unw_access_br +EXPORT_SYMBOL vmlinux 0xb86875b6 skb_pad +EXPORT_SYMBOL vmlinux 0xb8936b3f acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xb8938895 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xb8c355f4 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb8cc8830 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xb8f77155 audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xb91a7f6c unw_unwind +EXPORT_SYMBOL vmlinux 0xb9446042 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xb989b675 neigh_create +EXPORT_SYMBOL vmlinux 0xb99025de tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xb9c7e13d read_cache_page +EXPORT_SYMBOL vmlinux 0xba126843 register_netdevice +EXPORT_SYMBOL vmlinux 0xba2364ce serio_reconnect +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4f95fe dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaa6aef6 acpi_root_dir +EXPORT_SYMBOL vmlinux 0xbab06d1f udp_poll +EXPORT_SYMBOL vmlinux 0xbaecaa80 pci_save_state +EXPORT_SYMBOL vmlinux 0xbb02ead7 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbf7f436 brioctl_set +EXPORT_SYMBOL vmlinux 0xbbfbb505 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xbbfcb999 vfs_unlink +EXPORT_SYMBOL vmlinux 0xbc7db589 sock_no_accept +EXPORT_SYMBOL vmlinux 0xbcda1123 pcim_iomap +EXPORT_SYMBOL vmlinux 0xbceff87a pnp_device_detach +EXPORT_SYMBOL vmlinux 0xbd0712b5 kref_get +EXPORT_SYMBOL vmlinux 0xbd10112c tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xbd163c66 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xbd3b507f tcp_make_synack +EXPORT_SYMBOL vmlinux 0xbd577303 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xbd621ca2 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xbd8c3bf3 skb_append +EXPORT_SYMBOL vmlinux 0xbdb264d5 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xbdcde68d __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xbde0e069 put_tty_driver +EXPORT_SYMBOL vmlinux 0xbde7c789 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xbe2fdf43 get_io_context +EXPORT_SYMBOL vmlinux 0xbe3213a0 d_find_alias +EXPORT_SYMBOL vmlinux 0xbe7c0a6c module_refcount +EXPORT_SYMBOL vmlinux 0xbededbe9 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf210796 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xbf28cf25 inet_ioctl +EXPORT_SYMBOL vmlinux 0xbf3193ec acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xbf32780e ps2_command +EXPORT_SYMBOL vmlinux 0xbf418386 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xbf535873 tcp_prot +EXPORT_SYMBOL vmlinux 0xbf793521 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xbfa2581e netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xbfb08627 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xbfb30d77 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd3ef90 acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xbffe58eb adjust_resource +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc013c0be filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xc03c6f5f km_waitq +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0567870 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aadc0a freeze_bdev +EXPORT_SYMBOL vmlinux 0xc0abf6ff tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xc11fd529 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xc14c221a genl_sock +EXPORT_SYMBOL vmlinux 0xc1642570 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xc175da7c pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xc18b34aa blk_unplug +EXPORT_SYMBOL vmlinux 0xc1cebfd8 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0xc1e30651 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xc214913c noop_qdisc +EXPORT_SYMBOL vmlinux 0xc23ef1f6 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xc2425ef3 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xc24b2c95 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc29d5343 sn_flush_all_caches +EXPORT_SYMBOL vmlinux 0xc2a375fb textsearch_register +EXPORT_SYMBOL vmlinux 0xc2d38624 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2fa3e36 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xc31191b3 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xc38f4dfe end_dequeued_request +EXPORT_SYMBOL vmlinux 0xc3b26dbe generic_getxattr +EXPORT_SYMBOL vmlinux 0xc3bd892e _write_lock_bh +EXPORT_SYMBOL vmlinux 0xc3c7fa9d udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xc3d4d5b0 d_splice_alias +EXPORT_SYMBOL vmlinux 0xc4193ff0 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xc433adc5 acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xc469bdc1 __down +EXPORT_SYMBOL vmlinux 0xc47ef53b ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49d88d8 tcp_poll +EXPORT_SYMBOL vmlinux 0xc4b3dc0b skb_checksum_help +EXPORT_SYMBOL vmlinux 0xc4d53cf6 __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xc51f11d3 unlock_super +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xc5ccde10 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xc5e8075e find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0xc5e8feb6 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xc605dc65 posix_lock_file +EXPORT_SYMBOL vmlinux 0xc624fe80 sock_create +EXPORT_SYMBOL vmlinux 0xc639b992 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xc644f0f9 seq_release +EXPORT_SYMBOL vmlinux 0xc6becee7 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xc708f1fe ec_write +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc76ea676 inet_frag_find +EXPORT_SYMBOL vmlinux 0xc783b7cf xor_ia64_5 +EXPORT_SYMBOL vmlinux 0xc7a2a1e6 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7aab69c skb_find_text +EXPORT_SYMBOL vmlinux 0xc7ccf6c4 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xc7e6cb4f neigh_table_init +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc7f7d631 try_to_release_page +EXPORT_SYMBOL vmlinux 0xc8642f2b vfs_statfs +EXPORT_SYMBOL vmlinux 0xc86fa40c prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc8868fcb flush_old_exec +EXPORT_SYMBOL vmlinux 0xc8a1694f sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc8e43342 vfs_readv +EXPORT_SYMBOL vmlinux 0xc9015533 acpi_get_id +EXPORT_SYMBOL vmlinux 0xc912b9aa block_read_full_page +EXPORT_SYMBOL vmlinux 0xc9266a5a ia64_load_scratch_fpregs +EXPORT_SYMBOL vmlinux 0xc939d7b0 per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9ac8422 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xc9b3bfa9 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xc9e41f06 input_set_capability +EXPORT_SYMBOL vmlinux 0xc9e90a5b compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xc9eb6da3 llc_sap_close +EXPORT_SYMBOL vmlinux 0xc9ec301b skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xc9f34c1d acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0xc9fb2431 thaw_bdev +EXPORT_SYMBOL vmlinux 0xc9fd1cff generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xca065bac kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xca128660 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xca4495bc ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xca49a417 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xca7d99af pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xca9694b5 _read_unlock +EXPORT_SYMBOL vmlinux 0xcaadcf83 pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xcaedc163 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xcaee0b19 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xcaf11ca1 seq_putc +EXPORT_SYMBOL vmlinux 0xcaff62bf iomem_resource +EXPORT_SYMBOL vmlinux 0xcb0b4df5 pnp_resource_change +EXPORT_SYMBOL vmlinux 0xcb0ed65e block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb2927ed __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xcb32ae05 sn_sharing_domain_size +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6aba4a neigh_seq_start +EXPORT_SYMBOL vmlinux 0xcb6af99c truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcbe9d892 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3bd441 kernel_read +EXPORT_SYMBOL vmlinux 0xcc3ff596 hwsw_free_coherent +EXPORT_SYMBOL vmlinux 0xcc4ea8f1 mpage_writepages +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5166dc submit_bio +EXPORT_SYMBOL vmlinux 0xcc6dc4dd call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0xcc702bb8 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcd473329 memset_io +EXPORT_SYMBOL vmlinux 0xcd5d5e2f d_genocide +EXPORT_SYMBOL vmlinux 0xcd75c5e7 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xcd8ce890 acpi_format_exception +EXPORT_SYMBOL vmlinux 0xcda37d84 pci_find_bus +EXPORT_SYMBOL vmlinux 0xcda5cb0e efi +EXPORT_SYMBOL vmlinux 0xcdb8eef3 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xcdcbcee9 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xcdd56517 fsync_bdev +EXPORT_SYMBOL vmlinux 0xcdebff47 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xce01ac3a pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xce0df54b nobh_write_begin +EXPORT_SYMBOL vmlinux 0xce259865 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xce2f46a9 vfs_readlink +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce4ac3f0 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xce58e87e blkdev_put +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce99c1b3 pci_disable_device +EXPORT_SYMBOL vmlinux 0xceb40109 dev_add_pack +EXPORT_SYMBOL vmlinux 0xcecfc54c dquot_drop +EXPORT_SYMBOL vmlinux 0xcedb99d3 subsystem_unregister +EXPORT_SYMBOL vmlinux 0xcedd7dc8 close_bdev_excl +EXPORT_SYMBOL vmlinux 0xcef122f7 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xcef1a3e5 fb_match_mode +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf150920 con_is_bound +EXPORT_SYMBOL vmlinux 0xcf1f4449 seq_release_private +EXPORT_SYMBOL vmlinux 0xcf4da863 sync_blockdev +EXPORT_SYMBOL vmlinux 0xcf4ddd73 sk_wait_data +EXPORT_SYMBOL vmlinux 0xcf65e90d __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xcf8c8170 send_sig +EXPORT_SYMBOL vmlinux 0xcf9e4b93 per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xcfac439d get_sb_bdev +EXPORT_SYMBOL vmlinux 0xcfba8e75 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xcfc5a7e9 ip_fragment +EXPORT_SYMBOL vmlinux 0xcfc631fe ps2_drain +EXPORT_SYMBOL vmlinux 0xcfd8f1b1 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xcfd9f705 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xcfeb7c1c netif_device_detach +EXPORT_SYMBOL vmlinux 0xcfee5997 end_request +EXPORT_SYMBOL vmlinux 0xcff89dd4 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xcfff88d3 down_write +EXPORT_SYMBOL vmlinux 0xd00fbda4 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xd01445d6 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01d2785 netpoll_poll +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd04e937b scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd061e0f5 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xd075d05b elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xd08d456c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xd09c6374 kset_register +EXPORT_SYMBOL vmlinux 0xd0e7663c idr_remove +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd166c042 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xd16b0c4b skb_queue_head +EXPORT_SYMBOL vmlinux 0xd17a43ee simple_transaction_get +EXPORT_SYMBOL vmlinux 0xd18b8945 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xd18f0082 security_inode_permission +EXPORT_SYMBOL vmlinux 0xd194ddf9 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xd1aebf8a kref_init +EXPORT_SYMBOL vmlinux 0xd1d62165 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xd1e940fb inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xd224a5db call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xd2378b2c bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xd23c3f86 kref_put +EXPORT_SYMBOL vmlinux 0xd24732cd compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xd253d25d sn_dma_free_coherent +EXPORT_SYMBOL vmlinux 0xd25b9ecb pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd28147e2 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2d0fc7c generic_commit_write +EXPORT_SYMBOL vmlinux 0xd2df4d42 bd_set_size +EXPORT_SYMBOL vmlinux 0xd316359e sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xd356c816 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xd3572a8d sock_sendmsg +EXPORT_SYMBOL vmlinux 0xd3a77797 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xd3e8ed71 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xd44b4fbe sysctl_string +EXPORT_SYMBOL vmlinux 0xd48c3f3e file_update_time +EXPORT_SYMBOL vmlinux 0xd4ad5d38 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xd55e3da8 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xd57450bc up_read +EXPORT_SYMBOL vmlinux 0xd59b80c2 pci_bus_type +EXPORT_SYMBOL vmlinux 0xd59d8102 acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6365036 init_buffer +EXPORT_SYMBOL vmlinux 0xd6395729 tc_classify +EXPORT_SYMBOL vmlinux 0xd643239a acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xd64d24a3 ia64_sal_oemcall_nolock +EXPORT_SYMBOL vmlinux 0xd67440e7 ia64_sal_oemcall_reentrant +EXPORT_SYMBOL vmlinux 0xd6d5ba3a simple_write_begin +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f9a014 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xd77e6305 nf_log_register +EXPORT_SYMBOL vmlinux 0xd7907b0f sn_system_size +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7c767b8 fget +EXPORT_SYMBOL vmlinux 0xd7d32f35 sock_no_poll +EXPORT_SYMBOL vmlinux 0xd7ec94f9 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xd7f59392 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xd807fcc3 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xd81a5de0 do_munmap +EXPORT_SYMBOL vmlinux 0xd870b8d4 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8bfa41e flush_signals +EXPORT_SYMBOL vmlinux 0xd8dc4cbe acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8e4e22d vfs_fstat +EXPORT_SYMBOL vmlinux 0xd93cb8be sn_bus_free_sysdata +EXPORT_SYMBOL vmlinux 0xd9473e31 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xd9534dec ia64_mv +EXPORT_SYMBOL vmlinux 0xd96b91b6 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd991a5c2 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xd993ab20 misc_register +EXPORT_SYMBOL vmlinux 0xd9b940cc __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xd9ba241c register_binfmt +EXPORT_SYMBOL vmlinux 0xd9d1a4d9 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xd9d57abd input_close_device +EXPORT_SYMBOL vmlinux 0xd9ecbff9 _spin_lock_bh +EXPORT_SYMBOL vmlinux 0xda14a330 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda57b910 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xda57fda9 request_resource +EXPORT_SYMBOL vmlinux 0xda5a4fbf pci_request_region +EXPORT_SYMBOL vmlinux 0xdab523a5 dget_locked +EXPORT_SYMBOL vmlinux 0xdaba43fd cdev_del +EXPORT_SYMBOL vmlinux 0xdadbf670 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xdae3bf5f kmalloc_caches +EXPORT_SYMBOL vmlinux 0xdaf1402c kernel_bind +EXPORT_SYMBOL vmlinux 0xdb22ec6b sn_prom_feature_available +EXPORT_SYMBOL vmlinux 0xdb23e6ea unregister_con_driver +EXPORT_SYMBOL vmlinux 0xdb2ec783 blk_complete_request +EXPORT_SYMBOL vmlinux 0xdb2fcb2f pci_reenable_device +EXPORT_SYMBOL vmlinux 0xdb34ec7e generic_unplug_device +EXPORT_SYMBOL vmlinux 0xdb4aa75f lease_get_mtime +EXPORT_SYMBOL vmlinux 0xdb50ac20 nf_afinfo +EXPORT_SYMBOL vmlinux 0xdb5c8104 complete_all +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc096b60 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc40dea3 bio_add_page +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc477230 sn_io_addr +EXPORT_SYMBOL vmlinux 0xdc5aa9ac xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xdc623a8a blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xdc667b19 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xdc987114 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcc6e32a idr_destroy +EXPORT_SYMBOL vmlinux 0xdcc77941 d_alloc_anon +EXPORT_SYMBOL vmlinux 0xdce37daf __lookup_hash +EXPORT_SYMBOL vmlinux 0xdcf313e9 deactivate_super +EXPORT_SYMBOL vmlinux 0xdd05109b mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xdd195bca xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xdd1bc39a cx_device_unregister +EXPORT_SYMBOL vmlinux 0xdd4d8585 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xdd76feda neigh_compat_output +EXPORT_SYMBOL vmlinux 0xdd7906b9 ia64_spinlock_contention +EXPORT_SYMBOL vmlinux 0xddad7952 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xddbb788e posix_acl_permission +EXPORT_SYMBOL vmlinux 0xddcddf56 fd_install +EXPORT_SYMBOL vmlinux 0xddd35a97 blk_get_queue +EXPORT_SYMBOL vmlinux 0xddfa6b85 kill_pgrp +EXPORT_SYMBOL vmlinux 0xde2dd330 d_namespace_path +EXPORT_SYMBOL vmlinux 0xde558e02 ia64_mlogbuf_dump +EXPORT_SYMBOL vmlinux 0xde569e2a init_timer +EXPORT_SYMBOL vmlinux 0xde7367d9 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xde750fc8 page_readlink +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde76e7bc sys_close +EXPORT_SYMBOL vmlinux 0xde89e70d acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde96c72b _write_trylock +EXPORT_SYMBOL vmlinux 0xdea3e474 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xdec58650 elv_next_request +EXPORT_SYMBOL vmlinux 0xdeeac280 acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0xdef29882 vprintk +EXPORT_SYMBOL vmlinux 0xdf125c1f swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xdf1d2abf netif_rx_ni +EXPORT_SYMBOL vmlinux 0xdf2fb3ba kfifo_alloc +EXPORT_SYMBOL vmlinux 0xdf3762de tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xdf3c5227 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6710b7 dev_mc_delete +EXPORT_SYMBOL vmlinux 0xdf86c280 sba_unmap_sg +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfd21ecf test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xdfd4a0ac inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xdfddd166 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes +EXPORT_SYMBOL vmlinux 0xe0188681 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xe02aae93 get_fs_type +EXPORT_SYMBOL vmlinux 0xe0676269 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xe089130c flow_cache_lookup +EXPORT_SYMBOL vmlinux 0xe0972edc register_key_type +EXPORT_SYMBOL vmlinux 0xe0a026d6 init_file +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0cae486 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1190c8d pci_assign_resource +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1746425 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18c4880 vfs_lstat +EXPORT_SYMBOL vmlinux 0xe1987d7f sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xe1a4c5ca framebuffer_release +EXPORT_SYMBOL vmlinux 0xe1aae688 __check_region +EXPORT_SYMBOL vmlinux 0xe1be2d85 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xe1bf97c0 dq_data_lock +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1f85fdf __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xe210bb90 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xe2117d9c qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xe21a8ffe __napi_schedule +EXPORT_SYMBOL vmlinux 0xe2323d80 __init_rwsem +EXPORT_SYMBOL vmlinux 0xe233c56d unregister_quota_format +EXPORT_SYMBOL vmlinux 0xe23e718f acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xe2ba974f nla_validate +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2ff0998 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xe3337f11 __up +EXPORT_SYMBOL vmlinux 0xe348a2a9 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe37fc27f balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xe3d3394f per_cpu__local_per_cpu_offset +EXPORT_SYMBOL vmlinux 0xe3d4cede unw_unwind_to_user +EXPORT_SYMBOL vmlinux 0xe3d8bfe9 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xe3e133ae sock_no_connect +EXPORT_SYMBOL vmlinux 0xe40cb44e generic_delete_inode +EXPORT_SYMBOL vmlinux 0xe419bc99 iowrite32be +EXPORT_SYMBOL vmlinux 0xe41d320d sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xe43d6207 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xe453c4f2 simple_write_end +EXPORT_SYMBOL vmlinux 0xe473b4d9 unw_access_fr +EXPORT_SYMBOL vmlinux 0xe47fe4e2 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe481faf8 get_user_pages +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4abfc86 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xe4d80bf4 acpi_enable +EXPORT_SYMBOL vmlinux 0xe4fb6133 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xe51cd174 qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe526f136 __copy_user +EXPORT_SYMBOL vmlinux 0xe52d755f ia64_cpu_to_sapicid +EXPORT_SYMBOL vmlinux 0xe5382509 cont_write_begin +EXPORT_SYMBOL vmlinux 0xe5690ee3 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a15f26 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xe5b8f8dc acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0xe5bc74d0 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e943aa sk_run_filter +EXPORT_SYMBOL vmlinux 0xe612633f gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xe63ce738 _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xe6452492 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe6663eb6 proc_mkdir +EXPORT_SYMBOL vmlinux 0xe66eab99 skb_insert +EXPORT_SYMBOL vmlinux 0xe676e51e vc_resize +EXPORT_SYMBOL vmlinux 0xe6d8a1cd tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe717db58 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe75e6b1f skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xe75f0cdb ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xe76c8191 poll_freewait +EXPORT_SYMBOL vmlinux 0xe78dd362 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe78ed3cc pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xe7c1a61c find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0xe7ca4389 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7dbe729 d_delete +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7f7140d idr_find +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8413b5c acpi_load_tables +EXPORT_SYMBOL vmlinux 0xe8679178 __divdi3 +EXPORT_SYMBOL vmlinux 0xe873795a bio_endio +EXPORT_SYMBOL vmlinux 0xe89a1f73 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0xe8fba124 tcp_close +EXPORT_SYMBOL vmlinux 0xe8fbda64 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xe9026bb1 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91e7938 sk_alloc +EXPORT_SYMBOL vmlinux 0xe935f4fa serio_interrupt +EXPORT_SYMBOL vmlinux 0xe94b02cb acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0xe96f91c4 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe99acec4 __inet6_hash +EXPORT_SYMBOL vmlinux 0xe9c6aef4 down_read +EXPORT_SYMBOL vmlinux 0xe9d92ad1 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xea0084e1 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea135f67 d_alloc_root +EXPORT_SYMBOL vmlinux 0xea161f3c security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xea44727e ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xea68493b iput +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xeaa9b9c8 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xead7e69a elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xeaf1fa82 inet_put_port +EXPORT_SYMBOL vmlinux 0xeb00e716 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xeb16163b io_space +EXPORT_SYMBOL vmlinux 0xeb18424b sn_dma_unmap_sg +EXPORT_SYMBOL vmlinux 0xeb1e57c6 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb3f7da3 __nla_put +EXPORT_SYMBOL vmlinux 0xeb7f6046 acpi_get_devices +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebd6fe17 genl_register_ops +EXPORT_SYMBOL vmlinux 0xebd7b425 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec22f9ff dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xecaebfe1 per_cpu____sn_nodepda +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xecc9abab pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xecfdb8cb release_resource +EXPORT_SYMBOL vmlinux 0xed262ff2 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xed289eaf tiocx_bus_type +EXPORT_SYMBOL vmlinux 0xed49c8e2 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xed61f6b3 security_release_secctx +EXPORT_SYMBOL vmlinux 0xed63a045 unregister_console +EXPORT_SYMBOL vmlinux 0xed95c91a do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xeda88a82 mempool_create_node +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc6d999 skb_make_writable +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedec053c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xedff4be5 acpi_load_table +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee477aa1 block_write_begin +EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode +EXPORT_SYMBOL vmlinux 0xee60cb92 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xee700a73 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee886436 generic_make_request +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeeb8a24c xor_ia64_2 +EXPORT_SYMBOL vmlinux 0xeec21ba7 simple_fill_super +EXPORT_SYMBOL vmlinux 0xeed73f58 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xeefce4fd proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xef667374 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xef8d99e5 generic_permission +EXPORT_SYMBOL vmlinux 0xef8efb4f input_flush_device +EXPORT_SYMBOL vmlinux 0xef94ab7c sync_inode +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefad485b alloc_fcdev +EXPORT_SYMBOL vmlinux 0xefb1d9ae proto_register +EXPORT_SYMBOL vmlinux 0xefbbc715 mutex_lock +EXPORT_SYMBOL vmlinux 0xefc4ae75 netif_device_attach +EXPORT_SYMBOL vmlinux 0xefe6de9a audit_log_start +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf050158a tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0cb7234 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xf0d3520d bio_put +EXPORT_SYMBOL vmlinux 0xf0deb897 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xf0ea3e52 copy_io_context +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1394a2a __strlen_user +EXPORT_SYMBOL vmlinux 0xf13ad1fd acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xf15699c3 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1979c18 skb_over_panic +EXPORT_SYMBOL vmlinux 0xf19efc66 seq_printf +EXPORT_SYMBOL vmlinux 0xf1a1f947 sock_i_uid +EXPORT_SYMBOL vmlinux 0xf1b74b92 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xf1e4166e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f10189 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xf1f90575 dput +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf26e642f hwsw_unmap_single +EXPORT_SYMBOL vmlinux 0xf27e6360 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29bb1b3 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2b2da57 find_inode_number +EXPORT_SYMBOL vmlinux 0xf2f34753 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xf3025b65 pnp_device_attach +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32838e4 filp_open +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf3447fd8 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf37728a9 sleep_on +EXPORT_SYMBOL vmlinux 0xf39afd40 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3dd73ea pfm_register_buffer_fmt +EXPORT_SYMBOL vmlinux 0xf3e76604 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf4168f12 sba_unmap_single +EXPORT_SYMBOL vmlinux 0xf4284a29 inet_listen +EXPORT_SYMBOL vmlinux 0xf440f38f __page_symlink +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449b47 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xf44d53da security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xf44fd0e2 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xf45b976b cpu_online_map +EXPORT_SYMBOL vmlinux 0xf461f3fc input_unregister_handle +EXPORT_SYMBOL vmlinux 0xf4988999 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xf4cb7904 sock_i_ino +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf4f672ad __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0xf50f3673 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf5302407 generic_setlease +EXPORT_SYMBOL vmlinux 0xf55aa731 d_invalidate +EXPORT_SYMBOL vmlinux 0xf5887b1e tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xf58d6001 zero_page_memmap_ptr +EXPORT_SYMBOL vmlinux 0xf6023342 bdi_destroy +EXPORT_SYMBOL vmlinux 0xf66ba9f5 path_release +EXPORT_SYMBOL vmlinux 0xf6842a1d tty_register_driver +EXPORT_SYMBOL vmlinux 0xf684e4b6 register_snap_client +EXPORT_SYMBOL vmlinux 0xf695defb kthread_create +EXPORT_SYMBOL vmlinux 0xf69c1c82 __grab_cache_page +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d84e18 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xf6eb331e get_empty_filp +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6fabf4f __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xf6fbeb23 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xf75c883e sn_dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78edd66 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xf7986a3a srandom32 +EXPORT_SYMBOL vmlinux 0xf79ca3bb acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0xf7aec35e inode_change_ok +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf814b4f5 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf834001a rtnl_create_link +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf8a0a1ff posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0xf8ae7e93 sock_no_getname +EXPORT_SYMBOL vmlinux 0xf8b92499 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xf8d87f8b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xf8ea1693 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xf8f7f2ce iunique +EXPORT_SYMBOL vmlinux 0xf954fb78 generic_removexattr +EXPORT_SYMBOL vmlinux 0xf970936d udp_ioctl +EXPORT_SYMBOL vmlinux 0xf97c7ca0 __alloc_skb +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c58281 __tasklet_schedule +EXPORT_SYMBOL vmlinux 0xfa0bac3d pfm_mod_write_pmcs +EXPORT_SYMBOL vmlinux 0xfa23279c pci_dev_get +EXPORT_SYMBOL vmlinux 0xfa2339ae __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xfa2421e9 sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xfa70d10f copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xfaae85bc __wake_up +EXPORT_SYMBOL vmlinux 0xfaf229ea blk_start_queue +EXPORT_SYMBOL vmlinux 0xfafcd25b vmtruncate +EXPORT_SYMBOL vmlinux 0xfb0c02d5 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb582d85 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb8baf19 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xfbbca7dc ia64_pal_call_phys_stacked +EXPORT_SYMBOL vmlinux 0xfbd62b02 unregister_netdev +EXPORT_SYMBOL vmlinux 0xfbe2b783 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc2501cc _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4152fc ec_read +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcd35030 pci_release_regions +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfce23187 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf46e4c d_prune_aliases +EXPORT_SYMBOL vmlinux 0xfd19eaeb memcpy_fromio +EXPORT_SYMBOL vmlinux 0xfd1b138a sysctl_data +EXPORT_SYMBOL vmlinux 0xfd5a33bb acpi_get_register +EXPORT_SYMBOL vmlinux 0xfd65bba4 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xfd79eb7a sba_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xfd8e3273 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc75a84 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfdcc8a0e fb_find_best_display +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5d85ff d_move +EXPORT_SYMBOL vmlinux 0xfe73c2b5 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe81295c simple_transaction_read +EXPORT_SYMBOL vmlinux 0xfe8e044e udp_proc_register +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xff0cd337 __f_setown +EXPORT_SYMBOL vmlinux 0xff1e5b24 simple_getattr +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7b4644 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xff85304a blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xff8a365b pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xffa0d574 elv_rb_find +EXPORT_SYMBOL vmlinux 0xffd2f097 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL crypto/ablkcipher 0xc39e7435 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x4cda90ae crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x8e675ec6 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9cc58622 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfdad2484 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x346f5469 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x473a3c7e async_xor +EXPORT_SYMBOL_GPL crypto/blkcipher 0x20a4bd62 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0x70dd2c49 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x99fb1235 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0xb5c0a01e blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0xe4454e17 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/twofish_common 0x980d1555 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/bay 0x4f837893 eject_removable_drive +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x4ab479a6 register_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL drivers/ata/libata 0x04e07f1f ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x064ba368 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0d45f968 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0dca7e43 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0dd6dd2a ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0fada8ab ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x15479687 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x163e96ae ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x18221219 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a9a8414 ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1b513341 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1c4949fe sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d6ec5a9 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1e0234b0 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1e49f408 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1ede2e3e ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x24579651 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x260fc01c ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28f00ab4 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x29d41db8 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x309567f6 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3166977f ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x33ce8b7f ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x33e03c95 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x35c776d0 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x36d07dfe ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x38099d69 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b0a382e ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3bed7d94 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3f2b41e5 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4200035f ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x42bee796 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45084403 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45fe019f ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x48698302 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4e173b53 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x521d24f6 ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x55a6e481 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x565deaba ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x568a8dae ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5b968018 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5e812368 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x64453c28 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x65368173 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x686c4939 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6bc3a9c7 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6c946a91 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d5e889b ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6dc0c20c sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x718e22a5 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x71db9327 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7365d120 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73f0f547 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x799ed310 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e1cec18 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f28b52f ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x801a218d ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x80c7b1ce class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8257f9a3 ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x83efff88 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x84337507 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x860cace9 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8741dd2e ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x876bf7bb ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x87c262ea ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8946005a ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b1786a2 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e0301f5 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f45ac5f ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x905d342d ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x90a77d56 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x921f0c3d sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x937beda4 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x95ddc226 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x96951657 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97b9815a ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97fe76b9 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9b2aa785 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9bf67800 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9c2646b7 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e2f99e1 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e818666 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f590305 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa0fb5e7f ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa21b297a sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa25eca91 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2928534 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2c24920 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa45f89dc ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa474d520 ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9f02c30 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaeac6926 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xafddd545 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb0878ec3 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb1db1202 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb4a44ada sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb8ca118c ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb912eb93 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb962578b sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xba124b26 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbcf4bd4d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe73dd4d ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3483c88 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4b8bf05 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4be3a7d ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc547b964 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc63d7699 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xccd86806 ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd0f9d93f ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd11b1e00 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd25f9a2e ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3b1369e ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd83e2e9e ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdc803dbf ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdead158b ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe2fc25b1 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe3bd30dc ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe76712d3 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeb079b91 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0xee64669b ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf1550183 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf37baf4b ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3ee07b1 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf5b4d2e8 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf75a8174 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa8a804d ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfadfcdf1 ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb731a7f ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfccbea95 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xf7fe104d sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x1e804fd8 agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x8dca833a agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x13915864 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x18cbb2b0 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1a19fcdd tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1b081d6f tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x260b14ff tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x42230a19 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x654bc9b8 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x75c696b8 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x934e59e2 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa007848c tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa0bd6454 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb7baf3f9 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb8495810 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc1a32beb tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc5bcd123 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcf48e7e7 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd47025fa tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe2be3361 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe770a77c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf4d72939 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf850c03e tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x630e085f tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x7df70490 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/connector/cn 0x969b8068 cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x47b468f4 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x57544ccd cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xa15036e0 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xd3c7ff5e cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL drivers/hid/hid 0x107e60d9 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2f99d076 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3376896d hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5adaa7f3 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x78f29608 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8fe21300 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba755f86 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc65fa238 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcca75ef8 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe7100523 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xefe24fbf hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf9467e09 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfba83b4b hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xdaff2751 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x474fe500 i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x4ce8b78e i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xa616c322 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xeb354e4a i2c_new_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x004ab72c ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x03de8ec1 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x09e654b4 ide_acpi_get_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0c01f2dc ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1808d534 ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1f8b2098 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2f4cc3ef ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x310a7d0b ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3510d82b ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3685659e ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x388f69d8 ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x39dde760 ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3d640f3e ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4f165aea __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x503bcde2 ide_acpi_push_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5eebdca0 ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5fd6511b __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x737ba33a ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7d62374a ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x82aa0988 ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x89ba203f ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8c87978e ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x92b50dd5 ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa4f99acd ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xac906c9c ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xad28a314 ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xaee5beea ide_acpi_exec_tfs +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbaa50315 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbbbab144 ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc3679690 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcaf89770 ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe2222432 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe3d1eca3 ide_acpi_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe8461691 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf5cf8a6e ide_find_port +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x2560e3c3 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x47f19dab hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x48e008fa input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x46645e7c led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x62041a3b led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x92679d97 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xf75b0c9f led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x46f81ad4 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x56a31d81 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x681bc8f3 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x9bf26e53 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x9c39d1ca dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xa5dfc720 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xc067aa3b dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xfd7b4aba dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x78c85ef9 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7a800322 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x93fdb485 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xafdc5d99 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe3b5f498 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xeb4f1d35 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x1681b088 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x36839d3d sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x530b527d md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xae964c8e md_allow_write +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x078f621b ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x136cc044 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x20102c8a ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x27feb0cd ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x29283e40 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2fe18ec0 ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x360ba019 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3935a7d3 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x40350979 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43eda01a ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x44c715df ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45ae7384 ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x48b53439 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4906453d ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4de265fc ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x58719ab7 ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5e6fea37 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x61a9042e ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6896a5f6 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6a7cd4bf ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b6af17a ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7646d342 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7dce94df ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x828ace4d ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x877fb5d5 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x88ce9df6 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x953031a2 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x95d28726 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x9b5552c6 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x9d01d36f ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xa1667eee ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xa3dc60f8 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xa8f0fa39 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb4ac75d0 ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb688ba50 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xca5b997d ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd2a4d8d4 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd489fc1b ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfb06965 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfee1185 ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xe8e8790c ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xe9f08798 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xea2ad56d ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xea83ba6f ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf7dd8c1d ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x132111fb saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3416b01f saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4afa6813 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x553af5b8 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x569fe133 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7445af7a saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x90a3aacb saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9cc3dbb3 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb64ae187 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd6e30720 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdd31f932 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x16fece79 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2606ba04 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x763d2635 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xa8c39696 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xbcdc4a2a saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf13d512b saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf82bfb48 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x25df0c8b ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2c2cf36e ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x8374f815 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x986fd363 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc2c50849 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd052c114 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd99a60a4 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x7900a2a5 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x01391a6a get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xd492449c get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0xdf7fba70 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb58034a2 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x149878dc tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0xc3ea2231 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x14c567d6 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xc8e5e9de tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x06b7dab5 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xa473885f tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xbb123b9c simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x1ca1d57d v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x8c35bb09 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x01d833d3 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0a089339 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0f0e10f9 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x12536dee videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18a20271 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1f880951 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x207732ba videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22282f9b videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2947922e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x308923a7 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x308bfaf7 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4cc6e523 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5744dafe videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58e5f21b videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6691e771 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8ab43b27 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x93ef3829 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x942109fd videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xba16ce46 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbfdd1961 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc90d7dcf videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd424d53d videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfe9a4012 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x114032fa videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1b85636c videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x27aba0ec videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3b55e7a1 videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4d681c1e videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4ee4a263 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6fe49db1 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x77053dc5 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8e7dcc3e videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x955282fe videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac33c6f0 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xacb86ed9 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xce7f5490 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdc259e3d videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8243659c videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xc9f802e7 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xdbdfa924 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x04197ff0 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x17cae5f7 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2c4e0de4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5128f3d6 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x89184845 sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xdf56c6e2 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0xb0971564 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0xe036168c eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x52c90433 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x857fba9a cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9a7eaa02 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xdcf8bd0e cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xa95c2b2e cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x1c226756 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x9428c3ad DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xa7ac3a44 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0de798ca add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0e370cf1 mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x290eb6fc get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x372753a6 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3946efae del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x43d5945a unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4ba0629a get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4c6dbabe default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x614f6984 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7de9503d mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9755e2c6 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa827bdb2 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbc549023 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc9a7320d put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd264b16c parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf088fb7f deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x538ef6ff del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x862df602 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xab5c09bb deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf7508add add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x15ef833a nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x187c089b nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7ba238f0 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xafc559c8 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf407c386 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2f37d000 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xee9a0229 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0abefd18 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x35693265 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x551f8b5e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5f238b8c ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8a56f98f ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x91c26a84 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcef3a1d4 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd4d75e54 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdbbbe03a ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf146f6a6 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08a5feee mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e1b5b06 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e4a438b mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x13f6d69b __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x189dfbbd mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1e47d3ac mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x250d5db2 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29ea32ec mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2fe34b1f mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x30ef9852 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ccdb28a mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4386d34b mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x52dc67e7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x57fa090f mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5dcefb3f mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5f71c1c3 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65014024 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6563b783 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7346650c mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x77a74bb7 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f255b10 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8161926f mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x82f86235 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x921e73e4 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9d14ad3b mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa0de15e4 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa144ad6c mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xab805d8e mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4dd72a5 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xca6eaf56 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcd46c8a6 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd1902ba5 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdec40e39 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf3a8aff9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf4f8d7a6 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf73a58aa mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf89f3f38 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfcb624e8 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd9440f2 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfe014543 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x14aed070 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf0b66d57 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x07551110 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1490ff35 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2397520a usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x282abd2c usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29cef582 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3d1504d6 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a44bf80 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4eb25161 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5cfc50bf usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad71f5a4 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaf0d099a usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcbb0dec0 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3015b0f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf04f064f usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf9565603 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x25a70ee5 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4c62f459 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5e69087b libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x602d72a1 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x72e954f5 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x808e9192 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9a907d4c libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa3eeffea libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc02e90ed libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdc114c84 libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe0799d69 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x296cae95 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x37cc1778 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x479fa79a p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x58cc48f0 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xa8881397 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xb0523ff9 p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x013afc10 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05db8d04 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a98b6d7 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c56d2b8 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d166882 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x53b9382f rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71c63e3e rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7f818bb8 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8cdb4215 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8d8d5548 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x965ad447 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa02f3bda rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa413317b rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa8b84980 rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9419424 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba70a2df rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf54fd2b rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc30ad0dd rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdd80f416 rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf6a03732 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1785611f rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1b5853b7 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1b70db3f rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x360eadbf rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3cee3a82 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x94b14dab rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xaf125575 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdd060d12 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf1a09e68 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x16966339 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2eca16e3 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3c6d4e77 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x547a4448 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x639e81ac rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa4fb54c5 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac446500 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3abf818 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb6525ae1 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe17dd5f1 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe69d2e7e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x65ef34cc acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x9867836e acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x05b6f635 acpi_run_oshp +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x188777ae cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ad3b491 acpi_root_bridge +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1c54f218 acpi_get_hp_params_from_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x2a70bb09 cpci_hp_register_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x46b91224 pci_hp_register +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x4d8bb937 cpci_hp_register_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x791f9fde cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x7dcbb964 pci_hp_deregister +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x8e109d14 pci_hotplug_slots_subsys +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x93e1d156 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x0160a4bb rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x0423a4a8 rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x17c2c138 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x2845dc7b rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x49d9587d rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x871b5788 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x998765d2 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb16bab8d rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc4fb340f rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xc682c12b rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xce01b748 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xd3798f95 rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xdb09376e rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xf059b4b5 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0025217b iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06601f92 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c265b72 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29a02150 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3198b6a8 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34090739 class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x533b7449 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e28867d iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x624703b9 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65da4dc9 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fc6fcb5 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x836e328c iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8905bc10 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b7c85a9 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4ad0a9e iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa4d931a iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac03cf26 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae7c14a6 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2e87cb3 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc232ec49 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9e76ffd iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2083c76 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4f30bc8 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8c1695b iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf200171d iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf84c52ff __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfbb057f3 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x05b50fdf sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1b20e555 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1bf3ef99 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x459fa3de sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5d3ca66b sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x607d8837 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6375d2ed sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x694fc1c2 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7bc1dfb6 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa4b5c78a sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa5173a3e sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6ec4bc3 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xab74b0dd sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbcb681fc sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbd93bd24 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd103f21f sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd64a6870 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf50933f sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf58cb855 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfe986447 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x186b4602 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x19358e8e srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x577377dd srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x680f1bd1 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7e952ce1 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc3136c31 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x07939ff0 scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x0bca5c9a scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x0cbb83cd scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x2a0a53a6 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x33f69d33 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4c0bd66e scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4cf68a53 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x70748385 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x73350b81 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x901fa703 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x92ae3436 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9f997e5c scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xafe268b1 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xef1f158e scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x16a1c8b7 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5330862f scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x59d64166 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6837380c scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7763ee14 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x978f0a46 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xabab6d5b scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd382ef9a scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xeac3228b scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07c2409d iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0b9993c1 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x27ab1f5f iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28399176 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6e1572bb iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x789a2801 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91bd4bf6 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x960089c7 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa11c03f8 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7589d37 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb3753870 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdaa916af iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdfb55a1e iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe76c4fc0 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xebb2dcf6 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf957f702 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x36d2cc7e srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x62d6af00 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8cb53991 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xded5dd39 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xeb769839 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x562c47cb ioc3_unregister_submodule +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x5b4e8850 ioc3_gpcr_set +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x61f97e39 ioc3_disable +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x9be94736 ioc3_ack +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0xb6f88d3e ioc3_enable +EXPORT_SYMBOL_GPL drivers/sn/ioc3 0xe2b01ea4 ioc3_register_submodule +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x11593224 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x17d56913 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2a291589 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x89624683 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x969b7b40 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xab519fb5 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/uio/uio 0x6f343e29 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x97058e8e __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc5ef52d7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x09cd63fb usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0bb118d1 usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1314a261 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x249df4dd usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x297cafdd usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x30be45fe usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x39832774 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4582776b usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5134d7e0 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x525df35b usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x52fafc26 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x56a5e1fb usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5bf60f48 usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6ae95bc3 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7a30a1fd usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8a2da485 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8b0b88f5 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb98f80db usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xbd274593 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc857487d usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xca26455f usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdbde6335 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdd50f42e usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xddad9325 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf0ea2416 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1dc43307 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x22fb841f usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2658f989 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4049ab84 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x61f287a6 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x68281d00 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6d8b7022 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xab855d97 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd6c9121e usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x465f9737 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x16492fa4 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2036c86f usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x26f7405c usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2ddf0420 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x337b52e5 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ba28a53 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f59dd97 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x908d116b usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x1419facb fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xbd2ba4ed sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xda7334ad sis_free_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x45a7e8b3 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x87b87014 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa291c585 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdaa8cd64 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf69c275e w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe3e02e5e exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xf3b0fd1f exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x018ee7fc fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x33df5783 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x34fe2af9 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x4c8f4e5f fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x4d3501f6 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x4fffa64e fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x6de14293 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x778bc5f5 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x80ede42d fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x82390533 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x8a4db267 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x92c533f4 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xa1330a67 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xbac87b9c fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xd8f81bac fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xf2e85634 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xf33f71a0 fat_attach +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x0ca23f20 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x33a6dfbf gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x916b3366 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xcb2e5316 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xea691b6e gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0d1079a8 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4d0f70f6 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x696fa2fa o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x861da712 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x91adeebb o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa170a350 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaa29f952 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xac3c7700 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb35a8de5 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb6ebf62a o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfa83d357 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x32e942b5 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x47760d2c dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4dca0175 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x59614a26 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8b60e3f3 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x96473042 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0x94a43b68 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x37a1f7a7 bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x15df40e4 dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x27f93234 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x3b3a928a tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x56fe28ad dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x5ed082e4 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6b4e97e3 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x87634e95 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x96896a1b dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x9fbc0833 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xa74eb8d4 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xab25bbce dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xbab1330f dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xda055db0 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xe17f4659 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf28eb3a2 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x082f0677 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a1dfa6c ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d930dd7 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d9c5a69 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1097997f dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x14175e9b ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x14ed21c8 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1584dda2 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x186353f7 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bb92741 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1c40d00d dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x22f92bf4 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x278ed460 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a372651 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b094bb5 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e25c75d dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33e077dd dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34e2ef95 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3885cb0b ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x453f8e5a dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x457df5e9 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x484a7d98 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x562835af dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5693495a dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62112208 dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62d62741 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x651921b4 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6c62ec21 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75608d2f dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x80993155 dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88f640bd dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9cc44c96 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa074f0c6 dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0f33f59 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa142f21a dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3171d62 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xadf632ea dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb4137d54 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8793887 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbcedfca8 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbee0b418 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf3160a6 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc48f6078 dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5558702 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8996ab4 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcbd20ff6 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd68088b4 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda62dfbf dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe444b286 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4866bbe dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb2f521c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf02bcf5c ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf86ed842 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c916925 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x64d7e926 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x760af3a5 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8a3b52c0 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa2f9a911 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf1fc7589 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x040cf0c1 ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x99a0d780 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x9ed8e295 ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x1e1db954 ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x21681be3 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x243ba4b3 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x2f499f2d ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x33370d87 ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x344f3892 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x422eebb2 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4902e854 ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4f8ea2a3 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5cf3e450 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6f95a198 ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7a158985 free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7aecd50d ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8b00ffd2 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x9497ce10 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xacad0342 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb28cce26 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xbb5292ab ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc1779f9c ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xde4c7a29 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe6da630c ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x01565b7a nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0324a811 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x25b7dd03 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc9e6d5c9 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcde5d529 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x213ef12d tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2413b0b2 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4aa18767 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x962af054 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcc5ba3a9 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2ae9e343 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2be39c3d ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5b3dc23c inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x89b2183d ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x97f0afcd inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xace2ac86 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xad41fb85 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xadb2cd4f ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xaf6f08cf inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb47cfa70 ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb7ad7f97 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc1976e64 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc2a3b6d0 ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdb8fed90 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdfa49085 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x000591d6 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02d955a5 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03125731 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x079128a3 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x079748a8 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cb81902 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x113feb8b nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1189351c __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1213f502 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18726263 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19f0c3c4 nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25310ed2 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27dbadf8 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29c1a2ab nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f3c19e3 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32f29d12 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34885d2b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35a74a21 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42cabe43 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a4d0c32 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51cf4f23 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55d06ee7 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62a3fd85 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66f58704 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b679b16 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70a24e70 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73606e2c nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c1af0f2 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81a66355 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8aaa77ab nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c811cc2 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x932bc64c nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95105b28 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa478a1ae nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa72639aa nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab666ac6 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaddbbd93 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1918466 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1dd2029 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5e91db6 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbacb07de nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf70d920 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfe1fa3d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc46c2468 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcacf504f nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd912177b nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc65d369 nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdce3e46c nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf36c81f nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe107598d nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1359deb nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1c5dbab nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea1ed255 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xedc505a6 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee2d27fd nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee77ca56 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38045d4 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5a8a031 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x91309af8 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xe1d656c0 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6e95ae63 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7161c98f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7349969f set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8e10a2ea nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x921c6419 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa363a632 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xad6822d8 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbcc614c0 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd19a06f3 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xda69c020 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x363c5f4b nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1a6f9e20 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2d054dd6 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x43e4ca5f nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x478ab8a2 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xce2e507b nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf7d3462f nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbeab9ffe nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdf5faf6f nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfb1e6a78 ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xc2ad066f nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8feca386 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xce25f72f nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe7156ab7 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf2c98f29 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4b14cd46 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5499a9b4 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x54c2eb9d xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5db6fa73 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6251a5d3 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8db1c2f6 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa3836fc1 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa44e8574 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb46e8b6e xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb526624e xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3b4f431 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd6b33eeb xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdaa711b2 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdad1f4c5 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf2e7bc9a xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xb70a05d2 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xcae37ba0 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0348b909 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05d8635a xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a10a6c1 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f8a86fd xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x109c20c3 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1aa8f5dd xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2595a4d0 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x277678e0 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f2b1e40 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4069fb90 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ecfe1c5 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67415eb8 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7586cd78 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8064e4b8 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80b4ccc6 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8633461a xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f2ac286 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d52cf41 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa44081bf xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafc0898f xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb22db939 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5e4e9d4 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6af13d9 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcca3741a xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcebe81ff xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc25258f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe23dbae2 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe65c3320 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0c19dc2 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7f6abb0 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00c72e5f pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x0124b3f9 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x018b9da6 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01af4456 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x01c631a9 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x01f2ab9a macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02e763df xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x048429a5 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x04a4a7b3 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x04aa134b device_rename +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x04f79739 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0575ba8a device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0587ae70 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x05c170f6 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x06143fb4 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06de8aa6 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0x0725f20a ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07da3b22 sal_pcibr_slot_disable +EXPORT_SYMBOL_GPL vmlinux 0x083a0676 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0975b685 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x097604cc nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x097d6172 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x09a9217c led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x0a2fee11 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x0b3c3e1a pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x0b89cd11 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x0c17213b rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0c91d712 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x0c9f177c fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0cc62aba platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d3fe985 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x0d50d34e class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0d518732 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x0d5a36cc init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x0dc6c2b2 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x0e17dd0c scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x0ee973e8 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0x0eec9c8d inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x0f15d724 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0f57b5f2 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x0fc47fe2 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x0fef6e6d inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x100e18ed alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x10a734e8 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x1107a590 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x114ee9c4 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x11c23240 crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12913c99 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x12d1bc36 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x139c96a4 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13dc77ca tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x13e37faf securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x141db64a crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x143d57eb uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x14935a76 __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15e2fbed xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x1652dc4d inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x16de489f crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x17048161 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x179d6927 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x181a98fb apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x1905164b driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1a4a3d4f power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1aa8bbde get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x1b15acf9 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x1c241aac debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x1d2522c1 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e989e64 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f55b868 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe7c764 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2022272a pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x207c5edb devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x208494d0 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x208548a0 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x20b94fa4 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x21b1e83e acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x21c311af rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x2248cfbc vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x2294913f __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x240e1708 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x243f0b4b crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x2478d598 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24edb8f5 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x24efd244 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x2510c2a2 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2519a0df queue_work +EXPORT_SYMBOL_GPL vmlinux 0x25511135 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x25623f9d tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28024765 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2853d58d inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x28a65055 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x294ad1a6 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2a117a6a bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2ab28551 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2b6bd18a sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2baa1ec6 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x2c1538d1 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x2c17729e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2c52f4de xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x2c9554cf inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x2dd5c1ed fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x2e2bce7d vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2e82872c hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x2ed05038 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x2f1f7564 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2f2035bc devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x2fd68650 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x2fda6646 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x3117c71c device_register +EXPORT_SYMBOL_GPL vmlinux 0x3175763b flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x32469c43 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x325f5d0e attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x32a11c48 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x337b3987 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x34a560b5 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x35288d70 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x358fdd7f sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x35eb79d0 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x35eebb92 class_register +EXPORT_SYMBOL_GPL vmlinux 0x35fb0b5e class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36bf14ff task_nice +EXPORT_SYMBOL_GPL vmlinux 0x37035af8 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x37174359 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x376b84dc device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x37a5388e scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x382e78b4 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x38d79d74 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x3999c5fb klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x39c2d111 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x3a1bea20 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x3a206dbb tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x3a69e163 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3b5fa18d crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x3bb22e6f sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x3bba6fbc sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c41b08e sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3c5d3704 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3c613207 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d3d3533 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3d46b9cb crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3d5c15a1 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x3d874179 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0x3d8d95ca attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x3dd29278 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x3de154cf inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x3e195c31 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x3ed0884b platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3f083e31 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f3b9343 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x3fd50d10 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x4018709e tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x405b2bac srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x40af7964 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x40bddb4b sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x4124093a bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x41b61405 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x41c20dae class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x41e6957b tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x42710e75 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x4273308d inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x437bb9c3 class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x43c9cd55 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x43d02662 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x442f1b8f rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x4458f5df class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x4522cf8b inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x455d7e13 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45ae8d98 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x4648a1c4 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x46a0b0fa percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0x46d8f6b5 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x470ca543 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x473dee33 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x4835feb1 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x486435aa relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x486f1096 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49dfc56d user_describe +EXPORT_SYMBOL_GPL vmlinux 0x4a27d5e4 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x4a419738 pfm_install_alt_pmu_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x4a7eec3b bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x4ab35f96 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x4acca702 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x4b372435 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x4bef5d0b led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x4c3871e1 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c8f9324 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4d3a930e driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4d88b90c led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x4deba4c2 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x4e5495c5 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x4edfeca4 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4f6bd220 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x505a5f81 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x51205de2 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x51910d19 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x526ce7c7 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x52c0be00 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x52f53895 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x5389f09e klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x547fe354 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x54a4b6d9 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x54b49fb1 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x54c9e107 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x54e04428 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x552f39f7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x55e675c4 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x56068779 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x56151e8e user_read +EXPORT_SYMBOL_GPL vmlinux 0x56330074 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564c9c23 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x566741fa do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56d9e73a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x5771afe0 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x58296c75 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x58c4b5bc find_pid +EXPORT_SYMBOL_GPL vmlinux 0x58d59b95 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x5924ce3f rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5935ce17 sal_pcibr_slot_enable +EXPORT_SYMBOL_GPL vmlinux 0x5a1ea078 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x5a60cac3 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5aca5658 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x5b5fa9a0 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5bf4768c debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c0fb9f7 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d090cb1 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x5d430593 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x5d6b4e78 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5ea3ae5e xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x5eee2949 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x5f2ef59a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x5f84ec7a pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x5f95aab6 sn_acpi_rev +EXPORT_SYMBOL_GPL vmlinux 0x6028c95d kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x61dd13f7 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x62332716 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x623f8080 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x6294fa46 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x629fc4a7 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x62abc933 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x630a1422 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x649e4991 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x654e645e led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65da937f skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6714900a sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x675ec084 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67c88ff7 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x67db292c nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x67dceb56 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x68226282 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x6837b93f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x685d2977 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68c0b459 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x69c82c30 get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x69e5a45c led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x69fc4580 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a0aa9f0 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x6ac7091f fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x6c07e729 swiotlb_sync_single_range_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6c5e0b6f crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6cd48b69 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x6d05db4d hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x6ea7c126 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x6ec10df3 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x6f28c3e1 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x6fba9ec7 pfm_remove_alt_pmu_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x6fe034e9 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0x704a518c inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x70f367de xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x711bf3e6 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x7186426a fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x71ab7ca9 inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7327efd5 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x73a53ef6 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x742b0b60 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x743ddc50 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x746e9848 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x754c8b1f driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x755ed3c6 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x75bfd6ae sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x765ea8c1 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x7679705e tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x7686e3c3 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x775fad87 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x78041b8f byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x78a17834 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0x78a4cc29 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7a81665a inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x7ba987f4 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7baffd47 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7c25144b audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c5d3825 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7c6af15a vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x7c6f336d register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7c954d7a init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7d64b063 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7d6bd323 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dfe6fb2 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7e57580c blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7eb662f0 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7fc64fb2 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x80149a64 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x80489a13 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x807eaf7f devres_get +EXPORT_SYMBOL_GPL vmlinux 0x809b7b14 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8175f526 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81da1c5b device_create +EXPORT_SYMBOL_GPL vmlinux 0x825f0569 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e1e08d cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x830f8f49 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x83b9ee60 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x84189430 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x849ab915 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x8503d647 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x858f0d7d debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x8596bf62 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85d2d6b0 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x860019b1 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86bd3347 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x87112055 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x886150ed hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x88db2d0a tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x899c2717 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x89e340cf acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x8a3236c0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x8a5bb923 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x8b3aaeec proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x8bd2eda1 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x8c59f3a6 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x8c967706 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8cb2d629 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x8d1a3f1d class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x8d201514 is_multithreading_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8d45e996 __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0x8dc8e212 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8de54741 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x8ec55b20 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x8ee8e9bf devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f4a2bd9 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8fe08373 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x9023c7ae pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x90b2c3ac generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x90d840e5 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x924ed7b8 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x930d4609 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x939048e6 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x93b6161e class_create +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x9549d81b acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x954fb59e scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x95906ff3 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x95da680d spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x97164963 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x97d9c66a nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x9a7f705f device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9ae12b8f rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x9b114c25 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ce4defd platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9da0dd7f srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9dc8b5e1 user_update +EXPORT_SYMBOL_GPL vmlinux 0x9e46c1a4 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x9e8c11b6 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x9ebd307e xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x9f4295c1 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x9f9e0d7e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fde8dbb input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xa1221e4f devres_find +EXPORT_SYMBOL_GPL vmlinux 0xa14d0d65 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xa1630ac4 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xa1cf664d transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa1fd2e5c simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xa28dbdda inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xa2d17b9f per_cpu__pfm_syst_info +EXPORT_SYMBOL_GPL vmlinux 0xa3967d31 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa3cbb188 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xa3cd99c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xa4311dda crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xa4333473 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xa501a795 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa61bdbb9 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa64d9d79 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xa6ddb098 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa701c105 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xa7baad8f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa94ecb5f elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa97672e4 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa029827 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaaec9c5e inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xac3584b4 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xac9f47b8 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xacad5c30 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xacb856e8 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xae94df78 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xaf1c7494 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xaf3954dd device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb0c8f228 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb1068ff5 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb10c512d put_pid +EXPORT_SYMBOL_GPL vmlinux 0xb13b9649 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xb27345bd devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb3323d65 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb34b5625 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb36a3e05 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb4653c13 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb4f4d705 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb580338c vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xb591cd90 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xb5eed08b map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xb685de26 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb6cc6583 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb6f89843 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xb905b34f cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb9a832ca xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xbaabc64f inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xbaae9970 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbb24ed71 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xbba703c3 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xbc6d2a83 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xbd43ccaf pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xbdaa1452 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xbe30ed2d get_device +EXPORT_SYMBOL_GPL vmlinux 0xbf046fa2 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xbf1325db fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xbfc531ac sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc051d44b attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xc0a08de1 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xc0cff9b3 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xc0fe4b45 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xc176f30b sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xc1867aa8 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xc1c55283 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xc276f753 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xc27dee28 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xc31e9702 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35fc7db vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc3c045ed class_device_add +EXPORT_SYMBOL_GPL vmlinux 0xc4696741 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc56ef2fc fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xc59ee360 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xc719cfe6 swiotlb_sync_single_range_for_device +EXPORT_SYMBOL_GPL vmlinux 0xc869589d hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc920554e klist_init +EXPORT_SYMBOL_GPL vmlinux 0xc94dd4a5 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xca3fc1da pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xcab36a43 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xcb04f88f blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc799377 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xcc92f0f4 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xccb39573 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xcd5fb04c crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xcdaf74b6 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xcddbfb70 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0xcdfd664e sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xce033996 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xce28b821 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xcf02a710 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0dfc4c6 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xd3e3e9b5 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xd473d6ca class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xd4a6abad sn_ioboard_to_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0xd527a720 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xd53e9c04 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xd6400a13 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd649b186 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xd682cdb8 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6c15278 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6cc0f4f input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xd6ec63b1 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6fe0c16 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0xd7446737 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xd74d736d inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xd78031b0 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd84737a9 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd87aeab6 jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0xd89734a5 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xd9924406 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0xda744781 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdaa232c6 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xdb5b9f19 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xdbbacd2b file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xdc28ded5 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xdc45de81 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc7faad pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xde1eeed5 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xde2a3fc2 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0xdef2eef7 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xdefdeb7f class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf2ffe9c klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xdf95a48e spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xe01e75ab inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe137b48b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xe15b0d26 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xe2109d5c transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe272c612 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xe2f65493 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0xe3220bbc anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xe3308a22 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xe34384ab __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe3be6826 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe3d948a1 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xe3e1f28b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xe3e9d6bb spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe3eb3737 pcibios_fixup_device_resources +EXPORT_SYMBOL_GPL vmlinux 0xe3ebd326 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xe440fddf __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xe540f496 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xe545b1b1 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0xe5e7ce38 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe62dc137 mmput +EXPORT_SYMBOL_GPL vmlinux 0xe7a6cfab device_add +EXPORT_SYMBOL_GPL vmlinux 0xe7b8bfe3 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xe7dc4754 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea955ade securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xeb66d7b0 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xeb98ca29 device_move +EXPORT_SYMBOL_GPL vmlinux 0xebaec2ca inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xec2db402 audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0xec58a227 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xed077693 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xed27b65b sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xeded8133 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xee575ac7 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xeeb23165 pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0xeec30d04 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xeeed1890 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xef372a54 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0xef4bf493 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xef50288e sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xefcbb956 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xeff8baf3 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf0797992 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0c8ecd1 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf1014b16 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xf105019c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xf10b16c7 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xf149fc6c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xf1569412 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xf171f26b device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xf17e7e6b power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1f77520 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xf2210018 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf24e9600 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xf2c61cef tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xf32b95e4 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf3a11109 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xf3a6c323 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xf3b6ee85 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf3f671f7 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xf43874d8 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf5d708f2 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xf60db2a7 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xf6a121cb device_del +EXPORT_SYMBOL_GPL vmlinux 0xf7acc968 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0xf7edf766 user_match +EXPORT_SYMBOL_GPL vmlinux 0xf8155392 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xf8eb0593 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a9fa3e __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xfa0fd095 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xfa735b78 mca_recover_range +EXPORT_SYMBOL_GPL vmlinux 0xfa91da08 k_handler +EXPORT_SYMBOL_GPL vmlinux 0xfaa6535d inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xfadbb5c6 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xfaef48b9 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfb391984 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xfb4b07e0 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0f9cfb __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xfdc3b86a class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfdffc426 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xff951c47 input_class +EXPORT_SYMBOL_GPL vmlinux 0xffbd997f put_driver +EXPORT_SYMBOL_GPL vmlinux 0xfff91c13 device_remove_bin_file +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x0d59e0e0 usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x21e66ca9 usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xc0603a79 usb_register_driver +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/ia64/mckinley.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/ia64/mckinley.modules @@ -0,0 +1,1476 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +8021q +8139cp +8139too +8390 +9p +9pnet +9pnet_fd +a100u2w +a3d +aacraid +ablkcipher +acecad +acenic +acpiphp +acpiphp_ibm +act_gact +act_ipt +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +adt7470 +adutux +adv7170 +adv7175 +advansys +aead +aec62xx +aes_generic +affs +af_key +af-rxrpc +agpgart +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airprime +alauda +alim15x3 +amd74xx +amd8111e +analog +anubis +aoe +appledisplay +appletalk +appletouch +applicom +arc4 +arcmsr +arcnet +arc-rawmode +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +aten +ati_remote +ati_remote2 +atl1 +atmel +atmel_cs +atmel_pci +atp870u +atxp1 +aty128fb +atyfb +auerswald +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bay +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_misc +bitblit +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpqether +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +button +bw-qcam +cafe_ccic +cafe_nand +camellia +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cmd64x +cn +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +comm +compat_ioctl32 +configfs +container +corgi_bl +cp2101 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +c-qcam +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +dock +docprobe +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dst +dst_ca +dstr +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +ecryptfs +eepro100 +eeprom +eeprom_93cx6 +efivars +efs +ehci-hcd +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +epat +epia +epic100 +eql +err_inject +et61x251 +eth1394 +evbug +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fakephp +fan +farsync +fat +faulty +fbcon +fb_ddc +fcrypt +fdomain_cs +fealnx +ff-memless +fit2 +fit3 +fixed +fm801-gp +fmvj18x_cs +font +forcedeth +freevxfs +freq_table +friq +frpw +ftdi-elan +ftdi_sio +ftl +funsoft +fuse +g450_pll +gamecon +gameport +garmin_gps +generic_serial +gen_probe +gf128mul +gf2k +gfs2 +gl518sm +gl520sm +gl620a +grip +grip_mp +gtco +guillemot +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hermes +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hidp +hostap +hostap_cs +hostap_pci +hostap_plx +hp4x +hp-agp +hpfs +hpt34x +hpt366 +hptiop +hwmon-vid +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-core +i2c-dev +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i460-agp +i5k_amb +i8042 +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmcam +ibmpex +ib_mthca +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +inet_lro +inftl +initio +input-polldev +intel-rng +intel_vr_nor +interact +ioc3 +ioc3_serial +ioc4 +ioc4_serial +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isl6421 +isofs +it87 +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kyrofb +l2cap +l64781 +lcd +ldusb +led-class +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lockd +lock_dlm +lock_nolock +loop +lp +lpfc +lrw +ltv350qv +lxt +lzo_compress +lzo_decompress +m25p80 +mac80211 +macmodes +macvlan +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mbcs +mca_recovery +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mga +michael_mic +microtek +mii +minix +mlx4_core +mlx4_ib +mos7720 +mos7840 +moxa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msp3400 +mspec +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +multipath +mxser_new +myri10ge +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netrom +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +opti621 +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p54common +p54pci +p54usb +p8023 +palinfo +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300 +pc87360 +pc87427 +pca9539 +pcbc +pcd +pcf8574 +pcf8591 +pci +pci200syn +pciehp +pci_hotplug +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pd +pd6729 +pda_power +pdc202xx_old +pdc_adma +pegasus +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoe +pppol2tp +pppox +ppp_synctty +processor +psmouse +pt +pvrusb2 +pwc +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r8a66597-hcd +radeon +radeonfb +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +rio +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbp2 +sc1200 +sc92031 +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sd_mod +se401 +seed +serial_cs +serio_raw +sermouse +serpent +serport +sg +sgiioc4 +sha1_generic +sha256_generic +sha512 +shaper +shpchp +sidewinder +sierra +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +skfp +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +smbfs +smc91c92_cs +smsc +smsc47b397 +smsc47m1 +smsc47m192 +sn9c102 +softcursor +sp8870 +sp887x +spaceball +spaceorb +spectrum_cs +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +ssfdc +sstfb +st +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sunkbd +sunrpc +svgalib +sx8 +sym53c500_cs +sym53c8xx +synclink_cs +synclink_gt +synclinkmp +syncppp +sysv +tc86c001 +tcm825x +tcp_bic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tg3 +tgr192 +thermal +thmc50 +tifm_7xx1 +tifm_core +tileblit +tipc +ti_usb_3410_5052 +tle62x0 +tlv320aic23b +tmdc +tmscsim +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +trancevibrator +tridentfb +trm290 +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +typhoon +u132-hcd +ubi +udf +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +umem +upd64031a +upd64083 +usb8xxx +usbcore +usb_debug +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbvideo +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +veth +vfat +vgastate +via +via686a +via-rhine +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +visor +vitesse +vivi +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83l785ts +w9966 +w9968cf +wacom +wanrouter +wanxl +warrior +wavelan_cs +whiteheat +winbond-840 +wire +wl3501_cs +wm8739 +wm8775 +wp512 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xp +xpad +xpc +xpnet +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +yam +yealink +yellowfin +yenta_socket +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/amd64/generic +++ linux-2.6.24/debian/abi/2.6.24-24.56/amd64/generic @@ -0,0 +1,6877 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0xe2eb2dd6 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x011ee842 gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x066df505 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x1e108535 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1f651fb0 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x38b9ff2a gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x4abfe2e1 gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x7184a94f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x79a53629 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x944c5915 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0xc691e027 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xe6f559a7 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0xfe882997 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0x1b40ac18 acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0x40ca2ad8 acpi_processor_notify_smm +EXPORT_SYMBOL drivers/acpi/processor 0x5c2caf67 acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xaf46f541 acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/atm/suni 0x5235ef59 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xeda85800 uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/loop 0xe451eb40 loop_register_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x3a55082b pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x48fcedf0 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x4c4d4db7 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x5e872e1d pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x621f32f3 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x7272562b pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xba0b982f pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xbbebfd49 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xd727bb26 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe146dc02 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xe48ba6c6 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xee2a019f paride_unregister +EXPORT_SYMBOL drivers/cdrom/cdrom 0x1ac0d121 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x21a7a16a cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x27453aec cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0x2c380a5d cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0x30ff0d8a cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x3eb08d1a cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0x40100f3b unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x67cc0d38 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x7846b277 cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0x836d8c8b cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xa1f273f7 cdrom_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x059d8b46 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x09b0aa48 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x1504e88e drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x15a28430 drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2963d037 drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x34acf21f drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0x40391cc0 drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0x451c5f6c drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0x47940b0d drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x4fd7cc6a drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x5fc343ef drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0x62d9aa22 drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0x688dcd4e drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x6a27b032 drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0x77b67308 drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x7ff72250 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0x9254dfe3 drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0x92daee68 drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0x94e9e37d drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x953fc97a drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x9bce87fd drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0x9c8edb4d drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0xa17d28f3 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xc016b49b drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0xc5908484 drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xcccb47c4 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0xcd674a44 drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xd382c8d3 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0xd828d124 drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0xdbe1b095 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0xdf441e02 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0xe03d1986 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0xe294ff75 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0xe4bc1e51 drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0xe76d24ac drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xf0f9e7ee drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0xf26f8553 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0xf6e1e927 drm_compat_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0xfd58e556 drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xfe64d56e drm_poll +EXPORT_SYMBOL drivers/char/generic_serial 0x073f69b2 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x092f53d0 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x248d5323 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x2afe12bc gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x4eb87253 gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x5086ba9d gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0x67bff624 gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x93c7ab2e gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0xa52cd0af gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0xbdfc1221 gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0xce88e65b gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0xd9d999e9 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0xda1decba gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0xf16bded1 gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0xf340dae9 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0xf96301fd gs_got_break +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x04f63b8c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1912c9ad ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1988c239 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a943c7a ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1d6314c0 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x28c9acbf ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2a0ef878 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x337d5216 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x38d8bcd8 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5323e67d ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57510c78 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x69521825 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6d6c598d ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x748fd1d2 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7706a302 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7b6f0253 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x876342e2 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa33693db ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb32ed6ca ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb5ecc246 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbfb08486 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc5570745 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcf575b3c ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd260c902 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/nsc_gpio 0x1325e587 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0xb61f99e9 nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0xcd94dfb3 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0xb7d81eb5 cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0x3b383363 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0x750576f5 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0x6508622a edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xd29caf3c edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0xf9451e18 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x37ddd1d7 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xfd92061a i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x68a9bf69 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x2b47b962 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x723cb20f amd756_smbus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x15c5ba65 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x25dd3100 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x40ec8497 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x45ed6f26 i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4b71a1b7 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4f219644 i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x521318a7 i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x5a3cd4ed i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x5db6f1bc i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x8adb67c4 i2c_put_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x928dff04 i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x94021897 i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0x94a57234 i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0x988cc8f8 i2c_master_send +EXPORT_SYMBOL drivers/i2c/i2c-core 0x98e1b42e i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xa3ad8384 i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0xa97be1eb i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc8747ccb i2c_attach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xcc8c3f0b i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xdf2329a6 i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe0c61ba2 i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe2169c23 i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe417ca60 i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe840f166 i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf3af006c i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xf6adf70c i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xfb6f6724 i2c_detach_client +EXPORT_SYMBOL drivers/ide/ide-core 0x0b28599d ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x124fbb58 __ide_dma_on +EXPORT_SYMBOL drivers/ide/ide-core 0x140ac491 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0x2160ccd7 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x253d34a5 ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0x27f1dfa4 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0x30efac52 SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0x317e3a64 task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x33e9cc7f generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x48243198 ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x52289177 drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0x532ac751 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0x59b359ed ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0x602545f4 ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x60b63697 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0x6f952dd0 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x7cb556dd ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x8551a681 ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x8a4f8196 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0x8e30087a ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0x9f52bfbc task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xa1a15d1d ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0xa65ece95 ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xb422e200 ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xb777101b ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0xbde229c6 ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0xc85925ad ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0xcd340073 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0xcfc26888 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0xe03fd9a5 default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0xe2f266b3 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0xecc908d4 ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xfae07487 ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0xfd56998d pre_task_out_intr +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0fe8b22b hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16dcdaff hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x26d16f73 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2dd29f75 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2f05718c hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3030dbba hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x36dbc95a hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x415e042e hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x42bda8f5 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x47d4fc3a hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x49c09326 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4e46a18c hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x56a4e6a7 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x602ef506 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6569407c hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x66d31f86 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x67bdc67f hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x694141ff hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6bdb9272 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6c6fce7f hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x750a76d1 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x77316a29 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79530b08 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7af8c1e2 hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x821cc267 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8395d29e hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8398a494 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x847ceb61 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85b23679 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b2953d5 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f5a1f4e hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f899cd4 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9097ff9f hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x925a2ed6 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b0e9540 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b509f30 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9d394df7 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9dfa6bc5 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9e33c92d hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa7ce7ea9 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb74d6b7a hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb8a85e86 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc16507a3 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc76ec88d hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc9e5a05d hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcf589f27 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd1cca4f7 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd22f558b hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd25af6b1 hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd38fcb12 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5ea6d14 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd71dec8e hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdfbbfa46 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe03206be hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe0850ee0 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe14c5d3a hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe2096542 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe59b8cac dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe5b68a78 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xee816659 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3992dff hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3d5e0e1 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf5affa8e __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf88e305c hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x04fc95e6 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x726b830a ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x8f788a87 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x3858ffd4 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x7fe9be7c rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x97a0f6c1 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9c447fba rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0714b598 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x22914dfe ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2714d43a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x281e6ae7 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x46188188 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4f2040a6 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6d7ed498 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7ec7458f ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9d053b00 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa36ce4c7 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xac10690f ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbcc9c1d9 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc2b30122 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc84291c0 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcd6d7a2f ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf48af1ff ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00f84950 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03ff00de ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10de497f ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11936529 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11d42382 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1383d0a8 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x143e0afb ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14ea8bc5 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ed52d65 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x218672be ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24886ea5 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x275b93d9 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b9357fc ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30ff0e80 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x336c61b0 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3718bed5 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bf2e5bb ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4340ee02 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4aa54834 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5040693f ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51cba9d4 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53c59aaf ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55fccced ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x569c3301 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d2ea3ab ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6368bbc9 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67f19de1 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e4c23ed ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72ca5fff ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76772a84 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x769e1504 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ac6567d ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c0117b3 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d12f837 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8de8683b ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e89da96 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9540dc81 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x965c1dae ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96caa3c8 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d4a25c1 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d89f428 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa32b9c6e ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa63187f0 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa80b263c ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa72227b ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb952ee3c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba4105db ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba44af63 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce19c465 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0b809b9 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0d33ef3 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd56ab896 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc5076d7 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd1d502e ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd722a4d ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe555fcf3 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7765521 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xede765fe ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeececd39 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf16edab8 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf22c0abf ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf869149d ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8e89537 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf95cca21 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf97aa3df ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3305742a ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3efc3125 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3fb15199 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b4d86e8 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5d3598de ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5e260746 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7165d296 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7f1939e7 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9a452e79 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbbcb9267 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc0f39575 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe69c7ec0 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xecc864be ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x05b24047 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x248e7173 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3050beea ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7a8d9c6a ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9ab7b5a5 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9de2425f ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xab6e4b12 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb0ad1eab ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb57037c3 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbce8352d ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x145976af ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x20759c1d ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xeb63a3f1 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xed93c0d6 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0bfb422c iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2f9549d8 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x598d8710 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x787ee34a iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x96959d2a iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa3e8525c iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb9ba1393 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbf5e72e9 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f8a7d03 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x267b1e2f rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2ff11b0d rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3ab3a3f9 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3b03edfb rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x63f5723b rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x784cf71b rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x799fe26f rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x83955fed rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8c23e4da rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x97527009 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x985ccb4b rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xccdfe4bc rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xce0b55ad rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd49b9c43 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdf2b4581 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe27ae73e rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe6dbebb0 rdma_reject +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1cce8707 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x246f7a7c gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3699a4b5 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3ac78920 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x750c1d20 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x898023d8 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8c3cef90 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x94585cf3 gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9b0a3fc2 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdbce4bf8 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x0c84315f input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x1424f259 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x40446946 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8f18c882 input_free_polled_device +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x2c54c957 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xd0bc06ce capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0166e7b7 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0939313c capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3511a8e2 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x43768762 capi20_set_callback +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4e99e120 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb819820c detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb975cf7a capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc707a19a capi_ctr_reseted +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8da7b79 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xebfaacb3 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf7facbea capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x07e2957c b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1a8b7bd3 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x475a9ee7 b1ctl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4a84fd4e b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x649381c1 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x685d802e b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x68e349f9 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x818fddf1 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x96f9d2f4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x988c9607 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa528b8bc b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcc8c7043 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd4ad0c2b b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd5d13b10 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xed065229 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xee976237 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0e499f1f t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2a386384 b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3574f51b b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4416913e b1dmactl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4899d9d6 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4a6ec40b b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x50a67741 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x56c32cce b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7fc7036d b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x95202246 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x9212c06a proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x40f13393 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa34c0a74 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe6d9da1c FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xeee1ae47 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x1b43fa41 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x23cdfc3b isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5fca4b58 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xaf0232ac isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf85ee26b isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x1ee629e2 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x95aed401 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x9ffc8215 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0xf5c8131d isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x3c4aac2c isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x5eed2cc8 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x9dd32dae isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/md/dm-mirror 0xf5b0b7a8 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xf93830fb dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xfbc8a1c7 dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xffa82689 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mod 0x0225d252 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x0bbe6f22 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x1eec0ff9 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x2ff77745 dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x38db8f0a dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x50b194a1 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0x55d7af14 kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x6dbcac43 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x76ffa19d dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0x77eb6cfd dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x8a9f6d3d dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0xb60e2d50 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xb6e53c94 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc8ef8e0c dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xcfdf598a kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xd5e8bd8a dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0xe11c0978 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0xed11602b dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xf1ed818a dm_table_get_mode +EXPORT_SYMBOL drivers/md/md-mod 0x2bbb3d45 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x43537cdc bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x52755133 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x55378ec6 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x765e28db bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x7d99e8f8 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x96310cbb md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0x9f3f7d03 md_error +EXPORT_SYMBOL drivers/md/md-mod 0xa152842e md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xba167944 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xbeca173a register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xbee6bcdc unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xc7e9a3bf bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xd29b0790 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0xe2e6f1c6 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xf8d0d34b bitmap_unplug +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x01118e8d flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0a130a40 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2c305786 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2dcb3724 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x30cebb62 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3dd35260 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x414c6c83 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6083f7f6 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6bfee329 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x78309f92 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7f39bcf8 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8c0cf93e flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8dc9f44c flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9dff3264 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9f892469 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbb9a5301 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcaf9fe75 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe1a1672e flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe2969f0c flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf1251a4a flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x226d263c bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xacdabb84 bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xad5a522b bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd26e29df bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x13ed67a7 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x23df1d95 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x47f588a6 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4b97cff0 dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4ef507dd dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x534fd1d7 dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x55e0e9e8 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6f88d1d7 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x73407340 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x800ea79c rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc63ab75e rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf6094848 dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfbf0c223 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfe18d9f3 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x780f0ac2 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x06738812 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x09ae1a5b dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c8a5505 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1996d626 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2060c7df dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x227b9c79 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2509ac92 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x35a9579c dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3c73a82e dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4365cb9d dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x539c2daf dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5acb902d dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5d596593 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5e92c91f dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6baf214c dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x73f92dc2 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7583abbc dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x774e0aee dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7989c047 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7c773b2c dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88144b0f dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x909bbff0 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9462cb37 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x94bede0a dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa0c9cd35 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa88e5e0f dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xadeaa28a dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb4d96f5c dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb594381d dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb84cf6cc dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc1d45583 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc9465d71 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xece88931 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xefa3407f dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf4a550da dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf960b294 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfa658f19 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x139be5f1 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x38a08cf1 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3f03af96 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa1456b9f dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa47d4569 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xcce38f95 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd121a489 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xf9825566 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x09c5e575 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x32ce3b07 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x547139f0 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5572a2ae dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x63714031 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6d2228d4 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x847203d6 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8e8eb994 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xaeac09df dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc9603283 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfc122979 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xba316ab0 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xd73d5bdd cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xcb7c4b8f cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x9384416f cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xe8253f15 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x233bdfbf dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xac1d7c0e dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x36607ca8 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0ea27300 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6f4e0115 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x70f4003f dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x743a9786 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x895a3ff5 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc3b58e6c dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x74080951 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x89f9445d dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xabad7d50 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5ed03dbd dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x89bc6078 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9f951291 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa5cf738c dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xb2f328a7 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc3fc6d34 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x19ba0e5d dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2f3e34fc dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xdca9ea8d dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x5b562742 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x81ab18ee isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x7536a695 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x408d19fb lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x5922823a lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x7ca7934f mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x7a6c84fd mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0x4670b829 mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x552a6430 vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xe7b2a1a0 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xe603fca6 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x895962c1 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x4f61b893 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xb0efa7a8 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0xa1fc41c9 qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x6402e2f5 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x149f00a4 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x3b825178 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xb2822132 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x3bea2825 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x9e6487d1 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x9a3eb3cd tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x833b5035 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x2f4c3edf tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x54c93f26 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x877c68c8 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x028b6220 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x791188e0 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0xc370d356 tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xda7ba160 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x91736688 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x7f29f814 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x8b5899aa zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x7fc534c4 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x1215a58b ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x39d2a441 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x70796693 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xf61943bf bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xfb78a060 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x01298da0 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xd0cc63dc btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x14af21b5 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xe3d7787c cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xb1bd1d9a cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa54946a5 cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x5ef2e37b vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x63551d6b vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x38c26bde cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x53256d5b cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xcc4306de cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd72cbf0c cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xe8d9e72f cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x01be8e66 cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2f7235b6 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x3ed0c120 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8be59f45 cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9f0cfeca cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xabea5278 cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd6b66dd9 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xdd7200c0 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xe618c7a1 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x032edaec cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0f29c048 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x49385473 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5692583c cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x59c47fe6 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5a1762cb cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5cbf4557 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x64770b73 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x690b16ca cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6c1d43b2 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7abd94e9 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7f49e0f8 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8d82be31 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8ff785ed cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x976831cb cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa1ff3434 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbc98267d cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbdc4d654 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc5b66180 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcc6d3864 cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf6206c99 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfec84e68 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x395ae4c7 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3e3826c7 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x40fa485b ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x44a75d98 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x72987185 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7af92db7 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x81d8ac3b ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x89967854 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbd26ebf5 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcaf6bf71 ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcff34cd4 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdc9ba18d ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe2f4f1a9 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x00ff6a0a saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0b055e4a saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2711170b saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3f52096b saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x57c75341 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x618825c0 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x67018ea6 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7d44a8fe saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb1f39afe saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbfe306b3 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xca4179c9 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xee43d1da saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf65eaafa saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/tveeprom 0x1807acf4 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0x36a7e5e8 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0ff45263 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1c932f39 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x25f9c07c usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x337a48b4 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x447cb25c usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x48f55308 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x535e4900 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8ae216a2 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x90e7cff3 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xbae0fe88 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x4a42864f v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x33b3b664 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4415a629 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa48ef78c v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xcd1ce001 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xcf17d697 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa7abc144 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb41464e9 videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x297088a2 videocodec_attach +EXPORT_SYMBOL drivers/media/video/videocodec 0xc8b5d069 videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0xe42bb19f videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0xe6567109 videocodec_register +EXPORT_SYMBOL drivers/media/video/videodev 0x08a82363 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x131c53ca video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x22e5119d video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x41bafca9 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x88d9e6e3 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xb30d26f4 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xb5aa5355 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xd9ac2afd video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0xfbc459d5 video_unregister_device +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0d1f28f1 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0e5fb50f mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x105d4f47 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c4582b0 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2048cd70 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x307598b2 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3481d3ba mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e0eed87 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x40f8384f mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x41db8d87 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4411ded3 mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5ea232cc mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x665147c3 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69b07b99 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x747131c1 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7488fd93 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa23641e3 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbe77d61f mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc90a116a mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcdfbc149 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce2f8255 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9633746 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe35b0895 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6bf2a97 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfabe318a mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x00819898 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x095f9237 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x12e069e2 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x18592f81 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1b60538b mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2326760f mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2a4fc844 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3694afa2 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3a64e98b mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4569dd8e mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54ce0a31 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x590f476b mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5958dd6a mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x61e05c83 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x796887a9 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x803ecda8 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8237d45d mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x885cccb0 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8ea5ffd3 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbc1fa28a mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc191ac47 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc84a734 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd423ceab mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xefc916ee mptscsih_resume +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x046aa61b i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1835283c i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2517d7af i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2f31d983 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3e238744 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4b6cbed8 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4ebd41c9 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6317811a i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6e929f8e i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x709aba88 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7dff0a54 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x865c8dd5 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x975237c6 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9cfb836a i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa3699246 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa6088de7 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xac9c470a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc180a14e i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd142a6de i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe51eb70f i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf08a92f8 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf3855687 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/misc/ioc4 0xaa69309c ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xd9bb56dd ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/misc/tifm_core 0x10eac9a3 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x17bd22a1 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x1cfc6b42 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x336e0519 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x4567336d tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x60f8d783 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7a8e5354 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x7f0b851d tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x9d494abd tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xf5c92116 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xfb6655ae tifm_register_driver +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x29e103ea mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0e744401 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1134ed7b mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x17304a37 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x25cbefd8 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x322c729d mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x399ecd93 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3c224a17 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4aab8005 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x541ddeab mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x70d30007 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb263c48a mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb5b056e5 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc3bec96f mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd1e4e14a mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe642e180 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfb9f8036 __mmc_claim_host +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x39f6eb97 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x413e0e34 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd3a0d864 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x263e21bc do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x811b3cac register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xefdd9bdd unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf636f2f5 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x5e624451 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x1009a2d5 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x44e2db30 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x91a53fe1 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x4e5eac26 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xcaecb13a mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x443d2ad4 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x55e8b737 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0d6d8782 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x83ed093a onenand_default_bbt +EXPORT_SYMBOL drivers/net/8390 0x17b1f7df NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x316b2580 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xa509dc30 ei_open +EXPORT_SYMBOL drivers/net/8390 0xb220fa65 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xff27a816 ei_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x07c53acf arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x34e811a8 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5f2080d6 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x742faf97 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa4179940 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf5236cbc alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x0edc1d54 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x31189eaa com20020_found +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x050a590f cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x17bed711 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3719889f t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3c9ebab4 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x44251c3e t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x65efef30 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x79fad93d cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8df56c6f cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9030e171 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaada8903 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xae611101 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb37cb747 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb56cbbb2 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd10b598a t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf4db5115 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfc56b15a cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x085b3576 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x74b0c5ea hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd2436911 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe3b32c29 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe745cbcb hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x25e6d5b5 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x37f96b20 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3f0fe71f sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x46b44f05 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6d169ea9 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8423a26b sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8d4548b8 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc80a1c99 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd718072f sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf3e3b595 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/mii 0x10614ffc mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x16af8ab0 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x33fe3d9f mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x4923d7d4 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x69a69dbb mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x7c55b649 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xd2d1163f generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xe81ff48d mii_link_ok +EXPORT_SYMBOL drivers/net/phy/fixed 0xbfb7c150 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/fixed 0xfee147c9 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/libphy 0x00a17fee phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x072ae863 phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x11f00d11 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x33469be5 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x36623025 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x36e5d545 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x39df3570 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0x40686b1f phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x4653eced phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x47170b0b phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x6dea4f54 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x72d2ec42 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x75c78c9f phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x7ac0c364 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x8c955319 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x905d9837 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x93c83fed genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x996cbfd8 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xb27ddf4b phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xb7e15d02 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0xc847d722 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0xd156d30d phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0xdb8932af phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xe11328ee genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xe21e96f0 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xf471cf16 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0xf8d149d9 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xfdcca9ff phy_start_aneg +EXPORT_SYMBOL drivers/net/ppp_generic 0x021ff9e3 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x2540da68 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x38b83671 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x40fa8661 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x7d9b7a0b ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x8bce5db2 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x9900be33 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xe40e55fc ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xfab8d2f6 ppp_register_channel +EXPORT_SYMBOL drivers/net/pppox 0x35f93402 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x3da06cb0 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xfa0e70b0 pppox_ioctl +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/net/sungem_phy 0x8ba84afc mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x06435315 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x49508d68 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xb48036de tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc9782f73 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x43d5410d hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4bebdf64 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x55664847 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5fd98c20 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x693a45c5 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7d3564d1 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa36f618c unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc38b0741 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd9bcbb9c register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/syncppp 0x72d40d39 sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0x8f3747a3 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0xb06c0c1e sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xc897a676 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0xcd3c4cdb sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0xe7f04826 sppp_detach +EXPORT_SYMBOL drivers/net/wireless/airo 0x44b3e7fe reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x52dcee20 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xe468c904 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x099dd379 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x51a6bdc2 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x6679671e init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0bf3e1ed hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x11fec607 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1a607858 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1ed3ba49 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a84912e hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2b45e5e6 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c145340 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x31f70133 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x419262c2 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4b110e07 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5c3c2ccc hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x64433b25 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7a1d149f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x83d7d577 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x84fc0383 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8d47d531 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x930ec10e hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9aa35d85 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3f4ca2d hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba46c05b hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbca5cda4 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc5d6d158 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd2e46a33 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe7dab5b2 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf5dcba79 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf8170870 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfcf038a1 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x0ff52c39 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x672a7ec2 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x7539242a alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x7911db23 __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x8397ae18 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/parport/parport 0x01595d5a parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x0165ef56 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x0c964579 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x1c458b89 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x1fc7ad3b parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x20b48b3b parport_release +EXPORT_SYMBOL drivers/parport/parport 0x2222b6a6 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x28c6982b parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x35242ace parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x4522bf8d parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x6516bc9b parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x6704fa44 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x6c613f03 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x6fa60709 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x70e475bb parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x74004968 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x82c4110a parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x86310b05 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x9128280a parport_write +EXPORT_SYMBOL drivers/parport/parport 0x9e2409b6 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xb83dacfa parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xc92dc3c5 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xdd31ca6c parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xdf3727a6 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xe6854811 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xe72fde58 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xe868863a parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xe9084475 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xeeb29f78 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xf9f81443 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x11e7d939 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xa2d8f831 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0da44f41 cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2093ebaf pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2d2fc342 pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x45eb7b9b pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x523eb2c7 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x55e9cd41 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x595b70f1 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6ca3b76a pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x737d1683 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x80a0b7bd pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x846a53aa pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa1b3ea19 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xac0c4891 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb470d834 pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc8d10bfa pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdfcd55d4 pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe899c1f1 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x05690aea pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x07d3d3a2 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0c84caa7 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0dc052e3 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0e0c744e pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3ab3b9e6 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3e9992a8 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3f10dc6e pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4349d0c4 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x43b102ad pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4bf3dbed pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4e20ede9 pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x560a0819 pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x57f30dfb destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x669593b0 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x75243573 pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x769baa76 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7c2b982c pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7d369a0e pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x871880f5 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8777402d pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8bbb28f3 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8dafe3ba pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa119daa9 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb609257b pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc2d2b1e8 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf528e90 pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd347f75c pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe3e137ce pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe7223381 pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xeab1fbbf release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0xe8b03ecf pccard_nonstatic_ops +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x07a85638 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xa89c5235 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xc81e6fb0 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x50478bfb qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x65740b24 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x9b79bc21 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb02714e3 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb9752f9a qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe181148b qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x63e664ab raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x743823a0 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xe091c671 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x04bcbf00 __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0633bd71 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x09afbb9f scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x09ff9de6 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x10178ff3 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x144376d8 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x155d9dd0 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x172d261f scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1e4deb9b scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x28f14d92 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x350ca967 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x37d62e4e __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3e060fe8 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3e4d904d scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x43ac61ac scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4651d4f7 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x49d261fa scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x51f070ca scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5792363c scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x58be01c6 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5b8e0d70 scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x645b6389 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69bdbb79 scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6a0383bc scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x707ee039 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72402a81 scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72fe10b7 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x73c70025 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x77348118 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7e9cf0a1 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7ed4ac04 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8152f5dd __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x83577666 scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x86ae01e4 __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x89900ce3 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8c9cc48b scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8cbb699e scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x92c98126 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x946fbde2 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9624024c scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x98316289 scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9d566af7 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9dd9caf9 scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9ea1cd75 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa17c0e81 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa318c3c4 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa69e5cde scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xabc97c52 scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xadec62d0 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb1456a9b scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb531cabb scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbbdc0492 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbd0ba6ab scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbf41c1a1 scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc0b47c1d scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc5665409 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc594035c scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc82ddb38 scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcbe8ef9b scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcde807ec scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xce46334f scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd0ef5092 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd1d41f9d scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd2a03a37 scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd51363e2 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd74265fb scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe0649828 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe56b19c2 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xeaa9bd5a scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xed711bd2 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xee102ce1 __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xef9fbed2 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xefd022ae scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf51218a9 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf66e40b7 scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf9200459 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf9874acb scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x054597cd scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x194894eb fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x242b9959 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x249def2e fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x38298fc4 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3f436008 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8e5a521f fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa94d7bb4 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbb2ccc5e fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe61e29f6 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xea2630a5 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x01bd0c33 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x06bae5ca sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b452acc sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1ca72de3 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x234f6527 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x371d137c sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44b956f5 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45944f72 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5a79342a sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5bdb4697 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5dead47f scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x61a5fabb sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x67d2601b sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6ca472a9 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x755518fd sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78c6bc8f sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7d982dfa sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84f23b0b sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c7e1a70 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6d06407 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb74c823b sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb817e4ec sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe03251c8 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe9a5d287 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff0f8032 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff6e923b sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x84255d55 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb05454a6 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb348ece6 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xcbbe7018 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xdfa62841 spi_schedule_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x064382dc ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x15739aeb ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x5987afd1 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x68087885 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x7224790b ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x75c1ccb5 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x78e71b70 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x86928890 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xb7b053f6 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd8774c30 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd8c62980 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xe2efb410 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xe7cef939 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xea7c4cce ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xf7482fe6 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/telephony/ixj 0x74978d2a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x1e34598e phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xc87633f0 phone_register_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x04378b11 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x073347d5 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0e2c8beb usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x20201e45 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x24f8e83b usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2850b23a usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0x298577b7 usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2a26eea6 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2cc43c7a usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2f127b7e usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2feedb47 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x30944a1d usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x35e8d4e2 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3fef82ed usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x44b0f91c usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4a1c2c72 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4c30a54a usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x53d39e8f usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0x59190854 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6ac10afa usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6e5f0e01 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x713c15f4 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7a41dcd8 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7c5d1c00 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x806e5c4c usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x831bc08c usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x90dda60e usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x93bf3be3 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9465e7f7 usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0x95a410fd usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa9ef9d13 usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xab52b2ad usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xaf2ea6ba usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb16a3101 usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb7dc49ce usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbac97da0 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbe811ef6 usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd4705ef0 usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd6f5cd1d usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd7865c73 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdf26794f usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe32dbea2 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xed5f6489 usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf06e0552 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf6ab733c usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfb12f151 usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfd82a59c usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xff222218 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/gadget/amd5536udc 0x5338d74b usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/amd5536udc 0xe7bd4050 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xe9598ead sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1aa45fef ezusb_set_reset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6940cd7a ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa77968b3 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xfd2ad21b usb_serial_suspend +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x78742cf6 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xed1fd13e lcd_device_register +EXPORT_SYMBOL drivers/video/console/bitblit 0xe0088988 fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0xbb99125c get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0x157e5e5b soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0x31597000 fbcon_set_tileops +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x38364d8d cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x80735ccb cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb303d94a cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc8759c0c cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x4c47573a display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xb1560a0c display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xba524696 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x37eca69a matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8766a450 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xdf232fa0 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x0ab2ea70 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x0ff37b82 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x231b1179 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x54c61e54 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xc791ef17 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xa3cce5ad matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x21e3ebe7 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x39064cf2 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x49a86fa2 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x91558201 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xaddef6a0 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xc9479afe matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1778d63a matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x692678f8 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8b98bbfb matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x93d428cf matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xdc6e5f01 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/output 0xa9d847e5 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xc21beee7 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x5d4b7ba4 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x741f73b4 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xa2f81671 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xa65e017c svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab4116e0 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xae9512c2 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef2783ef svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0x9045e3a3 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xbc0db5c6 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x168e5fad sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6f087d34 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x719bde4b w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x03984150 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x525c43ef w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x2411a2f6 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x35949fc8 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x73a59d6e configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x73f02eb5 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x9907c7a7 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x9f16c342 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x9f5fd66a config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xa1c09f43 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xa2018341 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xf31df879 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xf330dec6 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xfa876d5c config_group_find_item +EXPORT_SYMBOL fs/jbd/jbd 0x053338e6 log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x12f77380 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x15dd9753 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x1d867e60 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0x2ffc1822 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x3595b172 journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x413a0e59 journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x4c22d4f3 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x4ea9581c journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0x4ecf6d29 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x54b6ae65 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x57e9a190 journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x5b40167b journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x5ba4ac94 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0x6a318c91 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x6b474e6a journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x77560b05 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x81cda3a7 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x84665258 journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x8580ca55 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0xa4fb7659 journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0xbbb9bc55 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0xbbeede9f journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xbe4e7bb4 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0xc16ded5b journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0xc57d900e journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0xc99948fb journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0xda6427bd journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0xdbfaa46e journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0xe0bbe9e9 journal_create +EXPORT_SYMBOL fs/jbd/jbd 0xe34a1150 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0xe65983a3 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0xe68b760a journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0xed858d3e journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0xedca4247 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xf09d136a journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0xfd0438c8 journal_get_create_access +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/lockd/lockd 0xd94c98f0 nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0xfe1c75a1 nlmclnt_proc +EXPORT_SYMBOL fs/mbcache 0x00cd34c3 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x38264910 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x5f1c71e1 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0x99da7f32 mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0x9bacaaea mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0xa4948237 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xaca99d15 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xe7a31184 mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0xf71c79ee mb_cache_entry_insert +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x0c988b01 nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xfdfb4c72 nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/xfs/xfs 0x3ae329dc xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x9aabc564 crc16 +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x13c0c38e crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0x41bcd8b3 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x11c056d0 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x549c447c destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x08196b4c p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x0956503c p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x0f3569f7 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x12102070 p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x26d8fcc4 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x2feeea58 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x4d921a77 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x7558234d p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0x804f0b8a p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0x80587277 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x814dc940 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x87b33707 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0x8fa8eb29 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x92504c1f p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0xa7f28ff9 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xcabc8dc9 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0xd4fa2f74 p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xd57771ae p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0xd7c58fbb p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xdd5c399f p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xedc5d47b p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xee337cfa p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xee81e69f p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xf0aa734c p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xf39e4fb7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf3f95cd3 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xfd4a5ca6 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x091bcf56 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x231a3e9a atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x2642f4b8 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xbe210bd8 alloc_ltalkdev +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x0d80c262 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2d4d793f ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x3435d1a2 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x42db715b ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6b7feedd ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x7bbdd627 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb244e67d ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc2d2fddd ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xe048ab74 ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0ce1cb15 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1e127c93 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a1ea5ad bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x32a55708 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4818b7d6 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x559e19f8 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x582d1bc5 hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x70563cde hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x70b00bd4 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7f1e22a3 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fab0ef0 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x832c9233 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8d706db2 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e724645 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3e5b5a2 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa421b289 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7c6b54d hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbe19382d hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbed991ca hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4c440cc hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd73a5920 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb870433 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf3bfb0e hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe8bb5bb0 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeb91f100 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf2dc0ef4 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf69db15b hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff3afc05 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x8f81beab br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2ee94ff8 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x31bb0ff1 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x46586571 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x52438305 ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5d38b80f ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8cc9656c ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x92dd7c11 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd87c99a6 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf23ebb69 ebt_unregister_match +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0cad3d21 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x2a64ebcf ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x345d80c1 ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x37445c65 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x477282e0 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x49b62900 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4c61a8fc ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6a2f3b26 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7b4d139c ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x80632296 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x99fc95d4 ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xad48dde7 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb0a3c35b ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb997161b ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0xbc508157 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd60bcd59 ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe55bd151 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xec442722 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xee191941 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x2b3d8ace ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x54a42136 ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x8114ebc1 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x958f7920 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xb00654e4 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xc9b8bec5 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ipv4/inet_lro 0x3b10563a lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x923d41c4 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x966ec528 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0xce5012ad lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0xec396c52 lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xef48f6ac lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x0d827667 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x1038ba25 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x316c209b ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x366cb9e5 ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x4edcaf45 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x5efec9e8 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x7de5ba98 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x8148aa62 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x988b04e0 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xabafe95c register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xecd23d1c ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xbce9fabf arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xce6142ba arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xf73380e1 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x776fe2cd ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb8139faa ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xcc4006fe ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x3a638e4c nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5639a37b nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6a736dff nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x73b00b55 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8bff0828 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xfbfd114e nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0xfb671416 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xff9d0d4a xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x0331e068 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x0ab1652c inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x0b9947a7 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x0cd275e2 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x2275a958 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x24f67aeb inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x32b36f30 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x3f96502f nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x685c3036 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x6c0ae2f6 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x6dcb7b94 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x7f471f2c ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x82872cd5 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x8622a0e3 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x97706359 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x999ea56e ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x9d08f242 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x9d59105f xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x9de39e7f in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0xa1418beb ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xa6b57dc9 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0xa828b3d7 compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbc5d4d1f icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0xc1faf977 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0xc364e14b ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd01985c0 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xdbb7df3a inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0xded416f6 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xeb4ce191 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x13038447 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1b0674e6 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2458c222 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8f994211 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x42beb99e xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x732504cf xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0dabdcc4 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x338a5582 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4c3dda5d ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9ce10b7c ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xba1c70ef ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbede68d8 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xec5cb9a2 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfc161b4a ircomm_close +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0af6596b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x0bc39aae hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x19353fad alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1c655790 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2221766d irttp_dup +EXPORT_SYMBOL net/irda/irda 0x2e7b3a86 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x2fc9eabe irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x31e9fb81 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x3362748e proc_irda +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4916fb0b irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x50ee7f16 irlap_close +EXPORT_SYMBOL net/irda/irda 0x5122e9af irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x5689b148 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x5f50bb45 irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0x5fa41b63 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0x69c7294c hashbin_new +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6e87f14c irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76f5669a irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7c1b29e5 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x7fcbfbf5 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x855a5d1b irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x87aa2622 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x891adbf4 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x98670fa6 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x991302ac irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9b62cd7a irlap_open +EXPORT_SYMBOL net/irda/irda 0x9c34610c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x9e9d70f5 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xa54c8699 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xa54f1a1c irias_find_object +EXPORT_SYMBOL net/irda/irda 0xb06ef760 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xb6586d66 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xb87e5495 iriap_open +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbaf6a4dc irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0xbb6569e0 iriap_close +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc52d9f8d async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xc58cd6bf irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xc670d37d irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xd527e765 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xdbd5da79 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xdd97737d iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe2670416 irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0xe9d58deb hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf22aa033 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xf5f7ccc5 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xf6c58c8d hashbin_get_first +EXPORT_SYMBOL net/lapb/lapb 0x0bb52d32 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x13da5e53 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x32d2e6ad lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x391338df lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x4e5d4082 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x6d7cd99e lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x834bfce2 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xc044e520 lapb_connect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x1f18a83b ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x291f9651 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x2ef11b50 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x30fdfe1c ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x332bc6e3 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x3375cbbc ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x35e06d8c ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x35ecaed7 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x3d4a03b5 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x4b1bcb6a ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x4e7b47c4 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x50c2dd9c ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6192810b ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x622ea538 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x71fe0305 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x7baff4cd sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0x87ad5597 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x87eb4cb2 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x92d383b5 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa10bf138 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xa9bbb7a2 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xb5e78ca2 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbba9430d __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc6853b44 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xca550a84 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd7a80677 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe41b34a5 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xeda18e5d ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xef935943 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xefdf115a ieee80211_stop_queues +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x1c347ffb xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x2baaccde xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x38c5d426 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x3b46a5c3 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x4bd8c5a5 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x54527f7a xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6dc1e698 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x86a74954 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x90f5b6b0 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa7826821 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xce7aad36 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xd5ebbb51 xt_unregister_match +EXPORT_SYMBOL net/rfkill/rfkill 0x3781d2c9 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x3ad93992 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x5a4f8974 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x7cc718c9 rfkill_free +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1d25cd3e rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24aa1be2 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x351e8b23 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x46bed561 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x692de32e rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8265e948 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8681314a rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x94bd64fe rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xabcead26 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcd7f3886 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1788820 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd3d62a40 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb2a09cd rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe8c08506 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xff583e85 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0a0b2bf2 gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0fb9f3f2 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1b87e932 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1f243f3e gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3589e3ee gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4cbfdede make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5b9e77ad gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x84e45fc7 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x961d68b4 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xa0e12ae1 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb1e2cb00 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xdcbda67d gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf25a1ab6 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xfc978c88 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xfdecf8b3 gss_mech_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02aaba30 svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02b76e69 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x03ce40c0 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x07615f11 svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x085466c6 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0c9d801f rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0d042d5e xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0d2b4dcc xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0d437a7f cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0e09a13f rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0e8c0a49 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x100c8f72 xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1758b4c1 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1bb4d373 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1d21cd85 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1de49a49 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1f5f4f8f __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x26ce9713 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2a38f98c xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e2feba3 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x312f15c5 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x366c1f6e rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0x36d00a0d read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x380ba7ce rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0x39608539 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x413d2ef6 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x41500c46 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4273bc20 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x45c987a6 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4f57a09a auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5165cf05 rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x57ce8f49 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x58571893 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x59c4c081 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5cfa84e6 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x61ae8777 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6215e9d0 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x65500e42 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x67efcee0 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6b237b3e rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6ba1a5d6 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6c098f65 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6d7abeb1 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6fca4000 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x701cd8a1 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x78b2763d rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x78dda436 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x798193ba xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7c3c3430 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7eaf8fed auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7f45f022 rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7f8d723a cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x85ad40e5 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x868954a7 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8864add5 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x891a96ad svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9235ef18 rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9567f23b svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9694ce82 xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0x97bb5521 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9afe7b21 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa094bfe1 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa3bc5c7f rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa4ccd9cc rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa51a95e4 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaa546f0a svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0xae8ce555 svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb0708667 svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbde5ffd5 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcdf6cc8c svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd22f16a1 rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd431f85c rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd509036e rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdd514c2a rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xde273843 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe2e545e7 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe393857a rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe879b3d3 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe9868a09 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeb3a6362 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeca60c86 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xed0596a7 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xee8c94c7 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf1abb79b cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf344f990 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf4c70c38 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf502aa3e rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf54da13f xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf71bc868 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfbd633cd cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfef8f242 xdr_write_pages +EXPORT_SYMBOL net/tipc/tipc 0x01e61721 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x036c963c tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0a61a7d5 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x230571f3 tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x5d40ec15 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x667439ca tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9d9f123d tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x9f91b775 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xa2f88a0a tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1971a4e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbd78b69d tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd43da5d9 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xf3913559 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xfb9a4545 tipc_send_buf2name +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xeeb487eb register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x16d7d661 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x1e9e08ac wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x8ff32382 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x9489016f wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL sound/ac97_bus 0x3cb1359c ac97_bus_type +EXPORT_SYMBOL sound/soundcore 0x0c938cde register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x19838b26 sound_class +EXPORT_SYMBOL sound/soundcore 0x5ad215f2 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x7445b03f register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xc4b7a2b5 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xd0358022 register_sound_special +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0x000a3454 proc_root_fs +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x0015f1a5 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x0038234f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x003a8c7b lock_super +EXPORT_SYMBOL vmlinux 0x005c4cbc tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x008678d3 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x008f5163 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x009d258f _write_lock +EXPORT_SYMBOL vmlinux 0x00d57acd sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x00e6b54f kmem_cache_size +EXPORT_SYMBOL vmlinux 0x00ffd3c7 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x012ca252 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x013513e0 seq_putc +EXPORT_SYMBOL vmlinux 0x013cb37a netlink_broadcast +EXPORT_SYMBOL vmlinux 0x0153f92f seq_escape +EXPORT_SYMBOL vmlinux 0x017a14a6 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a982dd ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x01c0fe15 set_binfmt +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022ba502 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x02344e1c flush_tlb_page +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0247a6e4 idr_find +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x02959a89 km_new_mapping +EXPORT_SYMBOL vmlinux 0x02a1607b tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e4ca64 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x0305e272 agp_free_memory +EXPORT_SYMBOL vmlinux 0x031f3c84 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037b206d ipv4_specific +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03d652f0 bio_add_page +EXPORT_SYMBOL vmlinux 0x03f6f3cb dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04411f85 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048e8e00 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x048fb1d0 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x0497fcd2 __netif_schedule +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05154fcf netif_rx +EXPORT_SYMBOL vmlinux 0x054782f6 user_revoke +EXPORT_SYMBOL vmlinux 0x0581f2b7 __find_get_block +EXPORT_SYMBOL vmlinux 0x058c75d9 acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x05ad7224 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x05af80fc sock_no_listen +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0630ec4a acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x064a2822 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x065f5b91 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0688888b generic_delete_inode +EXPORT_SYMBOL vmlinux 0x06d632c4 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x06e1c64e tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x06eae427 bio_init +EXPORT_SYMBOL vmlinux 0x06eb039f flush_old_exec +EXPORT_SYMBOL vmlinux 0x06f2d5c7 mempool_free +EXPORT_SYMBOL vmlinux 0x06f4e38c __lookup_hash +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070c9f78 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0753bcd4 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x0762e43f tcp_prot +EXPORT_SYMBOL vmlinux 0x07657f30 pci_enable_device +EXPORT_SYMBOL vmlinux 0x0772a1bf get_fs_type +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07e43c47 wait_for_completion +EXPORT_SYMBOL vmlinux 0x07eba591 skb_pad +EXPORT_SYMBOL vmlinux 0x080286f5 down_read +EXPORT_SYMBOL vmlinux 0x08262c90 misc_register +EXPORT_SYMBOL vmlinux 0x0828eb92 __ht_create_irq +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08704703 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x0873ce83 tty_check_change +EXPORT_SYMBOL vmlinux 0x08929a39 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x08b688a4 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x08c4f629 acpi_get_name +EXPORT_SYMBOL vmlinux 0x08cb5e18 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x08dc262e is_bad_inode +EXPORT_SYMBOL vmlinux 0x0900e0d6 _spin_lock +EXPORT_SYMBOL vmlinux 0x090462a1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x09818ed0 key_alloc +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a0b562 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x09c4b9dc end_request +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e44ce2 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x0a1c9f3d mod_timer +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a372247 acpi_get_pxm +EXPORT_SYMBOL vmlinux 0x0a4a42b1 down_write_trylock +EXPORT_SYMBOL vmlinux 0x0a8bc073 get_disk +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0aa41c48 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x0ab53258 ida_pre_get +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0aeee94d __getblk +EXPORT_SYMBOL vmlinux 0x0b1426bf inet_stream_connect +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b55d4b6 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7e8f20 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x0baf117e kfifo_free +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bbb53e3 elv_rb_add +EXPORT_SYMBOL vmlinux 0x0bc56cd8 register_filesystem +EXPORT_SYMBOL vmlinux 0x0bd0d483 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x0c104030 sock_wake_async +EXPORT_SYMBOL vmlinux 0x0c1c444b seq_open_private +EXPORT_SYMBOL vmlinux 0x0c2864ff unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x0c2bab41 bdevname +EXPORT_SYMBOL vmlinux 0x0c2ca8f4 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x0c42c394 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c62628a key_validate +EXPORT_SYMBOL vmlinux 0x0c7e481c proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x0cda10c1 del_timer_sync +EXPORT_SYMBOL vmlinux 0x0ce059a7 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x0d26a76d _write_lock_irq +EXPORT_SYMBOL vmlinux 0x0d27523e blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0d2fc5a2 arp_xmit +EXPORT_SYMBOL vmlinux 0x0d3966f0 sock_no_getname +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d54149d netpoll_setup +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d668fd5 alloc_trdev +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da3d7ad mutex_lock +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e17c44c generic_file_open +EXPORT_SYMBOL vmlinux 0x0e21ee73 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x0e50b736 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0ecf574e inode_init_once +EXPORT_SYMBOL vmlinux 0x0eeac536 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0ef17062 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x0f0a9bef agp_find_bridge +EXPORT_SYMBOL vmlinux 0x0f0c6e27 vfs_writev +EXPORT_SYMBOL vmlinux 0x0f228794 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x0f2f21d7 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x0f49de46 compute_creds +EXPORT_SYMBOL vmlinux 0x0f560ad5 unbind_con_driver +EXPORT_SYMBOL vmlinux 0x0f5689eb xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x0f5a92de dcache_lock +EXPORT_SYMBOL vmlinux 0x0f83e90e current_fs_time +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb986cb unlock_page +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fefb6a5 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x0ff797bd do_munmap +EXPORT_SYMBOL vmlinux 0x10237e99 search_binary_handler +EXPORT_SYMBOL vmlinux 0x103c5321 default_llseek +EXPORT_SYMBOL vmlinux 0x1042cbb5 __up_wakeup +EXPORT_SYMBOL vmlinux 0x1048a5c5 llc_sap_open +EXPORT_SYMBOL vmlinux 0x10690587 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x109389e0 end_queued_request +EXPORT_SYMBOL vmlinux 0x10a172cc xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x10da84aa ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x11076b63 should_remove_suid +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x1178cd52 deny_write_access +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1216eb65 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x1233eab2 netdev_state_change +EXPORT_SYMBOL vmlinux 0x1243a14d kmem_cache_free +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x12afc8e4 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x12c07340 permission +EXPORT_SYMBOL vmlinux 0x12c97f9d simple_transaction_read +EXPORT_SYMBOL vmlinux 0x12e71d8c gen_new_estimator +EXPORT_SYMBOL vmlinux 0x13167b14 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x131dfa5f module_add_driver +EXPORT_SYMBOL vmlinux 0x133f4f23 __devm_release_region +EXPORT_SYMBOL vmlinux 0x13473059 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x137eedce xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x14060515 simple_empty +EXPORT_SYMBOL vmlinux 0x14083a82 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x141dbf9b acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x14343386 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x14483b56 kobject_init +EXPORT_SYMBOL vmlinux 0x1469987c ip_defrag +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x14af0cf7 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x14c3c530 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x14cfab3f framebuffer_release +EXPORT_SYMBOL vmlinux 0x14e3a9d0 read_cache_page +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x157d8c39 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x15f6402d d_alloc_root +EXPORT_SYMBOL vmlinux 0x160b44de inet_select_addr +EXPORT_SYMBOL vmlinux 0x164f3575 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x1675606f bad_dma_address +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x169081c0 input_register_device +EXPORT_SYMBOL vmlinux 0x1697c976 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x169dce58 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x16a35878 _read_unlock +EXPORT_SYMBOL vmlinux 0x16aa02ae neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x16c2acc8 kobject_add +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x171a2150 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x17260c18 skb_under_panic +EXPORT_SYMBOL vmlinux 0x172954a3 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x172c01b5 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x1734f145 agp_create_memory +EXPORT_SYMBOL vmlinux 0x176933c6 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x179aaf9c inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17aeb152 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17ff6896 pnp_resource_change +EXPORT_SYMBOL vmlinux 0x182ffc6e free_netdev +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x185b3704 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x189c5fd1 out_of_line_bug +EXPORT_SYMBOL vmlinux 0x18bb8e69 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x190e8ae8 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x191d06be mntput_no_expire +EXPORT_SYMBOL vmlinux 0x19212b75 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0x192d9d5a try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1964bf0a xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x198418c8 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19d3d119 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x19d5d20a acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x1a25b17e sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x1a28c41f dma_async_client_register +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a54b524 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x1a583490 single_release +EXPORT_SYMBOL vmlinux 0x1a75caa3 _read_lock +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1adcf965 udp_prot +EXPORT_SYMBOL vmlinux 0x1adede59 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b123bbe kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bbe15a2 do_SAK +EXPORT_SYMBOL vmlinux 0x1bfcde6f dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x1c09ce78 elevator_init +EXPORT_SYMBOL vmlinux 0x1c140b98 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x1c2c20aa agp_bridge +EXPORT_SYMBOL vmlinux 0x1c33d4e6 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x1c3a38c2 proc_bus +EXPORT_SYMBOL vmlinux 0x1c49bb4c simple_link +EXPORT_SYMBOL vmlinux 0x1c92106b tcp_ioctl +EXPORT_SYMBOL vmlinux 0x1cc54f27 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cc6ad6c tcp_shutdown +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d2766e6 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x1d763df3 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x1d7e19c4 d_invalidate +EXPORT_SYMBOL vmlinux 0x1d8a6316 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de13687 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x1de314f3 hpet_control +EXPORT_SYMBOL vmlinux 0x1e10c051 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x1e372a00 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x1e3ce8e3 skb_find_text +EXPORT_SYMBOL vmlinux 0x1e568860 open_bdev_excl +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7af4bd dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x1e8602f7 kernel_read +EXPORT_SYMBOL vmlinux 0x1e9319b5 __down_write_trylock +EXPORT_SYMBOL vmlinux 0x1e9d1b24 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x1eaea5d5 deactivate_super +EXPORT_SYMBOL vmlinux 0x1eea1319 dcache_readdir +EXPORT_SYMBOL vmlinux 0x1f0a4707 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x1f27d6d7 _write_unlock +EXPORT_SYMBOL vmlinux 0x1f5bdd28 input_event +EXPORT_SYMBOL vmlinux 0x1f73c921 _proxy_pda +EXPORT_SYMBOL vmlinux 0x1f94a351 bdi_destroy +EXPORT_SYMBOL vmlinux 0x1fac03e8 dma_ops +EXPORT_SYMBOL vmlinux 0x1fb37a9c tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x1fca4f56 pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x20336f0e pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x206309e4 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x20823a4a textsearch_register +EXPORT_SYMBOL vmlinux 0x2084d178 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x209f531e kobject_put +EXPORT_SYMBOL vmlinux 0x20abb36c dma_set_mask +EXPORT_SYMBOL vmlinux 0x20b1cb11 __breadahead +EXPORT_SYMBOL vmlinux 0x20b9bb16 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x20c8fc33 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x20c9a7b4 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x20d48709 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20fa17aa agp_enable +EXPORT_SYMBOL vmlinux 0x20fcd5da agp_copy_info +EXPORT_SYMBOL vmlinux 0x2141bd1a tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x2159562c uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x216faa53 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e5679c copy_user_generic +EXPORT_SYMBOL vmlinux 0x220f5f36 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x222fe589 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x223e3782 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x2253c959 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0x2274556d find_first_bit +EXPORT_SYMBOL vmlinux 0x227ae7d3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x2282b4e0 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x2290f882 generic_write_checks +EXPORT_SYMBOL vmlinux 0x2297f6f0 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22e5415e tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x2322660b d_alloc_anon +EXPORT_SYMBOL vmlinux 0x233432e0 set_page_dirty +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x2346ac98 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x2356f983 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x236a9da0 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x238bbc8d nf_log_unregister +EXPORT_SYMBOL vmlinux 0x238f6699 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x239d4b98 _spin_lock_bh +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24999d3d ida_init +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2515786d check_disk_change +EXPORT_SYMBOL vmlinux 0x251c2d7a kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x25503cef dget_locked +EXPORT_SYMBOL vmlinux 0x2555c0e8 ps2_command +EXPORT_SYMBOL vmlinux 0x25593169 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x2560b067 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x2568ff04 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x2575806d ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x257a5643 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x257f47f5 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258c2cae fd_install +EXPORT_SYMBOL vmlinux 0x25b40f4e tty_set_operations +EXPORT_SYMBOL vmlinux 0x25d5147c blk_run_queue +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x2605c718 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x263443c2 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x265f7ab5 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x26dbf1ec agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x27147e64 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x273ef979 subsystem_register +EXPORT_SYMBOL vmlinux 0x273f066e _write_unlock_irq +EXPORT_SYMBOL vmlinux 0x2765c598 mpage_readpage +EXPORT_SYMBOL vmlinux 0x276a9bbb pcim_pin_device +EXPORT_SYMBOL vmlinux 0x27840911 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x27a28844 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x27a7bb31 acpi_extract_package +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27af6720 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0x27b56371 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27db89c8 kobject_set_name +EXPORT_SYMBOL vmlinux 0x27e26d49 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x27e5a2a8 kobject_register +EXPORT_SYMBOL vmlinux 0x28064dd8 flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x28256c2d register_gifconf +EXPORT_SYMBOL vmlinux 0x283da781 put_page +EXPORT_SYMBOL vmlinux 0x284a1867 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x2872deaa dquot_commit_info +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x28c4758d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x290b0248 skb_store_bits +EXPORT_SYMBOL vmlinux 0x291f9bed bio_split_pool +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2985d93c sock_init_data +EXPORT_SYMBOL vmlinux 0x29ba99f3 ip_route_input +EXPORT_SYMBOL vmlinux 0x29bdf70a module_remove_driver +EXPORT_SYMBOL vmlinux 0x29c5521b nf_reinject +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a708321 __user_walk_fd +EXPORT_SYMBOL vmlinux 0x2a823e85 unregister_netdevice +EXPORT_SYMBOL vmlinux 0x2aa936ce sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x2aae7ac2 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x2ad47c12 init_timer +EXPORT_SYMBOL vmlinux 0x2b025ef1 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x2b1c34c5 kill_fasync +EXPORT_SYMBOL vmlinux 0x2b25365c d_move +EXPORT_SYMBOL vmlinux 0x2b5a54a6 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc3e7dc invalidate_partition +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0ff512 generic_read_dir +EXPORT_SYMBOL vmlinux 0x2c3916ce __secpath_destroy +EXPORT_SYMBOL vmlinux 0x2c5749e6 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x2c68971d inet_listen +EXPORT_SYMBOL vmlinux 0x2c73e1fd sock_setsockopt +EXPORT_SYMBOL vmlinux 0x2caa52dc prepare_to_wait +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cd32145 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d02a46e bit_waitqueue +EXPORT_SYMBOL vmlinux 0x2d22dcd7 have_submounts +EXPORT_SYMBOL vmlinux 0x2d342f7b vfs_readlink +EXPORT_SYMBOL vmlinux 0x2d374ddc cpu_online_map +EXPORT_SYMBOL vmlinux 0x2d660d4c netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x2daa90e5 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x2dbc1920 poll_freewait +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2ddf516d xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2e1bd7b5 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x2e2e90c6 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x2e55e789 kill_pgrp +EXPORT_SYMBOL vmlinux 0x2e64b475 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x2e6bb079 udplite_prot +EXPORT_SYMBOL vmlinux 0x2e720d10 request_firmware +EXPORT_SYMBOL vmlinux 0x2e751b16 generic_readlink +EXPORT_SYMBOL vmlinux 0x2e75b744 cpu_to_node +EXPORT_SYMBOL vmlinux 0x2eb9a0e8 _read_lock_irq +EXPORT_SYMBOL vmlinux 0x2edac58e pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x2eddfe59 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x2efdf9ec vfs_rmdir +EXPORT_SYMBOL vmlinux 0x2f094152 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x2f1df5de pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x2f5d2ac3 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x2f660c32 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fb02e52 __elv_add_request +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x300162fb acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x3012572e blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x302f15fb vfs_readv +EXPORT_SYMBOL vmlinux 0x30314e01 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x305b0443 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x3068410f tcf_exts_change +EXPORT_SYMBOL vmlinux 0x306bd3c3 vfs_fstat +EXPORT_SYMBOL vmlinux 0x3089baac dev_add_pack +EXPORT_SYMBOL vmlinux 0x30a6e28d tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x30aa1c4d locks_copy_lock +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3121e0c8 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x312d2b05 block_write_end +EXPORT_SYMBOL vmlinux 0x31398148 bio_clone +EXPORT_SYMBOL vmlinux 0x313b0a72 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x31418b92 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3162f720 block_write_full_page +EXPORT_SYMBOL vmlinux 0x3167ea19 global_flush_tlb +EXPORT_SYMBOL vmlinux 0x31a08d04 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x31ac8754 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c4cbff input_register_handle +EXPORT_SYMBOL vmlinux 0x31c88e03 set_irq_chip +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x32142e5a tcp_disconnect +EXPORT_SYMBOL vmlinux 0x3254e7fc blk_get_queue +EXPORT_SYMBOL vmlinux 0x325fd77b idr_pre_get +EXPORT_SYMBOL vmlinux 0x326ba0c4 km_report +EXPORT_SYMBOL vmlinux 0x32a806ab balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x32d01fec acpi_attach_data +EXPORT_SYMBOL vmlinux 0x33067594 __kill_fasync +EXPORT_SYMBOL vmlinux 0x332426c8 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x339eaa3f task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x33b0f82a inet_sendmsg +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x3404895f swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x340bffc2 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x343418a0 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x344336f7 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x34511c23 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x34708f91 sk_alloc +EXPORT_SYMBOL vmlinux 0x347b47f2 pci_choose_state +EXPORT_SYMBOL vmlinux 0x349711d2 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34bfce3b blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x34f1eda6 proto_unregister +EXPORT_SYMBOL vmlinux 0x3535b9f5 register_8022_client +EXPORT_SYMBOL vmlinux 0x354fea09 register_snap_client +EXPORT_SYMBOL vmlinux 0x355256f0 block_read_full_page +EXPORT_SYMBOL vmlinux 0x3559a5ba audit_log_end +EXPORT_SYMBOL vmlinux 0x35712aa3 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x359ea6a5 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x35a07e32 vfs_stat +EXPORT_SYMBOL vmlinux 0x35ad67ec hweight64 +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c9be59 ps2_drain +EXPORT_SYMBOL vmlinux 0x35f4146d remove_proc_entry +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x3646c7a6 netif_device_attach +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x3661eebe scm_detach_fds +EXPORT_SYMBOL vmlinux 0x36620e0e register_nls +EXPORT_SYMBOL vmlinux 0x366c24c4 end_that_request_first +EXPORT_SYMBOL vmlinux 0x3680f349 bio_copy_user +EXPORT_SYMBOL vmlinux 0x369ddf56 brioctl_set +EXPORT_SYMBOL vmlinux 0x36cf465e bio_pair_release +EXPORT_SYMBOL vmlinux 0x36d5355b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x36dd3a3c tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x373089c6 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x37a7f176 pci_restore_state +EXPORT_SYMBOL vmlinux 0x37b01ddd simple_getattr +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c4d412 __next_cpu +EXPORT_SYMBOL vmlinux 0x37d05780 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x38171866 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x38399743 lease_modify +EXPORT_SYMBOL vmlinux 0x387167f7 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x3880731b tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x38996495 block_commit_write +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bdec75 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38fccb9c filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x392abbc9 llc_sap_close +EXPORT_SYMBOL vmlinux 0x394ce1f7 tr_type_trans +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a47f3b skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x39a99c31 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x39d2bb2a __serio_register_port +EXPORT_SYMBOL vmlinux 0x39d38f3e cdev_add +EXPORT_SYMBOL vmlinux 0x3a02c00c sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a41a528 blk_plug_device +EXPORT_SYMBOL vmlinux 0x3a9195ea __kfree_skb +EXPORT_SYMBOL vmlinux 0x3a91e8f6 smp_call_function_mask +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa6adeb dev_change_flags +EXPORT_SYMBOL vmlinux 0x3acc25ec send_sig +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b698985 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x3b69979e dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x3b7a7339 pci_set_master +EXPORT_SYMBOL vmlinux 0x3b88910b generic_commit_write +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bf5465d __nla_put +EXPORT_SYMBOL vmlinux 0x3bfb4b64 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x3c3c37ab sync_blockdev +EXPORT_SYMBOL vmlinux 0x3c512a21 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x3c520488 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x3c8606f3 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x3c97503e __user_walk +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cc7e248 filp_close +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d290229 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x3d305522 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x3d38b0b6 kick_iocb +EXPORT_SYMBOL vmlinux 0x3d42ea12 downgrade_write +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da9525a bio_endio +EXPORT_SYMBOL vmlinux 0x3daa7415 sk_free +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dc704f1 inet_bind +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e347fb6 register_netdevice +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3ea01cca dma_async_device_register +EXPORT_SYMBOL vmlinux 0x3ec5bd0d nobh_write_begin +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ede99d3 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x3ee2d0ef vc_lock_resize +EXPORT_SYMBOL vmlinux 0x3eed306a task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x3f037674 pci_disable_device +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f072204 complete_all +EXPORT_SYMBOL vmlinux 0x3f3b2573 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x3f3d4981 get_sb_single +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f553bb4 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x3f5cec68 __free_pages +EXPORT_SYMBOL vmlinux 0x3f5db65e inet_accept +EXPORT_SYMBOL vmlinux 0x3f6c7df6 dev_load +EXPORT_SYMBOL vmlinux 0x3f757098 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fe56992 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x3fea16db bio_map_kern +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff74ffd sget +EXPORT_SYMBOL vmlinux 0x402cea3a __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x40540fc7 igrab +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40989400 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x40c68ec6 generic_make_request +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41339a4e page_to_pfn +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4193b717 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x41996424 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x41cd9d06 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x41d2b96b schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x41d70cea d_find_alias +EXPORT_SYMBOL vmlinux 0x41e9d7ac block_sync_page +EXPORT_SYMBOL vmlinux 0x41f3d3a7 __up_read +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421d6282 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x422c05d0 acpi_get_data +EXPORT_SYMBOL vmlinux 0x424d8054 pci_get_class +EXPORT_SYMBOL vmlinux 0x4255917b serio_unregister_port +EXPORT_SYMBOL vmlinux 0x42761c78 tty_register_device +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42d95919 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x42e0f806 try_to_release_page +EXPORT_SYMBOL vmlinux 0x42e754a9 posix_lock_file +EXPORT_SYMBOL vmlinux 0x42f61f96 free_task +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43165f1f generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x431a0245 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x4327f0d5 memset_io +EXPORT_SYMBOL vmlinux 0x432cc573 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x4343ee9e gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43592419 sleep_on +EXPORT_SYMBOL vmlinux 0x436aa3d3 dma_async_client_chan_request +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43800f68 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x4387a874 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43aa49f9 ip_dev_find +EXPORT_SYMBOL vmlinux 0x43bdd372 request_resource +EXPORT_SYMBOL vmlinux 0x43caec2f __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x43e109ef file_update_time +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x44040124 d_splice_alias +EXPORT_SYMBOL vmlinux 0x4404c6d6 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x446b1a3e complete_and_exit +EXPORT_SYMBOL vmlinux 0x446bc77f pci_map_rom +EXPORT_SYMBOL vmlinux 0x44809893 find_next_bit +EXPORT_SYMBOL vmlinux 0x4492f11f sync_page_range +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44f85c08 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4523edcb __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x4554922a seq_lseek +EXPORT_SYMBOL vmlinux 0x455fd57d acpi_set_register +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x45825da3 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x45b6929c read_dev_sector +EXPORT_SYMBOL vmlinux 0x45c61dca kthread_bind +EXPORT_SYMBOL vmlinux 0x45e118b2 bd_release +EXPORT_SYMBOL vmlinux 0x45e1d259 mpage_writepage +EXPORT_SYMBOL vmlinux 0x45f95184 rtnl_notify +EXPORT_SYMBOL vmlinux 0x4623d764 pnp_is_active +EXPORT_SYMBOL vmlinux 0x464d266b send_sig_info +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x474f5055 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x475f05af acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x47636033 swiotlb +EXPORT_SYMBOL vmlinux 0x476b5ccc blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x482bedd0 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48610857 sock_wfree +EXPORT_SYMBOL vmlinux 0x48d46403 unlock_rename +EXPORT_SYMBOL vmlinux 0x48e75b10 kernel_bind +EXPORT_SYMBOL vmlinux 0x48f908fb serio_open +EXPORT_SYMBOL vmlinux 0x491f642f pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x49259910 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x494ecc05 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x4966516d dev_alloc_name +EXPORT_SYMBOL vmlinux 0x498f6525 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x4997b1da mapping_tagged +EXPORT_SYMBOL vmlinux 0x499ef388 boot_cpu_data +EXPORT_SYMBOL vmlinux 0x49b1ac36 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x49c303df key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x49d50234 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x49da9a9a _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a363317 cpu_callout_map +EXPORT_SYMBOL vmlinux 0x4a39b718 mnt_unpin +EXPORT_SYMBOL vmlinux 0x4a4328c2 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x4a4d695b per_cpu__cpu_core_map +EXPORT_SYMBOL vmlinux 0x4a508427 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x4a6b09ab dst_alloc +EXPORT_SYMBOL vmlinux 0x4a7452f3 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x4aa8df0b kernel_getsockname +EXPORT_SYMBOL vmlinux 0x4ac7e263 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x4afb033f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b7a7a7b buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x4b9a290d invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x4bad8dea generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x4baff962 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bcddab6 close_bdev_excl +EXPORT_SYMBOL vmlinux 0x4bd84ddc cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x4c0f88a6 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c334e54 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x4c3af445 __request_region +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c8b008d register_con_driver +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cebc3f7 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x4d4269fe agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x4d54ba4d del_gendisk +EXPORT_SYMBOL vmlinux 0x4d679c79 unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x4d6a9f8d flush_signals +EXPORT_SYMBOL vmlinux 0x4d848836 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x4d9d9ae0 tty_devnum +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e25a4fc get_sb_nodev +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e40bf5d init_buffer +EXPORT_SYMBOL vmlinux 0x4e60d3d4 register_netdev +EXPORT_SYMBOL vmlinux 0x4e685299 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4eb730bd inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4edfcb56 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x4eeff0d9 cdev_init +EXPORT_SYMBOL vmlinux 0x4f1797d4 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x4f334f5d km_state_notify +EXPORT_SYMBOL vmlinux 0x4f3b4d4d sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x4f4ec085 skb_split +EXPORT_SYMBOL vmlinux 0x4f53eb54 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x4f6744af bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x4f91490c vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x4f9f80d3 register_binfmt +EXPORT_SYMBOL vmlinux 0x4fdd5adc cfb_fillrect +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe4582b iget_locked +EXPORT_SYMBOL vmlinux 0x50071119 xfrm_nl +EXPORT_SYMBOL vmlinux 0x500d2b4a agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50338bf8 aio_put_req +EXPORT_SYMBOL vmlinux 0x50388fe5 tty_register_driver +EXPORT_SYMBOL vmlinux 0x5045263a generic_permission +EXPORT_SYMBOL vmlinux 0x5051646c tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x505d6627 sock_map_fd +EXPORT_SYMBOL vmlinux 0x509579f5 up_write +EXPORT_SYMBOL vmlinux 0x50adc1c4 kset_register +EXPORT_SYMBOL vmlinux 0x50ba769a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x50f2ea07 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5142e71c acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x51443f34 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x5148ee2a rtc_lock +EXPORT_SYMBOL vmlinux 0x515a33c8 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x51b0b355 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x51c75aa9 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x51d7a776 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51e7b594 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x51fe9077 vc_cons +EXPORT_SYMBOL vmlinux 0x52119b1f pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x522e040e set_trace_device +EXPORT_SYMBOL vmlinux 0x5240f216 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x5252f304 __memcpy_toio +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52c63401 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x5301d74c seq_read +EXPORT_SYMBOL vmlinux 0x53088920 sock_no_poll +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5318ed49 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x535e0b5f devm_ioremap +EXPORT_SYMBOL vmlinux 0x539f548c sk_dst_check +EXPORT_SYMBOL vmlinux 0x53aa6b7f __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x53b440bf acpi_get_table +EXPORT_SYMBOL vmlinux 0x53bf2a4d nf_setsockopt +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c4b881 __kfifo_get +EXPORT_SYMBOL vmlinux 0x53ca0baf mnt_pin +EXPORT_SYMBOL vmlinux 0x53d24321 dma_supported +EXPORT_SYMBOL vmlinux 0x53d4aa2d atm_proc_root +EXPORT_SYMBOL vmlinux 0x53e033aa dev_mc_sync +EXPORT_SYMBOL vmlinux 0x53f15e04 pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x545ca567 pci_iounmap +EXPORT_SYMBOL vmlinux 0x5485bd3e is_container_init +EXPORT_SYMBOL vmlinux 0x549b81ac key_unlink +EXPORT_SYMBOL vmlinux 0x54a366c0 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x54b7cb63 subsys_create_file +EXPORT_SYMBOL vmlinux 0x54b8a3f9 per_cpu__x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x54d5b130 neigh_create +EXPORT_SYMBOL vmlinux 0x54e13487 register_framebuffer +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x55036df3 do_splice_to +EXPORT_SYMBOL vmlinux 0x550f8ade groups_alloc +EXPORT_SYMBOL vmlinux 0x552e6149 per_cpu__cpu_info +EXPORT_SYMBOL vmlinux 0x555f3de7 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55969f88 __read_lock_failed +EXPORT_SYMBOL vmlinux 0x55ab3869 atm_alloc_charge +EXPORT_SYMBOL vmlinux 0x55f554b2 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x56179c5f mtrr_add +EXPORT_SYMBOL vmlinux 0x562e1a4f fget +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x564e59c7 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x5670978b tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x56b6f512 inode_double_lock +EXPORT_SYMBOL vmlinux 0x56be4c15 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x56f9a8ff kmem_cache_create +EXPORT_SYMBOL vmlinux 0x57378c22 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x573d324f i8253_lock +EXPORT_SYMBOL vmlinux 0x57ce7846 __init_rwsem +EXPORT_SYMBOL vmlinux 0x57d540b8 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x57dc8766 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x57e103d3 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x57f46cef _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x57f54f82 udp_poll +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583b81fb simple_readpage +EXPORT_SYMBOL vmlinux 0x583c1898 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x584d69fd put_disk +EXPORT_SYMBOL vmlinux 0x584e5fd5 skb_seq_read +EXPORT_SYMBOL vmlinux 0x5850c4ed agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5878e0d0 finish_wait +EXPORT_SYMBOL vmlinux 0x5887ecf3 bio_free +EXPORT_SYMBOL vmlinux 0x58a12dfd skb_free_datagram +EXPORT_SYMBOL vmlinux 0x58aa0862 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x58bc7eb5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x58cbd111 netlink_ack +EXPORT_SYMBOL vmlinux 0x58d50a8b pci_match_id +EXPORT_SYMBOL vmlinux 0x58fce42a inet_csk_accept +EXPORT_SYMBOL vmlinux 0x591aa937 atm_dev_register +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59ca8be9 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x5a023589 new_inode +EXPORT_SYMBOL vmlinux 0x5a08fc5d set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a400b6b pci_dev_get +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5e1557 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a70bcfa llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5af1c5cd xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x5b097a08 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x5b213be3 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x5b21966c tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5b37b4db generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b7f9262 uart_register_driver +EXPORT_SYMBOL vmlinux 0x5b813158 node_to_cpumask +EXPORT_SYMBOL vmlinux 0x5ba01a2d tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x5bbd33dc blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x5bdbefb1 change_page_attr +EXPORT_SYMBOL vmlinux 0x5bf89ef4 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c857e34 idr_remove_all +EXPORT_SYMBOL vmlinux 0x5cb20435 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ce93483 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d3b6a75 neigh_lookup +EXPORT_SYMBOL vmlinux 0x5d4c8ea7 simple_sync_file +EXPORT_SYMBOL vmlinux 0x5d5b383e vmtruncate +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5de0c9e1 tcp_check_req +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e5fd64a tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x5ed6ef79 __lock_page +EXPORT_SYMBOL vmlinux 0x5efb6da0 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x5f049198 register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x5f0734ec xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x5f13b472 dma_free_coherent +EXPORT_SYMBOL vmlinux 0x5f23849e vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0x5f557540 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x5f560b32 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x5f5784fd dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x5f8ba080 pci_remove_rom +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601419d2 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x60532d7e uart_match_port +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x605eb320 prepare_binprm +EXPORT_SYMBOL vmlinux 0x6067a121 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x60716faa inode_needs_sync +EXPORT_SYMBOL vmlinux 0x60733953 vmap +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b8b255 pci_find_slot +EXPORT_SYMBOL vmlinux 0x60d2f846 seq_release_private +EXPORT_SYMBOL vmlinux 0x60da3799 sock_i_ino +EXPORT_SYMBOL vmlinux 0x60f5c666 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x60fcee3e misc_deregister +EXPORT_SYMBOL vmlinux 0x611fe25d nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x612aab83 input_free_device +EXPORT_SYMBOL vmlinux 0x61302285 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x613283c9 sysctl_pathname +EXPORT_SYMBOL vmlinux 0x614444c4 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x614cd3cd dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x61551af2 put_tty_driver +EXPORT_SYMBOL vmlinux 0x615f1469 kobject_get +EXPORT_SYMBOL vmlinux 0x618b61a7 tcf_em_register +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x625a8d4f load_nls +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x629267d0 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x62b7fb1b unregister_nls +EXPORT_SYMBOL vmlinux 0x62fc4144 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x630f43ff idr_remove +EXPORT_SYMBOL vmlinux 0x631bc3eb unlock_new_inode +EXPORT_SYMBOL vmlinux 0x633abf67 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x634cd7ee iommu_merge +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x637d7de4 boot_cpu_id +EXPORT_SYMBOL vmlinux 0x637dfe2e qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x63950cb9 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x63c67e5d skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x63dfe1b4 hpet_unregister +EXPORT_SYMBOL vmlinux 0x63e71329 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63ece925 get_io_context +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640a4787 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x6416a9d6 console_stop +EXPORT_SYMBOL vmlinux 0x64182465 do_sync_write +EXPORT_SYMBOL vmlinux 0x64368b1b call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x6463d2b0 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x647215da proc_dostring +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a5d534 unregister_netdev +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x651f23c9 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x654a9be3 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x656f3b82 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x65807b77 tcp_close +EXPORT_SYMBOL vmlinux 0x65a4bfbe __inode_dir_notify +EXPORT_SYMBOL vmlinux 0x65c9eb92 mpage_writepages +EXPORT_SYMBOL vmlinux 0x65ec467d netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x65f4c743 neigh_for_each +EXPORT_SYMBOL vmlinux 0x6611e92a drop_super +EXPORT_SYMBOL vmlinux 0x662b50ca vcc_release_async +EXPORT_SYMBOL vmlinux 0x6654958e put_filp +EXPORT_SYMBOL vmlinux 0x666b5bed input_register_handler +EXPORT_SYMBOL vmlinux 0x666fa9cf filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66ba6969 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x66d55f12 bdev_read_only +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67229cad __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x672cc550 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x676fecd6 elv_add_request +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67f2f930 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x67f36b7c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x680a881f dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x681ed1ed _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x682c1249 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x686f1325 hpet_alloc +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x687fb117 skb_dequeue +EXPORT_SYMBOL vmlinux 0x68a490f3 elevator_exit +EXPORT_SYMBOL vmlinux 0x69005013 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x696b7b06 kthread_stop +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69864dd7 audit_log_format +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x699ce795 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69ba1d83 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69eed533 tc_classify +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5418f7 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f9b4 input_open_device +EXPORT_SYMBOL vmlinux 0x6a936f3e f_setown +EXPORT_SYMBOL vmlinux 0x6aa309a2 genl_register_ops +EXPORT_SYMBOL vmlinux 0x6ab227c0 agp_backend_release +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6afbe0a9 __inet6_hash +EXPORT_SYMBOL vmlinux 0x6b0a219b sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b38a211 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b621b84 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x6b768ff8 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x6b7c0e05 acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0x6b89dc2d cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6b9b1fb8 vfs_read +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6bc7b899 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x6c08ec85 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x6c53ae8e __page_symlink +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c7d13a2 remove_suid +EXPORT_SYMBOL vmlinux 0x6c8e76b8 set_user_nice +EXPORT_SYMBOL vmlinux 0x6cbb517d unregister_qdisc +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6ccf65f1 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x6cfefea4 eth_header +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d1ced27 vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d33adf8 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d47d90d groups_free +EXPORT_SYMBOL vmlinux 0x6db02ed8 make_bad_inode +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6deb8242 add_to_page_cache +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1270a3 arp_tbl +EXPORT_SYMBOL vmlinux 0x6e1a4bbb udp_hash_lock +EXPORT_SYMBOL vmlinux 0x6e1c49f8 d_instantiate +EXPORT_SYMBOL vmlinux 0x6e522f6a pci_set_mwi +EXPORT_SYMBOL vmlinux 0x6e524de2 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8c9bb3 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x6e9d5d90 _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eae7335 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x6ee9eed1 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x6ef56f31 release_firmware +EXPORT_SYMBOL vmlinux 0x6f4a64a4 set_disk_ro +EXPORT_SYMBOL vmlinux 0x6f6be5c4 module_put +EXPORT_SYMBOL vmlinux 0x6f747fde tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x6f7d701c blk_unplug +EXPORT_SYMBOL vmlinux 0x6f8fa3cd down_write +EXPORT_SYMBOL vmlinux 0x6faa475a cond_resched_lock +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd81000 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x6febdc3c dcache_dir_close +EXPORT_SYMBOL vmlinux 0x6ff0d0f0 cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x701f582f __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x701f9428 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x704960cc pci_save_state +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705d396b dev_remove_pack +EXPORT_SYMBOL vmlinux 0x708aa14c rtnl_create_link +EXPORT_SYMBOL vmlinux 0x70991421 key_type_keyring +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x711659f3 vm_insert_page +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x713854bf copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x714da8da fput +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x719c9c6a dump_trace +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71bc41ed fb_set_suspend +EXPORT_SYMBOL vmlinux 0x72199be3 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b2d39b fb_pan_display +EXPORT_SYMBOL vmlinux 0x72b54c10 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x72b760ec notify_change +EXPORT_SYMBOL vmlinux 0x72c5533b vfs_mknod +EXPORT_SYMBOL vmlinux 0x72fc68d1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x734a698a tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x736918c3 skb_copy +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x739ee22d gen_pool_add +EXPORT_SYMBOL vmlinux 0x73b976bb kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x73bcd634 mutex_unlock +EXPORT_SYMBOL vmlinux 0x73d7679f input_grab_device +EXPORT_SYMBOL vmlinux 0x73eb296e blk_sync_queue +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740c37b7 mempool_create_node +EXPORT_SYMBOL vmlinux 0x741f1f6e hpet_register +EXPORT_SYMBOL vmlinux 0x7433a0f5 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x74400768 simple_write_end +EXPORT_SYMBOL vmlinux 0x7458486e dquot_acquire +EXPORT_SYMBOL vmlinux 0x7471fe5c sk_wait_data +EXPORT_SYMBOL vmlinux 0x74810345 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74ab784a netif_receive_skb +EXPORT_SYMBOL vmlinux 0x74b847c8 alloc_disk +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x7503fc8c console_start +EXPORT_SYMBOL vmlinux 0x750a426c truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x758d4750 sock_create +EXPORT_SYMBOL vmlinux 0x759e382e tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x75bff6c8 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x75e64fa8 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x75f6cf95 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x75fe87ae pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7627dcda open_exec +EXPORT_SYMBOL vmlinux 0x7629360e bmap +EXPORT_SYMBOL vmlinux 0x7646f48b fasync_helper +EXPORT_SYMBOL vmlinux 0x7655149d pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x765a5c3a con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x7660bc1e names_cachep +EXPORT_SYMBOL vmlinux 0x766729c8 inet_release +EXPORT_SYMBOL vmlinux 0x76977269 register_console +EXPORT_SYMBOL vmlinux 0x76a8c91f pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76dcaf2d neigh_table_init +EXPORT_SYMBOL vmlinux 0x76e75dbe pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x7756ef39 page_put_link +EXPORT_SYMBOL vmlinux 0x776d3794 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x778f61ec xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x77a108df _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x77a593f8 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x77a61af7 register_key_type +EXPORT_SYMBOL vmlinux 0x77d06ac6 _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x77e58466 d_alloc +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x78099fd7 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x780e240a pci_get_slot +EXPORT_SYMBOL vmlinux 0x78144322 genl_sock +EXPORT_SYMBOL vmlinux 0x781b2611 get_super +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x78351c48 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x7879c8b1 submit_bio +EXPORT_SYMBOL vmlinux 0x7891d2ff ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x78951588 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x78a484c9 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x78a4fd3a tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x78c9349d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x78da6620 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x7901efd5 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x79127cac d_path +EXPORT_SYMBOL vmlinux 0x794c1398 dmi_check_system +EXPORT_SYMBOL vmlinux 0x7958b25d tty_vhangup +EXPORT_SYMBOL vmlinux 0x797435d0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x797bc976 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x79884dd1 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x798a5b76 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79b70d96 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x79c838d4 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x79e1892d xfrm_register_type +EXPORT_SYMBOL vmlinux 0x7a0ffe0f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x7a1c2c6b blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x7a45a680 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x7a7ef853 __down_failed +EXPORT_SYMBOL vmlinux 0x7a848702 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x7ab09b95 __downgrade_write +EXPORT_SYMBOL vmlinux 0x7ac46eb9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x7ade7a66 unlock_super +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7af7daba sock_create_kern +EXPORT_SYMBOL vmlinux 0x7b04cc91 mempool_destroy +EXPORT_SYMBOL vmlinux 0x7b45ed78 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b957c93 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x7b9d31c8 ether_setup +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bbb26e0 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x7bbb3b4c pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x7bc3d86a tcf_hash_release +EXPORT_SYMBOL vmlinux 0x7bd0eb76 mpage_readpages +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c395d68 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4f1ceb pci_dev_driver +EXPORT_SYMBOL vmlinux 0x7c52d83e netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x7c588aea __down_write +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c91a314 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7ca5f7d3 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb79841 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x7ccca470 input_flush_device +EXPORT_SYMBOL vmlinux 0x7ce32625 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x7ce53c7a qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x7cf55143 dma_pool_free +EXPORT_SYMBOL vmlinux 0x7cf55aef __bforget +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d221a6b down_read_trylock +EXPORT_SYMBOL vmlinux 0x7d51ced2 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x7d532d46 kill_litter_super +EXPORT_SYMBOL vmlinux 0x7d656775 dquot_free_space +EXPORT_SYMBOL vmlinux 0x7d785a4c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d85b225 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x7d8f53b6 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7d953ca3 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x7dcc49c6 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7dd1dc47 cpu_present_map +EXPORT_SYMBOL vmlinux 0x7dd6bd0f blk_insert_request +EXPORT_SYMBOL vmlinux 0x7de3316e get_user_pages +EXPORT_SYMBOL vmlinux 0x7e5fe7a1 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x7e8b0311 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7ecdddbd __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x7ef24443 bd_claim +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f4a8675 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x7f4d6d21 elv_rb_del +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fdb2ed3 sysctl_data +EXPORT_SYMBOL vmlinux 0x8014ae22 nf_log_register +EXPORT_SYMBOL vmlinux 0x802d14fa task_session_nr_ns +EXPORT_SYMBOL vmlinux 0x8087ca65 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x8094204a wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x80c7f9fb udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x80f5d756 iput +EXPORT_SYMBOL vmlinux 0x8133e77f netdev_set_master +EXPORT_SYMBOL vmlinux 0x81455db5 end_dequeued_request +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x815f461f idr_replace +EXPORT_SYMBOL vmlinux 0x8172273b skb_queue_head +EXPORT_SYMBOL vmlinux 0x81bebcd2 inet_put_port +EXPORT_SYMBOL vmlinux 0x81e5f018 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82040440 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82075408 fb_show_logo +EXPORT_SYMBOL vmlinux 0x8219313c vfs_create +EXPORT_SYMBOL vmlinux 0x821f9635 take_over_console +EXPORT_SYMBOL vmlinux 0x8231ea31 inet_frags_init +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8253f29e atm_dev_lookup +EXPORT_SYMBOL vmlinux 0x826427af acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x8282dee8 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x82acfb8a __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x82ca6845 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x82cc042c pci_enable_wake +EXPORT_SYMBOL vmlinux 0x82e3f759 blk_free_tags +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x8330333f compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x837ff60a page_symlink +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x8381c2a3 block_truncate_page +EXPORT_SYMBOL vmlinux 0x83a2c80c get_empty_filp +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83e2a4cf generic_file_mmap +EXPORT_SYMBOL vmlinux 0x83e84bbe __mod_timer +EXPORT_SYMBOL vmlinux 0x83f2bba6 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x84142d04 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x84250e9b acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x8464e21e nf_getsockopt +EXPORT_SYMBOL vmlinux 0x847b9211 __kfifo_put +EXPORT_SYMBOL vmlinux 0x84ca4dcb dquot_initialize +EXPORT_SYMBOL vmlinux 0x84e663f9 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x851c2799 register_exec_domain +EXPORT_SYMBOL vmlinux 0x85777f05 key_put +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85af4579 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x85b28cc8 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e3f8b9 proc_root +EXPORT_SYMBOL vmlinux 0x86034cf8 dq_data_lock +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x863d99bb thaw_bdev +EXPORT_SYMBOL vmlinux 0x8659f63b mempool_create +EXPORT_SYMBOL vmlinux 0x8660febb inet_del_protocol +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x867b569a setup_arg_pages +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869d9f18 clear_inode +EXPORT_SYMBOL vmlinux 0x86bff09f inet_register_protosw +EXPORT_SYMBOL vmlinux 0x86edfd3a redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8710888f kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x87468ab1 generic_removexattr +EXPORT_SYMBOL vmlinux 0x874aea72 acpi_os_signal +EXPORT_SYMBOL vmlinux 0x874c45e7 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x875e1a1b profile_pc +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x8798efc7 skb_over_panic +EXPORT_SYMBOL vmlinux 0x87cb71f5 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881f2099 dev_mc_add +EXPORT_SYMBOL vmlinux 0x88e27776 registered_fb +EXPORT_SYMBOL vmlinux 0x891f310f udp_get_port +EXPORT_SYMBOL vmlinux 0x8943904c get_agp_version +EXPORT_SYMBOL vmlinux 0x896e4c7d vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89877da8 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x8990caae pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x89ac31f5 set_anon_super +EXPORT_SYMBOL vmlinux 0x89b51241 vfs_rename +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a24e7a7 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x8a67f680 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x8a6ec888 may_umount_tree +EXPORT_SYMBOL vmlinux 0x8a794c3e tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a90d932 allocate_resource +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ae7582f pci_assign_resource +EXPORT_SYMBOL vmlinux 0x8aef7a67 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x8b2578f8 serio_rescan +EXPORT_SYMBOL vmlinux 0x8b5f916b km_state_expired +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b96293e ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x8badfb67 seq_open +EXPORT_SYMBOL vmlinux 0x8bb33e7d __release_region +EXPORT_SYMBOL vmlinux 0x8bb690b9 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x8bcbdbd0 __lock_buffer +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c6d3f62 security_inode_permission +EXPORT_SYMBOL vmlinux 0x8c70beff vfs_write +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cc21627 blk_init_tags +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8ce5da8f blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x8cf79ac0 simple_release_fs +EXPORT_SYMBOL vmlinux 0x8cfb0d17 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x8cff0236 arp_create +EXPORT_SYMBOL vmlinux 0x8d1d516b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x8d33c52c unregister_filesystem +EXPORT_SYMBOL vmlinux 0x8d35f070 neigh_destroy +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d6fad9a uart_suspend_port +EXPORT_SYMBOL vmlinux 0x8d87ff9d tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8dd0383f idr_get_new +EXPORT_SYMBOL vmlinux 0x8de2c129 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e020513 pci_request_regions +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e1eb33e cfb_imageblit +EXPORT_SYMBOL vmlinux 0x8e5233f2 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8e94a57d ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x8eddb2eb kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x8ef3c56a d_delete +EXPORT_SYMBOL vmlinux 0x8f0434cd elv_next_request +EXPORT_SYMBOL vmlinux 0x8f0b7922 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x8f1c7b99 blkdev_put +EXPORT_SYMBOL vmlinux 0x8f3704de __scm_destroy +EXPORT_SYMBOL vmlinux 0x8f482cdc elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x8f6a05a6 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f761b5f dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x8f82606a eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fb08a30 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x8fb708cc kfree_skb +EXPORT_SYMBOL vmlinux 0x8fe39fe8 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x904bc75e textsearch_unregister +EXPORT_SYMBOL vmlinux 0x90692564 uart_resume_port +EXPORT_SYMBOL vmlinux 0x9070b3f2 ioport_resource +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90c0599f memnode +EXPORT_SYMBOL vmlinux 0x912f68e7 iget5_locked +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91703159 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x91835959 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x9189b249 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x91ca8959 acpi_get_register +EXPORT_SYMBOL vmlinux 0x91d6536d __mutex_init +EXPORT_SYMBOL vmlinux 0x920c49ab rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x9216b788 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x925336a6 proto_register +EXPORT_SYMBOL vmlinux 0x9264047e serio_interrupt +EXPORT_SYMBOL vmlinux 0x92663a11 dquot_commit +EXPORT_SYMBOL vmlinux 0x927e7d14 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x927e989f gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x92948092 blk_register_region +EXPORT_SYMBOL vmlinux 0x92deef58 netlink_unicast +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9323ccc9 inet_getname +EXPORT_SYMBOL vmlinux 0x9327f992 proc_mkdir +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x9343c22f ip_getsockopt +EXPORT_SYMBOL vmlinux 0x934fdeb9 read_cache_pages +EXPORT_SYMBOL vmlinux 0x93590a1d generate_resume_trace +EXPORT_SYMBOL vmlinux 0x938050a7 dst_destroy +EXPORT_SYMBOL vmlinux 0x9394c9a6 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a9d7ac proc_root_driver +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93e7d16b gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x93f701de gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9412a4f0 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x945bc6a7 copy_from_user +EXPORT_SYMBOL vmlinux 0x94635182 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x946b09ba sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x949335b7 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x94dfcaf7 register_atm_ioctl +EXPORT_SYMBOL vmlinux 0x9501c0fd kernel_connect +EXPORT_SYMBOL vmlinux 0x9513d969 per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955a50a2 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x9566cb47 block_write_begin +EXPORT_SYMBOL vmlinux 0x95c185c3 subsystem_unregister +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95d04bf0 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x95d518d3 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x95e0a76b init_level4_pgt +EXPORT_SYMBOL vmlinux 0x95fde4e4 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0x9617fc45 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x9629eea2 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x967a01b8 unload_nls +EXPORT_SYMBOL vmlinux 0x967c2a85 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x96aebedc dev_get_by_index +EXPORT_SYMBOL vmlinux 0x96bb273e input_release_device +EXPORT_SYMBOL vmlinux 0x96d9a3f0 filemap_flush +EXPORT_SYMBOL vmlinux 0x96f98034 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x9701dd81 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x971f00d1 netdev_features_change +EXPORT_SYMBOL vmlinux 0x972b9957 sock_release +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9760a04f module_refcount +EXPORT_SYMBOL vmlinux 0x977b7720 sk_run_filter +EXPORT_SYMBOL vmlinux 0x9791a5e6 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x97bb35b8 find_get_page +EXPORT_SYMBOL vmlinux 0x97d8c054 end_that_request_last +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97de7ca8 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x98398407 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x98616140 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98a08a06 __alloc_pages +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98b1cdef pci_find_capability +EXPORT_SYMBOL vmlinux 0x98b1f5e8 del_timer +EXPORT_SYMBOL vmlinux 0x98bede92 tcp_unhash +EXPORT_SYMBOL vmlinux 0x98d48c31 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x9900fb49 vfs_quota_on +EXPORT_SYMBOL vmlinux 0x990cd3e2 inet_ioctl +EXPORT_SYMBOL vmlinux 0x9931935b netif_device_detach +EXPORT_SYMBOL vmlinux 0x994e1983 __wake_up +EXPORT_SYMBOL vmlinux 0x997efe21 key_link +EXPORT_SYMBOL vmlinux 0x9988d677 generic_osync_inode +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99a3bf7b pci_release_regions +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a614628 __first_cpu +EXPORT_SYMBOL vmlinux 0x9a6e8323 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x9aff68ea udp_disconnect +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b562e99 nf_log_packet +EXPORT_SYMBOL vmlinux 0x9b59d54f seq_path +EXPORT_SYMBOL vmlinux 0x9b5a6302 give_up_console +EXPORT_SYMBOL vmlinux 0x9b9edafd agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc4e6f1 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9bffbdda compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c06bda0 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x9c072dc6 complete_request_key +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c1b8bb3 input_inject_event +EXPORT_SYMBOL vmlinux 0x9c39233b init_net +EXPORT_SYMBOL vmlinux 0x9c7725b4 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x9c8b1804 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x9c92938a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc782ae generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x9cdfa1fa add_disk +EXPORT_SYMBOL vmlinux 0x9ce9f26f hippi_type_trans +EXPORT_SYMBOL vmlinux 0x9d05591b sock_no_bind +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d8c9456 udplite_get_port +EXPORT_SYMBOL vmlinux 0x9d9aed5c reset_files_struct +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dc2fc8d vfs_follow_link +EXPORT_SYMBOL vmlinux 0x9dcb4a82 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9de71d0e pcim_iounmap +EXPORT_SYMBOL vmlinux 0x9e26c4c7 set_bh_page +EXPORT_SYMBOL vmlinux 0x9e535d44 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x9e618ca5 iunique +EXPORT_SYMBOL vmlinux 0x9e6fe266 find_next_zero_string +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9a9f46 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9ed02880 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x9ed0f36e con_is_bound +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f271467 put_io_context +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f37fdc1 serio_reconnect +EXPORT_SYMBOL vmlinux 0x9f40fef2 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x9f7edc6d tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x9f854fc0 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fbf3a64 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fe11fe5 pci_dev_put +EXPORT_SYMBOL vmlinux 0x9fe1a258 bio_split +EXPORT_SYMBOL vmlinux 0x9fe286a0 per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0x9ff4cac4 bdget +EXPORT_SYMBOL vmlinux 0xa0118ccf dma_pool_create +EXPORT_SYMBOL vmlinux 0xa01b8d0c pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xa01ecd7c end_page_writeback +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b91d92 cont_write_begin +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12254c9 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa15337f4 blk_get_request +EXPORT_SYMBOL vmlinux 0xa16c32e3 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0xa17295b6 vfs_llseek +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1f0c4f0 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21089e3 remote_llseek +EXPORT_SYMBOL vmlinux 0xa25203b6 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xa257bfcc tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xa2593fbb alloc_file +EXPORT_SYMBOL vmlinux 0xa274238d dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xa28b6719 alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xa29e0165 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xa2a1e5c9 _write_lock_bh +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2a654db agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xa2fbf015 netlink_dump_start +EXPORT_SYMBOL vmlinux 0xa319667a per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xa31f172d __copy_from_user_inatomic +EXPORT_SYMBOL vmlinux 0xa3254a47 tty_name +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3424439 tty_mutex +EXPORT_SYMBOL vmlinux 0xa35412d3 kill_block_super +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37ef844 cpu_possible_map +EXPORT_SYMBOL vmlinux 0xa395a772 kfifo_init +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3bbcd80 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xa3bfdf14 uts_sem +EXPORT_SYMBOL vmlinux 0xa3cb2e30 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xa3dd4d77 sock_no_accept +EXPORT_SYMBOL vmlinux 0xa3f22c43 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa441f130 dentry_open +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ee7757 free_buffer_head +EXPORT_SYMBOL vmlinux 0xa5255177 __down_read_trylock +EXPORT_SYMBOL vmlinux 0xa52d7c01 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa54e64c3 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa57ed34d blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xa57f0a13 bioset_free +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59c0666 acpi_strict +EXPORT_SYMBOL vmlinux 0xa5a166e0 ll_rw_block +EXPORT_SYMBOL vmlinux 0xa65445c1 wake_up_process +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6ec515f audit_log_start +EXPORT_SYMBOL vmlinux 0xa6f2fc7e filp_open +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa722ec3f sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xa7359913 neigh_update +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa7728e3d lock_rename +EXPORT_SYMBOL vmlinux 0xa775357e __nla_reserve +EXPORT_SYMBOL vmlinux 0xa7774ceb blk_execute_rq +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7cbbe73 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xa7de6353 up_read +EXPORT_SYMBOL vmlinux 0xa806202b d_validate +EXPORT_SYMBOL vmlinux 0xa80d970e update_region +EXPORT_SYMBOL vmlinux 0xa816ed66 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xa830e6a1 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xa83cd68c alloc_fddidev +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa888cb75 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xa8e69963 bio_put +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa958368d locks_init_lock +EXPORT_SYMBOL vmlinux 0xa9be76e8 clocksource_register +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa1b231d blk_remove_plug +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaab06af8 _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaae38a3b kset_unregister +EXPORT_SYMBOL vmlinux 0xaaeb10d3 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xaafd61c4 _cpu_pda +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab2cd386 add_wait_queue +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab8159f5 ps2_init +EXPORT_SYMBOL vmlinux 0xabc24456 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabfa185a xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xac0ed34b simple_prepare_write +EXPORT_SYMBOL vmlinux 0xac108e17 __napi_schedule +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac8dc39c compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xac95d0de kernel_sendpage +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacedf24d nf_hook_slow +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad4bff79 __devm_request_region +EXPORT_SYMBOL vmlinux 0xad53bc77 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xad6d8b01 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xad79752d br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0xad8de1b3 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0xad91457e simple_rmdir +EXPORT_SYMBOL vmlinux 0xada7e230 bdput +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb068c0 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xadb7a023 complete +EXPORT_SYMBOL vmlinux 0xae1d1fd4 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xae3b8be2 ilookup +EXPORT_SYMBOL vmlinux 0xae4888a3 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0xae57afff call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0xae6167e9 elv_rb_find +EXPORT_SYMBOL vmlinux 0xae715be4 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xae72252f d_alloc_name +EXPORT_SYMBOL vmlinux 0xae7680b9 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xaea9bcba simple_dir_operations +EXPORT_SYMBOL vmlinux 0xaec28cd6 fb_class +EXPORT_SYMBOL vmlinux 0xaeed90a3 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xaf1bba85 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf290324 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xaf487787 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xaf52c2d3 iommu_bio_merge +EXPORT_SYMBOL vmlinux 0xaf6ac30a sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xaf77a0f4 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xafaab79a generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0xafe67f0b sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb0148425 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xb027039d tcp_child_process +EXPORT_SYMBOL vmlinux 0xb03bd0fc pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xb04a54ff gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb0560132 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ea668d init_task +EXPORT_SYMBOL vmlinux 0xb0ea6a8f sk_stream_error +EXPORT_SYMBOL vmlinux 0xb10211bf inode_set_bytes +EXPORT_SYMBOL vmlinux 0xb10731d1 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xb1157b2a register_chrdev +EXPORT_SYMBOL vmlinux 0xb116807f vfs_lstat +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb14deb95 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xb1512264 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xb181c66a locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d06db4 blk_put_request +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb20d6497 nf_afinfo +EXPORT_SYMBOL vmlinux 0xb232bfdd pneigh_lookup +EXPORT_SYMBOL vmlinux 0xb234ca2a vfs_getattr +EXPORT_SYMBOL vmlinux 0xb2780f36 mempool_alloc +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb2a037a1 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xb2a79e5a unlock_buffer +EXPORT_SYMBOL vmlinux 0xb2af36a7 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xb2b6d11f serio_close +EXPORT_SYMBOL vmlinux 0xb2be638a dma_chan_cleanup +EXPORT_SYMBOL vmlinux 0xb2e95756 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3081ad0 __scm_send +EXPORT_SYMBOL vmlinux 0xb31261f0 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xb32242d3 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb32ef1a8 pci_enable_msi +EXPORT_SYMBOL vmlinux 0xb3300b90 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb34e16ac seq_release +EXPORT_SYMBOL vmlinux 0xb35fb17b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xb37e8583 inode_setattr +EXPORT_SYMBOL vmlinux 0xb39026e4 mempool_resize +EXPORT_SYMBOL vmlinux 0xb39e7e53 nf_register_hook +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b3f7ed __down_read +EXPORT_SYMBOL vmlinux 0xb3d2bf12 find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xb3e39378 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xb3f0bae3 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xb4039c09 handle_sysrq +EXPORT_SYMBOL vmlinux 0xb405d105 km_query +EXPORT_SYMBOL vmlinux 0xb40e7694 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xb410bae0 eth_header_parse +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb45318b7 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb46b18ae __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xb46bad40 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xb48d851b vfs_permission +EXPORT_SYMBOL vmlinux 0xb4913998 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb49a27e2 file_fsync +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4f7f562 simple_unlink +EXPORT_SYMBOL vmlinux 0xb501356a start_tty +EXPORT_SYMBOL vmlinux 0xb504d69e d_genocide +EXPORT_SYMBOL vmlinux 0xb515c3b6 unregister_console +EXPORT_SYMBOL vmlinux 0xb51acebb __invalidate_device +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a5c77c pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xb5ad5008 nla_put +EXPORT_SYMBOL vmlinux 0xb5b8f404 cdev_alloc +EXPORT_SYMBOL vmlinux 0xb5b96588 path_release +EXPORT_SYMBOL vmlinux 0xb5b9d827 kfifo_alloc +EXPORT_SYMBOL vmlinux 0xb5c49531 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xb5ce44a4 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5ea1a1d elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb62f649e unregister_con_driver +EXPORT_SYMBOL vmlinux 0xb66ba8ed pfn_to_page +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb691d7b6 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xb69335ab dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xb6c69583 qdisc_reset +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d85bbd llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0xb6f3b841 vfs_quota_sync +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb7581ec6 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb791559e shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xb7dd9fdb agp_put_bridge +EXPORT_SYMBOL vmlinux 0xb7ef9f6b qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xb80330df kmalloc_caches +EXPORT_SYMBOL vmlinux 0xb852314c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8d17d14 dev_get_flags +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb90fd358 keyring_clear +EXPORT_SYMBOL vmlinux 0xb95d6ecb d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98af4bb write_one_page +EXPORT_SYMBOL vmlinux 0xb9db32bc ht_create_irq +EXPORT_SYMBOL vmlinux 0xb9e38d4f skb_insert +EXPORT_SYMBOL vmlinux 0xb9fc6dac pci_release_region +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba374ada __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xba3cf429 idr_for_each +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba54e8e8 register_qdisc +EXPORT_SYMBOL vmlinux 0xba882b5b ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbaad9942 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xbada1d17 netpoll_poll +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb24dec6 datagram_poll +EXPORT_SYMBOL vmlinux 0xbb5a4902 write_cache_pages +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb7415ff skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xbb83beea blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbcbfb00 input_set_capability +EXPORT_SYMBOL vmlinux 0xbc254483 atm_init_aal5 +EXPORT_SYMBOL vmlinux 0xbc846ae9 km_policy_notify +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbd3cc268 submit_bh +EXPORT_SYMBOL vmlinux 0xbd55f158 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xbda78af6 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdd069ea inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xbdeaf41a percpu_counter_init +EXPORT_SYMBOL vmlinux 0xbe178b32 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xbe499d81 copy_to_user +EXPORT_SYMBOL vmlinux 0xbe75549f tty_unregister_device +EXPORT_SYMBOL vmlinux 0xbe92abd8 inode_double_unlock +EXPORT_SYMBOL vmlinux 0xbeb6aa61 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf3468de unregister_key_type +EXPORT_SYMBOL vmlinux 0xbf413975 redraw_screen +EXPORT_SYMBOL vmlinux 0xbf462c5a xfrm_replay_check +EXPORT_SYMBOL vmlinux 0xbf4dd0d7 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xbf5e3d27 migrate_page +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe2ce02 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xbff27db6 kobject_unregister +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc00f1d9d inet_shutdown +EXPORT_SYMBOL vmlinux 0xc0196af1 struct_module +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc04ae1c3 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc05fff17 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xc06cecd5 __break_lease +EXPORT_SYMBOL vmlinux 0xc06fff0c dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xc0793b20 blk_start_queue +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0b0c16a tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xc0bac04b kobject_del +EXPORT_SYMBOL vmlinux 0xc0bb539f vfs_readdir +EXPORT_SYMBOL vmlinux 0xc0cc1960 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0xc0e4e14a sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xc0fb394c grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xc1233857 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xc130ec0b swiotlb_map_single +EXPORT_SYMBOL vmlinux 0xc15f7978 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xc16fe12d __memcpy +EXPORT_SYMBOL vmlinux 0xc175bdbc blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xc177db9c test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xc1bd4f47 block_prepare_write +EXPORT_SYMBOL vmlinux 0xc1f7bb03 cdev_del +EXPORT_SYMBOL vmlinux 0xc21bd822 poll_initwait +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc25327e2 key_task_permission +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2626db9 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xc2a9b022 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f5ef06 devm_free_irq +EXPORT_SYMBOL vmlinux 0xc3356c96 __f_setown +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b0282a acpi_bus_start +EXPORT_SYMBOL vmlinux 0xc3df6d78 icmp_send +EXPORT_SYMBOL vmlinux 0xc3fbe25c lookup_one_len +EXPORT_SYMBOL vmlinux 0xc4010959 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xc41188d3 __seq_open_private +EXPORT_SYMBOL vmlinux 0xc4527d81 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xc459b4b4 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0xc4721c0e __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xc4952d88 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a6a334 generic_writepages +EXPORT_SYMBOL vmlinux 0xc4af8865 unregister_8022_client +EXPORT_SYMBOL vmlinux 0xc4bbe98e km_policy_expired +EXPORT_SYMBOL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL vmlinux 0xc4fad9d1 bdi_init +EXPORT_SYMBOL vmlinux 0xc5263736 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc559a094 __pagevec_release +EXPORT_SYMBOL vmlinux 0xc55f7dc7 _write_trylock +EXPORT_SYMBOL vmlinux 0xc56d0f80 skb_clone +EXPORT_SYMBOL vmlinux 0xc5c18980 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f5c807 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xc633053f pci_request_region +EXPORT_SYMBOL vmlinux 0xc63fa5a5 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6a5eb83 posix_acl_permission +EXPORT_SYMBOL vmlinux 0xc6b0f0df pci_get_device +EXPORT_SYMBOL vmlinux 0xc6b35c2f lock_sock_nested +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6b3e066 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xc6c49f61 file_permission +EXPORT_SYMBOL vmlinux 0xc6e042df __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xc7170ae5 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73f2ec4 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc7448aa1 set_device_ro +EXPORT_SYMBOL vmlinux 0xc7468985 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xc76a7369 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xc79e571d load_gs_index +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc8066b60 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xc8148e3e flush_tlb_current_task +EXPORT_SYMBOL vmlinux 0xc8424328 dev_driver_string +EXPORT_SYMBOL vmlinux 0xc85f2e1f mutex_trylock +EXPORT_SYMBOL vmlinux 0xc874185b tcf_register_action +EXPORT_SYMBOL vmlinux 0xc875befb vc_resize +EXPORT_SYMBOL vmlinux 0xc89e7347 arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0xc8b35c22 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc8cdc337 generic_write_end +EXPORT_SYMBOL vmlinux 0xc921aec2 dquot_release +EXPORT_SYMBOL vmlinux 0xc925d269 __rta_fill +EXPORT_SYMBOL vmlinux 0xc95cafdf key_revoke +EXPORT_SYMBOL vmlinux 0xc96e57f0 put_files_struct +EXPORT_SYMBOL vmlinux 0xc99802cd bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b27289 rtc_control +EXPORT_SYMBOL vmlinux 0xc9c38625 kernel_listen +EXPORT_SYMBOL vmlinux 0xc9d4a688 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xc9fd878f acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xca0720e1 posix_test_lock +EXPORT_SYMBOL vmlinux 0xca0e2d40 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0xca1197ed node_states +EXPORT_SYMBOL vmlinux 0xca2a54e9 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xcad3ba74 set_blocksize +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb5370f9 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xcb634856 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xcb664bbe __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb886a10 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xcbe21145 inode_change_ok +EXPORT_SYMBOL vmlinux 0xcbfe4d17 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc1072a3 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc402f5a pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc53c56d __brelse +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccc5ff7a acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xccd52b12 __down_failed_interruptible +EXPORT_SYMBOL vmlinux 0xccf54602 create_proc_entry +EXPORT_SYMBOL vmlinux 0xccf9024a inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xcd1a9e7f find_vma +EXPORT_SYMBOL vmlinux 0xcd1cfc15 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xcd4f46e1 seq_printf +EXPORT_SYMBOL vmlinux 0xcd69e2cf udp_proc_register +EXPORT_SYMBOL vmlinux 0xcd8b8e6b dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xcda31108 proc_dointvec +EXPORT_SYMBOL vmlinux 0xcde05d21 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xcde6edce blk_recount_segments +EXPORT_SYMBOL vmlinux 0xce045124 km_waitq +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce43aca7 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce87a643 idr_destroy +EXPORT_SYMBOL vmlinux 0xcea04012 audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xcee900fa do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xcef9e0db generic_fillattr +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf047c83 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0xcf4a13fd kill_pid +EXPORT_SYMBOL vmlinux 0xcf813c1a elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xcfc500eb proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xd0052c0a no_llseek +EXPORT_SYMBOL vmlinux 0xd007f203 sock_i_uid +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02941b7 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd06f99ab pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0cf68da __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd10d6545 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xd1406075 inet_frag_find +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd156dcd4 noop_qdisc +EXPORT_SYMBOL vmlinux 0xd17df857 fb_find_mode +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1994c61 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xd19bb294 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xd1a5ffa9 avail_to_resrv_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd1d1c79c __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f91bcd dev_base_lock +EXPORT_SYMBOL vmlinux 0xd1fba2dd __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd262982a kthread_create +EXPORT_SYMBOL vmlinux 0xd26e53ee find_inode_number +EXPORT_SYMBOL vmlinux 0xd28e1366 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2bdddf2 ida_destroy +EXPORT_SYMBOL vmlinux 0xd34f0c62 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd35a0f42 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xd36c8dbb swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xd372363c __down_write_nested +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3f60824 bioset_create +EXPORT_SYMBOL vmlinux 0xd401460d deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0xd429adf0 find_task_by_pid +EXPORT_SYMBOL vmlinux 0xd42b7232 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xd457bb88 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xd4605157 keyring_search +EXPORT_SYMBOL vmlinux 0xd497f94e swiotlb_unmap_single +EXPORT_SYMBOL vmlinux 0xd4abf4dc wireless_send_event +EXPORT_SYMBOL vmlinux 0xd4bf4e55 secpath_dup +EXPORT_SYMBOL vmlinux 0xd52dfffb init_file +EXPORT_SYMBOL vmlinux 0xd57c2d10 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xd58519d3 init_mm +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5ebe257 open_by_devnum +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd6036569 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xd6090265 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xd6295c15 find_or_create_page +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6601462 d_rehash +EXPORT_SYMBOL vmlinux 0xd67e9d29 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xd6a924b6 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6edaf4d lock_may_read +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd72b9bd9 dev_open +EXPORT_SYMBOL vmlinux 0xd7363a1e vfs_link +EXPORT_SYMBOL vmlinux 0xd757e466 generic_listxattr +EXPORT_SYMBOL vmlinux 0xd7757aa1 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xd78fbe9a backlight_device_register +EXPORT_SYMBOL vmlinux 0xd798d0ea bio_alloc +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7aac98e cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xd7b8f672 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd85f7525 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8b82e87 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xd8c0aff8 ida_get_new +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f5ea52 aio_complete +EXPORT_SYMBOL vmlinux 0xd8fe7efa arp_broken_ops +EXPORT_SYMBOL vmlinux 0xd904ca79 alloc_pages_current +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd93d945d dquot_drop +EXPORT_SYMBOL vmlinux 0xd94c1770 acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xd956f538 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9c5c629 skb_checksum +EXPORT_SYMBOL vmlinux 0xd9ce096d simple_fill_super +EXPORT_SYMBOL vmlinux 0xd9d1c9f4 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xd9e96b64 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda1c31d3 force_sig +EXPORT_SYMBOL vmlinux 0xda1d9007 dev_mc_delete +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda5dae45 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xda60bf26 idr_init +EXPORT_SYMBOL vmlinux 0xda6dcca8 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xda73a1d0 __check_region +EXPORT_SYMBOL vmlinux 0xda79319d nonseekable_open +EXPORT_SYMBOL vmlinux 0xda79d862 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xdabb6404 nobh_writepage +EXPORT_SYMBOL vmlinux 0xdb196806 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xdb38ce1f blkdev_get +EXPORT_SYMBOL vmlinux 0xdb3dddc0 d_lookup +EXPORT_SYMBOL vmlinux 0xdb788c22 dev_unicast_add +EXPORT_SYMBOL vmlinux 0xdb9728d4 stop_tty +EXPORT_SYMBOL vmlinux 0xdba0e376 sock_no_connect +EXPORT_SYMBOL vmlinux 0xdba8e867 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xdbc2a4ed __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xdbcb733d mark_page_accessed +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1565a7 ilookup5 +EXPORT_SYMBOL vmlinux 0xdc1c0eb4 fb_get_mode +EXPORT_SYMBOL vmlinux 0xdc1dc7c1 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xdc24d101 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3b77f8 dev_close +EXPORT_SYMBOL vmlinux 0xdc3eaf70 iomem_resource +EXPORT_SYMBOL vmlinux 0xdc409afc reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc85ac78 eth_header_cache +EXPORT_SYMBOL vmlinux 0xdc873a70 screen_info +EXPORT_SYMBOL vmlinux 0xdc8996c4 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xdc98ba16 sync_inode +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb55636 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xdcb71835 request_key +EXPORT_SYMBOL vmlinux 0xdcda3f84 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xdceabb18 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd23caa8 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xdd4fce3f inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xddbfe1ba dquot_transfer +EXPORT_SYMBOL vmlinux 0xddd08554 copy_io_context +EXPORT_SYMBOL vmlinux 0xddee68cf lock_may_write +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde2737de clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xde3bd36f blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb0674d xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xdebbc575 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0xdec28cca netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xded56f6b nobh_write_end +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf46282a ip_route_output_key +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf664ee2 pci_select_bars +EXPORT_SYMBOL vmlinux 0xdf7ff8da tcp_make_synack +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfeb9a5c follow_up +EXPORT_SYMBOL vmlinux 0xdff97a3e blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xe00fb238 release_resource +EXPORT_SYMBOL vmlinux 0xe042aacd backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe0430e23 __bio_clone +EXPORT_SYMBOL vmlinux 0xe0545dc9 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xe09f60e2 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b5502d adjust_resource +EXPORT_SYMBOL vmlinux 0xe0b5b372 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xe0c95f83 filemap_fault +EXPORT_SYMBOL vmlinux 0xe0dce5e6 generic_setlease +EXPORT_SYMBOL vmlinux 0xe0fd766c __any_online_cpu +EXPORT_SYMBOL vmlinux 0xe0fed6bb freeze_bdev +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12d5fa0 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe15c61ef pagecache_write_end +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17812a1 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xe1bfa8a2 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1f82f81 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xe21acb82 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe2237068 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xe238c8c5 skb_make_writable +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2884c09 llc_sap_find +EXPORT_SYMBOL vmlinux 0xe2b74769 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0xe2b9b161 simple_set_mnt +EXPORT_SYMBOL vmlinux 0xe2ba10a5 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2f3aee8 simple_write_begin +EXPORT_SYMBOL vmlinux 0xe3075248 load_nls_default +EXPORT_SYMBOL vmlinux 0xe313182f agp_free_page_array +EXPORT_SYMBOL vmlinux 0xe32b084b alloc_fcdev +EXPORT_SYMBOL vmlinux 0xe337f6cf request_key_async +EXPORT_SYMBOL vmlinux 0xe344f4f7 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe36388ed vfs_symlink +EXPORT_SYMBOL vmlinux 0xe3a8135d __ip_select_ident +EXPORT_SYMBOL vmlinux 0xe3c4d4fa pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xe3f60e9c mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xe3fa0980 __bread +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe44bb1a7 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xe44d98b0 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xe4603a34 node_data +EXPORT_SYMBOL vmlinux 0xe4702490 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0xe479599b sock_create_lite +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4870354 _read_trylock +EXPORT_SYMBOL vmlinux 0xe48f8b8f I_BDEV +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4c1df3e _read_lock_bh +EXPORT_SYMBOL vmlinux 0xe4c50e0b nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xe4fda082 skb_append +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5244931 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xe528ad6c security_d_instantiate +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe551ff53 input_close_device +EXPORT_SYMBOL vmlinux 0xe5585120 input_allocate_device +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57e1f08 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59f9d7c qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5f00fc6 may_umount +EXPORT_SYMBOL vmlinux 0xe605b675 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xe649fc62 kill_anon_super +EXPORT_SYMBOL vmlinux 0xe65b9177 tty_hangup +EXPORT_SYMBOL vmlinux 0xe6621e33 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xe6802e82 tcp_connect +EXPORT_SYMBOL vmlinux 0xe694cc8a set_current_groups +EXPORT_SYMBOL vmlinux 0xe6ab12ce block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xe6d2ea7b neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xe6d5c272 agp_device_command +EXPORT_SYMBOL vmlinux 0xe6e1ff9a fb_blank +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fd5d4a mark_info_dirty +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe720a34a pci_find_bus +EXPORT_SYMBOL vmlinux 0xe75a6772 sysctl_string +EXPORT_SYMBOL vmlinux 0xe7625f23 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xe76792b5 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xe7850312 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xe7ae43db pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xe7b08bcf call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0xe7c9fdee init_special_inode +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d86774 arp_send +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe802ee24 __dst_free +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe877782b xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xe88ad327 _spin_trylock +EXPORT_SYMBOL vmlinux 0xe88badb4 blk_put_queue +EXPORT_SYMBOL vmlinux 0xe88bd3ca sk_common_release +EXPORT_SYMBOL vmlinux 0xe8ca663c filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8f2d36f clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xe913ae3b pci_iomap +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe92a00e0 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe97aeaaf netpoll_print_options +EXPORT_SYMBOL vmlinux 0xe99aec80 pci_find_device +EXPORT_SYMBOL vmlinux 0xe99eee20 generic_setxattr +EXPORT_SYMBOL vmlinux 0xe99f82a6 write_inode_now +EXPORT_SYMBOL vmlinux 0xe9a60ad6 __down_failed_trylock +EXPORT_SYMBOL vmlinux 0xe9bcb310 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xe9d07f58 vcc_insert_socket +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea281bde uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xea3aa096 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xea49521b release_sock +EXPORT_SYMBOL vmlinux 0xea6a1615 bd_set_size +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xeaa01e3f pskb_copy +EXPORT_SYMBOL vmlinux 0xeaa36240 __up_write +EXPORT_SYMBOL vmlinux 0xeaa456ed _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xeaa58188 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb1a128d ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xeb20d825 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb25e83e sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xeb347c3b tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xeb37482a gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb836907 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeba5233a kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebcbb052 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xebd4ac07 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec01ea82 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0xec17158b k8_northbridges +EXPORT_SYMBOL vmlinux 0xec4d27fe vfs_unlink +EXPORT_SYMBOL vmlinux 0xec57c4a7 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xec5c7c0f ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xec7549df find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xec80d6f1 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0xec97f69d pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xece9b313 __write_lock_failed +EXPORT_SYMBOL vmlinux 0xecf6c8be pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xed734a15 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xed78ecc9 vfs_statfs +EXPORT_SYMBOL vmlinux 0xed83b3b6 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xed8f5e7d blk_init_queue +EXPORT_SYMBOL vmlinux 0xed9003ef pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedda759a skb_truesize_bug +EXPORT_SYMBOL vmlinux 0xeddfe49d rtc_unregister +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3cd2af udp_ioctl +EXPORT_SYMBOL vmlinux 0xee40e412 simple_statfs +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeeca7186 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xeedf010e kernel_getpeername +EXPORT_SYMBOL vmlinux 0xeefcc253 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xef27a724 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xef380140 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xef431506 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xef6e6da2 arp_find +EXPORT_SYMBOL vmlinux 0xef857abe pci_bus_type +EXPORT_SYMBOL vmlinux 0xef9a0aae path_lookup +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefbf5051 fsync_bdev +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe8e01c end_pfn +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf02077ef nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf07b39fc tcp_poll +EXPORT_SYMBOL vmlinux 0xf0953e7c page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0bcc0b3 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0xf0cd7fef devm_request_irq +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1384735 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xf1490879 _spin_unlock +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf17ec950 simple_lookup +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf2000640 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf20f6e9e skb_unlink +EXPORT_SYMBOL vmlinux 0xf2121963 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xf216be37 single_open +EXPORT_SYMBOL vmlinux 0xf21a4d2d agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xf22950ad pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xf234d9f2 proc_clear_tty +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2c59c13 dput +EXPORT_SYMBOL vmlinux 0xf2dc5881 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xf2f25f7a iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xf3005406 follow_down +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf322f0de acpi_root_dir +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34e3677 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf35cd8ea __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf3b33486 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d1d4da kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xf3d745e3 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf440312e swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf444a7f0 llc_add_pack +EXPORT_SYMBOL vmlinux 0xf45f7a90 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xf46a4fab blk_complete_request +EXPORT_SYMBOL vmlinux 0xf47d47e0 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xf488b53c sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4beea47 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xf4d35ea3 __alloc_skb +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf547c73c touch_atime +EXPORT_SYMBOL vmlinux 0xf5496117 ip_fragment +EXPORT_SYMBOL vmlinux 0xf562c305 nla_reserve +EXPORT_SYMBOL vmlinux 0xf591ed4c elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5eb1ee0 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xf62be545 fb_set_var +EXPORT_SYMBOL vmlinux 0xf63bd030 devm_iounmap +EXPORT_SYMBOL vmlinux 0xf666cbb3 __memcpy_fromio +EXPORT_SYMBOL vmlinux 0xf6a36770 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xf6bad2ab init_timer_deferrable +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf749534a gen_pool_free +EXPORT_SYMBOL vmlinux 0xf7819e34 sock_rfree +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79a1e7f swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf79c24e2 kernel_accept +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf8224007 generic_getxattr +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf82f48fc acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xf82f81f9 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8a52ecb cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xf8b0b0f7 simple_rename +EXPORT_SYMBOL vmlinux 0xf95a79c7 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xf98d804e pcim_iomap +EXPORT_SYMBOL vmlinux 0xf98fb245 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xf9a18eb3 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9f43d94 get_write_access +EXPORT_SYMBOL vmlinux 0xf9fe6d0c add_disk_randomness +EXPORT_SYMBOL vmlinux 0xfa208873 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xfa2d22dd sock_register +EXPORT_SYMBOL vmlinux 0xfa81836c tcp_read_sock +EXPORT_SYMBOL vmlinux 0xfa8c2184 swap_io_context +EXPORT_SYMBOL vmlinux 0xfa992319 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xfaa730ec pagevec_lookup +EXPORT_SYMBOL vmlinux 0xfac9b72e dma_async_client_unregister +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb01c764 proc_symlink +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb1515fa d_namespace_path +EXPORT_SYMBOL vmlinux 0xfb4ab2ad ida_remove +EXPORT_SYMBOL vmlinux 0xfb4c0c9d find_lock_page +EXPORT_SYMBOL vmlinux 0xfb535e03 pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0xfb5a1393 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfba0c2e0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xfbd1a6a2 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xfbed7cc1 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc1f0ec9 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc5c9d1b blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xfc7aae85 atm_charge +EXPORT_SYMBOL vmlinux 0xfc86d075 kmem_cache_name +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb2e476 make_EII_client +EXPORT_SYMBOL vmlinux 0xfcbddae5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfce53fd3 do_sync_read +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd036c89 do_splice_from +EXPORT_SYMBOL vmlinux 0xfd0bf3a9 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xfd16bae9 eth_type_trans +EXPORT_SYMBOL vmlinux 0xfd22931b input_unregister_device +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdab2b9c rtc_register +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdc301a3 xrlim_allow +EXPORT_SYMBOL vmlinux 0xfdcc0a41 page_readlink +EXPORT_SYMBOL vmlinux 0xfddc0fb1 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe1486c1 register_quota_format +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe611c5c inode_add_bytes +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfec931e4 bio_hw_segments +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeedb2fb dentry_unhash +EXPORT_SYMBOL vmlinux 0xff043f87 seq_puts +EXPORT_SYMBOL vmlinux 0xff0d829d atm_dev_deregister +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff51284f nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff72c643 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xff97d10b security_inode_init_security +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffafdc5c _read_unlock_irq +EXPORT_SYMBOL vmlinux 0xffc13492 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0xffce32d1 __grab_cache_page +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd648ea acpi_bus_add +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x062ce31a kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x17535ebb kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19edf84f kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c316b77 kvm_load_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x263341a2 kvm_lapic_get_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x271efe83 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x32f5502e kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x341a64ec kvm_lapic_enabled +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4abb327b kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c1fe7f7 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x535c834c kvm_lapic_find_highest_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x537be688 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x556c09b3 kvm_emulate_pio_string +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59db61dc kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fa5ad85 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69153d2b gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6be18a2b emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6dbc4dd3 kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6e32997c kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ed426c0 kvm_lapic_reset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7cb3194f kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8388f902 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x861a8298 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a3eb6da kvm_create_lapic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e7f9b47 segment_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ec99980 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x91d5a953 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x98050eaa kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x989d9337 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99fb4ad1 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9cf4df22 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e9fc046 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9f2d072d kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4b71764 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab4217d7 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb190f4c8 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3bbf2ff kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4c35792 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbbffeecd __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf13ec62 emulator_read_std +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc130964e kvm_lapic_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2994924 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3a3e124 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc49ca2c3 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7feac08 kvm_put_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xca079ea1 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcaea4b6e kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xccc9b280 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd92e5863 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdaddcf39 kvm_emulate_pio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe5d45c19 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe84105cf kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe86f3689 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8feea6a kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf23fd067 kvm_timer_intr_post +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfab41c17 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xffb3062a kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x39950517 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x59941385 crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x6989dca4 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1a32efe6 async_tx_run_dependencies +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1cb4c37f async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x42781b83 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6b4a6db2 async_tx_issue_pending_all +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x818b0946 async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe63dfc90 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x21884501 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xcafd306c async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/blkcipher 0x2b150114 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0x3c5ae28b crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0x6fa8c7c2 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x713cf858 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0x8336ec13 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0x5f59b31b twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/bay 0x2e54b0ae eject_removable_drive +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x2611fbee register_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x09419381 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x817cf418 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x9a98d3f7 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xfab6c9b9 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x04cfcd28 ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x069b9d3b ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x07017439 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x07a11890 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1367408e ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x18c59079 ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a5ce93a ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1aeb1057 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1b3e5471 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1cc9cbab ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1ccaf296 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x212770ad ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x21f99198 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x230781c9 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x23bc0a38 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x25375cb0 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x268997cf ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x27f35aef ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28c48f63 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2bbed015 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2cc43745 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2e3d5d69 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2e62eaec ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x32193ae0 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x32bf1421 class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3304ae8d ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x35e7be3e ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0x35ef650a ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3649c2b9 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x36ef7547 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x39702cf8 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x399c8b60 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b65ee47 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3d06409c ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x411c221a ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x43154f5d ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0x43b7a33c sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x472855c7 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x48a80474 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4a974d07 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4c056504 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4e8f9fb7 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4ff43544 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x536f81f3 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5384ecec ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x54018257 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x561a1ecd ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x56cbba78 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5a321884 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5f01bdc3 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6112aa53 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x61c1c7a3 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6411f399 ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x66d771e1 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6a2276c7 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6c11fe25 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6c36a3e8 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d00cb92 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7314061e ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x736c86ad ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7370a1f3 ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x746f8218 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x74961fb6 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x75bbafbd ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0x795bec10 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7afbb3b8 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7b56f8ae ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7c432475 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e1594c0 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7ec0ec72 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f9830e7 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8199045b ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x81f0ba87 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x84de3cd6 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x85068555 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x850da096 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x85a9b2ed ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x892efd3e ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8a71b3a0 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8bc03713 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8d7c4df3 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8ed0435c ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x909d9242 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x916818a1 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x93539a9f ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x98db786f sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa030c9b7 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa1dacb1c ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa5a4c261 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa81d3a45 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9a6b12e ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaea77c1c ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb00e7335 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2aea656 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb41f4eb4 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbad8f03f pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe9c183f ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc09a7c95 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc16d21e4 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc24ab728 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc38c857d ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xca75b15d sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcbd6c276 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcc67f68b sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcfdc5de0 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3e41eff ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd49ceab7 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd9436049 ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd96ce6fc ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd97d28b3 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd9e74de8 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdb795af1 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf074038 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe076bcef sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe1c5a88c sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe9e3ff83 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0xea688284 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xebfbe05d ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xef8b4cee ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf64eec19 ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf6604370 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xff03e2d6 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xffb7fab4 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x746fb711 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x09f310b5 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1fe5e840 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x341215ea tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x35853f34 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3c417868 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3e06fb9a tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4338c0e8 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4bf13c96 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5830e473 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5b5195af tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6c4c2913 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x777a9300 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x97ea072c tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x99ba98a7 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa6dc7951 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb3a4fe70 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb7c69e0f tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd1edade9 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd41af420 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdfc5a9a6 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf51f2e94 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x6804e705 tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xda3502ee tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x0bf1886b cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x1b223930 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xa91abb96 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xbf3a1565 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x063668c7 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x340718de register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x7f574d2a alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x87aa7c50 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x97da6a2e unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xddbd82e8 free_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x06aa14d5 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0a28c5d6 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1914f814 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x20140143 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x259216f3 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3ed36816 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x49a9178c edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5d7bfda9 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6dbff743 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7987cfec edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8468d464 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8698aa13 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x97edc381 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaf0a3e2e edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb699ea56 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbaea6026 edac_pci_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbe802732 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0c75e59 edac_device_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc450fe06 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc455698f edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc46d331b edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd437c728 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdca7b400 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe746e5ac edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf99484df edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xff9862c0 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0689d376 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1676d6ec hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4c03883d hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f50b879 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7005b8e7 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x81277b55 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x94418911 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9e309bda hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4c66630 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf278d5f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xda7fd8a0 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xee571cc1 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf6204562 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x61279af5 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x2f2ba77f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x66aa027b i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x84926ce8 i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xc6d765fe i2c_new_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1af68fcf ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1b0cbcb3 ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1fdc9207 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x203b9e4e ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2b620f66 ide_acpi_get_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2f08626d __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x40ad7627 ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4520d703 ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x49d56a2b ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4fcb9112 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x51ccaf24 ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5456db36 ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x55c08b7b ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x649ef3c0 ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6622ebcd ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x71b58939 ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x85172beb __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8f60fc1f ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x9040489c ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x92e09033 ide_acpi_push_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x945401f4 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x9aae4b45 ide_acpi_exec_tfs +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa6bcbefb ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xaba9d596 ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xbad282d9 ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc352b67c ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xcef44559 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd2e1947f ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xd3340bf5 ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe3e78ce5 ide_acpi_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xeac45a95 ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xfa6ae372 ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xfbc85171 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xfedd5365 ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x99f2bf96 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xbec7336f hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x92bff91f input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1e2236b2 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2fb34a00 gigaset_getunassignedcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3139c8b5 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x314912e0 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x36cc6816 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5301c653 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6498b666 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6b000a7f gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6b4f5518 gigaset_unassign +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x80e6cc49 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x98b9013a gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xad857f0c gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4d4633c gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb73c57fe gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb528693 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xddcabf08 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xeecd7a94 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf5a69ceb gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x7ae3f3bf led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x8220fe9c led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x8db5d1bf led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xc6ccab67 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x25e572f8 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x46bb2df5 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x4cb9d3fb dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x79668903 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x7db1936b dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x9bf6ac95 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xeea526b8 dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xfd52b8e5 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x8b2d814f dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9233051d dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x95f5f791 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9b06582c dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb1454c3e dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xee232f5c dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5b6a12d2 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x776c0c5d md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xbab06935 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xfeaff070 sync_page_io +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x64ccb1e2 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc5420a9a ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xea274e92 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x21c32be0 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x573cc656 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7804af6f saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7cdf782c saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8eb7a685 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9e904154 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc3646ad5 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdfd423a5 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe7306936 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe8568f9c saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xfb9f0cc4 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x683ce951 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7d14ca5c saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xaed0875e saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb680641d saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb816b3aa saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc27f6017 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe705fada saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x45e3e81b ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x643ecc94 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x83f37907 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd658570b ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe4bb0f83 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xea6c5618 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xee547c5e ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x7a2f7f8d v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xa17477c5 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xec69fa13 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0xb1be343a microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x704fb7cf saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x9e913fb4 tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0xa40337bb tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x4a0421b0 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x59a24a62 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x845612db tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x99700671 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xcbdc4b71 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4fac6fc9 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb7c5eca7 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x024de333 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0bb50dd4 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ae40f0f videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1e70a708 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x21a19419 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c6e5733 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4fc22e3f videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x51090db0 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5686df73 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5a72ef2a videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5b031650 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6d0c25a4 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7010e7fe videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7efad824 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa912c197 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xae5eba2d videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xba164115 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcbdc5d12 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd12f5747 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd870c9c0 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xda4c7231 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdb3b0904 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf02e50f2 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0fccbf8a videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x13924fec videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2df7cf19 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3a3734ad videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x51161c1d videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x98c49495 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac33c6f0 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xae7bbf3a videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbf1478a4 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xca3f6620 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xcb8fda69 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd06ef214 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdecd2f8d videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8e24abae videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x9f36f48c videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xfaaa8874 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1a9da990 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6f30c06b sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7696312b sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x817a7074 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xad68a7f5 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb0200b5c sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x02455903 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0cf5df02 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1351f7db sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3b989502 sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x558b0518 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x58c61b61 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5d59ffea sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x72ed45bc sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x74a10bb2 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7d56a393 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9b04ec17 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa1653520 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa4b0c95a sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb21f3ffe sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb2fe089c sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc457ea70 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdee77616 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe0cda11b sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe838523d sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf2cefce3 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfcec77a8 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x0d3ffdae cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xda894307 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xea9afaf2 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xac1cedfe cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xd9b87bde cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xc9d3a393 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x47c378ec DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x6706809b DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0bab0ad4 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2dc90135 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38713b52 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x46de8bb8 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x46f585d6 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x581ad361 mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e1ec887 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x75da4743 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8ec34498 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa71de789 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc50235dd get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc74d67d7 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdb162f25 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeb9aec64 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf3ac312f unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf92c408a get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x367961c4 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x701ecf8c add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd907cfc2 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe45d96ec deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x06143c5d nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xa0fba9b2 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xae76d868 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf10e413f nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf7026e80 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xb64bad4a onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xdeab7b77 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2dd3032d ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4d430143 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5a06bf58 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8d85b778 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9b8c1a41 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa03bbc7c ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb879f29a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc9e8e6cb ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xedb0c01a ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf4623ed9 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x00016530 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0fd70517 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x12fecd36 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1452bce2 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x15c9ade2 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x19b9324c mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x202b3369 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2d2864ef mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3cc22e4f mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x431966b0 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4815c88b mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x491df524 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4e1439b9 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4e274248 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6093ae6f mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x63011ddf mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6bf18618 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x710a7d29 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x847d240b mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84d072ba mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x86bfba48 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8e051fac mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9191cd64 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa06ae4b7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa5c8cf62 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa8e0cec4 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaf43c69b mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb12d2732 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xba8d0dc5 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd2a7617 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc41b437c mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc61553b9 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc95e53da mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcaa842eb mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb7be212 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd52ae5b7 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7907001 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf4a8f8f mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfa061fb3 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb5d1006 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xc11a4f55 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xd7ceb70b usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x09bee856 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0fbf7253 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x24e70da7 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x35212cb0 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a78e6fa usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x82d4b367 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x879877d0 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x897b32ce usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xccd66b9b usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe38ebaee usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe554ec9c usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe57295c6 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe8eb6f55 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xebf91dda usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf7938cdb usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2d8bf935 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3556a1ca libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5c5c321a libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5ed83512 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6a001ecd libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7872a9f9 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7b9bd214 libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7ec69fde libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa05a658e libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf52002b2 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfa005574 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x020f4789 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x07202d9c p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x4bde0959 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x89d189a6 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xc22c60c6 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05addffa rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x106bbec2 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x131c4298 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18394aa7 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1df6acc1 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ecf440c rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x27cabe0e rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5e84dd11 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x61839269 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x626688c5 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73b07915 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x79ee0315 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c3e2b17 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8038de1e rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x85a75136 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a9a5bc2 rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab289f7a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaea6ff27 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb6c0b83 rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xde125697 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x132531cc rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x168b82a6 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x21346ebf rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x487583be rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x55da11f8 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x76eaa431 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x97748295 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb9a66c13 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe20cdffa rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0bac6a77 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1144892a rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x639c32f6 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x686d3a03 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x68fa509c rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x71163447 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x969dca47 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcb08465a rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xddc3de61 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe52e77d9 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9257ef8 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xacc63b29 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xbfc26b55 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ad3b491 acpi_root_bridge +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x3e723cf3 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x5f4d8b65 pci_hotplug_slots_subsys +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x69624d53 pci_hp_deregister +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x76d383d6 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x97efbf51 cpci_hp_register_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xaeea0069 acpi_run_oshp +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xb782ec41 acpi_get_hp_params_from_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xcd0eb1c4 pci_hp_register +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xf034849c cpci_hp_register_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xf7008ec5 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a4d96f6 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0cd0adf1 class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0dd051c0 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13366edf iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x312547e5 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x416c4336 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50a50325 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51a9dccc iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52a89912 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71c94208 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x75807152 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x79800cac iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7a21819e iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84172b26 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9bd0f901 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4b53235 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb9377d7f iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1bcd376 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcac5b501 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe206d591 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3024b55 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5dfd740 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe6942a08 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe78d69fc iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xebbcd99a iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef80ab85 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfba02c84 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x131b5a5a sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1a4851e5 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x31f54f1c sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x443248c1 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x480a847f sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x482cba2b sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55023ffd sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x678a73e7 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6ea7bef6 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x919eabbc sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x928df6bf sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x97e4b7d0 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9ba840f9 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa2aa2adc sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa96a9be5 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1bacaf2 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xca3e9250 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd193b73f sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdbd62945 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9c24aad sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x466cde5d srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4796fb82 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4b4585aa srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9b17a318 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc65ed1d1 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfd44015c srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1339d267 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x27a6ac78 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3be79b66 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3eb17c13 scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4888aed6 scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4eff7a63 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7d6bc6f0 scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x84cc7849 scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x8d6af3b6 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x91ea7132 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x9cd4f7c4 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc6c43fe1 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd9223a51 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xdc31223f scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1a892718 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1e1c8363 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x23f3f6c0 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5ccd36a6 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xaffabf8f scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc2e7e0dd scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd18f0e27 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd5019529 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf9e4db21 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2f6b931c iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42008f68 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x46228f62 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ac0e1bf iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57f40cfa iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x62b64039 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d902121 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9da965b0 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbfaac234 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8c58ab6 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc9bc8f58 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb1346a8 iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd4f6dd1 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdfa3e2a0 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe9d51a4a iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf05e17ce iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3db71b5c srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5c69a50c srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x940bf2bb srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd2a197dc srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf3453f36 srp_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x069185de spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1592ee7f spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x44d2cf3f spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8a815b2f spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x9e5b9017 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa590b5f4 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7e3c71bc uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xb7869c3c uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xbfdd73ce __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xacf10698 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xfcee4e60 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x023aebc2 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x19bd8a17 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2218bf3e usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x261b85b9 usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x341ca7ed usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x420a26b1 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x449dc60c usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x458e3d3c usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4726131a usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x482e76e6 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4cccf298 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x59b27a14 usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5a930a36 usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5ca0eafb usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5cadf7fb usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x64b88b3f usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x788c68c2 usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x84956438 usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8c5d2f7d usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x933783b7 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9b63d051 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd1b15749 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf223cf7f usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf4450dc0 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf552677a usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x080c2cfa usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3d71cc69 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3e5041fd usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5e56500d usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6278368d usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x95d20f3b usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb4a412a7 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb935a118 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdf648167 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0xa9f1db60 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x083e6657 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x243c97f6 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32c4f386 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x903df2ec usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa2399e2a usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa5693aab usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb8d3fe4d usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf5068a9f usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x2e68562c fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xa4821c07 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xf9e8ec80 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x287c08d2 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xcccee721 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x38f9776a unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x4126dbe9 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5612f28b register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xb3b006ac unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x03c4687d vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1ddfd51e vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd82c1274 vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x324baf76 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x81b39e2a w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x862686bb w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8eb24f8c w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf6cd0dc0 w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x30a21580 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xb29db42d exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x15f82c9d fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x18e54117 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x2eff7ee0 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x335ed4d5 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x4787fcc1 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x49b3c53a fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x4e0e3317 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x6233f146 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x91f678d6 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xa3f858cb fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xaf48094d fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xbd8c4180 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xd1426594 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0xe49afb10 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xeba2b25c fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xf4de2aff fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xf8323580 fat_search_long +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x00229801 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x5367a7ff gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xa1bb734a gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xa3865c0e gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xa6ddc445 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4e33e2a2 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a1d2234 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8572079f o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc5d820aa o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcc7fb7fb o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcebfad82 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe6c4707e o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x54c17eb8 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6702c0d2 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x98501acb dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb96b4800 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc15b6a24 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcc576c0a dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0x3f60fcad ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x0a6beab9 bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x31ebd5a2 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x37885f1c dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x49616841 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x570557c3 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x5dcbc7e3 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x602ecaba dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90aae1a6 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xabbf26c3 dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xae621536 dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xb5b21f1c dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xb8114bb8 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x01136d88 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x05447bf6 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x065b7806 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ac4a5a6 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0add616b dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0c631871 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x15a570c7 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2819064f dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x28836bb4 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2c5a473f dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2eb9703c dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34f7985a dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a09cc35 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ab89419 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e0eec46 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x457a0f1a compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5081e268 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x54da54c4 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5aae5fbc dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61f23276 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x668d81e0 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x66f4c395 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6c794b21 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x751f810b ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75c39bb5 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7872fc9a dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7cef06d0 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8536a3c6 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x88323407 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8fcd629f dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x925b2523 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95d9602d dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x98b3095e dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9cb02702 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa033b612 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae9b4632 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaed41c59 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0baa1a5 dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5b89811 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb62fe38e dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbb0a4d4c dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5f9de94 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd521d041 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe02d6fe3 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9fccbcb ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeacf7f31 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xecc014af ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf109caa6 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2e3a511 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6bd9095 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb0b00c7 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x096f5ecd dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x23382bcf dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x67fe6e1c dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x76aaf18d dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8e4ed384 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd0b0d3a3 dccp_v4_connect +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x6443f5f8 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xa641a22b ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xcb624230 ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0229397f ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x0726cfd9 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x1f6bb83c ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x264c2691 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x28fd9268 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x29325dd3 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x47f62008 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x53e4b803 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x58e6557a ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x69c1b999 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x76d938a0 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7714c1fe ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x864cccbf ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x89cffa51 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x96d77b68 ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x98bfb68a free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb516962d ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb6f82c61 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc237e21b ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xdc4efd6b ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf299ed1e ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x49dce654 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5601056a nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xdb4179f0 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe4856741 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf090970c nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1c3fbd2b tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x239894fd tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x649f1914 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x724df68a tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcb0dc23f tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x093faaa6 ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0bfd3557 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0d942df2 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x23811231 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2793dbc5 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x27b93d69 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4d10b9bf inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5b4f33fa inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6168feba ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x665078e5 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa5102a2b ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa51127a8 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa6beeb82 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xabbb0eae inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf16cd3cd inet6_destroy_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x000fceca nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0daab577 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x101146a7 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x115ba07c nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f787c57 nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24f43089 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x315d824d nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b7d8921 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d8fc413 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52379d1b __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54d6a8eb nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5701686e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58d9758d __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63904728 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63ca2832 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66e0ca69 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67c6fc0b nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68b78d0c nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6adb22a9 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b199d96 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b53cb34 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e4cf0d9 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e8b27d3 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7eab9fbf nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x875763c6 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a6d2741 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8dc4d414 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x99ea5c69 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa1cb32a2 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa5e04c4b nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xadd07bc1 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbbd77b3d nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc41b73be nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc657db60 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3d72dca print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdcc6fb73 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe380e923 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe821a06d nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe88cd681 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef3859a3 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf461b9e2 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8d32b74 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xb78fdc2b nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x92c4b708 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x246a611d set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2857d268 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4d828da2 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5c828bd6 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5ee13461 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x68c89c49 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x836461f1 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcd1c43ee nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdb94e508 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x31255f44 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x739cec66 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x87c3483e nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xabd0d2ca nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xebbaf72f nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x10070f71 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb3ecedc6 ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf181cbc7 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x1469f547 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0f67c936 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x155cecfe nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x38de6b25 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbd8c1aff nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2c634791 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x39e713d0 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x41661bb8 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x472e55bf xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x49170479 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5d5c687d xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x767f9268 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7bf3ab2d xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7dff03d2 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8c778fa6 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa14b9c97 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcc4e5084 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd0be0950 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd5b0aeae xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x8e8a6f93 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xcc7b3864 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0377b1f8 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11bd6fe4 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x152c73a5 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1638eb96 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d3eda9f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297b1144 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29945053 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b54aac4 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x310048ba svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x407b8dac xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47fca760 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f1ec3d5 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5627a3e8 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cd472a9 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60dacc56 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67251b98 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f6a5f84 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7351a6c1 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87deaabb xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa50c7f06 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8c4e50f xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac8ebe96 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb611454a svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9a48037 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc101af09 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd173d56f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd33cf988 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6f78209 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef373e60 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5d9fbbf xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x006e33d4 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x013b1fe8 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x026652eb tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x027deb36 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x028d2108 mmput +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x03087f1b pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04ea83c9 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x052c5796 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x05427c46 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055969b4 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x05a220e4 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x062cc3e7 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x064a8497 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x068572d4 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x06ca45ec bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06cb04c8 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0760c7db init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08322b3b rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x086c935c __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x08972665 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x08cbfcf3 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0929b074 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x0979c982 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x09aa1304 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x09d22d8d bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0a092b28 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x0a2f79ea tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x0a9a1f4c crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x0aee74c0 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x0af2daf6 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x0af38848 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x0bde3d68 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0d271cb7 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1189 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x0e2b0031 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x0e6470e0 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x0f988e78 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x114aa42e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x11d45166 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x11d98ad0 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1234e87e __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x12355534 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13b2ef67 device_register +EXPORT_SYMBOL_GPL vmlinux 0x13dca28c pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x1507de86 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15f8982d device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x16f3529b get_driver +EXPORT_SYMBOL_GPL vmlinux 0x179d5555 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x17f17597 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x184cb3ed crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189f8503 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x18da3951 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x19541e25 __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x19ae3458 user_match +EXPORT_SYMBOL_GPL vmlinux 0x19c8c4f7 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1a3308dc tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x1b6242d4 inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bd17d17 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1c13f1b2 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1c232277 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1c74c394 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1dfecfbc crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f58a4fb elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x202d7874 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x208558c6 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20e77c47 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22cea7af crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x22ceb7e1 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x235f4515 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23831add driver_find +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23cea294 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x23d0b112 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2447ed01 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2475853b class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x24bf4d2e xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x24cc30eb __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x262046dd inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x26644c00 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x26f3aefe firmware_register +EXPORT_SYMBOL_GPL vmlinux 0x2738a6bb inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x274245e9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x275e2064 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x280d1af2 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29aa4a6c generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x2a5aba72 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2b060775 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x2b132e06 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2c0dc8dd nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6ddfd3 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x2d7be93e fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2dd0ed91 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x2e3daa28 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2f1bf688 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x2f709f6b spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x2f8c715e queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x30adb4a0 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x30c64dd0 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x315faf68 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x31d4cb57 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x320f9855 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x32160b98 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3391951e fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x341adccc posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x3530637a platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x3555f97c __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x3557cc7c rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x358bfa43 e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x3614ccd1 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x3616401a transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x361f1ac9 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36b6ae03 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x36dae8e0 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x36dccf59 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x3789ca4a input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x382bfd07 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x38eaf6ee debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x39f05400 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x3a0df235 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3a8a2104 device_del +EXPORT_SYMBOL_GPL vmlinux 0x3b7b3fd2 device_add +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c1b2e67 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd75239 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x3d46a062 __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0x3d832739 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x3d8e3fe2 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x3db5ee98 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f98a385 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f9bc7ff platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x3fa4927b sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x3ff1c0de hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x4010872a tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x40e68474 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42141b9b led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x421e4778 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42748297 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x4283d1c4 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x42e6b061 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4307a495 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x43a101cd tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x43b5a11a simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x448862c8 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x454299bb inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45ba1682 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x460b1b42 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x4623155f sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x46a0b0fa percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0x46adf16d uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x473dee33 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x4741c3b9 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x479397e4 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x481e7f0b cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x493230fd get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4a57ad64 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x4ac8e615 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x4ace6280 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x4b58ba23 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4bc2fe7b tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x4bcd07d9 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x4be64566 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4d39ea04 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4eac8dd8 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x4efc6fad register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x4f9954b8 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x502c6089 srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50cf0818 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x51144c76 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x5193a596 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x519d4b5c acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x5230f45b pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54a05b05 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x55e55e3e audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5680c0f7 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x5693a0f9 user_read +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57da507b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x594548ea __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x598bc279 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x59bd0ac0 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5aa61813 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x5af4d052 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c888287 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x5cc9eca3 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d065495 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e00af81 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5e320add led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x5e91d2c9 device_move +EXPORT_SYMBOL_GPL vmlinux 0x5f9a11da srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x604e6f01 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x60855525 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x6104d33a vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x622a171f rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x62562ae5 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x6275d204 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x629347fb blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x62ca4bac get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x633591f3 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x638ea8ab swiotlb_sync_single_range_for_device +EXPORT_SYMBOL_GPL vmlinux 0x63e41260 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x63ff5341 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x6417792f attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x642be550 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x64c581f4 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x64eddbdb kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x65c5a3f8 k_handler +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x667b19b2 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66be286a acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67ac2185 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x68056198 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x682ece6e __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x68379b59 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x686b345e user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68f04eb8 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x68f81e77 get_device +EXPORT_SYMBOL_GPL vmlinux 0x68ffc993 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x695d3269 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x69a13edf cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x69fdf3ac __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6a2a37c0 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x6a46e237 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x6a555742 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x6a99bfcd inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x6b0cba0d crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x6b2b1aae preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b471076 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x6b743a1f crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6bf876af rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c50d931 pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0x6c5e898f skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x6d14afd9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6d22a5c9 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x6d780329 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6e2bd299 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x6e5e8a67 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6eef00d6 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x6ef8bd6b tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0x6f4974d5 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x703901bb rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x70616ee9 input_class +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7090b2d5 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x710478e2 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x712338dd devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x735c329d debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x73746dcf devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x746b9ac9 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74ce6f40 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x753b842e firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75598bf3 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76756529 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x76ab621d dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x76e7c2ef atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x76ecda72 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x77758794 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x7818b2aa pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x7850bc1e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x79a9d915 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x79f70794 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x7a38dde7 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7a713a15 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x7ab67d35 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7bb2c473 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x7bdef768 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c18142e init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c6df9a2 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x7ce7849d platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7d4e4e87 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x7d663e01 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x7dba4571 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x7dbf38a2 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x7dc02b13 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7eaeae5e crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7ed5f553 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7fa6111d rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7fb86bc1 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x801f39ec key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x810d7e96 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x81665c71 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x817f6992 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81b7d37b do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x81ebb48b platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x8250af10 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82d23e94 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x83318206 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x834745ff sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x836704be led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x83e214ef swiotlb_sync_single_range_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x84545f9e put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x84581b9a fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x84646e06 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x84a08ba9 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x84a648eb class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x858e2b84 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x865be4d4 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a20ea3 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x86b21b27 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x86cbb9ce tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x87098a2f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x877e6834 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x87ed22c4 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x87fa1451 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x8886df7c class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x88d8c843 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x88e38b60 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x89644642 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x8a6243e6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x8a90add4 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x8ab81e85 class_create +EXPORT_SYMBOL_GPL vmlinux 0x8abcc674 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x8b705ac9 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8b941e8e bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x8c363885 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x8ccccaee tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x8dfba176 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8e8742d1 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x8e94763e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x8ed2f403 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90f36fcc audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x910e5a09 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x91489c31 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x916dbeff debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x91bbb4b6 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x91ec52d1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9339460c put_device +EXPORT_SYMBOL_GPL vmlinux 0x93817c41 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x9467642d find_pid +EXPORT_SYMBOL_GPL vmlinux 0x947c5bb8 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x958525eb platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x9585b605 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9599ee52 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x96767b58 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x97d9c66a nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x98665eea device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x99280cac find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9971ed84 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x99ced2b1 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x99ed9305 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x9a075312 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x9a1484d3 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9a647c1a class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x9a6ad08e skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x9abcd5e8 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x9b64970c simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x9b9f7a0d disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9c11addf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d2f64a2 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x9efe98fd sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x9f658f09 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ff0a413 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xa01185f4 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xa08f157c power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xa0acf812 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xa0ee1d09 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xa0fdfc76 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa12eddf7 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa141c4b9 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xa232539f sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa2a304b3 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa2de4b4c simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3d9279a xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xa4a88bba securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa55bd991 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xa58200d3 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xa5971eb2 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa6a7d5c5 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa6b5c7fe inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xa849d419 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xa883fcc2 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9aaff0b cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa0d02b2 user_update +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa553e65 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xab7c5997 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xac06f9cd unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xac0d563b class_device_get +EXPORT_SYMBOL_GPL vmlinux 0xac783a7f crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0xad12bbd5 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xad132a6d init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xad1707fd pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xadb71bb0 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xadf16ac1 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xae660660 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xaf2429ec relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xaf5d533f klist_del +EXPORT_SYMBOL_GPL vmlinux 0xb0243ffa relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xb08f32d6 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xb0bb9ed8 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb343fb49 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb3844277 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xb4b0650e rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb585c144 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xb5f54afa __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb628af78 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xb6a5db04 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xb81d7f60 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xba99e3d5 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xbb8afe4a elv_register +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbc0d6a5d sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xbc1683f7 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xbc539e11 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xbcba9fd7 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xbcded879 task_nice +EXPORT_SYMBOL_GPL vmlinux 0xbdabb150 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xbdae5ac6 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xbe5d6b23 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbe7ec58e pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xbf8334dd debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xc00ea93b class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1334e32 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xc162caa6 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xc1d329a0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xc1dbd7c8 class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc2584b20 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35b10e4 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc3e82acd crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc4bb3a14 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xc5a9e62d class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc6144286 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xc637b80b do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0xc68b00f0 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xc69cdb6d get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0xc6ac8880 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc6eb755c uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xc7073613 queue_work +EXPORT_SYMBOL_GPL vmlinux 0xc745c86c fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc748b101 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xc7e27568 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xc801d87e crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xc86ff710 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8a93827 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc8aea906 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9747ccb kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0xca8071bf preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb19764d driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcb73b5dc inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xcbc358df register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xcbd5fc8d class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc55a330 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd8d0eb3 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xce488e58 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xcedfd395 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xcf390597 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xcfc39e6e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xcfc58001 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd01d0941 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xd0b1a212 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0e46be9 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd25dec5a sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd2854718 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xd37c41fa device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3bb7813 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd41ecdb6 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0xd5313896 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd6270c0d transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xd63a5aae tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xd6c8345a unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd7967f2d devres_add +EXPORT_SYMBOL_GPL vmlinux 0xd7ce4a16 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xd840c963 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xd86b1bec rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd8b9c4be __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xd8fa3a62 pci_assign_resource_fixed +EXPORT_SYMBOL_GPL vmlinux 0xd8fd8b1c sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd904a0eb blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd996a834 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xd9c113d2 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0xd9e99e60 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9f9e160 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xdaade144 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdbb7a0b9 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xdc60b71c attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdcb5f3bd cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xdd66aeac __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0xde310dcc exit_fs +EXPORT_SYMBOL_GPL vmlinux 0xdea4c182 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdeea0e0a platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xdf5a9c15 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xdf84960f class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdff148c7 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe071ddb6 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09778df sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe27e5ea7 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0xe2a1f6c0 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xe2e4f4e5 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xe3b69721 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xe3d81c7a inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xe3ea6869 device_create +EXPORT_SYMBOL_GPL vmlinux 0xe40c9be5 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0xe4419d88 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xe48a35b3 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe626c883 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe666c49b leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xe6b8d86c inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xe6cd432d inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe71020ef user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe7ab2a62 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe98b039c namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea7c981d led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xea8a3cae spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xeb036bf3 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xebc0d85b kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xebfa67f2 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xece34f0a tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xecef9fbb acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xecf63b3d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xed0a3d47 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xed24c138 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xed699ccb input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xed93ff13 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xedf70b5e sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xee2319c4 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee4957d6 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xef509cba driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xefab89a6 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf002d954 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xf02de5ba srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf03e4aa5 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xf0c48ec8 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xf0e6fea4 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0xf106d9cf tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xf11ca71a debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf28955e3 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xf2d3350e input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf3364a3a inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xf34a6dbb tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xf390f194 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xf4aba6f9 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf4e73140 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xf50cea10 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xf5223fd5 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xf54fae89 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf552ab90 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf565cf1a driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf5fad7bd platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf61d2e8a rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xf63b1708 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf650cbfa netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xf682452f tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xf730781f kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xf7a33fbe skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xf7ed938e page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xf84afd0c devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8cda26e class_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf973b385 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf98527e6 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa92a86b generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xfae8a8c8 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xfb869fdc class_register +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc87fcf3 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xfc95219d bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfcf563ef cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xfd7b3c54 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe56dc97 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xfe5e7146 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xfe6c77dc cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xff81fe46 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xff83b2bf atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xffdedbf6 debugfs_create_x8 +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x2b23247b usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x845b4a2d usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xde89c6a1 usb_match_id +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/amd64/server +++ linux-2.6.24/debian/abi/2.6.24-24.56/amd64/server @@ -0,0 +1,6877 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x12fdd76b kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x011ee842 gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x066df505 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x1e108535 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1f651fb0 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x38b9ff2a gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x4abfe2e1 gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x7184a94f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x79a53629 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x944c5915 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0xc691e027 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xe6f559a7 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0xfe882997 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/processor 0x7257a848 acpi_processor_register_performance +EXPORT_SYMBOL drivers/acpi/processor 0x9cba6dbf acpi_processor_preregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xb2aaa8e6 acpi_processor_unregister_performance +EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit +EXPORT_SYMBOL drivers/acpi/processor 0xf43eb90f acpi_processor_notify_smm +EXPORT_SYMBOL drivers/atm/suni 0x2a4f5430 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x6c189636 uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/loop 0xcf7ee06f loop_register_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x38ef77e6 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x42b2d7e5 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x5e5d86f9 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x761cc190 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x88139b77 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x99d0c2b6 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xa36e8f44 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xac8351b6 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xb79c26a3 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xb8298950 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xca29a023 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xe9d30c46 paride_unregister +EXPORT_SYMBOL drivers/cdrom/cdrom 0x01a70aa9 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x11be5cfc cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x17c20e10 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0x239d46b8 cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0x366b5413 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x69d9cc10 cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0x897e1610 unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x8b74e336 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xcf206229 cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0xef8c1c8c cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0xfca98688 cdrom_mode_sense +EXPORT_SYMBOL drivers/char/drm/drm 0x00c543ec drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x1c47fa37 drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x1f60025c drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x27ae3269 drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2a49d258 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x3ae6aef8 drm_compat_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x5155e055 drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x61e617e5 drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x62ad343a drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x66b5ea29 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x68a8e703 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x71bfd3f6 drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x73891557 drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0x74bdc7fe drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0x74dd71a4 drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0x7702e95d drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0x7904ddf9 drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x82bf402a drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0x87461e2b drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0x87825cc9 drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0x95e6c11f drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x98681165 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x9a157008 drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0xa8d6d8b0 drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0xa95fd7c9 drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xab768393 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xb1f64766 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0xb3859bef drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0xb8af18a3 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xd6577e67 drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0xd6d0513d drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0xd728f5bb drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0xdbdea5e0 drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xe97821e9 drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0xeb186d52 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0xec9b1885 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0xefdb8562 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0xf62490bb drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0xf778d092 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xff8a0e54 drm_irq_uninstall +EXPORT_SYMBOL drivers/char/generic_serial 0x0e4501ee gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0x20b204ba gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x5114c448 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x5b03035f gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x8115ba28 gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0x8ddae873 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x9b5f1372 gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0x9f52c36d gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0xada1dca7 gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0xc22ce8cb gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xc3ab5e51 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xcfd3646e gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0xdf5ddf7f gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0xe192596e gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0xeb901400 gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0xf0ea0bb3 gs_init_port +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x014e4b3f ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x234bd467 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37e99335 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x424569d4 ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x43cd71e5 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x48007a6f ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x55b575c3 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5ada9759 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5b808de8 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6008b369 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x63f6f330 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x687cb7c8 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x932e0d66 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbb827c18 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc49bc846 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcd8f3661 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd2710889 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdd33b32b ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xed0e2bfa ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xed8cd7f9 ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xee9966c4 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xefb289ca ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfb2f604f ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfe65b82a ipmi_create_user +EXPORT_SYMBOL drivers/char/nsc_gpio 0x6e9b2191 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xd6e959fd nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nsc_gpio 0xd8347fc7 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0x869c7d9f cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0x8e055003 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0x649aa262 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0x040657db edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x8208ee9c edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xa8d2bb63 edac_mc_find +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1dc546d4 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xaca84cd4 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xcf7e6c9d i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xd2c3ebc6 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x69a6b129 amd756_smbus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x1769c52f i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x193be034 i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x19ebf2eb i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x3436b1c8 i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x45e21090 i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x50c9f9a1 i2c_detach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x52811330 i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x5667545f i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x68e91785 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x76642595 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x7bdd57a3 i2c_use_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0x7d5409a9 i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x7ffbfaf5 i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x84dd8e5e i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x8522288a i2c_master_recv +EXPORT_SYMBOL drivers/i2c/i2c-core 0x8699babd i2c_smbus_write_quick +EXPORT_SYMBOL drivers/i2c/i2c-core 0x9f183c6e i2c_release_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xa60eb2fb i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xba9184eb i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0xbcf3f31c i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc7daf864 i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd1246c79 i2c_attach_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd3448703 i2c_master_send +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd872ce25 i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0xdfc89151 i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe448f1eb i2c_probe +EXPORT_SYMBOL drivers/i2c/i2c-core 0xe934fd4b i2c_put_adapter +EXPORT_SYMBOL drivers/ide/ide-core 0x046b3a07 ide_proc_register_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x0c486b72 ide_unregister +EXPORT_SYMBOL drivers/ide/ide-core 0x1d791453 ide_execute_command +EXPORT_SYMBOL drivers/ide/ide-core 0x1da2bee7 ide_do_reset +EXPORT_SYMBOL drivers/ide/ide-core 0x24207f51 SELECT_DRIVE +EXPORT_SYMBOL drivers/ide/ide-core 0x24b18612 ide_spin_wait_hwgroup +EXPORT_SYMBOL drivers/ide/ide-core 0x3ca2c7f4 ide_register_hw +EXPORT_SYMBOL drivers/ide/ide-core 0x4101a975 ide_fixstring +EXPORT_SYMBOL drivers/ide/ide-core 0x411d76d0 ide_init_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0x42009b21 ide_proc_unregister_driver +EXPORT_SYMBOL drivers/ide/ide-core 0x447ab870 __ide_dma_bad_drive +EXPORT_SYMBOL drivers/ide/ide-core 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL drivers/ide/ide-core 0x52fb7eff ide_dma_timeout +EXPORT_SYMBOL drivers/ide/ide-core 0x57ae2c7d generic_ide_ioctl +EXPORT_SYMBOL drivers/ide/ide-core 0x5909954c ide_raw_taskfile +EXPORT_SYMBOL drivers/ide/ide-core 0x5b6d753d ide_dma_host_off +EXPORT_SYMBOL drivers/ide/ide-core 0x60b63697 ide_lock +EXPORT_SYMBOL drivers/ide/ide-core 0x625385e6 task_no_data_intr +EXPORT_SYMBOL drivers/ide/ide-core 0x62af0ef1 ide_add_setting +EXPORT_SYMBOL drivers/ide/ide-core 0x64dcdce5 default_hwif_mmiops +EXPORT_SYMBOL drivers/ide/ide-core 0x65302b3b ide_stall_queue +EXPORT_SYMBOL drivers/ide/ide-core 0x6b746772 ide_dma_off +EXPORT_SYMBOL drivers/ide/ide-core 0x754ee495 drive_is_ready +EXPORT_SYMBOL drivers/ide/ide-core 0x7a9f7376 ide_wait_stat +EXPORT_SYMBOL drivers/ide/ide-core 0x7dd9828c ide_dma_off_quietly +EXPORT_SYMBOL drivers/ide/ide-core 0x8347380d ide_dump_status +EXPORT_SYMBOL drivers/ide/ide-core 0x91f83b5d ide_end_request +EXPORT_SYMBOL drivers/ide/ide-core 0x95e5e12d task_in_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xa912a5df ide_do_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL drivers/ide/ide-core 0xb63f14f5 ide_hwifs +EXPORT_SYMBOL drivers/ide/ide-core 0xb9032173 ide_set_handler +EXPORT_SYMBOL drivers/ide/ide-core 0xbc330f7c ide_end_drive_cmd +EXPORT_SYMBOL drivers/ide/ide-core 0xc3250956 ide_dma_host_on +EXPORT_SYMBOL drivers/ide/ide-core 0xca8da034 ide_dma_lost_irq +EXPORT_SYMBOL drivers/ide/ide-core 0xde139609 __ide_dma_end +EXPORT_SYMBOL drivers/ide/ide-core 0xee5a11eb system_bus_clock +EXPORT_SYMBOL drivers/ide/ide-core 0xef046016 pre_task_out_intr +EXPORT_SYMBOL drivers/ide/ide-core 0xfae2dddb __ide_dma_on +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x03511933 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x03eb66f6 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x05efc383 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d97d91c hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0fec314e hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x164eb076 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f95e93b hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2091f9e5 hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23814b3a hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23cbcf47 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2b1aa6dc hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2dd29f75 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ef5de11 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x31ba5853 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33316f04 hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x34b5e960 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x39873ed3 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3dbbfcfb hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4362ad70 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4b47071a dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4ebd518a hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x52737d06 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5afe720f hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5b67882f hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5c24b86c hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5cce89ce hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5dbe8575 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6334864d hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x65693dec hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b25aada hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6f49eb2a hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x736417e7 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79530b08 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7968ffcb hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x80be856a hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x82108084 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85057c5b hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85b4779f hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8d6d5512 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e711bbe hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9299ae83 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa11ab3aa hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa16b3811 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa7e0b499 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa85161c8 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa91ffaa9 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaee05b9c hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb89dc3e0 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0ef8a02 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcedfe91c hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd3f02dbf hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6a37cfe hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdb8a7f7a hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdf5901b7 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdf9cb4a5 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe2fef9a5 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xecb62b48 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xedaa34a7 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xede96446 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xefcf31da hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf18f7005 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf2015bbb hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3c30c5f hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf71329af hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x2623e1d8 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x39679f83 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x48b909e3 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x7fe9be7c rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x97a0f6c1 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9c447fba rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xcbc553e3 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x045487e2 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b8ac3a2 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x151bed42 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x26ae96be ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2e6b9d65 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3173790f ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x530e2b5b ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x57c6340d ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x609fae94 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x86a14922 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x891cefa0 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x92e29a51 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa24e542a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb13f71e2 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc014850c ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc7c085fe ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01c57200 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x036dd361 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x091bf5e5 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b585e9b ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11d42382 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x163cefbd ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1bcdb6fd ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22a2adc8 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24b35478 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b4f00a6 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c902dce ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x509ded38 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51d90796 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53a32fc0 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c8ee03f ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60793cc9 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60a74b32 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61618d72 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62d10ed2 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6526fd37 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x652d6bd0 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66cc696b ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6772206a ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b8290e6 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7538580a ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75e4879c ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77d40636 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x796c7b90 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x798ca814 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79f32249 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8244b06d ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d12f837 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94839962 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x965c1dae ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x99c6a054 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa13b3161 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2e7b600 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa65cd586 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6b195af ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa3e8548 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab351eed ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf2f9068 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb41c71c8 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4eb152c ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5927812 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb921d7b7 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb97cabfe ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd6fe20c ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0f52e99 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce29b933 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf5ad81d ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd36b94bc ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda3e4a16 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdab9ea0f ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc35e0a8 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd7d20a9 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf78011d ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf7ca91c ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2a505bc ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe54d5783 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7496a9e ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8c065af ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8b28a40 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfaa2d089 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbf0e297 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x081fa982 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2a51c363 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2f32a564 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4c73c773 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x645ec276 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x77e07e0a ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x87a7493b ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9162e47d ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbbcb9267 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbe9a546a ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbfb72372 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd6849d3c ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf4ffd957 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x005c6b2a ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x00a5aeb0 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x05b24047 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x379a938a ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5e67e725 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8dddfd94 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90a68f07 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9de2425f ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb57037c3 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf0ab095c ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x145976af ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x20759c1d ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xeb63a3f1 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xed93c0d6 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0725cd32 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x256ea994 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2c10b3ff iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x63408993 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9873c72f iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x99dea5fc iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xedcdab00 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfeb4d595 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x19e2b66a rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1c6f720f rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e7fcaa1 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x28c8da88 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x33926ef3 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a2c98cd rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x497bed03 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x581f37f8 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x655c1d13 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6da78180 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6eda857c rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7841620f rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8bba9da5 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9e649922 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc2c10e77 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcf7e19aa rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xda1dbd52 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf2f0af82 rdma_destroy_qp +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0b217175 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0c37636d gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1f1a5fcb __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x281f9964 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2f983bef gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3b2fad2c gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3dbefec3 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4089f54f __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaa25d70a gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf4898077 gameport_start_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x6b1e83cb input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7a84b4ad input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa3f8ac17 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf7d8d9c3 input_register_polled_device +EXPORT_SYMBOL drivers/isdn/capi/capifs 0x2c54c957 capifs_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/capifs 0xd0bc06ce capifs_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0166e7b7 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x29bdc69b capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x334f91bb detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x43768762 capi20_set_callback +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e09963 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x86987a68 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8e771f84 capi_ctr_reseted +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa170958d attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8da7b79 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xebfaacb3 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf1832886 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x00333c75 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x03f0f1e5 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0630c4ee avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x241ea299 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x482830a3 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x49173349 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x662d02cf b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6ca1c2dd b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6e128ada avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x96f9d2f4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9b384e1e b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9bc5eea1 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xac19e56c b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb98452a2 b1ctl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc019eb5f b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xca3543aa b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x15d24f9e b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1da9c622 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2a386384 b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x330b3c9d b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x56b620c5 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7c0de4d7 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbc7e830c b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc2837309 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc32e4d6a b1dmactl_read_proc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdb780e2d b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x00293e36 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x3cea6690 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x40f13393 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa34c0a74 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe6d9da1c FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x34341596 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x43314dc4 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9abe1e05 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe0f322c3 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe5cfc6dc isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x1ee629e2 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x95aed401 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0x9ffc8215 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hisax/isdnhdlc 0xf5c8131d isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x391972ce isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x70e33f6b isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7ebabfb2 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/md/dm-mirror 0x3b3a3890 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xbbfef508 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xc261adeb dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xd44b48f7 dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mod 0x02f5f755 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x048eaa9e kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0x38db8f0a dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x4539b385 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x5f63afba dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x60264432 dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x60b20535 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x63b176ee dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x84a019a3 kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x9855c5c3 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xa534113d kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xb60e2d50 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xbc8b6592 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0xbf4a1c28 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0xc216d4bd dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xc7dd39bd dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xc8ef8e0c dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xccd56e8a dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xe701255b dm_table_get_mode +EXPORT_SYMBOL drivers/md/md-mod 0x2112d19c md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x38bbf6a1 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x4997e299 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x4ee307f5 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x65c34649 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x766510dc bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x7b123200 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x97d5a0fb md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x9fee114e md_error +EXPORT_SYMBOL drivers/md/md-mod 0xa3884a2d md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xb787e39a unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xb9e518cd bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xdf315714 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0xe987464b md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xfb13fd86 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xfea4b837 bitmap_start_sync +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x06906abd flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x201f2ffc flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x23d93062 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x36b865d8 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3cd0429f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3f0ac6d5 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x44b758d4 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x47f0b9e8 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4b008ed3 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6a7b3291 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x80543acb flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9474d720 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa04737ae flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcff26a2b flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd028fa39 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd76ebb69 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfb9a370a flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfdd224b3 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfdec43b2 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xff190583 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2c663a03 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x8fe8a4fc bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x92b1216a bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd0a3c948 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x09f4af51 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x33da3292 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x34e606b7 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4944f9ad dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x50ad64dc dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7344c2fc dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x857956fe dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x91bf95c2 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xada07c6f dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc4f6484b dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd333c13f dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd5b80340 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf0a90bdd rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf9570f7a dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x310c3915 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c8a5505 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2509ac92 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x42d554d4 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x539c2daf dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5562b1fd dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x58eec2c8 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5990cab7 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5d596593 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x70196249 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x73f92dc2 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7583abbc dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76203705 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x775b02f7 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7989c047 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88144b0f dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8950722c dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa2b8d41b dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa88e5e0f dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xadeaa28a dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb4d96f5c dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb594381d dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb84cf6cc dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb8d178d6 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbdfacbc9 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc1bb21f1 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc1d45583 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc8e2a0ee dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd1b40b9a dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5cc6aa9 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xebcf3597 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xece88931 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xefa3407f dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf072bd4c dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf22d0f77 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf960b294 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfa028bb1 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff5deb83 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x139be5f1 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3143e646 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x78d100df dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x96d3d147 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa33fbf91 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd6870333 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xdae3441b usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x8e3f2c16 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3942dd29 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x51b89cd5 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6d5700f4 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x736915ef dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x746a93f4 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x94c16291 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa45eb571 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb93ca3e5 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xcbe152c1 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdc3411a6 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdd94384c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x0252779c bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x87cb1295 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xce05acb9 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xc3720827 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x42f69b47 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x1fb2b86a dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x34dbfad0 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x93d01243 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x34bf30e7 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x417ead1e dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x992689a3 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa2b7751d dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcf1def35 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xddd0295a dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x28ea3c6a dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x759d9094 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xb9c8ea56 dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3a9ac883 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x46c1863d dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4ed286b2 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x58383ceb dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5f45a478 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xdf9b901e dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x5fd7b713 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc1a7ee53 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xfd0fb212 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xb756f998 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x3b4a22e4 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xf4339e87 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xdfd73d74 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xaf1bb38a lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0xd95f2803 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0xdf943fb1 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0xdd865c7d mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x628a08ff vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xb7bd0a76 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x68993b06 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xe83173db nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xc1fb7f33 or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xcfb0dcd0 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0x3a0aa59d qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xa283c716 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x6d2f2563 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x383fa395 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xb13fd3df sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x1fc271b8 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xb10536e0 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x2d4c501a tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x3449b3e2 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x37a61636 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x4c2317cf tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xcf3689fc tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x527d2b68 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x2517f9bc tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0xac8dbe45 tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x5102b1a6 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x75186ef0 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x87fe87b3 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x6265060d zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xd8af2da0 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x914d5e29 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xba8a5fe3 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x17a4bebf bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xa616a0c3 bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xf8d1f29e bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x01c96d2d btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x66cb5838 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cpia 0x61aece0c cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x69e6c9b1 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xb1bd1d9a cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xe828595c cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x617a2192 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xbfd178a7 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0800675b cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2e9f699a cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x995fa1fa cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa78afee0 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xdac45e55 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2ef4ebf4 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5aab2c14 cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x71b5d960 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x9b7e7a13 cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa74f49db cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xcc4deb3d cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xd481a8cf cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xea8bbd2e cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xed05ff6c cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x03c64490 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x04e515c5 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x05fffcfe cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x15ab25ab cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2ab41adc cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x33ca90c3 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3a3197d4 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x465307a7 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x520d74c4 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x68d39d98 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6eef78a2 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x78f17cf0 cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7cdaa7df cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8298210f cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8ce23d17 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xad152369 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xad94110a cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc4f2f958 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc5e8ff60 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xea33852e cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xec7173b8 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf6d6bf3d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x192e5518 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x33d0a5e7 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x38b6ea2c ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5099082e ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x521f4ed8 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x585dcafe ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8fc85987 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x95d67788 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa84beeca ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb626dd26 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcaf6bf71 ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd795158d ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xedcf9686 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x19fdc2e3 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3166072d saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6af292b0 saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7b1d685c saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa5e818f3 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa6e68d31 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa7d64ded saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa93e7ccd saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc2b76b5c saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd33749cb saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeb98f337 saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xeed0816e saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf3772b9f saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/tveeprom 0x75c9c78c tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xf1cb26e5 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0ff45263 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1c932f39 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1d44eb2f usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4a0f3d66 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x66466170 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x88e160fc usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8ae216a2 RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x90e7cff3 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xebc1376e usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xec8e5d63 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x2f3ced14 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x33b3b664 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x3bbf961b v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x663890f7 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa48ef78c v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xcd1ce001 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb93f9a28 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc8e91101 videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x209f333a videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0x4b8a8b07 videocodec_attach +EXPORT_SYMBOL drivers/media/video/videocodec 0x6d03b1c3 videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x746dfa72 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videodev 0x020ae138 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x0965dbdb video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x1cc905e1 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x22b7a6c7 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x43538010 video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x57eb02fc video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x9491bd0c video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xb1c7d703 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0xc57baf65 video_register_device +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b7dc872 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x105d4f47 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17bdfc8d mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x22d0ee1a mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x259fba81 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3640181c mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a981375 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e29ea1e mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4313f2a4 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44010a42 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x51ecab3a mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5ee2174d mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6083406e mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x60de9f9c mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x61fc841d mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65167d66 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7c07d05e mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xab956757 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xadc8b321 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb5e433a6 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbb1213b3 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbc43baad mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce117943 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4d0b64f mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfc8fd32f mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x081fd27a mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x09c801ee mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0d99ead9 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x18f4a224 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1d5b7ce8 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x22659288 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x290c5524 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2ea320f8 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d744c9f mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x44a3f464 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x532555f7 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x71a17e12 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7d9bd87d mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x874cec53 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x89f56d8d mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8c917477 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x92661a99 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb284aa03 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb3b014af mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5d4e5ed mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6755a83 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd94d29e9 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe0e99e7a mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf3b03d47 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x061d2b2c i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0a861dce i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0ba2b48d i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x15633752 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x280cdabb i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2e3b6056 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3ea8bfeb i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x49717366 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6606151e i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x726c9c60 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7966bd74 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8afd895a i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9fe97ea6 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa8ab8fbb i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xab426087 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb8ccc54f i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc54d4766 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcc5333e4 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcc9a3936 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd668c034 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf5b6c7a6 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf82ce9b3 i2o_status_get +EXPORT_SYMBOL drivers/misc/ioc4 0x156d6c31 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x3f4ff46c ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/misc/tifm_core 0x0d2dcfc4 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x6a9c4afa tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x827c7675 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8b5e4416 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x8f33e19b tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x91c2cecf tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x9d52155c tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x9dc97e72 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xd11af584 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xe2e9cce8 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xecbb526f tifm_map_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x8c94abf4 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0627025a mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1381b5f1 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1392f40d mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x16ac26c9 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2ca97afe mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3576dc0c mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x51bb50ed mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5732bb94 mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5e14e54c mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x74925570 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8432d63b mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8907bc5c mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x967361f7 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa3042a9b mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc9b889e8 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xed5c1c8a mmc_register_driver +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x14303288 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7364fc6d cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9a441b60 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0d56df7c map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3904c1b1 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8815557c unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xaf79d271 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x65add252 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x982d5f43 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x17eb98cc del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x21bae450 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x6033ce9c mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xf59eaf3a mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x49b1e44c nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x789fa2a5 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x06f8dba6 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xcbf04020 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x01d1fc26 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x58afcbb2 ei_open +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xaa0cd4b8 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xb3b43cb6 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xf3ea4087 ei_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0206181e alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1bb82bb3 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2e3c445c arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x365d7a0d arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb5eba96b arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbbf8d46c arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x332968b1 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x48de9d19 com20020_found +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x24a26028 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4c1b6c2d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x59e4d7e8 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x663804a4 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x716a6b0e t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7757a3e0 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x79446274 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8e8338e0 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9e8fb948 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9edb4921 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbbbfbc17 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbef4bf3c t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc7faae48 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd0dd1e4a t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xec72bb3b cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf13774d8 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x23a3e473 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6619dfd7 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9bd7deec hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbc3428a7 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf4ce7fd6 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1cf49fd5 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x26b290ab irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x41b16662 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4c19219c sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5e579b52 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x84ec583a sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa770d403 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd67ef130 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xed273c90 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf2236f54 sirdev_raw_read +EXPORT_SYMBOL drivers/net/mii 0x0a5f5e01 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x0b7df99f mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x2b412ecb mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x3b365ce6 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x7a558dad mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xd869ae09 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xecaa3c9e generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xf9d6e7e7 mii_link_ok +EXPORT_SYMBOL drivers/net/phy/fixed 0x353ef9a0 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0x395526a4 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x09b8992a phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x1d2a302d phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x1ea21ad6 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x24be7e9a phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x277932dc phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x2c1795af phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x357ca456 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x4162e30b phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x4636e8e2 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x478e4d80 phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x667200d4 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x6ca59862 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x6f2647f6 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x71c02a25 phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x74768834 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x79cbe663 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x79e27617 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x85b4ef24 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x98df8b17 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x99c91a96 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0xb17aaedc phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xb79af0c5 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xbe8920ba phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xce2570e7 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0xd2389a8b phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0xd8416d59 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xe467ab87 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0xf5153053 phy_stop +EXPORT_SYMBOL drivers/net/ppp_generic 0x01a8b1e2 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x08e967f4 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x40def139 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x8903928d ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x9eb6ca16 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xbe11507e ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xc5e157eb ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xe7136d81 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0xec58bff6 ppp_unit_number +EXPORT_SYMBOL drivers/net/pppox 0x3263f731 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x40707304 register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xe0a5cc9e pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init +EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss +EXPORT_SYMBOL drivers/net/sungem_phy 0xffe34636 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x32e00b93 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x4c3b6310 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa46d6942 tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcb2616eb tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x22ab689e alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2b68117f attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6d1e2529 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x78297fdf detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb443812a hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb55576c0 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xea848e4d unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf334b1ad hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfc92d4de hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0x2ace7b89 sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0x2e4c1d57 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0x373faadd sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0x91481194 sppp_detach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xdaeabaa2 sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0xeedf1592 sppp_close +EXPORT_SYMBOL drivers/net/wireless/airo 0x01b09dd9 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x679a16cc init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xf399ecf6 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x386c50bb init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x701f1f86 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf361a122 atmel_open +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05562da2 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10302f6d hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1efd1e88 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x20614d80 hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x28d86100 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2ae3510d hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41d08c3e hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x446e7718 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x60b90941 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b9d6001 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x735c9532 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x81be9eaa hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8bef602c hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa042ef66 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa04374d2 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa4f0d315 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb09de526 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2615402 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb6ad1bbb hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb6e7aca3 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb949ef03 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc59c5e9b hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd77449e2 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd876063b hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd94f121a hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd96006c9 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf794aa53 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x3735a77f alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x3e5fd300 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x40f2722d __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x8aa9692c __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xadd905e6 free_orinocodev +EXPORT_SYMBOL drivers/parport/parport 0x054970b3 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x08666d64 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x10b34792 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x128d94dd parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x2638ce83 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x2a4f7695 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x2cf599ad parport_release +EXPORT_SYMBOL drivers/parport/parport 0x31c15ba5 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x3774c21c parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x55d2cc39 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5781b8cd parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x6662c344 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x7ae5aded parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x89559cae parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x8af9aa4c parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x9ec40e10 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xa451be75 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xaabaccc3 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xbaddd372 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xbb87b170 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xbdc69e16 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xc3ed81f2 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xc7b08d2c parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xca123bf7 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xcd097693 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xd1081400 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xd5adb8f2 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xde4c2169 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xf239eca3 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xfefd8f4b parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x431cb90e parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xa0fa1fe0 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x02adc793 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x266919ac pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2ec72401 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x326d4b19 pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x49296cc5 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4d02f034 cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5b8fb632 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x68538d3c pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6d1c77de pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x751903d0 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x763c7dc2 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa9efd50a pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb4c0a630 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbe531e33 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd9860c9f pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe2f857bc pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xeb31e1d7 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0648ce0d pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x07d3d3a2 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x09ac7756 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x14df48a6 pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1d622698 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x22bb73c1 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x22e84f7a pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x26643a69 pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3a1b00b1 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4b68df2c pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4c9d85ee pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4d984a8b pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5366e9b9 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x53c106dd pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x573f3cb7 pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x57e1a6dd destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5bdf98d3 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x75f8cdcd pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7abc6f3d pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7c8518bd pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x859c6dcb pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x93204979 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc0e576ae pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc4cf6f51 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd199d2af pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdebf25c8 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdf2a997d pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xef4c1b3a pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf3447cd1 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf509b141 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfa46e5fb release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x14b0b3d9 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x1110a86c lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x12286f57 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x320b223c mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4baaaf20 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4d515140 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xaf0ee62a qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc36c7817 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe621e4dc qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf7d3ddf3 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/raid_class 0x6007e4ea raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xc2b6ee38 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xc74bb951 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x00f963ee scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0421e8ac scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x048b285a scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0691d6fe scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c90828e scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0d0ca91b scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1aead48a scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1be59097 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1ed90275 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x209aab96 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x229493c7 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2582a70a scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x26601cf8 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2739a2de scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x30631410 scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x30db9ad8 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x33e4003b scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3466703e scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3aa89071 scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4449e471 scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x48ad4791 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4b7ff43a scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4c6be835 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4e606364 scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x519507b7 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x52ac3cda scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x53dc3829 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x54e13ace scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5b1e8144 scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x62bf0517 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x63398d61 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x684fefac scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x68b1a827 __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6a1e4b79 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6a6a529f scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6b63c1ac starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6c352374 scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6ee7005b scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x863f065e scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8f6ee044 __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x909a4221 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x909c2e76 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x91422fc2 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9c5f8342 scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa1bebd6b scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa7577415 scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xad7e4685 scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xae4318c4 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb0d46ac9 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb1895ff9 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb4d70f50 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb98c5386 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb98e0964 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbb9412cf scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbd45473a scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbebd92f2 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc00bb9ae scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc28a5bd2 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca0b2e83 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xccf9f95f __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xce8f8403 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd0444123 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd32de1a6 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd391bc87 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd47b30b3 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd5ef33ea scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd9a75a6a scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdac7dfbf scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdbe93981 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe0b508e4 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe15b7c14 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe2ce369d scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe45fe811 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe897d940 scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf4528073 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfcc6942f scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfd6d014a scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef3bac3 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x009a472e fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x122e0418 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1401f32a fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x16856bdf fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x31ffa718 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4a6b3435 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6a9d1a64 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6d46aec0 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7bfb41a4 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc5368d70 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdbe08a80 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00f6b45a sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1bb8b27b sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1d1704cc sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22799552 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x31e2c288 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x320564eb sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x49c98c81 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6b5b3774 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70043b69 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70d3aa8d scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x743e42f0 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8a69e7b8 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x97024e65 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x989796ac sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ccf25b5 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ce8c27c sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xab3b2104 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb26a22bb sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xba766c98 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc800a94e sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xce912e1c sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe0b775a9 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe15360af sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf4b5e424 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf9795701 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfdcd77ec sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3e261f30 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7b10cbef spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd1d23cf9 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xdf8ba878 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xec046827 spi_schedule_dv_device +EXPORT_SYMBOL drivers/ssb/ssb 0x1f659ce8 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x2436112c ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x25599bbd ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x3c9343f0 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x3dff2ea8 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x43d63eae ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x5300a05e ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x628732b9 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x758daa96 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x8470d1dd __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xa556cd78 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xba942e61 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xbc5aefbe ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc9a80014 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xca65b550 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/telephony/ixj 0xba2ec996 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x2b6bd5f5 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xd887b387 phone_register_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x00f242e4 usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x030bfaee usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x062ebe75 usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x08744f26 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x08935b34 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0ace5314 usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0b4676a4 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0c03b91e usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0f4aedd0 usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19086866 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1a659779 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1c2501bb usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x20063a84 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0x231b93d5 usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2c6cf093 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2ce86b6a usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2e134c95 usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x39261f3e usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3a570ca6 usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x47692c84 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4c5ae57a usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x56a252ce usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0x59ae223b usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x62c8a3e6 usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6e4ee4df usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6e92f5d4 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7028e00b usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x79ad12c7 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e51cd20 usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x816070f5 usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x873f2abb usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8e2ae8c3 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8e391109 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8e3af54f usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9c78eb19 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9c7e0d7e usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9d2392dd usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa4179cbb usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0xabd26836 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb22b0d70 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xbb4d9bc6 usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc61a4fd0 usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd7751bc4 usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdff606de usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe51b3741 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe81fc9fc usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xec667654 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xffd99b36 usb_sg_init +EXPORT_SYMBOL drivers/usb/gadget/amd5536udc 0x4db21fa5 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/amd5536udc 0xfe1338f2 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x598621dd sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x071605e6 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x2cd3fafd ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xb5147df7 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xf2e94254 ezusb_set_reset +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0xe8de29b6 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xf8adf877 lcd_device_register +EXPORT_SYMBOL drivers/video/console/bitblit 0xcadcfa63 fbcon_set_bitops +EXPORT_SYMBOL drivers/video/console/font 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL drivers/video/console/font 0xbb99125c get_default_font +EXPORT_SYMBOL drivers/video/console/font 0xf7584a9c find_font +EXPORT_SYMBOL drivers/video/console/softcursor 0x5b8d5d52 soft_cursor +EXPORT_SYMBOL drivers/video/console/tileblit 0x38160284 fbcon_set_tileops +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x43bdcb63 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x4636e745 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x9148ec36 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xac9f301a cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x7c599dc1 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xc7323982 display_device_unregister +EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x15457af8 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x4608d12d matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc2880750 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe56bcab7 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x05476891 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1be3121a matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x70c0a8ba DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xb7fdbaa2 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x78ef7937 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x4df15a5b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x034e0327 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x13d73488 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x15887d14 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc526419e matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x80fb80e5 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xa6428c70 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x3c1e0d49 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd12ea777 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xece503ef matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xf35018c2 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xf9a2a48f matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/output 0xd20a9dda video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xf56c533b video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x17227b8d svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x2a8c4a23 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x3cfda6c0 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x40fe63d5 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x489526ed svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x82e4bc4b svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xb6d2db44 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/syscopyarea 0xf1abdff1 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xc51e27f0 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x7eec9fcc sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x0f545901 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xcff0a60f w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x3d0daa7a w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x5d30772d w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop +EXPORT_SYMBOL fs/configfs/configfs 0x016aceab configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x14d296dc configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x166ded74 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x404f2b41 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x689806a0 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x8239f309 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x88740179 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x88e4cb0c config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x88eb3045 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xa993af96 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xaed35174 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xca673760 config_item_init +EXPORT_SYMBOL fs/jbd/jbd 0x0137daf9 journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x08d33b37 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x0ba4961b journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0x1ad81dcf journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x1cdcc402 journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x29ebf7db journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0x2c2f1390 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0x2ee12e96 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x2efe3d6f journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x3a8f7ef5 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x566edac4 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x59a619b2 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x5a4f2fcf journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x5d04a70c journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x5f8334de journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x66f2166a journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x6706a6b4 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x67438b9b journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x81dca638 log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x83f0634b journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x8a722814 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0x8e23a379 journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x97aed9b9 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xa3cf4920 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xa54ee0ea journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0xaa76a1ce journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xace62c84 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0xb3e6c7c9 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0xb9f48db0 journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0xc688716c journal_load +EXPORT_SYMBOL fs/jbd/jbd 0xc77cf6e9 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0xcc0b493b journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0xcd6801b9 journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xd7de8575 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0xe2cc150c journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0xe6d8d1d5 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0xf013eb5a journal_stop +EXPORT_SYMBOL fs/lockd/lockd 0x1fdac67c nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0x9ef17b2f nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x0dbb20cd mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0x39f75990 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0x75da05a6 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0x8487dcde mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0xa0dfd6a9 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0xa6421d85 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xf4cc3db3 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0xfe771681 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0xff5f2886 mb_cache_entry_alloc +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x11b220da nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x64153901 nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new +EXPORT_SYMBOL fs/xfs/xfs 0x5e6c6ebe xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x9aabc564 crc16 +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x13c0c38e crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0x41bcd8b3 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x70b5af27 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xc6e12832 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x08196b4c p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x0956503c p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x0f3569f7 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x12102070 p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x26d8fcc4 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x4d921a77 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x804f0b8a p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0x80587277 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x814dc940 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x8fa8eb29 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x92504c1f p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0xa7f28ff9 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xbb35b5b2 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xd4fa2f74 p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xd57771ae p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0xd7c58fbb p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xdd5c399f p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe177a91e p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0xe1b83f52 p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xedc5d47b p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xee337cfa p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xee81e69f p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xf0aa734c p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xf39e4fb7 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf3f95cd3 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf689f7ce p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xfd4a5ca6 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x11769c15 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x69bfdbdc atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x946a169d atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xb1dd518a alloc_ltalkdev +EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x50599dc5 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x85a4b32b ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9a9ae99c ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x9e9483fd ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xbc182271 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc4e6af2d ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xee3585f7 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xef36ecb6 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xf8ea4136 ax25_listen_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0844ebf7 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0fd4b97b bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a2f7e2d hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2fe6b2c9 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x34fa4316 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b50e742 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c5d5354 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a944043 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6dc586c4 hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7f54d772 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x80c498de bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x83bec366 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x85437e95 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x873a8162 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x906d3b48 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa208e8cf hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaad2a015 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xadec49ca hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf89bfb8 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0db4c8c hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe28d6384 hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe912cc07 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xecb90150 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed7e5c57 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0xef52b35d hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf430e7b2 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfb30880e hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfbeeae90 bt_sock_register +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x3ff127cf br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x00e222a5 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0c2e4bee ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x3a9fc204 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4973b812 ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x53d1480c ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7917abc3 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x89e02fa8 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa5238a59 ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb3496213 ebt_unregister_match +EXPORT_SYMBOL net/ieee80211/ieee80211 0x23b88349 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x397d64fc ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x3f441d09 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x41d84394 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x52c07a42 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6f79bf0c ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x727014e8 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7c49968d ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7d0c30a4 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0x9e36cc6e ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa99e5743 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xafb8cd67 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0xbf84521f ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc5a4973c ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc67a0215 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0xcd30a716 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xdc35f7dd ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe27d1fbb ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xebde41e1 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x1ef10beb ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x2e18c498 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x64e72d50 ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xb7ef07f5 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xf235a44d ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xfbeea5ef ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ipv4/inet_lro 0x0e5bb9e7 lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0x110aaf55 lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x3c8c8fad lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x73d647aa lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xf31df0cb lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xf826116c lro_flush_all +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x06db1f51 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x084114c2 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x54b82196 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x55188dba ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x75f41fd2 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x9815d79e unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa7e4ab7d unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xbdf23939 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd1ddac1e ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xe6125351 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xec5bb884 register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0d8e0ec7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd4bdeda2 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xec977702 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4b3ea6da ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xce7a9b6e ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf5187f5d ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1a69a416 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x35deffd6 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x560f6076 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7e5780e7 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xbe3ee64d nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd73403ef nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x38ba0593 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x9b746059 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x01f06f8f ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x01f3d1d3 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x052d90a8 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x155047b9 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x175e901d compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x1803ed3f in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x1d86122f inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x1eb0845a xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x27e1ccf2 xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x2a1a250d xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x2c2d8723 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x2d4b63cc inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x302bdc1b inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x3735bf77 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x403272f6 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x4a67d3c7 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x4b0b9593 ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0x4ed04027 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x52a85a67 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x685bb10f inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x717083d7 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x7ff7c70c inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x82bd150b rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x9dde1405 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x9ec1fb9a ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xbdfd5be6 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xc48082e2 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd2d51f2a ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xe7034253 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x5e853e7c ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8b525831 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc2d485a6 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe22d72ba ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x2b04a492 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x70cc7a1d xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x03cc1ab2 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x03f4d6ef ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x08801b2b ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2e47fbec ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x55ca2094 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbd7aaf83 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd693d452 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xded5d3ff ircomm_connect_response +EXPORT_SYMBOL net/irda/irda 0x02df5a94 iriap_close +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x06f47e55 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0af6596b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x0bc39aae hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x1192870d alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1a88eb6a async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x202331bc irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2b9229e7 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0x2d56b0a3 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2e7b3a86 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x2ee3c48c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x2f726c7b irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x5122e9af irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x5bafbcf1 irlap_open +EXPORT_SYMBOL net/irda/irda 0x617c5b7d irttp_dup +EXPORT_SYMBOL net/irda/irda 0x62f51453 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x69c7294c hashbin_new +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6f3cc5db irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x6f93f69e irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76f5669a irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x843ca281 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x855a5d1b irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x878f8bc9 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x883c81df irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x891adbf4 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9927418e irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a45608e irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0x9e9d70f5 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xa202189e irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xa54f1a1c irias_find_object +EXPORT_SYMBOL net/irda/irda 0xa8d96ca5 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xad5a3a73 irlap_close +EXPORT_SYMBOL net/irda/irda 0xb6586d66 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc4e30158 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xc58f8d9e irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xdbd5da79 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xdbe4bc4b irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdedecad0 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xe9ccd8d2 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xe9d58deb hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xeab038fa proc_irda +EXPORT_SYMBOL net/irda/irda 0xed869e04 iriap_open +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf22aa033 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xf5f7ccc5 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xf6c58c8d hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xff874aea irttp_open_tsap +EXPORT_SYMBOL net/lapb/lapb 0x0e7fea5d lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x518cca03 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x7bbed188 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x8e29230d lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xaad24cdf lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xb6e050b8 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xc062507d lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xd5d307ce lapb_connect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x0151ba2f ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x0804262f __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0bf25814 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x1384c493 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0x15034911 ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1ca0a753 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2affda7d __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3675eab5 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3be49593 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0x498d72d4 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x4f79980e ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x4fc89eea ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x522cb3b1 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x5504fe26 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0x556cea66 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x55b52a55 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x59496991 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5fc19808 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x66c5cc5b ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6b057708 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x8c77c34e ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x903aa4f9 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x95c2400e ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x974052a8 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xa0c321c8 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb1addfc4 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0xd1913cf2 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xe92e897c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xeb17ed18 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfa3351a2 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x006a1d23 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x02721ccc xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x1dbbd39e xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x3c155f42 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x5cfd36e8 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6bf5e9f9 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x86467fa6 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8c507b5f xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd16cae93 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd264c4b6 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd37b3763 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xecef5ae1 xt_unregister_targets +EXPORT_SYMBOL net/rfkill/rfkill 0x177834c8 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x5e71e535 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x6dceeedc rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0xa28e7368 rfkill_free +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0261812c rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x049ec32b rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2e599c55 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x408da8ea rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x46bed561 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x519cd019 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x52dd541a rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6a5b0213 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7781bab5 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8f72c975 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb6553643 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb6a8a18d rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc5521197 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1788820 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd26996d7 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x07450464 gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0f182c1c svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x107068ce gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1da138b6 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x35d6c15c gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4bfc4127 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4dd03593 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4fc44157 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5cf8cb19 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x91c4d113 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x97408838 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5ad7e23 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbaee6b05 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe1efc83b make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe2660263 gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x004b93c5 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02a49778 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x035a51e0 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x06b5bc55 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x085466c6 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0b466820 rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0d6b51de rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x14178b57 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1a988296 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1ea28556 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x21628d06 rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23f00236 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x241f0686 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x24b12264 rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x280d4d23 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x29fb0b17 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2cf5b7c5 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x307bbc28 xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x345c83e5 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3a521665 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3b152bb4 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3beb587c rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x40958ec5 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x41b992fd __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x441baa85 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x443a57b4 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4c6f92f7 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x52a790ed rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x55430231 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x58d5eb41 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5beb14a6 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5eb213aa svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x62963e75 rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x655d4d4c auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6b14439a rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6b86b6be xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6bb8a9cc rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6dfb54bf svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x740d4308 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x74697156 xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x75a39163 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7728c3c4 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7b40465d xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7de29185 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x823889b7 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8344818c rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8522868b xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x85ad40e5 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x864f8063 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x87a65a02 rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8971880c auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x905084aa xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x928282e0 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x95cb8406 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x96bf9f24 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x96c95302 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x97947258 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9930f67d svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9950e209 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9a1214fe auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ef962a3 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9faaa7a6 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa0d0225a svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa4c743d7 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa609c672 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xab10d0aa sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xab84a870 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0xabae92ae xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xabd61ccf rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xba58dc32 rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbd0a2a0c auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbe2f0921 xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbe692a95 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc2d1ab33 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd04400bc cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd38dd3b5 svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd431f85c rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd52a7761 xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdb4dabe2 svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe366a2b3 svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe3a8469b xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe415e587 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe4e5a0ce svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5053e57 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe9126bd5 rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf06862ce svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf7e3045e svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf8213baa cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfb6c2774 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfdcf3319 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0xff4570e7 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/tipc/tipc 0x01e61721 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x1c5f29fd tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x271a6d75 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x331f6f29 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x459e7374 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x7e6ac0a5 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x890a52cd tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x9086f35e tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x9174903c tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0x9d9f123d tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb18ed39f tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xb1971a4e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xc25aef29 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe131b34c tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x60282f02 register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x259f81b7 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x6dab8314 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xac539509 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xd56a365f wiphy_new +EXPORT_SYMBOL sound/ac97_bus 0x8379fc2a ac97_bus_type +EXPORT_SYMBOL sound/soundcore 0x45b610ae register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x77383dd4 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x84aa7bf1 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x92c3147c register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xb7e35a5e sound_class +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xf1610895 register_sound_special +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL vmlinux 0x000b6df4 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x00141e5e acpi_root_dir +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x00181f59 bdev_read_only +EXPORT_SYMBOL vmlinux 0x002476a1 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x0040d664 __seq_open_private +EXPORT_SYMBOL vmlinux 0x00687190 read_dev_sector +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x009d258f _write_lock +EXPORT_SYMBOL vmlinux 0x00ffd3c7 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x013513e0 seq_putc +EXPORT_SYMBOL vmlinux 0x013ec5b1 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x0143d0da skb_make_writable +EXPORT_SYMBOL vmlinux 0x0153b169 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0153f92f seq_escape +EXPORT_SYMBOL vmlinux 0x01837b2d alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x018f7ec0 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01951d4a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x019d2e30 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01a84097 simple_release_fs +EXPORT_SYMBOL vmlinux 0x01ac0cd1 ps2_drain +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01d855ec uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x01e3645d node_data +EXPORT_SYMBOL vmlinux 0x01e64407 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x020c7704 llc_sap_close +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022e6ae9 acpi_os_sleep +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0247a6e4 idr_find +EXPORT_SYMBOL vmlinux 0x024af8a4 blk_init_queue +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x029851d6 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x02a1607b tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0x02be2f7b __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02f1b8fc pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x02f2cd18 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x0317ed47 vfs_write +EXPORT_SYMBOL vmlinux 0x03222278 vfs_read +EXPORT_SYMBOL vmlinux 0x0354c003 tty_set_operations +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037c678b xfrm_init_state +EXPORT_SYMBOL vmlinux 0x0393337d file_permission +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03d198bc sock_i_ino +EXPORT_SYMBOL vmlinux 0x04072b0d swiotlb_map_single +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042e8635 bmap +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x046d3031 pci_get_device +EXPORT_SYMBOL vmlinux 0x0470d30d locks_copy_lock +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048c6c09 put_filp +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04dae8ba pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05293c35 __serio_register_port +EXPORT_SYMBOL vmlinux 0x053f20fb inet_csk_accept +EXPORT_SYMBOL vmlinux 0x054782f6 user_revoke +EXPORT_SYMBOL vmlinux 0x0558a9d8 __scm_destroy +EXPORT_SYMBOL vmlinux 0x056182f8 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x058c75d9 acpi_get_pci_id +EXPORT_SYMBOL vmlinux 0x05a3dc71 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x063d18c6 may_umount +EXPORT_SYMBOL vmlinux 0x064a23f6 ipv4_specific +EXPORT_SYMBOL vmlinux 0x0657d248 input_grab_device +EXPORT_SYMBOL vmlinux 0x06702852 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068550d8 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x06ccb21b pci_find_device +EXPORT_SYMBOL vmlinux 0x06f2d5c7 mempool_free +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070290d8 dev_add_pack +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x075cc91f migrate_page +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b76367 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d065fb sock_no_listen +EXPORT_SYMBOL vmlinux 0x07e43c47 wait_for_completion +EXPORT_SYMBOL vmlinux 0x07f90f5e dquot_acquire +EXPORT_SYMBOL vmlinux 0x07fd3301 aio_complete +EXPORT_SYMBOL vmlinux 0x080286f5 down_read +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0841aa5e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x08704703 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x08c4f629 acpi_get_name +EXPORT_SYMBOL vmlinux 0x08cfb22e tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x08d2a6f5 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x0900e0d6 _spin_lock +EXPORT_SYMBOL vmlinux 0x090462a1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x09259443 seq_release +EXPORT_SYMBOL vmlinux 0x093a6f1a simple_write_end +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x094cfed1 ilookup5 +EXPORT_SYMBOL vmlinux 0x0953ba22 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x096e7653 xfrm_nl +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a0b562 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09cec2b0 vfs_quota_sync +EXPORT_SYMBOL vmlinux 0x09d130a7 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09db2f78 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x0a1c9f3d mod_timer +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a372247 acpi_get_pxm +EXPORT_SYMBOL vmlinux 0x0a4a42b1 down_write_trylock +EXPORT_SYMBOL vmlinux 0x0a847829 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0aaf22ab __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x0ab135a8 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x0ab53258 ida_pre_get +EXPORT_SYMBOL vmlinux 0x0ac6ea32 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0adf839d kernel_bind +EXPORT_SYMBOL vmlinux 0x0ae4c036 d_delete +EXPORT_SYMBOL vmlinux 0x0afd10c3 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x0b01d78f tcf_action_exec +EXPORT_SYMBOL vmlinux 0x0b03497d __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x0b079fd4 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b56c4bf generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0x0b58508c xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b846af2 serio_interrupt +EXPORT_SYMBOL vmlinux 0x0b96db03 pci_release_region +EXPORT_SYMBOL vmlinux 0x0ba12eb2 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x0baf117e kfifo_free +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bd5a6a5 pci_iounmap +EXPORT_SYMBOL vmlinux 0x0c3329f9 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x0c56a8b4 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x0c59d893 register_acpi_bus_type +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c62628a key_validate +EXPORT_SYMBOL vmlinux 0x0c9bbb2d alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x0ca4aa03 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x0cd282cc pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x0cda10c1 del_timer_sync +EXPORT_SYMBOL vmlinux 0x0d22c551 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x0d26a76d _write_lock_irq +EXPORT_SYMBOL vmlinux 0x0d39c8d6 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7d2125 unlock_page +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da3d7ad mutex_lock +EXPORT_SYMBOL vmlinux 0x0ddfd966 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0dee20a8 ip_route_input +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0ea44b13 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x0efc2afd dst_alloc +EXPORT_SYMBOL vmlinux 0x0f26d495 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x0f280169 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x0f5a92de dcache_lock +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fbbf7d4 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0feb8c5b neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x0ff6b79e task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x101fd10a test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x1039c539 path_release +EXPORT_SYMBOL vmlinux 0x1042cbb5 __up_wakeup +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x108c6906 skb_over_panic +EXPORT_SYMBOL vmlinux 0x10d30a28 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x10e58020 devm_free_irq +EXPORT_SYMBOL vmlinux 0x10ec488d nf_register_hook +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116c294f pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x117db821 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11af7233 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x11ca044d nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x11e35034 pci_enable_wake +EXPORT_SYMBOL vmlinux 0x11e8b36f mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x11f927ef inet_listen +EXPORT_SYMBOL vmlinux 0x12118a47 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x1222b14d tcp_ioctl +EXPORT_SYMBOL vmlinux 0x12309308 __f_setown +EXPORT_SYMBOL vmlinux 0x123c4455 generic_setxattr +EXPORT_SYMBOL vmlinux 0x12495962 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x12701e69 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x1291eda2 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x12afc8e4 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x12e71d8c gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1307e223 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x130c8246 nobh_writepage +EXPORT_SYMBOL vmlinux 0x13451b2a d_move +EXPORT_SYMBOL vmlinux 0x1364d787 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x13a6b90f inet_stream_ops +EXPORT_SYMBOL vmlinux 0x13b8115a proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x14001105 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x14083a82 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x141dbf9b acpi_bus_receive_event +EXPORT_SYMBOL vmlinux 0x14572bed dev_unicast_delete +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x148a1f52 sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x14af0cf7 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x152e721b km_state_notify +EXPORT_SYMBOL vmlinux 0x1543f7a3 end_queued_request +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x154b862a single_open +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x157a23dd wireless_send_event +EXPORT_SYMBOL vmlinux 0x157a3710 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x159bad7e pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x15b4c5cb bio_split +EXPORT_SYMBOL vmlinux 0x15bc2983 generic_commit_write +EXPORT_SYMBOL vmlinux 0x15c24fa3 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x15de3a4f inet_put_port +EXPORT_SYMBOL vmlinux 0x15fb9bb3 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x1603d0c8 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x161e8a20 simple_lookup +EXPORT_SYMBOL vmlinux 0x16363844 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x16437beb dquot_free_space +EXPORT_SYMBOL vmlinux 0x165560f6 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x1675606f bad_dma_address +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x16a35878 _read_unlock +EXPORT_SYMBOL vmlinux 0x16a53e08 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x16ac35f5 filp_close +EXPORT_SYMBOL vmlinux 0x16d9fa96 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x16fea1e6 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x170a1b57 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x172954a3 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x173049f1 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x177c4b0c pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x177eeb79 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17ce748d get_sb_nodev +EXPORT_SYMBOL vmlinux 0x17d4d2f1 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17ff6896 pnp_resource_change +EXPORT_SYMBOL vmlinux 0x1803da4b sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x1809e5c3 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x182bd2dc ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x187590cf atm_init_aal5 +EXPORT_SYMBOL vmlinux 0x18863645 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x189c5fd1 out_of_line_bug +EXPORT_SYMBOL vmlinux 0x18f781de pci_set_mwi +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x198d03ee inode_setattr +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19ab180b generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x19d5d20a acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0x1a019b04 skb_insert +EXPORT_SYMBOL vmlinux 0x1a28b1bb cont_write_begin +EXPORT_SYMBOL vmlinux 0x1a41cf99 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x1a443679 end_request +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a75caa3 _read_lock +EXPORT_SYMBOL vmlinux 0x1a9d2b52 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ada0ec7 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6a0a2a __any_online_cpu +EXPORT_SYMBOL vmlinux 0x1b7d66d1 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x1b956c45 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bb9e707 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x1bcdf134 bio_hw_segments +EXPORT_SYMBOL vmlinux 0x1bde9804 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x1be62600 update_region +EXPORT_SYMBOL vmlinux 0x1be62b46 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x1c3b806e get_io_context +EXPORT_SYMBOL vmlinux 0x1c82e1be tcf_em_register +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d39970f inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x1d64219d sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x1d81821d sock_no_poll +EXPORT_SYMBOL vmlinux 0x1d9e2247 __grab_cache_page +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de314f3 hpet_control +EXPORT_SYMBOL vmlinux 0x1e29b253 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9319b5 __down_write_trylock +EXPORT_SYMBOL vmlinux 0x1ea67505 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x1ea7ca59 blkdev_put +EXPORT_SYMBOL vmlinux 0x1eac4714 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x1ec659d1 do_splice_from +EXPORT_SYMBOL vmlinux 0x1ec829fd proc_root_fs +EXPORT_SYMBOL vmlinux 0x1f27d6d7 _write_unlock +EXPORT_SYMBOL vmlinux 0x1f73c921 _proxy_pda +EXPORT_SYMBOL vmlinux 0x1f78c499 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x1f976b63 tty_register_device +EXPORT_SYMBOL vmlinux 0x1fd60ef9 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x1fea2f89 tcf_register_action +EXPORT_SYMBOL vmlinux 0x1fea79e2 cpu_callout_map +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x2052131a subsys_create_file +EXPORT_SYMBOL vmlinux 0x2063af2c __sk_dst_check +EXPORT_SYMBOL vmlinux 0x2083b7ed blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20c8fc33 pci_osc_control_set +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20ec0c9a kthread_stop +EXPORT_SYMBOL vmlinux 0x2114842e call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x213e2a08 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x21b36a78 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e5679c copy_user_generic +EXPORT_SYMBOL vmlinux 0x21f58e29 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x2219d9b4 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x222548ee clear_inode +EXPORT_SYMBOL vmlinux 0x223e3782 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x2253c959 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0x2271e4a2 deactivate_super +EXPORT_SYMBOL vmlinux 0x2274556d find_first_bit +EXPORT_SYMBOL vmlinux 0x227ae7d3 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x2284937d get_user_pages +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x233d8a50 submit_bh +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x236a7bd1 serial8250_register_port +EXPORT_SYMBOL vmlinux 0x23941566 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x239d4b98 _spin_lock_bh +EXPORT_SYMBOL vmlinux 0x23a02ef4 tty_check_change +EXPORT_SYMBOL vmlinux 0x23a19bfd input_close_device +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23b6e330 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x23e71991 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x23e8c445 iput +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fb31a2 serio_open +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24999d3d ida_init +EXPORT_SYMBOL vmlinux 0x24a8bb7d page_to_pfn +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24eec05b proc_mkdir +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x25520872 km_policy_notify +EXPORT_SYMBOL vmlinux 0x25593169 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25c678e1 alloc_file +EXPORT_SYMBOL vmlinux 0x25cae189 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x262b6b33 udp_prot +EXPORT_SYMBOL vmlinux 0x263e2a2c vfs_create +EXPORT_SYMBOL vmlinux 0x2648afe7 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x26a078aa blk_run_queue +EXPORT_SYMBOL vmlinux 0x26bff7ff call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x26e3fee6 single_release +EXPORT_SYMBOL vmlinux 0x26fb363b kernel_read +EXPORT_SYMBOL vmlinux 0x2709362c scm_detach_fds +EXPORT_SYMBOL vmlinux 0x27147e64 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x271906f6 __ht_create_irq +EXPORT_SYMBOL vmlinux 0x272319de task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x2730a383 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x273d2e59 sock_register +EXPORT_SYMBOL vmlinux 0x273f066e _write_unlock_irq +EXPORT_SYMBOL vmlinux 0x27546640 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x2760b975 iunique +EXPORT_SYMBOL vmlinux 0x27a7bb31 acpi_extract_package +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27ec9219 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x280d96b2 cpu_present_map +EXPORT_SYMBOL vmlinux 0x2812f826 register_con_driver +EXPORT_SYMBOL vmlinux 0x28205d0b __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x2881d7de per_cpu__cpu_core_map +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28e385a8 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x29022be6 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x291f9bed bio_split_pool +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29591539 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x299d5da0 netif_rx +EXPORT_SYMBOL vmlinux 0x2a1ea387 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a659df1 dev_driver_string +EXPORT_SYMBOL vmlinux 0x2a8b872e sock_wake_async +EXPORT_SYMBOL vmlinux 0x2aa5fb48 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x2ad47c12 init_timer +EXPORT_SYMBOL vmlinux 0x2b1a386f ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x2b3b591d pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x2b4b7b73 kobject_init +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2b94a7ef page_symlink +EXPORT_SYMBOL vmlinux 0x2b9e86c8 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0c8d37 __user_walk_fd +EXPORT_SYMBOL vmlinux 0x2c1290a3 neigh_table_init +EXPORT_SYMBOL vmlinux 0x2c3bf80d clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x2c3e2d24 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x2c5749e6 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0x2c6a596f __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x2caa52dc prepare_to_wait +EXPORT_SYMBOL vmlinux 0x2cc23d3d ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2cdd877e xfrm_state_add +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d02a46e bit_waitqueue +EXPORT_SYMBOL vmlinux 0x2d12e853 simple_rmdir +EXPORT_SYMBOL vmlinux 0x2d25803f call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x2d3f8cd4 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x2d9d1853 set_page_dirty +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd69ae9 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x2dd92fdc pci_request_region +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2e631e03 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x2e6ad718 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x2e6f82e2 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x2e75b744 cpu_to_node +EXPORT_SYMBOL vmlinux 0x2e7762db tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x2eb9a0e8 _read_lock_irq +EXPORT_SYMBOL vmlinux 0x2ec87919 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x2ef4ade7 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x2f110097 vc_lock_resize +EXPORT_SYMBOL vmlinux 0x2f285a04 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x2f339d89 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x2f5b18d8 uart_resume_port +EXPORT_SYMBOL vmlinux 0x2f7340be set_irq_chip +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fa6634b xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x2fb4087e atm_alloc_charge +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2fe6e8b9 flush_signals +EXPORT_SYMBOL vmlinux 0x2ff30636 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x302d1bbc nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x30314e01 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x3065a290 bio_init +EXPORT_SYMBOL vmlinux 0x306bd3c3 vfs_fstat +EXPORT_SYMBOL vmlinux 0x30c59bab proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x31153d03 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x3121e0c8 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3167ea19 global_flush_tlb +EXPORT_SYMBOL vmlinux 0x31860929 simple_getattr +EXPORT_SYMBOL vmlinux 0x318a0e9c inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x319f6f10 cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c7c787 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p +EXPORT_SYMBOL vmlinux 0x325fd77b idr_pre_get +EXPORT_SYMBOL vmlinux 0x326ba0c4 km_report +EXPORT_SYMBOL vmlinux 0x32d01fec acpi_attach_data +EXPORT_SYMBOL vmlinux 0x32ea8369 icmp_send +EXPORT_SYMBOL vmlinux 0x330411d4 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0x333af011 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x3359b527 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x337a5494 end_dequeued_request +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33bb954b dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33c416d2 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x33c87c0d compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33ce7ec1 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x33d62f77 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x33fc3f22 mapping_tagged +EXPORT_SYMBOL vmlinux 0x3400a89b pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x342595b8 netlink_unicast +EXPORT_SYMBOL vmlinux 0x343cded0 agp_bridge +EXPORT_SYMBOL vmlinux 0x343ef7c3 bdput +EXPORT_SYMBOL vmlinux 0x3453ffeb unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x345a1a39 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x347f9d8d find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x348e73ff agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34e5a22d netdev_features_change +EXPORT_SYMBOL vmlinux 0x354aee07 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x35943073 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x35a07e32 vfs_stat +EXPORT_SYMBOL vmlinux 0x35ad67ec hweight64 +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x36152ad9 simple_link +EXPORT_SYMBOL vmlinux 0x362a3c53 udp_get_port +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x3676aaaf dma_pool_free +EXPORT_SYMBOL vmlinux 0x369183ff framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x3693a73b rtnl_notify +EXPORT_SYMBOL vmlinux 0x36af0e07 find_get_page +EXPORT_SYMBOL vmlinux 0x36d5355b acpi_register_gsi +EXPORT_SYMBOL vmlinux 0x36dad13f __elv_add_request +EXPORT_SYMBOL vmlinux 0x36dae6d9 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x36f91cd1 dump_trace +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x3749eddd tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x375bb731 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache +EXPORT_SYMBOL vmlinux 0x378af50d ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x379d86c0 ll_rw_block +EXPORT_SYMBOL vmlinux 0x37bbd7cc vfs_rmdir +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37cd28e5 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x3803c156 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x38111d59 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x384447c4 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x38863a34 pci_save_state +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x39207335 generic_readlink +EXPORT_SYMBOL vmlinux 0x3928861f netif_carrier_off +EXPORT_SYMBOL vmlinux 0x3954dad4 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x395c469d pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x395f1e57 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39dcb317 vfs_quota_on +EXPORT_SYMBOL vmlinux 0x3a111da4 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab0920f uart_add_one_port +EXPORT_SYMBOL vmlinux 0x3ac3438c smp_call_function_mask +EXPORT_SYMBOL vmlinux 0x3ad38d64 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3ae1c36d change_page_attr +EXPORT_SYMBOL vmlinux 0x3b0c4358 d_namespace_path +EXPORT_SYMBOL vmlinux 0x3b17d83f open_bdev_excl +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b33697a pci_get_subsys +EXPORT_SYMBOL vmlinux 0x3b5225f2 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x3b545b73 do_sync_write +EXPORT_SYMBOL vmlinux 0x3b814757 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x3b92624d proto_register +EXPORT_SYMBOL vmlinux 0x3b957669 tcp_prot +EXPORT_SYMBOL vmlinux 0x3b99bc96 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x3bce8589 try_to_release_page +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd248be rtnl_unicast +EXPORT_SYMBOL vmlinux 0x3bfb4b64 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x3c010436 __rta_fill +EXPORT_SYMBOL vmlinux 0x3c170db2 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x3c32b556 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x3c5b4707 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x3c7c1877 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x3c8c1939 bdevname +EXPORT_SYMBOL vmlinux 0x3ca388d1 pfn_to_page +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cd0544d unregister_console +EXPORT_SYMBOL vmlinux 0x3cd2835f proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cfe4fa7 kobject_add +EXPORT_SYMBOL vmlinux 0x3d36185b neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x3d42ea12 downgrade_write +EXPORT_SYMBOL vmlinux 0x3d6b28a8 new_inode +EXPORT_SYMBOL vmlinux 0x3d96fec2 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x3d9d043e set_binfmt +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3de0015c sock_no_accept +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e3bb927 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e763693 blk_plug_device +EXPORT_SYMBOL vmlinux 0x3e7bfad1 write_cache_pages +EXPORT_SYMBOL vmlinux 0x3e7de21c vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x3e92a5fa audit_get_loginuid +EXPORT_SYMBOL vmlinux 0x3ec5a29e pci_dev_put +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ef5c311 arch_acpi_processor_init_pdc +EXPORT_SYMBOL vmlinux 0x3f03205a file_update_time +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f072204 complete_all +EXPORT_SYMBOL vmlinux 0x3f0b015e sysctl_jiffies +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f7f9bbc swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x3f8327b4 fb_pan_display +EXPORT_SYMBOL vmlinux 0x3f97adef agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fe56992 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x401e62c7 get_write_access +EXPORT_SYMBOL vmlinux 0x404e9359 init_task +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4061bbae elv_rb_add +EXPORT_SYMBOL vmlinux 0x40683be7 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x407c108b generic_listxattr +EXPORT_SYMBOL vmlinux 0x4096b92c devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409a7e79 module_remove_driver +EXPORT_SYMBOL vmlinux 0x409ebfd6 vfs_mknod +EXPORT_SYMBOL vmlinux 0x40e61705 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41469eb0 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4169e159 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41ba8bcb ps2_schedule_command +EXPORT_SYMBOL vmlinux 0x41d2b96b schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x41f3d3a7 __up_read +EXPORT_SYMBOL vmlinux 0x41fc17d6 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x420dd6b8 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422c05d0 acpi_get_data +EXPORT_SYMBOL vmlinux 0x423d5a77 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x427683ea wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x42a40c8b bio_free +EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p +EXPORT_SYMBOL vmlinux 0x42b35c60 lock_super +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43207d14 per_cpu__cpu_info +EXPORT_SYMBOL vmlinux 0x4327f0d5 memset_io +EXPORT_SYMBOL vmlinux 0x432cc573 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x4343ee9e gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x43592419 sleep_on +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43800f68 acpi_os_signal_semaphore +EXPORT_SYMBOL vmlinux 0x43803853 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43bdd372 request_resource +EXPORT_SYMBOL vmlinux 0x43eb0a02 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x442d121c follow_up +EXPORT_SYMBOL vmlinux 0x443becf9 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x444f876a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x446b1a3e complete_and_exit +EXPORT_SYMBOL vmlinux 0x446d5b76 register_console +EXPORT_SYMBOL vmlinux 0x44809893 find_next_bit +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44adf020 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44d17723 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x44ee363b backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x452d8644 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x4530d8b1 uart_match_port +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x455bd9ac noop_qdisc +EXPORT_SYMBOL vmlinux 0x455fd57d acpi_set_register +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x459b60f2 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x45c5608e poll_initwait +EXPORT_SYMBOL vmlinux 0x45cc1ea5 dev_get_flags +EXPORT_SYMBOL vmlinux 0x45dbe3da xfrm_register_km +EXPORT_SYMBOL vmlinux 0x45f8eefc neigh_connected_output +EXPORT_SYMBOL vmlinux 0x46108c67 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x461d1c8c init_file +EXPORT_SYMBOL vmlinux 0x462e9fe2 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x465f3294 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x466b9953 mpage_writepages +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46825b54 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x46a67fc3 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x46b82c7f blk_start_queue +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46e7fc83 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x46ef667f ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x46f8b9dd cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x470378b2 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x473e3983 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x475f05af acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x476161f8 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x47636033 swiotlb +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47a77866 follow_down +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4899e551 kobject_del +EXPORT_SYMBOL vmlinux 0x48e8c38a balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x490bb18c neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x492903cb seq_release_private +EXPORT_SYMBOL vmlinux 0x49318de2 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x4958be38 nf_log_packet +EXPORT_SYMBOL vmlinux 0x49c303df key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x49cf5d5f register_framebuffer +EXPORT_SYMBOL vmlinux 0x49da9a9a _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x49dee649 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x49f1181a skb_copy_expand +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a62ef89 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x4a6ed619 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4aa1f97e block_read_full_page +EXPORT_SYMBOL vmlinux 0x4aa6e84f fb_get_mode +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b2e43af unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b555f57 sk_common_release +EXPORT_SYMBOL vmlinux 0x4b61bc21 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bd84ddc cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x4bdd29c5 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x4be50ff9 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ba0fb sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x4c2c5fdd __page_symlink +EXPORT_SYMBOL vmlinux 0x4c355432 fd_install +EXPORT_SYMBOL vmlinux 0x4c37db5d unregister_netdev +EXPORT_SYMBOL vmlinux 0x4c3af445 __request_region +EXPORT_SYMBOL vmlinux 0x4c3b7d86 simple_empty +EXPORT_SYMBOL vmlinux 0x4c4a2de5 wake_up_process +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c508c5e blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x4c7424ec dcache_dir_open +EXPORT_SYMBOL vmlinux 0x4c7c3791 write_one_page +EXPORT_SYMBOL vmlinux 0x4c854a91 lock_may_read +EXPORT_SYMBOL vmlinux 0x4cbb9dd1 con_is_bound +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbc81df fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x4d10ae0a xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x4d285a0c tcp_close +EXPORT_SYMBOL vmlinux 0x4d34b87d blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x4d3bbd2d register_qdisc +EXPORT_SYMBOL vmlinux 0x4d4fc95e init_buffer +EXPORT_SYMBOL vmlinux 0x4d546f00 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dd7f53d bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df4f4b0 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x4e23f60c pci_select_bars +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e47eeea posix_test_lock +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ef61cd3 __breadahead +EXPORT_SYMBOL vmlinux 0x4efc983b create_empty_buffers +EXPORT_SYMBOL vmlinux 0x4f2e79fe iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x4f49678c remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x4f4ca137 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x4f56df00 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x4f7e205c skb_queue_purge +EXPORT_SYMBOL vmlinux 0x4f8e5ef7 mnt_unpin +EXPORT_SYMBOL vmlinux 0x4f91a060 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe405fe pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5043dd4b call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x505dbc10 set_trace_device +EXPORT_SYMBOL vmlinux 0x50761037 dma_alloc_coherent +EXPORT_SYMBOL vmlinux 0x509579f5 up_write +EXPORT_SYMBOL vmlinux 0x50a495b8 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x50a9eb69 __lock_buffer +EXPORT_SYMBOL vmlinux 0x50ba769a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x50e9a066 module_put +EXPORT_SYMBOL vmlinux 0x50ea5ed6 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5142e71c acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x5148ee2a rtc_lock +EXPORT_SYMBOL vmlinux 0x516dfa66 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x51737d1f sk_dst_check +EXPORT_SYMBOL vmlinux 0x51a3ca88 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x51d7a776 acpi_detach_data +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51f13df5 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x51f8eff1 kill_pid +EXPORT_SYMBOL vmlinux 0x523afd84 iget5_locked +EXPORT_SYMBOL vmlinux 0x524148c5 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x5252f304 __memcpy_toio +EXPORT_SYMBOL vmlinux 0x526dcd36 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x52783044 file_fsync +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52fa77c0 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5318ed49 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x53291b4c generic_unplug_device +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x535bc4fa set_disk_ro +EXPORT_SYMBOL vmlinux 0x53637bda sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x537865b9 kobject_put +EXPORT_SYMBOL vmlinux 0x53a6045e mntput_no_expire +EXPORT_SYMBOL vmlinux 0x53b440bf acpi_get_table +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53c4b881 __kfifo_get +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x54311064 aio_put_req +EXPORT_SYMBOL vmlinux 0x543affb5 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x549a256d netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x549b81ac key_unlink +EXPORT_SYMBOL vmlinux 0x54b8a3f9 per_cpu__x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550f8ade groups_alloc +EXPORT_SYMBOL vmlinux 0x5530cc9d request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x557fefa4 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x5594871d filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55969f88 __read_lock_failed +EXPORT_SYMBOL vmlinux 0x55b6abc0 pci_set_master +EXPORT_SYMBOL vmlinux 0x55bfa725 __invalidate_device +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x56179c5f mtrr_add +EXPORT_SYMBOL vmlinux 0x56314425 remove_suid +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5653404a tty_unregister_device +EXPORT_SYMBOL vmlinux 0x568e2afb kernel_sendpage +EXPORT_SYMBOL vmlinux 0x56b496ab __pci_register_driver +EXPORT_SYMBOL vmlinux 0x56e62529 __inode_dir_notify +EXPORT_SYMBOL vmlinux 0x56f7d0b1 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x573d324f i8253_lock +EXPORT_SYMBOL vmlinux 0x57819254 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x57a01443 lease_modify +EXPORT_SYMBOL vmlinux 0x57ca640a __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x57ce7846 __init_rwsem +EXPORT_SYMBOL vmlinux 0x57f46cef _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x57f53c8e acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5878e0d0 finish_wait +EXPORT_SYMBOL vmlinux 0x587ba62e pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x58819a6e register_netdev +EXPORT_SYMBOL vmlinux 0x58bc7eb5 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x58f646bc mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x58ff8d90 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x590923c1 skb_queue_head +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5953f9c6 skb_append +EXPORT_SYMBOL vmlinux 0x598b818b udp_ioctl +EXPORT_SYMBOL vmlinux 0x59a67e58 fsync_bdev +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59bb86f8 notify_change +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59d94c36 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x59ff2d98 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x5a32ce3f udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a8d2d98 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x5a922bde seq_open +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5b08a6f8 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x5b2869fb uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x5b518783 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x5b663126 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x5bcf9c06 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x5bd62848 should_remove_suid +EXPORT_SYMBOL vmlinux 0x5bd8054f get_super +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c3b6eb3 sysctl_data +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c79c2e0 genl_sock +EXPORT_SYMBOL vmlinux 0x5c857e34 idr_remove_all +EXPORT_SYMBOL vmlinux 0x5c9edf42 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x5caeaf33 sock_create_lite +EXPORT_SYMBOL vmlinux 0x5cc4cc93 vfs_readdir +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5ccc95ba vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x5cdda20e invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x5d02beb6 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d24ff6e vfs_symlink +EXPORT_SYMBOL vmlinux 0x5d3b7249 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dc21a52 __inet6_hash +EXPORT_SYMBOL vmlinux 0x5dc845e4 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5dfa5e59 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x5e31d6d7 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x5e38105e serio_unregister_port +EXPORT_SYMBOL vmlinux 0x5e471862 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x5e4a710c skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x5e6bbec6 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x5e754988 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x5ebd4dcb subsystem_unregister +EXPORT_SYMBOL vmlinux 0x5ee67946 __napi_schedule +EXPORT_SYMBOL vmlinux 0x5ef072cd uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x5efde863 netif_device_detach +EXPORT_SYMBOL vmlinux 0x5f01c5ee tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x5f04d4e9 dev_close +EXPORT_SYMBOL vmlinux 0x5f10c737 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x5f46ca4a llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x5fd821d3 reset_files_struct +EXPORT_SYMBOL vmlinux 0x5fe7a70c dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60151035 eth_type_trans +EXPORT_SYMBOL vmlinux 0x60188c85 generic_osync_inode +EXPORT_SYMBOL vmlinux 0x6026e31a agp_generic_enable +EXPORT_SYMBOL vmlinux 0x603b7915 inode_change_ok +EXPORT_SYMBOL vmlinux 0x6044ecc0 __free_pages +EXPORT_SYMBOL vmlinux 0x605bf8da d_path +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x605c96b5 genl_register_ops +EXPORT_SYMBOL vmlinux 0x605f6f75 init_special_inode +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60a8ae40 set_device_ro +EXPORT_SYMBOL vmlinux 0x60af17ff sk_free +EXPORT_SYMBOL vmlinux 0x60c9c141 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x60d9db91 find_inode_number +EXPORT_SYMBOL vmlinux 0x61018a91 generic_read_dir +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61302285 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x61645a9d xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x617610b4 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x619d8d1b kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61ba0a0c fput +EXPORT_SYMBOL vmlinux 0x61ebbe60 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x61fd0517 find_task_by_pid +EXPORT_SYMBOL vmlinux 0x6202f28c bio_map_kern +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6214a3a7 acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6268f03c __break_lease +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62c82be7 sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x62e1860b swiotlb_unmap_single +EXPORT_SYMBOL vmlinux 0x62e4fdbb unlock_rename +EXPORT_SYMBOL vmlinux 0x62f28cd7 serio_rescan +EXPORT_SYMBOL vmlinux 0x630747c0 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x630f43ff idr_remove +EXPORT_SYMBOL vmlinux 0x6315cf26 udp_proc_register +EXPORT_SYMBOL vmlinux 0x632d6485 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x633b346d netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x633b4378 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x63484a3f input_unregister_handler +EXPORT_SYMBOL vmlinux 0x63491150 freeze_bdev +EXPORT_SYMBOL vmlinux 0x634cd7ee iommu_merge +EXPORT_SYMBOL vmlinux 0x63596df9 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x636ee94c blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x637d7de4 boot_cpu_id +EXPORT_SYMBOL vmlinux 0x63dc1207 dev_load +EXPORT_SYMBOL vmlinux 0x63dfe1b4 hpet_unregister +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64378592 free_netdev +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x6454c55f km_query +EXPORT_SYMBOL vmlinux 0x64644cf3 vfs_readv +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64818a6b bd_set_size +EXPORT_SYMBOL vmlinux 0x6484c4b7 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64b7bf6c agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x6521b158 default_llseek +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6542776b __devm_release_region +EXPORT_SYMBOL vmlinux 0x658039b3 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x65997eb7 do_sync_read +EXPORT_SYMBOL vmlinux 0x65a78a32 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x65be4b5b __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x65c011be set_bdi_congested +EXPORT_SYMBOL vmlinux 0x65ccb872 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x65df3436 pci_map_rom +EXPORT_SYMBOL vmlinux 0x65fc5a43 dma_pool_create +EXPORT_SYMBOL vmlinux 0x660be841 flush_old_exec +EXPORT_SYMBOL vmlinux 0x66107c07 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x667201eb pci_enable_msi +EXPORT_SYMBOL vmlinux 0x667cecc9 acpi_os_printf +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6699c4ad put_files_struct +EXPORT_SYMBOL vmlinux 0x669e631c ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x66ba6969 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x66ba7eb0 dma_async_client_unregister +EXPORT_SYMBOL vmlinux 0x66bb15a1 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x67054fc0 lock_rename +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67229cad __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x674ec263 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x6786c541 d_invalidate +EXPORT_SYMBOL vmlinux 0x6789ee2a input_set_capability +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67f36b7c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x681ed1ed _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x6820422d pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x686f1325 hpet_alloc +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x68bf204f atm_charge +EXPORT_SYMBOL vmlinux 0x68d5cea1 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x69005013 acpi_os_stall +EXPORT_SYMBOL vmlinux 0x69013dee pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x692c90bc __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x699b6c87 request_firmware +EXPORT_SYMBOL vmlinux 0x699ce795 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69e48f32 netlink_dump_start +EXPORT_SYMBOL vmlinux 0x6a00a021 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a083735 get_fs_type +EXPORT_SYMBOL vmlinux 0x6a24a866 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x6a31f398 framebuffer_release +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5f0799 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a866b83 mpage_writepage +EXPORT_SYMBOL vmlinux 0x6a90878c input_release_device +EXPORT_SYMBOL vmlinux 0x6aa11393 __first_cpu +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad4916d shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b552a37 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x6b7ea4aa close_bdev_excl +EXPORT_SYMBOL vmlinux 0x6b89dc2d cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6bb0f4c5 send_sig_info +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6c1237ec d_alloc +EXPORT_SYMBOL vmlinux 0x6c596bca igrab +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c72e1f2 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x6c811ff8 filemap_fault +EXPORT_SYMBOL vmlinux 0x6cb48c9b is_container_init +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6ccffb45 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x6cfbf92b path_lookup +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d1ced27 vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2fac65 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d33adf8 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d47d90d groups_free +EXPORT_SYMBOL vmlinux 0x6d68c5e2 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x6da6c35e dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x6dc25d18 bdi_init +EXPORT_SYMBOL vmlinux 0x6dc7870a fget +EXPORT_SYMBOL vmlinux 0x6dc9b944 __netif_schedule +EXPORT_SYMBOL vmlinux 0x6dd198ea vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0x6dde520a pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df2c3a8 nf_reinject +EXPORT_SYMBOL vmlinux 0x6df41570 datagram_poll +EXPORT_SYMBOL vmlinux 0x6e18bda0 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x6e1a4bbb udp_hash_lock +EXPORT_SYMBOL vmlinux 0x6e1dd4e2 open_by_devnum +EXPORT_SYMBOL vmlinux 0x6e23df67 submit_bio +EXPORT_SYMBOL vmlinux 0x6e524de2 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x6e6ec049 agp_create_memory +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e734796 register_gifconf +EXPORT_SYMBOL vmlinux 0x6e7c544f xfrm_register_type +EXPORT_SYMBOL vmlinux 0x6e9d5d90 _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eae7335 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x6ed07371 fb_show_logo +EXPORT_SYMBOL vmlinux 0x6ed65070 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x6ef56f31 release_firmware +EXPORT_SYMBOL vmlinux 0x6efc229d cpu_possible_map +EXPORT_SYMBOL vmlinux 0x6f062a79 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x6f167c64 f_setown +EXPORT_SYMBOL vmlinux 0x6f22b773 call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x6f24cc5f create_proc_entry +EXPORT_SYMBOL vmlinux 0x6f273f46 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x6f3b7415 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x6f3c16e7 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x6f8fa3cd down_write +EXPORT_SYMBOL vmlinux 0x6f921751 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x6faa475a cond_resched_lock +EXPORT_SYMBOL vmlinux 0x6fbb38dd sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x6fc46fa0 get_agp_version +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6ff965c0 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x70314bf6 pci_find_bus +EXPORT_SYMBOL vmlinux 0x7042925d simple_rename +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70591326 struct_module +EXPORT_SYMBOL vmlinux 0x706a92a6 page_put_link +EXPORT_SYMBOL vmlinux 0x7078526d __nla_reserve +EXPORT_SYMBOL vmlinux 0x70934350 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x70991421 key_type_keyring +EXPORT_SYMBOL vmlinux 0x70aa07f7 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70dd46fe cdev_alloc +EXPORT_SYMBOL vmlinux 0x711d4ec7 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x7128b888 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x714e903e current_fs_time +EXPORT_SYMBOL vmlinux 0x715a4fb4 give_up_console +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x717d09f1 kobject_register +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71f854e6 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x721c4d2b console_stop +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x72515ec9 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bdba05 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x72c5a0ea audit_log_format +EXPORT_SYMBOL vmlinux 0x72cb5731 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x72fc68d1 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x730ff29e __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x7319de88 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x733b40ba swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x73487ef4 input_event +EXPORT_SYMBOL vmlinux 0x73582b06 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x73591a8c __kill_fasync +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power +EXPORT_SYMBOL vmlinux 0x7398bb97 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x739ee22d gen_pool_add +EXPORT_SYMBOL vmlinux 0x73a0753f alloc_fcdev +EXPORT_SYMBOL vmlinux 0x73bcd634 mutex_unlock +EXPORT_SYMBOL vmlinux 0x73e0fb47 input_flush_device +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x740c37b7 mempool_create_node +EXPORT_SYMBOL vmlinux 0x741f1f6e hpet_register +EXPORT_SYMBOL vmlinux 0x74210b2d sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x742ae77b block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7441bcca atm_proc_root +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x749b18da ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x749fee54 simple_write_begin +EXPORT_SYMBOL vmlinux 0x74a3d647 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74d937fc ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x7501e335 unlock_buffer +EXPORT_SYMBOL vmlinux 0x752b2f43 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x7535fb40 sk_alloc +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x753b50f7 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x75556b1c blk_register_region +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x759c2dd6 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x75bbe825 subsystem_register +EXPORT_SYMBOL vmlinux 0x75bc8cf0 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x76ac163f pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f21ef4 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges +EXPORT_SYMBOL vmlinux 0x77042cc8 input_allocate_device +EXPORT_SYMBOL vmlinux 0x7704ea8f inode_double_unlock +EXPORT_SYMBOL vmlinux 0x773a4fd2 sock_rfree +EXPORT_SYMBOL vmlinux 0x7745a232 find_or_create_page +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x777e5139 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x7784a91a directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x77935bd7 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x77a108df _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x77a61af7 register_key_type +EXPORT_SYMBOL vmlinux 0x77d06ac6 _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x783ad88b simple_unlink +EXPORT_SYMBOL vmlinux 0x78561bb9 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x788f1a00 eth_header_parse +EXPORT_SYMBOL vmlinux 0x78a484c9 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x78bb8f35 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x78be43e1 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x794c1398 dmi_check_system +EXPORT_SYMBOL vmlinux 0x7954ad14 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x795a888a pci_disable_device +EXPORT_SYMBOL vmlinux 0x797435d0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x7984b70d sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x7a151573 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7a48c18f __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x7a6e7dd6 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x7a6f1a39 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x7a7ef853 __down_failed +EXPORT_SYMBOL vmlinux 0x7a848702 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x7a8e033e xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x7a931d1b llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x7a9b1454 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x7aa34f52 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x7aac0344 netlink_ack +EXPORT_SYMBOL vmlinux 0x7ab09b95 __downgrade_write +EXPORT_SYMBOL vmlinux 0x7ac46eb9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b04cc91 mempool_destroy +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bc3d86a tcf_hash_release +EXPORT_SYMBOL vmlinux 0x7bdad28a pci_enable_device +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c52d200 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x7c588aea __down_write +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c690b01 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9313d0 input_unregister_device +EXPORT_SYMBOL vmlinux 0x7c9c6d37 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbf6f7f __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7cf96f66 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d221a6b down_read_trylock +EXPORT_SYMBOL vmlinux 0x7d66e358 register_netdevice +EXPORT_SYMBOL vmlinux 0x7d6e73e7 bio_add_page +EXPORT_SYMBOL vmlinux 0x7d7a326e permission +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7d9e5c90 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de34111 simple_prepare_write +EXPORT_SYMBOL vmlinux 0x7debd738 netdev_set_master +EXPORT_SYMBOL vmlinux 0x7e1919c9 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x7e21fc3c dquot_drop +EXPORT_SYMBOL vmlinux 0x7e2beaad __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f48d6c5 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x7f4fa96c atm_dev_lookup +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7f8fb085 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x7f8fe6d5 sock_create_kern +EXPORT_SYMBOL vmlinux 0x7fb134d4 ps2_init +EXPORT_SYMBOL vmlinux 0x7fb63760 generic_fillattr +EXPORT_SYMBOL vmlinux 0x7ffa1ab1 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x8012a75c get_empty_filp +EXPORT_SYMBOL vmlinux 0x803d2e70 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x8052ae16 find_vma +EXPORT_SYMBOL vmlinux 0x80683040 redraw_screen +EXPORT_SYMBOL vmlinux 0x80857836 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x8094204a wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x80a4478d tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x80aaf1d7 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x811b5a77 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x8147bef6 pnp_manual_config_dev +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815a08ee put_tty_driver +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x815f461f idr_replace +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e9c6e5 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x822da1b2 skb_seq_read +EXPORT_SYMBOL vmlinux 0x8230934f misc_deregister +EXPORT_SYMBOL vmlinux 0x8231ea31 inet_frags_init +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x827a0d55 elv_next_request +EXPORT_SYMBOL vmlinux 0x82def2b9 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e66af3 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x83107fe8 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x8314907f register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x8329ea22 alloc_disk +EXPORT_SYMBOL vmlinux 0x834af99a blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x83521e51 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x835e13e3 acpi_get_physical_device +EXPORT_SYMBOL vmlinux 0x837db659 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83e84bbe __mod_timer +EXPORT_SYMBOL vmlinux 0x840c2e55 llc_add_pack +EXPORT_SYMBOL vmlinux 0x84250e9b acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x84334b35 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x843c260a dquot_commit +EXPORT_SYMBOL vmlinux 0x84448fcb kobject_set_name +EXPORT_SYMBOL vmlinux 0x847b9211 __kfifo_put +EXPORT_SYMBOL vmlinux 0x84a88a68 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x84b69359 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x84cd03b9 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x84e663f9 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x84eec8b6 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x85558673 kick_iocb +EXPORT_SYMBOL vmlinux 0x855635c7 vcc_insert_socket +EXPORT_SYMBOL vmlinux 0x855a34b7 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x85777f05 key_put +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x858745ac remove_proc_entry +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85eeb162 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x86034cf8 dq_data_lock +EXPORT_SYMBOL vmlinux 0x8622a53c neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8659f63b mempool_create +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8683940b udp_sendmsg +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869b4752 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x86f1cbd3 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x86f6be27 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x873e36af proto_unregister +EXPORT_SYMBOL vmlinux 0x87470793 skb_pad +EXPORT_SYMBOL vmlinux 0x874aea72 acpi_os_signal +EXPORT_SYMBOL vmlinux 0x875e1a1b profile_pc +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8772b1cf unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8830754e __dst_free +EXPORT_SYMBOL vmlinux 0x8834cc65 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x883d0229 brioctl_set +EXPORT_SYMBOL vmlinux 0x885459df sock_map_fd +EXPORT_SYMBOL vmlinux 0x889316ba fasync_helper +EXPORT_SYMBOL vmlinux 0x89051e0b key_task_permission +EXPORT_SYMBOL vmlinux 0x89087015 dma_ops +EXPORT_SYMBOL vmlinux 0x891ac517 d_lookup +EXPORT_SYMBOL vmlinux 0x892bdf38 block_write_full_page +EXPORT_SYMBOL vmlinux 0x896dbbe1 skb_copy +EXPORT_SYMBOL vmlinux 0x89712a63 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89f754b1 dev_open +EXPORT_SYMBOL vmlinux 0x8a38f169 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x8a48eb73 devm_iounmap +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a90d932 allocate_resource +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ac75a01 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x8ae4aae7 vcc_release_async +EXPORT_SYMBOL vmlinux 0x8aef7a67 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x8b21c7be do_splice_to +EXPORT_SYMBOL vmlinux 0x8b2c1613 cdev_init +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8b81f905 tty_vhangup +EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user +EXPORT_SYMBOL vmlinux 0x8b9a3c52 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x8b9ab05c module_add_driver +EXPORT_SYMBOL vmlinux 0x8bb33e7d __release_region +EXPORT_SYMBOL vmlinux 0x8be70691 backlight_device_register +EXPORT_SYMBOL vmlinux 0x8bea234d kobject_unregister +EXPORT_SYMBOL vmlinux 0x8befaa0d ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x8c09db90 sk_run_filter +EXPORT_SYMBOL vmlinux 0x8c0d2660 dma_supported +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1e421d arp_find +EXPORT_SYMBOL vmlinux 0x8c36dcff sock_recvmsg +EXPORT_SYMBOL vmlinux 0x8c41b193 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x8c68f3c0 __nla_put +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cb7ed6c tc_classify_compat +EXPORT_SYMBOL vmlinux 0x8cba6403 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x8cc30b7b neigh_seq_start +EXPORT_SYMBOL vmlinux 0x8cc72b78 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cf00897 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x8cf1d4c5 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x8d1d516b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d3a16d2 __kfree_skb +EXPORT_SYMBOL vmlinux 0x8d4ed404 pnp_is_active +EXPORT_SYMBOL vmlinux 0x8d4fcf23 textsearch_register +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d730d5a invalidate_partition +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8dd0383f idr_get_new +EXPORT_SYMBOL vmlinux 0x8ddf7a8c tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x8df07e2d bio_copy_user +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e017de1 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e1da349 tty_devnum +EXPORT_SYMBOL vmlinux 0x8e269c21 register_atm_ioctl +EXPORT_SYMBOL vmlinux 0x8e3fcf43 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x8e5b51d7 vfs_writev +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc +EXPORT_SYMBOL vmlinux 0x8ea2260b pnp_device_attach +EXPORT_SYMBOL vmlinux 0x8eafad05 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x8ed136ea pci_choose_state +EXPORT_SYMBOL vmlinux 0x8edc1037 add_disk_randomness +EXPORT_SYMBOL vmlinux 0x8efe0cdf unbind_con_driver +EXPORT_SYMBOL vmlinux 0x8f207f98 pci_request_regions +EXPORT_SYMBOL vmlinux 0x8f4a545a dentry_open +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f6cad0c simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x8f998c83 ht_create_irq +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8f9d812b tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x8fc5ba49 pci_get_slot +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x900c092c dma_async_client_register +EXPORT_SYMBOL vmlinux 0x902bd078 unregister_netdevice +EXPORT_SYMBOL vmlinux 0x906ab220 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x906c9318 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x9070b3f2 ioport_resource +EXPORT_SYMBOL vmlinux 0x90885204 per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active +EXPORT_SYMBOL vmlinux 0x90abf41f neigh_create +EXPORT_SYMBOL vmlinux 0x90b1bb72 kobject_get +EXPORT_SYMBOL vmlinux 0x90c0599f memnode +EXPORT_SYMBOL vmlinux 0x90ec0ac4 release_sock +EXPORT_SYMBOL vmlinux 0x9124a110 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x91325af5 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x9141852f pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91527fa2 vfs_permission +EXPORT_SYMBOL vmlinux 0x919a55b6 sock_init_data +EXPORT_SYMBOL vmlinux 0x91b903c3 vfs_llseek +EXPORT_SYMBOL vmlinux 0x91ca8959 acpi_get_register +EXPORT_SYMBOL vmlinux 0x91d6536d __mutex_init +EXPORT_SYMBOL vmlinux 0x91de9365 read_cache_pages +EXPORT_SYMBOL vmlinux 0x91e756f0 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x91f2b966 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x920c49ab rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x922ead1d pci_match_id +EXPORT_SYMBOL vmlinux 0x92378804 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x92468cb1 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x92470e43 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x926cb538 sock_no_bind +EXPORT_SYMBOL vmlinux 0x927e4dc4 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x927e7d14 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x927e989f gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x928a148c nobh_write_begin +EXPORT_SYMBOL vmlinux 0x92d44d6d dev_mc_add +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x92fd3d3a flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9323ce65 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x93590a1d generate_resume_trace +EXPORT_SYMBOL vmlinux 0x936e88be ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93e7d16b gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x93f3af86 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x93f701de gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x945bc6a7 copy_from_user +EXPORT_SYMBOL vmlinux 0x949335b7 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x94d12279 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x94d9f269 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x94dd3de4 fb_blank +EXPORT_SYMBOL vmlinux 0x94f1dd01 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x9513d969 per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0x95231bcc register_nls +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9589c850 acpi_bus_add +EXPORT_SYMBOL vmlinux 0x95978d62 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x959f9cd4 tr_type_trans +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95de80b6 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x95e0a76b init_level4_pgt +EXPORT_SYMBOL vmlinux 0x95fde4e4 acpi_os_wait_semaphore +EXPORT_SYMBOL vmlinux 0x960db676 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x962a3e36 inet_getname +EXPORT_SYMBOL vmlinux 0x9653699a end_page_writeback +EXPORT_SYMBOL vmlinux 0x967c2a85 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x96d7cecd input_free_device +EXPORT_SYMBOL vmlinux 0x971dce87 kill_fasync +EXPORT_SYMBOL vmlinux 0x9723fec4 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x9725d2a3 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9767e610 generic_removexattr +EXPORT_SYMBOL vmlinux 0x976d9536 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x977965fd inode_add_bytes +EXPORT_SYMBOL vmlinux 0x979f8d9f bd_claim +EXPORT_SYMBOL vmlinux 0x97c72c95 pci_iomap +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97de7ca8 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x980a88b8 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x9849186c end_that_request_last +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9870a410 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x987492f1 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98b1f5e8 del_timer +EXPORT_SYMBOL vmlinux 0x993bbcca ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x99452f5a neigh_lookup +EXPORT_SYMBOL vmlinux 0x994e1983 __wake_up +EXPORT_SYMBOL vmlinux 0x99515552 mpage_readpages +EXPORT_SYMBOL vmlinux 0x9968f3de inet_register_protosw +EXPORT_SYMBOL vmlinux 0x997efe21 key_link +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99fb1c77 tty_hangup +EXPORT_SYMBOL vmlinux 0x99fb9db4 neigh_for_each +EXPORT_SYMBOL vmlinux 0x9a0df32e set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x9a1d6c47 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a2924dd sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x9a2ec8af end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x9ad31ef6 thaw_bdev +EXPORT_SYMBOL vmlinux 0x9ad520b0 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9aeaeaf3 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b25ecc8 blk_put_request +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b68783f dst_destroy +EXPORT_SYMBOL vmlinux 0x9b86ff0b init_mm +EXPORT_SYMBOL vmlinux 0x9b991dc6 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9baf531c iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x9bb0bb13 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x9bb773cf __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9bbdb6b9 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x9bc4e6f1 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9be1abbb register_chrdev +EXPORT_SYMBOL vmlinux 0x9bfb7e23 drop_super +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c072dc6 complete_request_key +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c189230 bdget +EXPORT_SYMBOL vmlinux 0x9c20dc9f pci_remove_bus +EXPORT_SYMBOL vmlinux 0x9c39233b init_net +EXPORT_SYMBOL vmlinux 0x9c3ca6c9 posix_lock_file +EXPORT_SYMBOL vmlinux 0x9c4dce7f dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x9c67fd92 __bforget +EXPORT_SYMBOL vmlinux 0x9c7725b4 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x9ca049a9 register_exec_domain +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9ce1d2e1 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d36a0e9 do_SAK +EXPORT_SYMBOL vmlinux 0x9d472273 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x9dafcf99 add_to_page_cache +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dc3f9dd neigh_compat_output +EXPORT_SYMBOL vmlinux 0x9dedf2a1 alloc_trdev +EXPORT_SYMBOL vmlinux 0x9e0302df pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x9e2baa74 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x9e366e1d ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x9e3bb50b blk_put_queue +EXPORT_SYMBOL vmlinux 0x9e640183 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x9e6fe266 find_next_zero_string +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9982f9 __getblk +EXPORT_SYMBOL vmlinux 0x9e9ec68f remove_inode_hash +EXPORT_SYMBOL vmlinux 0x9ea02317 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9eac042a __ioremap +EXPORT_SYMBOL vmlinux 0x9ebce69c dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f377304 nla_put +EXPORT_SYMBOL vmlinux 0x9f598966 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x9f7189cd nonseekable_open +EXPORT_SYMBOL vmlinux 0x9f7882ae remove_arg_zero +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fc2844e skb_gso_segment +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0xa026694c xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xa033b6bb find_lock_page +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04a6e3e nf_afinfo +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0712835 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0xa0ada7c6 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0d46b99 input_register_device +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11cf878 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12b4b03 vc_resize +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa13dbd9b arp_tbl +EXPORT_SYMBOL vmlinux 0xa19302aa acpi_pci_irq_enable +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1b8354d neigh_update +EXPORT_SYMBOL vmlinux 0xa1b8f0b3 node_to_cpumask +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1e458f6 swap_io_context +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2326dbe tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xa28f723a blk_unplug +EXPORT_SYMBOL vmlinux 0xa295a72d __lock_page +EXPORT_SYMBOL vmlinux 0xa2a1e5c9 _write_lock_bh +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2d162a1 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xa31f172d __copy_from_user_inatomic +EXPORT_SYMBOL vmlinux 0xa31f5e71 elv_rb_find +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa32c8a39 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3424439 tty_mutex +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa390c96e pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xa395a772 kfifo_init +EXPORT_SYMBOL vmlinux 0xa39a6932 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xa39c5ad8 tcp_check_req +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3bbcd80 acpi_set_gpe_type +EXPORT_SYMBOL vmlinux 0xa3bfdf14 uts_sem +EXPORT_SYMBOL vmlinux 0xa3c9e74a vfs_getattr +EXPORT_SYMBOL vmlinux 0xa3e7109e pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0xa423061e mark_page_accessed +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c92d7c inet_ioctl +EXPORT_SYMBOL vmlinux 0xa4d27e87 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ed241b reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0xa5255177 __down_read_trylock +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa5465d2c skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa57f0a13 bioset_free +EXPORT_SYMBOL vmlinux 0xa57fb4df tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59c0666 acpi_strict +EXPORT_SYMBOL vmlinux 0xa5c6b8fe d_find_alias +EXPORT_SYMBOL vmlinux 0xa5e3625f __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6992eb8 sock_no_connect +EXPORT_SYMBOL vmlinux 0xa69bf5a8 no_llseek +EXPORT_SYMBOL vmlinux 0xa6bff80c invalidate_bdev +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa706de90 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa7185d9f kfree_skb +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa7553637 module_refcount +EXPORT_SYMBOL vmlinux 0xa763b4e7 blk_init_tags +EXPORT_SYMBOL vmlinux 0xa763d557 bd_release +EXPORT_SYMBOL vmlinux 0xa7686d07 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xa77688b8 destroy_EII_client +EXPORT_SYMBOL vmlinux 0xa783bcd9 generic_make_request +EXPORT_SYMBOL vmlinux 0xa79c98f0 skb_unlink +EXPORT_SYMBOL vmlinux 0xa7c079d8 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xa7c07bc3 agp_free_memory +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7cbbe73 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xa7cf7858 udp_disconnect +EXPORT_SYMBOL vmlinux 0xa7de3caf rtnl_create_link +EXPORT_SYMBOL vmlinux 0xa7de6353 up_read +EXPORT_SYMBOL vmlinux 0xa825c7d0 load_nls +EXPORT_SYMBOL vmlinux 0xa8460a90 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xa875dac4 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa8f829a4 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa923ed59 __lookup_hash +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa96ff23f skb_store_bits +EXPORT_SYMBOL vmlinux 0xa977ff5f eth_header +EXPORT_SYMBOL vmlinux 0xa9b3914b km_policy_expired +EXPORT_SYMBOL vmlinux 0xa9be76e8 clocksource_register +EXPORT_SYMBOL vmlinux 0xa9e5aa0a simple_readpage +EXPORT_SYMBOL vmlinux 0xa9fc866a proc_dointvec +EXPORT_SYMBOL vmlinux 0xa9fdff8f set_bh_page +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa0b6f0d kthread_bind +EXPORT_SYMBOL vmlinux 0xaa0b7c03 elv_rb_del +EXPORT_SYMBOL vmlinux 0xaa3e9e07 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xaa5681f1 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0xaa5aa3bc pneigh_lookup +EXPORT_SYMBOL vmlinux 0xaa5aabf7 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xaa6ead52 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xaa6f4567 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xaab06af8 _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaaeb10d3 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaaffedd9 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xab2cd386 add_wait_queue +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab745ef6 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xab7ea5ab sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xac006fb3 __next_cpu +EXPORT_SYMBOL vmlinux 0xac12756e blkdev_get +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac60394d __bio_clone +EXPORT_SYMBOL vmlinux 0xac607fa8 blk_remove_plug +EXPORT_SYMBOL vmlinux 0xac6f9ff8 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad200b1c vfs_statfs +EXPORT_SYMBOL vmlinux 0xad619b26 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xad6f5be0 pci_get_class +EXPORT_SYMBOL vmlinux 0xad7c20d0 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xad8de1b3 acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0xad9da2e4 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xada225dd km_state_expired +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb6e68c have_submounts +EXPORT_SYMBOL vmlinux 0xadb7a023 complete +EXPORT_SYMBOL vmlinux 0xadb7a877 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xae28b6c8 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xae2b2d16 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xae539582 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xaed1989b inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xaf0d886b __user_walk +EXPORT_SYMBOL vmlinux 0xaf0f6c9d tcp_proc_register +EXPORT_SYMBOL vmlinux 0xaf1f61b4 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf52c2d3 iommu_bio_merge +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xafc5dfd9 sock_create +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb00acaa2 blk_complete_request +EXPORT_SYMBOL vmlinux 0xb035c3af locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xb04a54ff gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bc8286 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xb0d2a051 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb116807f vfs_lstat +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb1515f78 register_filesystem +EXPORT_SYMBOL vmlinux 0xb1821f19 llc_sap_open +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb1b763eb page_readlink +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d8dd80 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb210156a load_nls_default +EXPORT_SYMBOL vmlinux 0xb230baf5 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xb24378bc __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb26600ab dquot_initialize +EXPORT_SYMBOL vmlinux 0xb2780f36 mempool_alloc +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb2938a29 seq_path +EXPORT_SYMBOL vmlinux 0xb2968db0 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xb2be638a dma_chan_cleanup +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb32242d3 dma_spin_lock +EXPORT_SYMBOL vmlinux 0xb32672e2 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb336c762 misc_register +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb3512df8 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xb35b9a08 get_sb_single +EXPORT_SYMBOL vmlinux 0xb3869547 lock_may_write +EXPORT_SYMBOL vmlinux 0xb39026e4 mempool_resize +EXPORT_SYMBOL vmlinux 0xb39cc829 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xb3a060ae iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b3f7ed __down_read +EXPORT_SYMBOL vmlinux 0xb3cc0c63 unlock_super +EXPORT_SYMBOL vmlinux 0xb3d2bf12 find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xb4235f98 generic_setlease +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb44a7fc2 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xb44d297b xfrm_replay_check +EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids +EXPORT_SYMBOL vmlinux 0xb466e62b copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xb4809591 block_commit_write +EXPORT_SYMBOL vmlinux 0xb498c837 bio_alloc +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4c2d0ae eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xb4f739af proc_root_driver +EXPORT_SYMBOL vmlinux 0xb52e2eba generic_delete_inode +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5540c91 neigh_destroy +EXPORT_SYMBOL vmlinux 0xb56166a2 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5b9d827 kfifo_alloc +EXPORT_SYMBOL vmlinux 0xb5c1bbf0 ether_setup +EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction +EXPORT_SYMBOL vmlinux 0xb5d722da neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xb5e0bc17 audit_log_start +EXPORT_SYMBOL vmlinux 0xb5edc8ef secpath_dup +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6bd881d tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d08a5e unregister_8022_client +EXPORT_SYMBOL vmlinux 0xb6f32421 sk_wait_data +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb73a5eeb __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xb73f6626 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb766e887 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xb7679785 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xb7779d09 kill_anon_super +EXPORT_SYMBOL vmlinux 0xb781157a unload_nls +EXPORT_SYMBOL vmlinux 0xb7baa2c4 __brelse +EXPORT_SYMBOL vmlinux 0xb7d69d48 cdev_del +EXPORT_SYMBOL vmlinux 0xb7fd4b4c bio_pair_release +EXPORT_SYMBOL vmlinux 0xb83ceefd per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xb852314c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xb85356b7 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xb85b859f fb_set_var +EXPORT_SYMBOL vmlinux 0xb86a35e3 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xb86da20f elv_add_request +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb8993a4f input_unregister_handle +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8d08190 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8eca66f ip_route_output_key +EXPORT_SYMBOL vmlinux 0xb8f192a3 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xb90e514e devm_request_irq +EXPORT_SYMBOL vmlinux 0xb90fd358 keyring_clear +EXPORT_SYMBOL vmlinux 0xb921cde0 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xb926aba6 console_start +EXPORT_SYMBOL vmlinux 0xb9892b31 set_blocksize +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3cf429 idr_for_each +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba6a063d blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbabaf5f0 sock_wfree +EXPORT_SYMBOL vmlinux 0xbad10f5b dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xbad7bb8d dma_async_client_chan_request +EXPORT_SYMBOL vmlinux 0xbadcc297 pci_find_slot +EXPORT_SYMBOL vmlinux 0xbaf092c1 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xbb0ebf42 nobh_write_end +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb2ae102 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xbb3eeee0 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb75f5dc agp_enable +EXPORT_SYMBOL vmlinux 0xbb907034 names_cachep +EXPORT_SYMBOL vmlinux 0xbb945528 end_that_request_first +EXPORT_SYMBOL vmlinux 0xbbc2f840 audit_log_end +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbd3cfb6 block_truncate_page +EXPORT_SYMBOL vmlinux 0xbc20c6f8 arp_create +EXPORT_SYMBOL vmlinux 0xbc70b016 pci_dev_get +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd1355a netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xbd2f9c64 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xbd832328 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdba2848 sock_i_uid +EXPORT_SYMBOL vmlinux 0xbde31659 llc_sap_find +EXPORT_SYMBOL vmlinux 0xbdeaf41a percpu_counter_init +EXPORT_SYMBOL vmlinux 0xbdf30ba6 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xbe05b2b2 remote_llseek +EXPORT_SYMBOL vmlinux 0xbe499d81 copy_to_user +EXPORT_SYMBOL vmlinux 0xbed973ed skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xbee1623d tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xbee800fe pci_release_regions +EXPORT_SYMBOL vmlinux 0xbef0b857 sget +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1bfa0c d_alloc_name +EXPORT_SYMBOL vmlinux 0xbf2fc453 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xbf32ecf8 send_sig +EXPORT_SYMBOL vmlinux 0xbf3468de unregister_key_type +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc417fe generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xbfc954c5 km_new_mapping +EXPORT_SYMBOL vmlinux 0xbfe83be1 agp_bind_memory +EXPORT_SYMBOL vmlinux 0xbff8a777 sync_blockdev +EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user +EXPORT_SYMBOL vmlinux 0xc01cb42c kset_register +EXPORT_SYMBOL vmlinux 0xc026aefa force_sig +EXPORT_SYMBOL vmlinux 0xc02842f3 deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0xc028b164 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc04ae1c3 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xc0575dae skb_split +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc078e922 input_register_handler +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0b175b3 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xc0c96238 __scm_send +EXPORT_SYMBOL vmlinux 0xc0f511fc __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xc0f81bd7 generic_writepages +EXPORT_SYMBOL vmlinux 0xc10eb927 vmap +EXPORT_SYMBOL vmlinux 0xc11bb208 handle_sysrq +EXPORT_SYMBOL vmlinux 0xc12a07af mark_info_dirty +EXPORT_SYMBOL vmlinux 0xc12cbfc5 __devm_request_region +EXPORT_SYMBOL vmlinux 0xc14188fb dget_locked +EXPORT_SYMBOL vmlinux 0xc148fa34 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0xc16f01ca ilookup +EXPORT_SYMBOL vmlinux 0xc16fe12d __memcpy +EXPORT_SYMBOL vmlinux 0xc1c78ab4 vfs_link +EXPORT_SYMBOL vmlinux 0xc201e918 mpage_readpage +EXPORT_SYMBOL vmlinux 0xc20c5f06 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc21d2a7b xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc255305c netpoll_poll +EXPORT_SYMBOL vmlinux 0xc2559bd1 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26bf951 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xc2c818a0 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e7edd0 get_sb_bdev +EXPORT_SYMBOL vmlinux 0xc2f7cfa8 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3be3e35 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xc3ca1cbb generic_ro_fops +EXPORT_SYMBOL vmlinux 0xc430097a dma_free_coherent +EXPORT_SYMBOL vmlinux 0xc44882c3 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xc472ba9a simple_statfs +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4b6a6d7 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xc4ce6189 idle_notifier_unregister +EXPORT_SYMBOL vmlinux 0xc4d430f1 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc4d5697b dcache_readdir +EXPORT_SYMBOL vmlinux 0xc4e0f7a3 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xc4f789cb _cpu_pda +EXPORT_SYMBOL vmlinux 0xc4fd9c09 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xc50c3860 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xc51aa535 iget_locked +EXPORT_SYMBOL vmlinux 0xc5263736 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc54b4eeb register_snap_client +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55f7dc7 _write_trylock +EXPORT_SYMBOL vmlinux 0xc5be1eec xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6e52086 ip_fragment +EXPORT_SYMBOL vmlinux 0xc7125c45 pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc733d21f d_alloc_anon +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc79e571d load_gs_index +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ca47cb tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xc7e12955 arp_send +EXPORT_SYMBOL vmlinux 0xc8148e3e flush_tlb_current_task +EXPORT_SYMBOL vmlinux 0xc849fd34 open_exec +EXPORT_SYMBOL vmlinux 0xc85d0e76 agp_copy_info +EXPORT_SYMBOL vmlinux 0xc85ecdee flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc85f2e1f mutex_trylock +EXPORT_SYMBOL vmlinux 0xc87d8fc7 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0xc88cab11 input_register_handle +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b8dc0b agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xc8ca3e25 acpi_get_child +EXPORT_SYMBOL vmlinux 0xc91017f4 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xc912b94a generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xc92a10a5 dma_set_mask +EXPORT_SYMBOL vmlinux 0xc932fd66 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc9448e16 simple_fill_super +EXPORT_SYMBOL vmlinux 0xc94f8153 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xc9534613 blk_get_request +EXPORT_SYMBOL vmlinux 0xc95cafdf key_revoke +EXPORT_SYMBOL vmlinux 0xc97fa89c input_inject_event +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc99bc5ea sk_stream_error +EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0xc9b0e941 vfs_rename +EXPORT_SYMBOL vmlinux 0xc9b27289 rtc_control +EXPORT_SYMBOL vmlinux 0xc9d0e645 qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0xc9d503e1 k8_northbridges +EXPORT_SYMBOL vmlinux 0xc9fbe430 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xc9fd878f acpi_ut_exception +EXPORT_SYMBOL vmlinux 0xca0e2d40 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0xca1197ed node_states +EXPORT_SYMBOL vmlinux 0xca2a54e9 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xca3504ae ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xca82d4a1 vm_insert_page +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xcaacf64b compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xcacba515 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xcae79a41 tcp_unhash +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb898c43 registered_fb +EXPORT_SYMBOL vmlinux 0xcb9f11d4 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xcbc97ed0 fb_find_mode +EXPORT_SYMBOL vmlinux 0xcbf1fcb9 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5277fa inode_init_once +EXPORT_SYMBOL vmlinux 0xcc56f862 skb_checksum +EXPORT_SYMBOL vmlinux 0xcc65d7ad tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8ea93d sync_page_range +EXPORT_SYMBOL vmlinux 0xcc9fa193 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xcc9ffc1a pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xcca548e2 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xccc5ff7a acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xccd0ed00 start_tty +EXPORT_SYMBOL vmlinux 0xccd52b12 __down_failed_interruptible +EXPORT_SYMBOL vmlinux 0xcd1cfc15 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xcd4f46e1 seq_printf +EXPORT_SYMBOL vmlinux 0xcd604332 generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0xcdb98dd2 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xce045124 km_waitq +EXPORT_SYMBOL vmlinux 0xce1c723b blk_free_tags +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce390e2b touch_atime +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5003bd grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce760f8e cdev_add +EXPORT_SYMBOL vmlinux 0xce87a643 idr_destroy +EXPORT_SYMBOL vmlinux 0xced24b31 deny_write_access +EXPORT_SYMBOL vmlinux 0xced895b6 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xcef4d979 read_cache_page +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf047c83 acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0xcf2515a4 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xcf760333 generic_write_end +EXPORT_SYMBOL vmlinux 0xcfb22619 udplite_get_port +EXPORT_SYMBOL vmlinux 0xcfc90d25 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0xcfd3253f skb_under_panic +EXPORT_SYMBOL vmlinux 0xcfd5128e proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xcfea898e simple_sync_file +EXPORT_SYMBOL vmlinux 0xd00cf5ec skb_free_datagram +EXPORT_SYMBOL vmlinux 0xd010bbd0 kill_block_super +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd0369f4b truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xd061e766 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xd0800bc7 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0ce4e3f tc_classify +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f932eb inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xd0fb8fb9 generic_file_open +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1356eb1 I_BDEV +EXPORT_SYMBOL vmlinux 0xd1406075 inet_frag_find +EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver +EXPORT_SYMBOL vmlinux 0xd17716e5 blk_insert_request +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd19bb294 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xd1a4f61f llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xd1a5ffa9 avail_to_resrv_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1f91bcd dev_base_lock +EXPORT_SYMBOL vmlinux 0xd217f9ad generic_write_checks +EXPORT_SYMBOL vmlinux 0xd23cdeda proc_dostring +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2bdddf2 ida_destroy +EXPORT_SYMBOL vmlinux 0xd2cb388a blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xd34f0c62 gen_pool_create +EXPORT_SYMBOL vmlinux 0xd34f3610 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xd34f3f92 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd372363c __down_write_nested +EXPORT_SYMBOL vmlinux 0xd38d17c4 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xd3cee7e8 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xd3f53e02 key_alloc +EXPORT_SYMBOL vmlinux 0xd3f60824 bioset_create +EXPORT_SYMBOL vmlinux 0xd42b7232 _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xd4345344 tcp_child_process +EXPORT_SYMBOL vmlinux 0xd457bb88 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xd4605157 keyring_search +EXPORT_SYMBOL vmlinux 0xd48a317f dev_change_flags +EXPORT_SYMBOL vmlinux 0xd5107279 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xd51a5e79 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xd589a554 atm_dev_deregister +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5e3524a neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd60a7f03 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xd618dd1f unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd6321886 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6dbbed9 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7008824 d_splice_alias +EXPORT_SYMBOL vmlinux 0xd7315c30 skb_find_text +EXPORT_SYMBOL vmlinux 0xd75d06c8 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xd7954fcf do_munmap +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a10aff blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xd7aec34f sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xd7d74761 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7df63d7 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xd7e3daf8 uart_register_driver +EXPORT_SYMBOL vmlinux 0xd7e9b6f7 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xd8084e07 skb_dequeue +EXPORT_SYMBOL vmlinux 0xd8321b90 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0xd8516784 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xd86a193c tcp_connect +EXPORT_SYMBOL vmlinux 0xd86a681b skb_clone +EXPORT_SYMBOL vmlinux 0xd8817cd3 free_task +EXPORT_SYMBOL vmlinux 0xd89c8f95 serio_close +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a490ef skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xd8c0aff8 ida_get_new +EXPORT_SYMBOL vmlinux 0xd8c2168e inet_bind +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd9113bc7 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xd9237aa6 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xd93ab8e4 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xd93d3013 block_write_begin +EXPORT_SYMBOL vmlinux 0xd94a58cd kernel_connect +EXPORT_SYMBOL vmlinux 0xd94c083a register_8022_client +EXPORT_SYMBOL vmlinux 0xd94c1770 acpi_os_read_pci_configuration +EXPORT_SYMBOL vmlinux 0xd94d3151 pcim_iomap +EXPORT_SYMBOL vmlinux 0xd94dde02 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd963772d compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9c52795 lookup_one_len +EXPORT_SYMBOL vmlinux 0xd9ed56ab put_page +EXPORT_SYMBOL vmlinux 0xd9f233bd locks_init_lock +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0d3639 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xda3dc06f ip_dev_find +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda60bf26 idr_init +EXPORT_SYMBOL vmlinux 0xda73a1d0 __check_region +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog +EXPORT_SYMBOL vmlinux 0xdaa81e3e pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xdb079380 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xdb2808ff posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xdb3acfdb write_inode_now +EXPORT_SYMBOL vmlinux 0xdb466970 unregister_acpi_bus_type +EXPORT_SYMBOL vmlinux 0xdb53af84 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xdb5b2d68 vfs_readlink +EXPORT_SYMBOL vmlinux 0xdb73a52c compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xdb81956f elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xdbaf616b pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xdbb35dad is_bad_inode +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbcdfe1a pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0xdc12644b poll_freewait +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc24d101 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3eaf70 iomem_resource +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc587de8 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xdc873a70 screen_info +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb71835 request_key +EXPORT_SYMBOL vmlinux 0xdce0d1a6 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xdcf95c6f blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xdd0694d0 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd302fd5 blk_get_queue +EXPORT_SYMBOL vmlinux 0xdd39d4ba pci_bus_type +EXPORT_SYMBOL vmlinux 0xdd8b02f0 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xddd84296 block_sync_page +EXPORT_SYMBOL vmlinux 0xdddbea2a ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xddfbe647 devm_ioremap +EXPORT_SYMBOL vmlinux 0xde0afaff search_binary_handler +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde34a9a8 block_write_end +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeab2687 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0xdeb43ceb bio_endio +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf14e0cb sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf20697f pci_find_capability +EXPORT_SYMBOL vmlinux 0xdf2377f7 xrlim_allow +EXPORT_SYMBOL vmlinux 0xdf3abf02 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf75d784 arp_broken_ops +EXPORT_SYMBOL vmlinux 0xdf895eae locks_remove_posix +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa73591 pci_restore_state +EXPORT_SYMBOL vmlinux 0xdfaec945 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xdfc4bb62 kernel_accept +EXPORT_SYMBOL vmlinux 0xdfceacf4 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xe00fb238 release_resource +EXPORT_SYMBOL vmlinux 0xe010d1db add_disk +EXPORT_SYMBOL vmlinux 0xe01bb8c2 filp_open +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0ad3f56 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b5502d adjust_resource +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11aa1fb pnp_device_detach +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe14158c5 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xe15c10d8 udplite_prot +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1826fd6 eth_header_cache +EXPORT_SYMBOL vmlinux 0xe1c21568 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2518f67 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xe25b43c3 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xe276b8b9 inet_shutdown +EXPORT_SYMBOL vmlinux 0xe28f3676 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xe291d636 sync_inode +EXPORT_SYMBOL vmlinux 0xe2b4c0a8 make_EII_client +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d7f69f register_binfmt +EXPORT_SYMBOL vmlinux 0xe2f2356b end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe337f6cf request_key_async +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe35bf469 mnt_pin +EXPORT_SYMBOL vmlinux 0xe367cc0a pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xe3b09bed simple_dir_operations +EXPORT_SYMBOL vmlinux 0xe3d091d9 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xe3e3f821 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xe3f69232 get_disk +EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe44e7fcf fb_class +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4870354 _read_trylock +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4c1df3e _read_lock_bh +EXPORT_SYMBOL vmlinux 0xe5060302 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xe5106419 stop_tty +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr +EXPORT_SYMBOL vmlinux 0xe5537971 nf_log_register +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a71dde ps2_command +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e1571a bio_put +EXPORT_SYMBOL vmlinux 0xe627f5d1 make_bad_inode +EXPORT_SYMBOL vmlinux 0xe6404f26 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xe66af8cd sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xe694cc8a set_current_groups +EXPORT_SYMBOL vmlinux 0xe6c19ce4 __pagevec_release +EXPORT_SYMBOL vmlinux 0xe6cfe1c7 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xe6d57752 agp_backend_release +EXPORT_SYMBOL vmlinux 0xe6d5c272 agp_device_command +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe781e386 inet_accept +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe80e6cdd inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe81d9f61 compute_creds +EXPORT_SYMBOL vmlinux 0xe81da004 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xe83da054 netdev_state_change +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe865d2f4 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xe865faf7 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xe88ad327 _spin_trylock +EXPORT_SYMBOL vmlinux 0xe8afb0e2 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0xe8b57bb9 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xe8c49b3b tty_name +EXPORT_SYMBOL vmlinux 0xe8c6bd51 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8dc9c3c sockfd_lookup +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9244d07 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xe92a00e0 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe97ce649 register_sysrq_key +EXPORT_SYMBOL vmlinux 0xe9a60ad6 __down_failed_trylock +EXPORT_SYMBOL vmlinux 0xe9bcb310 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xe9e91672 nla_reserve +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea7d1d79 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xea8e8b37 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xeaa36240 __up_write +EXPORT_SYMBOL vmlinux 0xeaa456ed _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xeac5b3e0 copy_io_context +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb1aced3 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xeb1b0518 arp_xmit +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb349cbb __alloc_pages +EXPORT_SYMBOL vmlinux 0xeb37482a gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeba58e1a acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0xeba6b835 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebd4ac07 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec2d8e5c __find_get_block +EXPORT_SYMBOL vmlinux 0xec3c2d2a default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xec3df2e3 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xece8b464 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xece9b313 __write_lock_failed +EXPORT_SYMBOL vmlinux 0xecf76029 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xed727e8a kill_litter_super +EXPORT_SYMBOL vmlinux 0xed7bdbd7 d_instantiate +EXPORT_SYMBOL vmlinux 0xed9003ef pci_osc_support_set +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc82ce7 udp_poll +EXPORT_SYMBOL vmlinux 0xedcd585c tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xeddb97dc security_inode_permission +EXPORT_SYMBOL vmlinux 0xeddfe49d rtc_unregister +EXPORT_SYMBOL vmlinux 0xede415ea kset_unregister +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee696035 vc_cons +EXPORT_SYMBOL vmlinux 0xee7390ec tcp_poll +EXPORT_SYMBOL vmlinux 0xee783ba7 proc_symlink +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee937bb9 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeee36a03 set_user_nice +EXPORT_SYMBOL vmlinux 0xef3547a9 may_umount_tree +EXPORT_SYMBOL vmlinux 0xef4e6da3 elevator_init +EXPORT_SYMBOL vmlinux 0xef8e7c47 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa5c5bd sk_receive_skb +EXPORT_SYMBOL vmlinux 0xefbd3ee2 kernel_listen +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe8e01c end_pfn +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0a0aa02 vmtruncate +EXPORT_SYMBOL vmlinux 0xf0aa3909 __bread +EXPORT_SYMBOL vmlinux 0xf0b50feb seq_lseek +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0b65e96 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf0b837d7 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xf0bcc0b3 acpi_os_create_semaphore +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf12b826c generic_permission +EXPORT_SYMBOL vmlinux 0xf1490879 _spin_unlock +EXPORT_SYMBOL vmlinux 0xf14b0641 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c71e18 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0xf1e7f439 d_alloc_root +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1eee996 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf224eda9 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xf2757664 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xf279801f filemap_flush +EXPORT_SYMBOL vmlinux 0xf28fa9bd kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2d7b364 inet_select_addr +EXPORT_SYMBOL vmlinux 0xf3068dd4 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xf3076dfa inode_double_lock +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32d9b60 bdi_destroy +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf3577480 netif_device_attach +EXPORT_SYMBOL vmlinux 0xf35cd8ea __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf35da8ad del_gendisk +EXPORT_SYMBOL vmlinux 0xf35f28cd xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c4a723 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf45b976b cpu_online_map +EXPORT_SYMBOL vmlinux 0xf47b6ea5 sysctl_string +EXPORT_SYMBOL vmlinux 0xf47d47e0 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0xf48e16b5 set_anon_super +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4beea47 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xf4ebd2e3 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf4f80b7a ___pskb_trim +EXPORT_SYMBOL vmlinux 0xf4ff0bc0 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf507e011 dput +EXPORT_SYMBOL vmlinux 0xf51559c4 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf52f4427 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xf5351c4c generic_getxattr +EXPORT_SYMBOL vmlinux 0xf535bbd3 netpoll_setup +EXPORT_SYMBOL vmlinux 0xf53fc20d vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0xf54f704c bio_clone +EXPORT_SYMBOL vmlinux 0xf59ae537 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xf5a59767 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5d2a776 d_rehash +EXPORT_SYMBOL vmlinux 0xf5e8e0d0 take_over_console +EXPORT_SYMBOL vmlinux 0xf5fb369a dquot_transfer +EXPORT_SYMBOL vmlinux 0xf63e4bf5 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xf6663615 dquot_release +EXPORT_SYMBOL vmlinux 0xf666cbb3 __memcpy_fromio +EXPORT_SYMBOL vmlinux 0xf67f45a4 sysctl_pathname +EXPORT_SYMBOL vmlinux 0xf689c842 atm_dev_register +EXPORT_SYMBOL vmlinux 0xf6995192 sock_no_getname +EXPORT_SYMBOL vmlinux 0xf6b34965 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xf6ba6c4f blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xf6bad2ab init_timer_deferrable +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e08987 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xf6e71833 sock_release +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf71a7718 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xf723de9c kthread_create +EXPORT_SYMBOL vmlinux 0xf749534a gen_pool_free +EXPORT_SYMBOL vmlinux 0xf77295b6 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7a779a4 pskb_copy +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7c7b8b1 prepare_binprm +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf82f48fc acpi_os_delete_semaphore +EXPORT_SYMBOL vmlinux 0xf8686a80 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xf87d68b4 put_disk +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf89e7d28 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xf8aa2ad2 unregister_nls +EXPORT_SYMBOL vmlinux 0xf8b5fadb alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xf95635c7 __alloc_skb +EXPORT_SYMBOL vmlinux 0xf9620b2f dentry_unhash +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d35246 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xfa0eec8a try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xfa1f3d2c d_genocide +EXPORT_SYMBOL vmlinux 0xfa7217f2 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0xfa785ef2 proc_root +EXPORT_SYMBOL vmlinux 0xfa9c12e7 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xfad3ae62 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xfaee50e8 block_prepare_write +EXPORT_SYMBOL vmlinux 0xfaef9b2f qdisc_reset +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb4ab2ad ida_remove +EXPORT_SYMBOL vmlinux 0xfb535e03 pnp_init_resource_table +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7ca012 ip_defrag +EXPORT_SYMBOL vmlinux 0xfb9af375 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xfba0c2e0 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xfbbe3d2a alloc_fddidev +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfbff7a63 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc04a1d9 d_validate +EXPORT_SYMBOL vmlinux 0xfc054f9a serio_reconnect +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc69aeac inetdev_by_index +EXPORT_SYMBOL vmlinux 0xfc6d43f7 elevator_exit +EXPORT_SYMBOL vmlinux 0xfc9bd191 seq_read +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcbcf9bc tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0xfcbddae5 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xfcc3fb0d vfs_unlink +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf993c0 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd13ff00 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xfd1c082f agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xfd2c9c43 put_io_context +EXPORT_SYMBOL vmlinux 0xfd390cb9 simple_set_mnt +EXPORT_SYMBOL vmlinux 0xfd4b3b7c proc_bus +EXPORT_SYMBOL vmlinux 0xfd4c471a register_quota_format +EXPORT_SYMBOL vmlinux 0xfd65c1e1 free_buffer_head +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdab2b9c rtc_register +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfe03e48a pci_disable_msi +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe32e850 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe5cc0de seq_open_private +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9bfa98 check_disk_change +EXPORT_SYMBOL vmlinux 0xfe9ed849 inet_release +EXPORT_SYMBOL vmlinux 0xfed229b7 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfeea3db0 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xff043f87 seq_puts +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff8fca7d input_open_device +EXPORT_SYMBOL vmlinux 0xff963a6d pci_remove_rom +EXPORT_SYMBOL vmlinux 0xff992172 acpi_bus_start +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffafdc5c _read_unlock_irq +EXPORT_SYMBOL vmlinux 0xffca0024 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd806d0 kill_pgrp +EXPORT_SYMBOL vmlinux 0xffe18a15 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xffe4808d tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xffee2ffe pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xfff4b964 splice_direct_to_actor +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00abfe73 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0dbdb54d kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12695e40 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14cbc958 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1514ce63 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x16385f4b kvm_lapic_find_highest_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19040799 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c1615e8 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20ed1f24 emulator_read_std +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x287d7808 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x293d59c4 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c237b92 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x355e5fac kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3fb2f6ae emulator_write_emulated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41acdae1 kvm_emulate_pio_string +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41c083c2 kvm_lapic_enabled +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4606aee5 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x496a60a8 emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b6f806a kvm_put_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53565763 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x561fed8f kvm_emulate_pio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5874cdf4 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c01cb8d kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c1012f2 kvm_lapic_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f8932a9 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62710a8c kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64d3c27f kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ddfc338 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x72e44619 is_error_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x73d0cc79 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x78f89c56 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7e661240 kvm_timer_intr_post +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84638edb kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e7f9b47 segment_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ba23174 kvm_load_guest_fpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa506681f kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa61f7788 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9b6ce09 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab9839b3 kvm_lapic_get_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf40759f kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1792e6e fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc485cf31 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5af13c1 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8b55089 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcce913cb kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcdf7102a kvm_report_emulation_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce04fe2c kvm_lapic_reset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd6ab3591 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdfc4c83e kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe3cc03f7 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe51ed4b8 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xebaad432 kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee2b5912 kvm_create_lapic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf474d816 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa379ee5 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa7c2278 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe5aea20 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL crypto/ablkcipher 0xd5386f54 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x3ae39116 crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x4ded5d15 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x3f70776f async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x459d7921 async_tx_run_dependencies +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6b4a6db2 async_tx_issue_pending_all +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9691ea2e async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb88f15b2 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xbc8584cc async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x85823ec6 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xee2a3757 async_xor +EXPORT_SYMBOL_GPL crypto/blkcipher 0x2027bb83 blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0x7300b29c blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0x81534dbc blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0xefe440d8 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0xfd6968d2 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0xb2c72636 twofish_setkey +EXPORT_SYMBOL_GPL drivers/acpi/bay 0x2e58ad17 eject_removable_drive +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x100c48a2 unregister_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x2611fbee register_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0x318920b1 register_dock_notifier +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/dock 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x09419381 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x817cf418 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x9a98d3f7 acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xfab6c9b9 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x044d1f0b ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x06e86d87 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x08bc360c sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b0eb29f ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b1da478 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b83e305 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b85bd8e ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x117c800f ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x121fedfd sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x13917158 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x167e7933 sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x16cf7f08 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x172a4e9c sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x19864612 class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d3c698f ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x201d0b6a ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x202843d0 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x211a0564 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x22db8777 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x23d75674 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x248ada2d ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x24a76abc ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x261bea5a ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x26ab28c8 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b484530 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2cb3b7d6 sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x31bb5e9d ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3687515a ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3a8cb8ee ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3ad00c52 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4032f04a ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x46fe71d4 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x480ff850 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4bdbe726 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d1a14f5 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x535b6ace ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5798b31d ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x592a5646 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5a2d4c68 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ac8134b ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5f132c37 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x67af5337 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6ea1fea9 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x716a1010 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x71726d80 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7220bb2a ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73e31902 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x772ede23 ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x77684a50 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x795f9b90 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7bfecbf5 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7c693ef8 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7cc0c6e3 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7ce8a744 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7d5c0ad2 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e144701 ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x887dd09a ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x89713fa8 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8995fecc ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x89d2c1f0 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8a7aeed4 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b1915a7 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b90807c sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8ba5a65b ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8c196d13 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8c894b62 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8cdca03f ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8cf67228 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f43251e pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x90033861 ata_acpi_stm +EXPORT_SYMBOL_GPL drivers/ata/libata 0x91c0f9d1 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94f7c79f ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9550a60a ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x96e93661 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x98c90e7c sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f05dc34 ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa119b9b7 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa388f76b ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa920a3d4 ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa942cd47 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9c69315 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa3247be ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa946435 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0xae4791ad ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xafc17573 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6691557 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb744b48d ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb81c223c ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb86da6a9 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb9be9c6b ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbbaf678f ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc1df3fbe sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3132541 ata_acpi_gtm +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3443481 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4469732 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcad181f6 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcb0578dd ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcd3bfa4e ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd0c76fdd ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5260d18 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5f437ca ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd666a9f7 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd9ec14c4 ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdaba64dd ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdc4004e3 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0xddaa2b13 ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xddd5bd96 ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdfc0f151 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0447ce1 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe256e87c ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe2c18a7e ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xead20934 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeafbe556 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0xec7181d5 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xecd2af42 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xed7436e5 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xee3f52c2 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf11f9ab8 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf33fc718 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf49fb1aa ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf5c479c3 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf94192dd ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfc927420 ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x5a81ada7 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0cc91ff2 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x12a7f10f tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2eb5ac77 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x30a9579c tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3aa98035 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x473e8c25 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x477ff9fc tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x582e9d52 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7988b7b1 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x818eb5bc tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9024eb9e tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa499badb tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcd5245ed tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd02c487c tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd44b8995 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd493a7bb tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd7aa956e tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xda87e715 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xde5976e2 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe82ff984 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfc709f20 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x2504ef2c tpm_bios_log_setup +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x4b4c2fde tpm_bios_log_teardown +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x3a2b8063 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x63621b18 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x6d9d31a9 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL drivers/cpufreq/freq_table 0xb92b817f cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL drivers/dca/dca 0x1a1e1633 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31dc73f9 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x43917394 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x484b698d alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x74f48cc0 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xf5efaf21 register_dca_provider +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x05a1a0f9 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x05bd1128 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0d034f2c edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0e53a1db edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x17721a4e edac_device_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x21a12b15 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x26a8062f edac_pci_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2cadfdaf edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x363b2bef edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x47e1936a edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4faa2765 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x54d2832b edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5b962682 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x64d12e72 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6516d34c edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa610ddf3 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa9da1cdc edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xabb54693 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb0989486 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb37d079a edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbad7fdb9 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd68fd526 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdbf639f4 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xde81bdfd edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf8c554b9 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfa8db954 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x013f530b hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x03478f6b hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x283327b4 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d5366ea hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3151944b hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x49f120d2 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6f8482c1 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf0e8b72 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb84d3513 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3250cdc hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3d13e99 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe108a6f8 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xee02a4b3 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x7c52d635 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x5678c94d i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x58d2b55a i2c_new_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xd0881f3f i2c_new_probed_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xe884c190 i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x00401cdb ide_undecoded_slave +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x0539594b ide_register_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x114edd69 ide_acpi_push_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x15851bff __ide_abort +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1970916a ide_end_dequeued_request +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1984dddf ide_init_disk +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x1a33adb8 ide_dma_start +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x23225efd ide_setup_pci_noise +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x277e541f __ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x2dac1107 ide_dma_setup +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x3db406b4 ide_pci_setup_ports +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x56c5ee5c ide_wait_not_busy +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x5ac21e22 ide_setup_dma +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x660ba080 ide_set_pio +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6ac24a0a ide_build_dmatable +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6dfe18b6 ide_setup_pci_device +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x6f5798ce ide_acpi_exec_tfs +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7230b445 ide_init_sg_cmd +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x76c40494 ide_dma_intr +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7cfd3961 ide_bus_type +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x7d5a3c8c ide_set_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8e564552 ide_acpi_get_timing +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8f60fc1f ide_setting_mtx +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0x8fa08eba ide_map_sg +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa09c485d ide_get_best_pio_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xa3a86426 ide_setup_pci_devices +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb455b360 ide_unregister_region +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xb6b2c447 ide_pio_cycle_time +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xc9f6692f ide_find_dma_mode +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xdbafa7ff ide_build_sglist +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe0595c64 ide_acpi_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xe1103f28 ide_error +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf29f8f65 ide_find_port +EXPORT_SYMBOL_GPL drivers/ide/ide-core 0xf65e1d1e ide_destroy_dmatable +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x9b47ef7e hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe0d7b462 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x8a5dcec1 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0a31261a gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x17d89529 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x25fcb344 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b847450 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x44d98c6f gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x63c7dd8d gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x75fba493 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7ce14566 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x837d0722 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa080f23c gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa618c82d gigaset_unassign +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa9ed24c1 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc0efc885 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb528693 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe218167e gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xec1b019a gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf04d26e7 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf6a2d7f8 gigaset_getunassignedcs +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x128c179e led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x38a7d05f led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xb0e4f3c3 led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xb67caee4 led_classdev_register +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x06e26119 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x26b92543 dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x29ba47d2 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x797a66d6 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xb261c160 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xd734bfb6 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xdb64015f dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xf42fc9ff dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x26dfbb7d dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x5cccaa1a dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x82151a51 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xa70ab2da dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xbea9b7dc dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd1702e68 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2558f41a md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x36ba6bcd sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf2133261 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf4736f52 md_do_sync +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x467d72aa ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x8a981363 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xff587623 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x09f4f149 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0bd9e3cb saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x165572e1 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1d68b1de saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x326bcb85 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8cc71391 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb2a4a9ae saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xba43708f saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdd5b6ecb saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdde56071 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdfd423a5 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x13fd1eff saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x16d3a358 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x69a8d876 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x69e936f0 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8f3bbcb2 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xcbe0c974 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf6febc8b saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x174e4e33 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x27bd7982 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x95c6b846 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa625f2e1 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xabd5c563 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb48be194 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc07e6975 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0xc7fc1a46 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x0f17c984 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x6b380a94 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0xc3322aaf microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc06625df saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0xa07c373e tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0xfd35c54f tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x8dac0dea tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xc4e092de tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x43fe3e81 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xee913cc6 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xb0b150c5 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x10020962 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x768bfdc4 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1264f449 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22030c70 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2764a712 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x31ca24dd videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x36e92ecf videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3afdbc8f videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3e21bab2 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4d7f282b videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5525bf1b videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x56cfae76 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5c0c7155 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5e9ac36d videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6991a121 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7c1f3969 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x820a4841 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8661cb82 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8c247066 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaa1483ac videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaeab3547 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xba3c21d3 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd452409c videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe12dd03b videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe2c8b2a4 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0daeca4d videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x29099287 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3d541750 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x51ec8c5d videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x62c6fc29 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x688ff500 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6fd8b44a videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9b3a4e98 videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac33c6f0 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb8e43252 videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb93a585a videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe6537e3b videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfe4e61d7 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x1e488532 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x5a50808e videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6ee7e95a videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3ac01095 sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3e15b215 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6b8ffacb sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9b05e79f sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd0113510 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe17ad8d2 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x10b092c0 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2aff53b0 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x35468aea sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x46e3041c sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x555b7661 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x68528546 sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7f491c8f sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8d4cebb2 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x957520f3 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x96c90d71 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa240b8d8 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa93ba5d9 sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa9e8820b sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xab51149b sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbf1848bb sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc55e7f05 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc813a8b7 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd346e16c sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdac566ef sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe5d789a9 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfe11734a sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x38f12e95 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xebab8901 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xef47903c cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xad2d9e0d cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xd889082d cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x229a7014 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x698c8236 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xa7cda351 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x02dd50b9 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1fab3627 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38713b52 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x39e9a14c get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4801adab unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4bd50d62 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x554374da kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x600a67ad register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x639e9b57 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8163f713 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x83939ee4 mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa686fff5 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb6b3b726 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb7cc11e8 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd4df1526 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf4bf64dc get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x2178857a deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x70d8015b register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa1b02c47 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbfdf24e4 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x83cfeae7 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xaf6f0b9f nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb37a2642 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xd44f1cda nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf17c1b18 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x0928a89c onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x9b4ebe66 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x276c8c57 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x461d428d ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x506e2afb ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x80365479 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xae4ef546 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb99ef5ec ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1c900e7 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd57e4301 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd9eb20f6 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdd25884e ubi_open_volume +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0660f0bb mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x10d16c75 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x20ea371f mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x23ee3ca7 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2d64ee5f mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x312be262 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x32a2fba4 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x36346093 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x385cb208 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x47fb2fac mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x49eb473f mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c2f6001 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x52102a32 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x57ed624b mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x603b9af3 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6612fbdf mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x66745ba8 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6c1439ab mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6d223200 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6d833939 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x737f48d7 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7c8fee0f mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90a4633a mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x941ee23e mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9a59c881 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9de48305 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa5d23a30 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb63dbca3 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbdab38a6 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4553c13 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc6b0c4da mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc8bb5572 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9921580 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcd75f2e3 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf2f0a2c mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd80a5285 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe24c5634 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe38f658b mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xefa5c70c mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf8f6157d mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x95f65d75 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xae0f23a1 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x19f4b842 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3def958b usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x44754276 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4fa911d6 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b1df5b1 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5be3f131 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8685e48b usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9b995048 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa17f655a usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa5049eab usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa120f03 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb6849c98 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xba242045 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe1f2edee usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff6d228d usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x359847c6 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3fb38c6d libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4ecebff0 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x789cb9f4 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x795d9e82 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7a05212a libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x82fbb062 libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x881fc958 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd31b39b0 libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe42b3c2e libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfa2a27a5 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x278fba12 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x549f578b p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x5fe01f2c p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xc25350c3 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xca82c647 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x29e1c2ee rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a1aba68 rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ea67846 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32cc4998 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x358b4ea6 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x482a47f0 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6038b3cc rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x60b1407e rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x60cd0e4e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x704c249e rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x78b8a64a rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7af61759 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8b69f519 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e74335f rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xac6b9989 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc4ec60c5 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd26a189c rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd300fbe8 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe4a634c9 rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed8bed65 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x172b4bf1 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x44c6fd14 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4c85da24 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x573bb3be rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5b1978ab rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x64e44656 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x85be7045 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x92f9d769 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb1f45900 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x05ede407 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1b60cfa5 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x36c327f4 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b6f9f2f rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6dcb2ede rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9e333850 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa690ada3 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb0829f61 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe577477c rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe73a5dda rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf0db3f93 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x52d30e05 acpiphp_register_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xb2ee066f acpiphp_unregister_attention +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ad3b491 acpi_root_bridge +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x1ec102d6 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x21f0d49f pci_hp_register +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x25a1f98c pci_hp_deregister +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x2874ec02 acpi_get_hp_params_from_firmware +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x3db24d32 cpci_hp_register_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x51eb9f9b cpci_hp_register_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x855445ae cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xaeea0069 acpi_run_oshp +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xd0ae60cd cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pci_hotplug 0xd9113780 pci_hotplug_slots_subsys +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x15024274 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f6ec990 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3fcc4fe9 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40ea3d5c iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54c8a1da iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5eae9e63 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5fcdb2f8 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x650723e3 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x68d0aa1e iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x728d3637 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7a51a379 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7faa0e27 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f024674 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e1c9a6d iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab525634 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb9a36b3d iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1bcd376 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc36d05d5 class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc506fe45 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc66f2891 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd1813240 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5dfd740 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe6134cce iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee9df0f3 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf5b63847 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7f86a8f iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc858ed5 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2b783942 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3769d27c sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x43f74d76 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x48a2129f sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a1f1a1f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4cbd39b4 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4d970e83 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x641a5482 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x762c3a4c sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b16bf98 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84acdf95 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x859c82b5 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93295915 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x97bf3bf2 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa36973af sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa902a4ce sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaaccfb50 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd12b68af __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc32e2ce sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8485355 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2c806e57 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3721c179 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x60fd69aa srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb7aa0132 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdab4e887 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe9064bce srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x02ad2378 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x065266bd scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x0d8028ba sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x127c5aef scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3487cd07 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x3515cb0b scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x458d1142 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x5f81d4da scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x70cdf97b scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x86f8fdfb scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xce620053 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd349146b scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd76712a1 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xe90c7b73 scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x25214501 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x255b2b80 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x272e9c5e scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x52c48c41 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5affa039 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x99ddcbb9 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbd703af1 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf313b1dc scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfe8de5d2 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x26c61d23 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3634c2f4 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3a03e07b iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3e402e39 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40dd25cd iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c4edc83 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x887849df iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8aeaef38 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9e5a1e43 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa73364dc iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac77661a iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb6d539f4 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4a9bd17 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8ec616d iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd9b29b7a iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb7a8110 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2de1b114 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8ad8dbfa srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8e988964 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xcb3fa569 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe7372769 srp_release_transport +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2adec94f spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x37b26953 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa00710ad spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xb4cde12b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xca56e8f3 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd0bd6058 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2a7e8304 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x56130d94 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7742c1ee uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x141875f2 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xc86cfee5 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x03479ec3 usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x160b7f63 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2506b3eb usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x276e8e33 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x32145b82 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3bfc711a usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x420a26b1 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4726131a usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x54add7b5 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x575b2e7e usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x57fe96fe usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5dd0e1a2 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6d7ea1d9 usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x71ea6ee7 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7af94bb4 usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8656b1ca usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8c3bc797 usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xde58926a usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe68848ae usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xec74626c usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xef98eb73 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf2124ea9 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf223cf7f usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf552677a usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfe8e78d3 usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x070000cf usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x21ccbeb3 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x28273280 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x35e43805 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x37766736 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4c57bc76 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4d6d93b1 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x57a78d8d usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfaac8d37 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0xbfc364bc phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x151f9f0d usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x36b97efd usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x56d77a32 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90a36ca3 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x98689dd9 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb125790e usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc80aa56d usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe37e5ba8 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x8e1e481e fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x345f9c10 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xb1c7454f fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x1c26e112 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x2844cdbd sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x2fad4156 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x740683ac register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x778c4f7b unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xae80a27c register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x03c4687d vring_interrupt +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7e41744e vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xfbf1388e vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x88bd590d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x89494b87 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xbe10e2ef w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc5da83f5 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe31836be w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xb5d00c54 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xe2f21ccc exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x083aac6f fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x0df853f6 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x23d0b799 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x35fe68a3 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0x366184e7 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x38bcbc27 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x4a6c3794 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x6637f26d fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x7c44f3e2 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x965def41 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x9c7c8148 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xa08b63fb fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xbd3f953e fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0xe14fed18 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xe1d86b46 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0xea416855 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xf2df97aa fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x1b2e32f6 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x8f6dc179 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x9683ceb7 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xda1c16d8 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xf1361225 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x10cd3221 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3e143e0e o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x496491e4 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbd83c9d5 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe6467da4 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf21c50af o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfd8a13bc o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x03d8798d dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x19c36d33 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x322eaab9 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5b998e03 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc1ab5ea6 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xcc576c0a dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xcf58294e ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x586e4930 bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x31a9de5f dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x34742808 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x41c95fa8 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x49616841 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x566dd37e dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x62d079e9 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6a549de9 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x89026d48 dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x90aae1a6 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x9446b0cc dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf81f8b2b dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x051a186e ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x05447bf6 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e9029d9 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1006c4bf dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x149bcd6a dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16a53c07 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b7cee7d dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f3611e8 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b0133a5 ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34f229fb compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4173abd3 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44bef3dc dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4be94cfb inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4fe8346f dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5886f2d1 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5934859a dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a684749 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a958a44 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x738705b1 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x79b3060a ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7e6b4a72 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7e876dc4 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8e32c4f1 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9028f686 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x98b3095e dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xacfbcdcd ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae02b996 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae66cae5 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb0baa1a5 dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb539c845 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6c5bc75 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb87c95aa dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd5a7870 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2151e77 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc26abdf3 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd15afadb dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd35ad463 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd4c7c5af ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7c9c09c dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc3f5d04 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3ec06e7 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4f11185 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe61df300 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6f26c6b dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe75341bf dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe818102d dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe84f82a7 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe94df772 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb54e192 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4d9c417 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfda4eef8 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x02fb5191 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x09d16c39 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x67ab29cf dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x68af72f9 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9b6c862a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xeb9e0c63 dccp_v4_connect +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x5ac4ca54 ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x99cbb66c ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xceffeb40 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x068d3e65 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x106c8155 ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x16c5385b ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x24f5cf1c ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x2511e0cc ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x35893017 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x37b0b4ac ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4d53fb3b ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5b2bf86f free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x618eb1da ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x638a2787 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x70de6c80 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7a0b7045 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7bc05e86 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7ceaed94 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8457a041 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xaf8f4c1b ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc2de4703 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xcc737076 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xd890a85f ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf9601bb4 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x10282c92 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4b661a8e nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6f35cbca nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe2c27d75 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfcf71096 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2dad46bc tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x35d17ca8 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8a81e8f0 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb41ec366 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf32333e1 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x265c57c0 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2934c727 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2ac9fe9f ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5cff080d ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x64aa497b inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x72fad8c5 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7eed62c4 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x952b72da ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa26bbac3 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xaf813add fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb1764b4a inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc7292aa0 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd179ead3 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe5b44520 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf4810a10 ipv6_dup_options +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x051c206e nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07ee23a9 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c62f8f9 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x107b9e22 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12f9f4dd nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28544a5f nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2d2b6565 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x335ceaff nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35dea58a __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37881817 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47f61f2e nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48c08ef9 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a05dce5 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x520ccd63 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5701686e nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58078756 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68f934cf nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6bcfa00d nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f6134c6 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7255d196 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x771a98fc nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7833be67 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a6ff38f nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c5a2148 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e8b27d3 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fde5cfe nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8046c2d4 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95479a0c __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x977c21d2 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x989003d8 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f221b8d nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa338126e nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa4b704e nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb3bdae20 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc41b73be nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc81198f3 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc906ec40 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc65d970 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5514cc0 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd884af6e nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3a33fbe nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeab2cdec nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x8e5ed0f8 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xc23ee1ac nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x53c8deb4 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x573fc985 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5fac098a set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7a658bfa nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x89752659 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb1ff4c00 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcbea19ce nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xee4a3ab8 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf5064e72 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x4177bbcb nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x144bc389 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x266cc047 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x710c7283 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd4cd03ba nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x34ac0bbc nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb3ecedc6 ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xca733774 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x1b8c5fd4 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3d69bad0 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5abdedde nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xce2ed3c5 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfd711bc9 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x29a58d2c xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3406cea4 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x430fbde1 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5a471299 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5aa788af xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c4601e8 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x749032a7 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x921b9c04 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa8a1539e xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdc936177 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdce22501 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xed13d133 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf85a3c5f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfa12cca8 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x2a4ee02f rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xa5858c21 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x079dc51d xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09934066 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ca42537 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x124cd8b9 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x155550ad rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1dc36c5e xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32f70b9f svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46a7644c svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46b733f9 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ad55353 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55915e9c xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57fd5404 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66654d35 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f5c0f84 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d05469c xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86fb4125 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x888bfa87 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fa1ac1c xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb395b384 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba2db73f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1200a45 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6c54aae xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc761b197 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7be36a3 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd105b5ec xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda1e4f71 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda98fe4b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc139b75 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5af5a98 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8fd2b15 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x0096b78f get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x0099c095 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x009ea59c inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00cdda35 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x014eaf6a get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03929730 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x0419a735 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x042bddab transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0455d966 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x047c4500 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x0506180f device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x050cfdae class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0534efb4 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065e5c28 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x066633f1 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0x06913d07 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x06cb04c8 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x06ffe81b agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x0712d9da spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x074a501b tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x0760c7db init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x07b3fc4c vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0821a0c3 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x08a5fa0b rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x08e4ebeb rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09bc91e8 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x0a24d870 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x0a9a1f4c crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x0baa5cf8 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x0bde3d68 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0c00443e spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x0c8e01ca sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0d3816a4 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x0d523197 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x0d7d149f class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0dcef281 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0df74e86 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0e2e78d2 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x0ec9d9bf platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x0eeb3ac1 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x0f737918 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0f7954f9 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0fbb7f47 class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1135c46d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x11656e60 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1172a81a get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x11d98ad0 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x11d9b9f8 mmput +EXPORT_SYMBOL_GPL vmlinux 0x11e9ba50 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x1234e87e __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x138b746c led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1411e71a pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0x1455b7f3 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x1492c46c inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x14935a76 __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x1527d0a1 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x161883f0 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x1626a07f devres_add +EXPORT_SYMBOL_GPL vmlinux 0x163d0225 put_device +EXPORT_SYMBOL_GPL vmlinux 0x16810148 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x1787c1b0 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x184f3970 device_del +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18d1057c platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x18d6d160 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x192923bb tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x196ddb4e rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x196f9b19 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x19ae3458 user_match +EXPORT_SYMBOL_GPL vmlinux 0x19c90595 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x19f6649f tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x1af72f47 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bfb7206 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1c078c39 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x1c74c394 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x1cf5a8cb anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1d056a77 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d25f4df crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x1d7147e4 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0x1e37b4fd debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x1e499cc9 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1ea91c40 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x1eaa1e44 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0x1eab17bb led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe77010 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x20558ef7 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x208558c6 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c6fe38 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x21a79324 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x229657c4 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22f86903 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x23264079 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x235f4515 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x2370ddd8 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23cea294 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x2437a506 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2447ed01 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x246817c6 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x24e3d8ea xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x25243d9b tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x2621f2b5 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x2717bf62 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x274245e9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x28532270 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x295ae01a platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2b1f820d page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6b128e tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e2dcaa8 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x2e711f76 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2e919519 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x2ef35012 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x2f9ca5de debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x2fbb8c24 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x2fe3a872 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x3010162d input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x326834d8 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33518643 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x335b2f4a anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x339f983c fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x34129fc6 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x3433d658 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x34dc20c0 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x352f1c98 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x358bfa43 e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x361f1ac9 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36a21011 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x37633e6f inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0x3775974e spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x37f5f198 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x38532c9f find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x3936fd2e fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x39f004d7 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3aca6b2b inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x3af61b04 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x3ba11074 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x3be678c4 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3c0bf551 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x3c0e78fa relay_close +EXPORT_SYMBOL_GPL vmlinux 0x3c4a2131 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x3c56eed4 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cb23c2b proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd8d833 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ce81173 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3d2a1fef skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x3e8a3a76 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x3e9cf709 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3fbbae99 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x3fe4f1ad debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x3ff1c0de hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x4034dc8a get_device +EXPORT_SYMBOL_GPL vmlinux 0x409ad5c1 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x40ba904a __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x40db874d uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x41ab260b platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x440b8f28 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x445afec0 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x44d77600 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x45296ac1 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45806690 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x46a0b0fa percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0x473dee33 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x479397e4 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x4871015c __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x48c0b26a dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x48f0278a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4a57ad64 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x4a86af7d pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x4adf3387 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x4ae49190 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4ba99844 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x4bd31ca2 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x4bf869ae cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x4c2660ec driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4c6668d2 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4d66565c platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x4dd3f171 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4e7b643c audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x4e851c3e task_nice +EXPORT_SYMBOL_GPL vmlinux 0x4efc6fad register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x4f12bf83 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x4f22f7c3 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4fc13eb1 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x4fece56a cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x501af026 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x502c6089 srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50845340 class_create +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50ff7a2a input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x5134020e pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x518aa5c2 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x519d4b5c acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x51d098ac debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x529ff845 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x5312b5dc fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x560cf163 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5693a0f9 user_read +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x57739c5c led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x57802234 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x5790e9bf pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a76591 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x57c0062a crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x57da507b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x5886c139 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x590daaa1 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a606ca3 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x5a795257 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x5a8440dd device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x5aca2434 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x5b899060 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c7446ad debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x5c84221a attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x5cc9eca3 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5dd69584 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5f487d47 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x5f87be15 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x5f991d94 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x5f9a11da srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x61211411 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x617f2cf9 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x61d47bfe proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x6200c28e __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x62562ae5 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x629347fb blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x642b6b30 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x645b0627 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x666e520a bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x6693b3fd inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x66a758d7 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66be286a acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x672a15f4 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x677b310a pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679916c8 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x682ece6e __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x686b345e user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x691e60b7 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x698dac5f device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x69aa4bff dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x69f8e7a1 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x6a2f33e2 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x6b67ff5d inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9f1fe3 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x6be1dded xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x6c370806 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6cd3c0ee pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x6d14afd9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6dd47d46 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x6dd6bb9c lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x6e4d6b91 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6e4f0fcb class_register +EXPORT_SYMBOL_GPL vmlinux 0x6edbfd76 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6f0c8307 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x6f61ae04 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0x705769a0 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x70940340 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x7116d75d crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x71a5c35c cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x739b4d2d rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x739db49c class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x741b4e9c platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x745dc6e1 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x747dc915 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x75598bf3 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x764ea825 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x769a1402 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x76e7c2ef atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x76ecda72 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x774a9585 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x77d595f0 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x77febf8f device_add +EXPORT_SYMBOL_GPL vmlinux 0x7850bc1e crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x78821b41 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x793175ab crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x7942481f driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x79be21f1 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a901dc7 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x7aabc75e inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b281f1c inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x7b37edd9 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7c00d293 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c18142e init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dc60c97 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x7e67dbdd rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f8d7615 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x7f9534ce crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x801f39ec key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x80adc487 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x80bf708e crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x80e6290f firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x810d7e96 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x8128416f relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x812ffe59 find_pid +EXPORT_SYMBOL_GPL vmlinux 0x8160918a preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x824cc529 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x8250af10 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x8274b0ee pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x82d23e94 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x83f3ce94 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x86502eb3 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x8656d5a2 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86fca9b3 device_create +EXPORT_SYMBOL_GPL vmlinux 0x87098a2f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8737ccf4 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87a40806 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0x88d8c843 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x8976923c device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x897d1e20 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x898f36ae xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x89bda0af __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8a4d6c67 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x8a6243e6 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x8b4cd521 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x8b691ee9 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x8b9c2497 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x8b9f4f8f class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x8c3e0e8e pci_assign_resource_fixed +EXPORT_SYMBOL_GPL vmlinux 0x8cde7956 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8da4f3b3 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x8dc7c8e4 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x8dd5c6b2 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x8dfba176 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8ec55b20 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f716d91 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x90844a31 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x909c8d4a put_pid +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x910e5a09 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91b97baa inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x91c25c4c class_device_create +EXPORT_SYMBOL_GPL vmlinux 0x91ef5651 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x92cc85fa fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92ec5dc1 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x933c75c0 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x93817c41 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0x93891dba ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x939f4b14 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x93c7882a spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x940aaf3c vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x941dfa14 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x9443d9da relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x94c48acd tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0x9505f091 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x969994e5 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x96a6912d tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x9757a78b led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x975e8123 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x976a61da find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x97d9c66a nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x982121d8 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98a5ada3 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x98cdddd9 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x98f16850 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x99a82281 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x99ada8df class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x99d5ccb9 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x99f2b2bd inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9a107f39 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9b7f1da6 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9c11addf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9ce1bbaa rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x9d1ca2d7 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d5c99b8 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x9d6dda82 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x9d81f61a alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x9e5fc82b skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x9f593279 swiotlb_sync_single_range_for_device +EXPORT_SYMBOL_GPL vmlinux 0x9f867075 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd00bd6 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xa099ed50 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xa1747059 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0xa1798c32 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xa2b1ed0b cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa2fab521 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa3878a56 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xa3a1590d devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa3d57edb page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xa4434417 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa4444ce7 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa518e360 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa522b180 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5d999c8 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xa6687045 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa67396af rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xa83c92e9 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa860716d device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa883fcc2 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa8c2ca9d platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xa8e20cf2 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xa934a700 k_handler +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9af9bd0 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa0d02b2 user_update +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaad04a29 class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xab2b2896 device_move +EXPORT_SYMBOL_GPL vmlinux 0xab3de724 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xab90b8d1 pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0xac06f9cd unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xac441638 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xaca5dce9 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xace4cb79 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xad9feec7 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xadb5163b sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xadb9ce20 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xae12879b led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xaf5d533f klist_del +EXPORT_SYMBOL_GPL vmlinux 0xaf8edea4 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb0bb9ed8 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb27f2f05 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xb3110b63 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xb41f622e exit_fs +EXPORT_SYMBOL_GPL vmlinux 0xb4824ef7 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb4c0ebd6 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xb4df7ac8 __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait +EXPORT_SYMBOL_GPL vmlinux 0xb541a898 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xb5b8a3ef blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xb5f54afa __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb61a16ba nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xb65ee1c6 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xb707392c rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb70f710e vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xb75f2467 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xb8e46ece vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xb8eaac63 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb9000a4a led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9703481 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xb9f144e3 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xba31afaa queue_work +EXPORT_SYMBOL_GPL vmlinux 0xba49be7d sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xbacefec2 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xbb6b4885 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xbb9f2139 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbd711f94 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xbdd12104 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xbe94a39a class_device_add +EXPORT_SYMBOL_GPL vmlinux 0xbf1aa731 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xbf2661bd queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xbf7cb21b vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc04637fb crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc06b25c1 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc13c4ddf transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xc162caa6 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xc16cb771 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xc1f77d42 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc33398f4 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xc34e213b spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc4011e49 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xc4661898 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc6144286 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xc6ac8880 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc6b65a40 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xc7193b8d default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xc7d442bc inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xc7df7d6e input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xc8376b11 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8e57309 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xc90ca541 inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xc94f95c0 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d6298 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc99833fc fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xc9f8b815 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xc9fe7914 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xcaa8ced0 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcaed107f crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xcb49218e simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcb8933a2 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xcbc358df register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xcc09077e audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0xcc14ffc7 sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc7f7117 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xccdd315c device_register +EXPORT_SYMBOL_GPL vmlinux 0xcd51d35b tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xce77c45d led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xce821b42 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xcea1c89e sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xceaada61 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xcf28bcfe simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0d03701 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xd136c1f7 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd26d0264 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xd2706b54 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xd4784f30 macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0xd4e381ce driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd5286364 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd54d959b tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xd61a4224 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xd645aea8 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd698d818 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xd6c8345a unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd6fb6ecc sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd89852fd crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xd8cb3b12 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xd979b0ff power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xd99df83e bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd9f9e160 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xdb4a145e driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbb5b265 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdbf0253a rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xdc0d9761 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xdc52e938 input_class +EXPORT_SYMBOL_GPL vmlinux 0xdc76b449 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xdda3e607 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xdf01a861 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xdf5a9c15 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xdff4e1b8 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09593db inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe0f1a768 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe24c9872 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe3ec34c2 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe4419d88 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xe48a35b3 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xe4bedb42 swiotlb_sync_single_range_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe5136e49 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xe5ab160d do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xe616cd71 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe666c49b leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xe6fbb98c rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xe71020ef user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe76fc69d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe7cdf113 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xe7d02831 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe95c8931 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xe98b039c namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xe99ebf61 class_device_put +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea570c1f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xea7d0ec5 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xea97d76e device_attach +EXPORT_SYMBOL_GPL vmlinux 0xec3d5a0f rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xecef9fbb acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xed2190ce __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xef5d18ff fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf02de5ba srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf0a98e56 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf2707b16 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xf29a744c transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf3fce8c9 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf408689f kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xf420925e agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xf4c3a2df vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf4c991dd crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5766c3f cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xf5be4a06 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xf5d45c2a sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xf5fc7eb3 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xf66836b7 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xf788c953 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf8195d3c __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf964e5e1 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xf98527e6 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a59e46 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xfa12b5a9 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa1fdd0d get_driver +EXPORT_SYMBOL_GPL vmlinux 0xfa4e4b71 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfb9764b8 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc0f9cfb __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0xfc75c026 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xfd5cbe74 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfdb6d4b9 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfedbd956 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xff83b2bf atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x14c8100c usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x450a8d6c usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xdfe51681 usb_deregister +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/amd64/generic.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/amd64/generic.modules @@ -0,0 +1,1740 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +6pack +8021q +8139cp +8139too +8390 +9p +9pnet +9pnet_fd +9pnet_virtio +a100u2w +a3d +aacraid +abituguru +abituguru3 +ablkcipher +abyss +ac +ac97_bus +acecad +acenic +acpi-cpufreq +acpiphp +acpiphp_ibm +acquirewdt +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +advansys +advantechwdt +aead +aec62xx +aes_generic +aes-x86_64 +affs +af_key +af_packet +af-rxrpc +ah4 +ah6 +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airprime +alauda +ali-ircc +alim1535_wdt +alim15x3 +alim7101_wdt +ambassador +amd5536udc +amd76xrom +amd8111e +amd-rng +analog +anubis +aoe +appledisplay +applesmc +appletalk +appletouch +applicom +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asb100 +asix +asus_acpi +asus-laptop +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +aten +atiixp +ati_remote +ati_remote2 +atl1 +atlas_btns +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +auerswald +authenc +auth_rpcgss +autofs +autofs4 +avma1_cs +avm_cs +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +battery +bay +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_misc +bitblit +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpqether +br2684 +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +button +bw-qcam +c4 +cafe_ccic +cafe_nand +camellia +capi +capidrv +capifs +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +ck804xrom +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cmd64x +cmtp +cn +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +container +coretemp +corgi_bl +cp2101 +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpu5wdt +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +cpuid +c-qcam +cr_bllcd +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +ct82c710 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dca +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +dell_rbu +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +dilnetpc +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +dock +docprobe +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +e752x_edac +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro100 +eeprom +eeprom_93cx6 +efs +ehci-hcd +elo +elsa_cs +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +esb2rom +esi-sir +esp4 +esp6 +et61x251 +eth1394 +eurotechwdt +evbug +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fakephp +fan +farsync +fat +faulty +fbcon +fb_ddc +fb_sys_fops +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firestream +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +font +forcedeth +fore_200e +freevxfs +freq_table +friq +frpw +fscher +fschmd +fscpos +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +fuse +g450_pll +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic_serial +gen_probe +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +grip +grip_mp +g_serial +gtco +guillemot +gunze +gx1fb +gxfb +g_zero +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hecubafb +hermes +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfc_usb +hfs +hfsplus +hgafb +hid +hidp +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpt34x +hpt366 +hptiop +hwmon-vid +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-core +i2c-dev +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5000_edac +i5k_amb +i6300esb +i810 +i82092 +i82975x_edac +i830 +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_mad +ibmasm +ibmasr +ibmcam +ibmpex +ib_mthca +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +inet_lro +inftl +initio +input-polldev +intel-agp +intelfb +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isl6421 +isofs +isp116x-hcd +it87 +it8712f_wdt +iTCO_vendor_support +iTCO_wdt +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +joydev +joydump +jsm +k8temp +kafs +kaweth +kbic +kbtab +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kvm +kvm-amd +kvm-intel +kyrofb +l2cap +l440gx +l64781 +lanai +lapb +lapbether +lcd +ldusb +lec +led-class +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lockd +lock_dlm +lock_nolock +loop +lp +lpfc +lrw +ltv350qv +lxfb +lxt +lzo_compress +lzo_decompress +m25p80 +ma600-sir +mac80211 +machzwd +macmodes +macvlan +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +meye +mga +michael_mic +microcode +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mmc_spi +mos7720 +mos7840 +moxa +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msp3400 +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mwave +mxser_new +myri10ge +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netrom +netsc520 +nettel +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc_gpio +nsc-ircc +ntfs +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +opti621 +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p54common +p54pci +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_amd +pata_artop +pata_atiixp +pata_cmd64x +pata_cs5520 +pata_efar +pata_hpt366 +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300 +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9539 +pcbc +pcd +pcf8574 +pcf8591 +pci +pci200syn +pciehp +pci_hotplug +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +pnc2000 +powermate +powernow-k8 +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +processor +progear_bl +psmouse +pt +pvrusb2 +pwc +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r8a66597-hcd +radeon +radeonfb +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_gxx +sbni +sbp2 +sbs +sbshc +sc1200 +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +scb2_flash +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdhci +sdio_uart +sd_mod +se401 +sedlbauer_cs +seed +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +shpchp +sidewinder +sierra +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +skfp +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +smbfs +smc91c92_cs +smsc +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +softcursor +softdog +sony-laptop +soundcore +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +ssfdc +sstfb +st +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +sx +sx8 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +tc86c001 +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram-sir +teles_cs +tg3 +tgr192 +thermal +thinkpad_acpi +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tileblit +tipc +ti_usb_3410_5052 +tlclk +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmscsim +tmspci +toshiba_acpi +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +trancevibrator +tridentfb +trm290 +ts5500_flash +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +twofish-x86_64 +typhoon +u132-hcd +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +umem +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usbcore +usb_debug +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +via +via686a +via-agp +via_chrome9 +via-ircc +via-rhine +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_net +virtio_pci +virtio_ring +visor +vitesse +vivi +vlsi_ir +vmlfb +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w9966 +w9968cf +wacom +wafer5823wdt +wanrouter +wanxl +warrior +wavelan_cs +wbsd +wdt_pci +whiteheat +winbond-840 +wire +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +yenta_socket +zatm +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/amd64/server.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/amd64/server.modules @@ -0,0 +1,1740 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +6pack +8021q +8139cp +8139too +8390 +9p +9pnet +9pnet_fd +9pnet_virtio +a100u2w +a3d +aacraid +abituguru +abituguru3 +ablkcipher +abyss +ac +ac97_bus +acecad +acenic +acpi-cpufreq +acpiphp +acpiphp_ibm +acquirewdt +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +advansys +advantechwdt +aead +aec62xx +aes_generic +aes-x86_64 +affs +af_key +af_packet +af-rxrpc +ah4 +ah6 +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airprime +alauda +ali-ircc +alim1535_wdt +alim15x3 +alim7101_wdt +ambassador +amd5536udc +amd76xrom +amd8111e +amd-rng +analog +anubis +aoe +appledisplay +applesmc +appletalk +appletouch +applicom +arc4 +arcfb +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asb100 +asix +asus_acpi +asus-laptop +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +aten +atiixp +ati_remote +ati_remote2 +atl1 +atlas_btns +atmel +atmel_cs +atmel_pci +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +auerswald +authenc +auth_rpcgss +autofs +autofs4 +avma1_cs +avm_cs +ax25 +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +battery +bay +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_misc +bitblit +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpqether +br2684 +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +button +bw-qcam +c4 +cafe_ccic +cafe_nand +camellia +capi +capidrv +capifs +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +ck804xrom +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm4000_cs +cm4040_cs +cmd64x +cmtp +cn +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +container +coretemp +corgi_bl +cp2101 +cpcihp_generic +cpcihp_zt5550 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpu5wdt +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +cpuid +c-qcam +cr_bllcd +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +crvml +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +ct82c710 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dca +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +dcdbas +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +dell_rbu +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +dilnetpc +diskonchip +display +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +dock +docprobe +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +e752x_edac +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro100 +eeprom +eeprom_93cx6 +efs +ehci-hcd +elo +elsa_cs +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +esb2rom +esi-sir +esp4 +esp6 +et61x251 +eth1394 +eurotechwdt +evbug +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +fakephp +fan +farsync +fat +faulty +fbcon +fb_ddc +fb_sys_fops +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +firestream +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +font +forcedeth +fore_200e +freevxfs +freq_table +friq +frpw +fscher +fschmd +fscpos +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu_ts +funsoft +fuse +g450_pll +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic_serial +gen_probe +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +grip +grip_mp +g_serial +gtco +guillemot +gunze +gx1fb +gxfb +g_zero +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hecubafb +hermes +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfc_usb +hfs +hfsplus +hgafb +hid +hidp +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpt34x +hpt366 +hptiop +hwmon-vid +i2c-algo-bit +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-core +i2c-dev +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5000_edac +i5k_amb +i6300esb +i810 +i82092 +i82975x_edac +i830 +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_mad +ibmasm +ibmasr +ibmcam +ibmpex +ib_mthca +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +ichxrom +icplus +ide-cd +ide-core +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +inet_lro +inftl +initio +input-polldev +intel-agp +intelfb +intel-rng +intel_vr_nor +interact +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isl6421 +isofs +isp116x-hcd +it87 +it8712f_wdt +iTCO_vendor_support +iTCO_wdt +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +joydev +joydump +jsm +k8temp +kafs +kaweth +kbic +kbtab +kernelcapi +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kvm +kvm-amd +kvm-intel +kyrofb +l2cap +l440gx +l64781 +lanai +lapb +lapbether +lcd +ldusb +lec +led-class +ledtrig-heartbeat +ledtrig-timer +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lockd +lock_dlm +lock_nolock +loop +lp +lpfc +lrw +ltv350qv +lxfb +lxt +lzo_compress +lzo_decompress +m25p80 +ma600-sir +mac80211 +machzwd +macmodes +macvlan +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +meye +mga +michael_mic +microcode +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mmc_spi +mos7720 +mos7840 +moxa +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msi-laptop +msp3400 +msr +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mwave +mxser_new +myri10ge +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netrom +netsc520 +nettel +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +niu +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc_gpio +nsc-ircc +ntfs +nvidiafb +nvram +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ohci1394 +ohci-hcd +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +opti621 +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p54common +p54pci +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_amd +pata_artop +pata_atiixp +pata_cmd64x +pata_cs5520 +pata_efar +pata_hpt366 +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300 +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pca9539 +pcbc +pcd +pcf8574 +pcf8591 +pci +pci200syn +pciehp +pci_hotplug +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +pnc2000 +powermate +powernow-k8 +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +processor +progear_bl +psmouse +pt +pvrusb2 +pwc +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r8a66597-hcd +radeon +radeonfb +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_gxx +sbni +sbp2 +sbs +sbshc +sc1200 +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +scb2_flash +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdhci +sdio_uart +sd_mod +se401 +sedlbauer_cs +seed +ser_gigaset +serial_cs +serio_raw +sermouse +serpent +serport +sg +sha1_generic +sha256_generic +sha512 +shaper +shpchp +sidewinder +sierra +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +skfp +skge +sky2 +sl811_cs +sl811-hcd +slhc +slip +slram +sm501 +sm501fb +smbfs +smc91c92_cs +smsc +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +softcursor +softdog +sony-laptop +soundcore +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +ssfdc +sstfb +st +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +sx +sx8 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +tc86c001 +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tdfxfb +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram-sir +teles_cs +tg3 +tgr192 +thermal +thinkpad_acpi +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tileblit +tipc +ti_usb_3410_5052 +tlclk +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmscsim +tmspci +toshiba_acpi +touchright +touchwin +tpm +tpm_atmel +tpm_bios +tpm_infineon +tpm_nsc +tpm_tis +trancevibrator +tridentfb +trm290 +ts5500_flash +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +twofish-x86_64 +typhoon +u132-hcd +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +umem +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usbcore +usb_debug +usb_gigaset +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +vesafb +veth +vfat +vga16fb +vgastate +via +via686a +via-agp +via_chrome9 +via-ircc +via-rhine +via-velocity +vicam +video +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +virtio +virtio_balloon +virtio_blk +virtio_net +virtio_pci +virtio_ring +visor +vitesse +vivi +vlsi_ir +vmlfb +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83781d +w83791d +w83792d +w83793 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w9966 +w9968cf +wacom +wafer5823wdt +wanrouter +wanxl +warrior +wavelan_cs +wbsd +wdt_pci +whiteheat +winbond-840 +wire +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +yenta_socket +zatm +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/powerpc/powerpc64-smp.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/powerpc/powerpc64-smp.modules @@ -0,0 +1,1703 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +6pack +8021q +8139cp +8139too +8250 +8250_pci +8390 +9p +9pnet +9pnet_fd +a100u2w +a3d +aacraid +ablkcipher +abyss +ac97_bus +ac97_codec +acecad +acenic +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +aead +aec62xx +aes_generic +affs +af_key +af_packet +af-rxrpc +agpgart +ah4 +ah6 +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +airprime +alauda +ali-ircc +alim15x3 +amd8111e +analog +anubis +aoe +appledisplay +appletalk +appletouch +applicom +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +aten +ati_remote +ati_remote2 +atl1 +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +auerswald +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +axonram +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bfs +bfusb +binfmt_misc +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bnep +bnx2 +bonding +bpa10x +bpck +bpqether +br2684 +bridge +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +cafe_ccic +cafe_nand +camellia +capmode +cassini +cast5 +cast6 +catc +cbc +cbe_thermal +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cmd64x +cn +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +corgi_bl +cp2101 +cpia +cpia2 +cpia_pp +cpia_usb +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +c-qcam +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dst +dst_ca +dstr +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro100 +eeprom +eeprom_93cx6 +efs +ehci-hcd +ehea +electra_cf +electra_ide +elo +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +esi-sir +esp4 +esp6 +et61x251 +eth1394 +evbug +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +farsync +fat +faulty +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +fuse +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic +generic_serial +gen_probe +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +girbil-sir +gl518sm +gl520sm +gl620a +gpio_mdio +grip +grip_mp +g_serial +gtco +guillemot +gunze +gxt4500 +g_zero +hamachi +hangcheck-timer +hci_uart +hci_usb +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hermes +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hidp +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpt34x +hpt366 +hptiop +hvcs +hvcserver +hwmon-vid +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-dev +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pasemi +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ehca +ib_ipath +ib_ipoib +ib_iser +ib_mad +ibmcam +ibm_newemac +ibmpex +ib_mthca +ibmveth +ibmvscsic +ibmvstgt +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icom +icplus +ide-cd +ide-cs +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +inet_lro +inftl +initio +input-polldev +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isl6421 +isofs +isp116x-hcd +it8213 +it821x +it87 +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +jmicron +joydev +joydump +jsm +kafs +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kyrofb +l2cap +l64781 +lanai +lapb +lapbether +lcd +ldusb +lec +led-class +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lnbp21 +lockd +lock_dlm +lock_nolock +loop +lp +lpfc +lrw +ltv350qv +lxt +lzo_compress +lzo_decompress +m25p80 +ma600-sir +mac80211 +macvlan +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_maven +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mga +michael_mic +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mmc_spi +mos7720 +mos7840 +moxa +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +msdos +msnd +msnd_classic +msnd_pinnacle +msp3400 +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mxser_new +myri10ge +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +net2280 +netconsole +netrom +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc-ircc +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +of_serial +ohci1394 +ohci-hcd +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +oprofile +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p54common +p54pci +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pasemi_edac +pasemi_mac +pasemi-rng +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_platform +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300 +pc87360 +pc87427 +pca9539 +pcbc +pcd +pcf8574 +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_new +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +physmap_of +piix +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmc551 +pmi +powermate +power_supply +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +ps3disk +ps3flash +ps3_gelic +ps3rom +ps3stor_lib +psmouse +pt +pvrusb2 +pwc +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r8a66597-hcd +rack-meter +radeon +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtas_flash +rtc-cmos +rtc_cmos_setup +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7134-oss +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbp2 +sc1200 +sc92031 +scanlog +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdhci +sdio_uart +sd_mod +se401 +seed +serial_core +serial_cs +serio_raw +sermouse +serpent +serport +serverworks +sg +sha1_generic +sha256_generic +sha512 +shaper +sidewinder +sierra +siimage +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +skfp +skge +sky2 +sl811_cs +sl811-hcd +sl82c105 +slc90e66 +slhc +slip +slram +sm501 +sm501fb +smbfs +smc91c92_cs +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ainstr-fm +snd-ainstr-simple +snd-ak4114 +snd-ak4117 +snd-ak4531-codec +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs8427 +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigoio +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-maestro3 +snd-mia +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcm-oss +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd_ps3 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-instr +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-oss +snd-seq-virmidi +snd-serial-u16550 +snd-soc-core +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-trident-synth +snd-usb-audio +snd-usb-caiaq +snd-usb-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +softdog +soundcore +sound_firmware +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidernet +spidev +spi_lm70llp +spufs +sr_mod +ssb +ssfdc +st +starfire +stex +stinger +stir4200 +stowaway +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +sx +sx8 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +sysv +tc86c001 +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram-sir +tg3 +tgr192 +therm_pm72 +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tipc +ti_usb_3410_5052 +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmspci +touchright +touchwin +tpm +tpm_atmel +trancevibrator +trident +tridentfb +triflex +trm290 +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +typhoon +u132-hcd +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +umem +uninorth-agp +upd64031a +upd64083 +usb8xxx +usbatm +usbcore +usb_debug +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +veth +vfat +vgastate +via +via686a +via-ircc +via-rhine +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +visor +vitesse +vivi +vlsi_ir +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83977af_ir +w83l785ts +w9966 +w9968cf +wacom +wanrouter +wanxl +warrior +wavelan_cs +wbsd +wdrtas +wdt_pci +whiteheat +winbond-840 +windfarm_core +windfarm_cpufreq_clamp +windfarm_lm75_sensor +windfarm_max6690_sensor +windfarm_pid +windfarm_pm112 +windfarm_pm81 +windfarm_pm91 +windfarm_smu_controls +windfarm_smu_sat +windfarm_smu_sensors +wire +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +yenta_socket +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/powerpc/powerpc-smp +++ linux-2.6.24/debian/abi/2.6.24-24.56/powerpc/powerpc-smp @@ -0,0 +1,7037 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x522820f8 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x82e389df uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0x521fc5ae loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x23c59133 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x2f1ad99f pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x36a32542 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x61db42ae pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x64ffe5fa pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x732ce0de pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x7d6ba2c6 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x966eece4 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xbfe0802f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xc16a9887 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xe82b3659 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe89b9a8b pi_schedule_claimed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x35a02ab4 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x5def8d03 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x72785acc cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0x7da9cbf9 cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0xbfb31509 unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xd3c7f333 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0xd8573986 cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0xdd632483 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0xdd916444 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe09becca cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0xe1efdad2 cdrom_open +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0c0953af agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0f56883f get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x103a6b91 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1d140fb0 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1f718e39 agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x30b7a737 agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x319647f2 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3dd77baf agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x40c76222 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4302253d agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x438e9cb8 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x48c13737 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4f94addc agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x53f979b7 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x66f286b4 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6c5a2e6b agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x753493ea agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x791ccd7d agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x835c9025 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x89536134 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9148fcea agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9a31fa7a agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa2aba12b agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xac8068a2 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb423ae77 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xce1d2ed3 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd06b8e86 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd609c272 agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd91a064d agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status +EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event +EXPORT_SYMBOL drivers/char/drm/drm 0x01be2bd8 drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0x059d3418 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0x07ef40dd drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x19bda990 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0x1d49a828 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x2131d483 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x3236b478 drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0x3bd4806f drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x42323e50 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0x4782e9fc drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x4c0cb99b drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0x4fb8a887 drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0x54d6f3d6 drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x5c9edb7f drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0x5e97d823 drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0x5ea95810 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x6203c4b6 drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x62284820 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0x76ccad6e drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x7831f1a3 drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x8969544e drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x8f5a195e drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0x9297ed64 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x94100305 drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x9b49b3cf drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0x9e34f01f drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0xa2682835 drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xbc75f7b3 drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xc4308f8e drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0xca0247b0 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0xca866fe7 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0xd1139334 drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0xd14aa5b0 drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xe3ff0277 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xf07ce34c drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0xf3b9893c drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0xf5140b9b drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0xf8252fef drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0xf8930702 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/generic_serial 0x106ad7d6 gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0x2affd62c gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0x312b0455 gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x340749ba gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0x4908618b gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0x4dd2b3cb gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0x7590f7fa gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0x8419411a gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0x9ce11c85 gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0xab3c197b gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0xb406bfa4 gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xb83ebdbd gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0xe9315bb8 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0xf01df018 gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0xf2343a31 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0xf7743261 gs_getserial +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0463bcd5 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2a595f8f ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3b71a3b9 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4e036cb4 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4e44ee6f ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4f49366d ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x656cfc12 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x679df771 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6ab66ce6 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7f0b1550 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x908e379f ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x924695af ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9ad0c394 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb63c817e ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc99e0ee6 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcf6c3710 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd40f67b5 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd75ced49 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe1238274 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe22083b5 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe51330d1 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe7ec9921 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf1a22f54 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf6ba8e02 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0xc23096f8 cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0xad80fbb4 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0x014d54c9 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0xb65b2bf9 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xc40dd7c6 edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xcb7a72a6 edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x75f0d13e i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xd880d426 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x0439c38c amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x05475a33 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x08209814 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0f5bb108 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x11dd92a0 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16233297 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19e33666 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1d9185ce hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f3dafd1 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2752b9a8 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29636e81 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2df1ff7e hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37a736c9 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3f3f5b9f hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x45c68bd9 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a153202 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x52cf18b5 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x54d45490 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x565fdb9f hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5c0e3c7b hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6408f256 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6834a68d hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6c4d70c9 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x708e26d5 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x719f2798 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x75a44328 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x75aa653a dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78d21ce8 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7c0c22a1 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7efe7065 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x80aa0553 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x83f64cde hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x84e294ff hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x88c88387 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b9cab1d hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x932d0598 hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x93d491e3 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x96191bcd hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9cfd93f7 hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa357b893 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa504e345 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xab4b49d5 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb21908d2 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb51f77dd hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb60413e7 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbb92dfec hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbff13c68 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0084e83 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc0d64e94 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc18f48b1 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc7e620aa hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd8a95e1 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xce0ae9ca hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd9232577 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdcac7ff0 hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe1b3b744 hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe9144942 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed97885b hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeef9fc1a hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf1f88334 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3c800e0 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf77e2a41 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf8f2d69a hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf93d99e8 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfcafac99 hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x43a3b02d ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x4fd4721f ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x733890c3 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1fe831eb rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x3e60af55 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x788e00e9 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xdb24b1d7 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1b1bb3d4 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x261f0af2 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x518979e0 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5b96b053 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x70943083 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7e7eed80 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x83798aae ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9d8377bd ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc18e564a ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc5196300 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc5494584 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdd93d0e9 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xef7c2a86 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf2b40823 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf35a4c08 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf57efe7e ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x036e066a ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04f56919 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09eb287f ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09fe3266 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bc47bf5 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10b5cf2a ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17968dd8 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19b32905 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ec02b87 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x232271fa ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25d0f9bc ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27776e2e ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bc7d01b ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2eeaf24c ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37530d79 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37b9ee1c ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39883574 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ded0ff9 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e88fdc7 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40950865 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x492f0515 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4fcb83b1 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cc0ef05 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cda0fa3 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x609e264c ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ab984cf ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e35503b ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e78dba9 ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x716318ff ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x723a473e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72e06797 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e05c315 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86861c34 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88a3cf59 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c403a4d ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f0ce6ed ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96f50ece ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9afb642c ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c88a289 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e0395e2 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ef9236e ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3403482 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa38b97b0 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3b3d207 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb98daa22 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba67eb28 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb1ca273 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe340cfa ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe625d30 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd24492d ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0ef3e56 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd17ba9d1 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd42ff642 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5dfa7d9 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde13687a ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdef54a6d ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe126efd2 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec65c74e ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeef3daac ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8085a69 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8a34192 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe7c81b0 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffec70bd ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x119ecdd1 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1a2aa095 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4a3af8db ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5bd7494a ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ec01a01 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9e21e5f8 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xabdfd274 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xad890d03 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xba9152d9 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc0e884ec ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe310a08c ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf5f10fd9 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x01d3c8be ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1602b956 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x20fbefa0 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7113475f ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa919f78a ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddb79ca3 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe914f144 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xec8526b0 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xede4d22d ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1cc55199 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x43aeaca9 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5cf5d3d2 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6d7cf07d iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8d759a34 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb2c350ba iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe39529cd iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfe4b45b5 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2bfbf5d8 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2f924d82 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x33ca6d12 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x41077062 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6f7f4d40 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x71ffc945 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x75221de6 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x77a9da15 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x813d27ba rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9031963a rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0bd40c6 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xad6c781b rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae5f1376 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb9364aa6 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcf60b66a rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd339d10b rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xea938e82 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf63da570 rdma_join_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x23640cdc gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4688eb76 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5e25db07 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x786e47c7 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xab841dc1 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbdd8ee43 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbfaca765 gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0xce5c49ba __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd2eeaa09 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeae4aa82 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x0e2b741b input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x348d3539 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xa8830390 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xce9ad16a input_unregister_polled_device +EXPORT_SYMBOL drivers/md/dm-mirror 0x4985839a dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x4a633651 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x86e27c0c dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xf65bba9e dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x02cb6729 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0x19b069d8 dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x4a80b830 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0x4fb1aad0 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0x5291c262 dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0x5841dd60 dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x59ea9a69 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0x5fbc3fe6 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0x65a772e3 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0x6808d7de dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x6bdeddac dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0x7283df0e dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0xacea4f2b kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xbce34c23 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0xc21885af dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xd031f51b dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0xd09e157a dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xe6b7d9a2 kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xf05565f4 dm_io_client_create +EXPORT_SYMBOL drivers/md/md-mod 0x03c4909d bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0x071dbeb7 md_error +EXPORT_SYMBOL drivers/md/md-mod 0x0e31b3b0 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0x15f6adfa bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x375ae9b2 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x47f9695f bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x5086b49a md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x6c61dae8 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x707c2d3f md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x8add9684 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xab812979 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0xaffbac33 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xbd784765 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xe0491324 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xe651f9ec md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xfaecb237 unregister_md_personality +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x01567371 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x05351ebe flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0b33c36f flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1a4f3654 flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1dfe6cdb flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x211eeabf flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2cb235a1 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2fa70e15 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x57ead9c6 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5a438a67 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x642ef435 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7710995e flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x77e2dedb flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x85cebafd flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb875d333 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbf64d9ed flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc8531b57 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xce3f51c0 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe1cc17dc flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeedd37ce flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x0aff7d48 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x1832f9fa bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x64e1adfa bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xdb2a0c08 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x17fb5fb0 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x261598e2 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x281c46f1 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x62613c43 dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x8b293747 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x8f14ff93 rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x8f3de72e dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xaca4723e dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb7201638 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc6acdbd9 dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc9f5d575 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xcdc768af dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd71448d0 dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdc6d30cc dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xada409ff dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0caacf2f dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0f9bfc0a dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x18c74e9a dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x26eb4103 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2bb2efb5 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c6b2e01 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2fe06246 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3089aaa2 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x33954be7 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x379180f7 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3c5c0831 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5747d7cf dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5a6268d4 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x606fbb5f dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x67a981a4 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6e4d0450 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6ef69874 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7d780d49 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x827c8d2f dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b677929 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x94bd11d6 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x98693e7a dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99ec5759 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9ecf7a2b dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa24a7b57 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa41676bd dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xab52a5e9 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb607975f dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb8506c44 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc3347c6 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc349ffd3 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc54ca375 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xce2bc933 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd4e4ecde dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdee065d6 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf39aef2a dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf730984b dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2e7a30f1 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3daffa7c dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4fa21708 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x51f691da dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x855994da dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xb58ee59b dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xff4bc233 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x5ed422d6 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5d1465e5 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6acc9657 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x88e5a97c dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x95f1ecb3 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9c41e800 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb5811ab0 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd8032ad0 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd9ccf2e3 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdf960679 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe0d85edd dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe845c854 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x147a42d4 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xab03aa4e cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xf986162e cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xefbab0fc cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x7310a38c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x67a3159d dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xa126b984 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x33addba3 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x46692cc2 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4e03482c dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa69c554e dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xb3e41f23 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd16e4b37 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf297bf4f dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x24308355 dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x67f13ccf dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xf54d8e45 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x35e26baa dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x43d10e44 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4d290823 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x544ddb65 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x94b11b7c dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa5f9e4d6 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3042131f dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3b4c8201 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x9bfe51a2 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x8d55d159 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xc113becd isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xd3687c5c l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x3eea3775 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x5ddf84a0 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x2b78d005 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x2db3c7b7 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0x11f8eb44 mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xc5fc035d vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x7451980e mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x08091bee nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xc254dc3d nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xa16b5fdb or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xa360ba61 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0xf67412a4 qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x90e829d4 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x36ae4288 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xc61f0ff9 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x4f1f7fb3 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x3f6c4c27 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xd99531c8 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x38f821d6 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x21fdc22e tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x8f4e0236 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xf4cb03cf tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xc47ebd23 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x7eb593b3 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x1cc39ce5 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0x4ce11a34 tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xdc8efefc tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xbca4be8c ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x1415797c ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x673c2b9f zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x0a2e0a97 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xc56bdaf1 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xeeacdb3b ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x314f8b8c bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xeb85921c bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xf521fd3f bttv_sub_register +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368c03a btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xe3c4b76f btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/cpia 0xc1cd4d1b cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xc48d5226 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3559ba71 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0x437dfbf4 cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x6c135f15 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xfe6bfce3 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1e33d2e8 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x32f33cd8 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x38be5d40 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xc5ab3024 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xce6d7d11 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x03835f32 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4c4f136e cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x7fbcfeb2 cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x84bcdcab cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8c0fe21c cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb0ecde33 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xbaef7152 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xcc427d6b cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf2b04c77 cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x24a80b21 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x31b059cc cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x333829b3 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x38e67693 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3916d20e cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x57ee1496 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x58eb6879 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5c5a45cd cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x60f30743 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x66b7f8f5 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7d56d3b7 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa1053472 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb783c73c cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbb0e7c65 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc40b40e9 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc9b64295 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd72cfc0f cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd8126b31 cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd8865a35 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdc8e19fb cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf3df7ecd cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xffa57634 cx88_core_put +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0070cfb0 ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x13e75f20 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3229ae23 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4de09786 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6bc7bf7e ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70e35de3 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7e6cc94c ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x808151ce ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x85cbe3be ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb9ee2d98 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc6879bdf ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xde3ba3e8 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xece086b3 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x05140bc6 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x164b06c3 saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1aced441 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x301abd2b saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4a291363 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x53ded9f5 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x63b5a1df saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x76b13da5 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x912f70d5 saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x97521d36 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbbec9e06 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcc33ccc4 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf84664a0 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/tveeprom 0x704c5b48 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xd76315c1 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5293ede2 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x54ded406 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5e7f683f usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x6985098d usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x786dc5e7 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x89b82215 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9778abda RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9c14c246 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xdf605c59 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf9869e1f usbvideo_register +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xbd95446a v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x01494d88 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc369097d v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1f45082 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xed275428 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf5db5753 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x9b28f786 videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa793a50e videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x3c4bab93 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videocodec 0x939571ba videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0xdba8abdc videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0xe4f0833a videocodec_attach +EXPORT_SYMBOL drivers/media/video/videodev 0x2fdb5e17 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0x40bee094 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x4e0cbd8b video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0x4fb17e8d video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x50f11d49 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x73fca837 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x758f4e23 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0xbf1f58d8 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xe3cbf64c video_usercopy +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x097a3496 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1a17a3f0 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x250e6056 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2605e703 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3586c446 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x47568c51 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x57cfa405 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5d3e08bf mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5d7f1e43 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x79806f38 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7dd44315 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fc5ebed mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x881005cc mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c6d5182 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8f1b8c8e mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8feceaf2 mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x978bbb2a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9e9be0e8 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa0ee86ed mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa71eec63 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaeecfabd mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbfa86356 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd0024b9f mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe28951ac mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x041a512f mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x06566826 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x07129432 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x12170761 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21854b31 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x24d701cc mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2c7e7d3f mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e985581 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x569cf82f mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6ccf1b4b mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f6a69c8 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9026e26a mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9debc5cf mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa69ef929 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa856995b mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xae3261a4 mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb3f7c148 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcb9a205c mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcebfd88d mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe978db70 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xed22e325 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeef51876 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf27b1dc7 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfa65c942 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x056af0a3 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x09371868 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x162400df i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3ffd574d i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x486cea4d i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4b775ead i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x639bd140 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x744fd0da i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7ba267ec i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x80aba77b i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x92680ccf i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x98a9a700 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa1a79f1a i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa245db6e i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa5d9acbb i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb6959d83 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc5da1ef2 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf6514c3d i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/misc/ioc4 0x04cf5258 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x923f19b5 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x2c3dfc7d tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x2e25e8fa tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x311b10b3 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x418618f7 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x6c06f74e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x95f96054 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x9a71fb41 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xcbdfd0e8 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xcbf612c7 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdb127775 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xf66de98d tifm_add_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xe9cbccd3 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x008445d1 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x173173fd mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x33903690 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x424d07d4 mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x45b1335d mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5725de60 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x57cd3ea6 mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x58698a38 mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7346afa2 mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb00dd887 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb43b4914 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbf52a224 __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc1495a4d mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc98948b5 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd7a95691 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe51da8bd mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1edb152f cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x27fe2a81 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x46173063 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6c38a56e register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x824fb228 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x98d61511 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x99564c88 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x8444b7c8 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x03f95f6d simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x34124398 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xdfddd2f2 del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x1230cafb mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x6b1a9711 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x83a73642 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb22b81eb nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x54609bf9 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xfd101c91 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x4073f4c6 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x82f40288 ei_open +EXPORT_SYMBOL drivers/net/8390 0x8f432508 ei_poll +EXPORT_SYMBOL drivers/net/8390 0xf0952926 ei_close +EXPORT_SYMBOL drivers/net/8390 0xf88e79c2 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x094c9d59 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x16c57b4e arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x497b32a7 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5b4104f6 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8be8ecc9 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe9700190 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6fb87f16 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x887e6042 com20020_found +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x10c70495 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x39ab8253 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3a40c735 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3efffff0 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x562ca0fa cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8508e799 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8de994de t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa22ce24e cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaa818c7c cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb1d4d107 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb34d3e17 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb44a1659 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc8b2a99a cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdced3a0d cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe23aa5e5 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xebb26c03 cxgb3_register_client +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x43f615e3 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x70759fe2 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbd79f6b9 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc7fcccb3 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf1ed2aa9 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1879c20c sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2742b327 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2f73c45f irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x705cae57 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7ca765b8 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9a638544 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9db292b5 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd7a62d42 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe1012a74 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfd1df687 sirdev_put_instance +EXPORT_SYMBOL drivers/net/mii 0x11fea932 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x181c91ba mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x57a96bec generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x71474e8b mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xa8c1b8e2 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xac32d48e mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xcd7fa162 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xd7f1d095 mii_nway_restart +EXPORT_SYMBOL drivers/net/phy/fixed 0x268012cb fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/fixed 0x48727cb7 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/libphy 0x18bd0233 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x1e842c84 phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0x1f1bd061 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x291d2abc phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x2d13b707 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x2d26d831 phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x2d9c5b43 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x2e82e5f6 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x3ac84df4 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x4bddf83f genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x5bcbdb00 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x68ca25f0 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x6c41f0f9 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x6ca44631 phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x70f3bb2e mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x78d81576 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0x7d8a08ff phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x80a068b5 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0x8e838e18 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x997ab296 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x9ec2f029 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0xa068595a phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0xae9be413 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xb379790c phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xf07946f1 phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xf722a9e4 genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0xf96ce6e5 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0xfc798c4d phy_attach +EXPORT_SYMBOL drivers/net/ppp_generic 0x655d375e ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xb7c1da17 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0xba816dbf ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0xbc722e42 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xc6ef969d ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xd4283010 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0xe673b6d8 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0xfa86c60c ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xffa003d3 ppp_unit_number +EXPORT_SYMBOL drivers/net/pppox 0x7dfd760f register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x870239a4 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xa84cac89 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0xdca79fae mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x033311c0 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6b037dcd tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x88132797 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xbd29ba24 tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0e59fb81 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x37ac69f3 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x38c64739 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x55a70acf hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x617c0412 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6d2015d7 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x776c3a07 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8eac7fd5 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf203fad7 hdlc_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0x255d7afa sppp_detach +EXPORT_SYMBOL drivers/net/wan/syncppp 0x3f81b6ab sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0x4bd0e500 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0x5cf86174 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0x5eeb5f91 sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xcc7f273d sppp_open +EXPORT_SYMBOL drivers/net/wireless/airo 0x3327370d init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x589446b5 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbce01b23 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x4b7ea30d atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x75b95059 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xe0f3d622 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03388953 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x086f0a7c hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0b881944 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ed67133 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10039732 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3ba32890 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4aebf6e7 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ab50daa hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7293f4a2 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x80faff69 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x862e87c3 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8df864cb hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x90423b14 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x934d001e hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ce089a9 hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa7ccc4dd hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xad09e4b0 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbb321ae9 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2617180 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd0c2f16e hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd281b2aa hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd893ad01 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe32f09d0 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe81a7d8e hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe876e4ae hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xef8836d1 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf435282e hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x2d5cc181 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x4d41037d orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xbd50caa3 __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xc4720df6 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xd1517a98 alloc_orinocodev +EXPORT_SYMBOL drivers/parport/parport 0x063e7e49 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x144557e8 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x19b841b4 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x21c5a814 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x29431045 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x30998baf parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x3481701f parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x34bc7e86 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4d8ce510 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x54301882 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x5f2ea7bc parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x62167ba5 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x67fa96ab parport_release +EXPORT_SYMBOL drivers/parport/parport 0x7a628830 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x83d770d3 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x84a9d8e8 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x8725c206 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x9506bb68 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x9fcca0da parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xa2b631f7 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xa49c93b0 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xb64836dc parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xb87c3351 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xbd0281ba parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xc71eb1c3 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xcc16629d parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xd2a1ffb4 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xd567594e parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xdcf277df parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xfab96fc7 parport_put_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x10d6b08a parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xe7b199ab parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x00aa7f7c pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x02caf987 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x20bbb529 pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x30ea6495 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6a276828 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6e348435 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7bee931a pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7d8f8ad8 pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7eb97af6 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x93a27c2b pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa2f0157d pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb1f4d2fc cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc6b38a3b pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcbca34dd pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf3a15321 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf55a4da9 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfd6866e1 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x07f8c7d9 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0c03a345 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1b987817 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1d144864 pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1edae117 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1f899e0f release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x22cc7baa pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x38f62525 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4207d287 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4261396b pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x56ceaff8 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5fc4907a pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x70630ab1 pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7206e553 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7409f56a pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x778f6fbc pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7d7dfa74 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7e6b77e4 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x84896e2e pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9a4470cc pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa03e9061 pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xafb59cb2 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc2a1f570 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc8634b9d pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc91277a2 destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2c4314 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xce4db44e pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd61bf925 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd905150a pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdd15fd74 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfdef807f pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0xb620f441 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x81b5a850 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xe32c2244 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xbecf9a69 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2cba8628 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4315a635 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x65355106 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x664b014e qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6eaad231 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xca7e6387 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x47381eed raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x583b255f raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x81aededa raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0e1c1153 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x167b337f scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x19399a4b scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x20fa6db9 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2665bf09 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x27dbbcf3 __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2af8a8b0 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b2c3216 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b4f8785 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d90cd55 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x33ceee65 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x36507d46 scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x389e8ccb scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x41eb8c35 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x441802e3 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x47215519 scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4c463e4f scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4d482843 scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4d5c97d6 scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4f4f41c3 scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x501a7de6 scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5224dfe0 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5c9a572a scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5f865a4b scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x63f7e965 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x724a287a scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x726e8311 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x775ae9d2 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x79006283 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7e032042 scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x836fee0a scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x888ee8f1 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x89466246 scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8a28c179 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8df0a5e3 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8e056b48 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8e5f1870 scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9319364d scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x942308b0 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x94531a22 scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96ecf418 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa07f532d scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xacd177c1 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xacf2e03d __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xafc143f3 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb14fc3f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb2a5bf20 scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb326faf5 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb412eeca scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb7876a02 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb8a8152a __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbc74fc93 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbe58a0f3 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc1299e66 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc2ed7bd0 scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc4f9bce2 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc707908d scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc9046d53 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcc99e48c scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcdde96e9 scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xcef1e566 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd179e554 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd696210f scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd818ffc2 scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd8a3ee8c __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd8fd116c scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdb889c57 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe7e9bd9c scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe91def02 __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea2cea72 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xece1fc31 starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xedb81fdc scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf016b8db scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf318e903 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf5ace80a scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf734ddab scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfa0afad1 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfdb75e4a scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0ad28c3a fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0cba0491 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1e50b732 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1f532b7d scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4846e49a scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4a0a482f fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x71cb5def fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8186b999 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb58016b7 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe755bc57 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xed66434c fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x07df2483 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0a85fb28 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x26ab6183 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x27ace9f9 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d45e010 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37e419b8 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38b38296 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38da880c sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4805f974 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x598afd0d sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x626e7ac6 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x697cccad sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6e2c8133 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x73e73c23 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x761963d3 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c61eeb5 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98ed5f8e sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc2440769 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcbf31a8c sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd5a67065 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd6106df1 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd88298c3 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf2f83205 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfcd6a95a sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfdee47a0 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe1a27dd sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0daf2251 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x17c1fdea spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xad740714 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf4384c3a spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf81d0d3b spi_display_xfer_agreement +EXPORT_SYMBOL drivers/serial/8250 0x4fa482af serial8250_register_port +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/serial/serial_core 0x16f0f650 uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0x1849eaa8 uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0x2f18d69b uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0x2f4e9711 uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0x47490a9d uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0x5f199f35 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xc2946471 uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xca271d71 uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0xde34e49a uart_match_port +EXPORT_SYMBOL drivers/serial/serial_core 0xeddf90f1 uart_register_driver +EXPORT_SYMBOL drivers/serial/serial_core 0xf238aadd uart_get_baud_rate +EXPORT_SYMBOL drivers/ssb/ssb 0x0206d52b ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x469f0ae9 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x4746558d ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x71442860 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x799155a4 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x82275dec ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x97fea682 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb17f892f ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0xb6d7665a ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xbfa5e476 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc44fa532 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd8c9bcea ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xe9d82be0 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xf276cb71 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xffc05e12 ssb_bus_powerup +EXPORT_SYMBOL drivers/telephony/ixj 0x486a8bed ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x0b5f1939 phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xe91f2b51 phone_register_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x03fce525 usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x072a55f8 usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0f11a76e usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x15c192f6 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0x15c94e99 usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1dfff269 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x25df7ff5 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x29b0bf8e usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2eda033c usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3143a14b usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0x37f3c8e0 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x43e1cc04 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4ca92f09 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x569d61cd usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x57a5e497 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x68bb5132 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6c9f445d usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6cad16bf usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x6ea7d67d usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x72bf8515 usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0x76806d33 usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x879621f2 usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8eccc33f usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x963d9119 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x98e854ca usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x99aef3d3 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9df87292 usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa3fd393d usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa9316b54 usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb10e9190 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc9c0c16a usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xca142060 usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0xccf19bf4 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd1409d86 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd4f35fe4 usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd78f228f usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdb0311b8 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdb2b2a9e usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdc02881e usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe52e452c usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xeac36cf3 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0xec801ea3 usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xed28630a usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf016d786 usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf7a83f17 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf80be317 usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfe5e8c40 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfea425d7 usb_kill_urb +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x42a1de56 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x44906ed8 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x8b89feac usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x769df7ae sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x761ef0bf ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8257e330 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xb46a5ffc usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd1260641 ezusb_set_reset +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8d0d32fa lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xfc3c1cf0 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc4c836d4 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/cyber2000fb 0xc8813e1c cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xcc2b56c9 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xd09c3c51 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/display/display 0x35f8c263 display_device_unregister +EXPORT_SYMBOL drivers/video/display/display 0x5fee1ec0 display_device_register +EXPORT_SYMBOL drivers/video/output 0x5f68156c video_output_register +EXPORT_SYMBOL drivers/video/output 0x88409ada video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x353fed1f svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x395feb36 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x5ae99f9a svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8ae190b2 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xc59f270d svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe1259272 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xfd7c57b2 svga_settile +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x21f0d0c9 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xea3a0657 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x882e34c1 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd0a5edcb w1_register_family +EXPORT_SYMBOL fs/configfs/configfs 0x2282a812 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x25c92b95 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x3f895c9a configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x4e32a643 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x5250cccd configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x56fcbad5 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x7347c88a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x761f138b config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x9058fa92 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xcf34efd7 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xe4678186 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xe71994fe config_group_find_item +EXPORT_SYMBOL fs/jbd/jbd 0x083b24d6 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x08b99ab3 journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x0d24302c journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x0fba429d journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x13903a57 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0x15578a0f journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x16d74c0a journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x25294ce7 journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x275f17e5 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0x356990f8 journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x4159ba07 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0x4cf3bc97 log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x533bf150 journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x5abc8bef journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x5e3ae93b journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x5f0bd7cf journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x688467c8 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0x6e2e5d82 journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x79c5bd8b journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0x81ace4a4 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0x8e766e81 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x91eaa4d0 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x94d4bdd3 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x983a219b journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x985eebf9 journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xa88b0211 journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xaec15141 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0xaecca1cf journal_create +EXPORT_SYMBOL fs/jbd/jbd 0xb47fe51a journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xc0762894 journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0xc279fb11 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xc6f3b185 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0xc8fec0b6 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0xdb451a34 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0xdcc03e0a journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0xed49fc2a journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0xfccdb0de journal_stop +EXPORT_SYMBOL fs/lockd/lockd 0x24da28a9 nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x40c8b291 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x2fc90297 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0x418f830d mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0x59dd1c0e mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0x8fea1c71 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0x9b618928 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xa879be4d mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0xadbae08d mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xc22cf5ae mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xd6130ac8 mb_cache_create +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x4de8741e nfsacl_decode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x672f09dd nfsacl_encode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/xfs/xfs 0xd3b6e9ea xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x8ffdb3b8 crc16 +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x2329b292 crc32c_be +EXPORT_SYMBOL lib/libcrc32c 0x37d0b921 crc32c_le +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x34e2a47b make_8023_client +EXPORT_SYMBOL net/802/p8023 0x5427d47c destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0083ba63 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x01b73b1d p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x09ec8e0f p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x0e0a3b71 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x22262f52 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x23da8938 p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0x26e4b796 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x39ff1404 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x544a6cce p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0x56817e9d p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x68decbf1 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x74b618f1 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x86b95fdb p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x88eeeb09 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xb6ef75b1 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xba2281d4 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xbd77d917 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc04afafa p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xc19573f9 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0xc2cb9a1f p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0xc48e3245 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xc6bcd6cd p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xcd32d79a p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xd85ae69e p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xe46618cd p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe91d1575 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xe9bc6872 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x05e4630b alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x64658941 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xe16294cb aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xeaa20578 atrtr_get_dev +EXPORT_SYMBOL net/ax25/ax25 0x20dd6a97 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5a3642c4 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x5a9a3ee0 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x5bf7fd0e ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x5d101ea6 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x7e6b9f52 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb2799a68 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xd7c2bf16 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xf371d037 ax25_linkfail_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x118a96c1 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x19e9c7de bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2991ffa3 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3099053c hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d269513 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x45da07f8 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b33cb12 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x60172178 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x63c291d2 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x662140cb hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6982c9ac bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6e209c08 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x868696c2 hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88623dae hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9cf42964 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa51b0363 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae59fa0e hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb0ab34e9 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7ced784 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd4aa68d hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf4ce082 hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf62c254 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8c742f2 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4efafbf bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd961457d hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe43e05ed bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfbc4cfe8 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff240fc8 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0xdd0776d2 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x04b31b73 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x14d02b06 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x191c83d2 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x45c27e78 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9ebb2ab3 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xae664fb5 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xaf7cdfa1 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xcf5abaf3 ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe9392520 ebt_register_watcher +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0085be6f ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x18474704 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0x222faeb3 ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x48a89332 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x50498011 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x620e4fc3 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x631f7a2a ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6a86a54a ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0x7ccb58b4 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0x9322a46a alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa8c49184 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc1d39301 ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xce162eee ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0xce4338dc ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xdeb4bf2b free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe494c602 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf3a61ca5 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfb0c8777 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfef6c6e8 ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x08c5cb46 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x378cc9a8 ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x60ec47ae ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x868f157d ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x894e1330 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xbc1aa698 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ipv4/inet_lro 0x4db0b480 lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0x7bd3931b lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xa0e55195 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xa82f4867 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xcd67e82a lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xef175d2a lro_flush_pkt +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x119d3201 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x15b8ae32 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x226f2527 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x35a31700 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x3fc05c35 register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x43e7f67d ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x5990b11f register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x8bd87de6 ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x8ce53c93 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd0a35ccf ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xe9182a30 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x74b393ef arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x83d1f98b arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe7361b94 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4bab6dd7 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbefa6fe9 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xcdd56334 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0856595a nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2074ee43 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x33856a02 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5fefe08d nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7e41bedd nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb57f0cc2 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x232cce04 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x8c1a1ba4 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x068e0e32 ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0x0ffba921 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x1250045a inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x16ed5dae in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x1b1208b6 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x23096983 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x27ca5817 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x311d6dfd nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x45806b05 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x4cb6f486 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x54def722 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x6879bc43 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x6bfa2b04 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x87c12acc ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x88b0eeb2 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x9a08ada8 xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x9ac9036c ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x9e09880e inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xa4f982fb ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xc67eea17 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0xc6da0a7b ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xcf4fa5f3 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xe1d1ed3c xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0xe7f9ed30 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xe81e9461 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0xf3103b40 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xfcac0b79 inet6_ioctl +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x44516475 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8d5dfd44 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa11c91ca ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcc985a30 ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x79327f48 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xddae54b7 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x045cfe3c ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3b24b24d ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x461dd520 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9a5760f5 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xaa4f43a1 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc6e8ea6e ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe9e50937 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf85bf736 ircomm_connect_response +EXPORT_SYMBOL net/irda/irda 0x002fec3f irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x086605f4 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x18edd399 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1d97e340 iriap_close +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x29783db6 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3c241ab1 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x41fc94b1 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48af37e4 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x50b0a8b6 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x543a6db5 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x550a5e27 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x57088b00 irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0x5861b834 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x5f261aef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6f44aab7 irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7657e84f iriap_open +EXPORT_SYMBOL net/irda/irda 0x789eeb6f irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7f933922 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x89136cd1 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x94a8156e hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x96483d56 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x980fe568 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x985efe0a irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a796dfc irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x9b8d53fe irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x9bece0f9 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x9c5f2b24 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xa1511980 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xa26f32f8 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xabfabaa4 irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0xb7884205 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc10a5281 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xd627dc1a hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xd957b51e irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xdf9e54c2 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xe0392659 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xe0acf0d4 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xe1a50c6f irias_new_object +EXPORT_SYMBOL net/irda/irda 0xe5ae2c9e irlap_close +EXPORT_SYMBOL net/irda/irda 0xe6d66e9c irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0xe7868230 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xec114cf6 irlap_open +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf137dcd7 proc_irda +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf5bd3c53 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xf9a9c511 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xff482880 async_unwrap_char +EXPORT_SYMBOL net/lapb/lapb 0x1538ba80 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x3b3797d5 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x588c874a lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x750026ab lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xc523e8f6 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xd416af8e lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xf95cccf0 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xf971e0fb lapb_data_received +EXPORT_SYMBOL net/mac80211/mac80211 0x09d6d45d ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x0a6ca9c6 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x1885c113 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x1949d970 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2015a956 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x2bc170f6 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2f0a7462 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x31d8a632 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x3fdde7ea ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x482375eb ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x5b8d0528 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x71beaf76 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x74f0f0c3 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7925e04d __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x7fce0911 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x888506c4 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x8bcf52cf sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0x91b870da sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xa02c50dc __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa2f0e2eb ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xa6d49a05 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaeefb042 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb46fdc39 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd3391e51 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xda08e7d3 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xdba8fa82 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xeb01e5ec ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xf81458a3 ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfb980344 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xfc143675 ieee80211_rts_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x0153b096 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x05f9210e xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3117987e xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3201bb92 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x420bff73 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x4db34e6c xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4fad46ef xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x621b88fd xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x68cbab19 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xa910c75c xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb8f9d9bc xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf1d02928 xt_register_matches +EXPORT_SYMBOL net/rfkill/rfkill 0x19dffbc6 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0x323742d9 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x42b4cc0e rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0xb1dc4713 rfkill_allocate +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00b80959 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0cb6553b rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x12ff09fa rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x285f7c13 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3e8ad67e rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x55809d6c key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6a693a64 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6f388b47 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7284d6b8 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x92e485cd rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9f4e9119 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa2225e97 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa8941dbd rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa9a7fe6b rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa9dd7a3a rxrpc_kernel_reject_call +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1fc8a75a gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3ac7ba9f gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x53a288c5 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x681909cd gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x72670141 gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x811a87c1 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8da133a7 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x9a75e091 gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x9f98c0ca gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xa1cfea8e gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xcd8a8041 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe4623561 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xea7dedbf gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf3c61055 make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf78e543f gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0182546c rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x025fe76a rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x038208cb xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x04fb65d3 svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x08e7eb74 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0a5b801b svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0a745f74 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f4b8cb1 svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1b12dd29 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1e28eca1 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1fac23c7 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x205ed3b6 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2087bc61 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0x21289b74 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2589ba8b rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2888c375 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e19dad6 cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e8dda84 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2f2ddeb5 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2fb3fd6b auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2fb53ef9 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x343957c8 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x39042fa9 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3e50fd69 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3ec1fc7b rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x46206d5a rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4844b784 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4d56cb28 rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x50520871 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x569c7c9f rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x570a6b10 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5a243200 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5faee176 svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6359a2ae xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x65d4f87a xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6807921c rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0x68a011dc svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x69a1b2f6 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6a4345e7 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6a9a5368 rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6cd2fd6a svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x709b7828 svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7285dbec rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x74ebf49d rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x780f845e svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x784c9f3c rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x796a25de xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7a65f59a sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7d0ae2eb rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8275fed0 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x88035a82 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x90e8ee55 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9387a427 svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x956a3464 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x95ac1c05 rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x960cb98c xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x987de15d svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x98868d75 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa2333eec rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xac3f1d4a cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb36afe4f rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb4dccbc8 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb52f0943 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb88b1f58 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbb808dcd xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbde55b6b rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf0961f3 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc1aa41a0 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3573665 xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc76cf567 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcbca2344 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd2dd6574 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd6469523 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd988f82f cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdc2a0f55 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdf9555dc rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdfd305dc xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe2c02ef9 svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe4cc9501 rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe512dd4a rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe9a31af6 rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xec0b32e4 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xecc36dc1 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xecd3df93 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xecf59869 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeeb989d0 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf01a555f xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf3b1bbe9 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf5cbc3d5 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf722c278 auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0xffc2426b xdr_buf_from_iov +EXPORT_SYMBOL net/tipc/tipc 0x00d1b1c5 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x12d5df39 tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x2656dfa3 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3a922838 tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5534133a tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x67f7bb4e tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x69364c28 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x75cded7b tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9730103a tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa97222f2 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb27ac4a7 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xcd5729ad tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xcdc6e909 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xead45055 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xd40b33d7 register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x768bcf39 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x99269410 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xdf879ca6 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xfd13b1bb wiphy_register +EXPORT_SYMBOL sound/ac97_bus 0x17c16ca4 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x36f15cca snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-fm 0x5a3e4571 snd_seq_fm_init +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-simple 0xd5791cfd snd_seq_simple_init +EXPORT_SYMBOL sound/core/seq/snd-seq 0x0504a014 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x22ac0b75 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x296b99f2 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x56f30cad snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x66212d85 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x69ee7fd1 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x9dff9b71 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc84df378 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x5d1b9a85 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90ff274 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x05269149 snd_seq_instr_event +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x0e17a44d snd_seq_instr_free_use +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x6176795d snd_seq_instr_list_free +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x92616f2f snd_seq_instr_list_free_cond +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xb3eb1847 snd_seq_instr_find +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xd00ded07 snd_seq_instr_list_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6c6f1a61 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x1cabe748 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x326911b6 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7cb19049 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb401ffd7 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb5d25358 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbd220a71 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbf834054 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd61f5907 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x2f4841d5 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x04a1c7fa snd_card_register +EXPORT_SYMBOL sound/core/snd 0x05f123ac snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x0df0765b snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x2429e850 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x250fb152 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x276b4c82 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x2d2fcfb1 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x2f070c46 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x2f18c96b snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x33196303 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x3658c18d snd_info_register +EXPORT_SYMBOL sound/core/snd 0x376e04bf release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x40537692 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x493392a4 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x57d848eb snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x65e1237d snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x6f98432f snd_card_free +EXPORT_SYMBOL sound/core/snd 0x708cf6e1 snd_card_new +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x72903592 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x77f729c8 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x786bb4b9 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x7f5b14c9 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x835055e7 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x85b971db snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x890c8c3a snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x8a560fca snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x8a74a364 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0xa30ddbcc snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xaa2fef72 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xb213fe8b snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb42a0933 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0xbff462f6 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xc038e124 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xc820b917 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xcaa544fa snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xcd52533b snd_cards +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd5a0cd95 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xd6e1d819 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xe4831ee8 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xf08050f9 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xfa8b673c snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xfb56a72a snd_ctl_notify +EXPORT_SYMBOL sound/core/snd-hwdep 0xe65b5aaf snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3dc81827 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x643b42e6 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x6aa3127f snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc1b06901 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf6bdabeb snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0b535ce3 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x0dcfec60 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x10df9eb9 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x127a65cc snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1e78c975 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x219804fd snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x2226e7a0 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x2b3640d6 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x2eed60c6 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x49b7577a snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x54251ac2 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x57a47640 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x5a32b5c3 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x5a6b5815 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x61550b88 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x65ed8a4e snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x698ce270 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x73608206 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x7c56ff40 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x7c5cec98 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x7f58afe0 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x89a31a56 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x8afc9a4c snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x8b215b94 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x8f514c77 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x9222fd7f snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x9620f991 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x9dcc9d68 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x9fdea959 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa6c7ddb9 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xaa85e07a snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc13d6b56 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xc674f460 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xccfde388 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xcd1b2bd5 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xcdd8d0cc snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd89ca388 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe9ddccc2 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xebd402de snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xf0e7e795 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xf23d513e snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xf2758b22 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0c1bbb3d snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0e0434cb snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x29c382f3 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2eae2a53 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x30823ed5 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x308ebe28 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4db4c68d snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6325b7a2 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6e82e4f1 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x74b92adf snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8d71775e snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x92d4d51e snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x937a1dbe snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcfca871a snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd50d462a snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf2a20dce snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfb24f0b4 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-timer 0x04e73f49 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x3a2afe98 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x760f453e snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x894bf0ff snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x96dd3680 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x976ea8fc snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xb73c7a38 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xc0b454fe snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xccabccac snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xda6b2602 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xe1828a1d snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xebec16f7 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xf5f38221 snd_timer_continue +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x73c4c993 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xd706deba snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfe618b58 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x25de8579 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x37406667 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3db7f015 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x473ad3df snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xaea04fa9 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe31ebd48 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe78bb5bd snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cadb14b snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x31144757 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3663cfab snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6dd90203 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7b372109 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x85db52d7 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9e9054ea snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xad0e1f59 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdf0763ef snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xef9d2aec snd_vx_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3260d3b4 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x538b430b snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb0413de4 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb3b227fa snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc0ad9652 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcfe4a1b6 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2cbbc27e snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4638121c snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8303527b snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x879f5be2 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x98cbe892 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc3e7f778 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x732efe07 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb9a65785 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xcb39dc3f snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xe4a9aff2 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x489cd1fe snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xa55e7277 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x0b460a68 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x43edd1dc snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4606edd3 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4acce878 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x731d79c2 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb31cd595 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd0b90560 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x323692c0 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x45954853 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7becdd2f snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8723d048 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x88c44f03 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xaab40bcf snd_i2c_readbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1b91b85b snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x34aa0023 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4a8b8785 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4b135a13 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5d8f813b snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x71ffca51 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x75be9cb1 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x877ce993 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb019a3d9 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb4581142 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0ba4ef1d snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x1022056a snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x7de58f26 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x977bbd6d snd_sb16dsp_pcm +EXPORT_SYMBOL sound/oss/ac97_codec 0x4eec9e78 ac97_set_adc_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0x9eae33d9 ac97_set_dac_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0xad2269ea ac97_alloc_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xbae4da72 ac97_read_proc +EXPORT_SYMBOL sound/oss/ac97_codec 0xcc35ed27 ac97_release_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xffa6daf4 ac97_probe_codec +EXPORT_SYMBOL sound/oss/ad1848 0x12f6112a ad1848_init +EXPORT_SYMBOL sound/oss/ad1848 0x9839a618 probe_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0x9bf1cc62 ad1848_unload +EXPORT_SYMBOL sound/oss/ad1848 0xb29a9148 unload_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0xbe9fe1d6 attach_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0xc04f6f67 ad1848_control +EXPORT_SYMBOL sound/oss/ad1848 0xf06eb004 ad1848_detect +EXPORT_SYMBOL sound/oss/mpu401 0x3c223545 attach_mpu401 +EXPORT_SYMBOL sound/oss/mpu401 0x5febf284 unload_mpu401 +EXPORT_SYMBOL sound/oss/mpu401 0x8874e39a probe_mpu401 +EXPORT_SYMBOL sound/oss/msnd 0x03daf1b2 msnd_send_dsp_cmd +EXPORT_SYMBOL sound/oss/msnd 0x1186f48f msnd_fifo_read +EXPORT_SYMBOL sound/oss/msnd 0x2e74fa61 msnd_enable_irq +EXPORT_SYMBOL sound/oss/msnd 0x340a3ddf msnd_init_queue +EXPORT_SYMBOL sound/oss/msnd 0x4f88e002 msnd_register +EXPORT_SYMBOL sound/oss/msnd 0x54230dc1 msnd_fifo_write +EXPORT_SYMBOL sound/oss/msnd 0x6601493b msnd_fifo_make_empty +EXPORT_SYMBOL sound/oss/msnd 0x67145936 msnd_disable_irq +EXPORT_SYMBOL sound/oss/msnd 0x9274d677 msnd_fifo_free +EXPORT_SYMBOL sound/oss/msnd 0xade99e25 msnd_fifo_alloc +EXPORT_SYMBOL sound/oss/msnd 0xb3520772 msnd_fifo_init +EXPORT_SYMBOL sound/oss/msnd 0xb443d06a msnd_send_word +EXPORT_SYMBOL sound/oss/msnd 0xbd0b896c msnd_upload_host +EXPORT_SYMBOL sound/oss/msnd 0xd40a6fb1 msnd_unregister +EXPORT_SYMBOL sound/oss/msnd 0xdf0f59eb msnd_fifo_write_io +EXPORT_SYMBOL sound/oss/msnd 0xf4c4f662 msnd_fifo_read_io +EXPORT_SYMBOL sound/oss/sb_lib 0x42424109 sb_be_quiet +EXPORT_SYMBOL sound/oss/sb_lib 0x450f9aea smw_free +EXPORT_SYMBOL sound/oss/sb_lib 0x74afd69c unload_sbmpu +EXPORT_SYMBOL sound/oss/sb_lib 0x8c31d2a4 probe_sbmpu +EXPORT_SYMBOL sound/oss/sb_lib 0xbd0b3cd9 sb_dsp_init +EXPORT_SYMBOL sound/oss/sb_lib 0xc4884969 sb_dsp_unload +EXPORT_SYMBOL sound/oss/sb_lib 0xd8a2731c sb_dsp_detect +EXPORT_SYMBOL sound/oss/sound 0x04c87ec8 compute_finetune +EXPORT_SYMBOL sound/oss/sound 0x06339815 sound_unload_synthdev +EXPORT_SYMBOL sound/oss/sound 0x0f280035 conf_printf +EXPORT_SYMBOL sound/oss/sound 0x17ba231d seq_input_event +EXPORT_SYMBOL sound/oss/sound 0x1b3df3cf sound_alloc_mixerdev +EXPORT_SYMBOL sound/oss/sound 0x1f395686 MIDIbuf_avail +EXPORT_SYMBOL sound/oss/sound 0x2161d5e8 sound_timer_init +EXPORT_SYMBOL sound/oss/sound 0x24701945 mixer_devs +EXPORT_SYMBOL sound/oss/sound 0x2aa31695 midi_synth_kill_note +EXPORT_SYMBOL sound/oss/sound 0x394cb088 sound_free_dma +EXPORT_SYMBOL sound/oss/sound 0x418f5fbe sound_close_dma +EXPORT_SYMBOL sound/oss/sound 0x41a23275 sound_install_mixer +EXPORT_SYMBOL sound/oss/sound 0x4cd01bdd num_audiodevs +EXPORT_SYMBOL sound/oss/sound 0x4ff47e9d midi_synth_setup_voice +EXPORT_SYMBOL sound/oss/sound 0x51e354b2 sound_alloc_timerdev +EXPORT_SYMBOL sound/oss/sound 0x56504ca2 midi_synth_reset +EXPORT_SYMBOL sound/oss/sound 0x5d986fc9 note_to_freq +EXPORT_SYMBOL sound/oss/sound 0x7679ee76 seq_copy_to_input +EXPORT_SYMBOL sound/oss/sound 0x79282e97 synth_devs +EXPORT_SYMBOL sound/oss/sound 0x7bdf0907 conf_printf2 +EXPORT_SYMBOL sound/oss/sound 0x7ee55f77 audio_devs +EXPORT_SYMBOL sound/oss/sound 0x892093e0 midi_synth_controller +EXPORT_SYMBOL sound/oss/sound 0x8c0f8686 sound_timer_devs +EXPORT_SYMBOL sound/oss/sound 0x90bd9714 sequencer_timer +EXPORT_SYMBOL sound/oss/sound 0x987bcf12 DMAbuf_outputintr +EXPORT_SYMBOL sound/oss/sound 0x9a95733f sound_alloc_dma +EXPORT_SYMBOL sound/oss/sound 0x9bdaf24d midi_synth_start_note +EXPORT_SYMBOL sound/oss/sound 0x9d845b18 num_mixers +EXPORT_SYMBOL sound/oss/sound 0xa1d5f04f load_mixer_volumes +EXPORT_SYMBOL sound/oss/sound 0xa1eae7cf num_midis +EXPORT_SYMBOL sound/oss/sound 0xa41ead5f sound_unload_timerdev +EXPORT_SYMBOL sound/oss/sound 0xa51c913b sound_unload_mixerdev +EXPORT_SYMBOL sound/oss/sound 0xa6bb414c sound_unload_mididev +EXPORT_SYMBOL sound/oss/sound 0xa948751e sound_unload_audiodev +EXPORT_SYMBOL sound/oss/sound 0xad45df73 midi_synth_close +EXPORT_SYMBOL sound/oss/sound 0xaef743b2 midi_synth_ioctl +EXPORT_SYMBOL sound/oss/sound 0xb14b22cd midi_synth_hw_control +EXPORT_SYMBOL sound/oss/sound 0xb51587f6 do_midi_msg +EXPORT_SYMBOL sound/oss/sound 0xb74925cb midi_devs +EXPORT_SYMBOL sound/oss/sound 0xba413f87 sound_alloc_mididev +EXPORT_SYMBOL sound/oss/sound 0xba7dd041 midi_synth_bender +EXPORT_SYMBOL sound/oss/sound 0xc748d109 sound_alloc_synthdev +EXPORT_SYMBOL sound/oss/sound 0xcad85a8c sound_install_audiodrv +EXPORT_SYMBOL sound/oss/sound 0xcc4b8797 sound_open_dma +EXPORT_SYMBOL sound/oss/sound 0xd85be938 midi_synth_set_instr +EXPORT_SYMBOL sound/oss/sound 0xdb400afa midi_synth_panning +EXPORT_SYMBOL sound/oss/sound 0xe056b71c DMAbuf_start_dma +EXPORT_SYMBOL sound/oss/sound 0xe2675a79 sound_timer_interrupt +EXPORT_SYMBOL sound/oss/sound 0xeb315d99 DMAbuf_inputintr +EXPORT_SYMBOL sound/oss/sound 0xf1ea8a20 midi_synth_aftertouch +EXPORT_SYMBOL sound/oss/sound 0xf6b3a2fb midi_synth_open +EXPORT_SYMBOL sound/oss/sound 0xf7426da3 midi_synth_load_patch +EXPORT_SYMBOL sound/oss/sound 0xf78f6363 sequencer_init +EXPORT_SYMBOL sound/oss/sound 0xfa6871be sound_timer_syncinterval +EXPORT_SYMBOL sound/oss/sound 0xfddcbfb3 midi_synth_send_sysex +EXPORT_SYMBOL sound/oss/uart401 0x46248c57 uart401intr +EXPORT_SYMBOL sound/oss/uart401 0xe5f2e205 probe_uart401 +EXPORT_SYMBOL sound/oss/uart401 0xecfdd9c9 unload_uart401 +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0a17f8fb snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x17809718 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4eff781b snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x52b3636c snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5a98e45b snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6aad0d49 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9370aea0 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9bebc6a0 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa1c292b7 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc95b7467 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd711b61e snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xde2d4c8e snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdef17061 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe2204337 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe7f56a38 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeeb354ba snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xef12e5b1 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x4ed83215 snd_ak4531_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0xdff0819e snd_ak4531_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0xe99ace17 snd_ak4531_mixer +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x046098fe snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x200cbfba snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x233d9022 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5632c679 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5a789923 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xaf95913f snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe1930948 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xee0fb8a7 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfcab45ce snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x01ee642b snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4e2c7622 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xdafe2cbd snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x12c1e58e snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1bbf5fd5 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x29103369 snd_trident_synth_alloc +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x2cd82137 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x686a7b86 snd_trident_synth_copy_from_user +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x73294bcb snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8c251138 snd_trident_synth_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdb1da073 snd_trident_stop_voice +EXPORT_SYMBOL sound/sound_firmware 0x39e3dd23 mod_firmware_load +EXPORT_SYMBOL sound/soundcore 0x01bd9462 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x0c32a2f7 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x17792b95 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x1e3d12a5 sound_class +EXPORT_SYMBOL sound/soundcore 0x71b2b24d register_sound_special +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xce003342 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x628a37f1 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x685e0bab snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6ead07c4 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x815790a0 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9a849402 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe6752da9 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1539f6d4 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1cb01ace snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5171ffe8 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x57ec7df4 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x63d9012b __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb5835ada snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe69e0636 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf6eebffd __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x8f9a4a6e snd_usb_create_midi_interface +EXPORT_SYMBOL sound/usb/snd-usb-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00112f51 groups_alloc +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x005853fd bio_copy_user +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00d7a37d __napi_schedule +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01276971 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x0155f3eb single_open +EXPORT_SYMBOL vmlinux 0x016344a3 blk_get_request +EXPORT_SYMBOL vmlinux 0x017332e6 write_cache_pages +EXPORT_SYMBOL vmlinux 0x017be977 poll_initwait +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019cacd0 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01c66a27 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x01e9f0ee _spin_unlock +EXPORT_SYMBOL vmlinux 0x01ed4abf neigh_seq_start +EXPORT_SYMBOL vmlinux 0x02114023 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x025a6dae sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x025da070 snprintf +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026e5fb4 skb_unlink +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x028d62f7 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x0299065f sock_recvmsg +EXPORT_SYMBOL vmlinux 0x029e2388 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a7d92b file_permission +EXPORT_SYMBOL vmlinux 0x02aa38c7 set_user_nice +EXPORT_SYMBOL vmlinux 0x02b99840 __any_online_cpu +EXPORT_SYMBOL vmlinux 0x02ba1e75 ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02e7df80 do_splice_from +EXPORT_SYMBOL vmlinux 0x02f2da6d drive_is_ready +EXPORT_SYMBOL vmlinux 0x0306a40e ps2_drain +EXPORT_SYMBOL vmlinux 0x035000da of_get_cpu_node +EXPORT_SYMBOL vmlinux 0x0379d284 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03d32839 pci_enable_msi +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043862bd ida_destroy +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048b3451 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04a8b8ad inet_accept +EXPORT_SYMBOL vmlinux 0x04f3062c put_disk +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x051980a4 simple_statfs +EXPORT_SYMBOL vmlinux 0x0520238b fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x057d824e netif_device_attach +EXPORT_SYMBOL vmlinux 0x058ad5f6 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05a607ff proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x05a789a1 submit_bio +EXPORT_SYMBOL vmlinux 0x05aebcff sync_blockdev +EXPORT_SYMBOL vmlinux 0x05b4e835 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x05c0a9e9 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x05e90840 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x05efb417 udp_disconnect +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ab8fd dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x062eda08 dev_mc_add +EXPORT_SYMBOL vmlinux 0x06494d31 tcf_register_action +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x075118f9 netdev_features_change +EXPORT_SYMBOL vmlinux 0x07527e0d __kfifo_get +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x07a07894 page_symlink +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07ddfe3b kmem_cache_name +EXPORT_SYMBOL vmlinux 0x07eff2dd proto_register +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x085ba1fd pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x086ac9e6 block_prepare_write +EXPORT_SYMBOL vmlinux 0x087d8452 simple_empty +EXPORT_SYMBOL vmlinux 0x089e5b6c __init_rwsem +EXPORT_SYMBOL vmlinux 0x08a64e7c kfifo_free +EXPORT_SYMBOL vmlinux 0x08ab1ff9 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x08ab4760 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x08dec87c ida_get_new_above +EXPORT_SYMBOL vmlinux 0x08e0a077 vfs_mknod +EXPORT_SYMBOL vmlinux 0x08e99898 posix_lock_file +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x0909ba68 key_put +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x0985da55 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x09888d4e init_special_inode +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e40d96 km_new_mapping +EXPORT_SYMBOL vmlinux 0x0a0f532a inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a4310bf giveup_altivec +EXPORT_SYMBOL vmlinux 0x0a5966c4 nla_reserve +EXPORT_SYMBOL vmlinux 0x0a7815b1 fput +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ad0d8d4 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b853708 key_link +EXPORT_SYMBOL vmlinux 0x0ba4388c tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x0bb5175d sock_kmalloc +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bebd21a pci_request_region +EXPORT_SYMBOL vmlinux 0x0c0e985c dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x0c1813d7 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x0c1b7d14 inode_init_once +EXPORT_SYMBOL vmlinux 0x0c1f1779 neigh_for_each +EXPORT_SYMBOL vmlinux 0x0c486b72 ide_unregister +EXPORT_SYMBOL vmlinux 0x0c4f506e netlink_ack +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c83b5b3 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x0c9bc583 pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x0cb5607e i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x0ccb43ab clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x0cd3cf92 _write_unlock +EXPORT_SYMBOL vmlinux 0x0d036cff sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x0d13b1e9 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0x0d2e8720 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7d4f00 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da82220 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x0dbbb8fe __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0dd5f139 kill_litter_super +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0df15005 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0e3d142f atm_dev_lookup +EXPORT_SYMBOL vmlinux 0x0e4e64f1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x0ea81e19 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x0ead5073 vscnprintf +EXPORT_SYMBOL vmlinux 0x0ebb3321 clear_user_page +EXPORT_SYMBOL vmlinux 0x0ed7de19 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x0ef22ade remove_wait_queue +EXPORT_SYMBOL vmlinux 0x0f21d72a register_con_driver +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f57d5ae _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x0f598dda llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x0f5bb6d3 check_disk_change +EXPORT_SYMBOL vmlinux 0x0f7de2c5 neigh_destroy +EXPORT_SYMBOL vmlinux 0x0fad78a1 flush_signals +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x101c78cc __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x1024d757 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x1087ef47 unlock_super +EXPORT_SYMBOL vmlinux 0x10e816e3 blk_free_tags +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x1128e7fc thaw_bdev +EXPORT_SYMBOL vmlinux 0x1140a1ef mark_info_dirty +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x117cfb6d ide_register_hw +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a41041 _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x11bd4032 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x11c3153a nf_log_unregister +EXPORT_SYMBOL vmlinux 0x11fef2fa tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x12143cf3 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x121df5bf alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x121ecb83 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x124893fa key_alloc +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x12d76c8c __f_setown +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12edb8c9 __inode_dir_notify +EXPORT_SYMBOL vmlinux 0x12f30a94 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x133d6ac6 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x1383f901 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x138e3e06 dquot_release +EXPORT_SYMBOL vmlinux 0x13b7664b sock_register +EXPORT_SYMBOL vmlinux 0x13b822f7 aio_put_req +EXPORT_SYMBOL vmlinux 0x13baa124 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x13c1edc2 console_drivers +EXPORT_SYMBOL vmlinux 0x13f9c491 udp_get_port +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x1417d4fd kill_fasync +EXPORT_SYMBOL vmlinux 0x1421a04c idr_get_new_above +EXPORT_SYMBOL vmlinux 0x144b1e8f rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x14d5653b skb_under_panic +EXPORT_SYMBOL vmlinux 0x14de2503 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x14ec9a6c set_disk_ro +EXPORT_SYMBOL vmlinux 0x150c7f06 aio_complete +EXPORT_SYMBOL vmlinux 0x15441e56 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15a44824 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x15a57d3e pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x15da52bf security_inode_permission +EXPORT_SYMBOL vmlinux 0x15ed95d3 _read_lock +EXPORT_SYMBOL vmlinux 0x15fd18f1 add_disk +EXPORT_SYMBOL vmlinux 0x160728ad pmu_register_sleep_notifier +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1629fd9b dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x16408bfa neigh_event_ns +EXPORT_SYMBOL vmlinux 0x1640fb24 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x16899339 read_cache_page +EXPORT_SYMBOL vmlinux 0x169c4287 find_task_by_pid +EXPORT_SYMBOL vmlinux 0x16d488f0 matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0x171e6796 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x1728030d pci_reenable_device +EXPORT_SYMBOL vmlinux 0x17283356 d_invalidate +EXPORT_SYMBOL vmlinux 0x1737e0a0 proc_root +EXPORT_SYMBOL vmlinux 0x1743d9d6 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x176610d7 send_sig +EXPORT_SYMBOL vmlinux 0x177e3398 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0x1793df58 ilookup5 +EXPORT_SYMBOL vmlinux 0x17942c8c macio_dev_put +EXPORT_SYMBOL vmlinux 0x179ec4b8 dcache_lock +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17be0143 file_update_time +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17e00b40 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x1806d4c9 __devm_request_region +EXPORT_SYMBOL vmlinux 0x1810eb16 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x1813059e proc_dostring +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18ba2a7e open_exec +EXPORT_SYMBOL vmlinux 0x18c9c3cd ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x18cb641c sk_dst_check +EXPORT_SYMBOL vmlinux 0x18d7e7fb mach_powermac +EXPORT_SYMBOL vmlinux 0x18e5a7ca ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x194c794c of_device_unregister +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19aee3a4 kobject_add +EXPORT_SYMBOL vmlinux 0x19b9b069 search_binary_handler +EXPORT_SYMBOL vmlinux 0x19c2b728 arp_xmit +EXPORT_SYMBOL vmlinux 0x19d322d7 key_negate_and_link +EXPORT_SYMBOL vmlinux 0x19ddbd77 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x19e50487 init_buffer +EXPORT_SYMBOL vmlinux 0x19ff72b7 pci_save_state +EXPORT_SYMBOL vmlinux 0x1a528e9d km_policy_expired +EXPORT_SYMBOL vmlinux 0x1a5abcf8 skb_copy +EXPORT_SYMBOL vmlinux 0x1a9fc4aa redraw_screen +EXPORT_SYMBOL vmlinux 0x1abe41d5 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x1acc2d15 lock_rename +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1af0e613 llc_sap_close +EXPORT_SYMBOL vmlinux 0x1afde62b alloc_disk_node +EXPORT_SYMBOL vmlinux 0x1aff05c7 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b48a121 atm_dev_deregister +EXPORT_SYMBOL vmlinux 0x1b4ce448 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bb4748c idr_remove_all +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bc70994 register_chrdev +EXPORT_SYMBOL vmlinux 0x1be5dcbc complete_request_key +EXPORT_SYMBOL vmlinux 0x1bf45563 elv_next_request +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c8748a9 input_event +EXPORT_SYMBOL vmlinux 0x1c911365 ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x1ca6d393 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cc912f1 pci_bus_type +EXPORT_SYMBOL vmlinux 0x1ce237f8 pci_choose_state +EXPORT_SYMBOL vmlinux 0x1ce3ecee fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x1d03fea4 ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d49f5cc nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x1dc03229 i2c_detach_client +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dce884e inet_listen +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de26339 cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x1e6335ce qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7c6516 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x1e8aa7c0 irq_stat +EXPORT_SYMBOL vmlinux 0x1ebdaa1d serio_rescan +EXPORT_SYMBOL vmlinux 0x1f05ba7c mutex_trylock +EXPORT_SYMBOL vmlinux 0x1f23c098 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x1f2e7788 ide_stall_queue +EXPORT_SYMBOL vmlinux 0x1f4d5d46 sk_wait_data +EXPORT_SYMBOL vmlinux 0x1f5549cd up_write +EXPORT_SYMBOL vmlinux 0x1f677626 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x1f7023e2 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x1fbb67c0 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b65de nla_put +EXPORT_SYMBOL vmlinux 0x201be18c sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x20426a5d kmalloc_caches +EXPORT_SYMBOL vmlinux 0x205d79cb bdi_destroy +EXPORT_SYMBOL vmlinux 0x206bc4d4 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x20a74bed pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x20a8e338 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x21435f3b sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x2146f99f bio_split_pool +EXPORT_SYMBOL vmlinux 0x21530542 next_mmu_context +EXPORT_SYMBOL vmlinux 0x218ee3c3 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x21a3cfaa __user_walk +EXPORT_SYMBOL vmlinux 0x21af952b cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x21e6a6aa d_find_alias +EXPORT_SYMBOL vmlinux 0x224f186d tcf_exts_change +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a0e57c dentry_unhash +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22c59860 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x22ca4cc3 dq_data_lock +EXPORT_SYMBOL vmlinux 0x22d0f9f5 init_file +EXPORT_SYMBOL vmlinux 0x23038717 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x231af972 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x231dd4b5 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x234e5ea0 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x236920f6 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad070a set_current_groups +EXPORT_SYMBOL vmlinux 0x23b454e4 bio_split +EXPORT_SYMBOL vmlinux 0x23f1c464 simple_unlink +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23f303d3 vfs_writev +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24124f21 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x2421f265 page_address +EXPORT_SYMBOL vmlinux 0x242733ed dev_set_mtu +EXPORT_SYMBOL vmlinux 0x24642360 ether_setup +EXPORT_SYMBOL vmlinux 0x2481b6aa block_write_begin +EXPORT_SYMBOL vmlinux 0x248e8f17 tcp_connect +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24efd064 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x25016b0c vfs_readdir +EXPORT_SYMBOL vmlinux 0x251aeaca ide_dma_host_off +EXPORT_SYMBOL vmlinux 0x25338392 dquot_transfer +EXPORT_SYMBOL vmlinux 0x254f4cf7 input_set_capability +EXPORT_SYMBOL vmlinux 0x257e211b pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x2581543c complete +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25c16f89 pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25d1be6b proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x25e9a371 atm_charge +EXPORT_SYMBOL vmlinux 0x25ed0eb3 kernel_accept +EXPORT_SYMBOL vmlinux 0x260972bf dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0x261d12e0 new_inode +EXPORT_SYMBOL vmlinux 0x26442e7e del_timer +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x265eda43 free_task +EXPORT_SYMBOL vmlinux 0x26b0294b pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x27029e3a ide_init_drive_cmd +EXPORT_SYMBOL vmlinux 0x27061170 nf_log_register +EXPORT_SYMBOL vmlinux 0x271e60fc i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x271f4d2a finish_wait +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c4b11b __user_walk_fd +EXPORT_SYMBOL vmlinux 0x282b075d netlink_unicast +EXPORT_SYMBOL vmlinux 0x282eed93 fb_class +EXPORT_SYMBOL vmlinux 0x28337722 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x2848e4ed tty_name +EXPORT_SYMBOL vmlinux 0x286e5376 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x287af6b9 alloc_file +EXPORT_SYMBOL vmlinux 0x2882ab75 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x288b24bc arp_send +EXPORT_SYMBOL vmlinux 0x2897aed6 task_no_data_intr +EXPORT_SYMBOL vmlinux 0x28c473e1 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x28c9cc05 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f35813 scnprintf +EXPORT_SYMBOL vmlinux 0x2923d64a macio_release_resources +EXPORT_SYMBOL vmlinux 0x293d847f follow_down +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2956b59a elevator_exit +EXPORT_SYMBOL vmlinux 0x295deff6 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x29c5cb16 bio_add_page +EXPORT_SYMBOL vmlinux 0x29e58f32 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a362c67 register_8022_client +EXPORT_SYMBOL vmlinux 0x2a5c2a58 of_unregister_driver +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ac33178 register_atm_ioctl +EXPORT_SYMBOL vmlinux 0x2b0b412a pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x2b0f4b28 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x2b4ff4d3 mntput_no_expire +EXPORT_SYMBOL vmlinux 0x2b54ace5 d_rehash +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2b726de2 free_netdev +EXPORT_SYMBOL vmlinux 0x2b7672db genl_register_ops +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2be0ed44 do_splice_to +EXPORT_SYMBOL vmlinux 0x2be3c7ba __bread +EXPORT_SYMBOL vmlinux 0x2c01d9d5 is_container_init +EXPORT_SYMBOL vmlinux 0x2c0d5e63 prepare_binprm +EXPORT_SYMBOL vmlinux 0x2c239695 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x2c4feffe llc_add_pack +EXPORT_SYMBOL vmlinux 0x2c6aee22 textsearch_register +EXPORT_SYMBOL vmlinux 0x2cb34087 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x2cb455bf iput +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cd9b335 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2ce9a03b sockfd_lookup +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d1530b5 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x2d29e50a idr_get_new +EXPORT_SYMBOL vmlinux 0x2d59bb58 filemap_flush +EXPORT_SYMBOL vmlinux 0x2d814d2e skb_split +EXPORT_SYMBOL vmlinux 0x2d9cfee2 dev_driver_string +EXPORT_SYMBOL vmlinux 0x2dacaa8b generic_make_request +EXPORT_SYMBOL vmlinux 0x2db41882 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e1e7b7a generic_writepages +EXPORT_SYMBOL vmlinux 0x2e31ba03 release_sock +EXPORT_SYMBOL vmlinux 0x2e42ad6d alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x2e5e08f5 pci_release_region +EXPORT_SYMBOL vmlinux 0x2e6c1eb6 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x2ea8ba6b set_bdi_congested +EXPORT_SYMBOL vmlinux 0x2ec2a803 kernel_connect +EXPORT_SYMBOL vmlinux 0x2ecd6169 brioctl_set +EXPORT_SYMBOL vmlinux 0x2f29c53b bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x2f74250c per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0x2f9922b6 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x2f9bc6d8 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x2fa8d4ab lookup_one_len +EXPORT_SYMBOL vmlinux 0x2fc82006 of_unregister_platform_driver +EXPORT_SYMBOL vmlinux 0x2fccacc4 serio_open +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2fdd1f03 tty_check_change +EXPORT_SYMBOL vmlinux 0x3047171c i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x307aef98 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x309513f8 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x309a1715 fb_blank +EXPORT_SYMBOL vmlinux 0x30b452c6 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x30ebe8e0 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31448a4a mempool_create_node +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x316f3b39 register_qdisc +EXPORT_SYMBOL vmlinux 0x31a0cba3 proc_root_fs +EXPORT_SYMBOL vmlinux 0x31c119db invalidate_partition +EXPORT_SYMBOL vmlinux 0x31d4f7dc sget +EXPORT_SYMBOL vmlinux 0x3264d532 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x32894d7a sk_reset_timer +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x32bb1365 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x32eb8e8b percpu_counter_init +EXPORT_SYMBOL vmlinux 0x32f10df6 sock_no_connect +EXPORT_SYMBOL vmlinux 0x33246f4f sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x334f6b31 per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x33813296 copy_io_context +EXPORT_SYMBOL vmlinux 0x33934162 release_firmware +EXPORT_SYMBOL vmlinux 0x339d4841 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x33b3949a add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x33b69906 proc_root_driver +EXPORT_SYMBOL vmlinux 0x33b7a1fd qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x340cbd6c __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x343e3bab __pci_register_driver +EXPORT_SYMBOL vmlinux 0x345b9460 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x3463de0c per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x34924748 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x349be4a9 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34d41999 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x34d8dbb1 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x34f65804 ip_dev_find +EXPORT_SYMBOL vmlinux 0x35146399 bioset_free +EXPORT_SYMBOL vmlinux 0x353481ad remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x3537fd6e tty_devnum +EXPORT_SYMBOL vmlinux 0x359123e3 __rta_fill +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35da9e22 get_io_context +EXPORT_SYMBOL vmlinux 0x35f168ca vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x362a20da mach_chrp +EXPORT_SYMBOL vmlinux 0x3649a372 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x36557b98 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x36627306 __break_lease +EXPORT_SYMBOL vmlinux 0x369723fb inet_sendmsg +EXPORT_SYMBOL vmlinux 0x36e6fd46 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x36e71d33 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x374b9f66 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x376d94e8 kset_unregister +EXPORT_SYMBOL vmlinux 0x378cb1e1 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x37a9798f mempool_free +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x383c310e request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x385a3c8e pci_remove_bus +EXPORT_SYMBOL vmlinux 0x386110e7 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x38755f62 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x38b1e409 udplite_get_port +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38d8c432 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x38f89f26 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x39050301 unload_nls +EXPORT_SYMBOL vmlinux 0x3906b93c _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x390bb1d1 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x391a0d14 i2c_probe +EXPORT_SYMBOL vmlinux 0x3922d605 _spin_trylock +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39d4558c __down_interruptible +EXPORT_SYMBOL vmlinux 0x3a006558 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x3a073745 kill_anon_super +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a2e9379 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x3a910647 elv_rb_find +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa200ef ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0x3abdaaaf current_fs_time +EXPORT_SYMBOL vmlinux 0x3ad677c4 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x3b0450ab filp_close +EXPORT_SYMBOL vmlinux 0x3b208a60 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b4e523f neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x3ba51a5f n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be21dca register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3be3056f bdev_read_only +EXPORT_SYMBOL vmlinux 0x3c07d63f serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x3c13fabb audit_get_loginuid +EXPORT_SYMBOL vmlinux 0x3c75e797 deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0x3c9c0f50 find_get_page +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cbe64a5 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cc69062 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d4263db sock_create +EXPORT_SYMBOL vmlinux 0x3dafd82f wireless_spy_update +EXPORT_SYMBOL vmlinux 0x3dd93619 kfree_skb +EXPORT_SYMBOL vmlinux 0x3ddf1edd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x3de75967 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x3dec6fd3 vcc_release_async +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e63b8f6 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x3eac5cc6 sock_wfree +EXPORT_SYMBOL vmlinux 0x3ecfbddf do_munmap +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eeb8a31 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f16a246 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f67326b misc_deregister +EXPORT_SYMBOL vmlinux 0x3f870a50 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fee1cb6 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x402dc0d7 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x40421871 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40655393 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0x4067fd54 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x40e26375 noop_qdisc +EXPORT_SYMBOL vmlinux 0x40e5fc8b block_sync_page +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40fbcd89 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x41047478 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x410c63aa call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x411f5376 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4150cba6 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x415714b6 down_read +EXPORT_SYMBOL vmlinux 0x415cf7b2 nf_reinject +EXPORT_SYMBOL vmlinux 0x41664c71 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x4168f4ff generic_block_bmap +EXPORT_SYMBOL vmlinux 0x418004af sock_wake_async +EXPORT_SYMBOL vmlinux 0x41811cd5 matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418ce74d bio_put +EXPORT_SYMBOL vmlinux 0x41bd63d9 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x41ef2515 generic_setxattr +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4220e82a nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x42931504 llc_sap_find +EXPORT_SYMBOL vmlinux 0x429328d9 _spin_lock +EXPORT_SYMBOL vmlinux 0x42c739ac blkdev_get +EXPORT_SYMBOL vmlinux 0x42d9ed52 pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x42e3bbc3 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43046e8e pci_scan_slot +EXPORT_SYMBOL vmlinux 0x43075df1 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x4313cc4b d_alloc_anon +EXPORT_SYMBOL vmlinux 0x433359c1 xrlim_allow +EXPORT_SYMBOL vmlinux 0x43478ee6 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x43486ab5 bio_clone +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4395dbc5 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x43bdd372 request_resource +EXPORT_SYMBOL vmlinux 0x43d2287f rtas +EXPORT_SYMBOL vmlinux 0x43d58435 skb_find_text +EXPORT_SYMBOL vmlinux 0x43e408eb elv_rb_del +EXPORT_SYMBOL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL vmlinux 0x44010cf7 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x4436bc2e filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x4481822b netlink_dump_start +EXPORT_SYMBOL vmlinux 0x449f1860 iunique +EXPORT_SYMBOL vmlinux 0x44a20e7c pci_find_capability +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44f627b3 bioset_create +EXPORT_SYMBOL vmlinux 0x450c65b2 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x4513227c i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x4520098c register_quota_format +EXPORT_SYMBOL vmlinux 0x45491dd9 take_over_console +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x456196af dget_locked +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45c2c598 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x45cee64c neigh_create +EXPORT_SYMBOL vmlinux 0x45e0afb3 __brelse +EXPORT_SYMBOL vmlinux 0x45e88608 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x463d74ac macio_dev_get +EXPORT_SYMBOL vmlinux 0x463f1cd5 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x46625fdc of_platform_device_create +EXPORT_SYMBOL vmlinux 0x466972c4 pci_restore_state +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4672ca71 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x467cff91 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x46a4b07e netif_rx_ni +EXPORT_SYMBOL vmlinux 0x46f52b2e handle_sysrq +EXPORT_SYMBOL vmlinux 0x47272be3 pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x47463665 input_unregister_device +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x476acc16 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b49f49 proc_mkdir +EXPORT_SYMBOL vmlinux 0x47c72a26 blk_init_tags +EXPORT_SYMBOL vmlinux 0x47d43749 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x47d5ebf5 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x47d77758 blk_plug_device +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48afafdb of_get_address +EXPORT_SYMBOL vmlinux 0x48f07026 key_create_or_update +EXPORT_SYMBOL vmlinux 0x491e7f86 lock_may_read +EXPORT_SYMBOL vmlinux 0x4937ccab nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x499b7597 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x49ab89f3 alloc_trdev +EXPORT_SYMBOL vmlinux 0x4a0e3389 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x4a22d19d input_unregister_handler +EXPORT_SYMBOL vmlinux 0x4a30aa45 matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a444502 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x4a586432 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x4a8702be panic_notifier_list +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4ac1c212 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x4ac48793 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x4adcf0f2 of_node_put +EXPORT_SYMBOL vmlinux 0x4b17de47 _read_lock_bh +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b33ebb0 devm_iounmap +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b4ecc05 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4b8b1743 dst_alloc +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bc50f18 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x4bee66fb vfs_create +EXPORT_SYMBOL vmlinux 0x4bf45e33 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x4c10a9d4 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c203d09 neigh_lookup +EXPORT_SYMBOL vmlinux 0x4c3af445 __request_region +EXPORT_SYMBOL vmlinux 0x4c44e6fc proto_unregister +EXPORT_SYMBOL vmlinux 0x4c7edb2a of_node_get +EXPORT_SYMBOL vmlinux 0x4cb4669b tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbe265f bio_map_kern +EXPORT_SYMBOL vmlinux 0x4cf5c1d6 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x4d0ca3e0 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x4d2a366c skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x4d2a5c19 rwsem_wake +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d78e6fe end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x4d81d024 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x4d92a4c3 sk_run_filter +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4db30029 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x4dc80d08 seq_read +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfbb71d key_payload_reserve +EXPORT_SYMBOL vmlinux 0x4dfe5e81 simple_write_end +EXPORT_SYMBOL vmlinux 0x4e1b0cf8 neigh_table_init +EXPORT_SYMBOL vmlinux 0x4e1cdd25 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e97fd96 neigh_update +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea22801 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x4eb08855 ide_execute_command +EXPORT_SYMBOL vmlinux 0x4ed50c2a page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x4f70dc4a bio_alloc +EXPORT_SYMBOL vmlinux 0x4f7433e9 path_release +EXPORT_SYMBOL vmlinux 0x4f8005d1 sock_no_listen +EXPORT_SYMBOL vmlinux 0x4f80fbb1 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x4f904fd6 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x4f946041 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x4f99be03 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x4fa148b6 mpc52xx_find_and_map +EXPORT_SYMBOL vmlinux 0x4fc1fe68 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fedfa82 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x5028f9a0 ip_defrag +EXPORT_SYMBOL vmlinux 0x504ad90b get_immrbase +EXPORT_SYMBOL vmlinux 0x50572bb5 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x507c88e5 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x50816473 netdev_state_change +EXPORT_SYMBOL vmlinux 0x50acb32e of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x50af8e9d pagecache_write_end +EXPORT_SYMBOL vmlinux 0x50b15c53 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511e0461 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x51431c11 udp_proc_register +EXPORT_SYMBOL vmlinux 0x5157a651 of_get_next_child +EXPORT_SYMBOL vmlinux 0x51589628 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x516cc24e pre_task_out_intr +EXPORT_SYMBOL vmlinux 0x51b713d9 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x51e3eef6 generic_permission +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x521902f8 secpath_dup +EXPORT_SYMBOL vmlinux 0x5228e5bc truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x5262eb3b __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x526a359d __down +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x52857adc user_revoke +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52a7207f idr_pre_get +EXPORT_SYMBOL vmlinux 0x52afae60 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x52c1950b inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52dff5c9 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x52f67475 fb_set_var +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5315f750 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x5321847d key_task_permission +EXPORT_SYMBOL vmlinux 0x5324a676 register_nls +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x532f54a5 input_inject_event +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x537b419c kobject_get +EXPORT_SYMBOL vmlinux 0x53814b45 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x538d3b54 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x53ab3228 vm_insert_page +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d5ff8c kmem_cache_size +EXPORT_SYMBOL vmlinux 0x53d91e59 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53f7ec6b register_exec_domain +EXPORT_SYMBOL vmlinux 0x540946bd input_unregister_handle +EXPORT_SYMBOL vmlinux 0x542500e2 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x54305df2 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x548806df pci_set_power_state +EXPORT_SYMBOL vmlinux 0x548c2870 ppc_md +EXPORT_SYMBOL vmlinux 0x54c6479c __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x54d5b6aa of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54eb2b19 tcp_poll +EXPORT_SYMBOL vmlinux 0x54fc0d75 kthread_bind +EXPORT_SYMBOL vmlinux 0x551b201d sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x553641ed find_lock_page +EXPORT_SYMBOL vmlinux 0x5558ee2b inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL vmlinux 0x557263b2 inet_bind +EXPORT_SYMBOL vmlinux 0x5574187b generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x5585ece6 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x55895ed7 seq_open_private +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55ed160f d_move +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x5681ce0c matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a1cbfd sock_no_poll +EXPORT_SYMBOL vmlinux 0x56b2f11f simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x56b4c0a6 vc_resize +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56edceeb cpufreq_debug_printk +EXPORT_SYMBOL vmlinux 0x56fd6045 __kill_fasync +EXPORT_SYMBOL vmlinux 0x570d1fab blk_register_region +EXPORT_SYMBOL vmlinux 0x57261d79 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x576f49c7 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x57b8072a gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x57b8332a igrab +EXPORT_SYMBOL vmlinux 0x57be2e06 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0x57f10eba seq_escape +EXPORT_SYMBOL vmlinux 0x580c05f7 devm_request_irq +EXPORT_SYMBOL vmlinux 0x5816391f pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x582a5fc8 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5860ca07 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x5865f2bf fb_pan_display +EXPORT_SYMBOL vmlinux 0x58a134ca skb_clone +EXPORT_SYMBOL vmlinux 0x58ccf157 vmap +EXPORT_SYMBOL vmlinux 0x5913913a node_states +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x5942a564 end_page_writeback +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x597c7af6 file_fsync +EXPORT_SYMBOL vmlinux 0x599b7a66 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59baec63 generic_osync_inode +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59f40525 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x5a00af95 dma_pool_free +EXPORT_SYMBOL vmlinux 0x5a1269d6 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5a1276ef pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x5a1de60f unbind_con_driver +EXPORT_SYMBOL vmlinux 0x5a5fe705 kunmap_high +EXPORT_SYMBOL vmlinux 0x5a678abb block_write_end +EXPORT_SYMBOL vmlinux 0x5a69f4dc wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5ae64768 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x5af13d8c key_type_keyring +EXPORT_SYMBOL vmlinux 0x5b07584b genl_sock +EXPORT_SYMBOL vmlinux 0x5b1cf822 get_fs_type +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b471d5f pci_iounmap +EXPORT_SYMBOL vmlinux 0x5b64aa49 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x5b81cd32 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x5bc7494b xfrm_nl +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c3e34f5 swap_io_context +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c6056a5 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0x5c751c5c pci_dev_put +EXPORT_SYMBOL vmlinux 0x5cbb17bb generic_fillattr +EXPORT_SYMBOL vmlinux 0x5cc5b658 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x5cca3db3 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x5ccd0722 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x5d17518f schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x5d2047f9 set_anon_super +EXPORT_SYMBOL vmlinux 0x5d3de9fd qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x5d83ba43 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x5d96435e unlock_buffer +EXPORT_SYMBOL vmlinux 0x5d97449b ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5ddeee3c generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5dfe1633 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x5e1a1587 blk_unplug +EXPORT_SYMBOL vmlinux 0x5e38f345 __grab_cache_page +EXPORT_SYMBOL vmlinux 0x5e42f101 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x5e895b9d posix_acl_permission +EXPORT_SYMBOL vmlinux 0x5e8f1bd6 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x5e951539 wake_up_process +EXPORT_SYMBOL vmlinux 0x5eac664b inet_release +EXPORT_SYMBOL vmlinux 0x5ec24638 input_allocate_device +EXPORT_SYMBOL vmlinux 0x5f0c5570 cond_resched_lock +EXPORT_SYMBOL vmlinux 0x5f12d071 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x5f2e11c5 d_splice_alias +EXPORT_SYMBOL vmlinux 0x5f3e4d3d xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x5f51e8fc xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x5f54b758 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x602fa5ba pci_enable_device +EXPORT_SYMBOL vmlinux 0x602fc5ca dma_pool_create +EXPORT_SYMBOL vmlinux 0x604d770f atm_alloc_charge +EXPORT_SYMBOL vmlinux 0x6074c2bd of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60b953d6 __kfree_skb +EXPORT_SYMBOL vmlinux 0x60e67bff blk_sync_queue +EXPORT_SYMBOL vmlinux 0x60ef99a6 matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0x60f3a6dc generic_listxattr +EXPORT_SYMBOL vmlinux 0x60f7af6a pci_busdev_to_OF_node +EXPORT_SYMBOL vmlinux 0x6110e4a0 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x6112e112 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61451199 input_release_device +EXPORT_SYMBOL vmlinux 0x614fe4c8 vc_cons +EXPORT_SYMBOL vmlinux 0x6172691e end_request +EXPORT_SYMBOL vmlinux 0x6177930d tcp_close +EXPORT_SYMBOL vmlinux 0x619d1d2f seq_lseek +EXPORT_SYMBOL vmlinux 0x61ab8064 ip_route_output_key +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bca216 try_to_release_page +EXPORT_SYMBOL vmlinux 0x61d0850e inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x61d36a1f tty_set_operations +EXPORT_SYMBOL vmlinux 0x61e7157a key_unlink +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x621be407 input_close_device +EXPORT_SYMBOL vmlinux 0x6220b988 _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x62493493 kobject_unregister +EXPORT_SYMBOL vmlinux 0x6264650b skb_seq_read +EXPORT_SYMBOL vmlinux 0x627256d2 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x62904fd0 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x62d0fd64 audit_log_end +EXPORT_SYMBOL vmlinux 0x62db0604 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x62e48a23 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x630a23e1 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x63150e06 clk_get_parent +EXPORT_SYMBOL vmlinux 0x634501b7 qdisc_reset +EXPORT_SYMBOL vmlinux 0x6385b790 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x6396b0f5 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x63db96b5 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x645ee628 sock_i_ino +EXPORT_SYMBOL vmlinux 0x6463dd0e fb_show_logo +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x646cf5b0 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x647499c9 __seq_open_private +EXPORT_SYMBOL vmlinux 0x647b293b __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x648c3dc9 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bfad3d i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x64cda79b security_inode_init_security +EXPORT_SYMBOL vmlinux 0x64da563b pci_read_irq_line +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x656d6fbd inet_frags_init +EXPORT_SYMBOL vmlinux 0x6592692a flush_old_exec +EXPORT_SYMBOL vmlinux 0x65b882f0 bd_claim +EXPORT_SYMBOL vmlinux 0x65bb553a generic_file_open +EXPORT_SYMBOL vmlinux 0x65c2261b key_revoke +EXPORT_SYMBOL vmlinux 0x65d0b6aa call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x65d366d6 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x65f4af5f prepare_to_wait +EXPORT_SYMBOL vmlinux 0x65f6ec10 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x661b533a __dst_free +EXPORT_SYMBOL vmlinux 0x664ae497 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x6651f4f1 unregister_netdevice +EXPORT_SYMBOL vmlinux 0x6666d016 keyring_search +EXPORT_SYMBOL vmlinux 0x6669d646 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x66769439 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x669db13c input_open_device +EXPORT_SYMBOL vmlinux 0x66c4417a cdev_add +EXPORT_SYMBOL vmlinux 0x66ca5b25 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66f10c71 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x6714344a vfs_quota_sync +EXPORT_SYMBOL vmlinux 0x671bf0a0 adb_client_list +EXPORT_SYMBOL vmlinux 0x6746fc71 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x676e3291 down_write +EXPORT_SYMBOL vmlinux 0x6798ac38 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x679b5ff3 vfs_link +EXPORT_SYMBOL vmlinux 0x67b5e6cb generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x67eeb519 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x680a3f36 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x68628e77 _write_lock_bh +EXPORT_SYMBOL vmlinux 0x68811b8f matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0x6886796f pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x68cfbef4 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x68e1e80f call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x690da69a find_or_create_page +EXPORT_SYMBOL vmlinux 0x69191763 devm_free_irq +EXPORT_SYMBOL vmlinux 0x692be8fa sysctl_string +EXPORT_SYMBOL vmlinux 0x6943900d kernel_getpeername +EXPORT_SYMBOL vmlinux 0x69513f9e pci_alloc_consistent +EXPORT_SYMBOL vmlinux 0x69874520 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x6989875b add_wait_queue +EXPORT_SYMBOL vmlinux 0x6989a769 vsnprintf +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69c3419b ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69d12bf8 pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x6a0342e3 kill_pgrp +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0f4503 netdev_set_master +EXPORT_SYMBOL vmlinux 0x6a26319d of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5fa2cc eth_header_cache +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acfd504 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x6ad33ea7 clocksource_register +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b31f759 input_register_handle +EXPORT_SYMBOL vmlinux 0x6b5b1141 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0x6b5d7d42 kthread_create +EXPORT_SYMBOL vmlinux 0x6bc83764 free_buffer_head +EXPORT_SYMBOL vmlinux 0x6becd602 pci_find_device +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2a9250 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x6c313c55 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x6c3f1860 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c687b01 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x6cbb4ff3 kthread_stop +EXPORT_SYMBOL vmlinux 0x6cc3dafc directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cdf7caa fd_install +EXPORT_SYMBOL vmlinux 0x6cf0fa11 unregister_snap_client +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d3a6367 __pagevec_release +EXPORT_SYMBOL vmlinux 0x6d40b84b __scm_send +EXPORT_SYMBOL vmlinux 0x6d540bac fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x6d625f3b rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x6d6a4ef5 dquot_drop +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6daf3a17 fb_get_mode +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfa2c42 idr_for_each +EXPORT_SYMBOL vmlinux 0x6e208455 sock_init_data +EXPORT_SYMBOL vmlinux 0x6e21166c matrox_G100 +EXPORT_SYMBOL vmlinux 0x6e2ece60 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6e440b58 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x6e4cd2d7 clear_inode +EXPORT_SYMBOL vmlinux 0x6e5d2923 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x6e63f7e3 pci_enable_wake +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e85a14e filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb7dbf5 ide_spin_wait_hwgroup +EXPORT_SYMBOL vmlinux 0x6ebd7e0a vfs_rename +EXPORT_SYMBOL vmlinux 0x6ed0498a skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x6efce9a6 bdget +EXPORT_SYMBOL vmlinux 0x6f0c9aa3 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x6f12f00e ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0x6f251d97 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x6f33a56a ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0x6f50e2fe keyring_clear +EXPORT_SYMBOL vmlinux 0x6f57b0c8 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x6f85c2c9 unlock_page +EXPORT_SYMBOL vmlinux 0x6fae5c88 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fccdcce machine_id +EXPORT_SYMBOL vmlinux 0x7000085b pci_remove_rom +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x701b1753 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705c3e92 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x705fe605 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x708b77b6 default_hwif_mmiops +EXPORT_SYMBOL vmlinux 0x70a5d031 __lock_page +EXPORT_SYMBOL vmlinux 0x70b0e897 _read_unlock_irq +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70c88222 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x70f0df64 km_state_notify +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x716af6c1 mutex_unlock +EXPORT_SYMBOL vmlinux 0x717242e7 rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x718ea5d5 skb_make_writable +EXPORT_SYMBOL vmlinux 0x71924cf6 of_get_property +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x72285f2e key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x7239d241 __alloc_skb +EXPORT_SYMBOL vmlinux 0x725d0cc5 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x72711f07 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x7276ffff tc_classify +EXPORT_SYMBOL vmlinux 0x728cae95 proc_symlink +EXPORT_SYMBOL vmlinux 0x729c5390 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72ce90c7 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x731e72e0 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x731ffa74 end_dequeued_request +EXPORT_SYMBOL vmlinux 0x734ad71a gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x7376e653 matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x73aa9e45 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x73d55f37 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x74135327 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x74491fdf generic_delete_inode +EXPORT_SYMBOL vmlinux 0x746a0da7 dev_load +EXPORT_SYMBOL vmlinux 0x746e913b init_mm +EXPORT_SYMBOL vmlinux 0x746fb6b5 inode_double_lock +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7497385d iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74f3cee7 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x7512cfca iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x756e80f7 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x7579eccb iget_locked +EXPORT_SYMBOL vmlinux 0x75c7ea6d d_alloc_root +EXPORT_SYMBOL vmlinux 0x75f4fe35 of_release_dev +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761559cd genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x7619461d may_umount_tree +EXPORT_SYMBOL vmlinux 0x762543dc d_alloc +EXPORT_SYMBOL vmlinux 0x7631478c deny_write_access +EXPORT_SYMBOL vmlinux 0x76335492 skb_dequeue +EXPORT_SYMBOL vmlinux 0x7633fbc4 generic_setlease +EXPORT_SYMBOL vmlinux 0x7661091c in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x76767dd1 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x76b381f0 cdev_del +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c8907a tcp_ioctl +EXPORT_SYMBOL vmlinux 0x76cc2e06 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x76cdaf3b inet_select_addr +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d9b876 clk_set_rate +EXPORT_SYMBOL vmlinux 0x76f1d866 kobject_put +EXPORT_SYMBOL vmlinux 0x76f9dadc set_page_dirty +EXPORT_SYMBOL vmlinux 0x771a664a sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x773c7956 of_dev_put +EXPORT_SYMBOL vmlinux 0x776c2575 pskb_copy +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x77d192ca unregister_nls +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77efc13b con_is_bound +EXPORT_SYMBOL vmlinux 0x780c9d5c simple_transaction_release +EXPORT_SYMBOL vmlinux 0x781c6a27 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x7825a804 __first_cpu +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x785b3952 do_SAK +EXPORT_SYMBOL vmlinux 0x78745d3a d_delete +EXPORT_SYMBOL vmlinux 0x787880e5 init_net +EXPORT_SYMBOL vmlinux 0x787a4306 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x78c3441a proc_bus +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x7905f63d xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x7913adac __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x798ede6d idr_replace +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79e3908e kmem_cache_create +EXPORT_SYMBOL vmlinux 0x7a01860a blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x7a024a56 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x7a2bb658 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x7a384af5 of_register_driver +EXPORT_SYMBOL vmlinux 0x7a399155 tcf_em_register +EXPORT_SYMBOL vmlinux 0x7a66a64c get_sb_single +EXPORT_SYMBOL vmlinux 0x7a78dfe9 kill_pid +EXPORT_SYMBOL vmlinux 0x7a7ddde4 ip_fragment +EXPORT_SYMBOL vmlinux 0x7afa6b57 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x7b355c41 of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x7b3ad835 skb_queue_head +EXPORT_SYMBOL vmlinux 0x7b4882ac mutex_lock +EXPORT_SYMBOL vmlinux 0x7b5d883a netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x7b5dfef2 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b6b46bf pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x7b6c6aca write_one_page +EXPORT_SYMBOL vmlinux 0x7bb27f83 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x7bc613c6 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4c9cdf dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c775173 __kfifo_put +EXPORT_SYMBOL vmlinux 0x7c8472ae vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9210a8 i2c_transfer +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c937929 vfs_read +EXPORT_SYMBOL vmlinux 0x7c9f8e96 single_release +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb861b3 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x7cb88910 dev_change_flags +EXPORT_SYMBOL vmlinux 0x7cca92e8 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x7cfce489 sock_release +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d265e20 __elv_add_request +EXPORT_SYMBOL vmlinux 0x7d27b8f9 force_sig +EXPORT_SYMBOL vmlinux 0x7d72d245 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0x7d7c6f5c tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7d8f1203 mac_find_mode +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de5eafe up_read +EXPORT_SYMBOL vmlinux 0x7df5da3d generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x7dffa28c ide_do_reset +EXPORT_SYMBOL vmlinux 0x7e5919df udp_hash_lock +EXPORT_SYMBOL vmlinux 0x7e613127 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x7e6ac4cc cdev_alloc +EXPORT_SYMBOL vmlinux 0x7e90b18a framebuffer_release +EXPORT_SYMBOL vmlinux 0x7e986d9d cpu_possible_map +EXPORT_SYMBOL vmlinux 0x7ea49ccd blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x7ecfe9ff dev_alloc_name +EXPORT_SYMBOL vmlinux 0x7eddb88c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x7f093981 seq_open +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f566429 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x7f849d9a dquot_initialize +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fbf5cf5 of_match_device +EXPORT_SYMBOL vmlinux 0x7fde4f37 __mutex_init +EXPORT_SYMBOL vmlinux 0x7fe5dc55 __lookup_hash +EXPORT_SYMBOL vmlinux 0x8007efdf seq_path +EXPORT_SYMBOL vmlinux 0x800c4ec8 blk_start_queue +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x802134dd __netif_schedule +EXPORT_SYMBOL vmlinux 0x8032974d module_refcount +EXPORT_SYMBOL vmlinux 0x803a1b90 get_super +EXPORT_SYMBOL vmlinux 0x80428c80 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x8077df6a filp_open +EXPORT_SYMBOL vmlinux 0x8093b471 lease_modify +EXPORT_SYMBOL vmlinux 0x80a19034 iget5_locked +EXPORT_SYMBOL vmlinux 0x80cc7af9 ioremap +EXPORT_SYMBOL vmlinux 0x8128a140 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815588a6 clk_enable +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81717d14 inet_ioctl +EXPORT_SYMBOL vmlinux 0x81a9119e alloc_fddidev +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82112f18 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x824ce9c1 sock_create_kern +EXPORT_SYMBOL vmlinux 0x824ff2d7 put_filp +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8262b357 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x82cfdc2e textsearch_prepare +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82ff38be register_sysrq_key +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b1aca3 __nla_put +EXPORT_SYMBOL vmlinux 0x83d85b5b simple_fill_super +EXPORT_SYMBOL vmlinux 0x83e3f3f5 kobject_set_name +EXPORT_SYMBOL vmlinux 0x83e50814 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x83ebbf64 ide_dma_off +EXPORT_SYMBOL vmlinux 0x84085b58 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x841c01a7 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x8451f83b sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x84a85d1a pci_find_slot +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84b9a2e6 audit_log_format +EXPORT_SYMBOL vmlinux 0x84bf362b shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x84c437d6 compute_creds +EXPORT_SYMBOL vmlinux 0x84e8cf45 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x84f42063 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x8505ffce fddi_type_trans +EXPORT_SYMBOL vmlinux 0x8540b5be sleep_on +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x8548c457 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x8559e68d mach_lite5200 +EXPORT_SYMBOL vmlinux 0x8581127d generic_read_dir +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x85902f79 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x859e76db clk_get +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x861ee46c ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x86280bb5 put_page +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86b19f9b schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x86d80a87 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8735f092 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x873760b0 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x8739e470 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x875e6cd8 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x8774b6f1 sk_alloc +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x87924288 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x879c0468 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x87d6c52d blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8883c8e9 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x889f4444 end_that_request_first +EXPORT_SYMBOL vmlinux 0x891d4521 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x8960b0fb ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89a6ad91 sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x89c19f17 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x8a316ec9 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x8a666ef1 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a90d932 allocate_resource +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ad2cb6e get_write_access +EXPORT_SYMBOL vmlinux 0x8b00b12e mnt_unpin +EXPORT_SYMBOL vmlinux 0x8b21ee85 sync_inode +EXPORT_SYMBOL vmlinux 0x8b3930fe blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x8b3a73b4 struct_module +EXPORT_SYMBOL vmlinux 0x8b3b6937 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x8b3bddb1 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x8b57e769 mem_map +EXPORT_SYMBOL vmlinux 0x8b87c40a generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x8b91e4b1 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x8bb33e7d __release_region +EXPORT_SYMBOL vmlinux 0x8bcc3a3a _spin_lock_bh +EXPORT_SYMBOL vmlinux 0x8bd3febf block_commit_write +EXPORT_SYMBOL vmlinux 0x8be2224f set_binfmt +EXPORT_SYMBOL vmlinux 0x8bf02cc2 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x8c146ae5 register_console +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1ccc43 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x8c28c2d7 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x8c2ab271 sk_common_release +EXPORT_SYMBOL vmlinux 0x8c60946f DAC1064_global_init +EXPORT_SYMBOL vmlinux 0x8c8ea918 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8ca9d852 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cf0d73d of_get_mac_address +EXPORT_SYMBOL vmlinux 0x8d049bb6 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x8d1bd4ae textsearch_destroy +EXPORT_SYMBOL vmlinux 0x8d374f52 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d39bdeb kobject_register +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d588bb3 fasync_helper +EXPORT_SYMBOL vmlinux 0x8d6ef862 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x8d841cb7 register_framebuffer +EXPORT_SYMBOL vmlinux 0x8daef5c3 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x8dd2076b contig_page_data +EXPORT_SYMBOL vmlinux 0x8df66510 inet_shutdown +EXPORT_SYMBOL vmlinux 0x8df6eeac vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e0be0bf atm_dev_register +EXPORT_SYMBOL vmlinux 0x8e1559a1 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x8e2419be xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x8e2e7fb6 nf_afinfo +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8ec235f8 add_to_page_cache +EXPORT_SYMBOL vmlinux 0x8f4dafac generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x8f5e6324 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x8f5f76dd generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x8f614e6d mpage_readpages +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f9c2f9c iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x8fb4d075 f_setown +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8fd8b7bc _write_lock_irq +EXPORT_SYMBOL vmlinux 0x90023ee5 no_llseek +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9026f671 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x90397995 __ide_dma_end +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x905da541 find_inode_number +EXPORT_SYMBOL vmlinux 0x9070b3f2 ioport_resource +EXPORT_SYMBOL vmlinux 0x908593ea inet_register_protosw +EXPORT_SYMBOL vmlinux 0x90a22cbc con_copy_unimap +EXPORT_SYMBOL vmlinux 0x90d0754a simple_transaction_get +EXPORT_SYMBOL vmlinux 0x90d810e4 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x910f55c8 i2c_master_send +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x91319279 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x9150ff32 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x9155e4f1 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x916aa399 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x91846f67 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x918d3ede xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91d831dc atm_init_aal5 +EXPORT_SYMBOL vmlinux 0x91fc19b9 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x9255ea31 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x927e08bd nobh_write_begin +EXPORT_SYMBOL vmlinux 0x9283df42 skb_pad +EXPORT_SYMBOL vmlinux 0x9294d148 pci_find_bus +EXPORT_SYMBOL vmlinux 0x92b7579b create_proc_entry +EXPORT_SYMBOL vmlinux 0x92d1c0a4 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x92e4e128 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x931d2521 mempool_resize +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x932e53f5 set_device_ro +EXPORT_SYMBOL vmlinux 0x9333b645 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x933bef99 vc_lock_resize +EXPORT_SYMBOL vmlinux 0x93a01768 input_flush_device +EXPORT_SYMBOL vmlinux 0x93a3ef49 dev_open +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b422b9 block_write_full_page +EXPORT_SYMBOL vmlinux 0x93c6385a vcc_insert_socket +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93d3f7ea ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x93f84ca8 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941841e4 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x943ce6ef cfb_fillrect +EXPORT_SYMBOL vmlinux 0x94637a7f seq_printf +EXPORT_SYMBOL vmlinux 0x94cd2db0 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x94e513e1 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x94e6dec3 init_task +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x9526ceee blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x952deeee km_query +EXPORT_SYMBOL vmlinux 0x952e843b machine_is_compatible +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x956ebf15 subsystem_unregister +EXPORT_SYMBOL vmlinux 0x958b9cac textsearch_unregister +EXPORT_SYMBOL vmlinux 0x95b90f72 matrox_mystique +EXPORT_SYMBOL vmlinux 0x95ca330e netif_rx +EXPORT_SYMBOL vmlinux 0x95eb4f52 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x95fac8e0 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x9638cc28 cpu_present_map +EXPORT_SYMBOL vmlinux 0x96593890 irq_desc +EXPORT_SYMBOL vmlinux 0x967e431e ide_dma_timeout +EXPORT_SYMBOL vmlinux 0x9693e8cd blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x96adc684 of_platform_bus_type +EXPORT_SYMBOL vmlinux 0x96c98233 _tlbie +EXPORT_SYMBOL vmlinux 0x96d56018 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x97006dea dquot_commit +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x9727c39a block_truncate_page +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x979127c4 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x980484e1 ide_hwifs +EXPORT_SYMBOL vmlinux 0x980c0190 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x98175033 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x983747c6 simple_getattr +EXPORT_SYMBOL vmlinux 0x984301e0 of_get_pci_address +EXPORT_SYMBOL vmlinux 0x9866a10c xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x989d4082 _write_trylock +EXPORT_SYMBOL vmlinux 0x98ad9af3 register_filesystem +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98c1a63a of_get_parent +EXPORT_SYMBOL vmlinux 0x98cfe983 __scm_destroy +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x99007bc4 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x991488c6 get_user_pages +EXPORT_SYMBOL vmlinux 0x99505359 __up +EXPORT_SYMBOL vmlinux 0x996b2110 set_irq_chip +EXPORT_SYMBOL vmlinux 0x9974794c SELECT_DRIVE +EXPORT_SYMBOL vmlinux 0x9982a5c2 simple_rename +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99be9143 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99ca280e set_context +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99dd1451 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99ef507e dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a366b8f qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x9a5d32f1 page_put_link +EXPORT_SYMBOL vmlinux 0x9a79037f icmp_send +EXPORT_SYMBOL vmlinux 0x9a8f2157 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x9af992e9 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b0dcb7c I_BDEV +EXPORT_SYMBOL vmlinux 0x9b0f1de9 km_waitq +EXPORT_SYMBOL vmlinux 0x9b0fb50a __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b7ca372 open_bdev_excl +EXPORT_SYMBOL vmlinux 0x9b88c379 km_policy_notify +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bea637d blk_get_queue +EXPORT_SYMBOL vmlinux 0x9bea81b0 ipv4_specific +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c2af354 reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x9c540b4b matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x9c6d7b88 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9ce103a0 down_write_trylock +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ce856f4 unregister_8022_client +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cf5f43a stop_tty +EXPORT_SYMBOL vmlinux 0x9d33a893 bio_hw_segments +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9dbf1158 idr_destroy +EXPORT_SYMBOL vmlinux 0x9ddd4a6a fb_find_mode +EXPORT_SYMBOL vmlinux 0x9ddf37f8 dput +EXPORT_SYMBOL vmlinux 0x9e0c3def blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x9e4b3308 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x9e66a87e gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9ea1cbd0 nf_log_packet +EXPORT_SYMBOL vmlinux 0x9ecfbaa2 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f234302 pci_select_bars +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f39f1ea elevator_init +EXPORT_SYMBOL vmlinux 0x9f44e4e4 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x9f4b3e4d dquot_commit_info +EXPORT_SYMBOL vmlinux 0x9f75521d ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x9f92d7d2 matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb19bdb xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0xa009c2ef inet_getname +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa045c2bf phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xa059ecf1 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa0877b49 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0cc07d5 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0e44065 _read_unlock +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa1484b1f console_start +EXPORT_SYMBOL vmlinux 0xa17b6e5f __mod_timer +EXPORT_SYMBOL vmlinux 0xa1b1de11 touch_atime +EXPORT_SYMBOL vmlinux 0xa1b2e653 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1d1f7f0 register_netdev +EXPORT_SYMBOL vmlinux 0xa1d755f0 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1f316f3 __nla_reserve +EXPORT_SYMBOL vmlinux 0xa1fe5d9d unregister_binfmt +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2295149 request_key +EXPORT_SYMBOL vmlinux 0xa25fff9b skb_store_bits +EXPORT_SYMBOL vmlinux 0xa26829b9 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xa2714f66 put_tty_driver +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2d4c119 complete_all +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa350c79b pci_set_master +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa373ddfc i2c_master_recv +EXPORT_SYMBOL vmlinux 0xa3743f56 input_register_device +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a7990b tcp_check_req +EXPORT_SYMBOL vmlinux 0xa3c1a297 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xa3d5149d tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xa3e59a7a setup_arg_pages +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa418517a inode_double_unlock +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa44244c1 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xa45c63c9 bd_set_size +EXPORT_SYMBOL vmlinux 0xa48026d0 udp_prot +EXPORT_SYMBOL vmlinux 0xa49c3071 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4e5d9f0 __page_symlink +EXPORT_SYMBOL vmlinux 0xa535353b nonseekable_open +EXPORT_SYMBOL vmlinux 0xa53bd125 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xa53f2ae5 sysctl_data +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa5910181 elv_rb_add +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL vmlinux 0xa62407ad of_iomap +EXPORT_SYMBOL vmlinux 0xa6375123 blk_run_queue +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa6814433 groups_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa691900e alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0xa69520a4 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xa6acdaf8 bdi_init +EXPORT_SYMBOL vmlinux 0xa6c4ffa2 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa6f20c35 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xa71a25f0 remove_suid +EXPORT_SYMBOL vmlinux 0xa7409aaf idr_remove +EXPORT_SYMBOL vmlinux 0xa74dd988 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa759fb90 give_up_console +EXPORT_SYMBOL vmlinux 0xa76ea066 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0xa770b803 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xa78c702e ioremap_flags +EXPORT_SYMBOL vmlinux 0xa7aa70ed blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7c58451 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xa7e60e6d alloc_fcdev +EXPORT_SYMBOL vmlinux 0xa8659283 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8acffdc tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xa8d0f2ce lock_super +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa917137b pci_get_device +EXPORT_SYMBOL vmlinux 0xa922f240 _read_lock_irq +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa948280a d_instantiate +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa9701cfc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xa99189a7 sock_no_accept +EXPORT_SYMBOL vmlinux 0xa995beba names_cachep +EXPORT_SYMBOL vmlinux 0xa9aa599e dquot_free_space +EXPORT_SYMBOL vmlinux 0xa9ce23ef bmap +EXPORT_SYMBOL vmlinux 0xa9e87508 wireless_send_event +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa37b5f8 get_sb_nodev +EXPORT_SYMBOL vmlinux 0xaa410d38 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa5749e3 hippi_type_trans +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab19ad70 blk_put_queue +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab527036 fsync_bdev +EXPORT_SYMBOL vmlinux 0xab8a5e1a simple_release_fs +EXPORT_SYMBOL vmlinux 0xabb01f00 kmap_high +EXPORT_SYMBOL vmlinux 0xabd388aa kernel_bind +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabdb01ed blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xac123160 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xac33011b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac3ca448 registered_fb +EXPORT_SYMBOL vmlinux 0xac62b92d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xac689d9e kernel_read +EXPORT_SYMBOL vmlinux 0xac6f52d6 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xac70f542 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xac874a04 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xacb674bd page_readlink +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad4ebe22 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xad5e5e7f pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0xad75c0f3 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xad7bdd44 deactivate_super +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xadefa425 mach_efika +EXPORT_SYMBOL vmlinux 0xae324612 freeze_bdev +EXPORT_SYMBOL vmlinux 0xae496cac inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xae752be7 read_cache_pages +EXPORT_SYMBOL vmlinux 0xae78fe2e tty_hangup +EXPORT_SYMBOL vmlinux 0xaeadc0fe __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xaf263c87 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xafac7074 pci_map_rom +EXPORT_SYMBOL vmlinux 0xafbfa49d atm_proc_root +EXPORT_SYMBOL vmlinux 0xaff912f7 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xb005cd76 vfs_symlink +EXPORT_SYMBOL vmlinux 0xb0177e98 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb029b9de bio_init +EXPORT_SYMBOL vmlinux 0xb0306dc1 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xb076bf9c find_vma +EXPORT_SYMBOL vmlinux 0xb07c59c3 kick_iocb +EXPORT_SYMBOL vmlinux 0xb0834434 tcp_child_process +EXPORT_SYMBOL vmlinux 0xb0844234 skb_gso_segment +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e42262 ide_lock +EXPORT_SYMBOL vmlinux 0xb12e9c4d find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xb1344b42 generic_write_checks +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb166b7a8 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xb1771552 sock_i_uid +EXPORT_SYMBOL vmlinux 0xb17ac2d5 i2c_smbus_write_quick +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb192efc4 make_EII_client +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb21bd6ef adb_controller +EXPORT_SYMBOL vmlinux 0xb2311bb6 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xb248379c blk_start_queueing +EXPORT_SYMBOL vmlinux 0xb2773c53 ide_add_setting +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb292e471 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xb297a319 of_device_uevent +EXPORT_SYMBOL vmlinux 0xb2a2c7f0 register_binfmt +EXPORT_SYMBOL vmlinux 0xb2b5d071 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xb2b7dfcd llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xb2ba62b5 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xb2c969cb gen_pool_create +EXPORT_SYMBOL vmlinux 0xb2e28b42 ida_init +EXPORT_SYMBOL vmlinux 0xb2fc06a8 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xb33ff4ff simple_write_begin +EXPORT_SYMBOL vmlinux 0xb3466087 kill_block_super +EXPORT_SYMBOL vmlinux 0xb34c9f90 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c84d21 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb3f60db4 macio_request_resources +EXPORT_SYMBOL vmlinux 0xb42226fa read_dev_sector +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4485b7d mpage_writepage +EXPORT_SYMBOL vmlinux 0xb4697a3c dev_get_flags +EXPORT_SYMBOL vmlinux 0xb471f8bb tty_vhangup +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4fe50a8 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0xb5171441 g450_mnp2f +EXPORT_SYMBOL vmlinux 0xb5350cef simple_set_mnt +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb551b4e9 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xb594e138 skb_append +EXPORT_SYMBOL vmlinux 0xb5a1d8b2 inet_put_port +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5abd751 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0xb5f03388 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb62e98f2 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xb631b591 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xb6439c4e _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0xb64729a0 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xb651c3b3 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb65acce5 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xb66930af unregister_console +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6e6d99d clk_disable +EXPORT_SYMBOL vmlinux 0xb6e6e468 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb6f52535 cdev_init +EXPORT_SYMBOL vmlinux 0xb6ff27a7 idr_init +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb71a243f inet_del_protocol +EXPORT_SYMBOL vmlinux 0xb73463fd nf_setsockopt +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb7889007 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xb7abfc44 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7f28374 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb85ea707 udp_poll +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8e973d1 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xb8f68c5a proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xb92f3cca close_bdev_excl +EXPORT_SYMBOL vmlinux 0xb93e3b8a tcp_prot +EXPORT_SYMBOL vmlinux 0xb94d4760 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xb96b1b5c bd_release +EXPORT_SYMBOL vmlinux 0xb9c15c30 ide_set_handler +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xb9ebfb09 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xba01ebb5 blkdev_put +EXPORT_SYMBOL vmlinux 0xba081457 ida_get_new +EXPORT_SYMBOL vmlinux 0xba15e700 pci_match_id +EXPORT_SYMBOL vmlinux 0xba468b41 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5b0537 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xba9e9560 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xbac3a349 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xbacf8bc6 ide_wait_stat +EXPORT_SYMBOL vmlinux 0xbae78f4a end_that_request_last +EXPORT_SYMBOL vmlinux 0xbb0dd30d dst_destroy +EXPORT_SYMBOL vmlinux 0xbb10996e arp_create +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb30136a mpage_readpage +EXPORT_SYMBOL vmlinux 0xbb3ddf27 sock_no_getname +EXPORT_SYMBOL vmlinux 0xbb4d2451 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xbb56ef4c remote_llseek +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb5ee17a xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xbb7a91dc _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xbb7af99b nf_register_hook +EXPORT_SYMBOL vmlinux 0xbb964173 blk_complete_request +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbac12dd ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbcff3ac module_put +EXPORT_SYMBOL vmlinux 0xbc01aebd __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xbc0c78fc proc_clear_tty +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc7dc37f xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xbc9a4a89 soft_cursor +EXPORT_SYMBOL vmlinux 0xbcc0931f unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xbce7175e __breadahead +EXPORT_SYMBOL vmlinux 0xbcf6da66 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xbd142efe ll_rw_block +EXPORT_SYMBOL vmlinux 0xbd193a9c request_firmware +EXPORT_SYMBOL vmlinux 0xbd4d6d4e pagevec_lookup +EXPORT_SYMBOL vmlinux 0xbd50ca8e destroy_EII_client +EXPORT_SYMBOL vmlinux 0xbd71f3ca tr_type_trans +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd9ab570 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdbf1dbe __bio_clone +EXPORT_SYMBOL vmlinux 0xbddd17b5 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe296589 get_empty_filp +EXPORT_SYMBOL vmlinux 0xbe5e2541 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xbe73be4f block_invalidatepage +EXPORT_SYMBOL vmlinux 0xbe8a1485 mempool_create +EXPORT_SYMBOL vmlinux 0xbe8a7374 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef9267b pci_address_to_pio +EXPORT_SYMBOL vmlinux 0xbf1a4b79 check_media_bay +EXPORT_SYMBOL vmlinux 0xbf424027 mpage_writepages +EXPORT_SYMBOL vmlinux 0xbf719698 reset_files_struct +EXPORT_SYMBOL vmlinux 0xbf82ea61 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xbfa33eae of_device_alloc +EXPORT_SYMBOL vmlinux 0xbfa78112 isa_mem_base +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xc0082ec7 dquot_acquire +EXPORT_SYMBOL vmlinux 0xc01a90a8 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc0a26b30 pci_disable_device +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc0fe39a6 simple_rmdir +EXPORT_SYMBOL vmlinux 0xc10a92c4 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xc141131d skb_over_panic +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc16a5c7a pci_iomap +EXPORT_SYMBOL vmlinux 0xc16ca405 is_bad_inode +EXPORT_SYMBOL vmlinux 0xc18835e0 inet_frag_find +EXPORT_SYMBOL vmlinux 0xc1a6385b ide_dma_lost_irq +EXPORT_SYMBOL vmlinux 0xc1ba49a9 dev_base_lock +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc2128a12 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25830ac __devm_release_region +EXPORT_SYMBOL vmlinux 0xc276324d vfs_quota_off +EXPORT_SYMBOL vmlinux 0xc29535a8 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xc2b4b463 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f27f07 register_key_type +EXPORT_SYMBOL vmlinux 0xc306c8e9 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xc3352d12 block_read_full_page +EXPORT_SYMBOL vmlinux 0xc33944c7 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xc34e01d3 ps2_init +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc380c5c9 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xc387167b may_umount +EXPORT_SYMBOL vmlinux 0xc39f6cf9 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xc3acf730 gen_new_estimator +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3e6d9ff generic_write_end +EXPORT_SYMBOL vmlinux 0xc4421dbd sysctl_jiffies +EXPORT_SYMBOL vmlinux 0xc447fc8c d_path +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a17b33 seq_puts +EXPORT_SYMBOL vmlinux 0xc51cf71a tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xc51f1696 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55691b9 udplite_prot +EXPORT_SYMBOL vmlinux 0xc58da7c4 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0xc59d8c20 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xc5a7901a kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc5dc9a53 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xc5f07434 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xc60b9d6b netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xc62f16d5 dcache_readdir +EXPORT_SYMBOL vmlinux 0xc63cf06a ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0xc65a61aa lock_sock_nested +EXPORT_SYMBOL vmlinux 0xc661be79 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xc6b6d78c wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xc6e8c3d3 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xc73b3c2c kobject_del +EXPORT_SYMBOL vmlinux 0xc76327d1 macio_register_driver +EXPORT_SYMBOL vmlinux 0xc778c114 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xc7965f14 cont_write_begin +EXPORT_SYMBOL vmlinux 0xc7991154 pci_get_slot +EXPORT_SYMBOL vmlinux 0xc79d9007 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a5d160 sk_stream_error +EXPORT_SYMBOL vmlinux 0xc7ad2fb8 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xc7aebaf2 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xc7b4bf88 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xc7c79c90 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc809049f ilookup +EXPORT_SYMBOL vmlinux 0xc837a79c serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8d63bcd audit_log_start +EXPORT_SYMBOL vmlinux 0xc8dec154 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xc8f2f6bf xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xc8f929c0 vfs_readlink +EXPORT_SYMBOL vmlinux 0xc8fd2d4a pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xc94c9f71 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xc966d31c div64_64 +EXPORT_SYMBOL vmlinux 0xc977e66a pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9c4d280 request_key_async +EXPORT_SYMBOL vmlinux 0xc9d4e24b test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xc9fec186 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xca0ffbd7 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xca111d19 cpu_online_map +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xcad08e48 mmu_hash_lock +EXPORT_SYMBOL vmlinux 0xcad444b8 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xcafbf7d6 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb2415f3 subsys_create_file +EXPORT_SYMBOL vmlinux 0xcb290fd9 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb3befe2 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb7bc48a bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcb7db5d0 send_sig_info +EXPORT_SYMBOL vmlinux 0xcb9f37bb dev_add_pack +EXPORT_SYMBOL vmlinux 0xcba772bb simple_lookup +EXPORT_SYMBOL vmlinux 0xcbe9056d zero_fill_bio +EXPORT_SYMBOL vmlinux 0xcbe9c83a pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xcc1fc87e bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xcc2a2931 __getblk +EXPORT_SYMBOL vmlinux 0xcc2f6701 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5096bc validate_sp +EXPORT_SYMBOL vmlinux 0xcc565b57 input_register_handler +EXPORT_SYMBOL vmlinux 0xcc607dc9 del_timer_sync +EXPORT_SYMBOL vmlinux 0xcc61f01d sysctl_pathname +EXPORT_SYMBOL vmlinux 0xcc7280be d_lookup +EXPORT_SYMBOL vmlinux 0xcc7e713d write_inode_now +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccca1b21 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xcce3a2ea lease_get_mtime +EXPORT_SYMBOL vmlinux 0xccebdea8 mpc52xx_find_and_map_path +EXPORT_SYMBOL vmlinux 0xcd0839bd fb_set_suspend +EXPORT_SYMBOL vmlinux 0xcd45c731 notify_change +EXPORT_SYMBOL vmlinux 0xcd7edf16 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xcde351d7 vmtruncate +EXPORT_SYMBOL vmlinux 0xcdf4fc03 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xce0fd5c3 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0xce14aeed sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xce1809f6 matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0xce216b92 pci_get_class +EXPORT_SYMBOL vmlinux 0xce22e4cc pmu_unregister_sleep_notifier +EXPORT_SYMBOL vmlinux 0xce2386dc module_remove_driver +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce51fcd3 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce82a65f i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xcea572ab mpc52xx_find_ipb_freq +EXPORT_SYMBOL vmlinux 0xceb6538e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xcf195415 ide_do_drive_cmd +EXPORT_SYMBOL vmlinux 0xcf222a0e d_namespace_path +EXPORT_SYMBOL vmlinux 0xcf684933 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xcf7c7e1a skb_insert +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfaf79ba mempool_alloc +EXPORT_SYMBOL vmlinux 0xcfd3df01 get_disk +EXPORT_SYMBOL vmlinux 0xd0180964 sock_map_fd +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0fa04fb fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd12e57cb kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xd1362619 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd1487a55 unregister_key_type +EXPORT_SYMBOL vmlinux 0xd158df47 macio_release_resource +EXPORT_SYMBOL vmlinux 0xd1a193aa of_find_property +EXPORT_SYMBOL vmlinux 0xd1b03fff proc_net_netfilter +EXPORT_SYMBOL vmlinux 0xd1bb797a ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xd1c55cae do_sync_write +EXPORT_SYMBOL vmlinux 0xd1e35b62 llc_sap_open +EXPORT_SYMBOL vmlinux 0xd2422026 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xd249895d xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd289de96 sync_page_range +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2b882ef media_bay_set_ide_infos +EXPORT_SYMBOL vmlinux 0xd2d84236 mnt_pin +EXPORT_SYMBOL vmlinux 0xd2e562f1 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xd2f93272 unlock_rename +EXPORT_SYMBOL vmlinux 0xd30377c7 pci_request_regions +EXPORT_SYMBOL vmlinux 0xd3212c2f vfs_getattr +EXPORT_SYMBOL vmlinux 0xd32b0e2f eth_type_trans +EXPORT_SYMBOL vmlinux 0xd34fd4e0 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xd3b14490 of_register_platform_driver +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd42dbf95 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd44e06c8 ide_dump_status +EXPORT_SYMBOL vmlinux 0xd47193d3 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd4a27415 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xd4acb68d of_device_get_modalias +EXPORT_SYMBOL vmlinux 0xd4b61dca tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xd4df0479 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0xd4e2e047 set_bh_page +EXPORT_SYMBOL vmlinux 0xd500e228 __serio_register_port +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd57a71e9 mod_timer +EXPORT_SYMBOL vmlinux 0xd5803a3e __next_cpu +EXPORT_SYMBOL vmlinux 0xd59d016a blk_init_queue +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5be652e __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xd5e1e677 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5f1ab7c generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd61ca44e sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd634e595 end_queued_request +EXPORT_SYMBOL vmlinux 0xd637ba09 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xd648db78 of_match_node +EXPORT_SYMBOL vmlinux 0xd65a47bf pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xd69ebc51 _read_trylock +EXPORT_SYMBOL vmlinux 0xd6b731f0 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xd6c9b328 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd6d787c5 check_media_bay_by_base +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd714fdcc udp_ioctl +EXPORT_SYMBOL vmlinux 0xd72ea9f8 d_alloc_name +EXPORT_SYMBOL vmlinux 0xd72f13c3 follow_up +EXPORT_SYMBOL vmlinux 0xd731ec40 input_grab_device +EXPORT_SYMBOL vmlinux 0xd77003f7 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a3b03f uts_sem +EXPORT_SYMBOL vmlinux 0xd7bab753 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xd7ca72f7 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd82b5f23 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd82d6721 seq_release_private +EXPORT_SYMBOL vmlinux 0xd837bb31 backlight_device_register +EXPORT_SYMBOL vmlinux 0xd83dee51 register_gifconf +EXPORT_SYMBOL vmlinux 0xd85def31 path_lookup +EXPORT_SYMBOL vmlinux 0xd867f3e5 of_translate_address +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8ddf254 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xd8decb0e ip_getsockopt +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f51df3 serio_reconnect +EXPORT_SYMBOL vmlinux 0xd903609d sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xd90525c8 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xd90be5ea do_sync_read +EXPORT_SYMBOL vmlinux 0xd912d263 task_in_intr +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd966fee1 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xd96c8608 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd96f74e4 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99e8dbb i2c_attach_client +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9c94ad4 nobh_write_end +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xda0f6c29 arp_find +EXPORT_SYMBOL vmlinux 0xda28285e console_stop +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda46aab2 pci_dev_get +EXPORT_SYMBOL vmlinux 0xda5a2bb4 simple_link +EXPORT_SYMBOL vmlinux 0xda5e9b9c tcp_unhash +EXPORT_SYMBOL vmlinux 0xda60cf52 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xda60d1ed of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xda693295 load_nls +EXPORT_SYMBOL vmlinux 0xda73a1d0 __check_region +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda87f002 __bforget +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdac21231 eth_header_parse +EXPORT_SYMBOL vmlinux 0xdb067848 permission +EXPORT_SYMBOL vmlinux 0xdb09708f __wake_up +EXPORT_SYMBOL vmlinux 0xdb426b25 pci_domain_nr +EXPORT_SYMBOL vmlinux 0xdb4431dd sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0xdb52ec22 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xdb5932a5 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xdb722be4 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbdc828d tcp_proc_register +EXPORT_SYMBOL vmlinux 0xdbf0ee3b vfs_statfs +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3eaf70 iomem_resource +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd26995f netpoll_setup +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd44bd99 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xdd578a66 vfs_write +EXPORT_SYMBOL vmlinux 0xdd5a37a7 _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xdd658ce5 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd9a9484 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xdda5c90f kset_register +EXPORT_SYMBOL vmlinux 0xdde25489 _write_lock +EXPORT_SYMBOL vmlinux 0xddeb3627 put_io_context +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xddef4fbd fget +EXPORT_SYMBOL vmlinux 0xddfc8251 gen_pool_add +EXPORT_SYMBOL vmlinux 0xde252ea8 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xde43abaa proc_dointvec +EXPORT_SYMBOL vmlinux 0xde45ba7c pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xde4fa83a __find_get_block +EXPORT_SYMBOL vmlinux 0xde5e0f0f netif_carrier_on +EXPORT_SYMBOL vmlinux 0xde6abd1d matrox_millennium +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde8fcdbc ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdef4acb8 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf4e0291 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6fa3ee ppc_ide_md +EXPORT_SYMBOL vmlinux 0xdf722582 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xdf893586 of_dev_get +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfe270ab blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xe00fb238 release_resource +EXPORT_SYMBOL vmlinux 0xe017d177 tty_mutex +EXPORT_SYMBOL vmlinux 0xe04e0a82 of_device_register +EXPORT_SYMBOL vmlinux 0xe052a7c1 elv_queue_empty +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b214be cfb_imageblit +EXPORT_SYMBOL vmlinux 0xe0b5502d adjust_resource +EXPORT_SYMBOL vmlinux 0xe0fe073e update_region +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11ceaae tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xe13a84f4 skb_checksum +EXPORT_SYMBOL vmlinux 0xe14dff03 poll_freewait +EXPORT_SYMBOL vmlinux 0xe172217c vfs_quota_on +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe176db90 generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0xe17bc578 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xe19dfda6 ps2_command +EXPORT_SYMBOL vmlinux 0xe19e39b7 vfs_readv +EXPORT_SYMBOL vmlinux 0xe1b2dca9 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xe1defeb0 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1e1c9b0 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xe212fdad __alloc_pages +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe27f5bdc pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xe28be1f8 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe307e0d3 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xe30b8281 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xe31f57e4 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xe3279777 dentry_open +EXPORT_SYMBOL vmlinux 0xe3450e7e vfs_unlink +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe3aff4ae sk_free +EXPORT_SYMBOL vmlinux 0xe3d4d91d kobject_init +EXPORT_SYMBOL vmlinux 0xe3e9f7d4 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0xe3ed2c84 blk_insert_request +EXPORT_SYMBOL vmlinux 0xe4054087 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xe47aa403 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe49a43c1 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xe4b4fc1c serio_close +EXPORT_SYMBOL vmlinux 0xe4c5a195 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xe4edb21a ide_dma_host_on +EXPORT_SYMBOL vmlinux 0xe4f1448a tty_register_device +EXPORT_SYMBOL vmlinux 0xe5077a8f mempool_destroy +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe53488d2 filemap_fault +EXPORT_SYMBOL vmlinux 0xe547bbc3 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xe569f2fb skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe583cc30 __free_pages +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5c75553 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe629d938 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xe63293f3 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xe63f54c8 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xe6421fca pci_disable_msi +EXPORT_SYMBOL vmlinux 0xe67434e7 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xe69ad6a6 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xe6a9e7d8 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xe6bcf1fd nobh_writepage +EXPORT_SYMBOL vmlinux 0xe6bdea72 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xe6d25e62 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe7120d03 pci_free_consistent +EXPORT_SYMBOL vmlinux 0xe71d01b7 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xe7239cff unlock_new_inode +EXPORT_SYMBOL vmlinux 0xe7639aea i2c_use_client +EXPORT_SYMBOL vmlinux 0xe76428b7 init_timer +EXPORT_SYMBOL vmlinux 0xe7945a1f submit_bh +EXPORT_SYMBOL vmlinux 0xe7a67487 alloc_disk +EXPORT_SYMBOL vmlinux 0xe7b2b73f skb_queue_purge +EXPORT_SYMBOL vmlinux 0xe7cb920b sysctl_intvec +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7f085d9 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xe7f7d3a6 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xe8478b92 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xe85f68e1 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8f89053 elv_add_request +EXPORT_SYMBOL vmlinux 0xe90e2b31 bdevname +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe961c52c input_free_device +EXPORT_SYMBOL vmlinux 0xe963f00d __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe97043ef __invalidate_device +EXPORT_SYMBOL vmlinux 0xe970e125 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xe971ae51 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xe98bc1c1 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xe9abf3eb module_add_driver +EXPORT_SYMBOL vmlinux 0xe9b0f3a7 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xe9e8631f vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0xe9f878ff sock_no_bind +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea43a481 ida_pre_get +EXPORT_SYMBOL vmlinux 0xea54ee65 __inet6_hash +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea9c1080 d_genocide +EXPORT_SYMBOL vmlinux 0xeaa8d159 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xead317cd tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xead6d66f have_submounts +EXPORT_SYMBOL vmlinux 0xeaf4aa0f seq_putc +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb4058d6 generic_getxattr +EXPORT_SYMBOL vmlinux 0xeb680dbe i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xebbd9e06 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xebc741e0 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0xebe11eda put_files_struct +EXPORT_SYMBOL vmlinux 0xebe60a23 load_nls_default +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec1ed785 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xec278873 kernel_listen +EXPORT_SYMBOL vmlinux 0xec3251fa dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xec47a36a bio_phys_segments +EXPORT_SYMBOL vmlinux 0xec49c8f1 seq_release +EXPORT_SYMBOL vmlinux 0xec8642ce kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0xeca099b0 bio_pair_release +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xecc4c142 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xecc75e2b pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xecd33909 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xecdd0bcc add_disk_randomness +EXPORT_SYMBOL vmlinux 0xecf19d26 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xecf2ec92 register_netdevice +EXPORT_SYMBOL vmlinux 0xed407dce wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xed46ac5c skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xed49ba48 downgrade_write +EXPORT_SYMBOL vmlinux 0xed5fe7eb xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xed6f502d call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0xed7617cd generic_file_mmap +EXPORT_SYMBOL vmlinux 0xed94c061 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xeda953fb __ioremap +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbc56fa pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedcf89a8 netpoll_poll +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xee1c16b8 dev_unicast_add +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee38a119 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee5a11eb system_bus_clock +EXPORT_SYMBOL vmlinux 0xee8200da xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xee91a7a1 generic_removexattr +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeec3bbe9 generic_commit_write +EXPORT_SYMBOL vmlinux 0xeec624c3 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xef32960e tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xefac04fd skb_copy_expand +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefec8786 drop_super +EXPORT_SYMBOL vmlinux 0xefecf4c6 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf034eace bio_free +EXPORT_SYMBOL vmlinux 0xf0649145 generic_readlink +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf077a10c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xf0a81255 should_remove_suid +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0bdc2c0 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xf0cd10d0 bio_endio +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf10e2cd2 subsystem_register +EXPORT_SYMBOL vmlinux 0xf1162787 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0xf119e54a default_llseek +EXPORT_SYMBOL vmlinux 0xf15a7a99 make_bad_inode +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf16612b6 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1844452 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1dd9fb3 down_read_trylock +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2248167 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xf22bff30 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xf23ac07d matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0xf2a530b7 gen_pool_free +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2ed6072 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xf2fa28de lock_may_write +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3b20604 bdput +EXPORT_SYMBOL vmlinux 0xf3b272a3 locks_init_lock +EXPORT_SYMBOL vmlinux 0xf3bdf6c6 mapping_tagged +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3db8488 vfs_llseek +EXPORT_SYMBOL vmlinux 0xf3f48480 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf4418c97 dev_close +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf471694e __ide_dma_on +EXPORT_SYMBOL vmlinux 0xf48544a6 netif_device_detach +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4d5a54a simple_prepare_write +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf50369a0 misc_register +EXPORT_SYMBOL vmlinux 0xf52d1797 rtnl_notify +EXPORT_SYMBOL vmlinux 0xf56196fa arp_tbl +EXPORT_SYMBOL vmlinux 0xf58cdd4d matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c73d4d blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5dd1dda unregister_qdisc +EXPORT_SYMBOL vmlinux 0xf5f31020 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xf5ff4d2f i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xf635f1f1 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xf65d7a59 register_snap_client +EXPORT_SYMBOL vmlinux 0xf65f0e4c serio_interrupt +EXPORT_SYMBOL vmlinux 0xf67d1f93 eth_header +EXPORT_SYMBOL vmlinux 0xf69be488 wait_for_completion +EXPORT_SYMBOL vmlinux 0xf6a5584c netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xf6a716d7 sock_create_lite +EXPORT_SYMBOL vmlinux 0xf6a98ae7 idr_find +EXPORT_SYMBOL vmlinux 0xf6a9a75b vfs_follow_link +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf7668fa9 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf78f8129 giveup_fpu +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7cf6899 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xf816bded pcim_iomap +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf83094e4 pci_release_regions +EXPORT_SYMBOL vmlinux 0xf83a5a1d d_validate +EXPORT_SYMBOL vmlinux 0xf857de5c macio_request_resource +EXPORT_SYMBOL vmlinux 0xf85b5a0e set_blocksize +EXPORT_SYMBOL vmlinux 0xf8745318 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xf874d90f devm_ioremap +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf8b01ec8 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xf8b8f1aa pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xf8c456ef simple_sync_file +EXPORT_SYMBOL vmlinux 0xf8fda569 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xf93905cf unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xf969455b dev_mc_delete +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9fa0821 del_gendisk +EXPORT_SYMBOL vmlinux 0xf9fed2ba call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xfa04049f unregister_netdev +EXPORT_SYMBOL vmlinux 0xfa19af17 key_validate +EXPORT_SYMBOL vmlinux 0xfa21ea3c ide_end_drive_cmd +EXPORT_SYMBOL vmlinux 0xfa31cd3b kfifo_init +EXPORT_SYMBOL vmlinux 0xfa346267 ide_end_request +EXPORT_SYMBOL vmlinux 0xfa7a6310 ip_route_input +EXPORT_SYMBOL vmlinux 0xfab07216 i2c_release_client +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb17bf6d pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0xfb1b0062 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xfb1c0ba8 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xfb1d5fcb scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xfb1dc067 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xfb395615 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xfb3a4ced start_tty +EXPORT_SYMBOL vmlinux 0xfb3cf4af open_by_devnum +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfbb12334 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3fa480 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcba4832 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf0ad39 posix_test_lock +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd01c50b tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd144ee1 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xfd2d06e3 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xfd3ca395 simple_readpage +EXPORT_SYMBOL vmlinux 0xfd59d987 complete_and_exit +EXPORT_SYMBOL vmlinux 0xfd5b9d3c km_state_expired +EXPORT_SYMBOL vmlinux 0xfd91b1ff page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfda4c33a blk_put_request +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfe538426 inode_change_ok +EXPORT_SYMBOL vmlinux 0xfe5a67e7 vfs_permission +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfea7e5fc tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xfeb43874 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xfeb5d74c datagram_poll +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xff0014b2 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff18a002 matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2c1df6 ida_remove +EXPORT_SYMBOL vmlinux 0xff3e17e5 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xff4099d2 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff9812da inode_setattr +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb2e70b sock_rfree +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0x6aea6fbb bcom_ata_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xa1b8b43c bcom_ata_tx_prepare +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xab113966 bcom_ata_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xcb8186ca bcom_ata_reset_bd +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xd4baad7f bcom_ata_rx_prepare +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x0aed86cb bcom_enable +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x16529809 bcom_sram_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x186867e8 bcom_sram_alloc +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x1efaf82d bcom_task_free +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x335c0f76 bcom_sram +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x547cd916 bcom_disable +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x75653883 bcom_task_alloc +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x9619bbb1 bcom_load_image +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xa169c964 bcom_sram_free +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xab6f272d bcom_eng +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xbeb2d3f2 bcom_set_initiator +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xf6e6aade bcom_sram_cleanup +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x073342b7 bcom_fec_tx_reset +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x0d583811 bcom_fec_tx_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x0fdf7795 bcom_fec_tx_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x605f7865 bcom_fec_rx_reset +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x7add6ed6 bcom_fec_rx_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0xc59997ea bcom_fec_rx_init +EXPORT_SYMBOL_GPL crypto/ablkcipher 0xd9486320 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x99cd126d crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd01deef6 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc1876604 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xeee19987 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x67543b7c async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7f831995 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/blkcipher 0x1338ef40 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0x7a669cf7 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0xb7a32130 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0xd386773c blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0xe749e8fe blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/twofish_common 0xe3ed770f twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0158a314 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x03790d6a ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x049e3e82 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x06932309 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x086a69dd sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x09876e73 sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a118ada ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0ab876b6 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0cd6d14d pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x12d006ff ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x161af4d4 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x16c681fa ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1fecc1e1 ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x225dff05 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x264280bb ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x28d55f22 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2a2f0233 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2ae4ca01 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3a6c5504 ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3c06a9a6 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x40673e33 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x411f33e2 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x42bfe09b ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45b1f20c ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x464b9e4c ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x474eaa70 ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x47653ee4 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x47ece5b2 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4bb8e081 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x51023a21 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0x56e0e6d1 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5845f85e ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0x58c220f6 ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x59e14f21 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5cc020c0 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5e322d85 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ee962f4 ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5f80602c ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x60bd2861 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x63304261 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x64323341 ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x646117df ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x694c6c41 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69c355d8 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6ed13b73 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6f8ac169 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6fe60f35 ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x702eff7b ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x71db66ea ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x71f52faa ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x72474f38 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x72d99a42 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x745e8b69 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7671a863 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x77571c82 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x78a19c75 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x796ce852 ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x801d1539 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x86fe4db2 ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x87af50b1 ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8da7c6dc ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x90f3e1f3 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x90f7061b sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x91abb307 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x97294725 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0x978a55fa ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9a267425 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9aa9de51 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9b1c705b sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9c208ae7 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e688e64 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa1ca01af ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa239ed99 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa27f32c7 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa3c20e06 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa605a6cf ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa6f61db1 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa8671c9c ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa8b0db21 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa8f711bd ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa4da03e sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa8fce2e sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb02b8b06 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb28655ee ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb45ade24 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb4b005ba ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb849ccbe ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb866e357 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb8fcf26f ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbc0046b6 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbd5c5dad ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe2825e9 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc4c8c9c1 ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc59ca342 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc8b17898 class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcf3def0d ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd1623a23 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd1b12677 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3f0af55 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd71685c2 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd78116ca ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdbae647e ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdbe7eb38 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdd08fad9 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdea7052a ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf76d05b sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdfd157cb ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe03a2b65 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe63d03de ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0xef8f4476 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xefeb8685 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf164986f ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf243bc0d sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf25dc269 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf29fe1b4 ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf42e91fd ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf43b793e ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf4d478cd sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb9eb8b6 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfdaf573c ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x006a0363 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x085f3b6a agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x7084b4eb agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0472bd7a tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1a94e43c tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x20039da0 tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23741d17 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x26f38a80 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x440df30b tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x50e77d9e tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5601670b tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5723aab2 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5b178492 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5e257002 tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x708fdf0a tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x88240a38 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8e7815fe tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xabe32afd tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb96a00b1 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc0177e5f tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd74ded9e tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xda494f20 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe844d086 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfbfcb124 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x05dc1697 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1fd2b214 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x220746dd edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x23715958 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x26172f69 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2a69ef75 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2af81d14 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x314520f7 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4668f56c edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x49b60976 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4a06ae22 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4e0e245f edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x575e0eca edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x67b5479a edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7b989103 edac_pci_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7c6b2454 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7dda40cf edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x868a110d edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x89c076f7 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x919bbbf1 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa4c2e341 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xca90ed85 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd7bb4d41 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdc403843 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe3fe03b1 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf1cfd2c5 edac_device_find +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05589ea9 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x16738daa hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3023c587 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x31e7df20 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3992b407 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x58eb9ddc hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5caf605b hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7ddf579f hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc896a653 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5b3f57a hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xeba12b6e hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf31bf47a hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf54faa79 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xf020b12e hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/chips/m41t00 0x1ca52aa9 m41t00_set_rtc_time +EXPORT_SYMBOL_GPL drivers/i2c/chips/m41t00 0xf21515d3 m41t00_get_rtc_time +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x65f5e18a hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x9f8a4da9 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x8f28b004 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x09964222 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x4aeb5851 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x66972009 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6d7899a1 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbdd64c2b wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xcb6e94cb wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd459dad9 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xe1dc6c96 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xe7eba9b6 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xfa12e96b wf_find_control +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x16532c44 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x2569bfc9 dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x534d587e dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x6dffc9c8 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x75ec061d dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xb3ba5534 dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xc01ee07e dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xd3900e49 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x1153a599 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x412a7ad8 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x5d3cd975 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x61350429 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x6eabd607 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9f9c9018 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x112b3db2 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x1664a5de sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x6cc08478 md_allow_write +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xb6c54221 md_new_event +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x78155398 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc241bf72 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf3b0f2ae ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x09c18ed9 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0d6a3163 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1151ed2b saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2589d6e4 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3dedb8b1 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x44a0bbde saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x74e1b33c saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa36d2550 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd4b586d2 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3bf93d6 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf4d3c741 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3590ec92 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3b59b710 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x6f461bd7 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x97e0e603 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9cddc733 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc5bb2c4c saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe217b478 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x05ffa1d7 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x11ea992a ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x58e38b6e ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x77d3f69a ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xcbd5d275 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xee89ab45 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xef90d37f ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0xc039dc76 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x017bfc46 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x045d37f6 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x48011e0a microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc7abbcea saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x7cb7d83e tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0xfd3942b2 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x09eea2f5 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xb8a431eb tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x3d6ffd1b tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xc7bc919e tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0xd276782b simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc0ab226c v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xe485eee0 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x04a22144 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x04cd47b8 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1eb3c9fe videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x236f35f1 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2f8c2005 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x36036836 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x47151e5f videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x55598f79 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5e6df88b videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5fd03214 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x63b558b1 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6ed9e794 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7fa9883f videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8249af7a videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x880f681a videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x90e4ca79 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb03ab68b videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb1ad197c videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbadd572a videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc0604704 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xeacfdeaa videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf0022638 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf700f91a videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x14b4d112 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5102a4d4 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5239df28 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x524c6747 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5289cece videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5a4ecbb8 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6495820d videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x66f9427d videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb1530792 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb350cace videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb6f8f833 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd6110ac5 videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xec108717 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf6316947 videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xa17d8e46 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xacab6643 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xcc6469f5 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0a0d29d0 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3b2c14c0 sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6c503606 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8791b62b sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8838ad41 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb2c2deeb sm501_set_clock +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x09895aa7 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0cd2d198 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x10e790bf sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1a984be2 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1e3927c0 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4da439ed sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4fa43c4f sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x57e8a9cb sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x63258a80 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x701c387f sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7dd70db1 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x80fcdb93 sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8b5d4c4e sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8d990643 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa5f7c44e sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xba575f15 sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc1753e3a sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc86a51ec sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd463c9de sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf0979f8d sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf8ad8276 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x3bfc0b39 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x4fe3cb94 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xec4ab590 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x0965dc98 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7cc14ab8 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x45910754 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xd9a2f47b DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xad27e943 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0580db8d get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0a52631f mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16449ba5 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x180c8b35 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x21bcc4ac register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3820edf3 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4b70b3ce mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x507e2a46 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7ea53fd8 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9aca3427 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xac4488cf default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbcba543f unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdb0b367c get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe37adade deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe4a08feb put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf3af6530 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x14bb86af register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x29e71f07 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x754a5f35 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8596079b add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x12bab7b1 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x8c69324b nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc025cffe nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xd46a2816 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf56fc6b8 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x24b6b10d onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xe863dcb1 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x19009060 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2d713374 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4171fe4e ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x801cee64 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa055c65d ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb109d48d ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1d30e3e ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc4e7bfea ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc5d7c4f7 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd2c8dd1b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/net/fec_mpc52xx_phy 0x90a22e70 mpc52xx_fec_mdio_driver +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01c7ecfb mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x02d7ba29 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x04d405e8 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x04efe55d mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x06fcd21c mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08ce51b3 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0f1c41a8 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x194054c1 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1c4b0a27 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2925e0e9 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3399e859 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x38403d3c mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4360f024 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4bbe1f3d mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4ce26895 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x54ce52fb mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5c19d6ee mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6d6d508e mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x757a7472 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7ca3d6c6 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x819f42e7 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x93bb9794 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9d3474dc mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa2233f9c mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa3ded50c mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xad096cc9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb9201a70 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc84ace45 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc8b42ffd mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf4e11fa mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3b4d84e mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd980eee1 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe47fd1d9 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xeb2931c3 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xec65171a mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf09259c4 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf20472c4 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfcc83bc7 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfde2de6d mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xffab20f7 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1b0c92d3 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9866c5a6 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2da12aa1 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2dab90e9 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x34dfd8fa usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x58c767a3 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5cc585e7 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6bbdaf20 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x76cb8ac6 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb3fff638 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xca576700 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xccf2f304 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdeaa0ca2 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe87cec11 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xecc2baf6 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xee5faf79 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4c76f16 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3a78dd9b libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3e55358f libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x43441c92 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x44c0a4ee libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x50438747 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x84dc2e30 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8e776a85 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8f177121 libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa91a4aed libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbc07a67e libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdbb056bf libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x2e73b2bc p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x3a827db0 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x5efac116 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xbf2155f5 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xf035dfc4 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x023fe7da rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x09d46ef2 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x128640b2 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2625e28c rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4358865e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54012450 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6795c010 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7e6a188c rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7fa0854f rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91013488 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92d17476 rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9f7f0751 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9fa6b60b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1dcccb1 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa6b5d7c rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3449cf0 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcdbfca18 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf725696 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf804858e rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfb5a577d rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4186f34d rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4aa6066d rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x54c58da8 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x600e2dc8 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7f2695c5 rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x91ef9da0 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xccdd8948 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd7451cf4 rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe496fbb3 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x016853c0 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3413a219 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x47a4909a rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x65f17285 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6f555fd8 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x76a61d78 rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8f73f706 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9ce22627 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa2888636 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa2f43f59 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf310646d rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x6bb897d0 power_supply_changed +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xa4252ebe power_supply_unregister +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xb2a84f42 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xd7ba5286 power_supply_class +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xee759fbb power_supply_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x0595dcce rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x12a8f0bc rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x309b1be8 rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x41e2241b rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x43991020 rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x4ee2c21f rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x6083326f rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x635b8eb1 rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x63ab2c51 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x8eefdf33 rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xa9f01d64 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb1595d37 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb3897aab rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xbe734aff rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06949af5 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x07844f98 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c065cda iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x104cf7c0 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12c93f20 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x137f4cc0 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28bc4e08 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ce4dc25 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32b8fd2c iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3500551b iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41f07c1a iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47c0ac3b iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b3364ff iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5fca19eb iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x765c2276 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e8a842a iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9370f743 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x996077b0 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad2b73f5 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd220c7f iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9e62d7f class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcee29e70 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd438aafd iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfc32fcb iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe05d0d5c iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeefab72e iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfdff82f8 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x009074c6 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x05fe088a sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x099b0f53 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1c4dfa15 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2d9ecca7 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x37ecb115 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e90bb37 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x60bfa7a5 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x62557891 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x725347d5 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7eb059bc sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x81dfb3df sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x85566f39 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb66c72b2 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb9c45456 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd3735446 __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb265db6 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdca88462 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xded2856d sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf5b1ea67 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x03bcb3f2 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x29408e25 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x309f1710 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3da0c0af srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x43151163 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x779fe1a8 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1642ee70 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1a7c5a4c scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x28944e83 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x337c3290 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x53dab6ff sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x8ae69f50 scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x93923616 scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x966c4492 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x99f34962 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xb6bf58f7 scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xba18437d scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc868d62b scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xedaead58 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xf4a279eb scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1e373f91 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5be8afa1 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6216b0ac scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x73550d91 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8f13acf5 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x99690c7f scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xadc5ea44 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbfa441d9 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc6e28413 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0a3f1624 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1a0b4d70 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d343342 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x295e50e1 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x381e0f22 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41808096 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57770a99 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8249a694 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x95ce55da iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9efb9de9 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb6ff6b6 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc0aa4904 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd1cb965c iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd8b83cbf iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe00f726a iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xebaa4907 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x28bcf204 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x49023f25 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x51a282c8 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5b352e49 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc98a4d99 srp_release_transport +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x7245bfee pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xbac80380 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xfa7f6733 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xfec58817 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x458550c0 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4ee517d0 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x80147964 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x80835357 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x89b22ccb spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe75d9d27 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/uio/uio 0x91972063 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xd3ab50dd uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xec6b7951 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7ac33904 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7f33f1b9 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x02a6ef33 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x14045313 usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1b912660 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x21af049c usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x22768092 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2619c0a8 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2ce10a6d usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2e0b6979 usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x30d4fde6 usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x42588bda usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5827d694 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6313b0b3 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7a1e56fe usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x89da5246 usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9cdce019 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xa538f5d9 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb804186b usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xbb50bc57 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xbe785804 usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc52c562a usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xca8d0549 usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd6f1373e usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xdcf64607 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xf7c5f9b0 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfac3164a usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0774dd15 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x11105b43 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x18173024 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x36018e8f usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x49a19ddf usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x88722eb0 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9347ef04 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x98b697ff usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xad37645f ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0xdea03afc phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x08e039ff usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x24c4d78c usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5c5e811e usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5e2d73f0 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x72f39b96 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c75e9f1 usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbb83f934 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd87e28d8 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x6b9f9506 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xd47cdbf9 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2692736b w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x682d7dd6 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9f2ea408 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xbfade782 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf1228795 w1_reset_bus +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x6418db0f exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x9c3ab3df exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x04cc25e8 fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x06c5e587 fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0x089a78d8 fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x0da618c3 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x165b48bc fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x28e409d6 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x4be2bc8f fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x5fbfec63 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x7d3abcd9 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x88bbeb46 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x8d768c84 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x93939411 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xbd3ed5fa fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xceed8dc5 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xe10890b7 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xe3a6a0d1 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xebb320e0 fat_search_long +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x7a4f5c05 gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xd1b6f1e0 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xd6b31eb0 gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xe5f7bef4 gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xf6ee67b9 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1c3276fa o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1f764ad8 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x38868e08 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7d077cfd o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb758db48 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xeb5981ac o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf4c9f539 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x303cfef0 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3fc9e5d6 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x76525717 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc00985b8 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc64d8223 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfa13d4f8 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xf8a3b0d4 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x02da43e8 bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x1db80d25 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x2eb3a68e dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x39ad197b dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x8de043cd dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x96c1e798 dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x980fa375 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x988b8cdc dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xae32a6b5 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xc5b64e30 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf9855ba2 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xfe2f4cb3 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x059c0f3b inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x102b2279 dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x125b479e dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x15ed8419 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16624edf dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1ac28def dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1ecb224c ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x25f973ab dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a6f580c dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2ca414c7 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d086589 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x32367c7a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ab7dc18 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4357c8f3 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43bbd2f7 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x49a516c6 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4a9efba7 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5546c98e ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x596e1ede dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5b65fc75 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5cdb6c0d dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78f0ab70 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7af27706 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8336f6f9 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bf9cca4 ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x99bc5e88 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa7559642 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaa332fe8 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaf1740fe dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb968054a dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb99b92a7 ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba7f62d1 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbcc68cfe dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe69b998 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8137831 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcea6b0bd dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf658b00 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0a266a2 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0c70178 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe62825a9 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe7b2e51e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xee0ac494 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2136c45 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8a4b55b ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc748b4d dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xff7e0170 dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x31a9f6a9 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x40ca7a7f dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6adbc0ea dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x796ea6c6 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x908c1e22 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb4155dac dccp_invalid_packet +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x84a1066e ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x874d0c7f ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x8be58a5f ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x1379ada0 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x2a9a2bbf ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3333d142 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4029e747 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x484bb63c ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x69dbccc0 ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6bf4ebde alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x74c34c03 ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x79ca6158 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7a65b0d1 ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x88df5694 ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8f28f419 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x9247a8bb ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa1f9be89 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa215b498 ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa81a293d ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa97f2d83 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb83c304a ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe33db490 free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xea11809b ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf1be2073 ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x12de4b78 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4f0c89eb nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x90ffeb91 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9e29bea0 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa5525f1f nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x05fb1db9 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8201df71 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8477e457 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8f7a5f12 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcdd40c95 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x06bb029c inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x08a2b734 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0c08fe40 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4f81d7b9 inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x54c2dc87 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x57ca5463 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x59b04de8 ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x67f70774 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7ea2ecde ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x984c1240 ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xac5915bd inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb3cda8df ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xce9cd13a fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xda26c04c ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdf897df6 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x025af671 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a163020 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f5d56c1 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0fff7527 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1736314c nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25bdc0db nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a0b41d0 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a9fb622 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e84c73f nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30d591bb nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37047e1c nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44392ea6 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x451f5dce nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46cdb91b nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a9efe46 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ad4edfa nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53a2e26c nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x619480ee nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x671927cd __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73c2411b nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77ab53c8 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79f16444 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x82d17e01 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x82ffcaae nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8366141c __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89617c4b nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a45c5d6 nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9610dcd8 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa437367e nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6d0f512 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa809ab6f nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb682cc86 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9c08555 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc12391e7 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc541aa0f nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd68724f5 nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2dd8b93 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef88a31c __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf315f365 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9397c3e nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9753bc3 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff4a9aaa nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x4baea300 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x0e87542c nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x128ed414 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3f680ff2 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8bd0422c nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa3ca8bf1 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc710448e nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc847e786 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe5326657 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe95f03f7 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfcb3f4f3 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x1fdf8176 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x58d9ccf8 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x92cc3e98 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xac7f77b1 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf2fa4db7 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1422dcec nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bb818fe ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6a692d48 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa37fb829 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x0335c968 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x14d6858c nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8e18e44a nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb553d84a nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc464bfc4 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1748fcfc xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5cdaae34 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6ee48e1c xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x850c10da xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ba94f62 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd25022db xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdba5663f xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdf5a4217 xt_check_match +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x233c71ec rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x9dcf0e4d rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04ee6df0 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10c676af xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x122c6218 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16ccd713 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29da0d26 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a077765 xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ef06f3c xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x315f2fef xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d4849ca csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55d28211 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b645a8a rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65d151c0 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68cbb092 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74c8b04b rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aa83ccd svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8197bd88 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8715b96d xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5c58802 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbcb489c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd1579cf xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf4164e8 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf5cf1e0 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8034edc xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd895d01c xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0742443 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe52c9712 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe72badaa xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee2c911e xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf91e4cbc xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc601c3b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x0076fe21 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x3c0c31f4 aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x4c8b37b3 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x5e93e914 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x70b9b8e6 aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8f3b1260 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xbc2792e5 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xd1ecdd66 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf19545bc aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf90076fc ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x061166c0 soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x2e7a79f6 soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x3b60e6a9 soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x50b7eb15 soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x6c2db5a9 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xec372440 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/oss/ac97_codec 0x18d774da ac97_tune_hardware +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10a91ef3 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18c6d7e8 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2112c50d snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3031f9e7 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41968173 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42af73ad snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43cd3354 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x516886c5 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5221e712 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x545cf706 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x584a5cf4 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c64450d snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60a3974f snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62c8ae81 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6999a8c6 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6da4cdad snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7889eb98 snd_soc_dapm_set_endpoint +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8fd2c4cd snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x937f77c1 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c1863f2 snd_soc_dapm_sync_endpoints +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa0a3206 snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb31e8fa5 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3d16d9b snd_soc_dapm_connect_input +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb134bf4 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xddeae750 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe39e79a0 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe885c138 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf03d9d09 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf60626d4 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf780dc9a snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf80b5587 snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x002244dc nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00d859f8 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0134cdd1 pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x0144f7b9 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x01596231 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x016d8aaf pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x020e9dbe crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x0281094b d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x029efe89 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x0302c88b crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03bca732 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x042c1746 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04a12ace led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x04b0d338 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x057720e9 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x05cf74ec pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x05e11cb1 __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0x062b1149 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0676404d bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x07a4bf22 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07dbc661 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x083ed84c crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x091ac949 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094467ac cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x094ef8bc crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0ae08ce9 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x0af9ed27 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x0afd585c sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0b36e4fb __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0b950c9e device_create +EXPORT_SYMBOL_GPL vmlinux 0x0baaa85b alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0bdff3b8 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c54cfcc __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0x0c7cedc1 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x0d3849fa led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x0d706d2e rh_set_owner +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0df07f3e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x0e6d181c register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x10ff9ecc bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1109760e unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x11a9d796 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12a21088 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x13476f14 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x13b2625f inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x14047f79 pmac_i2c_detach_adapter +EXPORT_SYMBOL_GPL vmlinux 0x1409c3f9 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0x1433821b ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14d1d0c3 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x150b9467 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x15502ffe inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x15659c9c input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x16029436 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x16e8f349 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x186737d9 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x193f23fd debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x19980526 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x19aa4422 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x1b780c49 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c4c30f0 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1ceebb1a srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1e154503 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8fcedf crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1f3e4346 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1fb64076 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x203c314c of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x20931883 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x217d6db3 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x21a3d7b0 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x21b91349 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x21f67a9b securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2213cbbf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x228d75be user_read +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23c8826a driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x2431e732 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x254d9ce2 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x256693c8 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x256a0b42 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x2585f0f0 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x26788820 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x268ec35f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x26ec963b vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x2733e8b4 device_move +EXPORT_SYMBOL_GPL vmlinux 0x27d630c6 ide_setup_dma +EXPORT_SYMBOL_GPL vmlinux 0x281dad26 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x289d26d8 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0x28a25085 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28c9a2bc macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29143084 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x295c87f8 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x29b9f2c7 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a79c01e spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x2a8be49b relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x2acbba3a devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b81c8ea class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x2b8be9be vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x2c3072e9 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2c674c5d klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c932490 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2cd0292a crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2cd250fe fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2d36c57b rh_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d92fd67 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2ddbf36a ide_setting_mtx +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2ebd3e57 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4b0a99 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2f9c21a0 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x301fcc0d scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x3025184c srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x3132d904 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x31c756a7 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x32889620 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x32a66b0a driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x33005088 pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3397d34c klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x33a690d6 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x340225bb ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x34099d5a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x357bfbad device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x3584b49c device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x35baaecd put_device +EXPORT_SYMBOL_GPL vmlinux 0x35d78304 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x36215e6d klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x365ea6e9 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x36dc729e debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0x376bcb99 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x37d2c2c5 rh_dump_blk +EXPORT_SYMBOL_GPL vmlinux 0x38a14aff bus_register +EXPORT_SYMBOL_GPL vmlinux 0x38c74c2c pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x390e0d16 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x39148cd5 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x39343906 task_nice +EXPORT_SYMBOL_GPL vmlinux 0x3996a944 get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x3a68d737 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x3a77caaa user_update +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3b17bb3d debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x3b5760e7 platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x3b58ae1b rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3bee3726 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x3bf48294 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x3c017c3b pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x3c2c06d9 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c748e10 input_class +EXPORT_SYMBOL_GPL vmlinux 0x3c8aefee ide_setup_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ccf5127 ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d40665a disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x3dccbe67 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3e9f68d1 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x3ea1b97f hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3eccf61d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f31cd3b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3f4c3cc3 ide_wait_not_busy +EXPORT_SYMBOL_GPL vmlinux 0x3f4f15bb hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x3f5d4c52 get_device +EXPORT_SYMBOL_GPL vmlinux 0x3f5f6fc0 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x3f9d8c25 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x3fc9c268 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x402aad8e skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x40ccf1e5 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x40faf506 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL vmlinux 0x41f64248 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x420bf363 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x42c14963 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x42c78b00 pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x42e3f743 skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x42ffddb9 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x43125e61 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x43969dbe rh_alloc_fixed +EXPORT_SYMBOL_GPL vmlinux 0x443d9c71 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x445c4dd5 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x445f7465 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x4501330b attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x45464776 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x4563679d class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459985d9 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL vmlinux 0x47afc759 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x48077050 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x488c5575 device_add +EXPORT_SYMBOL_GPL vmlinux 0x48d8435e pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49ae0972 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x49d8ad54 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4b98827c rh_init +EXPORT_SYMBOL_GPL vmlinux 0x4bc19153 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x4bd13562 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x4bfb3c28 pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0x4c4bfaec device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x4c6283ee pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c8ccc0d pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4cda0fb9 ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x4ce47d2a hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x4d41592c blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x4d416146 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x4d44d56a irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4d47a478 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x4efd7d09 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4ff3f9e4 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x5000927d tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50c47413 pmac_i2c_attach_adapter +EXPORT_SYMBOL_GPL vmlinux 0x50e01d21 class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x51946580 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x51a52696 device_register +EXPORT_SYMBOL_GPL vmlinux 0x51e53ffa fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x525c982c class_device_create +EXPORT_SYMBOL_GPL vmlinux 0x527357da __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5297e6ac fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52d99aa6 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x530cd40b sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53ba3c6d class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x53c14374 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x53ebc001 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x540e4ec8 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x542554cf input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x54ca48f7 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x5527a40b pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x55db0652 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x55fe8ffa pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x5613118a cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x5631d274 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x563daa30 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x5642c823 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x57446132 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57e621ae sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x585b4f76 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5862da26 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58fefd43 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x5914bc21 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x597f06f7 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x59e0cb70 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x59f78aa4 ide_build_sglist +EXPORT_SYMBOL_GPL vmlinux 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL vmlinux 0x5b4eb19c posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x5b590e2e driver_find +EXPORT_SYMBOL_GPL vmlinux 0x5b78c5f5 find_pid +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c769305 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5db54c17 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5df67dd1 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x5e1ee49c spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x5e68d88a netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x5e98f01d fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x5ea5b041 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x5ec96ada pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x5edadd2d lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x5fe4f55c ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a77736 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x60d1ac52 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x60e14766 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0x613bd368 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x619df744 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x61c8580c inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x6269eb0a debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x62b545a1 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x630c16f9 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x637e1518 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x63f03608 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x6428da4f rh_attach_region +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x647c96ab inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x669142b9 ide_find_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x68272b68 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x694120eb device_del +EXPORT_SYMBOL_GPL vmlinux 0x699b8d97 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x69ad2ce0 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6aad7317 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x6adb6a08 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6adc140c mmput +EXPORT_SYMBOL_GPL vmlinux 0x6b567f19 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c648d32 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x6ca11645 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6cb7ff3b ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x6d0e5675 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0x6d8dcdf5 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6e5ec2c7 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x6fb87ae4 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x6fd33a41 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x70075ecb sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7086d0a3 k_handler +EXPORT_SYMBOL_GPL vmlinux 0x7093fe11 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x70fa2c0d device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x715a680a spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x716fd9b7 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71881101 of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0x71a4a9a8 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x71fb3651 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x724f1c05 blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7251ac5c crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72e0c9dd device_rename +EXPORT_SYMBOL_GPL vmlinux 0x7334ebc8 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x7368d90b of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x73ed5fc8 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0x740292ba pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x747b67f5 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x74d47efd platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x74f1fd0b driver_register +EXPORT_SYMBOL_GPL vmlinux 0x753fcaf2 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x75b3a5b0 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x75f16af3 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x76176da5 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x7714bcd4 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x77b4ba82 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x7833192a scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x7862b479 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x78a8b74b tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x79b79b87 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x79c480da rh_dump +EXPORT_SYMBOL_GPL vmlinux 0x79db9021 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x7a611cf6 user_match +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7afb47ff class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b1d5556 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7b853fd6 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c2e80fc ide_dma_intr +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c6aeb77 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7c9ee28a __ide_abort +EXPORT_SYMBOL_GPL vmlinux 0x7d7d343b ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e3fcfcb __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x7e96dcdc transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f02e10c pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f9fc0cb platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x7fcf82ed crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x80bc9aca elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x811afadf rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81b7ce03 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x828202c1 inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x83a9f076 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x83db49ab relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x842c700a find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x847fd006 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL vmlinux 0x84cb4e7f do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x85157b7f inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a8129e uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x86e42ee9 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8784dd1a pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x889353ac audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0x889d24e0 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x88c13024 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x89e88984 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x8a2f5923 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a863e5b nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x8be81116 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x8c47c827 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x8c576045 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8c9942a8 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x8c9b23d4 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x8cb4a0ee ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0x8cdc4a78 pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x8d3888ce skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x8d77552c tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x8d87cdaf __ide_error +EXPORT_SYMBOL_GPL vmlinux 0x8da8e9e2 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x8ddba0c6 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x8e5716cb class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x8ecc7cbe class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f886b6c i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x8fa4c538 inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x900f3ff0 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x902b4783 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x902f56e3 generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x9039f155 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a311be simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x919e4700 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93109479 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9333593a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x94078204 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x941fb601 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x9428757c class_create +EXPORT_SYMBOL_GPL vmlinux 0x942ab2dd init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x955a6eed i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x956385b4 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x95fe868c platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x960ed3c0 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x96fcef71 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x974590ad srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x983c7494 rh_detach_region +EXPORT_SYMBOL_GPL vmlinux 0x984272ca device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x98c5831a transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x98e0e297 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x992948d2 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x99b6249d fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x9a29a783 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x9a395425 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x9a86b053 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x9ae9b836 ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ba39fe3 pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0x9c317982 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9cc47968 class_register +EXPORT_SYMBOL_GPL vmlinux 0x9d1f1142 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9dd1c1c9 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9e22d586 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x9e80df53 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x9eee4810 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x9f06f267 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x9fa6589b crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ff995f9 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xa02bc84b genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xa064ddfb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xa0902da2 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xa0b3782e sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xa1f73f9f ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xa2438d09 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xa28aaf29 rh_create +EXPORT_SYMBOL_GPL vmlinux 0xa29c1a2d skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xa2b43d53 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa37104c1 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xa3b9caa2 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xa3bed45b rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xa422f883 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa49d73d1 put_driver +EXPORT_SYMBOL_GPL vmlinux 0xa5974c9a debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa661d6ee of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xa703a696 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xa777be4f __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xa79ef30d bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa7ee2963 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa812f675 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0xa82af26c platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xa82f08e4 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xa831eb14 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xa84d0962 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xa8ba1b4c inotify_init +EXPORT_SYMBOL_GPL vmlinux 0xa8f4b865 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xa8f6ae11 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xa92ddf4a inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa17a2e2 rh_alloc_align +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa492e3f __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa5a548b tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaab88cfd sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab6c2891 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xabe05971 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xac265356 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xacd98718 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xacfc6329 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xad31b5b8 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xad7f7f49 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xade4e3c2 class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xadf2a25c input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xae76eddd inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xaf126f8d register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0xb06bd6e0 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xb09051b3 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0xb1237802 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb2979601 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xb2bb4155 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb2bc91d6 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb3eae21c xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xb45bfc72 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb55362bd srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xb58ed0a2 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb593e36d cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb5be81f3 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xb5e98c77 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xb645bfe3 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb68fb05c pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xb696db38 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xb7387909 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xb7399024 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xb75b9ec7 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0xb774ad66 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb837dfaa crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xb84593c7 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xb8a0d207 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb8bb1e58 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xb92002b2 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xb9215666 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xba1834e7 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xbb0e5d0f skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xbb301196 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xbba543c1 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xbd54c4da spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xbde1433e skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xbde8dd3f inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbe72527c kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xbeadf636 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xbebedc07 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbfb1352b copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0xbff7c02c ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0xc00e3434 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0xc07313d2 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xc205a434 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xc26449e2 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xc2828bae platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc4470b0f __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xc4728d56 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xc4fa896c elv_register +EXPORT_SYMBOL_GPL vmlinux 0xc59003bb sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0xc5af321f driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xc5bd652f sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xc5dbedc7 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc702a8c0 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xc740c64f set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0xc79a4f12 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xc8357a38 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc89c5576 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc999fafd user_describe +EXPORT_SYMBOL_GPL vmlinux 0xc99e8135 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc9b7870f driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xcaa6ac8a ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0xcacce6b9 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xcb0fb5ec pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcbac320e pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcceec900 pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0xcd8adc3a key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdebea44 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xce9a3155 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xceb16f67 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xcf1fb31d __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xcf2f2495 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcf9db23f rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xcfc86d77 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd01fc97a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd085f45e fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xd0b6aa00 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xd0bccdf2 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c1d89f ide_destroy_dmatable +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd198db22 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xd1d8adad atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd20c3472 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0xd27e8f6f bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd3092515 ide_find_port +EXPORT_SYMBOL_GPL vmlinux 0xd3ad202b __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xd3c6c99c klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xd492cd1d tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xd4eb45e5 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xd4f74a2c device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xd541abea securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xd580771a blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd6209716 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd63f7902 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xd67c39eb proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0xd69ebcfd crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xd6b53e5e namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xd7616905 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd796b314 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xd7deab68 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xd82e7915 ide_setup_pci_device +EXPORT_SYMBOL_GPL vmlinux 0xd8366870 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xd8de0261 percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0xd954e141 macio_find +EXPORT_SYMBOL_GPL vmlinux 0xda5ae1a2 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xda602dd6 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xdaf83c12 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdb4da223 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdb720d92 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xdb97e76f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdbfded10 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdc07f8fe atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xdc6a546e get_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc7f4a60 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xdcd76735 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xdcdff44a class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xddc5e0a1 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf5a8c71 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xdfa6838f alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xdfb548cb platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xe03bd8f1 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe2e530e6 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe32741e4 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xe3388584 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xe4d479e1 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xe5992a0c firmware_register +EXPORT_SYMBOL_GPL vmlinux 0xe5f575dc pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe673fcd3 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xe7739d0f sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe7976ded tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xe7a2426b ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe975d5c9 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xe9775627 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe9a8c113 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xe9d7b60b nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xe9f1dc58 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xea00a26b platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea49da09 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xeb0543ad register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xeb6e31d9 class_device_put +EXPORT_SYMBOL_GPL vmlinux 0xeb8e7655 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xebbb0179 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xebc8f8c9 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL vmlinux 0xeca82aa9 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xed21dc41 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xed58550d ide_end_dequeued_request +EXPORT_SYMBOL_GPL vmlinux 0xed5d3533 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xede74815 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xee1919ee sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xee56346d ide_get_best_pio_mode +EXPORT_SYMBOL_GPL vmlinux 0xef13617f platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xef608675 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0xf0448f1c pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xf0da2f71 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf3012f6c rh_free +EXPORT_SYMBOL_GPL vmlinux 0xf4488540 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xf44ef8bd platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf4591635 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xf45b2758 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xf48e8fd2 pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xf5d8ff1e __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xf5e7f053 rh_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf65cefeb inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xf6baf792 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xf77beb85 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xf7e04ffe pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf820cc8e __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8577c10 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf95bb431 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c483d3 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xfa2612fa srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xfa5f6420 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xfb938256 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc3cac46 pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfc832995 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xfcb7a86a put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0xfcda01c8 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfd38234c scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xfd528618 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdf29c71 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfeaf921b kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xff8862d7 rh_get_stats +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x429c6f15 usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x8c9a5676 usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x9e3143d8 usb_match_id +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/powerpc/powerpc.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/powerpc/powerpc.modules @@ -0,0 +1,1745 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +6pack +8021q +8139cp +8139too +8250 +8250_pci +8390 +9p +9pnet +9pnet_fd +a100u2w +a3d +aacraid +ablkcipher +abyss +ac97_bus +ac97_codec +acecad +acenic +act200l +act200l-sir +act_gact +act_ipt +actisys +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad1848 +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +advansys +aead +aec62xx +aedsp16 +aes_generic +affs +af_key +af_packet +af-rxrpc +agpgart +ah4 +ah6 +aha152x_cs +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +airprime +alauda +ali-ircc +alim15x3 +ambassador +amd8111e +ams +analog +ans-lcd +anubis +aoe +apm_emu +apm-emulation +apm_power +appledisplay +appletalk +appletouch +applicom +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +aten +ati_remote +ati_remote2 +atl1 +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +auerswald +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bestcomm-ata +bestcomm-core +bestcomm-fec +bestcomm-gen-bd +bfs +bfusb +binfmt_misc +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bmac +bnep +bnx2 +bonding +bpa10x +bpck +bpck6 +bpqether +br2684 +bridge +briq_panel +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +cafe_ccic +cafe_nand +camellia +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cmd64x +cn +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +corgi_bl +cp2101 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +c-qcam +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +donauboe +dpt_i2o +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dst +dst_ca +dstr +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro100 +eeprom +eeprom_93cx6 +efs +ehci-hcd +elo +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +esi +esi-sir +esp4 +esp6 +et61x251 +eth1394 +evbug +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +farsync +fat +faulty +fcrypt +fdomain +fdomain_cs +fealnx +fec_mpc52xx +fec_mpc52xx_phy +ff-memless +firestream +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +fuse +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic +generic_serial +gen_probe +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +girbil +girbil-sir +gl518sm +gl520sm +gl620a +grip +grip_mp +g_serial +gtco +guillemot +gunze +gxt4500 +g_zero +hamachi +hci_uart +hci_usb +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hermes +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hidp +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpt34x +hpt366 +hptiop +hwmon-vid +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-dev +i2c-hydra +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-mpc +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmcam +ibmpex +ib_mthca +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ide-cd +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +inet_lro +inftl +initio +input-polldev +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irport +irtty-sir +iscsi_tcp +isl6421 +isofs +isp116x-hcd +istallion +it8213 +it821x +it87 +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +jmicron +joydev +joydump +jsm +kafs +kahlua +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kyrofb +l2cap +l64781 +lanai +lanstreamer +lapb +lapbether +lcd +ldusb +lec +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lockd +lock_dlm +lock_nolock +loop +lp +lpfc +lrw +ltv350qv +lxt +lzo_compress +lzo_decompress +m25p80 +m41t00 +ma600 +ma600-sir +mac53c94 +mac80211 +mace +macvlan +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_maven +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mcp2120 +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mesh +mga +michael_mic +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +moxa +mpc5200_wdt +mpc52xx_psc_spi +mpc52xx_uart +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu401 +msdos +msnd +msnd_classic +msnd_pinnacle +msp3400 +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mv643xx_eth +mxser_new +myri10ge +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +net2280 +netconsole +netrom +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +nicstar +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +of_serial +ohci1394 +ohci-hcd +old_belkin +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +opl3 +oprofile +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p54common +p54pci +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas2 +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpc52xx +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300 +pc87360 +pc87427 +pca9539 +pcbc +pcd +pcf8574 +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_new +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +physmap_of +piix +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmac_zilog +pmc551 +pmu_battery +powermate +power_supply +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +psmouse +pss +pt +pvrusb2 +pwc +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r8a66597-hcd +rack-meter +radeon +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio500 +riscom8 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-cmos +rtc_cmos_setup +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7134-oss +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb +sb_lib +sbp2 +sc1200 +sc92031 +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdhci +sdio_uart +sd_mod +se401 +seed +serial_core +serial_cs +serio_raw +sermouse +serpent +serport +serverworks +sg +sha1_generic +sha256_generic +sha512 +shaper +sidewinder +sierra +siimage +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +skfp +skge +sky2 +sl811_cs +sl811-hcd +sl82c105 +slc90e66 +slhc +slip +slram +sm501 +sm501fb +smbfs +smc91c92_cs +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ainstr-fm +snd-ainstr-simple +snd-ak4114 +snd-ak4117 +snd-ak4531-codec +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs8427 +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigoio +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-maestro3 +snd-mia +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcm-oss +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-instr +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-oss +snd-seq-virmidi +snd-serial-u16550 +snd-soc-core +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-trident-synth +snd-usb-audio +snd-usb-caiaq +snd-usb-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +softdog +sound +soundcore +sound_firmware +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +sscape +ssfdc +st +stallion +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +swim3 +sx +sx8 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +sysv +tc86c001 +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram +tekram-sir +tg3 +tgr192 +therm_adt746x +therm_windtunnel +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmscsim +tmspci +touchright +touchwin +tpm +tpm_atmel +trancevibrator +trident +tridentfb +triflex +trix +trm290 +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +typhoon +u132-hcd +uart401 +uart6850 +uartlite +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +umem +uninorth-agp +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usbcore +usb_debug +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +veth +vfat +vgastate +via +via686a +via-ircc +via-rhine +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +visor +vitesse +vivi +vlsi_ir +v_midi +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83977af_ir +w83l785ts +w9966 +w9968cf +wacom +wanrouter +wanxl +warrior +wavelan_cs +wbsd +wdrtas +wdt_pci +whiteheat +winbond-840 +windfarm_core +wire +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xircom_tulip_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +yenta_socket +zatm +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/powerpc/powerpc-smp.modules +++ linux-2.6.24/debian/abi/2.6.24-24.56/powerpc/powerpc-smp.modules @@ -0,0 +1,1731 @@ +3c359 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-xxxx +6pack +8021q +8139cp +8139too +8250 +8250_pci +8390 +9p +9pnet +9pnet_fd +a100u2w +a3d +aacraid +ablkcipher +abyss +ac97_bus +ac97_codec +acecad +acenic +act200l-sir +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +ad1848 +ad7418 +adfs +adi +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm8211 +adm9240 +ads7846 +adt7470 +adutux +adv7170 +adv7175 +advansys +aead +aec62xx +aedsp16 +aes_generic +affs +af_key +af_packet +af-rxrpc +agpgart +ah4 +ah6 +aha152x_cs +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +airprime +alauda +ali-ircc +alim15x3 +ambassador +amd8111e +ams +analog +ans-lcd +anubis +aoe +apm_emu +apm-emulation +apm_power +appledisplay +appletalk +appletouch +applicom +arc4 +arcmsr +arcnet +arc-rawmode +arc-rimi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +asix +async_memcpy +async_tx +async_xor +at25 +ata_generic +ata_piix +aten +ati_remote +ati_remote2 +atl1 +atmel +atmel_cs +atmel_pci +atmtcp +atp870u +atxp1 +auerswald +authenc +auth_rpcgss +autofs +autofs4 +ax25 +axnet_cs +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcm203x +bcm3510 +bcm43xx +befs +belkin_sa +berry_charge +bestcomm-ata +bestcomm-core +bestcomm-fec +bfs +bfusb +binfmt_misc +blkcipher +block2mtd +blowfish +bluecard_cs +bluetooth +bmac +bnep +bnx2 +bonding +bpa10x +bpck +bpck6 +bpqether +br2684 +bridge +briq_panel +broadcom +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btsdio +bttv +btuart_cs +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +cafe_ccic +cafe_nand +camellia +capmode +cassini +cast5 +cast6 +catc +cbc +cciss +cdc-acm +cdc_ether +cdc_subset +cdrom +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +chipreg +cicada +cifs +cinergyT2 +cirrusfb +cls_basic +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cmd64x +cn +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comm +compat_ioctl32 +configfs +corgi_bl +cp2101 +cpia +cpia2 +cpia_pp +cpia_usb +cpqarray +cpufreq_conservative +cpufreq_ondemand +cpufreq_powersave +cpufreq_stats +cpufreq_userspace +c-qcam +crc16 +crc32c +crc7 +crc-ccitt +crc-itu-t +cryptd +cryptoloop +crypto_null +cs53l32a +cs5530 +cx22700 +cx22702 +cx2341x +cx23885 +cx24110 +cx24123 +cx25840 +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxgb +cxgb3 +cy82c693 +cyber2000fb +cyberjack +cyclades +cyclomx +cycx_drv +cypress_cy7c63 +cypress_m8 +cytherm +dabusb +DAC960 +davicom +db9 +dc395x +dccp +dccp_ccid2 +dccp_ccid3 +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dccp_tfrc_lib +de2104x +de4x5 +de600 +de620 +decnet +deflate +defxx +delkin_cb +des_generic +dib0070 +dib3000mb +dib3000mc +dib7000m +dib7000p +dibx000_common +digi_acceleport +diskonchip +display +dl2k +dlci +dlm +dm9601 +dm-crypt +dme1737 +dm-emc +dmfe +dm-hp-sw +dm-mirror +dm-mod +dm-multipath +dm-rdac +dm-round-robin +dm-snapshot +dmx3191d +dm-zero +dn_rtmsg +doc2000 +doc2001 +doc2001plus +docecc +docprobe +donauboe +dpt_i2o +drm +ds1337 +ds1374 +ds1621 +ds1682 +ds2482 +ds2490 +ds2760_battery +dsbr100 +dscc4 +dst +dst_ca +dstr +dtl1_cs +dummy +dv1394 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-au6610 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-m920x +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb-usb-vp702x +dvb-usb-vp7045 +e100 +e1000 +e1000e +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_ulog +ebt_vlan +ecb +econet +ecryptfs +edac_core +eepro100 +eeprom +eeprom_93cx6 +efs +ehci-hcd +elo +em28xx +em_cmp +emi26 +emi62 +em_meta +em_nbyte +empeg +em_text +emu10k1-gp +em_u32 +eni +epat +epca +epia +epic100 +eql +esi-sir +esp4 +esp6 +et61x251 +eth1394 +evbug +evdev +exportfs +ext2 +ext3 +f71805f +f71882fg +f75375s +farsync +fat +faulty +fcrypt +fdomain +fdomain_cs +fealnx +fec_mpc52xx +fec_mpc52xx_phy +ff-memless +firestream +fit2 +fit3 +fixed +floppy +fm801-gp +fmvj18x_cs +forcedeth +fore_200e +freevxfs +friq +frpw +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +funsoft +fuse +gadgetfs +gamecon +gameport +garmin_gps +gdth +generic +generic_serial +gen_probe +g_ether +gf128mul +gf2k +g_file_storage +gfs2 +girbil-sir +gl518sm +gl520sm +gl620a +grip +grip_mp +g_serial +gtco +guillemot +gunze +gxt4500 +g_zero +hamachi +hci_uart +hci_usb +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hermes +hexium_gemini +hexium_orion +hfs +hfsplus +hid +hidp +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpt34x +hpt366 +hptiop +hwmon-vid +i2c-algo-pca +i2c-algo-pcf +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-dev +i2c-hydra +i2c-i801 +i2c-i810 +i2c-matroxfb +i2c-mpc +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-piix4 +i2c-prosavage +i2c-savage4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-voodoo3 +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_mad +ibmcam +ibmpex +ib_mthca +ibmtr_cs +ib_sa +ib_srp +ib_ucm +ib_umad +ib_uverbs +icplus +ide-cd +ide-cs +ide-disk +ide-floppy +ide-generic +ide_platform +ide-scsi +ide-tape +idmouse +idt77252 +ieee1394 +ieee80211 +ieee80211_crypt +ieee80211_crypt_ccmp +ieee80211_crypt_tkip +ieee80211_crypt_wep +ieee80211softmac +ifb +iforce +imm +inet_lro +inftl +initio +input-polldev +intel_vr_nor +interact +ioc4 +io_edgeport +io_ti +iowarrior +ip2 +ip2main +ip6_queue +ip6table_filter +ip6table_mangle +ip6table_raw +ip6_tables +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_HL +ip6t_hl +ip6t_ipv6header +ip6t_LOG +ip6t_mh +ip6t_owner +ip6t_REJECT +ip6t_rt +ip6_tunnel +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ip_queue +ipr +ips +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +ipt_addrtype +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_ecn +ipt_iprange +ipt_LOG +ipt_MASQUERADE +ipt_NETMAP +ipt_owner +ipt_recent +ipt_REDIRECT +ipt_REJECT +ipt_SAME +ipt_TOS +ipt_tos +ipt_TTL +ipt_ttl +ipt_ULOG +ipv6 +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ipw +ipw2100 +ipw2200 +ipx +ircomm +ir-common +ircomm-tty +irda +irda-usb +ir-kbd-i2c +irlan +irnet +irtty-sir +iscsi_tcp +isl6421 +isofs +isp116x-hcd +it8213 +it821x +it87 +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +ixgb +ixgbe +ixj +ixj_pcmcia +jbd +jedec_probe +jffs2 +jfs +jmicron +joydev +joydump +jsm +kafs +kahlua +kaweth +kbic +kbtab +keyspan +keyspan_pda +keyspan_remote +khazad +kingsun-sir +kl5kusb105 +kobil_sct +konicawc +ks0108 +ks0127 +ks959-sir +ksdazzle-sir +ktti +kyrofb +l2cap +l64781 +lanai +lanstreamer +lapb +lapbether +lcd +ldusb +lec +legousbtower +lgdt330x +libata +libcrc32c +libertas +libertas_cs +libertas_sdio +libiscsi +libphy +libsas +libsrp +libusual +lightning +linear +litelink-sir +lkkbd +llc2 +lm63 +lm70 +lm75 +lm77 +lm78 +lm80 +lm83 +lm85 +lm87 +lm90 +lm92 +lm93 +lmc +lnbp21 +lockd +lock_dlm +lock_nolock +loop +lp +lpfc +lrw +ltv350qv +lxt +lzo_compress +lzo_decompress +m25p80 +m41t00 +ma600-sir +mac53c94 +mac80211 +mace +macvlan +magellan +map_absent +map_funcs +map_ram +map_rom +marvell +matroxfb_maven +matrox_w1 +max1619 +max6650 +max6875 +mbcache +mcp2120-sir +mcs7780 +mcs7830 +mct_u232 +md4 +mdc800 +mdio-bitbang +md-mod +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mesh +mga +michael_mic +microtek +mii +minix +mk712 +mkiss +mlx4_core +mlx4_ib +mmc_block +mmc_core +mos7720 +mos7840 +moxa +mpc5200_wdt +mpc52xx_psc_spi +mpc52xx_uart +mpoa +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu401 +msdos +msnd +msnd_classic +msnd_pinnacle +msp3400 +mt2060 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtdchar +mtdconcat +mtd_dataflash +mtdoops +mtdram +mtouch +multipath +mv643xx_eth +mxser_new +myri10ge +nand +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +ncpfs +ne2k-pci +neofb +net1080 +net2280 +netconsole +netrom +netwave_cs +netxen_nic +newtonkbd +nf_conntrack +nf_conntrack_amanda +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sip +nf_conntrack_tftp +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_gre +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nftl +n_hdlc +nicstar +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp437 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +n_r3964 +ns558 +ns83820 +ns87415 +nsc-ircc +nsp32 +nsp_cs +ntfs +nvidiafb +nxt200x +nxt6000 +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +of_serial +ohci1394 +ohci-hcd +old_belkin-sir +olympic +omninet +on20 +on26 +onenand +onenand_sim +opl3 +oprofile +option +or51132 +or51211 +orinoco +orinoco_cs +osst +oti6858 +output +ov7670 +ovcamchip +p54common +p54pci +p54usb +p8023 +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas2 +pata_amd +pata_cs5520 +pata_efar +pata_it8213 +pata_it821x +pata_jmicron +pata_marvell +pata_mpc52xx +pata_mpiix +pata_netcell +pata_oldpiix +pata_pcmcia +pata_pdc2027x +pata_rz1000 +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300 +pc87360 +pc87427 +pca9539 +pcbc +pcd +pcf8574 +pcf8591 +pci +pci200syn +pcilynx +pcips2 +pcmcia +pcmcia_core +pcnet32 +pcnet_cs +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc202xx_new +pdc202xx_old +pdc_adma +pegasus +penmount +pf +pg +phantom +phidget +phidgetkit +phidgetmotorcontrol +phidgetservo +phonedev +phram +physmap +physmap_of +piix +pktcdvd +pktgen +pl2303 +plat_nand +plat-ram +plip +plusb +pluto2 +pm2fb +pm3fb +pmac_zilog +pmc551 +pmu_battery +powermate +power_supply +ppa +ppdev +ppp_async +ppp_deflate +ppp_generic +ppp_mppe +pppoatm +pppoe +pppol2tp +pppox +ppp_synctty +prism54 +psmouse +pss +pt +pvrusb2 +pwc +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlogic_cs +qlogicfas408 +qnx4 +qsemi +qt1010 +quickcam_messenger +quota_v1 +quota_v2 +r128 +r8169 +r8a66597-hcd +rack-meter +radeon +radio-gemtek-pci +radio-maestro +radio-maxiradio +raid0 +raid1 +raid10 +raid456 +raid_class +raw +raw1394 +ray_cs +rdma_cm +rdma_ucm +redboot +reed_solomon +reiserfs +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill +rfkill-input +ricoh_mmc +rio500 +rivafb +rndis_host +rocket +romfs +rose +rpcsec_gss_krb5 +rpcsec_gss_spkm3 +rrunner +rsrc_nonstatic +rt2400pci +rt2500pci +rt2500usb +rt2x00lib +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-cmos +rtc_cmos_setup +rtc-core +rtc-ds1307 +rtc-ds1374 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-isl1208 +rtc-lib +rtc-m41t80 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-pcf8563 +rtc-pcf8583 +rtc-rs5c348 +rtc-rs5c372 +rtc-stk17ta8 +rtc-test +rtc-v3020 +rtc-x1205 +rtl8150 +rtl8187 +rxkad +s1d13xxxfb +s2io +s3fb +s5h1409 +s5h1420 +saa5246a +saa5249 +saa6588 +saa6752hs +saa7110 +saa7111 +saa7114 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7134-oss +saa7146 +saa7146_vv +saa7185 +saa7191 +safe_serial +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb +sb_lib +sbp2 +sc1200 +sc92031 +sch_atm +sch_cbq +sch_dsmark +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_netem +sch_prio +sch_red +sch_sfq +sch_tbf +sch_teql +sco +scsi_debug +scsi_mod +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +scsi_wait_scan +sctp +sdhci +sdio_uart +sd_mod +se401 +seed +serial_core +serial_cs +serio_raw +sermouse +serpent +serport +serverworks +sg +sha1_generic +sha256_generic +sha512 +shaper +sidewinder +sierra +siimage +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +skfp +skge +sky2 +sl811_cs +sl811-hcd +sl82c105 +slc90e66 +slhc +slip +slram +sm501 +sm501fb +smbfs +smc91c92_cs +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc-ircc2 +sn9c102 +snd +snd-ac97-codec +snd-ad1889 +snd-ainstr-fm +snd-ainstr-simple +snd-ak4114 +snd-ak4117 +snd-ak4531-codec +snd-ak4xxx-adda +snd-ali5451 +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs8427 +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigoio +snd-intel8x0 +snd-intel8x0m +snd-korg1212 +snd-layla20 +snd-layla24 +snd-maestro3 +snd-mia +snd-mixart +snd-mixer-oss +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-page-alloc +snd-pcm +snd-pcm-oss +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-instr +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-oss +snd-seq-virmidi +snd-serial-u16550 +snd-soc-core +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-trident-synth +snd-usb-audio +snd-usb-caiaq +snd-usb-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +softdog +sound +soundcore +sound_firmware +sp8870 +sp887x +spaceball +spaceorb +specialix +spectrum_cs +speedtch +spi_bitbang +spi_butterfly +spidev +spi_lm70llp +sr_mod +ssb +sscape +ssfdc +st +starfire +stex +stinger +stir4200 +stowaway +stradis +strip +stv0297 +stv0299 +stv680 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svgalib +swim3 +sx +sx8 +sym53c500_cs +sym53c8xx +synclink +synclink_cs +synclink_gt +synclinkmp +syncppp +sysv +tc86c001 +tcm825x +tcp_bic +tcp_cubic +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10021 +tda10023 +tda1004x +tda10086 +tda7432 +tda8083 +tda826x +tda827x +tda8290 +tda9840 +tda9875 +tdfx +tea +tea5761 +tea5767 +tea6415c +tea6420 +tehuti +tekram-sir +tg3 +tgr192 +therm_adt746x +therm_windtunnel +thmc50 +tifm_7xx1 +tifm_core +tifm_sd +tipc +ti_usb_3410_5052 +tlan +tle62x0 +tlv320aic23b +tmdc +tms380tr +tmscsim +tmspci +touchright +touchwin +tpm +tpm_atmel +trancevibrator +trident +tridentfb +triflex +trix +trm290 +ts_bm +ts_fsm +ts_kmp +tsl2550 +ttpci-eeprom +ttusb_dec +ttusbdecfe +tua6100 +tulip +tun +tuner +tuner-3036 +tuner-simple +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +twidjoy +twofish +twofish_common +typhoon +u132-hcd +uart401 +uart6850 +uartlite +ubi +ucb1400_ts +udf +ueagle-atm +ufs +uhci-hcd +uinput +uio +uio_cif +uli526x +ultracam +umem +uninorth-agp +upd64031a +upd64083 +uPD98402 +usb8xxx +usbatm +usbcore +usb_debug +usbhid +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-storage +usbtouchscreen +usbvideo +usbvision +uss720 +uvesafb +v4l1-compat +v4l2-common +v4l2-int-device +ves1820 +ves1x93 +veth +vfat +vgastate +via +via686a +via-ircc +via-rhine +via-velocity +vicam +video1394 +videobuf-core +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +visor +vitesse +vivi +vlsi_ir +v_midi +vp27smpx +vpx3220 +vsxxxaa +vt1211 +vt8231 +vt8623fb +w1_ds2433 +w1_ds2760 +w1_smem +w1_therm +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83977af_ir +w83l785ts +w9966 +w9968cf +wacom +wanrouter +wanxl +warrior +wavelan_cs +wbsd +wdrtas +wdt_pci +whiteheat +winbond-840 +windfarm_core +wire +wl3501_cs +wm8739 +wm8775 +wp512 +x25 +x25_asy +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_user +xfs +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +x_tables +xt_CLASSIFY +xt_comment +xt_connbytes +xt_connlimit +xt_CONNMARK +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_dccp +xt_DSCP +xt_dscp +xt_esp +xt_hashlimit +xt_helper +xtkbd +xt_length +xt_limit +xt_mac +xt_MARK +xt_mark +xt_multiport +xt_NFLOG +xt_NFQUEUE +xt_NOTRACK +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_realm +xts +xt_sctp +xt_SECMARK +xt_state +xt_statistic +xt_string +xt_TCPMSS +xt_tcpmss +xt_tcpudp +xt_time +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +yenta_socket +zatm +zc0301 +zd1201 +zd1211rw +zl10353 +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/powerpc/powerpc64-smp +++ linux-2.6.24/debian/abi/2.6.24-24.56/powerpc/powerpc64-smp @@ -0,0 +1,7194 @@ +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0x048d27cc hvcs_register_connection +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0x536d329b hvcs_get_partner_info +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0xc39c3704 hvcs_free_partner_info +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0xd0a02396 hvcs_free_connection +EXPORT_SYMBOL crypto/gf128mul 0x24ed78f1 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x26f4c894 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0x3048a718 gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x61dc7b4e gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x67230a48 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x79a10b7e gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7ade1ff9 gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x7f5e7a78 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x83dff6a6 gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0xac500869 gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0xb81a3b33 gf128mul_free_64k +EXPORT_SYMBOL crypto/gf128mul 0xcd29b909 gf128mul_4k_lle +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0xfcd524e1 suni_init +EXPORT_SYMBOL drivers/block/loop 0xb18783c4 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x0829e5cd pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x249854eb paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x33f96e4e paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x4012e89a pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x59afc1ef pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x748d87f1 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x7b273fff pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xa7ddfb11 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xacea36f0 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xbaacb3e4 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xcf5e1af9 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xe448b320 pi_write_block +EXPORT_SYMBOL drivers/cdrom/cdrom 0x022d2798 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0x08029dfc unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x233a0596 cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x3b216454 cdrom_release +EXPORT_SYMBOL drivers/cdrom/cdrom 0x73b2e773 cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0x74e89f06 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x91e9f8d8 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x9a1cecef register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0xc3fa1a62 cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0xdfc2e31e cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0xfb6589a0 cdrom_mode_sense +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0d15b583 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x158e38b6 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2dc73ed1 agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x37d1278e agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x409566df agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4e681028 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x5925f1c8 agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7090ee03 agp_allocate_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x719cf26d agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x78f6c671 agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x79ea2834 agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7b36bfd7 agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7c69e9a9 agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7d3909ce agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x83a10dcd agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x888141cc agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8b80268c agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9119cc21 agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9bf68626 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x9cf1a63f agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcb6901c2 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0xcdcd951a agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd12df314 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdc251561 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xdfccc793 agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe8f5f3c7 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf401fc41 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf64ac05c agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0xf83c4448 agp_bridge +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x0f8f9c02 drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0x1b3e46bf drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x291168fc drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x3a8b6ae3 drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0x3e9b67e9 drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0x414ebed8 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0x44796c9e drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x4c984e21 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x566bded3 drm_compat_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0x61606978 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0x674a2767 drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0x6aefa411 drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0x6d72912e drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0x7595b4d3 drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x86472c7e drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x86602e52 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0x87c06ea8 drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0x97c54997 drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x97f39f92 drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0xa1000e4e drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0xa2fdecc9 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0xac943983 drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0xaf23744c drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xb0884a13 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0xb4a155e2 drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xbca7ddf6 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0xbd4517d3 drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0xbd7d6ad1 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0xc46bac69 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0xc9626eda drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0xca617439 drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xd4068ceb drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0xdd7da0c6 drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0xdd97b267 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0xde460b5d drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0xe363b8d3 drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0xe634f395 drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xeac5f4b1 drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0xf192c390 drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0xf52555b6 drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/generic_serial 0x193fb5bf gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x3d4d3924 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x4290f17a gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0x490057b6 gs_got_break +EXPORT_SYMBOL drivers/char/generic_serial 0x54980a59 gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x557ce1e3 gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0x5ac2d777 gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x600e0df5 gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0x602deeb5 gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0x61b6a75b gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0x68c32fc7 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x84c1ec4b gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x86de6c5c gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0x962f8d10 gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0xba4bdc95 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0xd5e3b689 gs_init_port +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0dfffc7a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x133e825c ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a1e32f2 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x29fa24dc ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37bf2dc2 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5131bf57 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5ec06ce8 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x64abaf2f ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6739f521 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x779bf04c ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7e06e20b ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x888a5b15 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c4e6a43 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8e54de81 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x91aac919 ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x97606e94 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa5df26d0 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb891abe5 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc0f6bac5 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc3d49d74 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc5355bc6 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd0ecbbd8 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd2f1e3a5 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfe748f64 ipmi_register_smi +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0x4d52c01c cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0xc1b9c737 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0xde5ce8e5 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0x8f74dd2e edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0xd0a6cc76 edac_mc_find +EXPORT_SYMBOL drivers/edac/edac_core 0xdb7fb95d edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xa8ffea75 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x9ad67c10 i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x68f43cd2 amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0269c852 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x02830cf9 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x04020586 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x06956555 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07ad5847 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x099465d2 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0f38266b dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x137bfe41 dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x148e48d1 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x20626ce3 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x265b6ad8 hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x34ffcccb hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x39a4f27c hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x418a0437 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x42145ff9 hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x42a9c7a1 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4888682b hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5062116c hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x55435fb9 hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5def3323 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x603b5721 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x60b7e5cb hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x60f663e4 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x669a4269 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x694a5ec3 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6e2f78c9 hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6e6ba025 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71304f0a csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f72bb4f hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x82b45c62 hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8d9ca64d hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e526091 hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x96af780c hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9826548e hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa36bbafa hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa84cd223 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb00c19dd hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7b349f4 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb8ffadb1 __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbc8fcb02 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbcdfd52d hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbeabd93e hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc08bd631 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc1f31971 hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2a81e8d hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3260ddf hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3be6414 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc7783c33 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xce56a6f7 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xceb2b9ab hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xced515c5 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcedba1de hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd41617fa hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd42e7629 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd55246b3 hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6bef193 hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xda9a160b hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe17b571e hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe1cb82b6 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe36694ac hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe3b79945 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe8f6b411 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeda5a93a hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf4b81ec4 hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf7e12f24 hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfcf8e90a hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xff5a5b07 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xffb3ad7e hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x2ea82a68 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x3b87a613 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xeaea70cc ohci1394_stop_context +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x3e60af55 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x788e00e9 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd8223cf4 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xdb24b1d7 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x016cb47b ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0773a740 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x46fab1b2 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4dc0f51d ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x52e4df66 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5759f767 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x628c9ea7 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6bd51429 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x789ef946 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7c94b149 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8741adf6 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8cd502b2 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9e64a7b0 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xce54e494 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xedefdde2 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfd64a8da ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00448bac ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01ea5b83 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02ca4097 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0452435d ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x051e652e ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ce3e531 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1387eeeb ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18802114 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19cd5597 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c3f4d30 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d78a24f ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x295520de ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d0e251b ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2efa3c64 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f0b0ec0 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ffb85a9 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40160c2c ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b22ce56 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4f6b8607 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4f98bf72 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cd13697 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d1d60e3 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6836c316 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fea74bc ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x710bf844 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78c63c56 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78f1b190 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d7bee94 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x804a12fd ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b835a17 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98e73722 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ace5b69 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9dc45b82 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9edc60d3 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa086a531 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa193ff38 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa368bd19 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa503691b ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7cc5de5 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa925443e ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9b66e1b ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae7edffc ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1ec055f ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4faf655 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb70a9445 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba9cc0e9 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbbb6c119 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf6e2c5b ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2e1dc6f ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4b3a270 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbb7bba2 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcdd6dec6 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0908e59 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd19ebd07 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd2cd4af3 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd657e376 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdbdfded9 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe72a9ba3 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9aa6373 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xed382ad5 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0efcf71 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5820d6a ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf63327ee ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfeee5c20 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfefa5334 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x032eaa6c ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1ba0b553 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1c1b5aa2 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1e4e5dfa ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2f1b0b9a ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x53e5693e ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x63fd820a ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9e110f64 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc39ab5dd ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xca7f613d ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcf5b0c8c ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd8aba669 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xede0355b ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x01d3c8be ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0d0e5932 ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x145e9a42 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x14c7b269 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x278e00d1 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x31faa5b3 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x43cfad62 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x93cf083d ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddb79ca3 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf64420f8 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x057cb4d2 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x36a35a2f ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3e0ed3f0 ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa12a9ec5 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5f04aa11 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6b434106 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x782c63ae iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x816fae57 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xaf85213a iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc743f877 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe8881a68 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf98035d3 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x085dfc99 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1003ac8c rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3aeb00e6 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x489d30f4 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x54777ece rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x681303cc rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7b220f03 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7bc4682c rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fab0846 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8708afe3 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8c91d8d6 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8f26dc6d rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa2b66c8f rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa455c61a rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb5ba11d7 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd383a07a rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdbdb4281 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe86c2256 rdma_connect +EXPORT_SYMBOL drivers/input/gameport/gameport 0x04fdedb9 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0c5372bb gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0x169ca5b2 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x61d94271 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x91e8a5f4 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa96d1c6c gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbe83fb86 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd37f6b87 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd777174a __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf25853b6 gameport_start_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x302ca1c1 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x47dfd443 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x4b5ef864 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x51019502 input_allocate_polled_device +EXPORT_SYMBOL drivers/md/dm-mirror 0x8cd0c65e dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xa005a602 dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xc7baadcc dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0xeaaccffb dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mod 0x010f55fd dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x02cb6729 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0x3f20e77a kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x4fa18785 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0x56c5e2e6 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0x5d4cc569 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x8e0b1bb6 dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0x9481cba1 kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xa3bc6943 dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0xb7fcc9d7 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0xba4e4006 dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0xbd58d30d dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xc07f955b dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xd09e157a dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xdaffcf97 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0xdb8862b6 dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0xede9ee7b dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0xf05565f4 dm_io_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xf89f1205 kcopyd_client_create +EXPORT_SYMBOL drivers/md/md-mod 0x1acdc966 bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x1e7b5cf0 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0x3bb662a9 md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0x48dc6443 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0x503eb5b3 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0x69167976 unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x758f7b08 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x761196ca md_error +EXPORT_SYMBOL drivers/md/md-mod 0x80719dfe bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x8c64e01b md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0xa0f76631 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xae2752c5 md_done_sync +EXPORT_SYMBOL drivers/md/md-mod 0xbe84c7fa register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0xde08f522 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0xee869498 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0xffd93169 md_check_recovery +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x100c5844 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1f290266 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2da1417b flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x43bf5013 flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x43f1a578 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5535d459 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6d6298e9 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x701f9e25 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7349f669 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x80cdce48 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9bc27651 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xabb05ba7 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb4ab8673 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb697ae1b flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb7cc9fbd flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbb173246 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc4fca6b7 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd51f0145 flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xed42fea5 flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf5a8ee08 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7ee6cc2e bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x81486c1d bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xba7e8fa3 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xdf735d0d bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x04796edf dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1642dd60 dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x19592fe2 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x1fb99ba1 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x92aea9cc dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x95fe8a10 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xad4165b0 write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc4920012 dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xc5c78ca9 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd3f1d8b8 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd7fdba5a dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe591c6e9 rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xed206c4a dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf07694b2 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x4dc1a3d0 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0a7f9607 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0d6acc51 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1865e62a dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1c9ff1e3 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x22cbb1c1 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x25ee78ee dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x346142af dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x35eb245f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x38e16db6 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a8d239e dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4011d18e dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x407dc6a8 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x51d93ad0 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x544cdf77 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x544ce3aa dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x54deb8b7 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x60250680 dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6a6d7dc2 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x723b695d dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x829c2085 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88029ddc dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8f8634e8 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8ffbee97 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x975c12f4 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9f3ec938 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa9dae272 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xaee1aca4 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb3bc432c dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb956c556 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc80a6ee0 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xccc1ecce dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd121fc99 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdad46169 dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdf0fac7a dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe0bd4520 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf5329b6e dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf755eaa3 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x04c866be dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x139be5f1 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2f30373e dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6593d720 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbaa90b28 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbf680a9b usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xcb9b2f71 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x664e6f0e af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x099011c0 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1a0470da dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x416503d7 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4fa54be0 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x62fd363c dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x68f60e56 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x71b3a15c dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x85724fa0 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x871b7b92 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8ed93c24 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xabd40777 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xc878a853 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x3376730f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x89fa3a48 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x77cf69bd cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x06f9f581 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9b6a3dda dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xeecd97e6 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x269dac42 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x107f6abe dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x3941ec86 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6d55f354 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x962e3114 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9930a8d8 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xbd0df602 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x0b26a616 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x3d0fe495 dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe86cf7f3 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1f6a4adb dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x21fe92fa dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3a37575c dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5a3d0d3e dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6b201c17 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa03d9e67 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x0aa500d5 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x7db6857e dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xc39fb74e dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x2923b33e dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x11615e2b isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x4db35fb8 l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x3855ed5d lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x16f02fb5 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x076c4406 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x01a753b4 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0x3c0603b8 mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xd3918f1c vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xdb80faae mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x5480c1ea nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x59ff0b9c nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xfde285df or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x1ab4c2eb or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0xdb8afa58 qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x72558a21 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x2076ab8d s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x9a67c39a sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x1367b3d0 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x05dc4c9c stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xee7b8bf8 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0x3987f168 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x20821290 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x899a61ac tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xf21f6055 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x46c71534 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xe6c04af2 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xe00ca54e tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0x453969dd tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xb58ac84c tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xe874be8f ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xa549af2a ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x4c112c8c zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xf4feb255 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x5a5fbf36 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x7198befc ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x6b8409af bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xd4e94045 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xdb24f32a bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x168840db btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xaaade62d btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/cpia 0x036cd0ab cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0xad21a8e1 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xbbc08e0f cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0x49f8453e cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x0836babc vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x7712e2c0 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0ed69e23 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x618af7b3 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x66956ca4 cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb12a82c9 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb91b7adb cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x00c9434f cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x0148b36d cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x1a6769e9 cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x1eb820c7 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x215d9d38 cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa49f79ce cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xce0aa2c2 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xe7c1692f cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf9d06613 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x05a4be33 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x13115a72 cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3714e14b cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3d0f4326 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x412f7e4f cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4c8f3a64 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x55bcf739 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x59acfd96 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x62ff37f9 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x69345eaf cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x73d4c38a cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x741d2e98 cx88_newstation +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xacad8ff9 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xae3fb45b cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc0ad4c78 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc877b65f cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcf178b58 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd7572d9b cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xea9f66a4 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xedadbc7d cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfa600795 cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xffda1694 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0070cfb0 ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2a36b63b ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3524f5f2 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4a668e85 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5a68583b ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5ec33385 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x675e9e6a ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7403f768 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x7ccf4328 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xabdd6772 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe2e079c8 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xef12f38d ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf895ed1c ivtv_api +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1789dce0 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1a073907 saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4307f50c saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x43481fe1 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x434c5c66 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x51f84cb8 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x821f6cac saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x90fa7b84 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa24919d4 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xace0f4c2 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xde25498d saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdf10857a saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf295da48 saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/tveeprom 0xbabf6de5 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/tveeprom 0xd9ef7330 tveeprom_read +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1c643fdd usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5293ede2 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x54ded406 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x7ad92cef usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x80ab1d4b usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9778abda RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xdf605c59 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf168e032 usbvideo_register +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf99821bb usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfdf1448f usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xf2c81624 v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x043138f7 v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0b7a898d v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x572269cb v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb5f162d7 v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xea6b1ba9 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x24d49a56 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x47692fd8 videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videodev 0x069c8bf0 video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0x0963ea22 video_ioctl2 +EXPORT_SYMBOL drivers/media/video/videodev 0x18c44241 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0x25635d46 video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0x628517ce video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0xa7930c54 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0xaeeba4d9 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xbaffd892 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0xff3dea53 video_exclusive_open +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x059a2fa8 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b170530 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0c10a114 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0c957ddc mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e6f1067 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x214cd677 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x231724a0 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3881902c mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x490c520d mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x787d4a1f mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8655f92b mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9530b532 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9aadfac0 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa5f6e5b1 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb9d7ea7e mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc297b275 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcc12c977 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcd032c88 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd446ec12 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdcba99db mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde402c6e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe8baf344 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe943056a mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf34f5ed4 mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfd7f616c mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0450006d mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1a313d9d mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2d55f77c mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x319fe649 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x43b0c9eb mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4431f610 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4d3d93b5 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54399d88 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5a05cc53 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x62724555 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6cab2fc5 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f24d57f mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa006f05a mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4ce96ab mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa80fd189 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa9ebb0b7 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf1f9e78 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb084fa5e mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb2766308 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbd861f24 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc8470d34 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc2b92cf mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9343f7e mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf1fdec67 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0c05108d i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0d0f80c0 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x12d9a705 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x15602d5a i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x180b1621 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x263aaef4 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x27c54573 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x29b774a5 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2c7c2a45 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5cbb557b i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7ef30bc6 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7ff973ab i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x836df283 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8a4bfb7b i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8b225a41 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x92991a6a i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa2a5bb0c i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb34c3dd8 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc62ec5b6 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc679eede i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc87975ca i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe64dca2a i2o_device_claim +EXPORT_SYMBOL drivers/misc/ioc4 0x1b7fbde7 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xbe8389d4 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0929515b tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x10976e8e tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x1a273a67 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x2a273540 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x492bbcd2 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x547cf48d tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x747d7b03 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7ef23480 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xcc6fbfa0 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xd3e0751f tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xeb2ca0c3 tifm_alloc_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x089835c1 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x029cac6e mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x11df2c7a mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x242eddac mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x26aec5ea mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x33fc5517 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x401a0c52 mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x49bd3470 mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x55657b76 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x557e8a8e mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x76605591 mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9681d3eb mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9b20c06e __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa3784398 mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc58a1b5d mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xcda75d41 mmc_register_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd642d037 mmc_alloc_host +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x07790a5a cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x608f6798 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x986eea6e cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xa0344d35 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xacef689b map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc5d812aa register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdf60c6f8 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x94a041bd mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xda54ca12 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xad4cc5b4 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0xd89a438b del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x3aa0619d mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xe71617cc mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nand 0x91e262be nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb1e908d9 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x95a857ec onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc8af593d onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x1d1cd92d __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0x3fadf6a4 ei_poll +EXPORT_SYMBOL drivers/net/8390 0x7b41a94b ei_open +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0x7eac236f NS8390_init +EXPORT_SYMBOL drivers/net/8390 0x8912ee63 ei_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0504412e arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5992df03 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x964547c7 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbe1287e9 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd1585599 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xededd069 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x78e0faf9 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xaf8eaca8 com20020_check +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x04343dc3 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1eb51581 cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x36850c31 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3cf9d0a5 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x46ab94ae dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x49a2c411 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6632046b t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6bc9a88f cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x77427f08 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8504e867 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa99b968c t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaa65b373 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb35eeec8 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb43af89e cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdb363ba3 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf575b9f6 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x03cb6dfd hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x49c914e1 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5174bd82 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xca60c05a hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xdd8470fa hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0f08abba irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x180d1315 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3a397dfe sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x42f05bb4 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6e50172a sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8881d198 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x92073569 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba9291d8 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe963dc20 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf00c5719 sirdev_raw_write +EXPORT_SYMBOL drivers/net/mii 0x3a10b6cc mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x3dc252c7 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x675aa729 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x7b71c25c mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x7f6a987d mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x8dc60f0b mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xc07984ab mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xdbc553ae mii_check_link +EXPORT_SYMBOL drivers/net/phy/fixed 0x1ff195f3 fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0x4774a691 fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x047be82b mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x0aed1c0d phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0x0c31460e phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0x149ac5bd phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x2e123ffb phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x2f6d9701 genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x31b9bd54 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0x33704517 phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x3e8853bc genphy_config_advert +EXPORT_SYMBOL drivers/net/phy/libphy 0x42ef0d37 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x5298b6a3 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x6056fa56 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x64165980 phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x6de71e99 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0x76b43aa6 phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x79402e16 phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0x79a28b14 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x8f1b3bd5 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x9026de2e phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x9c10e500 phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0xad5345ec phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xbc29b3a1 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0xc54ef428 phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xce813959 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0xd81321ac mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0xd918ad5b phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0xe6b29fc2 phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0xf6ee084c phy_connect +EXPORT_SYMBOL drivers/net/ppp_generic 0x01a9b629 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0x0be3a5e1 ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x1c4ac039 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x229311fc ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x29ac2e3c ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x51e9bc08 ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x7040d4d8 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0x8071654c ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0xbe65d0a8 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/pppox 0x0aaa4a21 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0x99a60aa7 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0xedb75fbe register_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0x24bfb4c8 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x1a5f6bdc tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x76ea881c tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa1c161bd tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xdd163982 tms380tr_close +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0344f080 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1bbaf3ef unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x33fe7af6 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x63e899a0 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x89e277df hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9ad6dcc4 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe0b49990 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfc175d94 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xffa36607 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/syncppp 0x1766db8a sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0x3c22c99c sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0x549e0e2c sppp_detach +EXPORT_SYMBOL drivers/net/wan/syncppp 0x8a1d1796 sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0x91e2ca74 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0xff0990c9 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wireless/airo 0x7aaf46e5 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xab44cb8a reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xe5065750 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x406ea31d atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x5003fc0f init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf94577aa stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x08c399b2 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22c812dc hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x28c50bde hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2e4276b7 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a32b745 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x45c3f6d4 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4d4684c4 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x50628a4d hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5d0a8b8c hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6acf65db hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6cb1c96b hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6f7f6a39 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x730c3b1c hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x758b58d9 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x77cb0d20 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x78d39312 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8b208198 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8deb62a0 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x90229195 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9460f6c9 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb14158a1 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb7d0b3ba hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba86c849 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8504d45 hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xce1ea387 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf1fcbf96 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfa207f80 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x9d71da09 __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xa75a16a8 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xc4648515 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xdcae7af5 orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xddfed0d2 __orinoco_down +EXPORT_SYMBOL drivers/parport/parport 0x080de63f parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x19a87280 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x1b809feb parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x28801f6a parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x2fa1e94f parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x37450b49 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x45d40be0 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x46ac526b parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x64c8671a parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x6b059a28 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7023ee94 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x73a0b6bb parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x748f5f83 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x76ba8800 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x7bf30b44 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x834f2e47 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x96cb8ad8 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x9bdaa496 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xab339815 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc765ed2e parport_release +EXPORT_SYMBOL drivers/parport/parport 0xcc47d2fb parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xd0d3f5a6 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xd28cad1f parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xd3f9e063 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xd984b49b parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xe124e3e1 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xe48536d0 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xe6b9c557 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xec34e7b9 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xf8efc93f parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport_pc 0x3f3a246a parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xad350f34 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x06c65108 pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x33d79fd2 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x34b8c53b pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3c92da4c pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4cc884c4 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x52df75ce pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5f7ebd71 cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6713f610 pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6a6a441c pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6c4b9195 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa7071bf7 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbf406afd pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc4b6234b pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd15e640f pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe85809f2 pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xea41bed8 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xedb5cd20 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x011b3182 pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0e7621a7 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x15c38be7 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1ada5ca9 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3cff5da2 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3d768ef2 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x443d1131 pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x53177079 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5c02db0a pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x648a6398 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6ea0034a pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x70bca561 pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x760c16de pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x79673a6e pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x858be3bb pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x895f34a0 pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x93153291 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x97028da1 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa20024ca destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa26b95e1 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa99092be pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xabd9e376 release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb397c341 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb510ba44 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc699d2c4 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc7191723 pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcfe1f473 pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd905150a pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe42d2f5c pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfb5c7488 pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfb8d2497 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0x4afd8b06 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xaa8b6db7 lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xcb3296d0 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x4f4ef73d mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x40016966 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x46d12d1d qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x683ec0d0 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x91af7376 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xbc8ac6d1 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xcc8fe7df qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x02ee13d3 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x215f5c88 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x56ee3c06 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x021490f9 scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x049d30f1 scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x092b1bdf scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0b5ba05c scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x10c7d276 scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11f6a635 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x18adc371 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1bf7d40e scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x208ffd85 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x24628344 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x27502631 __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2a5783cd scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2af1ffa5 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2f1b5f9a __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x327c8221 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x33b83349 scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x39e8b348 scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3a2c6ba6 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x406724bf scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x41fca753 scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4611799e scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x46ce7376 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4c82ed27 scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4d3266ce scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4eb6f00b scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x51647834 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x52a064b8 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x530f038c __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56987c01 scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x57e5e5b3 scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5d534a65 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5d74fee2 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6177b265 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6552ad05 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x67b84cfb __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6874ebbc scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6c4d7f0a scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6de3cc9c scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6f40b201 scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x73332bbd scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x76cbdac3 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x76f21a8d scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x79160c8a scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7a1f6656 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7c3f0699 scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7f160b09 scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x820754b4 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x82e5a277 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8328deae scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x849f293f scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8c81bb94 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8ce0d9b1 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x904f13dc scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96a5f7a3 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa09feca0 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa0fedc8c scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xada13a91 scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb33c7a63 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb4af9fcc scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbfb4d9cb scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc0caebd4 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc37985bc starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca7ed1ab scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd1c5f62c scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd2a83d9b __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xda5ecab3 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdffa5728 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe025d6af scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe15f9d05 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe5c342c5 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe80e8c90 scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea6c92a8 scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xed488cc9 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf0731b94 __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf104c586 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf11c599e scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf23f7daa scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf66bf4da scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf79c198a scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0043970d fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x104a4a55 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x147ba57c scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x20490342 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2dc878b4 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x49cdde4c fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4df70efe scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7600c4fb fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7ce4775d fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9b7bf098 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe90e71f9 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0419b2c3 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0db969ca scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x137680bf sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x13b601fb sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x254d0075 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x276d1e2c sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x36aa30b0 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3d6f5b3f sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3de347c6 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d18cbae sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x57bae814 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5a5a50ab scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x659f6c90 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6ae9e6c7 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7094ccbe sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8edf0d17 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7b91a9d sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa855b609 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb92840d sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc2fd6895 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc8a5f185 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xde9b5300 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe22f053e sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe5c8c0f4 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xebb4834d sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xefbcd7fc scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2995b17a spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2ecfdeca spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x748e2806 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xc7770202 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe62e4e9b spi_release_transport +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/serial/8250 0xda286da0 serial8250_register_port +EXPORT_SYMBOL drivers/serial/serial_core 0x14215d62 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x1550774a uart_register_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x1e2581ee uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0x3b252d00 uart_resume_port +EXPORT_SYMBOL drivers/serial/serial_core 0x5a40d7db uart_match_port +EXPORT_SYMBOL drivers/serial/serial_core 0x677e704d uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0x7c54d303 uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0xb2b56194 uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xbd3b358a uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0xdb9b1caa uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0xe4f23d03 uart_get_divisor +EXPORT_SYMBOL drivers/ssb/ssb 0x0411a00c ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x0fd3210a ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x0fd57891 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x223e92da ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x28ab0f49 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3572ad09 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x3bba8433 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x7c534088 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x97d114a2 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xa3ce2552 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xa50bea32 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd12a5930 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdc677971 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xe86f7020 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xf4c6d47c __ssb_driver_register +EXPORT_SYMBOL drivers/telephony/ixj 0xc9a27498 ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0x22eacf87 phone_register_device +EXPORT_SYMBOL drivers/telephony/phonedev 0x383de52b phone_unregister_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x03444d10 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x04ba5abe usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x09cd0541 usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0afce604 usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0d720d0b usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0da348b8 usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x0db68127 usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x16b8b7fa usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0x17621d5f usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x1a6a1923 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x20257662 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x20fbc1fa usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x264b72e7 usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x28b8d2cf usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2cdd79ed usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2fd73097 usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3887e61c usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3b49552c usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3b6e1e97 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3c76b9d3 usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x46762ef1 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x468b81f5 usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x48ea79d7 usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4e167bc9 usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0x4fe2bb8b usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5005262a usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5a0a9a87 usb_control_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x5ea760f4 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7d8eabcd usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7fd64ce5 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x889aa32f usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8c8aa0fa usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8fabaeae usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0xad98a316 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb4508e1f usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb835c92c usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0xc025523f usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcb211acc usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcbcf78c7 usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcc2e4eb4 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd79062de usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0xdaf88e14 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe452f01e usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe53fb863 usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf180c621 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf533c29f usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfc21fcf6 usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xffaf891a usb_sg_cancel +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x0e1df526 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x1adb6ae9 net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xb6a6f806 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x97b83f4a sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x623ed37b usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8f86a198 ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xd0570007 ezusb_set_reset +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xfb95ca8a usb_serial_resume +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb043a10b lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xdd1bd829 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2b98d0de cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2c5578e8 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x5e144f5e cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x9291c3a6 cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x2172be37 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0xc480fb85 display_device_unregister +EXPORT_SYMBOL drivers/video/output 0x0e339f6f video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x34e615b1 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x94121fe5 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x94a0b650 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xa3d8c8e3 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xa5d7921d svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xa9d1b555 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xc60e416a svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe295a1f3 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x48af6664 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x54538682 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x062d9e08 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x548b8ff0 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x7b68491f w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xf446dc42 w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x237def73 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x3b22d820 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x47df82d3 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6970367c configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x7da08b9d config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x8c47a8d3 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x8de4c6fd config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x9694819c configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xa6fe98c9 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xa87269ce configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xaf031816 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xee7d87f4 config_item_set_name +EXPORT_SYMBOL fs/jbd/jbd 0x0654d124 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0x0c034be7 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x23899138 journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0x257f35a7 journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x34a82c2d journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x3be0f1ba journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x3d679de7 journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0x3d87d328 journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x41d266bf journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0x41d6e93f journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x4ac6b189 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0x50c0cbc9 journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0x52a3fd90 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x52e1caff log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x5e7dd012 journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0x5f1b7fa6 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x649edbba journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x6bda329c journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0x73c0a77b journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0x88c2389c journal_update_format +EXPORT_SYMBOL fs/jbd/jbd 0x8c3f520b journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0x92c3602e journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x9afbd21f journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0xa1b861fa journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xa1c629b9 journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0xa616a7f2 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xa6640fa7 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0xa67965b2 journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0xadae93e5 journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0xb32d2618 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0xc7429e91 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xcda04236 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0xdd374cc6 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0xdff55f5f journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0xe4a0b728 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0xf78ef301 journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0xf99cbd2b journal_load +EXPORT_SYMBOL fs/lockd/lockd 0x02d056c4 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0x747b97fb nlmsvc_ops +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/mbcache 0x1e36cfc2 mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0x21071ffe mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x2c2c629f mb_cache_entry_release +EXPORT_SYMBOL fs/mbcache 0x8faa7f57 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0xa12ea7f1 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0xabcc1090 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0xaeef85f7 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0xc13abe4c mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xe842c8e5 mb_cache_entry_find_first +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x0841a938 nfsacl_encode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0x156a0dca nfsacl_decode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/xfs/xfs 0x8e652a44 xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x9aabc564 crc16 +EXPORT_SYMBOL lib/crc7 0xc086bfba crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x13c0c38e crc32c_le +EXPORT_SYMBOL lib/libcrc32c 0x41bcd8b3 crc32c_be +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x7bcc7198 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xd5e0f2c4 make_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x0a65bd8d p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x0fe99bf3 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x1004169a p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x170b60a6 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0x1e35cf40 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x26e4b796 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x2ae8315c p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0x2e2cf9e3 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x2ec6ae53 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x2f989ecf p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x2fbaf88d p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0x3789bf6c p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f4045cc p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x3f7c7ffb p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x4b2b9a2e p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0x4d9628a1 p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0x5311da0e p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x541e9e4e p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x5690e6fd p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x57202d74 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x65101c3b p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x79406a67 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x8dbafd13 p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x917bdb14 p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0x95577e26 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x97e0d934 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0xaa3a2695 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0xac0341b4 p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xaf8ea429 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xb6ef75b1 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xb9d30248 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xbe5273ba p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xbebb05fe p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xcc402c4b p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0xcccde93c p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0xcd32d79a p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xd19236c6 p9_create_tflush +EXPORT_SYMBOL net/9p/9pnet 0xd544d6f8 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0xd6733d72 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xd8e59790 p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0xdc921bb3 p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf8adc116 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0xf8b47992 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0xf90d6e1c p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xff525be0 p9_conn_destroy +EXPORT_SYMBOL net/appletalk/appletalk 0x068b590d atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x58dcf051 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x90359a42 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x94afcd20 alloc_ltalkdev +EXPORT_SYMBOL net/ax25/ax25 0x0028ac00 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x15100c9b ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x1dde0796 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x21204610 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x2148a255 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6c45e1cb ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xaa104589 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd5df2187 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xeba45dc8 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x05cb804a hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x081945e0 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e8b9d7e hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x12febd07 hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x26c6f6b8 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35dc7eef hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4353f389 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5091b518 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5217ae73 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6f6a92e6 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ceb9aa5 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0x86a26068 hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ea401de hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x992af222 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa037f7c6 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa54c5409 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb1a086d0 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb385f597 hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb56a0948 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7e114db bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc6399464 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd27e81ac hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd9442cc2 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdd4f7221 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe4649fc5 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf4f069cc hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf76dcc5d hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff7d2209 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x46de95ee br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x23b7a28f ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x314cac39 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4da3f958 ebt_unregister_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x55f081a3 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x689ff0b2 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe2f99be8 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xe532cd39 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf8925c89 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf9217579 ebt_unregister_watcher +EXPORT_SYMBOL net/ieee80211/ieee80211 0x07520ebc ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0994c1ac alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x18d49f02 ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x1e3d195e ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0x2d9f1cf3 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x31781496 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x3202c7b3 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4d82eb65 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0x4ecfc057 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0x5f45b8d4 ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6aafd8c8 ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x9fe6f971 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb5af8272 free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0xbf1deca0 ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd01d71b0 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0xe2fd32e3 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xed210b61 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfd022fae ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfeb952f7 ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x12358dcb ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x61b00b9f ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x640e0fb8 ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x79eef648 ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x7ad6ce71 ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xfd62bcbe ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ipv4/inet_lro 0x1442a2c8 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x619ecbe9 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x87da0545 lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xd496a01a lro_flush_all +EXPORT_SYMBOL net/ipv4/inet_lro 0xe885458a lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0xe98324c0 lro_receive_skb +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x0b09406e ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x1a19ab51 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x2ef13748 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x45205f53 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x4631aa3a unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x9ac74d4d ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xbf6de3f8 ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd2265c8d register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd3fde30f ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xe5ed91db unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xf719e8f6 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7227b192 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xea5d6cb5 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xf0300d0f arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x81fa0f22 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb8a2e482 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xcc6c11c3 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1e4fc6a8 nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6057b168 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xbf4f019b nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe794e993 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf3cb8419 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf7a507a1 nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/tunnel4 0x6e29a5a8 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xa0425a15 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ipv6 0x00bcbb52 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x0de52890 xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x16b3b6f0 inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x1e24fa7a xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0x28e2d06f inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x2fda2a54 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x33047ded icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x4b40dd7e inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x6620e8d6 in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x69cd7954 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0x6c9993e5 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x6e65763c ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x7a56743b ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0x7eb4fd4e xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x7f0538b8 xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/ipv6 0x8a425fb1 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0x92b780b9 ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x94d12654 inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x9919a186 ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x996f6976 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x9b1a4207 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0xb13247d1 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xb3aec772 compat_ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xb774b471 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xc0a88e8c ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0xcd209a50 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd44ac938 compat_ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xd49b4f0b ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xe37a54b8 ip6_frag_init +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1a807eef ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4b831c20 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6a1d75e4 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x745fd7b1 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0xadb29e72 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xd062555f xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1078a118 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x326e1f6b ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x43274066 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5165025d ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x66462012 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcf9c409f ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd725af90 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe7f6431d ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x0022b8ee irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x05960fb7 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x14f2a736 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x18edd399 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1d2c73a8 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2182e0d4 proc_irda +EXPORT_SYMBOL net/irda/irda 0x231179cc iriap_open +EXPORT_SYMBOL net/irda/irda 0x235ca01f irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0x29783db6 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x2f04a6f1 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x313d75cd irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x32f07f46 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b6ffdea irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x43506c0b irttp_dup +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x481062ca irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x5096cccf async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x543a6db5 hashbin_new +EXPORT_SYMBOL net/irda/irda 0x550a5e27 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x572324fd irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x5861b834 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x58c00386 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x5f261aef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x67197c74 irlap_close +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x71a5e197 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x745eaa49 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x75b12215 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7ca66cf5 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x7f933922 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x824fba68 irlap_open +EXPORT_SYMBOL net/irda/irda 0x89136cd1 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x945633b6 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x94a8156e hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x980fe568 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa26f32f8 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xa2fd57ef iriap_close +EXPORT_SYMBOL net/irda/irda 0xb053d2a8 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xb1da15a1 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xb7884205 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc10a5281 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xca5ff8e0 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xcd196972 irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0xd627dc1a hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe0acf0d4 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xe1a50c6f irias_new_object +EXPORT_SYMBOL net/irda/irda 0xe9a051e1 irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf1cdbb06 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xf8a421e6 irda_device_unregister_dongle +EXPORT_SYMBOL net/lapb/lapb 0x06364be7 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x098f36ba lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x11065430 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x2084cec3 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x8b90d48f lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x9ba96abd lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x9fb81a06 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xe57edf04 lapb_disconnect_request +EXPORT_SYMBOL net/mac80211/mac80211 0x01c48b4e ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2cb4256b ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x370cb801 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x3e504a20 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x475d16c5 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x48512107 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x4a45ac25 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4aa125f9 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0x5150121d ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x524c82f5 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x67d2af68 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x67ee58ef ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x6b4daf61 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x6c38e7c4 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x737cd4c8 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x74f7fb01 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x938fb216 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xa1745a32 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa8cebff5 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xba281b33 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xbd726333 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc88698ef ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0xccbf36fb ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xdb280ef8 sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe0aecee7 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xea356422 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xed086526 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0xeea3569c ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xf3106a9e ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xf542e6c9 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x10a131dd xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x114af6b4 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2076d245 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x2ebdf3fe xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5285f624 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5eec350d xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x66a7f1dc xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x6cfd5b2f xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x796554a5 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x92ecf844 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xb67dcc20 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xd25e3766 xt_register_target +EXPORT_SYMBOL net/rfkill/rfkill 0x116349b1 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x5eff9f66 rfkill_unregister +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x7aa0b719 rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0xd2e82bb8 rfkill_allocate +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x090dccac rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x30b10b2d rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3245c005 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3e1728dd rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x604b5443 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6f480e5f rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7557c401 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8aec0e37 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9d5ca020 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xab2bafe5 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbfa679a8 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd237156c rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdc12012e rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe9a7dd5d rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf0330446 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0685f342 gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0f9e50bc gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2905838b gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2ceb4293 gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3296b1d2 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x386cd79c gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x5a2882db make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x68441f87 krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x689cac0f svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x70409350 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x71ddc06e gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8f96e8df gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x91c7e2f8 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xba813f4f gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf72301a9 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x003d3329 rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x006eb292 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0262f7b3 rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x02abd569 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0x03978412 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x043b3aba xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0a36314d svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0b6b9664 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0dd4c45a rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0fec8fcf svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0x11cd9ade svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x14975fa4 sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1608210a rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x164fb6df cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1c223cf0 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1c82f687 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1d20b9ad rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1e57d932 svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x20d6667c xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x21ee7779 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23635562 svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x24c0807e rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x25aa007f auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x277ad1d6 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2c99cca6 rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2d6010a4 xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2db86f7d rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e9584bc rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x309a5e94 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x321a14ec rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x34ae903d xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3e142b90 xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4058e90d auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4060635a svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x493f9d0e svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4c63b6e2 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4d0e6807 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0x50a9d72b __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x513e2ed4 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x54f7c57d svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6395de76 xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6612ea91 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x67732786 svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x69a1b2f6 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6b1100a3 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6d606349 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x74ebf49d rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7b58d53b rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8131ddaa svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x83e75205 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x860ac1f9 rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x90381b3a xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x909b0eac read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x92da76d9 svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0x92ea122c rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0x956a3464 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x96f76db8 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9835b967 xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0x98da0c92 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x99384f4b svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9b69ea50 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9c9db5e9 xdr_decode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9d04d70f rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9efec793 xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa8d78677 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa92722aa rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0xac923768 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xae8805f4 xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaea18235 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb1a72c5e rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf297b71 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc0ec5777 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc4c1aff1 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc7e723c8 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcbcfd9a1 svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0xccd7d6b2 rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcdb37cc5 sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcecfaecf rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcfe1376f rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd3646fc3 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd7f96e50 xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdb94a28d rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdf13d86d rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe6e7a74f rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xea811839 rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0xeadca222 xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xec3c1a09 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0xec5d43d7 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf403d7a2 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf49d2333 unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfcb9ee2b auth_unix_lookup +EXPORT_SYMBOL net/tipc/tipc 0x0893bead tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x0d368aaf tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x12d5df39 tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x2fca8b93 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4e786984 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x7d91a225 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0xab94805d tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0xb27ac4a7 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xcc96d071 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0xcdc6e909 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0xcdd1da7d tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xd1f8eb11 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe66c1d10 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0xe6c9bfb3 tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0f0cecf8 register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x11b5c476 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x23649213 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xbee2f804 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xf98224ef wiphy_unregister +EXPORT_SYMBOL sound/ac97_bus 0xf6bd2032 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x67bd6923 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-fm 0x5a3e4571 snd_seq_fm_init +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-simple 0xd5791cfd snd_seq_simple_init +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x296b99f2 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x4ae33034 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x5432cc98 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x66212d85 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x69ee7fd1 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc84df378 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xdaf2546b snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe691329e snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x367b02e9 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x51228c08 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x05269149 snd_seq_instr_event +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x0e17a44d snd_seq_instr_free_use +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x6176795d snd_seq_instr_list_free +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x92616f2f snd_seq_instr_list_free_cond +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xb3eb1847 snd_seq_instr_find +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xd00ded07 snd_seq_instr_list_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6c6f1a61 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x1cabe748 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x326911b6 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7cb19049 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb401ffd7 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb5d25358 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbd220a71 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbf834054 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd61f5907 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x4b07776e snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x00762bf0 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x0bdf6db5 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x0f654c0e snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x105fde87 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x112b0f98 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x1300969e snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x1d27217f snd_card_register +EXPORT_SYMBOL sound/core/snd 0x2118f243 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x246307bc snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x283efd47 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x2a3738e1 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x2c5fe53a snd_device_new +EXPORT_SYMBOL sound/core/snd 0x315d4be2 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x3216a4da snd_info_register +EXPORT_SYMBOL sound/core/snd 0x33196303 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x36c683e1 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x39c2c284 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x3b4d58b0 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x44c2905d snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x4a0143d2 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4e6afdee snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0x576c9498 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x65483f80 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x6d99445b snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x6e35ed8d snd_device_register +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x72a8eaf6 snd_card_new +EXPORT_SYMBOL sound/core/snd 0x861ffd06 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x87b908db snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x8bd75e02 snd_cards +EXPORT_SYMBOL sound/core/snd 0x8cf20493 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x8d4f5b07 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x914f2ba1 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xa44efee7 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xb1afe0c6 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xb213fe8b snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb4760fbb snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xb5c973ee snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xc087dc0c snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xc346c612 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xceeb3873 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xd1c23781 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xda31e675 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xe2192aff snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0xf48bb441 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd-hwdep 0xdb3b8dd2 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x195caab6 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x20e67d37 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x949da7c2 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x97b4e75e snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb6c6822a snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0a2fd50e snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x0e5a9ade snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0f6bf41b snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x12ea0016 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x1d01efca snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1e2bfba8 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x2e545c6c snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x30418adc snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x3fb15c3d snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x4aa1988f snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x4ae523db snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x5a4ce3dd snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x6168416a snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x6351c0e9 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x644b5c5d snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x64c7f26f snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x7592f39a snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x7c5cec98 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x842a5ac4 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x88d56dc5 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x89a31a56 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x8d942e92 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x910f6863 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x95abb410 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x970301ab snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x9a4b4e87 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x9fdea959 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0xa1eea70b snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xaf3a327c snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb8c7dd8e snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbeb80298 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xbef11652 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xccfde388 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xcf70bb62 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd5d2ff42 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xdebd2640 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xdf41d790 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xeb66fd27 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xec8213af snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xefb0d7a6 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf4e466b2 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xfe62d1fc snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1e658f74 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2c2be2e2 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3cbf1fd4 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x40dda808 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4a37b1b1 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fa09f68 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fe70762 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x81addcc1 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x82940431 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8b909a7c snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9f277017 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb6562ad9 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd599c04d snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd8d43610 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe4e42b8e snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe52c5fce snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe766aa5a snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-timer 0x0e19b578 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x10ed7904 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x251b166b snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x301a9ef9 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x32733900 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x4d7cf5e0 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x5f01ed88 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x7caf65e4 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x9ae839ee snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xaa7d6aa0 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xbe80ce6f snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xbf446f70 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xd8e8a251 snd_timer_continue +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x73c4c993 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xcd3647d1 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfe618b58 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x10eff2c9 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1aa72010 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5e5425b2 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x61d8a310 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8e8ce42a snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa174cdfc snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc99676de snd_opl3_init +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0a29c7a5 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0cf82502 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x107673d5 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cadb14b snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x34fa9632 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5e4d045a snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9ede94f1 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc4c9ba78 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xcb9cd24d snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd5c98c22 snd_vx_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x09c5b411 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1b72c839 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x23188d49 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5563c71f snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9cc17d4f snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa41dd894 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x52cc3b4a snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9ae7ee49 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa8be9d6a snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe0901921 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe1a90d81 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe5d9fbff snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x20cef771 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x58d8dd4c snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x847f6c22 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x8f696e27 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x9449c9e2 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xc26d8594 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x5be186b1 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x6f9e53f5 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0afbc1af snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x1196534e snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa14d0cdd snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa6a4063e snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xcbfdc590 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x027ab516 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3afde7a3 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x50937784 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x64fb7171 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x881abf99 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xca60e975 snd_i2c_readbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2c070249 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3bd8a340 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3bfe316d snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x500864db snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x58d389b2 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9c5715c5 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa3c7e0d3 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd659bb7a snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe6a074a4 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe6bd8787 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0ba4ef1d snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x820f79d1 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xd2f8a29f snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xd76ceeec snd_sb16dsp_configure +EXPORT_SYMBOL sound/oss/ac97_codec 0x4eec9e78 ac97_set_adc_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0x9eae33d9 ac97_set_dac_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0xad2269ea ac97_alloc_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xbae4da72 ac97_read_proc +EXPORT_SYMBOL sound/oss/ac97_codec 0xcc35ed27 ac97_release_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xffa6daf4 ac97_probe_codec +EXPORT_SYMBOL sound/oss/msnd 0x112de489 msnd_enable_irq +EXPORT_SYMBOL sound/oss/msnd 0x141fba4d msnd_fifo_read_io +EXPORT_SYMBOL sound/oss/msnd 0x180cefff msnd_fifo_free +EXPORT_SYMBOL sound/oss/msnd 0x340a3ddf msnd_init_queue +EXPORT_SYMBOL sound/oss/msnd 0x35c87dda msnd_send_word +EXPORT_SYMBOL sound/oss/msnd 0x485d492e msnd_upload_host +EXPORT_SYMBOL sound/oss/msnd 0x679297db msnd_fifo_make_empty +EXPORT_SYMBOL sound/oss/msnd 0x68473da1 msnd_fifo_init +EXPORT_SYMBOL sound/oss/msnd 0x80504a66 msnd_fifo_write_io +EXPORT_SYMBOL sound/oss/msnd 0x970448c8 msnd_unregister +EXPORT_SYMBOL sound/oss/msnd 0x9853d449 msnd_fifo_alloc +EXPORT_SYMBOL sound/oss/msnd 0xc5f72871 msnd_register +EXPORT_SYMBOL sound/oss/msnd 0xc8646b7f msnd_fifo_write +EXPORT_SYMBOL sound/oss/msnd 0xca41668a msnd_fifo_read +EXPORT_SYMBOL sound/oss/msnd 0xd6c6584d msnd_send_dsp_cmd +EXPORT_SYMBOL sound/oss/msnd 0xe46b407d msnd_disable_irq +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x06397353 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x14f1d15a snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x22871915 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x362773ab snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4d9e8792 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5f4f7e3c snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6679e465 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6cf5edae snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6faa462d snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x73ad2296 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa6a66641 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xadbac807 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xae9b3841 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb3665f4a snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcd91fe9d snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd21c3685 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd4308ce0 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x489ff5bd snd_ak4531_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x4ed83215 snd_ak4531_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0xdff0819e snd_ak4531_suspend +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1c663f17 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x262672fb snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3e52f29c snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4159d669 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc597018f snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc9556e03 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd8bcfcbf snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xda881f7e snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdcc0af01 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4d72eebe snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4de03e6f snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7a56a2c2 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x037308a8 snd_trident_synth_free +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x18dcb0cb snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x210a2d56 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x32cdeb17 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xba5479c7 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xbf6d3b16 snd_trident_synth_copy_from_user +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd9e6085f snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf8997ca7 snd_trident_synth_alloc +EXPORT_SYMBOL sound/sound_firmware 0x39e3dd23 mod_firmware_load +EXPORT_SYMBOL sound/soundcore 0x41301cfe register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x6d3038f1 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x83084c91 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xc15c17e0 sound_class +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xcdb8d5b0 register_sound_midi +EXPORT_SYMBOL sound/soundcore 0xe318920a register_sound_special +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x20365083 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7c2402d8 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9ad76e9b snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb6de4663 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xbf0db2af snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xfbcb77e5 snd_emux_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1539f6d4 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1cb01ace snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x5171ffe8 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x57ec7df4 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x63d9012b __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb5835ada snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe69e0636 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf6eebffd __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x63b66f83 snd_usb_create_midi_interface +EXPORT_SYMBOL sound/usb/snd-usb-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x0009e8f6 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0x000d923f lease_get_mtime +EXPORT_SYMBOL vmlinux 0x00112f51 groups_alloc +EXPORT_SYMBOL vmlinux 0x0014bfd1 smp_call_function +EXPORT_SYMBOL vmlinux 0x0046a05a SELECT_DRIVE +EXPORT_SYMBOL vmlinux 0x0052c510 pcibus_to_node +EXPORT_SYMBOL vmlinux 0x00551086 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x0056233a ps2_drain +EXPORT_SYMBOL vmlinux 0x00625206 input_register_device +EXPORT_SYMBOL vmlinux 0x007b7600 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084b188 DAC1064_global_init +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x0120f856 per_cpu__cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x012c7ef4 task_in_intr +EXPORT_SYMBOL vmlinux 0x0130391e get_disk +EXPORT_SYMBOL vmlinux 0x014956f9 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x014d2632 key_alloc +EXPORT_SYMBOL vmlinux 0x01691c83 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x016bf552 iomem_resource +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019cacd0 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01b33c78 llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x01dc1ff6 find_or_create_page +EXPORT_SYMBOL vmlinux 0x01e9f0ee _spin_unlock +EXPORT_SYMBOL vmlinux 0x01fd9f47 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x02114023 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0x023a074a hvc_get_chars +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02671675 of_register_platform_driver +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x028a07ee pre_task_out_intr +EXPORT_SYMBOL vmlinux 0x028d62f7 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02de2e88 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x0314c1b6 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x03321f5a vio_find_node +EXPORT_SYMBOL vmlinux 0x034e7680 arp_tbl +EXPORT_SYMBOL vmlinux 0x036a3af9 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037d9f6a cfb_copyarea +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03a9dd3e __scm_destroy +EXPORT_SYMBOL vmlinux 0x03ac01e8 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x03e73b89 eth_header +EXPORT_SYMBOL vmlinux 0x03e78102 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x040675b3 pci_find_capability +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x044315bd pci_dev_driver +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04a1deac do_splice_from +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04a20a90 iunique +EXPORT_SYMBOL vmlinux 0x04c4e0d0 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x04dfdb7c reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x04e04d5e invalidate_partition +EXPORT_SYMBOL vmlinux 0x0501a2e8 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x050a7792 bdi_destroy +EXPORT_SYMBOL vmlinux 0x0521a1b7 register_qdisc +EXPORT_SYMBOL vmlinux 0x0533d301 netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x053d0e16 tty_set_operations +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05b4e835 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x05f9bddb keyring_clear +EXPORT_SYMBOL vmlinux 0x0603dc03 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ef2f5 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x065aeb9a skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x066d572e pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06b461c6 _lv1_destruct_event_receive_port +EXPORT_SYMBOL vmlinux 0x06bd5d48 _lv1_net_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0x06e6bdf1 get_user_pages +EXPORT_SYMBOL vmlinux 0x06fb3889 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x06fc5704 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07315230 register_netdevice +EXPORT_SYMBOL vmlinux 0x073be99e matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0x07527e0d __kfifo_get +EXPORT_SYMBOL vmlinux 0x078b2ee9 d_invalidate +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b03312 proto_register +EXPORT_SYMBOL vmlinux 0x07c77867 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07e0d00d blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x07ec56bf ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x08218034 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x084fc4e5 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x089e5b6c __init_rwsem +EXPORT_SYMBOL vmlinux 0x08a64e7c kfifo_free +EXPORT_SYMBOL vmlinux 0x08d2cbd0 aio_complete +EXPORT_SYMBOL vmlinux 0x08d39e38 sget +EXPORT_SYMBOL vmlinux 0x08de1330 no_llseek +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x08fb8c3b xfrm_lookup +EXPORT_SYMBOL vmlinux 0x09355a84 noop_qdisc +EXPORT_SYMBOL vmlinux 0x0948606c proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x095454dd skb_seq_read +EXPORT_SYMBOL vmlinux 0x09737b5a ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x0985da55 _read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d96562 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x09e71013 _lv1_clear_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a35188a register_framebuffer +EXPORT_SYMBOL vmlinux 0x0a698076 gen_pool_free +EXPORT_SYMBOL vmlinux 0x0a6cf9d5 give_up_console +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0aa088f1 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x0aa79d1a _lv1_gpu_device_unmap +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0ae706c0 pci_release_regions +EXPORT_SYMBOL vmlinux 0x0af53ef1 icmp_send +EXPORT_SYMBOL vmlinux 0x0afec868 sk_free +EXPORT_SYMBOL vmlinux 0x0b0716a4 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x0b0fcc3c dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2813f3 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x0b37b590 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bba1c14 on_each_cpu +EXPORT_SYMBOL vmlinux 0x0bc2e263 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x0bd9d62a clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x0c285271 blk_put_request +EXPORT_SYMBOL vmlinux 0x0c2f1df5 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x0c486b72 ide_unregister +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c61c9d1 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x0ccc7138 sock_rfree +EXPORT_SYMBOL vmlinux 0x0cd3cf92 _write_unlock +EXPORT_SYMBOL vmlinux 0x0ceb187c __scm_send +EXPORT_SYMBOL vmlinux 0x0d320ea2 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x0d457e5b of_find_property +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5df8cd sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x0d617b26 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d7ddcc8 posix_lock_file +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0ddf4ddd input_unregister_device +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0df15005 _spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0e03fd32 percpu_counter_init +EXPORT_SYMBOL vmlinux 0x0e0f6715 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x0e14c34a unregister_quota_format +EXPORT_SYMBOL vmlinux 0x0e27540b ps2_command +EXPORT_SYMBOL vmlinux 0x0e2ae2e8 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x0e57f111 vsnprintf +EXPORT_SYMBOL vmlinux 0x0e75fe1e d_find_alias +EXPORT_SYMBOL vmlinux 0x0e7c0322 vmtruncate +EXPORT_SYMBOL vmlinux 0x0e90c1bd vfs_write +EXPORT_SYMBOL vmlinux 0x0eeda98a tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x0ef22ade remove_wait_queue +EXPORT_SYMBOL vmlinux 0x0ef66dbd ibmebus_unregister_driver +EXPORT_SYMBOL vmlinux 0x0f05ac3d filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x0f08983a ida_get_new +EXPORT_SYMBOL vmlinux 0x0f57d5ae _read_unlock_bh +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fcd55c6 clocksource_register +EXPORT_SYMBOL vmlinux 0x10787592 pci_match_id +EXPORT_SYMBOL vmlinux 0x109712a3 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x111cc3ea tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x113296f9 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x1153c77e file_update_time +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x11a41041 _write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x11ae21c8 __elv_add_request +EXPORT_SYMBOL vmlinux 0x12016882 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x12241a85 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x12978b53 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x12b6e3ee serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f6b935 input_event +EXPORT_SYMBOL vmlinux 0x130593bc add_to_page_cache +EXPORT_SYMBOL vmlinux 0x13389109 _lv1_unmap_device_mmio_region +EXPORT_SYMBOL vmlinux 0x13456bc1 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x134c1f0e ppc_md +EXPORT_SYMBOL vmlinux 0x13612f57 vio_register_device_node +EXPORT_SYMBOL vmlinux 0x1379ab9f _lv1_get_repository_node_value +EXPORT_SYMBOL vmlinux 0x13a2d8c7 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x13d34bfe make_bad_inode +EXPORT_SYMBOL vmlinux 0x13e118ed tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0x14018d1e dev_close +EXPORT_SYMBOL vmlinux 0x14629e93 poll_initwait +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x14d1647a dcache_readdir +EXPORT_SYMBOL vmlinux 0x14d57573 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x1511ab12 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x152011fc pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x153cbb99 idr_init +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x159d386c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x15aaafdd dev_open +EXPORT_SYMBOL vmlinux 0x15ed95d3 _read_lock +EXPORT_SYMBOL vmlinux 0x15fb9773 mpage_readpage +EXPORT_SYMBOL vmlinux 0x160728ad pmu_register_sleep_notifier +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x160e5c29 inet_ioctl +EXPORT_SYMBOL vmlinux 0x1612160f freeze_bdev +EXPORT_SYMBOL vmlinux 0x16435eae kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x1663aedb generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x16707e77 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x1698b89b ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x169d848f tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x16a77c8a of_iomap +EXPORT_SYMBOL vmlinux 0x17159896 kill_pgrp +EXPORT_SYMBOL vmlinux 0x1719e975 local_irq_restore +EXPORT_SYMBOL vmlinux 0x1753cab1 _lv1_shutdown_logical_partition +EXPORT_SYMBOL vmlinux 0x1776a329 generic_setlease +EXPORT_SYMBOL vmlinux 0x177dd21c fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x17911770 init_mm +EXPORT_SYMBOL vmlinux 0x179ec4b8 dcache_lock +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x17d7d111 hippi_type_trans +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x17fa8305 seq_open +EXPORT_SYMBOL vmlinux 0x18138cf3 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18d7deac alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x19263b50 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x192b8cfd simple_set_mnt +EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x1966373c in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x1992470b __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x199ba927 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19ce08d8 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x19d0636e _lv1_free_device_dma_region +EXPORT_SYMBOL vmlinux 0x1a154882 mach_pseries +EXPORT_SYMBOL vmlinux 0x1a22a458 simple_empty +EXPORT_SYMBOL vmlinux 0x1a38a37e tty_register_device +EXPORT_SYMBOL vmlinux 0x1a51ef04 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0x1a6d6995 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x1a84dab7 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x1a88c99d i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x1a92171c blk_complete_request +EXPORT_SYMBOL vmlinux 0x1abfe690 elevator_init +EXPORT_SYMBOL vmlinux 0x1acc5546 inet_select_addr +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1af7a041 __lookup_hash +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b01e3fa kernel_sendpage +EXPORT_SYMBOL vmlinux 0x1b15c847 llc_sap_find +EXPORT_SYMBOL vmlinux 0x1b231573 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x1b234e35 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1b328f36 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x1b51d2b9 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b803d86 skb_split +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bc81e88 _lv1_set_lpm_signal +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +EXPORT_SYMBOL vmlinux 0x1c219379 bdput +EXPORT_SYMBOL vmlinux 0x1c2c10e9 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x1c31b16c of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x1c4fc281 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c636824 sync_blockdev +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c87eee3 lock_may_write +EXPORT_SYMBOL vmlinux 0x1cabcab0 pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0x1cbdfae7 xrlim_allow +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cce0e8c sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x1cd81488 single_open +EXPORT_SYMBOL vmlinux 0x1cdbbdb6 tcp_poll +EXPORT_SYMBOL vmlinux 0x1cf40e1b call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x1d03d978 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x1d0c406e xfrm_init_state +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de26339 cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x1de94889 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x1e076fd5 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x1e3c5349 fetch_dev_dn +EXPORT_SYMBOL vmlinux 0x1e481f46 posix_test_lock +EXPORT_SYMBOL vmlinux 0x1e58d63f stop_tty +EXPORT_SYMBOL vmlinux 0x1e59d302 sock_wfree +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7f75a0 kernel_accept +EXPORT_SYMBOL vmlinux 0x1ead4285 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x1ee12882 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x1eeeecf0 of_device_register +EXPORT_SYMBOL vmlinux 0x1ef7d750 skb_copy +EXPORT_SYMBOL vmlinux 0x1f05ba7c mutex_trylock +EXPORT_SYMBOL vmlinux 0x1f0c63a7 _lv1_set_lpm_interrupt_mask +EXPORT_SYMBOL vmlinux 0x1f21b49d end_that_request_chunk +EXPORT_SYMBOL vmlinux 0x1f5549cd up_write +EXPORT_SYMBOL vmlinux 0x1f8ec6e2 submit_bio +EXPORT_SYMBOL vmlinux 0x1fbc02d4 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0x1fecf6db sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x206254db cpu_online_map +EXPORT_SYMBOL vmlinux 0x20712b5a kmalloc_caches +EXPORT_SYMBOL vmlinux 0x20940756 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x20dde289 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x20f56587 __kfree_skb +EXPORT_SYMBOL vmlinux 0x2100ce5d nf_log_unregister +EXPORT_SYMBOL vmlinux 0x211f0723 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x2146f99f bio_split_pool +EXPORT_SYMBOL vmlinux 0x21539af4 vfs_link +EXPORT_SYMBOL vmlinux 0x216532ae pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x216783b6 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x2187d58f pci_remove_bus +EXPORT_SYMBOL vmlinux 0x21b7b4a2 bio_free +EXPORT_SYMBOL vmlinux 0x21cb3f67 register_netdev +EXPORT_SYMBOL vmlinux 0x21e87c30 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x21f58c12 fb_show_logo +EXPORT_SYMBOL vmlinux 0x21f9e5d6 sk_dst_check +EXPORT_SYMBOL vmlinux 0x22055173 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x2253c959 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0x225d799e _lv1_construct_event_receive_port +EXPORT_SYMBOL vmlinux 0x22806bde __cputime_jiffies_factor +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x22ca4cc3 dq_data_lock +EXPORT_SYMBOL vmlinux 0x22cd8b7b km_new_mapping +EXPORT_SYMBOL vmlinux 0x22dfc5b9 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x22f1a221 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x22fa350a generic_setxattr +EXPORT_SYMBOL vmlinux 0x22ff4992 task_no_data_intr +EXPORT_SYMBOL vmlinux 0x2343013b of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x234509f3 strncat +EXPORT_SYMBOL vmlinux 0x23798700 iput +EXPORT_SYMBOL vmlinux 0x237d4f85 ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0x23918a7a proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad070a set_current_groups +EXPORT_SYMBOL vmlinux 0x23e913d2 pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x23f0d185 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd056f block_prepare_write +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x23ffc4b3 xfrm_nl +EXPORT_SYMBOL vmlinux 0x2426946e d_instantiate +EXPORT_SYMBOL vmlinux 0x2432b367 get_super +EXPORT_SYMBOL vmlinux 0x243a2219 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0x243ac253 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x24676459 __user_walk_fd +EXPORT_SYMBOL vmlinux 0x246cf06f i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x2482fc75 vfs_writev +EXPORT_SYMBOL vmlinux 0x24932192 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x249d614a generic_write_end +EXPORT_SYMBOL vmlinux 0x24b9b48a key_revoke +EXPORT_SYMBOL vmlinux 0x24d89b4c register_con_driver +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2547b664 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x256f0f70 invalidate_inodes +EXPORT_SYMBOL vmlinux 0x2581543c complete +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x25986c55 unlock_super +EXPORT_SYMBOL vmlinux 0x25a4f2c1 blk_free_tags +EXPORT_SYMBOL vmlinux 0x25b57f97 simple_lookup +EXPORT_SYMBOL vmlinux 0x25c083c1 fasync_helper +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25d6c092 close_bdev_excl +EXPORT_SYMBOL vmlinux 0x260ba1cf bio_add_page +EXPORT_SYMBOL vmlinux 0x26218d50 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x263938ff _lv1_set_lpm_debug_bus_control +EXPORT_SYMBOL vmlinux 0x26442e7e del_timer +EXPORT_SYMBOL vmlinux 0x2644d8c2 _lv1_deconfigure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0x26453017 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x26676a0f ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x2684839d console_stop +EXPORT_SYMBOL vmlinux 0x269ca1d3 ip_fragment +EXPORT_SYMBOL vmlinux 0x26cb2b90 _lv1_put_iopte +EXPORT_SYMBOL vmlinux 0x26da7aac tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x26ec959a sock_no_listen +EXPORT_SYMBOL vmlinux 0x26f16c8a tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x26f777e5 _lv1_close_device +EXPORT_SYMBOL vmlinux 0x27070cd8 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x271e0c2a _lv1_set_lpm_counter +EXPORT_SYMBOL vmlinux 0x271f4d2a finish_wait +EXPORT_SYMBOL vmlinux 0x2728ea26 km_query +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x27839ad9 ps2_init +EXPORT_SYMBOL vmlinux 0x278d0bef clear_inode +EXPORT_SYMBOL vmlinux 0x279899ea dev_get_by_index +EXPORT_SYMBOL vmlinux 0x27a14457 start_tty +EXPORT_SYMBOL vmlinux 0x27a249a5 path_release +EXPORT_SYMBOL vmlinux 0x27aa0512 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x28694ccb remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x288ae6b0 pci_get_slot +EXPORT_SYMBOL vmlinux 0x288f917d blk_stop_queue +EXPORT_SYMBOL vmlinux 0x288fd4db tcf_hash_search +EXPORT_SYMBOL vmlinux 0x28b549fc generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f2ead2 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x29150c8f mapping_tagged +EXPORT_SYMBOL vmlinux 0x2929f281 unregister_console +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure +EXPORT_SYMBOL vmlinux 0x2987fbf7 fb_class +EXPORT_SYMBOL vmlinux 0x2990ba52 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x29ac9477 blk_init_tags +EXPORT_SYMBOL vmlinux 0x29c588c7 remote_llseek +EXPORT_SYMBOL vmlinux 0x29cd531a dev_mc_add +EXPORT_SYMBOL vmlinux 0x29e58b20 tc_classify +EXPORT_SYMBOL vmlinux 0x2a072a95 proc_symlink +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a51af55 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x2a748650 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x2ab598ac pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0x2ab74459 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x2ace1e5d fb_set_cmap +EXPORT_SYMBOL vmlinux 0x2ae8ddaa alloc_disk_node +EXPORT_SYMBOL vmlinux 0x2b42c38b proc_root_driver +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2ba1a5ae _lv1_gpu_close +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb9c803 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x2bf9f200 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x2c003db6 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x2c046c4a atm_dev_register +EXPORT_SYMBOL vmlinux 0x2c11d5dd pskb_expand_head +EXPORT_SYMBOL vmlinux 0x2c31c4c6 matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0x2c4521ed set_irq_chip +EXPORT_SYMBOL vmlinux 0x2c94bbf0 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x2ca48caa _lv1_set_lpm_counter_control +EXPORT_SYMBOL vmlinux 0x2cb6e960 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cd6a301 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2ce4d962 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2cf25835 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x2d04948d netlink_unicast +EXPORT_SYMBOL vmlinux 0x2d1abb62 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x2d28d118 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x2d902328 key_validate +EXPORT_SYMBOL vmlinux 0x2d993eb7 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x2da7f4ec ide_end_request +EXPORT_SYMBOL vmlinux 0x2dbd958d of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x2dc70f8e pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x2dcc572d skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2df07a38 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x2dff1536 ide_add_setting +EXPORT_SYMBOL vmlinux 0x2e1bef92 eeh_subsystem_enabled +EXPORT_SYMBOL vmlinux 0x2e555427 serio_rescan +EXPORT_SYMBOL vmlinux 0x2e8f86f2 ide_dma_off +EXPORT_SYMBOL vmlinux 0x2ea7f971 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x2ee4337f smu_queue_cmd +EXPORT_SYMBOL vmlinux 0x2eeee4d6 ida_init +EXPORT_SYMBOL vmlinux 0x2efb37eb sock_release +EXPORT_SYMBOL vmlinux 0x2f06bf88 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x2f252b27 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f45549f filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x2f476362 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x2f679a54 request_key_async +EXPORT_SYMBOL vmlinux 0x2fc77ab1 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2fd3628e kthread_bind +EXPORT_SYMBOL vmlinux 0x2fd9aae6 module_refcount +EXPORT_SYMBOL vmlinux 0x2fdd121e block_read_full_page +EXPORT_SYMBOL vmlinux 0x2fe65912 soft_cursor +EXPORT_SYMBOL vmlinux 0x2fe815f0 blk_start_queue +EXPORT_SYMBOL vmlinux 0x2ff0ef71 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x3004a64d find_lock_page +EXPORT_SYMBOL vmlinux 0x30314e01 schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x3056a0cc inode_needs_sync +EXPORT_SYMBOL vmlinux 0x306261b0 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x306537c3 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x3068c98a llc_sap_open +EXPORT_SYMBOL vmlinux 0x30751068 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x30b2e12b kernel_getsockname +EXPORT_SYMBOL vmlinux 0x30bf8b3e mpage_writepages +EXPORT_SYMBOL vmlinux 0x30d27e0b nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x30d6dd95 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x30de4137 igrab +EXPORT_SYMBOL vmlinux 0x30e090a6 cdev_add +EXPORT_SYMBOL vmlinux 0x30e78330 simple_write_end +EXPORT_SYMBOL vmlinux 0x310f0b35 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x31448a4a mempool_create_node +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31849cd7 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x318dbc74 audit_log_format +EXPORT_SYMBOL vmlinux 0x31a19e50 numa_cpumask_lookup_table +EXPORT_SYMBOL vmlinux 0x31bd407d qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x31ea29e3 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x320094b2 idr_remove +EXPORT_SYMBOL vmlinux 0x3216c135 default_llseek +EXPORT_SYMBOL vmlinux 0x3256b969 lookup_one_len +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x3280db7c find_inode_number +EXPORT_SYMBOL vmlinux 0x32ae7641 sys_fillrect +EXPORT_SYMBOL vmlinux 0x32e213f9 touch_atime +EXPORT_SYMBOL vmlinux 0x33090696 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x3319287b kobject_set_name +EXPORT_SYMBOL vmlinux 0x33225345 vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0x33303b56 block_write_end +EXPORT_SYMBOL vmlinux 0x3348ebb6 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x3355c841 atm_init_aal5 +EXPORT_SYMBOL vmlinux 0x335a75f1 kthread_create +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x338ee0fe tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x339d4841 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x33b3949a add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33c51d90 ppc_pci_io +EXPORT_SYMBOL vmlinux 0x33c615ea end_queued_request +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x33ebce95 input_grab_device +EXPORT_SYMBOL vmlinux 0x3419f07d dma_iommu_ops +EXPORT_SYMBOL vmlinux 0x3420f377 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x34332c7a I_BDEV +EXPORT_SYMBOL vmlinux 0x343d8868 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x3490aebf pci_set_power_state +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c106fb _lv1_add_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0x35146399 bioset_free +EXPORT_SYMBOL vmlinux 0x35aaf9a0 simple_sync_file +EXPORT_SYMBOL vmlinux 0x35aed63e sock_init_data +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35e8710a pci_get_subsys +EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x3614164e inet_put_port +EXPORT_SYMBOL vmlinux 0x36264ff4 ip_defrag +EXPORT_SYMBOL vmlinux 0x36477811 proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x3656bf5a lock_kernel +EXPORT_SYMBOL vmlinux 0x367cdbd8 netdev_state_change +EXPORT_SYMBOL vmlinux 0x367d207c _lv1_net_control +EXPORT_SYMBOL vmlinux 0x36d48d18 vfs_follow_link +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x374764ed __inode_dir_notify +EXPORT_SYMBOL vmlinux 0x37532548 _lv1_copy_lpm_trace_buffer +EXPORT_SYMBOL vmlinux 0x378e065e xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x37979a2f tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x37a9798f mempool_free +EXPORT_SYMBOL vmlinux 0x37bbcc05 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37ffe447 _lv1_net_stop_rx_dma +EXPORT_SYMBOL vmlinux 0x3822a6ae __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x382b9bf0 idr_replace +EXPORT_SYMBOL vmlinux 0x3857c13a inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x389094a4 pci_set_master +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3906b93c _spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x3922d605 _spin_trylock +EXPORT_SYMBOL vmlinux 0x39233a80 proc_root_fs +EXPORT_SYMBOL vmlinux 0x3948d99d kill_anon_super +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39a84fdc get_empty_filp +EXPORT_SYMBOL vmlinux 0x39aeeac3 _lv1_disable_logical_spe +EXPORT_SYMBOL vmlinux 0x39b5140a llc_sap_close +EXPORT_SYMBOL vmlinux 0x39d4558c __down_interruptible +EXPORT_SYMBOL vmlinux 0x39e2aea4 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x3a18ecad kill_block_super +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a271295 gen_pool_add +EXPORT_SYMBOL vmlinux 0x3a3f77a4 generic_readlink +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9f0cdf init_file +EXPORT_SYMBOL vmlinux 0x3ad8ccf1 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x3b1d18e2 d_path +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b9037b0 proc_clear_tty +EXPORT_SYMBOL vmlinux 0x3b9518a8 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x3b9b3c7e con_copy_unimap +EXPORT_SYMBOL vmlinux 0x3bc7fba9 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd6af26 set_disk_ro +EXPORT_SYMBOL vmlinux 0x3be52809 flush_signals +EXPORT_SYMBOL vmlinux 0x3bf58eb8 sock_create_lite +EXPORT_SYMBOL vmlinux 0x3c4c2d9c skb_store_bits +EXPORT_SYMBOL vmlinux 0x3c6484e1 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3c8957aa of_scan_bus +EXPORT_SYMBOL vmlinux 0x3ca55131 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x3ca748e6 sk_stream_error +EXPORT_SYMBOL vmlinux 0x3cb7116b dentry_unhash +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cd1d392 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x3ce05fe7 _lv1_connect_irq_plug +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d218fb0 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x3d21c1f8 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x3d356815 block_commit_write +EXPORT_SYMBOL vmlinux 0x3d45fb5b find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x3d896f7f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x3db107ad kset_register +EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x3dc50b69 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0x3dd6d8c5 call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x3de7fd0e mem_section +EXPORT_SYMBOL vmlinux 0x3e2ae8fe generic_unplug_device +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e5f5548 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x3e7c8d66 idr_destroy +EXPORT_SYMBOL vmlinux 0x3e8dc00c __cputime_clockt_factor +EXPORT_SYMBOL vmlinux 0x3ea24074 _lv1_gpu_context_intr +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eeccd65 qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0c0450 _lv1_disconnect_irq_plug +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f850783 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x3f862c0a single_release +EXPORT_SYMBOL vmlinux 0x3f9e8328 subsys_create_file +EXPORT_SYMBOL vmlinux 0x3fa03a97 memset +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fb764e7 elv_rb_del +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fc09a2b atm_charge +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4003618d __bio_clone +EXPORT_SYMBOL vmlinux 0x402a5fb4 elv_next_request +EXPORT_SYMBOL vmlinux 0x404417c9 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x404ea8e7 simple_unlink +EXPORT_SYMBOL vmlinux 0x4053c5bf pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4075b310 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x408db797 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x40a0cb95 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x40a756b7 elv_rb_add +EXPORT_SYMBOL vmlinux 0x40ab73fa i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x40b24e38 _lv1_net_remove_multicast_address +EXPORT_SYMBOL vmlinux 0x40ba060a inet_csk_accept +EXPORT_SYMBOL vmlinux 0x40d845ac sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x41075b81 generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x41131cab pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4118cd77 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x411bfa73 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x415714b6 down_read +EXPORT_SYMBOL vmlinux 0x416dfa99 _lv1_get_spe_irq_outlet +EXPORT_SYMBOL vmlinux 0x417ade8a vfs_mkdir +EXPORT_SYMBOL vmlinux 0x417c6f0c __pagevec_release +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41ccc7a6 serio_interrupt +EXPORT_SYMBOL vmlinux 0x41d2b96b schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42120f57 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x4219f1f4 redraw_screen +EXPORT_SYMBOL vmlinux 0x421aaa64 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4227575e __ide_dma_on +EXPORT_SYMBOL vmlinux 0x4240aef9 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x4252620a ide_wait_stat +EXPORT_SYMBOL vmlinux 0x42792262 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0x429328d9 _spin_lock +EXPORT_SYMBOL vmlinux 0x42c5978e vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x42e0c40d gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x434c1797 simple_rmdir +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x435bbfff d_alloc +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437065e3 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x438687dd skb_insert +EXPORT_SYMBOL vmlinux 0x43d6976c fb_pan_display +EXPORT_SYMBOL vmlinux 0x43d7a32c generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x43e18fb9 i2c_smbus_write_quick +EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg +EXPORT_SYMBOL vmlinux 0x43ff4b34 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x445d5a22 matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0x448ad786 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x44ae7560 ibmebus_request_irq +EXPORT_SYMBOL vmlinux 0x44b07caa blkdev_put +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c1e877 seq_lseek +EXPORT_SYMBOL vmlinux 0x44d44793 vfs_llseek +EXPORT_SYMBOL vmlinux 0x44f627b3 bioset_create +EXPORT_SYMBOL vmlinux 0x44fa18e8 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x45059cc1 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x45220e36 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x458d0c3c wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45cda74c ioport_resource +EXPORT_SYMBOL vmlinux 0x45e5d288 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x45e832e4 read_cache_pages +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x461f3fa1 matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0x46410b4e i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x469fa7a5 _lv1_configure_irq_state_bitmap +EXPORT_SYMBOL vmlinux 0x47161dd3 _lv1_set_spe_interrupt_mask +EXPORT_SYMBOL vmlinux 0x4716af98 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x4733b6ae request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4751215e request_key +EXPORT_SYMBOL vmlinux 0x476fc99f rtnl_create_link +EXPORT_SYMBOL vmlinux 0x478d3ac8 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47ee0282 _lv1_gpu_context_allocate +EXPORT_SYMBOL vmlinux 0x4823a210 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x483b6699 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x484f9f5c iget_locked +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x488ee1d9 cont_write_begin +EXPORT_SYMBOL vmlinux 0x488f56c3 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x48913d4e kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x48a0e62c sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0x48af9a3e neigh_seq_start +EXPORT_SYMBOL vmlinux 0x48c302d0 arp_xmit +EXPORT_SYMBOL vmlinux 0x48d2d95b udp_poll +EXPORT_SYMBOL vmlinux 0x490be9ad _lv1_net_start_rx_dma +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x49b5092d pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x49bf62be textsearch_destroy +EXPORT_SYMBOL vmlinux 0x49dc97a0 skb_checksum +EXPORT_SYMBOL vmlinux 0x49ebb6f3 vfs_quota_sync +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a8702be panic_notifier_list +EXPORT_SYMBOL vmlinux 0x4ab384c5 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x4abfc364 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x4b17de47 _read_lock_bh +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b405693 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x4b46b5b2 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x4b4d14ec register_atm_ioctl +EXPORT_SYMBOL vmlinux 0x4b60ad53 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x4b9c3c8a skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4bdcf134 netpoll_poll +EXPORT_SYMBOL vmlinux 0x4be75d52 __devm_release_region +EXPORT_SYMBOL vmlinux 0x4c00f14b tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c7d1716 filemap_flush +EXPORT_SYMBOL vmlinux 0x4cb00c70 unlock_page +EXPORT_SYMBOL vmlinux 0x4cba402a blk_unplug +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd21806 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x4cd488fe mntput_no_expire +EXPORT_SYMBOL vmlinux 0x4cfcdd74 fd_install +EXPORT_SYMBOL vmlinux 0x4d0a053d __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x4d0d5028 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x4d2a5c19 rwsem_wake +EXPORT_SYMBOL vmlinux 0x4d2bcce2 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x4d43e5fd ide_dma_host_on +EXPORT_SYMBOL vmlinux 0x4d4b9f7c nobh_write_end +EXPORT_SYMBOL vmlinux 0x4d55400d textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x4d56070d kernel_connect +EXPORT_SYMBOL vmlinux 0x4db1df8a pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4db52717 neigh_destroy +EXPORT_SYMBOL vmlinux 0x4dc3e0a3 generic_commit_write +EXPORT_SYMBOL vmlinux 0x4dd0a8ef _lv1_map_device_dma_region +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4de7912e neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e0b980c tcp_shutdown +EXPORT_SYMBOL vmlinux 0x4e0fa92c _lv1_get_version_info +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e436f68 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x4e457423 sys_imageblit +EXPORT_SYMBOL vmlinux 0x4e5fe8bc d_alloc_name +EXPORT_SYMBOL vmlinux 0x4e68bad9 blk_put_queue +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7da1aa machine_id +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f29213d get_sb_bdev +EXPORT_SYMBOL vmlinux 0x4f45f822 put_io_context +EXPORT_SYMBOL vmlinux 0x4fa3b98a dev_load +EXPORT_SYMBOL vmlinux 0x4fa7eee6 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x4fb2714c inet_getname +EXPORT_SYMBOL vmlinux 0x4fdcd0f1 of_get_parent +EXPORT_SYMBOL vmlinux 0x4febffc2 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x4ff66204 i2c_master_send +EXPORT_SYMBOL vmlinux 0x50086ec8 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x5017c736 matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x502c82dd of_get_property +EXPORT_SYMBOL vmlinux 0x5032bf5e flush_old_exec +EXPORT_SYMBOL vmlinux 0x503cb3cf call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x50477daa tty_check_change +EXPORT_SYMBOL vmlinux 0x50ae35e1 giveup_altivec +EXPORT_SYMBOL vmlinux 0x50b15c53 _read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x50b233b8 sk_wait_data +EXPORT_SYMBOL vmlinux 0x50ba769a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x50cdd8ad matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x50f18634 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL vmlinux 0x5108e6a9 put_tty_driver +EXPORT_SYMBOL vmlinux 0x5132d773 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x514455de xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x51c7484d pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x51f2bcb0 fput +EXPORT_SYMBOL vmlinux 0x51fee889 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x5240e81c blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x52517937 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x526a359d __down +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x529daf6b of_node_put +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52dc2932 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x52f4f245 _lv1_gpu_memory_free +EXPORT_SYMBOL vmlinux 0x52f99934 devm_request_irq +EXPORT_SYMBOL vmlinux 0x530693e8 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5315f750 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x531fbfdf _lv1_connect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5353a3ec textsearch_register +EXPORT_SYMBOL vmlinux 0x53aa0a3a netlink_ack +EXPORT_SYMBOL vmlinux 0x53b78579 page_put_link +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53d91e59 _spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x541d2f9b generic_make_request +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x545fc4d5 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x5479f068 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x547c8cdb llc_add_pack +EXPORT_SYMBOL vmlinux 0x547f8bbf generic_osync_inode +EXPORT_SYMBOL vmlinux 0x548f6b16 copy_4K_page +EXPORT_SYMBOL vmlinux 0x549b5565 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x54cf4c76 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x54d4d21d lock_may_read +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5504fffc nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x551ded73 mpage_writepage +EXPORT_SYMBOL vmlinux 0x55498864 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x558ceded d_splice_alias +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a3c540 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x55b6c99a simple_getattr +EXPORT_SYMBOL vmlinux 0x55d47f37 update_region +EXPORT_SYMBOL vmlinux 0x55f7021d sock_create_kern +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x5605b900 inode_setattr +EXPORT_SYMBOL vmlinux 0x56156739 vfs_stat +EXPORT_SYMBOL vmlinux 0x5631decf xfrm_state_update +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5663064a __next_cpu +EXPORT_SYMBOL vmlinux 0x5669bd1e skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56cb1bf3 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x56ed9991 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x570afcf9 __breadahead +EXPORT_SYMBOL vmlinux 0x5748e948 blk_init_queue +EXPORT_SYMBOL vmlinux 0x57567da5 pci_enable_wake +EXPORT_SYMBOL vmlinux 0x5756cf78 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x576a0ff7 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x57753b4b register_exec_domain +EXPORT_SYMBOL vmlinux 0x5778dbfe get_fs_type +EXPORT_SYMBOL vmlinux 0x57975cfa d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x579efd27 macio_release_resources +EXPORT_SYMBOL vmlinux 0x57b17cf1 matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0x57b85738 may_umount +EXPORT_SYMBOL vmlinux 0x582298f4 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x58572494 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585bc49c _lv1_start_lpm +EXPORT_SYMBOL vmlinux 0x58655aa7 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x5888c57f __ide_dma_end +EXPORT_SYMBOL vmlinux 0x588a0c45 pci_restore_state +EXPORT_SYMBOL vmlinux 0x58f392bb grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x59124176 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x591acc3f matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595d705f tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x598d7e70 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x59960a29 kernel_listen +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59c02f28 kick_iocb +EXPORT_SYMBOL vmlinux 0x59cdfe4e reset_files_struct +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59ebc173 filp_open +EXPORT_SYMBOL vmlinux 0x59ee4d9a get_io_context +EXPORT_SYMBOL vmlinux 0x5a2485bd generic_file_open +EXPORT_SYMBOL vmlinux 0x5a338888 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc +EXPORT_SYMBOL vmlinux 0x5a54b2d9 d_alloc_root +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a63a674 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a881a70 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x5aa7eca7 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x5aab0480 _lv1_set_lpm_interval +EXPORT_SYMBOL vmlinux 0x5acd9884 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0x5ad504d9 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x5ad974e5 mnt_pin +EXPORT_SYMBOL vmlinux 0x5b0b8827 blk_get_request +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b874f00 ide_hwifs +EXPORT_SYMBOL vmlinux 0x5bb7baaa elevator_exit +EXPORT_SYMBOL vmlinux 0x5bc3f72d proc_bus +EXPORT_SYMBOL vmlinux 0x5bd4616a generic_getxattr +EXPORT_SYMBOL vmlinux 0x5bdbc922 lock_super +EXPORT_SYMBOL vmlinux 0x5bf8c50b skb_make_writable +EXPORT_SYMBOL vmlinux 0x5c2fbced register_snap_client +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c5a3fff _lv1_gpu_device_map +EXPORT_SYMBOL vmlinux 0x5c669f07 mac_find_mode +EXPORT_SYMBOL vmlinux 0x5c69f99c ilookup +EXPORT_SYMBOL vmlinux 0x5c6cdc7b sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x5c70bf0d do_sync_write +EXPORT_SYMBOL vmlinux 0x5cc5b658 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5cfc7826 _lv1_modify_repository_node_value +EXPORT_SYMBOL vmlinux 0x5cfcbf63 _lv1_set_lpm_general_control +EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat +EXPORT_SYMBOL vmlinux 0x5d2ef6c5 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x5d40c902 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5d855c87 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove +EXPORT_SYMBOL vmlinux 0x5df0d04e of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5dfdbbc6 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x5e24a308 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x5e489500 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x5e49e734 ether_setup +EXPORT_SYMBOL vmlinux 0x5e5cf7e5 _lv1_unmap_htab +EXPORT_SYMBOL vmlinux 0x5e6e9433 generic_removexattr +EXPORT_SYMBOL vmlinux 0x5e74262f ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x5e83ed78 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x5ea89aeb __grab_cache_page +EXPORT_SYMBOL vmlinux 0x5eae7597 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x5eb59b2b inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x5edd1a53 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x5efabc52 pci_iomap +EXPORT_SYMBOL vmlinux 0x5f0714b4 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x5f0c5570 cond_resched_lock +EXPORT_SYMBOL vmlinux 0x5f14d790 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0x5f1ebac6 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x5f6f9012 datagram_poll +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f972fb2 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x5f9fdf7c _lv1_invalidate_htab_entries +EXPORT_SYMBOL vmlinux 0x5fc57fe1 _lv1_net_add_multicast_address +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete +EXPORT_SYMBOL vmlinux 0x6067a146 memcpy +EXPORT_SYMBOL vmlinux 0x606a75d3 of_release_dev +EXPORT_SYMBOL vmlinux 0x607a2e4b __f_setown +EXPORT_SYMBOL vmlinux 0x6088cee1 file_fsync +EXPORT_SYMBOL vmlinux 0x608e9354 vfs_unlink +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60c7e487 i2c_use_client +EXPORT_SYMBOL vmlinux 0x60d60d10 macio_request_resource +EXPORT_SYMBOL vmlinux 0x60ec04d3 _lv1_configure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61291d77 pci_find_device +EXPORT_SYMBOL vmlinux 0x612af4ab netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x61312fc1 pci_get_device +EXPORT_SYMBOL vmlinux 0x613285de blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x614791e9 keyring_search +EXPORT_SYMBOL vmlinux 0x614f0c90 elv_rb_find +EXPORT_SYMBOL vmlinux 0x616e0b37 inode_init_once +EXPORT_SYMBOL vmlinux 0x61706a41 vfs_getattr +EXPORT_SYMBOL vmlinux 0x619bb90c tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61dc5cb5 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61ff6ff0 elv_queue_empty +EXPORT_SYMBOL vmlinux 0x62201243 end_that_request_first +EXPORT_SYMBOL vmlinux 0x6220b988 _spin_lock_irq +EXPORT_SYMBOL vmlinux 0x624cfb04 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x626fbcb5 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6289b214 bio_hw_segments +EXPORT_SYMBOL vmlinux 0x63148ac3 copy_io_context +EXPORT_SYMBOL vmlinux 0x631dd6e1 register_nls +EXPORT_SYMBOL vmlinux 0x6327818f zero_fill_bio +EXPORT_SYMBOL vmlinux 0x633448f6 ps3_sb_event_receive_port_setup +EXPORT_SYMBOL vmlinux 0x63553b0d kernel_read +EXPORT_SYMBOL vmlinux 0x6376b1d6 get_write_access +EXPORT_SYMBOL vmlinux 0x637a91a9 ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0x63d0f75b _lv1_get_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0x63d45ee4 _lv1_unmap_device_dma_region +EXPORT_SYMBOL vmlinux 0x63e984fa idr_find +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x63fc8cd6 netdev_set_master +EXPORT_SYMBOL vmlinux 0x63fd5d0d pcibios_fixup_device_resources +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640a6d33 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x6459c22d vfs_readlink +EXPORT_SYMBOL vmlinux 0x646c6b2c registered_fb +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x6473a525 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x6497831f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649c9907 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x64a625dd destroy_EII_client +EXPORT_SYMBOL vmlinux 0x64c0f548 add_disk +EXPORT_SYMBOL vmlinux 0x64d929c9 ibmebus_bus_type +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x651a484c kernel_getpeername +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x65464a4a _lv1_connect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0x6597aba4 neigh_table_init +EXPORT_SYMBOL vmlinux 0x6597e688 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x65ab88bb _lv1_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0x65ace155 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x65b15608 i2c_probe +EXPORT_SYMBOL vmlinux 0x65cb1b56 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x65f4af5f prepare_to_wait +EXPORT_SYMBOL vmlinux 0x66125644 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x6621a51d ll_rw_block +EXPORT_SYMBOL vmlinux 0x6646d80c compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x66478e50 blkdev_get +EXPORT_SYMBOL vmlinux 0x665e2839 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x6660684d alloc_trdev +EXPORT_SYMBOL vmlinux 0x6674af75 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x6674c6cd pci_read_irq_line +EXPORT_SYMBOL vmlinux 0x6689b73d pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66b56be9 serio_reconnect +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66f5db89 __nla_reserve +EXPORT_SYMBOL vmlinux 0x672089da nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x67523dd7 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x676e3291 down_write +EXPORT_SYMBOL vmlinux 0x676fa5f3 ilookup5 +EXPORT_SYMBOL vmlinux 0x6799628c fb_set_var +EXPORT_SYMBOL vmlinux 0x679ba07d nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x67a88dd9 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x67dea1ce security_inode_init_security +EXPORT_SYMBOL vmlinux 0x6817a619 ide_spin_wait_hwgroup +EXPORT_SYMBOL vmlinux 0x6823b444 __invalidate_device +EXPORT_SYMBOL vmlinux 0x683ea28a cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x68628e77 _write_lock_bh +EXPORT_SYMBOL vmlinux 0x68714986 key_create_or_update +EXPORT_SYMBOL vmlinux 0x68b26ebb dentry_open +EXPORT_SYMBOL vmlinux 0x68be9ca2 cdev_init +EXPORT_SYMBOL vmlinux 0x68e1ef51 smu_present +EXPORT_SYMBOL vmlinux 0x6936ae27 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x6943a90b _lv1_construct_lpm +EXPORT_SYMBOL vmlinux 0x696e4502 kobject_add +EXPORT_SYMBOL vmlinux 0x6989875b add_wait_queue +EXPORT_SYMBOL vmlinux 0x6991bb9a ps3_dma_region_create +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a236f3 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x69a95e04 pci_get_class +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x69feceec check_disk_change +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a86deed blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6af2ce1b dget_locked +EXPORT_SYMBOL vmlinux 0x6afb3641 ide_end_drive_cmd +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b203c1b kobject_init +EXPORT_SYMBOL vmlinux 0x6b267bb2 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x6b857d23 __alloc_skb +EXPORT_SYMBOL vmlinux 0x6b89dc2d cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6b949f4d __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6be860ba skb_find_text +EXPORT_SYMBOL vmlinux 0x6bf4fce2 vm_insert_page +EXPORT_SYMBOL vmlinux 0x6c0eb831 __check_region +EXPORT_SYMBOL vmlinux 0x6c191147 open_bdev_excl +EXPORT_SYMBOL vmlinux 0x6c324f2b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c8094ff d_alloc_anon +EXPORT_SYMBOL vmlinux 0x6ca29643 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x6ca6db4a bdev_read_only +EXPORT_SYMBOL vmlinux 0x6ca84bac kthread_stop +EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d12edf5 macio_request_resources +EXPORT_SYMBOL vmlinux 0x6d143627 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2d282f of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x6d47be5a pci_enable_device +EXPORT_SYMBOL vmlinux 0x6d625f3b rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x6d64e9e5 of_match_device +EXPORT_SYMBOL vmlinux 0x6d66f990 _lv1_start_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0x6d8ea424 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dae01c3 sock_no_bind +EXPORT_SYMBOL vmlinux 0x6db5de6f linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x6db73ca5 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e117329 llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0x6e3a8446 seq_open_private +EXPORT_SYMBOL vmlinux 0x6e42b83c i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x6e4ecb47 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e97f2b1 deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb1f8d8 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x6eb5e3b4 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x6eb80966 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x6ef0d594 key_unlink +EXPORT_SYMBOL vmlinux 0x6ef56f31 release_firmware +EXPORT_SYMBOL vmlinux 0x6f0cc1ea d_lookup +EXPORT_SYMBOL vmlinux 0x6f58acfb free_buffer_head +EXPORT_SYMBOL vmlinux 0x6f5b6ae0 vfs_create +EXPORT_SYMBOL vmlinux 0x6f6e43fc qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x6f72386c _lv1_get_lpm_interrupt_status +EXPORT_SYMBOL vmlinux 0x6f8aba39 thaw_bdev +EXPORT_SYMBOL vmlinux 0x6fbaecb1 i2c_detach_client +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd571db proto_unregister +EXPORT_SYMBOL vmlinux 0x70031fd5 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705d386c __lock_buffer +EXPORT_SYMBOL vmlinux 0x70b0e897 _read_unlock_irq +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70f28fa4 find_task_by_pid +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x713f6882 _lv1_write_htab_entry +EXPORT_SYMBOL vmlinux 0x716af6c1 mutex_unlock +EXPORT_SYMBOL vmlinux 0x716c12ca _lv1_stop_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0x7170e234 input_set_capability +EXPORT_SYMBOL vmlinux 0x717242e7 rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x717a306d blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x717da911 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x717f46a6 create_proc_entry +EXPORT_SYMBOL vmlinux 0x71805c0d compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x71868f02 register_key_type +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71ad965e eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x7255ebc3 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x725601bd read_dev_sector +EXPORT_SYMBOL vmlinux 0x72687a13 tcp_check_req +EXPORT_SYMBOL vmlinux 0x727b053d _lv1_get_total_execution_time +EXPORT_SYMBOL vmlinux 0x728d28bc new_inode +EXPORT_SYMBOL vmlinux 0x72954d55 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b3e7cc _lv1_storage_write +EXPORT_SYMBOL vmlinux 0x72ee036f xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x72fec44b xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x732c8fac dquot_initialize +EXPORT_SYMBOL vmlinux 0x734153f7 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x73610cc1 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x73633901 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x737a311e sk_common_release +EXPORT_SYMBOL vmlinux 0x737a9b59 seq_path +EXPORT_SYMBOL vmlinux 0x739bc65b __ioremap_at +EXPORT_SYMBOL vmlinux 0x73b4aad7 __request_region +EXPORT_SYMBOL vmlinux 0x74102c8f __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x7413cd51 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x742fd042 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x7449d8e0 vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0x74774f2c xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748f4676 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x74c5ef24 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74dfb4be blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x7535e68f d_genocide +EXPORT_SYMBOL vmlinux 0x755883fd of_unregister_driver +EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp +EXPORT_SYMBOL vmlinux 0x75805af7 vc_lock_resize +EXPORT_SYMBOL vmlinux 0x75818776 pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0x75c44df2 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x75ccf8c3 rtnl_notify +EXPORT_SYMBOL vmlinux 0x75e53d1d ibmebus_register_driver +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x761179c3 input_allocate_device +EXPORT_SYMBOL vmlinux 0x764c4ca0 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x7690fbf3 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e16371 nf_register_hook +EXPORT_SYMBOL vmlinux 0x76f09a83 sock_no_getname +EXPORT_SYMBOL vmlinux 0x77190539 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x77227bd5 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x77321b70 inet_frags_init +EXPORT_SYMBOL vmlinux 0x7763d012 nf_reinject +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x778961b5 vio_unregister_device +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x78085ef0 bio_pair_release +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x7830b04f hvc_put_chars +EXPORT_SYMBOL vmlinux 0x78341400 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x7836ef8b xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x78456f82 blk_insert_request +EXPORT_SYMBOL vmlinux 0x78834d67 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x78a1a5cc generic_read_dir +EXPORT_SYMBOL vmlinux 0x78b88b84 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x7913db65 wireless_send_event +EXPORT_SYMBOL vmlinux 0x793f225d matrox_mystique +EXPORT_SYMBOL vmlinux 0x7968362f open_exec +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79f76663 km_state_expired +EXPORT_SYMBOL vmlinux 0x7a00798e filemap_fault +EXPORT_SYMBOL vmlinux 0x7a9411d5 macio_register_driver +EXPORT_SYMBOL vmlinux 0x7ae81ea6 simple_write_begin +EXPORT_SYMBOL vmlinux 0x7afdb989 __break_lease +EXPORT_SYMBOL vmlinux 0x7b06b19b dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x7b09a0e2 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x7b3a81a9 compute_creds +EXPORT_SYMBOL vmlinux 0x7b4882ac mutex_lock +EXPORT_SYMBOL vmlinux 0x7b5e7d82 _lv1_set_ppe_periodic_tracer_frequency +EXPORT_SYMBOL vmlinux 0x7b6a42f7 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x7b6f488d generic_delete_inode +EXPORT_SYMBOL vmlinux 0x7ba2eb8c proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7bb4de17 scnprintf +EXPORT_SYMBOL vmlinux 0x7bb58f53 key_link +EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c67996e request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x7c775173 __kfifo_put +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7caa3672 _lv1_open_device +EXPORT_SYMBOL vmlinux 0x7cae3a17 drive_is_ready +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb8a6e7 write_inode_now +EXPORT_SYMBOL vmlinux 0x7cd1ff01 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x7cd69e59 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x7cd8779e gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x7ceaedef handle_sysrq +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d30e4ab macio_release_resource +EXPORT_SYMBOL vmlinux 0x7d7eb3a8 km_state_notify +EXPORT_SYMBOL vmlinux 0x7d825597 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7db384bf ide_init_drive_cmd +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7de5eafe up_read +EXPORT_SYMBOL vmlinux 0x7dff86ad mpage_readpages +EXPORT_SYMBOL vmlinux 0x7e002f70 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x7e105a3f ip_getsockopt +EXPORT_SYMBOL vmlinux 0x7e1a2c92 ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x7e52f3da pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x7e5919df udp_hash_lock +EXPORT_SYMBOL vmlinux 0x7e613127 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x7e833292 release_resource +EXPORT_SYMBOL vmlinux 0x7e83b6e6 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x7ea753e3 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x7eb4c2bd kill_pid +EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy +EXPORT_SYMBOL vmlinux 0x7efdb4f3 sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x7f1d3c53 ide_dump_status +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f273764 default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0x7f2cadcc pci_map_rom +EXPORT_SYMBOL vmlinux 0x7f47d7de inode_change_ok +EXPORT_SYMBOL vmlinux 0x7f645ef0 end_that_request_last +EXPORT_SYMBOL vmlinux 0x7f81f9de compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x7f83eef1 _lv1_set_lpm_group_control +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fcaa613 __free_pages +EXPORT_SYMBOL vmlinux 0x7fddc19a atm_alloc_charge +EXPORT_SYMBOL vmlinux 0x7fde4f37 __mutex_init +EXPORT_SYMBOL vmlinux 0x8003a724 udp_disconnect +EXPORT_SYMBOL vmlinux 0x80156796 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x801d66cb __raw_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x80428c80 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x8066b1a5 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x806ad9c1 del_gendisk +EXPORT_SYMBOL vmlinux 0x80979a7b console_start +EXPORT_SYMBOL vmlinux 0x8099f761 should_remove_suid +EXPORT_SYMBOL vmlinux 0x80cc7af9 ioremap +EXPORT_SYMBOL vmlinux 0x80fcf2ab register_chrdev +EXPORT_SYMBOL vmlinux 0x810173cb pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x8129d90c blk_get_queue +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x817a0d90 pci_bus_type +EXPORT_SYMBOL vmlinux 0x8194bd99 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x81acfa07 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x81afcb46 vc_cons +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81e8880e ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0x82023e0f have_submounts +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821ac274 free_task +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x82400487 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8257bd20 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x827b6f80 arp_find +EXPORT_SYMBOL vmlinux 0x82d37859 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x82fc54b4 vfs_permission +EXPORT_SYMBOL vmlinux 0x83230e05 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x833bc433 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x838152d1 current_fs_time +EXPORT_SYMBOL vmlinux 0x83992d91 clear_user_page +EXPORT_SYMBOL vmlinux 0x83a3f313 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x845124e0 ps3_mm_phys_to_lpar +EXPORT_SYMBOL vmlinux 0x845a1c8c compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x848c7f61 default_hwif_mmiops +EXPORT_SYMBOL vmlinux 0x84a4ca4d of_n_size_cells +EXPORT_SYMBOL vmlinux 0x84e1b505 module_remove_driver +EXPORT_SYMBOL vmlinux 0x850243cd _lv1_net_start_tx_dma +EXPORT_SYMBOL vmlinux 0x8540b5be sleep_on +EXPORT_SYMBOL vmlinux 0x855d3b52 matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x85657590 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85c58dc8 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x85cf87d4 inet_bind +EXPORT_SYMBOL vmlinux 0x85d14d7e neigh_lookup +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85ed17b1 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x85ee4baa sock_sendmsg +EXPORT_SYMBOL vmlinux 0x861b6f73 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866e4d2b block_write_begin +EXPORT_SYMBOL vmlinux 0x8682b802 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86d35a59 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86f4e9f0 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8707928e dev_get_by_name +EXPORT_SYMBOL vmlinux 0x8709a71a of_get_address +EXPORT_SYMBOL vmlinux 0x871f3bc9 follow_down +EXPORT_SYMBOL vmlinux 0x872ffa02 dst_alloc +EXPORT_SYMBOL vmlinux 0x87433e24 fget +EXPORT_SYMBOL vmlinux 0x8769a19f ppc64_enable_pmcs +EXPORT_SYMBOL vmlinux 0x876a4310 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0x8783ba11 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x87c079a1 unregister_netdev +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881113cd adjust_resource +EXPORT_SYMBOL vmlinux 0x882defd3 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x8840eafa inet_accept +EXPORT_SYMBOL vmlinux 0x8854cb16 cpu_possible_map +EXPORT_SYMBOL vmlinux 0x885a9a32 dquot_transfer +EXPORT_SYMBOL vmlinux 0x8867a807 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x88834cc5 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x88e08bdb kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89a93583 matrox_millennium +EXPORT_SYMBOL vmlinux 0x89bc2f4e kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x89c5a8be smu_get_sdb_partition +EXPORT_SYMBOL vmlinux 0x89d18a02 open_by_devnum +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89f330fc unregister_qdisc +EXPORT_SYMBOL vmlinux 0x8a637a33 _lv1_storage_get_async_status +EXPORT_SYMBOL vmlinux 0x8a63c8e3 set_user_nice +EXPORT_SYMBOL vmlinux 0x8a64e6e1 _lv1_gpu_open +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a901a7e qdisc_destroy +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab74900 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x8af21fed put_page +EXPORT_SYMBOL vmlinux 0x8af57ddf blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x8b1c3b52 ide_dma_lost_irq +EXPORT_SYMBOL vmlinux 0x8b41db26 _lv1_release_io_segment +EXPORT_SYMBOL vmlinux 0x8b56c7b0 blk_run_queue +EXPORT_SYMBOL vmlinux 0x8b710394 sock_register +EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup +EXPORT_SYMBOL vmlinux 0x8bb59457 do_sync_read +EXPORT_SYMBOL vmlinux 0x8bc93fe5 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x8bcc3a3a _spin_lock_bh +EXPORT_SYMBOL vmlinux 0x8bebe904 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c208228 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x8c2082a5 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x8c39b521 elv_add_request +EXPORT_SYMBOL vmlinux 0x8c39c65b key_type_keyring +EXPORT_SYMBOL vmlinux 0x8c3e45c1 d_namespace_path +EXPORT_SYMBOL vmlinux 0x8c3f963b neigh_create +EXPORT_SYMBOL vmlinux 0x8c45cc47 vfs_read +EXPORT_SYMBOL vmlinux 0x8c45cf22 _lv1_allocate_io_segment +EXPORT_SYMBOL vmlinux 0x8c72bc22 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cb27679 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd02fe4 module_add_driver +EXPORT_SYMBOL vmlinux 0x8ce8d007 follow_up +EXPORT_SYMBOL vmlinux 0x8d074962 macio_dev_put +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d601eb1 per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0x8d6ef862 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8d9916d4 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x8dc043d3 aio_put_req +EXPORT_SYMBOL vmlinux 0x8dd03d4b tcf_hash_check +EXPORT_SYMBOL vmlinux 0x8de99e5d kobject_unregister +EXPORT_SYMBOL vmlinux 0x8df4f3c3 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e9a0b2a netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x8ee0e497 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0x8eea1bc9 smu_poll +EXPORT_SYMBOL vmlinux 0x8f2cdf85 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x8f50b1f1 bio_map_kern +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8fb6d90b blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x8fbfc1bc _lv1_destruct_logical_spe +EXPORT_SYMBOL vmlinux 0x8fc1ea94 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x8fd8b7bc _write_lock_irq +EXPORT_SYMBOL vmlinux 0x8fde07cf blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x8fdf7fff unregister_8022_client +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x90204662 ps3_sb_event_receive_port_destroy +EXPORT_SYMBOL vmlinux 0x90b6da1d vmap +EXPORT_SYMBOL vmlinux 0x90c27a6a __first_cpu +EXPORT_SYMBOL vmlinux 0x90cf2318 _lv1_read_htab_entries +EXPORT_SYMBOL vmlinux 0x90f2c90d vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0x910eef5b search_binary_handler +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x916aa399 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91d74cd1 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x92172456 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x9239cc37 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x925b96ab bio_alloc +EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x931d2521 mempool_resize +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x9342ff4d pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x9354fcde ibmebus_free_irq +EXPORT_SYMBOL vmlinux 0x936d0a6b locks_remove_posix +EXPORT_SYMBOL vmlinux 0x9379bd6d end_page_writeback +EXPORT_SYMBOL vmlinux 0x9388d756 mach_pasemi +EXPORT_SYMBOL vmlinux 0x93a30f1d pci_choose_state +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a7d8ae udp_proc_register +EXPORT_SYMBOL vmlinux 0x93b2b150 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94207cd3 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x9433c227 pcim_iomap +EXPORT_SYMBOL vmlinux 0x94987335 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x952e843b machine_is_compatible +EXPORT_SYMBOL vmlinux 0x9538ce89 ide_do_reset +EXPORT_SYMBOL vmlinux 0x953a893b _lv1_panic +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9555edbf vio_register_driver +EXPORT_SYMBOL vmlinux 0x9559d8d3 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x956db6b2 input_open_device +EXPORT_SYMBOL vmlinux 0x95990e22 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x959c9d3c sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x95c91afe mach_cell +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95f1cb7f _lv1_insert_htab_entry +EXPORT_SYMBOL vmlinux 0x95fafd5e g450_mnp2f +EXPORT_SYMBOL vmlinux 0x964a899c of_device_get_modalias +EXPORT_SYMBOL vmlinux 0x964d75e0 request_resource +EXPORT_SYMBOL vmlinux 0x966d49af path_lookup +EXPORT_SYMBOL vmlinux 0x9695abe9 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x96b438bd _lv1_storage_read +EXPORT_SYMBOL vmlinux 0x96f7bf54 notify_change +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9758130d _lv1_configure_execution_time_variable +EXPORT_SYMBOL vmlinux 0x9782e792 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x978df039 nf_log_packet +EXPORT_SYMBOL vmlinux 0x97ca1e2b register_filesystem +EXPORT_SYMBOL vmlinux 0x980a4f4d wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x98340d29 ida_destroy +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x989d4082 _write_trylock +EXPORT_SYMBOL vmlinux 0x98a4a385 sock_wake_async +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98cb0d8e tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x9901bd06 devm_free_irq +EXPORT_SYMBOL vmlinux 0x99505359 __up +EXPORT_SYMBOL vmlinux 0x9992d976 dput +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999cd502 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99dd1451 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x9a1860b5 qdisc_reset +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a3d004f km_policy_notify +EXPORT_SYMBOL vmlinux 0x9a54a996 remove_inode_hash +EXPORT_SYMBOL vmlinux 0x9a730ae0 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x9a7d5636 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x9ad5aa16 idr_get_new_above +EXPORT_SYMBOL vmlinux 0x9ae1cd0d truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x9ae646c4 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b0f1de9 km_waitq +EXPORT_SYMBOL vmlinux 0x9b34c187 matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b62faa1 tty_vhangup +EXPORT_SYMBOL vmlinux 0x9b77964b iget5_locked +EXPORT_SYMBOL vmlinux 0x9b9a8744 vfs_statfs +EXPORT_SYMBOL vmlinux 0x9ba1ea32 sync_inode +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb1baaf __release_region +EXPORT_SYMBOL vmlinux 0x9bc565c5 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x9bcb7285 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x9bcbbf6d mark_page_accessed +EXPORT_SYMBOL vmlinux 0x9bd23b55 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan +EXPORT_SYMBOL vmlinux 0x9c14f35e dev_get_flags +EXPORT_SYMBOL vmlinux 0x9c18797c serio_close +EXPORT_SYMBOL vmlinux 0x9c1f5600 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x9c39233b init_net +EXPORT_SYMBOL vmlinux 0x9c501236 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x9c584e94 drop_super +EXPORT_SYMBOL vmlinux 0x9c7075aa ide_set_handler +EXPORT_SYMBOL vmlinux 0x9c784779 register_binfmt +EXPORT_SYMBOL vmlinux 0x9c862364 backlight_device_register +EXPORT_SYMBOL vmlinux 0x9ca95a0e sort +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9cc10e2b register_console +EXPORT_SYMBOL vmlinux 0x9ce103a0 down_write_trylock +EXPORT_SYMBOL vmlinux 0x9d3e4d61 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x9d4beae5 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x9d6c49d2 take_over_console +EXPORT_SYMBOL vmlinux 0x9d6ea079 inet_shutdown +EXPORT_SYMBOL vmlinux 0x9d6f58df pci_find_slot +EXPORT_SYMBOL vmlinux 0x9d6fa9c6 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x9d71306a cfb_fillrect +EXPORT_SYMBOL vmlinux 0x9d7cce41 pci_find_bus +EXPORT_SYMBOL vmlinux 0x9d96cf07 deny_write_access +EXPORT_SYMBOL vmlinux 0x9da9fee6 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x9dcc3455 dquot_acquire +EXPORT_SYMBOL vmlinux 0x9e0915bc read_cache_page_async +EXPORT_SYMBOL vmlinux 0x9e347e88 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x9e5ce177 _lv1_construct_logical_spe +EXPORT_SYMBOL vmlinux 0x9e6fe2ba inet_listen +EXPORT_SYMBOL vmlinux 0x9e919fa6 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9eb9a0c2 bdget +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef70bfc skb_pad +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9efc6033 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f6581c4 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x9f726f9d ip_route_output_key +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9c30ba end_request +EXPORT_SYMBOL vmlinux 0x9f9ea539 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9fdbdf1e netpoll_setup +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0x9ff63d81 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xa0099358 d_move +EXPORT_SYMBOL vmlinux 0xa00af726 kill_fasync +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa05901e9 sock_i_uid +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa077a88a kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xa07c4931 serio_open +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0d866e9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xa0e44065 _read_unlock +EXPORT_SYMBOL vmlinux 0xa0e980f5 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xa0f3897d bdevname +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa1536099 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xa17b6e5f __mod_timer +EXPORT_SYMBOL vmlinux 0xa19ca21b kfree_skb +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1e8322f tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22643bb of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xa22dcc24 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa27b4e9a neigh_event_ns +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2cd0aaf _lv1_net_stop_tx_dma +EXPORT_SYMBOL vmlinux 0xa2d4c119 complete_all +EXPORT_SYMBOL vmlinux 0xa2f4afa7 force_sig +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy +EXPORT_SYMBOL vmlinux 0xa3573c85 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa35f7597 dma_pool_free +EXPORT_SYMBOL vmlinux 0xa3693c39 __getblk +EXPORT_SYMBOL vmlinux 0xa38255d1 pci_save_state +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a6abdd alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0xa3da0534 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xa3dea582 skb_under_panic +EXPORT_SYMBOL vmlinux 0xa3e25b02 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xa3e2896f unregister_netdevice +EXPORT_SYMBOL vmlinux 0xa40da02d skb_unlink +EXPORT_SYMBOL vmlinux 0xa42293ef input_free_device +EXPORT_SYMBOL vmlinux 0xa4377945 seq_printf +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa46c62b1 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xa4a74611 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bee463 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xa4c6362e generic_permission +EXPORT_SYMBOL vmlinux 0xa4e6805e scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa549d390 simple_rename +EXPORT_SYMBOL vmlinux 0xa54c4b51 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xa54eaf97 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a24430 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xa5a9e1e2 kobject_get +EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL vmlinux 0xa643e6a1 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa67fdd14 _lv1_send_event_locally +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa6814433 groups_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa683598a tty_unregister_device +EXPORT_SYMBOL vmlinux 0xa68a7b9c udp_prot +EXPORT_SYMBOL vmlinux 0xa6a4ec1d _lv1_get_logical_partition_id +EXPORT_SYMBOL vmlinux 0xa6a5ba75 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa7107947 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xa714e02f register_8022_client +EXPORT_SYMBOL vmlinux 0xa746a6cc paca +EXPORT_SYMBOL vmlinux 0xa748ea8f mach_powermac +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa77a280a percpu_counter_set +EXPORT_SYMBOL vmlinux 0xa78c702e ioremap_flags +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa7dbab0e xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xa8111f1b simple_pin_fs +EXPORT_SYMBOL vmlinux 0xa84f7d25 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xa886a958 krealloc +EXPORT_SYMBOL vmlinux 0xa89a604e vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xa8a3d0be ps3_dma_region_free +EXPORT_SYMBOL vmlinux 0xa8b8c1fe subsystem_unregister +EXPORT_SYMBOL vmlinux 0xa8d9d09f put_files_struct +EXPORT_SYMBOL vmlinux 0xa8ecc6b2 i2c_attach_client +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa915edfb skb_copy_bits +EXPORT_SYMBOL vmlinux 0xa922f240 _read_lock_irq +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa92fd045 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xa93a7896 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xa99a217d dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xa9b8a0bc tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xa9c0b38f simple_fill_super +EXPORT_SYMBOL vmlinux 0xa9e2d252 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa348532 free_netdev +EXPORT_SYMBOL vmlinux 0xaa81611a ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xaad7491c inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xaae298b8 __find_get_block +EXPORT_SYMBOL vmlinux 0xaae36005 ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xaaf54911 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1fc275 udp_ioctl +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab5b5f78 tty_name +EXPORT_SYMBOL vmlinux 0xab63a168 input_close_device +EXPORT_SYMBOL vmlinux 0xab9058cc __cputime_msec_factor +EXPORT_SYMBOL vmlinux 0xaba6f53d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xaba7d71c misc_register +EXPORT_SYMBOL vmlinux 0xabada577 __devm_request_region +EXPORT_SYMBOL vmlinux 0xabb429d2 __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xabbd6cee netdev_features_change +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabedde20 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xac0a3193 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xac0cb66e generic_listxattr +EXPORT_SYMBOL vmlinux 0xac0d4281 framebuffer_release +EXPORT_SYMBOL vmlinux 0xac29c4a2 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac9cda8c nf_hook_slow +EXPORT_SYMBOL vmlinux 0xaca2d941 sys_copyarea +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacddf9fc end_dequeued_request +EXPORT_SYMBOL vmlinux 0xace43298 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad12aaaf llc_set_station_handler +EXPORT_SYMBOL vmlinux 0xad4ebe22 _write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xad69dc6f inet_del_protocol +EXPORT_SYMBOL vmlinux 0xad811347 send_sig +EXPORT_SYMBOL vmlinux 0xad85b120 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xad98bfb2 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadaddb2b blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xadd9aa21 neigh_for_each +EXPORT_SYMBOL vmlinux 0xadfc8a96 __kill_fasync +EXPORT_SYMBOL vmlinux 0xae055954 kill_litter_super +EXPORT_SYMBOL vmlinux 0xae3a8b46 names_cachep +EXPORT_SYMBOL vmlinux 0xae474198 load_nls +EXPORT_SYMBOL vmlinux 0xaea08aa0 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xaea56bad pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xaeac757a wake_up_process +EXPORT_SYMBOL vmlinux 0xaee3587c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xaf0bee1d _lv1_end_of_interrupt +EXPORT_SYMBOL vmlinux 0xaf25400d snprintf +EXPORT_SYMBOL vmlinux 0xaf7d3bed sock_kmalloc +EXPORT_SYMBOL vmlinux 0xaf7e6801 smp_call_function_single +EXPORT_SYMBOL vmlinux 0xaf82452d sock_wmalloc +EXPORT_SYMBOL vmlinux 0xaf9c373f tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xafb1aa87 submit_bh +EXPORT_SYMBOL vmlinux 0xafc18ff5 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xafcc2b57 pci_remove_rom +EXPORT_SYMBOL vmlinux 0xafd34b1e _lv1_allocate_memory +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb003c16e seq_release_private +EXPORT_SYMBOL vmlinux 0xb00a7710 alloc_file +EXPORT_SYMBOL vmlinux 0xb0227249 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xb0350349 pci_disable_device +EXPORT_SYMBOL vmlinux 0xb04dedb1 atm_dev_lookup +EXPORT_SYMBOL vmlinux 0xb05ae960 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xb05bd679 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xb05efd6f pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xb0617d78 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0xb072ef44 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xb08cb2ac is_container_init +EXPORT_SYMBOL vmlinux 0xb0912ef8 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e42262 ide_lock +EXPORT_SYMBOL vmlinux 0xb0fdb761 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb15d21c8 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xb169b38b xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb197a312 matrox_G100 +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1ec93a5 key_task_permission +EXPORT_SYMBOL vmlinux 0xb1f975aa unlock_kernel +EXPORT_SYMBOL vmlinux 0xb23ee5d1 netif_rx +EXPORT_SYMBOL vmlinux 0xb2507d8e xfrm_register_km +EXPORT_SYMBOL vmlinux 0xb252f055 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xb25352a9 may_umount_tree +EXPORT_SYMBOL vmlinux 0xb2608389 unbind_con_driver +EXPORT_SYMBOL vmlinux 0xb2612eb3 sock_i_ino +EXPORT_SYMBOL vmlinux 0xb2706062 of_dev_put +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb2b7ed5a ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xb2ba62b5 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xb2c969cb gen_pool_create +EXPORT_SYMBOL vmlinux 0xb2d73ac2 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xb3118a11 nonseekable_open +EXPORT_SYMBOL vmlinux 0xb3259337 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xb345bb88 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xb34bed69 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xb3899117 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xb38ef624 ps3_dma_region_init +EXPORT_SYMBOL vmlinux 0xb3973ca2 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xb39c1ee7 block_truncate_page +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3c9e232 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xb3d75679 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xb3ed5881 _lv1_pause +EXPORT_SYMBOL vmlinux 0xb41e92bc ns_to_timespec +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb45904ae ide_dma_timeout +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb4f1771f __user_walk +EXPORT_SYMBOL vmlinux 0xb5399503 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xb539962b __lock_page +EXPORT_SYMBOL vmlinux 0xb54243af bio_clone +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55886b3 netif_device_attach +EXPORT_SYMBOL vmlinux 0xb56033b8 _lv1_disconnect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0xb565ec20 do_munmap +EXPORT_SYMBOL vmlinux 0xb56bfd9e smu_spinwait_cmd +EXPORT_SYMBOL vmlinux 0xb59e318b km_policy_expired +EXPORT_SYMBOL vmlinux 0xb5a21933 generic_write_checks +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5f03388 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb620acf4 ip_dev_find +EXPORT_SYMBOL vmlinux 0xb6439c4e _spin_unlock_irq +EXPORT_SYMBOL vmlinux 0xb6471bda inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xb65ce60f locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb68b8e18 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0xb6b0e204 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb6c8c4f5 init_special_inode +EXPORT_SYMBOL vmlinux 0xb6fb0ffe find_vma +EXPORT_SYMBOL vmlinux 0xb702d5c7 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xb70314a5 pci_iounmap +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb747c534 dev_change_flags +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb760e9d6 fb_get_mode +EXPORT_SYMBOL vmlinux 0xb76d89a8 _lv1_net_set_interrupt_status_indicator +EXPORT_SYMBOL vmlinux 0xb780ea38 eth_header_cache +EXPORT_SYMBOL vmlinux 0xb7b29146 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xb804f5b0 vcc_insert_socket +EXPORT_SYMBOL vmlinux 0xb8318957 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xb8593d0a _lv1_set_dabr +EXPORT_SYMBOL vmlinux 0xb86a65a5 block_sync_page +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb877e8b2 idr_remove_all +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb909b5ee i2c_transfer +EXPORT_SYMBOL vmlinux 0xb9562c28 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xb967bee2 tcp_connect +EXPORT_SYMBOL vmlinux 0xb97fbb87 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xb999eb32 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xb9c9716a of_device_unregister +EXPORT_SYMBOL vmlinux 0xb9f2f85b sk_run_filter +EXPORT_SYMBOL vmlinux 0xb9ff2b84 bd_set_size +EXPORT_SYMBOL vmlinux 0xba122a2c smu_done_complete +EXPORT_SYMBOL vmlinux 0xba14a89b poll_freewait +EXPORT_SYMBOL vmlinux 0xba17879e mach_maple_md +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba77fe62 __nla_put +EXPORT_SYMBOL vmlinux 0xba97971d pci_dev_get +EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup +EXPORT_SYMBOL vmlinux 0xbabb1ced i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xbad6bf7e locks_init_lock +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3466c6 tcp_prot +EXPORT_SYMBOL vmlinux 0xbb4a8e64 key_negate_and_link +EXPORT_SYMBOL vmlinux 0xbb50d262 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb7a91dc _write_unlock_bh +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba05305 blk_register_region +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbf3ee9c tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xbc054cdc unload_nls +EXPORT_SYMBOL vmlinux 0xbc27671c sk_reset_timer +EXPORT_SYMBOL vmlinux 0xbc2d6f89 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xbc2e4981 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc54c7e9 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xbc7193d6 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0xbc7410ff nf_ct_attach +EXPORT_SYMBOL vmlinux 0xbc7bd887 inode_double_unlock +EXPORT_SYMBOL vmlinux 0xbc914421 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xbcafc265 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xbcc475e9 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0xbcccfcd6 tcp_unhash +EXPORT_SYMBOL vmlinux 0xbcd89f31 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xbceed87c d_rehash +EXPORT_SYMBOL vmlinux 0xbcf043f2 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xbd056788 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xbd1e4df5 _lv1_did_update_interrupt_mask +EXPORT_SYMBOL vmlinux 0xbd23f58e get_sb_single +EXPORT_SYMBOL vmlinux 0xbd2457ed _lv1_gpu_context_iomap +EXPORT_SYMBOL vmlinux 0xbd58c7d8 __napi_schedule +EXPORT_SYMBOL vmlinux 0xbd5c488f make_EII_client +EXPORT_SYMBOL vmlinux 0xbd5e965e vfs_readv +EXPORT_SYMBOL vmlinux 0xbd69e298 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xbd7221b2 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xbd9ae044 __alloc_pages +EXPORT_SYMBOL vmlinux 0xbda04b53 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xbdacc892 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xbdba6ec6 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xbe336170 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xbe696583 hweight64 +EXPORT_SYMBOL vmlinux 0xbe8a1485 mempool_create +EXPORT_SYMBOL vmlinux 0xbe91b218 netif_device_detach +EXPORT_SYMBOL vmlinux 0xbea26908 find_get_page +EXPORT_SYMBOL vmlinux 0xbebd33b1 _lv1_stop_lpm +EXPORT_SYMBOL vmlinux 0xbeefe293 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1c3a65 __rta_fill +EXPORT_SYMBOL vmlinux 0xbf53e63d pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0xbf540860 tty_hangup +EXPORT_SYMBOL vmlinux 0xbf755821 ide_do_drive_cmd +EXPORT_SYMBOL vmlinux 0xbf82ea61 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xbf94c743 _lv1_storage_send_device_command +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd22f89 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xbfdaa5e7 user_revoke +EXPORT_SYMBOL vmlinux 0xbfeb493d pci_domain_nr +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xc022665c gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xc029d4bc unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc069986a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b5cd2b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xc0c4f65c eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xc103b464 seq_read +EXPORT_SYMBOL vmlinux 0xc107ed71 struct_module +EXPORT_SYMBOL vmlinux 0xc116ef67 pci_enable_msi +EXPORT_SYMBOL vmlinux 0xc124280b netlink_broadcast +EXPORT_SYMBOL vmlinux 0xc1308bd1 put_filp +EXPORT_SYMBOL vmlinux 0xc1479417 sysctl_string +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc1ba49a9 dev_base_lock +EXPORT_SYMBOL vmlinux 0xc1e6b3f6 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0xc21b9b17 _lv1_get_rtc +EXPORT_SYMBOL vmlinux 0xc2270e09 input_flush_device +EXPORT_SYMBOL vmlinux 0xc249992d ps2_handle_response +EXPORT_SYMBOL vmlinux 0xc24fc7f8 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26ea41e kobject_register +EXPORT_SYMBOL vmlinux 0xc2737856 file_permission +EXPORT_SYMBOL vmlinux 0xc2b8d2e1 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xc2d0a82a matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0xc2d2bafc elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc3166f02 inet_release +EXPORT_SYMBOL vmlinux 0xc318d03b elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xc326c920 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xc34a8be3 module_put +EXPORT_SYMBOL vmlinux 0xc34d83a3 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xc370e5c5 simple_readpage +EXPORT_SYMBOL vmlinux 0xc3847960 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xc3b55b06 prepare_binprm +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc3f54edb vio_get_attribute +EXPORT_SYMBOL vmlinux 0xc41b8fbf irq_stat +EXPORT_SYMBOL vmlinux 0xc41e3048 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xc43e6df4 call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0xc45b1777 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc48fa8d7 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a7e5c0 unlock_rename +EXPORT_SYMBOL vmlinux 0xc4ae8192 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xc4c9193c xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0xc4cd38d9 __cputime_sec_factor +EXPORT_SYMBOL vmlinux 0xc4e10b69 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0xc500724f _lv1_construct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0xc50efe28 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc57784eb generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xc57c62e4 mach_ps3 +EXPORT_SYMBOL vmlinux 0xc5adfd5b _lv1_set_lpm_trigger_control +EXPORT_SYMBOL vmlinux 0xc5ae211b __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xc5b37830 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xc5ec620b ide_stall_queue +EXPORT_SYMBOL vmlinux 0xc617e15d of_device_alloc +EXPORT_SYMBOL vmlinux 0xc622c9b8 bdi_init +EXPORT_SYMBOL vmlinux 0xc6440f4c _lv1_set_spe_transition_notifier +EXPORT_SYMBOL vmlinux 0xc66446b1 audit_log_end +EXPORT_SYMBOL vmlinux 0xc67b17ef inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xc6836cf5 genl_sock +EXPORT_SYMBOL vmlinux 0xc6933e50 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xc6994bd1 simple_link +EXPORT_SYMBOL vmlinux 0xc699b27f blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xc6b6d78c wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xc6c0b86e tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xc6c421dd udp_sendmsg +EXPORT_SYMBOL vmlinux 0xc6c7ed62 of_translate_address +EXPORT_SYMBOL vmlinux 0xc6d67454 brioctl_set +EXPORT_SYMBOL vmlinux 0xc7366020 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xc740c64a memchr +EXPORT_SYMBOL vmlinux 0xc74128d6 simple_statfs +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ad2fb8 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp +EXPORT_SYMBOL vmlinux 0xc7fffa48 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xc8012a5c i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xc82e0e0e ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0xc8411109 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc8827fb5 per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xc88b234e seq_release +EXPORT_SYMBOL vmlinux 0xc88c2367 skb_clone +EXPORT_SYMBOL vmlinux 0xc8ab4ff6 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c3c87a ide_dma_host_off +EXPORT_SYMBOL vmlinux 0xc8df9500 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xc8ee185d tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xc92753d7 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xc93d3ca8 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xc960aa56 generic_fillattr +EXPORT_SYMBOL vmlinux 0xc9783c62 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xc97e474b ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xc97f319e fddi_type_trans +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9b770e6 write_one_page +EXPORT_SYMBOL vmlinux 0xc9c315e1 allocate_resource +EXPORT_SYMBOL vmlinux 0xc9e0e450 _lv1_gpu_context_free +EXPORT_SYMBOL vmlinux 0xc9eda5ab invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xc9eee602 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca922e83 seq_putc +EXPORT_SYMBOL vmlinux 0xcabd00c3 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xcada5f25 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xcafdcd09 input_register_handler +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb42712d idr_for_each +EXPORT_SYMBOL vmlinux 0xcb4b4c2a nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb69a7e8 of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb7bc48a bit_waitqueue +EXPORT_SYMBOL vmlinux 0xcb801578 _lv1_get_logical_ppe_id +EXPORT_SYMBOL vmlinux 0xcb993878 vcc_release_async +EXPORT_SYMBOL vmlinux 0xcb9ca778 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xcbab2a00 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xcbbc8577 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xcc035869 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen +EXPORT_SYMBOL vmlinux 0xcc0f8d58 br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0xcc2270c9 eth_header_parse +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc607dc9 del_timer_sync +EXPORT_SYMBOL vmlinux 0xcc6cbae5 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccd45ac2 set_device_ro +EXPORT_SYMBOL vmlinux 0xcce9796e alloc_tty_driver +EXPORT_SYMBOL vmlinux 0xccfe6289 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xcd27bf1a _lv1_set_lpm_spr_trigger +EXPORT_SYMBOL vmlinux 0xcd328872 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0xcd533548 skb_over_panic +EXPORT_SYMBOL vmlinux 0xcd6bde84 of_get_next_child +EXPORT_SYMBOL vmlinux 0xcd8999d0 nf_log_register +EXPORT_SYMBOL vmlinux 0xcdc97111 mnt_unpin +EXPORT_SYMBOL vmlinux 0xcdcb7254 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xcddb6fb7 tcp_child_process +EXPORT_SYMBOL vmlinux 0xcdefff4e vfs_rename +EXPORT_SYMBOL vmlinux 0xcdf51d04 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xce0fd5c3 _write_unlock_irq +EXPORT_SYMBOL vmlinux 0xce210a23 sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0xce22e4cc pmu_unregister_sleep_notifier +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce8858aa _lv1_allocate_device_dma_region +EXPORT_SYMBOL vmlinux 0xce97b0e8 blk_plug_device +EXPORT_SYMBOL vmlinux 0xcee36857 proc_root +EXPORT_SYMBOL vmlinux 0xcf6cd00a of_get_pci_address +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfaec373 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xcfaf79ba mempool_alloc +EXPORT_SYMBOL vmlinux 0xcfc61a48 blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0xcfc7a20e d_validate +EXPORT_SYMBOL vmlinux 0xcfdbf268 __serio_register_port +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd075775b sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xd08e204c sync_page_range +EXPORT_SYMBOL vmlinux 0xd0b04bd0 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xd0bfb1b3 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xd0c96340 migrate_page +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0ff600a blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd165ca3f xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0xd16e93fd validate_sp +EXPORT_SYMBOL vmlinux 0xd1bd20d0 flush_dcache_page +EXPORT_SYMBOL vmlinux 0xd1c58677 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xd2021dda tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xd21ac731 set_binfmt +EXPORT_SYMBOL vmlinux 0xd21ae3ee pci_dev_put +EXPORT_SYMBOL vmlinux 0xd2263b37 of_node_get +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd25c4284 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2cc50c9 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xd2ef2638 smu_cmdbuf_abs +EXPORT_SYMBOL vmlinux 0xd2f977c4 genl_register_ops +EXPORT_SYMBOL vmlinux 0xd3192fc2 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xd3245015 input_inject_event +EXPORT_SYMBOL vmlinux 0xd33c713a fb_blank +EXPORT_SYMBOL vmlinux 0xd343907f simple_prepare_write +EXPORT_SYMBOL vmlinux 0xd35d41ff pci_select_bars +EXPORT_SYMBOL vmlinux 0xd362dbb8 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xd3a53bff do_SAK +EXPORT_SYMBOL vmlinux 0xd3badf03 seq_escape +EXPORT_SYMBOL vmlinux 0xd3cd009e tcp_parse_options +EXPORT_SYMBOL vmlinux 0xd3da9acd xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xd3f88f9c tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xd3fc3382 _lv1_remove_repository_node +EXPORT_SYMBOL vmlinux 0xd40314e0 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd41e9f14 bmap +EXPORT_SYMBOL vmlinux 0xd43c2aa6 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xd43cfb0c tr_type_trans +EXPORT_SYMBOL vmlinux 0xd451940d _lv1_get_spe_all_interrupt_statuses +EXPORT_SYMBOL vmlinux 0xd45249cb sockfd_lookup +EXPORT_SYMBOL vmlinux 0xd4675585 __bforget +EXPORT_SYMBOL vmlinux 0xd46eb21b of_dev_get +EXPORT_SYMBOL vmlinux 0xd490aa21 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xd4a56ac0 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xd4dceac9 of_register_driver +EXPORT_SYMBOL vmlinux 0xd520089e tcf_em_register +EXPORT_SYMBOL vmlinux 0xd55237ac subsystem_register +EXPORT_SYMBOL vmlinux 0xd556c0e4 nf_afinfo +EXPORT_SYMBOL vmlinux 0xd55cf2bb nobh_writepage +EXPORT_SYMBOL vmlinux 0xd57414d8 _lv1_set_spe_privilege_state_area_1_register +EXPORT_SYMBOL vmlinux 0xd576d6fa bio_put +EXPORT_SYMBOL vmlinux 0xd5787ce9 lease_modify +EXPORT_SYMBOL vmlinux 0xd57a71e9 mod_timer +EXPORT_SYMBOL vmlinux 0xd5972252 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0xd598905a tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xd59f8ab7 task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd6041e1c _lv1_disconnect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63d0e46 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xd6793251 inode_double_lock +EXPORT_SYMBOL vmlinux 0xd69ebc51 _read_trylock +EXPORT_SYMBOL vmlinux 0xd6cb4039 permission +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6ff6ee4 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xd719aa52 sock_no_accept +EXPORT_SYMBOL vmlinux 0xd73456a9 sock_no_poll +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd7917cd0 _lv1_get_virtual_uart_param +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a3b03f uts_sem +EXPORT_SYMBOL vmlinux 0xd7e0228b _lv1_storage_check_async_status +EXPORT_SYMBOL vmlinux 0xd8362f8e tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xd850a667 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0xd852b35d of_platform_bus_type +EXPORT_SYMBOL vmlinux 0xd8812e6c __bread +EXPORT_SYMBOL vmlinux 0xd89b1e3a scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8c8e179 register_quota_format +EXPORT_SYMBOL vmlinux 0xd8c98779 jiffies_64 +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd91e7c21 dquot_free_space +EXPORT_SYMBOL vmlinux 0xd9336b59 __seq_open_private +EXPORT_SYMBOL vmlinux 0xd93d3e71 set_anon_super +EXPORT_SYMBOL vmlinux 0xd96c8608 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99331ea misc_deregister +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xda127589 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xda2003ff xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert +EXPORT_SYMBOL vmlinux 0xda5a613a blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0xda69330b generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fb885 request_firmware +EXPORT_SYMBOL vmlinux 0xdaa83fc2 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0xdabe5480 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xdac874e1 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xdaf5e149 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xdb09708f __wake_up +EXPORT_SYMBOL vmlinux 0xdbb10c6c vfs_quota_on +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbde653e alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0xdbef5bc7 udp_get_port +EXPORT_SYMBOL vmlinux 0xdc0c77d9 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc46b4cc dev_driver_string +EXPORT_SYMBOL vmlinux 0xdc665713 ida_remove +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcb5671d strlen +EXPORT_SYMBOL vmlinux 0xdcc1ab9a ida_pre_get +EXPORT_SYMBOL vmlinux 0xdcc7bd89 unlock_buffer +EXPORT_SYMBOL vmlinux 0xdcd4c330 of_match_node +EXPORT_SYMBOL vmlinux 0xdce2e56d netlink_dump_start +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd2b8940 unregister_nls +EXPORT_SYMBOL vmlinux 0xdd428350 dst_destroy +EXPORT_SYMBOL vmlinux 0xdd58a62a sysctl_data +EXPORT_SYMBOL vmlinux 0xdd5a37a7 _spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xdd9a9484 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xdde25489 _write_lock +EXPORT_SYMBOL vmlinux 0xde0217b2 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xde5e5352 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde75e251 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9fd1b7 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0xdefecf80 arp_create +EXPORT_SYMBOL vmlinux 0xdf093578 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0xdf0ab735 _lv1_destruct_lpm +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf5ec2db iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf69bf7c vfs_fstat +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa3a8f0 pcibios_setup_new_device +EXPORT_SYMBOL vmlinux 0xdfb0398f matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0xdfe65f48 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xe010a377 _lv1_get_virtual_address_space_id_of_ppe +EXPORT_SYMBOL vmlinux 0xe017d177 tty_mutex +EXPORT_SYMBOL vmlinux 0xe047c26b unlock_new_inode +EXPORT_SYMBOL vmlinux 0xe0a5b1c8 _lv1_map_device_mmio_region +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b663d5 simple_release_fs +EXPORT_SYMBOL vmlinux 0xe0d81b60 dquot_drop +EXPORT_SYMBOL vmlinux 0xe0e84f47 bio_init +EXPORT_SYMBOL vmlinux 0xe0fb4777 pci_request_regions +EXPORT_SYMBOL vmlinux 0xe10963d3 __any_online_cpu +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12f9e8f kobject_del +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19d0add pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xe1a01d94 arp_send +EXPORT_SYMBOL vmlinux 0xe1a610e0 read_cache_page +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1e1c9b0 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xe21ec804 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xe223c9c6 _lv1_create_repository_node +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe28b0d59 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2dcd742 page_symlink +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe3420004 neigh_update +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe3570e9f xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xe36b11e7 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xe3b81cfd cpu_present_map +EXPORT_SYMBOL vmlinux 0xe3ba9a19 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xe4031b80 pci_request_region +EXPORT_SYMBOL vmlinux 0xe439689d skb_dequeue +EXPORT_SYMBOL vmlinux 0xe43c6aff fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xe4541b37 _lv1_set_virtual_uart_param +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4da2ce4 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xe4e510da giveup_fpu +EXPORT_SYMBOL vmlinux 0xe5077a8f mempool_destroy +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51d9cc9 vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0xe521c671 bio_copy_user +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52f0a8b _lv1_query_logical_partition_address_region_info +EXPORT_SYMBOL vmlinux 0xe53ae263 page_readlink +EXPORT_SYMBOL vmlinux 0xe53cdc9a dquot_release +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59c0983 _lv1_gpu_context_attribute +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cc7ef4 atm_dev_deregister +EXPORT_SYMBOL vmlinux 0xe5fc11ae dma_pool_create +EXPORT_SYMBOL vmlinux 0xe60d2f46 _lv1_read_virtual_uart +EXPORT_SYMBOL vmlinux 0xe62752f2 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xe62a83d7 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xe635f890 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0xe63f54c8 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0xe6463c8b init_task +EXPORT_SYMBOL vmlinux 0xe650f747 put_disk +EXPORT_SYMBOL vmlinux 0xe654753b per_cpu__kstat +EXPORT_SYMBOL vmlinux 0xe6813f61 send_sig_info +EXPORT_SYMBOL vmlinux 0xe68d8079 input_release_device +EXPORT_SYMBOL vmlinux 0xe6eb0a80 pci_release_region +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe70a131a ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xe7117211 vfs_readdir +EXPORT_SYMBOL vmlinux 0xe7291bc1 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xe74132d8 pskb_copy +EXPORT_SYMBOL vmlinux 0xe76428b7 init_timer +EXPORT_SYMBOL vmlinux 0xe76fb7e2 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0xe77a3092 __brelse +EXPORT_SYMBOL vmlinux 0xe7c81076 __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0xe7cd99b7 smu_queue_simple +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d13ebf _lv1_map_htab +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7fb59f6 input_register_handle +EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node +EXPORT_SYMBOL vmlinux 0xe8335f99 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe8418e19 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xe85b2c5b tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xe8842abf set_blocksize +EXPORT_SYMBOL vmlinux 0xe8a5aaa1 complete_request_key +EXPORT_SYMBOL vmlinux 0xe8af6fa1 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8df0224 write_cache_pages +EXPORT_SYMBOL vmlinux 0xe8e650b7 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xe8f6bd78 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91810aa bd_release +EXPORT_SYMBOL vmlinux 0xe929543e blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe947cd1b sysctl_pathname +EXPORT_SYMBOL vmlinux 0xe96903e9 _lv1_delete_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe9a784ee bio_endio +EXPORT_SYMBOL vmlinux 0xe9a8a91a sock_no_connect +EXPORT_SYMBOL vmlinux 0xe9abacff tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xe9d1e360 _lv1_enable_logical_spe +EXPORT_SYMBOL vmlinux 0xe9e8631f vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0xe9fa4ffc posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea52037f page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xea5618f7 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xea58a4fb ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xea6962fe blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea71eb74 _lv1_write_virtual_uart +EXPORT_SYMBOL vmlinux 0xeab72bbb sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xeabd4810 kernel_bind +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeb170556 __page_symlink +EXPORT_SYMBOL vmlinux 0xeb1731f8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb264bfc _lv1_end_of_interrupt_ext +EXPORT_SYMBOL vmlinux 0xeb30a47d block_write_full_page +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb4a609e devm_iounmap +EXPORT_SYMBOL vmlinux 0xeb846eb4 matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xeb9636a1 ip_route_input +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xebf3ff9e _lv1_select_virtual_address_space +EXPORT_SYMBOL vmlinux 0xec7b3e02 audit_log_start +EXPORT_SYMBOL vmlinux 0xec8ad319 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xec8e5ace atm_proc_root +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xed0a4cd3 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xed20d99b bio_split +EXPORT_SYMBOL vmlinux 0xed3e4622 vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0xed49ba48 downgrade_write +EXPORT_SYMBOL vmlinux 0xed5fe7eb xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xed8225e5 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xed8ddec7 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xeda953fb __ioremap +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedca07c2 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedd95f90 key_put +EXPORT_SYMBOL vmlinux 0xedef3782 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xee2ac169 cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee5a11eb system_bus_clock +EXPORT_SYMBOL vmlinux 0xee77dd8b dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xef4cf355 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0xef4fc668 kobject_put +EXPORT_SYMBOL vmlinux 0xef514c36 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xef70e5e7 idr_get_new +EXPORT_SYMBOL vmlinux 0xef9183f8 generic_writepages +EXPORT_SYMBOL vmlinux 0xef975443 macio_dev_get +EXPORT_SYMBOL vmlinux 0xef9bfb9d sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xefc7e7f3 vfs_lstat +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xefe06abd audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xefe1ad5a ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0110017 dquot_commit +EXPORT_SYMBOL vmlinux 0xf02f948c xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf07fcfa8 d_delete +EXPORT_SYMBOL vmlinux 0xf08be07b sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xf0ae1ac3 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xf0aeafc5 of_device_uevent +EXPORT_SYMBOL vmlinux 0xf0b46b8e init_buffer +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf12e81c7 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xf13d5e5c node_data +EXPORT_SYMBOL vmlinux 0xf1400e43 reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf1914e13 _lv1_destruct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19b5fcd macio_unregister_driver +EXPORT_SYMBOL vmlinux 0xf1c990bc of_unregister_platform_driver +EXPORT_SYMBOL vmlinux 0xf1dd9fb3 down_read_trylock +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf20cf9e6 try_to_release_page +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21463e1 dma_direct_ops +EXPORT_SYMBOL vmlinux 0xf226f24b idr_pre_get +EXPORT_SYMBOL vmlinux 0xf238b79a nla_put +EXPORT_SYMBOL vmlinux 0xf2476cb0 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xf25ea7c7 node_states +EXPORT_SYMBOL vmlinux 0xf25fd4b3 do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xf26353dc alloc_disk +EXPORT_SYMBOL vmlinux 0xf273ee17 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2c32bd1 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xf302dce9 tcp_close +EXPORT_SYMBOL vmlinux 0xf30882f7 proc_dostring +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf33d3c7d secpath_dup +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf347c20a vfs_symlink +EXPORT_SYMBOL vmlinux 0xf3522c9c vscnprintf +EXPORT_SYMBOL vmlinux 0xf36f381f _lv1_destruct_virtual_address_space +EXPORT_SYMBOL vmlinux 0xf38034d0 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xf3bc1140 ipv4_specific +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3cbb36a pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xf3cf497e dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf426b7dc get_sb_nodev +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf45f5acc set_bh_page +EXPORT_SYMBOL vmlinux 0xf465fcde irq_desc +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4ad5b83 __netif_schedule +EXPORT_SYMBOL vmlinux 0xf4bacbb9 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xf4d5822c blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xf4f005df unregister_key_type +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf522e480 is_bad_inode +EXPORT_SYMBOL vmlinux 0xf52ac386 tcf_register_action +EXPORT_SYMBOL vmlinux 0xf545fdbf __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xf5485390 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0xf59d055c fb_find_mode +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5bf55cd proc_mkdir +EXPORT_SYMBOL vmlinux 0xf5c1f568 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xf5caa851 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf5da7358 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xf5e298b5 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xf60a295a try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xf625101a do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0xf69be488 wait_for_completion +EXPORT_SYMBOL vmlinux 0xf6a9b231 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xf6ada77c tcf_hash_release +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6cb3b25 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xf6dff279 nla_reserve +EXPORT_SYMBOL vmlinux 0xf6e48369 sock_create +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf7002b47 ide_register_hw +EXPORT_SYMBOL vmlinux 0xf7303aad dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf7448f3b vfs_mknod +EXPORT_SYMBOL vmlinux 0xf74b2585 i2c_release_client +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf758f80b remove_suid +EXPORT_SYMBOL vmlinux 0xf77da285 sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7c5892b release_sock +EXPORT_SYMBOL vmlinux 0xf7e205c8 _lv1_release_memory +EXPORT_SYMBOL vmlinux 0xf7f29c6c register_gifconf +EXPORT_SYMBOL vmlinux 0xf8202155 proc_dointvec +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82de600 skb_append +EXPORT_SYMBOL vmlinux 0xf82f0551 vc_resize +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf848775d proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xf8579e35 swap_io_context +EXPORT_SYMBOL vmlinux 0xf86d3bb1 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work +EXPORT_SYMBOL vmlinux 0xf8b018d7 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xf8d01f09 _lv1_gpu_memory_allocate +EXPORT_SYMBOL vmlinux 0xf8fda569 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0xf9062a45 fsync_bdev +EXPORT_SYMBOL vmlinux 0xf90a9a16 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xf94c412a register_sysrq_key +EXPORT_SYMBOL vmlinux 0xf95b5496 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9bae6fa elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xf9e5eb59 do_splice_to +EXPORT_SYMBOL vmlinux 0xf9f9f5aa set_page_dirty +EXPORT_SYMBOL vmlinux 0xfa0bcf4b sk_alloc +EXPORT_SYMBOL vmlinux 0xfa10c150 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0xfa1f9b63 load_nls_default +EXPORT_SYMBOL vmlinux 0xfa31cd3b kfifo_init +EXPORT_SYMBOL vmlinux 0xfa45ced5 pcibios_remove_root_bus +EXPORT_SYMBOL vmlinux 0xfa4b2858 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xfa51140f skb_queue_head +EXPORT_SYMBOL vmlinux 0xfa523c33 balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0xfad86350 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfaea183b __dst_free +EXPORT_SYMBOL vmlinux 0xfaf6daa8 __inet6_hash +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfafe6336 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb0ec922 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xfb2de97d _lv1_gpu_attribute +EXPORT_SYMBOL vmlinux 0xfb305f68 cdev_alloc +EXPORT_SYMBOL vmlinux 0xfb3f3cfc compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb788c9b gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xfb8f1e9e task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xfba74436 con_is_bound +EXPORT_SYMBOL vmlinux 0xfbcbd0d6 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xfbdb40eb security_inode_permission +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc097da1 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xfc146502 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xfc218f2c dev_add_pack +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4a5316 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xfc5b9462 inet_frag_find +EXPORT_SYMBOL vmlinux 0xfc5cbd3c rtas +EXPORT_SYMBOL vmlinux 0xfc6347f4 udplite_prot +EXPORT_SYMBOL vmlinux 0xfc682b4a lock_rename +EXPORT_SYMBOL vmlinux 0xfc909a75 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcc09f6f tty_devnum +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfceb901e _lv1_construct_virtual_address_space +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0bc54a devm_ioremap +EXPORT_SYMBOL vmlinux 0xfd42f6ce sock_map_fd +EXPORT_SYMBOL vmlinux 0xfd59d987 complete_and_exit +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfd9a4379 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbcb5d0 udplite_get_port +EXPORT_SYMBOL vmlinux 0xfdbf2087 kset_unregister +EXPORT_SYMBOL vmlinux 0xfde9cf8b eth_type_trans +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfe18be8d deactivate_super +EXPORT_SYMBOL vmlinux 0xfe1f1a38 add_disk_randomness +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe303907 bd_claim +EXPORT_SYMBOL vmlinux 0xfe355b55 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks +EXPORT_SYMBOL vmlinux 0xfe3e367c f_setown +EXPORT_SYMBOL vmlinux 0xfe5d1035 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5f18d0 ide_execute_command +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe99eaba dcache_dir_close +EXPORT_SYMBOL vmlinux 0xfeb4646c nvram_find_partition +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef8da73 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xff1268f3 seq_puts +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff753ff3 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xff7b5b27 cdev_del +EXPORT_SYMBOL vmlinux 0xff89edfa __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xff8a5008 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffc504db netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffea67e3 filp_close +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x6fac468a spufs_context_fops +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/pmi 0x414e0b89 pmi_unregister_handler +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/pmi 0x504a572a pmi_register_handler +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/pmi 0xdbcf6e61 pmi_send_message +EXPORT_SYMBOL_GPL crypto/ablkcipher 0x14823489 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x57e5a6fc crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xb951d0ce async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1652c7d6 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5a4d27c5 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7653f491 async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xf7bf869f async_xor +EXPORT_SYMBOL_GPL crypto/blkcipher 0x136fd89c blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0x197a3093 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0xa04ac505 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/blkcipher 0xca99fb88 blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0xfc5625da crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/twofish_common 0x1d0ac48c twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x02eee18a class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x03c9acc8 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x04fed6b0 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x07bb140d ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0c63efb5 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0c79de21 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0f153d17 ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0fc1aeeb ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x11f801b6 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x12a7542b sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0x19908624 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1e604c85 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1f30373a ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x238f78ce ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x247d1c12 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0x24d145f8 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x256986b9 ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x26c86398 ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b31c29e ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d17974d ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2e73f471 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2f9d2906 ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x340edd61 ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x37c08404 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x37ec67e5 ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3976fcd7 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3a0c3811 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3ae89545 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4254ba99 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x430ad686 ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x436d63c6 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x44b9b323 ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45f74adf ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x485486a5 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4c8fd074 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4e180818 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4e344a8a __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fc8688f ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x51462507 ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x562a5475 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x56e16b41 ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x57270601 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5956ad35 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x59d5a3f0 ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x62876881 ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x634b41ba ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6524c247 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6a2880dd ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6bfcb42e ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6f74087f ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0x72e8aaf0 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x73ae36fb ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7adaff5b sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7c834428 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fa24507 ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x85ceaf58 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0x871ac997 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8953eb03 ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x89b8bdfb ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8a6aefeb sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8d584f7a sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e7f8311 ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8ed0b8c7 ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0x915ebf13 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x92824827 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9370a31d ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9606fba4 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x98669af9 ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9af21a95 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa1ff125c sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa209533f ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa2b84db3 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4611e2b ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa56092e5 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa5ce20fc ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa7fca23e ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa8916e15 ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa3dcfc6 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xac41fa59 ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xadd1ffb2 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb0728c73 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb1d746ad ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb3ed0ee9 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb4719540 ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbc6c14cc ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc06640c9 ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc2d13556 sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3989547 ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc5c984a4 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc6b9ea01 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc7054838 ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc84ea04a ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc9d61a03 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcce2fac7 ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcf135366 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd28d4a5d ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd41ba907 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd466a888 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5fd5acd ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd8895db3 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd8ae3125 ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdd642ca2 ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe147408d ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe20ff4d8 ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xeb935961 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0xedf61dcd ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0xee7a0c18 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0xefe282ed ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf07beb47 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf17763ee sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3e8c0fe ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf4986da8 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf5a167e3 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf70a8f97 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf891f6b4 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8ceb5ea sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfce880e1 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfee133f5 ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xff0c6801 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0xff5fa8b9 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x73ce69fd sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x4d93ebf6 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd5a57191 agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0a019d23 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2616631a tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x40f111e4 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x448ccb1e tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x568cf1d2 tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5ad3cb1a tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6ac77540 tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x70e4d3f1 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7445ae78 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7c8efb08 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x846bbdf1 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x84957c51 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x85875c80 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x98f03fbb tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9f84d53f tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9fb5fe21 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb8d47226 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc227bc22 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xca990fb8 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf3fce85f tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf641500e tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0932d041 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0d2ba108 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0e6a66dd edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0e876043 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x19ebaf7d edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1bff9d11 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1ef63877 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1f364a7a edac_device_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x25124ef7 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3abd81ed edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x488005ff edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5f8cd1c6 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x68091f1b edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6d418300 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x899c95ba edac_pci_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8a257e05 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8ba1036a edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x96521cd9 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9c7d575c edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9cfff5cd edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaa2798ef edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaa91b33b edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcfce9b85 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xed8e6773 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf477c4e4 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfd110009 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19349eb1 hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2edf8283 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2f9ffeb4 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ec32437 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x760fb822 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb7b9f29e hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd31ee232 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdeab97b6 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe3b0b408 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe467ed41 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xeb493081 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf1a40fef hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xff3770f5 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3bb25936 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xac78a90e hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xf4b1151b hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x0ec82391 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x6e6f0b91 led_classdev_suspend +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x9f62836d led_classdev_resume +EXPORT_SYMBOL_GPL drivers/leds/led-class 0x9fc2d5cf led_classdev_register +EXPORT_SYMBOL_GPL drivers/leds/led-class 0xaf0d0820 led_classdev_unregister +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x041ab13c wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x04eeaeaa wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0b8def6b wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x17173ee1 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x2f4440fd wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x532eb797 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x847c65c6 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x9981a78f wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd82eaf3e wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf7dfabd1 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0x9808f147 wf_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xb8ed5b2c wf_cpu_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xcd9a18ef wf_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xceda69f1 wf_cpu_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_smu_sat 0xe05851d5 smu_sat_get_sdb_partition +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x0f27c687 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x10fa8a03 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x3f314df9 dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x6719da4e dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x7ac4e324 dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x9934d22a dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xa6d92cbf dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe9b11863 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x134218aa dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x1e118a04 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x353c2483 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9689f0ff dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xbe69bff7 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd49a3736 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x0842b660 sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xea11f5b1 md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xeca84bc1 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf9113aed md_allow_write +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5209111b ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x59c65f89 ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbc7dde28 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x28a6635a saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2f1fe8e3 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x474b3671 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x57a04a1d saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x76c547bf saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9cc325ba saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb843af30 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd3a1b14c saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd6dbdc69 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3632947 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3bf93d6 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x10f8df52 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1c43ecad saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x70aaca98 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7a7db21d saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7de52ae2 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb772e3f2 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfa4947a1 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x46c89e5c ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x52832039 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x61a22c40 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbf1c35f4 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc9060a43 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc9ed078b ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xd76a3c9a ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x9c8bdad5 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x34b95292 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xa41dcf03 get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x8309a9b0 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x77f7f28d saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x09d15312 tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0xca9fbdd7 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0x0b1aec66 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xab551421 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x4fe60592 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xc548df0d tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0x3c6fe7e5 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x42b63b3a v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc336ba3d v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x118e5d7d videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1262b0e9 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x13961df3 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18cd4229 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x19fde61c videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1d6bdfed videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2810f73b videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5ffe2660 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6a7c8ba7 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6c45723a videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x75ad406b videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x77c37106 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x79b2b78b videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x876dfacc videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8fad6fdd videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9e555829 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa7a42c79 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb1c29a40 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb9d4eacf videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc9442686 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd86accf1 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xedaa23a2 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfb61b4d9 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0cba68db videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1e7ad55c videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1fe927fd videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x2e371e46 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x477f8066 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4b1c5bbe videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x63b1a3bd videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8a52dbfd videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x95c1b810 videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xaba3b717 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xac33c6f0 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc2c30f76 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xebaf6039 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfbb78da9 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x0f8acd6b videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x89ee3f17 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8be16156 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x011b4581 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x097f97c7 sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x579535b9 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8c021f53 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe0af650b sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfe95cb41 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x13fbf647 sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x147a7bca sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x220638ab sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x264ea500 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2783729d sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3de4b4c1 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5b414f65 sdio_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6592262d sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7770424d sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x978024d4 sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x984cd7ac sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa5c0612c sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb028b6e5 sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc3ba3449 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd798069c sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdc2ff0cf sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe7e99305 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe83e686e sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe8ddf616 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf148cad9 sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf6176887 sdio_writeb +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x04b7f8e7 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd301464e cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xfbdabace cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xbd5cadc2 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xc8f83be2 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xc4b544e7 DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x4fdcf876 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xaf2d71cf DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x08f4bab7 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0b47518b register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x11b24e86 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x14ca35cb deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1c753d48 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x25b4eb44 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32cf8ad5 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x36779b5a mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x44109a9c put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x45445020 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4a4f78a0 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6a9ac631 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x81a8ba9e mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9aca3427 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd10e743c register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf82a4dfa get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x18a6eb6c register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x38ee1d5f del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8de42d2b add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x9bf81d63 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x01341363 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x037fb048 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x440f11ee nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7dd0b972 nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xfb15367c nand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x57d8bf82 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xd51c5668 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x07358d14 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x151243e2 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x34c03e3f ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa9b23b1d ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0555487 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1c5e719 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xca705e0f ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd05a903b ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd4ebb4b7 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe594c05a ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0159d996 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x02d6c258 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b913097 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0d466e5b mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29701c64 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2deb49b5 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e23cc60 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e57d2e8 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ff71169 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x40433fd6 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x40a24e97 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x518348a1 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x51d1157f mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5465ddd7 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x55555742 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x585f25ff mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x647ce76f mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65168d84 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x664331c1 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6d37ef04 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6e69f33f mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x731262a1 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7cd41995 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7de1fbeb mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x99ee974b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xadd34709 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb05b56ad mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb50632ce mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb54f6bb0 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb8a6bfb3 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf03b3ed mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc0b3f676 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc132249d mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc45ae658 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc5bec522 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xca5262d1 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcf957896 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe5577160 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf1e6d17c mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf5a9cf0b mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1173a0ce usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe60fc015 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0e965ad4 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x25981843 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2833b2fc usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2b6b587c usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x390fbe3d usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a7b5a4e usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5e23d816 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7ff40533 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x93ac2611 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x94d0537a usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd432327e usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdf887ec6 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf0821b40 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4397c78 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfeae07db usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0057e249 libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x07968ea3 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x443fdf08 libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x52331297 libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6fb8b80f libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7aa224ba libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa021614f libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xac1d46ee libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xae9a095c libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe922f972 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf7bf9332 libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x19990979 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x4a257c2a p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xafed7c2b p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xc0890bd6 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xd4f53e8b p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x006d577b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x04729092 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18deeba4 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2031e7bc rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2861a9bb rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4d467acf rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x52d7333f rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x574ce4fe rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5dfbe4cd rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69bab714 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ea07e4e rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ed4f51d rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90a62828 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa644d000 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6f9f8d8 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6ff5f22 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb51f9172 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdb8b3bd0 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf08012f rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe3e9f1ea rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5b44e165 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x645eadc5 rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x64d8c99d rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x74a341f4 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8d509bc1 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa956215f rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xaf98d8ea rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc04c875b rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd114bb10 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0718248f rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x252eb60c rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2d32b5d5 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2e72751f rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3142f18a rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x43b796df rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4cb0c074 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x66220abf rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x700596bc rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb0b848ab rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd38320eb rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x399c638b power_supply_class +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x8fce81fc power_supply_unregister +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xc8b0542a power_supply_changed +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xe896b30e power_supply_register +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xefdfa116 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x8d0971ea ps3stor_send_command +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x9215ef1a ps3stor_teardown +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xabf57361 ps3stor_read_write_sectors +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xbd98f5aa ps3stor_setup +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x03e5fc4e rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x07eba28d rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x1649978c rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x225bf2d1 rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x26975093 rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x657637c1 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x6589739d rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x67306d80 rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x800d8f61 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x8345ef7d rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x87d14042 rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xb54ae126 rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xd6f72dde rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xde5d773f rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c065cda iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10ee366a iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x158a0ae1 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f77e8c0 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32b8fd2c iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32e042b7 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3dd9dd77 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42a4c4b3 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4eff8b3c iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6baa3097 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6be19544 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6cf599bf iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7dbd9ad0 iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x94ca349c iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d58f780 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab1cc2c6 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaf5a8999 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb61fc741 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8b9034c iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb1c655e iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1e31b76 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2efa114 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5b8dd32 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4162166 class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec9064a9 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefe24ea8 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4db90ad iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x02477c44 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0b3a8335 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x17744a94 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x376cf794 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f821649 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x48cfe719 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55145253 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x59f81b46 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x600b2f1a sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6632e663 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x67980426 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x68fea482 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7e857dce sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x856a5015 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x90d159b4 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x923a34bb sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6d15e6c __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9241194 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1566fdb sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbc72c098 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3fac1148 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4e73fde1 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6f0fb443 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9bd7d0b2 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9ff0db69 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe2ec880f srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x178312f6 scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x28803fbe scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x2bbf3b50 scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x31a76d47 scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4b12ad02 __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7790d3cc scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7a23a758 scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xae073cce sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xb7747d5e sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xbaa97718 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xbed6f9b9 scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xcd33683b scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xf44e4273 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xfb63ee10 scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x22f2c232 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2ea06b6b scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x489dcd58 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x60a2f06b scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6d7cdcd8 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x72618e36 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x847038e5 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd11fc1eb scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd5586e0a scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x26be5ada iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3e065584 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x446def60 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69f0db38 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d824a4c iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6db1e483 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c8072b0 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb776aeb3 iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc88eeccc iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xca93a362 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcac05a97 iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdcb7daff iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeb6845a1 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf230579d iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf2bc0722 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb0bdf02 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x4a5faf9e srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x54478fdf srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6c53a0bb srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x99d5ed8c srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xca35593b srp_release_transport +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x178e1cd4 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x19decda8 pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x2e95c0a1 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xec168877 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1ff31a97 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2c45a2e8 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x46266a1a spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4dff2471 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x80630ec2 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd0e20a8a spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/uio/uio 0x331c413e uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x9053e9d6 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x986f2644 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x50dbb584 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xb8debdb8 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1a170d07 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1b912660 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x2313f5b2 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x30d4fde6 usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x318f6efc usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x37cc89b7 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x40785b93 usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x441350b8 usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x4494f4c4 usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x45660a1c usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6313b0b3 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x69a7cdca usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6aee179c usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x7edd3238 usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9c4ec09c usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9ca38ec1 usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9cdce019 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9e70a3a3 usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x9e8a5cdf usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xa4014ef8 usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xb61ce090 usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd578bb95 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd6c2db98 usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe108431a usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe75d1407 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4bb8f865 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6909662d usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6cddc23e usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8c9619c5 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x97958838 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9af0ec8e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb66d2ff9 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfaa92ecc usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xff06c756 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x381db492 phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0f657bf7 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x33ba462e usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x34e808f6 usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5d060703 usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x683bde3e usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x818375b8 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb84dac21 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe5dafc83 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xab3472b1 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xc02d6b90 sis_free_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6c74863a w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2a6849 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb1f042ea w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe461563e w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfc3c18c4 w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x613e3217 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xf8766557 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x1148465f fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x22f974e3 fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x3eb64243 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x4d0317ea fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0x60e9f034 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x627fef0e fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0x6298c69d fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x925581e1 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x93571944 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0x9d284483 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0xa7628f3b fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0xb165078d fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0xbfdb4bb4 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xc34a477d fat_notify_change +EXPORT_SYMBOL_GPL fs/fat/fat 0xd508a811 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xdff1d94e fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0xfc7528df fat_flush_inodes +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x116a1567 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x141071cd gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x94ef4d74 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xac693c2b gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xcc4a8a7c gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x73f4af4c o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7862771e o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81ff60e9 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9f56114d o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe29a3225 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xeb1976b1 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf4b3179c o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1e8aa1e4 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x248a827d dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x545e3e2c dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x69b23733 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbdda7df3 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfd5edded dlmlock +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xcf1463f8 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x1e8aedbb bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x07940e80 dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x15ab49a3 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x1ccbe514 dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x5bc49b7c dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x7024d227 dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x93b8fc34 dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xa5cd2a07 dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xc191d15a dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xcb9f46c1 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xea3c61c3 dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xedff58a5 dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xfe7582a0 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a507ea7 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e8ee78c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1ef6180e dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x218a3ae1 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2193aca6 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x272cc47e dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b094bb5 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x30eaa8f5 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x33546e2e dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3464f5d5 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x36c7fc1b inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x37952cba dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x41501624 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x46a3fe59 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ba4a14d compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f865113 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0x506d607f dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x51a61ea9 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x52ea49a0 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56d62f0c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62112208 dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x655f413d ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68f97047 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x69ef686b dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x69f81f6a ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x735ffa89 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75ee2c23 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c49d0f8 dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7dd2f6ae dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fc41602 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ab31e7b ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bed41d5 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c533bc9 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f103665 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x93c3f558 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x94af751b dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d5103d7 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa1561b3d ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa6129831 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa651476c dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa6c01ed4 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac9b055a dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2d36a76 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf2ccbb0 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5d9b9fa dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd6245605 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd95d5ac3 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdbae2f84 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdfb5c351 dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf15c742c dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfca5bc46 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x69b9b9f5 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7186600c dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7cb0df86 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9802b55f dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd68eec75 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd909f434 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x62018d2a ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x8a660811 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xab6dea76 ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x023678c6 ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x111bddd3 alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x15a48e87 free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x36562f0d ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3a6582d7 ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x3d554a1f ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4baab4ec ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6238c38f ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6ea0b75b ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x7b7077c3 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x87b5a1ac ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8fce6394 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x91f3e1cd ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa3cd31d7 ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa9d91339 ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xca93f962 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe5348a90 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe56e1def ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe64353a9 ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xe858892e ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf9d7ba39 ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x22e76e51 nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5beb401c nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5d4c63ad nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x64425f97 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x649bd156 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2c4957f3 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5295255c tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xce37d6a2 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd1e5126d tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe478e592 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x05218c5a ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1c74fbfa ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x228b1e00 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3269f489 inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3a964fea ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x463457bf inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6af6d79c ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7405c000 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x895a89b9 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa450dd46 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd368b8f9 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd4ebed9b ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe37d8c09 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe64a653f inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf0e9838f ipv6_find_tlv +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0055a583 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0300a0fd nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cecf6f8 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1303644f nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15e39f63 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x172ff0ee nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26a2b10c __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x271f3c1a nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b369951 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c192ebc __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30d591bb nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x338378fa nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34c70b6f nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bd05dd6 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ee890db nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x435de509 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49685a85 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49dc4a28 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a0c2b6b nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a9efe46 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c0c3871 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5602ea4a print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5cdf197e nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d8d4e97 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67cee0e1 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71e73056 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7997d6c8 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b5e3807 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x83ebd0e1 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a45c5d6 nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9bf2adb4 nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6d8163e nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb3966948 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4956a49 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4a400b5 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd226a9e9 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4dbf570 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdbe9290e nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5edd0a7 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9df4b8c nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8beb5ae nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc14ebce nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7faa696c nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x6a219b1f nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0cf9d8e2 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x105611db nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x12488904 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x31778883 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x35fb6b52 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x40d6709b set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8485468e set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x99ea6995 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc01acfd6 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x6adc09e8 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x076924db nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1f64167d nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xcda7f74e nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf61cec08 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1107ca77 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1212de68 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1bf2bc2f nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb3ecedc6 ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xa47792da nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7843e57d nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x825179ec nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc7dd7e47 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe536dbbc nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0777c8cc xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a50b661 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1eca92e7 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2f32d4da xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40f9547a xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x582c63ac xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5e967668 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x67cc5cb5 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x818fc733 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x83fcc2f5 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x94abb45a xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a8b18c3 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ea0a3af xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa9728f4c xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb689f95f xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe53911a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4dd433cd rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xb0d15067 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1988390a xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e0a8f64 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20837932 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x255c293f xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a09be93 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2dd69db0 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fba4af2 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3680cb7c xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e321230 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57897128 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c13e5e csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x671c3ca9 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6816c550 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ae6584d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bb55103 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccc192b xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85b6c955 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8de00d9e rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9655070a xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97e82f1c rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97ffbb08 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa144509b svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0b441b8 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc8eea6b rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc706aee xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe775b361 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9c525d7 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3eee73 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcf6947d xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff3c244d xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x1b5aeb5c aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x38549812 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x6aed57a2 aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x7d737c0b ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8ec2238b aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xa77f1f0d aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xae37e8e7 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xdf73ca71 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf04cad50 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf95af952 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x3e50d58b soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x44ca60a4 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x74315b01 soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xcf23083f soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xd242890e soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xed5636c3 soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/oss/ac97_codec 0x22efb6ff ac97_tune_hardware +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0daf056f snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1747a56e snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17df0a3c snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ce6c402 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ecf99ee snd_soc_dapm_connect_input +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f15ffb0 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20d488bf snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24bba36f snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33158a1e snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3cb6e78d snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41076750 snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c2e4c7a snd_soc_dapm_sync_endpoints +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6530e654 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a0415d7 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x844b0aa4 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e994e9d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92a5ce35 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9946c580 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cb89b96 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2360938 snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa5c9edbd snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6410ce5 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf120ba6 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf1c5670 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd793ceef snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde51f821 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde69f0a2 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7637ac3 snd_soc_dapm_set_endpoint +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8f72b32 snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1f525a7 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf50ede8d snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x00db95a6 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x00f6b282 pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0109bd79 pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x01235f3f platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x012880ce cbe_write_ctr +EXPORT_SYMBOL_GPL vmlinux 0x01596231 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x02c2e004 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02dfd068 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x033d2c4a get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0444588c xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0458c024 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x046efbc5 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x0471df9b pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x04940e7c inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x04ea9b82 ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0x05087d76 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x051b67d2 ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05594392 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x063f25c3 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066cf502 __percpu_populate_mask +EXPORT_SYMBOL_GPL vmlinux 0x06a05270 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x074bfb9d pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x07829d11 ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x07a89360 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c94fbb sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x07fca73f eeh_add_device_tree_late +EXPORT_SYMBOL_GPL vmlinux 0x07fe2875 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x08235e77 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x08956955 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x08aac815 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09771e66 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x09db0114 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0ace48a1 cbe_disable_pm_interrupts +EXPORT_SYMBOL_GPL vmlinux 0x0b5ce0c6 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x0b72ebeb __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x0bde3d68 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0d987c91 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x0d9a0f84 cbe_spu_info +EXPORT_SYMBOL_GPL vmlinux 0x0f7bce66 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x0fc41899 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x10154838 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x10a346fc inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x110969d3 cbe_get_cpu_mic_tm_regs +EXPORT_SYMBOL_GPL vmlinux 0x112fe957 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x11784554 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1243bdde crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x125b2898 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x12dd2918 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x1333d8b3 ps3av_video_mode2res +EXPORT_SYMBOL_GPL vmlinux 0x135b5aa1 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13ea4ac2 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x13f29026 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x147ae6c8 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14e352fb inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x167dc3ca inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x1682cd76 of_node_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x16ce6f75 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x17900b75 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x179fa61b audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0x17b8ef02 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x17e497c8 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x180c1809 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x183012f1 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18ac27f5 inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x18dca24a get_device +EXPORT_SYMBOL_GPL vmlinux 0x191309a5 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x19669805 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0x1a84eabd skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x1acd523a bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1b1cdc22 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x1b3066d2 ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x1b8d49ef tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1b94aec4 pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bbfe422 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x1bc5d738 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x1c4c30f0 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1c74c394 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x1cd80341 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x1ceebb1a srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1d1492e2 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d7a6af4 sysfs_remove_device_from_node +EXPORT_SYMBOL_GPL vmlinux 0x1e18eba3 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x1e39ffb7 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ec4fa95 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x1ee882aa scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe970cb ps3_io_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x20181fc5 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x205a4aae pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0x20b15992 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2135b127 stop_machine_run +EXPORT_SYMBOL_GPL vmlinux 0x219a5ec4 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x21fce217 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x22112fe5 spu_invalidate_slbs +EXPORT_SYMBOL_GPL vmlinux 0x2213cbbf klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x227a55d9 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x23113d98 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0x2332df02 set_cpus_allowed +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23955287 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x240c9155 macio_find +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x24a3f11e tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x250858d0 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x25ac85c6 ps3_vuart_read_async +EXPORT_SYMBOL_GPL vmlinux 0x25b17541 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x25ba4770 sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x25c14e99 get_driver +EXPORT_SYMBOL_GPL vmlinux 0x25c15ecd bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x25c464b1 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x26058af4 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x264ad42c led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x26562e3a snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x268b3f84 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x26e62d61 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x26eb8982 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x271f0599 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x275e4e2d ktime_get +EXPORT_SYMBOL_GPL vmlinux 0x280a8d03 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x288e2557 user_match +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28dee08c debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x29a4a287 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x29b8c687 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2be1bac6 spu_save +EXPORT_SYMBOL_GPL vmlinux 0x2c4541a0 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x2c674c5d klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2d12a1bd sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x2d526818 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2dcc5493 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x2dd17826 sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ddbf36a ide_setting_mtx +EXPORT_SYMBOL_GPL vmlinux 0x2e710931 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x2e7abfda percpu_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2e7e27f2 pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0x2f1438fd sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f1cf754 ps3_vuart_cancel_async +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f66b3bb attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x2fd2e067 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0x3025184c srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x30a4c250 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x30c83463 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x30e6b83c crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x3205ccbd led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x32530065 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x32b812f7 spu_fini_csa +EXPORT_SYMBOL_GPL vmlinux 0x3309ea64 ps3av_audio_mute +EXPORT_SYMBOL_GPL vmlinux 0x3314e1ac add_memory +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x33670f8f device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x336bc950 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x3372f198 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x337c9860 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x33917e3f eeh_dn_check_failure +EXPORT_SYMBOL_GPL vmlinux 0x3397d34c klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x33b3cc53 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x34a32860 pcibios_claim_one_bus +EXPORT_SYMBOL_GPL vmlinux 0x34f9f574 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x3514dea2 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3546e19c pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x360e82b3 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x36215e6d klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x36892f0a pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x36a26a2f ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0x37886a25 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x383a5a1c inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x38e709d5 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x38f5b0ec crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x39407e45 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x39559203 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x3a42d6e6 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x3a68d737 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3a982b67 eeh_add_device_tree_early +EXPORT_SYMBOL_GPL vmlinux 0x3adafecb ide_setup_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x3af94c8f ps3_vuart_write +EXPORT_SYMBOL_GPL vmlinux 0x3afca773 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc ps3_vuart_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x3b3c5100 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3b6eba3b dcr_resource_len +EXPORT_SYMBOL_GPL vmlinux 0x3bb4e5ae debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3beeac08 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3c1e79ae user_describe +EXPORT_SYMBOL_GPL vmlinux 0x3c672aac tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3c8b8bfa platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3ca44965 spu_init_channels +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d9c7b74 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x3dccbe67 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3dfaef00 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x3e7893b5 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x3f7e249f pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4013f09b kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x411c0b9b k_handler +EXPORT_SYMBOL_GPL vmlinux 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL vmlinux 0x4204d207 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x422c8b49 cpu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x43329d4a cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x433d199d blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4353eaf4 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x438f663b cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4394d124 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x439ada02 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x43c380fb device_register +EXPORT_SYMBOL_GPL vmlinux 0x43f02f00 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x4411156b i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x450a41ec driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459985d9 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x45cc7cf6 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x45dcb1ca relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x4621d8ae relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x46a0b0fa percpu_populate +EXPORT_SYMBOL_GPL vmlinux 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL vmlinux 0x46d9f955 ps3_irq_plug_setup +EXPORT_SYMBOL_GPL vmlinux 0x471d8a02 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0x473c8444 ps3_mmio_region_init +EXPORT_SYMBOL_GPL vmlinux 0x473dee33 nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x4741db42 ps3av_set_audio_mode +EXPORT_SYMBOL_GPL vmlinux 0x47cd560b register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x48688d00 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x48a41c4a sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x48ad5b9f cbe_read_ctr +EXPORT_SYMBOL_GPL vmlinux 0x48b5ad37 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x48cd659c devres_get +EXPORT_SYMBOL_GPL vmlinux 0x48eb356d pcibios_add_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x48eb99a8 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49dc2ab8 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x4a05d86b uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x4a133fc6 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x4b06d903 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b281b01 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x4b2af74c platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x4b803e77 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4bb9d0c4 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c820264 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4cbdf4b3 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x4d41592c blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x4d491e67 sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4dbc0b7c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x4df87eb0 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x4e6513a0 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x4e66bd39 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x4e8c72f2 mmput +EXPORT_SYMBOL_GPL vmlinux 0x4e8fb43f __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4f4a1ffc platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x4f5695a7 fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x4f8af48b hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x510a3803 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x514560b3 class_create +EXPORT_SYMBOL_GPL vmlinux 0x515c8191 cbe_get_and_clear_pm_interrupts +EXPORT_SYMBOL_GPL vmlinux 0x5261cf4b vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x52726332 fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x52a0d7f2 ide_get_best_pio_mode +EXPORT_SYMBOL_GPL vmlinux 0x52b76078 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x52d914d4 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x531b8352 cbe_get_hw_thread_id +EXPORT_SYMBOL_GPL vmlinux 0x531c2ecb get_slice_psize +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x541b6294 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x543e4c11 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x548af76c crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x54e910fb ps3_mmio_region_create +EXPORT_SYMBOL_GPL vmlinux 0x551a958e inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x55576a39 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x55edb3ee spu_restore +EXPORT_SYMBOL_GPL vmlinux 0x562ab988 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5757ca22 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x576cdcf7 cbe_get_pmd_regs +EXPORT_SYMBOL_GPL vmlinux 0x57844e10 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x578f45a2 spu_associate_mm +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57ac266f ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x585b4f76 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x588a4fd6 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58c9048d cbe_disable_pm +EXPORT_SYMBOL_GPL vmlinux 0x59863d26 ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x59ea0fd2 spu_switch_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a240cec do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL vmlinux 0x5a3c231e bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x5a73612b skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0x5b0b2f5a ps3av_register_flip_ctl +EXPORT_SYMBOL_GPL vmlinux 0x5b3603ff debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x5b808b6e ps3_close_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c67d0f7 __ide_error +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf0f1 percpu_free +EXPORT_SYMBOL_GPL vmlinux 0x5d19c1f2 ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5d5a26a0 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x5d6e96a5 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e363a5c isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x5e769986 ps3_os_area_get_av_multi_out +EXPORT_SYMBOL_GPL vmlinux 0x5e976200 exit_fs +EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5fab1df9 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x604e37cb page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x61806a8c tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x618f9755 spu_devnode +EXPORT_SYMBOL_GPL vmlinux 0x61c5ca1a rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x625b7919 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0x62efd1ad user_update +EXPORT_SYMBOL_GPL vmlinux 0x638539ba __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x63968926 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x63ad3fe9 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x63cf0619 inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x63f03608 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x64eb8550 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6726ea2a firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x68ba846b driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x68eb555e proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0x69513d86 ps3_system_bus_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x69bbb916 pmac_i2c_detach_adapter +EXPORT_SYMBOL_GPL vmlinux 0x6a28e467 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a3c9049 dcr_resource_start +EXPORT_SYMBOL_GPL vmlinux 0x6abb8e0f lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x6b084242 input_class +EXPORT_SYMBOL_GPL vmlinux 0x6b45c32e pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0x6b933a3f ide_setup_dma +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6d91879a ps3_sys_manager_register_ops +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6e2ed7ef platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6e4d4b52 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6e83acbe inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0x6f0e5103 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x6f221f32 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x6fffdfe6 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x70316bbb inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x716fd9b7 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71954214 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x71d37677 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72cbcfa7 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0x732921bb attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x734362e9 spu_init_csa +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x742cde1b crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x74a632d9 __percpu_depopulate_mask +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x7514c7ab tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x752b7669 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x755f2aec ide_destroy_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x75cdee50 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76472ad8 pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x768e09aa devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x775d74cc find_pid +EXPORT_SYMBOL_GPL vmlinux 0x77b895fc queue_work +EXPORT_SYMBOL_GPL vmlinux 0x780d2f65 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x786f6b65 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x78f8b4bf platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x79049fdd tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x792af45e pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x795310ac pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0x7992b4d0 spu_get_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x79d7afc6 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79dace3c irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7a0422c7 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x7a183270 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x7a6b16ae ps3av_get_refresh_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a7af493 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x7aa2822f alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x7aa707b5 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af9a8c7 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x7b05cb1e cbe_cpu_to_node +EXPORT_SYMBOL_GPL vmlinux 0x7b156de9 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b521da4 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x7bcf089d tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x7bd1b6f0 cpu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c3d7e19 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c6b844b class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7caf3ba8 ps3_open_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x7cc68524 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x7ce255f5 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x7d801de1 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7dfaad1a generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x7ee34623 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7f52c522 ps3av_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7f6eea72 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x7fbdbd30 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fcf82ed crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x7fdb598c put_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x80590a2c crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x805a6ec9 fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0x80b9ae42 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x80c6c01a pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x811afadf rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x81961f96 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81cd1d29 spufs_handle_class1 +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x82ccec20 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8364dcd5 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x83c5ad78 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x83eb3b11 ps3_system_bus_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL vmlinux 0x84bd49b7 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x84f18964 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x863a6fae device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x866c4380 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8692d1c7 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x86b11d41 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x86f0f459 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x871a036c dcr_unmap +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87c66271 device_move +EXPORT_SYMBOL_GPL vmlinux 0x889d24e0 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x88ad9295 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x89d1381c queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x8a64efdd tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x8a817130 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x8af0ff56 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x8afbbf52 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0x8afce014 disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x8b022cd1 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x8bab9e62 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8bdc3cfa pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0x8bdccf35 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x8bf4e3dd __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x8cce6797 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8d2d2bde relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x8dd3508e spu_priv1_ops +EXPORT_SYMBOL_GPL vmlinux 0x8e086f33 cbe_get_ctr_size +EXPORT_SYMBOL_GPL vmlinux 0x8e4f6714 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x8e62933f device_create +EXPORT_SYMBOL_GPL vmlinux 0x8e65aa30 smu_get_ofdev +EXPORT_SYMBOL_GPL vmlinux 0x8ece1a1f relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x8f2553c1 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x8f441905 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8f5d7638 spu_remove_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8ff66f8f input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x90673390 spu_switch_event_register +EXPORT_SYMBOL_GPL vmlinux 0x9077d7dc class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x909bae19 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x919e4700 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x91df73fa crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x926c52b1 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92da6dbd fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x92f2d044 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x930316c4 slice_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x932491bd macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x9333593a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x93966800 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x9396c64f spu_sys_callback +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93f8f091 ps3_vuart_clear_rx_bytes +EXPORT_SYMBOL_GPL vmlinux 0x942ab2dd init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x965afe8a bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9688e7b9 pmac_i2c_attach_adapter +EXPORT_SYMBOL_GPL vmlinux 0x96cdc291 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x974590ad srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x976c61c3 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x97c2d375 ps3_vuart_read +EXPORT_SYMBOL_GPL vmlinux 0x97d9c66a nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x98597220 register_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0x986ecf18 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98c9edf6 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x993066a3 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x9a1126ee device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x9ac617d3 cbe_set_ctr_size +EXPORT_SYMBOL_GPL vmlinux 0x9b033fc3 sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9c1e935c sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9c27d007 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x9c6810c1 eeh_remove_bus_device +EXPORT_SYMBOL_GPL vmlinux 0x9ca30705 audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d0b4875 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x9d44140c hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x9d978676 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x9e3d435a pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0x9e5d9bd9 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x9e80df53 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x9f03e5e9 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x9f07cd33 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fde8695 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa064ddfb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xa07a52bc pcibios_fixup_new_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0xa276135e simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0xa317312f attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xa45b0079 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xa51d4ea9 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa521a309 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa54617d2 pcibios_remove_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0xa57e083a bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa5df729c inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0xa60255cb pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0xa632b74a pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa6351b86 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xa664436a sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa6e0ac2d ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0xa78b0988 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xa81a816c debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa82f08e4 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xa93fd61d input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa96b9446 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d1ef87 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0xaa22cfa4 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xaa3f7ef7 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xaa965dd3 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xaaf3f88e vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xab2b243d ps3_irq_plug_destroy +EXPORT_SYMBOL_GPL vmlinux 0xab7a568b tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xabc94158 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xac328333 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xac5195c4 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xac8a8a9c blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xacc2633c spu_switch_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaccfbfd2 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad3b3c0f transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xad53c148 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xadaca9b9 dcr_map +EXPORT_SYMBOL_GPL vmlinux 0xae882f76 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaed3ec9a class_register +EXPORT_SYMBOL_GPL vmlinux 0xaefa3ed2 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xaf6a1e23 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xb0970d4b cbe_write_phys_ctr +EXPORT_SYMBOL_GPL vmlinux 0xb14038ca inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xb18d49df securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xb1f7ef5b find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb2442bd9 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb2883f30 register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xb28e2385 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xb32520e1 pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0xb369f869 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xb37f5946 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xb3af944d rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb45bfc72 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xb492f51d led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xb4add47f pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xb4e680aa pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xb5167e64 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52849bd sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb55362bd srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xb55ae7c1 pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0xb5a58575 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb60e384d cbe_write_pm +EXPORT_SYMBOL_GPL vmlinux 0xb79a532a ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xb7ba8196 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb81e5792 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0xb83ec876 pcibios_find_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0xb84b1aae ps3_event_receive_port_setup +EXPORT_SYMBOL_GPL vmlinux 0xb8903bd1 class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xb963f387 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb96dfee1 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb9c51f00 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xba03e4e9 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xba813bd6 lock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xbaeed944 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0xbafa6c33 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xbb4a852b relay_close +EXPORT_SYMBOL_GPL vmlinux 0xbb7a8080 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xbbb01505 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xbc1b39ff tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xbc3f2751 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xbca1ef51 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xbcdd279d debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xbceaff3a iic_get_irq_host +EXPORT_SYMBOL_GPL vmlinux 0xbcedea3a apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xbd3d838a cbe_write_pm07_control +EXPORT_SYMBOL_GPL vmlinux 0xbd4025be inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xbeca70b9 pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xbef9267b pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xc02cc8dc sysfs_add_device_to_node +EXPORT_SYMBOL_GPL vmlinux 0xc12148cc devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc13eb6bf ide_dma_intr +EXPORT_SYMBOL_GPL vmlinux 0xc162caa6 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xc16c9047 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xc23849d4 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xc2bdba2d inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xc2ecd7a6 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xc34d5091 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3936423 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xc3d431b0 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xc3dcdcb1 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xc4470b0f __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xc49d54eb scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0xc5308574 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xc66c2311 ps3_vuart_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc691a707 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xc6ac97da devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc717b30a fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xc7289c8c crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xc7977bf7 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xc797997d ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0xc7ce1839 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xc861efd2 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8eebbb1 ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xca00f9c9 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xca225f44 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xca47eb7d nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xca4ea518 ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0xca739f95 cbe_read_trace_buffer +EXPORT_SYMBOL_GPL vmlinux 0xcac833a7 cbe_read_pm07_control +EXPORT_SYMBOL_GPL vmlinux 0xcade7219 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0xcb1c46fa crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcb920355 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xcbfae36f driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xccfe80aa __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0xcd092ee6 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcd282239 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xcd669c1f cbe_node_to_cpu +EXPORT_SYMBOL_GPL vmlinux 0xcd66fce9 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcd80b17d ide_find_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0xcdaed647 cbe_read_phys_ctr +EXPORT_SYMBOL_GPL vmlinux 0xce60429b unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xce7c1236 ps3_vuart_port_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xcedaace4 spu_set_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0xcf5a4c15 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xcf82895c kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0xcfb1833d ide_find_port +EXPORT_SYMBOL_GPL vmlinux 0xcfb96aa6 ps3_system_bus_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd0177bf5 spu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xd01fc97a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd026332a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xd084ae3a ps3_vuart_port_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0a666bc of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0xd0a7ebe4 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16caf83 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xd1a6b6aa simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xd1c26481 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xd1d8adad atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd20a3d4c simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xd2d60404 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xd3c6c99c klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xd3e31efb put_device +EXPORT_SYMBOL_GPL vmlinux 0xd47bb5a6 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xd4902a98 spu_irq_class_0_bottom +EXPORT_SYMBOL_GPL vmlinux 0xd5432604 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd54b2847 cbe_sync_irq +EXPORT_SYMBOL_GPL vmlinux 0xd5ec857f iic_get_target_id +EXPORT_SYMBOL_GPL vmlinux 0xd5fd21d2 init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xd61f8db6 ps3_get_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xd679069d hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xd6b53e5e namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xd6c8345a unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd702f438 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0xd79ac072 class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xd8a7e106 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xd8c921a8 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0xd8f569dc user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xd9138664 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xd9281ba4 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xd96f0aca default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xd9990dd6 cbe_enable_pm_interrupts +EXPORT_SYMBOL_GPL vmlinux 0xd9a17374 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xd9cacd43 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xda571690 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xda8c212e invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xdb0ac13b ps3_compare_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xdbb6cbd9 unlock_cpu_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xdbe9465a debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xdc021311 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xdc07f8fe atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xdc1c59ee scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xdc5031d7 cbe_read_pm +EXPORT_SYMBOL_GPL vmlinux 0xdc6490ef cbe_enable_pm +EXPORT_SYMBOL_GPL vmlinux 0xdc73a4df spufs_dma_callback +EXPORT_SYMBOL_GPL vmlinux 0xdcac4f1b tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xdcdcb5c0 ide_wait_not_busy +EXPORT_SYMBOL_GPL vmlinux 0xdd043eea ps3av_get_auto_mode +EXPORT_SYMBOL_GPL vmlinux 0xdd706f7b kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xdd74db97 ps3_free_mmio_region +EXPORT_SYMBOL_GPL vmlinux 0xdd9cd523 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xddcb02ac ide_setup_pci_device +EXPORT_SYMBOL_GPL vmlinux 0xde2655a1 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0xde28ed62 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xde9f16ed anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdee4cc73 ide_end_dequeued_request +EXPORT_SYMBOL_GPL vmlinux 0xdf28b2a8 spu_management_ops +EXPORT_SYMBOL_GPL vmlinux 0xdfc051ad platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xdfc7891a cpu_add_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xe011f817 ps3flash_bounce_buffer +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe0c5a4ab inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xe14d82ed platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xe167181a tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xe19a70cf unregister_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0xe19fc092 ps3fb_videomemory +EXPORT_SYMBOL_GPL vmlinux 0xe1ef06e0 device_add +EXPORT_SYMBOL_GPL vmlinux 0xe1fb30ea of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xe28b367c vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xe3edeba2 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0xe494ac9a blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe5079ca8 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe545c8f2 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xe56843ce class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe619936f led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe61ef758 cbe_get_cpu_pmd_regs +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe6b2bea8 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0xe6e86752 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe7afb1ea register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe7ebb5dc anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe8a1b211 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xe91ebb0c audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe95bda87 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea5a853c devres_add +EXPORT_SYMBOL_GPL vmlinux 0xeb49ac78 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeb86ab66 device_del +EXPORT_SYMBOL_GPL vmlinux 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL vmlinux 0xecff3fa1 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0xed2eeb28 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xed630375 spu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xedb48aff inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xede74815 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xee3d4a68 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xee7112a2 task_nice +EXPORT_SYMBOL_GPL vmlinux 0xee8b053c cpu_remove_sysdev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xeee06168 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xeef0338f __percpu_alloc_mask +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1e3da82 __ide_abort +EXPORT_SYMBOL_GPL vmlinux 0xf242b45a debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xf2a04393 ps3av_set_video_mode +EXPORT_SYMBOL_GPL vmlinux 0xf2aa13dc cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xf329902b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf36ba41c rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xf4378fa3 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf4488540 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xf469c705 ps3_io_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf49820cb sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xf4abc6ee debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xf6c13c6e class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf6efe558 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xf794d618 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xf7aa9f09 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xf820cc8e __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf8529d02 spu_add_sysdev_attr +EXPORT_SYMBOL_GPL vmlinux 0xf874073c pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf8dd7eaa simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xf9112ecd input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf9280413 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xf95bb431 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf9601eab flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xf976dc58 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9e7c373 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xfa2612fa srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xfa773914 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xfaa47272 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xfb0c715d ps3av_get_scanmode +EXPORT_SYMBOL_GPL vmlinux 0xfb3ce80a class_device_add +EXPORT_SYMBOL_GPL vmlinux 0xfb6d56f2 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xfb725c63 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xfb8dcff5 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xfbd231ff crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc100b2c ide_build_sglist +EXPORT_SYMBOL_GPL vmlinux 0xfc2e9cda generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xfc59e33c map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfca0fad1 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xfd0e7668 class_device_create +EXPORT_SYMBOL_GPL vmlinux 0xfd2e5cab spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xfd625744 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfdfcde11 user_read +EXPORT_SYMBOL_GPL vmlinux 0xfe1d9b96 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xfe5b47c1 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xff0dacff ps3av_video_mute +EXPORT_SYMBOL_GPL vmlinux 0xffc3953e bd_release_from_disk +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x3b8bb295 usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x93f023f7 usb_match_id +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0xc3c9845d usb_register_driver +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/abi/2.6.24-24.56/powerpc/powerpc +++ linux-2.6.24/debian/abi/2.6.24-24.56/powerpc/powerpc @@ -0,0 +1,6971 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x13a37fc5 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x9f414aa6 uPD98402_init +EXPORT_SYMBOL drivers/block/loop 0xa4932190 loop_register_transfer +EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL drivers/block/paride/paride 0x21677ac4 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x328e9749 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x32e36549 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x3791a0ac pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x382137b8 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x43c57395 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x7c19f461 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x86615c9d pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x90d68355 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x917bf9d8 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xc4c1c6f7 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xe3d84d2c paride_register +EXPORT_SYMBOL drivers/cdrom/cdrom 0x1c36f900 cdrom_mode_select +EXPORT_SYMBOL drivers/cdrom/cdrom 0x1c5dc733 cdrom_get_last_written +EXPORT_SYMBOL drivers/cdrom/cdrom 0x280a1f28 register_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x31f6aab6 cdrom_media_changed +EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL drivers/cdrom/cdrom 0x545db47d unregister_cdrom +EXPORT_SYMBOL drivers/cdrom/cdrom 0x6ddb6b6c cdrom_mode_sense +EXPORT_SYMBOL drivers/cdrom/cdrom 0x9bb90143 cdrom_get_media_event +EXPORT_SYMBOL drivers/cdrom/cdrom 0x9e9d5f74 cdrom_ioctl +EXPORT_SYMBOL drivers/cdrom/cdrom 0xa8c3545f cdrom_number_of_slots +EXPORT_SYMBOL drivers/cdrom/cdrom 0xbb0ae35b cdrom_open +EXPORT_SYMBOL drivers/cdrom/cdrom 0xc8265668 cdrom_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0x0d77f876 agp_generic_type_to_mask_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x18994a51 agp3_generic_tlbflush +EXPORT_SYMBOL drivers/char/agp/agpgart 0x1e2f5175 agp_generic_destroy_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2489ebb1 agp_alloc_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x271bb465 agp_create_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2f1ca450 agp_generic_alloc_user +EXPORT_SYMBOL drivers/char/agp/agpgart 0x2fc3a552 agp_generic_free_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3c760c7d agp_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x3fdb6c35 agp_generic_alloc_page +EXPORT_SYMBOL drivers/char/agp/agpgart 0x46cc0712 agp_generic_insert_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL drivers/char/agp/agpgart 0x4f94377e agp_unbind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x554f644c agp_generic_alloc_by_type +EXPORT_SYMBOL drivers/char/agp/agpgart 0x6460520c agp_generic_free_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off +EXPORT_SYMBOL drivers/char/agp/agpgart 0x77fd5d88 agp_collect_device_status +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7829aca2 agp_put_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x78b79858 get_agp_version +EXPORT_SYMBOL drivers/char/agp/agpgart 0x7e55db0a agp_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0x803edcc3 agp_find_bridge +EXPORT_SYMBOL drivers/char/agp/agpgart 0x80667072 agp_generic_remove_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x81597f76 agp_alloc_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0x8341a3d6 agp_bind_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x871f6b89 agp_free_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0x977267f8 agp_generic_mask_memory +EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL drivers/char/agp/agpgart 0xaf5b2d44 agp_backend_acquire +EXPORT_SYMBOL drivers/char/agp/agpgart 0xb7026fc2 agp_generic_create_gatt_table +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc3b7ee74 agp_generic_enable +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL drivers/char/agp/agpgart 0xd227471a agp_free_page_array +EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe1cb86cb agp_backend_release +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe550b093 agp_copy_info +EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6d5c272 agp_device_command +EXPORT_SYMBOL drivers/char/agp/agpgart 0xea3e8389 agp_allocate_memory +EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status +EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event +EXPORT_SYMBOL drivers/char/drm/drm 0x0836695c drm_sman_takedown +EXPORT_SYMBOL drivers/char/drm/drm 0x08c69c2f drm_agp_unbind +EXPORT_SYMBOL drivers/char/drm/drm 0x111bd36a drm_init +EXPORT_SYMBOL drivers/char/drm/drm 0x11543d5c drm_pci_free +EXPORT_SYMBOL drivers/char/drm/drm 0x11d8b121 drm_agp_bind +EXPORT_SYMBOL drivers/char/drm/drm 0x1f4381d1 drm_open +EXPORT_SYMBOL drivers/char/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/char/drm/drm 0x21451ac4 drm_sman_owner_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2916bf63 drm_sman_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0x2cd83958 drm_idlelock_take +EXPORT_SYMBOL drivers/char/drm/drm 0x2eb2f903 drm_sman_free_key +EXPORT_SYMBOL drivers/char/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/char/drm/drm 0x3093c5c1 drm_addbufs_agp +EXPORT_SYMBOL drivers/char/drm/drm 0x40b4f62a drm_agp_free +EXPORT_SYMBOL drivers/char/drm/drm 0x45a8510f drm_exit +EXPORT_SYMBOL drivers/char/drm/drm 0x49791095 drm_core_get_reg_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0x49b186ab drm_agp_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x4d74e2f4 drm_get_resource_start +EXPORT_SYMBOL drivers/char/drm/drm 0x55f060ee drm_sman_set_range +EXPORT_SYMBOL drivers/char/drm/drm 0x56ce7ead drm_agp_acquire +EXPORT_SYMBOL drivers/char/drm/drm 0x575a8516 drm_agp_info +EXPORT_SYMBOL drivers/char/drm/drm 0x5f69a10f drm_locked_tasklet +EXPORT_SYMBOL drivers/char/drm/drm 0x5fe9728f drm_mmap +EXPORT_SYMBOL drivers/char/drm/drm 0x64c92e54 drm_get_resource_len +EXPORT_SYMBOL drivers/char/drm/drm 0x74cb9a61 drm_fasync +EXPORT_SYMBOL drivers/char/drm/drm 0x762dce46 drm_get_drawable_info +EXPORT_SYMBOL drivers/char/drm/drm 0x77378f01 drm_irq_uninstall +EXPORT_SYMBOL drivers/char/drm/drm 0x84bcea15 drm_pci_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0x93e2c1fc drm_agp_enable +EXPORT_SYMBOL drivers/char/drm/drm 0x991ff83f drm_core_get_map_ofs +EXPORT_SYMBOL drivers/char/drm/drm 0xab321c58 drm_addbufs_pci +EXPORT_SYMBOL drivers/char/drm/drm 0xaf29788e drm_sman_init +EXPORT_SYMBOL drivers/char/drm/drm 0xb1f77377 drm_core_ioremap +EXPORT_SYMBOL drivers/char/drm/drm 0xbf237c72 drm_vbl_send_signals +EXPORT_SYMBOL drivers/char/drm/drm 0xbf9d3afa drm_rmmap +EXPORT_SYMBOL drivers/char/drm/drm 0xc37a3099 drm_idlelock_release +EXPORT_SYMBOL drivers/char/drm/drm 0xc4a5b3de drm_addmap +EXPORT_SYMBOL drivers/char/drm/drm 0xc7cf025e drm_release +EXPORT_SYMBOL drivers/char/drm/drm 0xc945d36d drm_ati_pcigart_init +EXPORT_SYMBOL drivers/char/drm/drm 0xcad5f25d drm_core_ioremapfree +EXPORT_SYMBOL drivers/char/drm/drm 0xd201a022 drm_ioctl +EXPORT_SYMBOL drivers/char/drm/drm 0xd3028e75 drm_sman_set_manager +EXPORT_SYMBOL drivers/char/drm/drm 0xd5924f3a drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/char/drm/drm 0xddfece01 drm_poll +EXPORT_SYMBOL drivers/char/drm/drm 0xe4e9c467 drm_sg_alloc +EXPORT_SYMBOL drivers/char/drm/drm 0xe919dd5c drm_sman_owner_clean +EXPORT_SYMBOL drivers/char/drm/drm 0xeb91bdb1 drm_i_have_hw_lock +EXPORT_SYMBOL drivers/char/drm/drm 0xf0b05408 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/char/drm/drm 0xfb783bff drm_getsarea +EXPORT_SYMBOL drivers/char/drm/drm 0xfd6ffd44 drm_agp_release +EXPORT_SYMBOL drivers/char/drm/drm 0xfdfbad19 drm_sman_alloc +EXPORT_SYMBOL drivers/char/generic_serial 0x30cd921b gs_set_termios +EXPORT_SYMBOL drivers/char/generic_serial 0x44ff5da4 gs_put_char +EXPORT_SYMBOL drivers/char/generic_serial 0x4fa753b9 gs_close +EXPORT_SYMBOL drivers/char/generic_serial 0x6745506d gs_start +EXPORT_SYMBOL drivers/char/generic_serial 0x6b97d864 gs_setserial +EXPORT_SYMBOL drivers/char/generic_serial 0x71516aaf gs_chars_in_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x8434f920 gs_write +EXPORT_SYMBOL drivers/char/generic_serial 0x86dfb691 gs_flush_buffer +EXPORT_SYMBOL drivers/char/generic_serial 0x9888ae6f gs_hangup +EXPORT_SYMBOL drivers/char/generic_serial 0xa234cc1b gs_write_room +EXPORT_SYMBOL drivers/char/generic_serial 0xa40b3d0e gs_getserial +EXPORT_SYMBOL drivers/char/generic_serial 0xd43c635e gs_init_port +EXPORT_SYMBOL drivers/char/generic_serial 0xe9d4b9fc gs_stop +EXPORT_SYMBOL drivers/char/generic_serial 0xed31fa8f gs_block_til_ready +EXPORT_SYMBOL drivers/char/generic_serial 0xf21d3a8b gs_flush_chars +EXPORT_SYMBOL drivers/char/generic_serial 0xf2e66730 gs_got_break +EXPORT_SYMBOL drivers/char/ip2/ip2main 0x5f735f69 ip2_loadmain +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0b173a96 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x23d45c88 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x476f2d98 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4d4a8b17 ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6041d10c ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6295fa8e ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8d207a9a ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x93d88b61 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x95926cff ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x966fbae4 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9ca41986 ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa0c5ab51 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa797625b ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb56a0910 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb5a6ef30 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbc06edb3 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc388028e ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc85404d4 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcdcd9afc ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xce81e947 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xda9d65f3 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6fdc024 ipmi_user_set_run_to_completion +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfaa0d886 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcfb8ea8 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/cpufreq/cpufreq_conservative 0xd111084d cpufreq_gov_conservative +EXPORT_SYMBOL drivers/cpufreq/cpufreq_ondemand 0xda691902 cpufreq_gov_ondemand +EXPORT_SYMBOL drivers/cpufreq/cpufreq_userspace 0xc45fdfb8 cpufreq_gov_userspace +EXPORT_SYMBOL drivers/edac/edac_core 0x34aa99fc edac_mc_handle_fbd_ce +EXPORT_SYMBOL drivers/edac/edac_core 0x62d388eb edac_mc_handle_fbd_ue +EXPORT_SYMBOL drivers/edac/edac_core 0x7bc7ba36 edac_mc_find +EXPORT_SYMBOL drivers/hid/usbhid/usbhid 0xce646366 usbhid_modify_dquirk +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x9b1cb11b i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x05ae324a i2c_pcf_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xd2113e3c amd756_smbus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0610c19c hpsb_set_packet_complete_task +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e9300c0 hpsb_iso_n_ready +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19ab6335 hpsb_unregister_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1c0f2373 hpsb_set_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x205abb07 hpsb_iso_xmit_sync +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2115e7cb hpsb_iso_recv_listen_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x22469bf6 hpsb_set_hostinfo_key +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x245956b7 hpsb_destroy_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24978a94 hpsb_add_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2752b9a8 csr1212_get_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ecd877f __hpsb_register_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2f0769ce hpsb_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3385c147 hpsb_iso_recv_flush +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33f84643 hpsb_bus_reset +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37a736c9 csr1212_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3a88e38b hpsb_iso_stop +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x40148f2f dma_region_mmap +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x41f7f48b hpsb_create_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x425dd59c hpsb_send_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x43e71639 hpsb_free_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x483cb611 hpsb_packet_success +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x499c9582 hpsb_register_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4c67b6b4 hpsb_selfid_complete +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4ce19516 hpsb_iso_xmit_queue_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5d2e5297 hpsb_unregister_protocol +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x61045173 hpsb_make_writepacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6c5a6ed5 hpsb_resume_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x74fbe1f9 hpsb_get_hostinfo_bykey +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x783e7167 hpsb_update_config_rom_image +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f8b72bf hpsb_node_write +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b5ac110 hpsb_get_hostinfo +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8c68c51d hpsb_iso_shutdown +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x94f1a953 hpsb_iso_xmit_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x955438ee hpsb_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x99e9eded hpsb_get_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9aaabd49 hpsb_iso_wake +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ab40f4b hpsb_free_tlabel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b71b086 hpsb_iso_recv_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9f608853 hpsb_make_lockpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9fff1f4e hpsb_iso_recv_start +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa407ceeb hpsb_read +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa83e65f9 hpsb_alloc_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa9bd1174 hpsb_make_readpacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa396e2f hpsb_reset_bus +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaaf6d747 hpsb_alloc_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xac91301b hpsb_remove_host +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xadd40d23 hpsb_make_phypacket +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xadd528a1 hpsb_iso_recv_release_packets +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xae167ec0 hpsb_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7e156cc hpsb_iso_recv_unlisten_channel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc79d210e hpsb_selfid_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd4da64f8 hpsb_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd77ca755 hpsb_update_config_rom +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd7972376 hpsb_iso_packet_sent +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd81547c7 hpsb_allocate_and_register_addrspace +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe4f4af7f hpsb_unregister_highlevel +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe5da82a2 hpsb_protocol_class +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe68c8c58 hpsb_iso_packet_received +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe6e67e37 hpsb_make_lock64packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeca59f94 hpsb_iso_xmit_init +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xee78d962 hpsb_node_fill_packet +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfa323a84 hpsb_iso_recv_set_channel_mask +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfb122fea hpsb_read_cycle_timer +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str +EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfd4bb540 hpsb_make_streampacket +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x594ac367 ohci1394_stop_context +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x7d822a04 ohci1394_register_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet +EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb8f15e73 ohci1394_unregister_iso_tasklet +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x03aa9b95 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x0d3cfd51 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc42508f2 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd2caec8d rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd7fa0561 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xef54e022 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0057dce1 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x10d93459 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3439206a ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5d7e9181 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x691061e3 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6cdd088a ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8195cc9f ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x967d4d58 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa8ec1d8b ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb8e9c978 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc81d833b ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd777bc9d ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf188e175 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf7fcb54b ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfcb0e307 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfe317aaf ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076dcf4 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x018a8eb2 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027f9f76 mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0298f440 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a6ffbd3 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18364d8a ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18fcb663 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2034b963 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27fd744e ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a64ae9d ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e7cac3f ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3172c1e2 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b0decc ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43749d8e ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4772def1 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49013c81 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4df02fe4 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e1596ca ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x504acb3d ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54807426 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a103e0c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5eaa4808 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f81d23d ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6391dd32 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6602fbc8 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f306277 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7354d671 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76a5d088 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77a0c666 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b7d2aaa ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7be19b02 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x867f9d3e ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87f05b26 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bac4230 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c017edb ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ca531ae ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d3b874d ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96a8b138 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9842fe79 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d4fcb56 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d616f8c ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6d14517 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7fa2c20 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa973b579 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaacd2a23 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac0c87c9 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaca3232c ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae9b7265 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb03c5a1d ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0a9628b ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4302fc1 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb49ce02f ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0dbad85 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc37f3e81 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8bb6f33 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8c9c36b ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce9ac4b1 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd17ba9d1 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd61e9c94 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8bb3e0b ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9c856e5 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea53cc28 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf40c1979 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf764d616 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8c46470 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfcfa31fb ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x24cb345b ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x422975c8 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b1b0c65 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x58f55913 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x86645fbd ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa1bbe8c5 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa1c58ce9 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb1cdf64b ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcc002e82 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd478ada6 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd8623384 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfe44576b ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x02e25808 ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2d098724 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x55f852a2 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6b3bb35b ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x99e6c2fc ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9d31b89b ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9e6851a2 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xcf49ac74 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xefe1c1d3 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x040f07ae iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1797f59c iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4650ad88 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5618ecab iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6bffaecb iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7693bd38 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd8d39bd9 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe21c1b51 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x139141ee rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21bdc129 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3e0cf177 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x52803a63 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x63c1ff41 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x74e0b43f rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x799260f0 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0d11c11 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5c92c89 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb88d07c6 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb984235d rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc2f1cc08 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdb23ca6a rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe1a6437f rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe4ff5563 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe5c433b2 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf2903069 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf9bae7d3 rdma_create_id +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0ce47036 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x14bcfc3c gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x297f7d29 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3cfeda7d gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x822ec011 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x838ed284 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcde54015 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe0c4c6e0 gameport_rescan +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf234b304 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf5b09978 gameport_start_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x5fede22c input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x80c0e6d2 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xea4995e1 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xf15b2987 input_unregister_polled_device +EXPORT_SYMBOL drivers/md/dm-mirror 0x3b45c6ee dm_create_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0x5959a15b dm_register_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mirror 0x6c196629 dm_destroy_dirty_log +EXPORT_SYMBOL drivers/md/dm-mirror 0xa991d94f dm_unregister_dirty_log_type +EXPORT_SYMBOL drivers/md/dm-mod 0x23101108 dm_put_device +EXPORT_SYMBOL drivers/md/dm-mod 0x2c4173f0 dm_io +EXPORT_SYMBOL drivers/md/dm-mod 0x32fee6fc dm_table_unplug_all +EXPORT_SYMBOL drivers/md/dm-mod 0x35ca914e dm_io_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0x59dbed4d dm_table_put +EXPORT_SYMBOL drivers/md/dm-mod 0x6a4ed38f dm_table_event +EXPORT_SYMBOL drivers/md/dm-mod 0x784e7bf5 dm_table_get +EXPORT_SYMBOL drivers/md/dm-mod 0x85401b90 dm_register_target +EXPORT_SYMBOL drivers/md/dm-mod 0x9bdfce82 kcopyd_client_destroy +EXPORT_SYMBOL drivers/md/dm-mod 0xa4fb4ad0 dm_table_get_md +EXPORT_SYMBOL drivers/md/dm-mod 0xaacf1ed3 dm_io_client_resize +EXPORT_SYMBOL drivers/md/dm-mod 0xacf0fffe dm_get_device +EXPORT_SYMBOL drivers/md/dm-mod 0xb0ea65e8 dm_table_get_mode +EXPORT_SYMBOL drivers/md/dm-mod 0xc6fbf477 dm_table_get_size +EXPORT_SYMBOL drivers/md/dm-mod 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL drivers/md/dm-mod 0xcf62a33a dm_unregister_target +EXPORT_SYMBOL drivers/md/dm-mod 0xd42f3dc7 dm_get_mapinfo +EXPORT_SYMBOL drivers/md/dm-mod 0xdbd73a31 kcopyd_client_create +EXPORT_SYMBOL drivers/md/dm-mod 0xe9fdfc6e kcopyd_copy +EXPORT_SYMBOL drivers/md/dm-mod 0xee479421 dm_io_client_create +EXPORT_SYMBOL drivers/md/md-mod 0x15976849 md_unregister_thread +EXPORT_SYMBOL drivers/md/md-mod 0x15a49e27 md_write_end +EXPORT_SYMBOL drivers/md/md-mod 0x1e308f40 bitmap_startwrite +EXPORT_SYMBOL drivers/md/md-mod 0x1e3f59bd unregister_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x4f098b75 bitmap_end_sync +EXPORT_SYMBOL drivers/md/md-mod 0x54ec59d9 md_error +EXPORT_SYMBOL drivers/md/md-mod 0x587f0e45 register_md_personality +EXPORT_SYMBOL drivers/md/md-mod 0x591f10eb bitmap_endwrite +EXPORT_SYMBOL drivers/md/md-mod 0x640658a8 bitmap_start_sync +EXPORT_SYMBOL drivers/md/md-mod 0x8b4ca809 md_check_recovery +EXPORT_SYMBOL drivers/md/md-mod 0x9de61e91 bitmap_close_sync +EXPORT_SYMBOL drivers/md/md-mod 0xc929ef3a md_register_thread +EXPORT_SYMBOL drivers/md/md-mod 0xcccbb070 md_write_start +EXPORT_SYMBOL drivers/md/md-mod 0xeec1ff08 md_wakeup_thread +EXPORT_SYMBOL drivers/md/md-mod 0xf1d7c6e6 bitmap_unplug +EXPORT_SYMBOL drivers/md/md-mod 0xf4dedc4b md_done_sync +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x11eaccaa flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x122381a3 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x22f1136d flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2911acda flexcop_dma_config +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x393c2a51 flexcop_reset_block_300 +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3b88cb0b flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3deec555 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x40ff3407 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7409c874 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x757157cb flexcop_dma_free +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x86d266dc flexcop_device_initialize +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8f19a74b flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9327bdab flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb0d3b9e5 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb8276b7d flexcop_device_kfree +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd205a038 flexcop_device_exit +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe7b43cb9 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xea7050a4 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeb1ad90d flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf1cd5bf7 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2161f52a bt878_device_control +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x71667775 bt878_start +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x9d6972f7 bt878_stop +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xaf079642 bt878 +EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x36defde7 dst_gpio_inb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x449b4de0 rdc_8820_reset +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4f4b4b29 rdc_reset_state +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5d53e6a4 dst_attach +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6f39387c write_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x89972ac8 dst_gpio_outb +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb70e741a dst_comm_init +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbdf78948 read_dst +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd80beb0a dst_command +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xec2a0dae dst_pio_enable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf0343a07 dst_error_recovery +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf219fa33 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xfa1ce9e2 dst_error_bailout +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xff63f0e6 dst_pio_disable +EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xae6be459 dst_ca_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00cbdc37 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x01154545 dvb_ringbuffer_pkt_dispose +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x13ee8494 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x14c136db dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19071753 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x222489fe dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x233c721e dvb_net_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2475c6bb dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2d751811 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x325a4972 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x32b7d6b6 dvb_ringbuffer_pkt_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x36c8ea1f dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x386634f4 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x432db8d3 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x462a42f0 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x464ab0ca dvb_net_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53b4deab dvb_ringbuffer_pkt_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5d536943 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x666d7e83 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66e7edcf dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6a0e799a dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6b00c62c dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8577ba47 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b49a23f timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x920bbd2e dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x97390488 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x97f65e5f dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9c2ae1bb dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa7bbeb4b dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa839d65a dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xad3ade74 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc8bf1185 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca05c817 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcc41083f dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcc651ad6 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe8074fa5 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe9f0e3f6 dvb_ringbuffer_pkt_next +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeed03b98 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xff1f2349 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3346b3f5 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4fa21708 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5a3664f6 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x5b8981e6 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa9f234c8 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf29e2bae dvb_usb_device_init +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf3fa42bd dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x2edc4728 af9005_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x30e304f3 af9005_rc_decode +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xd3383957 af9005_rc_keys_size +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x22249461 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x345be5bd dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x548252e9 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x64dcfa27 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7b8bfbb5 dibusb_rc_query +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7c82a2ed dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fc3ef4 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbd74c592 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd4d3dddc dibusb_rc_keys +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd611d8dd dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdfceb34e dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf73b8e09 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xa7af0985 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xf4cc9711 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x2c2ae9f8 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xb0758da3 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x6dceafcf cx24123_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x29632806 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x56231ded dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x988e403e dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x51f9e439 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x76a403bb dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x7f55c4b8 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xb05eb96e dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc23acce6 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf8ae7ee6 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x6846770c dib7000m_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x88b1b080 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xaf15a6e3 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0771ca89 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x51a4ece5 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa269846c dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc9d0fde0 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe2ac78b2 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe4614eb7 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3ddb3967 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x6f0a484d dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x87877385 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x3a093542 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x109729c3 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xdcfdcfad l64781_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x71b09433 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x514cc45e lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2060 0x18827f74 mt2060_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2131 0x1e4968c6 mt2131_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt2266 0xe94477fd mt2266_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xa0b75118 vp310_mt312_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x06c1a970 mt352_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x0014f01b nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xbfdbc82a nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xa976b42e or51132_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x10b5b7e5 or51211_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/qt1010 0x0ec88e1d qt1010_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x5e055634 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xfa1070aa s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x911ad901 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x181aa94b sp887x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x4fba946a stv0297_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xe9ab0760 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xc298796e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xdb9d9a96 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x0afabe32 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x717fbfcb tda10046_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xa6dee32c tda10086_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x217aaeec tda8083_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x3ae64fc8 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tda827x 0x15b96e4d tda827x_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xa63cb095 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x711cddde ves1820_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x6956a920 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x3b0ae913 zl10353_attach +EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x2b3f6aad ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x8558f50d ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xae9ff4c7 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0336ecae bttv_get_pcidev +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x4462a2fb bttv_sub_register +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x77953a45 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6200c4c9 btcx_calc_skips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xadb6270c btcx_riscmem_free +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/video/btcx-risc 0xdfa5fc7f btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/video/cpia 0x6c093d87 cpia_unregister_camera +EXPORT_SYMBOL drivers/media/video/cpia 0x8112ed98 cpia_register_camera +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3559ba71 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0x38a3c9e2 cx2341x_log_status +EXPORT_SYMBOL drivers/media/video/cx2341x 0x3ab1bc1e cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx2341x 0x8fdbede1 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/video/cx2341x 0xaeab9aa1 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/video/cx2341x 0xff729bea cx2341x_update +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0x337802f1 cx23885_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx23885/cx23885 0xa36823b9 cx23885_boards +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x77048732 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xec50b462 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1febe00d cx8800_ctrl_query +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2cd2a181 cx88_set_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3b7bc481 cx88_video_mux +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x9e6e26e3 cx88_get_control +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xaf985dd4 cx88_set_freq +EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xf482576e cx88_enum_input +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4b0fa73b cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5f41127d cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x71db63b9 cx8802_get_device +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x751b8adc cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa5b60d62 cx8802_fini_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa8f752da cx8802_get_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf5620850 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf686c099 cx8802_init_common +EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfb8dd479 cx8802_register_driver +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0e907f8c cx88_core_put +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x18634a76 cx88_ir_stop +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1a6123f5 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x342a4fdb cx88_vdev_init +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x361cb1b9 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x624f3e90 cx88_ir_start +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x629613a7 cx88_set_scale +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x82a6ec75 cx88_set_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8726e756 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9070fba0 cx88_free_buffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9447f843 cx88_call_i2c_clients +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x98e39d76 cx88_get_stereo +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x995be912 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaab97855 cx88_core_get +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaae790b7 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xac890c6a cx88_wakeup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xad217dc1 cx88_core_irq +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaec55ef8 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb612afd1 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb7f5e374 cx88_reset +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xce373093 cx88_shutdown +EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd5c702b8 cx88_newstation +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2ec96f52 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x62a3a0db ivtv_udma_setup +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x70196ffb ivtv_cards_active +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x72f2b87c ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x76fe165a ivtv_vapi_result +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x95346251 ivtv_vapi +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc9907f69 ivtv_cards +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcb197983 ivtv_api +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcdb5ed0f ivtv_cards_lock +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd6e2fd05 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xda903712 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xde744724 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe5ff0a51 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xfa7bf196 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0502c579 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0ba7b704 saa7134_ts_register +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1627a4b2 saa7134_i2c_call_clients +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x222ac6f9 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x27fa7096 saa7134_common_ioctl +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2842adde saa_dsp_writel +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7fc8fcb3 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x93c0dace saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x98af79c1 saa7134_boards +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa8c858f1 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb54c7810 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbfe52ea2 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdd7c0d3e saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xf577d206 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/video/tveeprom 0xb02591e7 tveeprom_read +EXPORT_SYMBOL drivers/media/video/tveeprom 0xc580af9c tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x13ea5db6 usbvideo_DeinterlaceFrame +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x26af5b87 RingQueue_WakeUpInterruptible +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x3af4d8d5 usbvideo_Deregister +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4d5057c5 usbvideo_AllocateDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x83cf34c2 usbvideo_TestPattern +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x840bf214 usbvideo_RegisterVideoDevice +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa8caef21 RingQueue_Enqueue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xb3f01b51 RingQueue_Dequeue +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xbc4a757d RingQueue_Flush +EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xeeedc1a0 usbvideo_register +EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x972099ac v4l_compat_translate_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1c427ecb v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2de2b633 v4l2_prio_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x2e9a955d v4l2_prio_close +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57abfbd8 v4l2_chip_match_host +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x57b02a20 v4l2_type_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5ebefe4b v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x5fef1b4a v4l2_ctrl_query_fill_std +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x7dd32dfa v4l2_chip_ident_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0x942892ab v4l2_prio_open +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa021ef50 v4l2_field_names +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xba021b3a v4l2_chip_match_i2c_client +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc369097d v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd464e760 v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe1f45082 v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe330bce9 v4l2_prio_init +EXPORT_SYMBOL drivers/media/video/v4l2-common 0xed275428 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x84ca71ca videobuf_dvb_unregister +EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xad449422 videobuf_dvb_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x03d0a7ec videocodec_detach +EXPORT_SYMBOL drivers/media/video/videocodec 0x0c5cce1d videocodec_register +EXPORT_SYMBOL drivers/media/video/videocodec 0x75aebb88 videocodec_attach +EXPORT_SYMBOL drivers/media/video/videocodec 0xfe58a188 videocodec_unregister +EXPORT_SYMBOL drivers/media/video/videodev 0x45004142 video_register_device +EXPORT_SYMBOL drivers/media/video/videodev 0x70839399 video_device_release +EXPORT_SYMBOL drivers/media/video/videodev 0x843cf8c2 video_unregister_device +EXPORT_SYMBOL drivers/media/video/videodev 0x940cead9 video_device_alloc +EXPORT_SYMBOL drivers/media/video/videodev 0xb5f35e12 video_devdata +EXPORT_SYMBOL drivers/media/video/videodev 0xc9d4dd3f video_exclusive_open +EXPORT_SYMBOL drivers/media/video/videodev 0xe8ffcb5c video_usercopy +EXPORT_SYMBOL drivers/media/video/videodev 0xeee4908e video_exclusive_release +EXPORT_SYMBOL drivers/media/video/videodev 0xfa6d9666 video_ioctl2 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x07530728 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x37100a49 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x375d8126 mpt_add_sge +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x42f19126 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x469de4f5 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x48f95862 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x491d55b8 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4d37ae54 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x58b466c1 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x630fea0b mpt_proc_root_dir +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x73190ef1 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x775f2a3b mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77f0a98c mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7eaee1b5 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x809b97c4 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x92df4826 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x942de57b mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa4124a7c mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6ba0e2f mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xca0cb8a1 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe36ea94b mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe3f7918d mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xea0f91c2 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3a54591 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xff9beaf4 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0808d25a mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0dd333ec mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1e40279c mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2c169752 mptscsih_TMHandler +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ceae892 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5a239ae2 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f527f71 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x734ce3fc mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x75ab3dba mptscsih_proc_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x764ddf1a mptscsih_timer_expired +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8cfc90ba mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8d38dbda mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x96fedf60 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x97b40882 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9b983c79 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa483c2cc mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf9abfa1 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbb3c53bb mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc3556836 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc58ed558 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6919de4 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xed0c893c mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xef931a75 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf940cf44 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfde8e724 mptscsih_event_process +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x043e73eb i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x265be3bc i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2d82a829 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x31679bed i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x34a29dbd i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3b380148 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4afcc554 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4b933e30 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4e06a102 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4f6e747c i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7102568a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7b5f04ee i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7bebedf1 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x96824013 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb6a64ab4 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc4393ff5 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd52ad2fc i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe874260f i2o_find_iop +EXPORT_SYMBOL drivers/misc/ioc4 0x2953a6a2 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x391529de ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x2cc221f1 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x2fde8f4b tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x2fe7ef70 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x50b05e31 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x85435290 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x93e12167 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x94cda2de tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa6a7953e tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xb2afd53c tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xbf96d9a1 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xc200f5bf tifm_map_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x5c1f36ba mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0b8749ba mmc_release_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x21677e2b mmc_add_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x675b6f35 mmc_free_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x686c0989 mmc_wait_for_app_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7025f30b mmc_suspend_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7832e98b mmc_wait_for_req +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7dca4db4 mmc_set_data_timeout +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x838d90b5 mmc_resume_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8963fe85 mmc_unregister_driver +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa174e9ad __mmc_claim_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa872370e mmc_alloc_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xaef436ae mmc_request_done +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc8286c3c mmc_wait_for_cmd +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc85dfe4d mmc_detect_change +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xcbfb61b0 mmc_remove_host +EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xcebfc674 mmc_register_driver +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x514e3078 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x85d08bee cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xe16107ce cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x558979c8 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x57cf5ba2 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc55bebeb unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xd4d64684 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xf5134940 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x9dece7b6 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x04435385 add_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtd 0x561db13c del_mtd_partitions +EXPORT_SYMBOL drivers/mtd/mtdconcat 0x79649488 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtdconcat 0xc505cd52 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nand 0x7d36f9cc nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x833ac54e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x254f230c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x87406d9d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1ece4c80 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5e14321d onenand_scan_bbt +EXPORT_SYMBOL drivers/net/8390 0x5fa2adcf ei_poll +EXPORT_SYMBOL drivers/net/8390 0x648e868b ei_close +EXPORT_SYMBOL drivers/net/8390 0x7d7e0dbc ei_interrupt +EXPORT_SYMBOL drivers/net/8390 0xba1e70c0 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/8390 0xeb47c871 NS8390_init +EXPORT_SYMBOL drivers/net/8390 0xef0f7dc4 ei_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x12b92f49 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x34ecdff2 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4641bd7d arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x63a8dabb arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9ca552f3 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa159c6ce arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd045733c arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x32ec347c com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x888ad2bc com20020_check +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x13d73305 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x181b8d33 t3_l2e_free +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1871f25d t3_l2t_send_event +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3a486407 dev2t3cdev +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3e1ef6a3 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4219fe7a cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x448d455d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x583da55c cxgb3_register_client +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7b38f8be cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x803f78f3 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9bb18361 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa251a1a0 t3_l2t_get +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc3b25d44 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc9c06503 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd887b13f t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xed7b2aa6 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0445b966 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3694f922 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6ba28c06 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7c7d2f72 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa051e01d hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0b9dd7d3 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x234cb25b sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x599b6cfb irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x610dc198 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x82d68fbf sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x857df6d2 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaec9cb65 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdae0858e irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdd4107dc sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe063b786 sirdev_raw_write +EXPORT_SYMBOL drivers/net/mii 0x05bec6b0 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x723ef595 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x7e374cb6 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x956d3b67 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xab9f25b9 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xb007a1c0 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xcb17407d mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xe37e0516 mii_nway_restart +EXPORT_SYMBOL drivers/net/phy/fixed 0x0d068caa fixed_mdio_set_link_update +EXPORT_SYMBOL drivers/net/phy/fixed 0x2fa2733f fixed_mdio_get_phydev +EXPORT_SYMBOL drivers/net/phy/libphy 0x0c709728 mdiobus_register +EXPORT_SYMBOL drivers/net/phy/libphy 0x2205ac4b phy_sanitize_settings +EXPORT_SYMBOL drivers/net/phy/libphy 0x3c93d8d9 phy_attach +EXPORT_SYMBOL drivers/net/phy/libphy 0x3eb23906 phy_ethtool_gset +EXPORT_SYMBOL drivers/net/phy/libphy 0x4909a01b phy_driver_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x4ed5b092 phy_connect +EXPORT_SYMBOL drivers/net/phy/libphy 0x50d5d268 mdiobus_unregister +EXPORT_SYMBOL drivers/net/phy/libphy 0x64aada4f phy_read +EXPORT_SYMBOL drivers/net/phy/libphy 0x71a012e9 genphy_update_link +EXPORT_SYMBOL drivers/net/phy/libphy 0x7fbb5418 phy_disable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x83e0aadc phy_detach +EXPORT_SYMBOL drivers/net/phy/libphy 0x8ae9b24f phy_stop_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0x8d51ce9f phy_start_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0x93144b62 phy_enable_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xa2688a39 phy_print_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xa3aaace3 mdio_bus_type +EXPORT_SYMBOL drivers/net/phy/libphy 0xb1bce2cf phy_write +EXPORT_SYMBOL drivers/net/phy/libphy 0xb566d6f9 phy_start +EXPORT_SYMBOL drivers/net/phy/libphy 0xbb70345b phy_disconnect +EXPORT_SYMBOL drivers/net/phy/libphy 0xcf59ce7a phy_mii_ioctl +EXPORT_SYMBOL drivers/net/phy/libphy 0xd69baba8 genphy_read_status +EXPORT_SYMBOL drivers/net/phy/libphy 0xd8b61c20 phy_stop +EXPORT_SYMBOL drivers/net/phy/libphy 0xdc9e66b7 phy_driver_register +EXPORT_SYMBOL drivers/net/phy/libphy 0xdcfed51e genphy_config_aneg +EXPORT_SYMBOL drivers/net/phy/libphy 0xe704bd98 phy_device_create +EXPORT_SYMBOL drivers/net/phy/libphy 0xe872f92e phy_ethtool_sset +EXPORT_SYMBOL drivers/net/phy/libphy 0xee3b44ac phy_start_interrupts +EXPORT_SYMBOL drivers/net/phy/libphy 0xf0cbe314 genphy_config_advert +EXPORT_SYMBOL drivers/net/ppp_generic 0x2a81b16d ppp_unregister_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x30569b15 ppp_channel_index +EXPORT_SYMBOL drivers/net/ppp_generic 0x35a75697 ppp_input +EXPORT_SYMBOL drivers/net/ppp_generic 0x47712b90 ppp_input_error +EXPORT_SYMBOL drivers/net/ppp_generic 0x4abb2d9c ppp_register_channel +EXPORT_SYMBOL drivers/net/ppp_generic 0x75554ea7 ppp_register_compressor +EXPORT_SYMBOL drivers/net/ppp_generic 0x943cf600 ppp_output_wakeup +EXPORT_SYMBOL drivers/net/ppp_generic 0xcf4e11b0 ppp_unit_number +EXPORT_SYMBOL drivers/net/ppp_generic 0xdd96e579 ppp_unregister_compressor +EXPORT_SYMBOL drivers/net/pppox 0x60c34fab register_pppox_proto +EXPORT_SYMBOL drivers/net/pppox 0x986b280a pppox_unbind_sock +EXPORT_SYMBOL drivers/net/pppox 0xbeb059a1 pppox_ioctl +EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember +EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init +EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss +EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress +EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL drivers/net/sungem_phy 0x52bb36e6 mii_phy_probe +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x02889c4d tmsdev_init +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x13a8b1b6 tms380tr_close +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x34223cbb tmsdev_term +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x518fcbfb tms380tr_interrupt +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xce08d6c5 tms380tr_open +EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke +EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec +EXPORT_SYMBOL drivers/net/wan/hdlc 0x112e8cce alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x24a59829 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3c1cf443 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x628deae7 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x795bb82a hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7efd1a2a register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9279072e unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa3134fc2 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb63521de attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/syncppp 0x16245252 sppp_do_ioctl +EXPORT_SYMBOL drivers/net/wan/syncppp 0xae608ac7 sppp_attach +EXPORT_SYMBOL drivers/net/wan/syncppp 0xb39eb1c3 sppp_reopen +EXPORT_SYMBOL drivers/net/wan/syncppp 0xc217aca4 sppp_close +EXPORT_SYMBOL drivers/net/wan/syncppp 0xca723561 sppp_open +EXPORT_SYMBOL drivers/net/wan/syncppp 0xcafea4f9 sppp_detach +EXPORT_SYMBOL drivers/net/wireless/airo 0x59dad04d stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xdf69e26d init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xea70c243 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x58f50c3a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xbe2be45c atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf783524d stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/hermes 0x4196c38b hermes_write_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xc60b5e9e hermes_bap_pwrite +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd38d8ae2 hermes_read_ltv +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd3f714e5 hermes_bap_pread +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5168829 hermes_allocate +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd5336e5d hermes_init +EXPORT_SYMBOL drivers/net/wireless/hermes 0xd54e219d hermes_docmd_wait +EXPORT_SYMBOL drivers/net/wireless/hermes 0xed47b224 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c3e3f98 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0fa39394 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x14a9b295 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x17797045 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e988d3e hostap_get_stats +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21bb0a1a hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27a069d6 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x310658f8 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a1438df hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3abcbf80 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4ab0c9ef hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6903f16c hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x72fc02fd hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7b992ee9 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7f33f624 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x87637bd0 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x895547bc hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8c3f1628 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x985534c7 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9858f15d hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9acd5302 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa961a193 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac19532e hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xade76825 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb3193240 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba1ed6c7 hostap_80211_header_parse +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc54b6c0b hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdc920879 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfaa1e453 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfdb179ca hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x165f180b __orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x1a9d334a orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x22eaf06d orinoco_reinit_firmware +EXPORT_SYMBOL drivers/net/wireless/orinoco 0x315b30d2 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xd0f24944 __orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco 0xe05ad8c5 alloc_orinocodev +EXPORT_SYMBOL drivers/parport/parport 0x012dad36 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x01b9ff70 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x09dca1bc parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x11bd8332 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x1dbe8d84 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x2271bb74 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x2a4f4650 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x2b5e7f45 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x2e91cf12 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x3c512860 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x3e619065 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x53e95545 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x70d548d7 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x76986dae parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x78f931a0 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x899580b4 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x8d961108 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x8dbe2fb3 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x8e791466 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x905b0262 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x95e5a289 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x96208054 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x9caa6f94 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa1ed60e6 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xb266e0d0 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xb8d50283 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xdcf50185 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xe3c7dca9 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xe583baad parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xf2ecb451 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xf458f988 parport_find_base +EXPORT_SYMBOL drivers/parport/parport_pc 0x17cd915d parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x3d7dd39b parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0ba70e63 pcmcia_get_configuration_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0c49a68e pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x34bf2874 pcmcia_get_status +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5154caf8 pcmcia_access_configuration_register +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6278f67a pcmcia_get_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6355d776 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x675091b9 pcmcia_get_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8fae0fab pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9fd8ac8f pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa349791b pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb837f987 pcmcia_request_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbadd0ac5 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3dd7ef2 cs_error +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd9f2ecc5 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdd423f43 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe5fe29a9 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf5e2eff4 pcmcia_modify_configuration +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0bc4fe70 pcmcia_replace_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0e495c1a pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x15577c2b pcmcia_suspend_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x231efe34 pccard_validate_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x30ec3de9 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x318ca106 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x33f691ac pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x35f299de pcmcia_read_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x36412e46 pcmcia_find_mem_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3c790238 pcmcia_resume_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x41d489a2 pcmcia_insert_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x49b24138 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5105a83d pccard_read_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x543ff56a pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x605a003d pcmcia_eject_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6a75565d release_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7ec85b62 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa7c8ef18 pcmcia_find_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xac8e7c5f pcmcia_adjust_resource_info +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaf845d02 destroy_cis_cache +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb26b0823 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbe43a886 pccard_get_next_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbf04e3fa pccard_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc06893a9 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc84cd09f pcmcia_write_cis_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xca918530 pccard_get_tuple_data +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcbc2f2a3 pcmcia_socket_dev_resume +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcd2ac1c1 pccard_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd87f4166 pcmcia_adjust_io_region +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd9baf598 pcmcia_validate_mem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xda958438 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe37e3fb4 pcmcia_socket_dev_suspend +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xed00bcea pccard_get_first_tuple +EXPORT_SYMBOL drivers/pcmcia/rsrc_nonstatic 0xfb27a120 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x4859b8bb rtc_year_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0x6971447a rtc_month_days +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL drivers/rtc/rtc-lib 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0x1bd327ef lpfc_vport_create +EXPORT_SYMBOL drivers/scsi/lpfc/lpfc 0xf847a8d3 lpfc_vport_delete +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x6a3802d3 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1dfb9411 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x24956169 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3701595a qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5cd179e6 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x784f911d qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8c237ae3 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdcf32636 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0xbf4a55da raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xc1de65fc raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xde721cc3 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x002924ff scsi_add_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x033d7cb8 scsi_dma_unmap +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x03f638ff __scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x049491c1 scsi_device_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0974859f scsi_remove_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x09756f10 scsi_report_device_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0afc74a5 scsi_report_bus_reset +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0b5f6050 scsi_setup_fs_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0bcb29b2 __scsi_iterate_devices +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x0e087c86 scsi_bios_ptable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x10253d8b __scsi_alloc_queue +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x10c86418 scsi_host_set_state +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x122bdbaf scsi_rescan_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2494005f scsi_free_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x250b8403 scsi_reset_provider +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x28d1cfae scsi_device_lookup_by_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x29ab7db9 scsi_device_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3386246a scsi_execute_req +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3da187bd starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3df8cf27 __starget_for_each_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x3e6fde54 scsi_req_abort_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x42c11e44 scsi_track_queue_full +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x447f87dd scsi_is_host_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4daa65de scsi_finish_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x4eb589fe scsi_device_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x50a44ed8 scsi_host_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5244429d scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x52efcf98 scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x5d67d939 scsi_block_when_processing_errors +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x682c959d scsi_eh_finish_cmd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6b17b291 scsi_execute +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x6c198a5c scsi_nonblockable_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x77613317 __scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x7e247cb4 scsi_register_driver +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x81e97b93 scsi_register_interface +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x82b1cae9 scsi_free_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x880a7334 scsicam_bios_param +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x88e9f2a3 scsi_set_medium_removal +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8c6172c9 scsi_alloc_sgtable +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x8eaee8f9 scsi_mode_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9771837c scsi_eh_prep_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9866cfa6 scsi_block_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL drivers/scsi/scsi_mod 0x9e0926ff __scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa2ac55a3 __scsi_put_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa6d4e296 scsi_host_alloc +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xa74413e7 scsi_get_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaa60d950 scsi_scan_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf2deec9 scsi_host_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb14fc3f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xb7ada990 scsi_dma_map +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbc282095 scsi_ioctl +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbce23668 scsi_calculate_bounce_limit +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbd076996 scsi_unregister +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbf2ebfc0 scsi_prep_return +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xbf7931dd scsi_unblock_requests +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc02cf8e3 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc25afa25 scsi_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xc28a7b90 scsi_get_host_dev +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd5233968 scsi_is_target_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xd528f30a scsi_prep_state_check +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xda134413 scsi_print_result +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xda256a94 scsi_remove_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdb951350 scsi_command_normalize_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdc335872 scsi_device_put +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdda0a6b1 scsi_target_quiesce +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xdf5b52e1 scsi_add_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe151a38f scsi_is_sdev_device +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe2b83891 scsi_scan_target +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe69aa050 scsi_host_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe6c03614 scsi_print_sense +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xe8e5016f scsi_target_resume +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xea10212a int_to_scsilun +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xeeed5270 scsi_adjust_queue_depth +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf718139a scsi_device_lookup +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfb83207e scsi_register +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfbf54f73 scsi_device_get +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfcbc3877 scsi_eh_restore_cmnd +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfe50c91c scsi_cmd_print_sense_hdr +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL drivers/scsi/scsi_mod 0xff28b468 scsi_test_unit_ready +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2f82743e fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x364bc35e fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x42b1a811 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x50f1375d scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x56047204 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6ed74ace scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa1d1301c fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xad0885f1 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcee03e8a fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xec4dfbd9 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf499fd67 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x23280bd3 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2cd6bd20 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x346b544b sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4100cfc7 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c3069e1 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e1d4d91 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5c66af13 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78643710 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7eec8482 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8dc915d6 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x91959c6e sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9432bd06 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9e6de33a sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa3adc1c3 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb240b6a4 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc1c2b68e sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd27ab67 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe81f4033 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe8a6d814 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb4f1858 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeba53984 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xece06fe9 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xedf8876d sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf3fe1488 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa9a6bec sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfcc81a9f sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x14b2cd8a spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x1c95f2fb spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x62a27d9d spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8d909d4e spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd0f7d064 spi_attach_transport +EXPORT_SYMBOL drivers/serial/8250 0xb24cc523 serial8250_register_port +EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL drivers/serial/serial_core 0x1e6f3c3e uart_write_wakeup +EXPORT_SYMBOL drivers/serial/serial_core 0x2b42aebd uart_unregister_driver +EXPORT_SYMBOL drivers/serial/serial_core 0x3a3ef7c9 uart_remove_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0x3d23351a uart_update_timeout +EXPORT_SYMBOL drivers/serial/serial_core 0x65da7dc1 uart_get_divisor +EXPORT_SYMBOL drivers/serial/serial_core 0x69b8ec8a uart_suspend_port +EXPORT_SYMBOL drivers/serial/serial_core 0x7c8c0baf uart_match_port +EXPORT_SYMBOL drivers/serial/serial_core 0xd1869876 uart_register_driver +EXPORT_SYMBOL drivers/serial/serial_core 0xda5a599c uart_get_baud_rate +EXPORT_SYMBOL drivers/serial/serial_core 0xe883b782 uart_add_one_port +EXPORT_SYMBOL drivers/serial/serial_core 0xf78e6590 uart_resume_port +EXPORT_SYMBOL drivers/ssb/ssb 0x07f8d41a ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1820658b ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x3c398654 ssb_dma_set_mask +EXPORT_SYMBOL drivers/ssb/ssb 0x441c1ef8 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x8834abed ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x9634d6e4 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xa0a35194 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xadea5e68 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb2b80f75 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd6427a13 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd70527b1 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xea2946a8 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xf236101a ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xf50e67aa ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xf954f239 ssb_device_is_enabled +EXPORT_SYMBOL drivers/telephony/ixj 0x8ddbba1a ixj_pcmcia_probe +EXPORT_SYMBOL drivers/telephony/phonedev 0xbfe64c6c phone_unregister_device +EXPORT_SYMBOL drivers/telephony/phonedev 0xee77b68c phone_register_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0x03f79562 usb_hub_tt_clear_buffer +EXPORT_SYMBOL drivers/usb/core/usbcore 0x07456c18 usb_sg_cancel +EXPORT_SYMBOL drivers/usb/core/usbcore 0x07d3f5ce usb_lock_device_for_reset +EXPORT_SYMBOL drivers/usb/core/usbcore 0x101231bc usb_buffer_free +EXPORT_SYMBOL drivers/usb/core/usbcore 0x13f449d2 usb_buffer_alloc +EXPORT_SYMBOL drivers/usb/core/usbcore 0x15f7d6ee usb_create_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x17810c6d usb_hcd_platform_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x17f6d42b usb_hcd_pci_suspend +EXPORT_SYMBOL drivers/usb/core/usbcore 0x19a304ba usb_disabled +EXPORT_SYMBOL drivers/usb/core/usbcore 0x21c57a2c usb_get_status +EXPORT_SYMBOL drivers/usb/core/usbcore 0x21cd1cab usb_driver_release_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x289811d3 usb_put_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0x292df1a9 usb_sg_wait +EXPORT_SYMBOL drivers/usb/core/usbcore 0x2a3d1bf8 usb_get_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x31b67dae usb_set_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3b48753e usb_get_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3c0d1bda usb_alloc_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3f59d400 usb_reset_configuration +EXPORT_SYMBOL drivers/usb/core/usbcore 0x3f7f5ccf usb_hcd_pci_remove +EXPORT_SYMBOL drivers/usb/core/usbcore 0x446c7846 usb_get_current_frame_number +EXPORT_SYMBOL drivers/usb/core/usbcore 0x463ad0ba usb_hcd_pci_shutdown +EXPORT_SYMBOL drivers/usb/core/usbcore 0x464f63c5 usb_kill_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x48c353e7 usb_hcd_giveback_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x51e2eede usb_driver_claim_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x56b97d55 usb_hcd_pci_resume +EXPORT_SYMBOL drivers/usb/core/usbcore 0x57d32276 usb_bulk_msg +EXPORT_SYMBOL drivers/usb/core/usbcore 0x64e3203d usb_ifnum_to_if +EXPORT_SYMBOL drivers/usb/core/usbcore 0x71ccd43b usb_register_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL drivers/usb/core/usbcore 0x850a3093 usb_free_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x85c1d7e0 usb_unlink_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x8987cf0c usb_get_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x961800f0 usb_string +EXPORT_SYMBOL drivers/usb/core/usbcore 0x979e678b usb_init_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0x986a245f usb_find_interface +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL drivers/usb/core/usbcore 0x9bad7082 usb_reset_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xa1b9b5b9 usb_add_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xab159e5d usb_buffer_map_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xaf2229b1 usb_remove_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xb53db392 usb_get_hcd +EXPORT_SYMBOL drivers/usb/core/usbcore 0xcb867299 usb_clear_halt +EXPORT_SYMBOL drivers/usb/core/usbcore 0xccfe736c usb_altnum_to_altsetting +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd11ef41a usb_deregister_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd3f39cda usb_hcd_pci_probe +EXPORT_SYMBOL drivers/usb/core/usbcore 0xd4222f1c usb_sg_init +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe3694b80 usb_submit_urb +EXPORT_SYMBOL drivers/usb/core/usbcore 0xe72a2ced usb_buffer_unmap_sg +EXPORT_SYMBOL drivers/usb/core/usbcore 0xeb7a3201 usb_reset_composite_device +EXPORT_SYMBOL drivers/usb/core/usbcore 0xf1102412 usb_put_dev +EXPORT_SYMBOL drivers/usb/core/usbcore 0xfce9399a usb_control_msg +EXPORT_SYMBOL drivers/usb/gadget/net2280 0x38e934c2 usb_gadget_register_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xae3e3a59 usb_gadget_unregister_driver +EXPORT_SYMBOL drivers/usb/gadget/net2280 0xe810753d net2280_set_fifo_mode +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xf2c75084 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x03243f57 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x14c0a93a usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1bbf7168 ezusb_writememory +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xb27e7ecf ezusb_set_reset +EXPORT_SYMBOL drivers/video/backlight/corgi_bl 0xc86baa7c corgibl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1f0bf439 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x292639aa lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x1a26be08 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x2f2f8e39 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x6a089ab7 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8c0c8e7b cyber2000fb_get_fb_var +EXPORT_SYMBOL drivers/video/display/display 0x06b9f389 display_device_register +EXPORT_SYMBOL drivers/video/display/display 0x78ee7b63 display_device_unregister +EXPORT_SYMBOL drivers/video/output 0x06a7c53b video_output_register +EXPORT_SYMBOL drivers/video/output 0x0a8845f7 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0x0a9d10b1 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x0d2d8bb0 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x3b03ddd2 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x48abba34 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x4a028eee svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x5ad04b66 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xd77df77f svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4f314adb w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xde5fd8ac w1_ds2760_write +EXPORT_SYMBOL drivers/w1/wire 0x039c2336 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x2744ea72 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x8cf61660 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xcda061c0 w1_remove_master_device +EXPORT_SYMBOL fs/configfs/configfs 0x1ca018fd config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x2644a704 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x32e35987 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x4517dc91 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x5fc3f127 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x6afafd47 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x79a54840 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x81f1d68f config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x950be3ce configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xae6b0c89 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xc71f485d configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xd906f54d config_group_find_item +EXPORT_SYMBOL fs/jbd/jbd 0x038fcf2f journal_revoke +EXPORT_SYMBOL fs/jbd/jbd 0x0536a788 journal_get_undo_access +EXPORT_SYMBOL fs/jbd/jbd 0x0804b308 journal_create +EXPORT_SYMBOL fs/jbd/jbd 0x0fc7b9ee journal_force_commit +EXPORT_SYMBOL fs/jbd/jbd 0x12aba7cd journal_dirty_metadata +EXPORT_SYMBOL fs/jbd/jbd 0x2a46be85 journal_load +EXPORT_SYMBOL fs/jbd/jbd 0x32024e91 journal_ack_err +EXPORT_SYMBOL fs/jbd/jbd 0x3381e9a9 log_wait_commit +EXPORT_SYMBOL fs/jbd/jbd 0x379d2b62 journal_release_buffer +EXPORT_SYMBOL fs/jbd/jbd 0x4283c030 journal_errno +EXPORT_SYMBOL fs/jbd/jbd 0x55cd0521 journal_start +EXPORT_SYMBOL fs/jbd/jbd 0x5be22849 journal_abort +EXPORT_SYMBOL fs/jbd/jbd 0x5e32fdfe journal_wipe +EXPORT_SYMBOL fs/jbd/jbd 0x60340894 journal_start_commit +EXPORT_SYMBOL fs/jbd/jbd 0x6a501ef8 journal_check_used_features +EXPORT_SYMBOL fs/jbd/jbd 0x75850dc6 journal_stop +EXPORT_SYMBOL fs/jbd/jbd 0x79cf0656 journal_blocks_per_page +EXPORT_SYMBOL fs/jbd/jbd 0x80f1ed3b journal_restart +EXPORT_SYMBOL fs/jbd/jbd 0x84fc404d journal_update_superblock +EXPORT_SYMBOL fs/jbd/jbd 0x95be0fd2 journal_flush +EXPORT_SYMBOL fs/jbd/jbd 0x968a1008 journal_destroy +EXPORT_SYMBOL fs/jbd/jbd 0xa50393b2 journal_invalidatepage +EXPORT_SYMBOL fs/jbd/jbd 0xabdf681f journal_get_create_access +EXPORT_SYMBOL fs/jbd/jbd 0xb0f3b4f6 journal_dirty_data +EXPORT_SYMBOL fs/jbd/jbd 0xb8432ddb journal_set_features +EXPORT_SYMBOL fs/jbd/jbd 0xc03b495c journal_extend +EXPORT_SYMBOL fs/jbd/jbd 0xc35957d7 journal_force_commit_nested +EXPORT_SYMBOL fs/jbd/jbd 0xc68d060f journal_init_inode +EXPORT_SYMBOL fs/jbd/jbd 0xc75463d2 journal_init_dev +EXPORT_SYMBOL fs/jbd/jbd 0xd1d4c4e9 journal_get_write_access +EXPORT_SYMBOL fs/jbd/jbd 0xd3671209 journal_unlock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xdc4177df journal_try_to_free_buffers +EXPORT_SYMBOL fs/jbd/jbd 0xe0fda703 journal_lock_updates +EXPORT_SYMBOL fs/jbd/jbd 0xe4b41093 journal_clear_err +EXPORT_SYMBOL fs/jbd/jbd 0xeaa974ca journal_forget +EXPORT_SYMBOL fs/jbd/jbd 0xf3b1987b journal_check_available_features +EXPORT_SYMBOL fs/jbd/jbd 0xfdebfb69 journal_update_format +EXPORT_SYMBOL fs/lockd/lockd 0x976e539e lockd_up +EXPORT_SYMBOL fs/lockd/lockd 0xa7b91a7b lockd_down +EXPORT_SYMBOL fs/lockd/lockd 0xad09c2db get_nfs_grace_period +EXPORT_SYMBOL fs/lockd/lockd 0xdead3f09 nlmclnt_proc +EXPORT_SYMBOL fs/lockd/lockd 0xe5bdee2c nlmsvc_ops +EXPORT_SYMBOL fs/mbcache 0x4b4d1674 mb_cache_shrink +EXPORT_SYMBOL fs/mbcache 0x5674b589 mb_cache_entry_find_next +EXPORT_SYMBOL fs/mbcache 0x57db6377 mb_cache_create +EXPORT_SYMBOL fs/mbcache 0x77c5ba12 mb_cache_entry_get +EXPORT_SYMBOL fs/mbcache 0xa9e0dbc8 mb_cache_entry_insert +EXPORT_SYMBOL fs/mbcache 0xc17c1d52 mb_cache_entry_find_first +EXPORT_SYMBOL fs/mbcache 0xc726f1a8 mb_cache_entry_free +EXPORT_SYMBOL fs/mbcache 0xd3b6a7ec mb_cache_entry_alloc +EXPORT_SYMBOL fs/mbcache 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL fs/mbcache 0xf31fe113 mb_cache_entry_release +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xc8c2ac6c nfsacl_decode +EXPORT_SYMBOL fs/nfs_common/nfs_acl 0xdded096d nfsacl_encode +EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/xfs/xfs 0x4a9ce50e xfs_qmcore_xfs +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc16 0x02a6ce5a crc16_table +EXPORT_SYMBOL lib/crc16 0x8ffdb3b8 crc16 +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/libcrc32c 0x2329b292 crc32c_be +EXPORT_SYMBOL lib/libcrc32c 0x37d0b921 crc32c_le +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8023 0x0ab2a7f3 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xeae9f774 destroy_8023_client +EXPORT_SYMBOL net/9p/9pnet 0x00a6e1a5 p9_create_tclunk +EXPORT_SYMBOL net/9p/9pnet 0x0106a185 p9_create_tstat +EXPORT_SYMBOL net/9p/9pnet 0x100af1bf p9_conn_rpc +EXPORT_SYMBOL net/9p/9pnet 0x15779868 p9_set_tag +EXPORT_SYMBOL net/9p/9pnet 0x1ff9c757 v9fs_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21523da9 p9_create_tattach +EXPORT_SYMBOL net/9p/9pnet 0x29adace8 p9_conn_create +EXPORT_SYMBOL net/9p/9pnet 0x309767d8 p9_deserialize_stat +EXPORT_SYMBOL net/9p/9pnet 0x36a39bbc p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x3b481fbb v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3cf598a8 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x403a1c19 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x465c4e6f p9_printfcall +EXPORT_SYMBOL net/9p/9pnet 0x46bbc35a p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0x506119a8 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x507c9d70 p9_create_tauth +EXPORT_SYMBOL net/9p/9pnet 0x50a11050 p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0x53b4a8cb p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x5c002155 v9fs_match_trans +EXPORT_SYMBOL net/9p/9pnet 0x62d13cfb p9_client_uwrite +EXPORT_SYMBOL net/9p/9pnet 0x6461b8de p9_create_twrite +EXPORT_SYMBOL net/9p/9pnet 0x65f60aa6 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x67d7fcdf p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0x6b9fac02 p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x6f11c5c3 p9_create_twrite_u +EXPORT_SYMBOL net/9p/9pnet 0x71c7537d p9_create_tcreate +EXPORT_SYMBOL net/9p/9pnet 0x7f214637 p9_client_readn +EXPORT_SYMBOL net/9p/9pnet 0x7fb8be75 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x81247f39 p9_create_tread +EXPORT_SYMBOL net/9p/9pnet 0x8432c83f p9_deserialize_fcall +EXPORT_SYMBOL net/9p/9pnet 0x85da5532 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x92f85e96 p9_client_auth +EXPORT_SYMBOL net/9p/9pnet 0x950e6b03 p9_create_twstat +EXPORT_SYMBOL net/9p/9pnet 0x95eaea84 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xa9536064 p9_create_tversion +EXPORT_SYMBOL net/9p/9pnet 0xadfd597a p9_create_tremove +EXPORT_SYMBOL net/9p/9pnet 0xb1c93bfe p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xb85d059a p9_conn_cancel +EXPORT_SYMBOL net/9p/9pnet 0xbb3a41fe p9_conn_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc2867b6a p9_client_uread +EXPORT_SYMBOL net/9p/9pnet 0xc700dd04 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xc7690607 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xdc894ac7 p9_create_twalk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7c83b46 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe9312a9b p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xeabe9e4f p9_client_dirread +EXPORT_SYMBOL net/9p/9pnet 0xf09b3efa p9_create_topen +EXPORT_SYMBOL net/9p/9pnet 0xfff27930 p9_create_tflush +EXPORT_SYMBOL net/appletalk/appletalk 0x1dd7f5a2 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x24371bef atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x748b4886 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xff4a190e atrtr_get_dev +EXPORT_SYMBOL net/ax25/ax25 0x06e96076 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x15588af7 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x38dd7d76 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x438d6d56 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x750f7d00 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x797ced4b ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x8db869c3 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa86de02e ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd63fbcd7 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0xd9ddf054 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x065ece68 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x088cc0a0 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0cbd5db9 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x15d6b780 hci_conn_encrypt +EXPORT_SYMBOL net/bluetooth/bluetooth 0x200bf6dc hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2383da19 hci_conn_auth +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24b90d9b hci_send_acl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x328cf7a7 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x346c8ac1 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d5e0a72 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5315500a hci_unregister_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5427d6f4 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e67519b bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6681b03f bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7330d124 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x73d51ad3 hci_conn_change_link_key +EXPORT_SYMBOL net/bluetooth/bluetooth 0x82a5ca7e bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8b4fe8f6 hci_send_sco +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9db8737b hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa16c5faa hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4a3e8e9 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbf61626 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5072a7f bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc6f42e22 hci_connect +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe72a7050 hci_register_proto +EXPORT_SYMBOL net/bluetooth/bluetooth 0xec2ee1c3 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf866aec6 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd16d173 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load +EXPORT_SYMBOL net/bridge/bridge 0x27d79fa8 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x10750430 ebt_register_target +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x11aff365 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1eef85ed ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7a94449c ebt_register_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x813153ff ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x91f4f2d1 ebt_unregister_watcher +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9f58a4e5 ebt_unregister_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xac38e999 ebt_register_match +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xeab264ca ebt_unregister_target +EXPORT_SYMBOL net/ieee80211/ieee80211 0x065f97c2 ieee80211_freq_to_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x0fc80023 ieee80211_tx_frame +EXPORT_SYMBOL net/ieee80211/ieee80211 0x174065ec free_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x69cc1893 alloc_ieee80211 +EXPORT_SYMBOL net/ieee80211/ieee80211 0x6ccd2d6e ieee80211_get_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0x71cd14db ieee80211_is_valid_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x81612a80 ieee80211_wx_get_scan +EXPORT_SYMBOL net/ieee80211/ieee80211 0x82e98705 ieee80211_wx_set_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0x8ea0f5db ieee80211_get_channel +EXPORT_SYMBOL net/ieee80211/ieee80211 0x96f47227 ieee80211_channel_to_freq +EXPORT_SYMBOL net/ieee80211/ieee80211 0xa9fb135f escape_essid +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb4928ca7 ieee80211_txb_free +EXPORT_SYMBOL net/ieee80211/ieee80211 0xb4f98368 ieee80211_wx_get_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xc1e461e6 ieee80211_rx +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd0140416 ieee80211_rx_mgt +EXPORT_SYMBOL net/ieee80211/ieee80211 0xd2708995 ieee80211_wx_set_encodeext +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf0f7b06a ieee80211_channel_to_index +EXPORT_SYMBOL net/ieee80211/ieee80211 0xf59b72f3 ieee80211_wx_get_encode +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfcd03d9e ieee80211_set_geo +EXPORT_SYMBOL net/ieee80211/ieee80211 0xfcfeb755 ieee80211_get_channel_flags +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x279e265f ieee80211_crypt_deinit_handler +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x4702b39b ieee80211_register_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x4da8beef ieee80211_crypt_delayed_deinit +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0x5418da89 ieee80211_unregister_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xbb9e6fa8 ieee80211_crypt_quiescing +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xc4ba57ce ieee80211_get_crypto_ops +EXPORT_SYMBOL net/ieee80211/ieee80211_crypt 0xc84dce5d ieee80211_crypt_deinit_entries +EXPORT_SYMBOL net/ipv4/inet_lro 0x4bfc5282 lro_vlan_hwaccel_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0x87c3e212 lro_flush_pkt +EXPORT_SYMBOL net/ipv4/inet_lro 0x9096598f lro_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0x9bcff366 lro_vlan_hwaccel_receive_frags +EXPORT_SYMBOL net/ipv4/inet_lro 0xc0604d0d lro_receive_skb +EXPORT_SYMBOL net/ipv4/inet_lro 0xd8d326dc lro_flush_all +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x1cee8ca5 unregister_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x2c2ccc9b ip_vs_conn_new +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x3c53c467 ip_vs_conn_in_get +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0x7555080e unregister_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xbdd05b90 ip_vs_conn_put +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xc1e299cc register_ip_vs_scheduler +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd5220adc ip_vs_skb_replace +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xd690fe83 register_ip_vs_app_inc +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xe89b8aa9 register_ip_vs_app +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xecf7d478 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/ipv4/ipvs/ip_vs 0xf2306421 ip_vs_conn_out_get +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x244992b6 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb5d0110b arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe99ade17 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x05bf352d ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9b12e153 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbd13782c ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x202970ba nf_nat_follow_master +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x447557ec nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7a25f019 nf_nat_protocol_register +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x7f03019b nf_nat_setup_info +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9f2ea840 nf_nat_protocol_unregister +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa18c8bcb nf_nat_used_tuple +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xd87dc577 nf_nat_seq_adjust +EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xecf1823b nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/ipv4/tunnel4 0x0c8b2a1e xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x4529cd14 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ipv6 0x092bdc4a xfrm6_input_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x10c0d089 rt6_lookup +EXPORT_SYMBOL net/ipv6/ipv6 0x17bbb333 icmpv6_send +EXPORT_SYMBOL net/ipv6/ipv6 0x1e89b6ba in6_dev_finish_destroy +EXPORT_SYMBOL net/ipv6/ipv6 0x2abf8ee6 inet6_add_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0x30123eb5 icmpv6_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0x3257869e ipv6_getsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0x46fee2cb inet6_ioctl +EXPORT_SYMBOL net/ipv6/ipv6 0x4807c0d3 nf_ip6_checksum +EXPORT_SYMBOL net/ipv6/ipv6 0x4a6d53be inet6_release +EXPORT_SYMBOL net/ipv6/ipv6 0x4ea33b6e ndisc_mc_map +EXPORT_SYMBOL net/ipv6/ipv6 0x52f9ef42 inet6_getname +EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0x650084d2 ipv6_chk_addr +EXPORT_SYMBOL net/ipv6/ipv6 0x6dd9c9c1 ip6_route_output +EXPORT_SYMBOL net/ipv6/ipv6 0x750397fe xfrm6_find_1stfragopt +EXPORT_SYMBOL net/ipv6/ipv6 0x76032cd8 inet6_bind +EXPORT_SYMBOL net/ipv6/ipv6 0x7c1f0f74 ip6_frag_init +EXPORT_SYMBOL net/ipv6/ipv6 0x8e84b526 ip6_xmit +EXPORT_SYMBOL net/ipv6/ipv6 0x99d77453 ip6_frag_match +EXPORT_SYMBOL net/ipv6/ipv6 0xa75578a2 ipv6_push_nfrag_opts +EXPORT_SYMBOL net/ipv6/ipv6 0xb04db6c1 inet6_unregister_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xb905ad82 icmpv6_err_convert +EXPORT_SYMBOL net/ipv6/ipv6 0xc270685c ip6_route_me_harder +EXPORT_SYMBOL net/ipv6/ipv6 0xc2986043 inet6_register_protosw +EXPORT_SYMBOL net/ipv6/ipv6 0xca62dcb8 inet6_del_protocol +EXPORT_SYMBOL net/ipv6/ipv6 0xcb98206e xfrm6_rcv +EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier +EXPORT_SYMBOL net/ipv6/ipv6 0xd26a24bb ipv6_get_saddr +EXPORT_SYMBOL net/ipv6/ipv6 0xe1a81c3a icmpv6msg_statistics +EXPORT_SYMBOL net/ipv6/ipv6 0xf79f7e27 ipv6_setsockopt +EXPORT_SYMBOL net/ipv6/ipv6 0xf9ff39dc xfrm6_rcv_spi +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x27a35eb6 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2b00a4f3 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x61468433 ipv6_find_hdr +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x761e732f ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr +EXPORT_SYMBOL net/ipv6/tunnel6 0x9f271a0a xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xef4fd0b6 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9cd013f2 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xab14e193 xfrm6_tunnel_free_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdb1b42d1 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x25bfb6dd ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x30ea24b1 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x58781c99 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x63d5c3c7 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x65873198 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7ed9d6fa ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9796af2a ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe62a47a5 ircomm_open +EXPORT_SYMBOL net/irda/irda 0x05d7cfe5 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x19d79c82 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x19e35818 irda_task_execute +EXPORT_SYMBOL net/irda/irda 0x1c51e992 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22b0f52d hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x2504f83a irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2b5c7328 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x30827e1c irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x3157b0e8 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug +EXPORT_SYMBOL net/irda/irda 0x3b2e9df9 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x41d8ba0b irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x42c7c5ce irias_find_object +EXPORT_SYMBOL net/irda/irda 0x437009a5 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4996fff2 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x519118cc irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x538fe1e0 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x5504cf7c hashbin_new +EXPORT_SYMBOL net/irda/irda 0x57fb1ed2 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x5aad87aa irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x5af2234c iriap_close +EXPORT_SYMBOL net/irda/irda 0x5cfbcd3f irda_device_register_dongle +EXPORT_SYMBOL net/irda/irda 0x5d609063 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x612d391d irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x62f9b8fb irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x6621aa8a hashbin_find +EXPORT_SYMBOL net/irda/irda 0x69d62648 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6e9fa139 irlap_open +EXPORT_SYMBOL net/irda/irda 0x701e028e irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x796a5074 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x83ea33a9 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9eadefe3 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xaa6f92d5 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xb70ff7ce irda_device_dongle_cleanup +EXPORT_SYMBOL net/irda/irda 0xb7284600 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xb8d72f9d irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xca6fc44f irda_task_delete +EXPORT_SYMBOL net/irda/irda 0xccfc4d9f iriap_open +EXPORT_SYMBOL net/irda/irda 0xd0768ebe irlap_close +EXPORT_SYMBOL net/irda/irda 0xd0bca4f4 irda_device_dongle_init +EXPORT_SYMBOL net/irda/irda 0xd14c782f irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xd486774b async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xdb2f1237 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xdd5b06da irda_task_next_state +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xde731cc0 irda_device_unregister_dongle +EXPORT_SYMBOL net/irda/irda 0xe2f84c82 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf7035005 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xf9f7b57c proc_irda +EXPORT_SYMBOL net/irda/irda 0xfbcff3ea irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xffbfc800 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/lapb/lapb 0x1fe8bf49 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x66bc8615 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x7baa5fac lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xa968b3ee lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xd377d62e lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xde46dacb lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xed6b3067 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xfd6913b0 lapb_data_request +EXPORT_SYMBOL net/mac80211/mac80211 0x0a2597e6 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0adb1257 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x101f02ee ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1717030a ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1a360aaa ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x23a752fa ieee80211_start_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x2da9a7fd ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x3d06c7a7 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x434792b9 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x49ef338b ieee80211_get_hdrlen +EXPORT_SYMBOL net/mac80211/mac80211 0x538b9d58 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x555da3e5 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x579e8425 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5e7e5c16 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6d0ca9da ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x70b32cc1 __ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x8e340a10 ieee80211_register_hwmode +EXPORT_SYMBOL net/mac80211/mac80211 0x9336e8c9 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x9368d19c sta_info_get +EXPORT_SYMBOL net/mac80211/mac80211 0xa2de7e35 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xacb27d20 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xacb99ade ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xaea9c847 sta_info_put +EXPORT_SYMBOL net/mac80211/mac80211 0xb0a2e9cb ieee80211_beacon_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc23517fc ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc76a475a ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xca22b536 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xcf70126f __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd906cff0 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdb39123b ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe5449322 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x08d0fd40 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4ba11495 __nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed23741c per_cpu__nf_conntrack_stat +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x82f94e40 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/x_tables 0x0e9f7120 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x1d4c3c15 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x27418c06 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x30984ac4 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x3f70b3a1 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x424b8b4b xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5c59cc09 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x7525e6d1 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xaf15f90c xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xccb6e13c xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xf068dc09 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf6e19013 xt_register_targets +EXPORT_SYMBOL net/rfkill/rfkill 0x0c829437 rfkill_allocate +EXPORT_SYMBOL net/rfkill/rfkill 0x5eacebe7 rfkill_register +EXPORT_SYMBOL net/rfkill/rfkill 0x72293d89 rfkill_switch_all +EXPORT_SYMBOL net/rfkill/rfkill 0x93a8c60e rfkill_free +EXPORT_SYMBOL net/rfkill/rfkill 0xa665e7d6 rfkill_unregister +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x243b0bd1 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24caca8e rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x26214168 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x318ba120 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x72d0d16d rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x753c2113 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7c6f21a4 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8b2efd08 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa26dd062 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa9f5ff3d rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xacfcd399 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb0225ad8 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd6ec8c3e rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdd5f5441 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xffbe08e5 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x05098dc7 gss_mech_register +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1eb4592d gss_service_to_auth_domain_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x35373fc2 svcauth_gss_flavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x358de16c gss_decrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x3fcdcc46 gss_mech_get_by_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4a22272a make_checksum +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4e1a0741 gss_mech_get_by_name +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x53df7dd1 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x96917651 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xa81d23a1 gss_svc_to_pseudoflavor +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc427b918 gss_mech_unregister +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc9115406 krb5_decrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd3a6c909 gss_encrypt_xdr_buf +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf13f7e06 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf4e73c7a krb5_encrypt +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0700e5aa rpc_queue_upcall +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0b77f146 svc_drop +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0c5aa45b xdr_init_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0edd2187 svc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x13ec287c xdr_init_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x17b6bcfd xdr_buf_read_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1c63c8bf rpcauth_destroy_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1e5264f7 xdr_buf_subsegment +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1ec859fd rpc_mkpipe +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1ef68c41 auth_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x1f9ea7aa svc_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x20706dd2 auth_unix_forget_old +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2354c22f rpc_restart_call +EXPORT_SYMBOL net/sunrpc/sunrpc 0x29e26f2d rpcauth_init_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2aa17774 rpc_free_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2c438fe5 xdr_read_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2e62e865 rpcauth_lookup_credcache +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0x308ae763 xdr_write_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3f847b00 xdr_encode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4011cc36 rpc_print_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x429c472d sunrpc_cache_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x429ed9c8 svc_seq_show +EXPORT_SYMBOL net/sunrpc/sunrpc 0x450c40ac rpc_put_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x46f9981a unix_domain_find +EXPORT_SYMBOL net/sunrpc/sunrpc 0x472d8c5a rpc_setbufsize +EXPORT_SYMBOL net/sunrpc/sunrpc 0x496d6f08 xdr_encode_word +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4e48edac cache_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x51086aeb xdr_inline_decode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x51e1b9a0 rpc_clnt_sigunmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0x534af11a svc_authenticate +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5357c434 xdr_enter_page +EXPORT_SYMBOL net/sunrpc/sunrpc 0x58c4941e rpc_execute +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x5ce4da81 put_rpccred +EXPORT_SYMBOL net/sunrpc/sunrpc 0x62d1faca xdr_inline_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0x63fff22f rpc_clone_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x65066596 svc_exit_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x674da969 rpc_alloc_iostats +EXPORT_SYMBOL net/sunrpc/sunrpc 0x67e2cc92 rpc_shutdown_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6824bfe6 cache_check +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6a33c0e6 cache_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge +EXPORT_SYMBOL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL net/sunrpc/sunrpc 0x74e0391d xdr_shift_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7561ce0d xdr_decode_string_inplace +EXPORT_SYMBOL net/sunrpc/sunrpc 0x762321bd svc_create_thread +EXPORT_SYMBOL net/sunrpc/sunrpc 0x775f61fe rpc_call_setup +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7b6e6140 svcauth_unix_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7c5cee47 rpc_exit_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7c90f879 svc_set_client +EXPORT_SYMBOL net/sunrpc/sunrpc 0x807676a5 xdr_process_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0x825c6588 rpc_run_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x86bd335a rpcauth_create +EXPORT_SYMBOL net/sunrpc/sunrpc 0x86c07191 __rpc_wait_for_completion_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8d0d0308 xdr_reserve_space +EXPORT_SYMBOL net/sunrpc/sunrpc 0x91e6536c xdr_buf_from_iov +EXPORT_SYMBOL net/sunrpc/sunrpc 0x932f644d rpc_init_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x93d98b7d rpcauth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x95a5d9a3 rpc_wake_up_task +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9aed8c3d svc_sock_names +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9c61fda2 rpc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9deeb083 rpc_wake_up_next +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ed8d1b6 rpc_clnt_sigmask +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9f15c6f1 rpc_wake_up +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa376a278 auth_domain_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa83be170 rpcauth_lookupcred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaebf7841 rpcauth_init_cred +EXPORT_SYMBOL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb293fe76 svc_proc_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb5e45c8a svc_process +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb89e5680 svc_create_pooled +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbce67dc0 xprt_set_timeout +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf89b893 rpc_sleep_on +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL net/sunrpc/sunrpc 0xbfc0f17b svc_makesock +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc1909a34 auth_unix_lookup +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc28567a5 svc_auth_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc51ef296 svc_destroy +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc5927a38 rpc_init_wait_queue +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL net/sunrpc/sunrpc 0xcc4fba55 rpc_call_sync +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd25105d8 cache_register +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd34530ec sunrpc_cache_update +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd5607c7b rpc_bind_new_program +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd79966b6 xdr_encode_pages +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd8059f1f xdr_decode_array2 +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdb28c0d8 svc_recv +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe1d8e506 rpcauth_unregister +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe3ed90a8 rpc_unlink +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe865dadb rpc_call_async +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe8af1d7b auth_unix_add_addr +EXPORT_SYMBOL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xea02ced5 rpc_wake_up_status +EXPORT_SYMBOL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL net/sunrpc/sunrpc 0xef2a1223 auth_domain_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0xef9d1d77 rpc_call_null +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf5a9f739 rpc_killall_tasks +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf6da1293 read_bytes_from_xdr_buf +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfa9a3d00 rpc_delay +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfb6e7854 svc_reserve +EXPORT_SYMBOL net/sunrpc/sunrpc 0xfe6e7737 svc_set_num_threads +EXPORT_SYMBOL net/sunrpc/sunrpc 0xffc6405f xdr_decode_word +EXPORT_SYMBOL net/tipc/tipc 0x03118d6b tipc_createport_raw +EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes +EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected +EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect +EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport +EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer +EXPORT_SYMBOL net/tipc/tipc 0x204e336e tipc_set_msg_option +EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge +EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port +EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach +EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable +EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x3e93b677 tipc_continue +EXPORT_SYMBOL net/tipc/tipc 0x416400c3 tipc_register_media +EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance +EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name +EXPORT_SYMBOL net/tipc/tipc 0x4e796163 tipc_get_port +EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw +EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode +EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid +EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast +EXPORT_SYMBOL net/tipc/tipc 0x66e7374e tipc_createport +EXPORT_SYMBOL net/tipc/tipc 0x7d5d7170 tipc_recv_msg +EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port +EXPORT_SYMBOL net/tipc/tipc 0x86d16b50 tipc_send_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x87c425b1 tipc_forward_buf2port +EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr +EXPORT_SYMBOL net/tipc/tipc 0x9193e086 tipc_send_buf_fast +EXPORT_SYMBOL net/tipc/tipc 0x97ef3180 tipc_send_buf2name +EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer +EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port +EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown +EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name +EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish +EXPORT_SYMBOL net/tipc/tipc 0xb7cf469e tipc_reject_msg +EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send +EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable +EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity +EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach +EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer +EXPORT_SYMBOL net/tipc/tipc 0xe07106e6 tipc_send_buf +EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished +EXPORT_SYMBOL net/tipc/tipc 0xecc51797 tipc_forward_buf2name +EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle +EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer +EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device +EXPORT_SYMBOL net/wanrouter/wanrouter 0xde37037d register_wan_device +EXPORT_SYMBOL net/wireless/cfg80211 0x07e7ac5a ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa72138a2 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e75d2a wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xc4e85ec5 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xd66559c5 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xe31113f0 wiphy_free +EXPORT_SYMBOL sound/ac97_bus 0xbfc395b8 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x8b174af4 snd_mixer_oss_ioctl_card +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-fm 0x5a3e4571 snd_seq_fm_init +EXPORT_SYMBOL sound/core/seq/instr/snd-ainstr-simple 0xd5791cfd snd_seq_simple_init +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x212f1a10 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x296b99f2 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x2e7d1116 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x5f70ec52 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x66212d85 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x69ee7fd1 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xc84df378 snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xfc9dc5d5 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x7c47a3ae snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x92469e4d snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x1d11b537 snd_seq_instr_find +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x284a850a snd_seq_instr_free_use +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x72f4b68a snd_seq_instr_list_new +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0x85033f85 snd_seq_instr_list_free +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xcdc18574 snd_seq_instr_list_free_cond +EXPORT_SYMBOL sound/core/seq/snd-seq-instr 0xf9f984b1 snd_seq_instr_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6c6f1a61 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x68b9bd07 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x998f2126 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9b1825a9 snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc51650a snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd9381115 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xde2fd5a5 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe58d6519 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xebb191cc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xee676afc snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0510fa5c snd_card_free +EXPORT_SYMBOL sound/core/snd 0x0b9f0f2c snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x1039b6ab snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x14e1b39d snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x2220ef77 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x27516212 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x27fdcc39 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x2822613a snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x30a7f010 snd_cards +EXPORT_SYMBOL sound/core/snd 0x31d6dcfd snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x33196303 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x376e04bf release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x37e3d230 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b07dd57 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x4234dd24 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x445946c9 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x46b80086 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x4941c614 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4c93b598 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x54d65c5c snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x60115dbb snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x64e8464f snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x65f542ea snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x724663ba snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x782b4a9d snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x7a53c8af snd_card_register +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x93685d02 snd_card_new +EXPORT_SYMBOL sound/core/snd 0x97c79257 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0xa47f1786 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xb213fe8b snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xbcff4541 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xc841e9a6 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xca4d5082 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xcfdf6302 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xd2b13e07 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xe06e8e14 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xe0d948c8 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xe36d4e2a snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xe684b704 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xef2fa30d snd_device_free +EXPORT_SYMBOL sound/core/snd 0xf355df7d snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xf4bcdbfd snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd-hwdep 0x32e731dc snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x0c59d80e snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x11db0881 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x136b002f snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x44495368 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x73668c3d snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0e59cc64 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1d397c3e snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x20688e4b snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x2e5536f6 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x331a1173 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x34ff0d10 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x34ff1a44 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x375d2d09 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x395e287f snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0x3aee83b9 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x3fea666f snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x443e6c25 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x4fcb279a snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5f3a19de snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x61e01159 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x6432c332 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x684395b0 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x68c0e651 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x6bdbe608 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x6c9bc157 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x74d38fb7 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x78b77aed snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x7a43a251 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x7c5cec98 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x7fc07f8b snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x827320cf snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x89a31a56 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x8c98069e snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x8d380095 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x99bc5546 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x9d1279bd snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x9fdea959 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0xa5881b89 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xa5e36a5a snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xab6303d8 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xb351d157 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc3be5270 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd211d422 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xd5f8988a snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xf2a21d81 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6ff62bb snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xfc98e8b0 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-rawmidi 0x224356ec snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x23502ea4 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3e9f4f90 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4213307b snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5175578d snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5b2a5202 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5c076d9a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5d7fdbc0 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5deef7e7 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x73aeab44 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x74afb9af snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x78ee01c5 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb408adae snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb5be327e snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb74da44c snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc3177790 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd4fed797 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-timer 0x09617686 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x2aa35f99 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x33d643df snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x4da58d8a snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x4ddb2318 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x57f9c4e8 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x5c7b8516 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x66f3b014 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x74327240 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x80b0cecb snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xaddbef67 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xc15105a7 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xc4e57ca2 snd_timer_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x3a66c47a snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x73c4c993 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xfe618b58 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x248f7483 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x35d82dab snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x36217639 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5e65a46f snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa177ef4e snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa3a793cc snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbb402dd1 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cadb14b snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x37181c2c snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4b38c5dd snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x58854390 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x70cc31e7 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8bd450f2 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x98d6d943 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb87960c1 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc2f7cb40 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe7619ca5 snd_vx_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x076af442 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x650eef55 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x87684f8f snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa39b0dd2 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe03ae7d7 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf8ee9492 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x28eeac6e snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x30eb842a snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd049ec63 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe1907aa6 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf6c34442 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf8946362 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x811d5c86 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xda357da3 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf1bbc09c snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfa210aa9 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x94b0af95 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xee1dc8cd snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x3572f119 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x933e59e3 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x26d9f75a snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x658f1d13 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x81fbd7a3 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd76cd172 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd7d696be snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-i2c 0x145ee686 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x592266e0 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5ea96b35 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x75d2a946 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9d3a78d9 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9d704f0a snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x22b2ef41 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2cd09b85 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x366a03cb snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3f5bb719 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4a5685fa snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7c96aa7d snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x82f7913c snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8ff3bb06 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9394e046 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x94b2707c snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x0ba4ef1d snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x8f7dd056 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xba0ff6d7 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe34208d1 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/oss/ac97_codec 0x099991f9 ac97_set_adc_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0x19548499 ac97_release_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0x4e34ccc6 ac97_alloc_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0x95c02bc6 ac97_set_dac_rate +EXPORT_SYMBOL sound/oss/ac97_codec 0xa70e340e ac97_probe_codec +EXPORT_SYMBOL sound/oss/ac97_codec 0xbae4da72 ac97_read_proc +EXPORT_SYMBOL sound/oss/ad1848 0x54bd7d08 attach_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0x9839a618 probe_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0x9bf1cc62 ad1848_unload +EXPORT_SYMBOL sound/oss/ad1848 0xa4fcfbf5 ad1848_init +EXPORT_SYMBOL sound/oss/ad1848 0xb29a9148 unload_ms_sound +EXPORT_SYMBOL sound/oss/ad1848 0xc04f6f67 ad1848_control +EXPORT_SYMBOL sound/oss/ad1848 0xf06eb004 ad1848_detect +EXPORT_SYMBOL sound/oss/mpu401 0x2f7a92d1 attach_mpu401 +EXPORT_SYMBOL sound/oss/mpu401 0x5febf284 unload_mpu401 +EXPORT_SYMBOL sound/oss/mpu401 0x8874e39a probe_mpu401 +EXPORT_SYMBOL sound/oss/msnd 0x1186f48f msnd_fifo_read +EXPORT_SYMBOL sound/oss/msnd 0x340a3ddf msnd_init_queue +EXPORT_SYMBOL sound/oss/msnd 0x54230dc1 msnd_fifo_write +EXPORT_SYMBOL sound/oss/msnd 0x5a0b77d7 msnd_unregister +EXPORT_SYMBOL sound/oss/msnd 0x5ddfc819 msnd_send_word +EXPORT_SYMBOL sound/oss/msnd 0x6601493b msnd_fifo_make_empty +EXPORT_SYMBOL sound/oss/msnd 0x7a69956c msnd_disable_irq +EXPORT_SYMBOL sound/oss/msnd 0x9274d677 msnd_fifo_free +EXPORT_SYMBOL sound/oss/msnd 0xa0200156 msnd_send_dsp_cmd +EXPORT_SYMBOL sound/oss/msnd 0xa2dd0453 msnd_upload_host +EXPORT_SYMBOL sound/oss/msnd 0xade99e25 msnd_fifo_alloc +EXPORT_SYMBOL sound/oss/msnd 0xb3520772 msnd_fifo_init +EXPORT_SYMBOL sound/oss/msnd 0xdf0f59eb msnd_fifo_write_io +EXPORT_SYMBOL sound/oss/msnd 0xe2399939 msnd_register +EXPORT_SYMBOL sound/oss/msnd 0xf4c4f662 msnd_fifo_read_io +EXPORT_SYMBOL sound/oss/msnd 0xfa62f518 msnd_enable_irq +EXPORT_SYMBOL sound/oss/sb_lib 0x09e4ed86 sb_dsp_init +EXPORT_SYMBOL sound/oss/sb_lib 0x42424109 sb_be_quiet +EXPORT_SYMBOL sound/oss/sb_lib 0x450f9aea smw_free +EXPORT_SYMBOL sound/oss/sb_lib 0x4f5d58e9 probe_sbmpu +EXPORT_SYMBOL sound/oss/sb_lib 0x74afd69c unload_sbmpu +EXPORT_SYMBOL sound/oss/sb_lib 0xc4884969 sb_dsp_unload +EXPORT_SYMBOL sound/oss/sb_lib 0xd8a2731c sb_dsp_detect +EXPORT_SYMBOL sound/oss/sound 0x04c87ec8 compute_finetune +EXPORT_SYMBOL sound/oss/sound 0x06339815 sound_unload_synthdev +EXPORT_SYMBOL sound/oss/sound 0x0b246d71 midi_devs +EXPORT_SYMBOL sound/oss/sound 0x0f280035 conf_printf +EXPORT_SYMBOL sound/oss/sound 0x112a395a mixer_devs +EXPORT_SYMBOL sound/oss/sound 0x17ba231d seq_input_event +EXPORT_SYMBOL sound/oss/sound 0x1b3df3cf sound_alloc_mixerdev +EXPORT_SYMBOL sound/oss/sound 0x1f395686 MIDIbuf_avail +EXPORT_SYMBOL sound/oss/sound 0x2161d5e8 sound_timer_init +EXPORT_SYMBOL sound/oss/sound 0x2aa31695 midi_synth_kill_note +EXPORT_SYMBOL sound/oss/sound 0x2c5e2fa2 sound_timer_devs +EXPORT_SYMBOL sound/oss/sound 0x394cb088 sound_free_dma +EXPORT_SYMBOL sound/oss/sound 0x418f5fbe sound_close_dma +EXPORT_SYMBOL sound/oss/sound 0x4cd01bdd num_audiodevs +EXPORT_SYMBOL sound/oss/sound 0x4ff47e9d midi_synth_setup_voice +EXPORT_SYMBOL sound/oss/sound 0x51e354b2 sound_alloc_timerdev +EXPORT_SYMBOL sound/oss/sound 0x56504ca2 midi_synth_reset +EXPORT_SYMBOL sound/oss/sound 0x5d986fc9 note_to_freq +EXPORT_SYMBOL sound/oss/sound 0x604ea9f2 sound_install_mixer +EXPORT_SYMBOL sound/oss/sound 0x7679ee76 seq_copy_to_input +EXPORT_SYMBOL sound/oss/sound 0x7bdf0907 conf_printf2 +EXPORT_SYMBOL sound/oss/sound 0x892093e0 midi_synth_controller +EXPORT_SYMBOL sound/oss/sound 0x8a896d92 sound_install_audiodrv +EXPORT_SYMBOL sound/oss/sound 0x90bd9714 sequencer_timer +EXPORT_SYMBOL sound/oss/sound 0x987bcf12 DMAbuf_outputintr +EXPORT_SYMBOL sound/oss/sound 0x9a95733f sound_alloc_dma +EXPORT_SYMBOL sound/oss/sound 0x9bdaf24d midi_synth_start_note +EXPORT_SYMBOL sound/oss/sound 0x9d845b18 num_mixers +EXPORT_SYMBOL sound/oss/sound 0xa1d5f04f load_mixer_volumes +EXPORT_SYMBOL sound/oss/sound 0xa1eae7cf num_midis +EXPORT_SYMBOL sound/oss/sound 0xa41ead5f sound_unload_timerdev +EXPORT_SYMBOL sound/oss/sound 0xa51c913b sound_unload_mixerdev +EXPORT_SYMBOL sound/oss/sound 0xa6bb414c sound_unload_mididev +EXPORT_SYMBOL sound/oss/sound 0xa948751e sound_unload_audiodev +EXPORT_SYMBOL sound/oss/sound 0xa98b66ec synth_devs +EXPORT_SYMBOL sound/oss/sound 0xad45df73 midi_synth_close +EXPORT_SYMBOL sound/oss/sound 0xaef743b2 midi_synth_ioctl +EXPORT_SYMBOL sound/oss/sound 0xb14b22cd midi_synth_hw_control +EXPORT_SYMBOL sound/oss/sound 0xb51587f6 do_midi_msg +EXPORT_SYMBOL sound/oss/sound 0xba413f87 sound_alloc_mididev +EXPORT_SYMBOL sound/oss/sound 0xba7dd041 midi_synth_bender +EXPORT_SYMBOL sound/oss/sound 0xc748d109 sound_alloc_synthdev +EXPORT_SYMBOL sound/oss/sound 0xcc4b8797 sound_open_dma +EXPORT_SYMBOL sound/oss/sound 0xd85be938 midi_synth_set_instr +EXPORT_SYMBOL sound/oss/sound 0xdb400afa midi_synth_panning +EXPORT_SYMBOL sound/oss/sound 0xe056b71c DMAbuf_start_dma +EXPORT_SYMBOL sound/oss/sound 0xe2675a79 sound_timer_interrupt +EXPORT_SYMBOL sound/oss/sound 0xeb315d99 DMAbuf_inputintr +EXPORT_SYMBOL sound/oss/sound 0xedcdf0ad audio_devs +EXPORT_SYMBOL sound/oss/sound 0xf1ea8a20 midi_synth_aftertouch +EXPORT_SYMBOL sound/oss/sound 0xf6b3a2fb midi_synth_open +EXPORT_SYMBOL sound/oss/sound 0xf7426da3 midi_synth_load_patch +EXPORT_SYMBOL sound/oss/sound 0xf78f6363 sequencer_init +EXPORT_SYMBOL sound/oss/sound 0xfa6871be sound_timer_syncinterval +EXPORT_SYMBOL sound/oss/sound 0xfddcbfb3 midi_synth_send_sysex +EXPORT_SYMBOL sound/oss/uart401 0x46248c57 uart401intr +EXPORT_SYMBOL sound/oss/uart401 0xb6bf1d50 probe_uart401 +EXPORT_SYMBOL sound/oss/uart401 0xecfdd9c9 unload_uart401 +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x05cfb601 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x078421fe snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x152e991a snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1b351bb2 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1fb1f972 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x53d54c3a snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7e63902d snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8c446c41 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9e939b5a snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa916d512 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb795ed1b snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc82df7fc snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xceb64a7c snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe9ef23f7 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf001ff3c snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfcc826d4 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfd1e1616 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x1fec13b3 snd_ak4531_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x65063598 snd_ak4531_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ak4531-codec 0x651ce115 snd_ak4531_suspend +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x20340d1b snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2dca2d2d snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x31e6e84b snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3c2dfeb3 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x722df865 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8e96023f snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x90d60ffa snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa04f73fc snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc4004b2d snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x13719c7b snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x17f9d5a0 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7041e2aa snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x16c90e56 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x192de586 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x19cc0115 snd_trident_synth_copy_from_user +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4f8057a8 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6db3c1f3 snd_trident_synth_alloc +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x75add0cd snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe8361507 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xfaf3a791 snd_trident_synth_free +EXPORT_SYMBOL sound/sound_firmware 0x39e3dd23 mod_firmware_load +EXPORT_SYMBOL sound/soundcore 0x40905c12 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x67e98b1e register_sound_midi +EXPORT_SYMBOL sound/soundcore 0x6e1b3b5a register_sound_special +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x85e83d51 register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xa9c3c8c0 register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xf4fb6003 sound_class +EXPORT_SYMBOL sound/soundcore 0xfdab6de3 unregister_sound_midi +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x040d1567 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5ab80c3c snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x97d70d2f snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xbbc39fe7 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc6c60eef snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd6950882 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/snd-util-mem 0x08e01f34 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x124ea3d3 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x57df7b50 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9bb7e09c snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc7a4c985 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xcd81744c snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd596f3a1 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe7c91a12 __snd_util_memblk_new +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usb-lib 0x64dca37b snd_usb_create_midi_interface +EXPORT_SYMBOL sound/usb/snd-usb-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00062842 register_atm_ioctl +EXPORT_SYMBOL vmlinux 0x00112f51 groups_alloc +EXPORT_SYMBOL vmlinux 0x001444bb datagram_poll +EXPORT_SYMBOL vmlinux 0x00212cc9 of_iomap +EXPORT_SYMBOL vmlinux 0x0039fc4f thaw_bdev +EXPORT_SYMBOL vmlinux 0x0055e8d0 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00ab6640 inode_init_once +EXPORT_SYMBOL vmlinux 0x00adcff4 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01075bf0 panic +EXPORT_SYMBOL vmlinux 0x010efc47 skb_store_bits +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x013badbc invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x016cbff4 inet_frag_find +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data +EXPORT_SYMBOL vmlinux 0x01ec8bce __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x01f62c8b pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x01fcb31d tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x023c2a7d netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x023d49fb remap_pfn_range +EXPORT_SYMBOL vmlinux 0x024c43c3 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x025da070 snprintf +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026c8623 init_file +EXPORT_SYMBOL vmlinux 0x027ebe5e pm_register +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02bd92b0 key_unlink +EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context +EXPORT_SYMBOL vmlinux 0x02db0440 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x02e7a518 __xfrm_lookup +EXPORT_SYMBOL vmlinux 0x02f6efd0 key_validate +EXPORT_SYMBOL vmlinux 0x03157fd9 ilookup5 +EXPORT_SYMBOL vmlinux 0x031a5588 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x03279da9 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x0363394e end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03a99c3b rb_prev +EXPORT_SYMBOL vmlinux 0x03ad71d7 submit_bio +EXPORT_SYMBOL vmlinux 0x03c8e5fb reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x03ef40a3 pre_task_out_intr +EXPORT_SYMBOL vmlinux 0x03fc4f7d pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x043b8483 __kfifo_get +EXPORT_SYMBOL vmlinux 0x044fbf49 mempool_kzalloc +EXPORT_SYMBOL vmlinux 0x04678420 bio_put +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048d0f43 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x04a20170 unshare_files +EXPORT_SYMBOL vmlinux 0x04c3bfac netpoll_setup +EXPORT_SYMBOL vmlinux 0x04f2bf2e tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x050468f7 __rtattr_parse_nested_compat +EXPORT_SYMBOL vmlinux 0x05426308 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x056623f7 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x057ef3cc neigh_compat_output +EXPORT_SYMBOL vmlinux 0x059613fd module_add_driver +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05c34f20 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x0613a04b ps2_drain +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x06165f1b inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x0624c74a unregister_8022_client +EXPORT_SYMBOL vmlinux 0x062aba95 mempool_free +EXPORT_SYMBOL vmlinux 0x0666c3d5 simple_set_mnt +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06cb34e5 init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x06d55e28 blk_init_queue +EXPORT_SYMBOL vmlinux 0x06ec7dd2 simple_statfs +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07034f10 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dc264 add_to_page_cache +EXPORT_SYMBOL vmlinux 0x0746ed53 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079cd7f1 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07e3934a alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x07f90fe9 skb_over_panic +EXPORT_SYMBOL vmlinux 0x07f9d633 create_proc_entry +EXPORT_SYMBOL vmlinux 0x081cbb09 clear_inode +EXPORT_SYMBOL vmlinux 0x081df320 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08407f2d lease_get_mtime +EXPORT_SYMBOL vmlinux 0x085300d4 tcp_v4_md5_do_add +EXPORT_SYMBOL vmlinux 0x0868a61e lease_modify +EXPORT_SYMBOL vmlinux 0x087f6b53 blk_plug_device +EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x092b007a sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages +EXPORT_SYMBOL vmlinux 0x0959c04a pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x09775cdc kref_get +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099530b6 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x09af990a tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09f61ced register_console +EXPORT_SYMBOL vmlinux 0x0a1bb59b proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a956f95 nf_hooks +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b518268 set_device_ro +EXPORT_SYMBOL vmlinux 0x0b669d0f vfs_writev +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b9396de pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x0b9a3d91 vfs_getattr +EXPORT_SYMBOL vmlinux 0x0bc0a117 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x0bc61146 blk_complete_request +EXPORT_SYMBOL vmlinux 0x0bdcfc8e netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x0c486b72 ide_unregister +EXPORT_SYMBOL vmlinux 0x0c5ef91b per_cpu__vm_event_states +EXPORT_SYMBOL vmlinux 0x0c949214 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x0cc26c03 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x0d1d0ed0 register_exec_domain +EXPORT_SYMBOL vmlinux 0x0d1eed26 do_mmap_pgoff +EXPORT_SYMBOL vmlinux 0x0d48997e sock_release +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d652ddf seq_lseek +EXPORT_SYMBOL vmlinux 0x0d8ab500 param_set_copystring +EXPORT_SYMBOL vmlinux 0x0d94e22f page_symlink +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0de348e7 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x0de9d19e lock_rename +EXPORT_SYMBOL vmlinux 0x0ded1ee1 net_statistics +EXPORT_SYMBOL vmlinux 0x0e08587f skb_queue_tail +EXPORT_SYMBOL vmlinux 0x0e099275 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x0ead5073 vscnprintf +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f2bb42d nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x0f2ce658 find_task_by_vpid +EXPORT_SYMBOL vmlinux 0x0f2e06d5 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0f3839b3 pci_remove_rom +EXPORT_SYMBOL vmlinux 0x0f666b49 dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x0fa27583 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fbb984b of_get_mac_address +EXPORT_SYMBOL vmlinux 0x0fd12078 brioctl_set +EXPORT_SYMBOL vmlinux 0x1001cd59 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x1021bb26 matroxfb_register_driver +EXPORT_SYMBOL vmlinux 0x106fac76 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x10cf757b unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10efd09a of_dev_get +EXPORT_SYMBOL vmlinux 0x10f2bf08 match_strcpy +EXPORT_SYMBOL vmlinux 0x110df63b scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x1124c315 mach_chrp +EXPORT_SYMBOL vmlinux 0x1150aaee i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x11698ddc matroxfb_g450_connect +EXPORT_SYMBOL vmlinux 0x1186cd8a framebuffer_release +EXPORT_SYMBOL vmlinux 0x1189fc62 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x118f01ea putname +EXPORT_SYMBOL vmlinux 0x1196b76f g450_mnp2f +EXPORT_SYMBOL vmlinux 0x119d18bd dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x11a0304a vfs_set_dqinfo +EXPORT_SYMBOL vmlinux 0x11af4298 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x12473bf1 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x1259e4fb ip_dev_find +EXPORT_SYMBOL vmlinux 0x12669c2d tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x126970ed param_set_uint +EXPORT_SYMBOL vmlinux 0x12708d94 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x12cf8edb console_stop +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x130f3150 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x139408e7 key_put +EXPORT_SYMBOL vmlinux 0x13ba5744 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x13d47f25 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x1413b409 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x141a9135 pci_remove_bus_device +EXPORT_SYMBOL vmlinux 0x144ed3a1 dev_base_lock +EXPORT_SYMBOL vmlinux 0x1467958a pci_enable_device_bars +EXPORT_SYMBOL vmlinux 0x1477c728 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x147e084e __kill_fasync +EXPORT_SYMBOL vmlinux 0x148a61d5 set_binfmt +EXPORT_SYMBOL vmlinux 0x14ad8036 kmem_cache_name +EXPORT_SYMBOL vmlinux 0x14e2a328 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x1535a2d3 ether_setup +EXPORT_SYMBOL vmlinux 0x1544aad4 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x154f8aea tcf_action_exec +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15c85f01 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x15daa3f2 pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0x160728ad pmu_register_sleep_notifier +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x161c5714 kobject_put +EXPORT_SYMBOL vmlinux 0x16215171 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x163e17ae serio_unregister_port +EXPORT_SYMBOL vmlinux 0x16479e8f panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1684f1b2 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x1689455f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x16c17432 xfrm_init_pmtu +EXPORT_SYMBOL vmlinux 0x16e911d4 down_write +EXPORT_SYMBOL vmlinux 0x171c0b73 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x17769a69 proc_dostring +EXPORT_SYMBOL vmlinux 0x17a76e71 rb_first +EXPORT_SYMBOL vmlinux 0x17cc1220 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18792648 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x18ba1c92 bdi_init +EXPORT_SYMBOL vmlinux 0x18bca7a3 genl_register_ops +EXPORT_SYMBOL vmlinux 0x18c85d73 kobject_get +EXPORT_SYMBOL vmlinux 0x18e7cf60 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x18ef5ca1 new_inode +EXPORT_SYMBOL vmlinux 0x1908cdbb init_task +EXPORT_SYMBOL vmlinux 0x192b7502 iget_locked +EXPORT_SYMBOL vmlinux 0x1966bf16 down_read_trylock +EXPORT_SYMBOL vmlinux 0x198e3a32 dget_locked +EXPORT_SYMBOL vmlinux 0x199c1a6a sock_recvmsg +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19c75ef4 load_nls +EXPORT_SYMBOL vmlinux 0x19f10dac tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x1a15e168 d_delete +EXPORT_SYMBOL vmlinux 0x1a28ed71 console_start +EXPORT_SYMBOL vmlinux 0x1a52ece3 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x1a73efab key_payload_reserve +EXPORT_SYMBOL vmlinux 0x1a825beb kobject_init +EXPORT_SYMBOL vmlinux 0x1a8b2fd8 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae8d7dc param_set_invbool +EXPORT_SYMBOL vmlinux 0x1aea1958 skb_split +EXPORT_SYMBOL vmlinux 0x1aeae114 tty_get_baud_rate +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0490a6 generic_write_checks +EXPORT_SYMBOL vmlinux 0x1b0f47e5 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b691821 ip_nat_decode_session +EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake +EXPORT_SYMBOL vmlinux 0x1bbe369c sock_no_poll +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bc7d084 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x1bfbe58a dquot_drop +EXPORT_SYMBOL vmlinux 0x1c0b744a tty_vhangup +EXPORT_SYMBOL vmlinux 0x1c19e11e generic_setlease +EXPORT_SYMBOL vmlinux 0x1c2a7813 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x1c2f2140 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x1cefe92a xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x1d26aa98 sprintf +EXPORT_SYMBOL vmlinux 0x1d325e4c sock_no_accept +EXPORT_SYMBOL vmlinux 0x1d96fa50 netdev_features_change +EXPORT_SYMBOL vmlinux 0x1dbdc841 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd4111a ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de26339 cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x1df91f2e generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x1e213f23 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e8aa7c0 irq_stat +EXPORT_SYMBOL vmlinux 0x1ea77630 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x1ebcc02a idr_for_each +EXPORT_SYMBOL vmlinux 0x1eeecbd9 iget5_locked +EXPORT_SYMBOL vmlinux 0x1f7cc628 mempool_create +EXPORT_SYMBOL vmlinux 0x1fa56d4f pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x1fae7a0b wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x1fdea6e2 __netif_schedule +EXPORT_SYMBOL vmlinux 0x1ffc60d6 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x1ffc661f stop_tty +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2016d224 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x2068473d vfs_readlink +EXPORT_SYMBOL vmlinux 0x20a3e061 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x20d90521 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x211d3c1f sock_i_ino +EXPORT_SYMBOL vmlinux 0x2136e4bf skb_under_panic +EXPORT_SYMBOL vmlinux 0x21530542 next_mmu_context +EXPORT_SYMBOL vmlinux 0x2166b9e9 generic_commit_write +EXPORT_SYMBOL vmlinux 0x216e384a serio_interrupt +EXPORT_SYMBOL vmlinux 0x21796e33 udp_disconnect +EXPORT_SYMBOL vmlinux 0x218f0aae iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x21ad4f67 vfs_readv +EXPORT_SYMBOL vmlinux 0x21bb86ad flush_dcache_page +EXPORT_SYMBOL vmlinux 0x21d34a52 deactivate_super +EXPORT_SYMBOL vmlinux 0x22459607 inet_put_port +EXPORT_SYMBOL vmlinux 0x2257648e lock_sock_nested +EXPORT_SYMBOL vmlinux 0x226e28f7 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x2273e80f __user_walk +EXPORT_SYMBOL vmlinux 0x2288378f system_state +EXPORT_SYMBOL vmlinux 0x22a73912 __tcp_put_md5sig_pool +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b6533b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x23042172 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x231f3cae ide_add_setting +EXPORT_SYMBOL vmlinux 0x232eb0fc dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x2346eca2 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x2373db06 d_path +EXPORT_SYMBOL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL vmlinux 0x23a7a3bd maps_protect +EXPORT_SYMBOL vmlinux 0x23ad070a set_current_groups +EXPORT_SYMBOL vmlinux 0x23b22922 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x23f2d36f memparse +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24083aa0 __nla_reserve +EXPORT_SYMBOL vmlinux 0x24359f51 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x244bed72 d_alloc +EXPORT_SYMBOL vmlinux 0x2469586d __serio_register_driver +EXPORT_SYMBOL vmlinux 0x24878836 secpath_dup +EXPORT_SYMBOL vmlinux 0x24ccc887 remote_llseek +EXPORT_SYMBOL vmlinux 0x24dd75b2 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x24e10c56 generic_file_aio_write_nolock +EXPORT_SYMBOL vmlinux 0x24f6d874 udp_ioctl +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2519492f dquot_commit +EXPORT_SYMBOL vmlinux 0x2537bacb tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x255d4620 inet_bind +EXPORT_SYMBOL vmlinux 0x256fa762 ide_dump_status +EXPORT_SYMBOL vmlinux 0x2574f891 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x257d101c blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x258e90d7 __generic_unplug_device +EXPORT_SYMBOL vmlinux 0x25905cdc kill_litter_super +EXPORT_SYMBOL vmlinux 0x25939071 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x2595dbda i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x259f30f6 register_sysrq_key +EXPORT_SYMBOL vmlinux 0x25ba121c mempool_resize +EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL vmlinux 0x25fa6f17 wait_for_completion +EXPORT_SYMBOL vmlinux 0x26101f1b ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x2615cc22 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x261acd73 ethtool_op_set_tx_ipv6_csum +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2651324e tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x26954239 pci_proc_detach_bus +EXPORT_SYMBOL vmlinux 0x26ab45ee vfs_create +EXPORT_SYMBOL vmlinux 0x26b4858a lock_may_write +EXPORT_SYMBOL vmlinux 0x26bda97d register_netdev +EXPORT_SYMBOL vmlinux 0x26c0505e blk_put_request +EXPORT_SYMBOL vmlinux 0x26d1f1ef dma_pool_free +EXPORT_SYMBOL vmlinux 0x26d93767 request_firmware +EXPORT_SYMBOL vmlinux 0x270e3d87 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x271582fd fb_set_cmap +EXPORT_SYMBOL vmlinux 0x272c4de2 get_sb_bdev +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x272e7488 cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x27563871 serio_rescan +EXPORT_SYMBOL vmlinux 0x275be110 should_remove_suid +EXPORT_SYMBOL vmlinux 0x278987ef netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x27a9a7eb ns_to_timespec +EXPORT_SYMBOL vmlinux 0x27b47413 bio_split_pool +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27dcaf64 kset_unregister +EXPORT_SYMBOL vmlinux 0x27e76f7e elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x27ee3775 __init_rwsem +EXPORT_SYMBOL vmlinux 0x288eeede sk_stream_mem_schedule +EXPORT_SYMBOL vmlinux 0x288f8ceb iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x28b17827 kill_fasync +EXPORT_SYMBOL vmlinux 0x28b8e3d3 pcim_iomap +EXPORT_SYMBOL vmlinux 0x28dcf25c udplite_hash +EXPORT_SYMBOL vmlinux 0x28f35813 scnprintf +EXPORT_SYMBOL vmlinux 0x28fb075b bd_claim +EXPORT_SYMBOL vmlinux 0x2910d2b7 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x292846f0 d_alloc_root +EXPORT_SYMBOL vmlinux 0x2940bb15 __mutex_init +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2953ec92 vmtruncate +EXPORT_SYMBOL vmlinux 0x29578b13 vmap +EXPORT_SYMBOL vmlinux 0x297c07f4 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x29ab5927 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x29b7e7a7 register_con_driver +EXPORT_SYMBOL vmlinux 0x2a127b06 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x2a13298c machine_id +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a394f88 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x2a81aec0 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x2a8adc79 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x2a8e734b ide_spin_wait_hwgroup +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ade22f2 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x2b0b412a pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x2b2235d6 llc_add_pack +EXPORT_SYMBOL vmlinux 0x2b41a401 tcp_prot +EXPORT_SYMBOL vmlinux 0x2b6aac8c tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x2b7f2193 mutex_unlock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bab65af qdisc_watchdog_schedule +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bea9430 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x2bfc3dd1 may_umount_tree +EXPORT_SYMBOL vmlinux 0x2c16d7a2 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x2c4f6039 nf_register_hook +EXPORT_SYMBOL vmlinux 0x2c4fc5bd km_state_notify +EXPORT_SYMBOL vmlinux 0x2c710b0c xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2c83c1de kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x2c9ce188 sync_inode +EXPORT_SYMBOL vmlinux 0x2cc2d52d vcc_hash +EXPORT_SYMBOL vmlinux 0x2cce0dac __napi_schedule +EXPORT_SYMBOL vmlinux 0x2cd9c8e5 kthread_stop +EXPORT_SYMBOL vmlinux 0x2cd9e459 param_set_short +EXPORT_SYMBOL vmlinux 0x2ce2f36f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x2cec68f6 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x2cf190e3 request_irq +EXPORT_SYMBOL vmlinux 0x2d28e108 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x2d5ae67a tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x2d84de6e blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x2d913ee5 of_device_alloc +EXPORT_SYMBOL vmlinux 0x2de9f66f param_get_long +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e7a276c i2c_register_driver +EXPORT_SYMBOL vmlinux 0x2e9a9d7b tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x2ebd56ca truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x2eccd4c4 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x2ed60cfd sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x2ee3538a input_release_device +EXPORT_SYMBOL vmlinux 0x2f01d265 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x2f0d36bf pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x2f2423a6 generic_removexattr +EXPORT_SYMBOL vmlinux 0x2f586866 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x2f58fc54 sock_wake_async +EXPORT_SYMBOL vmlinux 0x2f73ad00 mnt_unpin +EXPORT_SYMBOL vmlinux 0x2f9a0a73 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x2fd1d81c vfree +EXPORT_SYMBOL vmlinux 0x2fd9cdf5 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x3018ebba bio_pair_release +EXPORT_SYMBOL vmlinux 0x305e9d66 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x30711132 check_disk_change +EXPORT_SYMBOL vmlinux 0x308e86db pci_enable_bridges +EXPORT_SYMBOL vmlinux 0x30d6c932 destroy_EII_client +EXPORT_SYMBOL vmlinux 0x30e75125 remove_suid +EXPORT_SYMBOL vmlinux 0x30e79d6c netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x30eab85f alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x30f1a519 dentry_unhash +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x310d7a9a pci_find_slot +EXPORT_SYMBOL vmlinux 0x31419055 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3150db5f add_disk +EXPORT_SYMBOL vmlinux 0x31ac9591 devm_free_irq +EXPORT_SYMBOL vmlinux 0x31d40045 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x31eb46b9 vcc_sklist_lock +EXPORT_SYMBOL vmlinux 0x3232e3ae pci_iomap +EXPORT_SYMBOL vmlinux 0x323a8fe9 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x32576993 netdev_state_change +EXPORT_SYMBOL vmlinux 0x32613e21 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x328b2017 register_filesystem +EXPORT_SYMBOL vmlinux 0x33034df3 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x330fc90c netlink_clear_multicast_users +EXPORT_SYMBOL vmlinux 0x3360a963 param_set_ulong +EXPORT_SYMBOL vmlinux 0x336e1658 matroxfb_g450_setpll_cond +EXPORT_SYMBOL vmlinux 0x33934162 release_firmware +EXPORT_SYMBOL vmlinux 0x33a709e6 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x33c2322f kasprintf +EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x344bca43 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x3452f735 bio_alloc +EXPORT_SYMBOL vmlinux 0x345bf607 notify_change +EXPORT_SYMBOL vmlinux 0x3463de0c per_cpu____irq_regs +EXPORT_SYMBOL vmlinux 0x346ea792 dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x3473e4d9 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes +EXPORT_SYMBOL vmlinux 0x3496aa03 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34c9d0e0 qdisc_lock_tree +EXPORT_SYMBOL vmlinux 0x34d8dbb1 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x34eb296b d_instantiate +EXPORT_SYMBOL vmlinux 0x350190ee proc_net_netfilter +EXPORT_SYMBOL vmlinux 0x352353d6 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x355b34a6 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x358a6c56 find_vma +EXPORT_SYMBOL vmlinux 0x359103fe bioset_create +EXPORT_SYMBOL vmlinux 0x359af5a7 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x35acb449 seq_release_private +EXPORT_SYMBOL vmlinux 0x35afe08a close_bdev_excl +EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator +EXPORT_SYMBOL vmlinux 0x35c51785 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x35e3372a blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x35e9ba3c elv_rb_del +EXPORT_SYMBOL vmlinux 0x35f5e231 tcp_child_process +EXPORT_SYMBOL vmlinux 0x35fde710 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x36523fe9 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x3652e076 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x3679b651 blkdev_put +EXPORT_SYMBOL vmlinux 0x36b73f15 d_move +EXPORT_SYMBOL vmlinux 0x36cae60d neigh_table_clear +EXPORT_SYMBOL vmlinux 0x36e45c82 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x36e47222 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x36e4a083 init_mm +EXPORT_SYMBOL vmlinux 0x36f1958d simple_empty +EXPORT_SYMBOL vmlinux 0x36fd8f9a qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x36ffb95b udp_prot +EXPORT_SYMBOL vmlinux 0x370cc13c km_state_expired +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x3735d72e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x374848f5 tcp_check_req +EXPORT_SYMBOL vmlinux 0x37503746 kobject_unregister +EXPORT_SYMBOL vmlinux 0x37647e07 kfree_skb +EXPORT_SYMBOL vmlinux 0x378356ce sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db331d mach_efika +EXPORT_SYMBOL vmlinux 0x37df70d7 inet_release +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x381c60b9 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x3825d061 input_flush_device +EXPORT_SYMBOL vmlinux 0x385c3b8f proto_unregister +EXPORT_SYMBOL vmlinux 0x387c0967 vfs_lstat +EXPORT_SYMBOL vmlinux 0x38a58832 ethtool_op_get_sg +EXPORT_SYMBOL vmlinux 0x38abbb30 write_cache_pages +EXPORT_SYMBOL vmlinux 0x38b2d036 prepare_binprm +EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack +EXPORT_SYMBOL vmlinux 0x38bb1ece SELECT_DRIVE +EXPORT_SYMBOL vmlinux 0x38bd2024 idr_remove_all +EXPORT_SYMBOL vmlinux 0x38c7db0e kmalloc_caches +EXPORT_SYMBOL vmlinux 0x38c99093 move_addr_to_user +EXPORT_SYMBOL vmlinux 0x38dca2ed pci_remove_behind_bridge +EXPORT_SYMBOL vmlinux 0x38e2ecce block_read_full_page +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3908d11a rtnl_notify +EXPORT_SYMBOL vmlinux 0x39265464 unregister_key_type +EXPORT_SYMBOL vmlinux 0x3945fd43 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x3969ebce try_to_release_page +EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x39bdbe66 giveup_altivec +EXPORT_SYMBOL vmlinux 0x39cd88a7 get_empty_filp +EXPORT_SYMBOL vmlinux 0x39df8016 vfs_readdir +EXPORT_SYMBOL vmlinux 0x39e33251 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x39eebc7c textsearch_register +EXPORT_SYMBOL vmlinux 0x39f066e4 compute_creds +EXPORT_SYMBOL vmlinux 0x39f0b8ad sk_receive_skb +EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv +EXPORT_SYMBOL vmlinux 0x3a3e261f dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x3a495909 __ide_dma_end +EXPORT_SYMBOL vmlinux 0x3a4e7b4e xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x3a7ed385 icmp_send +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa4e622 blk_init_tags +EXPORT_SYMBOL vmlinux 0x3ab0a9ad matroxfb_g450_setclk +EXPORT_SYMBOL vmlinux 0x3ad53f6a call_usermodehelper_pipe +EXPORT_SYMBOL vmlinux 0x3b0b77cb key_negate_and_link +EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x3b3b371a fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x3b7a56dd setup_arg_pages +EXPORT_SYMBOL vmlinux 0x3ba2ecb2 keyring_clear +EXPORT_SYMBOL vmlinux 0x3ba5cb60 set_disk_ro +EXPORT_SYMBOL vmlinux 0x3bcb626c llc_mac_hdr_init +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bfbb215 I_BDEV +EXPORT_SYMBOL vmlinux 0x3bfcaa55 seq_path +EXPORT_SYMBOL vmlinux 0x3c408e5e kobject_add +EXPORT_SYMBOL vmlinux 0x3c7574d7 matroxfb_unregister_driver +EXPORT_SYMBOL vmlinux 0x3c77dbe3 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x3cb70483 get_write_access +EXPORT_SYMBOL vmlinux 0x3cb8a495 param_get_string +EXPORT_SYMBOL vmlinux 0x3cc0a3bb xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3cd0d92a __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf4bb77 __tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x3cfc61a0 sock_wfree +EXPORT_SYMBOL vmlinux 0x3d528b9b __secpath_destroy +EXPORT_SYMBOL vmlinux 0x3d7b17e0 key_task_permission +EXPORT_SYMBOL vmlinux 0x3d8182a4 audit_log_start +EXPORT_SYMBOL vmlinux 0x3dbc2cb9 fb_set_var +EXPORT_SYMBOL vmlinux 0x3dd7bf58 misc_deregister +EXPORT_SYMBOL vmlinux 0x3dff84c5 __brelse +EXPORT_SYMBOL vmlinux 0x3e234751 poll_initwait +EXPORT_SYMBOL vmlinux 0x3e35ae8f xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x3e59efb7 wireless_send_event +EXPORT_SYMBOL vmlinux 0x3e6caebd add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x3ecf8262 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eddc1b9 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x3ee0cc8f pci_request_region +EXPORT_SYMBOL vmlinux 0x3eea3d23 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f49d876 deregister_atm_ioctl +EXPORT_SYMBOL vmlinux 0x3f5cfda2 pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x3f71f913 i2c_smbus_write_quick +EXPORT_SYMBOL vmlinux 0x3f86d4bf contig_page_data +EXPORT_SYMBOL vmlinux 0x3fbcddc3 netdev_compute_features +EXPORT_SYMBOL vmlinux 0x3fc6c5cc sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400c52f3 input_free_device +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x405cb313 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x406787f2 ide_execute_command +EXPORT_SYMBOL vmlinux 0x4071f8fa send_sig +EXPORT_SYMBOL vmlinux 0x408777fd hippi_type_trans +EXPORT_SYMBOL vmlinux 0x408a5a34 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x408a991b backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x40ac8324 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode +EXPORT_SYMBOL vmlinux 0x4119a0a2 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x412ddc0c dcache_lock +EXPORT_SYMBOL vmlinux 0x414416ee grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414b1b95 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418db125 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x41b23fdd netif_device_attach +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4225837e mutex_lock +EXPORT_SYMBOL vmlinux 0x4242347d dquot_acquire +EXPORT_SYMBOL vmlinux 0x426bf74d i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x42bbf745 pci_find_bus +EXPORT_SYMBOL vmlinux 0x42e7cfa4 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4312191a ide_end_request +EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43bdd372 request_resource +EXPORT_SYMBOL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL vmlinux 0x43f9e883 vfs_statfs +EXPORT_SYMBOL vmlinux 0x4413bc7f pci_select_bars +EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x443f7ee4 skb_clone +EXPORT_SYMBOL vmlinux 0x4443b7d6 unlock_page +EXPORT_SYMBOL vmlinux 0x444779c4 nla_find +EXPORT_SYMBOL vmlinux 0x44a025da sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x44b911c3 rb_replace_node +EXPORT_SYMBOL vmlinux 0x44c214d1 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x44da053a qdisc_unlock_tree +EXPORT_SYMBOL vmlinux 0x44fd6c6d call_usermodehelper_freeinfo +EXPORT_SYMBOL vmlinux 0x4506be17 seq_open_private +EXPORT_SYMBOL vmlinux 0x451e85e6 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x4538f9ac pci_do_scan_bus +EXPORT_SYMBOL vmlinux 0x454c5bca pci_set_master +EXPORT_SYMBOL vmlinux 0x45779c64 of_platform_bus_type +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x459ddae9 simple_rmdir +EXPORT_SYMBOL vmlinux 0x45c2c598 per_cpu__kstat +EXPORT_SYMBOL vmlinux 0x45cb712d default_llseek +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x463071fe pci_enable_wake +EXPORT_SYMBOL vmlinux 0x46624a6c simple_getattr +EXPORT_SYMBOL vmlinux 0x4669158a unlock_new_inode +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46795f61 end_queued_request +EXPORT_SYMBOL vmlinux 0x46872dea serio_reconnect +EXPORT_SYMBOL vmlinux 0x46f321f4 adb_client_list +EXPORT_SYMBOL vmlinux 0x46fb5a42 vc_lock_resize +EXPORT_SYMBOL vmlinux 0x471863d0 macio_request_resource +EXPORT_SYMBOL vmlinux 0x4719ba4e kfifo_free +EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x472e1a40 alloc_disk +EXPORT_SYMBOL vmlinux 0x472fcd50 copy_io_context +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x475c7cab end_request +EXPORT_SYMBOL vmlinux 0x476ca565 __break_lease +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479419fa down_read +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47a7bff8 netlink_unicast +EXPORT_SYMBOL vmlinux 0x47f622ad cont_write_begin +EXPORT_SYMBOL vmlinux 0x4830f1f0 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x486b6407 hweight64 +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48be8101 i2c_probe +EXPORT_SYMBOL vmlinux 0x48f07026 key_create_or_update +EXPORT_SYMBOL vmlinux 0x48f9f12d complete_all +EXPORT_SYMBOL vmlinux 0x493e25e1 udp_hash +EXPORT_SYMBOL vmlinux 0x4946ae49 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x495ae9f9 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x497c902b tty_set_operations +EXPORT_SYMBOL vmlinux 0x49bfb977 poll_freewait +EXPORT_SYMBOL vmlinux 0x49c57dbe nf_hook_slow +EXPORT_SYMBOL vmlinux 0x49d57d3d generic_listxattr +EXPORT_SYMBOL vmlinux 0x49e96046 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3ab5ba vfs_follow_link +EXPORT_SYMBOL vmlinux 0x4a467349 task_in_intr +EXPORT_SYMBOL vmlinux 0x4a6cd6ee audit_log_end +EXPORT_SYMBOL vmlinux 0x4a752b67 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x4a783eb5 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x4a8c54b6 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4a9ce93b proc_root_fs +EXPORT_SYMBOL vmlinux 0x4abaea4b unregister_quota_format +EXPORT_SYMBOL vmlinux 0x4abcb038 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x4ad10abf load_nls_default +EXPORT_SYMBOL vmlinux 0x4ad5c382 matroxfb_enable_irq +EXPORT_SYMBOL vmlinux 0x4ae3491a __devm_request_region +EXPORT_SYMBOL vmlinux 0x4aeddbf3 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x4b1ce907 input_register_handler +EXPORT_SYMBOL vmlinux 0x4b2f14b4 jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b7cd409 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x4b855e8c reqsk_queue_alloc +EXPORT_SYMBOL vmlinux 0x4b9f3684 kfifo_init +EXPORT_SYMBOL vmlinux 0x4bb9de0f balance_dirty_pages_ratelimited_nr +EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags +EXPORT_SYMBOL vmlinux 0x4beacad5 netif_device_detach +EXPORT_SYMBOL vmlinux 0x4becbbb2 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1dfb2d skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x4c24730c vfs_mknod +EXPORT_SYMBOL vmlinux 0x4c312b03 mod_timer +EXPORT_SYMBOL vmlinux 0x4c3af445 __request_region +EXPORT_SYMBOL vmlinux 0x4c80dc14 del_gendisk +EXPORT_SYMBOL vmlinux 0x4cb7ecb3 subsys_create_file +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cde8cd7 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x4d276a62 fput +EXPORT_SYMBOL vmlinux 0x4d2b4b49 xfrm_bundle_ok +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d640d62 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x4d79aeae __ide_dma_on +EXPORT_SYMBOL vmlinux 0x4d9c2e36 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x4dc609a5 blk_remove_plug +EXPORT_SYMBOL vmlinux 0x4dcc2ca9 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x4ddc4b9f utf8_mbtowc +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e1f0706 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e41c847 gen_pool_create +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e772217 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x4e7b2e32 dput +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e8a2d42 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4eb237ce cdev_del +EXPORT_SYMBOL vmlinux 0x4f8e886a kernel_sendpage +EXPORT_SYMBOL vmlinux 0x4f90e628 xfrm_replay_check +EXPORT_SYMBOL vmlinux 0x4fa148b6 mpc52xx_find_and_map +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool +EXPORT_SYMBOL vmlinux 0x50451b4e console_drivers +EXPORT_SYMBOL vmlinux 0x504ad90b get_immrbase +EXPORT_SYMBOL vmlinux 0x50ab67fb fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x50eb0d53 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x50fed6f7 proc_ide_read_geometry +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x514787c8 end_page_writeback +EXPORT_SYMBOL vmlinux 0x5148accf pci_enable_device +EXPORT_SYMBOL vmlinux 0x51493d94 finish_wait +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x51b5f9ec cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x51e54dae block_sync_page +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51fb25f4 block_commit_write +EXPORT_SYMBOL vmlinux 0x5209882f kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x5222697a arp_xmit +EXPORT_SYMBOL vmlinux 0x525ed16a sync_page_range +EXPORT_SYMBOL vmlinux 0x5270e104 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy +EXPORT_SYMBOL vmlinux 0x52a76bf3 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x52b97fb9 task_session_nr_ns +EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL vmlinux 0x52d7ff2d remove_inode_hash +EXPORT_SYMBOL vmlinux 0x52dda782 blk_free_tags +EXPORT_SYMBOL vmlinux 0x52fb6e6e macio_request_resources +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x532f2924 param_get_byte +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53373b18 sock_rfree +EXPORT_SYMBOL vmlinux 0x537ae4b4 of_unregister_platform_driver +EXPORT_SYMBOL vmlinux 0x53852ed9 clip_tbl_hook +EXPORT_SYMBOL vmlinux 0x539945b2 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x53a04a02 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53ec2529 ip_mc_rejoin_group +EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate +EXPORT_SYMBOL vmlinux 0x544e61f0 sysctl_jiffies +EXPORT_SYMBOL vmlinux 0x54aa4e04 sysctl_intvec +EXPORT_SYMBOL vmlinux 0x54addd4c input_set_capability +EXPORT_SYMBOL vmlinux 0x54b8358b pcim_enable_device +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550db9d0 posix_test_lock +EXPORT_SYMBOL vmlinux 0x552a9329 fd_install +EXPORT_SYMBOL vmlinux 0x553a1a43 blk_queue_ordered +EXPORT_SYMBOL vmlinux 0x556643e3 llc_sap_list_lock +EXPORT_SYMBOL vmlinux 0x556870fa atm_proc_root +EXPORT_SYMBOL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55d3535e pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x55e2dc4c cpufreq_gov_performance +EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x56052d96 blk_queue_max_phys_segments +EXPORT_SYMBOL vmlinux 0x5616a4ec unlock_super +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x566766f1 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56af4eda tr_type_trans +EXPORT_SYMBOL vmlinux 0x56bd1c2b neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x56bd8f36 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56edceeb cpufreq_debug_printk +EXPORT_SYMBOL vmlinux 0x570fca69 fb_get_mode +EXPORT_SYMBOL vmlinux 0x5734e66b arp_find +EXPORT_SYMBOL vmlinux 0x576050bd tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x578a6abc of_platform_device_create +EXPORT_SYMBOL vmlinux 0x57bffc4d request_key +EXPORT_SYMBOL vmlinux 0x57d1da75 blk_end_sync_rq +EXPORT_SYMBOL vmlinux 0x57dff822 mapping_tagged +EXPORT_SYMBOL vmlinux 0x580df321 inet_listen_wlock +EXPORT_SYMBOL vmlinux 0x5817c38e pci_release_region +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x582bfb16 d_alloc_name +EXPORT_SYMBOL vmlinux 0x582fe096 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58624ae9 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x586c43ed init_buffer +EXPORT_SYMBOL vmlinux 0x586d47e8 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x589e6715 lookup_one_len +EXPORT_SYMBOL vmlinux 0x58a2d9ba pci_busdev_to_OF_node +EXPORT_SYMBOL vmlinux 0x58ad6c2a sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x58c751dc tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5912993e eth_header_parse +EXPORT_SYMBOL vmlinux 0x5913913a node_states +EXPORT_SYMBOL vmlinux 0x592a8757 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e97c7 matroxfb_DAC_in +EXPORT_SYMBOL vmlinux 0x5952b799 dev_mc_delete +EXPORT_SYMBOL vmlinux 0x59635b3c xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x5967bf48 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x596c086d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x59a1261a generic_writepages +EXPORT_SYMBOL vmlinux 0x59ab4080 cap_bset +EXPORT_SYMBOL vmlinux 0x59acbf1a shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x59cbdbc9 dquot_release +EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier +EXPORT_SYMBOL vmlinux 0x59e4cdf9 matrox_millennium +EXPORT_SYMBOL vmlinux 0x59f1cd57 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x5a34a67a ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x5a46ee87 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot +EXPORT_SYMBOL vmlinux 0x5a9c553d iunique +EXPORT_SYMBOL vmlinux 0x5a9ecfea __neigh_event_send +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5abafe51 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x5ac6c47d nla_put +EXPORT_SYMBOL vmlinux 0x5ad5ef63 pci_get_slot +EXPORT_SYMBOL vmlinux 0x5af90099 atm_dev_register +EXPORT_SYMBOL vmlinux 0x5b070efa inet_frag_kill +EXPORT_SYMBOL vmlinux 0x5b12f501 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x5b280c60 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b67399e set_blocksize +EXPORT_SYMBOL vmlinux 0x5b88d7bb udp_poll +EXPORT_SYMBOL vmlinux 0x5b9e2637 __inet6_hash +EXPORT_SYMBOL vmlinux 0x5bdb8b79 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x5be261ca proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x5bf50fd2 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x5bf5c40c generic_make_request +EXPORT_SYMBOL vmlinux 0x5c006d38 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x5c03214f gen_new_estimator +EXPORT_SYMBOL vmlinux 0x5c372971 llc_station_mac_sa +EXPORT_SYMBOL vmlinux 0x5c3e2a1e invalidate_partition +EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq +EXPORT_SYMBOL vmlinux 0x5c9c274e netdev_set_master +EXPORT_SYMBOL vmlinux 0x5cc06d8a xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x5d0ede34 dev_mc_add +EXPORT_SYMBOL vmlinux 0x5d17518f schedule_delayed_work_on +EXPORT_SYMBOL vmlinux 0x5d257576 posix_acl_permission +EXPORT_SYMBOL vmlinux 0x5d360879 cpu_sysdev_class +EXPORT_SYMBOL vmlinux 0x5d73fdc9 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x5d9cd9e1 dev_open +EXPORT_SYMBOL vmlinux 0x5da54256 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x5da94112 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x5dab0ad2 icmp_statistics +EXPORT_SYMBOL vmlinux 0x5dfa4696 move_addr_to_kernel +EXPORT_SYMBOL vmlinux 0x5e15e175 km_query +EXPORT_SYMBOL vmlinux 0x5e2d404a alloc_tty_driver +EXPORT_SYMBOL vmlinux 0x5e6a3d62 blk_get_request +EXPORT_SYMBOL vmlinux 0x5ebbd26a of_release_dev +EXPORT_SYMBOL vmlinux 0x5ec45c23 d_splice_alias +EXPORT_SYMBOL vmlinux 0x5ef541d8 ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x5f02be5c ide_register_hw +EXPORT_SYMBOL vmlinux 0x5f077bd8 bdget +EXPORT_SYMBOL vmlinux 0x5f29d52a pci_restore_state +EXPORT_SYMBOL vmlinux 0x5f2a9856 vfs_unlink +EXPORT_SYMBOL vmlinux 0x5f32245a sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x5f4517a7 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x5f51c76b inet_add_protocol +EXPORT_SYMBOL vmlinux 0x5f6979cd km_new_mapping +EXPORT_SYMBOL vmlinux 0x5f6ee7bb tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f8bebbc proc_dointvec +EXPORT_SYMBOL vmlinux 0x5fc4f6ec simple_fill_super +EXPORT_SYMBOL vmlinux 0x5fe558fa do_sync_write +EXPORT_SYMBOL vmlinux 0x5fe719c9 devm_ioremap +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601d9819 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x60205cd4 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x60381953 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x604383de bdi_destroy +EXPORT_SYMBOL vmlinux 0x6047c4da gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x6054597e dcache_dir_open +EXPORT_SYMBOL vmlinux 0x605e6bc6 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x60638231 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60d127f5 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x60d21875 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x60ed246f get_unmapped_area +EXPORT_SYMBOL vmlinux 0x60f29676 simple_rename +EXPORT_SYMBOL vmlinux 0x60fd7012 of_match_device +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61290ec6 kill_pgrp +EXPORT_SYMBOL vmlinux 0x6144cd08 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x617dc43b soft_cursor +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c51881 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x62087833 udplite_prot +EXPORT_SYMBOL vmlinux 0x620ebf92 atm_init_aal5 +EXPORT_SYMBOL vmlinux 0x621a606a sk_stream_error +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x626f9445 generic_permission +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x62aab859 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0x62cceddc skb_queue_head +EXPORT_SYMBOL vmlinux 0x63150e06 clk_get_parent +EXPORT_SYMBOL vmlinux 0x6359d31e __scm_send +EXPORT_SYMBOL vmlinux 0x63663a34 sock_create +EXPORT_SYMBOL vmlinux 0x63680510 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x63a2bc5a devm_iounmap +EXPORT_SYMBOL vmlinux 0x63a98f7c sb_has_dirty_inodes +EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640d7930 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x6433fbdf blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x64371245 submit_bh +EXPORT_SYMBOL vmlinux 0x644fe2ea generic_setxattr +EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid +EXPORT_SYMBOL vmlinux 0x64590728 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x645fca8c read_cache_page +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x649662f1 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a860d2 kernel_listen +EXPORT_SYMBOL vmlinux 0x64aede08 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x64c4b570 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x64d333e6 d_genocide +EXPORT_SYMBOL vmlinux 0x64ea0000 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x65011fab generic_ro_fops +EXPORT_SYMBOL vmlinux 0x650128e7 br_fdb_get_hook +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6554ee38 dev_unicast_add +EXPORT_SYMBOL vmlinux 0x656826a2 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x657efe4a tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x65a1b4c1 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x65a70d6d generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x65ab9f9a generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x6604dcfd pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x660bf5b7 i2c_detach_client +EXPORT_SYMBOL vmlinux 0x66175692 module_refcount +EXPORT_SYMBOL vmlinux 0x661e6ec8 bioset_free +EXPORT_SYMBOL vmlinux 0x66274881 ppc_ide_md +EXPORT_SYMBOL vmlinux 0x66288ae1 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x6634683f skb_copy_bits +EXPORT_SYMBOL vmlinux 0x6668055b mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x66882fa7 simple_write_begin +EXPORT_SYMBOL vmlinux 0x6688cc63 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66972417 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x66af133c __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66e0c5bc force_sig +EXPORT_SYMBOL vmlinux 0x66f9b977 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x670c648b mntput_no_expire +EXPORT_SYMBOL vmlinux 0x670f4e8b tcp_close +EXPORT_SYMBOL vmlinux 0x6711ef90 bdput +EXPORT_SYMBOL vmlinux 0x6720dd7a clear_user_page +EXPORT_SYMBOL vmlinux 0x67ac2df3 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x67b7b363 simple_unlink +EXPORT_SYMBOL vmlinux 0x67dc7882 blk_start_queueing +EXPORT_SYMBOL vmlinux 0x67f107b6 of_get_address +EXPORT_SYMBOL vmlinux 0x67f304df blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x6847887d kernel_bind +EXPORT_SYMBOL vmlinux 0x68840317 tc_classify +EXPORT_SYMBOL vmlinux 0x68c0c118 kill_pid +EXPORT_SYMBOL vmlinux 0x6919738e con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x691b15bd path_release +EXPORT_SYMBOL vmlinux 0x693f7ddb input_register_device +EXPORT_SYMBOL vmlinux 0x6989a769 vsnprintf +EXPORT_SYMBOL vmlinux 0x698bc502 cdev_add +EXPORT_SYMBOL vmlinux 0x698e0b02 ide_do_reset +EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a47571d __set_personality +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a8bd3dd textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6abfaa2a pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6b06c759 find_task_by_pid_ns +EXPORT_SYMBOL vmlinux 0x6b0d3b2f generic_readlink +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b84c293 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x6bf26f5b pskb_copy +EXPORT_SYMBOL vmlinux 0x6c0ba595 fsync_bdev +EXPORT_SYMBOL vmlinux 0x6c1c4da0 ide_stall_queue +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6cb0e492 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cebe61b neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x6cf70787 block_write_end +EXPORT_SYMBOL vmlinux 0x6cfbc230 get_disk +EXPORT_SYMBOL vmlinux 0x6d02721d iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x6d0da34c param_get_short +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d41bb95 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x6d61de2e media_bay_set_ide_infos +EXPORT_SYMBOL vmlinux 0x6d636598 pci_dev_put +EXPORT_SYMBOL vmlinux 0x6d90dda1 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x6da508d3 rwsem_wake +EXPORT_SYMBOL vmlinux 0x6da5a3f2 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6db06a42 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e2ece60 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x6e3ac372 kobject_register +EXPORT_SYMBOL vmlinux 0x6e42f52e eth_type_trans +EXPORT_SYMBOL vmlinux 0x6e440b58 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e808fd3 blkdev_get +EXPORT_SYMBOL vmlinux 0x6e857f7c block_write_full_page +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6edacbe1 sysctl_data +EXPORT_SYMBOL vmlinux 0x6f2c0668 vfs_quota_on_mount +EXPORT_SYMBOL vmlinux 0x6f5ed264 read_dev_sector +EXPORT_SYMBOL vmlinux 0x6f7dda17 ida_pre_get +EXPORT_SYMBOL vmlinux 0x6fa83c3e follow_down +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x7008a9b7 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0x70178ab9 sync_blockdev +EXPORT_SYMBOL vmlinux 0x7020f45d kernel_connect +EXPORT_SYMBOL vmlinux 0x7030d8c8 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x703e48bf dev_close +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7088fc6a ethtool_op_get_tx_csum +EXPORT_SYMBOL vmlinux 0x70998cf2 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x709ce2ee elv_queue_empty +EXPORT_SYMBOL vmlinux 0x70a65856 find_lock_page +EXPORT_SYMBOL vmlinux 0x70c66486 ptrace_notify +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x71008f1b neigh_table_init +EXPORT_SYMBOL vmlinux 0x71326900 cad_pid +EXPORT_SYMBOL vmlinux 0x7163b045 sk_alloc +EXPORT_SYMBOL vmlinux 0x716a3c9b __f_setown +EXPORT_SYMBOL vmlinux 0x7175d41e devm_ioport_map +EXPORT_SYMBOL vmlinux 0x719830fa udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71aa30c4 __reqsk_queue_destroy +EXPORT_SYMBOL vmlinux 0x71b7f4ff bio_hw_segments +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71d24add ide_dma_off +EXPORT_SYMBOL vmlinux 0x7201aa0e pci_remove_bus +EXPORT_SYMBOL vmlinux 0x7213b658 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x72270e35 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x725dbe11 bio_init +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72cefafd vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x730c3888 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x7361c99c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x7387bcd0 names_cachep +EXPORT_SYMBOL vmlinux 0x73930886 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x73c07880 macio_register_driver +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x74301b8f inode_add_bytes +EXPORT_SYMBOL vmlinux 0x7466c471 seq_release +EXPORT_SYMBOL vmlinux 0x74756f38 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74886575 atm_alloc_charge +EXPORT_SYMBOL vmlinux 0x74a6f7c1 macio_dev_put +EXPORT_SYMBOL vmlinux 0x74cc238d current_kernel_time +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x753c3d4a inet_del_protocol +EXPORT_SYMBOL vmlinux 0x75663fce kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x75c1ed62 dev_get_flags +EXPORT_SYMBOL vmlinux 0x75ee1b4d pci_scan_slot +EXPORT_SYMBOL vmlinux 0x76018263 pci_get_class +EXPORT_SYMBOL vmlinux 0x76078b9b mpage_writepage +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x766ef558 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x76951870 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x76b67b92 generic_getxattr +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d9b876 clk_set_rate +EXPORT_SYMBOL vmlinux 0x7736ec65 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x7739f543 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x774fb28f tcf_hash_create +EXPORT_SYMBOL vmlinux 0x776dd446 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x777a8e29 vprintk +EXPORT_SYMBOL vmlinux 0x778799bc __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fef95b flush_signals +EXPORT_SYMBOL vmlinux 0x782b0008 vsprintf +EXPORT_SYMBOL vmlinux 0x786a90ca i2c_master_send +EXPORT_SYMBOL vmlinux 0x787880e5 init_net +EXPORT_SYMBOL vmlinux 0x78964677 llc_sap_open +EXPORT_SYMBOL vmlinux 0x78cc3f84 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f4d72e sock_create_lite +EXPORT_SYMBOL vmlinux 0x78f4f20a page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x79059869 simple_link +EXPORT_SYMBOL vmlinux 0x79548584 set_bh_page +EXPORT_SYMBOL vmlinux 0x795e64d6 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x7994d400 unregister_console +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa05a8 match_token +EXPORT_SYMBOL vmlinux 0x79b9630e xfrm_nl +EXPORT_SYMBOL vmlinux 0x79f8f9b6 vfs_write +EXPORT_SYMBOL vmlinux 0x7a03c651 dev_unicast_delete +EXPORT_SYMBOL vmlinux 0x7a286cf5 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x7a379942 vfs_quota_off +EXPORT_SYMBOL vmlinux 0x7a3bd8fd vfs_get_dqinfo +EXPORT_SYMBOL vmlinux 0x7a85790e sock_sendmsg +EXPORT_SYMBOL vmlinux 0x7ad79d5c bdevname +EXPORT_SYMBOL vmlinux 0x7ae6c335 sock_no_bind +EXPORT_SYMBOL vmlinux 0x7ae8d404 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x7aec455c put_tty_driver +EXPORT_SYMBOL vmlinux 0x7b01b18f iput +EXPORT_SYMBOL vmlinux 0x7b23cf69 __serio_register_port +EXPORT_SYMBOL vmlinux 0x7b599770 i2c_transfer +EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x7b903b9d inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7b9b2d4a boot_tvec_bases +EXPORT_SYMBOL vmlinux 0x7bb90353 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7c29e015 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c494784 inet_frags_init +EXPORT_SYMBOL vmlinux 0x7c60d66e getname +EXPORT_SYMBOL vmlinux 0x7c686727 nf_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x7c8f99ae gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread +EXPORT_SYMBOL vmlinux 0x7cc0ef5f filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x7ceeb6e0 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7d090a37 d_find_alias +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1e00ce pci_alloc_consistent +EXPORT_SYMBOL vmlinux 0x7d411d11 __seq_open_private +EXPORT_SYMBOL vmlinux 0x7d43adc2 vfs_llseek +EXPORT_SYMBOL vmlinux 0x7d48030a default_hwif_mmiops +EXPORT_SYMBOL vmlinux 0x7d850612 utf8_mbstowcs +EXPORT_SYMBOL vmlinux 0x7dceceac capable +EXPORT_SYMBOL vmlinux 0x7e0ea9f3 register_framebuffer +EXPORT_SYMBOL vmlinux 0x7e672784 of_get_property +EXPORT_SYMBOL vmlinux 0x7e6af759 set_irq_chip +EXPORT_SYMBOL vmlinux 0x7e9e7564 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x7edbe80b input_close_device +EXPORT_SYMBOL vmlinux 0x7edcb701 init_timer +EXPORT_SYMBOL vmlinux 0x7edd3e47 mutex_trylock +EXPORT_SYMBOL vmlinux 0x7f02cda1 __scm_destroy +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f5f6576 may_umount +EXPORT_SYMBOL vmlinux 0x7f8723bd pcie_mch_quirk +EXPORT_SYMBOL vmlinux 0x7fc44bcd unlock_rename +EXPORT_SYMBOL vmlinux 0x7fcbae3b generic_osync_inode +EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x8085c7b1 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x80cc7af9 ioremap +EXPORT_SYMBOL vmlinux 0x80e1293f udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x80e6ec73 block_truncate_page +EXPORT_SYMBOL vmlinux 0x8105d457 complete_request_key +EXPORT_SYMBOL vmlinux 0x8110013a udp_sendmsg +EXPORT_SYMBOL vmlinux 0x8118ab37 elv_rb_add +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815588a6 clk_enable +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x817e9f92 ilookup +EXPORT_SYMBOL vmlinux 0x819a3ba6 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x81a2eef2 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81f85d63 skb_copy +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821f24e6 alloc_netdev_mq +EXPORT_SYMBOL vmlinux 0x8232eec2 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x82384d0b __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82797632 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x828e10e6 vfs_read +EXPORT_SYMBOL vmlinux 0x82b24e8f sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x82e482b3 filp_open +EXPORT_SYMBOL vmlinux 0x82e4d492 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x82e59756 blk_max_pfn +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82e9a6e5 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x8333c2f3 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x833b9d56 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x8367b97d do_SAK +EXPORT_SYMBOL vmlinux 0x83800bfa kref_init +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83aa5a60 proc_root +EXPORT_SYMBOL vmlinux 0x83e268eb inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x83eb704d matroxfb_vgaHWrestore +EXPORT_SYMBOL vmlinux 0x841818c3 skb_dequeue +EXPORT_SYMBOL vmlinux 0x84278011 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x8428f74d block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x8443129d pci_get_subsys +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x8458859d input_open_device +EXPORT_SYMBOL vmlinux 0x8494a6b5 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84fb625a simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x8513b511 qdisc_reset +EXPORT_SYMBOL vmlinux 0x8530af8c locks_init_lock +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x85832e5c pci_find_present +EXPORT_SYMBOL vmlinux 0x8587447d inet_getname +EXPORT_SYMBOL vmlinux 0x85902f79 rtattr_strlcpy +EXPORT_SYMBOL vmlinux 0x859204af sscanf +EXPORT_SYMBOL vmlinux 0x8594fb7d pci_free_consistent +EXPORT_SYMBOL vmlinux 0x859e76db clk_get +EXPORT_SYMBOL vmlinux 0x85aa800d neigh_seq_start +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x861daa28 alloc_etherdev_mq +EXPORT_SYMBOL vmlinux 0x863aad00 fb_pan_display +EXPORT_SYMBOL vmlinux 0x863cb91a utf8_wcstombs +EXPORT_SYMBOL vmlinux 0x865da0ac ida_remove +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86704827 filemap_fault +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86b072bf __bread +EXPORT_SYMBOL vmlinux 0x86b19f9b schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x87062afb inetdev_by_index +EXPORT_SYMBOL vmlinux 0x8747fee9 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x8785725d param_set_charp +EXPORT_SYMBOL vmlinux 0x8793556a sk_stop_timer +EXPORT_SYMBOL vmlinux 0x879b8f94 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x87c0f2de request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x883ef089 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x884c5b9e fb_blank +EXPORT_SYMBOL vmlinux 0x8885bab4 cdev_init +EXPORT_SYMBOL vmlinux 0x88885276 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x88c83ca9 netif_rx +EXPORT_SYMBOL vmlinux 0x88c91a40 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x89065164 pci_map_rom_copy +EXPORT_SYMBOL vmlinux 0x8914df7e invalidate_bdev +EXPORT_SYMBOL vmlinux 0x891e32b8 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x8929eb74 vfs_quota_sync +EXPORT_SYMBOL vmlinux 0x89451f2d netpoll_poll +EXPORT_SYMBOL vmlinux 0x8949858b schedule_work +EXPORT_SYMBOL vmlinux 0x895ca133 vfs_permission +EXPORT_SYMBOL vmlinux 0x896b96df tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897f110b pci_device_to_OF_node +EXPORT_SYMBOL vmlinux 0x898f2136 find_task_by_pid_type_ns +EXPORT_SYMBOL vmlinux 0x8990201c i2c_release_client +EXPORT_SYMBOL vmlinux 0x89aa585d call_usermodehelper_stdinpipe +EXPORT_SYMBOL vmlinux 0x89ce09e5 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89e9e039 neigh_destroy +EXPORT_SYMBOL vmlinux 0x89ea53d9 __lock_buffer +EXPORT_SYMBOL vmlinux 0x8a2575e6 sock_init_data +EXPORT_SYMBOL vmlinux 0x8a303849 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x8a413332 km_policy_expired +EXPORT_SYMBOL vmlinux 0x8a6911c3 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a90d932 allocate_resource +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab3810c tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x8ac59786 DAC1064_global_restore +EXPORT_SYMBOL vmlinux 0x8b2bf2d3 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x8b359a26 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x8b3731c9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x8ba1b07b tty_devnum +EXPORT_SYMBOL vmlinux 0x8bb33e7d __release_region +EXPORT_SYMBOL vmlinux 0x8bca35ec set_bdi_congested +EXPORT_SYMBOL vmlinux 0x8bf097f3 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c299d43 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x8c73cd63 __alloc_pages +EXPORT_SYMBOL vmlinux 0x8c75053d input_unregister_handler +EXPORT_SYMBOL vmlinux 0x8c7b9bf5 nobh_writepage +EXPORT_SYMBOL vmlinux 0x8c8c2266 file_update_time +EXPORT_SYMBOL vmlinux 0x8c8ea089 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x8c97beed serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x8ca99a04 audit_log +EXPORT_SYMBOL vmlinux 0x8cc2de3b inode_double_unlock +EXPORT_SYMBOL vmlinux 0x8cc3021b macio_dev_get +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cef31a2 generic_fillattr +EXPORT_SYMBOL vmlinux 0x8d0731fe __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x8d11ac2e dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x8d2587a5 skb_gso_segment +EXPORT_SYMBOL vmlinux 0x8d3894f2 _ctype +EXPORT_SYMBOL vmlinux 0x8d3a5bde pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x8d4211f8 generic_unplug_device +EXPORT_SYMBOL vmlinux 0x8d4ec389 i2c_attach_client +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5642fc wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x8d66938c of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x8d714e4d kthread_bind +EXPORT_SYMBOL vmlinux 0x8d86bd64 elv_next_request +EXPORT_SYMBOL vmlinux 0x8d914da5 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x8dc77039 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x8de0b4cd dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x8df05c0e have_submounts +EXPORT_SYMBOL vmlinux 0x8df25109 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x8e206d4a xfrm_init_state +EXPORT_SYMBOL vmlinux 0x8e2e370a nla_reserve +EXPORT_SYMBOL vmlinux 0x8e357a57 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x8e725985 nf_log_unregister_pf +EXPORT_SYMBOL vmlinux 0x8e9eceaa complete_and_exit +EXPORT_SYMBOL vmlinux 0x8edd5206 do_splice_to +EXPORT_SYMBOL vmlinux 0x8f07d8ca __wait_on_bit +EXPORT_SYMBOL vmlinux 0x8f11c2cc mac_find_mode +EXPORT_SYMBOL vmlinux 0x8f200693 giveup_fpu +EXPORT_SYMBOL vmlinux 0x8f2f62ee br_handle_frame_hook +EXPORT_SYMBOL vmlinux 0x8f3e123d elevator_exit +EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data +EXPORT_SYMBOL vmlinux 0x8f83676f register_netdevice +EXPORT_SYMBOL vmlinux 0x8f97bb6d blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x8f9b86b2 kfifo_alloc +EXPORT_SYMBOL vmlinux 0x8fb1d209 ps2_command +EXPORT_SYMBOL vmlinux 0x8fc7337d struct_module +EXPORT_SYMBOL vmlinux 0x8fe6bc23 make_EII_client +EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x9048565e udp_get_port +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x906a452d dev_add_pack +EXPORT_SYMBOL vmlinux 0x906fc20a pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x9070b3f2 ioport_resource +EXPORT_SYMBOL vmlinux 0x90a1888b bio_phys_segments +EXPORT_SYMBOL vmlinux 0x9112646f fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x9148c7ae dma_spin_lock +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x916608c9 llc_set_station_handler +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x916ccfca ida_init +EXPORT_SYMBOL vmlinux 0x917a2e3f seq_printf +EXPORT_SYMBOL vmlinux 0x9191517b is_container_init +EXPORT_SYMBOL vmlinux 0x9194c450 __dst_free +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91b47680 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x91bf6225 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x91c7dedb sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x91d9b1f2 ethtool_op_set_tso +EXPORT_SYMBOL vmlinux 0x92025c21 netlink_ack +EXPORT_SYMBOL vmlinux 0x92399312 input_allocate_device +EXPORT_SYMBOL vmlinux 0x927ded24 arp_broken_ops +EXPORT_SYMBOL vmlinux 0x92b042e1 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x92bcb1de pci_choose_state +EXPORT_SYMBOL vmlinux 0x93030453 init_special_inode +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x932da67e kill_proc +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b03755 of_find_device_by_phandle +EXPORT_SYMBOL vmlinux 0x93c0ccb2 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x93c69acf param_set_byte +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9408aaa6 elv_dequeue_request +EXPORT_SYMBOL vmlinux 0x941f74b3 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x942740bd __bforget +EXPORT_SYMBOL vmlinux 0x943aebeb mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x94854006 sock_register +EXPORT_SYMBOL vmlinux 0x949a7569 end_dequeued_request +EXPORT_SYMBOL vmlinux 0x949ba0c7 ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x94a5e07b page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x94c60bd7 lock_super +EXPORT_SYMBOL vmlinux 0x9501d078 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x952e843b machine_is_compatible +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955c0b18 end_that_request_first +EXPORT_SYMBOL vmlinux 0x955d4aa2 matrox_mystique +EXPORT_SYMBOL vmlinux 0x9591682e set_anon_super +EXPORT_SYMBOL vmlinux 0x95a39149 seq_read +EXPORT_SYMBOL vmlinux 0x95c7b327 ethtool_op_set_tx_csum +EXPORT_SYMBOL vmlinux 0x95dfa75b cpu_present_map +EXPORT_SYMBOL vmlinux 0x961e5980 matroxfb_vgaHWinit +EXPORT_SYMBOL vmlinux 0x962bacdc xrlim_allow +EXPORT_SYMBOL vmlinux 0x966ceb90 make_bad_inode +EXPORT_SYMBOL vmlinux 0x96c98233 _tlbie +EXPORT_SYMBOL vmlinux 0x96dacae5 tty_check_change +EXPORT_SYMBOL vmlinux 0x96e36e75 kmap_high +EXPORT_SYMBOL vmlinux 0x96fb7e0b sk_dst_check +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9765f717 blk_queue_hardsect_size +EXPORT_SYMBOL vmlinux 0x977318e9 f_setown +EXPORT_SYMBOL vmlinux 0x9780e550 module_put +EXPORT_SYMBOL vmlinux 0x978f0068 mpage_writepages +EXPORT_SYMBOL vmlinux 0x97a6955e nf_ct_attach +EXPORT_SYMBOL vmlinux 0x97c02ba2 dquot_free_space +EXPORT_SYMBOL vmlinux 0x97c4ee4b __sk_dst_check +EXPORT_SYMBOL vmlinux 0x97cf1c19 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x981026f6 km_report +EXPORT_SYMBOL vmlinux 0x98403c05 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x985cf02c __breadahead +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98adfde2 request_module +EXPORT_SYMBOL vmlinux 0x98af4bf7 pci_dev_get +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x990e57c7 put_io_context +EXPORT_SYMBOL vmlinux 0x991a5e33 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x99488e86 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x99645673 elv_add_request +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999f1b70 blk_unplug +EXPORT_SYMBOL vmlinux 0x99aadb21 param_get_ulong +EXPORT_SYMBOL vmlinux 0x99ab39d7 fasync_helper +EXPORT_SYMBOL vmlinux 0x99ab5729 ide_hwifs +EXPORT_SYMBOL vmlinux 0x99b5cdfa fb_class +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd +EXPORT_SYMBOL vmlinux 0x99c3c0b0 vfs_fstat +EXPORT_SYMBOL vmlinux 0x99ca280e set_context +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99df7567 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink +EXPORT_SYMBOL vmlinux 0x99efa58a unbind_con_driver +EXPORT_SYMBOL vmlinux 0x99f00ba7 pci_disable_device +EXPORT_SYMBOL vmlinux 0x9a108cd3 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a218f27 module_remove_driver +EXPORT_SYMBOL vmlinux 0x9a4a5d87 sk_stream_rfree +EXPORT_SYMBOL vmlinux 0x9a5101a4 xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x9a54b439 pci_save_state +EXPORT_SYMBOL vmlinux 0x9a65f021 key_revoke +EXPORT_SYMBOL vmlinux 0x9a905243 km_policy_notify +EXPORT_SYMBOL vmlinux 0x9ac1cbf3 seq_escape +EXPORT_SYMBOL vmlinux 0x9ad29404 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x9ad82da7 register_chrdev +EXPORT_SYMBOL vmlinux 0x9b05ea5c scsi_command_size +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b43fb98 generic_read_dir +EXPORT_SYMBOL vmlinux 0x9b60e944 skb_checksum +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b98629b cpu_online_map +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid +EXPORT_SYMBOL vmlinux 0x9c209f23 alloc_hippi_dev +EXPORT_SYMBOL vmlinux 0x9c410aba netif_carrier_on +EXPORT_SYMBOL vmlinux 0x9c47cade __user_walk_fd +EXPORT_SYMBOL vmlinux 0x9c5834a9 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x9c6c9263 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x9c8ce617 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x9ca2a8b7 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x9cab73d8 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x9cb46b80 kmem_ptr_validate +EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ce65dcd put_page +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9d091ab0 arp_tbl +EXPORT_SYMBOL vmlinux 0x9d516616 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d7328f4 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x9def566d __bio_clone +EXPORT_SYMBOL vmlinux 0x9e0d198a key_alloc +EXPORT_SYMBOL vmlinux 0x9e42a1a0 kill_anon_super +EXPORT_SYMBOL vmlinux 0x9e5d558c eth_header +EXPORT_SYMBOL vmlinux 0x9e6e61a1 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x9e78cc87 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9ea26c4c down_write_trylock +EXPORT_SYMBOL vmlinux 0x9ec400d8 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk +EXPORT_SYMBOL vmlinux 0x9ef749e2 unregister_chrdev +EXPORT_SYMBOL vmlinux 0x9f0bea3c ethtool_op_get_ufo +EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x9f160beb __up +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f30e8b8 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x9f328b70 blk_queue_max_hw_segments +EXPORT_SYMBOL vmlinux 0x9f37e6d4 seq_putc +EXPORT_SYMBOL vmlinux 0x9f86f09a __rta_fill +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc13ee4 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x9fc921bb vsscanf +EXPORT_SYMBOL vmlinux 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL vmlinux 0xa0107006 path_lookup +EXPORT_SYMBOL vmlinux 0xa033d05a up_read +EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa04f02d2 matroxfb_DAC_out +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa07a8d22 sleep_on +EXPORT_SYMBOL vmlinux 0xa08e8e5b ipv4_specific +EXPORT_SYMBOL vmlinux 0xa093332f search_binary_handler +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d5fa16 eth_header_cache +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10c6f7a ps2_init +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa131a045 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa13798f8 printk_ratelimit +EXPORT_SYMBOL vmlinux 0xa184c1f5 __lock_page +EXPORT_SYMBOL vmlinux 0xa1a86aa7 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1dc8a62 inet_addr_type +EXPORT_SYMBOL vmlinux 0xa1f89bce ethtool_op_get_tso +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20e4cf0 __mod_timer +EXPORT_SYMBOL vmlinux 0xa2176e70 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xa218bf61 complete +EXPORT_SYMBOL vmlinux 0xa2307e63 skb_seq_read +EXPORT_SYMBOL vmlinux 0xa290dd8b get_super +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2f1cf6b sockfd_lookup +EXPORT_SYMBOL vmlinux 0xa31ff8a4 pci_release_regions +EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa34f7e18 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa38c543f i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a008e5 aio_complete +EXPORT_SYMBOL vmlinux 0xa3a4ed03 cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa3a88391 flush_old_exec +EXPORT_SYMBOL vmlinux 0xa3cdebf6 kernel_accept +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa41f2b4e dst_alloc +EXPORT_SYMBOL vmlinux 0xa42852f5 page_readlink +EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xa4a7a00a dquot_initialize +EXPORT_SYMBOL vmlinux 0xa4b367db keyring_search +EXPORT_SYMBOL vmlinux 0xa4b7a4a4 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c5e87b file_permission +EXPORT_SYMBOL vmlinux 0xa4da2cb8 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xa51c36fc pci_set_dma_mask +EXPORT_SYMBOL vmlinux 0xa533fe62 handle_sysrq +EXPORT_SYMBOL vmlinux 0xa53bd125 cap_netlink_recv +EXPORT_SYMBOL vmlinux 0xa5421730 inode_change_ok +EXPORT_SYMBOL vmlinux 0xa5423cc4 param_get_int +EXPORT_SYMBOL vmlinux 0xa55369ed test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone +EXPORT_SYMBOL vmlinux 0xa56ef49d inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse +EXPORT_SYMBOL vmlinux 0xa595c0fa pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59b5485 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL vmlinux 0xa5baf4f7 irq_desc +EXPORT_SYMBOL vmlinux 0xa5bfdb30 drop_super +EXPORT_SYMBOL vmlinux 0xa5e752cf tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xa620c893 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xa627483b sk_run_filter +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa673dbbc pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xa68124fa hweight8 +EXPORT_SYMBOL vmlinux 0xa6814433 groups_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6b1b021 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xa6c1f1c7 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xa6dcc773 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa70158cb key_type_keyring +EXPORT_SYMBOL vmlinux 0xa71291c9 kset_register +EXPORT_SYMBOL vmlinux 0xa74c0d4f blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xa74dee90 br_fdb_put_hook +EXPORT_SYMBOL vmlinux 0xa7502f48 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0xa770b803 kblockd_flush_work +EXPORT_SYMBOL vmlinux 0xa78c702e ioremap_flags +EXPORT_SYMBOL vmlinux 0xa796795b tcf_hash_check +EXPORT_SYMBOL vmlinux 0xa7a15741 sock_create_kern +EXPORT_SYMBOL vmlinux 0xa7c35c6b getnstimeofday +EXPORT_SYMBOL vmlinux 0xa8197b42 __down +EXPORT_SYMBOL vmlinux 0xa821fad5 of_device_get_modalias +EXPORT_SYMBOL vmlinux 0xa85ec69b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xa8727967 ps2_schedule_command +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8968346 inode_double_lock +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa925899a param_set_bool +EXPORT_SYMBOL vmlinux 0xa9461d6e pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa98c3e87 bdev_read_only +EXPORT_SYMBOL vmlinux 0xa9bec845 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xa9c8d5d1 sock_map_fd +EXPORT_SYMBOL vmlinux 0xa9ccb1e6 kobject_del +EXPORT_SYMBOL vmlinux 0xa9e4ac59 ethtool_op_set_tx_hw_csum +EXPORT_SYMBOL vmlinux 0xa9e9e55e i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xa9f1ed23 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL vmlinux 0xaa107d11 misc_register +EXPORT_SYMBOL vmlinux 0xaa14cbce proc_symlink +EXPORT_SYMBOL vmlinux 0xaa231b74 ide_wait_stat +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa5049cb con_is_bound +EXPORT_SYMBOL vmlinux 0xaa527612 __kfifo_put +EXPORT_SYMBOL vmlinux 0xaa5e926f skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xaa9e775d send_sig_info +EXPORT_SYMBOL vmlinux 0xaab07c41 register_quota_format +EXPORT_SYMBOL vmlinux 0xaad184d1 blk_get_queue +EXPORT_SYMBOL vmlinux 0xaae97e97 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab25352a tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xab38963a qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xab471003 param_array_set +EXPORT_SYMBOL vmlinux 0xab47da43 igrab +EXPORT_SYMBOL vmlinux 0xab53b0a8 mempool_alloc +EXPORT_SYMBOL vmlinux 0xab5a857a d_validate +EXPORT_SYMBOL vmlinux 0xab6ce036 ida_get_new +EXPORT_SYMBOL vmlinux 0xabad83d7 udp_hash_lock +EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my +EXPORT_SYMBOL vmlinux 0xabe2a046 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xabe77484 securebits +EXPORT_SYMBOL vmlinux 0xabef5b58 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xac3b3cee __bitmap_and +EXPORT_SYMBOL vmlinux 0xac440aaa nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xac54fc9f mempool_destroy +EXPORT_SYMBOL vmlinux 0xac5ec993 audit_get_loginuid +EXPORT_SYMBOL vmlinux 0xac896ac4 key_link +EXPORT_SYMBOL vmlinux 0xac9b2a53 clocksource_register +EXPORT_SYMBOL vmlinux 0xacc2f129 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xacca03de of_register_platform_driver +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace3ee40 elv_rb_find +EXPORT_SYMBOL vmlinux 0xacea4fa6 end_that_request_chunk +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad382f00 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xad3e8354 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0xadb792c2 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xadec4701 ip_fragment +EXPORT_SYMBOL vmlinux 0xae21cd8d of_find_all_nodes +EXPORT_SYMBOL vmlinux 0xae2a26e3 simple_readpage +EXPORT_SYMBOL vmlinux 0xae3e4c4d blk_register_region +EXPORT_SYMBOL vmlinux 0xae451377 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xae6ff6b4 inet_accept +EXPORT_SYMBOL vmlinux 0xae7dede8 ide_end_drive_cmd +EXPORT_SYMBOL vmlinux 0xaecbcca4 call_usermodehelper_setcleanup +EXPORT_SYMBOL vmlinux 0xaed94521 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xaf341ae2 vfs_symlink +EXPORT_SYMBOL vmlinux 0xaf3e2eb1 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xaf4cf5fb vm_insert_page +EXPORT_SYMBOL vmlinux 0xaf51d9ed find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xaf6eefa0 unregister_snap_client +EXPORT_SYMBOL vmlinux 0xaf7d82b7 deny_write_access +EXPORT_SYMBOL vmlinux 0xaf7ed561 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xafdedc4d __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0xaff0cd18 task_pgrp_nr_ns +EXPORT_SYMBOL vmlinux 0xb02d8e64 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xb04f4839 matrox_G100 +EXPORT_SYMBOL vmlinux 0xb095ba57 mach_lite5200 +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0ca44a4 __pagevec_release +EXPORT_SYMBOL vmlinux 0xb0d70f95 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f3d8a8 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb0ff9c11 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xb11f4ad8 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xb14a5298 arp_send +EXPORT_SYMBOL vmlinux 0xb155ce55 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb18776f3 sysctl_pathname +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb1a9ce7e __inode_dir_notify +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb201db56 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xb21bd6ef adb_controller +EXPORT_SYMBOL vmlinux 0xb2271ed9 current_fs_time +EXPORT_SYMBOL vmlinux 0xb23b54d3 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xb25a6870 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xb27acbf5 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb29f93c4 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xb334a8e9 __xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xb3376a33 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xb33c414e __lookup_hash +EXPORT_SYMBOL vmlinux 0xb33cf7fb blk_requeue_request +EXPORT_SYMBOL vmlinux 0xb33ecf7e pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xb3448a90 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo +EXPORT_SYMBOL vmlinux 0xb3b2f915 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xb3dc9175 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xb3e3d214 audit_log_format +EXPORT_SYMBOL vmlinux 0xb4002013 ide_set_handler +EXPORT_SYMBOL vmlinux 0xb40b9f19 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42b3baf skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xb458fd11 tcp_v4_calc_md5_hash +EXPORT_SYMBOL vmlinux 0xb4a6a543 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54ad040 swap_io_context +EXPORT_SYMBOL vmlinux 0xb56551fc qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5ae8c73 pci_get_device_reverse +EXPORT_SYMBOL vmlinux 0xb5b28470 skb_make_writable +EXPORT_SYMBOL vmlinux 0xb5d01cc9 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xb5d21bfa splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xb6024c23 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xb60e34a8 nla_memcpy +EXPORT_SYMBOL vmlinux 0xb6155971 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xb6452d7f sync_page_range_nolock +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6969eb3 of_unregister_driver +EXPORT_SYMBOL vmlinux 0xb6bb6c40 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xb6c4e1ad idr_get_new +EXPORT_SYMBOL vmlinux 0xb6c70a7d __wake_up +EXPORT_SYMBOL vmlinux 0xb6e6d99d clk_disable +EXPORT_SYMBOL vmlinux 0xb714a981 console_print +EXPORT_SYMBOL vmlinux 0xb7221974 touch_atime +EXPORT_SYMBOL vmlinux 0xb73121e7 of_node_get +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb7555f12 timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0xb77be868 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xb792e5e0 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xb797aa70 cpu_possible_map +EXPORT_SYMBOL vmlinux 0xb7a45587 get_user_pages +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7b68654 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xb8068a7c nf_afinfo +EXPORT_SYMBOL vmlinux 0xb837b828 mpage_readpages +EXPORT_SYMBOL vmlinux 0xb84862cc nobh_write_begin +EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat +EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32 +EXPORT_SYMBOL vmlinux 0xb873f765 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xb87acd5b pci_set_consistent_dma_mask +EXPORT_SYMBOL vmlinux 0xb87bc585 n_tty_ioctl +EXPORT_SYMBOL vmlinux 0xb87fe754 __down_interruptible +EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32 +EXPORT_SYMBOL vmlinux 0xb8b28ead of_register_driver +EXPORT_SYMBOL vmlinux 0xb8b661b5 genl_sock +EXPORT_SYMBOL vmlinux 0xb8c1f486 ip_route_output_key +EXPORT_SYMBOL vmlinux 0xb95467e6 unregister_netdev +EXPORT_SYMBOL vmlinux 0xb95c3602 tty_name +EXPORT_SYMBOL vmlinux 0xb97b260d kmem_cache_size +EXPORT_SYMBOL vmlinux 0xb9c74bf1 gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xb9df93c3 bio_copy_user +EXPORT_SYMBOL vmlinux 0xb9e26af5 per_cpu__softnet_data +EXPORT_SYMBOL vmlinux 0xba02bc51 put_disk +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba7b1b0a tcp_unhash +EXPORT_SYMBOL vmlinux 0xba95152a idr_init +EXPORT_SYMBOL vmlinux 0xbac89582 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xbaf98bfb page_address +EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb19c1f7 skb_unlink +EXPORT_SYMBOL vmlinux 0xbb4ca149 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb80c0d0 flush_tlb_page +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbbfaa48 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xbbc8e804 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbbfe4414 xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc4b8988 d_invalidate +EXPORT_SYMBOL vmlinux 0xbc6a217e of_get_pci_address +EXPORT_SYMBOL vmlinux 0xbc8b0b37 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xbc953385 of_device_unregister +EXPORT_SYMBOL vmlinux 0xbcae46b1 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xbcd7318e ethtool_op_set_ufo +EXPORT_SYMBOL vmlinux 0xbcdf57fe bmap +EXPORT_SYMBOL vmlinux 0xbce31735 free_buffer_head +EXPORT_SYMBOL vmlinux 0xbced8e0b __getblk +EXPORT_SYMBOL vmlinux 0xbd4976ff posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xbd71c4ac __find_get_block +EXPORT_SYMBOL vmlinux 0xbd735b7a seq_open +EXPORT_SYMBOL vmlinux 0xbd7505fc proto_register +EXPORT_SYMBOL vmlinux 0xbd827965 mnt_pin +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd959b65 tcp_v4_remember_stamp +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdb59ce9 arp_create +EXPORT_SYMBOL vmlinux 0xbdb97b1c i2c_clients_command +EXPORT_SYMBOL vmlinux 0xbdd521c4 dcache_readdir +EXPORT_SYMBOL vmlinux 0xbe035fc1 ide_dma_host_on +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe3369cf tcf_register_action +EXPORT_SYMBOL vmlinux 0xbe43bc00 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xbe467a2e of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xbe4a276c task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xbe52ea62 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xbe60eb5a ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xbe820703 permission +EXPORT_SYMBOL vmlinux 0xbea345b5 get_io_context +EXPORT_SYMBOL vmlinux 0xbecabdf7 nobh_write_end +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef9267b pci_address_to_pio +EXPORT_SYMBOL vmlinux 0xbf23b3f3 drive_is_ready +EXPORT_SYMBOL vmlinux 0xbf6cebca xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xbfa1b700 unregister_con_driver +EXPORT_SYMBOL vmlinux 0xbfa78112 isa_mem_base +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfd150be serio_open +EXPORT_SYMBOL vmlinux 0xbfd9015b tcp_poll +EXPORT_SYMBOL vmlinux 0xbfdc5620 tty_register_device +EXPORT_SYMBOL vmlinux 0xc045ad4e timespec_trunc +EXPORT_SYMBOL vmlinux 0xc0580937 rb_erase +EXPORT_SYMBOL vmlinux 0xc08bac26 neigh_update +EXPORT_SYMBOL vmlinux 0xc090ce11 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a88125 pci_bus_type +EXPORT_SYMBOL vmlinux 0xc0d815f5 up_write +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc0da7f47 blk_put_queue +EXPORT_SYMBOL vmlinux 0xc0f904ac skb_queue_purge +EXPORT_SYMBOL vmlinux 0xc115eff8 alloc_trdev +EXPORT_SYMBOL vmlinux 0xc14af372 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit +EXPORT_SYMBOL vmlinux 0xc1836f88 find_task_by_pid +EXPORT_SYMBOL vmlinux 0xc1a9b384 dev_get_by_index +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc1e54a1c of_device_register +EXPORT_SYMBOL vmlinux 0xc247f64a tc_classify_compat +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc258332c vc_cons +EXPORT_SYMBOL vmlinux 0xc27457d9 inode_setattr +EXPORT_SYMBOL vmlinux 0xc28995f2 ethtool_op_set_sg +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc300b597 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xc32a1496 atm_dev_deregister +EXPORT_SYMBOL vmlinux 0xc33c082f sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xc35714e2 find_get_page +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc37aa013 start_tty +EXPORT_SYMBOL vmlinux 0xc37d01db blk_run_queue +EXPORT_SYMBOL vmlinux 0xc3a173a4 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xc3a443d1 blk_start_queue +EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p +EXPORT_SYMBOL vmlinux 0xc40685f7 take_over_console +EXPORT_SYMBOL vmlinux 0xc41ca81d ppc_md +EXPORT_SYMBOL vmlinux 0xc44d773f inode_get_bytes +EXPORT_SYMBOL vmlinux 0xc44f3fcb inet_shutdown +EXPORT_SYMBOL vmlinux 0xc458b2ea gen_pool_add +EXPORT_SYMBOL vmlinux 0xc46f2279 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4af1388 proc_root_driver +EXPORT_SYMBOL vmlinux 0xc4c0b771 skb_truesize_bug +EXPORT_SYMBOL vmlinux 0xc4c48565 tcp_v4_md5_do_del +EXPORT_SYMBOL vmlinux 0xc501370f block_invalidatepage +EXPORT_SYMBOL vmlinux 0xc51879a0 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0xc547bba1 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc5994f4b dev_driver_string +EXPORT_SYMBOL vmlinux 0xc59bef34 unregister_nls +EXPORT_SYMBOL vmlinux 0xc5d96731 pci_find_device +EXPORT_SYMBOL vmlinux 0xc5e760a7 matroxfb_wait_for_sync +EXPORT_SYMBOL vmlinux 0xc5fcdfd8 page_put_link +EXPORT_SYMBOL vmlinux 0xc606b34d __elv_add_request +EXPORT_SYMBOL vmlinux 0xc67e18f7 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xc6bed3ce __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xc6e6eb01 redraw_screen +EXPORT_SYMBOL vmlinux 0xc7065f7c get_sb_single +EXPORT_SYMBOL vmlinux 0xc718b3c7 input_event +EXPORT_SYMBOL vmlinux 0xc74409ae xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xc74f3161 skb_insert +EXPORT_SYMBOL vmlinux 0xc7503465 nf_reinject +EXPORT_SYMBOL vmlinux 0xc7627b5d i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xc765406c free_task +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8053fac find_or_create_page +EXPORT_SYMBOL vmlinux 0xc808be10 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xc823c628 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xc82eb7d4 wake_up_process +EXPORT_SYMBOL vmlinux 0xc867446f give_up_console +EXPORT_SYMBOL vmlinux 0xc885a284 bio_free +EXPORT_SYMBOL vmlinux 0xc8a21cd3 kick_iocb +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8ba5816 simple_sync_file +EXPORT_SYMBOL vmlinux 0xc8d5aa42 dquot_transfer +EXPORT_SYMBOL vmlinux 0xc8efe77e get_sb_nodev +EXPORT_SYMBOL vmlinux 0xc92aeaee register_sysctl_table +EXPORT_SYMBOL vmlinux 0xc943f8dc inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc966d31c div64_64 +EXPORT_SYMBOL vmlinux 0xc996a3c4 alloc_file +EXPORT_SYMBOL vmlinux 0xc998d641 icmp_err_convert +EXPORT_SYMBOL vmlinux 0xc9c71584 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xc9f4f059 neigh_for_each +EXPORT_SYMBOL vmlinux 0xca6a89c0 rtas +EXPORT_SYMBOL vmlinux 0xca81e434 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca84b943 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xca8c0a48 ip_defrag +EXPORT_SYMBOL vmlinux 0xcac8c460 invalidate_inodes +EXPORT_SYMBOL vmlinux 0xcad620d8 inet_listen +EXPORT_SYMBOL vmlinux 0xcae875b9 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xcaee3e77 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xcb04cc79 __free_pages +EXPORT_SYMBOL vmlinux 0xcb16ba7c pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xcb19202e blk_queue_max_sectors +EXPORT_SYMBOL vmlinux 0xcb19f6d6 ip_statistics +EXPORT_SYMBOL vmlinux 0xcb32da10 param_set_int +EXPORT_SYMBOL vmlinux 0xcb4446fe sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xcb51d0fd vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0xcb6beb40 hweight32 +EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options +EXPORT_SYMBOL vmlinux 0xcb94d78a write_inode_now +EXPORT_SYMBOL vmlinux 0xcba6515f ll_rw_block +EXPORT_SYMBOL vmlinux 0xcbac9dc2 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xcbbff2c9 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xcbd85489 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xcc14db99 simple_write_end +EXPORT_SYMBOL vmlinux 0xcc155241 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client +EXPORT_SYMBOL vmlinux 0xcc3b1e5b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc6bb71e tcp_ioctl +EXPORT_SYMBOL vmlinux 0xcc74cfd8 set_user_nice +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcca3148f of_match_node +EXPORT_SYMBOL vmlinux 0xccd05c7e skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xccebdea8 mpc52xx_find_and_map_path +EXPORT_SYMBOL vmlinux 0xccf8f5d7 pci_map_rom +EXPORT_SYMBOL vmlinux 0xcd1b329e input_grab_device +EXPORT_SYMBOL vmlinux 0xcd207faf sk_free +EXPORT_SYMBOL vmlinux 0xcd217541 pci_request_regions +EXPORT_SYMBOL vmlinux 0xcd52a702 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xcd8a3c79 nf_log_packet +EXPORT_SYMBOL vmlinux 0xcdc00b98 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xcdc1411f __sk_stream_mem_reclaim +EXPORT_SYMBOL vmlinux 0xcdc5e65b skb_pad +EXPORT_SYMBOL vmlinux 0xcdf777b3 noop_qdisc +EXPORT_SYMBOL vmlinux 0xce22e4cc pmu_unregister_sleep_notifier +EXPORT_SYMBOL vmlinux 0xce2b935d tcp_connect +EXPORT_SYMBOL vmlinux 0xce3459bd pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce5471d6 of_find_node_by_path +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5b1dbd pci_get_device +EXPORT_SYMBOL vmlinux 0xcef50ace skb_free_datagram +EXPORT_SYMBOL vmlinux 0xcf0dc0a7 nf_log_register +EXPORT_SYMBOL vmlinux 0xcf11ff1a ide_do_drive_cmd +EXPORT_SYMBOL vmlinux 0xcf480c36 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xcf71cb49 dst_destroy +EXPORT_SYMBOL vmlinux 0xcf73106a pagecache_write_end +EXPORT_SYMBOL vmlinux 0xcf8e5513 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user +EXPORT_SYMBOL vmlinux 0xcfce0e38 vfs_get_dqblk +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01e8e5d tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xd02cc869 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xd0338513 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xd04c9d0e matroxfb_g450_shutdown +EXPORT_SYMBOL vmlinux 0xd09a6a3d idr_get_new_above +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a9d9bb __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd117666d netlink_dump_start +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd152a6b3 netlink_change_ngroups +EXPORT_SYMBOL vmlinux 0xd15d3362 ip_xfrm_me_harder +EXPORT_SYMBOL vmlinux 0xd16fa1f4 sock_no_getname +EXPORT_SYMBOL vmlinux 0xd1752fd4 idr_replace +EXPORT_SYMBOL vmlinux 0xd1884302 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xd18f4824 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xd1b6d033 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xd1cda761 ide_dma_host_off +EXPORT_SYMBOL vmlinux 0xd1def8f3 free_netdev +EXPORT_SYMBOL vmlinux 0xd237ff5c single_open +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd265855e sysctl_ms_jiffies +EXPORT_SYMBOL vmlinux 0xd27e684c of_dev_put +EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop +EXPORT_SYMBOL vmlinux 0xd2ab0d8f kernel_read +EXPORT_SYMBOL vmlinux 0xd2c112c2 write_one_page +EXPORT_SYMBOL vmlinux 0xd2e0a390 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xd305c016 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xd3427f73 mempool_create_node +EXPORT_SYMBOL vmlinux 0xd3548e85 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xd3637c9c filemap_flush +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd464def4 dma_pool_create +EXPORT_SYMBOL vmlinux 0xd48f3239 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xd4996786 seq_puts +EXPORT_SYMBOL vmlinux 0xd4b7cf7a simple_dir_operations +EXPORT_SYMBOL vmlinux 0xd4e53641 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xd4fe24f5 idr_pre_get +EXPORT_SYMBOL vmlinux 0xd5427208 proc_mkdir +EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert +EXPORT_SYMBOL vmlinux 0xd5825fd7 filp_close +EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5f69f41 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xd5f9a0cb ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0xd6035d05 do_settimeofday +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd64abfee inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xd66bb645 pci_match_id +EXPORT_SYMBOL vmlinux 0xd67149f8 llc_sap_close +EXPORT_SYMBOL vmlinux 0xd6859c51 matrox_cfbX_init +EXPORT_SYMBOL vmlinux 0xd6d48009 sock_no_listen +EXPORT_SYMBOL vmlinux 0xd6d534d7 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xd6d787c5 check_media_bay_by_base +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7602209 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xd7909ba4 tty_register_driver +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7d5b197 of_node_put +EXPORT_SYMBOL vmlinux 0xd86cdf1d ide_dma_lost_irq +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p +EXPORT_SYMBOL vmlinux 0xd8b4474b update_region +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd950e6bd devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xd97ed3bc do_generic_mapping_read +EXPORT_SYMBOL vmlinux 0xd9842399 vcc_release_async +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9c7eb65 init_timer_deferrable +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e6a0da vfs_rename +EXPORT_SYMBOL vmlinux 0xda1186e0 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xda365e0a request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xda4008e6 cond_resched +EXPORT_SYMBOL vmlinux 0xda4a34f5 sysctl_string +EXPORT_SYMBOL vmlinux 0xda600548 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xda60a29b vcc_insert_socket +EXPORT_SYMBOL vmlinux 0xda67c79e atm_charge +EXPORT_SYMBOL vmlinux 0xda73a1d0 __check_region +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8beb72 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xda8e033d read_cache_pages +EXPORT_SYMBOL vmlinux 0xda9ea7ab neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xdad53732 idr_destroy +EXPORT_SYMBOL vmlinux 0xdb3a87b8 sget +EXPORT_SYMBOL vmlinux 0xdb535fe0 generic_file_open +EXPORT_SYMBOL vmlinux 0xdb6de079 put_filp +EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xdb874cd4 mpc52xx_find_ipb_freq +EXPORT_SYMBOL vmlinux 0xdba0302d dev_change_flags +EXPORT_SYMBOL vmlinux 0xdbb0f8bd cdev_alloc +EXPORT_SYMBOL vmlinux 0xdbb27029 input_inject_event +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc14ef52 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xdc1ae678 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint +EXPORT_SYMBOL vmlinux 0xdc3eaf70 iomem_resource +EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize +EXPORT_SYMBOL vmlinux 0xdc4881de sock_kfree_s +EXPORT_SYMBOL vmlinux 0xdc5f1b2a get_fs_type +EXPORT_SYMBOL vmlinux 0xdcaf2641 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcc06549 do_sync_read +EXPORT_SYMBOL vmlinux 0xdcd851f6 subsystem_unregister +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdcfc4752 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd132261 printk +EXPORT_SYMBOL vmlinux 0xdd1a4c97 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd2e2993 input_register_handle +EXPORT_SYMBOL vmlinux 0xdd417b6c __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xdd46779b vfs_link +EXPORT_SYMBOL vmlinux 0xdd4f9408 bio_map_kern +EXPORT_SYMBOL vmlinux 0xdd5818c8 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xdd9c42d3 follow_up +EXPORT_SYMBOL vmlinux 0xddc0d57b __invalidate_device +EXPORT_SYMBOL vmlinux 0xddc7bc2d matroxfb_read_pins +EXPORT_SYMBOL vmlinux 0xddd8503b reset_files_struct +EXPORT_SYMBOL vmlinux 0xddeef053 vfs_stat +EXPORT_SYMBOL vmlinux 0xddf720ed tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type +EXPORT_SYMBOL vmlinux 0xde91cb4e pci_get_bus_and_slot +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdea9f484 get_sb_pseudo +EXPORT_SYMBOL vmlinux 0xdeabda2b subsystem_register +EXPORT_SYMBOL vmlinux 0xded1457c no_llseek +EXPORT_SYMBOL vmlinux 0xdee075ba gen_pool_free +EXPORT_SYMBOL vmlinux 0xdef299a5 __page_symlink +EXPORT_SYMBOL vmlinux 0xdf17d74e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xdf3a20c4 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb555cb unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xdff2edd4 dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xe008d565 fb_find_mode +EXPORT_SYMBOL vmlinux 0xe00fb238 release_resource +EXPORT_SYMBOL vmlinux 0xe01b178c of_find_property +EXPORT_SYMBOL vmlinux 0xe0254428 simple_lookup +EXPORT_SYMBOL vmlinux 0xe0773eac kmem_cache_create +EXPORT_SYMBOL vmlinux 0xe08ac33a tty_mutex +EXPORT_SYMBOL vmlinux 0xe093f032 ide_init_drive_cmd +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b5502d adjust_resource +EXPORT_SYMBOL vmlinux 0xe0fc41de bio_add_page +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1435ddc proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe15b9ecc of_get_parent +EXPORT_SYMBOL vmlinux 0xe16f42d0 do_munmap +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe186922f release_sock +EXPORT_SYMBOL vmlinux 0xe18b0b59 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xe18b795e input_unregister_device +EXPORT_SYMBOL vmlinux 0xe18d706f sock_no_mmap +EXPORT_SYMBOL vmlinux 0xe1b57c00 register_key_type +EXPORT_SYMBOL vmlinux 0xe1bc1abd task_no_data_intr +EXPORT_SYMBOL vmlinux 0xe1c24fb4 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xe1de38a2 of_device_uevent +EXPORT_SYMBOL vmlinux 0xe1df1e5f sysctl_tcp_tso_win_divisor +EXPORT_SYMBOL vmlinux 0xe1ee686f ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xe20488d0 register_snap_client +EXPORT_SYMBOL vmlinux 0xe208aaf4 macio_release_resources +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe2314974 pci_domain_nr +EXPORT_SYMBOL vmlinux 0xe2329f1e pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xe23605c0 lock_may_read +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe27a8c2f skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xe29d52b2 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range +EXPORT_SYMBOL vmlinux 0xe2f80e65 file_fsync +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe30fd0c9 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xe31fcaed add_disk_randomness +EXPORT_SYMBOL vmlinux 0xe3331b10 proc_bus +EXPORT_SYMBOL vmlinux 0xe341dcd0 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xe34c29f1 xfrm_replay_advance +EXPORT_SYMBOL vmlinux 0xe351633f genl_register_family +EXPORT_SYMBOL vmlinux 0xe38472df __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xe38d4eef kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xe3a95c36 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xe3b8d8d1 uts_sem +EXPORT_SYMBOL vmlinux 0xe3cfd309 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xe40ae2e3 register_binfmt +EXPORT_SYMBOL vmlinux 0xe42427c4 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xe431a830 call_usermodehelper_setkeys +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49414e9 rtattr_parse +EXPORT_SYMBOL vmlinux 0xe4994b7d user_revoke +EXPORT_SYMBOL vmlinux 0xe4a58dad tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xe4ceffed ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51ed1ed blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xe5374711 llc_sap_find +EXPORT_SYMBOL vmlinux 0xe5406cae unlock_buffer +EXPORT_SYMBOL vmlinux 0xe5629eff pci_enable_msi +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a20fc7 simple_prepare_write +EXPORT_SYMBOL vmlinux 0xe5c20705 bd_set_size +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe6163283 register_qdisc +EXPORT_SYMBOL vmlinux 0xe61dd85f validate_sp +EXPORT_SYMBOL vmlinux 0xe62773f3 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xe64517b0 idr_remove +EXPORT_SYMBOL vmlinux 0xe64d27a1 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xe6694519 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xe67e6695 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xe6c31d7a gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6e58de0 simple_release_fs +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe70cfe5d skb_checksum_help +EXPORT_SYMBOL vmlinux 0xe75dca39 dentry_open +EXPORT_SYMBOL vmlinux 0xe77337a6 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xe7800125 neigh_lookup +EXPORT_SYMBOL vmlinux 0xe784ce70 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xe7ce283a atm_dev_lookup +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ead430 vunmap +EXPORT_SYMBOL vmlinux 0xe7ed7357 register_nls +EXPORT_SYMBOL vmlinux 0xe8239d9c generic_file_splice_write_nolock +EXPORT_SYMBOL vmlinux 0xe8491ccd mem_map +EXPORT_SYMBOL vmlinux 0xe8496f20 end_that_request_last +EXPORT_SYMBOL vmlinux 0xe86e5fc1 downgrade_write +EXPORT_SYMBOL vmlinux 0xe8cd902e hweight16 +EXPORT_SYMBOL vmlinux 0xe8cfdd80 tty_hangup +EXPORT_SYMBOL vmlinux 0xe8eba571 put_files_struct +EXPORT_SYMBOL vmlinux 0xe9101284 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9456a5a sysctl_xfrm_aevent_rseqth +EXPORT_SYMBOL vmlinux 0xe9699130 print_mac +EXPORT_SYMBOL vmlinux 0xe97983a8 registered_fb +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1e96c2 vfs_quota_on +EXPORT_SYMBOL vmlinux 0xea6fcdaa genl_unregister_family +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xea9f9158 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xeabf2456 blk_insert_request +EXPORT_SYMBOL vmlinux 0xeace8c97 dev_load +EXPORT_SYMBOL vmlinux 0xeb01467a xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq +EXPORT_SYMBOL vmlinux 0xeb395084 param_get_invbool +EXPORT_SYMBOL vmlinux 0xeb66c25b ida_destroy +EXPORT_SYMBOL vmlinux 0xeb8f54b3 strstrip +EXPORT_SYMBOL vmlinux 0xebd3812a ide_dma_timeout +EXPORT_SYMBOL vmlinux 0xebf1760f tcp_statistics +EXPORT_SYMBOL vmlinux 0xec4cdf20 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xec58ae48 register_gifconf +EXPORT_SYMBOL vmlinux 0xec86fd5b rtnl_create_link +EXPORT_SYMBOL vmlinux 0xecbc215a register_8022_client +EXPORT_SYMBOL vmlinux 0xecbf9cad pm_send_all +EXPORT_SYMBOL vmlinux 0xecc2543c i2c_use_client +EXPORT_SYMBOL vmlinux 0xecf84b6e pci_read_irq_line +EXPORT_SYMBOL vmlinux 0xed17b4d9 freeze_bdev +EXPORT_SYMBOL vmlinux 0xed4290ac mach_powermac +EXPORT_SYMBOL vmlinux 0xed490246 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xed83c271 unload_nls +EXPORT_SYMBOL vmlinux 0xeda7f176 single_release +EXPORT_SYMBOL vmlinux 0xeda953fb __ioremap +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd14538 param_get_uint +EXPORT_SYMBOL vmlinux 0xedef3206 sk_common_release +EXPORT_SYMBOL vmlinux 0xedf0d192 neigh_table_init_no_netlink +EXPORT_SYMBOL vmlinux 0xee132b65 inet_select_addr +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4317c7 fb_show_logo +EXPORT_SYMBOL vmlinux 0xee4da53b pci_set_mwi +EXPORT_SYMBOL vmlinux 0xee56b421 DAC1064_global_init +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee5a11eb system_bus_clock +EXPORT_SYMBOL vmlinux 0xee6eda60 neigh_create +EXPORT_SYMBOL vmlinux 0xee90884e dq_data_lock +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb1717c param_array_get +EXPORT_SYMBOL vmlinux 0xeed21178 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xef09bc7c ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0xef1a1668 km_waitq +EXPORT_SYMBOL vmlinux 0xef1b3c10 pci_find_capability +EXPORT_SYMBOL vmlinux 0xef297a4a kernel_getpeername +EXPORT_SYMBOL vmlinux 0xef6d7cff del_timer +EXPORT_SYMBOL vmlinux 0xefa15566 security_inode_permission +EXPORT_SYMBOL vmlinux 0xefaa5e16 __nla_put +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0102435 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xf016e49d nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xf01d79b1 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xf02e8dc3 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xf035105c skb_append +EXPORT_SYMBOL vmlinux 0xf03b0e52 idr_find +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0b57c68 param_set_long +EXPORT_SYMBOL vmlinux 0xf0e1f87c fget +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf107a1d4 udp_proc_register +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf10ecc11 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xf15245d2 netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xf162fe2d sysctl_xfrm_aevent_etime +EXPORT_SYMBOL vmlinux 0xf16ac4e1 elevator_init +EXPORT_SYMBOL vmlinux 0xf1708dd5 nonseekable_open +EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem +EXPORT_SYMBOL vmlinux 0xf189cd06 bio_clone +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19fba93 udplite_get_port +EXPORT_SYMBOL vmlinux 0xf1bc7ac0 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xf1c6c4f2 request_key_async +EXPORT_SYMBOL vmlinux 0xf1dced4c ide_lock +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f65852 __kfree_skb +EXPORT_SYMBOL vmlinux 0xf205e441 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf220bb65 ethtool_op_set_flags +EXPORT_SYMBOL vmlinux 0xf261789d d_rehash +EXPORT_SYMBOL vmlinux 0xf26538c2 __alloc_skb +EXPORT_SYMBOL vmlinux 0xf26a90fd unregister_netdevice +EXPORT_SYMBOL vmlinux 0xf273b1c7 find_inode_number +EXPORT_SYMBOL vmlinux 0xf2960737 kunmap_high +EXPORT_SYMBOL vmlinux 0xf2a6d2bf xfrm_policy_count +EXPORT_SYMBOL vmlinux 0xf2afa595 param_get_charp +EXPORT_SYMBOL vmlinux 0xf2e98683 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xf341f157 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf346e76f xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xf3495f9a bio_split +EXPORT_SYMBOL vmlinux 0xf37f5034 macio_release_resource +EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg +EXPORT_SYMBOL vmlinux 0xf3a3c3f1 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xf3afff5a bio_endio +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3cc8b18 rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0xf3dbfabe kill_block_super +EXPORT_SYMBOL vmlinux 0xf3f77eee backlight_device_register +EXPORT_SYMBOL vmlinux 0xf3ff7ff4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xf4115991 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf44a7704 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xf4616038 open_by_devnum +EXPORT_SYMBOL vmlinux 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL vmlinux 0xf4e12b4e nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f52f93 dqstats +EXPORT_SYMBOL vmlinux 0xf504a55f do_splice_from +EXPORT_SYMBOL vmlinux 0xf51c639f interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xf52aab33 d_lookup +EXPORT_SYMBOL vmlinux 0xf53f0896 aio_put_req +EXPORT_SYMBOL vmlinux 0xf5937e1a sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xf59a5942 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xf5a07f39 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5aa3e54 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c47076 tty_insert_flip_string +EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xf601eddd posix_lock_file +EXPORT_SYMBOL vmlinux 0xf6180757 sk_wait_data +EXPORT_SYMBOL vmlinux 0xf68832a2 set_page_dirty +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e45893 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6faf7ae vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xf7193ca2 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xf73955db devm_request_irq +EXPORT_SYMBOL vmlinux 0xf7435aa8 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xf79018b4 vc_resize +EXPORT_SYMBOL vmlinux 0xf7aa0aec sock_no_connect +EXPORT_SYMBOL vmlinux 0xf7b36d7f ledtrig_ide_activity +EXPORT_SYMBOL vmlinux 0xf7c13ff3 open_exec +EXPORT_SYMBOL vmlinux 0xf7c6b02e ip_route_input +EXPORT_SYMBOL vmlinux 0xf7f688e8 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xf7fe61c7 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xf8014180 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xf81a0ed0 block_write_begin +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82f1109 utf8_wctomb +EXPORT_SYMBOL vmlinux 0xf8307a35 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xf8328877 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xf8495e31 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xf8814f73 rb_last +EXPORT_SYMBOL vmlinux 0xf8954dc5 generic_write_end +EXPORT_SYMBOL vmlinux 0xf8c94d7e kthread_create +EXPORT_SYMBOL vmlinux 0xf8efad01 kobject_set_name +EXPORT_SYMBOL vmlinux 0xf8fda207 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xf9180f78 mpage_readpage +EXPORT_SYMBOL vmlinux 0xf92ddbbb open_bdev_excl +EXPORT_SYMBOL vmlinux 0xf933d982 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xf93a4946 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xf97e57f2 bd_release +EXPORT_SYMBOL vmlinux 0xf98f0123 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a7c1a5 d_namespace_path +EXPORT_SYMBOL vmlinux 0xf9b28bac interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xf9bb49bc tcf_em_register +EXPORT_SYMBOL vmlinux 0xf9d502ba skb_find_text +EXPORT_SYMBOL vmlinux 0xf9e96189 is_bad_inode +EXPORT_SYMBOL vmlinux 0xf9f9bcc7 of_translate_address +EXPORT_SYMBOL vmlinux 0xfa042388 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xfa552cd3 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xfa603bb7 serio_close +EXPORT_SYMBOL vmlinux 0xfac87985 pci_iounmap +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfae2b88f proc_clear_tty +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb061be5 dev_getbyhwaddr +EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb9b29fc bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xfbe71880 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xfbeca29d llc_build_and_send_ui_pkt +EXPORT_SYMBOL vmlinux 0xfbef0499 sock_i_uid +EXPORT_SYMBOL vmlinux 0xfbf92453 param_get_bool +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3cd8cd __grab_cache_page +EXPORT_SYMBOL vmlinux 0xfc8e72eb block_prepare_write +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcdd8cf6 param_get_ushort +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd8dba4c add_wait_queue +EXPORT_SYMBOL vmlinux 0xfd98879a rb_next +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe66e38f vfs_set_dqblk +EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xfe9b33b2 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xfe9cdec8 inet_ioctl +EXPORT_SYMBOL vmlinux 0xfeb1ba3e of_get_next_child +EXPORT_SYMBOL vmlinux 0xfed40819 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled +EXPORT_SYMBOL vmlinux 0xfef386c5 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xff08c41d check_media_bay +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff3695b0 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6a7b08 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xff8e5bda default_unplug_io_fn +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa4d036 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xffc62af4 ethtool_op_get_flags +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffeca48e __devm_release_region +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0x6aea6fbb bcom_ata_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xa1b8b43c bcom_ata_tx_prepare +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xab113966 bcom_ata_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xcb8186ca bcom_ata_reset_bd +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-ata 0xd4baad7f bcom_ata_rx_prepare +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x0aed86cb bcom_enable +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x10957fcc bcom_sram +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x186867e8 bcom_sram_alloc +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x1efaf82d bcom_task_free +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x547cd916 bcom_disable +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x75653883 bcom_task_alloc +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x77ca9993 bcom_eng +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0x9619bbb1 bcom_load_image +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xa169c964 bcom_sram_free +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xbc2f05c2 bcom_sram_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xbeb2d3f2 bcom_set_initiator +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-core 0xf6e6aade bcom_sram_cleanup +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x073342b7 bcom_fec_tx_reset +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x0d583811 bcom_fec_tx_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x0fdf7795 bcom_fec_tx_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x605f7865 bcom_fec_rx_reset +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0x7add6ed6 bcom_fec_rx_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-fec 0xc59997ea bcom_fec_rx_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-gen-bd 0x2cef521e bcom_gen_bd_rx_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-gen-bd 0x39551bd4 bcom_gen_bd_rx_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-gen-bd 0x59ed4b5d bcom_gen_bd_tx_release +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-gen-bd 0x8cc7cbac bcom_gen_bd_tx_reset +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-gen-bd 0x938ed5a2 bcom_gen_bd_tx_init +EXPORT_SYMBOL_GPL arch/powerpc/sysdev/bestcomm/bestcomm-gen-bd 0xebabf17e bcom_gen_bd_rx_reset +EXPORT_SYMBOL_GPL crypto/ablkcipher 0xe2bc2048 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL crypto/aead 0x9cdd8d53 crypto_aead_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x5f9d204f async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe72579f5 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe78d7610 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xd22881dd async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xdaf38f8c async_xor_zero_sum +EXPORT_SYMBOL_GPL crypto/blkcipher 0x0f3d9776 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL crypto/blkcipher 0x5007017f blkcipher_walk_virt +EXPORT_SYMBOL_GPL crypto/blkcipher 0x56b54231 crypto_blkcipher_type +EXPORT_SYMBOL_GPL crypto/blkcipher 0x5c7e7abf blkcipher_walk_phys +EXPORT_SYMBOL_GPL crypto/blkcipher 0x8f705ba5 blkcipher_walk_done +EXPORT_SYMBOL_GPL crypto/twofish_common 0xfc99604d twofish_setkey +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0x01115c90 class_device_attr_link_power_management_policy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0bce1277 ata_cable_unknown +EXPORT_SYMBOL_GPL drivers/ata/libata 0x0c1baa07 sata_scr_write +EXPORT_SYMBOL_GPL drivers/ata/libata 0x109f7f7a __ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x11ea03e7 ata_check_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x14045c24 ata_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x181df1ec sata_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1cf07cad ata_host_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x1d97ee78 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2047290b ata_cable_40wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x24422967 ata_cable_80wire +EXPORT_SYMBOL_GPL drivers/ata/libata 0x24af7a51 ata_host_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2738e5fc ata_pci_device_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2761ea15 pci_test_config_bits +EXPORT_SYMBOL_GPL drivers/ata/libata 0x280a1d8c ata_id_to_dma_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2a1abf29 ata_timing_compute +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2ef5df9d ata_host_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x2f23bd73 ata_tf_load +EXPORT_SYMBOL_GPL drivers/ata/libata 0x32ec1c22 ata_cable_sata +EXPORT_SYMBOL_GPL drivers/ata/libata 0x33795615 ata_altstatus +EXPORT_SYMBOL_GPL drivers/ata/libata 0x371c8c7d ata_bmdma_thaw +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3a5b2911 ata_noop_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3abfaff1 ata_irq_on +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b48fcd8 ata_exec_command +EXPORT_SYMBOL_GPL drivers/ata/libata 0x3c1585ed ata_sas_queuecmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x40882f33 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL drivers/ata/libata 0x444c5356 sata_scr_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x44c14cba ata_link_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x450ae57f ata_pio_need_iordy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45d1eab3 ata_eh_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x45d2a508 ata_std_bios_param +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4963f989 ata_std_softreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4a3c5d8a ata_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4b173daa ata_tf_read +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4bf86d1c ata_eh_qc_retry +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4f055ce1 ata_dev_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4f49d722 ata_host_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4f90df84 sata_print_link_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL drivers/ata/libata 0x512f3fa3 ata_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x51b040c1 ata_port_abort +EXPORT_SYMBOL_GPL drivers/ata/libata 0x51fdd6ab ata_link_online +EXPORT_SYMBOL_GPL drivers/ata/libata 0x535dc4fb ata_qc_complete +EXPORT_SYMBOL_GPL drivers/ata/libata 0x591fe005 ata_do_set_mode +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ad87ffd ata_eh_freeze_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5bd62195 ata_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5bf8d396 ata_port_pbar_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5c722e13 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5d871c2a ata_std_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5eeae66f ata_port_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x5fdb1a0c ata_qc_complete_multiple +EXPORT_SYMBOL_GPL drivers/ata/libata 0x61ee319e ata_port_disable +EXPORT_SYMBOL_GPL drivers/ata/libata 0x637ce2b7 ata_sas_port_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x64d15a8f ata_dev_try_classify +EXPORT_SYMBOL_GPL drivers/ata/libata 0x662d5091 sata_pmp_std_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x68ea9aa7 ata_host_detach +EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d233282 ata_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x6e9ea75d ata_eh_thaw_port +EXPORT_SYMBOL_GPL drivers/ata/libata 0x70775e9a ata_data_xfer +EXPORT_SYMBOL_GPL drivers/ata/libata 0x71c293e5 sata_pmp_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0x72f7f8f0 sata_link_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x77157540 ata_pci_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x791c130d ata_bus_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7b51e6b5 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7bf4c5e6 ata_dumb_qc_prep +EXPORT_SYMBOL_GPL drivers/ata/libata 0x7eb7c6b4 ata_ehi_push_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x824388ec ata_bmdma_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8550fc43 ata_sg_init_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x85dc01f1 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8657ae5d ata_bmdma_status +EXPORT_SYMBOL_GPL drivers/ata/libata 0x877d332d ata_pci_device_suspend +EXPORT_SYMBOL_GPL drivers/ata/libata 0x88100ca1 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8939f18b sata_link_debounce +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8bfb96d4 ata_sg_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f6e0a3d ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x912b9dab ata_dev_pair +EXPORT_SYMBOL_GPL drivers/ata/libata 0x92798761 ata_pci_remove_one +EXPORT_SYMBOL_GPL drivers/ata/libata 0x92b9fd53 ata_wait_ready +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9304421b ata_scsi_simulate +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0x94dc62d2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL drivers/ata/libata 0x96e951c6 ata_bmdma_stop +EXPORT_SYMBOL_GPL drivers/ata/libata 0x982611e5 sata_pmp_std_postreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0x995a9de0 sata_set_spd +EXPORT_SYMBOL_GPL drivers/ata/libata 0x99ac18de ata_host_intr +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9a2c5e86 sata_scr_valid +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9ac77f59 ata_port_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e6bb1bc ata_port_queue_task +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa039c1e7 ata_pci_init_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa0d50fab ata_dummy_port_info +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa51b8176 ata_pci_init_bmdma +EXPORT_SYMBOL_GPL drivers/ata/libata 0xa68dcf57 ata_sas_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa0ec055 ata_hsm_move +EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa7584c1 sata_scr_write_flush +EXPORT_SYMBOL_GPL drivers/ata/libata 0xad7d80b4 ata_sas_port_alloc +EXPORT_SYMBOL_GPL drivers/ata/libata 0xade4c514 ata_pci_clear_simplex +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2d6a791 ata_std_ports +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb5b9370e ata_link_offline +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb5ff227c ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL drivers/ata/libata 0xbf48f1d1 ata_bmdma_freeze +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc01279b6 sata_link_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc127fd9a ata_pci_prepare_sff_host +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc2827f8a ata_port_schedule_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc384155d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc673e23e ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc755553a ata_sas_port_init +EXPORT_SYMBOL_GPL drivers/ata/libata 0xc92c06c3 ata_pci_default_filter +EXPORT_SYMBOL_GPL drivers/ata/libata 0xca12ab1d ata_sff_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcb1868f9 ata_do_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd19d019c ata_bmdma_drive_eh +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd2e02f34 ata_dummy_port_ops +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3184024 ata_port_probe +EXPORT_SYMBOL_GPL drivers/ata/libata 0xd349502b ata_host_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdb2606b6 ata_qc_issue_prot +EXPORT_SYMBOL_GPL drivers/ata/libata 0xddbfc930 ata_bmdma_setup +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf01ec94 ata_data_xfer_noirq +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf327cd1 ata_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf330f91 ata_noop_dev_select +EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf62393b ata_busy_sleep +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe5ceb4b2 sata_async_notification +EXPORT_SYMBOL_GPL drivers/ata/libata 0xe64a6209 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d5cc13 ata_timing_merge +EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfae4ef74 sata_pmp_std_prereset +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb2b2105 ata_host_register +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfbbbe239 ata_sas_port_destroy +EXPORT_SYMBOL_GPL drivers/ata/libata 0xfc0cf056 ata_port_start +EXPORT_SYMBOL_GPL drivers/ata/libata 0xffc4f650 ata_std_qc_defer +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xeb52face sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x14d0e1e3 agp_add_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x7d7e9dfc agp_remove_bridge +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x14a22c18 tpm_show_caps +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x19d3ec21 tpm_store_cancel +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1fc50bf6 tpm_show_owned +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x29cab540 tpm_pm_resume +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3fe64b1c tpm_get_timeouts +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x49742753 tpm_show_pcrs +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4b5d966e tpm_show_active +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5077d516 tpm_remove_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x55c2ba7c tpm_pm_suspend +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x67e39c25 tpm_read +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x74b2cce5 tpm_open +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7ae05b88 tpm_release +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x91412147 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xab40b2d2 tpm_show_enabled +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xab9790f2 tpm_continue_selftest +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb4d51051 tpm_show_pubek +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xba9458de tpm_gen_interrupt +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc36a4004 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc6b6cd89 tpm_register_hardware +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe11cfc10 tpm_write +EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf10647b2 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL drivers/connector/cn 0xdf3c19ec cn_add_callback +EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x03ff8e6b edac_pci_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x064d4058 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1bb01536 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x28de9f83 edac_mc_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2d263425 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3106a1eb edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x31edc987 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5d6f4984 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7adf2c7e edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7be5d361 edac_mc_handle_ue_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7f7aebc2 edac_mc_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x80b8f8b5 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8ebb737b edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x975ebe3c edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9a553309 edac_mc_handle_ce_no_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9bb41447 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa4d7e472 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xab307402 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xadc15531 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb20ba762 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc1149227 edac_device_find +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd78d2eb0 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd7a7c5c1 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xebba6aa2 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf4a088bd edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf739205c edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1762524d hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bc8980 hid_input_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2669b80b hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3564ad02 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f9212fc hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x98049acc hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb223032e hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc04cf6c4 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcb0593e5 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd06d1506 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1134e29 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf39b3171 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfb8d65f6 hid_free_device +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x56a65121 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/i2c/chips/ds1337 0x4c0b0237 ds1337_do_command +EXPORT_SYMBOL_GPL drivers/i2c/chips/m41t00 0x1ca52aa9 m41t00_set_rtc_time +EXPORT_SYMBOL_GPL drivers/i2c/chips/m41t00 0xf21515d3 m41t00_get_rtc_time +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x86304918 hpsb_config_rom_ip1394_remove +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xc5771318 hpsb_config_rom_ip1394_add +EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x8e49b23a input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0001b500 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0c7b5ffa wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x3f8bb9bf wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6150616f wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6a71d48e wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x81b955c1 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x8c3f08aa wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x8fbc4394 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xc126cdac wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf5d84a5a wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x02f633f0 dm_noflush_suspending +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x1fd9083b dm_create_error_table +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x89846039 dm_path_uevent +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0x94aa8882 dm_send_uevents +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xd4954fe2 dm_set_device_limits +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe115c1d9 dm_device_name +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xe390877d dm_disk +EXPORT_SYMBOL_GPL drivers/md/dm-mod 0xf25a539a dm_put +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x048240fe dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x6ec8d3a2 dm_scsi_err_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x94d477c8 dm_pg_init_complete +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd4c6114a dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe08bf9b2 dm_unregister_hw_handler +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xf35ed292 dm_register_hw_handler +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x19e409fa md_do_sync +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2db96edf sync_page_io +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x60e83677 md_new_event +EXPORT_SYMBOL_GPL drivers/md/md-mod 0x75e578e0 md_allow_write +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x04662e0f ir_codes_fusionhdtv_mce +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x083661f9 ir_codes_avertv_303 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x0f735c2f ir_input_init +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x151e9ad4 ir_input_nokey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x1cb148f5 ir_extract_bits +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2456e513 ir_decode_pulsedistance +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2a4852cc ir_codes_dntv_live_dvb_t +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x2af1a608 ir_codes_proteus_2309 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x3811daea ir_codes_manli +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x43c89ef4 ir_decode_biphase +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x45b08f68 ir_codes_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4740e7a3 ir_codes_empty +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x4ea698a2 ir_codes_purpletv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x589cad50 ir_codes_apac_viewcomp +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x5db13554 ir_codes_encore_enltv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6606596a ir_rc5_timer_keyup +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6aefdbea ir_codes_npgtech +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6b87c69d ir_codes_iodata_bctv7e +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6d6511e7 ir_dump_samples +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x6e2a1870 ir_codes_adstech_dvb_t_pci +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x7277973d ir_codes_pctv_sedna +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x75e89cc3 ir_codes_flydvb +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x772a30a2 ir_codes_nebula +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x85d37490 ir_codes_dntv_live_dvbt_pro +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x875a29fa ir_rc5_decode +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x89cc1189 ir_codes_winfast +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x902a3cd2 ir_codes_hauppauge_new +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x933d0bb3 ir_codes_msi_tvanywhere +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0x96470cab ir_codes_cinergy +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb1f4eb35 ir_codes_avermedia_dvbt +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xb6cd4666 ir_codes_eztv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xbdce6594 ir_codes_tt_1500 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc1fea0c1 ir_codes_pv951 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc42bd037 ir_codes_budget_ci_old +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xc6c5a7a1 ir_codes_em_terratec +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd1e0258a ir_codes_flyvideo +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd55e6891 ir_codes_gotview7135 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xd9c7f010 ir_codes_rc5_tv +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdaa041ad ir_codes_cinergy_1400 +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xdfcf23df ir_codes_norwood +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf07533a1 ir_codes_videomate_tv_pvr +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf0fc9374 ir_codes_avermedia +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf4f7a4d6 ir_rc5_timer_end +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xf7233177 ir_input_keydown +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfa177653 ir_codes_pixelview +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfb981300 ir_codes_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/common/ir-common 0xfc54a5cd ir_codes_asus_pc39 +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x00583eb8 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1c090328 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x59570228 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x89bb670f saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa5c42036 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaca3a99b saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdbcc9ab1 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe6e23382 saa7146_devices_lock +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf0bd4f72 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf46ba4af saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf83233c0 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x116ac4c2 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x219631a8 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4af03019 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5ec82eef saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x686f4a24 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xd0ab0882 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe7d3ea1f saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2297c7b4 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x75bb7382 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x810d9201 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9d872107 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa7c6b518 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb2ed455f ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xdb69e3e5 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/video/compat_ioctl32 0x480cbc84 v4l_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0x32bf9790 get_key_pinnacle_color +EXPORT_SYMBOL_GPL drivers/media/video/ir-kbd-i2c 0xbba0980e get_key_pinnacle_grey +EXPORT_SYMBOL_GPL drivers/media/video/mt20xx 0x7c1575b8 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x46e7d036 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x2fdb0c81 tda8290_attach +EXPORT_SYMBOL_GPL drivers/media/video/tda8290 0x6469cfdd tda8290_probe +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xd1ca048b tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tea5761 0xd1fa637e tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0x1fa85015 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/video/tea5767 0xbb01c6dd tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/video/tuner-simple 0x097e009d simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7811a2ed v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa00cb2ee v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0785d71d videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1276f157 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1425eaf4 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x213b5a29 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x27ac89a5 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x291d62c2 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2bfac081 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x57797189 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5cd5dbf0 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x777184a0 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x77b21259 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7ab5a8b1 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x849101d0 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x99cf695e videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9e0a2dd7 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa038d2ba videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb3d3bdcf videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc85ac07d videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xccb52a97 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xda975eff videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe2728df5 videobuf_cgmbuf +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe358d13f videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf1c44285 videobuf_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0d8e0cfa videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x14b4d112 videobuf_pci_alloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5c72c0d3 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x66f9427d videobuf_vmalloc_to_sg +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6f53cad6 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x705f0287 videobuf_pci_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7c5adbc3 videobuf_pci_dma_map +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x83dc5cd4 videobuf_dma_sync +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x966bafce videobuf_queue_pci_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9ad71881 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb2839b09 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb2f3268b videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdbb2b229 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xeafae5d7 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x1a7a8516 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4284a5a1 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xfd51bfee videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1570848c sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x40dedf84 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x60f2ac5a sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x79ae724e sm501_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x95004e46 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa0dc488c sm501_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb84cdbed sm501_unit_power +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x02904602 sdio_writew +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x072e9a9b sdio_unregister_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1d624a32 sdio_enable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x210b8a1b sdio_memcpy_toio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2745e129 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4d80455d sdio_readl +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x57e58151 sdio_disable_func +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5e0c0da4 sdio_f0_readb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5ee7d494 sdio_release_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6ae8d0b3 sdio_release_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7521a8eb sdio_writel +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x78cd11ca sdio_f0_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7f43405a sdio_readw +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x891c7244 sdio_writesb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8d4f408a sdio_register_driver +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x923aef3f sdio_readsb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9769520d sdio_writeb +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x979ccc5a sdio_claim_irq +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xabba0ac0 sdio_claim_host +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb78e63f4 sdio_set_block_size +EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc04107d4 sdio_readb +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x42492fcf cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x73671a7e cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x95ff9166 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x35e10d72 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x40459b52 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x70618c5a DoC2k_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x14bf57f1 DoCMil_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x6f3f3978 DoCMilPlus_init +EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0d4e007c register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x284fda04 parse_mtd_partitions +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3abe8bb6 default_mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x43f9e52a unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x567a33c5 add_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x68acf215 get_sb_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6b00696d put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c06d00e mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7fa9a4d4 del_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x91da1be0 mtd_table +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb427efcd get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb8dc6710 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbeadabf4 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd04e0801 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeda73770 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf499c630 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3f821d70 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4d5acefd add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x516345fb deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x57e889a4 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x12fa7b22 nand_scan_tail +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2c66cbbe nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x50ad110d nand_scan_ident +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x868203e7 nand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc30cd43e nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2307d788 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x785b96fa onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x02c37a16 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2ed2c6be ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x35e87929 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x56e27216 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x81e11518 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa95e2b42 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaef461cc ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb0144d3a ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc2e0bfd1 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf546410b ubi_open_volume +EXPORT_SYMBOL_GPL drivers/net/fec_mpc52xx_phy 0x1b9ffe9f mpc52xx_fec_mdio_driver +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x093c2ec7 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e220a66 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0fbfd923 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1715532f mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1b880bf4 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2167f8a3 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x237c9e50 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x26b51f62 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2bbbc83a mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x380d0026 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3b56b95a mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f708023 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x706562cc mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x737e48af mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x75905842 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7e2ed196 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x81b526c4 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x835561df mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x977b1bba mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x98636c42 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa163c68e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa1b5111a mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb34b5ef8 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb42a9d76 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb5758fb9 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbcff51b3 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce850767 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd1f48ff9 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd2b54c5c __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd365e8a7 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3c10cc2 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdb945767 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd409add mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe6f929e2 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe9fe5347 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xed607910 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xedce07c9 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xef815169 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf5d0f1c9 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfceb1cda mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x705c3994 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbb301c26 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0d04088e usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x12775d69 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1c5fc1a3 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23bd541d usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x40a1739b usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x49fc2c07 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4d911c2d usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x52629bb3 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x595816bc usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f9d44e6 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x816e23f8 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b233f50 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9f2b1509 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf0929997 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfdd68513 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0e87eee3 libertas_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12dde9b7 libertas_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1f710b96 libertas_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x26e30578 libertas_remove_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2a3c253d libertas_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4b9b86e9 libertas_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6cc771c0 libertas_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6e302075 libertas_add_mesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8708b844 libertas_prepare_and_send_command +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa4b1fe31 libertas_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdb26d815 libertas_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdf1cb9af libertas_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x0cffe2d6 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x11f682e1 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x13109ad7 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0x1fd1b788 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xaa748adb p54_fill_eeprom_readback +EXPORT_SYMBOL_GPL drivers/net/wireless/p54common 0xb77c2fb5 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0de55bc7 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x163d4dcb rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a4c5122 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2b7c1437 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3233ff80 rt2x00mac_get_tx_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4ee6c33b rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x741dcf87 rt2x00mac_erp_ie_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x815d001e rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8c4fac24 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8d928f1c rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8ea74b9f rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb967197e rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb96f635b rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc6627ad9 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc710dc17 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd3e2cbaf rt2x00lib_get_ring +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe403eb3a rt2x00mac_config_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe60acc15 rt2x00lib_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf622af91 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfc527f13 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x02f0df2c rt2x00pci_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2087ecaa rt2x00pci_beacon_update +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2db78ec4 rt2x00pci_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x46378da1 rt2x00pci_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x590af042 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8b5c73a6 rt2x00pci_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa3fbff71 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbe0a2cf2 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd0fbb0a7 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0c0f87f2 rt2x00usb_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2cb8c75c rt2x00usb_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2ead2bab rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4715fec4 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d62df3f rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x84bf7c57 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x898fceb2 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb8d900e6 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbd973b69 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe71d2cc1 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe7df2e5c rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/power/power_supply 0x6b9aac3c power_supply_unregister +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xa2ff6b5b power_supply_changed +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xc750b031 power_supply_register +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xf6719fcf power_supply_am_i_supplied +EXPORT_SYMBOL_GPL drivers/power/power_supply 0xf683359a power_supply_class +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x01e56662 rtc_class_open +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x0b60c5a9 rtc_set_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x11b28abd rtc_class_close +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x22f0b840 rtc_update_irq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x3c6c302e rtc_device_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x3e7884db rtc_irq_set_state +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x60ffcba8 rtc_set_alarm +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x7686c37a rtc_read_time +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x851d7a9d rtc_device_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0x85d41106 rtc_irq_register +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xdc9f43cc rtc_set_mmss +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xeed165d1 rtc_irq_set_freq +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xefa9cf5b rtc_irq_unregister +EXPORT_SYMBOL_GPL drivers/rtc/rtc-core 0xf003a077 rtc_read_alarm +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0394dc23 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e5055c5 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2cdc635a iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x30fb89be __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x390c24f7 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e629c75 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x534f7108 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b0089c0 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x67d82279 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x769b6b98 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c0be076 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90ce0201 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x918f11c4 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x94128ff5 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f82d91f class_to_transport_session +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa046d53b iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa14f948a iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa94ed8f9 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc368a434 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc95dffa9 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd504e0ac iscsi_eh_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdcdfef57 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe11022b6 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe72a7fc4 iscsi_prep_unsolicit_data_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef9cb74a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf95b604a iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff5ea71f iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x09ddfa2e sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0ead8482 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1fe26115 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3cd6227b sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5ca2aab9 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x61955e9d sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64729c9d sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65e2d734 sas_slave_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6d893f76 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f84fdde sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8efb2394 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8f8247ff sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x904c4842 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x96119d80 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9efe943e sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xab2697ab sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb2e2d381 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb416f54c __sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf49c2a44 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf8675d37 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x18237175 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7df20825 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa7f3189c srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb7f67094 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xbd0ac992 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc121e3ae srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x10e34ed9 sdev_evt_send_simple +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1a3d4a3f __scsi_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x1bd90973 sdev_evt_send +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x2ea5c91c scsi_flush_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x35d8c94a sdev_evt_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x4146732c scsi_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x43a096dd scsi_internal_device_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x7e275ea8 scsi_complete_async_scans +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x80f5765c scsi_schedule_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0x86a5598d scsi_target_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xa615831b scsi_target_block +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xbb07086e scsi_nl_sock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xc2ce1b1d scsi_internal_device_unblock +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd55f6159 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xd941ea8e scsi_execute_async +EXPORT_SYMBOL_GPL drivers/scsi/scsi_mod 0xff09a3ff scsi_mode_select +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1bdcb6a5 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5c7ba361 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7388105c scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x894884aa scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb94006a3 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbdc13af1 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc7684dbb scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xcf9505bd scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf91c43fa scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16aa6dca iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x404ed3ad iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6246fe3b iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6923cdce iscsi_conn_error +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c4a77e4 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x793e17af iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8661c00c iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8b349ffc iscsi_if_create_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x90f80792 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x95662e37 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb617153 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xceb83822 iscsi_if_destroy_session_done +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd216e6fe iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe57599f5 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeeef498c iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfce52ff6 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x257364ef srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x4248f240 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x92f2683c srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x99e58567 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc1e31f28 srp_rport_del +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x7dd43323 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x9cc0f7d5 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xb48b793b pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xc2eb2859 pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1a7add89 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1f59edb6 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x56872dea spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x6e2e1e73 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x78acad33 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xece99eef spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/uio/uio 0x05c8d052 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x3093ed00 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x8e0b1eba uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xc9108e2f usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xea364aa0 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x0343ec8b usb_get_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x078c423e usb_driver_set_configuration +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1ab8e72a usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x1c93c221 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x349b8c7b usb_match_one_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x35135bad usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x36e25262 usb_mon_register +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3905d1f8 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3bb04b4e usb_store_new_id +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3be89d3c usb_register_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x3ee3f024 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x59eef58e usb_put_intf +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x5cad640d usb_unanchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x6263a24a usb_autopm_get_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x762f64bf ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x8359df6d usb_deregister_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x885a132a usb_hc_died +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x97eb3f3b usb_autopm_put_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0x99ae6b11 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xa170a5d9 usb_anchor_urb +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xade072f3 usb_register_device_driver +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xc80aefa9 usb_interrupt_msg +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xcbfe8c6b usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd0eb4b2a usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xd3f5a2a0 usb_bus_list_lock +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe8382487 usb_autopm_set_interface +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xe9587909 usb_unregister_notify +EXPORT_SYMBOL_GPL drivers/usb/core/usbcore 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x26cab57a usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x341f81b0 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3b08465b ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x54fc7bfe usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x69607779 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa0a7aaa6 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbc516f3d usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xecd4cc46 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfa139ab6 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/phidget 0x7b194c8a phidget_class +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x29d6f74d usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4ff00c6e usb_serial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x62944cfe usb_serial_register +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa1f89837 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2e915e7 usb_serial_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb86d6ccd usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbe878d3d usb_serial_deregister +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf084bc65 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x3edad223 usb_usual_clear_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0x89d4dbaf usb_usual_check_type +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xcd9991a9 usb_usual_set_present +EXPORT_SYMBOL_GPL drivers/usb/storage/libusual 0xde134c69 storage_usb_ids +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x78808bc6 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xb9526a17 sis_free_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7ab45f63 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x93cd5d95 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9413dd47 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd9e47440 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xda14bba0 w1_read_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x14d97760 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x511ad1e9 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c14de dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x97f48700 exportfs_decode_fh +EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xc1a577e1 exportfs_encode_fh +EXPORT_SYMBOL_GPL fs/fat/fat 0x078d7af8 fat_free_clusters +EXPORT_SYMBOL_GPL fs/fat/fat 0x08b18831 fat_date_unix2dos +EXPORT_SYMBOL_GPL fs/fat/fat 0x0f4e869b fat_attach +EXPORT_SYMBOL_GPL fs/fat/fat 0x316affe9 fat_sync_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0x35450a17 fat_getattr +EXPORT_SYMBOL_GPL fs/fat/fat 0x4c4d916f fat_alloc_new_dir +EXPORT_SYMBOL_GPL fs/fat/fat 0x4f2acd69 fat_dir_empty +EXPORT_SYMBOL_GPL fs/fat/fat 0x4fe6cb10 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL fs/fat/fat 0x7159e8e1 fat_flush_inodes +EXPORT_SYMBOL_GPL fs/fat/fat 0x8b002a65 fat_scan +EXPORT_SYMBOL_GPL fs/fat/fat 0x8bdf4e23 fat_remove_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0x9ced7ab4 fat_build_inode +EXPORT_SYMBOL_GPL fs/fat/fat 0xb3a81c27 fat_fs_panic +EXPORT_SYMBOL_GPL fs/fat/fat 0xb92d4aaf fat_add_entries +EXPORT_SYMBOL_GPL fs/fat/fat 0xbe0b3be8 fat_fill_super +EXPORT_SYMBOL_GPL fs/fat/fat 0xe3cea196 fat_detach +EXPORT_SYMBOL_GPL fs/fat/fat 0xf52dc928 fat_search_long +EXPORT_SYMBOL_GPL fs/fat/fat 0xf713bdd1 fat_notify_change +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x60c65f9f gfs2_register_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x6c94eca8 gfs2_unregister_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0x8f3bf6b0 gfs2_unmount_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xa06b334e gfs2_withdraw_lockproto +EXPORT_SYMBOL_GPL fs/gfs2/gfs2 0xdd2ff1de gfs2_mount_lockproto +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x30a17ad4 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x338b7b1d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x45bbdd95 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7973a57d o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x79d63df9 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdfd1a63e o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe48f6a59 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe525ca6c o2nm_get_hb_ctl_path +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x05cd12e7 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0d926fba dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1e45a63c dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x55195bb0 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x72e39ff9 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf460500c dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL lib/lzo/lzo_decompress 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xb5b87a56 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x1f7aad6f bt_class +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x02b0cf39 dccp_rx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0a487ea5 tfrc_calc_x +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x0bed39a0 dccp_tx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x1db80d25 dccp_tx_hist_find_entry +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x29d0076b dccp_rx_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x48fdeba9 dccp_li_hist_purge +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x5c80938f dccp_tx_hist_purge_older +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x6c252d29 tfrc_calc_x_reverse_lookup +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0x8a19849d dccp_tx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xb669d37e dccp_rx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xba53907f dccp_tx_hist_delete +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xd67cc8fb dccp_rx_hist_add_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xe0a65df2 dccp_rx_hist_new +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf52d845a dccp_li_update_li +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xf9855ba2 dccp_rx_hist_find_data_packet +EXPORT_SYMBOL_GPL net/dccp/ccids/lib/dccp_tfrc_lib 0xffff1ec4 dccp_li_hist_calc_i_mean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09244c29 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ab4a27f ccid_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ef01b3e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x135e46cb dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x187a6397 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1c58d6b5 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2931ddcf ccid_hc_rx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0x34b53933 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x37798a53 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39d94754 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b3c0b1b dccp_feat_clean +EXPORT_SYMBOL_GPL net/dccp/dccp 0x434b07c8 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x446e3d64 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44cdc27c dccp_unhash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b51d780 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e6ed62b dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ce2cf43 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x67e3ec89 dccp_feat_confirm_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6a6100e3 dccp_hash +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d4624e1 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x848c8aba dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8678f429 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8828409a dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x928248fb dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d6a3846 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa632399d dccp_feat_change_recv +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb09e2ab3 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc033327 ccid_hc_tx_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbd81441b dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe05feb5 dccp_feat_clone +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe4cf010 dccp_feat_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf6b58ba dccp_feat_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2763fd0 ccid_hc_rx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6b5ad3d dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc71b2f56 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcdaed85c dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcfd6ce55 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcfd8079b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd568abb0 ccid_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7e5ab54 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdfc170cd dccp_sample_rtt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe19fd998 ccid_new +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe70f3cbf dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe88d57b3 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe969a7c5 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb7f6018 ccid_hc_tx_delete +EXPORT_SYMBOL_GPL net/dccp/dccp 0xec3e4ad2 dccp_insert_option_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0xedaa6610 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeecad0b5 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb92a556 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x354fd28c dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e7e10ec dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x766c24bf dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fbbce3e dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x98a88dc8 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf5bc1278 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x559f6fc1 ieee80211_wx_get_auth +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0x9bcbb7b3 ieee80211_rx_any +EXPORT_SYMBOL_GPL net/ieee80211/ieee80211 0xd55e5832 ieee80211_wx_set_auth +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x027bbcc4 ieee80211softmac_wx_set_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x060f9f4d ieee80211softmac_wx_trigger_scan +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x264fde55 ieee80211softmac_wx_get_essid +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x27f5d51d ieee80211softmac_fragment_lost +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x304484a8 ieee80211softmac_wx_get_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x4f3fa66e ieee80211softmac_start +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x5c8bc7d0 ieee80211softmac_wx_get_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6d09a21c ieee80211softmac_wx_get_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x6f2e324a free_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x72f51a7d ieee80211softmac_clear_pending_work +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x78bfa541 ieee80211softmac_wx_set_genie +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0x8f56fd2b alloc_ieee80211softmac +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xa0031dac ieee80211softmac_wx_set_mlme +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb085b35b ieee80211softmac_wx_set_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xb4880c93 ieee80211softmac_stop +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xbd2f550b ieee80211softmac_highest_supported_rate +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc07b4ccc ieee80211softmac_wx_get_scan_results +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xc9599a89 ieee80211softmac_wx_set_wap +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xdeeb86e4 ieee80211softmac_scan_finished +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xeaffe52b ieee80211softmac_set_rates +EXPORT_SYMBOL_GPL net/ieee80211/softmac/ieee80211softmac 0xf92cbb72 ieee80211softmac_notify_gfp +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x16bbdb26 nf_nat_port_range_to_nlattr +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x30386ec5 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7471e776 nf_nat_proto_find_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74e54eb1 nf_nat_port_nlattr_to_range +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x77eb9b6a nf_nat_packet +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd0712914 nf_nat_proto_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3e56b9bd tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4b5060d6 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4e73fd08 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc9561ef0 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe427d96f tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x039be471 ip6_find_1stfragopt +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x33b41773 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x43cf5dec inet6_csk_search_req +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x522139bb ip6_dst_blackhole +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x78c46790 fl6_sock_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7b6c507b inet6_csk_xmit +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8318c7c9 ip6_sk_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa2fc990a ipv6_dup_options +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb7552047 inet6_destroy_sock +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc12f5aec inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xccfdff15 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdc57bb19 ip6_dst_lookup +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xded503e3 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf955895c ipv6_opt_accepted +EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfb443de4 ipv6_find_tlv +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x032eac51 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x058f6d00 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d922bb3 print_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e9ce0e6 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1283d711 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15c10b0b nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1c621e45 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25e649f2 nf_ct_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27f7b29a nf_conntrack_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9580cb nf_conntrack_flush +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31023a29 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x315a0ef4 __nf_conntrack_helper_find_byname +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x317ee063 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3206ebfe nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x330755a3 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x351d4444 nf_conntrack_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3609de81 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37b90f82 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3caa56f1 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4311ead1 nf_ct_helper_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4323a400 nf_conntrack_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x438b8b4e nf_ct_unlink_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44640857 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4547f112 __nf_conntrack_attach +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45c36c3d nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x491ddf27 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49951da7 nf_conntrack_tcp_update +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4aaac68f __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5116ebfa nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5628e0c9 nf_conntrack_untracked +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5872a018 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59e7ba6b nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x632ef941 nf_conntrack_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x712a267b nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fb6251 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b56ed70 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ea8060d nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x834ae3b0 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e44fa29 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f09a4b4 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x970e1e8b nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x98e1ac72 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e523400 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa224c660 __nf_ct_event_cache_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa2ebb216 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa5387c09 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6bf70bc nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6f62ec0 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xace98352 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb048036a nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2cc355e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba6b1676 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb2a420b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc887e16 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe3f2939 nf_conntrack_checksum +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc02135af nf_ct_expect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8bf9ffa nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcaf44b68 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbf7fd2a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0265ceb nf_conntrack_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c356d2 per_cpu__nf_conntrack_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5100e40 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea2f6f6a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea30d732 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef375da7 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf115d06d nf_conntrack_hash_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5966a1f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9ae81a1 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9b3f06d nf_ct_expect_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9c7e96d nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfab367a7 nf_ct_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfaccc8b4 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x1acd2e3d nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x38ad9aae nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1e514a18 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4092f0cc nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x586b1538 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8e101c3e set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9c35bb4f set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9e29655d nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa2e9e22c set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc09de8ea nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc16f2de5 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeed56663 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x5c89b807 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x162d1ddf nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x24a7d7c8 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa6c4339b nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb3191cc5 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xacd5565c nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb454175c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x43431369 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4bb818fe ct_sip_get_info +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x60df86a5 ct_sip_lnlen +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9afe14e2 nf_nat_sdp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa37fb829 ct_sip_search +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x130ad333 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x031ce5c5 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1a1647f9 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd1b9dc28 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeca95329 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xee550f0b nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b3dbc9b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3fc21fcf xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x422e4c6e xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa2672 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x46b1760c xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x53baf5b3 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63f05053 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x928528d3 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ceff36a xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd82f3a45 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddc88d87 xt_replace_table +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x236c199a rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x29531be0 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x019fe31d xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0668e6f0 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f950e7f rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29d959bb xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a0c1c3f rpcb_getport_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ecb8e0b xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x419a7cdc xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b75cb07 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x510e6aed xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54addaa7 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c97d47a xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64f6062a xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x668a1166 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71c5f9bd csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79902edd xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b4ac0a3 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89a09bfb svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cd091f3 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92248e45 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x928c2ecd xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa22ae052 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaae0a05c xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae1b6e58 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9377500 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb0798ae xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc28fe96 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc8201f1 xprt_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe14d9c09 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe46769a0 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2a3f66a svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9f54dcf xdr_skb_read_bits +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x0811c5a6 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x168bab5e pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x35695672 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x53ac4f47 ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x9db4d098 aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc8f315c1 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc9695ec8 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xe6714ea1 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf01e96e0 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xf785f8b3 aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x1cec5c00 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x1d5cdc3c soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x3d62f0dd soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x8eac66cf soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xb3626479 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xc65b21d7 soundbus_dev_get +EXPORT_SYMBOL_GPL sound/oss/ac97_codec 0xeb0bf6d8 ac97_tune_hardware +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a2ee654 snd_soc_dapm_sync_endpoints +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13122c2d snd_soc_get_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3634bfe2 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x451322b1 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x544730b5 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x600e9ac4 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x644dca81 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fd511b7 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74e9cb3e snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fc72038 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83027613 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88c0725c snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8cdcd708 snd_soc_dapm_connect_input +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x900154e5 snd_soc_info_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c6c9e4e snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacf9b916 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf07c7e8 snd_soc_dapm_stream_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafd3af2f snd_soc_new_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf3c3f29 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1e015c9 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4cb121c snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb9aa8cc snd_soc_put_volsw_2r +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd067fe0e snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5ff1270 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8af9cc1 snd_soc_dapm_set_endpoint +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb14fc56 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdba6b67d snd_soc_free_pcms +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde67c946 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe410c801 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6c245ac snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec33533f snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x00106729 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x001333ca pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x002244dc nf_net_ipv4_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x0023c0df skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x00e6c71b sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01d84215 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x01e56033 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x02825909 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x02d1f36b init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x02e75e52 sysdev_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x02eca5e6 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x031b2e74 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03455d61 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x035e29d7 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x041c1f27 class_device_del +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04d4c901 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05c6fb1d devres_find +EXPORT_SYMBOL_GPL vmlinux 0x06102001 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065559e6 get_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x06b21c68 pci_unblock_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0x07592eb0 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x07ac81d3 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d1f0b0 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x07e6c22a i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x0800abe4 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x098ff3a9 ide_find_port +EXPORT_SYMBOL_GPL vmlinux 0x09af5e04 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x0a41cfed pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0af13be1 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x0b6052d7 do_sync_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x0c7b7209 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x0cf7e60c bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0d706d2e rh_set_owner +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecdd4 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x0df7f667 crypto_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x0e0b8cbf srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0e46fe14 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x0f565795 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x0f7bc4c3 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x101461e8 nf_unregister_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x107f92d5 ide_setup_pci_device +EXPORT_SYMBOL_GPL vmlinux 0x1109760e unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x11741c72 pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0x1195d07b device_rename +EXPORT_SYMBOL_GPL vmlinux 0x11ed2acc class_device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x12b846b9 __crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1306724a crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x13817b62 sysdev_create_file +EXPORT_SYMBOL_GPL vmlinux 0x13a70527 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x13a98dd9 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x141266e2 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid +EXPORT_SYMBOL_GPL vmlinux 0x14e9d30b pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x158e1d91 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x15933f21 pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15b2594a debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x15d8c658 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x1606239e pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0x16482786 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x16a5ee85 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x16fb347b __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1720f19a xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x172b537e class_device_add +EXPORT_SYMBOL_GPL vmlinux 0x1752d159 platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x17f89b34 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x1838bcdf rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18dae898 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x190498a8 inotify_inode_queue_event +EXPORT_SYMBOL_GPL vmlinux 0x19e38c39 device_del +EXPORT_SYMBOL_GPL vmlinux 0x19ede98c get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x19efffc9 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x1b2edf58 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1c8363b2 proc_net_fops_create +EXPORT_SYMBOL_GPL vmlinux 0x1c873c5e transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x1cafdafb get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x1cc3108f generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x1d135cee inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x1d1e307b xfrm_calg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x1d590204 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x1d595c74 class_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e7fedf4 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ec85b92 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x1f1e758b vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x1f355ca5 ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x1f5dc507 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x1fb8fe0d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x202f22de class_device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x20809a89 pci_create_bus +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x21c17ce2 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x221bc0b6 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x22667613 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22ab0842 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x22e2c20b atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x237282e6 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x2399faf2 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x24196ba2 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x24b519c5 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x255503d2 nf_register_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x25c7f28c sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x25d9958c cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x26041d5c pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28aa682a debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x28abf3d7 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x28b2cc80 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL vmlinux 0x2907b831 find_pid +EXPORT_SYMBOL_GPL vmlinux 0x294d5839 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2950d50d kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x29615874 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2a3bd437 kill_pid_info_as_uid +EXPORT_SYMBOL_GPL vmlinux 0x2a4b8622 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a885f76 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2a967133 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x2ab2559f debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x2ab7569c debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x2ac61f66 put_driver +EXPORT_SYMBOL_GPL vmlinux 0x2acf2f22 register_posix_clock +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2c431b30 firmware_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2d1f6ab9 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2d36c57b rh_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d49ae49 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2f223505 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2f9f6163 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x2fa3fbfe class_device_create +EXPORT_SYMBOL_GPL vmlinux 0x2fb6a587 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x301fcc0d scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x31142b22 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x31cd9eb6 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x31da4496 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x32214598 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x32262325 bd_release_from_disk +EXPORT_SYMBOL_GPL vmlinux 0x326b2059 destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x32f8c355 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x334ef9fb xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x3369de62 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x340cead5 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x35f433fd user_read +EXPORT_SYMBOL_GPL vmlinux 0x35fc4ce3 ide_setup_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x35fe3643 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x3642140b generic_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x3669f863 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x36a82ee1 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x36c0b9e3 device_add +EXPORT_SYMBOL_GPL vmlinux 0x37063717 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x3747fe2f ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0x37826487 firmware_register +EXPORT_SYMBOL_GPL vmlinux 0x37868771 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x37c1f7aa driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x37d2c2c5 rh_dump_blk +EXPORT_SYMBOL_GPL vmlinux 0x38931bd4 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x390c3328 genhd_media_change_notify +EXPORT_SYMBOL_GPL vmlinux 0x39819646 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x3a2e1e4a pci_find_aer_capability +EXPORT_SYMBOL_GPL vmlinux 0x3a74a493 pci_restore_bars +EXPORT_SYMBOL_GPL vmlinux 0x3a7f8b86 __local_bh_enable +EXPORT_SYMBOL_GPL vmlinux 0x3aca188f led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x3af6a501 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x3b4c5101 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x3bfde24d file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x3c436194 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x3c75981c tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3cbe3ab4 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d5155c3 class_device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3e71177d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3e818cc7 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x3e975bff sysdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x410853db blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4186676c ide_pio_timings +EXPORT_SYMBOL_GPL vmlinux 0x41af0634 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x41bf2773 inotify_init_watch +EXPORT_SYMBOL_GPL vmlinux 0x41eed313 ide_build_sglist +EXPORT_SYMBOL_GPL vmlinux 0x41f24e7c alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x420bf363 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x42bd89a7 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x43952160 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x43969dbe rh_alloc_fixed +EXPORT_SYMBOL_GPL vmlinux 0x43b8e3fd tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x43e9ab76 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x441d72b4 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x462ed483 pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0x465b723e pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x46b2a30d proc_ide_read_capacity +EXPORT_SYMBOL_GPL vmlinux 0x49874af6 ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4a47e16c transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4ae7f2aa platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b1334a0 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x4b88e224 device_power_up +EXPORT_SYMBOL_GPL vmlinux 0x4b98827c rh_init +EXPORT_SYMBOL_GPL vmlinux 0x4c72c022 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c995259 system_latency_constraint +EXPORT_SYMBOL_GPL vmlinux 0x4d0cfd02 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4d62bd58 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x4e080956 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4e1f2898 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x4e5c2d92 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x4e7fa2b6 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x4ebe5257 ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0x4ee94dca pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x4efd7d09 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4f5c6ff7 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x4f68b6be sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x4ffd4fd6 put_device +EXPORT_SYMBOL_GPL vmlinux 0x5080386b do_exit +EXPORT_SYMBOL_GPL vmlinux 0x50b7b22d sysdev_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x5209d688 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x52209bc1 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x5362bf0b input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54314fae crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5486b26e inotify_inode_is_dead +EXPORT_SYMBOL_GPL vmlinux 0x548c93c6 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x554616e0 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x56c6829d invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x56ce7280 unregister_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0x56d26c0e pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x56e1ab10 put_inotify_watch +EXPORT_SYMBOL_GPL vmlinux 0x570e61e4 shrink_submounts +EXPORT_SYMBOL_GPL vmlinux 0x578e87a0 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57e25776 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x58459029 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x58834bf5 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x58a8af82 macio_find +EXPORT_SYMBOL_GPL vmlinux 0x5970a47e class_device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x59a0fce9 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x5a302432 ide_pci_create_host_proc +EXPORT_SYMBOL_GPL vmlinux 0x5a47ef2c vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x5a4c724f rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x5ae17217 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x5b006c17 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x5ba324ec macvlan_handle_frame_hook +EXPORT_SYMBOL_GPL vmlinux 0x5bf77785 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c2391d1 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x5c9b9367 srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5d40d62f __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x5d64e2d6 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d847606 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e4f7420 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0x5f00c400 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x5ff1882f spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x5ffc7e51 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a35a6e platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x60ce47de modify_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x60d6ebc6 device_register +EXPORT_SYMBOL_GPL vmlinux 0x611db69d tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x6198c886 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x61aa6554 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x61b16eea led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x62582bf6 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0x63bf1837 simple_attr_close +EXPORT_SYMBOL_GPL vmlinux 0x64266964 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x6428da4f rh_attach_region +EXPORT_SYMBOL_GPL vmlinux 0x64375161 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x64db2814 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x6574ed8d securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x657e34ff __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x65957f2c anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d517c4 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x65f2b6c7 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x66015f29 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66283f11 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x665aba39 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x666a188c posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x6689b8a2 remove_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x66a3bc9d sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x66cbe6d1 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f29f5c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x672d3758 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67eb8c57 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x680dd3d7 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x681f81c8 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported +EXPORT_SYMBOL_GPL vmlinux 0x690338f2 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x69aa7ac3 queue_work +EXPORT_SYMBOL_GPL vmlinux 0x69e10842 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6a1dd5e8 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6ccb142f cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x6db85dfc bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6dcf00dd device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6dcfc70a xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x6df728ca pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0x6e22a188 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x6eb5febc cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x6eec6d79 class_device_get +EXPORT_SYMBOL_GPL vmlinux 0x6f95ae65 ide_dma_intr +EXPORT_SYMBOL_GPL vmlinux 0x6f9be110 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x6fef6afb xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL vmlinux 0x703a90ee pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x70698e9f pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x707e31d1 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x708a2624 ide_find_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x71005385 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7110c2e3 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x7150892a ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0x71fb3651 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x723e701c inotify_init +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727e1d5b __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7334ebc8 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x73b1f76d do_posix_clock_nosettime +EXPORT_SYMBOL_GPL vmlinux 0x7410f07e inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x759e8fed devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x75b203c7 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d3005f inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x75d6908f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76117bd4 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x765f2627 __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x770e5040 class_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7750f92b device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x777c745d rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7833192a scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x78e89469 crypto_hash_type +EXPORT_SYMBOL_GPL vmlinux 0x79799079 inotify_remove_watch_locked +EXPORT_SYMBOL_GPL vmlinux 0x79a4b9fa devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x79c480da rh_dump +EXPORT_SYMBOL_GPL vmlinux 0x7a2d1e58 tty_ldisc_get +EXPORT_SYMBOL_GPL vmlinux 0x7a484f4e relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x7a608374 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x7a8844d8 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b9afdc5 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7c04d7fe xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL vmlinux 0x7c524dbd synchronize_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x7c8940b1 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x7c9dad98 __ide_error +EXPORT_SYMBOL_GPL vmlinux 0x7d5832e6 __blk_add_trace +EXPORT_SYMBOL_GPL vmlinux 0x7d8ebc31 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e422bec fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x7e4ab036 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e57c5a4 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x7e5dd788 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x7f0fe8d6 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write +EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x807e392f ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x8086bf58 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8100c924 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x8146cb8a klist_init +EXPORT_SYMBOL_GPL vmlinux 0x81647949 lookup_instantiate_filp +EXPORT_SYMBOL_GPL vmlinux 0x818378bf elv_register +EXPORT_SYMBOL_GPL vmlinux 0x81a2de05 get_device +EXPORT_SYMBOL_GPL vmlinux 0x81a47317 set_acceptable_latency +EXPORT_SYMBOL_GPL vmlinux 0x81baaf02 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8202e06d device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x826360fd do_posix_clock_nonanosleep +EXPORT_SYMBOL_GPL vmlinux 0x829d9a8d devres_get +EXPORT_SYMBOL_GPL vmlinux 0x82a7aa75 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x82a8843d srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8373e20b debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x83b0e80e devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x846b6c40 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x8472ec47 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x8487da71 ide_device_add +EXPORT_SYMBOL_GPL vmlinux 0x84f7d8c9 get_cpu_sysdev +EXPORT_SYMBOL_GPL vmlinux 0x859be470 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x85a99968 ide_end_dequeued_request +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85ce71d9 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x85e5a3db ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0x86135f87 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x861e5dc7 ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x873e36cb led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x87a9ac43 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x8875a96b apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x887adbc2 inotify_find_update_watch +EXPORT_SYMBOL_GPL vmlinux 0x897d44c6 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x8981ea2c pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x89a2d6a3 ide_error +EXPORT_SYMBOL_GPL vmlinux 0x8a01b51a devres_add +EXPORT_SYMBOL_GPL vmlinux 0x8a863e5b nf_net_netfilter_sysctl_path +EXPORT_SYMBOL_GPL vmlinux 0x8affe8ea vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x8ba0b31a irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x8c5ac4f5 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x8cbc4eee audit_log_untrustedstring +EXPORT_SYMBOL_GPL vmlinux 0x8d0877ee sysdev_class_register +EXPORT_SYMBOL_GPL vmlinux 0x8ddaff8d class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x8f0c36ba device_attach +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8ffbf210 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x900a7ffb platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x90713db0 of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0x907326bf __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c3e64b tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x914f5844 task_nice +EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0x91d41f6c __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x91e99459 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x91ff154e ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0x9241c3ee device_power_down +EXPORT_SYMBOL_GPL vmlinux 0x92445aee hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0x929679bf platform_device_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x92c06eab class_create +EXPORT_SYMBOL_GPL vmlinux 0x92d6883f add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x92d79dbb transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93162064 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x93397af6 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93d89c5b pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x94034f5d class_device_put +EXPORT_SYMBOL_GPL vmlinux 0x954abf0a crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x955de0cc xfrm_calg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x957b66c1 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x95944157 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read +EXPORT_SYMBOL_GPL vmlinux 0x96443f31 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x96533a1c blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x96b65f00 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x9756b763 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x97d3c1d9 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x983c7494 rh_detach_region +EXPORT_SYMBOL_GPL vmlinux 0x9874e22c cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x99aa8c9c inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x99b5fad2 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x99f9c8fe register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x9adbf58e get_proc_net +EXPORT_SYMBOL_GPL vmlinux 0x9b2d4201 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b686a78 srcu_readers_active +EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported +EXPORT_SYMBOL_GPL vmlinux 0x9d03fadf pmac_i2c_detach_adapter +EXPORT_SYMBOL_GPL vmlinux 0x9db36a07 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x9dea17ab bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9e790dfe sysdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f19ac65 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x9fb52d92 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa06b491b vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xa08e1bf5 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xa0dcfb6e page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xa0e3e625 class_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xa17f0910 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xa18cef6a tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xa2197f4b devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xa28aaf29 rh_create +EXPORT_SYMBOL_GPL vmlinux 0xa2d83ad6 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xa5398200 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa5619319 pci_cleanup_aer_correct_error_status +EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa7159728 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xa7320316 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xa7a90817 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xa85827a3 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xa8ded52b xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xa9422a72 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xa963f49c tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9d90546 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xaa17a2e2 rh_alloc_align +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa3ec14b simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xaa52bc27 register_latency_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaa7d8507 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0xab4ab10a device_create +EXPORT_SYMBOL_GPL vmlinux 0xacb5019d inet_csk_clone +EXPORT_SYMBOL_GPL vmlinux 0xacdad41a spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xad3de9f7 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xad4c9826 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad9af048 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xadc23380 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xae0697ac page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xae34a44d led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xae67f923 user_match +EXPORT_SYMBOL_GPL vmlinux 0xaf68db20 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xafee0dd0 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb1214de6 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xb1875363 pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0xb27005f5 device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb28212cc ide_get_best_pio_mode +EXPORT_SYMBOL_GPL vmlinux 0xb28a69eb user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xb2aed020 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xb2bd1b7a alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xb2e32de1 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xb34b3f6a tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xb39a6bfa tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xb3a95198 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb3c3978f i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb5156fb0 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb5944566 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xb5ea1c53 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xb6289369 inotify_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb673de33 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xb94b2182 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xb95215ed __ide_abort +EXPORT_SYMBOL_GPL vmlinux 0xb9562902 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb9aec4c4 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xb9be890f cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xb9dccda3 queue_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xba36a845 inet_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xba82b23d inotify_rm_wd +EXPORT_SYMBOL_GPL vmlinux 0xbb50ab22 copy_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0xbbf0f817 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xbc21f971 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xbc2acc4c tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xbca568b6 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xbd56a308 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbd750584 inotify_dentry_parent_queue_event +EXPORT_SYMBOL_GPL vmlinux 0xbde15fc2 audit_log_vformat +EXPORT_SYMBOL_GPL vmlinux 0xbdf00fa5 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xbeb7a6f9 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xbecc690c disk_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf23e9e5 pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xbf44a403 user_update +EXPORT_SYMBOL_GPL vmlinux 0xbf501d27 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0xbff80b74 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xc02235f1 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0xc02facea synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc0366e7e pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0xc08d7f0c pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xc0afb224 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc0ebe0fa platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc0fe8c40 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc14ccc55 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0xc18d0405 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xc248f806 inotify_add_watch +EXPORT_SYMBOL_GPL vmlinux 0xc301226e pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3ac8133 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xc4a75160 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc4ce9331 pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc4f91a2c inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc50a9722 do_add_mount +EXPORT_SYMBOL_GPL vmlinux 0xc591f03a pmac_i2c_attach_adapter +EXPORT_SYMBOL_GPL vmlinux 0xc5a29bce bus_register +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc60f7e16 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc61dde08 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xc66c3326 inet_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xc6965674 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xc696adb8 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xc71c0ccd ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0xc79d1ddf spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xc82f3dc5 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc8357a38 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc8551f9e anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xc86a76f3 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc89fca33 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xc9205f98 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9da2a84 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc9f338e3 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xca2a9a9b __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xcb171743 ide_setting_mtx +EXPORT_SYMBOL_GPL vmlinux 0xcb6547b3 blk_verify_command +EXPORT_SYMBOL_GPL vmlinux 0xcbb411b3 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xcbd71168 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc2ce1b6 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xcc3bc737 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xcc58a5e0 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xcc5d69fb tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xcd10d816 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xcd8794c4 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdfed241 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcfbe0c96 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcfd1e138 klist_next +EXPORT_SYMBOL_GPL vmlinux 0xd01fc97a init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xd0a6a8ac srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0cddc4a audit_log_d_path +EXPORT_SYMBOL_GPL vmlinux 0xd0deb6f3 crypto_free_tfm +EXPORT_SYMBOL_GPL vmlinux 0xd10b8fb6 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xd1637465 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1dfd30b k_handler +EXPORT_SYMBOL_GPL vmlinux 0xd205af0a hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2501ddb inet_csk_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xd31ba6c4 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xd363b65f sysdev_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd43fcf23 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xd4ff1cc4 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xd5779bcd vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xd6708f02 __create_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0xd6b3412e get_driver +EXPORT_SYMBOL_GPL vmlinux 0xd70b65e9 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xd7616905 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd7789907 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xd8189ad5 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd8c5221c klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xd9072098 inotify_rm_watch +EXPORT_SYMBOL_GPL vmlinux 0xd91bc77e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xd91bfe2c tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xdaffa647 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xdb71f709 ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0xdb91b122 sysdev_class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xdb97e76f register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdc3b7915 of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0xdc4c8367 inotify_find_watch +EXPORT_SYMBOL_GPL vmlinux 0xdd323313 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xddc9bcb1 class_device_register +EXPORT_SYMBOL_GPL vmlinux 0xde16e23b ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xdeff4c00 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdf1f87db transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook +EXPORT_SYMBOL_GPL vmlinux 0xdf743e1a fs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe062bfc9 selinux_relabel_packet_permission +EXPORT_SYMBOL_GPL vmlinux 0xe0ea5400 sysdev_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe18ac7a9 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe1e51a8d __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe2423116 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xe2b11e03 queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xe2e05035 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe2e4e8f4 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe33db2d5 sk_clone +EXPORT_SYMBOL_GPL vmlinux 0xe409455e pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe444490b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xe49855c7 dnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe4b9e0c1 bd_claim_by_disk +EXPORT_SYMBOL_GPL vmlinux 0xe4f85a21 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xe5683308 pci_block_user_cfg_access +EXPORT_SYMBOL_GPL vmlinux 0xe58c2b17 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe63f4ce5 kernel_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xe65184b9 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xe66fd612 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xe6d0437d crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe7f06a9e netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xe8595912 input_class +EXPORT_SYMBOL_GPL vmlinux 0xe8a50304 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea49f394 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xea4fcaa7 class_register +EXPORT_SYMBOL_GPL vmlinux 0xeb0543ad register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xeb250d02 proc_net_remove +EXPORT_SYMBOL_GPL vmlinux 0xeb9faf23 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xec0dc43f devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xec370f3a platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xec3d4a0f klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec7f1697 ideprobe_init +EXPORT_SYMBOL_GPL vmlinux 0xecca89cf cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xed27941e kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xed340d44 ide_destroy_dmatable +EXPORT_SYMBOL_GPL vmlinux 0xed58bed4 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xedff658f __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xee43b5a0 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xef4e963e __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xefb9e75c tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xf04049c7 lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xf0466d74 pci_claim_resource +EXPORT_SYMBOL_GPL vmlinux 0xf0ba8880 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf173c34e exit_fs +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1c6f9e0 nf_unregister_queue_handlers +EXPORT_SYMBOL_GPL vmlinux 0xf1c93577 ide_setup_dma +EXPORT_SYMBOL_GPL vmlinux 0xf1e058c9 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xf1f6069a fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xf206ff8a inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf288edaf blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xf2b40ad9 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xf2cee610 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xf3012f6c rh_free +EXPORT_SYMBOL_GPL vmlinux 0xf3be697b device_move +EXPORT_SYMBOL_GPL vmlinux 0xf5e7f053 rh_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf67ecda4 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf6baf792 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xf7c3e5f2 namespace_sem +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf8b8c12a xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL vmlinux 0xf926c8a8 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xf986cb97 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xf98b0275 tty_ldisc_put +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9da455f pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xfa1f6c5d ide_wait_not_busy +EXPORT_SYMBOL_GPL vmlinux 0xfa856e75 mmput +EXPORT_SYMBOL_GPL vmlinux 0xfb5cb0e8 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xfb64175e pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0xfb68914d pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfc2e61cc __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xfc35c5da pci_stop_bus_device +EXPORT_SYMBOL_GPL vmlinux 0xfd38234c scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xfda48cdd ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error +EXPORT_SYMBOL_GPL vmlinux 0xfe7f3345 sysdev_class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfed224b2 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfeef6afe skb_icv_walk +EXPORT_SYMBOL_GPL vmlinux 0xff8862d7 rh_get_stats +EXPORT_SYMBOL_GPL vmlinux 0xffa670fa driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xffaf7bbb __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xffd9a59d debugfs_remove +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x6b51a634 usb_register_driver +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x6ba2438e usb_deregister +EXPORT_SYMBOL_GPL_FUTURE drivers/usb/core/usbcore 0x7ce4c7b9 usb_match_id +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_open +EXPORT_UNUSED_SYMBOL_GPL vmlinux 0x00000000 sys_read --- linux-2.6.24.orig/debian/tests/README +++ linux-2.6.24/debian/tests/README @@ -0,0 +1,21 @@ +Scripts placed in this directory get called one at a time by run-parts(8). +The scripts are expected to perform some sort of sanity checks on the +finished build. Scripts will be called once for each flavour. + +Some environment variables are exported to make life a little easier: + +DPKG_ARCH : The dpkg architecture (e.g. "amd64") +KERN_ARCH : The kernel architecture (e.g. "x86_64") +FLAVOUR : The specific flavour for this run (e.g. "generic") +VERSION : The full version of this build (e.g. 2.6.22-1) +REVISION : The exact revision of this build (e.g. 1.3) +PREV_REVISION : The revision prior to this one +ABI_NUM : The specific ABI number for this build (e.g. 2) +PREV_ABI_NUM : The previous ABI number. Can be the same as ABI_NUM. +BUILD_DIR : The directory where this build too place +INSTALL_DIR : The directory where the package is prepared +SOURCE_DIR : Where the main kernel source is + +Scripts are expected to have a zero exit status when no problems occur, +and non-zero when an error occurs that should stop the build. Scripts +should print whatever info they deem needed to deduce the problem. --- linux-2.6.24.orig/debian/tests/check-aliases +++ linux-2.6.24/debian/tests/check-aliases @@ -0,0 +1,22 @@ +#!/usr/bin/perl + +%map = []; + +print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n"; + +$aliases = + "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias"; + +open(ALIASES, "< $aliases") or die "Could not open $aliases"; + +while () { + chomp; + ($junk, $alias, $module) = split; + + if (defined($map{$alias})) { + print " $map{$alias}/$module : $alias\n"; + } + $map{$alias} = $module; +} + +exit(0); --- linux-2.6.24.orig/debian/rules +++ linux-2.6.24/debian/rules @@ -0,0 +1,121 @@ +#!/usr/bin/make -f +# +# debian/rules for Ubuntu linux +# +# Use this however you want, just give credit where credit is due. +# +# Copyright (c) 2007 Ben Collins +# + +# dpkg-buildpackage passes options that are incomptatible +# with the kernel build. +unexport CFLAGS +unexport LDFLAGS + +# This is the debhelper compatability version to use. +export DH_COMPAT=4 +export LC_ALL=C +export SHELL=/bin/bash -e + +# Common variables for all architectures +include debian/rules.d/0-common-vars.mk + +# Pill in some arch specific stuff +include debian/rules.d/$(arch).mk + +# Maintainer targets +include debian/rules.d/1-maintainer.mk + +# Debian Build System targets +binary: binary-indep binary-arch + +build: build-arch build-indep + +clean: debian/control + dh_testdir + dh_testroot + dh_clean + + # d-i stuff + rm -rf modules kernel-versions package-list + rm -rf debian/d-i-$(arch) + + # normal build junk + rm -rf debian/abi/$(release)-$(revision) + rm -rf $(builddir) + rm -f $(stampdir)/stamp-* + rm -rf debian/linux-* + + # This gets rid of the d-i packages in control + cp -f debian/control.stub debian/control + +# Builds the image, arch headers and debug packages +include debian/rules.d/2-binary-arch.mk + +# Rules for building the udebs (debian-installer) +include debian/rules.d/5-udebs.mk + +# Builds the source, doc and linux-headers indep packages +include debian/rules.d/3-binary-indep.mk + +# Various checks to be performed on builds +include debian/rules.d/4-checks.mk + +# Custom binary images (universe/unsupported) +include debian/rules.d/6-binary-custom.mk \ + $(patsubst %,debian/binary-custom.d/%/rules,$(custom_flavours)) + +# Misc stuff +debian/control.stub: debian/d-i/kernel-versions.in \ + debian/scripts/control-create \ + debian/control.stub.in \ + debian/changelog \ + $(wildcard debian/control.d/*) \ + $(patsubst %,debian/binary-custom.d/%/vars,$(all_custom_flavours)) + for i in debian/d-i/kernel-versions.in debian/control.stub.in; do \ + new=`echo $$i | sed 's/\.in$$//'`; \ + cat $$i | sed -e 's/PKGVER/$(release)/g' -e 's/ABINUM/$(abinum)/g' > \ + $$new; \ + done + flavours="$(wildcard debian/control.d/vars.*) $(patsubst %,debian/binary-custom.d/%/vars,$(all_custom_flavours))";\ + for i in $$flavours; do \ + $(SHELL) debian/scripts/control-create $$i | \ + sed -e 's/PKGVER/$(release)/g' -e 's/ABINUM/$(abinum)/g' >>\ + debian/control.stub; \ + done + cp debian/control.stub debian/control + +.PHONY: debian/control +debian/control: debian/control.stub + rm -rf modules kernel-versions package-list + mkdir -p modules/$(arch)/ + cp debian/d-i/modules/* modules/$(arch)/ + cp debian/d-i/package-list debian/d-i/kernel-versions . + touch modules/$(arch)/kernel-image + + # Per flavour module lists + flavour_modules=`ls debian/d-i/modules.$(arch)-* 2>/dev/null` \ + || true; \ + if [ "$$flavour_modules" != "" ]; then \ + for flav in $$flavour_modules; do \ + name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`; \ + mkdir modules/$(arch)-$$name; \ + (cd debian/d-i/modules/; tar cf - `cat ../../../$$flav`) |\ + (cd modules/$(arch)-$$name/; tar xf -); \ + touch modules/$(arch)-$$name/kernel-image; \ + done; \ + fi + + # Remove unwanted stuff + if [ -r "debian/d-i/exclude-modules.$(arch)" ]; then \ + (cat debian/d-i/exclude-modules.$(arch); \ + ls modules/$(arch)/) | sort | uniq -d | \ + (cd modules/$(arch)/; xargs rm -f); \ + fi + + if [ ! -d modules/$(build_arch) ]; then \ + mkdir -p modules/$(build_arch); \ + cp modules/$(arch)/* modules/$(build_arch); \ + fi + + kernel-wedge gen-control > debian/control --- linux-2.6.24.orig/debian/changelog.historical +++ linux-2.6.24/debian/changelog.historical @@ -0,0 +1,4408 @@ +linux-source-2.6.20 (2.6.20-16.30) UNRELEASED; urgency=low + + CHANGELOG: Do not edit directly. Autogenerated at release. + CHANGELOG: Use the printchanges target to see the curent changes. + CHANGELOG: Use the insertchanges target to create the final log. + + -- Phillip lougher Mon, 11 Jun 2007 19:25:08 +0100 + +linux-source-2.6.20 (2.6.20-16.29) feisty-security; urgency=low + + [Phillip Lougher] + + * Revert "{ata_,}piix: Consolidate PCI IDs. Move ata_piix pata IDs to + piix" + - GIT-SHA d20328e312148f5c47cb38482e967ed9a1b7fdb9 + + [Tim Gardner] + + * Work around Dell E520 BIOS reboot bug. + - GIT-SHA 7d6ddf6fc8d2b5f40faac3c7915df71b4acb2fd4 + - Bug #114854 + + [Upstream Kernel Changes] + + * Fix VMI logic error + * [CRYPTO] geode: Fix in-place operations and set key (CVE-2007-2451) + * random: fix error in entropy extraction (CVE-2007-2453) + * random: fix seeding with zero entropy (CVE-2007-2453) + * [Bluetooth] Fix L2CAP and HCI setsockopt() information leaks (CVE-2007-1353) + + + -- Phillip lougher Thu, 07 Jun 2007 12:51:55 +0100 + +linux-source-2.6.20 (2.6.20-16.28) feisty-security; urgency=low + + [Ben Collins] + + * rtc: Ratelimit "lost interrupts" message. + - GIT-SHA 0102aad3b17d22e67864aa5afd88bc108b881141 + * vbox: Remove this driver. It will be outdated by release. + - GIT-SHA 60c8a6c1fbe7ed5dc28ccdd5a48c624e9ece56f3 + * hppa: Build fixes from jbailey. + - GIT-SHA 4f87aff6afe3479c98f8a64e05c866027e7d473d + * mmc: Set parent for block dev's to host, not class device. + - GIT-SHA 0400a0ceb5afa2afcda76c92d4425c4696e72845 + - Bug #99648 + + [Daniel Chen] + + * sound/pci/: Forward-port intel8x0 quirks from ubuntu-edgy.git + (intel8x0.c) + - GIT-SHA a2ce991fa1b7d601c428564f3741044a492d13a4 + * sound/pci/: Forward-port more intel8x0 quirks from kernel-team@ + (intel8x0.c) + - GIT-SHA 5263bd37eeeedc72447441bdec9fc47e7cca83d9 + * sound/pci/hda/: Revert Toshiba model setting (ALC861_TOSHIBA) for SSID + 1179:ff10 (patch_realtek.c) + - GIT-SHA b6fffb0f499459dfaef0f022f2da1f3fcb4fbdc2 + * sound/pci/hda/: Add missing SSID for ALC861-VD (patch_realtek.c) + - GIT-SHA 0ca1a43cc8e4d484963a7f6e4866602d5fe576db + * sound/pci/ac97/: Fix regression from Edgy - readd jack sense blacklist + entries (ac97_patch.c) + - GIT-SHA 963f93d185fc40ab7853ce75480a5fbcd607e070 + * sound/pci/hda/: Fix regression from Edgy - incorrect model quirk for + ALC861-VD (patch_realtek.c) + - GIT-SHA 382e158458c0771a6bd48cc8a64df6e24a46682e + * sound/pci/hda/: Fix inaudible sound on yet another Toshiba laptop - + incorrect model quirk (patch_realtek.c) + - GIT-SHA fbbec3e6208990a1dbe34766396084d683bc3322 + + [Fabio M. Di Nitto] + + * [OCFS2] Local mounts should skip inode updates + - GIT-SHA 8cbf682c7a9016caf65fb30bb67d1e2de3e924c6 + + [Kyle McMartin] + + * Enable ICH8GM (Crestline) support + - GIT-SHA 5b87e59b3898d33e11f71fcc037e7d1c6480aee0 + * bcm43xx: Update to 2.6.21 + - GIT-SHA 9424583295f2fa0920a611eb0f37ccd8fb2dc453 + * p54pci: Fix error path when eeprom read fails + - GIT-SHA c10305577fa669b114bcb03d6f80bdcbcd46a93a + + [Phillip Lougher] + + * Squashfs: add SetPageError handling + - GIT-SHA ff5082e7b9e1b48d33bbb26fbe9104ee1956688a + * Fix pata_sis crashes preventing booting + - GIT-SHA 1b27e19fa9145a1579cfecccf7d5be7d7e242e46 + - Bug #107774 + * Initialize the Broadcom USB Bluetooth device in Dell laptops. + - GIT-SHA 0f50a719466ae29c18b9b75df3ae64312d6523cf + * Update tifm driver to 0.8d + - GIT-SHA 6bec583645852716f3fee4a7d2534be1acf060d6 + - Bug #53923 + * sound/pci/hda/: Forcibly set the maximum number of codecs (hda_intel.c) + - GIT-SHA d8f18e83ea5ef15ab519f6bf03cccb3bdeb2e469 + - Bug #106843 + * Change CONFIG_NR_CPUS from 32 to 64. + - GIT-SHA 00f6cb2c3cda7dab1d02ceb444f5a34506c7a30d + + [Tim Gardner] + + * Added more USB device IDs + - GIT-SHA 139e45123031d80bebcb8e609d6a079538db0970 + * Prevent i2c_ec module from faulting becasue of uninitialized device + parent. + - GIT-SHA 490e63428ab4b3801bc94f520097fd43a57fbc3f + * Initialize the device with the ACPI structure. + - GIT-SHA 5df920c2fd7da80ea1d47d0c664a747700bf33f1 + * Backported from 2.6.21-rc6 + - GIT-SHA 4d0bb04551b393dfc12552d26dff259034c7620c + * Remove vboxdrv from the module lists. + - GIT-SHA 4aae55dc540f17b7b295047b99f4f68c43d01930 + * Cause SoftMac to emit an association event when setting ESSID. + - GIT-SHA c7a6bbdf4493b2951f02c924bd4a85d01b46c839 + - Bug #https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/103768 + + [Upstream Kernel Changes] + + * ocfs2_dlm: Missing get/put lockres in dlm_run_purge_lockres + * ocfs2_dlm: Add missing locks in dlm_empty_lockres + * ocfs2_dlm: Fix lockres ref counting bug + * ocfs2_dlm: Check for migrateable lockres in dlm_empty_lockres() + * [PS3] Add HV call to local_irq_restore(). + * i2c: Remove the warning on missing adapter device + * 2.6.21 fix lba48 bug in libata fill_result_tf() + * futex: PI state locking fix + * [APPLETALK]: Fix a remotely triggerable crash (CVE-2007-1357) + * [IPV6]: Fix for ipv6_setsockopt NULL dereference (CVE-2007-1388) + * DCCP: Fix exploitable hole in DCCP socket options (CVE-2007-1730) + * [IPv4] fib: Fix out of bound access of fib_props[] (CVE-2007-2172) + * (Denial of Service security fix from stable kernel 2.6.20.8) + * (Fix to Denial of Service security fix, from stable kernel 2.6.20.10) + * (ipv6 security bug fix from stable kernel 2.6.20.9) + * (Bug fix to ipv6 security fix, from stable kernel 2.6.20.10) + * [SPARC64]: SUN4U PCI-E controller support. + * [VIDEO]: Add Sun XVR-500 framebuffer driver. + * [VIDEO]: Add Sun XVR-2500 framebuffer driver. + * [SPARC64]: Fix recursion in PROM tree building. + * [SPARC64]: Bump PROMINTR_MAX to 32. + * [SPARC64]: Correct FIRE_IOMMU_FLUSHINV register offset. + * [SPARC64]: Add bq4802 TOD chip support, as found on ultra45. + * [SERIAL] SUNHV: Add an ID string. + * [SPARC64]: Be more resiliant with PCI I/O space regs. + * [SPARC64]: Add missing cpus_empty() check in hypervisor xcall handling. + * Input: i8042 - fix AUX IRQ delivery check + * Input: i8042 - another attempt to fix AUX delivery checks + * Input: i8042 - fix AUX port detection with some chips + * [IPV6]: ipv6_fl_socklist is inadvertently shared. (CVE-2007-1592) + + [Wang Zhenyu] + + * intel_agp: fix G965 GTT size detect + - GIT-SHA 8d9fac9fa2123f186f9f7c2b5ba7aaa594de1b58 + + -- Phillip Lougher Tue, 22 May 2007 20:01:42 +0100 + +linux-source-2.6.20 (2.6.20-15.27) feisty; urgency=low + + [Ben Collins] + + * ubuntu: Revert back to amd74xx and disable the troublesome pata_amd + - GIT-SHA 5e93e85491bf4804954643141af47a4692d59a91 + + -- Ben Collins Sat, 14 Apr 2007 17:41:11 -0400 + +linux-source-2.6.20 (2.6.20-15.26) feisty; urgency=low + + [Ben Collins] + + * libata: Rework logic for hpa_resize to work around bad returns from + SET_MAX + - GIT-SHA 5d5f973bfa93079d8dd13a21e2af32306d5a009f + + -- Ben Collins Sat, 14 Apr 2007 15:50:34 -0400 + +linux-source-2.6.20 (2.6.20-15.25) feisty; urgency=low + + [Ben Collins] + + * sata_nv: Revert patch that enabled ADMA for NODATA transfers. + - GIT-SHA 6429d0744ca5ffe007109ef4d70414bebe15966c + * libata: Completely avoid HPA code paths when ignore_hpa=0 + - GIT-SHA 9e3e1aea530dcb2e792f14e365a0d6d95539bfa9 + + -- Ben Collins Fri, 13 Apr 2007 13:39:36 -0400 + +linux-source-2.6.20 (2.6.20-15.24) feisty; urgency=low + + [Ben Collins] + + * libata: Re-add the tracking of n_sectors_boot + - GIT-SHA 1fa3ab07416406841cc1c7064b55fb084bbb1e3f + * i2c_ec: Do not set parent device. Current ACPI is not setup for this. + - GIT-SHA d80fb3540d170f18639c08f64afd133129bed856 + - Bug #96480 + + [Upstream Kernel Changes] + + * 2.6.21 fix lba48 bug in libata fill_result_tf() + + -- Ben Collins Thu, 12 Apr 2007 18:58:24 -0400 + +linux-source-2.6.20 (2.6.20-14.23) feisty; urgency=low + + [Ben Collins] + + * piix: Revery back to using piix (IDE) driver instead of ata_piix + (libata) driver for Intel PATA chipsets. + - GIT-SHA a4b5f29bd0754d49a818a30126c45e3b94ec127c + - Bug #96857 + * piix: Put some newer chipsets back to ata_piix. + - GIT-SHA 18a347500d3c6a2c636ac81556cfa2e1daed70b4 + * libata: Add patch to support recognizing HPA drives. + - GIT-SHA ddc27b2bb3c66026044efc3a4d97f22cd1e9243b + * mmc: Set parent for block dev's to host, not class device. + - GIT-SHA 104cff7bb0413b58091e2e45b6dfda210c1028fe + - Bug #99648 + + -- Ben Collins Thu, 12 Apr 2007 14:01:17 -0400 + +linux-source-2.6.20 (2.6.20-14.22) feisty; urgency=low + + [Ben Collins] + + * powerpc: Make ps3 work in multiplatform kernel + - GIT-SHA 54517f89a70e7cea696d1d21d13b86000c20daf4 + * drivers/ata/: Sync with libata-dev#upstream (ref + 1770cd662ad619e78d73a08a2f12f203656e705b) + - GIT-SHA 6fff74ec14bcaf6ac8bf156787961db83d6c90cd + * debian/rules: Add NOEXTRAS build option to not build things like + lowlatency and crashdump kernels. + - GIT-SHA 76f9f235bbdf048db4f09ef2874ae5766276222a + * libata-acpi: Add _GTM and _STM support to libata + - GIT-SHA 2939a7a99cfac2d0e1b120098c2541514ba48ff4 + * libata-acpi: Cleanup and enable acpi for pata drives by default. + - GIT-SHA 36fe5af2bb79195923a08acc0ebd74a2dd90e0f7 + * pci: Git rid of duplicate quirk exports. + - GIT-SHA a8779f83252855ce1a79ef633be5e8c3c2fe56f9 + * ps3: Merge bits so that ps3 can be compiled into powerpc64-smp + - GIT-SHA 462362a41075c7c803e4b49dbdcccda400a3a8f8 + * ubuntu: Remove remnants of ps3 kernel, now merged with ppc64-smp. + - GIT-SHA 2ba1dc63ca38d8e80c8ad0126dc1eba8c3eb080c + * ps3: Include asm/firmware.h for device-init.c + - GIT-SHA 9e4507538545341dc8ec645249513081ec423970 + * ubuntu: Update sata/pata d-i module lists. + - GIT-SHA 75e3656071e565efe201ac2c287f4743d2e93e0b + * snd_ps3: New driver for ps3 sound, of course. + - GIT-SHA e1a797d335353ad9c16e2cbe080699e41c5828a6 + * libusual: Add my U3 Cruzer as a single LUN device (has driver iso) + - GIT-SHA 2ff96660777c0936ac8064fb2c20b22e4954ef71 + * ps3: Sync to latest ps3-linux-dev git. We now have snd_ps3. + - GIT-SHA 563465bcc598e5f5bce463f78c11a5859814c08c + * gelic_net: Allocate gelic_irq_status from GFP_DMA so it works with + __pa() + - GIT-SHA 3b56675a8df0c4b2a5fd09d663bb880a1024cd44 + * ubuntu/net/ipg: Add MODULE_DEVIVCE_TABLE for autoload of module + - GIT-SHA 025a73f21cf92ae4abe6928bb37ec4176da11eae + - Bug #86388 + * acpi: Make the lack of DSDT.aml in initramfs not sound like an error. + - GIT-SHA 7711ba4a2e77f02793fdceefddc1c9c198f68dce + + [Colin Watson] + + * d-i: Fix fs-core-modules description. + - GIT-SHA 6ab196033b5d41b8d5545a28da6d7c5f672f75ee + * d-i: Restore fat-modules udeb, split out from fs-secondary-modules. + - GIT-SHA 7e436bb85a1483978103b0f236993d7ac1dc20ff + + [Daniel Chen] + + * sound/pci/hda/: Add quirk for Dell Dimension E520 (patch_sigmatel.c) + - GIT-SHA de4755b3b5e905194d9a9d06eb86a9200c28c864 + * sound/pci/hda/: Add missing mic boost mixer controls (patch_analog.c) + - GIT-SHA e882468a6dc91bd9235a548a011c25a43878b70b + * sound/pci/hda/: Add (un)muting for jack sense on Lenovo 3000 N100 + (patch_analog.c) + - GIT-SHA 7c726dbd0d2dd4237d9a4c9a64c41821956d8901 + * sound/pci/hda/: Add missing array terminators resulting in premature + optimisation (patch_conexant.c) + - GIT-SHA 5448559cd8ce389393697b28b6903c876f535c6b + * sound/pci/hda/: Add support for AD1986A Ultra model (patch_analog.c) + - GIT-SHA 0d95cfd2b39aed11eeb72d5fe3889b933bb362e0 + + [Fabio M. Di Nitto] + + * [OCFS2] Wrap access of directory allocations with ip_alloc_sem. + - GIT-SHA ba2f1bf8193c9e0b338f45714f102468c862cc4c + * [OCFS2] Properly lock extent map size changes. + - GIT-SHA a98ce36259ee1f83442f93845b830f6033dc90c8 + * [OCFS2] Local mounts should not truncate the extent map. + - GIT-SHA e87ad18113393107fc7d5a86e6bbd9b32dd44b6c + + [Matthew Garrett] + + * Add _GTM and _STM support to libata + - GIT-SHA 5d320f7915c4124ed56aeb619efbae7ff3beb9d2 + + [Tim Gardner] + + * [SATA ACPI] Fix some thinkos from + 36fe5af2bb79195923a08acc0ebd74a2dd90e0f7 + - GIT-SHA cbf8b6de0c9a84344e16847b03db5adcf0f0c855 + * Catch nonsense keycodes and silently ignore. + - GIT-SHA 560b0ff514b90e4c8bfbddbce3a54c218dc9ff85 + + [Upstream Kernel Changes] + + * Upstream sky2 driver updates + * [PS3] Storage cleanups, defconfig updates. + * [PS3] Fixes for SDK 2.0 toolchain. + * [PS3] Add spufs-avoid-accessing-to-released-inode.diff. + * [PS3] Add spufs-always-release-mapping-lock.diff, + spufs-fix-ctx-lifetimes.diff. + * [PS3] Storage bus dma updates. + * Add NOPFN_REFAULT result from vm_ops->nopfn() + * genirq: do not mask interrupts by default + * add vm_insert_pfn() + + [Zachary Amsden] + + * Urgent fix for VMI in HIGHMEM configurations + - GIT-SHA 72e461e0d638eb608c6ae07f7991e1063c5cbdeb + + -- Ben Collins Sun, 1 Apr 2007 13:03:28 -0400 + +linux-source-2.6.20 (2.6.20-13.21) feisty; urgency=low + + [Ben Collins] + + * debian/config: Enable CONFIG_DEBUG_FS. + - GIT-SHA a02719608695e5d59344600353d4872775a9ae3b + * rtl8187: Rename dir's from 818x to 8187. + - GIT-SHA ef3d971e78ca393bb1bcf3f46895849848010a7e + * rtl818x: Re-add old driver, fixing oops in old code as well. + - GIT-SHA d5d0ac60abafb7438f6736f9033208cac1572c82 + - Bug #78255 + * bluetooth: Update stack to latest code from bluez + - GIT-SHA 138bb4d3d2e65988cefcbd59b180b3788305f071 + - Bug #91194 + * rt2x00-legacy: Re-add rt2570 driver. + - GIT-SHA 43ab28f4b58f129611be5e784cd72ab2b5c46505 + * rt2500usb: Disable module alias when rt2570 is built. + - GIT-SHA ab16ae43815bcf9215965b87d4b05dbcc03e3574 + * mmc: Update to latest git supplied mmc core. + - GIT-SHA 5bf598b427d0ff75bef7186a75194b6b9102e224 + - Bug #93171 + * tifm: Update tifm core. + - GIT-SHA c25cfc3ad3cb8cac3474febfe66cff8ee0bfba18 + * lmpcm_usb: USB Logitech MediaPlay Cordless Mouse driver + - GIT-SHA c4291c4e7b6c2facfd65d3d9460fa667066d1e54 + - Bug #86035 + * drivers/media: Disable CONFIG_VIDEO_HELPER_CHIPS_AUTO to allow all + modules to be built. + - GIT-SHA 994e8c1e58d7b138880190796e6bd0ce3dcbd62a + * unusual_dev: Netac OnlyDisk Mini U2CV2 512MB USB 2.0 Flash Drive + - GIT-SHA ef90ffeabdca584d3539ae00ce746256d818a1a4 + - Bug #94371 + * speedstep-centrino: Include linux-phc built-in tables. + - GIT-SHA fc9f7238d11d5a9ff03ce67fae0b5b5c9fd7f436 + - Bug #63789 + * drivers/char/{agp/drm}: Resync with 2.6.21-rc4. + - GIT-SHA 1eae0b2972e215e9f13b99b7fb64b90db04cc556 + * ps3: Update ps3-storage and ps3fb drivers. + - GIT-SHA f2d4c3f34a613671bbcbc4696ccac6e7737b623a + * ps3: Updates for vuart, ps3av and sys-manager + - GIT-SHA b02d7d3f27d539713d6abba6e23db0b0f758d682 + * ide/generic: Remove errant jmicron entries. + - GIT-SHA d76099fde0ef127fa4f532c72bcd948caca7c2c1 + - Bug #84964 + * xpad: Update to latest version from xbox-linux. + - GIT-SHA 829dee658c6d3d09f049ca430a79997e5ba44838 + - Bug #94560 + * uvcvideo: Update to latest SVN version. + - GIT-SHA 7ca4b455c60b38ad53d03834fe03799ace81166d + - Bug #86754 + * ivtv: Update to 0.10.1 + - GIT-SHA b428794c3de387e2f701a768f98a302d3b4c98ea + - Bug #88680 + * ata_piix/piix: Prefer piix for device 7111 (PIIX4) + - GIT-SHA 9c7b34046bd9de870713e4630b06f95260d37973 + - Bug #94637 + * vboxdrv: Added VirtualBox kernel modules, v1.3.8 + - GIT-SHA 36b8eb8995ff04facae364706f6598fd6dce1cc4 + - Bug #81527 + * ata_piix/piix: Have piix handle device ID 0x24db + - GIT-SHA a083e4e48de3d5399788264259f42db157787603 + - Bug #95105 + + [Daniel T. Chen] + + * sound/pci/hda/: Simplify acer quirk (patch_realtek.c) + - GIT-SHA 1144a6d2628cb11286d8dc44a6f4fa0b740266ef + * sound/pci/hda/: Use proper constraints for HDA spec (hda_intel.c) + - GIT-SHA a51fa971bcf05e18dc9d315c36549126cc5b68ba + * sound/pci/hda/: Fix AZX models (hda_codec.c) + - GIT-SHA 1939127f3614de9f12dc4d42fb9c5b04081fbf0a + * sound/pci/hda/: Fix generic parser (hda_codec.c) + - GIT-SHA d0e1a1280e03111d26c63504451d3bf4378d668c + * sound/pci/hda/: Convert Sigmatel models to enums; differentiate between + Mac Pro revisions (patch_sigmatel.c) + - GIT-SHA e813cfe016a57c0155660f7c247b479bbeb9c8d8 + * sound/pci/hda/: Add _cfg_tbl[] quirk entries (patch_sigmatel.c) + - GIT-SHA 4a56b2a0ccadded72b1575c42db461f18fd2cc75 + * sound/pci/hda/: Fix front/rear mic inputs on AD1986A (patch_analog.c) + - GIT-SHA 50c1252587fc4df1f15248d2ceae8e87225f1283 + * sound/pci/hda/: Probe additional codec slots only if necessary + (hda_intel.c) + - GIT-SHA 81347c779c57515b0375650328cb4054a820a5d9 + + [Fabio M. Di Nitto] + + * Enable CONFIG_DEBUGFS=y + - GIT-SHA 52899638c7ab7e38dad47b884382bdb4e0814ea1 + + [Kyle McMartin] + + * Add Netac OnlyDisk Mini to unusual_devs.h + - GIT-SHA 999e79c3ffa906a970b717821b459724b9c2d939 + - Bug #94371 + + [Phillip Lougher] + + * fix NFS mounting regression from Edgy->Feisty + - GIT-SHA 1ad6cbd54fd2506a39f203cc6b4163d985f94cf0 + - Bug #94814 + + [Tejun Heo] + + * sd: implement stop_on_shutdown + - GIT-SHA 5fafa8d12092c5d722fc02e245b4977fd0765f68 + + [Upstream Kernel Changes] + + * fix process crash caused by randomisation and 64k pages + * HID: zeroing of bytes in output fields is bogus + * libata: don't whine if ->prereset() returns -ENOENT + * sata_sil24: Add Adaptec 1220SA PCI ID + * sata_inic162x: kill double region requests + * libata: kernel-doc fix + * pata_ixp4xx_cf: fix oops on detach + * pata_ixp4xx_cf: fix interrupt + * Execute AML Notify() requests on stack (Ubuntu Bug: 63123) + * Fix buffer overflow and races in capi debug functions + * [SPARC64]: store-init needs trailing membar. + * i2c: Declare more i2c_adapter parent devices + * ieee1394: cycle timer read extension for raw1394 + * ieee1394: fix another deadlock in nodemgr + * ia64: fix noncoherent DMA API so devres builds + + -- Ben Collins Sun, 18 Mar 2007 22:52:00 -0400 + +linux-source-2.6.20 (2.6.20-12.20) feisty; urgency=low + + [Upstream Kernel Changes] + + * pci_iomap_regions() error handling fix + - Fixes bug #93648 + + -- Ben Collins Wed, 21 Mar 2007 11:47:18 -0400 + +linux-source-2.6.20 (2.6.20-12.19) feisty; urgency=low + + [Ben Collins] + + * piix: Fix typo that allowed this module to override ata_piix. + - GIT-SHA 80bc1fd97d95519b2ab8c5007924f9e591838351 + - Bug #84964 + * vdso: Fix incompatibility between vdso and paravirt+vmi + - GIT-SHA 83821a009b3ec3f3d3ebaeda9a4f45900928900c + * drivers/ata/: Sync with upstream for new drivers and acpi fixes. + - GIT-SHA c38186b50b5d8444091a2f974e035abeb783499b + * debian/d-i/: Update sata/pata module listings. + - GIT-SHA e2c160419a8c50e9adc5de4b81e33251a7e952af + * rt2x00: Disable module aliases if legacy drivers are built. + - GIT-SHA a4e3d596f4b304e01ce04e43762ddf3873635a8c + * rt2x00-legacy: Re-add some legacy drivers since mainline isn't working + everywhere yet. + - GIT-SHA 59992a59a531f62aeb82384abc8296779092f1cc + * rt2x00-legacy/rt61: Fix big-endian compilation. + - GIT-SHA 6603c59fa3aee248aaf5ae73015ad155977ddad8 + * lib/iomap: Only build on architectures that need it. + - GIT-SHA fb3d5ca41505e11b8cd2cd85bc8db0571d58a6ae + * rt61: Fixup build on ppc. + - GIT-SHA 8c7eebfaf5c0ea44e7a77165894ebd3861ed3668 + + [Dan Hecht] + + * Feisty VMI paravirt-ops: Fix cpu hotplug on VMI + - GIT-SHA 44bbb009bb465537b9d7660a101641174f67b678 + + [Daniel T. Chen] + + * sound/pci/hda/: LP: #92909: Fix regression in -11.18 for Toshiba + Satellite M115 - S3094 (patch_realtek.c) + - GIT-SHA ff352c874a71fcce9af5f04d19360a0a8a4318b8 + * sound/pci/: LP: #90349: Add SSID for Dell Inspiron 9100 to headphone + quirk table (intel8x0.c) + - GIT-SHA 94ea2cdff6440a5bc8602cc8431380a690520f80 + + [Fabio M. Di Nitto] + + * Make scsi_proc_hostdir_add silent on failure + - GIT-SHA a6ad8ab034e40e188825cede360f69e8101351d3 + + [Upstream Kernel Changes] + + * Synced drivers/ata/ + * ACPI support for IDE devices + * ide-acpi support warning fix + * Disable NMI watchdog by default properly + * devres: device resource management + * sort the devres mess out + * Add pci class code for SATA & AHCI, and replace some magic numbers. + * PCI: allow multiple calls to pcim_pin_device() + * devres: release resources on device_del() + + -- Ben Collins Sat, 17 Mar 2007 11:15:27 -0400 + +linux-source-2.6.20 (2.6.20-11.18) feisty; urgency=low + + [Ben Collins] + + * mac80211/d80211: Switch from d80211 backport to mac80211 from + intellinuxwireless.org + - GIT-SHA 5be1800f366dd9be849c44d1f9a57f938ee04a54 + * adm8211/p54: Convert to use mac80211. + - GIT-SHA 91601e433a7e126260c65ed5ed219691e3ed2b9a + * rt2x00: Fixup Kconfig for mac80211 + - GIT-SHA 07feef3cb5e135d9479d86863ed857b3f89b7deb + * ac97: make patch_ad1986 global for use in other files. + - GIT-SHA f032849c2162da0a2939ebd6451c9bed8b496709 + * wireless: Fix Kconfig for wext-compat + - GIT-SHA fcd5dcb1753f14697319dba5b6ab570def81b9ea + * mac80211: Fixups for correct usage. + - GIT-SHA 22fa222a8a195ea11f3066bd72d426e7ada4b24f + * net/core/wireless.o: Disable in favor of mac80211. + - GIT-SHA 5ea988da86d00b6917d55c4aa6cdc2381e81b113 + * Makefile: Add mac80211 wireless directory to drivers-y. + - GIT-SHA 96aaf9171af0900733952db97b422f5bb0e0cb19 + * adm8211: Update from wireless-dev + - GIT-SHA 3222b8da95637eb5d96b6b092c101dfb70c10e36 + * p54: Update from wireless-dev + - GIT-SHA ee719880109e8d4c53097f7d3e7680e7e6b71087 + * rtl818x/rtl8187: Remove old broken drivers. + - GIT-SHA 7a8d4270ccc39bec2e66d6196ca50d1aa91bfcee + * rtl818x: Add 8180/8187 driver from wireless-dev + - GIT-SHA d3de93c8319a0dfe58e37eb7c27371f2f2d52456 + * eeprom_93cx6: Taken from wireless-dev for rtl818x driver. + - GIT-SHA 2199d23aed53519d2814c6547e47bae72180212f + * rt2x00: Remove legacy and update to mac80211 (wireless-dev) code. + - GIT-SHA 3bc9d8de616716014f0db7de5d36be0587fdea6b + * bxm43xx: Add mac80211 variant of driver (sans module aliases). + - GIT-SHA 883ff4b3fcabad5271995327d9f26512bda33687 + * zd1211rw: Add mac80211 variant of driver (sans module aliases). + - GIT-SHA dde6813b66f1f31c766fcbbdcc20fb43cadd0be4 + * ssb: Update from wireless-dev for bcm43xx usage. + - GIT-SHA 3b86466916f303503d8052b41b720d12fd82d4dd + * kvm: Update to kvm-16. + - GIT-SHA d0388ee0c445d54fef0be4da7f283069c82df80d + * ubuntu/: Fixup some dma-mapping.h includes needed. + - GIT-SHA 3f3f237e8f9c9f986c464abc9ac75d7c4d3ae119 + * d-i: Update nic module listings. + - GIT-SHA f442d4e826548d027373b28562529fa5489105a2 + * prism54_softmac: Remove ancient prism54 code in favor of p54. + - GIT-SHA d924ddb5eb75f16473f7703d17e347dc350d0d4a + * vdso: Fix incompatibility between vdso and paravirt+vmi + - GIT-SHA 77b43e78df1c73c0a8f1333fa9bc440201bf3094 + * bluetooth: SCO flow control patch from bluez website. Fixes BTSCO. + - GIT-SHA a3e22dab227fcdc2778f19c462476bf3c6186938 + * btsco: Update to Revision 1.16 from CVS. + - GIT-SHA edc8305ea5d3b4056369c24c09b12a23b3d0857e + * d-i: Build udebs for ps3. + - GIT-SHA 1255b98db417c2ec0465ed73045b9101c244283c + * quickcam: Add 0.6.6 driver (from qc-usb package). + - GIT-SHA 6cfdbcfc6427769567a0b4bb593751c089f3d852 + * ubuntu/: Rework Makefiles for proper -y/-m recursion. + - GIT-SHA 84440f2f67b8cc89e11aeb5e6ccc4f38fd9f91d4 + * Makefile: Move ubuntu/ to just drivers-y. + - GIT-SHA d8b88338578e9fded8380d94e71d8292ac0eee7d + * ubuntu/: Add ubuntu/net/wireless/ to obj-y for CONFIG_WIRELESS_EXT. + - GIT-SHA 3c4dc7409d831ec9ff68ee7f8624ee6f0714eb34 + * Release 2.6.20-11.18 + - GIT-SHA 94830a5986ed94c5d6402827553bf6b5319a7e32 + * debian/d-i/: Allow per-flavour udeb module listings. + - GIT-SHA 6a2a10a8d622cc80d4a1668ce6fc095c84dceb7e + * ubuntu/: Remove crufty file. + - GIT-SHA 420dd6113f06f136ec745ff0f88776b210c971bf + + [Dan Hecht] + + * Feisty VMI paravirt-ops: fix prototype pragma to match definition + - GIT-SHA 0ebf6936c9e9dc252c7257da8efe471582c36f73 + + [Daniel T. Chen] + + * sound/pci/hda/: (Many) Bug fixes; add Macbook/Pro, Fujitsu, and Lenovo + 3000 C200 support (patch_realtek.c) + - GIT-SHA 21621559de65fb1b336fac148b98637db9b8876e + * sound/pci/: Fix muted speaker on resume from suspend-to-RAM + (intel8x0.c) + - GIT-SHA c73679b8f2fdec4083612671afcf72fe26681b4c + * sound/pci/ac97/: Backport AD1xxx AC'97 fixes (ac97_{codec,patch}.c) + - GIT-SHA b86ead0f620209dcd96c30decc8362ebe2ed5bff + * sound/pci/ac97/: Add MSI L720 laptop to quirk list (ac97_patch.c) + - GIT-SHA 252b8b19279355f1bf4f90b14269a936c3e26322 + * sound/pci/hda/: Add support for Fujitsu EAPD model (patch_conexant.c) + - GIT-SHA 94e796e42ba693e81a0e6497d9477cdbb742ce4c + * sound/pci/hda/: LP #74677: Add models to HDA AD codec (patch_analog.c) + - GIT-SHA 85e78cc0ca76490eec7d956998afe309bc1e4024 + * sound/pci/hda/: Fix codec initialization on ATI HDA chips (hda_intel.c) + - GIT-SHA aa53cf8aff62b05396b1a98e37bbf401e8fb2aa0 + * sound/pci/hda/: Fix speaker output on MacPro (patch_sigmatel.c) + - GIT-SHA 5e06d854c5fe5cdc3692ec067355411725a3ac9e + * include/sound/: Add missing struct member (ac97_codec.h) + - GIT-SHA 658cfb791c276d372433f4ee3b57c8bef99a986d + * sound/pci/: LP: #88080: Fix Oops triggered from interrupt handler + (intel8x0.c) + - GIT-SHA 8376f4bfd0af249c8ab0c9c788184147db07984f + * sound/pci/hda/: Add SSID for HP d5700 to ALC260 quirk table + (patch_realtek.c) + - GIT-SHA f57799abf88ad79fdab977ce40b118d900f8ffc7 + + [David Miller] + + * Fix mach64 with gcc-4.1 and later... + - GIT-SHA 11057e22f19a953916315bbbf2889d6293d31177 + + [Fabio M. Di Nitto] + + * debian/firmware: Update ql2400 file. + - GIT-SHA 40a42fab6f35773ee0dd0a58083897771fd07468 + * Disable CONFIG_IP_ROUTE_MULTIPATH_CACHED for real. + - GIT-SHA 7b7dc1f9197a0d8347517362aad8003882812949 + * Readd gnbd driver + - GIT-SHA de6fffe4180e18f64648d82697d3ca79e180da75 + + [Kyle McMartin] + + * acpi/hotkey: Add loglevel to "Using ... hotkey" printk + - GIT-SHA 398c3db849ca235addc3bc16b8c683f180518661 + + [Upstream Kernel Changes] + + * ocfs2: ocfs2_link() journal credits update + * ocfs2_dlm: fix cluster-wide refcounting of lock resources + * fs/ocfs2/dlm/: make functions static + * ocfs2_dlm: Fixes race between migrate and dirty + * ocfs2_dlm: Make dlmunlock() wait for migration to complete + * ocfs2_dlm: Fix migrate lockres handler queue scanning + * ocfs2_dlm: Flush dlm workqueue before starting to migrate + * ocfs2_dlm: Drop inflight refmap even if no locks found on the lockres + * ocfs2_dlm: Dlm dispatch was stopping too early + * ocfs2_dlm: wake up sleepers on the lockres waitqueue + * ocfs2_dlm: Silence a failed convert + * ocfs2_dlm: Cookies in locks not being printed correctly in error + messages + * ocfs2: Added post handler callable function in o2net message handler + * ocfs2_dlm: Calling post handler function in assert master handler + * ocfs2: Binds listener to the configured ip address + * ocfs2_dlm: Ensure correct ordering of set/clear refmap bit on lockres + * ocfs2_dlm: disallow a domain join if node maps mismatch + * ocfs2_dlm: Silence some messages during join domain + * ocfs2_dlm: Add timeout to dlm join domain + * ocfs2: ocfs2_link() journal credits update + * x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted + * rtc-pcf8563: detect polarity of century bit automatically + * prism54: correct assignment of DOT1XENABLE in WE-19 codepaths + * pata_amd: fix an obvious bug in cable detection + * knfsd: Fix a race in closing NFSd connections. + * Keys: Fix key serial number collision handling + * ide: fix drive side 80c cable check + * bcm43xx: Fix for oops on resume + * bcm43xx: Fix for oops on ampdu status + * AGP: intel-agp bugfix + * Missing critical phys_to_virt in lib/swiotlb.c + * USB: fix concurrent buffer access in the hub driver + * usbaudio - Fix Oops with broken usb descriptors + * usbaudio - Fix Oops with unconventional sample rates + * hda-intel - Don't try to probe invalid codecs + * Fix various bugs with aligned reads in RAID5. + * Fix ATM initcall ordering. + * Fix TCP FIN handling + * Fix allocation failure handling in multicast + * md: Avoid possible BUG_ON in md bitmap handling. + * Fix compile error for e500 core based processors + * ieee1394: video1394: DMA fix + * ieee1394: fix host device registering when nodemgr disabled + * Fix null pointer dereference in appledisplay driver + * USB HID: Fix USB vendor and product IDs endianness for USB HID devices + * Kconfig: FAULT_INJECTION can be selected only if LOCKDEP is enabled. + * MTD: Fatal regression in drivers/mtd/redboot.c in 2.6.20 + * IPV6: HASHTABLES: Use appropriate seed for caluculating ehash index. + * EHCI: turn off remote wakeup during shutdown + * Avoid using nfsd process pools on SMP machines. + * Fix recently introduced problem with shutting down a busy NFS server. + * UHCI: fix port resume problem + * Fix atmarp.h for userspace + * Clear TCP segmentation offload state in ipt_REJECT + * Fix IPX module unload + * Prevent pseudo garbage in SYN's advertized window + * Fix oops in xfrm_audit_log() + * sky2: dont flush good pause frames + * sky2: transmit timeout deadlock + * x86_64: Fix wrong gcc check in bitops.h + * x86: Don't require the vDSO for handling a.out signals + * i386: Fix broken CONFIG_COMPAT_VDSO on i386 + * bcm43xx: fix for 4309 + * md: Fix raid10 recovery problem. + * dvbdev: fix illegal re-usage of fileoperations struct + * V4L: pvrusb2: Fix video corruption on stream start + * V4L: pvrusb2: Handle larger cx2341x firmware images + * DVB: cxusb: fix firmware patch for big endian systems + * DVB: digitv: open nxt6000 i2c_gate for TDED4 tuner handling + * V4L: fix cx25840 firmware loading + * V4L: cx88-blackbird: allow usage of 376836 and 262144 sized firmware + images + * Fix posix-cpu-timer breakage caused by stale p->last_ran value + * swsusp: Fix possible oops in userland interface + * sata_sil: ignore and clear spurious IRQs while executing commands by + polling + * fix umask when noACL kernel meets extN tuned for ACLs + * UML - Fix 2.6.20 hang + * mmc: Power quirk for ENE controllers + * bcm43xx: Fix assertion failures in interrupt handler + * libata: add missing PM callbacks + * libata: add missing CONFIG_PM in LLDs + * POWERPC: Fix performance monitor exception + * HID: fix possible double-free on error path in hid parser + * Fix interrupt probing on E450 sparc64 systems + * Fix xfrm_add_sa_expire() return value + * Fix skb data reallocation handling in IPSEC + * Fix %100 cpu spinning on sparc64 + * Fix TCP MD5 locking. + * Don't add anycast reference to device multiple times + * Fix anycast procfs device leak + * Fix reference counting (memory leak) problem in __nfulnl_send() and + callers related to packet queueing. + * export blk_recount_segments + * forcedeth: disable msix + * tty_io: fix race in master pty close/slave pty close path + * sched: fix SMT scheduler bug + * USB: usbnet driver bugfix + * RPM: fix double free in portmapper code + * NLM: Fix double free in __nlm_async_call + * kexec: Fix CONFIG_SMP=n compilation V2 (ia64) + * Fix MTRR compat ioctl + * ufs: restore back support of openstep + * v9fs_vfs_mkdir(): fix a double free + * enable mouse button 2+3 emulation for x86 macs + * hugetlb: preserve hugetlb pte dirty state + * m32r: build fix for processors without ISA_DSP_LEVEL2 + * kernel/time/clocksource.c needs struct task_struct on m68k + * buffer: memorder fix + * Char: specialix, isr have 2 params + * lockdep: forward declare struct task_struct + * kvm: Fix asm constraint for lldt instruction + * ueagle-atm.c needs sched.h + * fix section mismatch warning in lockdep + * throttle_vm_writeout(): don't loop on GFP_NOFS and GFP_NOIO allocations + * revert "drivers/net/tulip/dmfe: support basic carrier detection" + * video/aty/mach64_ct.c: fix bogus delay loop + * pktcdvd: Correctly set cmd_len field in pkt_generic_packet + * ATA: convert GSI to irq on ia64 + * gfs2: fix locking mistake + * TCP: Fix minisock tcp_create_openreq_child() typo. + * Fix buffer overflow in Omnikey CardMan 4040 driver (CVE-2007-0005) + * x86-64: survive having no irq mapping for a vector + * IPV6: Handle np->opt being NULL in ipv6_getsockopt_sticky() + [CVE-2007-1000] + * Linux 2.6.20.2 + * conntrack: fix {nf, ip}_ct_iterate_cleanup endless loops + * nf_conntrack/nf_nat: fix incorrect config ifdefs + * tcp conntrack: accept SYN|URG as valid + * nfnetlink_log: fix reference leak + * nfnetlink_log: fix use after free + * nfnetlink_log: fix NULL pointer dereference + * nfnetlink_log: fix possible NULL pointer dereference + * ip6_route_me_harder should take into account mark + * nf_conntrack: fix incorrect classification of IPv6 fragments as + ESTABLISHED + * nfnetlink_log: zero-terminate prefix + * nfnetlink_log: fix crash on bridged packet + * Fix bug 7994 sleeping function called from invalid context + * bcm43xx: Fix problem with >1 GB RAM + * Fix compat_getsockopt + * fix for bugzilla #7544 (keyspan USB-to-serial converter) + * Fix callback bug in connector + * Fix sparc64 device register probing + * Fix timewait jiffies + * Fix UDP header pointer after pskb_trim_rcsum() + * Linux 2.6.20.3 + + -- Ben Collins Wed, 14 Mar 2007 13:24:01 -0400 + +linux-source-2.6.20 (2.6.20-10.17) feisty; urgency=low + + [Ben Collins] + + * powerpc: Fix build failure caused by include ordering. + - GIT-SHA ae1f75e4b3e0a5645c5c2e0ace4d98a5c41663bf + * ps3: Update to latest code in linux-ps3.git + - GIT-SHA 87402da9dab94849527c685f09b3aef61b8ccc32 + * i386: Allow VDSO + PARAVIRT + - GIT-SHA a3718cc571410e202382daca05e809fbeb7ffe41 + * acpi: DSDT from initramfs patch + - GIT-SHA 7b650b00d82ec5c80452b2f99de1cfdbae2a465b + * ps3: Use what kexec passed to us. + - GIT-SHA 7711acb4b58f1313830940008ccc03275265c705 + * ps3: Do not call early_init_dt_scan_memory() on PS3 (we use lv1 + routines) + - GIT-SHA daf88d0260215ce90b293c52c65adc819e4a8f65 + * gelic_net: Allocate gelic_irq_status with card struct. + - GIT-SHA a85fc7b805b0b16f4bd97fa707affd71b3a672d9 + * ps3: Disable debug messages. + - GIT-SHA 84fd42468c726cffaafd58df6019e5278c111ef5 + * ps3: Export a few repository symbols (GPL) for storage driver as + module. + - GIT-SHA 26b5fe72a4dfc4fc3293f4020add9b55fde73e67 + * kvm: Update to kvm-15 + - GIT-SHA addefaae3b6bbd33e0ccf804e01a2afc102ee0d5 + * ndiswrapper: Update to v1.38 + - GIT-SHA d45dc1f185baa28a04551acd7d96ad1102633f7a + * ipw3945: Add max timeout_spin for thermal. Avoids softlock up. + - GIT-SHA 5d6caa9edbffa13973a6f9bbbdf47473ac18dc16 + * configs: Enable PM_TRACE on x86_64. + - GIT-SHA 8bb67c60933e524f06133796fb8c60bf0c68fb0e + * tifm_7xx1: include linux/dma-mapping.h (ftbfs on sparc) + - GIT-SHA a44e76a014641330f064062eb86d1e1dce79a57e + * pci: Add empty decleration for pci_yes_msi() on non-msi architectures + - GIT-SHA 96d5fb49720b2ae60406394ca29e96ce0919d83d + + [Dan Hecht] + + * Feisty VMI paravirt-ops: fix vmi timer interrupt handler nested + xtime_lock + - GIT-SHA 3187b0e329245f3667b399dd4a0e8a687f44bce5 + * Feisty VMI paravirt-ops: fix no_timer_check compile fix + - GIT-SHA adec0fc22dcc9039a22f47dfa009d0d76ba37c14 + * Feisty VMI paravirt-ops: unconditionally enable disable_nodelay + - GIT-SHA 1aace0a61ee4e2f5d465f7667445d76ac944538e + + [Daniel T. Chen] + + * sound/pci/{ali5451,ca0106,echoaudio,riptide,rme9652}/: Add missing + sysfs device assignment for ALSA PCI drivers + ({ali5451,ca0106_main,echoaudio,riptide,hdspm}.c) + - GIT-SHA 7324806accd810818a7b66ba17f6ff5923743b2f + * sound/pci/hda/: Add SSID for LG LW40 Express (patch_realtek.c) + - GIT-SHA c3979792b7026ae9f43c5147e9617cf701af054b + * sound/pci/hda/: LP #88452: Fix headphone jack sense regression in + 2.6.20-9.16 on 504[57] (patch_conexant.c) + - GIT-SHA 5bb5522b65050a448245acdb42a63a590c385921 + + [Kyle McMartin] + + * drivers/ata: Enable libata Host Protected Area support + - GIT-SHA a0e61542121a0519bfbe9f6e43980ec96a16156e + * Disable MSI by default + - GIT-SHA dc205519fa6c5e487e9829090145d3eb3e73b496 + * Disable MMCONFIG by default + - GIT-SHA d613cff3d5968d3e93bad197480b90733c71b984 + * Update nozomi driver + - GIT-SHA ece7562eae20233c9ebca8677104f4f99680ab71 + * Add eeprom_bad_csum_allow option to e1000 + - GIT-SHA 4f26a22422aaf987a34b76451383cb243088498c + * Enable TCP_MD5SIG + - GIT-SHA 8afc57f2791aebc0a1180749438c7c84f0e812d0 + * UBUNTU:usb/serial: New device IDs for cp2101 driver + - GIT-SHA cdbb30cb9a1667a84f759b10b1fe714bcedf4084 + * Disable CONFIG_IP_ROUTE_MULTIPATH_CACHED + - GIT-SHA 14dfd17d483d8466faf3605cf931c5f2fc7eac63 + - Bug ##90597 + * Disable CONFIG_ACPI_DEBUG + - GIT-SHA 57516b6c60cdb5b97caed872a638d8efbd8e524e + + [Matthew Garrett] + + * Allow appletouch to bind to Apple touchpads + - GIT-SHA 5bb33520e67b89386880d3a218ecfde550848b5b + * add module_device_table entry for applesmc in order to have it + autoloaded + - GIT-SHA 524e8b89b619f19b70dd38e45fa9a59ff30a82c3 + + [Phillip Lougher] + + * Backport NFS branch oops fix from Unionfs 2.0 + - GIT-SHA feea4eb6e27ac04bbc34a525a6599a79204e81f0 + - Bug #85145 + * Backport unionfs_statfs() from Unionfs 2.0 + - GIT-SHA a47c7c9186612ad5f59bcca95bd5fac5cb01b287 + - Bug #90088 + * i2c-matroxfb: add code to correctly set .class field + - GIT-SHA 82e00f0e073de4849f6cd6ee8b361c28f952ca8d + - Bug #80608 + * i2c-matroxfb: fix typo in patch + - GIT-SHA 85294b26c526ce28c2e513b04293561fe2c8d5f4 + - Bug #80608 + * TI FlashMedia xx12/xx21 driver update to 0.8 release (20070222) + - GIT-SHA a3e42adedcd3c2f3364e6b620e12b14c68c7a149 + - Bug #82680 + + [Upstream Kernel Changes] + + * [PARISC] Delete arch/parisc/mm/kmap.c again + * [PARISC] Show more memory information and memory layout at bootup + * [PARISC] Unbreak discontigmem mem_init() + * [PARISC] Fix ccio_request_resource when CONFIG_IOMMU_CCIO is not + defined + * [PARISC] HPPB bus updates for E-Class systems + * [PARISC] [MUX] Mux driver bug fix + * [PARISC] [MUX] Mux driver updates + * [PARISC] [MUX] Claim resources for the Mux driver + * [PARISC] [MUX] Make the Serial Mux driver work as module + * [PARISC] [MUX] Detect multiple cards in the correct order + * [PARISC] [MUX] Correctly report the number of available ports + * [PARISC] [MUX] Get the hversion directly from the parisc_device + * [PARISC] parisc-agp: Fix integer/pointer warning + * [PARISC] sparse fixes + * [PARISC] more sparse fixes + * [PARISC] Reserve 1GB of space for vmalloc/tmpalias space on parisc64 + * [PARISC] Fix PCI bus numbering in the presence of Cardbus bridges + * [PARISC] avoid compiler warnings when compiling 64bit + * [PARISC] bloody printf fmt string warnings + * [TRIVIAL] [PARISC] Fix module.c printk message, add missing ')' + * [PARISC] lasi_82596: use BUILD_BUG_ON() and constify static array + * [PARISC] Make Lasi Ethernet depend on GSC only + * [PARISC] Remove GCC_VERSION usage as suggested by Adrian Bunk + * [PARISC] pdcpat remove extra brackets + * [PARISC] Remove duplicate PDC_PAT_CELL defines + * WorkStruct: Fix up some PA-RISC work items + * [PARISC] Move spinlock_t out of struct cpu_data + * [PARISC] Fix thinko in cpu_data.lock removal + * parisc: fix module_param iommu permission + * PA-RISC: Fix bogus warnings from modpost + * use __u64 rather than u64 in parisc statfs structs + * [PARISC] Optimize TLB flush on SMP systems + * [PARISC] Clean up the cache and tlb headers + * [PARISC] Only write to memory in test_and_set_bit/test_and_clear_bit if + we're + * [PARISC] "Fix" circular includes + * [PARISC] Add prototypes for flush_user_dcache_range and + flush_user_icache_range + * [PARISC] Remove sched.h from uaccess.h on parisc + * [PARISC] Fix show_stack() when we can't kmalloc + * [PARISC] Generic BUG + * [PARISC] fix build for WARN_ON() when CONFIG_DEBUG_BUGVERBOSE=y + * [PARISC] whitespace cleanups and unify 32/64bit user-access assembler + inlines + * [PARISC] fix fixup declarations for 32bit and use CONFIG_64BIT + * [PARISC] dump stack backtrace on BUG() and add syslog-levels to + printk()s + * [PARISC] add missing syscalls for vmsplice, move_pages, getcpu & + epoll_pwait + * [PARISC] lba_pci format warnings + * [PARISC] Use fstatat64 instead of newfstatat syscall + * [PARISC] use fls_long in irq.c + * [PARISC] a and b in "break a,b" message were swapped + * [PARISC] GENERIC_TIME patchset for parisc + * [PARISC] disable cr16 clocksource when multiple CPUs are online + * [PARISC] Convert soft power switch driver to kthread + * [PARISC] detect recursive kernel crash earlier + * [PARISC] Add TIF_RESTORE_SIGMASK support + * [PARISC] use less assembler statements in syscall path + * [PARISC] display parisc device modalias in sysfs + * [PARISC] move parisc_device_id definition to mod_devicetable.h + * [PARISC] generate modalias for parisc_device_id tables + * [PARISC] rename *_ANY_ID to PA_*_ANY_ID in the exported header + * [PARISC] factor syscall_restart code out of do_signal + * [PARISC] clean up debugging printks in smp.c + * [PARISC] kill ENTRY_SYS_CPUS + * [PARISC] implement standard ENTRY(), END() and ENDPROC() + * [PARISC] Fixes /proc/cpuinfo cache output on B160L + * [PARISC] fix ENTRY() and ENDPROC() for 64bit-parisc + * [PARISC] more ENTRY(), ENDPROC(), END() conversions + * [PARISC] add ASM_EXCEPTIONTABLE_ENTRY() macro + * [PARISC] use CONFIG_64BIT instead of __LP64__ + * [PARISC] convert to use CONFIG_64BIT instead of __LP64__ + * [PARISC] add ENTRY()/ENDPROC() and simplify assembly of HP/UX emulation + code + * [PARISC] do not export get_register/set_register + * [PARISC] fix section mismatch warnings in harmony sound driver + * [PARISC] Reorder syscalls to match unistd.h + * Fix a free-wrong-pointer bug in nfs/acl server (CVE-2007-0772) + * Linux 2.6.20.1 + * [PARISC] Add missing statfs64 and fstatfs64 syscalls + * [PARISC] Use symbolic last syscall in __NR_Linux_syscalls + * add vm_insert_pfn() + * Add NOPFN_REFAULT result from vm_ops->nopfn() + * [SPARC64]: Fix PCI interrupts on E450 et al. + * sata_sil: ignore and clear spurious IRQs while executing commands by + polling + + -- Ben Collins Sun, 11 Mar 2007 06:23:55 -0400 + +linux-source-2.6.20 (2.6.20-9.16) feisty; urgency=low + + == Re-upload for build failures == + + [Ben Collins] + + * d80211/dadwifi: Get rid of this, causes dumb failures + - GIT-SHA fe8556a197d3f3f01e2e71785b3eff55f9a98a0f + * powerpc: ifdef use of spu logo function + - GIT-SHA 8cf5e8f8e79e53b5d13038326a50f94c81bb01e8 + * ssb: Include dma-mapping.h + - GIT-SHA 7fbf0dd183ffbfcd01efebe4bd90172a4346190d + + == 2.6.20-9.15 == + + [Ben Collins] + + * sata_sis: Sync with upstream v0.7 + - GIT-SHA 54db2f91cd5a9115faf2a1142c3788665d4c08de + * d-i: Make storage-core-modules provide loop-modules + - GIT-SHA e9a5522297506bb285ef4c0c803a64fb289abe72 + * pm_trace: Fixup for non-pm architectures (compile failure) + - GIT-SHA 08cfd02cd6fab74af88fda7127d7ab5249a4606c + * ps3: Pull patches from linux-ps3.git HEAD. + - GIT-SHA 05383a8254692b547ae676b59b45d66f19229a27 + * ps3av: Allow native HDMI modes for boot case. + - GIT-SHA 641ab76ed883342c2a19df4c33ac17d795d2f5ca + * bcm43xx-dscape: Remove module_dev_table to avoid autoloading + - GIT-SHA 2082dec4a8ee18cf694a1f26bb136280c1053911 + * bcm43xx: Re-enable stock bcm43xx driver. + - GIT-SHA e5375f74acdad5cd54b7a1c96bd7aff6056941a6 + * bcm43xx-dscape: Actually rename this module to bcm43xx-dscape. + - GIT-SHA 7f8dabc63ea45b2ae0c411073b9044dc0904ea14 + * bcm43xx: Patch for DMA over 1G. + - GIT-SHA 032a9bb14008b8ab88e1e22ee956650de7532c6a + * bcm43xx: Patch to detect radio enable/disable. + - GIT-SHA 95824fb76a8b2ede3156f46c7be19dcf7656e75e + * bcm43xx: Fix bcm4309, patch from upstream -stable. + - GIT-SHA e9b2f2ef91b51796aec064f95f5a816b60498af0 + * namespace: AppArmor patches to export symbols as needed. + - GIT-SHA 9a364aef1f798c16648ef8611eedc675c6c522e8 + * gspcav1: SPCA Driver, for v4l1 + - GIT-SHA f5d420265ac21729cf4ba0d342b370066a2ac7a2 + * ubuntu/: Update kbuild for gspcav1 + - GIT-SHA 814e37d1e7f4ead8a8ca9bf1a238078489ebf0c0 + * iwlwifi: Update to v0.0.8 + - GIT-SHA 968a3b550a7640b4a508e784bb095af8d761d731 + * debian/firmware: Add iwlwifi ucode + - GIT-SHA 76a733559ffdb665a5c5b092c6d7921e9dca38d7 + * ubuntu/ssb: Set better defaults in Kconfig for Ubuntu setups + - GIT-SHA d0c669fe2ebaed94f9837eca9cc3646cca014057 + * bcm43xx-d80211: Disable MODULE_DEVICE_TABLE so it isn't auto-loaded + - GIT-SHA 65c348e7886894076b7610ab3df9162c4d1dfe73 + * fs/exec: Always set max rlim for piped core. + - GIT-SHA 1e0f4a95ab56cadb1e37fb36ee1bc51f7697e062 + - Bug #87065 + * Allow mac mouse emul to be compiled on non-ppc + - GIT-SHA 5ceb16c6c1ebe24463a05328b3b72eea88c21ef8 + - Bug #81421 + * drivers/ide/: Check for pata modules enabled as modules too. + - GIT-SHA 3abf25603e6c855027ea11f9420ae7bddc3f02aa + * i386/pci: Quieten some messages. + - GIT-SHA 8897331220c73b367ad0ab4756f7b0f6cbb51c85 + - Bug #54294 + + [Daniel T. Chen] + + * sound/pci/hda/: Add support for Medion and Toshiba models + (patch_realtek.c) + - GIT-SHA d0c374e410e02bbe608b1eb05ea830326305b25f + * sound/pci/hda/: Add support for more ALC262, ALC883 and ALC660 models + (patch_realtek.c) + - GIT-SHA dab0d409a6253e89769f230190c852f8326f7fcb + * sound/pci/hda/: Add support for Asus models (patch_realtek.c) + - GIT-SHA f281cbd170b929b0b92cabefdfd4ba43616172b0 + * sound/pci/hda/: Add laptop-eapd model for Clevo M540JE, M550JE laptops + (Nvidia MCP51 chipset, ALC883 codec) (patch_realtek.c) + - GIT-SHA b37d077f39d082a5622c70d34be9247691f4cc99 + * sound/pci/hda/: More Conexant HDA fixes (patch_conexant.c) + - GIT-SHA b55060489d99586e5aff8000e74a1f1f195dd20d + * sound/pci/hda/: Add Dell models to STAC_REF and fix probe OOPS + (patch_sigmatel.c) + - GIT-SHA 25107d232a38e525b0a89884315d18eb495c1575 + * sound/pci/ac97/: Fix silent output with Conexant Cx20551 codec + (ac97_codec.c, ac97_patch.c, ac97_patch.h) + - GIT-SHA 1b3afda1c3af46ea96e9c5a3992a7ca83716a6a8 + * sound/pci/hda/: (Re)Add support for Macmini/Macbook/Macbook Pro + (patch_sigmatel.c) + - GIT-SHA 2fadead62fc6222b10799bd8cb134cfb6a79171f + + [Fabio M. Di Nitto] + + * ubuntu/fs/gfs: full update for 2.6.20 as of CVS20070216 + - GIT-SHA a81d2cf71db54eadcae6e213c625287236942eb9 + + [Kyle McMartin] + + * debian/firmware: Add aic94xx firmware + - GIT-SHA 6b0cc3fd1e98f3d1ba4bff6e26af4c94e206257c + * debian/d-i/firmware: Add scsi-firmware + - GIT-SHA 14d79cfe7725796e200c1dd20d92e8d58ba4b9b6 + * debian/: regen control{,.stub} + - GIT-SHA 60e2542a78f55537f6eb5757da0c7b925d3fe9b8 + + [Matthew Garrett] + + * Avoid the hid driver binding the Apple IR controller + - GIT-SHA 482271127ff1e7e3b321867648ea6cb199f6ecf6 + * Add PM_TRACE support for x86_64 + - GIT-SHA c63e3d917a84214a98c81ae497bcd4a72ead62ed + + [Phillip Lougher] + + * r8169: disable TSO by default for RTL8111/8168B chipsets. + - GIT-SHA 0cc30725f64a07cc4084d9e6d1637de405315815 + - Bug #76489 + * r8087: Fix bug in workqueue changes for 2.6.20 + - GIT-SHA 07e3458bdf5ba97519a58e089841ccb185ede7d2 + + [Upstream Kernel Changes] + + * Updated d80211 bcm43xx + * Add ssb support + * Update adm8211 drivers + * Update p54 driver + * Fix config symbol names + * Really fix config symbol names + * Add iwlwifi + * Fix the iwlwifi build + * Make SSB busses children of their parent device + * Add dadwifi (doesn't really work yet, but builds) + + -- Ben Collins Mon, 12 Feb 2007 20:22:14 -0500 + +linux-source-2.6.20 (2.6.20-8.14) feisty; urgency=low + + [Ben Collins] + + * acx: Add wlan_compat bits for ia64 + - GIT-SHA 4f29d1a99f1f8b096aaec9dc7df81cce54aa72b3 + * power: Disable the "Adding/Removing info for" printk's + - GIT-SHA daff39bf329d2522663343d6835f15eb17c0068d + * i82365: Probe before adding platform dev. + - GIT-SHA 06fd3fa13e3b336fcea01c326f3af314e5f37688 + * fs/exec: Fix call_usermodehelper_pipe() to allow waiting for exit + - GIT-SHA bfefaf3d2bd72a193bf5809639180a94ddc032ff + + [Upstream Kernel Changes] + + * sata_promise: TX2plus PATA support + * sata_promise: ATAPI support + * sata_promise: ATAPI cleanup + * sata_promise: issue ATAPI commands as normal packets + * sata_promise: handle ATAPI_NODATA ourselves + + -- Ben Collins Fri, 09 Feb 2007 10:24:58 -0500 + +linux-source-2.6.20 (2.6.20-7.13) feisty; urgency=low + + [Ben Collins - 7.13] + + * adm8211: Include dma-mapping.h for DMA_* constants. + - GIT-SHA d2ef9310ac1482f9230c89161260d74a86b1c9f1 + * p54: Include dma-mapping.h + - GIT-SHA d53668d200221d86b0889706e6560f0579246adc + * ubuntu/: Remove extraneous rt2x00 subdir from d80211 Makefile. + - GIT-SHA 2e9e9411c163478a7ba4aa389fcea2f553045a78 + + [Ben Collins] + + * drivers/core: Add sysfs attr to disable auto binding of drivers/devices + - GIT-SHA 22e8edadfe0141ea0e9f4b3c9626c3f97bf76c93 + * Disable prism2_cs in favor of orinoco/hostap modules. + - GIT-SHA 30cde452a15d9d1f27d20ea95d5fdba319ccd252 + * Update tifm core to latest version. + - GIT-SHA 6e2e96b61fea2d370777af7affe0008a7a7769b4 + * tifm: Update sd driver to latest version. + - GIT-SHA 8b69d97c3415de445ac7f9feff6152f130d001bc + * tifm_memstick: New driver. + - GIT-SHA d4d68aec79a4cb26d49893b0e98212e98549e806 + * netdev header: Add ieee80211 pointer for d80211. + - GIT-SHA 9d5f35c65ae15e6205221dd259a472edcb697812 + * ubuntu/net: Add SSB driver. + - GIT-SHA 4a4e7f2b0d1c71bbf7bb98a3c7981cae1e963d75 + * d80211: Add devicescape 802.11 stack. + - GIT-SHA 4d0fb64df98a9e21644525615df34ab2056eb569 + * p54: d80211 version of prism54 drivers + - GIT-SHA 140c080a78cde3f2a96e55da9ca2b25e44682b3c + * adm8211: d80211 version of this driver. + - GIT-SHA bfb106b04449dc080024eb7dd9e8dd486bcd6d7c + * rt2x00: Use in-tree d80211 now. + - GIT-SHA ffd2b8634285fe51f7a1dbe941a3d3de9682959d + * bcm43xx: d80211 version of this driver. + - GIT-SHA 1c965fad34ead0323464b2fc2f154b769e23d0fa + * ubuntu/wireless: Kbuild mechanisms for d80211 drivers. + - GIT-SHA fa6f353d01467a991d32dfecab5a8d0a97a0ab15 + * ubuntu/net: Add proper obj-* for d80211. + - GIT-SHA 1c197c4b327899fa52334b876f0481e466b5ca33 + * Compile fixes for d80211 drivers. + - GIT-SHA d1fccda7269b068993e9cbfcb59876ca8034ab87 + * rt2x00: Shift to d80211 compatible code. + - GIT-SHA 2a05970a2dc1b4a50ffd1c94d0986d8d1d6c6c3d + * tifm_7xx1: Add defines for new devices. + - GIT-SHA f824ad5dcb0d62f09b78a7930436c513d0128a1d + * ps3fb: Build for PPC_PS3 only + - GIT-SHA f5e173c8b9ff3692f595c417938083b13e64e11a + * powerpc: Export some ps3 symbols for storage module. + - GIT-SHA ec400176132803af41c6aecb3b12db9a31b9c845 + * debian: Correctly copy the ubuntu/include dir to headers pkg. + - GIT-SHA ed07298c5e4d0ddcafed16c448b03113d9759585 + * drivers/video/Kconfig: Fix missing select + - GIT-SHA 6976480384e97a384a9f0e95566d57710389e695 + * ubuntu/wireless: Add and switch to rt61 and rt73 legacy drivers. + - GIT-SHA 04e61f157c9e6f803495f37771ada12ee962a21c + * ubuntu/wireless: rt61 and rt73 should be x86 only. + - GIT-SHA e4adb1e93f9dae772ea6afdcefa036fb0300d1ff + * arch/powerpc: __start_initialization_ps3 should not be called unless + romboot + - GIT-SHA 92d9beacf533c488921d88d1cfc04ecaac73091f + * paravirt: Temporarily remove the _GPL from the paravirt_ops export. + - GIT-SHA dc9ad6a068aee49ff28d684240ef728e4fbd3ccc + * serio: Remove device on shutdown to avoid buggy hw issues. + - GIT-SHA 29f0b9969512eb7b312b0760d7bea7e652e8764e + - Bug #82681 + * zd1211rw: Add support for USR805423 + - GIT-SHA 6a04f78207354e5802e36ed8667d14161a3091f6 + - Bug #82578 + * configs: Provide kvm-modules-APIVER for userspace to dep on. + - GIT-SHA 6ac8dc6d7cccec4d44aa5dfe0c0893cf74110dd6 + - Bug #82258 + * sound/hda_sigmatel: Fix ftbfs in last commit. + - GIT-SHA 7a4d0ac5947972f4ca432c723141310c52d40a4e + * linux_logo: Fix typo from extra_logo changes. + - GIT-SHA 2fcc2e7e6f09eb5a7a7ec4bf318da3c2dc329ec1 + * x86: Remove kdump kernel target since stock kernel can relocate. + - GIT-SHA 3404865f24d45497625128c96a0a0aac09742292 + * ppc: Wrap use of logo with CONFIG_LOGO + - GIT-SHA e047adc25bee4c0c508e2ed4d165a5e317dbf716 + * ppc/ps3: Fix dev_dbg() missing paren. + - GIT-SHA 9a81097a5db61b2c1c53281c6c3a1105b697b2b8 + * fs/exec: Increase size of psuedo rlim for piped core. + - GIT-SHA c92e62051e81a485016b1eb33a25d0d56ec6e3f3 + * fs/exec: Add a CORE_REAL_RLIM env for when we override it. + - GIT-SHA f0fa902c99ae4b462a57239c4828bf2a9b1054f6 + * atl1: Replace PCI vendor macro with constant. + - GIT-SHA c1c238a318c39d3c4f021a3767e9188b5a0cf66b + * megaraid: Add CERC device support patch. + - GIT-SHA 66f63e20e2e9a7fc796f6a9b1af9b3f0019085e3 + * ipw3945: Update to v1.2.0 + - GIT-SHA 1c2e8dfd7e9984658df98ad59e35ce122b47b119 + * Update ipw3945 ucode to 1.14.2. + - GIT-SHA d0f9c02060e586553cfff48776abb7d4e5e8d614 + * debian/config: Enable CONFIG_PM_TRACE to help debug suspend/resume + problems. + - GIT-SHA d52b29c1f900b5089592a20b0e6a0f39aa8c707d + * toshiba_acpi: Add hotkeys support. + - GIT-SHA ce6b8dd74b92e479aad58444b531685500a19aca + - Bug #77026 + + [Dan Hecht] + + * Feisty VMI paravirt-ops: enable vdso even when paravirt enabled + - GIT-SHA 067e03f920818d3b40062be994fd72f6d73b84ee + * Feisty VMI paravirt-ops: export paravirt_ops symbol + - GIT-SHA 4535bc1f5a50a20c2db2784cc655e75672ec92f4 + * Feisty VMI paravirt-ops: use real delay for i8042 + - GIT-SHA 89e6be485bb2f833eadb649daf8cff712fef500b + * Feisty VMI paravirt-ops: fix vmi-timer no-idle-hz idling code + - GIT-SHA d3153a3f8aa3f3c36d9132a58083e1c6bdc079da + * Feisty VMI paravirt-ops: fix profile_pc cpl checks + - GIT-SHA be7fd2bd3b9f85a4121303b8a354a08ba1f05af9 + * Feisty VMI paravirt-ops: Fix sched_clock units in VMI case + - GIT-SHA 16872a27f546105702324c8ebd400893b9a3196f + * Feisty VMI paravirt-ops: fix HIGHPTE when running on vmi hypervisor + - GIT-SHA a5bee01a5fe6c709fadcac4037da76fb77eb4841 + + [Daniel T. Chen] + + * sound/pci/hda/: Add Sigmatel 9205 EAPD support (patch_sigmatel.c) + - GIT-SHA 42a2e17c3caf2e69c54ecf265509c15b086a6dc6 + * sound/pci/hda/: Add digital mic support for STAC HDA (patch_sigmatel.c) + - GIT-SHA 0d584c03b7589c69541ca98854ceca1e76c44818 + * sound/pci/hda/: Add support for more STAC HDA codecs (patch_sigmatel.c) + - GIT-SHA a7346022281e59443ab0408ffe4ac2ae3abe785d + + [Kyle McMartin] + + * nozomi: Added driver + - GIT-SHA b4f2f69278e511e34d2cf248d1d74a4eb1a1e518 + * atl1: Add driver + - GIT-SHA be86d24abdff0cc9ab502e174e3be29cac040991 + * acx: Update driver + - GIT-SHA 11216265914d055c8b46ecb741b882f810e69946 + * Fix Attansic L1 Gigabit Ethernet driver + - GIT-SHA 657112d01c49bc4f4ed3de6ec30aca5801beb302 + + [Upstream Kernel Changes] + + * [libata sata_promise] support PATA ports on SATA controllers + * make sata_promise PATA ports work + * [AGPGART] intel_agp: restore graphics device's pci space early in + resume + * [PS3] Import + ps3-linux-patches-efc1ddc7203ae9a2418e03a9dbbafb260f4fe2a3. + * [PS3] Cleanup fb patches. + * [PS3] Export ps3_get_firmware_version(). + * [ARM] 4084/1: Remove CONFIG_DEBUG_WAITQ + * [ARM] 4085/1: AT91: Header fixes. + * [ARM] 4086/1: AT91: Whitespace cleanup + * [ARM] 4087/1: AT91: CPU reset for SAM9x processors + * [ARM] 4088/1: AT91: Unbalanced IRQ in serial driver suspend/resume + * [ARM] 4089/1: AT91: GPIO wake IRQ cleanup + * [ARM] 4092/1: i.MX/MX1 CPU Frequency scaling latency definition + * [ARM] 4095/1: S3C24XX: Fix GPIO set for Bank A + * [ARM] 4096/1: S3C24XX: change return code form s3c2410_gpio_getcfg() + * [ARM] Fix show_mem() for discontigmem + * [ARM] Update mach-types + * [ARM] 4100/1: iop3xx: fix cpu mask for iop333 + * [ARM] Fix AMBA serial drivers for non-first serial ports + * [ARM] 4102/1: Allow for PHYS_OFFSET on any valid 2MiB address + * [ARM] 4106/1: S3C2410: typo fixes in register definitions + * [PS3] Prepare patches for 2.6.21 submission. + * [ARM] 4112/1: Only ioremap to supersections if DOMAIN_IO is zero + * [ARM] 4111/1: Allow VFP to work with thread migration on SMP + * HID: fix memleaking of collection + * USB HID: fix hid_blacklist clash for 0x08ca/0x0010 + * HID: fix hid-input mapping for Firefly Mini Remote Control + * [PS3] Prepare av and fb patches for 2.6.21 submission. + * [PS3] Prepared patches for 2.6.21 submission. + * ahci: port_no should be used when clearing IRQ in ahci_thaw() + * libata: fix ata_eh_suspend() return value + * ide: update MAINTAINERS entry + * jmicron: fix warning + * atiixp.c: remove unused code + * atiixp.c: sb600 ide only has one channel + * atiixp.c: add cable detection support for ATI IDE + * ide/generic: Jmicron has its own drivers now + * ia64: add pci_get_legacy_ide_irq() + * ide: add missing __init tags to IDE PCI host drivers + * ide: unregister idepnp driver on unload + * via82cxxx/pata_via: correct PCI_DEVICE_ID_VIA_SATA_EIDE ID and add + support for CX700 and 8237S + * [SCSI] Fix scsi_add_device() for async scanning + * [SCSI] qla4xxx: bug fixes + * [SCSI] st: A MTIOCTOP/MTWEOF within the early warning will cause the + file number to be incorrect + * [AGPGART] Prevent (unlikely) memory leak in amd_create_gatt_pages() + * [AGPGART] Remove pointless typedef in ati-agp + * [AGPGART] Remove pointless assignment. + * [AGPGART] Add new IDs to VIA AGP. + * [CPUFREQ] check sysfs_create_link return value + * [CPUFREQ] Remove unneeded errata workaround from p4-clockmod. + * [ARM] 4117/1: S3C2412: Fix writel() usage in selection code + * [PS3] Prepare av and fb patches for 2nd round 2.6.21 submission. + * ALSA: Fix sysfs breakage + * Fix balance_dirty_page() calculations with CONFIG_HIGHMEM + * [PS3] Move system-bus to platform directory. + * sky2: revert IRQ dance on suspend/resume + * [PS3] Fixed ps3_map_sg, enabled CONFIG_USB_STORAGE. + * Fix try_to_free_buffer() locking + * Fix SG_IO timeout jiffy conversion + * Malta: Fix build if CONFIG_MTD is diabled. + * [MIPS] Ocelot G: Fix a few misspellings of CONFIG_GALILEO_GT64240_ETH + * [MIPS] Fix typo of "CONFIG_MT_SMP". + * HID: fix pb_fnmode and move it to generic HID + * pata_sil680: PIO1 taskfile transfers overclocking fix (repost) + * ata_if_xfermask() word 51 fix + * pata_platform: set_mode fix + * libata-scsi: ata_task_ioctl should return ATA registers from sense data + * libata: fix translation for START STOP UNIT + * b44: Fix frequent link changes + * net: ifb error path loop fix + * FS_ENET: OF-related fixup for FEC and SCC MAC's + * 82596 warning fixes + * ehea: Fixed wrong jumbo frames status query + * ehea: Fixed missing tasklet_kill() call + * bonding: ARP monitoring broken on x86_64 + * e100: fix irq leak on suspend/resume + * b44: src_desc->addr is little-endian + * Broadcom 4400 resume small fix + * namespaces: fix exit race by splitting exit + * uml: fix mknod + * use __u8/__u32 in userspace ioctl defines for I2O + * Fix "CONFIG_X86_64_" typo in drivers/kvm/svm.c + * m68k: uaccess.h needs sched.h + * fs/lockd/clntlock.c: add missing newlines to dprintk's + * knfsd: ratelimit some nfsd messages that are triggered by external + events + * use __u8 rather than u8 in userspace SIZE defines in hdreg.h + * fuse: fix bug in control filesystem mount + * ufs: alloc metadata null page fix + * ufs: truncate negative to unsigned fix + * ufs: reallocation fix + * cdev.h: forward declarations + * `make help' in build tree doesn't show headers_* targets + * i386: In assign_irq_vector look at all vectors before giving up + * mm: mremap correct rmap accounting + * missing exports of pm_power_off() on alpha and sparc32 + * mtd/nand/cafe.c missing include of dma-mapping.h + * sym53c500_cs: remove bogus call fo free_dma() + * pata_platform: fallout from set_mode() change + * missing dma_sync_single_range_for{cpu,device} on alpha + * dma-mapping.h stubs fix + * b44: src_desc->addr is little-endian + * fix indentation-related breakage in Kconfig.i386 + * [PS3] More av and fb prepearations for 2nd round 2.6.21 submission. + * [MAINTAINERS]: netfilter@ is subscribers-only + * [NETFILTER]: xt_connbytes: fix division by zero + * [NETFILTER]: SIP conntrack: fix skipping over user info in SIP headers + * [NETFILTER]: SIP conntrack: fix out of bounds memory access + * [IPV6]: Fix up some CONFIG typos + * [IPV6]: fix BUG of ndisc_send_redirect() + * [SCTP]: Force update of the rto when processing HB-ACK + * [PS3] Finish system bus move. + * Don't allow the stack to grow into hugetlb reserved regions + * translate dashes in filenames for headers install + * Remove warning: VFS is out of sync with lock manager + * kprobes: replace magic numbers with enum + * Fix VIA quirks + * jmicron: 40/80pin primary detection + * uml: fix signal frame alignment + * ntfs: kmap_atomic() atomicity fix + * IPMI: fix timeout list handling + * Linux 2.6.20-rc7 + * [NETFILTER]: xt_hashlimit: fix ip6tables dependency + * fix frv headers_check + * mca_nmi_hook() can be called at any point + * ide section fixes + * endianness bug: ntohl() misspelled as >> 24 in fh_verify(). + * fork_idle() should be __cpuinit, not __devinit + * __crc_... is intended to be absolute + * efi_set_rtc_mmss() is not __init + * sanitize sections for sparc32 smp + * radio modems sitting on serial port are not for s390 + * uml-i386: fix build breakage with CONFIG_HIGHMEM + * via quirk update + * pci: remove warning messages + * KVM: fix lockup on 32-bit intel hosts with nx disabled in the bios + * procfs: Fix listing of /proc/NOT_A_TGID/task + * sysrq: showBlockedTasks is sysrq-W + * via82cxxx: fix typo ("cx7000" should be corrected to "cx700") + * Remove avr32@atmel.com from MAINTAINERS + * [SPARC32]: Fix over-optimization by GCC near ip_fast_csum. + * [NET_SCHED]: act_ipt: fix regression in ipt action + * [BNX2]: PHY workaround for 5709 A0. + * e100: fix napi ifdefs removing needed code + * MAINTAINERS: ufs entry + * ahci/pata_jmicron: fix JMicron quirk + * pata_atiixp: propogate cable detection hack from drivers/ide to the new + driver + * pata_via: Correct missing comments + * libata: Fix ata_busy_wait() kernel docs + * libata: Initialize nbytes for internal sg commands + * [SCSI] sd: udev accessing an uninitialized scsi_disk field results in a + crash + * [NETFILTER]: ctnetlink: fix compile failure with NF_CONNTRACK_MARK=n + * [NETFILTER]: nf_conntrack_h323: fix compile error with CONFIG_IPV6=m, + CONFIG_NF_CONNTRACK_H323=y + * [PS3] SPE logo, sys-manager cleanups. + * aio: fix buggy put_ioctx call in aio_complete - v2 + * kexec: Avoid migration of already disabled irqs (ia64) + * net/smc911x: match up spin lock/unlock + * alpha: fix epoll syscall enumerations + * revert blockdev direct io back to 2.6.19 version + * Altix: more ACPI PRT support + * x86-64: define dma noncoherent API functions + * fix rtl8150 + * EFI x86: pass firmware call parameters on the stack + * Linux 2.6.20 + * [GFS2] don't try to lockfs after shutdown + * [DLM] fix resend rcom lock + * [DLM] fix old rcom messages + * [DLM] add version check + * [DLM] fix send_args() lvb copying + * [DLM] fix receive_request() lvb copying + * [DLM] fix lost flags in stub replies + * [DLM] fs/dlm/lowcomms-tcp.c: remove 2 functions + * [GFS2] Fix DIO deadlock + * [GFS2] Fail over to readpage for stuffed files + * [GFS2] Fix change nlink deadlock + * [DLM] Fix schedule() calls + * [DLM] Fix spin lock already unlocked bug + * [GFS2] Fix ordering of page disposal vs. glock_dq + * [GFS2] BZ 217008 fsfuzzer fix. + * [GFS2] Fix gfs2_rename deadlock + * [DLM] change some log_error to log_debug + * [DLM] rename dlm_config_info fields + * [DLM] add config entry to enable log_debug + * [DLM] expose dlm_config_info fields in configfs + * [GFS2] gfs2 knows of directories which it chooses not to display + * [GFS2] make gfs2_change_nlink_i() static + * [DLM] Use workqueues for dlm lowcomms + * [DLM] fix user unlocking + * [DLM] fix master recovery + * [GFS2] Add writepages for "data=writeback" mounts + * [GFS2] Clean up/speed up readdir + * [GFS2] Remove max_atomic_write tunable + * [GFS2] Shrink gfs2_inode memory by half + * [GFS2] Remove the "greedy" function from glock.[ch] + * [GFS2] Remove unused go_callback operation + * [GFS2] Remove local exclusive glock mode + * [DLM] lowcomms tidy + * [GFS2] Tidy up glops calls + * [DLM] fix lowcomms receiving + * [GFS2] Remove queue_empty() function + * [GFS2] Compile fix for glock.c + * [GFS2] use CURRENT_TIME_SEC instead of get_seconds in gfs2 + * [GFS2] Fix typo in glock.c + * [DLM] Make sock_sem into a mutex + * [DLM] saved dlm message can be dropped + * [DLM] can miss clearing resend flag + * [GFS2] Fix recursive locking attempt with NFS + * [GFS2] Fix list corruption in lops.c + * [GFS2] increase default lock limit + * [GFS2] make lock_dlm drop_count tunable in sysfs + * [GFS2/DLM] use sysfs + * [GFS2/DLM] fix GFS2 circular dependency + * [GFS2] more CURRENT_TIME_SEC + * [GFS2] Put back semaphore to avoid umount problem + * [GFS2] Fix unlink deadlocks + * [DLM/GFS2] indent help text + * [DLM] zero new user lvbs + * [DLM] fix softlockup in dlm_recv + * [GFS2] nfsd readdirplus assertion failure + * libata: ACPI and _GTF support + * libata: ACPI _SDD support + * libata: change order of _SDD/_GTF execution (resend #3) + * libata: wrong sizeof for BUFFER + + -- Ben Collins Tue, 30 Jan 2007 10:42:16 -0500 + +linux-source-2.6.20 (2.6.20-6.8) feisty; urgency=low + + [Ben Collins] + + * zd1211rw: Add WL-117 ZyDAS device (also to unusual_devs) + - GIT-SHA f4e590f04c115142f97ae121d1907a4c782f8fe0 + - Bug #78311 + * ubuntu/gfs1: Fixups for build warnings + - GIT-SHA e25792fce5c6d02004e51171387daabf811ae5ae + * ubuntu/mol: Fixes to build again. Fabio owes me a beer. + - GIT-SHA f57afa67e6410d9c3a21d3bf64fb4274c8d83bd2 + * acpi/osl: Dedicated work queue for notify() execution + - GIT-SHA 2365e9585cdc207280bbda4017921aa8b6e5224a + - Bug #75398 + * ubuntu/gfs1: Fix compile failure. + - GIT-SHA aed1705a979b1a4b228598980af5b6095cdb6cb5 + * debian/config: Disable via_pata and re-enable via-ide driver. + - GIT-SHA ec624a5acacae28761f73aa70f61d441fa9931c4 + - Bug #75492 + * fs/exec.c: Implement new style of apport interaction. + - GIT-SHA 1c3aaaa6866c3129e854887cee5180d0881742e1 + * debian/firmware: Update zd1211b_uphr file. + - GIT-SHA d17e13bfd559680e92ddc42b10d0bc0c1f81fd8c + + [Daniel T. Chen] + + * sound/pci/hda/: Add Conexant HDA codec support (hda_patch.h) + - GIT-SHA d3cba8f9d6053991b4979cbef059f9b9c3a49ace + * sound/pci/hda/: Add Conexant HDA codec support (Makefile) + - GIT-SHA c91da21e199515d9ac8daf99a4ffb9771ee249bc + * sound/pci/hda/: Add Conexant HDA codec support (patch_conexant.c) + - GIT-SHA b13229d7257c689bf6f9595b29aa812e918e3439 + + [Upstream Kernel Changes] + + * [JFFS2] kill warning RE debug-only variables + * [MTD NAND] Initial import of CAFÉ NAND driver. + * [MTD] SSFDC must depend on BLOCK + * [MTD NAND] OLPC CAFÉ driver update + * [MTD] MAPS: Add parameter to amd76xrom to override rom window size + * [MTD] CHIPS: Support for SST 49LF040B flash chip + * [MTD] MAPS: Support for BIOS flash chips on Intel ESB2 southbridge + * [JFFS2] Use rb_first() and rb_last() cleanup + * [MTD] JEDEC probe: fix comment typo (devic) + * [MTD] MAPS: esb2rom: use hotplug safe interfaces + * [JFFS2] Fix jffs2_follow_link() typo + * [MTD] NAND: AT91 NAND driver + * [MTD] mtdchar: Fix MEMGETOOBSEL and ECCGETLAYOUT ioctls + * [MTD] MAPS: Remove ITE 8172G and Globespan IVR MTD support + * [MTD] NAND: nandsim page-wise allocation (1/2) + * [MTD] NAND: nandsim page-wise allocation (2/2) + * [MTD] NAND: nandsim coding style fix + * [MTD] core: trivial comments fix + * [MTD] NOR: leave Intel chips in read-array mode on suspend + * [MTD] NAND: nandsim: support subpage write + * [MTD] NAND: Combined oob buffer so it's contiguous with data + * [MTD] NAND: Correct setting of chip->oob_poi OOB buffer + * [MTD] NAND: Add hardware ECC correction support to CAFÉ NAND driver + * [MTD] NAND: CAFÉ NAND driver cleanup, fix ECC on reading empty flash + * [MTD] NAND: Disable ECC checking on CAFÉ since it's broken for now + * [MTD] NAND: Fix nand_default_mark_blockbad() when flash-based BBT + disabled + * [MTD] NAND: Café ECC -- remove spurious BUG_ON() in err_pos() + * [MTD] NAND: Reset Café controller before initialising. + * [MTD] CAFÉ NAND: Add 'slowtiming' parameter, default usedma and + checkecc on + * [MTD] NAND: Add ECC debugging for CAFÉ + * [MTD] NAND: Remove empty block ECC workaround + * [MTD] NAND: Fix timing calculation in CAFÉ debugging message + * [MTD] NAND: Use register #defines throughout CAFÉ driver, not numbers + * [MTD] NAND: Add register debugging spew option to CAFÉ driver + * [MTD] NAND: Fix ECC settings in CAFÉ controller driver. + * MTD: OneNAND: interrupt based wait support + * [MTD] OneNAND: lock support + * [MTD] OneNAND: Single bit error detection + * [MTD] [NAND] rtc_from4.c: use lib/bitrev.c + * [MTD] make drivers/mtd/cmdlinepart.c:mtdpart_setup() static + * [MTD] [NAND] Fix endianess bug in ndfc.c + * [MTD] [MAPS] Support for BIOS flash chips on the nvidia ck804 + southbridge + * [MTD] Allow variable block sizes in mtd_blkdevs + * [MTD] [NAND] remove len/ooblen confusion. + * [MTD] Fix printk format warning in physmap. (resources again) + * [MTD] replace kmalloc+memset with kzalloc + * [MTD] [NAND] Update CAFÉ driver interrupt handler prototype + * [MTD] [NAND] fix ifdef option in nand_ecc.c + * [MTD] Tidy bitrev usage in rtc_from4.c + * [MTD] increase MAX_MTD_DEVICES + * [MTD] fix map probe name for cstm_mips_ixx + * [MTD] add MTD_BLKDEVS Kconfig option + * [MTD] NAND: add subpage write support + * [MTD] add get_mtd_device_nm() function + * [MTD] add get and put methods + * [MTD] return error code from get_mtd_device() + * [MTD] Use EXPORT_SYMBOL_GPL() for exported symbols. + * [MTD] Remove trailing whitespace + * [MTD] bugfix: DataFlash is not bit writable + * [MTD] [NAND] Compile fix in rfc_from4.c + * [MTD] redboot partition combined fis / config problem + * [MTD] NAND: use SmartMedia ECC byte order for ndfc + * [MTD] nandsim: bugfix in page addressing + * [MTD] NAND: Support for 16-bit bus-width on AT91. + * [MTD] Support combined RedBoot FIS directory and configuration area + * [MTD] of_device-based physmap driver + * [MTD] ESB2ROM uses PCI + * [MTD] Fix SSFDC build for variable blocksize. + * [JFFS2] replace kmalloc+memset with kzalloc + * [MTD] Fix ssfdc blksize typo + * [MTD] OneNAND: fix oob handling in recent oob patch + * [MTD] Nuke IVR leftovers + * [JFFS2] add cond_resched() when garbage collecting deletion dirent + * [CIFS] Update CIFS version number + * [JFFS2] Fix error-path leak in summary scan + * ieee80211: WLAN_GET_SEQ_SEQ fix (select correct region) + * ipw2100: Fix dropping fragmented small packet problem + * [SCSI] advansys: wrap PCI table inside ifdef CONFIG_PCI + * [SCSI] qla2xxx: make qla2x00_reg_remote_port() static + * [SCSI] Add missing completion to scsi_complete_async_scans() + * [SCSI] scsi_transport_spi: fix sense buffer size error + * [SCSI] seagate: remove BROKEN tag + * [SCSI] qla2xxx: Don't log trace-control async-events. + * [SCSI] qla2xxx: Correct endianess issue while interrogating MS status. + * [SCSI] qla2xxx: Use proper prep_ms_iocb() function during GFPN_ID. + * [SCSI] qla2xxx: Detect GPSC capabilities within a fabric. + * [SCSI] qla2xxx: Correct IOCB queueing mechanism for ISP54XX HBAs. + * [SCSI] qla2xxx: Correct reset handling logic. + * [SCSI] qla2xxx: Perform a fw-dump when an ISP23xx RISC-paused state is + detected. + * [SCSI] qla2xxx: Use generic isp_ops.fw_dump() function. + * [SCSI] qla2xxx: Update version number to 8.01.07-k4. + * ARM: OMAP: fix MMC workqueue changes + * MMC: at91 mmc linkage updates + * i2c-pnx: Fix interrupt handler, get rid of EARLY config option + * i2c-pnx: Add entry to MAINTAINERS + * i2c: Migration aids for i2c_adapter.dev removal + * ACPI: Altix: ACPI _PRT support + * IB/mthca: Fix off-by-one in FMR handling on memfree + * i2c-mv64xxx: Fix random oops at boot + * i2c/m41t00: Do not forget to write year + * UHCI: make test for ASUS motherboard more specific + * UHCI: support device_may_wakeup + * USB: fix interaction between different interfaces in an "Option" usb + device + * USB: funsoft is borken on sparc + * USB: omap_udc build fixes (sync with linux-omap) + * USB Storage: unusual_devs: add supertop drives + * USB storage: fix ipod ejecting issue + * USB: small update to Documentation/usb/acm.txt + * USB: Fixed bug in endpoint release function. + * sisusb_con warning fixes + * USB: usblp.c - add Kyocera Mita FS 820 to list of "quirky" printers + * USB: asix: Fix AX88772 device PHY selection + * PCI: disable PCI_MULTITHREAD_PROBE + * Driver core: Fix prefix driver links in /sys/module by bus-name + * ACPI: ec: enable printk on cmdline use + * Add AFS_SUPER_MAGIC to magic.h + * Fix implicit declarations in via-pmu + * Fix leds-s3c24xx hardware.h reference + * start_kernel: test if irq's got enabled early, barf, and disable them + again + * kernelparams: detect if and which parameter parsing enabled irq's + * PCI: prevent down_read when pci_devices is empty + * via82cxxx: fix cable detection + * KVM: Fix GFP_KERNEL alloc in atomic section bug + * KVM: Use raw_smp_processor_id() instead of smp_processor_id() where + applicable + * KVM: Recover after an arch module load failure + * KVM: Improve interrupt response + * rtc-at91rm9200 build fix + * Fix BUG at drivers/scsi/scsi_lib.c:1118 caused by "pktsetup dvd + /dev/sr0" + * atiixp: Old drivers/ide layer driver for the ATIIXP hang fix + * adfs: fix filename handling + * swsusp: Do not fail if resume device is not set + * profiling: fix sched profiling typo + * i386: Restore CONFIG_PHYSICAL_START option + * Sanely size hash tables when using large base pages + * i386: fix modpost warning in SMP trampoline code + * i386: fix another modpost warning + * i386: modpost smpboot code warning fix + * ip2 warning fix + * fix memory corruption from misinterpreted bad_inode_ops return values + * fix BUG_ON(!PageSlab) from fallback_alloc + * Update the rtc-rs5c372 driver + * KVM: Prevent stale bits in cr0 and cr4 + * KVM: MMU: Implement simple reverse mapping + * KVM: MMU: Teach the page table walker to track guest page table gfns + * KVM: MMU: Load the pae pdptrs on cr3 change like the processor does + * KVM: MMU: Fold fetch_guest() into init_walker() + * KVM: MU: Special treatment for shadow pae root pages + * KVM: MMU: Use the guest pdptrs instead of mapping cr3 in pae mode + * KVM: MMU: Make the shadow page tables also special-case pae + * KVM: MMU: Make kvm_mmu_alloc_page() return a kvm_mmu_page pointer + * KVM: MMU: Shadow page table caching + * KVM: MMU: Write protect guest pages when a shadow is created for them + * KVM: MMU: Let the walker extract the target page gfn from the pte + * KVM: MMU: Support emulated writes into RAM + * KVM: MMU: Zap shadow page table entries on writes to guest page tables + * KVM: MMU: If emulating an instruction fails, try unprotecting the page + * KVM: MMU: Implement child shadow unlinking + * KVM: MMU: kvm_mmu_put_page() only removes one link to the page + * KVM: MMU: oom handling + * KVM: MMU: Remove invlpg interception + * KVM: MMU: Remove release_pt_page_64() + * KVM: MMU: Handle misaligned accesses to write protected guest page + tables + * KVM: MMU: kvm a little earlier + * KVM: Avoid oom on cr3 switch + * KVM: Add missing 'break' + * KVM: Don't set guest cr3 from vmx_vcpu_setup() + * KVM: MMU: Add missing dirty bit + * KVM: Make loading cr3 more robust + * KVM: Simplify mmu_alloc_roots() + * KVM: Simplify test for interrupt window + * pata_optidma: typo in Kconfig + * hpt37x: Two important bug fixes + * Check for populated zone in __drain_pages + * qconf: fix SIGSEGV on empty menu items + * fix the toshiba_acpi write_lcd return value + * fix OOM killing of swapoff + * fix garbage instead of zeroes in UFS + * shrink_all_memory(): fix lru_pages handling + * connector: some fixes for ia64 unaligned access errors + * [ARM] 4079/1: iop: Update MAINTAINERS + * [ARM] 4070/1: arch/arm/kernel: fix warnings from missing includes + * [ARM] 4082/1: iop3xx: fix iop33x gpio register offset + * [SCSI] scsi_scan: fix report lun problems with CDROM or RBC devices + * [SCSI] iscsi: fix 2.6.19 data digest calculation bug + * [SCSI] iscsi: fix crypto_alloc_hash() error check + * [SCSI] iscsi: newline in printk + * [SCSI] iscsi: simplify IPv6 and IPv4 address printing + * [SCSI] libiscsi: fix senselen calculation + * [SCSI] aacraid: Product List Update + * [SCSI] scsi: lpfc error path fix + * [SCSI] sr: fix error code check in sr_block_ioctl() + * [SCSI] 3ware 8000 serialize reset code + * [SCSI] megaraid_sas: Update module author + * [SCSI] fusion: fibre channel: return DID_ERROR for + MPI_IOCSTATUS_SCSI_IOC_TERMINATED + * [SCSI] fusion: power pc and miscellaneous bug fixs + * [SCSI] fusion: MODULE_VERSION support + * [SCSI] fusion: bump version + * [SCSI] qla1280: set residual correctly + * ixgb: Fix early TSO completion + * ixgb: Maybe stop TX if not enough free descriptors + * [ARM] Fix kernel-mode undefined instruction aborts + * Linux 2.6.20-rc4 + * IB/iser: Return error code when PDUs may not be sent + * qla3xxx: Remove NETIF_F_LLTX from driver features. + * qla3xxx: Add delay to NVRAM register access. + * RDMA/iwcm: iWARP connection timeouts shouldn't be reported as rejects + * RDMA/ucma: Fix struct ucma_event leak when backlog is full + * RDMA/ucma: Don't report events with invalid user context + * IB/mthca: Fix PRM compliance problem in atomic-send completions + * i915: Fix a DRM_ERROR that should be DRM_DEBUG. + * HID: fix mappings for DiNovo Edge Keyboard - Logitech USB BT receiver + * HID: tiny patch to remove a kmalloc cast + * HID: mousepoll parameter makes no sense for generic HID + * [ARM] Fix potential MMCI bug + * [ARM] pass vma for flush_anon_page() + * [ARM] Resolve fuse and direct-IO failures due to missing cache flushes + * [ARM] Provide basic printk_clock() implementation + * [MIPS] Malta: Add missing MTD file. + * [MIPS] csum_partial and copy in parallel + * [MIPS] SMTC build fix + * [MIPS] Fix build errors on SEAD + * [MIPS] pnx8550: Fix write_config_byte() PCI config space accessor + * [MIPS] TX49: Fix use of CDEX build_store_reg() + * [MIPS] PNX8550: Fix system timer support + * [POWERPC] Fix bogus BUG_ON() in in hugetlb_get_unmapped_area() + * [POWERPC] Fix unbalanced uses of of_node_put + * [POWERPC] Avoid calling get_irq_server() with a real, not virtual irq. + * [POWERPC] Fix manual assembly WARN_ON() in enter_rtas(). + * [POWERPC] Update ppc64_defconfig + * [POWERPC] Add legacy iSeries to ppc64_defconfig + * [POWERPC] 52xx: Don't use device_initcall to probe of_platform_bus + * [POWERPC] Fix mpc52xx fdt to use correct device_type for sound devices + * [POWERPC] Don't include powerpc/sysdev/rom.o for arch/ppc builds + * [POWERPC] Fix mpc52xx serial driver to work for arch/ppc again + * [POWERPC] disable PReP and EFIKA during make oldconfig + * [POWERPC] iSeries: fix mf proc initialisation + * [POWERPC] iSeries: fix proc/iSeries initialisation + * [POWERPC] iSeries: fix lpevents initialisation + * [POWERPC] iSeries: fix viopath initialisation + * [POWERPC] iSeries: fix setup initcall + * [POWERPC] Fix corruption in hcall9 + * [POWERPC] Fix bugs in the hypervisor call stats code + * forcedeth: sideband management fix + * s390: qeth driver fixes: VLAN hdr, perf stats + * s390: qeth driver fixes: packet socket + * s390: qeth driver fixes: atomic context fixups + * s390: iucv Kconfig help description changes + * chelsio: error path fix + * pcnet_cs : add new id + * [ALSA] Audio: Add nvidia HD Audio controllers of MCP67 support to + hda_intel.c + * [ALSA] Fix potential NULL pointer dereference in echoaudio midi + * [ALSA] usb-audio: work around wrong frequency in CM6501 descriptors + * [ALSA] hda_intel: ALSA HD Audio patch for Intel ICH9 + * [ALSA] hda-codec - Fix NULL dereference in generic hda code + * [ALSA] _snd_cmipci_uswitch_put doesn't set zero flags + * [ALSA] usb: usbmixer error path fix + * [ALSA] usbaudio - Fix kobject_add() error at reconnection + * [INET]: Fix incorrect "inet_sock->is_icsk" assignment. + * [X25]: Trivial, SOCK_DEBUG's in x25_facilities missing newlines + * [Bluetooth] Add packet size checks for CAPI messages + * [Bluetooth] More checks if DLC is still attached to the TTY + * [Bluetooth] Fix uninitialized return value for RFCOMM sendmsg() + * [Bluetooth] Handle device registration failures + * [Bluetooth] Correct SCO buffer size for another ThinkPad laptop + * [Bluetooth] Correct SCO buffer for Broadcom based HP laptops + * [Bluetooth] Correct SCO buffer for Broadcom based Dell laptops + * NetLabel: correct locking in selinux_netlbl_socket_setsid() + * NetLabel: correct CIPSO tag handling when adding new DOI definitions + * [BNX2]: Don't apply CRC PHY workaround to 5709. + * [BNX2]: Fix 5709 Serdes detection. + * [BNX2]: Fix bug in bnx2_nvram_write(). + * [BNX2]: Update version and reldate. + * [TG3]: Add PHY workaround for 5755M. + * [NETFILTER]: nf_conntrack_netbios_ns: fix uninitialized member in + expectation + * [TCP]: Fix iov_len calculation in tcp_v4_send_ack(). + * [S390] memory detection misses 128k. + * [S390] cio: use barrier() in stsch_reset. + * [S390] Fix cpu hotplug (missing 'online' attribute). + * [S390] Fix vmalloc area size calculation. + * [S390] don't call handle_mm_fault() if in an atomic context. + * [S390] locking problem with __cpcmd. + * [ALSA] version 1.0.14rc1 + * HID: Fix DRIVER_DESC macro + * i2c/pci: fix sis96x smbus quirk once and for all + * IB/ehca: Use proper GFP_ flags for get_zeroed_page() + * IB/mthca: Don't execute QUERY_QP firmware command for QP in RESET state + * [NETFILTER]: nf_conntrack_ipv6: fix crash when handling fragments + * [NETFILTER]: arp_tables: fix userspace compilation + * [NETFILTER]: nf_nat: fix hanging connections when loading the NAT + module + * [NETFILTER]: tcp conntrack: fix IP_CT_TCP_FLAG_CLOSE_INIT value + * [SCTP]: Fix err_hdr assignment in sctp_init_cause. + * [INET]: style updates for the inet_sock->is_icsk assignment fix + * [IPV4] devinet: inetdev_init out label moved after RCU assignment + * [JFFS2] Reschedule in loops + * [JFFS2] use the ref_offset macro + * [MTD] OneNAND: fix onenand_wait bug + * [MTD] OneNAND: add subpage write support + * [MTD] OneNAND: release CPU in cycles + * [MTD] OneNAND: fix onenand_wait bug in read ecc error + * [MTD] OneNAND: Implement read-while-load + * [MTD] OneNAND: return ecc error code only when 2-bit ecc occurs + * [MTD] OneNAND: Handle DDP chip boundary during read-while-load + * MAINTAINERS: maintainer for sata_promise + * fix linux banner format string + * ieee1394: sbp2: fix probing of some DVD-ROM/RWs + * [MIPS] PNX8550: Fix system timer initialization + * [MIPS] Fix N32 SysV IPC routines + * [MIPS] Alchemy: Fix PCI-memory access + * Page allocation hooks for VMI backend + * Paravirt CPU hypercall batching mode + * IOPL handling for paravirt guests + * SMP boot hook for paravirt + * VMI backend for paravirt-ops + * VMI timer patches + * Vmi compile fix + * Vmi native fix + * x86-64: Update defconfig + * i386: Update defconfig + * x86-64: Make noirqdebug_setup function non init to fix modpost warning + * x86-64: Use different constraint for gcc < 4.1 in bitops.h + * i386: cpu hotplug/smpboot misc MODPOST warning fixes + * i386: make apic probe function non-init + * x86-64: modpost add more symbols to whitelist pattern2 + * x86-64: Modpost whitelist reference to more symbols (pattern 3) + * x86-64: pci quirks MODPOST warning fix + * x86-64: - Ignore long SMI interrupts in clock calibration + * x86-64: tighten up printks + * i386: Fix memory hotplug related MODPOST generated warning + * i386: Convert some functions to __init to avoid MODPOST warnings + * x86-64: Fix warnings in ia32_aout.c + * ACPI: rename cstate_entry_s to cstate_entry + * ACPI: delete two spurious ACPI messages + * ACPI: schedule obsolete features for deletion + * ACPI: update MAINTAINERS + * Pull trivial into release branch + * Don't put "linux_banner" in the .init section + * sched: tasks cannot run on cpus onlined after boot + * increment pos before looking for the next cap in __pci_find_next_ht_cap + * Fix sparsemem on Cell + * qconf: (re)fix SIGSEGV on empty menu items + * rtc-sh: correctly report rtc_wkalrm.enabled + * Change cpu_up and co from __devinit to __cpuinit + * Kdump documentation update + * i386: sched_clock using init data tsc_disable fix + * md: pass down BIO_RW_SYNC in raid{1,10} + * KVM: add VM-exit profiling + * NFS: Fix race in nfs_release_page() + * really fix funsoft driver + * Revert bd_mount_mutex back to a semaphore + * intel-rng workarounds + * Fix HWRNG built-in initcalls priority + * fix typo in geode_configre()@cyrix.c + * FD_ZERO build fix + * PCMCIA: fix drivers broken by recent cleanup + * blktrace: only add a bounce trace when we really bounce + * Linux v2.6.20-rc5 + * [JFFS2] debug.h: include for current->pid + * omap: Update MMC response types + * mmc: Correct definition of R6 + * V4L/DVB (5019): Fix the frame->grabstate update in read() entry point. + * V4L/DVB (5020): Fix: disable interrupts while at KM_BOUNCE_READ + * V4L/DVB (5021): Cx88xx: Fix lockup on suspend + * V4L/DVB (5024): Fix quickcam communicator driver for big endian + architectures + * V4L/DVB (5029): Ks0127 status flags + * V4L/DVB (5033): MSI TV@nywhere Plus fixes + * V4L/DVB (5069): Fix bttv and friends on 64bit machines with lots of + memory + * V4L/DVB (5071): Tveeprom: autodetect LG TAPC G701D as tuner type 37 + * V4L/DVB (5023): Fix compilation on ppc32 architecture + * bcm43xx: Fix failure to deliver PCI-E interrupts + * NTFS: 2.1.28 - Fix deadlock reported by Sergey Vlasov due to + ntfs_put_inode(). + * NTFS: Forgot to bump version number in makefile to 2.1.28... + * 8139cp: Don't blindly enable interrupts + * myri10ge: make wc_fifo usage load-time tunable + * myri10ge: check that we can get an irq + * myri10ge: update driver version to 1.2.0 + * Update ucc_geth.c for new workqueue structure + * Fix phy_read/write redefinition errors in ucc_geth_phy.c + * hwmon/w83793: Remove the description of AMDSI and update the voltage + formula + * hwmon: Fix the VRD 11 decoding + * hwmon/w83793: Ignore disabled temperature channels + * hwmon/w83793: Fix the fan input detection + * hwmon/w83793: Hide invalid VID readings + * [MIPS] SMTC: Fix cp0 hazard. + * [MIPS] Delete duplicate call to load_irq_save. + * sis190: failure to set the MAC address from EEPROM + * libata doc: "error : unterminated entity reference exceptions" + * sata_via: add PCI ID 0x5337 + * libata: initialize qc->dma_dir to DMA_NONE + * libata: fix handling of port actions in per-dev action mask + * sata_mv HighPoint 2310 support (88SX7042) + * HID: fix some ARM builds due to HID brokenness - make USB_HID depend on + INPUT + * HID: GEYSER4_ISO needs quirk + * HID: update MAINTAINERS entry for USB-HID + * HID: proper LED-mapping for SpaceNavigator + * HID: compilation fix when DEBUG_DATA is defined + * HID: hid/hid-input.c doesn't need to include linux/usb/input.h + * HID: add missing RX, RZ and RY enum values to hid-debug output + * HID: put usb_interface instead of usb_device into hid->dev to fix + udevinfo breakage + * hid-core.c: Adds GTCO CalComp Interwrite IPanel PIDs to blacklist + * [CIFS] Remove 2 unneeded kzalloc casts + * [CIFS] cifs sprintf fix + * ocfs2: Don't print errors when following symlinks + * ocfs2: Directory c/mtime update fixes + * ocfs2: cleanup ocfs2_iget() errors + * ocfs2: Add backup superblock info to ocfs2_fs.h + * [CIFS] Fix oops when Windows server sent bad domain name null + terminator + * [POWERPC] Remove bogus sanity check in pci -> OF node code + * [POWERPC] Fix cell's mmio nvram to properly parse device tree + * [POWERPC] Fix broken DMA on non-LPAR pSeries + * [POWERPC] Make it blatantly clear; mpc5200 device tree is not yet + stable + * [POWERPC] Fix OF node refcnt underflow in 836x and 832x platform code + * [POWERPC] atomic_dec_if_positive sign extension fix + * usbtouchscreen: make ITM screens report BTN_TOUCH as zero when not + touched + * USB: asix: Detect internal PHY and enable/use accordingly + * USB: rndis_host: fix crash while probing a Nokia S60 mobile + * USB: make usbhid ignore Imation Disc Stakka + * USB: unusual_devs.h for 0x046b:ff40 + * USB: add vendor/device id for Option GT Max 3.6 cards + * USB: disable USB_MULTITHREAD_PROBE + * USB: Fix for typo in ohci-ep93xx.c + * USB: unusual_devs.h entry for nokia 6233 + * PCI: Unhide the SMBus on the Asus P4P800-X + * PCI: rework Documentation/pci.txt + * PCI: fix pci-driver kernel-doc + * [Bluetooth] Missing endian swapping for L2CAP socket list + * [Bluetooth] Restrict well known PSM to privileged users + * IB/srp: Check match_strdup() return + * IB/ehca: Fix improper use of yield() with spinlock held + * IB/ehca: Fix mismatched spin_unlock in irq handler + * vmx: Fix register constraint in launch code + * x86: fix PDA variables to work during boot + * modify 3c589_cs to be SMP safe + * Note that JFFS (v1) is to be deleted, in feature-removal-schedule.txt + * more ftape removal + * PHY: Export phy ethtool helpers + * ehea: Fixed wrong dereferencation + * ehea: Fixing firmware queue config issue + * ehea: Modified initial autoneg state determination + * ehea: New method to determine number of available ports + * ehea: Improved logging of permission issues + * ehea: Added logging off associated errors + * ehea: Fixed possible nullpointer access + * NetXen: Firmware check modifications + * NetXen: Use pci_register_driver() instead of pci_module_init() in + init_module + * [ALSA] Repair snd-usb-usx2y over OHCI + * fix "kvm: add vm exit profiling" + * Revert nmi_known_cpu() check during boot option parsing + * blockdev direct_io: fix signedness bug + * SubmitChecklist update + * paravirt: mark the paravirt_ops export internal + * KVM: make sure there is a vcpu context loaded when destroying the mmu + * KVM: fix race between mmio reads and injected interrupts + * KVM: x86 emulator: fix bit string instructions + * KVM: fix bogus pagefault on writable pages + * rtc-sh: act on rtc_wkalrm.enabled when setting an alarm + * fix blk_direct_IO bio preparation + * tlclk: bug fix + misc fixes + * mbind: restrict nodes to the currently allowed cpuset + * resierfs: avoid tail packing if an inode was ever mmapped + * Kdump documentation update: kexec-tools update + * Kdump documentation update: ia64 portion + * acpi: remove "video device notify" message + * [MIPS] SMTC: Instant IPI replay. + * [MIPS] Vr41xx: Fix after GENERIC_HARDIRQS_NO__DO_IRQ change + * elevator: move clearing of unplug flag earlier + * notifiers: fix blocking_notifier_call_chain() scalability + * funsoft: ktermios fix + * horizon.c: missing __devinit + * s2io bogus memset + * fix prototype of csum_ipv6_magic() (ia64) + * correct sys_shmget allocation check + * s2io bogus memset + * mv643xx_eth: Fix race condition in mv643xx_eth_free_tx_descs + * Clear spurious irq stat information when adding irq handler + * email change for shemminger@osdl.org + * Change Linus' email address too + * V4L/DVB (5123): Buf_qbuf: fix: videobuf_queue->stream corruption and + lockup + * [IPSEC] flow: Fix potential memory leak + * [IPV6] MCAST: Fix joining all-node multicast group on device + initialization. + * [SELINUX]: increment flow cache genid + * [NETFILTER]: ctnetlink: fix leak in ctnetlink_create_conntrack error + path + * [NETFILTER]: fix xt_state compile failure + * [SCTP]: Set correct error cause value for missing parameters + * [SCTP]: Verify some mandatory parameters. + * [SCTP]: Correctly handle unexpected INIT-ACK chunk. + * [SCTP]: Fix SACK sequence during shutdown + * [X.25]: Add missing sock_put in x25_receive_data + * [IrDA]: irda-usb TX path optimization (was Re: IrDA spams logfiles - + since 2.6.19) + * [IrDA]: Removed incorrect IRDA_ASSERT() + * [IPSEC]: Policy list disorder + * [TCP]: skb is unexpectedly freed. + * [IRDA] vlsi_ir.{h,c}: remove kernel 2.4 code + * [NETFILTER]: Fix iptables ABI breakage on (at least) CRIS + * [NET]: Process include/linux/if_{addr,link}.h with unifdef + * [TCP]: rare bad TCP checksum with 2.6.19 + * [IPV6]: Fixed the size of the netlink message notified by + inet6_rt_notify(). + * [IP] TUNNEL: Fix to be built with user application. + * [SCTP]: Fix compiler warning. + * ahci: make ULi M5288 ignore interface fatal error bit + * sata_nv: don't rely on NV_INT_DEV indication with ADMA + * ahci: don't enter slumber on power down + * libata: Fixup n_elem initialization + * libata: Initialize qc->pad_len + * [POWERPC] PS3: Fix uniprocessor kernel build + * [POWERPC] ps3_free_io_irq: Fix inverted error check + * [MIPS] There is no __GNUC_MAJOR__ + * [MIPS] Fix APM build + * [MIPS] SMTC: Fix TLB sizing bug for TLB of 64 >= entries + * [MIPS] SMTC: Fix module build by exporting symbol + * [MIPS] vr41xx: need one more nop with mtc0_tlbw_hazard() + * [MIPS] Fix reported amount of freed memory - it's in kB not bytes + * [MIPS] VPE loader: Initialize lists before they're actually being used + ... + * [MIPS] Fix wrong checksum calculation on 64-bit MIPS + * NFS: Fix Oops in rpc_call_sync() + * NFS: Fix races in nfs_revalidate_mapping() + * [IPV4]: Fix the fib trie iterator to work with a single entry routing + tables + * [AF_PACKET]: Fix BPF handling. + * libata cmd64x: whack into a shape that looks like the documentation + * libata hpt3xn: Hopefully sort out the DPLL logic versus the vendor code + * libata: set_mode, Fix the FIXME + * Linux 2.6.20-rc6 + * [TCP]: Fix sorting of SACK blocks. + * sata_via: don't diddle with ATA_NIEN in ->freeze + * ahci: improve and limit spurious interrupt messages, take#3 + * libata: implement ATA_FLAG_IGN_SIMPLEX and use it in sata_uli + * libata-sff: Don't call bmdma_stop on non DMA capable controllers + * [BNX2]: Fix 2nd port's MAC address. + * [DECNET]: Handle a failure in neigh_parms_alloc (take 2) + * x86_64: fix put_user for 64-bit constant + * [AF_PACKET]: Check device down state before hard header callbacks. + * [TCP]: Restore SKB socket owner setting in tcp_transmit_skb(). + * [NETFILTER]: nf_nat: fix ICMP translation with statically linked + conntrack + * [NETFILTER]: nf_nat_pptp: fix expectation removal + * [NETFILTER]: nf_conntrack_pptp: fix NAT setup of expected GRE + connections + * [AVR32] Export clear_page symbol + * [AVR32] Update ATSTK1000 defconfig: Enable macb by default + * Resurrect 'try_to_free_buffers()' VM hackery + * Write back inode data pages even when the inode itself is locked + * KVM: SVM: Fix SVM idt confusion + * KVM: Emulate IA32_MISC_ENABLE msr + * KVM: MMU: Perform access checks in walk_addr() + * KVM: MMU: Report nx faults to the guest + * KVM: SVM: Propagate cpu shutdown events to userspace + * S3C24XX: fix passing spi chipselect to select routine + * spi: fix error setting the spi mode in pxa2xx_spi.c + * Fix CONFIG_COMPAT_VDSO + * Fix gate_vma.vm_flags + * Add VM_ALWAYSDUMP + * i386 vDSO: use VM_ALWAYSDUMP + * x86_64 ia32 vDSO: use VM_ALWAYSDUMP + * powerpc vDSO: use VM_ALWAYSDUMP + * x86_64 ia32 vDSO: define arch_vma_name + * Fix NULL ->nsproxy dereference in /proc/*/mounts + * SPI: alternative fix for spi_busnum_to_master + * ACPI: fix cpufreq regression + * Gigaset ISDN driver error handling fixes + * knfsd: update email address and status for NFSD in MAINTAINERS + * knfsd: fix setting of ACL server versions + * knfsd: fix an NFSD bug with full sized, non-page-aligned reads + * knfsd: replace some warning ins nfsfh.h with BUG_ON or WARN_ON + * knfsd: Don't mess with the 'mode' when storing a exclusive-create + cookie + * md: update email address and status for MD in MAINTAINERS + * md: make 'repair' actually work for raid1 + * md: make sure the events count in an md array never returns to zero + * md: avoid reading past the end of a bitmap file + * 9p: fix bogus return code checks during initialization + * 9p: fix rename return code + * 9p: update documentation regarding server applications + * 9p: fix segfault caused by race condition in meta-data operations + * 9p: null terminate error strings for debug print + * dm-multipath: fix stall on noflush suspend/resume + * remove __devinit markings from rtc_sysfs_add_device() + * fix various kernel-doc in header files + * knfsd: Fix type mismatch with filldir_t used by nfsd + * md: fix potential memalloc deadlock in md + * MM: Remove invalidate_inode_pages2_range() debug + * Fix UML on non-standard VM split hosts + * md: remove unnecessary printk when raid5 gets an unaligned read. + * core-dumping unreadable binaries via PT_INTERP + * netdev: add a MAINTAINERS entry for via-velocity and update my address + * Fix race in efi variable delete code + * ahci: fix endianness in spurious interrupt message + * sata_via: style clean up, no indirect method call in LLD + * ahci: use 0x80 as wait stat value instead of 0xff + * Fix Maple PATA IRQ assignment. + * ocfs2: fix thinko in ocfs2_backup_super_blkno() + * Boot loader ID for Gujin + * [SPARC64]: Set g4/g5 properly in sun4v dtlb-prot handling. + * [SELINUX]: Fix 2.6.20-rc6 build when no xfrm + * [IPV4]: Fix single-entry /proc/net/fib_trie output. + * [POWERPC] PS3: add not complete comment to kconfig + * [POWERPC] Fix sys_pciconfig_iobase bus matching + + -- Ben Collins Sat, 06 Jan 2007 13:41:11 -0500 + +linux-source-2.6.20 (2.6.20-5.7) feisty; urgency=low + + [Upstream Kernel Changes] + + * [PARTITION]: Add whole_disk attribute. + * [AGPGART] K8M890 support for amd-k8. + * [SPARC64]: Add obppath sysfs attribute for SBUS and PCI devices. + * [AGPGART] Remove unnecessary flushes when inserting and removing pages. + * [CPUFREQ] select consistently + * [CPUFREQ] Bug fix for acpi-cpufreq and cpufreq_stats oops on frequency + change notification + * [CPUFREQ] speedstep-centrino: missing space and bracket + * [AGPGART] fix detection of aperture size versus GTT size on G965 + * [AGPGART] Fix PCI-posting flush typo. + * [CPUFREQ] longhaul: Fix up unreachable code. + * [CPUFREQ] Longhaul - Fix up powersaver assumptions. + * backlight: fix backlight_device_register compile failures + * ACPI: EC: move verbose printk to debug build only + * ACPI: increase ACPI_MAX_REFERENCE_COUNT for larger systems + * ACPI: fix section mis-match build warning + * ACPI: asus_acpi: new MAINTAINER + * [AGPGART] drivers/char/agp/sgi-agp.c: check kmalloc() return value + * [CPUFREQ] Longhaul - Always guess FSB + * [CPUFREQ] Uninitialized use of cmd.val in + arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c:acpi_cpufreq_target() + * [CPUFREQ] longhaul: Kill off warnings introduced by recent changes. + * cdrom: set default timeout to 7 seconds + * ide-cd maintainer + * [SOUND] Sparc CS4231: Fix IRQ return value and initialization. + * [NET]: ifb double-counts packets + * [PKTGEN]: Convert to kthread API. + * [NET] drivers/net/loopback.c: convert to module_init() + * [NETFILTER] xt_hashlimit.c: fix typo + * [XFRM_USER]: avoid pointless void ** casts + * [AF_NETLINK]: module_put cleanup + * [X25]: proper prototype for x25_init_timers() + * [SOUND] Sparc CS4231: Use 64 for period_bytes_min + * [SUNGEM]: PHY updates & pause fixes (#2) + * Fix some ARM builds due to HID brokenness + * HID: fix help texts in Kconfig + * [NETFILTER]: compat offsets size change + * [NETFILTER]: Fix routing of REJECT target generated packets in output + chain + * [NETFILTER]: New connection tracking is not EXPERIMENTAL anymore + * [NETFILTER]: nf_nat: fix MASQUERADE crash on device down + * [NETFILTER]: ebtables: don't compute gap before checking struct type + * [TCP]: Use old definition of before + + -- Ben Collins Fri, 05 Jan 2007 01:27:26 -0500 + +linux-source-2.6.20 (2.6.20-4.6) feisty; urgency=low + + [Ben Collins] + + * acpi/ec: Quiet "evaluating _XX" messages + - GIT-SHA 312a9aed094affc358a8e22b17b209059e68252e + - Bug #77867 + + -- Ben Collins Wed, 03 Jan 2007 16:58:54 -0500 + +linux-source-2.6.20 (2.6.20-4.5) feisty; urgency=low + + [Ben Collins] + + * toshiba_acpi: Add toshset patch + - GIT-SHA 1ffa3a0ddcf076a379a1674725c80fd752e00ed9 + - Bug #73011 + * pm: Config option to disable handling of console during suspend/resume. + - GIT-SHA e301ddf3803af8e6e87048216c63f2adb3e98f10 + - Bug #56591 + * speakup: Update to latest CVS + - GIT-SHA 5f635ed9ba1cbaa1f6f3a0b1b9cba94be3129d2a + * speakup: Include jiffies.h (removed during update) + - GIT-SHA 1bbf403f5d5bb47b707fa4664c815ec42c155279 + + [Upstream Kernel Changes] + + * zd1211rw: Call ieee80211_rx in tasklet + * ieee80211softmac: Fix errors related to the work_struct changes + * ieee80211softmac: Fix mutex_lock at exit of ieee80211_softmac_get_genie + * e1000: The user-supplied itr setting needs the lower 2 bits masked off + * e1000: dynamic itr: take TSO and jumbo into account + * e1000: For sanity, reformat e1000_set_mac_type(), struct + e1000_hw[_stats] + * e1000: omit stats for broken counter in 82543 + * e1000: consolidate managability enabling/disabling + * e1000: Fix Wake-on-Lan with forced gigabit speed + * e1000: disable TSO on the 82544 with slab debugging + * e1000: workaround for the ESB2 NIC RX unit issue + * e1000: fix to set the new max frame size before resetting the adapter + * e1000: fix ethtool reported bus type for older adapters + * e1000: narrow down the scope of the tipg timer tweak + * e1000: Fix PBA allocation calculations + * e1000: Make the copybreak value a module parameter + * e1000: 3 new driver stats for managability testing + * e1000: No-delay link detection at interface up + * netxen: remove private ioctl + * netpoll: drivers must not enable IRQ unconditionally in their NAPI + handler + * r8169: use the broken_parity_status field in pci_dev + * myri10ge: match number of save_state and restore + * myri10ge: move request_irq to myri10ge_open + * myri10ge: make msi configurable at runtime through sysfs + * myri10ge: no need to save MSI and PCIe state in the driver + * myri10ge: handle failures in suspend and resume + * e1000: Do not truncate TSO TCP header with 82544 workaround + * via-velocity uses INET interfaces + * sky2: dual port NAPI problem + * sky2: power management/MSI workaround + * sky2: phy power down needs PCI config write enabled + * ep93xx: some minor cleanups to the ep93xx eth driver + * PHY probe not working properly for ibm_emac (PPC4xx) + * NetXen: Adding new device ids. + * NetXen: driver reload fix for newer firmware. + * NetXen: Using correct CHECKSUM flag. + * NetXen: Multiple adapter fix. + * NetXen: Link status message correction for quad port cards. + * NetXen: work queue fixes. + * NetXen: Fix for PPC machines. + * NetXen: Reducing ring sizes for IOMMU issue. + * forcedeth: modified comment header + * r8169: extraneous Cmd{Tx/Rx}Enb write + * V4L/DVB (4955): Fix autosearch index + * V4L/DVB (4956): [NOVA-T-USB2] Put remote-debugging in the right place + * V4L/DVB (4958): Fix namespace conflict between w9968cf.c on MIPS + * V4L/DVB (4959): Usbvision: possible cleanups + * V4L/DVB (4960): Removal of unused code from usbvision-i2c.c + * V4L/DVB (4964): VIDEO_PALETTE_YUYV and VIDEO_PALETTE_YUV422 are the + same palette + * V4L/DVB (4967): Add missing tuner module option pal=60 for PAL-60 + support. + * V4L/DVB (4968): Add PAL-60 support for cx2584x. + * V4L/DVB (4970): Usbvision memory fixes + * V4L/DVB (4972): Dvb-core: fix bug in CRC-32 checking on 64-bit systems + * V4L/DVB (4973): Dvb-core: fix printk type warning + * V4L/DVB (4979): Fixes compilation when CONFIG_V4L1_COMPAT is not + selected + * V4L/DVB (4980): Fixes bug 7267: PAL/60 is not working + * V4L/DVB (4982): Fix broken audio mode handling for line-in in msp3400. + * V4L/DVB (4983): Force temporal filter to 0 when scaling to prevent + ghosting. + * V4L/DVB (4984): LOG_STATUS should show the real temporal filter value. + * V4L/DVB (4988): Cx2341x audio_properties is an u16, not u8 + * V4L/DVB (4990): Cpia2/cpia2_usb.c: fix error-path leak + * V4L/DVB (4991): Cafe_ccic.c: fix NULL dereference + * V4L/DVB (4992): Fix typo in saa7134-dvb.c + * V4L/DVB (4994): Vivi: fix use after free in list_for_each() + * V4L/DVB (4995): Vivi: fix kthread_run() error check + * V4L/DVB (4996): Msp3400: fix kthread_run error check + * V4L/DVB (4997): Bttv: delete duplicated ioremap() + * V4L/DVB (5014): Allyesconfig build fixes on some non x86 arch + * V4L/DVB (5001): Add two required headers on kernel 2.6.20-rc1 + * V4L/DVB (5012): Usbvision fix: It was using "&&" instead "&" + * V4L/DVB (5010): Cx88: Fix leadtek_eeprom tagging + * [S390] Change max. buffer size for monwriter device. + * [S390] cio: fix stsch_reset. + * ocfs2: don't print error in ocfs2_permission() + * ocfs2: Allow direct I/O read past end of file + * ocfs2: ignore NULL vfsmnt in ocfs2_should_update_atime() + * ocfs2: always unmap in ocfs2_data_convert_worker() + * ocfs2: export heartbeat thread pid via configfs + * VM: Fix nasty and subtle race in shared mmap'ed page writeback + * ieee1394: sbp2: pass REQUEST_SENSE through to the target + * ieee1394: sbp2: fix bogus dma mapping + * [ARM] 4063/1: ep93xx: fix IRQ_EP93XX_GPIO?MUX numbering + * [ARM] 4064/1: make pxa_get_cycles() static + * [ARM] 4065/1: S3C24XX: dma printk fixes + * [ARM] 4066/1: correct a comment about PXA's sched_clock range + * [ARM] 4071/1: S3C24XX: Documentation update + * [ARM] 4073/1: Prevent s3c24xx drivers from including + asm/arch/hardware.h and asm/arch/irqs.h + * [ARM] 4074/1: Flat loader stack alignment + * [ARM] 4077/1: iop13xx: fix __io() macro + * [ARM] 4078/1: Fix ARM copypage cache coherency problems + * Fix IPMI watchdog set_param_str() using kstrdup + * Fix lock inversion aio_kick_handler() + * powerpc iseries link error in allmodconfig + * change WARN_ON back to "BUG: at ..." + * rcu: rcutorture suspend fix + * fix oom killer kills current every time if there is memory-less-node + take2 + * Add .gitignore file for relocs in arch/i386 + * pci/probe: fix macro that confuses kernel-doc + * Char: mxser, fix oops when removing opened + * IB/mthca: Fix FMR breakage caused by kmemdup() conversion + * MAINTAINERS: email addr change for Eric Moore + * make fn_keys work again on power/macbooks + * Char: isicom, eliminate spinlock recursion + * Update to Documentation/tty.txt on line disciplines + * fix mrproper incompleteness + * sched: fix cond_resched_softirq() offset + * Fix compilation of via-pmu-backlight + * module: fix mod_sysfs_setup() return value + * ramfs breaks without CONFIG_BLOCK + * MM: SLOB is broken by recent cleanup of slab.h + * cciss: build with PROC_FS=n + * page_mkclean_one(): fix call to set_pte_at() + * SPI: define null tx_buf to mean "shift out zeroes" + * m25p80 build fixes (with MTD debug) + * SPI/MTD: mtd_dataflash oops prevention + * ARM: OMAP: fix GPMC compiler errors + * ARM: OMAP: fix missing header on apollon board + * Buglet in vmscan.c + * cpuset procfs warning fix + * respect srctree/objtree in Documentation/DocBook/Makefile + * spi_s3c24xx_gpio: use right header + * lockdep: printk warning fix + * PIIX: remove check for broken MW DMA mode 0 + * PIIX/SLC90E66: PIO mode fallback fix + * Update CREDITS and MAINTAINERS entries for Lennert Buytenhek + * KVM: Use boot_cpu_data instead of current_cpu_data + * KVM: Simplify is_long_mode() + * KVM: Initialize kvm_arch_ops on unload + * KVM: Implement a few system configuration msrs + * KVM: Move common msr handling to arch independent code + * KVM: More msr misery + * KVM: Rename some msrs + * KVM: Fix oops on oom + * kvm: fix GFP_KERNEL allocation in atomic section in + kvm_dev_ioctl_create_vcpu() + * sparc32: add offset in pci_map_sg() + * fuse: fix typo + * [SPARC64]: Fix "mem=xxx" handling. + * [SPARC64]: Fix of_iounmap() region release. + * [SPARC64]: Update defconfig. + * [SPARC64]: Handle ISA devices with no 'regs' property. + * [NET]: Add memory barrrier to netif_poll_enable() + * [NET]: Don't export linux/random.h outside __KERNEL__. + * [XFRM]: Algorithm lookup using .compat name + * restore ->pdeath_signal behaviour + * sound: hda: detect ALC883 on MSI K9A Platinum motherboards (MS-7280) + * libata: fix combined mode + * cfq-iosched: merging problem + * selinux: fix selinux_netlbl_inode_permission() locking + * Fix insta-reboot with "i386: Relocatable kernel support" + * [ARM] Fix VFP initialisation issue for SMP systems + * [ARM] 4080/1: Fix for the SSCR0_SlotsPerFrm macro + * [ARM] 4081/1: Add definition for TI Sync Serial Protocol + * x86_64: Fix dump_trace() + + -- Ben Collins Mon, 25 Dec 2006 19:30:22 -0500 + +linux-source-2.6.20 (2.6.20-3.4) feisty; urgency=low + + * Fix FTBFS due to changes in kernel-wedge. + + [Ben Collins] + + * ubuntu/media/usbvideo: Add USB Video Class driver (iSight) + - GIT-SHA a948310ffdeb5d8dddff193aa31da63039d985d5 + * ubuntu/media: Add usbvideo to build. + - GIT-SHA 545ee922c0c492929eaa0a4c675c0f6d3dbc4cfd + * prism2: Fix incorrect conversion of work queue. + - GIT-SHA 44e61605e7d160397082028780da4f749c13db00 + - Bug #76220 + * uvcvideo: Fix usb urb callback prototypes. + - GIT-SHA 4aea9254ec30b7422ca59a617f6a59d951e0769e + * debian/config: Disable speedstep_centrino in favor of acpi_cpufreq. + - GIT-SHA 2a0e7ef37fb8db5953f4c467219552835d7dddd8 + * Fix compile breakage. Patch taken from lkml (will be reverted). + - GIT-SHA 93a714f337c0636b72d605400f41347c4465a344 + * Add ivtv firmware. + - GIT-SHA 9ed1a41d11cffb205f425cc71e7f6c605b284d25 + * sata_svw: Check for error from ata_device_ata() + - GIT-SHA 4b0e1e03cb077b5659d656d8b869c11e2ae47f94 + - Bug #76391 + * pmu-backlight: Fixup for change in backlight_register. + - GIT-SHA c4f21571091b0b7eb798b1e76956b53475bcb5d8 + + [Upstream Kernel Changes] + + * ACPI: Remove unnecessary from/to-void* and to-void casts in + drivers/acpi + * ACPI: avoid gcc warnings in ACPI mutex debug code + * ACPI: uninline ACPI global locking functions + * ACPI: acpi-cpufreq: remove unused data when !CONFIG_SMP + * ACPI: ibm_acpi: Add support for the generic backlight device + * ACPI: asus_acpi: Add support for the generic backlight device + * ACPI: toshiba_acpi: Add support for the generic backlight device + * ACPI: make ec_transaction not extern + * ACPI: optimize pci_rootbridge search + * ACPI: dock: use mutex instead of spinlock + * ACPI: S4: Use "platform" rather than "shutdown" mode by default + * ACPI: Get rid of 'unused variable' warning in + acpi_ev_global_lock_handler() + * ACPI: update comment + * ACPI: button: register with input layer + * ACPI: ibm-acpi: new ibm-acpi maintainer + * ACPI: ibm-acpi: do not use / in driver names + * ACPI: ibm-acpi: trivial Lindent cleanups + * ACPI: ibm-acpi: Use a enum to select the thermal sensor reading + strategy + * ACPI: ibm-acpi: Implement direct-ec-access thermal reading modes for up + to 16 sensors + * ACPI: ibm-acpi: document thermal sensor locations for the A31 + * ACPI: ibm-acpi: prepare to cleanup fan_read and fan_write + * ACPI: ibm-acpi: clean up fan_read + * ACPI: ibm-acpi: break fan_read into separate functions + * ACPI: ibm-acpi: cleanup fan_write + * ACPI: ibm-acpi: document fan control + * ACPI: ibm-acpi: extend fan status functions + * ACPI: ibm-acpi: fix and extend fan enable + * ACPI: ibm-acpi: fix and extend fan control functions + * ACPI: ibm-acpi: store embedded controller firmware version for matching + * ACPI: ibm-acpi: workaround for EC 0x2f initialization bug + * ACPI: ibm-acpi: implement fan watchdog command + * ACPI: ibm-acpi: add support for the ultrabay on the T60,X60 + * ACPI: ibm-acpi: make non-generic bay support optional + * ACPI: ibm-acpi: backlight device cleanup + * ACPI: ibm-acpi: style fixes and cruft removal + * ACPI: ibm-acpi: update version and copyright + * ACPI: dock: Make the dock station driver a platform device driver. + * ACPI: dock: fix build warning + * ACPI: dock: Add a docked sysfs file to the dock driver. + * ACPI: dock: Fix symbol conflict between acpiphp and dock + * ACPI: ec: Allow for write semantics in any command. + * ACPI: ec: Enable EC GPE at beginning of transaction + * ACPI: ec: Increase timeout from 50 to 500 ms to handle old slow + machines. + * ACPI: ec: Read status register from check_status() function + * ACPI: ec: Remove expect_event and all races around it. + * ACPI: ec: Remove calls to clear_gpe() and enable_gpe(), as these are + handled at + * ACPI: ec: Query only single query at a time. + * ACPI: ec: Change semaphore to mutex. + * ACPI: ec: Rename gpe_bit to gpe + * ACPI: ec: Drop udelay() from poll mode. Loop by reading status field + instead. + * ACPI: ec: Acquire Global Lock under EC mutex. + * ACPI: ec: Style changes. + * ACPI: ec: Change #define to enums there possible. + * ACPI: ec: Lindent once again + * drm: fix return value check + * DRM: handle pci_enable_device failure + * i915_vblank_tasklet: Try harder to avoid tearing. + * [CPUFREQ] fixes typo in cpufreq.c + * [CPUFREQ] Trivial cleanup for acpi read/write port in acpi-cpufreq.c + * Generic HID layer - build: USB_HID should select HID + * input/hid: Supporting more keys from the HUT Consumer Page + * Generic HID layer - update MAINTAINERS + * ACPI: dock: add uevent to indicate change in device status + * drm: Unify radeon offset checking. + * [DLM] fix compile warning + * [GFS2] Fix Kconfig + * IB: Fix ib_dma_alloc_coherent() wrapper + * IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G + * Fix "delayed_work_pending()" macro expansion + * IB/mthca: Add HCA profile module parameters + * IB/mthca: Use DEFINE_MUTEX() instead of mutex_init() + * Pull ec into test branch + * Pull dock into test branch + * Pull button into test branch + * Pull platform-drivers into test branch + * ACPI: ibm_acpi: respond to workqueue update + * Pull trivial into test branch + * ACPI: fix git automerge failure + * Pull bugfix into test branch + * Pull style into test branch + * ata_piix: IDE mode SATA patch for Intel ICH9 + * ata_piix: use piix_host_stop() in ich_pata_ops + * [libata] use kmap_atomic(KM_IRQ0) in SCSI simulator + * [libata] sata_svw: Disable ATAPI DMA on current boards (errata + workaround) + * libata: don't initialize sg in ata_exec_internal() if DMA_NONE (take + #2) + * ahci: do not mangle saved HOST_CAP while resetting controller + * ata: fix platform_device_register_simple() error check + * initializer entry defined twice in pata_rz1000 + * Fix help text for CONFIG_ATA_PIIX + * pata_via: Cable detect error + * Fix incorrect user space access locking in mincore() + * Make workqueue bit operations work on "atomic_long_t" + * Fix up mm/mincore.c error value cases + * m68k trivial build fixes + * sys_mincore: s/max/min/ + * [ARM] Add more syscalls + * [SPARC64]: Kill no-remapping-needed code in head.S + * [SPARC64]: Minor irq handling cleanups. + * [DocBook]: Fix two typos in generic IRQ docs. + * [SUNKBD]: Fix sunkbd_enable(sunkbd, 0); obvious. + * [SPARC64]: Mirror x86_64's PERCPU_ENOUGH_ROOM definition. + * [SPARC]: Update defconfig. + * [CPUFREQ] set policy->curfreq on initialization + * [ARM] Fix BUG()s in ioremap() code + * [ARM] 4034/1: pxafb: Fix compile errors + * [ARM] 4035/1: fix collie compilation + * [ARM] 4038/1: S3C24XX: Fix copyrights in include/asm-arm/arch-s3c2410 + (core) + * [ARM] 4039/1: S3C24XX: Fix copyrights in include/asm-arm/arch-s3c2410 + (mach) + * [ARM] 4040/1: S3C24XX: Fix copyrights in arch/arm/mach-s3c2410 + * [ARM] 4041/1: S3C24XX: Fix sparse errors from VA addresses + * [ARM] 4042/1: H1940: Fix sparse errors from VA addresses + * [ARM] 4043/1: S3C24XX: fix sparse warnings in + arch/arm/mach-s3c2410/s3c2440-clock.c + * [ARM] 4044/1: S3C24XX: fix sparse warnings in + arch/arm/mach-s3c2410/s3c2442-clock.c + * [ARM] 4045/1: S3C24XX: remove old VA for non-shared areas + * [ARM] 4046/1: S3C24XX: fix sparse errors arch/arm/mach-s3c2410 + * [ARM] 4048/1: S3C24XX: make s3c2410_pm_resume() static + * [ARM] 4049/1: S3C24XX: fix sparse warning due to upf_t in regs-serial.h + * [ARM] 4050/1: S3C24XX: remove old changelogs in arch/arm/mach-s3c2410 + * [ARM] 4051/1: S3C24XX: clean includes in S3C2440 and S3C2442 support + * [CPUFREQ] Advise not to use longhaul on VIA C7. + * [CPUFREQ] longhaul compile fix. + * [ARM] Fix warnings from asm/system.h + * [ARM] 4052/1: S3C24XX: Fix PM in arch/arm/mach-s3c2410/Kconfig + * [ARM] 4054/1: ep93xx: add HWCAP_CRUNCH + * [ARM] 4055/1: iop13xx: fix phys_io/io_pg_offst for iq81340mc/sc + * [ARM] 4056/1: iop13xx: fix resource.end off-by-one in flash setup + * [ARM] 4057/1: ixp23xx: unconditionally enable hardware coherency + * [ARM] 4015/1: s3c2410 cpu ifdefs + * [SPARC]: Make bitops use same spinlocks as atomics. + * more work_struct fixes: tas300x sound drivers + * [TG3]: replace kmalloc+memset with kzalloc + * [AX.25]: Mark all kmalloc users __must_check + * [AX.25]: Fix unchecked ax25_protocol_register uses. + * [AX.25]: Fix unchecked ax25_listen_register uses + * [AX.25]: Fix unchecked nr_add_node uses. + * [AX.25]: Fix unchecked ax25_linkfail_register uses + * [AX.25]: Fix unchecked rose_add_loopback_node uses + * [AX.25]: Fix unchecked rose_add_loopback_neigh uses + * [BNX2]: Fix panic in bnx2_tx_int(). + * [BNX2]: Fix bug in bnx2_nvram_write(). + * [BNX2]: Fix minor loopback problem. + * [NETFILTER] IPV6: Fix dependencies. + * [TG3]: Assign tp->link_config.orig_* values. + * [TG3]: Fix race condition when calling register_netdev(). + * [TG3]: Power down/up 5906 PHY correctly. + * [TG3]: Update version and reldate. + * [CONNECTOR]: Fix compilation breakage introduced recently. + * [TCP]: Fix oops caused by tcp_v4_md5_do_del + * [TCP]: Trivial fix to message in tcp_v4_inbound_md5_hash + * [IPV4]: Fix BUG of ip_rt_send_redirect() + * [CONNECTOR]: Replace delayed work with usual work queue. + * cciss: set default raid level when reading geometry fails + * cciss: fix XFER_READ/XFER_WRITE in do_cciss_request + * drm: savage: compat fix from drm git. + * drm: fixup comment header style + * drm: make kernel context switch same as for drm git tree. + * drm: r128: comment aligment with drm git + * drm: Stop defining pci_pretty_name + * ->nr_sectors and ->hard_nr_sectors are not used for BLOCK_PC requests + * Remove queue merging hooks + * __blk_rq_map_user() doesn't need to grab the queue_lock + * __blk_rq_unmap_user() fails to return error + * Fixup blk_rq_unmap_user() API + * [PARTITION]: Add whole_disk attribute. + * [POWERPC] cell: update cell_defconfig + * [POWERPC] cell: add forward struct declarations to spu.h + * [POWERPC] cell: Enable spider workarounds on all PCI buses + * [POWERPC] cell: Fix spufs with "new style" device-tree + * [POWERPC] spufs: fix assignment of node numbers + * [POWERPC] powerpc: add scanning of ebc bus to of_platform + * [ARM] 4022/1: iop13xx: generic irq fixups + * [ARM] 4059/1: VR1000: fix LED3's platform device number + * [ARM] 4061/1: xsc3: change of maintainer + * [ARM] 4060/1: update several ARM defconfigs + * [ARM] 4062/1: S3C24XX: Anubis and Osiris shuld have CONFIG_PM_SIMTEC + * ACPI: ibm_acpi: allow clean removal + * ACPI: fix single linked list manipulation + * ACPI: prevent processor module from loading on failures + * [POWERPC] Workaround oldworld OF bug with IRQs & P2P bridges + * [POWERPC] iSeries: fix viodasd init + * [POWERPC] iSeries: fix viotape init + * [POWERPC] iSeries: fix iseries_veth init + * [POWERPC] iSeries: fix viocd init + * [POWERPC] iSeries: fix viocons init + * [POWERPC] iSeries: fix CONFIG_VIOPATH dependency + * [POWERPC] Fix build of cell zImage.initrd + * [POWERPC] Probe Efika platform before CHRP. + * [POWERPC] Update MTD OF documentation + * [POWERPC] Fix PCI device channel state initialization + * [POWERPC] Fix register save area alignment for swapcontext syscall + * ACPI: make drivers/acpi/ec.c:ec_ecdt static + * ACPI: fix NULL check in drivers/acpi/osl.c + * ACPI: Kconfig - depend on PM rather than selecting it + * ACPI: Implement acpi_video_get_next_level() + * ACPI: video: Add dev argument for backlight_device_register + * fbdev: update after backlight argument change + * ACPI: Add support for acpi_load_table/acpi_unload_table_id + * Pull platform-drivers into test branch + * Pull ec into test branch + * Pull bugfix into test branch + * merge linus into test branch + * Pull sgi into test branch + * [ALSA] via82xx: add __devinitdata + * [ALSA] sound/usb/usbaudio: Handle return value of usb_register() + * [ALSA] sound: Don't include i2c-dev.h + * [ALSA] ac97_codec (ALC655): add EAPD hack for MSI L725 laptop + * [ALSA] use the ALIGN macro + * [ALSA] use the roundup macro + * [ALSA] ymfpci: fix swap_rear for S/PDIF passthrough + * [ALSA] hda-codec - Fix wrong error checks in patch_{realtek,analog}.c + * [ALSA] hda-codec - Don't return error at initialization of modem codec + * [ALSA] hdsp: precise_ptr control switched off by default + * [ALSA] hda-codec - Fix a typo + * [ALSA] pcm core: fix silence_start calculations + * [ALSA] hda-codec - Add model for HP q965 + * [ALSA] sound/core/control.c: remove dead code + * [ALSA] hda-codec - Fix model for ASUS V1j laptop + * [ALSA] hda-codec - Fix detection of supported sample rates + * [ALSA] hda-codec - Verbose proc output for PCM parameters + * [ALSA] ac97 - Fix potential negative array index + * [ALSA] hda-codec - fix typo in PCI IDs + * [ALSA] Fix races in PCM OSS emulation + * [ALSA] Fix invalid assignment of PCI revision + * [ALSA] Remove IRQF_DISABLED for shared PCI irqs + * [ALSA] snd_hda_intel 3stack mode for ASUS P5P-L2 + * [ALSA] sound: initialize rawmidi substream list + * [ALSA] sound: fix PCM substream list + * [ALSA] snd-ca0106: Add new card variant. + * [ALSA] snd-ca0106: Fix typos. + * [ALSA] ac97_codec - trivial fix for bit update functions + * [ALSA] ac97: Identify CMI9761 chips. + * [ALSA] version 1.0.14rc1 + * cfq-iosched: don't allow sync merges across queues + * block: document io scheduler allow_merge_fn hook + * [libata] pata_cs5530: suspend/resume support tweak + * [libata] pata_via: suspend/resume support fix + * USB: Fix oops in PhidgetServo + * USB: fix transvibrator disconnect race + * USB: airprime: add device id for dell wireless 5500 hsdpa card + * USB: ftdi_sio - MachX product ID added + * USB: removing ifdefed code from gl620a + * usb serial: Eliminate bogus ioctl code + * USB: mutexification of usblp + * Add Baltech Reader ID to CP2101 driver + * USB: Prevent the funsoft serial device from entering raw mode + * USB: fix ohci.h over-use warnings + * USB: rtl8150 new device id + * usb-storage: Ignore the virtual cd-drive of the Huawei E220 USB Modem + * usb-gsm-driver: Added VendorId and ProductId for Huawei E220 USB Modem + * USB: fix Wacom Intuos3 4x6 bugs + * USB AUERSWALD: replace kmalloc+memset with kzalloc + * USB: Nokia E70 is an unusual device + * UHCI: module parameter to ignore overcurrent changes + * USB: gadget driver unbind() is optional; section fixes; misc + * USB: MAINTAINERS update, EHCI and OHCI + * USB: ohci whitespace/comment fixups + * USB: ohci at91 warning fix + * USB: ohci handles hardware faults during root port resets + * USB: OHCI support for PNX8550 + * USB: at91 udc, support at91sam926x addresses + * USB: at91_udc, misc fixes + * USB: u132-hcd/ftdi-elan: add support for Option GT 3G Quad card + * USB: at91_udc: allow drivers that support high speed + * USB: at91_udc: Cleanup variables after failure in + usb_gadget_register_driver() + * USB: at91_udc: Additional checks + * USB: fix to usbfs_snoop logging of user defined control urbs + * PCI: use /sys/bus/pci/drivers//new_id first + * pci: add class codes for Wireless RF controllers + * PCI quirks: remove redundant check + * rpaphp: compiler warning cleanup + * PCI: pcieport-driver: remove invalid warning message + * pci: Introduce pci_find_present + * PCI: Create __pci_bus_find_cap_start() from __pci_bus_find_cap() + * PCI: Add pci_find_ht_capability() for finding Hypertransport + capabilities + * PCI: Use pci_find_ht_capability() in drivers/pci/htirq.c + * PCI: Add #defines for Hypertransport MSI fields + * PCI: Use pci_find_ht_capability() in drivers/pci/quirks.c + * PCI: Only check the HT capability bits in mpic.c + * PCI: Fix multiple problems with VIA hardware + * PCI: Be a bit defensive in quirk_nvidia_ck804() so we don't risk + dereferencing a NULL pdev. + * PCI: don't export device IDs to userspace + * PCI legacy resource fix + * PCI: ATI sb600 sata quirk + * shpchp: remove unnecessary struct php_ctlr + * shpchp: cleanup struct controller + * shpchp: remove shpchprm_get_physical_slot_number + * shpchp: cleanup shpchp.h + * acpiphp: Link-time error for PCI Hotplug + * kref refcnt and false positives + * kobject: kobject_uevent() returns manageable value + * Driver core: proper prototype for drivers/base/init.c:driver_init() + * [libata] Move some PCI IDs from sata_nv to ahci + * libata: clean up variable name usage in xlat related functions + * libata: kill @cdb argument from xlat methods + * libata: take scmd->cmd_len into account when translating SCSI commands + * USB: Nokia E70 is an unusual device + * usb serial: add support for Novatel S720/U720 CDMA/EV-DO modems + * bluetooth: add support for another Kensington dongle + * [libata] sata_svw, sata_vsc: kill iomem warnings + * USB Storage: remove duplicate Nokia entry in unusual_devs.h + * ACPI: replace kmalloc+memset with kzalloc + * __set_irq_handler bogus space + * x86_64: fix boot hang caused by CALGARY_IOMMU_ENABLED_BY_DEFAULT + * x86_64: fix boot time hang in detect_calgary() + * sched: improve efficiency of sched_fork() + * fix leaks on pipe(2) failure exits + * workqueue: fix schedule_on_each_cpu() + * Clean up and make try_to_free_buffers() not race with dirty pages + * VM: Remove "clear_page_dirty()" and "test_clear_page_dirty()" functions + * Fix JFS after clear_page_dirty() removal + * fuse: remove clear_page_dirty() call + * Fix XFS after clear_page_dirty() removal + * elevator: fixup typo in merge logic + * truncate: dirty memory accounting fix + * KVM: add valid_vcpu() helper + * KVM: AMD SVM: handle MSR_STAR in 32-bit mode + * KVM: AMD SVM: Save and restore the floating point unit state + * KVM: Use more traditional error handling in kvm_mmu_init() + * KVM: Do not export unsupported msrs to userspace + * KVM: Force real-mode cs limit to 64K + * KVM: Handle p5 mce msrs + * KVM: API versioning + * CONFIG_VM_EVENT_COUNTER comment decrustify + * Conditionally check expected_preempt_count in __resched_legal() + * Fix for shmem_truncate_range() BUG_ON() + * rtc warning fix + * slab: fix kmem_ptr_validate definition + * fix kernel-doc warnings in 2.6.20-rc1 + * make kernel/printk.c:ignore_loglevel_setup() static + * fs/sysv/: proper prototypes for 2 functions + * Fix swapped parameters in mm/vmscan.c + * Add cscope generated files to .gitignore + * sched: remove __cpuinitdata anotation to cpu_isolated_map + * fix vm_events_fold_cpu() build breakage + * genirq: fix irq flow handler uninstall + * smc911x: fix netpoll compilation faliure + * smc911 workqueue fixes + * fsstack: Remove inode copy + * lock debugging: fix DEBUG_LOCKS_WARN_ON() & debug_locks_silent + * Make JFFS depend on CONFIG_BROKEN + * Add a new section to CodingStyle, promoting include/linux/kernel.h + * fix aoe without scatter-gather [Bug 7662] + * mm: more rmap debugging + * handle SLOB with sparsemen + * compile error of register_memory() + * audit: fix kstrdup() error check + * gss_spkm3: fix error handling in module init + * schedule_timeout(): improve warning message + * microcode: fix mc_cpu_notifier section warning + * MAINTAINERS: fix email for S3C2410 and S3C2440 + * tlclk: delete unnecessary sysfs_remove_group + * gxt4500: Fix colormap and PLL setting, support GXT6000P + * fdtable: Provide free_fdtable() wrapper + * kernel-doc: allow unnamed structs/unions + * kernel-doc: remove Martin from MAINTAINERS + * mips: if_fddi.h: Add a missing inclusion + * memory hotplug: fix compile error for i386 with NUMA config + * ptrace: Fix EFL_OFFSET value according to i386 pda changes + * relay: remove inlining + * increase CARDBUS_MEM_SIZE + * md: fix a few problems with the interface (sysfs and ioctl) to md + * fix s3c24xx gpio driver (include linux/workqueue.h) + * jbd: wait for already submitted t_sync_datalist buffer to complete + * sched: fix bad missed wakeups in the i386, x86_64, ia64, ACPI and APM + idle code + * build compile.h earlier + * Fix reparenting to the same thread group. (take 2) + * serial/uartlite: Only enable port if request_port succeeded + * Fix up page_mkclean_one(): virtual caches, s390 + * NetLabel: perform input validation earlier on CIPSOv4 DOI add ops + * NetLabel: correctly fill in unused CIPSOv4 level and category mappings + * [ATM]: Remove dead ATM_TNETA1570 option. + * [ATM] drivers/atm/fore200e.c: Cleanups. + * [TCP]: Fix ambiguity in the `before' relation. + * [SCTP]: Don't export include/linux/sctp.h to userspace. + * [SCTP]: Fix typo adaption -> adaptation as per the latest API draft. + * [SCTP]: make 2 functions static + * [IPV6]: Dumb typo in generic csum_ipv6_magic() + * [UDP]: Fix reversed logic in udp_get_port(). + * cfq-iosched: tighten allow merge criteria + * Call init_timer() for ISDN PPP CCP reset state timer + * Clean up and export cancel_dirty_page() to modules + * Fix reiserfs after "test_clear_page_dirty()" removal + * suspend: fix suspend on single-CPU systems + * arch/i386/pci/mmconfig.c tlb flush fix + * Fix up CIFS for "test_clear_page_dirty()" removal + * Linux 2.6.20-rc2 + + -- Ben Collins Sat, 16 Dec 2006 01:56:51 -0500 + +linux-source-2.6.20 (2.6.20-2.2) feisty; urgency=low + + [Ben Collins] + + * debian/config: Enable pata_marvell. + - GIT-SHA 8140eb247a50883afe037f57d4afd143cee902a6 + * ivtv: Add new mpeg encoder driver. + - GIT-SHA fc0ee3058f7ae7096235648aa1dbdf114fa3fc58 + * ubuntu/media: Add ivtv to build. + - GIT-SHA 4850a6d86424b28f967e2eab425152ba4f4147e8 + * ubuntu/ivtv: Build fixes for 2.6.20 (INIT_WORK). + - GIT-SHA fa28b2f82bba8c1bb014ab7de500d48b77404abf + * debian/d-i/package-list: Add nic-firmware + - GIT-SHA 42e1278480fe3c33e5c14fb056c34718fac5e713 + - Bug #73896 + * debian/d-i: Split out nfs modules into nfs-modules. + - GIT-SHA 941250b257eb8bbe7ad811fa56c6ec4973ec6545 + - Bug #73910 + * debian/d-i: Add cdrom modules + - GIT-SHA c2670818134e76c571cbc17aa26551d0064305e0 + - Bug #73911 + * include/asm-*/setup.h: Set command line size to 1024 + - GIT-SHA 3812de95f1b4d800081e7f06c5b9bc9c3873003c + - Bug #23716 + * debian/d-i: Add block and message udeb's. + - GIT-SHA 6e997e89249bfd8bbc20bf1f0349fb0bccde2d95 + * ide/piix: ifdef out some pci id's when ata_piix is enabled. + - GIT-SHA d28a0a771e1c30c5b89999e5c51e33471a6f6ed2 + + [Upstream Kernel Changes] + + * [CPUFREQ] Documentation fix + * [CPUFREQ][1/8] acpi-cpufreq: software coordination and handle all CPUs + in the group + * [CPUFREQ][2/8] acpi: reorganize code to make MSR support addition + easier + * [CPUFREQ][3/8] acpi-cpufreq: Pull in MSR based transition support + * [CPUFREQ][4/8] acpi-cpufreq: Mark speedstep-centrino ACPI as deprecated + * [CPUFREQ][5/8] acpi-cpufreq: lindent acpi-cpufreq.c + * [CPUFREQ][6/8] acpi-cpufreq: Eliminate get of current freq on + notification + * [CPUFREQ][7/8] acpi-cpufreq: Fix get of current frequency breakage + * [CPUFREQ][8/8] acpi-cpufreq: Add support for freq feedback from + hardware + * [CPUFREQ] sc520_freq.c: ioremap balanced with iounmap + * [CPUFREQ] Fix speedstep-smi CPU detection to not run on Pentium 4. + * [CPUFREQ] Remove duplicate include from acpi-cpufreq + * [CPUFREQ] acpi-cpufreq: Fix up some CodingStyle nits leftover from the + lindenting. + * [CPUFREQ] handle sysfs errors + * [CPUFREQ] speedstep-centrino: remove dead code + * [CPUFREQ] ifdef more unused on !SMP code. + * [AGPGART] Fix up misprogrammed bridges with incorrect AGPv2 rates. + * [CPUFREQ] Fix coding style issues in cpufreq. + * [CPUFREQ] p4-clockmod: add more CPUs + * [CPUFREQ] speedstep-centrino should ignore upper performance control + bits + * [CPUFREQ] Fix build failure on x86-64 + * JFS: Fix conflicting superblock flags + * [WATCHDOG] rm9k_wdt: fix compilation + * [WATCHDOG] rm9k_wdt: fix interrupt handler arguments + * [WATCHDOG] watchdog miscdevice patch + * ocfs2: local mounts + * ocfs2: update mount option documentation + * ocfs2: Synchronize feature incompat flags in ocfs2_fs.h + * [patch 1/3] OCFS2 - Expose struct o2nm_cluster + * [patch 2/3] OCFS2 Configurable timeouts + * [ARM] 4010/1: AT91SAM9260-EK board: Prepare for MACB Ethernet support + * [ARM] 4011/1: AT91SAM9260: Fix compilation with NAND driver + * [ARM] Handle HWCAP_VFP in VFP support code + * [ARM] Formalise the ARMv6 processor name string + * [ARM] 4004/1: S3C24XX: UDC remove implict addition of VA to regs + * [ARM] Add sys_*at syscalls + * i2c: Fix documentation typos + * i2c: Update the list of driver IDs + * i2c: Delete the broken i2c-ite bus driver + * i2c: New Philips PNX bus driver + * i2c: Add request/release_mem_region to i2c-ibm_iic bus driver + * i2c: Cleanups to the i2c-nforce2 bus driver + * i2c: Add support for nested i2c bus locking + * i2c: New Atmel AT91 bus driver + * i2c: Use put_user instead of copy_to_user where possible + * i2c: Whitespace cleanups + * i2c: Use the __ATTR macro where possible + * i2c: i2c-i801 documentation update + * i2c: fix broken ds1337 initialization + * i2c: New ARM Versatile/Realview bus driver + * i2c: Discard the i2c algo del_bus wrappers + * i2c: Enable PEC on more i2c-i801 devices + * i2c: Fix return value check in i2c-dev + * i2c: Refactor a kfree in i2c-dev + * i2c: Fix OMAP clock prescaler to match the comment + * [patch 3/3] OCFS2 Configurable timeouts - Protocol changes + * [ARM] Clean up KERNEL_RAM_ADDR + * sh: Reworked swap cache entry encoding for SH-X2 MMU. + * sh: Shut up csum_ipv6_magic() warnings. + * sh: push-switch fixups for work_struct API damage. + * sh: Add uImage and S-rec generation support. + * sh: SH-2 defconfig updates. + * sh: register rtc resources for sh775x. + * rtc: rtc-sh: fix for period rtc interrupts. + * sh: landisk board build fixes. + * sh: gcc4 symbol export fixups. + * sh: IPR IRQ updates for SH7619/SH7206. + * sh: Trivial build fixes for SH-2 support. + * sh: Fix Solution Engine 7619 build. + * sh: Split out atomic ops logically. + * serial: sh-sci: Shut up various sci_rxd_in() gcc4 warnings. + * sh: Kill off unused SE7619 I/O ops. + * rtc: rtc-sh: fix rtc for out-by-one for the month. + * rtc: rtc-sh: alarm support. + * sh: BUG() handling through trapa vector. + * sh: Fix get_wchan(). + * sh: Fixup kernel_execve() for syscall cleanups. + * sh: Convert remaining remap_area_pages() users to ioremap_page_range(). + * sh: Fixup dma_cache_sync() callers. + * sh: SH-MobileR SH7722 CPU support. + * sh: Fixup sh_bios() trap handling. + * sh: Hook up SH7722 scif ipr interrupts. + * sh: Fixup .data.page_aligned. + * sh: Fix .empty_zero_page alignment for PAGE_SIZE > 4096. + * sh: Use early_param() for earlyprintk parsing. + * sh: Fixup SH-2 BUG() trap handling. + * remove blk_queue_activity_fn + * fix SG_IO bio leak + * remove unnecessary blk_queue_bounce in SG_IO + * V4L/DVB (4954): Fix: On ia64, i2c adap->inb/adap->outb are wrongly + evaluated + * lockdep: fix seqlock_init() + * net, 8139too.c: fix netpoll deadlock + * netpoll: fix netpoll lockup + * hwmon/f71805f: Store the fan control registers + * hwmon/f71805f: Add manual fan speed control + * hwmon/f71805f: Let the user adjust the PWM base frequency + * hwmon/f71805f: Support DC fan speed control mode + * hwmon/f71805f: Add support for "speed mode" fan speed control + * hwmon/f71805f: Document the fan control features + * hwmon/pc87360: Autodetect the VRM version + * hwmon/hdaps: Move the DMI detection data to .data + * hwmon/hdaps: Update the list of supported devices + * hwmon/it87: Remove the SMBus interface support + * hwmon: New PC87427 hardware monitoring driver + * hwmon/f71805f: Add support for the Fintek F71872F/FG chip + * hwmon/f71805f: Always create all fan inputs + * hwmon/f71805f: Fix the device address decoding + * hwmon: Update Rudolf Marek's e-mail address + * hwmon: New Winbond W83793 hardware monitoring driver + * hwmon/w83793: Add documentation and maintainer + * hwmon: New AMS hardware monitoring driver + * hwmon: Add MAINTAINERS entry for new ams driver + * EXT{2,3,4}_FS: remove outdated part of the help text + * [IA64] Do not call SN_SAL_SET_CPU_NUMBER twice on cpu 0 + * Use consistent casing in help message + * [IA64] CONFIG_KEXEC/CONFIG_CRASH_DUMP permutations + * [IA64] Kexec/Kdump: honour non-zero crashkernel offset. + * [IA64] kexec/kdump: tidy up declaration of relocate_new_kernel_t + * Fix small typo in drivers/serial/icom.c + * Remove duplicate "have to" in comment + * Kconfig: fix spelling error in config KALLSYMS help text + * include/linux/compiler.h: reject gcc 3 < gcc 3.2 + * remove config ordering/dependency between ucb1400-ts and sound + subsystem + * [IA64] s/termios/ktermios/ in simserial.c + * fix typo in net/ipv4/ip_fragment.c + * um: replace kmalloc+memset with kzalloc + * e100: replace kmalloc with kcalloc + * kconfig: Standardize "depends" -> "depends on" in Kconfig files + * configfs.h: Remove dead macro definitions. + * fs: Convert kmalloc() + memset() to kzalloc() in fs/. + * Jon needs a new shift key. + * Fix typo in new debug options. + * Fix inotify maintainers entry + * [IA64] fix arch/ia64/mm/contig.c:235: warning: unused variable `nid' + * [IA64] - Reduce overhead of FP exception logging messages + * [IA64] fix possible XPC deadlock when disconnecting + * IB/fmr: ib_flush_fmr_pool() may wait too long + * IB/ipath: Remove unused "write-only" variables + * IB/iser: Remove unused "write-only" variables + * RDMA/amso1100: Fix memory leak in c2_qp_modify() + * IB/ipath: Fix IRQ for PCI Express HCAs + * RDMA/cma: Remove unneeded qp_type parameter from rdma_cm + * RDMA/cma: Report connect info with connect events + * RDMA/cma: Allow early transition to RTS to handle lost CM messages + * RDMA/cma: Add support for RDMA_PS_UDP + * RDMA/cma: Export rdma cm interface to userspace + * [IA64] Take defensive stance on ia64_pal_get_brand_info() + * [IA64] enable trap code on slot 1 + * [IA64] kprobe clears qp bits for special instructions + * [CPUFREQ] Optimize gx-suspmod revision ID fetching + * [CPUFREQ] speedstep-centrino should ignore upper performance control + bits + * [CPUFREQ] Fix the bug in duplicate freq elimination code in + acpi-cpufreq + * [CPUFREQ] Fix git URL. + * IB: Add DMA mapping functions to allow device drivers to interpose + * IB/ipath: Implement new verbs DMA mapping functions + * IB/core: Use the new verbs DMA mapping functions + * [CPUFREQ] p4-clockmod: fix support for Core + * IPoIB: Use the new verbs DMA mapping functions + * IB/srp: Use new verbs IB DMA mapping functions + * IB/iser: Use the new verbs DMA mapping functions + * [CPUFREQ] Longhaul - fix 200MHz FSB + * [CPUFREQ] Longhaul - Add support for CN400 + * [WATCHDOG] pcwd_usb.c generic HID include file + * IPoIB: Make sure struct ipoib_neigh.queue is always initialized + * [AGPGART] agp-amd64: section mismatches with HOTPLUG=n + * [AGPGART] VIA and SiS AGP chipsets are x86-only + * Propagate down request sync flag + * [PATCH 1/2] cciss: map out more memory for config table + * [PATCH 2/2] cciss: remove calls to pci_disable_device + * Allow as-iosched to be unloaded + * [ARM] Unuse another Linux PTE bit + * [ARM] Clean up ioremap code + * [ARM] 4012/1: Clocksource for pxa + * [ARM] 4013/1: clocksource driver for netx + * [ARM] 4014/1: include drivers/hid/Kconfig + * Fixup cciss error handling + * [ARM] Remove empty fixup function + * arch/i386/kernel/smpboot.c: remove unneeded ifdef + * tty: export get_current_tty + * KVM: Add missing include + * KVM: Put KVM in a new Virtualization menu + * KVM: Clean up AMD SVM debug registers load and unload + * KVM: Replace __x86_64__ with CONFIG_X86_64 + * fix more workqueue build breakage (tps65010) + * another build fix, header rearrangements (OSK) + * uml: fix net_kern workqueue abuse + * isdn/gigaset: fix possible missing wakeup + * i2o_exec_exit and i2o_driver_exit should not be __exit. + * Fix section mismatch in parainstructions + * KVM: Make the GET_SREGS and SET_SREGS ioctls symmetric + * KVM: Move find_vmx_entry() to vmx.c + * KVM: Remove extranous put_cpu() from vcpu_put() + * KVM: MMU: Ignore pcd, pwt, and pat bits on ptes + * KVM: Add MAINTAINERS entry + * vt: fix comments to not refer to kill_proc + * kconfig: new function "bool conf_get_changed(void)" + * kconfig: make sym_change_count static, let it be altered by 2 functions + only + * kconfig: add "void conf_set_changed_callback(void (*fn)(void))", use it + in qconf.cc + * kconfig: set gconf's save-widget's sensitivity according to .config's + changed state + * reorder struct pipe_buf_operations + * slab: fix sleeping in atomic bug + * Fix crossbuilding checkstack + * md: Don't assume that READ==0 and WRITE==1 - use the names explicitly + * KVM: Disallow the kvm-amd module on intel hardware, and vice versa + * KVM: Don't touch the virtual apic vt registers on 32-bit + * KVM: Fix vmx hardware_enable() on macbooks + * w1: Fix for kconfig entry typo + * isicom: fix build with PCI disabled + * mxser_new: fix non-PCI build + * sx: fix non-PCI build + * cciss: map out more memory for config table + * cciss: remove calls to pci_disable_device + * Cleanup slab headers / API to allow easy addition of new slab + allocators + * More slab.h cleanups + * cpuset: rework cpuset_zone_allowed api + * SLAB: use a multiply instead of a divide in obj_to_index() + * PM: Fix freezing of stopped tasks + * PM: Fix SMP races in the freezer + * Xtensa: Add ktermios and minor filename fix + * touch_atime() cleanup + * relative atime + * ocfs2: relative atime support + * optimize o_direct on block devices + * debug: add sysrq_always_enabled boot option + * lockdep: filter off by default + * lockdep: improve verbose messages + * lockdep: improve lockdep_reset() + * lockdep: clean up VERY_VERBOSE define + * lockdep: use chain hash on CONFIG_DEBUG_LOCKDEP too + * lockdep: print irq-trace info on asserts + * lockdep: fix possible races while disabling lock-debugging + * Use activate_mm() in fs/aio.c:use_mm() + * Fix numerous kcalloc() calls, convert to kzalloc() + * tty: remove useless memory barrier + * CONFIG_COMPUTONE should depend on ISA|EISA|PCI + * appldata_mem dependes on vm counters + * uml problems with linux/io.h + * missing includes in hilkbd + * hci endianness annotations + * lockd endianness annotations + * rtc: fx error case + * RTC driver init adjustment + * rtc: remove syslog spam on registration + * rtc framewok: rtc_wkalrm.enabled reporting updates + * tty_io.c balance tty_ldisc_ref() + * n_r3964: Use struct pid to track user space clients + * smbfs: Make conn_pid a struct pid + * ncpfs: Use struct pid to track the userspace watchdog process + * ncpfs: ensure we free wdog_pid on parse_option or fill_inode failure + * update Tigran's email addresses + * one more EXPORT_UNUSED_SYMBOL removal + * remove the broken BLK_DEV_SWIM_IOP driver + * knfsd: nfsd4: remove a dprink from nfsd4_lock + * knfsd: svcrpc: fix gss krb5i memory leak + * knfsd: nfsd4: clarify units of COMPOUND_SLACK_SPACE + * knfsd: nfsd: make exp_rootfh handle exp_parent errors + * knfsd: nfsd: simplify exp_pseudoroot + * knfsd: nfsd4: handling more nfsd_cross_mnt errors in nfsd4 readdir + * knfsd: nfsd: don't drop silently on upcall deferral + * knfsd: svcrpc: remove another silent drop from deferral code + * knfsd: nfsd4: pass saved and current fh together into nfsd4 operations + * knfsd: nfsd4: remove spurious replay_owner check + * knfsd: nfsd4: move replay_owner to cstate + * knfsd: nfsd4: don't inline nfsd4 compound op functions + * knfsd: nfsd4: make verify and nverify wrappers + * knfsd: nfsd4: reorganize compound ops + * knfsd: nfsd4: simplify migration op check + * knfsd: nfsd4: simplify filehandle check + * knfsd: Don't ignore kstrdup failure in rpc caches + * knfsd: Fix up some bit-rot in exp_export + * Optimize calc_load() + * ide: HPT3xxN clocking fixes + * ide: fix HPT37x timing tables + * ide: optimize HPT37x timing tables + * ide: fix HPT3xx hotswap support + * ide: fix the case of multiple HPT3xx chips present + * ide: HPT3xx: fix PCI clock detection + * HPT37x: read f_CNT saved by BIOS from port + * fbdev: remove references to non-existent fbmon_valid_timings() + * sstfb: add sysfs interface + * getting rid of all casts of k[cmz]alloc() calls + * Add support for Korenix 16C950-based PCI cards + * Fix COW D-cache aliasing on fork + * Pass vma argument to copy_user_highpage(). + * MIPS: Fix COW D-cache aliasing on fork + * Optimize D-cache alias handling on fork + * Add missing KORENIX PCI ID's + * [ARM] 4016/1: prefetch macro is wrong wrt gcc's + "delete-null-pointer-checks" + * [ARM] Provide a method to alter the control register + * [ARM] 3992/1: i.MX/MX1 CPU Frequency scaling support + * [IA64] Move sg_dma_{len,address} from pci.h to scatterlist.h + * [ARM] 4017/1: [Jornada7xx] - Updating Jornada720.c + * Driver core: show "initstate" of module + * driver core: delete virtual directory on class_unregister() + * DebugFS : inotify create/mkdir support + * DebugFS : coding style fixes + * DebugFS : file/directory creation error handling + * DebugFS : more file/directory creation error handling + * DebugFS : file/directory removal fix + * Driver core: "platform_driver_probe() can save codespace": save + codespace + * Driver core: Make platform_device_add_data accept a const pointer + * Driver core: deprecate PM_LEGACY, default it to N + * [NETFILTER]: Fix INET=n linking error + * [NETFILTER]: nf_nat: fix NF_NAT dependency + * [NETFILTER]: x_tables: error if ip_conntrack is asked to handle IPv6 + packets + * [NETFILTER]: x_tables: add missing try to load conntrack from + match/targets + * [NETFILTER]: ip_tables: ipt and ipt_compat checks unification + * [NETFILTER]: {ip,ip6,arp}_tables: fix exponential worst-case search for + loops + * [DCCP] ccid3: return value in ccid3_hc_rx_calc_first_li + * [IPV6]: Fix IPV6_UNICAST_HOPS getsockopt(). + * [TCP]: Fix oops caused by __tcp_put_md5sig_pool() + * [SCTP]: Handle address add/delete events in a more efficient way. + * [SCTP]: Enable auto loading of SCTP when creating an ipv6 SCTP socket. + * [SCTP]: Add support for SCTP_CONTEXT socket option. + * [IPV6]: Make fib6_node subtree depend on IPV6_SUBTREES + * Linux v2.6.20-rc1 + * ib_verbs: Use explicit if-else statements to avoid errors with do-while + macros + * [S390] update default configuration + * [S390] hypfs fixes + * [S390] Hipersocket multicast queue: make sure outbound handler is + called + * [S390] zcrypt: module unload fixes. + * [S390] sclp_cpi module license. + * [S390] Fix reboot hang on LPARs + * [S390] Fix reboot hang + * [S390] Save prefix register for dump on panic + * [S390] cio: css_register_subchannel race. + * Remove stack unwinder for now + + -- Ben Collins Wed, 13 Dec 2006 11:29:31 -0500 + +linux-source-2.6.20 (2.6.20-1.1) feisty; urgency=low + + [Ben Collins] + + * debian/: Fix lowlatency config rewrite so PREEMPT gets enabled. + - GIT-SHA 510032237707def6475ec51a206644ebf90da9c9 + * debian/: Add initramfs hook for copying firmware needed in initrd. + - GIT-SHA 2f049facd27d03ca42d0a00bcba3567ea6c43c1c + * x86: Revert patch that allows disabling hyper-threading. + - GIT-SHA a5443e2694749510381b4c54b95f5a3ee2656dcf + * debian/: Revert kernelfirmware changes in favour of initramfs-tools + solution. + - GIT-SHA b4ce570a6dff8b1acfb130e0840ef7bc1ca3194f + * forcedeth: Revert phy patch. + - GIT-SHA 3cd0410cba86a7e97535f5d7dda18a71ec91b772 + * rt2x00: Added drivers from Edgy with build fixes. + - GIT-SHA 3e684dade463576854892501ab33b3f4e6557b6a + * arch/sparc64/prom: Remove local change. + - GIT-SHA e9f507d104bbe9a1bf58671408682c095615c93d + * ndsiwrapper: Added driver + - GIT-SHA d11fd0dd38f5e903108e6205e38dfcf84ea149c6 + * ubuntu/: Compile fixes for header changes in 2.6.20 + - GIT-SHA 9fe44155276658fad4afab56bd80229bb9b903dc + * ubuntu/wireless/rt2x00: Add eeprom module to Makefile. + - GIT-SHA b6406283cc8b87b4f118e532d31f627b4071a086 + * kernel/workqueue: Export current_is_kevent() for libphy. + - GIT-SHA 6f786ce77e68085661a02ee99cfb4b7ca290fb17 + * debian/config: Enable all keyspan fw extensions. + - GIT-SHA 97079628a3cc9921eb5d7149580d2971860980eb + * ubuntu/: Add includes to make up for header changes on x86_64. + - GIT-SHA 1315457d772e24484c9fb5cfae2cf5dcbed6588d + * Remove UP-APIC off-by-default patch. + - GIT-SHA 57daa7b7720d9581f9a2261ef57d70c4160617b9 + * ubuntu/: INIT_WORK changes for ubuntu supplied drivers. + - GIT-SHA 5e330f1f67613ff6d092261c03ba3816a4e9c76d + * debian/config/: Disable legacy rt2x00 drivers, and enable newer ones. + - GIT-SHA 5f3f7f497bf055ee9e8796e08cc14f55e78b7b84 + * ubuntu/ndiswrapper: Allow enabling of OWN_WQ. + - GIT-SHA aef1808d7ce20b989c5da8e8fa983d23d8831447 + * ubuntu/misc/Kconfig: Add NIDSWRAPPER_WQ option. + - GIT-SHA 683ceae36cc76dccf60d0b42b6f7e6dc664338b9 + * ubuntu/fs/asfs: Fix compiler failure with new upstream code. + - GIT-SHA e651660640a32c6701a43ba6ea6b0b88ad3f2f70 + * ubuntu/: kmem_cache and SLAB_{ATOMIC,KERNEL} fixes. + - GIT-SHA 420832806cb9387909466f70739ca6a29281fac2 + * ubuntu/rtl_ieee80211/: Add some compatibility crypto calls. + - GIT-SHA 84d69c35b71f8daff106ff50471ee447adaaf6a9 + * ubuntu/: Fixes for freezer stuff moving to linux/freezer.h + - GIT-SHA f2fc18057022e3b792cddc8326e6116a08bd392b + * libata: Fix legacy mode for things like piix. + - GIT-SHA b604c4235e72743435b81fe20bfd78343edd159f + * ia64: Move sg_dma_* functions from pci.h to scatterlist.h + - GIT-SHA 71f54a36da8d5d098cdd13f86dabe8621834ba45 + * bacom_app: Fix typo introduced in + 15b1c0e822f578306332d4f4c449250db5c5dceb + - GIT-SHA 06c07cb91d6185f691bbd034670308c61bf70dcf + * dmasound: Fix INIT_WORK usage. + - GIT-SHA 9ba10c5168a94a51844b368af0fdcea22aa2ffe2 + * (promise) support PATA ports on SATA controllers + - GIT-SHA 1bcbb7e20a7eab8427ac9b227b3db887d873cbac + * Patch to correct INIT_WORK conversion. + - GIT-SHA d3e411fc1bf19f179b76b1e6e4e13127252e4c64 + * rt2500-legacy: Fixes for INIT_WORK changes. + - GIT-SHA 28b1115c58bda8f1eddffdf855d9034b0c33a7d7 + + [Kyle McMartin] + + * ipw3945: Update to v1.1.3 + - GIT-SHA d5969a44fb688e2a619b3320a571c584a1d6452f + * ubuntu/wireless/: Finish cleaning up INIT_WORK + - GIT-SHA 0f91ed3ff67c95751252172bb48b5fd96980c71f + + -- Ben Collins Tue, 28 Nov 2006 22:53:51 -0500 + +linux-source-2.6.19 (2.6.19-7.10) feisty; urgency=low + + [Ben Collins] + + * amd76x_edac: Disable because of conflict with amd_k7_agp. + - GIT-SHA 6027f7346f0f996c8efca626dec3b327bd7dca9e + - Bug #71522 + * debian/config: Disable aic7xxx_old (scary stuff) + - GIT-SHA a5a7e7b6bd8bb31c9c871aae441d1efd85ef815b + * debian/config: Enable qla2xxx FC driver. + - GIT-SHA afdcea31e92bf7d0de2938848ac21e87fe3ce584 + * debian/firmware: Add qla2xxx firmware. + - GIT-SHA c980a1cfa2bc6623c9732ebae9d63aae9f0d7e27 + * Add a lowlatency kernel target. + - GIT-SHA 1b7aff0509741650a83c7afddc5406ac5278a2c2 + * ubuntu/mactel: Add applesmc driver. + - GIT-SHA c983d32ab69771aadbf7d8f8451f3c28eda8223f + * ubuntu/mactel: Add apple IR driver. + - GIT-SHA 26bb7f92982a1e94c3743e8ebddda8c878979d35 + * debian/bin: Tuck my build scripts in here for public consumption. + - GIT-SHA a77f2b3d8fa59395d3be8e966411e4490a6f8779 + * git-ubuntu-log: Use Text::Wrap to format comments into changelog. + - GIT-SHA 997bab71d64926c335703bbaf5dc4d36bce3b335 + + [Fabio M. Di Nitto] + + * ubuntu/fs/gfs update to 24/11/2006 CVS snapshot + - GIT-SHA c8f1688a4d613c62d6e019aa66b2fd4817209e51 + + [Upstream Kernel Changes] + + * x86-64: Fix C3 timer test + * x86-64: increase PHB1 split transaction timeout + * [ARM] 3933/1: Source drivers/ata/Kconfig + * [ARM] ebsa110: fix warnings generated by asm/arch/io.h + * IB/ipath: Depend on CONFIG_NET + * [XFS] Fix uninitialized br_state and br_startoff in + * [XFS] Stale the correct inode when freeing clusters. + * x86_64: Align data segment to PAGE_SIZE boundary + * Fix CPU_FREQ_GOV_ONDEMAND=y compile error + * [IPV6] ROUTE: Try to use router which is not known unreachable. + * [IPV6] ROUTE: Prefer reachable nexthop only if the caller requests. + * [IPV6] ROUTE: Do not enable router reachability probing in router mode. + * [IPV6] IP6TUNNEL: Delete all tunnel device when unloading module. + * [IPV6] IP6TUNNEL: Add missing nf_reset() on input path. + * [Bluetooth] Attach low-level connections to the Bluetooth bus + * [Bluetooth] Handling pending connect attempts after inquiry + * [Bluetooth] Check if RFCOMM session is still attached to the TTY + * [Bluetooth] Always include MTU in L2CAP config responses + * [Bluetooth] Ignore L2CAP config requests on disconnect + * [IGMP]: Fix IGMPV3_EXP() normalization bit shift value. + * [XFRM]: Sub-policies broke policy events + * [XFRM]: nlmsg length not computed correctly in the presence of + subpolicies + * [BLUETOOTH]: Fix unaligned access in hci_send_to_sock. + * [POWERPC] Revert "[POWERPC] Enable generic rtc hook for the MPC8349 + mITX" + * [POWERPC] Revert "[POWERPC] Add powerpc get/set_rtc_time interface to + new generic rtc class" + * [IRDA]: Lockdep fix. + * [IPV6]: Fix address/interface handling in UDP and DCCP, according to + the scoping architecture. + * [TG3]: Add missing unlock in tg3_open() error path. + * [POWERPC] Fix ucc_geth of_device discovery on mpc832x + * Don't call "note_interrupt()" with irq descriptor lock held + * [AGP] Fix intel 965 AGP memory mapping function + * [ARM] 3942/1: ARM: comment: consistent_sync should not be called + directly + * [ARM] 3941/1: [Jornada7xx] - Addition to MAINTAINERS + * [AGP] Allocate AGP pages with GFP_DMA32 by default + * [MIPS] Hack for SB1 cache issues + * make au1xxx-ide compile again + * Correct bound checking from the value returned from _PPC method. + * Fix i2c-ixp4xx compile (missing brace) + * x86_64: fix bad page state in process 'swapper' + * fix "pcmcia: fix 'rmmod pcmcia' with unbound devices" + * initramfs: handle more than one source dir or file list + * fuse: fix Oops in lookup + * mounstats NULL pointer dereference + * debugfs: add header file + * Documentation/rtc.txt updates (for rtc class) + * rtc framework handles periodic irqs + * rtc class locking bugfixes + * drivers/rtc/rtc-rs5c372.c: fix a NULL dereference + * reiserfs: fmt bugfix + * Fix device_attribute memory leak in device_del + * qconf: fix uninitialsied member + * fix menuconfig colours with TERM=vt100 + * sgiioc4: Disable module unload + * fix copy_process() error check + * tlclk: fix platform_device_register_simple() error check + * Enforce "unsigned long flags;" when spinlocking + * lockdep: spin_lock_irqsave_nested() + * usb: ati remote memleak fix + * uml: make execvp safe for our usage + * [NETFILTER]: H.323 conntrack: fix crash with CONFIG_IP_NF_CT_ACCT + * [UDP]: Make udp_encap_rcv use pskb_may_pull + * [NET]: Fix kfifo_alloc() error check. + * [6PACK]: Masking bug in 6pack driver. + * [NET]: Re-fix of doc-comment in sock.h + * [XFRM] STATE: Fix to respond error to get operation if no matching + entry exists. + * V4L/DVB (4831): Fix tuning on older budget DVBS cards. + * V4L/DVB (4840): Budget: diseqc_method module parameter for cards with + subsystem-id 13c2:1003 + * V4L/DVB (4832): Fix uninitialised variable in dvb_frontend_swzigzag + * V4L/DVB (4849): Add missing spin_unlock to saa6588 decoder driver + * V4L/DVB (4865): Fix: Slot 0 not NULL on disconnecting SN9C10x PC Camera + * V4L/DVB (4885): Improve saa711x check + * Fix incorrent type of flags in + * Fix 'ALIGN()' macro, take 2 + + -- Ben Collins Tue, 21 Nov 2006 08:55:49 -0500 + +linux-source-2.6.19 (2.6.19-6.9) feisty; urgency=low + + [Ben Collins] + + * debian/post-install: Requires built scripts directory. + - GIT-SHA 6f4e4b8f3cf138b57825ed12a0b05ed5bf727216 + + -- Ben Collins Mon, 20 Nov 2006 19:44:27 -0500 + +linux-source-2.6.19 (2.6.19-6.8) feisty; urgency=low + + [Ben Collins] + + * ndsiwrapper: Updates driver to 1.28. + - GIT-SHA a37fed032ec826103a75e51ff1f82c5fea8e9b73 + * debian/*: Update ndiswrapper-modules provides to 1.9 API + - GIT-SHA 4b81c3da5bc7ddf7671f1dd8da2536495e5750ae + * debian/bin/git-hooks/commit-msg: Update to understand merges. + - GIT-SHA 41f189eba8d5645ef0b000007b42f9b26f243297 + * debian/{post,header}-install: Fixup header dirs and symlinks + - GIT-SHA 932cf4988ab7e53d6e71631604aec55c65d4ffa2 + + [Upstream Kernel Changes] + + * [SCSI] aic94xx SCSI timeout fix + * [SCSI] aic94xx SCSI timeout fix: SMP retry fix. + * [SCSI] 3ware 9000 add support for 9650SE + * [SCSI] sg: fix incorrect last scatg length + * [ARM] 3857/2: pnx4008: add devices' registration + * [SCSI] iscsi: always release crypto + * [SCSI] iscsi: add newlines to debug messages + * [SCSI] iscsi_tcp: fix xmittask oops + * [SCSI] iscsi class: update version + * [SCSI] gdth: Fix && typos + * [SCSI] psi240i.c: fix an array overrun + * [ARM] Remove PM_LEGACY=y from selected ARM defconfigs + * hpt37x: Check the enablebits + * pata_artop: fix "& (1 >>" typo + * libata: fix double-completion on error + * x86-64: Fix partial page check to ensure unusable memory is not being marked usable. + * x86-64: Fix PTRACE_[SG]ET_THREAD_AREA regression with ia32 emulation. + * x86-64: shorten the x86_64 boot setup GDT to what the comment says + * x86-64: Handle reserve_bootmem_generic beyond end_pfn + * x86-64: setup saved_max_pfn correctly (kdump) + * x86: Add acpi_user_timer_override option for Asus boards + * x86-64: Fix vgetcpu when CONFIG_HOTPLUG_CPU is disabled + * x86-64: Fix race in exit_idle + * setup_irq(): better mismatch debugging + * fix via586 irq routing for pirq 5 + * revert "PCI: quirk for IBM Dock II cardbus controllers" + * drivers/ide: stray bracket + * autofs4: panic after mount fail + * nvidiafb: fix unreachable code in nv10GetConfig + * usb: MAINTAINERS updates + * hugetlb: prepare_hugepage_range check offset too + * hugetlb: check for brk() entering a hugepage region + * libata: Convert from module_init to subsys_initcall + * cciss: fix iostat + * cpqarray: fix iostat + * Char: isicom, fix close bug + * ALSA: hda-intel - Disable MSI support by default + * Use delayed disable mode of ioapic edge triggered interrupts + * [IA64] bte_unaligned_copy() transfers one extra cache line. + * [POWERPC] Add the thread_siblings files to sysfs + * [POWERPC] Wire up sys_move_pages + * powerpc: windfarm shall request it's sub modules + * Linux 2.6.19-rc6 + * [TG3]: Increase 5906 firmware poll time. + * [NETFILTER]: nfnetlink_log: fix byteorder of NFULA_SEQ_GLOBAL + * [NETFILTER]: Use pskb_trim in {ip,ip6,nfnetlink}_queue + * [NETFILTER]: ip6_tables: fixed conflicted optname for getsockopt + * [NETFILTER]: ip6_tables: use correct nexthdr value in ipv6_find_hdr() + * [TCP]: Fix up sysctl_tcp_mem initialization. + * [TG3]: Disable TSO on 5906 if CLKREQ is enabled. + * [IA64] irqs: use `name' not `typename' + * [IA64] typename -> name conversion + * [IA64] use generic_handle_irq() + * [IA64] a fix towards allmodconfig build + * ipmi: use platform_device_add() instead of platform_device_register() to register device allocated dynamically + * some irq_chip variables point to NULL + * pnx4008: rename driver + * pnx4008:fix NULL dereference in rgbfb + * eCryptfs: dput() lower d_parent on rename + * set default video mode on PowerBook Wallstreet + * IB/ipath - fix driver build for platforms with PCI, but not HT + * parport: fix compilation failure + * hfs_fill_super returns success even if no root inode + * Update udf documentation to reflect current state of read/write support + * dell_rbu: fix error check + * AFS: Amend the AFS configuration options + * Don't give bad kprobes example aka ") < 0))" typo + * fat: add fat_getattr() + * Fix strange size check in __get_vm_area_node() + * eCryptfs: CIFS nlink fixes + * scsi: clear garbage after CDBs on SG_IO + * IPoIB: Clear high octet in QP number + * x86-64: Fix vsyscall.c compilation on UP + * x86_64: fix CONFIG_CC_STACKPROTECTOR build bug + * OHCI: disallow autostop when wakeup is not available + * USB: ftdi_sio: adds vendor/product id for a RFID construction kit + * USB: ftdi driver pid for dmx-interfaces + * USB: Fix UCR-61S2B unusual_dev entry + * USB: OHCI: fix root-hub resume bug + * USB: correct keymapping on Powerbook built-in USB ISO keyboards + * USB Storage: unusual_devs.h entry for Sony Ericsson P990i + * USB: hid-core: Add quirk for new Apple keyboard/trackpad + * usb-storage: Remove duplicated unusual_devs.h entries for Sony Ericsson P990i + * USB: Fixed outdated usb_get_device_descriptor() documentation + * USB: ipaq: Add HTC Modem Support + * USB: auerswald possible memleak fix + * W1: ioremap balanced with iounmap + * debugfs: check return value correctly + * aoe: Add forgotten NULL at end of attribute list in aoeblk.c + * Fix radeon DDC regression + * Fix generic fb_ddc i2c edid probe msg + * lkkbd: Remove my old snail-mail address + * x86_64: stack unwinder crash fix + * i386/x86_64: ACPI cpu_idle_wait() fix + * lockdep: fix static keys in module-allocated percpu areas + * Update my CREDITS entry + * [CRYPTO] api: Remove one too many semicolon + * pcmcia: fix 'rmmod pcmcia' with unbound devices + * i2c-ixp4xx: fix ") != 0))" typo + * scx200_acb: handle PCI errors + * x86_64: fix memory hotplug build with NUMA=n + * ftape: fix printk format warnings + * fix build error for HISAX_NETJET + * m68knommu: fix up for the irq_handler_t changes + * Add "pure_initcall" for static variable initialization + + -- Ben Collins Wed, 15 Nov 2006 13:39:18 -0800 + +linux-source-2.6.19 (2.6.19-6.7) feisty; urgency=low + + [Ben Collins] + + * debian/post-install: Fix typo in asm-ppc header symlinking. + - GIT-SHA 6031489f1288795bface60bf3be309f70046ab58 + + [Upstream Kernel Changes] + + * [CIFS] NFS stress test generates flood of "close with pending write" messages + * [CIFS] Explicitly set stat->blksize + * bcm43xx: Drain TX status before starting IRQs + * bcm43xx: Add error checking in bcm43xx_sprom_write() + * x86-64: clean up io-apic accesses + * x86-64: write IO APIC irq routing entries in correct order + * [CIFS] Fix mount failure when domain not specified + * Regression in 2.6.19-rc microcode driver + * A minor fix for set_mb() in Documentation/memory-barriers.txt + * nfsd4: reindent do_open_lookup() + * nfsd4: fix open-create permissions + * i386: Force data segment to be 4K aligned + * dm: fix find_device race + * dm: suspend: fix error path + * dm: multipath: fix rr_add_path order + * dm: raid1: fix waiting for io on suspend + * drivers/telephony/ixj: fix an array overrun + * Tigran has moved + * md: change ONLINE/OFFLINE events to a single CHANGE event + * md: fix sizing problem with raid5-reshape and CONFIG_LBD=n + * md: do not freeze md threads for suspend + * kretprobe: fix kretprobe-booster to save regs and set status + * ia64: select ACPI_NUMA if ACPI + * sysctl: Undeprecate sys_sysctl + * IPMI: Clean up the waiting message queue properly on unload + * IPMI: retry messages on certain error returns + * ipmi_si_intf.c: fix "&& 0xff" typos + * htirq: refactor so we only have one function that writes to the chip + * htirq: allow buggy drivers of buggy hardware to write the registers + * IB/ipath - program intconfig register using new HT irq hook + * nfsd: fix spurious error return from nfsd_create in async case + * [POWERPC] Make sure initrd and dtb sections get into zImage correctly + * MMC: Poll card status after rescanning cards + * MMC: Do not set unsupported bits in OCR response + * IB/ehca: Assure 4K alignment for firmware control blocks + * [CIFS] Fix minor problem with previous patch + * [IPVS]: Compile fix for annotations in userland. + * [POWERPC] CPM_UART: Fix non-console transmit + * [POWERPC] CPM_UART: Fix non-console initialisation + * [POWERPC] pseries: Force 4k update_flash block and list sizes + * [POWERPC] Fix cell "new style" mapping and add debug + * [POWERPC] cell: set ARCH_SPARSEMEM_DEFAULT in Kconfig + * bonding: lockdep annotation + * com20020 build fix + * drivers cris: return on NULL dev_alloc_skb() + * [IPVS]: More endianness fixed. + * [XFS] 956618: Linux crashes on boot with XFS-DMAPI filesystem when + * [XFS] Keep lockdep happy. + * [XFS] rename uio_read() to xfs_uio_read() + * [XFS] 956664: dm_read_invis() changes i_atime + * [XFS] Clean up i_flags and i_flags_lock handling. + * [XFS] Prevent a deadlock when xfslogd unpins inodes. + * [XFS] Remove KERNEL_VERSION macros from xfs_dmapi.h + * V4L/DVB (4795): Tda826x: use correct max frequency + * V4L/DVB (4802): Cx88: fix remote control on WinFast 2000XP Expert + * V4L/DVB (4804): Fix missing i2c dependency for saa7110 + * V4L/DVB (4814): Remote support for Avermedia 777 + * V4L/DVB (4815): Remote support for Avermedia A16AR + * V4L/DVB (4816): Change tuner type for Avermedia A16AR + * V4L/DVB (4817): Fix uses of "&&" where "&" was intended + * V4L/DVB (4818): Flexcop-usb: fix debug printk + * vmalloc: optimization, cleanup, bugfixes + * pci: don't try to remove sysfs files before they are setup. + * mspec driver build fix + * IPMI: Fix more && typos + * Patch for nvidia divide by zero error for 7600 pci-express card + * Fix missing parens in set_personality() + * .gitignore: add miscellaneous files + * fix Data Acess error in dup_fd + * Fix misrouted interrupts deadlocks + * SCSI core: always store >= 36 bytes of INQUIRY data + * IB/ehca: Use named constant for max mtu + * IB/ehca: Activate scaling code by default + * RDMA/amso1100: Fix unitialized pseudo_netdev accessed in c2_register_device + * RDMA/amso1100: Fix && typo + * IB/mad: Fix race between cancel and receive completion + * Fix bad data direction in SG_IO + * ide-cd: only set rq->errors SCSI style for block pc requests + * [dvb saa7134] Fix missing 'break' for avermedia card case + -- Ben Collins Wed, 15 Nov 2006 13:37:45 -0800 + +linux-source-2.6.19 (2.6.19-5.7) feisty; urgency=low + + [Ben Collins] + + * ubuntu/acerhk: Make this X86_32 only. + - GIT-SHA 58f2ee6dede56d3e412f17561cca861ab155ebfc + + [Upstream Kernel Changes] + + * [ARM] 3917/1: Fix dmabounce symbol exports + * [ARM] 3915/1: S3C2412: Add s3c2410_gpio_getirq() to general gpio.c + * [ARM] 3912/1: Make PXA270 advertise HWCAP_IWMMXT capability + * [ARM] 3918/1: ixp4xx irq-chip rework + * [ARM] 3919/1: Fixed definition of some PXA270 CIF related registers + * [ARM] 3920/1: S3C24XX: Remove smdk2410_defconfig + * [ARM] 3921/1: S3C24XX: remove bast_defconfig + * [ARM] 3922/1: S3C24XX: update s3c2410_defconfig to 2.6.19-rc4 + * [ARM] 3923/1: S3C24XX: update s3c2410_defconfig with new drivers + * [ARM] 3926/1: make timer led handle HZ != 100 + * [ARM] 3927/1: Allow show_mem() to work with holes in memory map. + * Update for the srm_env driver. + * [NET]: kconfig, correct traffic shaper + * [TCP]: Don't use highmem in tcp hash size calculation. + * [PKT_SCHED] sch_htb: Use hlist_del_init(). + * [NETPOLL]: Compute checksum properly in netpoll_send_udp(). + * [NET]: Set truesize in pskb_copy + * [TG3]: Fix array overrun in tg3_read_partno(). + * [DECNET]: Endianess fixes (try #2) + * Linux 2.6.19-rc5 + * [libata] sata_via: fix obvious typo + + -- Ben Collins Tue, 07 Nov 2006 15:18:08 -0800 + +linux-source-2.6.19 (2.6.19-5.6) feisty; urgency=low + + [Ben Collins] + + * debian/bin/git-hooks: Add my hooks for git. + - GIT-SHA 2786fe5a5cd024947d2eec6d9f9014c8a91a4e21 + * acerhk: Acer Travelmate support for special keys. + - GIT-SHA 827225e724afd903b316359effdbb8ae1139cf7b + * rfswitch: Software radio kill switch support. + - GIT-SHA 911f283b4150f73809331a7bcd4812e8d9903a70 + * ubuntu/{av5100,pbe5}: Remove inclusion of linux/config.h + - GIT-SHA 5e6495e09eed2d37c5e19cb827d55b1372f81dbb + * ipg: Added ICPlus 1000A Gigabit Ethernet Driver + - GIT-SHA 9cf35c595ca98658a03932342a4b5d65e36b1226 + * ubuntu/ipg: Fix PCI device ide. + - GIT-SHA 2cc83690105c317ad32ab5340677e894448fe552 + * ipw3945: Update to v1.1.2 + - GIT-SHA 9ad82afb9d97986a46fa849f8e590c070d8a53b5 + * powerpc: Make sure to create arch/powerpc/include/asm symlink + - GIT-SHA 2d655eb92d3a1fa9cdfdd3d5cc01568f0e5d03a7 + + [Upstream Kernel Changes] + + * ieee80211: don't flood log with errors + * hostap_plx: fix CIS verification + * bcm43xx: Fix low-traffic netdev watchdog TX timeouts + * bcm43xx: fix unexpected LED control values in BCM4303 sprom + * V4L/DVB (4752): DVB: Add DVB_FE_CUSTOMISE support for MT2060 + * V4L/DVB (4785): Budget-ci: Change DEBIADDR_IR to a safer default + * V4L/DVB (4786): Pvrusb2: use NULL instead of 0 + * V4L/DVB (4787): Budget-ci: Inversion setting fixed for Technotrend 1500 T + * V4L/DVB (4770): Fix mode switch of Compro Videomate T300 + * V4L/DVB (4784): [saa7146_i2c] short_delay mode fixed for fast machines + * V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel + * [IPX]: Trivial parts of endianness annotations + * [IPX]: Annotate and fix IPX checksum + * [IPV6]: Fix ECN bug on big-endian + * [NETFILTER] bug: NFULA_CFG_QTHRESH uses 32bit + * [NETFILTER] bug: nfulnl_msg_config_mode ->copy_range is 32bit + * [NETFILTER] bug: skb->protocol is already net-endian + * [TG3]: Fix 2nd ifup failure on 5752M. + * [PKTGEN]: TCI endianness fixes + * [NET]: __alloc_pages() failures reported due to fragmentation + * [IPV6]: Add ndisc_netdev_notifier unregister. + * [IPV6]: Give sit driver an appropriate module alias. + * [NETLABEL]: Fix build failure. + * [SPARC]: Fix robust futex syscalls and wire up migrate_pages. + * ehea: Nullpointer dereferencation fix + * ehea: Removed redundant define + * ehea: 64K page support fix + * Kconfig: remove redundant NETDEVICES depends + * AVR32: Get rid of board_early_init + * AVR32: Fix thinko in generic_find_next_zero_le_bit() + * Fix the spurious unlock_cpu_hotplug false warnings + * Fix for LKDTM MEM_SWAPOUT crashpoint + * isdn/gigaset: convert warning message + * lockdep: fix delayacct locking bug + * Improve the removed sysctl warnings + * sysctl: allow a zero ctl_name in the middle of a sysctl table + * sysctl: implement CTL_UNNUMBERED + * sunrpc: add missing spin_unlock + * [S390] revert add_active_range() usage patch. + * [S390] IRQs too early enabled. + * AVR32: Wire up sys_epoll_pwait + * AVR32: Add missing return instruction in __raw_writesb + * [GFS2] don't panic needlessly + * [GFS2] Fix incorrect fs sync behaviour. + * [GFS2] Fix OOM error handling + * [DLM] Fix kref_put oops + * [DLM] fix oops in kref_put when removing a lockspace + * [MIPS] Ocelot C: Fix large number of warnings. + * [MIPS] Ocelot C: fix eth registration after conversion to platform_device + * [MIPS] Ocelot C: Fix warning about missmatching format string. + * [MIPS] Ocelot C: Fix mapping of ioport address range. + * [MIPS] Ocelot 3: Fix large number of warnings. + * [MIPS] SB1: On bootup only flush cache on local CPU. + * [MIPS] Ocelot C: Fix MAC address detection after platform_device conversion. + * [MIPS] Ocelot 3: Fix MAC address detection after platform_device conversion. + * [MIPS] EV64120: Fix timer initialization for HZ != 100. + * [MIPS] Make irq number allocator generally available for fixing EV64120. + * [MIPS] EV64120: Fix PCI interrupt allocation. + * [MIPS] Fix EV64120 and Ocelot builds by providing a plat_timer_setup(). + * b44: change comment about irq mask register + * e1000: Fix regression: garbled stats and irq allocation during swsusp + + -- Ben Collins Tue, 7 Nov 2006 14:17:22 -0800 + +linux-source-2.6.19 (2.6.19-5.5) feisty; urgency=low + + [Ben Collins] + + * dev_acpi: Added ACPI Device driver + - GIT-SHA e076c92971e36ea2e629be25462ab40ad20cb704 + * pcc-acpi: Panasonc ACPI Driver + - GIT-SHA 95569514a203153c4c4496c8d9c118b39785022c + * ubuntu/acpi: New driver section + - GIT-SHA e22846d3da0ed6f835bcb60485a9bc93eb9ffc6a + * sony_acpi: Add Sony ACPI Laptop driver + - GIT-SHA e4d2ffe08e0b6930582bd81938fe7d2730a0b953 + * tc1100-wmi: Add IBM TC1100 WMI driver + - GIT-SHA e69c9de0b0a12f0917e2f2266c128dd2752c56f2 + * debian: Enable ABI checking + - GIT-SHA 328078e283ff6eacaf5d1a62720fede1e2a68780 + * ubuntu/acpi: Make ACPI sub menu depend on ACPI + - GIT-SHA f55d355afa1ed54296103ddc1f05afb08e5cfca0 + * debian/rules: Export KPKG_ARCH for post-install script. + - GIT-SHA d1669dc891344b6c155037d81234e0218bfbba90 + * ubuntu: Fix wireless drivers to be compatible with WE >= 21 + - GIT-SHA 2e0a08b1d1451201bcac8dae36cd42fdf07735e1 + + [Upstream Kernel Changes] + + * [IA64] don't double >> PAGE_SHIFT pointer for /dev/kmem access + * jfs: Add splice support + * [CIFS] Fix readdir breakage when blocksize set too small + * [CIFS] Allow null user connections + * [NET] sealevel: uses arp_broken_ops + * [APPLETALK]: Fix potential OOPS in atalk_sendmsg(). + * [XFRM] xfrm_user: Fix unaligned accesses. + * [NET]: Fix segmentation of linear packets + * [DCCP]: fix printk format warnings + * [ETH1394]: Fix unaligned accesses. + * [SCTP]: Always linearise packet on input + * [NET]: fix uaccess handling + * [IPV6]: fix lockup via /proc/net/ip6_flowlabel + * [NETFILTER]: remove masq/NAT from ip6tables Kconfig help + * [NETFILTER]: Missed and reordered checks in {arp,ip,ip6}_tables + * [NETFILTER]: ip_tables: compat error way cleanup + * [NETFILTER]: nf_conntrack: add missing unlock in get_next_corpse() + * [NETFILTER]: ip_tables: compat code module refcounting fix + * [NetLabel]: protect the CIPSOv4 socket option from setsockopt() + * [SCTP]: Correctly set IP id for SCTP traffic + * [SCTP]: Remove temporary associations from backlog and hash. + * [IPV6]: return EINVAL for invalid address with flowlabel lease request + * [SPARC64]: Fix Tomatillo/Schizo IRQ handling. + * [SPARC64]: Add some missing print_symbol() calls. + * sh: Wire up new syscalls. + * video: Fix include in hp680_bl. + * sh: Update r7780rp_defconfig. + * sh: Fix IPR-IRQ's for IRQ-chip change breakage. + * sh: Titan defconfig update. + * IB/iser: Start connection after enabling iSER + * RDMA/cma: rdma_bind_addr() leaks a cma_dev reference count + * IB/ehca: Fix eHCA driver compilation for uniprocessor + * IB/amso1100: Use dma_alloc_coherent() instead of kmalloc/dma_map_single + * IB/amso1100: Fix incorrect pr_debug() + * IB/uverbs: Return sq_draining value in query_qp response + * [IPV6]: fix flowlabel seqfile handling + * find_bd_holder() fix + * uml ubd driver: allow using up to 16 UBD devices + * uml ubd driver: document some struct fields + * uml ubd driver: var renames + * uml ubd driver: give better names to some functions. + * uml ubd driver: change ubd_lock to be a mutex + * uml ubd driver: ubd_io_lock usage fixup + * uml ubd driver: convert do_ubd to a boolean variable + * uml ubd driver: reformat ubd_config + * uml ubd driver: use bitfields where possible + * uml ubd driver: do not store error codes as ->fd + * uml ubd driver: various little changes + * uml: add _text definition to linker scripts + * uml: add INITCALLS + * taskstats: fix sub-threads accounting + * eCryptfs: Clean up crypto initialization + * eCryptfs: Hash code to new crypto API + * eCryptfs: Cipher code to new crypto API + * eCryptfs: Consolidate lower dentry_open's + * eCryptfs: Remove ecryptfs_umount_begin + * eCryptfs: Fix handling of lower d_count + * md: check bio address after mapping through partitions. + * CFQ: request <-> request merging rr_list fixup + * SCSI: ISCSI build failure + * IB/mthca: Fix MAD extended header format for MAD_IFC firmware command + * [MIPS] TX4927: Remove indent error message that somehow ended in the code. + * [MIPS] Add missing file for support of backplane on TX4927 based board + * [MIPS] Sort out missuse of __init for prom_getcmdline() + * [MIPS] Yosemite: fix uninitialized variable in titan_i2c_xfer() + * [MIPS] Fix warning of printk format in mips_srs_init() + * [MIPS] VSMP: Fix initialization ordering bug. + * [MIPS] Flags must be unsigned long. + * [MIPS] VSMP: Synchronize cp0 counters on bootup. + * [MIPS] Fixup migration to GENERIC_TIME + * [IA64] cpu-hotplug: Fixing confliction between CPU hot-add and IPI + * [IA64] MCA recovery: Montecito support + * [IA64] move SAL_CACHE_FLUSH check later in boot + * [IA64] Correct definition of handle_IPI + * ep93xx_eth: fix RX/TXstatus ring full handling + * ep93xx_eth: fix unlikely(x) > y test + * ep93xx_eth: don't report RX errors + * tokenring: fix module_init error handling + * n2: fix confusing error code + * sky2: not experimental + * myri10ge: ServerWorks HT2000 PCI id is already defined in pci_ids.h + * ehea: kzalloc GFP_ATOMIC fix + * net s2io: return on NULL dev_alloc_skb() + * skge, sky2, et all. gplv2 only + * sky2: netpoll on dual port cards + * sata_sis: fix flags handling for the secondary port + * Add 0x7110 piix to ata_piix.c + * libata: unexport ata_dev_revalidate() + * ata_piix: allow 01b MAP for both ICH6M and ICH7M + * [POWERPC] Fix various offb issues + * [POWERPC] Fix rmb() for e500-based machines it + * [POWERPC] Fix oprofile support for e500 in arch/powerpc + * [POWERPC] Use 4kB iommu pages even on 64kB-page systems + * [POWERPC] qe_lib: qe_issue_cmd writes wrong value to CECDR + * [POWERPC] Make current preempt-safe + * [POWERPC] Make high hugepage areas preempt safe + * [POWERPC] Make mmiowb's io_sync preempt safe + * [POWERPC] Disallow kprobes on emulate_step and branch_taken + * [POWERPC] Make alignment exception always check exception table + * ahci: fix status register check in ahci_softreset + * [libata] sata_nv: Add PCI IDs + * i386: clean up io-apic accesses + * [MIPS] 16K & 64K page size fixes + * [MIPS] SMTC: Fix crash if # of TC's > # of VPE's after pt_regs irq cleanup. + * [MIPS] SMTC: Synchronize cp0 counters on bootup. + * [MIPS] Fix warning in mips-boards generic PCI + * i386: write IO APIC irq routing entries in correct order + * powerpc: Eliminate "exceeds stub group size" linker warning + * [TIPC] net/tipc/port.c: fix NULL dereference + * [TCP]: Set default congestion control when no sysctl. + * [IPV6]: File the fingerprints off ah6->spi/esp6->spi + * [SPARC64]: Fix futex_atomic_cmpxchg_inatomic implementation. + * [CIFS] report rename failure when target file is locked by Windows + * [MIPS] Fix merge screwup by patch(1) + * [MIPS] IP27: Allow SMP ;-) Another changeset messed up by patch. + * [MIPS] Fix warning about init_initrd() call if !CONFIG_BLK_DEV_INITRD. + * [MIPS] Ocelot G: Fix : "CURRENTLY_UNUSED" is not defined warning. + * [MIPS] Don't use R10000 llsc workaround version for all llsc-full processors. + * [MIPS] Do not use -msym32 option for modules. + * RDMA/addr: Use client registration to fix module unload race + * [libata] Add support for PATA controllers of MCP67 to pata_amd.c. + * [libata] Add support for AHCI controllers of MCP67. + * pci_ids.h: Add NVIDIA PCI ID + * PCI: Revert "PCI: i386/x86_84: disable PCI resource decode on device disable" + * PCI: Let PCI_MULTITHREAD_PROBE depend on BROKEN + * USB: add another sierra wireless device id + * USB: usb-storage: Unusual_dev update + * hid-core: big-endian fix fix + * USB: new VID/PID-combos for cp2101 + * USB: sierra: Fix id for Sierra Wireless MC8755 in new table + * usbtouchscreen: use endpoint address from endpoint descriptor + * USB: failure in usblp's error path + * USB: usblp: fix system suspend for some systems + * USB: HID: add blacklist AIRcable USB, little beautification + * USB: fix compiler issues with newer gcc versions + * USB: xpad: additional USB id's added + * USB Storage: unusual_devs.h entry for Sony Ericsson P990i + * USB: use MII hooks only if CONFIG_MII is enabled + * eCryptfs: Fix pointer deref + * tidy "md: check bio address after mapping through partitions" + * md: send online/offline uevents when an md array starts/stops + * sys_pselect7 vs compat_sys_pselect7 uaccess error handling + * update some docbook comments + * docbook: merge journal-api into filesystems.tmpl + * Fix ipc entries removal + * mm: un-needed add-store operation wastes a few bytes + * fix UFS superblock alignment issues + * lkdtm: cleanup headers and module_param/MODULE_PARM_DESC + * Cleanup read_pages() + * cifs: ->readpages() fixes + * fuse: ->readpages() cleanup + * gfs2: ->readpages() fixes + * edac_mc: fix error handling + * NFS4: fix for recursive locking problem + * ipmi_si_intf.c sets bad class_mask with PCI_DEVICE_CLASS + * init_reap_node() initialization fix + * Add printk_timed_ratelimit() + * schedule removal of FUTEX_FD + * acpi_noirq section fix + * swsusp: debugging + * spi section fix + * reiserfs: reset errval after initializing bitmap cache + * uml: fix I/O hang + * uml: include tidying + * Create compat_sys_migrate_pages + * powerpc: wire up sys_migrate_pages + * drivers/isdn/hysdn/hysdn_sched.c: sleep after taking spinlock fix + * fix Documentation/accounting/getdelays.c buf size + * IDE: Add the support of nvidia PATA controllers of MCP67 to amd74xx.c + * Fix sys_move_pages when a NULL node list is passed + * Fix user.* xattr permission check for sticky dirs + * splice: fix problem introduced with inode diet + * Revert unintentional "volatile" changes in ipc/msg.c + * Fix unlikely (but possible) race condition on task->user access + * Make sure "user->sigpending" count is in sync + + -- Ben Collins Mon, 6 Nov 2006 07:11:08 -0800 + +linux-source-2.6.19 (2.6.19-4.4) feisty; urgency=low + + [Ben Collins] + + * debian: Fix ppc defconfig, and d-i braindamage + - GIT-SHA 3805cd5ab6796f26fdd2b69d58d72d5bf33f96bb + * debian: Prefix make-kpkg calls with sparc64 on sparc for now. + - GIT-SHA 3b2a6a332c9febffda9cdc26a9a0572ec859e999 + + [Upstream Kernel Changes] + + * CFQ: use irq safe locking in cfq_cic_link() + * CFQ: bad locking in changed_ioprio() + * Fix dmsetup table output change + * ioc4_serial: irq flags fix + * ndiswrapper: don't set the module->taints flags + * isdn/gigaset: avoid cs->dev null pointer dereference + * lockdep: annotate DECLARE_WAIT_QUEUE_HEAD + * cryptocop: double spin_lock_irqsave() + * MTD: fix last kernel-doc warning + * docbook: make a filesystems book + * Fix "Remove the use of _syscallX macros in UML" + * uml: fix compilation options for USER_OBJS + * xacct_add_tsk: fix pure theoretical ->mm use-after-free + * drivers/ide/pci/generic.c: add missing newline to the all-generic-ide message + * sunrpc: fix refcounting problems in rpc servers + * APM: URL of APM 1.2 specs has changed + * fix "sunrpc: fix refcounting problems in rpc servers" + * fix i386 regparm=3 RT signal handlers on x86_64 + * [MIPS] Oprofile: fix on non-VSMP / non-SMTC SMP configurations. + * [MIPS] Au1xx0 code sets incorrect mips_hpt_frequency + * [MIPS] Oprofile: Fix MIPSxx counter number detection. + * [MIPS] SMTC: Make 8 the default number of processors. + * [MIPS] Fix warning about unused definition in c-sb1.c + * [MIPS] Make SB1 cache flushes not to use on_each_cpu + * [MIPS] Wire up getcpu(2) and epoll_wait(2) syscalls. + * [MIPS] Au1000: Fix warning about unused variable. + * [MIPS] Fix return value of TXX9 SPI interrupt handler + * [MIPS] Ocelot G: Fix build error and numerous warnings. + * [MIPS] EMMA 2 / Markeins: Fix build wreckage due to genirq wreckage. + * [MIPS] EMMA 2 / Markeins: Formitting fixes split from actual address fixes. + * [MIPS] EMMA 2 / Markeins: Convert to name struct resource initialization. + * [MIPS] EMMA 2 / Markeins: struct resource takes physical addresses. + * [MIPS] JMR3927: Fixup another victim of the irq pt_regs cleanup. + * [MIPS] MIPS doesn't need compat_sys_getdents. + * fix bd_claim_by_kobject error handling + * clean up add_bd_holder() + * Linux 2.6.19-rc4 + + -- Ben Collins Tue, 31 Oct 2006 10:45:07 -0500 + +linux-source-2.6.19 (2.6.19-3.3) feisty; urgency=low + + [Ben Collins] + + * Revert "ppc: Add defconfig for build" + - GIT-SHA 540057c30de97922c99dcd198e1535c3986abfa0 + * debian: Add defconfig setting for each arch + - GIT-SHA 03248c8d8e00151e085448684eacdafb3acc0833 + * debian/rules: Re-add kernel-wedge workaround to fix sparc FTBFS + - GIT-SHA b0ea4d18b8c8bfdef670980700b2f78948205819 + + -- Ben Collins Tue, 31 Oct 2006 10:02:36 -0500 + +linux-source-2.6.19 (2.6.19-2.2) feisty; urgency=low + + [Ben Collins] + + * btsco: Added new driver + - GIT-SHA 18b128d55a6297da941055abda677cde1c1086ed + * at76: Atmel USB Driver + - GIT-SHA f2460fe216447baa35b7f7a9ca8d440f4922719e + * at76-usb-firmware: Added firmware for Atmel USB + - GIT-SHA b618084d1cf221755848d42bb5b45fe5b97479e1 + * ppc: Add defconfig for build + - GIT-SHA 7eefca4e80cd6016ecec0cf27e1e9dadb05e2e9f + * debian: git-ubuntu-log: Ommit matching revert/commits. + - GIT-SHA 68ed886f702f70e43f4e835d768a38309a4120ca + * debian: Fix KPKG_(ARCH|SUBARCH) to fix sparc64 build failure. + - GIT-SHA 0973b171e2334735687c647673e76f94d21a6d3c + * debian: insert-changes: New script. + - GIT-SHA 492ef6bf5f17554ab82ab170e728e51de7fc1fb1 + + [Upstream Kernel Changes] + + * e1000: FIX: don't poke at manageability registers for incompatible adapters + * e1000: FIX: 82542 doesn't support WoL + * e1000: FIX: fix wrong txdctl threshold bitmasks + * e1000: FIX: Disable Packet Split for non jumbo frames + * e1000: FIX: Don't limit descriptor size to 4kb for PCI-E adapters + * e1000: FIX: move length adjustment due to crc stripping disabled. + * e1000: Increment version to 7.2.9-k4 + * e100: account for closed interface when shutting down + * pcmcia: at91_cf update + * pcmcia: add more IDs to hostap_cs.c + * pcmcia: update alloc_io_space for conflict checking for multifunction PC card + * pcmcia/ds: driver layer error checking + * CONFIG_PM=n slim: drivers/pcmcia/* + * i82092: wire up errors from pci_register_driver() + * pcmcia: au1000_generic fix + * ioremap balanced with iounmap for drivers/pcmcia + * Export soc_common_drv_pcmcia_remove to allow modular PCMCIA. + * PCMCIA: handle sysfs, PCI errors + * PCMCIA: fix __must_check warnings + * [SPARC64]: Fix central/FHC bus handling on Ex000 systems. + * [SPARC64]: Fix memory corruption in pci_4u_free_consistent(). + * [TCP] cubic: scaling error + * [TCP] H-TCP: fix integer overflow + * [BRIDGE]: correct print message typo + * [SPARC]: Fix bus_id[] string overflow. + * [S390] sys_getcpu compat wrapper. + * [S390] Initialize interval value to 0. + * [S390] cio: css_probe_device() must be called enabled. + * [S390] uaccess error handling. + * [S390] Improve AP bus device removal. + * [S390] cio: Make ccw_device_register() static. + * acpiphp: fix latch status + * PCI: fix pci_fixup_video as it blows up on sparc64 + * PCI: x86-64: mmconfig missing printk levels + * PCI: reset pci device state to unknown state for resume + * PCI: Remove quirk_via_abnormal_poweroff + * vmlinux.lds: consolidate initcall sections + * drivers: wait for threaded probes between initcall levels + * silence 'make xmldocs' warning by adding missing description of 'raw' in nand_base.c:1485 + * [ARM] Fix SMP irqflags support + * [ARM] Add realview SMP default configuration + * [ARM] Add __must_check to uaccess functions + * [ARM] 3909/1: Disable UWIND_INFO for ARM (again) + * [ARM] 3899/1: Fix the normalization of the denormal double precision number. + * [ARM] 3900/1: Fix VFP Division by Zero exception handling. + * mm: clean up pagecache allocation + * vmscan: Fix temp_priority race + * Use min of two prio settings in calculating distress for reclaim + * ext4: fix printk format warnings + * jbd: journal_dirty_data re-check for unmapped buffers + * jbd2: journal_dirty_data re-check for unmapped buffers + * fix efi_memory_present_wrapper() + * md: fix bug where spares don't always get rebuilt properly when they become live + * md: simplify checking of available size when resizing an array + * md: fix up maintenance of ->degraded in multipath + * md: fix printk format warnings, seen on powerpc64: + * memory hotplug: __GFP_NOWARN is better for __kmalloc_section_memmap() + * Fix potential OOPs in blkdev_open() + * __vmalloc with GFP_ATOMIC causes 'sleeping from invalid context' + * visws build fix + * Add missing space in module.c for taintskernel + * ioc4: fix printk format warning + * cciss: fix printk format warning + * hugetlb: fix size=4G parsing + * hugetlb: fix prio_tree unit + * hugetlb: fix absurd HugePages_Rsvd + * missing unused dentry in prune_dcache()? + * VFS: Fix an error in unused dentry counting + * Constify compat_get_bitmap argument + * strstrip remove last blank fix + * fill_tgid: fix task_struct leak and possible oops + * bacct_add_tsk: fix unsafe and wrong parent/group_leader dereference + * taskstats_tgid_free: fix usage + * taskstats_tgid_alloc: optimization + * taskstats: kill ->taskstats_lock in favor of ->siglock + * taskstats: don't use tasklist_lock + * fill_tgid: cleanup delays accounting + * move SYS_HYPERVISOR inside the Generic Driver menu + * time_adjust cleared before use + * cpu-hotplug: release `workqueue_mutex' properly on CPU hot-remove + * JMB 368 PATA detection + * workqueue: update kerneldoc + * Calculation fix for memory holes beyong the end of physical memory + * [ARM] Fix i2c-pxa slave mode support + * [ARM] Fix suspend oops caused by PXA2xx PCMCIA driver + * [ARM] Add KBUILD_IMAGE target support + * Fix GFP_HIGHMEM slab panic + * [ARM] 3913/1: n2100: fix IRQ routing for second ethernet port + * ieee1394: ohci1394: revert fail on error in suspend + * taskstats: fix sk_buff leak + * taskstats: fix sk_buff size calculation + * m68k: consolidate initcall sections + * [WATCHDOG] sc1200wdt.c pnp unregister fix. + + + -- Ben Collins Thu, 26 Oct 2006 23:16:13 -0400 + +linux-source-2.6.19 (2.6.19-1.1) feisty; urgency=low + + [Ben Collins] + + * Makefile: Disable compiler stack protection + - GIT-SHA 88e5d8158cceacb7e7b559f5af74f729a17ade71 + * Add git-ubuntu-log parsing script. + - GIT-SHA 5d781e48af9265470bc5de9cfd072b80918e1db8 + * Disable APIC on UP machines by default + - GIT-SHA ce3c49d6164180bcb0e5d6a455f3ae163914af52 + * Quieten compressed boot messages. + - GIT-SHA b31aa3e4c69d1fc4868d39dc63bc2a4baab497b1 + * Add config option to disable hyperthreading by default + - GIT-SHA 161459709590b06c515c7e2657c376e28a98fdc1 + * Default to dongle type 9 on IBM hardware. + - GIT-SHA eb2eaa11c75f1c656a3bef54bef3e8c92e52049d + * Add "TOSHIBA CD-ROM XM-1702BC" to ide-dma blacklist + - GIT-SHA e64e371c8cdba5c0af8d8c8eaef69f07cd3b87b5 + * net/sunhme: Fix Sun Happy Meal ethernet lockups on Ultra 1E + - GIT-SHA add87b82b6ea9b4a9c695d4fb0b5ae1d4ce655cc + * pcmcia: Do not insert pcmcia cards on resume + - GIT-SHA 9334fc580d26a92c81651df4669ce8c19a68b260 + * scsi/BusLogic: Add MODULE_DEVICE_TABLE for autoloading + - GIT-SHA 55f6d5c8bf31270f7289ce9865cb15528327cca8 + * input/mouse/alps: Do not call psmouse_reset() for alps + - GIT-SHA fb3c8d616c602b8876dc50e89ac4987f5ba05bfe + * scsi: Add Matshita DMC-LC33 to devlist + - GIT-SHA b7f273bde8e6e02a6dea490f877ef9ee4f390448 + * scsi: Restore generic SCSI proc_info function + - GIT-SHA 9c1a5525614014486d2ba5ed1181f777c55587f3 + * ide: Make some drivers modular + - GIT-SHA 9ecb5d7cc5db4071f4d9218f8acff96ab5d599f0 + * ide/pnp: Allow ide-pnp to be modular. + - GIT-SHA 924f6bd12dc99b5176940895ec26607f2144b0f1 + * video/vesafb: Modularize + - GIT-SHA f160678572c5cbd97cc96a761d95646fb4c3a50f + * pcmcia: Add missing device releases + - GIT-SHA e3eeb6ee8e14cdcaccf0213446bef4a26ba78bcb + * general: Quieten noisy printk's + - GIT-SHA 13dbeb0d68d892cce0483594fbd795c289ae7c27 + * acpi: Allow loading of DSDT from initrd + - GIT-SHA 5272d84c2ae7ad6dcf98ec83fe2f510a0b8912ee + * ide: Cleaner merge of ide_scan_pcibus() changes (modular) + - GIT-SHA ab460a6bf9bb00b39443190efbc44cf8a9358032 + * video/vesafb: Fixup vesafb modular code to merge with platform driver changes. + - GIT-SHA 08c62e8dea078ca4510f00bbf1e8dce0cef53716 + * ide: Export ide_scan_direction + - GIT-SHA 1b49a08481e74417c114f16c2c6ec0e4e6d282e0 + * ide: Fix Oops in IDE caused by __init for ide_pci_scanbus() + - GIT-SHA d3e3800f6826c7a57872dd22ac93d034d36c91db + * fs: Revert bd_claim change. + - GIT-SHA 8cbff5a651066cd43f6736a45181c0549d91662a + * drivers/video: Fix some video drivers unchecked use of nvram functions + - GIT-SHA e79b253cceeee1f4022b825e3c6acbc9690b81a7 + * tulip: Fix for Uli5261 chipsets. + - GIT-SHA 278130f8818f8ac6550760807815d24dbeee6470 + * net/tulip: Define ULI PCI ID's + - GIT-SHA 68cdca366a7410a1a5c86f1365072edfedbc911c + * ia64: Export some extra symbols so we can build vga16fb + - GIT-SHA 48b37aa458e7e61f396f0bc2e4b8a4bdd039005a + * video: Enable VesaFB for ia64. + - GIT-SHA 9d859229d3ec3bb4325b65e05387f2d6cd12627f + * ide: Revert some of the "modular ide" patch. + - GIT-SHA ccbe68cc3928e6275f4fefed7856c7754d10dd84 + * vga16fb: Set default timings to 640x400 for compatibility. + - GIT-SHA 20556d56d5e13a642d5da77e4fd877f00a63bbdc + * block: Make CDROMEJECT more robust + - GIT-SHA 933956f84fdb520d9cce720fabbb6236efaa188f + * powerpc: Disable prom_printf + - GIT-SHA 52bca28eb10d88db59b8b16fd28f7bd71c859404 + * ide-cd: Disable verbose errors. + - GIT-SHA 72d40db7ba7478afe35e7302d0d61c2bcd41fa53 + * tulip: Fix mdio related lockups. Update from upstream driver. + - GIT-SHA e74fe2962b8fde95756505782a3226a5e30b92c2 + * input: Allow root to inject unknown scan codes. + - GIT-SHA 9dba2e8158382af26d4460242ffe6d45803f43fb + * 3w-9xxx: Add .proc_name member to scsi_host_template + - GIT-SHA a120864ddf97dcaf0a5565ffd2539852e884f411 + * synaptics: Add Toshiba Protege M300 to rate=40 blacklist. + - GIT-SHA d9b4f0e739d81b75fae3f9545d598d865e391e35 + * vga16fb: Do not use 640x480 on certain machines + - GIT-SHA faffc346a48402547964adde5b5c4bf3b37572a8 + * forcedeth: Let the driver work when no PHY is found + - GIT-SHA eb2bbfea12d9f3599ed6019fce78a5bb3b70f9d8 + - Bug #45257 + * tulip: Let dmfe handle davicom on non-sparc. + - GIT-SHA 901dcff694d2c177078a2f9a0e81d765c7db41fb + - Bug #48287 + * speakup: Driver addition + - GIT-SHA 1cf0afb09a96f1c381a9ac42ab56115c957177ab + * kbd: Fix typo in speakup patch + - GIT-SHA 71aeabbdc6e922a454cbb96c93bda44cd6f34613 + * powerpc: Allow config of pSeries panel message + - GIT-SHA 8290fcc662b7a9cb3035222f3c2f0160f5a14fcd + * general: crash helper support for apport + - GIT-SHA d9291b92a80b54e2212348ff82cd6c374351dd05 + * version: Implement version_signature proc file. + - GIT-SHA 87c212ae348ed89e2177af1907fbfff22b758eb4 + * hid-core: Add noget quirk for turbox keyboard. + - GIT-SHA c6ecb350590cbbb62207ecda8acdb36dc503830e + * ipw2100: Add option to disable C3/C4 state transistions. + - GIT-SHA a2a9f735de0c61a7be45ab0c55eea593098de70a + * ubuntu: Create ubuntu driver directory. + - GIT-SHA ce47ddb0f4e34a60599bedc8f0bff996ed252e6f + * hdrinst: Add stub for gfs headers + - GIT-SHA 6fde7f59fd4e921d8255c2fd6ebabc622c88947c + * general: Add MODULE_DEV_TABLE to some drivers for autoloading. + - GIT-SHA bef1c07e02bd1fb0bb2eb020e5c58dd12e56d53f + * i8042: Quiten message about no controlles being found. + - GIT-SHA a438ddf2becf5f6d4a5db68acf0cd9648030d192 + * asfs: Add Amiga Smart File System + - GIT-SHA 63e625a65070eee461f5f4bedd550e39ed8c171e + * kbuild: Add ubuntu/include/ for external driver includes. + - GIT-SHA 6cc08947078031622ef777dc91630b2a25e1cc51 + * fs: Export __d_path symbol for dazuko. + - GIT-SHA f816e1d4eab62bc229991a614f63731f599bf9ae + * speakup: Merges fixes and patches from Edgy. + - GIT-SHA d2c7021c474d7bbaeafd96f890471476514e219d + * ixj: Fix PCI vendor/device ID's for QUICKNET. + - GIT-SHA 7742c3f2837c62c64c08736ca8f6b8931258ba6b + * asfs: Compile fixes. + - GIT-SHA da4e90d5cb6bc656861de64cb200d6de124c39ce + * vt: Fix speakup code to compile. + - GIT-SHA a0ec07a4417656566e19d8415dbc86e91d6f974a + * kbuild: Fix location of ubuntu/include addition to LINUXINCLUDES + - GIT-SHA a30f7b62339415a90a6024ada0e2f10f86a85dbd + * general: Various compile fixes for edgy patch merges. + - GIT-SHA eea36c5c4f202eb95108fd8c1ef9fe5f38c10bcf + * dazuko: Added driver + - GIT-SHA 1283c07c2260047335a58be437dc8ba558011770 + * squashfs: Added v3.1-r2 driver + - GIT-SHA 6acce7627f044b72930dd6cc563aed9559a4b8c4 + * unionfs: Add 20060916 snapshot + - GIT-SHA c375f3b13be8c1f3aba1316b01332f7951d4dda2 + * gfs: Merged from Edgy + - GIT-SHA 29decd8128961ed2a79235240172ec2f646103f4 + * rt2x00: Added drivers from Edgy with build fixes. + - GIT-SHA e8a710260e32cefb7236a8bd3a111387818786c0 + * linux-wlan-ng: Added driver + - GIT-SHA 36d255e73f30f68a23d61048d3f0627bc5241025 + * ndsiwrapper: Added driver + - GIT-SHA f1e27ae3a39b0d389f212df44d6ab5468d04647d + * cloop: Added compressed loop driver + - GIT-SHA 26cb677f9b9205a2ed77a4ee4c554bcdd498eaa4 + * dm-bbr: Added new driver + - GIT-SHA ee36ac9e9c3065f8f594493a3be2e0ae4196e46e + * acx: Add driver from Edgy + - GIT-SHA 959183847e71f99bee6e5682708a672b9c2abd02 + * ipw3945: Add new driver + - GIT-SHA cc542d63e9bc05438570c084e6b701e82aafbda2 + * adm8211: Add new driver + - GIT-SHA 6a9957bd934f4db1dc80a5d7b48638e3373d7c88 + * rtl818x: Add new drivers + - GIT-SHA 9533d6e292539fae27c6062dbf4ba2b663caaa28 + * prism54_softmac: Add new driver + - GIT-SHA 559b895c45424e974caadc3ec249d5cdbcd5ddf4 + * fsam7400: Add new driver + - GIT-SHA 78b8978053c2ee6d0cbd42aec330d6ee2b555212 + * mol: Add Mac-On-Linux driver + - GIT-SHA 51410652caa26b301d6ac968d6fce04c1f21d925 + * ov511: Add ov511 camera driver + - GIT-SHA 63f1564f55645b26f157c418a6e28fb49b23a52b + * zd1211: Install firmware in subdirectory, like the driver expects it. + - GIT-SHA 33564d1acfa96e8cba778e2efb6b0376aad09e12 + * kbuild: Do not add debian/ to clean-dirs. + - GIT-SHA 8e1027b4fefded38704dd473394e2f7238012940 + * debian/: We don't need to run make-kpkg clean in the top level. + - GIT-SHA a8e5dc70095ebd21e21896c82cab8394e5c25a7c + * ubuntu/: Update all drivers for 2.6.19 changes + - GIT-SHA a8dc19f626a200ee837af570ce59a732b3094aa5 + * ubuntu/: More fixes for warnings. ubuntu/ is pretty much warning free + - GIT-SHA 807da64fba9aa414f256ea4d5664a448f9023d78 + * gfs2/dlm: Remove. These modules are in-tree now. + - GIT-SHA bb62e6c94034978605cc148d6c94dd15036eaf4e + * gfs2: Export extra symbols for gfs1 + - GIT-SHA d999702b86414c59d62f9b34450129a9221b523d + * kbuild: Allow header_install to work with O= + - GIT-SHA afa95b842e7b00b21537f2203e4879c2d860a3e9 + * debian/d-i: Update md-modules udeb list. + - GIT-SHA ed24b1fc393feb10061f83bbf152f7718cc94a83 + * debian/: Complete rework of d-i (kernel-wedge) handling + - GIT-SHA 435d7a8fa97f08f1ed39520bf4122434ad7d57ac + * ide: Disable some PCI entries when duplicate ATA driver is enabled. + - GIT-SHA c97951e8a2b085c6ec47fee8f1f933185bde3d75 + * fsam7400: Include linux/io.h for check_signature() + - GIT-SHA fb04e20928624ec398c54131fa7736a2fb6a971e + * sbus: BBC and ENVCTRL both need to be built-in + - GIT-SHA 75bc2c9764754ae2b446ac5613b7a33c2d7a0379 + * prism2: Make modules depend on subsystems. + - GIT-SHA 5d084bc0a60a146d81a910580eeb29a7e92d89d6 + * sparc: Fix some section mismatch warnings from sbus modules. + - GIT-SHA a1e1b46410e1095bad4e401d7bc0591d44137e2a + * kbuild: Remove local change for -fno-stack-protector. + - GIT-SHA 10137f027764e20df233111725a7b148047d92d1 + * sbus/char, synaptics: Revert local Ubuntu changes + - GIT-SHA a3852f015830915eb3fb33b8fea85a5edd7a5838 + * mv643xx: Remove pci dev table. Not needed for this driver. + - GIT-SHA f098f17a693fefb6aa03d4ac317faf4f92c0d05a + * imsttfb: Set USE_NV_MODES to 0 when CONFIG_NVRAM is not set + - GIT-SHA 292f071fb9492af9042e840ca81397108dd0ea83 + * prism2_plx: Disable on ppc for now. + - GIT-SHA db1b9f970535fdc567e08bca05b8bcf6a4e1f07f + * ppc: Do not re-export kd_mksound. + - GIT-SHA 5b7d5bbf5171fcb92d78b0e3fa5437ec6f912838 + * atm/block/wan: Require ISA_DMA_API for some drivers. + - GIT-SHA 40215f7cfb9ec59a90b781c50ffc9424ef16b3ba + * hvcs: select HVC_CONSOLE when enabled. + - GIT-SHA e41dbec0326f0e75e6a80b248b5c26f75899f866 + * ppc: Do not enable ISA_DMA_API on PPC64 + - GIT-SHA 75b0757318306ddd6868d65f2e2da6c806f140f6 + * tmscsim, i2o_config: Depends on ISA_DMA_API + - GIT-SHA f86bd4404911d9107c3bf7e36c894fa5907fac8c + * drivers/atm: Add CPPFLAGS to fore200e-fw endian check. + - GIT-SHA 694db9ff7e16042b3f58bbc01d19ef08609315ce + * bcm43xx: Move dma-mapping.h include to fix compile failure + - GIT-SHA 9cc7a903b72c231510f4cae7e9dee27b0ebc6d2c + + [Chuck Short] + + * atkbd: Disables stupid keyboard warning. + - GIT-SHA aedc2d9246885a41346584b1fe91696611eea756 + + [Fabio M. Di Nitto] + + * drivers/char/vt.c: make promcon driver init a boot option. + - GIT-SHA 41a393f2d8829bceb5c5da136dd12f3dcbe6c94c + + -- Ben Collins Thu, 26 Oct 2006 21:58:29 -0400 --- linux-2.6.24.orig/debian/control.stub +++ linux-2.6.24/debian/control.stub @@ -0,0 +1,839 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 3), module-init-tools, kernel-wedge (>= 2.24ubuntu1), gcc-4.1-hppa64 [hppa], binutils-hppa64 [hppa], device-tree-compiler [powerpc], gcc-4.1 [powerpc ia64], gawk [amd64 i386] +Build-Depends-Indep: xmlto, docbook-utils, gs, transfig, bzip2, sharutils + +Package: linux-kernel-devel +Architecture: all +Section: devel +Priority: optional +Depends: build-essential, git-core, gitk, rsync, curl, openssh-client, debhelper, kernel-package, kernel-wedge +Description: Linux kernel hacking dependencies + This is a dummy package that will install all possible packages + required to hack comfortably on the kernel. + +Package: linux-source-2.6.24 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.24 with Ubuntu patches + This package provides the source code for the Linux kernel version 2.6.24. + . + You may configure the kernel to your setup by typing "make config" and + following instructions, but you could get ncursesX.X-dev and try "make + menuconfig" for a jazzier, and easier to use interface. There are options + to use QT or GNOME based configuration interfaces, but they need + additional packages to be installed. Also, please read the detailed + documentation in the file + /usr/share/doc/linux-source-2.6.24/README.headers.gz. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc-2.6.24 +Architecture: all +Section: doc +Priority: optional +Provides: linux-doc-2.6 +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Depends: coreutils | fileutils (>= 4.0) +Description: Linux kernel specific documentation for version 2.6.24 + This package provides the various readme's in the 2.6.24 kernel + Documentation/ subdirectory: these typically contain kernel-specific + installation notes for some drivers for example. See + /usr/share/doc/linux-doc-2.6.24/Documentation/00-INDEX for a list of what + is contained in each file. Please read the Changes file, as it contains + information about the problems, which may result by upgrading your + kernel. + +Package: linux-headers-2.6.24-24 +Architecture: all +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.24 + This package provides kernel header files for version 2.6.24, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details + +Package: linux-libc-dev +Architecture: amd64 i386 powerpc sparc ia64 hppa lpia +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers +Provides: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. + +Package: linux-image-2.6.24-24-386 +Architecture: i386 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on i386 + This package contains the Linux kernel image for version 2.6.24 on + i386. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Alternate x86 (486 and better) processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-386 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-386 +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on i386 + This package provides kernel header files for version 2.6.24 on + i386. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-386 +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on i386 + This package provides a kernel debug image for version 2.6.24 on + i386. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-generic +Architecture: i386 amd64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.24 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on x86/x86_64 + This package provides kernel header files for version 2.6.24 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on x86/x86_64 + This package provides a kernel debug image for version 2.6.24 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-hppa32 +Architecture: hppa +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 32-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.24 on + 32-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa32 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-hppa32 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 32-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.24 on + 32-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-hppa64 +Architecture: hppa +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.24 on + 64-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-hppa64 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1-hppa64, binutils-hppa64, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.24 on + 64-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-itanium +Architecture: ia64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Itanium SMP + This package contains the Linux kernel image for version 2.6.24 on + Itanium SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-itanium meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-itanium +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Itanium SMP + This package provides kernel header files for version 2.6.24 on + Itanium SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-mckinley +Architecture: ia64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Itanium II SMP + This package contains the Linux kernel image for version 2.6.24 on + Itanium II SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium II SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-mckinley meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-mckinley +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Itanium II SMP + This package provides kernel header files for version 2.6.24 on + Itanium II SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-powerpc +Architecture: powerpc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.24 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 32-bit PowerPC + This package provides kernel header files for version 2.6.24 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-powerpc64-smp +Architecture: powerpc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.24 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.24 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-powerpc-smp +Architecture: powerpc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.24 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, gcc-4.1, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.24 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-server +Architecture: i386 amd64 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, kvm-api-4, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.24 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on x86/x86_64 + This package provides kernel header files for version 2.6.24 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on x86/x86_64 + This package provides a kernel debug image for version 2.6.24 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-sparc64 +Architecture: sparc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit UltraSPARC + This package contains the Linux kernel image for version 2.6.24 on + 64-bit UltraSPARC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-sparc64 +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit UltraSPARC + This package provides kernel header files for version 2.6.24 on + 64-bit UltraSPARC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-sparc64-smp +Architecture: sparc +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on 64-bit UltraSPARC SMP + This package contains the Linux kernel image for version 2.6.24 on + 64-bit UltraSPARC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-sparc64-smp +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on 64-bit UltraSPARC SMP + This package provides kernel header files for version 2.6.24 on + 64-bit UltraSPARC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-virtual +Architecture: i386 +Section: base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on x86 + This package contains the Linux kernel image for version 2.6.24 on + x86. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Virtual processors. + . + Geared toward virtualised hardware. + . + You likely do not want to install this package directly. Instead, install + the linux-virtual meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-virtual +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on x86 + This package provides kernel header files for version 2.6.24 on + x86. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-debug-2.6.24-24-virtual +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.24 on x86 + This package provides a kernel debug image for version 2.6.24 on + x86. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.24-24-lpia +Architecture: lpia +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Ubuntu Moblie and Embedded LPIA edition + This package contains the Linux kernel image for version 2.6.24 on + Ubuntu Moblie and Embedded LPIA edition. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports UME processors. + . + UME kernel + . + You likely do not want to install this package directly. Instead, install + the linux-lpia meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-lpia +Architecture: lpia +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Ubuntu Moblie and Embedded LPIA edition + This package provides kernel header files for version 2.6.24 on + Ubuntu Moblie and Embedded LPIA edition. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-rt +Architecture: i386 amd64 +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Ingo Molnar's full real time preemption patch (2.6.24.7-rt27) + This package contains the Linux kernel image for version 2.6.24 on + Ingo Molnar's full real time preemption patch (2.6.24.7-rt27). + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + RT kernel + . + You likely do not want to install this package directly. Instead, install + the linux-rt meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-rt +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Ingo Molnar's full real time preemption patch (2.6.24.7-rt27) + This package provides kernel header files for version 2.6.24 on + Ingo Molnar's full real time preemption patch (2.6.24.7-rt27). + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-lpiacompat +Architecture: lpia +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on Ubuntu Moblie and Embedded-x86 compat edition + This package contains the Linux kernel image for version 2.6.24 on + Ubuntu Moblie and Embedded-x86 compat edition. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports UME processors. + . + UME kernel + . + You likely do not want to install this package directly. Instead, install + the linux-lpiacompat meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-lpiacompat +Architecture: lpia +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on Ubuntu Moblie and Embedded-x86 compat edition + This package provides kernel header files for version 2.6.24 on + Ubuntu Moblie and Embedded-x86 compat edition. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-xen +Architecture: i386 amd64 +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on This kernel can be used for Xen dom0 and domU + This package contains the Linux kernel image for version 2.6.24 on + This kernel can be used for Xen dom0 and domU. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Xen domO/domU + . + You likely do not want to install this package directly. Instead, install + the linux-xen meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-xen +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on This kernel can be used for Xen dom0 and domU + This package provides kernel header files for version 2.6.24 on + This kernel can be used for Xen dom0 and domU. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. + +Package: linux-image-2.6.24-24-openvz +Architecture: i386 amd64 +Section: universe/base +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-2.6, fuse-module, kvm-api-4, redhat-cluster-modules +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.24 | linux-source-2.6.24 +Description: Linux kernel image for version 2.6.24 on OpenVZ Virtualization enabled kernel + This package contains the Linux kernel image for version 2.6.24 on + OpenVZ Virtualization enabled kernel. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + OpenVZ kernel + . + You likely do not want to install this package directly. Instead, install + the linux-openvz meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.24-24-openvz +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.24-24, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.24 on OpenVZ Virtualization enabled kernel + This package provides kernel header files for version 2.6.24 on + OpenVZ Virtualization enabled kernel. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.24-24/debian.README.gz for details. --- linux-2.6.24.orig/debian/commit-templates/patch +++ linux-2.6.24/debian/commit-templates/patch @@ -0,0 +1,26 @@ +# Ubuntu commit template. +# +# NOTE: This gets reformatted for debian/changelog +# +# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be +# referenced to the Author in the debian/changelog entry. +# +# The text following is the short message that will be placed in the +# changelog. Extra text on the following lines will be ignored, but left +# in the git commit. Lines with # will be ignored in the commit. +# +# OriginalAuthor allows for alternate attribution. +# +# OriginalLocation allows for a URL or description of where the patch came +# from. +# +# BugLink is a reference (url) to a Malone bug. +# +# Ignore: yes will keep this commit from showing up in the changelog. +# +UBUNTU: +# OriginalAuthor: +# OriginalLocation: +# BugLink: +# Ignore: yes +# Other text below here. --- linux-2.6.24.orig/debian/commit-templates/sauce-patch +++ linux-2.6.24/debian/commit-templates/sauce-patch @@ -0,0 +1,37 @@ +# Ubuntu commit template. +# +# NOTE: This gets reformatted for debian/changelog +# +# +# SAUCE refers to the fact that this patch might not go upstream, but we need to +# carry it to successive releases. In most cases you DONOT want to use this +# template. +# +# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been +# refused upstream, but still provides useful functionality to users with broken +# BIOSes. +# +#------------------------------------------------------------------------- +# +# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be +# referenced to the Author in the debian/changelog entry. +# +# The text following is the short message that will be placed in the +# changelog. Extra text on the following lines will be ignored, but left +# in the git commit. Lines with # will be ignored in the commit. +# +# OriginalAuthor allows for alternate attribution. +# +# OriginalLocation allows for a URL or description of where the patch came +# from. +# +# BugLink is a reference (url) to a Malone bug. +# +# Ignore: yes will keep this commit from showing up in the changelog. +# +UBUNTU: SAUCE: +# OriginalAuthor: +# OriginalLocation: +# BugLink: +# Ignore: yes +# Other text below here. --- linux-2.6.24.orig/debian/commit-templates/bumpabi +++ linux-2.6.24/debian/commit-templates/bumpabi @@ -0,0 +1,2 @@ +UBUNTU: Bump ABI +Ignore: yes --- linux-2.6.24.orig/debian/commit-templates/missing-modules +++ linux-2.6.24/debian/commit-templates/missing-modules @@ -0,0 +1,2 @@ +UBUNTU: build/modules: Add modules that have intentionally gone missing +Ignore: yes --- linux-2.6.24.orig/debian/commit-templates/external-driver +++ linux-2.6.24/debian/commit-templates/external-driver @@ -0,0 +1,19 @@ +# Ubuntu external driver commit. +# +# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and +# debian/changelog. +# +# This is only needed when a driver is added, updated or removed. It is +# not needed when patches or fixes are applied to the driver. If the +# driver is being removed, add the line: +# +# Removing: yes +# +# to the commit, and you can remove all other tags (except UBUNTU:). +# +UBUNTU: +ExternalDriver: +Description: +Url: +Mask: +Version: --- linux-2.6.24.orig/debian/commit-templates/newrelease +++ linux-2.6.24/debian/commit-templates/newrelease @@ -0,0 +1,2 @@ +UBUNTU: Start new release +Ignore: yes --- linux-2.6.24.orig/debian/commit-templates/update-configs +++ linux-2.6.24/debian/commit-templates/update-configs @@ -0,0 +1,9 @@ +UBUNTU: Put your _meaningful_ one line commit message here. +# +# This template is used for commit messages that don't need to +# show up in debian/changelog. Administrative stuff like config +# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents +# 'debian/rules insertchanges' from inserting this commit meesage +# as a changelog entry. +# +Ignore: yes --- linux-2.6.24.orig/debian/control-scripts/prerm +++ linux-2.6.24/debian/control-scripts/prerm @@ -0,0 +1,294 @@ +#! /usr/bin/perl +# -*- Mode: Perl -*- +# image.prerm --- +# Author : root ( root@melkor.pilgrim.umass.edu ) +# Created On : Fri May 17 03:28:59 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:14:17 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 85 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# $Id: image.prerm,v 1.22 2003/10/07 16:24:20 srivasta Exp $ +# +# +#use strict; + +$|=1; +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlinks = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +my $DEBUG = 0; + +# Variables used +my $image=''; +my $ret=0; +my $seen=''; +my $answer=''; +my $running = ''; +my $WouldInvalidate = 0; + +if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) { + if (-l "/usr/doc/linux-image-$version") { + unlink "/usr/doc/linux-image-$version"; + } +} + +# Ignore all invocations uxcept when called on to remove +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz";} # Hmm. empty +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz";} # Default + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +#check to see if we are trying to remove a running kernel +# if so we abort right now. +chop($running=`uname -r`); +if ($running eq $version) { + print STDERR "WARN: Proceeding with removing running kernel image.\n"; +} + +#Now, they have an alternate kernel which they are currently running + +# This is just us being nice to lilo users. + +chdir("/") or die "could not chdir to /:$!\n"; + +if (-f "/etc/$loader.conf") { #I know, could be a link, but .. + open (LILO, "/etc/$loader.conf") || &success(); # this is not critical + while () { + chop; + s/\#.*//; # nix the comments + next unless /^\s*image\s*=\s(\S+)/o; + $image = $1; + if ($image && -e $image) { + while (defined($image) && -l $image) { + $image = readlink ($image); + } + if (defined($image) && -e $image) { + $WouldInvalidate |= $image =~ /$kimage-$version/; + } + else { + &success(); # invalid $loader.conf file + } + } + else { + &success(); # invalid $loader.conf file + } + } + close (LILO); + if ($WouldInvalidate) { + print STFERR "WARN: Proceeding with removing running kernel image.\n"; + &success(); + } +} + + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +## Run user hook script here, if any +if (-x "$prerm_hook") { + &run_hook("prerm", $prerm_hook); +} +if (-d "/etc/kernel/prerm.d") { + print STDERR "Examining /etc/kernel/prerm.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") && + die "Failed to process /etc/kernel/prerm.d"; +} +if (-d "/etc/kernel/prerm.d/$version") { + print STDERR "Examining /etc/kernel/prerm.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version " . + "/etc/kernel/prerm.d/$version") && + die "Failed to process /etc/kernel/prerm.d/$version"; +} + +sub success () { + -f "/lib/modules/$version/modules.dep" && + unlink "/lib/modules/$version/modules.dep"; + exit 0; +} + + + +&success(); +exit 0; +__END__ + + + + + --- linux-2.6.24.orig/debian/control-scripts/postinst +++ linux-2.6.24/debian/control-scripts/postinst @@ -0,0 +1,1087 @@ +#! /usr/bin/perl +# OriginalAuthor : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# +# Customized for Ubuntu by: Ben Collins + +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot or delo +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $relative_links = ""; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally we do not +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $notifier = "/usr/share/update-notifier/notify-reboot-required"; +my $package_name = "linux-image-$version"; +my $explicit_do_loader = 'Yes'; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; +$Loader = "ARCBOOT" if $loader =~ /^arcboot/io; +$Loader = "DELO" if $loader =~ /^delo/io; + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; + +# Ignore all invocations except when called on to configure. +exit 0 unless $ARGV[0] =~ /configure/; + +my $DEBUG = 0; + +# Do some preliminary sanity checks here to ensure we actually have an +# valid image dir +chdir('/') or die "could not chdir to /:$!\n"; +die "Internal Error: ($image_dir) is not a directory!\n" + unless -d $image_dir; + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; +die "Internal Error: ($realimageloc) is not a directory!\n" + unless -d $realimageloc; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlink\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $explicit_do_loader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $explicit_do_loader = "YES" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + + +# For some versions of kernel-package, we had this warning in the +# postinst, but the rules did not really interpolate the value in. +# Here is a sanity check. +my $pattern = "=" . "I"; +$initrd=~ s/^$pattern$//; + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; # same as realimageloc +} + +# Tack on at least one trainling / +$image_dest = "$image_dest/"; +$image_dest =~ s|^/*|/|o; +$image_dest =~ s|/+$|/|o; + +if (! -d "$image_dest") { + die "Expected Image Destination dir ($image_dest) to be a valid directory!\n"; +} + +# sanity +if (!($do_bootfloppy || $do_bootloader)) { + $do_boot_enable = ''; +} +if ($do_symlink && $no_symlink) { + warn "Both do_symlinks and no_symlinks options enabled; disabling no_symlinks\n"; + $no_symlink = 0; +} + +# most of our work is done in $image_dest (nominally /) +chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz"; } # Hmm. empty +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz"; } # Default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +die "Internal Error: Could not find image (" . $realimageloc + . "$kimage-$version)\n" unless -e $realimageloc + . "$kimage-$version"; + +# search for the boot loader in the path +my $loader_exec; +($loader_exec = $loader) =~ s|.*/||; +my ($loaderloc) = grep -x, map "$_/$loader_exec", + map { length($_) ? $_ : "." } split /:/, $ENV{PATH}; + + +###################################################################### +###################################################################### +########### Test whether a relative symlinkwould be OK ####### +###################################################################### +###################################################################### +sub test_relative { + my %params = @_; + my $cwd; + + die "Internal Error: Missing Required paramater 'Old Dir' " + unless $params{'Old Dir'}; + die "Internal Error: Missing Required paramater New Dir' " + unless $params{'New Dir'}; + + + die "Internal Error: No such dir $params{'Old Dir'} " + unless -d $params{'Old Dir'}; + die "Internal Error: No such dir $params{'New Dir'} " + unless -d $params{'New Dir'}; + + warn "Test relative: testing $params{'Old Dir'} -> $params{'New Dir'}" + if $DEBUG; + chomp($cwd = `pwd`); + chdir ($params{'New Dir'}) or die "Could not chdir to $params{'New Dir'}:$!"; + my $ok = 0; + $params{'Old Dir'} =~ s|^/*||o; + if (-d $params{'Old Dir'} ) { + if (defined $params{'Test File'}) { + if (-e $params{'Old Dir'} . $params{'Test File'}) { + $ok = 1; + } + } else { + $ok = 1; # well, backward compatibility + } + } + chdir ($cwd) or die "Could not chdir to $params{'New Dir'}:$!"; + return $ok; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# sub CanonicalizePath { +# my $path = join '/', @_; +# my @work = split '/', $path; +# my @out; +# my $is_absolute; + +# if (@work && $work[0] eq "") { +# $is_absolute = 1; shift @work; +# } + +# while (@work) { +# my $seg = shift @work; +# if ($seg eq "." || $seg eq "") { +# } +# elsif ($seg eq "..") { +# if (@out && $out[-1] ne "..") { +# pop @out; +# } +# else { +# # Leading "..", or "../..", etc. +# push @out, $seg; +# } +# } +# else { +# push @out, $seg; +# } +# } + +# unshift @out, "" if $is_absolute; +# return join('/', @out); +# } +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + +sub spath { + my %params = @_; + + die "Missing Required paramater 'Old'" unless $params{'Old'}; + die "Missing Required paramater 'New'" unless $params{'New'}; + + my @olddir = split '/', `readlink -q -m $params{'Old'}`; + my @newdir = split '/', `readlink -q -m $params{'New'}`; + my @outdir = @olddir; + + my $out = ''; + my $i; + for ($i = 0; $i <= $#olddir && $i <= $#newdir; $i++) { + $out++ if ($olddir[$i] ne $newdir[$i]); + shift @outdir unless $out; + unshift @outdir, ".." if $out; + } + if ($#newdir > $#olddir) { + for ($i=0; $i < $#newdir; $i++) { + unshift @outdir, ".."; + } + } + return join ('/', @outdir); +} +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + + +# This routine actually moves the kernel image +# From: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +# To: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# Note that the image is moved to a versioned destination, but ordinary +# symlinks we create otherwise are not normally versioned +sub really_move_image { + my $src_dir = $_[0]; + my $target = $_[1]; + my $dest_dir = $_[2]; + + warn "Really move image: src_dir=$src_dir, target=$target,\n destdir=$dest_dir" + if $DEBUG; + if (-e "$target") { + # we should be in dir $dest_dir == $image_dest /, normally + rename("$target", "$target.$$") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target $target.$$" if $DEBUG; + } + warn "mv -f $src_dir$target $target" if $DEBUG; + my $ret = system("mv -f " . $src_dir . "$target " . + " $target"); + if ($ret) { + die("Failed to move " . $src_dir . "$target to " + . $dest_dir . "$target.\n"); + } + # Ok, now we may clobber the previous .old files + if (-e "$target.$$") { + rename("$target.$$", "$target.old") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target.$$ $target " if $DEBUG; + } +} + +# Normally called after really_move_image; and only called if we asked for +# reversed link this routine reverses the symbolic link that is notmally +# created. Since the real kernel image has been moved over to +# $image_dest/$kimage-$version. So, this routine links +# From: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# To: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +sub really_reverse_link { + my $src_dir = $_[0]; + my $link_name = $_[1]; + my $dest_dir = $_[2]; + warn "Really reverse link: src_dir=$src_dir, link name=$link_name\n" . + "\tdestdir=$dest_dir" if $DEBUG; + + my $Old = $dest_dir; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $src_dir, + 'Test File' => "$link_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$src_dir" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + link($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to symbolic-link " . $dest_dir . "$link_name to " . $src_dir + . "$link_name .\n"); + warn "ln " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } + else { + symlink($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to link " . $dest_dir . "$link_name to " . $src_dir . + "$link_name .\n"); + warn "ln -s " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } +} + +# This routine is invoked if there is a symbolic link in place +# in $image_dest/$kimage -- so a symlink exists in the destination. +# What we are trying to determine is if we need to move the symbolic link over +# to the the .old location +sub move_p { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + my $force_move = 0; + warn "Move?: kimage=$kimage, image_dest=$image_dest, \n" . + "\timage_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink || $reverse_symlink) { + # we do not want links, yet we have a symbolic link here! + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though no_symlink is defined\n" if $no_symlink; + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though reverse_symlink is defined\n" if $reverse_symlink; + # make sure we change this state of affairs + $force_move = 1; + return $force_move; + } + + warn "DEBUG: OK. We found symlink, and we should have a symlink here.\n" + if $DEBUG; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + my $target = `readlink -q -m "${realimageloc}${kimage-$version}"`; + $real_target = abs_path($vmlinuz_target) if defined($vmlinuz_target); + + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a dangling link" . + "to $real_target\n"; + $force_move = 1; + return $force_move; + } + + + warn "DEBUG: The link $kimage points to ($vmlinuz_target)\n" if $DEBUG; + warn "DEBUG: ($vmlinuz_target) is really ($real_target)\n" if $DEBUG; + my $cwd; + chomp ($cwd=`pwd`); + if ($vmlinuz_target !~ m|^/|o) { + $vmlinuz_target = $cwd . "/" . $vmlinuz_target; + $vmlinuz_target =~ s|/+|/|o; + } + $vmlinuz_target = `readlink -q -m $vmlinuz_target`; + + if ("$vmlinuz_target" ne "$target") { + warn "DEBUG: We need to handle this.\n" if $DEBUG; + if ($minimal_swap) { + warn "DEBUG: Minimal swap.\n" if $DEBUG; + if (-l "$kimage.old") { + warn "DEBUG: There is an old link at $kimage.old\n" if $DEBUG; + my $old_target = readlink "$kimage.old"; + my $real_old_target = ''; + $real_old_target=abs_path($old_target) if defined ($old_target); + + if ($real_old_target && -f "$real_old_target") { + if ($old_target !~ m|^/|o) { + $old_target = $cwd . "/" . $old_target; + $old_target =~ s|/+|/|o; + } + $old_target = `readlink -q -m $old_target`; + if ("$old_target" ne "$target") { + $force_move = 1; + warn "DEBUG: Old link ($old_target) does not point to us ($target)\n" + if $DEBUG; + } + else { # The .old points to the current + warn "$kimage.old --> $target -- doing nothing"; + $force_move = 0; + } + } + else { + warn "DEBUG: Well, the old link does not exist -- so we move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: No .old link -- OK to move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: ok, minimal swap is no-- so we move.\n" + if $DEBUG; + $force_move = 1; + } + } + else { # already have proper link + warn "$kimage($vmlinuz_target) points to $target ($real_target) -- doing nothing"; + $force_move = 0; + } + return $force_move; +} + + +# This routine moves the symbolic link around (/vmlinuz -> /vmlinuz.old) +# It pays attention to whether we should the fact whether we should be using +# hard links or not. +sub really_move_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "really_move_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # don't clobber $kimage.old quite yet + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + my $Old = $src_dir; + my $cwd; + + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln ${Old}${image_name} $kimage" if $DEBUG; + if (! link("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to link ${Old}${image_name} to " . + "${image_dest}${kimage}.\n"); + } + } + else { + warn "ln -s ${Old}${image_name} $kimage" if $DEBUG; + if (! symlink("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to symbolic-link ${Old}${image_name} to " . + "${image_dest}${kimage}.\n"); + } + } + + # Ok, now we may clobber the previous .old file + if (-l "$kimage.old" || ! -e "$kimage.old" ) { + rename("$kimage.$$", "$kimage.old"); + warn "mv $kimage.$$ $kimage.old" if $DEBUG; + } + else { + warn "$kimage.old is not a symlink, not clobbering\n"; + warn "rm $kimage.$$"; + unlink "$kimage.$$" if $DEBUG; + } +} + +# This routine handles a request to do symlinks, but there is no +# symlink file already there. Either we are supposed to use copy, or we are +# installing on a pristine system, or the user does not want symbolic links at +# all. We use a configuration file to tell the last two cases apart, creating +# a config file if needed. +sub handle_missing_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_missing_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink) { + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc . + "$image_name " . " $kimage"); + if ($ret) { + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + elsif ($reverse_symlink) { + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . "$kimage"); + if ($ret) { + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + else { + if (! $have_conffile) { + my $ret; + my $answer=''; + $do_symlink = "Yes"; + + if (open(CONF, ">$CONF_LOC")) { + print CONF "# Kernel Image management overrides\n"; + print CONF "# See kernel-img.conf(5) for details\n"; + if ($loader =~ /palo/i) { + print CONF "link_in_boot = Yes\n"; + print CONF "do_symlinks = Yes\n"; + print CONF "relative_links = Yes\n"; + print CONF "do_bootloader = No\n"; + } else { + print CONF "do_symlinks = $do_symlink\n"; + } + close CONF; + } + $have_conffile = "Yes"; + } + } + + if (! $no_symlink && $do_symlink =~ /Yes/i) { + my $Old = $realimageloc; + my $New = $image_dest; + my $Name = "$image_name"; + my $Link_Dest = "$kimage"; + + if ($reverse_symlink) { + $Old = $image_dest; + $New = $realimageloc; + $Name = "$kimage"; + $Link_Dest = $realimageloc . "$image_name"; + } + if (test_relative ('Old Dir' => $Old, + 'New Dir' => $New, + 'Test File' => $Name)) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$New" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + symlink($Old . "$Name", "$Link_Dest") || + die("Failed to symbolic-link ${Old}$Name to $Link_Dest.\n"); + warn "ln -s ${Old}$Name $Link_Dest" if $DEBUG; + + } +} + +# This routine handles the rest of the cases, where the user has requested +# non-traditional handling, like using cp, or reverse symlinks, or hard links. +sub handle_non_symlinks { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_non_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Save the current image. We do this in all four cases + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + + ##,#### + # case One + #`#### + if ($no_symlink) { + # Maybe /$image_dest is on a dos system? + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + ##,#### + # case Two + #`#### + elsif ($reverse_symlink) { # Maybe /$image_dest is on a dos system? + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . $image_dest . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + my $Old = $image_dest; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $realimageloc, + 'Test File' => "$kimage")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$realimageloc" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! link($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not link " . $image_dest . + "$kimage to $image_name :$!"; + } + } + else { + warn "ln -s " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! symlink($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not symlink " . $image_dest . + "$kimage to $image_name :$!"; + } + } + } + ##,#### + # case Three + #`#### + elsif ($use_hard_links =~ m/YES/i ) { + # Ok then. this ought to be a hard link, and hence fair game + # don't clobber $kimage.old quite yet + my $Old = $realimageloc; + my $cwd; + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + warn "ln " . $Old . "$image_name " . "$kimage" if $DEBUG; + if (! link($Old . "$image_name", "$kimage")) { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + die("Failed to link " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + ##,#### + # case Four + #`#### + else { + # We just use cp + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage .\n"); + } + } + # Ok, now we may clobber the previous .old file + warn "mv $kimage.$$ $kimage.old if -e $kimage.$$" if $DEBUG; + rename("$kimage.$$", "$kimage.old") if -e "$kimage.$$"; +} + +# This routine is responsible for setting up the symbolic links +# So, the actual kernel image lives in +# $realimageloc/$image_name (/boot/vmlinuz-2.6.12). +# This routine creates symbolic links in $image_dest/$kimage (/vmlinuz) +sub image_magic { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = "$kimage-$version"; + my $src_dir = $realimageloc; + warn "image_magic: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Well, in any case, if the destination (the symlink we are trying + # to create) is a directory, we should do nothing, except throw a + # diagnostic. + if (-d "$kimage" ) { + die ("Hmm. $kimage is a directory, which I did not expect. I am\n" . + "trying to create a symbolic link with that name linked to \n" . + "$image_dest . Since a directory exists here, my assumptions \n" . + "are way off, and I am aborting.\n" ); + exit (3); + } + + if ($move_image) { # Maybe $image_dest is in on dos, or something? + # source dir, link name, dest dir + really_move_image( $realimageloc, $image_name, $image_dest); + really_reverse_link($realimageloc, $image_name, $image_dest) + if $reverse_symlink; + return; + } + + if (-l "$kimage") { # There is a symbolic link + warn "DEBUG: There is a symlink for $kimage\n" if $DEBUG; + my $force_move = move_p($kimage, $image_dest, $image_name, $src_dir); + + if ($force_move) { + really_move_link($kimage, $image_dest, $image_name, $src_dir); + } + } + elsif (! -e "$kimage") { + # Hmm. Pristine system? How can that be? Installing from scratch? + # Or maybe the user does not want a symbolic link here. + # Possibly they do not want a link here. (we should be in / + # here[$image_dest, really] + handle_missing_link($kimage, $image_dest, $image_name, $src_dir); + } + elsif (-e "$kimage" ) { + # OK, $kimage exists -- but is not a link + handle_non_symlinks($kimage, $image_dest, $image_name, $src_dir); + } +} + +###################################################################### +###################################################################### +###################################################################### +###################################################################### + +# We may not have any modules installed +if ( -d "$modules_base/$version" ) { + print STDERR "Running depmod.\n"; + my $ret = system("depmod -a -F $realimageloc/System.map-$version $version"); + if ($ret) { + print STDERR "Failed to run depmod\n"; + exit(1); + } +} + + + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + print STDERR "Finding valid ramdisk creators.\n"; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +# The initrd symlink should probably be in the same dir that the +# symlinks are in +if ($initrd) { + my $success = 0; + + # Update-initramfs is called slightly different than mkinitrd and + # mkinitramfs. XXX It should really be made compatible with this stuff + # some how. + my $upgrading = 1; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + $upgrading = 0; + } + my $ret = system("$ramdisk " . ($upgrading ? "-u" : "-c") . " -k " . $version . " >&2"); + $success = 1 unless $ret; + die "Failed to create initrd image.\n" unless $success; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic("initrd.img", $image_dest); + } + else { + if (! -e "initrd.img") { + handle_missing_link("initrd.img", $image_dest, "initrd.img-$version", + $realimageloc); + } + else { + print STDERR + "Not updating initrd symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } + } + + if ($initrd && -l "initrd" ) { + unlink "initrd"; + } + + if ($initrd && -l "$image_dir/initrd" && ! $link_in_boot) { + unlink "$image_dir/initrd"; + } +} +else { # Not making an initrd emage + if (-l "initrd.img") { + # Ooh, last image was an initrd image? in any case, we should move it. + my $target = readlink "initrd.img"; + my $real_target = ''; + $real_target = abs_path($target) if defined ($target); + + if (!defined($target) || ! -f "$real_target") { + # Eh. dangling link. can safely be removed. + unlink("initrd.img"); + } else { + if (-l "initrd.img.old" || ! -e "initrd.img.old" ) { + rename("initrd.img", "initrd.img.old"); + } else { + warn "initrd.img.old is not a symlink, not clobbering\n"; + unlink("initrd.img"); + } + } + } +} + +# Warn of a reboot +if (-x $notifier) { + system($notifier); +} + +# Let programs know not to hibernate if the kernel that would be used for +# resume-from-hibernate is likely to differ from the currently running kernel. +system("mountpoint -q /var/run"); +if ($? eq 0) { + system("touch /var/run/do-not-hibernate"); +} + +# Only change the symlinks if we are not being upgraded +if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic($kimage, $image_dest); +} +else { + if (! -e "$kimage") { + handle_missing_link($kimage, $image_dest, "$kimage-$version", + $realimageloc); + } + else { + print STDERR + "Not updating image symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } +} + +# We used to have System.* files in / +if (-e "/System.map" || -e "/System.old") { + unlink '/System.map' if -e '/System.map'; + unlink '/System.old' if -e '/System.old'; +} + +# creating some info about kernel and initrd +if ($DEBUG) { + my $ksize=sprintf("%.0f",(stat($realimageloc . + "$kimage-$version"))[7]/1024)."kB"; + my $initrdsize=''; + if ($initrd) { + $initrdsize=sprintf("%.0f",(stat($realimageloc . + "initrd.img-$version"))[7]/1024)."kB"; + } + + print STDERR <<"EOMSG"; +A new kernel image has been installed at $realimageloc$kimage-$version + (Size: $ksize) + +Symbolic links, unless otherwise specified, can be found in $image_dest + +EOMSG + ; + + if ($initrd) { + print STDERR <<"EOMSGA"; + + Initial rootdisk image: ${realimageloc}initrd.img-$version (Size: $initrdsize) +EOMSGA + ; + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +## Run user hook script here, if any +if ($postinst_hook) { + &run_hook("postinst", $postinst_hook); +} + +if (-d "/etc/kernel/postinst.d") { + print STDERR "Examining /etc/kernel/postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d") && + die "Failed to process /etc/kernel/postinst.d"; +} + +if (-d "/etc/kernel/postinst.d/$version") { + print STDERR "Examining /etc/kernel/postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d/$version") && + die "Failed to process /etc/kernel/postinst.d/$version"; +} + +LOADER: { + last unless $do_boot_enable; # Exit if explicitly asked to + + last if $loader =~ /silo/i; # SILO does not have to be executed. + last if $loader =~ /yaboot/i; # yaboot does not have to be executed. + last if $loader =~ /milo/i; # MILO does not have to be executed. + last if $loader =~ /nettrom/i; # NETTROM does not have to be executed. + last if $loader =~ /arcboot/i; # ARCBOOT does not have to be executed. + last if $loader =~ /delo/i; # DELO does not have to be executed. + last if $loader =~ /quik/i; # maintainer asked quik invocation to be ignored + + last unless $loaderloc; + last unless -x $loaderloc; + last unless $do_bootloader; + + if (-T "/etc/$loader.conf") { + # Trust and use the existing lilo.conf. + print STDERR "You already have a $Loader configuration in /etc/$loader.conf\n"; + my $ret = &run_lilo(); + exit $ret if $ret; + } +} + + +sub run_lilo (){ + my $ret; + # Try and figure out if the user really wants lilo to be run -- + # since the default is to run the boot laoder, which is ! grub -- but + # the user may be using grub now, and not changed the default. + + # So, if the user has explicitly asked for the loader to be run, or + # if there is no postinst hook, or if there is no grub installed -- + # we are OK. Or else, we ask. + if ($explicit_do_loader || (! ($postinst_hook && -x '/usr/sbin/grub'))) { + print STDERR "Running boot loader as requested\n"; + } else { + print STDERR "Ok, not running $loader\n"; + } + if ($loader =~ /^lilo/io or $loader =~ /vmelilo/io) { + print STDERR "Testing $loader.conf ... \n"; + unlink $temp_file_name; # security + $ret = system("$loaderloc -t >$temp_file_name 2>&1"); + if ($ret) { + print STDERR "Boot loader test failed\n"; + return $ret; + } + unlink "$temp_file_name"; + print STDERR "Testing successful.\n"; + print STDERR "Installing the "; + print STDERR "partition " if $loader =~ /^lilo/io; + print STDERR "boot sector... \n"; + } + + print STDERR "Running $loaderloc ... \n"; + if ($loader =~ /^elilo/io) { + $ret = system("$loaderloc 2>&1 | tee $temp_file_name"); + } else { + $ret = system("$loaderloc >$temp_file_name 2>&1"); + } + if ($ret) { + print STDERR "Boot loader failed to run\n"; + return $ret; + } + unlink $temp_file_name; + print STDERR "Installation successful.\n"; + return 0; +} + +exit 0; + +__END__ + --- linux-2.6.24.orig/debian/control-scripts/preinst +++ linux-2.6.24/debian/control-scripts/preinst @@ -0,0 +1,299 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.preinst --- +# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com ) +# Created On : Sun Jun 14 03:38:02 1998 +# Created On Node : tiamat.datasync.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Sun Sep 24 14:04:42 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 99 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# + +# +#use strict; #for debugging + +use Debconf::Client::ConfModule qw(:all); +version('2.0'); +my $capb=capb("backup"); + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom + # or elilo +my $image_dir = "/boot"; # where the image is located +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_src_link = 'YES'; # There is no harm in checking the link +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = ''; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; + +die "Pre inst Internal error. Aborting." unless $version; + +exit 0 if $ARGV[0] =~ /abort-upgrade/; +exit 1 unless $ARGV[0] =~ /(install|upgrade)/; + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_src_link = '' if /^\s*relink_src_link\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_src_link = 'Yes' if /^\s*relink_src_link\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + $have_conffile = "Yes"; # stop perl complaining + } +} + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +# About to upgrade this package from version $2 TO THIS VERSION. +# "prerm upgrade" has already been called for the old version of +# this package. + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +sub check { + my $version = shift; + my $lib_modules="$modules_base/$version"; + my $message = ''; + + if (-d "$lib_modules") { + opendir(DIR, $lib_modules) || die "can’t opendir $lib_modules: $!"; + my @children = readdir(DIR); + if ($#children > 1) { + my @dirs = grep { -d "$lib_modules/$_" } @children; + if ($#dirs > 1) { # we have subdirs + my $dir_message=''; + for my $dir (@dirs) { + if ($dir =~/kernel$/) { + $dir_message="An older install was detected.\n"; + } + else { + $dir_message="Module sub-directories were detected.\n" + unless $dir_message; + } + } + $message += $dir_message if $dir_message; + } + + my @links = grep { -l "$lib_modules/$_" } @children; + if ($#links > -1) { + my $links_message = ''; + for my $link (@links) { + next if ($link =~ /^build$/); + next if ($link =~ /^source$/); + $links_message = "Symbolic links were detected in $modules_base/$version.\n"; + } + $message += $links_message if $links_message; + } + my @files = grep { -f "$lib_modules/$_" } @children; + $message += "Additional files also exist in $modules_base/$version.\n" + if ($#files > -1); + } + } + else { $message .= "$lib_modules does not exist. ";} + return $message; +} + +if (-d "$modules_base/$version") { + my $errors=check($version); + warn "Info:\n$errors\n" if $errors; +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +## Run user hook script here, if any +if (-x "$preinst_hook") { + &run_hook("preinst", $preinst_hook); +} +if (-d "/etc/kernel/preinst.d") { + print STDERR "Examining /etc/kernel/preinst.d/\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d") && + die "Failed to process /etc/kernel/preinst.d"; +} +if (-d "/etc/kernel/preinst.d/$version") { + print STDERR "Examining /etc/kernel/preinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d/$version") && + die "Failed to process /etc/kernel/preinst.d/$version"; +} +print STDERR "Done.\n"; + +exit 0; + +__END__ + + --- linux-2.6.24.orig/debian/control-scripts/headers-postinst +++ linux-2.6.24/debian/control-scripts/headers-postinst @@ -0,0 +1,126 @@ +#!/usr/bin/perl +# -*- Mode: Cperl -*- +# debian.postinst --- +# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# Created On : Sat Apr 27 05:42:43 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:20:22 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 45 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# +# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a +# + + +$|=1; + +# Predefined values: +my $version = "=V"; +my $kimage = "=K"; +my $package_name = "linux-image-$version"; + + +# Ignore all invocations uxcept when called on to configure. +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/); + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $silent_modules = ''; +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +chdir '/usr/src' or die "Could not chdir to /usr/src:$!"; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig; + } + close CONF; + } +} + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +## Run user hook script here, if any +if (-x "$header_postinst_hook") { + &run_hook("postinst", $header_postinst_hook); +} + +if (-d "/etc/kernel/header_postinst.d") { + print STDERR "Examining /etc/kernel/header_postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +if (-d "/etc/kernel/header_postinst.d/$version") { + print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d/$version") && + die "Failed to process /etc/kernel/header_postinst.d/$version"; +} + +exit 0; + +__END__ --- linux-2.6.24.orig/debian/control-scripts/postrm +++ linux-2.6.24/debian/control-scripts/postrm @@ -0,0 +1,376 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.postrm --- +# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com ) +# Created On : Sat May 15 11:05:13 1999 +# Created On Node : glaurung.green-gryphon.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Wed Sep 13 11:26:19 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 57 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# $Id: image.postrm,v 1.31 2003/10/07 16:24:20 srivasta Exp $ +# + + +# +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally, we don't +my $warn_initrd = 'YES'; # Normally we do +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # we shall not create a dangling link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +chdir('/') or die "could not chdir to /:$!\n"; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $warn_initrd = '' if /^\s*warn_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $warn_initrd = "Yes" if /^\s*warn_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; + $image_dest =~ s|^/*|/|o; +} + +$image_dest = "$image_dest/"; +$image_dest =~ s|/+$|/|o; + +# The destdir may be gone by now. +if (-d "$image_dest") { + chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; +} + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) {$kimage = "vmlinuz"} # Hmm. empty +elsif ($kimage =~ m/^b?zImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;} +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage;} +else {$kimage = "vmlinuz"} # default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub remove_sym_link { + my $bad_image = $_[0]; + + warn "Removing symbolic link $bad_image \n"; + if ($loader =~ /lilo/i) + { + warn "Unless you used the optional flag in lilo, \n"; + } + warn " you may need to re-run your boot loader" . ($loader ? "[$loader]":"") + . "\n"; + # Remove the dangling link + unlink "$bad_image"; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub CanonicalizePath { + my $path = join '/', @_; + my @work = split '/', $path; + my @out; + my $is_absolute; + + if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; } + + while (@work) { + my $seg = shift @work; + if ($seg eq "." || $seg eq "") { + } elsif ($seg eq "..") { + if (@out && $out[-1] ne "..") { + pop @out; + } else { + # Leading "..", or "../..", etc. + push @out, $seg; + } + } else { + push @out, $seg; + } + } + + unshift @out, "" if $is_absolute; + return join('/', @out); +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# This removes dangling symlinks. What do we do about hard links? Surely a +# something with the nane $image_dest . "$kimage" ought not to be left behind? +sub image_magic { + my $kimage = $_[0]; + my $image_dest = $_[1]; + + if (-l "$kimage") { + # There is a symbolic link + my $force_move = 0; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + $real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target); + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a damaged link\n"; + # Remove the dangling link + &remove_sym_link("$kimage"); + } + else { + my $canonical_target = CanonicalizePath("$vmlinuz_target"); + if (! -e $canonical_target) { + warn "The link " . $image_dest . "$kimage is a dangling link\n"; + &remove_sym_link("$kimage"); + } + } + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + warn "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +## Run user hook script here, if any +if ($postrm_hook) { + &run_hook("postrm", $postrm_hook); +} +if (-d "/etc/kernel/postrm.d") { + warn "Examining /etc/kernel/postrm.d .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d") && + die "Failed to process /etc/kernel/postrm.d"; +} +if (-d "/etc/kernel/postrm.d/$version") { + warn "Examining /etc/kernel/postrm.d/$version .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d/$version") && + die "Failed to process /etc/kernel/postrm.d/$version"; +} + +# check and remove damaged and dangling symlinks +if ($ARGV[0] !~ /upgrade/) { + system("$ramdisk -d -k " . $version . " > /dev/null 2>&1"); + if (-f $realimageloc . "initrd.img-$version.bak") { + unlink $realimageloc . "initrd.img-$version.bak"; + } + image_magic($kimage, $image_dest); + image_magic($kimage . ".old", $image_dest); + image_magic("initrd.img", $image_dest) if $initrd; + image_magic("initrd.img.old", $image_dest) if $initrd; +} + + +# Ignore all invocations except when called on to purge. +exit 0 unless $ARGV[0] =~ /purge/; + +my @files_to_remove = qw{ + modules.dep modules.isapnpmap modules.pcimap + modules.usbmap modules.parportmap + modules.generic_string modules.ieee1394map + modules.ieee1394map modules.pnpbiosmap + modules.alias modules.ccwmap modules.inputmap + modules.symbols build source modules.ofmap + }; + +foreach my $extra_file (@files_to_remove) { + if (-f "/lib/modules/$version/$extra_file") { + unlink "/lib/modules/$version/$extra_file"; + } +} + +if (-d "/lib/modules/$version" ) { + system ("rmdir", "/lib/modules/$version"); +} + +exit 0; + +__END__ + + + + + + --- linux-2.6.24.orig/debian/d-i/kernel-versions.in +++ linux-2.6.24/debian/d-i/kernel-versions.in @@ -0,0 +1,15 @@ +# arch version flavour installedname suffix bdep +amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +hppa PKGVER-ABINUM hppa32 PKGVER-ABINUM-hppa32 y +hppa PKGVER-ABINUM hppa64 PKGVER-ABINUM-hppa64 y + +i386 PKGVER-ABINUM 386 PKGVER-ABINUM-386 - +i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +ia64 PKGVER-ABINUM itanium PKGVER-ABINUM-itanium - + +powerpc PKGVER-ABINUM powerpc PKGVER-ABINUM-powerpc - +powerpc PKGVER-ABINUM powerpc64-smp PKGVER-ABINUM-powerpc64-smp - + +sparc PKGVER-ABINUM sparc64 PKGVER-ABINUM-sparc64 - --- linux-2.6.24.orig/debian/d-i/exclude-modules.sparc +++ linux-2.6.24/debian/d-i/exclude-modules.sparc @@ -0,0 +1,11 @@ +efi-modules +nic-pcmcia-modules +pcmcia-modules +pcmcia-storage-modules +socket-modules +irda-modules +floppy-modules +fb-modules +acpi-modules +cdrom-modules +fancontrol-modules --- linux-2.6.24.orig/debian/d-i/package-list +++ linux-2.6.24/debian/d-i/package-list @@ -0,0 +1,180 @@ +Package: acpi-modules +Depends: kernel-image +Priority: standard +Description: Support for ACPI + +Package: efi-modules +Depends: kernel-image +Priority: standard +Description: EFI support + +Package: fat-modules +Depends: kernel-image +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: fb-modules +Depends: kernel-image +Priority: standard +Description: Framebuffer modules + +Package: firewire-core-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: floppy-modules +Depends: kernel-image +Priority: standard +Description: Floppy driver support + +Package: fs-core-modules +Depends: kernel-image +Priority: standard +Provides: ext2-modules, ext3-modules, jfs-modules, reiserfs-modules, xfs-modules +Description: Base filesystem modules + This includes ext2, ext3, jfs, reiserfs and xfs. + +Package: fs-secondary-modules +Depends: kernel-image, fat-modules +Priority: standard +Provides: ntfs-modules, ufs-modules, hfs-modules, affs-modules +Description: Extra filesystem modules + This includes support for Windows NTFS, SysV UFS, MacOS HFS and HFSPlus and + Amiga AFFS. + +Package: ide-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: IDE support + +Package: input-modules +Depends: kernel-image, usb-modules +Priority: standard +Description: Support for various input methods + +Package: ipv6-modules +Depends: kernel-image +Priority: standard +Description: Support for IPv6 networking + +Package: irda-modules +Depends: kernel-image, nic-shared-modules +Priority: standard +Description: Support for Infrared protocols + +Package: md-modules +Depends: kernel-image +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: nic-modules +Depends: kernel-image, nic-shared-modules +Priority: standard +Description: Network interface support + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, nic-modules +Priority: standard +Description: PCMCIA network interface support + +Package: nic-usb-modules +Depends: kernel-image, nic-shared-modules, usb-modules +Priority: standard +Description: USB network interface support + +Package: parport-modules +Depends: kernel-image +Priority: standard +Description: Parallel port support + +Package: pata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: PATA support modules + +Package: pcmcia-modules +Depends: kernel-image +Priority: standard +Description: PCMCIA Modules + +Package: pcmcia-storage-modules +Depends: kernel-image, scsi-modules +Priority: standard +Description: PCMCIA storage support + +Package: plip-modules +Depends: kernel-image, nic-shared-modules, parport-modules +Priority: standard +Description: PLIP (parallel port) networking support + +Package: ppp-modules +Depends: kernel-image, nic-shared-modules, serial-modules +Priority: standard +Description: PPP (serial port) networking support + +Package: sata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SATA storage support + +Package: scsi-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SCSI storage support + +Package: serial-modules +Depends: kernel-image +Priority: standard +Description: Serial port support + +Package: socket-modules +Depends: kernel-image +Priority: standard +Description: Unix socket support + +Package: storage-core-modules +Depends: kernel-image +Priority: standard +Provides: loop-modules +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: usb-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Core USB support + +Package: nfs-modules +Priority: standard +Depends: kernel-image +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: block-modules +Priority: standard +Depends: kernel-image, storage-core-modules, parport-modules +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules +Priority: standard +Depends: kernel-image, storage-core-modules, scsi-modules +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: crypto-modules +Priority: extra +Depends: kernel-image +Description: crypto modules + This package contains crypto modules. + +Package: fancontrol-modules +Priority: standard +Depends: kernel-image +Description: Apple powermac fancontrol modules + Contains drivers for macintosh i2c bus as well as for the monitoring devices + connected to it. This allows to control the fans during installation. --- linux-2.6.24.orig/debian/d-i/exclude-modules.powerpc +++ linux-2.6.24/debian/d-i/exclude-modules.powerpc @@ -0,0 +1,5 @@ +efi-modules +fb-modules +acpi-modules +cdrom-modules +fancontrol-modules --- linux-2.6.24.orig/debian/d-i/kernel-versions +++ linux-2.6.24/debian/d-i/kernel-versions @@ -0,0 +1,15 @@ +# arch version flavour installedname suffix bdep +amd64 2.6.24-24 generic 2.6.24-24-generic - + +hppa 2.6.24-24 hppa32 2.6.24-24-hppa32 y +hppa 2.6.24-24 hppa64 2.6.24-24-hppa64 y + +i386 2.6.24-24 386 2.6.24-24-386 - +i386 2.6.24-24 generic 2.6.24-24-generic - + +ia64 2.6.24-24 itanium 2.6.24-24-itanium - + +powerpc 2.6.24-24 powerpc 2.6.24-24-powerpc - +powerpc 2.6.24-24 powerpc64-smp 2.6.24-24-powerpc64-smp - + +sparc 2.6.24-24 sparc64 2.6.24-24-sparc64 - --- linux-2.6.24.orig/debian/d-i/exclude-modules.ia64 +++ linux-2.6.24/debian/d-i/exclude-modules.ia64 @@ -0,0 +1,4 @@ +socket-modules +floppy-modules +cdrom-modules +fancontrol-modules --- linux-2.6.24.orig/debian/d-i/exclude-modules.amd64 +++ linux-2.6.24/debian/d-i/exclude-modules.amd64 @@ -0,0 +1,3 @@ +efi-modules +cdrom-modules +fancontrol-modules --- linux-2.6.24.orig/debian/d-i/exclude-modules.i386 +++ linux-2.6.24/debian/d-i/exclude-modules.i386 @@ -0,0 +1,2 @@ +efi-modules +fancontrol-modules --- linux-2.6.24.orig/debian/d-i/exclude-modules.hppa +++ linux-2.6.24/debian/d-i/exclude-modules.hppa @@ -0,0 +1,11 @@ +firewire-core-modules +efi-modules +socket-modules +irda-modules +floppy-modules +fb-modules +acpi-modules +cdrom-modules +nfs-modules +nic-usb-modules +fancontrol-modules --- linux-2.6.24.orig/debian/d-i/exclude-modules.lpia +++ linux-2.6.24/debian/d-i/exclude-modules.lpia @@ -0,0 +1,9 @@ +efi-modules +serial-modules +cdrom-modules +plip-modules +md-modules +pcmcia-storage-modules +nic-pcmcia-modules +pcmcia-modules +fancontrol-modules --- linux-2.6.24.orig/debian/d-i/modules/pcmcia-storage-modules +++ linux-2.6.24/debian/d-i/modules/pcmcia-storage-modules @@ -0,0 +1,6 @@ +pata_pcmcia ? +qlogic_cs ? +fdomain_cs ? +aha152x_cs ? +nsp_cs ? +sym53c500_cs ? --- linux-2.6.24.orig/debian/d-i/modules/floppy-modules +++ linux-2.6.24/debian/d-i/modules/floppy-modules @@ -0,0 +1 @@ +floppy ? --- linux-2.6.24.orig/debian/d-i/modules/nic-shared-modules +++ linux-2.6.24/debian/d-i/modules/nic-shared-modules @@ -0,0 +1,23 @@ +# PHY +8390 ? +mii ? + +# CRC modules ? +crc-ccitt ? +crc-itu-t ? + +# mac80211 stuff ? +mac80211 ? +rc80211_simple ? +cfg80211 ? + +# rt2x00 lib ? +rt2x00lib ? + +# Wireless 802.11 modules ? +ieee80211 ? +ieee80211_crypt ? +ieee80211_crypt_ccmp ? +ieee80211_crypt_tkip ? +ieee80211_crypt_wep ? +ieee80211softmac ? --- linux-2.6.24.orig/debian/d-i/modules/fat-modules +++ linux-2.6.24/debian/d-i/modules/fat-modules @@ -0,0 +1,8 @@ +# Windows filesystems ? +fat ? +vfat ? + +# Supporting modules ? +nls_cp437 ? +nls_iso8859-1 ? +nls_utf8 ? --- linux-2.6.24.orig/debian/d-i/modules/crypto-modules +++ linux-2.6.24/debian/d-i/modules/crypto-modules @@ -0,0 +1,9 @@ +aes_generic +blowfish +twofish +serpent +sha256_generic +cbc ? +ebc ? +crc32c ? +libcrc32c ? --- linux-2.6.24.orig/debian/d-i/modules/ide-modules +++ linux-2.6.24/debian/d-i/modules/ide-modules @@ -0,0 +1,45 @@ +ide-generic ? +ide-pnp ? +icside ? +rapide ? +bast-ide ? +ide-cris ? +ali14xx ? +dtc2278 ? +ht6560b ? +qd65xx ? +umc8672 ? +ide-cs ? +hd ? +swarm ? +au1xxx-ide ? +aec62xx ? +alim15x3 ? +amd74xx ? +atiixp ? +cmd64x ? +cs5520 ? +cs5530 ? +cs5535 ? +sc1200 ? +cy82c693 ? +hpt34x ? +hpt366 ? +it821x ? +jmicron ? +ns87415 ? +opti621 ? +pdc202xx_old ? +pdc202xx_new ? +piix ? +rz1000 ? +serverworks ? +sgiioc4 ? +siimage ? +sis5513 ? +sl82c105 ? +slc90e66 ? +triflex ? +trm290 ? +via82cxxx ? +generic ? --- linux-2.6.24.orig/debian/d-i/modules/usb-modules +++ linux-2.6.24/debian/d-i/modules/usb-modules @@ -0,0 +1,5 @@ +ehci-hcd ? +ohci-hcd ? +sl811-hcd ? +uhci-hcd ? +usbserial ? --- linux-2.6.24.orig/debian/d-i/modules/socket-modules +++ linux-2.6.24/debian/d-i/modules/socket-modules @@ -0,0 +1 @@ +af_packet ? --- linux-2.6.24.orig/debian/d-i/modules/nic-pcmcia-modules +++ linux-2.6.24/debian/d-i/modules/nic-pcmcia-modules @@ -0,0 +1,19 @@ +3c574_cs ? +3c589_cs ? +airo_cs ? +atmel_cs ? +axnet_cs ? +com20020_cs ? +fmvj18x_cs ? +ibmtr_cs ? +netwave_cs ? +nmclan_cs ? +orinoco_cs ? +pcnet_cs ? +ray_cs ? +smc91c92_cs ? +wavelan_cs ? +wl3501_cs ? +xirc2ps_cs ? +xircom_cb ? +xircom_tulip_cb ? --- linux-2.6.24.orig/debian/d-i/modules/serial-modules +++ linux-2.6.24/debian/d-i/modules/serial-modules @@ -0,0 +1,3 @@ +generic_serial ? +serial_cs ? +synclink_cs ? --- linux-2.6.24.orig/debian/d-i/modules/pcmcia-modules +++ linux-2.6.24/debian/d-i/modules/pcmcia-modules @@ -0,0 +1,8 @@ +i82092 ? +i82365 ? +pcmcia ? +pcmcia_core ? +pd6729 ? +rsrc_nonstatic ? +tcic ? +yenta_socket ? --- linux-2.6.24.orig/debian/d-i/modules/fs-core-modules +++ linux-2.6.24/debian/d-i/modules/fs-core-modules @@ -0,0 +1,5 @@ +ext2 ? +ext3 ? +jfs ? +reiserfs ? +xfs ? --- linux-2.6.24.orig/debian/d-i/modules/nic-modules +++ linux-2.6.24/debian/d-i/modules/nic-modules @@ -0,0 +1,147 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +atl1 ? +atmel ? +atmel_pci ? +b44 ? +bcm43xx ? +bcm43xx-mac80211 ? +bmac ? +bnx2 ? +bonding ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k ? +dmfe ? +dummy ? +e100 ? +e1000 ? +e1000e ? +e2100 ? +eepro ? +eepro100 ? +eexpress ? +epic100 ? +eql ? +es3210 ? +eth16i ? +ewrk3 ? +fealnx ? +forcedeth ? +ps3_gelic ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ipddp ? +ipw2100 ? +ipw2200 ? +ipw3945 ? +ixgb ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mv643xx_eth ? +myri_sbus ? +natsemi ? +ne ? +ne2 ? +ne2k-pci ? +ne3210 ? +netconsole ? +ni5010 ? +ni52 ? +ni65 ? +niu ? +ns83820 ? +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 ? +prism54 ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2500 ? +rt61pci ? +s2io ? +shaper ? +sis190 ? +sis900 ? +spidernet ? +skfp ? +skge ? +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire ? +strip ? +sunbmac ? +sundance ? +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +sunvnet ? +tg3 ? +tlan ? +tms380tr ? +tmspci ? +tulip ? +tun ? +typhoon ? +uli526x ? +via-rhine ? +via-velocity ? +virtio_net ? +wavelan ? +wd ? +winbond-840 ? +yellowfin ? +znet ? --- linux-2.6.24.orig/debian/d-i/modules/scsi-modules +++ linux-2.6.24/debian/d-i/modules/scsi-modules @@ -0,0 +1,113 @@ +# SCSI +raid_class ? +scsi_transport_spi ? +scsi_transport_fc ? +scsi_transport_iscsi ? +scsi_transport_sas ? +iscsi_tcp ? +libiscsi ? +amiga7xx ? +a3000 ? +a2091 ? +gvp11 ? +mvme147 ? +sgiwd93 ? +cyberstorm ? +cyberstormII ? +blz2060 ? +blz1230 ? +fastlane ? +oktagon_esp_mod ? +atari_scsi ? +mac_scsi ? +mac_esp ? +sun3_scsi ? +mvme16x ? +bvme6000 ? +sim710 ? +advansys ? +psi240i ? +BusLogic ? +dpt_i2o ? +u14-34f ? +ultrastor ? +aha152x ? +aha1542 ? +aha1740 ? +aic7xxx_old ? +ips ? +fd_mcs ? +fdomain ? +in2000 ? +g_NCR5380 ? +g_NCR5380_mmio ? +NCR53c406a ? +NCR_D700 ? +NCR_Q720_mod ? +sym53c416 ? +qlogicfas408 ? +qla1280 ? +pas16 ? +seagate ? +seagate ? +t128 ? +dmx3191d ? +dtc ? +zalon7xx ? +eata_pio ? +wd7000 ? +mca_53c9x ? +ibmmca ? +eata ? +dc395x ? +tmscsim ? +megaraid ? +atp870u ? +esp ? +gdth ? +initio ? +a100u2w ? +qlogicpti ? +ide-scsi ? +mesh ? +mac53c94 ? +pluto ? +dec_esp ? +3w-xxxx ? +3w-9xxx ? +ppa ? +imm ? +jazz_esp ? +sun3x_esp ? +fcal ? +lasi700 ? +nsp32 ? +ipr ? +hptiop ? +stex ? +osst ? +sg ? +ch ? +scsi_debug ? +aacraid ? +aic7xxx ? +aic79xx ? +aic94xx ? +arcmsr ? +acornscsi_mod ? +arxescsi ? +cumana_1 ? +cumana_2 ? +ecoscsi ? +oak ? +powertec ? +eesox ? +ibmvscsic ? +libsas ? +lpfc ? +megaraid_mm ? +megaraid_mbox ? +megaraid_sas ? +qla2xxx ? +sym53c8xx ? +qla4xxx ? --- linux-2.6.24.orig/debian/d-i/modules/storage-core-modules +++ linux-2.6.24/debian/d-i/modules/storage-core-modules @@ -0,0 +1,48 @@ +# For SATA and PATA +libata ? + +# For SCSI (and for ATA and USB) +scsi_mod ? + +# IDE Core support +ide-core ? + +# USB Core for usb-storage ? +usbcore ? + +## Block level modules for each bus type ? + +# Generic cdrom support ? +cdrom ? + +# PS3 storage lib +ps3stor_lib ? +# PS3 Optical Storage +ps3rom ? + +# Anything that wants cdrom support will want isofs too +isofs ? + +# IDE Block devices ? +ide-cd ? +ide-disk ? +ide-floppy ? +ide-tape ? + +# SCSI Block devices ? +sd_mod ? +sr_mod ? +st ? + +# USB Storage modull ? +usb-storage ? + +# Loop modules (loop is built-in on sparc64) +loop ? +cloop ? + +# virtio modules +virtio ? +virtio_ring ? +virtio_pci ? +virtio_blk ? --- linux-2.6.24.orig/debian/d-i/modules/acpi-modules +++ linux-2.6.24/debian/d-i/modules/acpi-modules @@ -0,0 +1,2 @@ +fan ? +thermal ? --- linux-2.6.24.orig/debian/d-i/modules/efi-modules +++ linux-2.6.24/debian/d-i/modules/efi-modules @@ -0,0 +1 @@ +efivars ? --- linux-2.6.24.orig/debian/d-i/modules/firewire-core-modules +++ linux-2.6.24/debian/d-i/modules/firewire-core-modules @@ -0,0 +1,4 @@ +ieee1394 ? +ohci1394 ? +sbp2 ? +eth1394 ? --- linux-2.6.24.orig/debian/d-i/modules/plip-modules +++ linux-2.6.24/debian/d-i/modules/plip-modules @@ -0,0 +1 @@ +plip ? --- linux-2.6.24.orig/debian/d-i/modules/message-modules +++ linux-2.6.24/debian/d-i/modules/message-modules @@ -0,0 +1,13 @@ +mptbase ? +mptctl ? +mptfc ? +mptlan ? +mptsas ? +mptscsih ? +mptspi ? +i2o_block ? +i2o_bus ? +i2o_config ? +i2o_core ? +i2o_proc ? +i2o_scsi ? --- linux-2.6.24.orig/debian/d-i/modules/nic-usb-modules +++ linux-2.6.24/debian/d-i/modules/nic-usb-modules @@ -0,0 +1,11 @@ +catc ? +kaweth ? +pegasus ? +prism2_usb ? +rtl8150 ? +usbnet ? +zd1211rw ? +zd1201 ? +rt2500usb ? +rt73usb ? +rt2570 ? --- linux-2.6.24.orig/debian/d-i/modules/fb-modules +++ linux-2.6.24/debian/d-i/modules/fb-modules @@ -0,0 +1,3 @@ +fbcon ? +vesafb ? +vga16fb ? --- linux-2.6.24.orig/debian/d-i/modules/parport-modules +++ linux-2.6.24/debian/d-i/modules/parport-modules @@ -0,0 +1,3 @@ +parport ? +parport_pc ? +parport_sunbpp ? --- linux-2.6.24.orig/debian/d-i/modules/md-modules +++ linux-2.6.24/debian/d-i/modules/md-modules @@ -0,0 +1,17 @@ +dm-crypt ? +dm-emc ? +dm-mirror ? +dm-mod ? +dm-multipath ? +dm-round-robin ? +dm-snapshot ? +dm-zero ? +faulty ? +linear ? +md-mod ? +multipath ? +raid0 ? +raid10 ? +raid1 ? +raid456 ? +xor ? --- linux-2.6.24.orig/debian/d-i/modules/ipv6-modules +++ linux-2.6.24/debian/d-i/modules/ipv6-modules @@ -0,0 +1 @@ +ipv6 ? --- linux-2.6.24.orig/debian/d-i/modules/ppp-modules +++ linux-2.6.24/debian/d-i/modules/ppp-modules @@ -0,0 +1,6 @@ +ppp_async ? +ppp_deflate ? +ppp_mppe ? +pppoe ? +pppox ? +ppp_synctty ? --- linux-2.6.24.orig/debian/d-i/modules/pata-modules +++ linux-2.6.24/debian/d-i/modules/pata-modules @@ -0,0 +1,44 @@ +ata_generic ? +pata_ali ? +pata_amd ? +pata_artop ? +pata_atiixp ? +pata_cmd640 ? +pata_cmd64x ? +pata_cs5520 ? +pata_cs5530 ? +pata_cs5535 ? +pata_cypress ? +pata_efar ? +pata_hpt366 ? +pata_hpt37x ? +pata_hpt3x2n ? +pata_hpt3x3 ? +pata_isapnp ? +pata_it8213 ? +pata_it821x ? +pata_ixp4xx_cf ? +pata_jmicron ? +pata_legacy ? +pata_marvell ? +pata_mpc52xx ? +pata_mpiix ? +pata_netcell ? +pata_ns87410 ? +pata_oldpiix ? +pata_opti ? +pata_optidma ? +pata_pdc2027x ? +pata_pdc202xx_old ? +pata_platform ? +pata_qdi ? +pata_radisys ? +pata_rz1000 ? +pata_sc1200 ? +pata_scc ? +pata_serverworks ? +pata_sil680 ? +pata_sl82c105 ? +pata_triflex ? +pata_via ? +pata_winbond ? --- linux-2.6.24.orig/debian/d-i/modules/block-modules +++ linux-2.6.24/debian/d-i/modules/block-modules @@ -0,0 +1,33 @@ +cryptoloop ? +DAC960 ? +aoe ? +cciss ? +cpqarray ? +nbd ? +bpck6 ? +aten ? +bpck ? +comm ? +dstr ? +epat ? +epia ? +fit2 ? +fit3 ? +friq ? +frpw ? +kbic ? +ktti ? +on20 ? +on26 ? +paride ? +pcd ? +pd ? +pf ? +pg ? +pt ? +pktcdvd ? +ps3disk ? +sunvdc ? +sx8 ? +umem ? +xd ? --- linux-2.6.24.orig/debian/d-i/modules/input-modules +++ linux-2.6.24/debian/d-i/modules/input-modules @@ -0,0 +1,12 @@ +atkbd ? +evdev ? +hil_kbd ? +hilkbd ? +hil_mlc ? +hp_sdc ? +hp_sdc_mlc ? +i8042 ? +mousedev ? +psmouse ? +usbhid ? +usbkbd ? --- linux-2.6.24.orig/debian/d-i/modules/speakup-modules +++ linux-2.6.24/debian/d-i/modules/speakup-modules @@ -0,0 +1,16 @@ +speakup_keyhelp ? +speakupmain ? +speakup_acntpc ? +speakup_acntsa ? +speakup_apollo ? +speakup_audptr ? +speakup_bns ? +speakup_decext ? +speakup_decpc ? +speakup_dectlk ? +speakup_dtlk ? +speakup_keypc ? +speakup_ltlk ? +speakup_sftsyn ? +speakup_spkout ? +speakup_txprt ? --- linux-2.6.24.orig/debian/d-i/modules/nfs-modules +++ linux-2.6.24/debian/d-i/modules/nfs-modules @@ -0,0 +1,3 @@ +nfs ? +lockd ? +sunrpc ? --- linux-2.6.24.orig/debian/d-i/modules/fs-secondary-modules +++ linux-2.6.24/debian/d-i/modules/fs-secondary-modules @@ -0,0 +1,13 @@ +# Windows filesystems; fuse is needed for ntfs-3g. +fuse ? +ntfs ? + +# UFS (Unix SysV) +ufs ? + +# Mac HFS +hfs ? +hfsplus ? + +# Amiga fs ? +affs ? --- linux-2.6.24.orig/debian/d-i/modules/irda-modules +++ linux-2.6.24/debian/d-i/modules/irda-modules @@ -0,0 +1,26 @@ +act200l-sir ? +actisys-sir ? +ali-ircc ? +donauboe ? +esi-sir ? +girbil-sir ? +ircomm ? +ircomm-tty ? +irda ? +irda-usb ? +irlan ? +irnet ? +irport ? +irtty-sir ? +litelink-sir ? +ma600-sir ? +mcp2120-sir ? +nsc-ircc ? +old_belkin-sir ? +sir-dev ? +smsc-ircc2 ? +stir4200 ? +tekram-sir ? +via-ircc ? +vlsi_ir ? +w83977af_ir ? --- linux-2.6.24.orig/debian/d-i/modules/sata-modules +++ linux-2.6.24/debian/d-i/modules/sata-modules @@ -0,0 +1,18 @@ +ahci ? +ata_piix ? +# Required by sata_sis +pata_sis ? +pdc_adma ? +sata_inic162x ? +sata_mv ? +sata_nv ? +sata_promise ? +sata_qstor ? +sata_sil ? +sata_sil24 ? +sata_sis ? +sata_svw ? +sata_sx4 ? +sata_uli ? +sata_via ? +sata_vsc ? --- linux-2.6.24.orig/debian/changelog +++ linux-2.6.24/debian/changelog @@ -0,0 +1,6939 @@ +linux (2.6.24-24.57) hardy-security; urgency=low + + [Upstream Kernel Changes] + + * Add '-fno-delete-null-pointer-checks' to gcc CFLAGS + - LP: #403647 + * personality: fix PER_CLEAR_ON_SETID + - CVE-2009-1895 + * KVM: detect if VCPU triple faults + - CVE-2009-2287 + * KVM: x86: check for cr3 validity in ioctl_set_sregs + - CVE-2009-2287 + * r8169: fix crash when large packets are received + - CVE-2009-1389 + * eCryptfs: Check Tag 11 literal data buffer size + - CVE-2009-2406 + * eCryptfs: parse_tag_3_packet check tag 3 packet encrypted key size + - CVE-2009-2407 + + -- Stefan Bader Thu, 23 Jul 2009 15:37:05 +0200 + +linux (2.6.24-24.56) hardy-proposed; urgency=low + + [Stefan Bader] + + * Rebuild of 2.6.24-24.54 with 2.6.24-24.55 security release applied + + -- Stefan Bader Sat, 20 Jun 2009 00:14:36 +0200 + +linux (2.6.24-24.54) hardy-proposed; urgency=low + + [Andy Whitcroft] + + * SAUCE: do not make sysdev links for processors which are not booted + - LP: #295091 + + [Brad Figg] + + * SAUCE: Add information to recognize Toshiba Satellite Pro M10 Alps Touchpad + - LP: #330885 + * SAUCE: Add signatures to airprime driver to support newer Novatel devices + - LP: #365291 + + [Stefan Bader] + + * SAUCE: vgacon: Return the upper half of 512 character fonts + - LP: #355057 + + [Upstream Kernel Changes] + + * SUNRPC: Fix autobind on cloned rpc clients + - LP: #341783, #212485 + * Input: atkbd - mark keyboard as disabled when suspending/unloading + - LP: #213988 + * x86: mtrr: don't modify RdDram/WrDram bits of fixed MTRRs + - LP: #292619 + * sis190: add identifier for Atheros AR8021 PHY + - LP: #247889 + * bluetooth hid: enable quirk handling for Apple Wireless Keyboards in + 2.6.24 + - LP: #227501 + * nfsd: move callback rpc_client creation into separate thread + - LP: #253004 + * nfsd4: probe callback channel only once + - LP: #253004 + + -- Stefan Bader Thu, 19 Mar 2009 01:28:13 +0100 + +linux (2.6.24-24.55) hardy-security; urgency=low + + [Stefan Bader] + + * cifs: backport buffer size fixes for CIFSGetDFSRefer() + - CVE-2009-1633 + * OPENVZ: Fixup for 'kill sig -1' must only apply to caller's namespace + - CVE-2009-1338 + + [Upstream Kernel Changes] + + * nfsd: nfsd should drop CAP_MKNOD for non-root + - CVE-2009-1072 + * KVM: VMX: Don't allow uninhibited access to EFER on i386 + - CVE-2009-1242 + * exit_notify: kill the wrong capable(CAP_KILL) check + - CVE-2009-1337 + * e1000: add missing length check to e1000 receive routine + - CVE-2009-1385 + * Fix memory overwrite when saving nativeFileSystem field during mount + - CVE-2009-1439 + * cifs: Increase size of tmp_buf in cifs_readdir to avoid potential + overflows + - CVE-2009-1633 + * cifs: fix unicode string area word alignment in session setup + - CVE-2009-1633 + * sparc64: Fix crash with /proc/iomem + - CVE-2009-1914 + * splice: fix deadlock in splicing to file + - CVE-2009-1961 + * agp: zero pages before sending to userspace + - CVE-2009-1192 + * af_rose/x25: Sanity check the maximum user frame size + - CVE-2009-1265 + * 'kill sig -1' must only apply to caller's namespace + - CVE-2009-1338 + * nfs: Fix NFS v4 client handling of MAY_EXEC in nfs_permission. + - CVE-2009-1630 + + -- Stefan Bader Mon, 15 Jun 2009 14:01:58 +0200 + +linux (2.6.24-24.53) hardy-proposed; urgency=low + [Stefan Bader] + + * Rebuild of 2.6.24-24.51 with 2.6.24-23.52 security patches applied. + + -- Stefan Bader Sun, 05 Apr 2009 08:23:06 -0400 + +linux (2.6.24-24.51) hardy-proposed; urgency=low + + [Alessio Igor Bogani] + + * rt: Updated PREEMPT_RT support to rt27 + - LP: #324275 + + [Steve Beattie] + + * fix apparmor memory leak on deleted file ops + - LP: #329489 + + [Upstream Kernel Changes] + + * KVM: MMU: Add locking around kvm_mmu_slot_remove_write_access() + - LP: #335097, #333409 + * serial: 8250: fix shared interrupts issues with SMP and RT kernels + - LP: #280821 + * 8250.c: port.lock is irq-safe + - LP: #280821 + * ACPI: Clear WAK_STS on resume + - LP: #251338 + + -- Stefan Bader Wed, 25 Feb 2009 10:18:56 +0100 + +linux (2.6.24-24.50) hardy-proposed; urgency=low + + [Alok Kataria] + + * x86: add X86_FEATURE_HYPERVISOR feature bit + - LP: #319945 + * x86: add a synthetic TSC_RELIABLE feature bit + - LP: #319945 + * x86: vmware: look for DMI string in the product serial key + - LP: #319945 + * x86: Hypervisor detection and get tsc_freq from hypervisor + - LP: #319945 + * x86: Use the synthetic TSC_RELIABLE bit to workaround virtualization + anomalies. + - LP: #319945 + * x86: Skip verification by the watchdog for TSC clocksource. + - LP: #319945 + * x86: Mark TSC synchronized on VMware. + - LP: #319945 + + [Colin Ian King] + + * SAUCE: Bluetooth USB: fix kernel panic during suspend while streaming + audio to bluetooth headset + - LP: #331106 + + [James Troup] + + * XEN: Enable architecture specific get_unmapped_area_topdown + - LP: #237724 + + [Stefan Bader] + + * Xen: Fix FTBS after Vmware TSC updates. + - LP: #319945 + + [Upstream Kernel Changes] + + * r8169: fix RxMissed register access + - LP: #324760 + * r8169: Tx performance tweak helper + - LP: #326891 + * r8169: use pci_find_capability for the PCI-E features + - LP: #326891 + * r8169: add 8168/8101 registers description + - LP: #326891 + * r8169: add hw start helpers for the 8168 and the 8101 + - LP: #326891 + * r8169: additional 8101 and 8102 support + - LP: #326891 + * Fix memory corruption in console selection + - LP: #329007 + + -- Stefan Bader Fri, 30 Jan 2009 11:35:26 +0100 + +linux (2.6.24-23.52) hardy-security; urgency=low + + [Stefan Bader] + * rt: Fix FTBS caused by shm changes + - CVE-2009-0859 + + [Steve Beattie] + + * fix apparmor memory leak on deleted file ops + - LP: #329489 + + [Upstream Kernel Changes] + + * NFS: Remove the buggy lock-if-signalled case from do_setlk() + - CVE-2008-4307 + * sctp: Avoid memory overflow while FWD-TSN chunk is received with bad + stream ID + - CVE-2009-0065 + * net: 4 bytes kernel memory disclosure in SO_BSDCOMPAT gsopt try #2 + - CVE-2009-0676 + * sparc: Fix mremap address range validation. + - CVE-2008-6107 + * copy_process: fix CLONE_PARENT && parent_exec_id interaction + - CVE-2009-0028 + * security: introduce missing kfree + - CVE-2009-0031 + * eCryptfs: check readlink result was not an error before using it + - CVE-2009-0269 + * dell_rbu: use scnprintf() instead of less secure sprintf() + - CVE-2009-0322 + * drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic + - CVE-2009-0675 + * Ext4: Fix online resize block group descriptor corruption + - CVE-2009-0745 + * ext4: Initialize the new group descriptor when resizing the filesystem + - CVE-2009-0745 + * ext4: Add sanity check to make_indexed_dir + - CVE-2009-0746 + * x86-64: syscall-audit: fix 32/64 syscall hole + - CVE-2009-0834 + * x86-64: seccomp: fix 32/64 syscall hole + - CVE-2009-0835 + * shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM + - CVE-2009-0859 + * apparmor: Fix handling of larger number of profiles + - LP: #345144 + * udf: Fix oops when invalid character in filename occurs + - LP: #321606 + * Fix memory corruption in console selection + - CVE-2009-1046 + * SPARC64: Loosen checks in exception table handling. + - LP: #301608, #349655 + + -- Stefan Bader Mon, 16 Mar 2009 18:39:14 +0100 + +linux (2.6.24-23.49) hardy-proposed; urgency=low + + [Colin Ian King] + + * drm/i915 fixes to AR register restore + - LP: #302421 + + [Fabio M. Di Nitto] + + * Enable USB serial support on sparc + - LP: #305188 + + [Stefan Bader] + + * openvz: Adapt openvz patch to compile with improved tcp hash + - LP: #301608 + * Ubuntu-2.6.24-23.47 + * Merge of Ubuntu-2.6.24-23.48 security release + + [Tim Gardner] + + * Enable CONFIG_NFSD_V4=y in -virtual flavour. + - LP: #224138 + + [Upstream Kernel Changes] + + * SPARC64: Loosen checks in exception table handling. + - LP: #301608 + * SPARC: Fix link errors with gcc-4.3 + - LP: #301608 + * TCP: Improve ipv4 established hash function. + - LP: #301608 + * NIU: More BMAC alt MAC address fixes. + - LP: #301608 + * NIU: Fix BMAC alternate MAC address indexing. + - LP: #301608 + * NIU: Bump driver version and release date. + - LP: #301608 + + [Zhao Yakui] + + * Add "acpi.power_nocheck=1" to disable power state check in power + transition + - LP: #69925 + * ACPI: Attach the ACPI device to the ACPI handle as early as possible + - LP: #69925 + * ACPI: Add DMI check to disable power state check in power transition + - LP: #69925 + + -- Stefan Bader Sat, 24 Jan 2009 15:07:12 +0100 + +linux (2.6.24-23.48) hardy-security; urgency=low + + [Upstream Kernel Changes] + + * ATM: CVE-2008-5079: duplicate listen() on socket corrupts the vcc table + - CVE-2008-5079 + * libertas: fix buffer overrun + - CVE-2008-5134 + * Fix inotify watch removal/umount races + - CVE-2008-5182 + * net: Fix soft lockups/OOM issues w/ unix garbage collector + - CVE-2008-5300 + * Enforce a minimum SG_IO timeout + - CVE-2008-5700 + * ib700wdt.c - fix buffer_underflow bug + - CVE-2008-5702 + + -- Stefan Bader Wed, 14 Jan 2009 17:46:55 +0100 + +linux (2.6.24-23.47) hardy-proposed; urgency=low + + [Colin Ian King] + + * drm/i915 fixes to AR register restore + - LP: #302421 + + [Fabio M. Di Nitto] + + * Enable USB serial support on sparc + - LP: #305188 + + [Stefan Bader] + + * openvz: Adapt openvz patch to compile with improved tcp hash + - LP: #301608 + + [Tim Gardner] + + * Enable CONFIG_NFSD_V4=y in -virtual flavour. + - LP: #224138 + + [Upstream Kernel Changes] + + * SPARC64: Loosen checks in exception table handling. + - LP: #301608 + * SPARC: Fix link errors with gcc-4.3 + - LP: #301608 + * TCP: Improve ipv4 established hash function. + - LP: #301608 + * NIU: More BMAC alt MAC address fixes. + - LP: #301608 + * NIU: Fix BMAC alternate MAC address indexing. + - LP: #301608 + * NIU: Bump driver version and release date. + - LP: #301608 + + [Zhao Yakui] + + * Add "acpi.power_nocheck=1" to disable power state check in power + transition + - LP: #69925 + * ACPI: Attach the ACPI device to the ACPI handle as early as possible + - LP: #69925 + * ACPI: Add DMI check to disable power state check in power transition + - LP: #69925 + + -- Stefan Bader Wed, 03 Dec 2008 16:16:13 +0100 + +linux (2.6.24-23.46) hardy-proposed; urgency=low + + [Alessio Igor Bogani] + + * rt: Updated PREEMPT_RT support to rt21 + - LP: #302138 + + [Amit Kucheria] + + * SAUCE: Update lpia patches from moblin tree + - LP: #291457 + + [Andy Whitcroft] + + * SAUCE: replace gfs2_bitfit with upstream version to prevent oops + - LP: #276641 + + [Colin Ian King] + + * isdn: Do not validate ISDN net device address prior to interface-up + - LP: #237306 + * hwmon: (coretemp) Add Penryn CPU to coretemp + - LP: #235119 + * USB: add support for Motorola ROKR Z6 cellphone in mass storage mode + - LP: #263217 + * md: fix an occasional deadlock in raid5 + - LP: #208551 + + [Stefan Bader] + + * SAUCE: buildenv: Show CVE entries in printchanges + * SAUCE: buildenv: Send git-ubuntu-log informational message to stderr + * Xen: dma: avoid unnecessarily SWIOTLB bounce buffering + - LP: #247148 + * Update openvz patchset to apply to latest stable tree. + - LP: #301634 + * XEN: Fix FTBS with stable updates + - LP: #301634 + + [Steve Conklin] + + * Add HID quirk for dual USB gamepad + - LP: #140608 + + [Tim Gardner] + + * Enable CONFIG_AX25_DAMA_SLAVE=y + - LP: #257684 + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + - LP: #278794 + * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400 + - LP: #270643 + + [Upstream Kernel Changes] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + - LP: #217659 + * KVM: VMX: Clear CR4.VMXE in hardware_disable + - LP: #268981 + * iov_iter_advance() fix + - LP: #231746 + * Fix off-by-one error in iov_iter_advance() + - LP: #231746 + * USB: serial: ch341: New VID/PID for CH341 USB-serial + - LP: #272485 + * x86: Fix 32-bit x86 MSI-X allocation leakage + - LP: #273103 + * b43legacy: Fix failure in rate-adjustment mechanism + - LP: #273143 + * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + - LP: #276334 + * openvz: merge missed fixes from vanilla 2.6.24 openvz branch + - LP: #298059 + * openvz: some autofs related fixes + - LP: #298059 + * openvz: fix ve stop deadlock after nfs connect + - LP: #298059 + * openvz: fix netlink and rtnl inside container + - LP: #298059 + * openvz: fix wrong size of ub0_percpu + - LP: #298059 + * openvz: fix OOPS while stopping VE started before binfmt_misc.ko loaded + - LP: #298059 + * x86-64: Fix "bytes left to copy" return value for copy_from_user() + * NET: Fix race in dev_close(). (Bug 9750) + - LP: #301608 + * IPV6: Fix IPsec datagram fragmentation + - LP: #301608 + * IPV6: dst_entry leak in ip4ip6_err. + - LP: #301608 + * IPV4: Remove IP_TOS setting privilege checks. + - LP: #301608 + * IPCONFIG: The kernel gets no IP from some DHCP servers + - LP: #301608 + * IPCOMP: Disable BH on output when using shared tfm + - LP: #301608, #242804 + * IRQ_NOPROBE helper functions + - LP: #301608 + * MIPS: Mark all but i8259 interrupts as no-probe. + - LP: #301608 + * ub: fix up the conversion to sg_init_table() + - LP: #301608 + * x86: adjust enable_NMI_through_LVT0() + - LP: #301608 + * SCSI ips: handle scsi_add_host() failure, and other err cleanups + - LP: #301608 + * CRYPTO xcbc: Fix crash with IPsec + - LP: #301608 + * CRYPTO xts: Use proper alignment + - LP: #301608 + * SCSI ips: fix data buffer accessors conversion bug + - LP: #301608 + * SCSI aic94xx: fix REQ_TASK_ABORT and REQ_DEVICE_RESET + - LP: #301608 + * x86: replace LOCK_PREFIX in futex.h + - LP: #301608 + * ARM pxa: fix clock lookup to find specific device clocks + - LP: #301608 + * futex: fix init order + - LP: #301608 + * futex: runtime enable pi and robust functionality + - LP: #301608 + * file capabilities: simplify signal check + - LP: #301608 + * hugetlb: ensure we do not reference a surplus page after handing it to + buddy + - LP: #301608 + * ufs: fix parenthesisation in ufs_set_fs_state() + - LP: #301608 + * spi: pxa2xx_spi clock polarity fix + - LP: #301608 + * NETFILTER: Fix incorrect use of skb_make_writable + - LP: #301608 + * NETFILTER: fix ebtable targets return + - LP: #301608 + * SCSI advansys: fix overrun_buf aligned bug + - LP: #301608 + * pata_hpt*, pata_serverworks: fix UDMA masking + - LP: #301608 + * moduleparam: fix alpha, ia64 and ppc64 compile failures + - LP: #301608 + * PCI x86: always use conf1 to access config space below 256 bytes + - LP: #301608 + * e1000e: Fix CRC stripping in hardware context bug + - LP: #301608 + * atmel_spi: fix clock polarity + - LP: #301608 + * x86: move out tick_nohz_stop_sched_tick() call from the loop + - LP: #301608 + * macb: Fix speed setting + - LP: #301608 + * ioat: fix 'ack' handling, driver must ensure that 'ack' is zero + - LP: #301608 + * VT notifier fix for VT switch + - LP: #301608 + * USB: ftdi_sio: Workaround for broken Matrix Orbital serial port + - LP: #301608 + * USB: ftdi_sio - really enable EM1010PC + - LP: #301608 + * SCSI: fix BUG when sum(scatterlist) > bufflen + - LP: #301608 + * x86: don't use P6_NOPs if compiling with CONFIG_X86_GENERIC + - LP: #301608 + * Fix default compose table initialization + - LP: #301608 + * SCSI: gdth: bugfix for the at-exit problems + - LP: #301608 + * sched: fix race in schedule() + - LP: #301608 + * nfsd: fix oops on access from high-numbered ports + - LP: #301608 + * sched_nr_migrate wrong mode bits + - LP: #301608 + * NETFILTER: xt_time: fix failure to match on Sundays + - LP: #301608 + * NETFILTER: nfnetlink_queue: fix computation of allocated size for + netlink skb + - LP: #301608 + * NETFILTER: nfnetlink_log: fix computation of netlink skb size + - LP: #301608 + * zisofs: fix readpage() outside i_size + - LP: #301608 + * jbd2: correctly unescape journal data blocks + - LP: #301608 + * jbd: correctly unescape journal data blocks + - LP: #301608 + * aio: bad AIO race in aio_complete() leads to process hang + - LP: #301608 + * async_tx: avoid the async xor_zero_sum path when src_cnt > + device->max_xor + - LP: #301608 + * SCSI advansys: Fix bug in AdvLoadMicrocode + - LP: #301608 + * BLUETOOTH: Fix bugs in previous conn add/del workqueue changes. + - LP: #301608 + * relay: fix subbuf_splice_actor() adding too many pages + - LP: #301608 + * slab: NUMA slab allocator migration bugfix + - LP: #301608 + * S390 futex: let futex_atomic_cmpxchg_pt survive early functional tests. + - LP: #301608 + * Linux 2.6.24.4 + - LP: #301608 + * time: prevent the loop in timespec_add_ns() from being optimised away + - LP: #301632 + * kbuild: soften modpost checks when doing cross builds + - LP: #301632 + * mtd: memory corruption in block2mtd.c + - LP: #301632 + * md: remove the 'super' sysfs attribute from devices in an 'md' array + - LP: #301632 + * V4L: ivtv: Add missing sg_init_table() + - LP: #301632 + * UIO: add pgprot_noncached() to UIO mmap code + - LP: #301632 + * USB: new quirk flag to avoid Set-Interface + - LP: #301632 + * NOHZ: reevaluate idle sleep length after add_timer_on() + - LP: #301632 + * slab: fix cache_cache bootstrap in kmem_cache_init() + - LP: #301632 + * xen: fix RMW when unmasking events + - LP: #301632 + * xen: mask out SEP from CPUID + - LP: #301632 + * xen: fix UP setup of shared_info + - LP: #301632 + * PERCPU : __percpu_alloc_mask() can dynamically size percpu_data storage + - LP: #301632 + * alloc_percpu() fails to allocate percpu data + - LP: #301632 + * vfs: fix data leak in nobh_write_end() + - LP: #301632 + * pci: revert SMBus unhide on HP Compaq nx6110 + - LP: #301632 + * vmcoreinfo: add the symbol "phys_base" + - LP: #301632 + * USB: Allow initialization of broken keyspan serial adapters. + - LP: #301632 + * USB: serial: fix regression in Visor/Palm OS module for kernels >= + 2.6.24 + - LP: #301632 + * USB: serial: ti_usb_3410_5052: Correct TUSB3410 endpoint requirements. + - LP: #301632 + * CRYPTO xcbc: Fix crash when ipsec uses xcbc-mac with big data chunk + - LP: #301632 + * mtd: fix broken state in CFI driver caused by FL_SHUTDOWN + - LP: #301632 + * ipmi: change device node ordering to reflect probe order + - LP: #301632 + * AX25 ax25_out: check skb for NULL in ax25_kick() + - LP: #301632 + * NET: include into linux/ethtool.h for __u* typedef + - LP: #301632 + * SUNGEM: Fix NAPI assertion failure. + - LP: #301632 + * INET: inet_frag_evictor() must run with BH disabled + - LP: #301632 + * LLC: Restrict LLC sockets to root + - LP: #301632 + * netpoll: zap_completion_queue: adjust skb->users counter + - LP: #301632 + * PPPOL2TP: Make locking calls softirq-safe + - LP: #301632 + * PPPOL2TP: Fix SMP issues in skb reorder queue handling + - LP: #301632 + * NET: Add preemption point in qdisc_run + - LP: #301632 + * sch_htb: fix "too many events" situation + - LP: #301632 + * SCTP: Fix local_addr deletions during list traversals. + - LP: #301632 + * NET: Fix multicast device ioctl checks + - LP: #301632 + * TCP: Fix shrinking windows with window scaling + - LP: #301632 + * TCP: Let skbs grow over a page on fast peers + - LP: #301632 + * VLAN: Don't copy ALLMULTI/PROMISC flags from underlying device + - LP: #301632 + * SPARC64: Fix atomic backoff limit. + - LP: #301632 + * SPARC64: Fix __get_cpu_var in preemption-enabled area. + - LP: #301632 + * SPARC64: flush_ptrace_access() needs preemption disable. + - LP: #301632 + * libata: assume no device is attached if both IDENTIFYs are aborted + - LP: #301632 + * sis190: read the mac address from the eeprom first + - LP: #301632 + * bluetooth: hci_core: defer hci_unregister_sysfs() + - LP: #301632 + * SPARC64: Fix FPU saving in 64-bit signal handling. + - LP: #301632 + * DVB: tda10086: make the 22kHz tone for DISEQC a config option + - LP: #301632 + * HFS+: fix unlink of links + - LP: #301632, #154416 + * plip: replace spin_lock_irq with spin_lock_irqsave in irq context + - LP: #301632 + * signalfd: fix for incorrect SI_QUEUE user data reporting + - LP: #301632 + * POWERPC: Fix build of modular drivers/macintosh/apm_emu.c + - LP: #301632 + * PARISC futex: special case cmpxchg NULL in kernel space + - LP: #301632 + * PARISC pdc_console: fix bizarre panic on boot + - LP: #301632 + * PARISC fix signal trampoline cache flushing + - LP: #301632 + * acpi: bus: check once more for an empty list after locking it + - LP: #301632 + * fbdev: fix /proc/fb oops after module removal + - LP: #301632 + * macb: Call phy_disconnect on removing + - LP: #301632 + * file capabilities: remove cap_task_kill() + - LP: #301632 + * locks: fix possible infinite loop in fcntl(F_SETLKW) over nfs + - LP: #301632 + * Linux 2.6.24.5 + - LP: #301632 + * splice: use mapping_gfp_mask + - LP: #301634 + * fix oops on rmmod capidrv + - LP: #301634 + * USB: gadget: queue usb USB_CDC_GET_ENCAPSULATED_RESPONSE message + - LP: #301634 + * JFFS2: Fix free space leak with in-band cleanmarkers + - LP: #301634 + * Increase the max_burst threshold from 3 to tp->reordering. + - LP: #301634 + * USB: remove broken usb-serial num_endpoints check + - LP: #301634 + * V4L: Fix VIDIOCGAP corruption in ivtv + - LP: #301634 + * Linux 2.6.24.6, 2.6.24.7 + - LP: #301634 + + -- Stefan Bader Mon, 24 Nov 2008 09:44:34 +0100 + +linux (2.6.24-22.45) hardy-security; urgency=low + + [Upstream Kernel Changes] + + * Don't allow splice() to files opened with O_APPEND + - CVE-2008-4554 + * sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH + - CVE-2008-4576 + * sctp: Fix kernel panic while process protocol violation parameter + - CVE-2008-4618 + * hfsplus: fix Buffer overflow with a corrupted image + - CVE-2008-4933 + * hfsplus: check read_mapping_page() return value + - CVE-2008-4934 + * net: Fix recursive descent in __scm_destroy(). + - CVE-2008-5029 + * net: unix: fix inflight counting bug in garbage collector + - CVE-2008-5029 + * security: avoid calling a NULL function pointer in + drivers/video/tvaudio.c + - CVE-2008-5033 + * hfs: fix namelength memory corruption + - CVE-2008-5025 + * V4L/DVB (9621): Avoid writing outside shadow.bytes[] array + + -- Stefan Bader Tue, 18 Nov 2008 17:19:02 +0100 + +linux (2.6.24-22.44) hardy-proposed; urgency=low + + [Amit Kucheria] + + * SAUCE: Update lpia patches from moblin tree + - LP: #291457 + + [Colin Ian King] + + * isdn: Do not validate ISDN net device address prior to interface-up + - LP: #237306 + * hwmon: (coretemp) Add Penryn CPU to coretemp + - LP: #235119 + * USB: add support for Motorola ROKR Z6 cellphone in mass storage mode + - LP: #263217 + * md: fix an occasional deadlock in raid5 + - LP: #208551 + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + - LP: #217659 + + [Stefan Bader] + + * SAUCE: buildenv: Show CVE entries in printchanges + * SAUCE: buildenv: Send git-ubuntu-log informational message to stderr + + [Tim Gardner] + + * Enable CONFIG_AX25_DAMA_SLAVE=y + - LP: #257684 + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + - LP: #278794 + * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400 + - LP: #270643 + * KVM: VMX: Clear CR4.VMXE in hardware_disable + - LP: #268981 + * USB: serial: ch341: New VID/PID for CH341 USB-serial + - LP: #272485 + * x86: Fix 32-bit x86 MSI-X allocation leakage + - LP: #273103 + * b43legacy: Fix failure in rate-adjustment mechanism + - LP: #273143 + * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + - LP: #276334 + + -- Stefan Bader Thu, 23 Oct 2008 07:52:39 -0400 + +linux (2.6.24-21.43) hardy-security; urgency=low + + [Stefan Bader] + + * Enable CONFIG_DEBUG_RODATA=y for all architectures. + + [Upstream Kernel Changes] + + * Fix ZERO_PAGE breakage with vmware + - CVE-2008-2372 + * wan: Missing capability checks in sbni_ioctl() + - CVE-2008-3525 + * sctp: add verification checks to SCTP_AUTH_KEY option + - CVE-2008-3526, CVE-2008-4445 + * tmpfs: fix kernel BUG in shmem_delete_inode + - CVE-2008-3534 + * fbdefio: add set_page_dirty handler to deferred IO FB + - CVE-2008-3534 + * iov_iter_advance() fix + - LP: #231746 + * Fix off-by-one error in iov_iter_advance() + - LP: #231746 + - CVE-2008-3535 + * Incorrect length was used in SCTP_*_AUTH_CHUNKS socket option + - CVE-2008-3792 + * sctp: fix potential panics in the SCTP-AUTH API. + - CVE-2008-3792 + * nfsd: fix buffer overrun decoding NFSv4 acl + - CVE-2008-3915 + * sctp: fix random memory dereference with SCTP_HMAC_IDENT option. + - CVE-2008-4113 + * Only allow access to DRM_I915_HWS_ADDR ioctl() for Xserver. + - CVE-2008-383 + + -- Stefan Bader Wed, 01 Oct 2008 16:59:37 -0400 + +linux (2.6.24-21.42) hardy-proposed; urgency=low + + [Stefan Bader] + + * Print bug reference number for upstream changes + + [Tim Gardner] + + * b43 - Add Dell adapter to Bluetooth coexiastence check. + - LP: #257020 + * Enabled CONFIG_NF_CT_NETLINK/CONFIG_NF_CONNTRACK_EVENTS in -virtual + - LP: #257569 + + [Upstream Kernel Changes] + + * eCryptfs: use page_alloc not kmalloc to get a page of memory + - LP: #242448 + * openvz: sync with stable 2.6.18-rhel5 branch + - LP: #258044 + * USB: quirk PLL power down mode + - LP: #257931 + * acpi: unneccessary to scan the PCI bus already scanned + - LP: #258143 + * eCryptfs: make ecryptfs_prepare_write decrypt the page + - LP: #242448 + * gdth: don't call pci_free_consistent under spinlock + - LP: #199934 + * SCSI: gdth: fix to internal commands execution + - LP: #199934 + * r8169: avoid thrashing PCI conf space above RTL_GIGA_MAC_VER_06 + - LP: #141343 + * (CVE-2008-3276) dccp: change L/R must have at least one byte in the + dccpsf_val field + * suspend-vs-iommu: prevent suspend if we could not resume + - LP: #257293 + * x86, gart: add resume handling + - LP: #257293 + + -- Stefan Bader Wed, 22 Aug 2008 12:07:28 -0400 + +linux (2.6.24-21.40) hardy-proposed; urgency=low + + [Tim Gardner] + + * Bump ABI for WiMax 'enum rfkill_type' additions. + + [Upstream Kernel Changes] + + * b43: Add more btcoexist workarounds + - LP: #257020 + + -- Tim Gardner Mon, 11 Aug 2008 13:13:46 -0600 + +linux (2.6.24-20.39) hardy-proposed; urgency=low + + [Amit Kucheria] + + * rfkill: add the WiMAX radio type + - LP: #253347 + * if_arp: add a WiMax pseudo header + - LP: #253347 + + [Stefan Bader] + + * Backport ability to reset the machine using the RESET_REG of ACPI + - LP: #249296 + * SAUCE: Add the ability to whitelist systems to use ACPI reboot + - LP: #249296 + * SAUCE: Add reboot=a preselection quirk + - LP: #249296 + * Backport make USB-PERSIST work after every system sleep + - LP: #254783 + + [Upstream Kernel Changes] + + * V4L/DVB (7068): Add support for WinTV Nova-T-CE driver + - LP: #238164 + * [NETFILTER]: {ip,ip6,nfnetlink}_queue: fix SKB_LINEAR_ASSERT when + mangling packet data + - LP: #236699 + * sky2: 88E8040T pci device id + - LP: #237211 + * md: close a livelock window in handle_parity_checks5 + - LP: #244377 + * Fix typos from signal_32/64.h merge + - LP: #230315 + + -- Stefan Bader Fri, 08 Aug 2008 11:39:18 -0400 + +linux (2.6.24-20.38) hardy-proposed; urgency=low + + [Tim Gardner] + + * SAUCE: Export usbhid_modify_dquirk for LBM module bcm5974 + - LP: #250838 + * Enable TULIP ethernet support in virtual appliance flavour + - LP: #250857 + * VIA AGP VT3364 is not detected + - LP: #251854 + * VIA - Add VIA DRM Chrome9 3D engine + - LP: #251862 + + [Upstream Kernel Changes] + + * net/usb: add support for Apple USB Ethernet Adapter + - LP: #232200 + * acpi: fix "buggy BIOS check" when CPUs are hot removed + - LP: #248509 + * x86: fix paranoia about using BIOS quickboot mechanism. + - LP: #248905 + * flush kacpi_notify_wq before removing notify handler + - LP: #248509 + * fix a deadlock issue when poking "eject" file + - LP: #248509 + * force offline the processor during hot-removal + - LP: #248509 + * create sysfs link from acpi device to sysdev for cpu + - LP: #248509 + * x86: fix bootup crash in native_read_tsc() (aka use XMM2) + - LP: #249135 + * x86: lfence fix - LFENCE is available on XMM2 or higher + Intel CPUs - not XMM or higher... + - LP: #249135 + + -- Tim Gardner Fri, 25 Jul 2008 22:12:46 -0600 + +linux (2.6.24-20.37) hardy-proposed; urgency=low + + [Colin Ian King] + + * scheduling while atomic: archhttp64/7146/0x1000000001 + - LP: #235889 + * Slim USB Apple Keyboard not working correctly when pressing the + "numlock" key + - LP: #201887 + + [Linus Torvalds] + + * Reinstate ZERO_PAGE optimization in 'get_user_pages()' and fix XIP + - LP: #246663 + + [Michael Frey (Senior Manager, MID)] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + - LP: #241749 + + [Stefan Bader] + + * drivers: fix dma_get_required_mask + - LP: #238118 + * Modify log generation to catch bug numbers when adding with git-am. + * ACPICA: Fix for resource descriptor optimization issues for _CRS/_SRC + - LP: #152187 + * ACPI: Fix acpi_processor_idle and idle= boot parameters interaction + - LP: #241229 + * cpuidle acpi driver: fix oops on AC<->DC + - LP: #241229 + * ACPI: EC: Do the byte access with a fast path + - LP: #191137 + * ACPI: EC: Some hardware requires burst mode to operate properly + - LP: #191137 + + [Tejun Heo] + + * ahci: jmb361 has only one port + - LP: #244363 + + [Tim Gardner] + + * Add native_read_tsc to non __i386__ code. + - LP: #249135 + * Fix x86-64 FTBS after upstream cherry-pick of + 898ad535e2c81e0b02628c1ee5d8400c971500dd + - LP: #249135 + * Use readtsc-barrier in xen + - LP: #249135 (for the previous 7 log entries) + * Enabled CONFIG_NETDEVICES_MULTIQUEUE=y in order to support 802.11n + - LP: #241423 + * SAUCE: e1000 checksum recheck after reset + - LP: #60388 + * Enable CONFIG_CIFS_UPCALL=y to support Kerberos authentication + - LP: #236830 + * Clear host capabilities number of ports after quirking JMB361 + - LP: #244363 + + [Upstream Kernel Changes] + + * x86: tsc prevent time going backwards + - LP: #221351 + * x86: implement support to synchronize RDTSC through MFENCE on AMD CPUs + * x86: Implement support to synchronize RDTSC with LFENCE on Intel CPUs + * x86: move nop declarations into separate include file + * x86: introduce rdtsc_barrier() + * x86: remove get_cycles_sync + * x86: read_tsc sync + * Add barriers to native_read_tsc + - LP: #249135 (for the previous 7 log entries) + * hwmon: (w83781d) Fix I/O resource conflict with PNP + - LP: #242761 + * inotify: fix race + * inotify: remove debug code + - LP: #104837 (previous 2 log entries) + * openvz: sync with stable 2.6.18-rhel5 branch + - LP: #249137 + * UBUNTU SAUCE: Setup PHYs correctly on rtl8101/2(e) hardware + - LP: #240648 + * UBUNTU SAUCE: Update rtl8101/2(e) hardware initialization value + - LP: #240648 + * x86: remove 6 bank limitation in 64 bit MCE reporting code + - LP: #239666 + + -- Tim Gardner Wed, 09 Jul 2008 14:55:14 -0600 + +linux (2.6.24-19.41) hardy-security; urgency=low + + [Upstream Kernel Changes] + + * Fix compiler warning on 64-bit + follow-up for CVE-2008-1673 + * netfilter: nf_nat_snmp_basic: fix a range check in NAT for SNMP + follow-up for CVE-2008-1673 + + -- Stefan.Bader Tue, 19 Aug 2008 15:02:19 -0400 + +linux (2.6.24-19.37) hardy-security; urgency=low + + [Upstream Kernel Changes] + + * (CVE-2008-2812) TTY: fix for tty operations bugs + * (CVE-2008-3272) sound: ensure device number is valid in + snd_seq_oss_synth_make_info + * (CVE-2008-3275) vfs: fix lookup on deleted directory + + -- Ben Collins Tue, 05 Aug 2008 22:28:53 +0000 + +linux (2.6.24-19.36) hardy-security; urgency=low + + * Fixed hppa FTBS by adding ABI files from -19.33. + + -- Tim Gardner Fri, 11 Jul 2008 08:26:29 -0600 + +linux (2.6.24-19.35) hardy-security; urgency=low + + [Upstream Kernel Changes] + + * (CVE-2007-6282) [ESP]: Ensure IV is in linear part of the skb to avoid + BUG() due to OOB access + * (CVE-2008-1673) asn1: additional sanity checking during BER decoding + * (CVE-2008-2136) sit: Add missing kfree_skb() on pskb_may_pull() + failure. + * (CVE-2008-2137) sparc: Fix mmap VA span checking. + * (CVE-2008-2148) vfs: fix permission checking in sys_utimensat + * (CVE-2008-2358) dccp: return -EINVAL on invalid feature length + * (CVE-2008-2750) l2tp: Fix potential memory corruption in + pppol2tp_recvmsg() + * (CVE-2008-1615) x86_64: fix CS corruption on iret + * fuse: fix permission checking + * (CVE-2008-2826) sctp: Make sure N * sizeof(union sctp_addr) does not + overflow. + + -- Tim Gardner Tue, 01 Jul 2008 10:40:28 -0600 + +linux (2.6.24-19.34) hardy-proposed; urgency=low + + [Amit Kucheria] + + * Revert "Update lpia configs to move modules into the kernel" + * LPIA: More conservative culling of LPIA config + + -- Tim Gardner Thu, 05 Jun 2008 09:30:31 -0600 + +linux (2.6.24-19.33) hardy-proposed; urgency=low + + [Alessio Igor Bogani] + + * rt: Updated configuration files + * rt: Disable Dynamic Ticks (CONFIG_NO_HZ) + - LP: #229499 + + [Amit Kucheria] + + * LPIA: USB Client PV release from Intel + * Update lpia configs to move modules into the kernel + + [Colin Ian King] + + * SAUCE: Blacklist IBM 2656 in serio/i8042 + - LP: #21558 + * Fix ipv6 temporary address creation failure + - LP: #210742 + * rndis_host: fix transfer size negotiation + - LP: #192411 + * sata_nv: correct completion handling that fixes system reboots + - LP: #210637 + * drm_sysfs_suspend uses KERN_ERR in printk + - LP: #234239 + + [Mario Limonciello] + + * SAUCE: Work around ACPI corruption upon suspend on some Dell machines. + - LP: #183033 + * SAUCE: Wakeup BT input devices that have been suspended + - LP: #175743 + + [Stefan Bader] + + * cx88: enable radio GPIO correctly + - LP: #209971 + * fix IS_I9XX macro in i915 DRM driver + - LP: #204762 + * x86: fix long standing bug with usb after hibernation with 4GB ram + - LP: #206996 + + [Tim Gardner] + + * rpcb_getport_async in sunrpc can cause oops on Hardy + - LP: #224750 + * kernel: fix x86 DMI checks for PCI quirks + - LP: #225811 + * b43: Workaround invalid bluetooth settings + - LP: #197959 + * ssb: Fix IRQ vectors enable for early cards. + - LP: #197959 + * ssb: Fix TMS low bitmask reject code. + - LP: #197959 + * ssb: Fix all-ones boardflags + - LP: #197959 + * b43legacy: fix hard crash when BCM4303 present. + - LP: #192720 + * b43legacy: Fix bug in firmware loading for 802..11b devices. + - LP: #192720 + * b43legacy: Prevent spamming the logs when LED encoding in SPROM is + faulty. + - LP: #192720 + * block: fix blkdev_issue_flush() not detecting and passing EOPNOTSUPP + back + - LP: #215110 + * V4L/DVB (7132): Add USB ID for a newer variant of Hauppauge WinTV-HVR + 900 + - LP: #195435 + * Add Lenovo Thinkpad X61 DMI Quirk support. + * Enable powerpc-smp64 CONFIG_PASEMI_MAC=m + - LP: #213668 + * OpenVZ kernel: non-POSIX behavior in mmap functions + - LP: #231400 + * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation + (4,1) + - LP: #207127 + * MMC bitmap overflow in 64 bit kernel + - LP: #88992 + * revert: UBUNTU: TSC Clocksource can cause hangs and time jumps + This patch appears to cause suspend to RAM regressions (see LP #226279) + -LP: #221351 + + [Upstream Kernel Changes] + + * openvz: make stat and fstat agree on (st_dev, st_ino) in VE + - LP: #226335 + * V4L/DVB (7066): ASUS My Cinema U3000 Mini DVBT Tuner + - LP: #95277 + * r8169: fix oops in r8169_get_mac_version + - LP: #223656 + * PCI: quirks: set 'En' bit of MSI Mapping for devices onHT-based nvidia + platform + - LP: #181081 + * HID: Implement horizontal wheel handling for A4 Tech X5-005D + - LP: #201964 + * ata-acpi: don't call _GTF for disabled drive + - LP: #202767 + + * openvz: sync 2.6.24-ovz004 => 2.6.24-ovz005 + * openvz: UBC: drop cpuset lock from OOM handling + * openvz: IPv6: get frag's owner VE from inet_frag_queue + * openvz: proc: fix proc_cwd_link + * openvz: VLAN: fix rmmod 8021q with vlan interface setup + * openvz: Remove spurious warnings in kernel/time.c + - LP: #231400, #230432, and #235207 + + -- Tim Gardner Sun, 04 May 2008 20:22:21 -0600 + +linux (2.6.24-18.32) hardy-security; urgency=low + + * CVE-2007-6694: [POWERPC] CHRP: Fix possible NULL pointer dereference + * fix SMP ordering hole in fcntl_setlk() (CVE-2008-1669) + * Fix dnotify/close race (CVE-2008-1375) + * tehuti: check register size (CVE-2008-1675) + * tehuti: move ioctl perm check closer to function start (CVE-2008-1675) + + -- Ben Collins Mon, 19 May 2008 16:50:11 +0000 + +linux (2.6.24-17.31) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: Fix mutex in the toshiba_acpi driver + * rt: Updated configuration files + + [Ben Collins] + + * build: Fix revert detection in git-ubuntu-log + * SAUCE: Re-add eeprom_bad_csum_allow module-param + - LP: #60388 + + [Stefan Bader] + + * Pulled updates to openvz custom build. Fixes openvz 'refuses to boot' problem. + - LP: #210672 + * sched: retain vruntime, fix delayed key events when CONFIG_FAIR_GROUP_SCHED. + - LP: #218516 + * UBUNTU: SAUCE: Add blacklist support to fix Belkin bluetooth dongle. + - LP: #140511 + + [Tim Gardner] + + * Enable CONFIG_ISCSI_TCP for -virtual + - LP: #218215 + * build: Add fancontrol modules to powerpc64-smp debian installer + * Fix Xen Dom0/DomU bridging + - LP: #218126 + * TSC Clocksource can cause hangs and time jumps + - LP: #221351 + * Kernel should use CONFIG_FAIR_CGROUP_SCHED. Fixes high load issues + with pulseaudio. + - LP: #188226 + + [Upstream Kernel Changes] + + * KVM: MMU: prepopulate guest pages after write-protecting + - LP: #221032 + + -- Tim Gardner Fri, 11 Apr 2008 07:59:10 -0600 + +linux (2.6.24-16.30) hardy; urgency=low + + * Fix amd64/i386 ABI and module check FTBS by creating an ignore + and ignore.modules in the ABI directory. + + -- Tim Gardner Wed, 09 Apr 2008 21:58:25 -0600 + +linux (2.6.24-16.29) hardy; urgency=low + + [Stephan Bader] + + * UBUNTU: SAUCE: mmc: Increase power_up deleay to fix TI readers + + [Alessio Igor Bogani] + + * rt: Updated configuration files + + [Chuck Short] + + * Xen updates for vitrio changes. + + [Tim Gardner] + + * openvz updates for vitrio changes. + + -- Tim Gardner Tue, 08 Apr 2008 21:48:16 -0600 + +linux (2.6.24-16.28) hardy; urgency=low + + [Tim Gardner] + + * Revert "UBUNTU: x86: tsc prevent time going backwards" + + [Kees Cook] + + * AppArmor: implement mmap_min_addr check as done in mainline. + + [Soren Hansen] + + * Bring our virtio code up to date with 2.6.25-rc7 + + [Upstream Kernel Changes] + + * Ubuntu: Revert all our virtio changes + * lguest: Reboot support + * lguest: adapt launcher to per-cpuness + * virtio: Implement skb_partial_csum_set, for setting partial csums on + untrusted packets. + * virtio: simplify config mechanism. + * virtio: explicit enable_cb/disable_cb rather than callback return. + * virtio: configuration change callback + * virtio: Fix vring_init/vring_size to take unsigned long + * virtio: clarify NO_NOTIFY flag usage + * virtio: remove unused id field from struct virtio_blk_outhdr + * virtio: Net header needs hdr_len + * virtio: Tweak virtio_net defines + * virtio: populate network rings in the probe routine, not open + * virtio: reset function + * virtio: handle interrupts after callbacks turned off + * virtio: Use the sg_phys convenience function. + * virtio: Allow virtio to be modular and used by modules + * virtnet: remove double ether_setup + * virtio: flush buffers on open + * virtio: free transmit skbs when notified, not on next xmit. + * virtio_net: parametrize the napi_weight for virtio receive queue. + * virtio_blk: provide getgeo + * virtio_blk: Dont waste major numbers + * virtio_blk: implement naming for vda-vdz,vdaa-vdzz,vdaaa-vdzzz + * virtio: PCI device + * virtio: Use PCI revision field to indicate virtio PCI ABI version + * virtio: balloon driver + * virtio net: fix oops on interface-up + * virtio: add missing #include + * virtio: fix race in enable_cb + * virtio: handle > 2 billion page balloon targets + * virtio_net: Fix oops on early interrupts - introduced by virtio reset + code + * lguest: Do not append space to guests kernel command line + * virtio: Use spin_lock_irqsave/restore for virtio-pci + * virtio: Fix sysfs bits to have proper block symlink + * virtio: Enable netpoll interface for netconsole logging + * virtio_pci: unregister virtio device at device remove + * lguest: Add puppies which where previously missing. + * lguest: lguest.txt documentation fix + * lguest: Don't need comment terminator before disk section. + * virtio_pci iomem annotations + * virtio_net: remove overzealous printk + * virtio: remove overzealous BUG_ON. + + -- Tim Gardner Tue, 08 Apr 2008 11:53:49 -0600 + +linux (2.6.24-15.27) hardy; urgency=low + + [Alan Stern] + + * usb-storage: don't access beyond the end of the sg buffer + - LP: #204922 + + [Mario Limonciello] + + * Enable Reset and SCO workaround on Dell 410 BT adapter + + [Tim Gardner] + + * Enable CONFIG_E1000 in the i386 virtual image. + - LP: #205646 + + [Thomas Gleixner] + + * x86: tsc prevent time going backwards + + [Matthew Garrett] + + * Fix framebuffer fonts on non-x86 platforms + + -- Tim Gardner Fri, 04 Apr 2008 08:14:49 -0600 + +linux (2.6.24-15.26) hardy; urgency=low + + [Colin Ian King] + + * airprime.c supports more devices + - LP: #208250 + + [Kees Cook] + + * AppArmor: get latest batch of upstream fixes into Hardy (svn 1160) + + [Stefan Bader] + + * ACPI: fix boot oops regression in kernel + - LP: #207014 + + [Tim Gardner] + + * Enable CGROUPS for non x86/x86_64 arches, all flavours. + - LP: #188226 + + -- Tim Gardner Thu, 03 Apr 2008 07:00:29 -0600 + +linux (2.6.24-14.25) hardy; urgency=low + + [Mario Limonciello] + + * Resolve sky2 race condition leading to failed suspends + - LP: #210877 + + [Tim Gardner] + + * Copy drivers/media internal header files into header + package for external LUM compilation. This paves the + way for LP #202065. + + -- Tim Gardner Wed, 02 Apr 2008 08:28:32 -0600 + +linux (2.6.24-14.24) hardy; urgency=low + + [Amit Kucheria] + + * LPIA: Update from moblin + * LPIA: Fix reboot problem after S3/S4 + * LPIA: Integrate latest Dabney thermal patches + * LPIA: Change-umd_dbg-debug-level-to-KERN_INFO + * LPIA: Compile modules into kernel to save on boot time + * LPIA: lots of Dabney CONFIG options dissapeared + * LPIA: Purge nonexistent config options + + [Jay Chetty] + + * UBUNTU:USBC:Integrated USBC 2.0.0.32L.0009 + + [Misha Zhilin] + + * USB: ehci: handle large bulk URBs correctly (again) + - LP: #204857 + + [Tim Gardner] + + * frame buffer regression - screen blank except for blinking cursor after + fbcon vtswitch + - LP: #201591 + * Blacklist Bluetooth Dell Wireless 370 for SCO MTU + - LP: #209715 + * Set CONFIG_FAIR_CGROUP_SCHED for server flavours. + - LP: #188226 + * Add DMI IO_DELAY support. + - LP: #200057 + + -- Tim Gardner Mon, 31 Mar 2008 11:19:49 -0600 + +linux (2.6.24-13.23) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: Updated configuration files + + [Ben Collins] + + * openvz: New custom flavour for OpenVZ + * config: Disable IDE AMD driver in favor of PATA version + - LP: #181561 + * config: Disable IDE VIA driver in favor of PATA version + - LP: #181561 + * drivers/video: Restore gutsy backlight dimming behavior + - LP: #205261 + * build/config: Enable CONFIG_CIFS_WEAK_PW_HASH + - LP: #202445 + + [Colin Ian King] + + * SAUCE: Add support for version 4 of Chelsio NICs in cxgb3 driver + - LP: #201893 + + [Kees Cook] + + * AppArmor: re-add missing "type" field in syslog reports. + - LP: #202888 + * kvm: reset TSS on x86_64 to avoid ioperm bitmap corruption + - LP: #144900 + + [Stefan Bader] + + * USB: EHCI: add separate IAA watchdog timer + - LP: #198619 + * SAUCE: Always use SCO protocol (disable eSCO support) + - LP: #39414 + * PM: Introduce PM_EVENT_HIBERNATE callback state + - LP: #201086 + + [Tim Gardner] + + * Disable DRM suspend/resume on pre-915 Intel chips + - LP: #207496 + * frame buffer regression - screen blank except for blinking cursor after fbcon + vtswitch + - LP: #201591 + + -- Tim Gardner Wed, 19 Mar 2008 10:05:05 -0400 + +linux (2.6.24-12.22) hardy; urgency=low + + [Ben Collins] + + * custom/rt: Disable toshiba_acpi, since it isn't compatible + + -- Ben Collins Wed, 12 Mar 2008 14:38:59 -0400 + +linux (2.6.24-12.21) hardy; urgency=low + + [Ben Collins] + + * build: Fix vesafb module inclusion into initrd subdir + - LP: #129910 + * net/bluetooth: POWERBOOK => APPLE, fix for apple keyboard patch + * custom/xen: Remove asix portion of xen patch, breaks driver + - LP: #199296 + + [Colin Ian King] + + * SAUCE: fix Udma not fully available in Acer 1694 Wlmi + - LP: #187121 + * SAUCE: Update toshiba_acpi.c to version 0.19a + - LP: #77026 + + [Stefan Bader] + + * x86: Clear DF before calling signal handler + * Enable FN key on Apple aluminum bluetooth keyboard + - LP: #162083 + + -- Ben Collins Tue, 11 Mar 2008 13:20:49 -0400 + +linux (2.6.24-12.20) hardy; urgency=low + + [Ben Collins] + + * Enable CONFIG_SOUND at least, so alsa build in lum works + - LP: #200338 + + -- Ben Collins Mon, 10 Mar 2008 08:15:00 -0400 + +linux (2.6.24-12.19) hardy; urgency=low + + * Re-upload of -12.18 to fix build failures + * Fixup binary-custom configs + * Fixup xen patch to cope with kvm changes + + [Amit Kucheria] + + * Move Marvell 8686 and 8688 to LUM + * Poulsbo: Sync patches with moblin/ume-hardy tree + * Break if a patch fails to apply + * SAUCE: implement smarter atime updates support + - LP: #199427 + * Enable USB_PERSIST to allow devices with /root on usb to work with + suspend + * Enable USB_PERSIST across the board + + [Ben Collins] + + * build/config: Really fix ide on smp ppc configs + * build/configs: Enable relatime config option for all flavors + * build/abi: Ignore ide-core module for ppc, moved to built-in + + [Colin Ian King] + + * fix reversed logic for bbuild check leads to -j1 default + - LP: #197040 + * Enable IDE_PMAC for powerpc-smp + - LP: #196686 + * Disable CONFIG_USB_OHCI_HCD_SSB + - LP: #182716 + * SAUCE: fix arcmsr + archttp64 calls dma_free_coherent() with irqs + disabled - dmesg filled with warnings + - LP: #194207 + + [Jorge Boncompte [DTI2]] + + * Fix Messed multicast lists after dev_mc_sync/unsync + - LP: #193468 + + [Stefan Bader] + + * Add support for Apple Aluminium keyboards. + - LP: #162083 + * SAUCE: Restore VT fonts on switch + + [Upstream Kernel Changes] + + * [NET]: Messed multicast lists after dev_mc_sync/unsync + * KVM: x86 emulator: add support for group decoding + * KVM: x86 emulator: group decoding for group 1A + * KVM: x86 emulator: Group decoding for group 3 + * KVM: x86 emulator: Group decoding for groups 4 and 5 + * KVM: x86 emulator: add group 7 decoding + * KVM: constify function pointer tables + * KVM: Only x86 has pio + * KVM: x86 emulator: group decoding for group 1 instructions + * KVM: MMU: Decouple mmio from shadow page tables + * KVM: Limit vcpu mmap size to one page on non-x86 + * KVM: VMX: Enable Virtual Processor Identification (VPID) + * KVM: Use CONFIG_PREEMPT_NOTIFIERS around struct preempt_notifier + * KVM: Disable pagefaults during copy_from_user_inatomic() + * KVM: make EFER_RESERVED_BITS configurable for architecture code + * KVM: align valid EFER bits with the features of the host system + * KVM: allow access to EFER in 32bit KVM + * kvm: i386 fix + * KVM: export information about NPT to generic x86 code + * KVM: MMU: make the __nonpaging_map function generic + * KVM: export the load_pdptrs() function to modules + * KVM: MMU: add TDP support to the KVM MMU + * KVM: x86 emulator: Fix 'jmp abs' + * KVM: x86 emulator: fix group 5 decoding + * KVM: Fix kvm_arch_vcpu_ioctl_set_sregs so that set_cr0 works properly + * KVM: Make the supported cpuid list a host property rather than a vm + property + * KVM: emulate access to MSR_IA32_MCG_CTL + * KVM: remove the usage of the mmap_sem for the protection of the memory + slots. + * KVM: SVM: allocate the MSR permission map per VCPU + * KVM: make MMU_DEBUG compile again + * KVM: paravirtualized clocksource: host part + * KVM: Add missing semicolon + * KVM: x86 emulator: add ad_mask static inline + * KVM: x86 emulator: make register_address, address_mask static inlines + * KVM: x86 emulator: make register_address_increment and JMP_REL static + inlines + * KVM: Add API to retrieve the number of supported vcpus per vm + * KVM: Increase vcpu count to 16 + * KVM: Add API for determining the number of supported memory slots + * KVM: Increase the number of user memory slots per vm + * KVM: Add stat counter for hypercalls + * KVM: x86 emulator: fix sparse warnings in x86_emulate.c + * KVM: sparse fixes for kvm/x86.c + * KVM: Implement dummy values for MSR_PERF_STATUS + * KVM: MMU: ignore zapped root pagetables + * KVM: call write_guest_time as soon as we register the paravirt clock + * KVM: MMU: large page support + * KVM: Prefix control register accessors with kvm_ to avoid namespace + pollution + * KVM: Avoid infinite-frequency local apic timer + * KVM: Route irq 0 to vcpu 0 exclusively + * KVM: SVM: add support for Nested Paging + * KVM: SVM: enable LBR virtualization + * KVM: SVM: make iopm_base static + * KVM: SVM: let init_vmcb() take struct vcpu_svm as parameter + * KVM: VMX: fix typo in VMX header define + * KVM: SVM: fix Windows XP 64 bit installation crash + * KVM: VMX: Fix invalid opcode of VPID + * KVM: VMX: Handle machines without EFER + * KVM: move alloc_apic_access_page() outside of non-preemptable region + * KVM: VMX: unifdef the EFER specific code + * KVM: SVM: move feature detection to hardware setup code + * KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM + * dlm: fix rcom_names message to self + * virtio: Net header needs hdr_len + + -- Tim Gardner Mon, 03 Mar 2008 07:07:16 -0700 + +linux (2.6.24-11.17) hardy; urgency=low + + [Alan Cox] + + * Pull in fixes for pata_it821x. + - LP: #106931 + + [Alessio Igor Bogani] + + * rt: Synchronized with upstream (2.6.24.3-rt3) + * rt: Updated configuration files + + [Amit Kucheria] + + * Add AGP support for Radeon Mobility 9000 chipset + - LP: #178634 + * Bluetooth: SCO flow control to enable bluetooth headsets + + [Ben Collins] + + * binary: Include vesafs in initrd subdir, should fix vga= usage + + [Colin Ian King] + + * AMD SB700 south bridge support patches + - LP: #195354 + * BCM4311 Revision 2 fix + - LP: #184600 + + [Mauro Carvalho Chehab] + + * V4L/DVB (6753): Fix vivi to support non-zero minor node + + [Tim Gardner] + + * Merged 2.6.24.3 + * Add atl1 to d-i bits. + - LP: #159561 + * SAUCE: Add xpad support for RedOctane Guitar Hero + - LP: #196745 + + [Upstream Kernel Changes] + + * DVB: cx23885: add missing subsystem ID for Hauppauge HVR1800 Retail + * slab: fix bootstrap on memoryless node + * vm audit: add VM_DONTEXPAND to mmap for drivers that need it + (CVE-2008-0007) + * USB: keyspan: Fix oops + * usb gadget: fix fsl_usb2_udc potential OOPS + * USB: CP2101 New Device IDs + * USB: add support for 4348:5523 WinChipHead USB->RS 232 adapter + * USB: Sierra - Add support for Aircard 881U + * USB: Adding YC Cable USB Serial device to pl2303 + * USB: sierra driver - add devices + * USB: ftdi_sio - enabling multiple ELV devices, adding EM1010PC + * USB: ftdi-sio: Patch to add vendor/device id for ATK_16IC CCD + * USB: sierra: add support for Onda H600/Zte MF330 datacard to USB Driver + for Sierra Wireless + * USB: remove duplicate entry in Option driver and Pl2303 driver for + Huawei modem + * USB: pl2303: add support for RATOC REX-USB60F + * USB: ftdi driver - add support for optical probe device + * USB: use GFP_NOIO in reset path + * USB: Variant of the Dell Wireless 5520 driver + * USB: storage: Add unusual_dev for HP r707 + * USB: fix usbtest halt check on big endian systems + * USB: handle idVendor of 0x0000 + * USB: Fix usb_serial_driver structure for Kobil cardreader driver. + * forcedeth: mac address mcp77/79 + * lockdep: annotate epoll + * sys_remap_file_pages: fix ->vm_file accounting + * PCI: Fix fakephp deadlock + * ACPI: update ACPI blacklist + * x86: restore correct module name for apm + * sky2: restore multicast addresses after recovery + * sky2: fix for WOL on some devices + * b43: Fix suspend/resume + * b43: Drop packets we are not able to encrypt + * b43: Fix dma-slot resource leakage + * b43legacy: fix PIO crash + * b43legacy: fix suspend/resume + * b43legacy: drop packets we are not able to encrypt + * b43legacy: fix DMA slot resource leakage + * selinux: fix labeling of /proc/net inodes + * b43: Reject new firmware early + * sched: let +nice tasks have smaller impact + * sched: fix high wake up latencies with FAIR_USER_SCHED + * fix writev regression: pan hanging unkillable and un-straceable + * Driver core: Revert "Fix Firmware class name collision" + * drm: the drm really should call pci_set_master.. + * splice: missing user pointer access verification (CVE-2008-0009/10) + * Linux 2.6.24.1 + * splice: fix user pointer access in get_iovec_page_array() + * Linux 2.6.24.2 + * ACPI: video: Rationalise ACPI backlight implementation + * ACPI: video: Ignore ACPI video devices that aren't present in hardware + * SPARC/SPARC64: Fix usage of .section .sched.text in assembler code. + * NETFILTER: nf_conntrack_tcp: conntrack reopening fix + * NFS: Fix a potential file corruption issue when writing + * inotify: fix check for one-shot watches before destroying them + * hugetlb: add locking for overcommit sysctl + * XFS: Fix oops in xfs_file_readdir() + * Fix dl2k constants + * SCSI: sd: handle bad lba in sense information + * TCP: Fix a bug in strategy_allowed_congestion_control + * TC: oops in em_meta + * SELinux: Fix double free in selinux_netlbl_sock_setsid() + * PKT_SCHED: ematch: oops from uninitialized variable (resend) + * NET: Add if_addrlabel.h to sanitized headers. + * IPV4: fib_trie: apply fixes from fib_hash + * IPV4: fib: fix route replacement, fib_info is shared + * IPCOMP: Fix reception of incompressible packets + * IPCOMP: Fetch nexthdr before ipch is destroyed + * INET_DIAG: Fix inet_diag_lock_handler error path. + * INET: Prevent out-of-sync truesize on ip_fragment slow path + * BLUETOOTH: Add conn add/del workqueues to avoid connection fail. + * AUDIT: Increase skb->truesize in audit_expand + * Be more robust about bad arguments in get_user_pages() + * Disable G5 NAP mode during SMU commands on U3 + * hrtimer: fix *rmtp handling in hrtimer_nanosleep() + * hrtimer: fix *rmtp/restarts handling in compat_sys_nanosleep() + * SLUB: Deal with annoying gcc warning on kfree() + * hrtimer: check relative timeouts for overflow + * hrtimer: catch expired CLOCK_REALTIME timers early + * genirq: do not leave interupts enabled on free_irq + * S390: Fix futex_atomic_cmpxchg_std inline assembly. + * USB: fix pm counter leak in usblp + * SCSI: gdth: scan for scsi devices + * PCMCIA: Fix station address detection in smc + * POWERPC: Revert chrp_pci_fixup_vt8231_ata devinit to fix libata on + pegasos + * bonding: fix NULL pointer deref in startup processing + * x86_64: CPA, fix cache attribute inconsistency bug + * Linux 2.6.24.3 + + -- Tim Gardner Mon, 25 Feb 2008 12:28:13 -0700 + +linux (2.6.24-10.16) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: Synchronized with upstream (2.6.24.2-rt2) + * rt: Updated configuration files + + [Eric Piel] + + * SAUCE: ACPI: Allow custom DSDT tables to be loaded from initramfs + Amit Kucheria consolidated the DSDT patch with another fix that + ifdefs symbols required when BLK_DEV_INITR is disabled. + + [Stefan Bader] + + * Add Optiarc DVD drive to audio quirks list. + - LP: #186664 + * Update drm and i915 drm driver to fix suspend issues. + - LP: #189260 + + [Tim Gardner] + + * Fix FTBS without BLK_DEV_INITRD + - LP: #193507 + * 64 bit CPA cache attribute bug + - LP: #193736 + * Implemented default EDD control + + [Upstream Kernel Changes] + + * bonding: fix NULL pointer deref in startup processing + * dlm: bind connections from known local address when using TCP + * dlm: proper prototypes + * dlm: don't print common non-errors + * dlm: use dlm prefix on alloc and free functions + * dlm: close othercons + * dlm: align midcomms message buffer + * dlm: swap bytes for rcom lock reply + * dlm: use fixed errno values in messages + * dlm: clear ast_type when removing from astqueue + * dlm: recover locks waiting for overlap replies + * dlm: another call to confirm_master in receive_request_reply + * dlm: reject messages from non-members + * dlm: validate messages before processing + * dlm: reject normal unlock when lock is waiting for lookup + * dlm: limit dir lookup loop + * dlm: fix possible use-after-free + * dlm: change error message to debug + * dlm: keep cached master rsbs during recovery + * dlm: Sanity check namelen before copying it + * dlm: clean ups + * dlm: static initialization improvements + * dlm: use proper C for dlm/requestqueue stuff (and fix alignment bug) + * dlm: dlm_process_incoming_buffer() fixes + * dlm: do not byteswap rcom_lock + * dlm: do not byteswap rcom_config + * dlm: use proper type for ->ls_recover_buf + * dlm: missing length check in check_config() + * dlm: validate data in dlm_recover_directory() + * dlm: verify that places expecting rcom_lock have packet long enough + * dlm: receive_rcom_lock_args() overflow check + * dlm: make find_rsb() fail gracefully when namelen is too large + * dlm: fix overflows when copying from ->m_extra to lvb + * dlm: fix dlm_dir_lookup() handling of too long names + * dlm: dlm/user.c input validation fixes + * dlm: proper types for asts and basts + * dlm: eliminate astparam type casting + * dlm: add __init and __exit marks to init and exit functions + * virtio: Use PCI revision field to indicate virtio PCI ABI version + + -- Tim Gardner Tue, 19 Feb 2008 09:57:18 -0700 + +linux (2.6.24-9.15) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: Fix FTBS + * rt: Updated configuration files + + [Tim Gardner] + + * SAUCE: make /dev/kmem a config option + * SAUCE: x86: introduce /dev/mem restrictions with a config option + * Fixed CGROUP FTBS caused by AppArmor patch. + * Enabled CGROUP and CPUSETS for server flavor. + - LP: #182434 + + [Colin King] + + * Turn on /proc/acpi/alarm for x86_64 (amd64) + - LP: #186297 + + [Upstream Kernel Changes] + + * Ubuntu: LatencyTOP infrastructure patch + + -- Tim Gardner Thu, 14 Feb 2008 13:34:55 -0700 + +linux (2.6.24-8.14) hardy; urgency=low + + [cking] + + * Support Novatel U727 EVDO modem: Add pid and vid to + drivers/usb/serial/airprime.c + - LP: #150996 + * Enable speedstep for sonoma processors. + - LP: #132271 + + [Stefan Bader] + + * SAUCE: Export dm_disk function of device-mapper + + -- Tim Gardner Wed, 13 Feb 2008 21:47:18 -0700 + +linux (2.6.24-8.13) hardy; urgency=low + + [Soren Hansen] + + * Add missing iscsi modules to kernel udebs + + [Stefan Bader] + + * Lower message level for PCI memory and I/O allocation. + + [Tim Gardner] + + * Enabled IP_ADVANCED_ROUTER and IP_MULTIPLE_TABLES in sparc, hppa + - LP: #189560 + * Compile RealTek 8139 using PIO method. + - LP: #90271 + * Add WD WD800ADFS NCQ horkage quirk support. + - LP: #147858 + + [Upstream Kernel Changes] + + * Introduce WEXT scan capabilities + * DVB: cx23885: add missing subsystem ID for Hauppauge HVR1800 Retail + * slab: fix bootstrap on memoryless node + * vm audit: add VM_DONTEXPAND to mmap for drivers that need it + (CVE-2008-0007) + * USB: keyspan: Fix oops + * usb gadget: fix fsl_usb2_udc potential OOPS + * USB: CP2101 New Device IDs + * USB: add support for 4348:5523 WinChipHead USB->RS 232 adapter + * USB: Sierra - Add support for Aircard 881U + * USB: Adding YC Cable USB Serial device to pl2303 + * USB: sierra driver - add devices + * USB: ftdi_sio - enabling multiple ELV devices, adding EM1010PC + * USB: ftdi-sio: Patch to add vendor/device id for ATK_16IC CCD + * USB: sierra: add support for Onda H600/Zte MF330 datacard to USB Driver + for Sierra Wireless + * USB: remove duplicate entry in Option driver and Pl2303 driver for + Huawei modem + * USB: pl2303: add support for RATOC REX-USB60F + * USB: ftdi driver - add support for optical probe device + * USB: use GFP_NOIO in reset path + * USB: Variant of the Dell Wireless 5520 driver + * USB: storage: Add unusual_dev for HP r707 + * USB: fix usbtest halt check on big endian systems + * USB: handle idVendor of 0x0000 + * forcedeth: mac address mcp77/79 + * lockdep: annotate epoll + * sys_remap_file_pages: fix ->vm_file accounting + * PCI: Fix fakephp deadlock + * ACPI: update ACPI blacklist + * x86: restore correct module name for apm + * sky2: restore multicast addresses after recovery + * sky2: fix for WOL on some devices + * b43: Fix suspend/resume + * b43: Drop packets we are not able to encrypt + * b43: Fix dma-slot resource leakage + * b43legacy: fix PIO crash + * b43legacy: fix suspend/resume + * b43legacy: drop packets we are not able to encrypt + * b43legacy: fix DMA slot resource leakage + * selinux: fix labeling of /proc/net inodes + * b43: Reject new firmware early + * sched: let +nice tasks have smaller impact + * sched: fix high wake up latencies with FAIR_USER_SCHED + * fix writev regression: pan hanging unkillable and un-straceable + * Driver core: Revert "Fix Firmware class name collision" + * drm: the drm really should call pci_set_master.. + * splice: missing user pointer access verification (CVE-2008-0009/10) + * Linux 2.6.24.1 + * splice: fix user pointer access in get_iovec_page_array() + * Linux 2.6.24.2 + + -- Tim Gardner Thu, 07 Feb 2008 06:50:13 -0700 + +linux (2.6.24-7.12) hardy; urgency=low + + [Jay Chetty] + + * Added patch to fix legacy USB interrupt issue + * Enabled Poulsbo PATA udma5 support + * Add touchscreen doubleclick workaround + + [Amit Kucheria] + + * Add AGP support for Radeon Mobility 9000 chipset + - LP: #178634 + + [Soren Hansen] + + * Add virtio modules to the relevant udebs + * Add missing "?" for virtio modules in storage-core-modules + + [Stefan Bader] + + * Added vendor id for Dell 5720 broadband modem + + -- Jay Chetty Wed, 06 Feb 2008 14:13:41 -0800 + +linux (2.6.24-7.11) hardy; urgency=low + + [Jay Chetty] + + * poulsbo: Add a 100ms delay for SiB workaround + + [Tim Gardner] + + * -6.10 should have been an ABI bump, but due to incomplete build testing + went undetected. + + -- Tim Gardner Mon, 04 Feb 2008 19:13:52 -0700 + +linux (2.6.24-6.10) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: Synced with upstream, removed old kvm related patches and updated + configurations files. + + [Chuck Short] + + * SAUCE: Enable Xen + + [Soren Hansen] + + * Update kvm driver to kvm-60. + * Added CONFIG_ARCH_SUPPORTS_KVM=y for lpia, i386, and amd64 + * Add rtl8139 driver to -virtual flavour + + [Stefan Bader] + + * Fix usb_serial_driver structure for Kobil cardreader driver. + - LP: #183109 + * Lower warning level of pci resource allocation messages. + - LP: #159241 + + [Tim Gardner] + + * Enabled CONFIG_BLK_DEV_IDE_PMAC + - LP: #185862 + * Add virtio config options to lpiacompat. + * SAUCE: Export symbols for aufs (in lum). + * Enabled Xen + + [Upstream Kernel Changes] + + * KVM: mmu: add missing dirty page tracking cases + * KVM: Move virtualization deactivation from CPU_DEAD state to + CPU_DOWN_PREPARE + * KVM: Cosmetics + * KVM: vmx: hack set_cr0_no_modeswitch() to actually do modeswitch + * KVM: Use ARRAY_SIZE macro instead of manual calculation. + * KVM: Use page_private()/set_page_private() apis + * KVM: add MSR based hypercall API + * KVM: Add host hypercall support for vmx + * KVM: Add hypercall host support for svm + * KVM: Wire up hypercall handlers to a central arch-independent location + * KVM: svm: init cr0 with the wp bit set + * KVM: SVM: intercept SMI to handle it at host level + * KVM: More 0 -> NULL conversions + * kvm, dirty pages log: adding some calls to mark_page_dirty() + * KVM: Add internal filesystem for generating inodes + * KVM: Create an inode per virtual machine + * KVM: Rename some kvm_dev_ioctl_*() functions to kvm_vm_ioctl_*() + * KVM: Move kvm_vm_ioctl_create_vcpu() around + * KVM: Per-vcpu inodes + * KVM: Bump API version + * .gitignore: ignore emacs backup files (*~) + * kvm: dirty pages log: fix bitmap size/access calculation + * kvm: move do_remove_write_access() up + * kvm: dirty page logging: remove write access permissions when + dirty-page-logging is enabled + * KVM: Add missing calls to mark_page_dirty() + * KVM: Fix dirty page log bitmap size/access calculation + * kvm: move do_remove_write_access() up + * KVM: Remove write access permissions when dirty-page-logging is enabled + * KVM: Fix bogus failure in kvm.ko module initialization + * KVM: Move kvmfs magic number to + * KVM: Unset kvm_arch_ops if arch module loading failed + * KVM: Fix guest register corruption on paravirt hypercall + * KVM: Use the generic skip_emulated_instruction() in hypercall code + * KVM: Use own minor number + * KVM: Fix guest sysenter on vmx + * KVM: Export + * KVM: Fix bogus sign extension in mmu mapping audit + * KVM: MMU: Fix guest writes to nonpae pde + * KVM: MMU: Fix host memory corruption on i386 with >= 4GB ram + * KVM: trivial whitespace fixes + * KVM: always reload segment selectors + * KVM: Remove extraneous guest entry on mmio read + * added KVM_GET_MEM_MAP ioctl to get the memory bitmap for a memory slot + * KVM: Prevent system selectors leaking into guest on real->protected + mode transition on vmx + * KVM: Use a shared page for kernel/user communication when runing a vcpu + * KVM: Do not communicate to userspace through cpu registers during PIO + * KVM: Initialize PIO I/O count + * KVM: Handle cpuid in the kernel instead of punting to userspace + * KVM: Remove the 'emulated' field from the userspace interface + * KVM: Remove minor wart from KVM_CREATE_VCPU ioctl + * KVM: Renumber ioctls + * KVM: Add method to check for backwards-compatible API extensions + * KVM: Allow userspace to process hypercalls which have no kernel handler + * KVM: Fold kvm_run::exit_type into kvm_run::exit_reason + * KVM: Add a special exit reason when exiting due to an interrupt + * KVM: Initialize the apic_base msr on svm too + * KVM: Add guest mode signal mask + * KVM: Allow kernel to select size of mmap() buffer + * KVM: Future-proof argument-less ioctls + * KVM: Avoid guest virtual addresses in string pio userspace interface + * KVM: MMU: Remove unnecessary check for pdptr access + * KVM: MMU: Remove global pte tracking + * KVM: Workaround vmx inability to virtualize the reset state + * KVM: Remove set_cr0_no_modeswitch() arch op + * KVM: Modify guest segments after potentially switching modes + * KVM: Hack real-mode segments on vmx from KVM_SET_SREGS + * KVM: Don't allow the guest to turn off the cpu cache + * KVM: Remove unused and write-only variables + * KVM: Handle writes to MCG_STATUS msr + * KVM: MMU: Fix hugepage pdes mapping same physical address with + different access + * KVM: SVM: Ensure timestamp counter monotonicity + * KVM: Remove unused function + * KVM: Remove debug message + * KVM: x86 emulator: fix bit string operations operand size + * KVM: SVM: enable LBRV virtualization if available + * Add mmu cache clear function + * KVM: Simply gfn_to_page() + * KVM: Add physical memory aliasing feature + * KVM: Add fpu get/set operations + * KVM: Use kernel-standard types + * KVM: Fix overflow bug in overflow detection code + * KVM: Fix memory leak on pio completion + * KVM: Handle partial pae pdptr + * KVM: Fix string pio when count == 0 + * KVM: Use slab caches to allocate mmu data structures + * KVM: Retry sleeping allocation if atomic allocation fails + * KVM: Fix pio completion + * KVM: SVM: Report hardware exit reason to userspace instead of dmesg + * KVM: Handle guest page faults when emulating mmio + * KVM: VMX: Reduce unnecessary saving of host msrs + * KVM: Fix off-by-one when writing to a nonpae guest pde + * KVM: VMX: Don't switch 64-bit msrs for 32-bit guests + * KVM: Fold drivers/kvm/kvm_vmx.h into drivers/kvm/vmx.c + * KVM: VMX: Only save/restore MSR_K6_STAR if necessary + * KVM: Per-vcpu statistics + * KVM: Silence compile warning on i386 + * KVM: Allow passing 64-bit values to the emulated read/write API + * KVM: Lazy FPU support for SVM + * KVM: Fix msr-avoidance regression on Core processors + * KVM: Don't complain about cpu erratum AA15 + * KVM: Document MSR_K6_STAR's special place in the msr index array + * KVM: MMU: Avoid heavy ASSERT at non debug mode. + * KVM: Initialize cr0 to indicate an fpu is present + * KVM: We want asserts on debug builds, not release + * KVM: Avoid unused function warning due to assertion removal + * KVM: VMX: Avoid unnecessary vcpu_load()/vcpu_put() cycles + * KVM: Move need_resched() check to common code + * KVM: VMX: Properly shadow the CR0 register in the vcpu struct + * KVM: VMX: Add lazy FPU support for VT + * KVM: fix an if() condition + * KVM: SVM: Only save/restore MSRs when needed + * KVM: Remove trailing whitespace + * KVM: Remove extraneous guest entry on mmio read + * KVM: Don't require explicit indication of completion of mmio or pio + * KVM: Remove unused 'instruction_length' + * KVM: VMX: Enable io bitmaps to avoid IO port 0x80 VMEXITs + * KVM: SVM: Allow direct guest access to PC debug port + * KVM: Fix RMW mmio handling + * KVM: Assume that writes smaller than 4 bytes are to non-pagetable pages + * KVM: Avoid saving and restoring some host CPU state on lightweight + vmexit + * KVM: Unindent some code + * KVM: Reduce misfirings of the fork detector + * KVM: Be more careful restoring fs on lightweight vmexit + * KVM: Unify kvm_mmu_pre_write() and kvm_mmu_post_write() + * KVM: MMU: Respect nonpae pagetable quadrant when zapping ptes + * KVM: Update shadow pte on write to guest pte + * KVM: Increase mmu shadow cache to 1024 pages + * KVM: Fix potential guest state leak into host + * KVM: Prevent guest fpu state from leaking into the host + * KVM: Move some more msr mangling into vmx_save_host_state() + * KVM: Rationalize exception bitmap usage + * KVM: Consolidate guest fpu activation and deactivation + * KVM: Ensure host cr0.ts is saved + * KVM: Set cr0.mp for guests + * KVM: Implement IA32_EBL_CR_POWERON msr + * KVM: MMU: Simplify kvm_mmu_free_page() a tiny bit + * KVM: MMU: Store shadow page tables as kernel virtual addresses, not + physical + * KVM: VMX: Only reload guest msrs if they are already loaded + * KVM: Avoid corrupting tr in real mode + * KVM: Fix vmx I/O bitmap initialization on highmem systems + * KVM: Remove merge artifact + * KVM: VMX: Use local labels in inline assembly + * KVM: VMX: Handle #SS faults from real mode + * KVM: VMX: Avoid saving and restoring msrs on lightweight vmexit + * KVM: VMX: Compile-fix for 32-bit hosts + * KVM: VMX: Cleanup redundant code in MSR set + * KVM: VMX: Fix a typo which mixes X86_64 and CONFIG_X86_64 + * KVM: VMX: Avoid saving and restoring msr_efer on lightweight vmexit + * KVM: VMX: Remove warnings on i386 + * Use menuconfig objects II - KVM/Virt + * KVM: x86 emulator: implement wbinvd + * KVM: Fix includes + * KVM: Use symbolic constants instead of magic numbers + * KVM: MMU: Use slab caches for shadow pages and their headers + * KVM: MMU: Simplify fetch() a little bit + * KVM: MMU: Move set_pte_common() to pte width dependent code + * KVM: MMU: Pass the guest pde to set_pte_common + * KVM: MMU: Fold fix_read_pf() into set_pte_common() + * KVM: MMU: Fold fix_write_pf() into set_pte_common() + * KVM: Move shadow pte modifications from set_pte/set_pde to + set_pde_common() + * KVM: Make shadow pte updates atomic + * KVM: MMU: Make setting shadow ptes atomic on i386 + * KVM: MMU: Remove cr0.wp tricks + * KVM: MMU: Simpify accessed/dirty/present/nx bit handling + * KVM: MMU: Don't cache guest access bits in the shadow page table + * KVM: MMU: Remove unused large page marker + * KVM: VMX: Fix asm constraint + * KVM: Lazy guest cr3 switching + * KVM: Replace C code with call to ARRAY_SIZE() macro. + * KVM: Remove unnecessary initialization and checks in mark_page_dirty() + * KVM: Fix vcpu freeing for guest smp + * KVM: Fix adding an smp virtual machine to the vm list + * KVM: Enable guest smp + * KVM: Move duplicate halt handling code into kvm_main.c + * KVM: Emulate hlt on real mode for Intel + * KVM: Keep an upper bound of initialized vcpus + * KVM: Flush remote tlbs when reducing shadow pte permissions + * KVM: SVM: Replace memset(, 0, PAGESIZE) with clear_page() + * KVM: VMX: Replace memset(, 0, PAGESIZE) with clear_page() + * KVM: Require a cpu which can set 64-bit values atomically + * KVM: Initialize the BSP bit in the APIC_BASE msr correctly + * KVM: VMX: Ensure vcpu time stamp counter is monotonous + * KVM: Bring local tree in line with origin + * KVM: Implement emulation of "pop reg" instruction (opcode 0x58-0x5f) + * KVM: Implement emulation of instruction "ret" (opcode 0xc3) + * KVM: Adds support for in-kernel mmio handlers + * KVM: VMX: Fix interrupt checking on lightweight exit + * KVM: Add support for in-kernel pio handlers + * KVM: Fix x86 emulator writeback + * KVM: Avoid useless memory write when possible + * KVM: VMX: Reinitialize the real-mode tss when entering real mode + * KVM: MMU: Fix Wrong tlb flush order + * KVM: VMX: Remove unnecessary code in vmx_tlb_flush() + * KVM: SVM: Reliably detect if SVM was disabled by BIOS + * KVM: Remove kvmfs in favor of the anonymous inodes source + * KVM: Clean up #includes + * KVM: Fix svm availability check miscompile on i386 + * HOTPLUG: Add CPU_DYING notifier + * HOTPLUG: Adapt cpuset hotplug callback to CPU_DYING + * HOTPLUG: Adapt thermal throttle to CPU_DYING + * SMP: Implement on_cpu() + * KVM: Keep track of which cpus have virtualization enabled + * KVM: Tune hotplug/suspend IPIs + * KVM: Use CPU_DYING for disabling virtualization + * KVM: MMU: Store nx bit for large page shadows + * KVM: Fix *nopage() in kvm_main.c + * KVM: SMP: Add vcpu_id field in struct vcpu + * KVM - add hypercall nr to kvm_run + * KVM:: Future-proof the exit information union ABI + * KVM: In-kernel string pio write support + * KVM: Fix memory slot management functions for guest smp + * KVM: x86 emulator: implement rdmsr and wrmsr + * KVM: Trivial: /dev/kvm interface is no longer experimental. + * KVM: Trivial: Remove unused struct cpu_user_regs declaration + * KVM: Trivial: Make decode_register() static + * KVM: Trivial: Comment spelling may escape grep + * KVM: Trivial: Avoid hardware_disable predeclaration + * KVM: Trivial: Use standard CR0 flags macros from asm/cpu-features.h + * Use standard CR3 flags, tighten checking + * Use standard CR4 flags, tighten checking + * KVM: Trivial: Use standard BITMAP macros, open-code userspace-exposed + header + * KVM: Set exit_reason to KVM_EXIT_MMIO where run->mmio is initialized. + * KVM: Use standard CR8 flags, and fix TPR definition + * KVM: MMU: Fix oopses with SLUB + * KVM: x86 emulator: fix cmov for writeback changes + * KVM: MMU: Fix cleaning up the shadow page allocation cache + * KVM: Require CONFIG_ANON_INODES + * KVM: x86 emulator: fix faulty check for two-byte opcode + * KVM: Correctly handle writes crossing a page boundary + * KVM: Fix unlikely kvm_create vs decache_vcpus_on_cpu race + * KVM: Hoist kvm_mmu_reload() out of the critical section + * KVM: Fix removal of nx capability from guest cpuid + * KVM: Move gfn_to_page out of kmap/unmap pairs + * KVM: disable writeback for 0x0f 0x01 instructions. + * KVM: VMX: Import some constants of vmcs from IA32 SDM + * KVM: Remove dead code in the cmpxchg instruction emulation + * KVM: load_pdptrs() cleanups + * KVM: Remove arch specific components from the general code + * KVM: Dynamically allocate vcpus + * KVM: VMX: Improve the method of writing vmcs control + * KVM: Use the scheduler preemption notifiers to make kvm preemptible + * KVM: Convert vm lock to a mutex + * KVM: fx_init() needs preemption disabled while it plays with the FPU + state + * KVM: VMX: pass vcpu_vmx internally + * KVM: Remove three magic numbers + * KVM: SVM: de-containization + * KVM: SVM: internal function name cleanup + * KVM: x86 emulator: disable writeback for debug register instructions + * KVM: Change the emulator_{read,write,cmpxchg}_* functions to take a + vcpu + * KVM: Remove kvm_{read,write}_guest() + * KVM: Use kmem cache for allocating vcpus + * KVM: Use alignment properties of vcpu to simplify FPU ops + * KVM: kvm_vm_ioctl_get_dirty_log restore "nothing dirty" optimization + * KVM: VMX: Add cpu consistency check + * KVM: Don't assign vcpu->cr3 if it's invalid: check first, set last + * KVM: Cleanup mark_page_dirty + * KVM: SVM: Make set_msr_interception more reliable + * KVM: Remove redundant alloc_vmcs_cpu declaration + * KVM: Fix defined but not used warning in drivers/kvm/vmx.c + * KVM: Remove stat_set from debugfs + * KVM: Remove unneeded kvm_dev_open and kvm_dev_release functions. + * KVM: Add and use pr_unimpl for standard formatting of unimplemented + features + * KVM: Use kmem_cache_free for kmem_cache_zalloc'ed objects + * KVM: VMX: Remove a duplicated ia32e mode vm entry control + * KVM: Remove useless assignment + * KVM: Cleanup string I/O instruction emulation + * KVM: Clean up kvm_setup_pio() + * KVM: VMX: Don't require cr8 load/store exit capability when running on + 32-bit + * KVM: Close minor race in signal handling + * KVM: Communicate cr8 changes to userspace + * KVM: x86 emulator: implement 'and $imm, %{al|ax|eax}' + * KVM: x86 emulator: implement 'jmp rel' instruction (opcode 0xe9) + * KVM: x86 emulator: Implement 'jmp rel short' instruction (opcode 0xeb) + * KVM: x86 emulator: implement 'push reg' (opcodes 0x50-0x57) + * KVM: VMX: allow rmode_tss_base() to work with >2G of guest memory + * KVM: Avoid calling smp_call_function_single() with interrupts disabled + * KVM: MMU: Fix rare oops on guest context switch + * KVM: Support more memory slots + * KVM: X86 emulator: fix 'push reg' writeback + * KVM: VMX: Split segments reload in vmx_load_host_state() + * KVM: Add support for in-kernel PIC emulation + * KVM: Define and use cr8 access functions + * KVM: Emulate local APIC in kernel + * KVM: In-kernel I/O APIC model + * KVM: Emulate hlt in the kernel + * KVM: Protect in-kernel pio using kvm->lock + * KVM: Add get/set irqchip ioctls for in-kernel PIC live migration + support + * KVM: Bypass irq_pending get/set when using in kernel irqchip + * KVM: in-kernel IOAPIC save and restore support + * KVM: in-kernel LAPIC save and restore support + * KVM: pending irq save/restore + * KVM: VMX: Use shadow TPR/cr8 for 64-bits guests + * KVM: Keep track of missed timer irq injections + * KVM: Migrate lapic hrtimer when vcpu moves to another cpu + * KVM: disable tpr/cr8 sync when in-kernel APIC is used + * KVM: VMX: Fix tpr threshold updating + * KVM: deliver PIC interrupt only to vcpu0 + * KVM: round robin for APIC lowest priority delivery mode + * KVM: enable in-kernel APIC INIT/SIPI handling + * KVM: Set the ET flag in CR0 after initializing FX + * KVM: Remove the unused invlpg member of struct kvm_arch_ops. + * KVM: Clean up unloved invlpg emulation + * KVM: Keep control regs in sync + * KVM: Hoist SVM's get_cs_db_l_bits into core code. + * KVM: Simplify memory allocation + * KVM: Rename kvm_arch_ops to kvm_x86_ops + * KVM: Fix lapic 64-bit division on 32-bit hosts + * KVM: fix apic timer migration when inactive + * KVM: MMU: Don't do GFP_NOWAIT allocations + * KVM: Remove smp_processor_id() in kvm_vcpu_kick() + * KVM: VMX: Move vm entry failure handling to the exit handler + * KVM: Move main vcpu loop into subarch independent code + * KVM: Fix link error to "genapic" + * KVM: VMX: Fix exit qualification width on i386 + * KVM: x86 emulator: push imm8 + * KVM: x86 emulator: call near + * KVM: x86 emulator: pushf + * KVM: Improve emulation failure reporting + * KVM: VMX: Prevent setting CPU_BASED_TPR_SHADOW on i386 host + * KVM: x86 emulator: sort opcodes into ascending order + * KVM: x86 emulator: imlpement jump conditional relative + * KVM: X86 emulator: jump conditional short + * KVM: x86 emulator: lea + * KVM: x86 emulator: jmp abs + * KVM: x86 emulator: fix src, dst value initialization + * KVM: x86 emulator: popf + * KVM: Skip pio instruction when it is emulated, not executed + * KVM: fix PIC interrupt delivery on different APIC conditions + * KVM: Fix kvm_vcpu_ioctl_get_sregs() warning on i386 + * KVM: Remove errant printk() in kvm_vcpu_ioctl_get_sregs() + * KVM: Fix virtualization menu help text + * KVM: x86 emulator: Add vmmcall/vmcall to x86_emulate (v3) + * KVM: Refactor hypercall infrastructure (v3) + * KVM: x86 emulator: remove unused functions + * KVM: x86 emulator: move all x86_emulate_memop() to a structure + * KVM: x86 emulator: move all decoding process to function + x86_decode_insn() + * KVM: emulate_instruction() calls now x86_decode_insn() and + x86_emulate_insn() + * KVM: Call x86_decode_insn() only when needed + * KVM: Fix ioapic level-triggered interrupt redelivery + * KVM: Fix #UD exception delivery + * KVM: VMX: Further reduce efer reloads + * KVM: VMX: Fix build on i386 due to EFER_LMA not defined + * KVM: Fix ioapic.c compilation failure due to missing include + * KVM: x86 emulator: fix merge screwup due to emulator split + * KVM: x85 emulator: Correct inconcistency in between cr2 and ctxt->cr2. + * KVM: Avoid redelivery of edge-triggered irq if it is already in service + * KVM: Implement ioapic irq polarity bit + * KVM: x86 emulator: fix repne/repnz decoding + * KVM: Fix host oops due to guest changing efer + * KVM: Fix ioapic edge-triggered interrupts + * KVM: MMU: Set shadow pte atomically in mmu_pte_write_zap_pte() + * KVM: Allow not-present guest page faults to bypass kvm + * KVM: MMU: Make flooding detection work when guest page faults are + bypassed + * KVM: MMU: Ignore reserved bits in cr3 in non-pae mode + * KVM: x86 emulator: split some decoding into functions for readability + * KVM: x86 emulator: remove _eflags and use directly ctxt->eflags. + * KVM: x86 emulator: Remove no_wb, use dst.type = OP_NONE instead + * KVM: x86_emulator: no writeback for bt + * KVM: apic round robin cleanup + * KVM: Purify x86_decode_insn() error case management + * KVM: x86 emulator: Any legacy prefix after a REX prefix nullifies its + effect + * i386: Expose IOAPIC register definitions even if CONFIG_X86_IO_APIC is + not set + * KVM: x86 emulator: On a pop instruction, don't restore ECX and EIP on + error + * KVM: x86 emulator: remove unused variable + * KVM: VMX: Don't clear the vmcs if the vcpu is not loaded on any + processor + * KVM: VMX: Simplify vcpu_clear() + * KVM: Remove the usage of paeg->private field by rmap + * KVM: x86 emulator: Correct management of REP prefix + * KVM: Add general accessors to read and write guest memory + * KVM: Allow dynamic allocation of the mmu shadow cache size + * KVM: Check I/O APIC indirect index before writing + * KVM: Add kvm_free_lapic() to pair with kvm_create_lapic() + * KVM: Hoist kvm_create_lapic() into kvm_vcpu_init() + * KVM: Remove gratuitous casts from lapic.c + * KVM: CodingStyle cleanup + * KVM: VMX: Handle NMIs before enabling interrupts and preemption + * KVM: Support assigning userspace memory to the guest + * KVM: Export PIC reset for kernel device reset + * KVM: Split IOAPIC reset function and export for kernel RESET + * KVM: VMX: Reset mmu context when entering real mode + * KVM: Replace enum by #define + * KVM: Move x86 msr handling to new files x86.[ch] + * KVM: MMU: Clean up MMU functions to take struct kvm when appropriate + * KVM: MMU: More struct kvm_vcpu -> struct kvm cleanups + * KVM: Move guest pte dirty bit management to the guest pagetable walker + * KVM: MMU: Fix nx access bit for huge pages + * KVM: MMU: Disable write access on clean large pages + * KVM: MMU: Instatiate real-mode shadows as user writable shadows + * KVM: MMU: Move dirty bit updates to a separate function + * KVM: MMU: When updating the dirty bit, inform the mmu about it + * KVM: Portability: split kvm_vcpu_ioctl + * KVM: Restore missing #include + * KVM: Add some \n in ioapic_debug() + * KVM: x86 emulator: implement 'movnti mem, reg' + * KVM: MMU: Call update_dirty_bit() without disabling preemption + * KVM: Move apic timer interrupt backlog processing to common code + * KVM: Move interrupt injection out of interrupt disabled section + * KVM: Rename KVM_TLB_FLUSH to KVM_REQ_TLB_FLUSH + * KVM: VMX: Force vm86 mode if setting flags during real mode + * KVM: MMU: Simplify page table walker + * KVM: Actually move the interrupt injection code out of the critical + section + * KVM: x86 emulator: cmc, clc, cli, sti + * KVM: x86 emulator: use a defined flag definition + * KVM: x86 emulator: fix access registers for instructions with ModR/M + byte and Mod = 3 + * KVM: MMU: Add rmap_next(), a helper for walking kvm rmaps + * KVM: MMU: Keep a reverse mapping of non-writable translations + * KVM: MMU: Make gfn_to_page() always safe + * KVM: Partial swapping of guest memory + * KVM: VMX: Initialize vcpu with preemption enabled + * KVM: Use virtual cpu accounting if available for guest times. + * KVM: Move kvm_guest_exit() after local_irq_enable() + * KVM: MMU: Fix dirty bit pte gpa calculation + * KVM: Allocate userspace memory for older userspace + * KVM: Portability: Split kvm_vcpu into arch dependent and independent + parts (part 1) + * KVM: Fix local apic timer divide by zero + * KVM: Move vmx_vcpu_reset() out of vmx_vcpu_setup() + * KVM: Add a might_sleep() annotation to gfn_to_page() + * KVM: VMX: vmx_vcpu_setup(): remove unused variable. + * KVM: Per-architecture hypercall definitions + * KVM: Use new smp_call_function_mask() in kvm_flush_remote_tlbs() + * KVM: Unmap kernel-allocated memory on slot destruction + * KVM: Export memory slot allocation mechanism + * KVM: Add kernel-internal memory slots + * KVM: Add ioctl to tss address from userspace, + * KVM: x86 emulator: fix 'push imm8' emulation + * KVM: VMX: Let gcc to choose which registers to save (x86_64) + * KVM: VMX: Let gcc to choose which registers to save (i386) + * KVM: SVM: Let gcc to choose which registers to save (x86_64) + * KVM: SVM: Let gcc to choose which registers to save (i386) + * KVM: x86 emulator: invd instruction + * KVM: SVM: Intercept the 'invd' and 'wbinvd' instructions + * KVM: x86 emulator: don't depend on cr2 for mov abs emulation + * KVM: Move page fault processing to common code + * KVM: MMU: Topup the mmu memory preallocation caches before emulating an + insn + * KVM: Portability: Split kvm_vm_ioctl v3 + * KVM: Portability: Move memory segmentation to x86.c + * KVM: Portability: move get/set_apic_base to x86.c + * KVM: Portability: Move control register helper functions to x86.c + * KVM: VMX: Enable memory mapped TPR shadow (FlexPriority) + * KVM: Fix gfn_to_page() acquiring mmap_sem twice + * KVM: Portability: Move kvm_get/set_msr[_common] to x86.c + * KVM: Portability: Move x86 emulation and mmio device hook to x86.c + * KVM: Portability: Move pio emulation functions to x86.c + * KVM: x86 emulator: Extract the common code of SrcReg and DstReg + * KVM: x86 emulator: centralize decoding of one-byte register access + insns + * KVM: Simplify decode_register_operand() calling convention + * KVM: Make mark_page_dirty() work for aliased pages too. + * KVM: x86 emulator: Hoist modrm and abs decoding into separate functions + * KVM: Portability: Make exported debugfs data architecture-specific + * KVM: Portability: Move x86 instruction emulation code to x86.c + * KVM: Portability: Move x86 FPU handling to x86.c + * KVM: Portability: Move x86 vcpu ioctl handlers to x86.c + * KVM: x86 emulator: Move one-byte insns with reg operand into one-byte + section + * KVM: VMX: Fix repeated allocation of apic access page on smp + * KVM: SVM: Fix SMP with kernel apic + * KVM: Add make_page_dirty() to kvm_clear_guest_page() + * KVM: SVM: Defer nmi processing until switch to host state is complete + * KVM: VMX: Avoid reloading host efer on cpus that don't have it + * KVM: VMX: Use vmx to inject real interrupts + * KVM: Go back to atomically injecting interrupts + * KVM: VMX: Comment VMX primary/secondary exec ctl definitions + * KVM: VMX: wbinvd exiting + * KVM: x86 emulator: fix JMP_REL + * KVM: x86 emulator: fix the saving of of the eip value + * KVM: x86 emulator: remove 8 bytes operands emulator for call near + instruction + * KVM: Simplify CPU_TASKS_FROZEN cpu notifier handling + * KVM: add kvm_is_error_hva() + * KVM: introduce gfn_to_hva() + * KVM: Change kvm_{read,write}_guest() to use copy_{from,to}_user() + * KVM: Portability: Move some includes to x86.c + * KVM: Portability: Move kvm_x86_ops to x86.c + * KVM: Portability: Add vcpu and hardware management arch hooks + * KVM: Portability: Combine kvm_init and kvm_init_x86 + * KVM: Portability: Move x86 specific code from kvm_init() to kvm_arch() + * KVM: x86 emulator: modify 'lods', and 'stos' not to depend on CR2 + * KVM: Portability: move KVM_CHECK_EXTENSION + * KVM: VMX: Consolidate register usage in vmx_vcpu_run() + * KVM: Portability: Make kvm_vcpu_ioctl_translate arch dependent + * KVM: x86 emulator: Rename 'cr2' to 'memop' + * KVM: Remove ptr comparisons to 0 + * KVM: Remove __init attributes for kvm_init_debug and kvm_init_msr_list + * KVM: Portability: Add two hooks to handle kvm_create and destroy vm + * KVM: Replace 'light_exits' stat with 'host_state_reload' + * KVM: Add fpu_reload counter + * KVM: Add instruction emulation statistics + * KVM: Extend stats support for VM stats + * KVM: MMU: Add some mmu statistics + * KVM: x86 emulator: Use emulator_write_emulated and not + emulator_write_std + * KVM: Make unloading of FPU state when putting vcpu arch-independent + * KVM: SVM: Disable Lazy FPU optimization + * KVM: Portability: Move kvm_vcpu_ioctl_get_dirty_log to arch-specific + file + * KVM: Portability: MMU initialization and teardown split + * KVM: Portability: Move some macro definitions from kvm.h to x86.h + * KVM: Portability: Move struct kvm_x86_ops definition to x86.h + * KVM: Portability: Move vcpu regs enumeration definition to x86.h + * KVM: Move some static inline functions out from kvm.h into x86.h + * KVM: Portability: Move some function declarations to x86.h + * KVM: VMX: Force seg.base == (seg.sel << 4) in real mode + * KVM: MMU: Change guest pte access to kvm_{read,write}_guest() + * kvm: simplify kvm_clear_guest_page() + * KVM: Add missing #include + * KVM: MMU: Remove unused variable + * KVM: Remove unused "rmap_overflow" variable + * KVM: Correct consistent typo: "destory" -> "destroy" + * KVM: Move misplaced comment + * KVM: Portability: Move kvm_memory_alias to asm/kvm.h + * KVM: Portability: Move x86 pic strutctures + * KVM: Portability: Move kvm_regs to + * KVM: Portability: Move structure lapic_state to + * KVM: Portability: Move kvm_segment & kvm_dtable structure to + + * KVM: Portability: Move kvm_sregs and msr structures to + * KVM: Portability: Move cpuid structures to + * KVM: Export include/asm-x86/kvm.h + * KVM: MMU: Fix potential memory leak with smp real-mode + * KVM: MMU: Selectively set PageDirty when releasing guest memory + * KVM: x86 emulator: retire ->write_std() + * KVM: x86 emulator: prefetch up to 15 bytes of the instruction executed + * KVM: SVM: Fix FPU leak and re-enable lazy FPU switching + * KVM: Recalculate mmu pages needed for every memory region change + * KVM: Portability: Split kvm_set_memory_region() to have an arch + callout + * KVM: Split vcpu creation to avoid vcpu_load() before preemption setup + * KVM: MMU: Implement guest page fault bypass for nonpae + * KVM: Add statistic for remote tlb flushes + * KVM: MMU: Avoid unnecessary remote tlb flushes when guest updates a pte + * KVM: Add parentheses to silence gcc + * KVM: Don't bother the mmu if cr3 load doesn't change cr3 + * KVM: MMU: Code cleanup + * KVM: MMU: Introduce and use gpte_to_gfn() + * KVM: MMU: Move pse36 handling to the guest walker + * KVM: MMU: Remove extra gaddr parameter from set_pte_common() + * KVM: MMU: Remove set_pde() + * KVM: MMU: Adjust page_header_update_slot() to accept a gfn instead of a + gpa + * KVM: MMU: Introduce gfn_to_gpa() + * KVM: MMU: Simplify nonpaging_map() + * KVM: MMU: Remove gva_to_hpa() + * KVM: Remove gpa_to_hpa() + * KVM: MMU: Rename variable of type 'struct kvm_mmu_page *' + * KVM: MMU: Rename 'release_page' + * KVM: Disallow fork() and similar games when using a VM + * KVM: Enhance guest cpuid management + * KVM: Replace private 'struct segment descriptor' by x86's desc_struct + * KVM: Remove segment_descriptor, part 2 + * KVM: Fix compile error on i386 + * KVM: VMX: Read & store IDT_VECTORING_INFO_FIELD + * KVM: Fix faults during injection of real-mode interrupts + * KVM: x86 emulator: Fix instruction fetch cache hit check + * KVM: VMX: Remove the secondary execute control dependency on irqchip + * KVM: Portability: Move unalias_gfn to arch dependent file + * KVM: x86 emulator: Make a distinction between repeat prefixes F3 and F2 + * KVM: x86 emulator: address size and operand size overrides are sticky + * KVM: Remove desc.h include in kvm_main.c + * KVM: Revert segment_descriptor.h removal + * KVM: Remove misleading check for mmio during event injection + * KVM: MMU: mark pages that were inserted to the shadow pages table as + accessed + * KVM: x86 emulator: rename REP_REPE_PREFIX + * KVM: x86 emulator: cmps instruction + * KVM: Add ifdef in irqchip struct for x86 only structures + * KVM: Fix cpuid2 killing 32-bit guests on non-NX machines + * KVM: x86 emulator: Move rep processing before instruction execution + * KVM: x86 emulator: unify two switches + * KVM: x86 emulator: unify four switch statements into two + * KVM: Don't bypass the mmu if in pae and pdptrs changed + * KVM: Portability: Move KVM_INTERRUPT vcpu ioctl to x86.c + * KVM: Correct kvm_init() error paths not freeing bad_pge. + * KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM + * KVM: SVM: Remove KVM specific defines for MSR_EFER + * KVM: Replace kvm_lapic with kvm_vcpu in ioapic/lapic interface + * KVM: Replace dest_Lowest_Prio and dest_Fixed with self-defined macros + * KVM: Extend ioapic code to support iosapic + * KVM: Portability: Move address types to their own header file + * KVM: Portability: Move IO device definitions to its own header file + * KVM: Portability: Stop including x86-specific headers in kvm_main.c + * KVM: Portability: Create kvm_arch_vcpu_runnable() function + * KVM: Convert KVM from ->nopage() to ->fault() + * KVM: MMU: Remove unused prev_shadow_ent variable from fetch() + * KVM: Generalize exception injection mechanism + * KVM: Replace page fault injection by the generalized exception queue + * KVM: Replace #GP injection by the generalized exception queue + * KVM: Use generalized exception queue for injecting #UD + * KVM: x86 emulator: fix eflags preparation for emulation + * KVM: VMX: Avoid exit when setting cr8 if the local apic is in the + kernel + * KVM: SVM: Emulate read/write access to cr8 + * KVM: x86 emulator: Fix stack instructions on 64-bit mode + * KVM: SVM: Trap access to the cr8 register + * KVM: VMX: Fix cr8 exit optimization + * KVM: MMU: Use cmpxchg for pte updates on walk_addr() + * KVM: MMU: Simplify calculation of pte access + * KVM: MMU: Set nx bit correctly on shadow ptes + * KVM: MMU: Move pte access calculation into a helper function + * KVM: MMU: Fix inherited permissions for emulated guest pte updates + * KVM: MMU: No need to pick up nx bit from guest pte + * KVM: MMU: Pass pte dirty flag to set_pte() instead of calculating it + on-site + * KVM: MMU: Remove walker argument to set_pte() + * KVM: MMU: Move set_pte() into guest paging mode independent code + * KVM: MMU: Adjust mmu_set_spte() debug code for gpte removal + * KVM: MMU: Use mmu_set_spte() for real-mode shadows + * KVM: SVM: Exit to userspace if write to cr8 and not using in-kernel + apic + * KVM: SVM: support writing 0 to K8 performance counter control registers + * KVM: MMU: Fix kunmap_atomic() call in cmpxchg_gpte() + * KVM: MMU: Fix SMP shadow instantiation race + * KVM: LAPIC: minor debugging compile fix + * KVM: MMU: emulated cmpxchg8b should be atomic on i386 + * KVM: Fix bad kunmap_atomic() paramerter inm cmpxchg emulation + * KVM: Make cmpxchg emulation compile on i386 + * KVM: Another cmpxchg i386 compile fix + * KVM: Another cmpxchg emulation compile fix + * KVM: Another cmpxchg emulation compile fix + * KVM: Portability: Move kvm{pic,ioapic} accesors to x86 specific code + * KVM: Portability: Introduce kvm_vcpu_arch + * KVM: Portability: Split mmu-related static inline functions to mmu.h + * KVM: Portability: Move kvm_vcpu definition back to kvm.h + * KVM: Portability: Expand the KVM_VCPU_COMM in kvm_vcpu structure. + * KVM: Portability: Move kvm_vcpu_stat to x86.h + * KVM: Portability: Move memslot aliases to new struct kvm_arch + * KVM: Portability: Move mmu-related fields to kvm_arch + * KVM: Portability: move vpic and vioapic to kvm_arch + * KVM: Portability: Move round_robin_prev_vcpu and tss_addr to kvm_arch + * KVM: Portability: Move kvm_vm_stat to x86.h + * KVM: VMX: Add printk_ratelimit in vmx_intr_assist + * KVM: Move arch dependent files to new directory arch/x86/kvm/ + * KVM: Move drivers/kvm/* to virt/kvm/ + * KVM: Fix compile error in asm/kvm_host.h + * KVM: Move irqchip declarations into new ioapic.h and lapic.h + * KVM: Move ioapic code to common directory. + * KVM: Move kvm_vcpu_kick() to x86.c + * KVM: Expose ioapic to ia64 save/restore APIs + * KVM: MMU: Coalesce remote tlb flushes + * KVM: MMU: Add cache miss statistic + * KVM: Print data for unimplemented wrmsr + * KVM: Ensure pages are copied on write + * KVM: MMU: Fix cmpxchg8b emulation on i386 (again) + * KVM: x86 emulator: Add vmmcall/vmcall to x86_emulate (v3) + * KVM: Refactor hypercall infrastructure (v3) + * KVM: x86 emulator: remove unused functions + * KVM: x86 emulator: move all x86_emulate_memop() to a structure + * KVM: x86 emulator: move all decoding process to function + x86_decode_insn() + * KVM: emulate_instruction() calls now x86_decode_insn() and + x86_emulate_insn() + * KVM: Call x86_decode_insn() only when needed + * KVM: VMX: Further reduce efer reloads + * KVM: Allow not-present guest page faults to bypass kvm + * KVM: MMU: Make flooding detection work when guest page faults are + bypassed + * KVM: MMU: Ignore reserved bits in cr3 in non-pae mode + * KVM: x86 emulator: split some decoding into functions for readability + * KVM: x86 emulator: remove _eflags and use directly ctxt->eflags. + * KVM: x86 emulator: Remove no_wb, use dst.type = OP_NONE instead + * KVM: x86_emulator: no writeback for bt + * KVM: Purify x86_decode_insn() error case management + * KVM: x86 emulator: Any legacy prefix after a REX prefix nullifies its + effect + * KVM: VMX: Don't clear the vmcs if the vcpu is not loaded on any + processor + * KVM: VMX: Simplify vcpu_clear() + * KVM: Remove the usage of page->private field by rmap + * KVM: Add general accessors to read and write guest memory + * KVM: Allow dynamic allocation of the mmu shadow cache size + * KVM: Add kvm_free_lapic() to pair with kvm_create_lapic() + * KVM: Hoist kvm_create_lapic() into kvm_vcpu_init() + * KVM: Remove gratuitous casts from lapic.c + * KVM: CodingStyle cleanup + * KVM: Support assigning userspace memory to the guest + * KVM: Move x86 msr handling to new files x86.[ch] + * KVM: MMU: Clean up MMU functions to take struct kvm when appropriate + * KVM: MMU: More struct kvm_vcpu -> struct kvm cleanups + * KVM: Move guest pte dirty bit management to the guest pagetable walker + * KVM: MMU: Fix nx access bit for huge pages + * KVM: MMU: Disable write access on clean large pages + * KVM: MMU: Instantiate real-mode shadows as user writable shadows + * KVM: MMU: Move dirty bit updates to a separate function + * KVM: MMU: When updating the dirty bit, inform the mmu about it + * KVM: Portability: split kvm_vcpu_ioctl + * KVM: apic round robin cleanup + * KVM: Add some \n in ioapic_debug() + * KVM: Move apic timer interrupt backlog processing to common code + * KVM: Rename KVM_TLB_FLUSH to KVM_REQ_TLB_FLUSH + * KVM: x86 emulator: Implement emulation of instruction: inc & dec + * KVM: MMU: Simplify page table walker + * KVM: x86 emulator: cmc, clc, cli, sti + * KVM: MMU: Add rmap_next(), a helper for walking kvm rmaps + * KVM: MMU: Keep a reverse mapping of non-writable translations + * KVM: MMU: Make gfn_to_page() always safe + * KVM: MMU: Partial swapping of guest memory + * KVM: Use virtual cpu accounting if available for guest times. + * KVM: Allocate userspace memory for older userspace + * KVM: Portability: Split kvm_vcpu into arch dependent and independent + parts (part 1) + * KVM: Move vmx_vcpu_reset() out of vmx_vcpu_setup() + * KVM: Add a might_sleep() annotation to gfn_to_page() + * KVM: Export PIC reset for kernel device reset + * KVM: Split IOAPIC reset function and export for kernel RESET + * KVM: Per-architecture hypercall definitions + * KVM: Unmap kernel-allocated memory on slot destruction + * KVM: Export memory slot allocation mechanism + * KVM: Add kernel-internal memory slots + * KVM: Add ioctl to tss address from userspace, + * KVM: VMX: Let gcc to choose which registers to save (x86_64) + * KVM: VMX: Let gcc to choose which registers to save (i386) + * KVM: SVM: Let gcc to choose which registers to save (x86_64) + * KVM: SVM: Let gcc to choose which registers to save (i386) + * KVM: x86 emulator: don't depend on cr2 for mov abs emulation + * KVM: Move page fault processing to common code + * KVM: MMU: Topup the mmu memory preallocation caches before emulating an + insn + * KVM: Portability: Split kvm_vm_ioctl v3 + * KVM: Portability: Move memory segmentation to x86.c + * KVM: Portability: move get/set_apic_base to x86.c + * KVM: Portability: Move control register helper functions to x86.c + * KVM: VMX: Enable memory mapped TPR shadow (FlexPriority) + * KVM: Fix gfn_to_page() acquiring mmap_sem twice + * KVM: Portability: Move kvm_get/set_msr[_common] to x86.c + * KVM: Portability: Move x86 emulation and mmio device hook to x86.c + * KVM: Portability: Move pio emulation functions to x86.c + * KVM: x86 emulator: Extract the common code of SrcReg and DstReg + * KVM: x86 emulator: centralize decoding of one-byte register access + insns + * KVM: Simplify decode_register_operand() calling convention + * KVM: Make mark_page_dirty() work for aliased pages too. + * KVM: x86 emulator: Hoist modrm and abs decoding into separate functions + * KVM: Portability: Make exported debugfs data architecture-specific + * KVM: Portability: Move x86 instruction emulation code to x86.c + * KVM: Portability: Move x86 FPU handling to x86.c + * KVM: Portability: Move x86 vcpu ioctl handlers to x86.c + * KVM: Add make_page_dirty() to kvm_clear_guest_page() + * KVM: VMX: Use vmx to inject real-mode interrupts + * KVM: VMX: Read & store IDT_VECTORING_INFO_FIELD + * KVM: Fix faults during injection of real-mode interrupts + * KVM: VMX: Comment VMX primary/secondary exec ctl definitions + * KVM: VMX: wbinvd exiting + * KVM: x86 emulator: remove 8 bytes operands emulator for call near + instruction + * KVM: Simplify CPU_TASKS_FROZEN cpu notifier handling + * KVM: add kvm_is_error_hva() + * KVM: introduce gfn_to_hva() + * KVM: Change kvm_{read,write}_guest() to use copy_{from,to}_user() + * KVM: Portability: Move some includes to x86.c + * KVM: Portability: Move kvm_x86_ops to x86.c + * KVM: Portability: Add vcpu and hardware management arch hooks + * KVM: Portability: Combine kvm_init and kvm_init_x86 + * KVM: Portability: Move x86 specific code from kvm_init() to kvm_arch() + * KVM: x86 emulator: modify 'lods', and 'stos' not to depend on CR2 + * KVM: Portability: move KVM_CHECK_EXTENSION + * KVM: VMX: Consolidate register usage in vmx_vcpu_run() + * KVM: Portability: Make kvm_vcpu_ioctl_translate arch dependent + * KVM: Remove ptr comparisons to 0 + * KVM: Remove __init attributes for kvm_init_debug and kvm_init_msr_list + * KVM: Portability: Add two hooks to handle kvm_create and destroy vm + * KVM: Replace 'light_exits' stat with 'host_state_reload' + * KVM: Add fpu_reload counter + * KVM: Add instruction emulation statistics + * KVM: Extend stats support for VM stats + * KVM: MMU: Add some mmu statistics + * KVM: Make unloading of FPU state when putting vcpu arch-independent + * KVM: Portability: Move kvm_vcpu_ioctl_get_dirty_log to arch-specific + file + * KVM: Portability: MMU initialization and teardown split + * KVM: Portability: Move some macro definitions from kvm.h to x86.h + * KVM: Portability: Move struct kvm_x86_ops definition to x86.h + * KVM: Portability: Move vcpu regs enumeration definition to x86.h + * KVM: Move some static inline functions out from kvm.h into x86.h + * KVM: Portability: Move some function declarations to x86.h + * KVM: VMX: Force seg.base == (seg.sel << 4) in real mode + * KVM: MMU: Change guest pte access to kvm_{read,write}_guest() + * KVM: Simplify kvm_clear_guest_page() + * KVM: Add missing #include + * KVM: MMU: Remove unused variable + * KVM: Remove unused "rmap_overflow" variable + * KVM: Correct consistent typo: "destory" -> "destroy" + * KVM: Move misplaced comment + * KVM: Portability: Move kvm_memory_alias to asm/kvm.h + * KVM: Portability: Move x86 pic strutctures + * KVM: Portability: Move kvm_regs to + * KVM: Portability: Move structure lapic_state to + * KVM: Portability: Move kvm_segment & kvm_dtable structure to + + * KVM: Portability: Move kvm_sregs and msr structures to + * KVM: Portability: Move cpuid structures to + * KVM: Export include/asm-x86/kvm.h + * KVM: MMU: Fix potential memory leak with smp real-mode + * KVM: MMU: Selectively set PageDirty when releasing guest memory + * KVM: x86 emulator: retire ->write_std() + * KVM: x86 emulator: prefetch up to 15 bytes of the instruction executed + * KVM: Recalculate mmu pages needed for every memory region change + * KVM: Portability: Split kvm_set_memory_region() to have an arch + callout + * KVM: Split vcpu creation to avoid vcpu_load() before preemption setup + * KVM: MMU: Implement guest page fault bypass for nonpae + * KVM: Add statistic for remote tlb flushes + * KVM: MMU: Avoid unnecessary remote tlb flushes when guest updates a pte + * KVM: Don't bother the mmu if cr3 load doesn't change cr3 + * KVM: MMU: Code cleanup + * KVM: MMU: Introduce and use gpte_to_gfn() + * KVM: MMU: Move pse36 handling to the guest walker + * KVM: MMU: Remove extra gaddr parameter from set_pte_common() + * KVM: MMU: Remove set_pde() + * KVM: MMU: Adjust page_header_update_slot() to accept a gfn instead of a + gpa + * KVM: MMU: Introduce gfn_to_gpa() + * KVM: MMU: Simplify nonpaging_map() + * KVM: MMU: Remove gva_to_hpa() + * KVM: Remove gpa_to_hpa() + * KVM: MMU: Rename variables of type 'struct kvm_mmu_page *' + * KVM: MMU: Rename 'release_page' + * KVM: Disallow fork() and similar games when using a VM + * KVM: Enhance guest cpuid management + * KVM: VMX: Remove the secondary execute control dependency on irqchip + * KVM: Portability: Move unalias_gfn to arch dependent file + * KVM: x86 emulator: Make a distinction between repeat prefixes F3 and F2 + * KVM: x86 emulator: address size and operand size overrides are sticky + * KVM: Remove misleading check for mmio during event injection + * KVM: MMU: mark pages that were inserted to the shadow pages table as + accessed + * KVM: x86 emulator: rename REP_REPE_PREFIX + * KVM: x86 emulator: Rename 'cr2' to 'memop' + * KVM: x86 emulator: cmps instruction + * KVM: Add ifdef in irqchip struct for x86 only structures + * KVM: Fix cpuid2 killing 32-bit guests on non-NX machines + * KVM: x86 emulator: Move rep processing before instruction execution + * KVM: x86 emulator: unify two switches + * KVM: x86 emulator: unify four switch statements into two + * KVM: Portability: Move KVM_INTERRUPT vcpu ioctl to x86.c + * KVM: Correct kvm_init() error paths not freeing bad_pge. + * KVM: Export include/linux/kvm.h only if $ARCH actually supports KVM + * KVM: SVM: Remove KVM specific defines for MSR_EFER + * KVM: Replace kvm_lapic with kvm_vcpu in ioapic/lapic interface + * KVM: Replace dest_Lowest_Prio and dest_Fixed with self-defined macros + * KVM: Extend ioapic code to support iosapic + * KVM: Portability: Move address types to their own header file + * KVM: Portability: Move IO device definitions to its own header file + * KVM: Portability: Stop including x86-specific headers in kvm_main.c + * KVM: Portability: Create kvm_arch_vcpu_runnable() function + * KVM: Convert KVM from ->nopage() to ->fault() + * KVM: MMU: Remove unused prev_shadow_ent variable from fetch() + * KVM: Generalize exception injection mechanism + * KVM: Replace page fault injection by the generalized exception queue + * KVM: Replace #GP injection by the generalized exception queue + * KVM: Use generalized exception queue for injecting #UD + * KVM: x86 emulator: fix eflags preparation for emulation + * KVM: VMX: Avoid exit when setting cr8 if the local apic is in the + kernel + * KVM: SVM: Emulate read/write access to cr8 + * KVM: x86 emulator: Fix stack instructions on 64-bit mode + * KVM: SVM: Trap access to the cr8 register + * KVM: VMX: Fix cr8 exit optimization + * KVM: MMU: Use cmpxchg for pte updates on walk_addr() + * KVM: MMU: Simplify calculation of pte access + * KVM: MMU: Set nx bit correctly on shadow ptes + * KVM: MMU: Move pte access calculation into a helper function + * KVM: MMU: Fix inherited permissions for emulated guest pte updates + * KVM: MMU: No need to pick up nx bit from guest pte + * KVM: MMU: Pass pte dirty flag to set_pte() instead of calculating it + on-site + * KVM: MMU: Remove walker argument to set_pte() + * KVM: MMU: Move set_pte() into guest paging mode independent code + * KVM: MMU: Adjust mmu_set_spte() debug code for gpte removal + * KVM: MMU: Use mmu_set_spte() for real-mode shadows + * KVM: SVM: Exit to userspace if write to cr8 and not using in-kernel + apic + * KVM: MMU: Fix SMP shadow instantiation race + * KVM: LAPIC: minor debugging compile fix + * KVM: SVM: support writing 0 to K8 performance counter control registers + * KVM: MMU: emulated cmpxchg8b should be atomic on i386 + * KVM: Portability: Move kvm{pic,ioapic} accesors to x86 specific code + * KVM: Portability: Introduce kvm_vcpu_arch + * KVM: Portability: Split mmu-related static inline functions to mmu.h + * KVM: Portability: Move kvm_vcpu definition back to kvm.h + * KVM: Portability: Expand the KVM_VCPU_COMM in kvm_vcpu structure. + * KVM: Portability: Move kvm_vcpu_stat to x86.h + * KVM: Portability: Move memslot aliases to new struct kvm_arch + * KVM: Portability: Move mmu-related fields to kvm_arch + * KVM: Portability: move vpic and vioapic to kvm_arch + * KVM: Portability: Move round_robin_prev_vcpu and tss_addr to kvm_arch + * KVM: Portability: Move kvm_vm_stat to x86.h + * KVM: VMX: Add printk_ratelimit in vmx_intr_assist + * KVM: Move arch dependent files to new directory arch/x86/kvm/ + * KVM: Move drivers/kvm/* to virt/kvm/ + * KVM: Move irqchip declarations into new ioapic.h and lapic.h + * KVM: Move ioapic code to common directory. + * KVM: Move kvm_vcpu_kick() to x86.c + * KVM: Expose ioapic to ia64 save/restore APIs + * KVM: MMU: Coalesce remote tlb flushes + * KVM: MMU: Add cache miss statistic + * KVM: Print data for unimplemented wrmsr + * KVM: Ensure pages are copied on write + * KVM: local APIC TPR access reporting facility + * KVM: Accelerated apic support + * KVM: Disable vapic support on Intel machines with FlexPriority + * KVM: MMU: Concurrent guest walkers + * KVM: Add kvm_read_guest_atomic() + * KVM: MMU: Avoid calling gfn_to_page() in mmu_set_spte() + * KVM: MMU: Switch to mmu spinlock + * KVM: MMU: Move kvm_free_some_pages() into critical section + * KVM: MMU: Broaden scope of mmap_sem to include actual mapping + * KVM: MMU: Fix recursive locking of mmap_sem() + * KVM: Fix unbalanced mmap_sem operations in cmpxchg8b emulation + * KVM: Mark vapic page as dirty for save/restore/migrate + * KVM: x86 emulator: Only allow VMCALL/VMMCALL trapped by #UD + * KVM: MMU: Update shadow ptes on partial guest pte writes + * KVM: MMU: Simplify hash table indexing + * KVM: Portability: Move kvm_fpu to asm-x86/kvm.h + * KVM: MMU: Fix dirty page setting for pages removed from rmap + * KVM: Initialize the mmu caches only after verifying cpu support + * KVM: Fix unbounded preemption latency + * KVM: Put kvm_para.h include outside __KERNEL__ + * KVM: Move apic timer migration away from critical section + * KVM: SVM: Fix lazy FPU switching + * KVM: MMU: Fix gpa truncation when reading a pte + * [GFS2] Handle multiple glock demote requests + * [GFS2] Clean up internal read function + * [GFS2] Use ->page_mkwrite() for mmap() + * [GFS2] Remove useless i_cache from inodes + * [GFS2] Remove unused field in struct gfs2_inode + * [GFS2] Add gfs2_is_writeback() + * [GFS2] Introduce gfs2_set_aops() + * [GFS2] Split gfs2_writepage into three cases + * [GFS2] Add writepages for GFS2 jdata + * [GFS2] Don't hold page lock when starting transaction + * [GFS2] Use correct include file in ops_address.c + * [GFS2] Remove unused variables + * [GFS2] Remove "reclaim limit" + * [GFS2] Add sync_page to metadata address space operations + * [GFS2] Reorder writeback for glock sync + * [GFS2] Remove flags no longer required + * [GFS2] Given device ID rather than s_id in "id" sysfs file + * [GFS2] check kthread_should_stop when waiting + * [GFS2] Don't add glocks to the journal + * [GFS2] Use atomic_t for journal free blocks counter + * [GFS2] Move gfs2_logd into log.c + * [GFS2] Don't periodically update the jindex + * [GFS2] Check for installation of mount helpers for DLM mounts + * [GFS2] tidy up error message + * [GFS2] Fix runtime issue with UP kernels + * [GFS2] remove unnecessary permission checks + * [GFS2] Fix build warnings + * [GFS2] Remove unrequired code + * [GFS2] Remove lock methods for lock_nolock protocol + * [GFS2] patch to check for recursive lock requests in gfs2_rename code + path + * [GFS2] Remove unused variable + * [GFS2] use pid for plock owner for nfs clients + * [GFS2] Remove function gfs2_get_block + * [GFS2] Journal extent mapping + * [GFS2] Get rid of useless "found" variable in quota.c + * [GFS2] Run through full bitmaps quicker in gfs2_bitfit + * [GFS2] Reorganize function gfs2_glmutex_lock + * [GFS2] Only fetch the dinode once in block_map + * [GFS2] Function meta_read optimization + * [GFS2] Incremental patch to fix compiler warning + * [GFS2] Eliminate the no longer needed sd_statfs_mutex + * [GFS2] Minor correction + * [GFS2] Fix log block mapper + * [GFS2] Remove unused variable + * [GFS2] Allow page migration for writeback and ordered pages + * [GFS2] Initialize extent_list earlier + * [GFS2] Fix problems relating to execution of files on GFS2 + * [GFS2] Fix assert in log code + * [GFS2] Reduce inode size by moving i_alloc out of line + * [GFS2] Remove unneeded i_spin + * [GFS2] gfs2_alloc_required performance + * [GFS2] Fix write alloc required shortcut calculation + * [GFS2] Fix typo + * [GFS2] Fix page_mkwrite truncation race path + * [GFS2] Lockup on error + * [GFS2] Allow journal recovery on read-only mount + + -- Tim Gardner Sun, 27 Jan 2008 20:37:18 -0700 + +linux (2.6.24-5.9) hardy; urgency=low + + [Amit Kucheria] + + * Fix LPIA FTBFS due to virtio Ignore: yes + + [Upstream Kernel Changes] + + * ACPI: processor: Fix null pointer dereference in throttling + * [SPARC64]: Fix of section mismatch warnings. + * [SPARC64]: Fix section error in sparcspkr + * [SPARC]: Constify function pointer tables. + * [BLUETOOTH]: Move children of connection device to NULL before + connection down. + * [TULIP] DMFE: Fix SROM parsing regression. + * [IPV4]: Add missing skb->truesize increment in ip_append_page(). + * iwlwifi: fix possible read attempt on ucode that is not available + * [NETNS]: Re-export init_net via EXPORT_SYMBOL. + * [INET]: Fix truesize setting in ip_append_data + * sis190: add cmos ram access code for the SiS19x/968 chipset pair + * sis190: remove duplicate INIT_WORK + * sis190: mdio operation failure is not correctly detected + * sis190: scheduling while atomic error + * Update ctime and mtime for memory-mapped files + * [SCSI] initio: fix module hangs on loading + * xen: disable vcpu_info placement for now + * agp/intel: add support for E7221 chipset + * drm/i915: add support for E7221 chipset + * DMI: move dmi_available declaration to linux/dmi.h + * DMI: create dmi_get_slot() + * ACPI: create acpi_dmi_dump() + * ACPI: on OSI(Linux), print needed DMI rather than requesting dmidecode + output + * ACPI: Delete Intel Customer Reference Board (CRB) from OSI(Linux) DMI + list + * ACPI: make _OSI(Linux) console messages smarter + * ACPI: Add ThinkPad R61, ThinkPad T61 to OSI(Linux) white-list + * ACPI: DMI blacklist to reduce console warnings on OSI(Linux) systems. + * ACPI: EC: fix dmesg spam regression + * ACPI: EC: add leading zeros to debug messages + * Pull bugzilla-9747 into release branch + * Pull bugzilla-8459 into release branch + * Pull bugzilla-9798 into release branch + * Pull dmi-2.6.24 into release branch + * [SPARC64]: Partially revert "Constify function pointer tables." + * lockdep: fix kernel crash on module unload + * sysctl: kill binary sysctl KERN_PPC_L2CR + * fix hugepages leak due to pagetable page sharing + * spi: omap2_mcspi PIO RX fix + * Linux 2.6.24 + + -- Tim Gardner Fri, 25 Jan 2008 01:44:27 -0700 + +linux (2.6.24-5.8) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: Update to 2.6.24-rc8-rt1 + * rt: Update configuration files + + [Amit Kucheria] + + * Asix: fix breakage caused in 2.6.24-rc7 + * Add CONFIG_CPUSETS to server-related flavours + - LP: #182434 + + [Chuck Short] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + - LP: #175834 + + [Kees Cook] + + * AppArmor: updated patch series to upstream SVN 1079. + + [Soren Hansen] + + * Updated configs to enable virtio stuff Ignore: yes + + [Stefan Bader] + + * Enabled CONFIG_BSD_PROCESS_ACCT=y for sparc. + - LP: #176587 + * Enable CONFIG_AUDITSYSCALL=y. + - LP: #140784 + * Added CONFIG_AUDIT_SYSCALL=y to custom lpia(compat) + * Enabled CONFIG_HUGETLBFS=y for i386/server amd64/server and ia64. + * Lower priority of pnpacpi resource messages to warning level. + - LP: #159241 + * Fix the messed up message level of pnpacpi parser. + + [Tim Gardner] + + * Start new release, bump ABI to -5 + * Disabled iwlwifi preperatory to moving it to l-u-m. + * Enabled CONFIG_USB_SERIAL_KEYSPAN + * Disabled CONFIG_CGROUPS. + * Virtio config settings for -rt. + * Re-enable IWLWIFI in the kernel. + * Fixed -rt saa7134-core.c FTBS + + [Upstream Kernel Changes] + + * Input: Handle EV_PWR type of input caps in input_set_capability. + * Input: jornada680_kbd - fix default keymap + * increase PNP_MAX_PORT to 40 from 24 + * sched: fix gcc warnings + * leds: Fix leds_list_lock locking issues + * leds: Fix locomo LED driver oops + * x86: fix asm-x86/byteorder.h for userspace export + * x86: fix asm-x86/msr.h for user-space export + * ACPI: EC: Enable boot EC before bus_scan + * ACPI: Make sysfs interface in ACPI power optional. + * fix lguest rmmod "bad pgd" + * slub: provide /proc/slabinfo + * [POWERPC] Fix build failure on Cell when CONFIG_SPU_FS=y + * slub: register slabinfo to procfs + * [SCSI] scsi_sysfs: restore prep_fn when ULD is removed + * Unify /proc/slabinfo configuration + * scsi: revert "[SCSI] Get rid of scsi_cmnd->done" + * restrict reading from /proc//maps to those who share ->mm or can + ptrace pid + * Fix kernel/ptrace.c compile problem (missing "may_attach()") + * hwmon: (w83627ehf) Be more careful when changing VID input level + * NFS: Fix a possible Oops in fs/nfs/super.c + * NFSv4: Fix circular locking dependency in nfs4_kill_renewd + * NFS: add newline to kernel warning message in auth_gss code + * NFSv4: nfs4_open_confirm must not set the open_owner as confirmed on + error + * NFSv4: Fix open_to_lock_owner sequenceid allocation... + * gameport: don't export functions that are static inline + * Input: spitzkbd - fix suspend key handling + * Input: pass EV_PWR events to event handlers + * [ARM] 4735/1: Unbreak pxa25x suspend/resume + * IB/srp: Fix list corruption/oops on module reload + * Console is utf-8 by default + * [IA64] Update Altix BTE error return status patch + * [IA64] Update Altix nofault code + * [X25]: Add missing x25_neigh_put + * [XFRM]: Do not define km_migrate() if !CONFIG_XFRM_MIGRATE + * [CASSINI]: Fix endianness bug. + * [CASSINI]: Revert 'dont touch page_count'. + * [CASSINI]: Program parent Intel31154 bridge when necessary. + * [CASSINI]: Set skb->truesize properly on receive packets. + * [CASSINI]: Fix two obvious NAPI bugs. + * [CASSINI]: Bump driver version and release date. + * [INET]: Fix netdev renaming and inet address labels + * [CONNECTOR]: Return proper error code in cn_call_callback() + * [ISDN] i4l: 'NO CARRIER' message lost after ldisc flush + * [ISDN]: i4l: Fix DLE handling for i4l-audio + * fix: using joysticks in 32 bit applications on 64 bit systems + * [ARM] 4691/1: add missing i2c_board_info struct for at91rm9200 + * hda_intel suspend latency: shorten codec read + * CPU hotplug: fix cpu_is_offline() on !CONFIG_HOTPLUG_CPU + * Linux 2.6.24-rc7 + * sh: Fix argument page dcache flushing regression. + * V4L/DVB (6944a): Fix Regression VIDIOCGMBUF ioctl hangs on bttv driver + * V4L/DVB (6916): ivtv: udelay has to be changed *after* the eeprom was + read, not before + * [MIPS] Move inclusing of kernel/time/Kconfig menu to appropriate place + * [MIPS] Alchemy: Fix use of __init code bug exposed by modpost warning + * [MIPS] Fix IP32 breakage + * [MIPS] Assume R4000/R4400 newer than 3.0 don't have the mfc0 count bug + * [MIPS] Fix CONFIG_BOOT_RAW. + * ACPI: Reintroduce run time configurable max_cstate for !CPU_IDLE case + * core dump: real_parent ppid + * acct: real_parent ppid + * IB/mlx4: Fix value of pkey_index in QP1 completions + * IB/srp: Release transport before removing host + * x86: fix do_fork_idle section mismatch + * spi_bitbang: always grab lock with irqs blocked + * fat: optimize fat_count_free_clusters() + * KEYS: fix macro + * md: fix data corruption when a degraded raid5 array is reshaped + * xip: fix get_zeroed_page with __GFP_HIGHMEM + * eCryptfs: fix dentry handling on create error, unlink, and inode + destroy + * vmcoreinfo: add the array length of "free_list" for filtering free + pages + * dmi-id: fix for __you_cannot_kmalloc_that_much failure + * snd_mixer_oss_build_input(): fix for __you_cannot_kmalloc_that_much + failure with gcc-3.2 + * Fix crash with FLAT_MEMORY and ARCH_PFN_OFFSET != 0 + * hfs: handle more on-disk corruptions without oopsing + * pl2303: Fix mode switching regression + * futex: Prevent stale futex owner when interrupted/timeout + * [NIU]: Fix slowpath interrupt handling. + * [NIU]: Missing ->last_rx update. + * [NIU]: Fix potentially stuck TCP socket send queues. + * [NIU]: Update driver version and release date. + * [IPV4] raw: Strengthen check on validity of iph->ihl + * [IPV4] ipconfig: Fix regression in ip command line processing + * [NET]: Fix netx-eth.c compilation. + * [METH]: Fix MAC address handling. + * [TULIP]: NAPI full quantum bug. + * [ATM]: [nicstar] delay irq setup until card is configured + * [SCTP]: Fix the name of the authentication event. + * [SCTP]: Correctly handle AUTH parameters in unexpected INIT + * [SCTP]: Add back the code that accounted for FORWARD_TSN parameter in + INIT. + * [IRDA]: irda_create() nuke user triggable printk + * b43: Fix rxheader channel parsing + * [NET]: Do not grab device reference when scheduling a NAPI poll. + * [NET]: Add NAPI_STATE_DISABLE. + * [NET]: Do not check netif_running() and carrier state in ->poll() + * ssb: Fix probing of PCI cores if PCI and PCIE core is available + * mac80211: return an error when SIWRATE doesn't match any rate + * [NETXEN]: Fix ->poll() done logic. + * [NET]: Fix drivers to handle napi_disable() disabling interrupts. + * [NET]: Stop polling when napi_disable() is pending. + * [NET]: Make ->poll() breakout consistent in Intel ethernet drivers. + * [NET] Intel ethernet drivers: update MAINTAINERS + * [NET]: kaweth was forgotten in msec switchover of usb_start_wait_urb + * [IPV4] ROUTE: ip_rt_dump() is unecessary slow + * [NET]: Clone the sk_buff 'iif' field in __skb_clone() + * [LRO] Fix lro_mgr->features checks + * [NET]: mcs7830 passes msecs instead of jiffies to usb_control_msg + * [FORCEDETH]: Fix reversing the MAC address on suspend. + * [XFRM]: xfrm_algo_clone() allocates too much memory + * [SOCK]: Adds a rcu_dereference() in sk_filter + * [CONNECTOR]: Don't touch queue dev after decrement of ref count. + * [IPV6]: IPV6_MULTICAST_IF setting is ignored on link-local connect() + * [ATM]: Check IP header validity in mpc_send_packet + * show_task: real_parent + * [SCSI] qla1280: fix 32 bit segment code + * [NIU]: Support for Marvell PHY + * [NEIGH]: Fix race between neigh_parms_release and neightbl_fill_parms + * [IPV4] ROUTE: fix rcu_dereference() uses in /proc/net/rt_cache + * [AX25]: Kill user triggable printks. + * [ARM] pxa: silence warnings from cpu_is_xxx() macros + * [POWERPC] efika: add phy-handle property for fec_mpc52xx + * [ARM] vfp: fix fuitod/fsitod instructions + * [CRYPTO] padlock: Fix alignment fault in aes_crypt_copy + * rt2x00: Allow rt61 to catch up after a missing tx report + * rt2x00: Corectly initialize rt2500usb MAC + * rt2x00: Put 802.11 data on 4 byte boundary + * NFSv4: Give the lock stateid its own sequence queue + * sata_qstor: use hardreset instead of softreset + * libata-sff: PCI IRQ handling fix + * pata_pdc202xx_old: Further fixups + * pata_ixp4xx_cf: fix compilation introduced by ata_port_desc() + conversion + * libata-pmp: 4726 hates SRST + * libata-pmp: propagate timeout to host link + * libata: don't normalize UNKNOWN to NONE after reset + * Update kernel parameter document for libata DMA mode setting knobs. + * sata_sil24: prevent hba lockup when pass-through ATA commands are used + * ide: workaround suspend bug for ACPI IDE + * ide: fix cable detection for SATA bridges + * trm290: do hook dma_host_{on,off} methods (take 2) + * libata and starting/stopping ATAPI floppy devices + * ACPI : Not register gsi for PCI IDE controller in legacy mode + * ACPICA: fix acpi_serialize hang regression + * sh: Force __access_ok() to obey address space limit. + * [AX25] af_ax25: Possible circular locking. + * ACPI: apply quirk_ich6_lpc_acpi to more ICH8 and ICH9 + * [POWERPC] Fix CPU hotplug when using the SLB shadow buffer + * [BLUETOOTH]: rfcomm tty BUG_ON() code fix + * [BLUETOOTH]: Always send explicit hci_ll wake-up acks. + * [DECNET] ROUTE: fix rcu_dereference() uses in /proc/net/decnet_cache + * [VLAN]: nested VLAN: fix lockdep's recursive locking warning + * [MACVLAN]: Prevent nesting macvlan devices + * [NETFILTER]: ip6t_eui64: Fixes calculation of Universal/Local bit + * [NETFILTER]: xt_helper: Do not bypass RCU + * [XFS] fix unaligned access in readdir + * Don't blatt first element of prv in sg_chain() + * loop: fix bad bio_alloc() nr_iovec request + * block: fix blktrace timestamps + * blktrace: kill the unneeded initcall + * V4L/DVB (6999): ivtv: stick to udelay=10 after all + * V4L/DVB (7001): av7110: fix section mismatch + * [MIPS] Wrong CONFIG option prevents setup of DMA zone. + * [MIPS] pnx8xxx: move to clocksource + * [MIPS] Malta: Fix software reset on big endian + * [MIPS] Lasat: Fix built in separate object directory. + * [MIPS] Replace 40c7869b693b18412491fdcff64682215b739f9e kludge + * Pull bugzilla-5637 into release branch + * Pull bugzilla-8171 into release branch + * Pull bugzilla-8973 into release branch + * PM: ACPI and APM must not be enabled at the same time + * Pull bugzilla-9194 into release branch + * Pull bugzilla-9494 into release branch + * Pull bugzilla-9535 into release branch + * Pull bugzilla-9627 into release branch + * Pull bugzilla-9683 into release branch + * IDE: terminate ACPI DMI list + * cache invalidation error for buffered write + * ps3fb: prevent use after free of fb_info + * ps3fb: fix deadlock on kexec() + * [NETFILTER]: bridge: fix double POST_ROUTING invocation + * xircom_cb endianness fixes + * de4x5 fixes + * endianness noise in tulip_core + * netxen: update MAINTAINERS + * netxen: update driver version + * netxen: stop second phy correctly + * netxen: optimize tx handling + * netxen: fix byte-swapping in tx and rx + * 3c509: PnP resource management fix + * Fixed a small typo in the loopback driver + * ip1000: menu location change + * r8169: fix missing loop variable increment + * [usb netdev] asix: fix regression + * fs_enet: check for phydev existence in the ethtool handlers + * Use access mode instead of open flags to determine needed permissions + * sky2: large memory workaround. + * sky2: remove check for PCI wakeup setting from BIOS + * spidernet MAINTAINERship update + * pnpacpi: print resource shortage message only once + * Pull bugzilla-9535 into release branch + * [SPARC]: Make gettimeofday() monotonic again. + * [SPARC64]: Fix build with SPARSEMEM_VMEMMAP disabled. + * remove task_ppid_nr_ns + * knfsd: Allow NFSv2/3 WRITE calls to succeed when krb5i etc is used. + * Input: improve Kconfig help entries for HP Jornada devices + * [TOKENRING]: rif_timer not initialized properly + * modules: de-mutex more symbol lookup paths in the module code + * w1: decrement slave counter only in ->release() callback + * Kick CPUS that might be sleeping in cpus_idle_wait + * TPM: fix suspend and resume failure + * MAINTAINERS: email update and add missing entry + * quicklists: Only consider memory that can be used with GFP_KERNEL + * macintosh: fix fabrication of caplock key events + * scsi/qla2xxx/qla_os.c section fix + * cciss: section mismatch + * advansys: fix section mismatch warning + * hugetlbfs: fix quota leak + * s3c2410fb: fix incorrect argument type in resume function + * CRIS: define __ARCH_WANT_SYS_RT_SIGSUSPEND in unistd.h for CRIS + * CRIS v10: correct do_signal to fix oops and clean up signal handling in + general + * CRIS v10: kernel/time.c needs to include linux/vmstat.h to compile + * uvesafb: fix section mismatch warnings + * CRIS v10: driver for ds1302 needs to include cris-specific i2c.h + * OSS msnd: fix array overflows + * i2c-omap: Fix NULL pointer dereferencing + * i2c: Spelling fixes + * i2c: Driver IDs are optional + * i2c-sibyte: Fix an error path + * fix the "remove task_ppid_nr_ns" commit + * [MIPS] Kconfig fixes for BCM47XX platform + * [MIPS] Cobalt: Fix ethernet interrupts for RaQ1 + * [MIPS] Cobalt: Qube1 has no serial port so don't use it + * [MIPS] Cacheops.h: Fix typo. + * ata_piix: ignore ATA_DMA_ERR on vmware ich4 + * sata_sil24: fix stupid typo + * sata_sil24: freeze on non-dev errors reported via CERR + * libata: relocate sdev->manage_start_stop configuration + * [POWERPC] Fix boot failure on POWER6 + * x86: fix boot crash on HIGHMEM4G && SPARSEMEM + * x86: asm-x86/msr.h: pull in linux/types.h + * x86: fix RTC_AIE with CONFIG_HPET_EMULATE_RTC + * Fix ARM profiling/instrumentation configuration + * Fix Blackfin HARDWARE_PM support + * libata fixes for sparse-found problems + * [libata] pata_bf54x: checkpatch fixes + * [libata] core checkpatch fix + * libata: correct handling of TSS DVD + * [IA64] Fix unaligned handler for floating point instructions with base + update + * Linux 2.6.24-rc8 + * lockdep: fix internal double unlock during self-test + * lockdep: fix workqueue creation API lockdep interaction + * lockdep: more hardirq annotations for notify_die() + * hostap: section mismatch warning + * wireless/libertas support for 88w8385 sdio older revision + * ipw2200: fix typo in kerneldoc + * b43: fix use-after-free rfkill bug + * rt2x00: Fix ieee80211 payload alignment + * sysfs: make sysfs_lookup() return ERR_PTR(-ENOENT) on failed lookup + * sysfs: fix bugs in sysfs_rename/move_dir() + * Use access mode instead of open flags to determine needed permissions + (CVE-2008-0001) + * IB/ipath: Fix receiving UD messages with immediate data + * [NET]: Fix TX timeout regression in Intel drivers. + * [NIU]: Fix 1G PHY link state handling. + * [SPARC64]: Fix hypervisor TLB operation error reporting. + * Input: mousedev - handle mice that use absolute coordinates + * Input: usbtouchscreen - fix buffer overflow, make more egalax work + * Input: psmouse - fix potential memory leak in psmouse_connect() + * Input: psmouse - fix input_dev leak in lifebook driver + * Input: ALPS - fix sync loss on Acer Aspire 5720ZG + * ipg: balance locking in irq handler + * ipg: plug Tx completion leak + * ipg: fix queue stop condition in the xmit handler + * ipg: fix Tx completion irq request + * cpufreq: Initialise default governor before use + * hfs: fix coverity-found null deref + * pnpacpi: print resource shortage message only once (more) + * CRIS v10: vmlinux.lds.S: ix kernel oops on boot and use common defines + * mm: fix section mismatch warning in page_alloc.c + * jbd: do not try lock_acquire after handle made invalid + * alpha: fix conversion from denormal float to double + * #ifdef very expensive debug check in page fault path + * Fix unbalanced helper_lock in kernel/kmod.c + * fix wrong sized spinlock flags argument + * bonding: fix locking in sysfs primary/active selection + * bonding: fix ASSERT_RTNL that produces spurious warnings + * bonding: fix locking during alb failover and slave removal + * bonding: release slaves when master removed via sysfs + * bonding: Fix up parameter parsing + * bonding: fix lock ordering for rtnl and bonding_rwsem + * bonding: Don't hold lock when calling rtnl_unlock + * Documentation: add a guideline for hard_start_xmit method + * atl1: fix frame length bug + * S2io: Fixed synchronization between scheduling of napi with card reset + and close + * dscc4 endian fixes + * wan/lmc bitfields fixes + * sbni endian fixes + * 3c574, 3c515 bitfields abuse + * dl2k: BMCR_t fixes + * dl2k: ANAR, ANLPAR fixes + * dl2k: BMSR fixes + * dl2k: MSCR, MSSR, ESR, PHY_SCR fixes + * dl2k: the rest + * Replace cpmac fix + * [WATCHDOG] Revert "Stop looking for device as soon as one is found" + * [WATCHDOG] clarify watchdog operation in documentation + * x86: add support for the latest Intel processors to Oprofile + * Selecting LGUEST should turn on Guest support, as in 2.6.23. + * ARM: OMAP1: Keymap fix for f-sample and p2-sample + * ARM: OMAP1: Fix compile for board-nokia770 + * pata_pdc202xx_old: Fix crashes with ATAPI + * arch: Ignore arch/i386 and arch/x86_64 + * Remove bogus duplicate CONFIG_LGUEST_GUEST entry. + * [ARM] pxa: don't rely on r2 being preserved over a function call + * [ARM] 4748/1: dca: source drivers/dca/Kconfig in arch/arm/Kconfig to + fix warning + * rfkill: call rfkill_led_trigger_unregister() on error + * [IPV6]: Mischecked tw match in __inet6_check_established. + * [IPV4] fib_hash: fix duplicated route issue + * [IPV4] fib_trie: fix duplicated route issue + * [NET]: Fix interrupt semaphore corruption in Intel drivers. + * [IPV4] FIB_HASH : Avoid unecessary loop in fn_hash_dump_zone() + * [IPV6] ROUTE: Make sending algorithm more friendly with RFC 4861. + * [NETFILTER]: bridge-netfilter: fix net_device refcnt leaks + * [NEIGH]: Revert 'Fix race between neigh_parms_release and + neightbl_fill_parms' + * [IrDA]: af_irda memory leak fixes + * [ATM] atm/idt77105.c: Fix section mismatch. + * [ATM] atm/suni.c: Fix section mismatch. + * [AF_KEY]: Fix skb leak on pfkey_send_migrate() error + * [NET]: rtnl_link: fix use-after-free + * [IPV6]: ICMP6_MIB_OUTMSGS increment duplicated + * [IPV6]: RFC 2011 compatibility broken + * [ICMP]: ICMP_MIB_OUTMSGS increment duplicated + * selinux: fix memory leak in netlabel code + * [MIPS] SMTC: Fix build error. + * [MIPS] Malta: Fix reading the PCI clock frequency on big-endian + * tc35815: Use irq number for tc35815-mac platform device id + * keyspan: fix oops + * hrtimer: fix section mismatch + * timer: fix section mismatch + * CRIS: add missed local_irq_restore call + * s3c2410_fb: fix line length calculation + * Fix filesystem capability support + * sched: group scheduler, set uid share fix + * hwmon: (it87) request only Environment Controller ports + * W1: w1_therm.c ds18b20 decode freezing temperatures correctly + * W1: w1_therm.c is flagging 0C etc as invalid + * rcu: fix section mismatch + * Fix file references in documentation and Kconfig + * x86: GEODE fix a race condition in the MFGPT timer tick + * virtnet: remove double ether_setup + * virtio:simplify-config-mechanism + * virtio: An entropy device, as suggested by hpa. + * virtio: Export vring functions for modules to use + * virtio: Put the virtio under the virtualization menu + * virtio:pci-device + * Fix vring_init/vring_size to take unsigned long + * virtio:vring-kick-when-empty + * virtio:explicit-callback-disable + * virtio:net-flush-queue-on-init + * virtio:net-fix-xmit-skb-free-real + * Parametrize the napi_weight for virtio receive queue. + * Handle module unload Add the device release function. + * Update all status fields on driver unload + * Make virtio modules GPL + * Make virtio_pci license be GPL2+ + * Use Qumranet donated PCI vendor/device IDs + * virtio:more-interrupt-suppression + * Reboot Implemented + * lguest:reboot-fix + * introduce vcpu struct + * adapt lguest launcher to per-cpuness + * initialize vcpu + * per-cpu run guest + * make write() operation smp aware + * make hypercalls use the vcpu struct + * per-vcpu lguest timers + * per-vcpu interrupt processing. + * map_switcher_in_guest() per-vcpu + * make emulate_insn receive a vcpu struct. + * make registers per-vcpu + * replace lguest_arch with lg_cpu_arch. + * per-vcpu lguest task management + * makes special fields be per-vcpu + * make pending notifications per-vcpu + * per-vcpu lguest pgdir management + + -- Tim Gardner Thu, 17 Jan 2008 14:45:01 -0700 + +linux (2.6.24-4.7) hardy; urgency=low + + [Amit Kucheria] + + * Poulsbo: Add SD8686 and 8688 WLAN drivers + * Poulsbo: Mass update of patches to be identical to those on moblin + * SAUCE: make fc transport removal of target configurable OriginalAuthor: + Michael Reed sgi.com> OriginalLocation: + http://thread.gmane.org/gmane.linux.scsi/25318 Bug: 163075 + + [Fabio M. Di Nitto] + + * Fix handling of gcc-4.1 for powerpc and ia64 + + [Tim Gardner] + + * Re-engineered architecture specific linux-headers compiler version + dependencies. + * Doh! Changed header-depends to header_depends. + + -- Tim Gardner Fri, 11 Jan 2008 07:10:46 -0700 + +linux (2.6.24-4.6) hardy; urgency=low + + [Alessio Igor Bogani] + + * Fix -rt build FTBS. + + [Amit Kucheria] + + * LPIACOMPAT: Update thermal patches to be inline with lpia flavour + * Poulsbo: Add USB Controller patch and corresponding config change + + [Fabio M. Di Nitto] + + * Enable aoe and nbd modules on hppa Ignore: yes + * Fix ia64 build by using gcc-4.1 + + [Tim Gardner] + + * Enable JFFS2 LZO compression. + - LP: #178343 + * Remove IS_G33 special handling. + - LP: #174367 + * Enabled CONFIG_SECURITY_CAPABILITIES and + CONFIG_SECURITY_FILE_CAPABILITIES + - LP: #95089 + * Enabled CONFIG_TASKSTATS and CONFIG_TASK_IO_ACCOUNTING + * Turned CONFIG_SECURITY_FILE_CAPABILITIES back off. + * Enabled CONFIG_B43LEGACY=m + * Enabled CONFIG_SCSI_QLOGIC_1280=m + * Enabled CONFIG_FUSION=y for virtual + * USB bluetooth device 0x0e5e:0x6622 floods errors to syslog + - LP: #152689 + * Removed lpia from d-i. + * Added ia64 modules. + * Added hppa32/64 modules. + + [Upstream Kernel Changes] + + * DMI autoload dcdbas on all Dell systems. + * sched: fix gcc warnings + * leds: Fix leds_list_lock locking issues + * leds: Fix locomo LED driver oops + * x86: fix asm-x86/byteorder.h for userspace export + * x86: fix asm-x86/msr.h for user-space export + * fix lguest rmmod "bad pgd" + * slub: provide /proc/slabinfo + * [POWERPC] Fix build failure on Cell when CONFIG_SPU_FS=y + * slub: register slabinfo to procfs + * [SCSI] scsi_sysfs: restore prep_fn when ULD is removed + * Unify /proc/slabinfo configuration + * scsi: revert "[SCSI] Get rid of scsi_cmnd->done" + * restrict reading from /proc//maps to those who share ->mm or can + ptrace pid + * Fix kernel/ptrace.c compile problem (missing "may_attach()") + * hwmon: (w83627ehf) Be more careful when changing VID input level + * NFS: Fix a possible Oops in fs/nfs/super.c + * NFSv4: Fix circular locking dependency in nfs4_kill_renewd + * NFS: add newline to kernel warning message in auth_gss code + * NFSv4: nfs4_open_confirm must not set the open_owner as confirmed on + error + * NFSv4: Fix open_to_lock_owner sequenceid allocation... + * IB/srp: Fix list corruption/oops on module reload + * Console is utf-8 by default + * [IA64] Update Altix BTE error return status patch + * [IA64] Update Altix nofault code + * [X25]: Add missing x25_neigh_put + * [XFRM]: Do not define km_migrate() if !CONFIG_XFRM_MIGRATE + * [CASSINI]: Fix endianness bug. + * [CASSINI]: Revert 'dont touch page_count'. + * [CASSINI]: Program parent Intel31154 bridge when necessary. + * [CASSINI]: Set skb->truesize properly on receive packets. + * [CASSINI]: Fix two obvious NAPI bugs. + * [CASSINI]: Bump driver version and release date. + * [INET]: Fix netdev renaming and inet address labels + * [CONNECTOR]: Return proper error code in cn_call_callback() + * [ISDN] i4l: 'NO CARRIER' message lost after ldisc flush + * [ISDN]: i4l: Fix DLE handling for i4l-audio + * fix: using joysticks in 32 bit applications on 64 bit systems + * hda_intel suspend latency: shorten codec read + * CPU hotplug: fix cpu_is_offline() on !CONFIG_HOTPLUG_CPU + * Linux 2.6.24-rc7 + * PIE executable randomization (upstream cherry pick by kees) + + -- Tim Gardner Fri, 04 Jan 2008 07:15:47 -0700 + +linux (2.6.24-3.5) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: Fix rt preempt patchset version + * Updated README file for binary custom flavours + * Fix -rt build FTBS. + * rt: Update configuration files + + [Tim Gardner] + + * SAUCE: Add extra headers to linux-libc-dev + + [Upstream Kernel Changes] + + * [WATCHDOG] at32ap700x_wdt: add support for boot status and add fix for + silicon errata + * [WATCHDOG] Stop looking for device as soon as one is found + * [WATCHDOG] bfin_wdt, remove SPIN_LOCK_UNLOCKED + * [WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED + * [WATCHDOG] IT8212F watchdog driver + * ACPI: acpiphp: Remove dmesg spam on device remove + * [WATCHDOG] ipmi: add the standard watchdog timeout ioctls + * [WATCHDOG] add Nano 7240 driver + * ACPI: battery: fix ACPI battery technology reporting + * [ARM] 4667/1: CM-X270 fixes + * [ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code + * [IPV6] XFRM: Fix auditing rt6i_flags; use RTF_xxx flags instead of + RTCF_xxx. + * [IPV4]: Swap the ifa allocation with the"ipv4_devconf_setall" call + * [IPv4] ESP: Discard dummy packets introduced in rfc4303 + * [IPv6] ESP: Discard dummy packets introduced in rfc4303 + * [UM]: Fix use of skb after netif_rx + * [XTENSA]: Fix use of skb after netif_rx + * [S390]: Fix use of skb after netif_rx + * [BNX2]: Add PHY_DIS_EARLY_DAC workaround. + * [BNX2]: Fix RX packet rot. + * [BNX2]: Update version to 1.6.9. + * [NET]: Fix wrong comments for unregister_net* + * [VLAN]: Fix potential race in vlan_cleanup_module vs + vlan_ioctl_handler. + * [IPSEC]: Fix potential dst leak in xfrm_lookup + * V4L/DVB (6485): ivtv: fix compile warning + * V4L/DVB (6540): em28xx: fix failing autodetection after the reboot + * V4L/DVB (6542): Fix S-video mode on tvp5150 + * V4L/DVB (6579): Fix bug #8824: Correct support for Diseqc on tda10086 + * V4L/DVB (6581): Fix: avoids negative vma usage count + * V4L/DVB (6601): V4L: videobuf-core locking fixes and comments + * V4L/DVB (6602): V4L: Convert videobuf drivers to videobuf_stop + * V4L/DVB (6615): V4L: Fix VIDIOCGMBUF locking in saa7146 + * V4L/DVB (6629): zl10353: fix default adc_clock and TRL nominal rate + calculation + * V4L/DVB (6666): saa7134-alsa: fix period handling + * V4L/DVB (6684): Complement va_start() with va_end() + style fixes + * V4L/DVB (6686): saa7134: fix composite over s-video input on the Tevion + MD 9717 + * V4L/DVB (6690): saa7134: fix ignored interrupts + * V4L/DVB (6751): V4L: Memory leak! Fix count in videobuf-vmalloc mmap + * V4L/DVB (6746): saa7134-dvb: fix tuning for WinTV HVR-1110 + * V4L/DVB (6750): Fix in-kernel compilation for cxusb + * V4L/DVB (6733): DVB: Compile 3000MC-specific DIB code only for + CONFIG_DVB_DIB3000MC + * V4L/DVB (6794): Fix compilation when dib3000mc is compiled as a module + * NFS: Fix NFS mountpoint crossing... + * V4L/DVB (6796): ivtv/ section fix + * V4L/DVB (6797): bt8xx/ section fixes + * NFSv2/v3: Fix a memory leak when using -onolock + * V4L/DVB (6609): Re-adds lock safe videobuf_read_start + * i2c: Delete an outdated piece of documentation + * i2c-gpio: Initialize adapter class + * i2c: Add missing spaces in split log messages + * i2c/isp1301_omap: Build fix + * [SERIAL] sparc: Infrastructure to fix section mismatch bugs. + * NFS: Fix an Oops in NFS unmount + * sdhci: describe quirks + * sdhci: don't warn about sdhci 2.0 controllers + * sdhci: use PIO when DMA can't satisfy the request + * sdhci: support JMicron JMB38x chips + * mmc: remove unused 'mode' from the mmc_host structure + * IB/ehca: Return correct number of SGEs for SRQ + * IB/ehca: Serialize HCA-related hCalls if necessary + * ide-scsi: add ide_scsi_hex_dump() helper + * ide: add missing checks for control register existence + * ide: deprecate CONFIG_BLK_DEV_OFFBOARD + * ide: fix ide_scan_pcibus() error message + * ide: coding style fixes for drivers/ide/setup-pci.c + * ide: add /sys/bus/ide/devices/*/{model,firmware,serial} sysfs entries + * ide: DMA reporting and validity checking fixes (take 3) + * ide-cd: remove dead post_transform_command() + * pdc202xx_new: fix Promise TX4 support + * hpt366: fix HPT37x PIO mode timings (take 2) + * ide: remove dead code from __ide_dma_test_irq() + * ide: remove stale changelog from ide-disk.c + * ide: remove stale changelog from ide-probe.c + * ide: fix ->io_32bit race in set_io_32bit() + * MAINTAINERS: update the NFS CLIENT entry + * V4L/DVB (6803): buf-core.c locking fixes + * [SPARC64]: Fix two kernel linear mapping setup bugs. + * IB/ehca: Fix lock flag variable location, bump version number + * kbuild: re-enable Makefile generation in a new O=... directory + * V4L/DVB (6798): saa7134: enable LNA in analog mode for Hauppauge WinTV + HVR-1110 + * V4L/DVB (6814): Makefile: always enter video/ + * V4L/DVB (6819): i2c: fix drivers/media/video/bt866.c + * V4L/DVB (6820): s5h1409: QAM SNR related fixes + * ACPI: video_device_list corruption + * ACPI: fix modpost warnings + * ACPI: thinkpad-acpi: fix lenovo keymap for brightness + * Pull thinkpad-2.6.24 into release branch + * Pull battery-2.6.24 into release branch + * [POWERPC] Fix typo #ifdef -> #ifndef + * [POWERPC] Kill non-existent symbols from ksyms and commproc.h + * [POWRPC] CPM2: Eliminate section mismatch warning in cpm2_reset(). + * [POWERPC] 82xx: mpc8272ads, pq2fads: Update defconfig with + CONFIG_FS_ENET_MDIO_FCC + * [POWERPC] iSeries: don't printk with HV spinlock held + * [POWERPC] Fix rounding bug in emulation for double float operating + * [POWERPC] Make PS3_SYS_MANAGER default y, not m + * [MIPS] time: Set up Cobalt's mips_hpt_frequency + * [MIPS] Alchemy: fix PCI resource conflict + * [MIPS] Alchemy: fix off by two error in __fixup_bigphys_addr() + * [MIPS] Atlas, Malta: Don't free firmware memory on free_initmem. + * [MIPS] PCI: Make pcibios_fixup_device_resources ignore legacy + resources. + * [MIPS] time: Delete weak definition of plat_time_init() due to gcc bug. + * [MIPS] Ensure that ST0_FR is never set on a 32 bit kernel + * [SPARC32]: Silence sparc32 warnings on missing syscalls. + * Pull hotplug into release branch + * ACPI: SBS: Reset alarm bit + * ACPI: SBS: Ignore alarms coming from unknown devices + * ACPI: SBS: Return rate in mW if capacity in mWh + * Pull bugzilla-9362 into release branch + * sky2: RX lockup fix + * sundance fixes + * starfire VLAN fix + * e100: free IRQ to remove warningwhenrebooting + * hamachi endianness fixes + * drivers/net/sis190.c section fix + * drivers/net/s2io.c section fixes + * ucc_geth: minor whitespace fix + * net: smc911x: shut up compiler warnings + * Net: ibm_newemac, remove SPIN_LOCK_UNLOCKED + * ixgb: make sure jumbos stay enabled after reset + * [NETFILTER]: ctnetlink: set expected bit for related conntracks + * [NETFILTER]: ip_tables: fix compat copy race + * [XFRM]: Display the audited SPI value in host byte order. + * [NETFILTER]: xt_hashlimit should use time_after_eq() + * [TIPC]: Fix semaphore handling. + * [SYNCPPP]: Endianness and 64bit fixes. + * [NETFILTER]: bridge: fix missing link layer headers on outgoing routed + packets + * [ATM]: Fix compiler warning noise with FORE200E driver + * [IPV4]: Updates to nfsroot documentation + * [BRIDGE]: Assign random address. + * [IPV6]: Fix the return value of ipv6_getsockopt + * [IPV4]: Make tcp_input_metrics() get minimum RTO via tcp_rto_min() + * [AX25]: Locking dependencies fix in ax25_disconnect(). + * [SCTP]: Flush fragment queue when exiting partial delivery. + * [IRDA]: Race between open and disconnect in irda-usb. + * [IRDA]: mcs7780 needs to free allocated rx buffer. + * [IRDA]: irlmp_unregister_link() needs to free lsaps. + * [IRDA]: stir4200 fixes. + * [IRDA]: irda parameters warning fixes. + * [S390] pud_present/pmd_present bug. + * [ARM] 4710/1: Fix coprocessor 14 usage for debug messages via ICEDCC + * [ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume + * kobject: fix the documentation of how kobject_set_name works + * tipar: remove obsolete module + * HOWTO: Change man-page maintainer address for Japanese HOWTO + * Add Documentation for FAIR_USER_SCHED sysfs files + * HOWTO: change addresses of maintainer and lxr url for Korean HOWTO + * add stable_api_nonsense.txt in korean + * HOWTO: update misspelling and word incorrected + * PCI: Restore PCI expansion ROM P2P prefetch window creation + * USB: sierra: fix product id + * usb-storage: Fix devices that cannot handle 32k transfers + * USB: cp2101: new device id + * USB: option: Bind to the correct interface of the Huawei E220 + * usb.h: fix kernel-doc warning + * USB: fix locking loop by avoiding flush_scheduled_work + * USB: use IRQF_DISABLED for HCD interrupt handlers + * USB: at91_udc: correct hanging while disconnecting usb cable + * usb: Remove broken optimisation in OHCI IRQ handler + * USB: revert portions of "UNUSUAL_DEV: Sync up some reported devices + from Ubuntu" + * ocfs2: fix exit-while-locked bug in ocfs2_queue_orphans() + * ocfs2: Don't panic when truncating an empty extent + * ocfs2: Allow for debugging of transaction extends + * ocfs2: Re-journal buffers after transaction extend + * pcnet_cs: add new id + * ucc_geth: really fix section mismatch + * sis190 endianness + * libertas: add Dan Williams as maintainer + * zd1211rw: Fix alignment problems + * wireless/ipw2200.c: add __dev{init,exit} annotations + * ieee80211_rate: missed unlock + * iwlwifi3945/4965: fix rate control algo reference leak + * libertas: select WIRELESS_EXT + * bcm43xx_debugfs sscanf fix + * b43: Fix rfkill radio LED + * iwlwifi: fix rf_kill state inconsistent during suspend and resume + * sata_sil: fix spurious IRQ handling + * libata: clear link->eh_info.serror from ata_std_postreset() + * libata: add ST3160023AS / 3.42 to NCQ blacklist + * sata_mv: improve warnings about Highpoint RocketRAID 23xx cards + * libata-acpi: adjust constness in ata_acpi_gtm/stm() parameters + * libata: update ata_*_printk() macros such that level can be a variable + * libata: add more opcodes to ata.h + * libata: ata_dev_disable() should be called from EH context + * libata-acpi: add new hooks ata_acpi_dissociate() and + ata_acpi_on_disable() + * libata-acpi: implement and use ata_acpi_init_gtm() + * libata-acpi: implement dev->gtf_cache and evaluate _GTF right after + _STM during resume + * libata-acpi: improve ACPI disabling + * libata-acpi: improve _GTF execution error handling and reporting + * libata-acpi: implement _GTF command filtering + * libata: update atapi_eh_request_sense() such that lbam/lbah contains + buffer size + * libata: fix ATAPI draining + * fix headers_install + * revert "Hibernation: Use temporary page tables for kernel text mapping + on x86_64" + * uml: stop gdb from deleting breakpoints when running UML + * alpha: strncpy/strncat fixes + * rtc-at32ap700x: fix irq init oops + * parport: "dev->timeslice" is an unsigned long, not an int + * ecryptfs: initialize new auth_tokens before teardown + * Fix lguest documentation + * sparsemem: make SPARSEMEM_VMEMMAP selectable + * fs/Kconfig: grammar fix + * ext3, ext4: avoid divide by zero + * alpha: build fixes + * cpufreq: fix missing unlocks in cpufreq_add_dev error paths. + * mm/sparse.c: check the return value of sparse_index_alloc() + * mm/sparse.c: improve the error handling for sparse_add_one_section() + * pktcdvd: add kobject_put when kobject register fails + * drivers/macintosh/via-pmu.c: Added a missing iounmap + * drivers/cpufreq/cpufreq_stats.c section fix + * apm_event{,info}_t are userspace types + * mm: fix page allocation for larger I/O segments + * ecryptfs: set s_blocksize from lower fs in sb + * I/OAT: fixups from code comments + * I/OAT: fix null device in call to dev_err() + * fix bloat-o-meter for ppc64 + * ecryptfs: fix fsx data corruption problems + * Documentation: update hugetlb information + * Fix compilation warning in dquot.c + * SLUB: remove useless masking of GFP_ZERO + * quicklist: Set tlb->need_flush if pages are remaining in quicklist 0 + * sysctl: fix ax25 checks + * [XFS] Don't wait for pending I/Os when purging blocks beyond eof. + * [XFS] Put the correct offset in dirent d_off + * block: use jiffies conversion functions in scsi_ioctl.c + * as-iosched: fix incorrect comments + * as-iosched: fix write batch start point + * block: let elv_register() return void + * Cleanup umem driver: fix most checkpatch warnings, conform to kernel + * sched: fix crash on ia64, introduce task_current() + * sched: mark rwsem functions as __sched for wchan/profiling + * sched: sysctl, proc_dointvec_minmax() expects int values for + * sched: touch softlockup watchdog after idling + * sched: do not hurt SCHED_BATCH on wakeup + * oprofile: op_model_athlon.c support for AMD family 10h barcelona + performance counters + * clockevents: fix reprogramming decision in oneshot broadcast + * genirq: add unlocked version of set_irq_handler() + * timer: kernel/timer.c section fixes + * x86: jprobe bugfix + * x86: kprobes bugfix + * x86: also define AT_VECTOR_SIZE_ARCH + * genirq: revert lazy irq disable for simple irqs + * x86: fix "Kernel panic - not syncing: IO-APIC + timer doesn't work!" + * [SCSI] sym53c8xx: fix free_irq() regression + * [SCSI] dpt_i2o: driver is only 32 bit so don't set 64 bit DMA mask + * [SCSI] sym53c8xx: fix "irq X: nobody cared" regression + * [SCSI] initio: fix conflict when loading driver + * [SCSI] st: fix kernel BUG at include/linux/scatterlist.h:59! + * [SCSI] initio: bugfix for accessors patch + * IA64: Slim down __clear_bit_unlock + * [IA64] signal: remove redundant code in setup_sigcontext() + * [IA64] ia32 nopage + * [IA64] Avoid unnecessary TLB flushes when allocating memory + * [IA64] Two trivial spelling fixes + * [IA64] print kernel release in OOPS to make kerneloops.org happy + * [IA64] set_thread_area fails in IA32 chroot + * [IA64] Remove compiler warinings about uninitialized variable in + irq_ia64.c + * [IA64] Remove assembler warnings on head.S + * [IA64] Fix Altix BTE error return status + * [IA64] Guard elfcorehdr_addr with #if CONFIG_PROC_FS + * [IA64] make flush_tlb_kernel_range() an inline function + * [IA64] Adjust CMCI mask on CPU hotplug + * Do dirty page accounting when removing a page from the page cache + * x86 apic_32.c section fix + * x86 smpboot_32.c section fixes + * x86_32: select_idle_routine() must be __cpuinit + * x86_32: disable_pse must be __cpuinitdata + * x86: fix show cpuinfo cpu number always zero + * ps3fb: Update for firmware 2.10 + * ps3fb: Fix ps3fb free_irq() dev_id + * pata_hpt37x: Fix HPT374 detection + * mac80211: Drop out of associated state if link is lost + * mac80211: fix header ops + * NET: mac80211: fix inappropriate memory freeing + * [TG3]: Endianness annotations. + * [TG3]: Endianness bugfix. + * rtl8187: Add USB ID for Sitecom WL-168 v1 001 + * p54: add Kconfig description + * iwlwifi: fix possible priv->mutex deadlock during suspend + * ipw2200: prevent alloc of unspecified size on stack + * [IPV4] ARP: Remove not used code + * [IPSEC]: Avoid undefined shift operation when testing algorithm ID + * [XFRM]: Audit function arguments misordered + * [IPV4] ip_gre: set mac_header correctly in receive path + * [NET]: Correct two mistaken skb_reset_mac_header() conversions. + * [SPARC64]: Fix OOPS in dma_sync_*_for_device() + * sched: rt: account the cpu time during the tick + * debug: add end-of-oops marker + * mm: fix exit_mmap BUG() on a.out binary exit + * dm: table detect io beyond device + * dm mpath: hp requires scsi + * dm crypt: fix write endio + * dm: trigger change uevent on rename + * dm: merge max_hw_sector + * dm crypt: use bio_add_page + * [SPARC64]: Spelling fixes + * [SPARC32]: Spelling fixes + * [NET] include/net/: Spelling fixes + * [DCCP]: Spelling fixes + * [IRDA]: Spelling fixes + * [IPV6]: Spelling fixes + * [NET] net/core/: Spelling fixes + * [PKT_SCHED]: Spelling fixes + * [NETLABEL]: Spelling fixes + * [SCTP]: Spelling fixes + * [NETFILTER]: Spelling fixes + * [NETFILTER] ipv4: Spelling fixes + * [ATM]: Spelling fixes + * [NET]: Fix function put_cmsg() which may cause usr application memory + overflow + * x86: fix die() to not be preemptible + * x86: intel_cacheinfo.c: cpu cache info entry for Intel Tolapai + * [XFS] Fix mknod regression + * [XFS] Initialise current offset in xfs_file_readdir correctly + * Linux 2.6.24-rc6 + * [IPV4]: OOPS with NETLINK_FIB_LOOKUP netlink socket + * SLUB: Improve hackbench speed + * typhoon: endianness bug in tx/rx byte counters + * typhoon: missing le32_to_cpu() in get_drvinfo + * typhoon: set_settings broken on big-endian + * typhoon: missed rx overruns on big-endian + * typhoon: memory corruptor on big-endian if TSO is enabled + * typhoon: trivial endianness annotations + * cycx: annotations and fixes (.24 fodder?) + * asix fixes + * yellowfin: annotations and fixes (.24 fodder?) + * dl2k endianness fixes (.24 fodder?) + * r8169 endianness + * rrunner: use offsetof() instead of homegrown insanity + * 3c574 and 3c589 endianness fixes (.24?) + * fec_mpc52xx: write in C... + * 3c359 endianness annotations and fixes + * MACB: clear transmit buffers properly on transmit underrun + * UIO: Add a MAINTAINERS entry for Userspace I/O + * Modules: fix memory leak of module names + * USB: Unbreak fsl_usb2_udc + * USB: VID/PID update for sierra + * USB: New device ID for the CP2101 driver + * quicklists: do not release off node pages early + * ecryptfs: fix string overflow on long cipher names + * Fix computation of SKB size for quota messages + * Don't send quota messages repeatedly when hardlimit reached + * ecryptfs: fix unlocking in error paths + * ecryptfs: redo dget,mntget on dentry_open failure + * MAINTAINERS: mailing list archives are web links + * ps3: vuart: fix error path locking + * lib: proportion: fix underflow in prop_norm_percpu() + * pcmcia: remove pxa2xx_lubbock build warning + * kconfig: obey KCONFIG_ALLCONFIG choices with randconfig. + * tty: fix logic change introduced by wait_event_interruptible_timeout() + * uml: user of helper_wait() got missed when it got extra arguments + * V4L/DVB (6871): Kconfig: VIDEO_CX23885 must select DVB_LGDT330X + * V4L/DVB (6876): ivtv: mspx4xx needs a longer i2c udelay + * drivers/ide/: Spelling fixes + * ide-cd: fix SAMSUNG CD-ROM SCR-3231 quirk + * ide-cd: fix ACER/AOpen 24X CDROM speed reporting on big-endian machines + * ide-cd: use ide_cd_release() in ide_cd_probe() + * ide-cd: fix error messages in cdrom_{read,write}_check_ireason() + * ide-cd: add missing 'ireason' masking to cdrom_write_intr() + * ide-cd: fix error messages in cdrom_write_intr() + * ide-cd: add error message for DMA error to cdrom_read_intr() + * ide-cd: fix error message in cdrom_pc_intr() + * ide-cd: fix 'ireason' reporting in cdrom_pc_intr() + * MAINTAINERS: update ide-cd entry + * [SPARC64]: Implement pci_resource_to_user() + * mac80211: round station cleanup timer + * mac80211: warn when receiving frames with unaligned data + * [NETFILTER]: nf_conntrack_ipv4: fix module parameter compatibility + * [TUNTAP]: Fix wrong debug message. + * [NET] tc_nat: header install + * [VETH]: move veth.h to include/linux + * [IPV4]: Fix ip command line processing. + * Revert quicklist need->flush fix + * [CRYPTO] padlock: Fix spurious ECB page fault + * [POWERPC] Oprofile: Remove dependency on spufs module + * [POWERPC] PS3: Fix printing of os-area magic numbers + * [PCI] Do not enable CRS Software Visibility by default + * [IPV4] Fix ip=dhcp regression + * [SERIAL]: Fix section mismatches in Sun serial console drivers. + * [TCP]: use non-delayed ACK for congestion control RTT + * [BLUETOOTH]: put_device before device_del fix + + -- Tim Gardner Sat, 22 Dec 2007 15:16:11 -0700 + +linux (2.6.24-2.4) hardy; urgency=low + + [Alessio Igor Bogani] + + * rt: First import for Hardy + + [Amit Kucheria] + + * LPIA: Fix FTBFS for hda + * LPIA: Trim configs including disabling stock DRM + + [Tim Gardner] + + * SAUCE: Increase CONFIG_IDE_MAX_HWIFS to 8 (from 4) + - LP: #157909 + Then reverted since it causes an ABI bump. Will pick it up + again when next the ABI changes. + * Expose apm for applications. + + -- Tim Gardner Wed, 19 Dec 2007 13:17:31 -0700 + +linux (2.6.24-2.3) hardy; urgency=low + + [Amit Kucheria] + + * LPIA: Add thermal framework from Intel + * LPIA: Poulsbo-specific patches + * LPIA: Add thermal framework from Intel + + [Tim Gardner] + + * SAUCE: hdaps module does not load on Thinkpad T61P + - LP: #133636 + + [Upstream Kernel Changes] + + * Rebased against 2.6.24-rc5 + + -- Tim Gardner Wed, 12 Dec 2007 13:58:52 -0700 + +linux (2.6.24-1.2) hardy; urgency=low + + [Ben Collins] + + * cell: Remove cell custom flavour, merged upstream + * apparmor: Added module from SVN repo + * ubuntu: Update configs to enable apparmor + * ubuntu/configs: Disable vga type framebuffers on hppa32. Fixes FTBFS + + [Tim Gardner] + + * Add support for PPA builds. + + [Upstream Kernel Changes] + + * [SPARC64] Export symbols for sunvnet and sunvdc to be built modular + + -- Ben Collins Fri, 07 Dec 2007 15:18:32 -0500 + +linux (2.6.24-1.1) hardy; urgency=low + + [Ben Collins] + + * ubuntu: Disable custom binary flavours for now + * ubuntu: Remove cruft in headers-postinst + * ubuntu: Set skipabi/skipmodule to true if prev_revions == 0.0 + * ubuntu: Do not fail on missing module lists when skipmodule is set + * ubuntu: capability.ko is built-in now, no need to place in initrd. + * ubuntu: Change to "linux" instead of "linux-source-2.6.x" + * d-i: cdrom-modules disappeared, and sha256/aes modules renamed. + * ubuntu-build: Add asm_link= to arch rules, and use them + * config: Re-enable snd-hda-intel + + -- Ben Collins Wed, 28 Nov 2007 12:58:37 -0500 + +linux-source-2.6.22 (2.6.22-14.46) gutsy; urgency=low + + [Upstream Kernel Changes] + + * [SPARC64]: Fix bugs in SYSV IPC handling in 64-bit processes. + + -- Kyle McMartin Sun, 14 Oct 2007 20:30:09 +0000 + +linux-source-2.6.22 (2.6.22-14.45) gutsy; urgency=low + + [Upstream Kernel Changes] + + * [SPARC64]: Fix register usage in xor_raid_4(). + + -- Kyle McMartin Sun, 14 Oct 2007 12:34:44 -0400 + +linux-source-2.6.22 (2.6.22-14.44) gutsy; urgency=low + + [Kyle McMartin] + + * Revert "sparc wants ehci built in" + + [Upstream Kernel Changes] + + * Revert "[PATCH]: Gutsy OHCI hang workaround for Huron" + * [USB]: Serialize EHCI CF initialization. + + -- Kyle McMartin Sun, 14 Oct 2007 16:25:51 +0000 + +linux-source-2.6.22 (2.6.22-14.43) gutsy; urgency=low + + [Kyle McMartin] + + * sparc wants ehci built in + + -- Kyle McMartin Tue, 09 Oct 2007 20:07:58 +0000 + +linux-source-2.6.22 (2.6.22-14.42) gutsy; urgency=low + + [Kyle McMartin] + + * fix up module-check to bail early if asked to ignore modules + * disable kernel DRM on lpia (we provide one in lum) + - LP: #145168 + * add ignore for ia64 abi too + + [Upstream Kernel Changes] + + * [NIU]: Use netif_msg_*(). + * [NIU]: Use pr_info(). + * [NIU]: Remove redundant BUILD_BUG_ON() in __niu_wait_bits_clear(). + * [NIU]: Remove BUG_ON() NULL pointer checks. + * [NIU]: Use dev_err(). + * [NIU]: Fix x86_64 build failure. + * [NIU]: Use linux/io.h instead of asm/io.h + * [NIU]: Fix some checkpatch caught coding style issues. + * [NIU]: Fix shadowed local variables. + * [NIU]: Fix locking errors in link_status_10g(). + * [NIU]: Document a few magic constants using comments. + * [NIU]: MII phy handling fixes. + * [NIU]: Make sure link_up status is set to something in + link_status_{1,10}g(). + * [PATCH]: Gutsy OHCI hang workaround for Huron + + -- Kyle McMartin Tue, 09 Oct 2007 17:25:06 +0000 + +linux-source-2.6.22 (2.6.22-14.41) gutsy; urgency=low + + [Ben Collins] + + * ubuntu/d-i: Add niu to nic-modules + + [Kyle McMartin] + + * vesafb is not for ia64 + * remove CONFIG_NIU from places it shouldn't be + * fix orinoco_cs oops + - LP: #149997 + + [Upstream Kernel Changes] + + * [SPARC64]: Allow userspace to get at the machine description. + * [SPARC64]: Niagara-2 optimized copies. + * [SPARC64]: Do not touch %tick_cmpr on sun4v cpus. + * [SPARC64]: SMP trampoline needs to avoid %tick_cmpr on sun4v too. + * [SPARC64]: Create a HWCAP_SPARC_N2 and report it to userspace on + Niagara-2. + * [MATH-EMU]: Fix underflow exception reporting. + * [SPARC64]: Need to clobber global reg vars in switch_to(). + * [MATH]: Fix typo in FP_TRAPPING_EXCEPTIONS default setting. + * [SUNVDC]: Use slice 0xff on VD_DISK_TYPE_DISK. + * [SPARC64]: Fix type and constant sizes wrt. sun4u IMAP/ICLR handling. + * [SPARC64]: Enable MSI on sun4u Fire PCI-E controllers. + * [SPARC64]: Fix several bugs in MSI handling. + * [SPARC64]: Fix booting on V100 systems. + * [SPARC64]: Fix lockdep, particularly on SMP. + * [SPARC64]: Warn user if cpu is ignored. + * [SUNSAB]: Fix several bugs. + * [SUNSAB]: Fix broken SYSRQ. + * [SPARC64]: Fix missing load-twin usage in Niagara-1 memcpy. + * [SPARC64]: Don't use in/local regs for ldx/stx data in N1 memcpy. + * [SPARC64]: Fix domain-services port probing. + * [SPARC64]: VIO device addition log message level is too high. + * [SPARC64]: check fork_idle() error + * [SPARC64]: Fix 'niu' complex IRQ probing. + * [NIU]: Add Sun Neptune ethernet driver. + + -- Kyle McMartin Tue, 09 Oct 2007 00:38:16 +0000 + +linux-source-2.6.22 (2.6.22-13.40) gutsy; urgency=low + + [Amit Kucheria] + + * Enable CONFIG_VM86 for LPIA + - LP: #146311 + * Update configuration files + * Disable MSI by default + * Add mmconf documentation + * Update configuration files + + [Bartlomiej Zolnierkiewicz] + + * ide-disk: workaround for buggy HPA support on ST340823A (take 3) + - LP: #26119 + + [Ben Collins] + + * ubuntu/cell: Fixup ps3 related modules for d-i, enable RTAS console + * ubuntu/cell: Enable CELLEB and related modules (pata_scc) + * ubuntu/cell: Move ps3rom to storage-core. Also use spidernet, not + spider_net. + * ubuntu/cell: Set PS3_MANAGER=y + * ubuntu: Set NR_CPUS=256 for sparc64-smp + + [Chuck Short] + + * [USB] USB] Support for MediaTek MT6227 in cdc-acm. + - LP: #134123 + * [XEN] Fix xen vif create with more than 14 guests. + - LP: #14486 + + [Jorge Juan Chico] + + * ide: ST320413A has the same problem as ST340823A + - LP: #26119 + + [Kyle McMartin] + + * fix -rt build + * fix ia32entry-xen.S for CVE-2007-4573 + * fix build when CONFIG_PCI_MSI is not set + + [Matthew Garrett] + + * hostap: send events on data interface as well as master interface + - LP: #57146 + * A malformed _GTF object should not prevent ATA device recovery + - LP: #139079 + * hostap: send events on data interface as well as master interface + - LP: #57146 + * A malformed _GTF object should not prevent ATA device recovery + - LP: #139079 + * Don't lose appletouch button release events + * Fix build with appletouch change + * Disable Thinkpad backlight support on machines with ACPI video + - LP: #148055 + * Don't attempt to register a callback if there is no CMOS object + - LP: #145857 + * Update ACPI bay hotswap code to support locking + - LP: #148219 + * Update ACPI bay hotswap code to support locking + - LP: #148219 + * Don't attempt to register a callback if there is no CMOS object + - LP: #145857 + * Disable Thinkpad backlight support on machines with ACPI video + - LP: #148055 + + [Steffen Klassert] + + * 3c59x: fix duplex configuration + - LP: #94186 + + [Thomas Gleixner] + + * clockevents: remove the suspend/resume workaround^Wthinko + + [Tim Gardner] + + * orinoco_cs.ko missing + - LP: #125832 + * Marvell Technology ethernet card not recognized and not operational + - LP: #135316 + * Marvell Technology ethernet card not recognized and not operational + - LP: #135316 + * acpi_scan_rsdp() breaks some PCs by not honouring ACPI specification + - LP: #144336 + * VIA southbridge Intel id missing + - LP: #128289 + * Add T-Sinus 111card to hostap_cs driver to be able to upload firmware + - LP: #132466 + * RTL8111 PCI Express Gigabit driver r8169 big files produce slow file + transfer + - LP: #114171 + * Guest OS does not recognize a lun with non zero target id on Vmware ESX + Server + - LP: #140761 + * Modualrize vesafb + - LP: #139505 + * Nikon cameras need support in unusual_devs.h + - LP: #134477 + * agp for i830m broken in gutsy + - LP: #139767 + * hdaps: Added support for Thinkpad T61 + - LP: #147383 + * xen: Update config for i386 + - LP: #139047 + * xen: resync for amd64 + - LP: #139047 + * ide-disk: workaround for buggy HPA support on ST340823A (take 4) + - LP: #26119 + + [Upstream Kernel Changes] + + * Convert snd-page-alloc proc file to use seq_file (CVE-2007-4571) + * Linux 2.6.22.8 + * ACPI: disable lower idle C-states across suspend/resume + * V4L: ivtv: fix VIDIOC_S_FBUF: new OSD values were never set + * DVB: get_dvb_firmware: update script for new location of sp8870 + firmware + * DVB: get_dvb_firmware: update script for new location of tda10046 + firmware + * DVB: b2c2-flexcop: fix Airstar HD5000 tuning regression + * setpgid(child) fails if the child was forked by sub-thread + * sigqueue_free: fix the race with collect_signal() + * kconfig: oldconfig shall not set symbols if it does not need to + * MTD: Makefile fix for mtdsuper + * USB: fix linked list insertion bugfix for usb core + * ACPI: Validate XSDT, use RSDT if XSDT fails + * POWERPC: Flush registers to proper task context + * 3w-9xxx: Fix dma mask setting + * MTD: Initialise s_flags in get_sb_mtd_aux() + * JFFS2: fix write deadlock regression + * V4L: cx88: Avoid a NULL pointer dereference during mpeg_open() + * hwmon: End of I/O region off-by-one + * Fix debug regression in video/pwc + * splice: fix direct splice error handling + * rpc: fix garbage in printk in svc_tcp_accept() + * disable sys_timerfd() + * afs: mntput called before dput + * Fix DAC960 driver on machines which don't support 64-bit DMA + * Fix "Fix DAC960 driver on machines which don't support 64-bit DMA" + * firewire: fw-ohci: ignore failure of pci_set_power_state (fix suspend + regression) + * futex_compat: fix list traversal bugs + * Leases can be hidden by flocks + * ext34: ensure do_split leaves enough free space in both blocks + * nfs: fix oops re sysctls and V4 support + * dir_index: error out instead of BUG on corrupt dx dirs + * ieee1394: ohci1394: fix initialization if built non-modular + * Correctly close old nfsd/lockd sockets. + * Fix race with shared tag queue maps + * crypto: blkcipher_get_spot() handling of buffer at end of page + * fix realtek phy id in forcedeth + * Fix decnet device address listing. + * Fix device address listing for ipv4. + * Fix inet_diag OOPS. + * Fix IPV6 append OOPS. + * Fix IPSEC AH4 options handling + * Fix ipv6 double-sock-release with MSG_CONFIRM + * Fix IPV6 DAD handling + * Fix ipv6 source address handling. + * Fix oops in vlan and bridging code + * Fix tc_ematch kbuild + * Handle snd_una in tcp_cwnd_down() + * Fix TCP DSACK cwnd handling + * Fix datagram recvmsg NULL iov handling regression. + * Fix pktgen src_mac handling. + * Fix sparc64 v100 platform booting. + * bcm43xx: Fix cancellation of work queue crashes + * Linux 2.6.22.9 + * usb: serial/pl2303: support for BenQ Siemens Mobile Phone EF81 + * pata_it821x: fix lost interrupt with atapi devices + * i915: make vbl interrupts work properly on i965g/gm hw. + + -- Kyle McMartin Thu, 04 Oct 2007 13:57:53 +0000 + +linux-source-2.6.22 (2.6.22-12.39) gutsy; urgency=low + + [Ben Collins] + + * ubuntu: Re-order deps so that binary-custom is done before + binary-udebs. Fixes ppc build + + [Upstream Kernel Changes] + + * x86_64: Zero extend all registers after ptrace in 32bit entry path. + * Linux 2.6.22.7 + + -- Ben Collins Sun, 23 Sep 2007 11:05:32 -0400 + +linux-source-2.6.22 (2.6.22-12.38) gutsy; urgency=low + + [Kyle McMartin] + + * add -12 abi files + * update getabis for new flavours + + -- Kyle McMartin Fri, 21 Sep 2007 13:35:49 -0400 + +linux-source-2.6.22 (2.6.22-12.37) gutsy; urgency=low + + [Kyle McMartin] + + * enable d-i for cell flavour + * ignore ABI check on all hppa flavours + + -- Kyle McMartin Fri, 21 Sep 2007 11:28:34 -0400 + +linux-source-2.6.22 (2.6.22-12.36) gutsy; urgency=low + + [Ben Collins] + + * ABI bump due to LED support being enabled. + + [Kyle McMartin] + + * fix memory leak in psparse.c + - Bug introduced in previous commit to acpi + + [Upstream Kernel Changes] + + * Ubuntu: Allocate acpi_devices structure rather than leaving it on the + stack. + * ipw2100: Fix `iwpriv set_power` error + * Fix ipw2200 set wrong power parameter causing firmware error + * [SCSI] Fix async scanning double-add problems + - LP: #110997 + + -- Ben Collins Thu, 20 Sep 2007 11:34:52 -0400 + +linux-source-2.6.22 (2.6.22-11.34) gutsy; urgency=low + + [Alan Stern] + + * USB: disable autosuspend by default for non-hubs + - LP: #85488 + + [Ben Collins] + + * ubuntu: Enable LEDS_TRIGGERS and related options + - Needed for iwlwifi + * ubuntu: Add real ABI files for virtual flavour + * ubuntu: Re-enable missing CONFIG_SERPENT for hppa64 + - Noticed by Lamont + * ubuntu: Add linux-headers postinst to handle hooks + - LP: #125816 + * ubuntu: Add support for /etc/kernel/headers_postinst.d/ to + headers-postinst + - LP: #120049 + * cell: Add binary-custom flavour "cell" to support ps3 + + [Mattia Dongili] + + * sony-laptop: restore the last user requested brightness level on + resume. + - LP: #117331 + + [Tejun Heo] + + * ata_piix: fix suspend/resume for some TOSHIBA laptops + - LP: #139045 + * PCI: export __pci_reenable_device() + - needed for ata_piix change + + [Tim Gardner] + + * Enable Sierra Wireless MC8775 0x6813 + - LP: #131167 + + [Zhang Rui] + + * ACPI: work around duplicate name "VID" problem on T61 + - Noted by mjg59 + + -- Ben Collins Sun, 16 Sep 2007 22:31:47 -0400 + +linux-source-2.6.22 (2.6.22-11.33) gutsy; urgency=low + + [Alessio Igor Bogani] + + * rt: Update to rt9 + * rt: Update configuration files + + [Ben Collins] + + * ubuntu: Enable A100 driver + - LP: #138632 + * libata: Default to hpa being overridden + + [Chuck Short] + + * [HDAPS] Add support for Thinkpad R61. + * [LIBATA] Add more hard drives to blacklist. + * [USB] Added support for Sprint Pantech PX-500. + * [XEN] No really enable amd64. + * [XEN] Fix amd64 yet again. + + [Matthew Garrett] + + * alter default behaviour of ACPI video module + * Add infrastructure for notification on ACPI method execution + * Get thinkpad_acpi to send notifications on CMOS updates + * Add support to libata-acpi for acpi-based bay hotplug + + [Phillip Lougher] + + * Add kernel flavour optimised for virtualised environments + * Change abi-check script to check for $flavour.ignore in previous abi + * Disable abi and module check for virtual flavour + + [Richard Hughes] + + * Refresh laptop lid status on resume + + [Upstream Kernel Changes] + + * [pata_marvell]: Add more identifiers + + -- Ben Collins Sun, 16 Sep 2007 22:13:08 -0400 + +linux-source-2.6.22 (2.6.22-11.32) gutsy; urgency=low + + [Amit Kucheria] + + * Build system: Allow custom builds to comprise multiple patches + * Move UME to a Custom build and add first setup of thermal framework + + [Ben Collins] + + * ubuntu: Enable CONFIG_BLK_DEV_IO_TRACE + * bcm203x: Fix firmware loading + - LP: #85247 + * ubuntu: mtd changes caused module renaming. Ignore + * rt: Do not patch top level Makefile for SUBLEVEL. Will always end up + breaking + + [Chuck Short] + + * [USB] Unusual Device support for Gold MP3 Player Energy + - LP: #125250 + * [SIERRA] Adds support for Onda H600 ZTE MF330 + - LP: #129433 + * [HDAPS] Add Thinkpad T61P to whitelist. + - LP: #133636 + * [USB] Add support for Toshiba (Novatel Wireless) HSDPA for M400. + - LP: #133650 + + [Kyle McMartin] + + * apparmor 10.3 hooks + * unionfs 2.1 hooks + * nuke UNION_FS stuff from fs/{Kconfig,Makefile} + + [Tim Gardner] + + * Paravirt-ops I/O hypercalls + * Fix lazy vmalloc bug for Gutsy + * bluetooth headset patch + - LP: #130870 + * Add the PCI ID of this ICH4 in list of laptops that use short cables. + * v2.6.22.5 merge + * Update Xen config options. + - LP: #132726 + * Remove mtd modules from ABI + * Support parallel= in DEB_BUILD_OPTIONS + - LP: #136426 + + [Upstream Kernel Changes] + + * hwmon: fix w83781d temp sensor type setting + * hwmon: (smsc47m1) restore missing name attribute + * sky2: restore workarounds for lost interrupts + * sky2: carrier management + * sky2: check for more work before leaving NAPI + * sky2: check drop truncated packets + * revert "x86, serial: convert legacy COM ports to platform devices" + * ACPICA: Fixed possible corruption of global GPE list + * ACPICA: Clear reserved fields for incoming ACPI 1.0 FADTs + * AVR32: Fix atomic_add_unless() and atomic_sub_unless() + * r8169: avoid needless NAPI poll scheduling + * forcedeth: fix random hang in forcedeth driver when using netconsole + * libata: add ATI SB700 device IDs to AHCI driver + * Hibernation: do not try to mark invalid PFNs as nosave + * i386: allow debuggers to access the vsyscall page with compat vDSO + * x86_64: Check for .cfi_rel_offset in CFI probe + * x86_64: Change PMDS invocation to single macro + * i386: Handle P6s without performance counters in nmi watchdog + * i386: Fix double fault handler + * JFFS2 locking regression fix. + * [Input]: appletouch - improve powersaving for Geyser3 devices + * [Input]: add driver for Fujitsu serial touchscreens + * [sdhci]: add support to ENE-CB714 + * v2.6.22.5 + * [MTD] Makefile fix for mtdsuper + * ocfs2: Fix bad source start calculation during kernel writes + * NET: Share correct feature code between bridging and bonding + * sky2: don't clear phy power bits + * uml: fix previous request size limit fix + * i386: fix lazy mode vmalloc synchronization for paravirt + * signalfd: fix interaction with posix-timers + * signalfd: make it group-wide, fix posix-timers scheduling + * DCCP: Fix DCCP GFP_KERNEL allocation in atomic context + * IPV6: Fix kernel panic while send SCTP data with IP fragments + * IPv6: Invalid semicolon after if statement + * Fix soft-fp underflow handling. + * Netfilter: Missing Kbuild entry for netfilter + * SNAP: Fix SNAP protocol header accesses. + * NET: Fix missing rcu unlock in __sock_create() + * SPARC64: Fix sparc64 task stack traces. + * SPARC64: Fix sparc64 PCI config accesses on sun4u + * TCP: Do not autobind ports for TCP sockets + * TCP: Fix TCP rate-halving on bidirectional flows. + * TCP: Fix TCP handling of SACK in bidirectional flows. + * PPP: Fix PPP buffer sizing. + * PCI: lets kill the 'PCI hidden behind bridge' message + * PCI: disable MSI on RS690 + * PCI: disable MSI on RD580 + * PCI: disable MSI on RX790 + * USB: allow retry on descriptor fetch errors + * USB: fix DoS in pwc USB video driver + * usb: add PRODUCT, TYPE to usb-interface events + * Linux 2.6.22.6 + * V4L/DVB (6042): b2c2-flexcop: fix Airstar HD5000 tuning regression + * V4L/DVB (5967): ivtv: fix VIDIOC_S_FBUF:new OSD values where never set + * Re-add _GTM and _STM support + + -- Ben Collins Fri, 31 Aug 2007 16:26:56 -0400 + +linux-source-2.6.22 (2.6.22-10.30) gutsy; urgency=low + + * URGENT upload to fix FTBFS with xen-{i386,amd64} configs, + lpia d-i ftbfs, xen ftbfs. + * URGENT fix module-check to actually ignore things + * URGENT ignore ume modules + + [Alek Du] + + * Add Intel Poulsbo chipset Libata support + + [Amit Kucheria] + + * Update configuration files + * Enable stylus on Lenovo X60/X61 thinkpads + + [Ben Collins] + + * ubuntu: Disable snd-hda-intel, in favor of lum updated version + + [Kyle McMartin] + + * apparmor 10.3 hooks + * add lpia d-i udeb generation + * fix bits of rt/diff for -rt8 + * fix rt/diff for 2.6.22.3 changes + * fix up rt/diff for stable 2.6.22.4 + + [LaMont Jones] + + * Update configuration files + + [Phillip Lougher] + + * WriteSupportForNTFS: make fuse module available to d-i + + [Tim Gardner] + + * Gutsy Tribe 3 CD don't load on Dell Inspiron 1501 + - LP: #121111 + * Update configuration files + * Update configuration files + * Update configuration files + + [Upstream Kernel Changes] + + * [SPARC64]: Fix handling of multiple vdc-port nodes. + * [SPARC64]: Tweak assertions in sun4v_build_virq(). + * [SPARC64]: Fix log message type in vio_create_one(). + * [SPARC64]: Fix two year old bug in early bootup asm. + * [SPARC64]: Improve VIO device naming further. + * [SPARC64]: Handle multiple domain-services-port nodes properly. + * [SPARC64]: Add proper multicast support to VNET driver. + * [SPARC64]: Do not flood log with failed DS messages. + * [SPARC64]: Use KERN_ERR in IRQ manipulation error printks. + * [SPARC64]: Fix virq decomposition. + * [SPARC]: Fix serial console device detection. + * [SPARC64]: fix section mismatch warning in pci_sunv4 + * [SPARC64]: fix section mismatch warning in mdesc.c + * [SPARC64] viohs: extern on function definition + * [SPARC64]: Fix sun4u PCI config space accesses on sun4u. + * [SPARC64]: Fix show_stack() when stack argument is NULL. + * [SUNLANCE]: Fix sparc32 crashes by using of_*() interfaces. + * [SPARC]: Centralize find_in_proplist() instead of duplicating N times. + * [SPARC64]: Fix hard-coding of cpu type output in /proc/cpuinfo on + sun4v. + * [SPARC64]: Do not assume sun4v chips have load-twin/store-init support. + * [SPARC64]: Fix memory leak when cpu hotplugging. + * USB: cdc-acm: fix sysfs attribute registration bug + * TCP FRTO retransmit bug fix + * Fix TC deadlock. + * Fix IPCOMP crashes. + * Fix console write locking in sparc drivers. + * Add a PCI ID for santa rosa's PATA controller. + * Missing header include in ipt_iprange.h + * SCTP scope_id handling fix + * Fix rfkill IRQ flags. + * gen estimator timer unload race + * gen estimator deadlock fix + * Fix error queue socket lookup in ipv6 + * Fix ipv6 link down handling. + * Netpoll leak + * Sparc64 bootup assembler bug + * Fix ipv6 tunnel endianness bug. + * Fix sparc32 memset() + * Fix sparc32 udelay() rounding errors. + * Fix TCP IPV6 MD5 bug. + * KVM: SVM: Reliably detect if SVM was disabled by BIOS + * USB: fix warning caused by autosuspend counter going negative + * usb-serial: Fix edgeport regression on non-EPiC devices + * Fix reported task file values in sense data + * aacraid: fix security hole + * firewire: fw-sbp2: set correct maximum payload (fixes CardBus adapters) + * make timerfd return a u64 and fix the __put_user + * V4L: Add check for valid control ID to v4l2_ctrl_next + * V4L: ivtv: fix broken VBI output support + * V4L: ivtv: fix DMA timeout when capturing VBI + another stream + * V4L: ivtv: Add locking to ensure stream setup is atomic + * V4L: wm8775/wm8739: Fix memory leak when unloading module + * Input: lifebook - fix an oops on Panasonic CF-18 + * splice: fix double page unlock + * drm/i915: Fix i965 secured batchbuffer usage (CVE-2007-3851) + * Fix leak on /proc/lockdep_stats + * CPU online file permission + * Fix user struct leakage with locked IPC shem segment + * md: handle writes to broken raid10 arrays gracefully + * md: raid10: fix use-after-free of bio + * pcmcia: give socket time to power down + * Fix leaks on /proc/{*/sched, sched_debug, timer_list, timer_stats} + * futex: pass nr_wake2 to futex_wake_op + * "ext4_ext_put_in_cache" uses __u32 to receive physical block number + * Include serial_reg.h with userspace headers + * dm io: fix panic on large request + * i386: HPET, check if the counter works + * fw-ohci: fix "scheduling while atomic" + * firewire: fix memory leak of fw_request instances + * softmac: Fix ESSID problem + * eCryptfs: ecryptfs_setattr() bugfix + * nfsd: fix possible read-ahead cache and export table corruption + * readahead: MIN_RA_PAGES/MAX_RA_PAGES macros + * fs: 9p/conv.c error path fix + * forcedeth bug fix: cicada phy + * forcedeth bug fix: vitesse phy + * forcedeth bug fix: realtek phy + * acpi-cpufreq: Proper ReadModifyWrite of PERF_CTL MSR + * jbd commit: fix transaction dropping + * jbd2 commit: fix transaction dropping + * hugetlb: fix race in alloc_fresh_huge_page() + * do not limit locked memory when RLIMIT_MEMLOCK is RLIM_INFINITY + * uml: limit request size on COWed devices + * sony-laptop: fix bug in event handling + * destroy_workqueue() can livelock + * drivers/video/macmodes.c:mac_find_mode() mustn't be __devinit + * cfq-iosched: fix async queue behaviour + * libata: add FUJITSU MHV2080BH to NCQ blacklist + * ieee1394: revert "sbp2: enforce 32bit DMA mapping" + * nfsd: fix possible oops on re-insertion of rpcsec_gss modules + * dm raid1: fix status + * dm io: fix another panic on large request + * dm snapshot: permit invalid activation + * dm: disable barriers + * cr_backlight_probe() allocates too little storage for struct cr_panel + * ACPI: dock: fix opps after dock driver fails to initialize + * Hangup TTY before releasing rfcomm_dev + * Keep rfcomm_dev on the list until it is freed + * nf_conntrack: don't track locally generated special ICMP error + * IPV6: /proc/net/anycast6 unbalanced inet6_dev refcnt + * sysfs: release mutex when kmalloc() failed in sysfs_open_file(). + * Netfilter: Fix logging regression + * USB: fix for ftdi_sio quirk handling + * sx: switch subven and subid values + * UML: exports for hostfs + * Linux 2.6.22.2 + * fix oops in __audit_signal_info() + * random: fix bound check ordering (CVE-2007-3105) + * softmac: Fix deadlock of wx_set_essid with assoc work + * ata_piix: update map 10b for ich8m + * PPC: Revert "[POWERPC] Don't complain if size-cells == 0 in + prom_parse()" + * PPC: Revert "[POWERPC] Add 'mdio' to bus scan id list for platforms + with QE UEC" + * powerpc: Fix size check for hugetlbfs + * direct-io: fix error-path crashes + * stifb: detect cards in double buffer mode more reliably + * pata_atiixp: add SB700 PCI ID + * CPUFREQ: ondemand: fix tickless accounting and software coordination + bug + * CPUFREQ: ondemand: add a check to avoid negative load calculation + * Linux 2.6.22.3 + * intel_agp: really fix 945/965GME + * Reset current->pdeath_signal on SUID binary execution (CVE-2007-3848) + * MSS(mmc/sd/sdio) driver patch + + -- Kyle McMartin Thu, 16 Aug 2007 12:17:27 -0400 + +linux-source-2.6.22 (2.6.22-9.25) gutsy; urgency=low + + [Kyle McMartin] + + * ubuntu: Fix FTBFS -- forgot to bump debian/abi + + -- Kyle McMartin Thu, 02 Aug 2007 22:13:28 +0000 + +linux-source-2.6.22 (2.6.22-9.24) gutsy; urgency=low + + [Colin Watson] + + * provide Provides for fs-*-modules udebs + + [Matthias Klose] + + * test $dilist before using it + + [Lamont Jones] + + * hppa: Update abi files + + -- Kyle McMartin Thu, 02 Aug 2007 18:26:34 +0000 + +linux-source-2.6.22 (2.6.22-9.23) gutsy; urgency=low + + [Ben Collins] + + * ubuntu: Add missing newline to module-check script + * ubuntu: Add lpia to linux-libc-dev. Should finally build now. + + -- Ben Collins Thu, 02 Aug 2007 13:10:23 -0400 + +linux-source-2.6.22 (2.6.22-9.22) gutsy; urgency=low + + [Ben Collins] + + * ubuntu: Use DEB_HOST_ARCH, not DEB_HOST_ARCH_CPU + + -- Ben Collins Thu, 02 Aug 2007 08:44:09 -0400 + +linux-source-2.6.22 (2.6.22-9.21) gutsy; urgency=low + + [Ben Collins] + + * lpia: Add build stuff for lpia architecture + + [LaMont Jones] + + * abi files for hppa + * UBUNTU-HPPA: configs that seem to work + * hppa: abi files for 9.20 + + -- Ben Collins Wed, 01 Aug 2007 11:12:59 -0400 + +linux-source-2.6.22 (2.6.22-9.20) gutsy; urgency=low + + [Ben Collins] + + * tulip: Fix for Uli5261 chipsets. + * tulip: Define ULI PCI ID's + * tulip: Let dmfe handle davicom on non-sparc + * input: Allow root to inject unknown scan codes. + * irda: Default to dongle type 9 on IBM hardware + * input/mouse/alps: Do not call psmouse_reset() for alps + * pcmcia: Do not insert pcmcia cards on resume + * ide-cd: Disable verbose errors. + * block: Make CDROMEJECT more robust + * pm: Config option to disable handling of console during suspend/resume. + * version: Implement version_signature proc file. + * update toshiba_acpi to 0.19a-dev + * xpad: Update to latest version from xbox-linux. + * ubuntu: Enable setting of CONFIG_VERSION_SIGNATURE at build time + * toshiba_acpi: Don't use init_MUTEX_LOCKED + + [Chuck Short] + + * [USB]: add ASUS LCM to the blacklist + * [NET]: Add mcp73 to forcedeth. + * [USB]: Added support for Sanwa PC5000 multimeter usb cable (KB-USB2). + * [ATA] Add support for Sb700 AHCI nor-raid5 and raid5 + + [Fabio M. Di Nitto] + + * drivers/char/vt.c: make promcon driver init a boot option. + + [Kyle McMartin] + + * Disable MMCONFIG by default + + [Phillip Lougher] + + * fix NFS mounting regression from Edgy->Feisty + * r8169: disable TSO by default for RTL8111/8168B chipsets. + + [Tim Gardner] + + * Catch nonsense keycodes and silently ignore + * Cause SoftMac to emit an association event when setting ESSID. + + -- Ben Collins Mon, 30 Jul 2007 12:01:43 -0400 + +linux-source-2.6.22 (2.6.22-9.19) gutsy; urgency=low + + [Amit Kucheria] + + * Fix for FTBFS bug 123178 + * Fix for FTBFS bug 123178 + * Add devices to USB quirks to prevent USB autosuspend + * More devices added to USB quirks + - LP: #85488 + * Support for ENE CB-712/4 SD card reader + * Reorder quirk list based on Vendor/Product ID + + [Ben Collins] + + * ubuntu: Enable HOTPLUG_CPU in sparc64-smp config. + * ubuntu: Add xen to amd64 custom builds + * ubuntu: Update real-time kernel to -rt4 + * rt: Patch from Alessio Igor Bogani for RT-8 + + [Chuck Short] + + * IDE: add MHV2080BH to NCQ blacklist + * XEN: update to 2.6.22 final and amd64 support. + * NET: Add more pci-ids to zd1211rw + * IDE: add new PCI ID + * USB: fix oops in ftdi_sio + + [Eric Piel] + + * ACPI: Allow custom DSDT tables to be loaded from initramfs + + [Ryan Lortie] + + * Macbook calibration loop fix + - LP: #54621 + + [Upstream Kernel Changes] + + * NETFILTER: {ip, nf}_conntrack_sctp: fix remotely triggerable NULL ptr + dereference (CVE-2007-2876) + * Linux 2.6.22.1 + * [SPARC64]: Use KERN_ERR in sun4v IRQ printk()'s. + * [SPARC64]: Add LDOM virtual channel driver and VIO device layer. + * [SPARC64]: Add Sun LDOM virtual network driver. + * [SPARC64]: Add Sun LDOM virtual disk driver. + * [SPARC64]: Create proper obppath sysfs files for VIO bus devices. + * [SPARC64] LDC: Do limited polled retry on setting RX queue head. + * [SUNVNET]: Validate RX descriptor size field. + * [SPARC64]: Add missing symbol exports for LDOM infrastructure. + * [SPARC64]: Temporary workaround for LDC INO double-delivery. + * [SPARC64]: Create 'devspec' nodes for vio devices. + * [SPARC64]: vdev->type can be NULL, handle this in devspec_show(). + * [SPARC64]: Assorted LDC bug cures. + * [SPARC64]: Add domain-services nodes to VIO device tree. + * [SPARC64]: Export powerd facilities for external entities. + * [SPARC64]: Initial domain-services driver. + * [SPARC64]: Use more mearningful names for IRQ registry. + * [SPARC64]: Abstract out mdesc accesses for better MD update handling. + * [SPARC64]: Fix MD property lifetime bugs. + * [SPARC64]: Fix setting of variables in LDOM guest. + * [SPARC64]: Initial LDOM cpu hotplug support. + * [SPARC64]: Unconditionally register vio_bus_type. + * [SPARC64]: Fix build regressions added by dr-cpu changes. + * [SPARC64]: mdesc.c needs linux/mm.h + * [SPARC64]: SMP build fixes. + * [SPARC64]: More sensible udelay implementation. + * [SPARC64]: Process dr-cpu events in a kthread instead of workqueue. + * [SPARC64]: Add ->set_affinity IRQ handlers. + * [SPARC64]: Fix leak when DR added cpu does not bootup. + * [SPARC64]: Clear cpu_{core,sibling}_map[] in + smp_fill_in_sib_core_maps() + * [SPARC64]: Give more accurate errors in dr_cpu_configure(). + * [SERIAL]: Fix console write locking in sparc drivers. + * [TIMER]: Fix clockevent notifications on 64-bit. + * [SPARC64]: dr-cpu unconfigure support. + * [SPARC64]: Fix UP build. + * [SPARC64]: SMP build fix. + * [SPARC64]: Fix race between MD update and dr-cpu add. + * [SERIAL] SUNHV: Fix jerky console on LDOM guests. + * [SPARC64]: Kill explicit %gl register reference. + * [SPARC64]: Add basic infrastructure for MD add/remove notification. + * [SPARC64]: Simplify VDC device probing. + * [SPARC64]: Simplify VNET probing. + * [SPARC64]: Massively simplify VIO device layer and support hot + add/remove. + * [SPARC64]: Handle LDC resets properly in domain-services driver. + * [SPARC64]: Handle reset events in vio_link_state_change(). + * [SPARC64]: Fix reset handling in VNET driver. + * [SPARC64]: Set vio->desc_buf to NULL after freeing. + * [SPARC64]: Fix MODULE_DEVICE_TABLE() specification in VDC and VNET. + * [SPARC64]: Fix device type matching in VIO's devspec_show(). + * Add empty + * Add dummy isa_(bus|virt)_to_(virt|bus) inlines + * Clean up sti_flush + * Do not allow STI_CONSOLE to be modular + * Use compat_sys_getdents + + -- Ben Collins Sat, 28 Jul 2007 12:30:53 -0400 + +linux-source-2.6.22 (2.6.22-8.18) gutsy; urgency=low + + [Ben Collins] + + * ubuntu: *sigh* update xen config to fix FTBFS + + -- Ben Collins Thu, 12 Jul 2007 14:23:20 +0100 + +linux-source-2.6.22 (2.6.22-8.17) gutsy; urgency=low + + [Ben Collins] + + * ubuntu: Actually enable the -xen build. + + -- Ben Collins Thu, 12 Jul 2007 09:51:01 +0100 + +linux-source-2.6.22 (2.6.22-8.16) gutsy; urgency=low + + * Removed CONFIG_BLINK from all configs and added to modules.ignore + * This fixes a build failure for 8.15 + + [Alexey Starikovskiy] + + * Fix ACPI battery detection on Asus + + [Amit Kucheria] + + * Export symbols required to build GFS1 in LUM + * Update configuration files + * 2.6.22-7.14 ABI + * Remove old ABI + * Update d-i modules to support Sparc LDOM + * Introducing the UME kernel flavour + + [Jacob Pan] + + * Poulsbo SMBus Controller + * Intel Poulsbo SCH IDE Controller + * Intel Poulsbo HD audio controller + + [Phillip Lougher] + + * xen: Update custom binary flavour (Xen 3.1 for 2.6.22-rc5) + * xen: Update xen/config.i386 to enable PAE + + [Upstream Kernel Changes] + + * [SCSI] fusion: fix for BZ 8426 - massive slowdown on SCSI CD/DVD drive + * [XFS] Update the MAINTAINERS file entry for XFS. + * IB/mlx4: Fix handling of wq->tail for send completions + * IB/mlx4: Fix warning in rounding up queue sizes + * [SCSI] ESP: Don't forget to clear ESP_FLAG_RESETTING. + * firewire: fix hang after card ejection + * ieee1394: fix to ether1394_tx in ether1394.c + * [ARM] Add support for pause_on_oops and display preempt/smp options + * sh: Fix restartable syscall arg5 clobbering. + * ACPI: gracefully print null trip-point device + * ACPICA: fix error path in new external package objects as method + arguments + * sh: oops_enter()/oops_exit() in die(). + * [ARM] Update show_regs/oops register format + * IB/mlx4: Handle new FW requirement for send request prefetching + * IB/mlx4: Get rid of max_inline_data calculation + * IB/mlx4: Handle buffer wraparound in __mlx4_ib_cq_clean() + * IB/mlx4: Handle FW command interface rev 3 + * Fix signalfd interaction with thread-private signals + * sched: fix SysRq-N (normalize RT tasks) + * Fix possible runqueue lock starvation in wait_task_inactive() + * sh: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. + * sh64: Handle -ERESTART_RESTARTBLOCK for restartable syscalls. + * [POWERPC] Fix snd-powermac refcounting bugs + * [XFS] s/memclear_highpage_flush/zero_user_page/ + * [XFS] Update the MAINTAINERS file entry for XFS - change git repo name. + * [XFRM]: Fix MTU calculation for non-ESP SAs + * [IPVS]: Fix state variable on failure to start ipvs threads + * [AF_RXRPC]: Return the number of bytes buffered in rxrpc_send_data() + * [S390] Missing blank when appending cio_ignore kernel parameter + * [S390] Fix zfcpdump header + * [S390] Fix yet another two section mismatches. + * [S390] Print list of modules on die(). + * [S390] Add oops_enter()/oops_exit() calls to die(). + * [S390] Move psw_set_key. + * [POWERPC] rheap - eliminates internal fragments caused by alignment + * [POWERPC] PowerPC: Prevent data exception in kernel space (32-bit) + * [POWERPC] Fix powermac late initcall to only run on powermac + * [MIPS] Don't drag a platform specific header into generic arch code. + * x86_64: Fix readahead/sync_file_range/fadvise64 compat calls + * x86_64: Fix eventd/timerfd syscalls + * x86: Disable DAC on VIA bridges + * x86_64: Quieten Atari keyboard warnings in Kconfig + * x86: Only make Macintosh drivers default on Macs + * x86: Disable KPROBES with DEBUG_RODATA for now + * x86: change_page_attr bandaids + * x86_64: fix link warning between for .text and .init.text + * Fix up CREDIT entry ordering + * firewire: Only set client->iso_context if allocation was successful. + * spidernet: null out skb pointer after its been used. + * spidernet: Cure RX ram full bug + * spidernet: Don't terminate the RX ring + * spidernet: silence the ramfull messages + * spidernet: turn off descriptor chain end interrupt. + * spidernet: checksum and ethtool + * bonding: Fix use after free in unregister path + * bonding: Fix 802.3ad no carrier on "no partner found" instance + * s390: print correct level for HiperSockets devices + * s390: qeth driver does not recover + * s390: avoid inconsistent lock state in qeth + * s390: qeth: wrong packet length in qdio header + * s390: Use ccw_device_get_id() in qeth/claw drivers + * s390: don't call iucv_path_connect from tasklet context + * s390: netiucv spinlock initializer cleanup + * s390: netiucv inlining cleanup + * forcedeth: use unicast receive mode for WoL + * natsemi irq flags + * cxgb3 - fix skb->dev dereference + * cxgb3 - fix netpoll hanlder + * cxgb3 - Fix direct XAUI support + * cxgb3 - Stop mac RX when changing MTU + * cxgb3 - MAC watchdog update + * PATA: Add the MCP73/77 support to PATA driver + * pata_it821x: (partially) fix DMA in RAID mode + * libata: more NONCQ devices + * kerneldoc fix in libata + * ahci: fix PORTS_IMPL override + * fix module_param mistake in it821x + * Blackfin arch: update ANOMALY handling + * Blackfin arch: update printk to use KERN_EMERG and reformat crash + output + * Blackfin arch: add missing braces around array bfin serial init + * Blackfin arch: match kernel startup messaage with new linker script + * Blackfin arch: move cond_syscall() behind __KERNEL__ like all other + architectures + * Blackfin arch: Add definition of dma_mapping_error + * Blackfin arch: add proper const volatile to addr argument to the read + functions + * [AGPGART] intel_agp: don't load if no IGD and AGP port + * IB/umem: Fix possible hang on process exit + * IPoIB/cm: Initialize RX before moving QP to RTR + * IPoIB/cm: Fix interoperability when MTU doesn't match + * IPoIB/cm: Remove dead definition of struct ipoib_cm_id + * IB/mlx4: Correct max_srq_wr returned from mlx4_ib_query_device() + * [PARISC] stop lcd driver from stripping initial whitespace + * [PARISC] Handle wrapping in expand_upwards() + * [PARISC] Fix unwinder on 64-bit kernels + * [PARISC] unwinder improvements + * page_mapping must avoid slub pages + * posix-timers: Prevent softirq starvation by small intervals and SIG_IGN + * Allow DEBUG_RODATA and KPROBES to co-exist + * [NETFILTER]: nf_conntrack_sip: add missing message types containing RTP + info + * [NETFILTER]: nfctnetlink: Don't allow to change helper + * [IPV6] NDISC: Fix thinko to control Router Preference support. + * [IPV4]: include sysctl.h from inetdevice.h + * i386: Make CMPXCHG64 only dependent on PAE + * x86_64: Fix only make Macintosh drivers default on Macs + * x86_64: Ignore compat mode SYSCALL when IA32_EMULATION is not defined + * [AVR32] Fix bug in invalidate_dcache_region() + * [AVR32] NGW100, Remove relics of the old USART mapping scheme + * [AVR32] Initialize dma_mask and dma_coherent_mask + * [AVR32] Update defconfigs + * ACPI: fix 2.6.20 SMP boot regression + * [SKBUFF]: Fix incorrect config #ifdef around skb_copy_secmark + * [TIPC]: Fix infinite loop in netlink handler + * [PPP]: Revert 606f585e363527da9feaed79465132c0c661fd9e + * [PPP]: Fix osize too small errors when decoding mppe. + * [TCP] tcp_read_sock: Allow recv_actor() return return negative error + value. + * [NET]: Re-enable irqs before pushing pending DMA requests + * [NET]: Make skb_seq_read unmap the last fragment + * hwmon/coretemp: fix a broken error path + * fix refcounting of nsproxy object when unshared + * console UTF-8 fixes (fix) + * SM501: suspend support + * SM501: initialise SDRAM clock before bus clocks + * SM501: Fix sm501_init_reg() mask/set order + * SM501: Clock updates and checks + * SM501: Add Documentation/SM501.txt + * SM501: Check SM501 ID register on initialisation + * SLUB: fix behavior if the text output of list_locations overflows + PAGE_SIZE + * sched: fix next_interval determination in idle_balance() + * update checkpatch.pl to version 0.05 + * alpha: fix alignment problem in csum_ipv6_magic() + * Char: stallion, fix oops during init with ISA cards + * uml: use generic BUG + * uml: add asm/paravirt.h + * "volatile considered harmful" + * document nlink function + * slab allocators: MAX_ORDER one off fix + * update checkpatch.pl to version 0.06 + * x86_64: fix misplaced `continue' in mce.c + * ext2: disallow setting xip on remount + * audit: fix oops removing watch if audit disabled + * ext3: lost brelse in ext3_read_inode() + * ext4: lost brelse in ext4_read_inode() + * ACPI: preserve the ebx value in acpi_copy_wakeup_routine + * FUTEX: Restore the dropped ERSCH fix + * Linus 2.6.22-rc6 + * [ARM] 4452/1: Force the literal pool dump before reloc_end + * [ARM] 4449/1: more entries in arch/arm/boot/.gitignore + * fix nmi_watchdog=2 bootup hang + * [POWERPC] Update g5_defconfig + * [POWERPC] Update defconfigs + * [POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval + * [POWERPC] Fix subtle FP state corruption bug in signal return on SMP + * USB: g_file_storage: call allow_signal() + * USB: ti serial driver sleeps with spinlock held + * USB: memory leak in iowarrior.c + * USB: usblcd doesn't limit memory consumption during write + * USB: fix race leading to use after free in io_edgeport + * USB: add new device id to option driver + * USB: ftdio_sio: New IPlus device ID + * [MIPS] __ucmpdi2 arguments are unsigned long long. + * [MIPS] add io_map_base to pci_controller on Cobalt + * [MIPS] remove "support for" from system type entry + * [MIPS] Alchemy: Fix wrong cast + * [MIPS] Fix pb1500 reg B access + * [MIPS] AP/SP requires shadow registers, auto enable support. + * [MIPS] 20K: Handle WAIT related bugs according to errata information + * [MIPS] use compat_siginfo in rt_sigframe_n32 + * [MIPS] Remove a duplicated local variable in test_and_clear_bit() + * [MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work. + * [MIPS] SMTC and non-SMTC kernel and modules are incompatible + * [MIPS] Count timer interrupts correctly. + * x86_64: set the irq_chip name for lapic + * x86_64 irq: use mask/unmask and proper locking in fixup_irqs() + * [SPARC64]: Add irqs to mdesc_node. + * [SPARC64]: Fix VIRQ enabling. + * [SPARC64]: Need to set state to IDLE during sun4v IRQ enable. + * [SPARC64]: Add LDOM virtual channel driver and VIO device layer. + * [SPARC64]: Add Sun LDOM virtual network driver. + * [SPARC64]: Add Sun LDOM virtual disk driver. + * [SPARC64]: Create proper obppath sysfs files for VIO bus devices. + * [SPARC64] LDC: Do limited polled retry on setting RX queue head. + * [GFS2] Fix gfs2_block_truncate_page err return + * [DLM] Telnet to port 21064 can stop all lockspaces + * [GFS2] inode size inconsistency + * [GFS2] remounting w/o acl option leaves acls enabled + * [GFS2] System won't suspend with GFS2 file system mounted + * [GFS2] git-gfs2-nmw-build-fix + * [GFS2] Obtaining no_formal_ino from directory entry + * [GFS2] Remove i_mode passing from NFS File Handle + * [SUNVNET]: Validate RX descriptor size field. + * [SPARC64]: Add missing symbol exports for LDOM infrastructure. + * [SPARC64]: Temporary workaround for LDC INO double-delivery. + * [SPARC64]: Create 'devspec' nodes for vio devices. + * [SPARC64]: vdev->type can be NULL, handle this in devspec_show(). + + -- Amit Kucheria Mon, 09 Jul 2007 12:55:56 +0300 + +linux-source-2.6.22 (2.6.22-7.14) gutsy; urgency=low + + [Ben Collins] + + * build/vars: Provide ivtv-modules + * Bump ABI + * ubuntu/config: Enable Intermediate Functional Block device + * coredump: Fix typo in patch merge + * ubuntu/scripts: Make sure to symlink *.lds for ia64 builds + * ubuntu/config: Enable NO_HZ for server and sparc64 targets. + * ubuntu/config: Remove bigiron target, see if anyone complains + * ubuntu: Ok, really remove bigiron + * ubuntu/control-scripts: Fo sho, remove the debconf stuff from controls + scripts + * AppArmor: Enable exports and changes for AppArmor usage + * ubuntu: Add feisty changelog for historical purposes. + + [Colin Watson] + + * Move isofs to storage-core-modules udeb from fs-core-modules. + + [Upstream Kernel Changes] + + * [MTD] [MAPS] don't force uclinux mtd map to be root dev + * [MTD] generalise the handling of MTD-specific superblocks + * [SCSI] zfcp: avoid clutter in erp_dbf + * [SCSI] zfcp: IO stall after deleting and path checker changes after + reenabling zfcp devices + * [SCSI] ipr: Proper return codes for eh_dev_reset for SATA devices + * [SCSI] stex: fix id mapping issue + * [SCSI] stex: extend hard reset wait time + * [SCSI] stex: fix reset recovery for console device + * [SCSI] stex: minor cleanup and version update + * [SCSI] MegaRAID: Update MAINTAINERS email-id + * [SCSI] tgt: fix a rdma indirect transfer error bug + * [SCSI] NCR53C9x: correct spelling mistake in deprecation notice + * [SCSI] aacraid: Correct sa platform support. (Was: [Bug 8469] Bad EIP + value on pentium3 SMP kernel-2.6.21.1) + * [SCSI] aacraid: fix panic on short Inquiry + * [WATCHDOG] ks8695_wdt.c - new KS8695 watchdog driver + * [JFFS2] Fix BUG() caused by failing to discard xattrs on deleted files. + * [JFFS2] Fix potential memory leak of dead xattrs on unmount. + * [SCSI] sd: fix refcounting regression in suspend/resume routines + * [SCSI] aacraid: apply commit config for reset_devices flag + * [SCSI] aic7xxx: fix aicasm build failure with gcc-3.4.6 + * [SCSI] aic94xx: asd_clear_nexus should fail if the cleared task does + not complete + * [SCSI] fusion: Fix |/|| confusion + * parisc: make command_line[] static + * parisc: sync compat getdents + * [PARISC] Move #undef to end of syscall table + * [PARISC] Wire up kexec_load syscall + * parisc: convert /proc/gsc/pcxl_dma to seq_file + * [PARISC] Let PA-8900 processors boot + * [PARISC] Disable LWS debugging + * [PARISC] spelling fixes: arch/parisc/ + * sh: section mismatch fixes for system timer. + * [PARISC] ROUND_UP macro cleanup in arch/parisc + * [PARISC] ROUNDUP macro cleanup in drivers/parisc + * [PPC] Fix COMMON symbol warnings + * [PPC] Remove duplicate export of __div64_32. + * [POWERPC] 52xx: unbreak lite5200 dts (_pic vs. -pic) + * [POWERPC] QE: fix Kconfig 'select' warning with UCC_FAST + * [POWERPC] Fix Section mismatch warnings + * [POWERPC] Fix modpost warning + * [PPC] Fix modpost warning + * [CIFS] Fix oops on failed cifs mount (in kthread_stop) + * [POWERPC] Fix Kconfig warning + * [CIFS] typo in previous patch + * [SCSI] megaraid_sas: intercept cmd timeout and throttle io + * [WATCHDOG] clean-up watchdog documentation + * drm: Spinlock initializer cleanup + * drm/radeon: add more IGP chipset pci ids + * drm: make sure the drawable code doesn't call malloc(0). + * [PARISC] kobject is embedded in subsys, not kset + * [PARISC] Build fixes for power.c + * [ARM] 4401/1: S3C2443: Add definitions for port GPIOJ + * [ARM] 4402/1: S3C2443: Add physical address of HSMMC controller + * [ARM] 4403/1: Make the PXA-I2C driver work with lockdep validator + * [ARM] 4404/1: Trivial IXP42x Kconfig cleanup + * [ARM] 4405/1: NSLU2, DSM-G600 frequency fixup code + * [ARM] 4406/1: Trivial NSLU2 / NAS-100D header & setup code cleanup + * [ARM] remove unused header file: arch/arm/mach-s3c2410/bast.h + * [PARISC] fix lasi_82596 build + * [PARISC] fix section mismatch in parport_gsc + * [PARISC] fix section mismatch in parisc STI video drivers + * [PARISC] fix section mismatch in ccio-dma + * [PARISC] fix section mismatches in arch/parisc/kernel + * [PARISC] fix section mismatch in parisc eisa driver + * [PARISC] fix section mismatch in superio serial drivers + * [PARISC] Wire up utimensat/signalfd/timerfd/eventfd syscalls + * hwmon/ds1621: Fix swapped temperature limits + * hwmon/coretemp: Add more safety checks + * hwmon/w83627hf: Be quiet when no chip is found + * hwmon-vid: Don't spam the logs when VRM version is missing + * hwmon/applesmc: Simplify dependencies + * hwmon/applesmc: Handle name file creation error and deletion + * ieee1394: sbp2: include workqueue.h + * ieee1394: eth1394: remove bogus netif_wake_queue + * ieee1394: eth1394: handle tlabel exhaustion + * ieee1394: eth1394: bring back a parent device + * ieee1394: raw1394: Fix async send + * firewire: Add missing byteswapping for receive DMA programs. + * firewire: prefix modules with firewire- instead of fw- + * firewire: fix return code + * [libata] Add drive to NCQ blacklist + * [ARM] enable arbitary speed tty ioctls and split input/output speed + * Input: db9 - do not ignore dev2 module parameter + * Input: logips2pp - fix typo in Kconfig + * [XFS] Write at EOF may not update filesize correctly. + * [SCSI] pluto: Use wait_for_completion_timeout. + * [SPARC64]: Kill unused DIE_PAGE_FAULT enum value. + * [SPARC64]: Don't be picky about virtual-dma values on sun4v. + * [SPARC32]: Removes mismatch section warnigs in sparc time.c file + * [SERIAL] sunzilog: section mismatch fix + * [SPARC64]: PCI device scan is way too verbose by default. + * [SCSI] jazz_esp: Converted to use esp_core. + * [SCSI] ESP: Kill SCSI_ESP_CORE and link directly just like jazz_esp + * [SPARC64]: Fix typo in sun4v_hvapi_register error handling. + * [SPARC64]: Report proper system soft state to the hypervisor. + * [SPARC64]: Negotiate hypervisor API for PCI services. + * [SPARC64]: Use machine description and OBP properly for cpu probing. + * [SPARC64]: Eliminate NR_CPUS limitations. + * [SPARC64]: arch/sparc64/time.c doesn't compile on Ultra 1 (no PCI) + * [SPARC]: Linux always started with 9600 8N1 + * [SPARC64]: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler. + * [SPARC]: Emulate cmpxchg like parisc + * [SPARC]: Mark as emulating cmpxchg, add appropriate depends for DRM. + * [SPARC64]: Fix two bugs wrt. kernel 4MB TSB. + * [SPARC64]: Fill holes in hypervisor APIs and fix KTSB registry. + * mac80211: fail back to use associate from reassociate + * mac80211: fix memory leak when defrag fragments + * mac80211: always set carrier status on open + * mac80211: avoid null ptr deref in ieee80211_ibss_add_sta + * prism54: fix monitor mode oops + * ieee80211: fix incomplete error message + * softmac: alloc_ieee80211() NULL check + * hostap: Allocate enough tailroom for TKIP + * sparc64: fix alignment bug in linker definition script + * USB: replace flush_workqueue with cancel_sync_work + * ACPICA: allow Load(OEMx) tables + * ACPI: thermal: Replace pointer with name in trip_points + * ACPI: extend "acpi_osi=" boot option + * IB/mthca: Fix handling of send CQE with error for QPs connected to SRQ + * IPoIB/cm: Fix performance regression on Mellanox + * IB/cm: Fix stale connection detection + * IB/mlx4: Fix last allocated object tracking in bitmap allocator + * NOHZ: prevent multiplication overflow - stop timer for huge timeouts + * random: fix error in entropy extraction + * random: fix seeding with zero entropy + * ACPI: Make _OSI(Linux) a special case + * ACPI: add __init to acpi_initialize_subsystem() + * [PARISC] fix "ENTRY" macro redefinition + * [PARISC] fix section mismatch in smp.c + * [PARISC] remove remnants of parisc-specific softirq code + * [PARISC] fix trivial spelling nit in asm/linkage.h + * [PARISC] fix null ptr deref in unwind.c + * [PARISC] fix "reduce size of task_struct on 64-bit machines" fallout + * [PARISC] be more defensive in process.c::get_wchan + * [ARM] use __used attribute + * [ARM] Fix stacktrace FP range checking + * [ARM] oprofile: avoid lockdep warnings on mpcore oprofile init + * [ARM] 4411/1: KS8695: Another serial driver fix + * [ARM] 4412/1: S3C2412: reset errata fix + * [ARM] 4414/1: S3C2443: sparse fix for clock.c + * [ARM] 4415/1: AML5900: fix sparse warnings from map_io + * [ARM] 4416/1: NWFPE: fix undeclared symbols + * [ARM] 4410/1: Remove extern declarations in coyote/ixdpg425-pci.c + * [ARM] 4394/1: ARMv7: Add the TLB range operations + * [ARM] 4417/1: Serial: Fix AMBA drivers locking + * sky2: dont set bogus bit in PHY register + * sky2: checksum offload plus vlan bug + * sky2: program proper register for fiber PHY + * defxx: Fix the handling of ioremap() failures + * e1000: restore netif_poll_enable call but make sure IRQs are off + * sky2: enable IRQ on duplex renegotiation + * ehea: Fixed multi queue RX bug + * [SCSI] fix CONFIG_SCSI_WAIT_SCAN=m + * [SCSI] qla2xxx: fix timeout in qla2x00_down_timeout + * [ARM] Fix some section mismatch warnings + * alpha: cleanup in bitops.h + * alpha: support new syscalls + * fix possible null ptr deref in kallsyms_lookup + * NFS: Fix a refcount leakage in O_DIRECT + * a bug in ramfs_nommu_resize function, passing old size to vmtruncate + * sh: Fix pcrel too far for in_nmi label. + * sh: Trivial fix for dma-api compile failure. + * sh: Fix vsyscall build failure. + * sh: trivial build cleanups. + * sh: support older gcc's + * [ALSA] HDA: Add support for Gateway NX860 + * [ALSA] HDA: Add more systems to Sigmatel codec + * [ALSA] HDA: Fix headphone mute issue on non-eapd Conexant systems + * [ALSA] hda-codec - Add support for ASUS A8J modem + * [ALSA] ali5451 - Fix possible NULL dereference + * [ALSA] hda-intel: fix ASUS M2V detection + * [ALSA] Fix ASoC s3c24xx-pcm spinlock bug + * [ALSA] hda-codec - Add quirk for MSI S420 + * [ALSA] hda-codec - Add quirk for Supermicro PDSBA to alc883_cfg_tbl[] + * [ALSA] hda-codec - Add support for MSI K9N Ultra + * [ALSA] hda-codec - Fix pin configs for Gateway MX6453 + * [ALSA] hda-codec - Fix input with STAC92xx + * [ALSA] hda-codec - Fix STAC922x capture boost level + * [CRYPTO] cryptd: Fix problem with cryptd and the freezer + * [CASSINI]: Fix printk message typo. + * [XFRM]: Allow XFRM_ACQ_EXPIRES to be tunable via sysctl. + * [XFRM]: xfrm_larval_drop sysctl should be __read_mostly. + * [IPSEC]: Fix IPv6 AH calculation in outbound + * [IPV6] ROUTE: No longer handle ::/0 specially. + * [NET]: parse ip:port strings correctly in in4_pton + * [IPSEC]: Fix panic when using inter address familiy IPsec on loopback. + * [IPV4]: Kill references to bogus non-existent CONFIG_IP_NOSIOCRT + * [AF_PACKET]: Kill bogus CONFIG_PACKET_MULTICAST + * [IPV6]: Fix build warning. + * [AF_PACKET]: Kill CONFIG_PACKET_SOCKET. + * [SOCK]: Shrink struct sock by 8 bytes on 64-bit. + * [TCP]: Consolidate checking for tcp orphan count being too big. + * [NET] napi: Call __netif_rx_complete in netif_rx_complete + * [IPV6] ADDRCONF: Fix conflicts in DEVCONF_xxx constant. + * [TCP] tcp_probe: a trivial fix for mismatched number of printl + arguments. + * [TCP] tcp_probe: use GCC printf attribute + * [BRIDGE]: Reduce frequency of forwarding cleanup timer in bridge. + * [BRIDGE]: Round off STP perodic timers. + * [IPSEC]: Add xfrm_sysctl.txt. + * [SPARC64]: Add missing NCS and SVC hypervisor interfaces. + * [SPARC32]: Build fix. + * [SPARC]: Missing #include in drivers/sbus/char/flash.c + * [ALSA] version 1.0.14 + * neofb: Fix pseudo_palette array overrun in neofb_setcolreg + * smpboot: fix cachesize comparison in smp_tune_scheduling() + * at91: fix enable/disable_irq_wake symmetry in pcmcia driver + * SLUB: More documentation + * pci-quirks: fix MSI disabling on RS400-200 and RS480 + * ntfs_init_locked_inode(): fix array indexing + * m68k: runtime patching infrastructure + * SLUB: Fix NUMA / SYSFS bootstrap issue + * afs: needs sched.h + * m68k: discontinuous memory support + * [S390] Add exception handler for diagnose 224 + * [S390] dasd_eer: use mutex instead of semaphore + * [S390] arch/s390/kernel/debug.c: use mutex instead of semaphore + * [S390] raw3270: use mutex instead of semaphore + * [S390] Fix section annotations. + * [S390] cio: Use device_schedule_callback() for removing disconnected + devices. + * [S390] cio: deregister ccw device when pgid disband failed + * ACPI: thinkpad-acpi: do not use named sysfs groups + * ieee1394: fix calculation of sysfs attribute "address" + * ieee1394: sbp2: offer SAM-conforming target port ID in sysfs + * firewire: fw-sbp2: implement sysfs ieee1394_id + * firewire: add to MAINTAINERS + * firewire: Implement suspend/resume PCI driver hooks. + * firewire: Change struct fw_cdev_iso_packet to not use bitfields. + * firewire: Install firewire-constants.h and firewire-cdev.h for + userspace. + * EXT4: Fix whitespace + * Remove unnecessary exported symbols. + * ext4: Extent overlap bugfix + * When ext4_ext_insert_extent() fails to insert new blocks + * Define/reserve new ext4 superblock fields + * msi: fix ARM compile + * PCI: disable MSI by default on systems with Serverworks HT1000 chips + * PCI: Fix pci_find_present + * PCI: i386: fixup for Siemens Nixdorf AG FSC Multiprocessor Interrupt + Controllers + * PCI: quirk disable MSI on via vt3351 + * [XTENSA] fix bit operations in bitops.h + * [XTENSA] Spelling fixes in arch/xtensa + * [XTENSA] fix sources using deprecated assembler directive + * [XTENSA] Remove multi-exported symbols from xtensa_ksyms.c + * [XTENSA] Use generic 64-bit division + * [XTENSA] clean-up header files + * [XTENSA] Move common sections into bss sections + * [XTENSA] Remove non-rt signal handling + * Xtensa: use asm-generic/fcntl.h + * [JFFS2] Fix buffer length calculations in jffs2_get_inode_nodes() + * Fix vmi.c compilation + * x86_64: allocate sparsemem memmap above 4G + * Add select PHYLIB to the UCC_GETH Kconfig option + * Fix possible UDF data corruption + * m68k: parenthesis balance + * msi: fix the ordering of msix irqs + * msi: mask the msix vector before we unmap it + * potential parse error in ifdef + * parse errors in ifdefs + * pci_ids: update patch for Intel ICH9M + * x86: fix oprofile double free + * Work around Dell E520 BIOS reboot bug + * fix compat futex code for private futexes + * skeletonfb: fix of xxxfb_setup ifdef + * vt8623fb: arkfb: null pointer dereference fix + * cfag12864bfb: Use sys_ instead of cfb_ framebuffer accessors + * fbdev: Move declaration of fb_class to + * misc/tifm_7xx1: replace deprecated irq flag + * add a trivial patch style checker + * Documentation: How to use GDB to decode OOPSes + * RTC: use fallback IRQ if PNP tables don't provide one + * memory hotplug: fix unnecessary calling of init_currenty_empty_zone() + * tty: fix leakage of -ERESTARTSYS to userland + * ISDN4Linux: fix maturity label + * Fix broken CLIR in isdn driver + * prism54: MAINTAINERS update + * atmel_spi dma address bugfix + * h8300 trival patches + * ALPHA: support graphics on non-zero PCI domains + * ALPHA: correct low-level I/O routines for sable-lynx + * ALPHA: misc fixes + * Better documentation for ERESTARTSYS + * serial_core.h: include + * SPI: Freescale iMX SPI controller driver fixes + * SLUB: fix locking for hotplug callbacks + * pm3fb: switching between X and fb fix + * microcode: fix section mismatch warning + * isdn: fix section mismatch warnings + * acpi: fix section mismatch warning in asus + toshiba + * kvm: fix section mismatch warning in kvm-intel.o + * net/hp100: fix section mismatch warning + * timer statistics: fix race + * timer stats: speedups + * [SCSI] aacraid: fix shutdown handler to also disable interrupts. + * [MTD] Fix error checking after get_mtd_device() in get_sb_mtd functions + * [JFFS2] Fix obsoletion of metadata nodes in jffs2_add_tn_to_tree() + * ACPI: Section mismatch ... acpi_map_pxm_to_node + * ACPICA: Support for external package objects as method arguments + * Pull now into release branch + * Pull osi-now into release branch + * [POWERPC] Update documentation for of_find_node_by_type() + * [POWERPC] Fix ppc32 single-stepping out of syscalls + * [POWERPC] Fix compiler/assembler flags for Ebony platform boot files + * [POWERPC] Fix possible access to free pages + * [POWERPC] ps3/interrupt.c uses get_hard_smp_processor_id + * [POWERPC] pasemi idle uses hard_smp_processor_id + * [POWERPC] Create a zImage for legacy iSeries + * [POWERPC] Don't use HOSTCFLAGS in BOOTCFLAGS + * [POWERPC] Fix compile warning in pseries xics code + * [POWERPC] Fix return from pte_alloc_one() in out-of-memory case + * [POWERPC] Compare irq numbers with NO_IRQ not IRQ_NONE + * [POWERPC] Don't allow PMAC_APM_EMU for 64-bit + * [POWERPC] Fix compile breakage for IBM/AMCC 4xx arch/ppc platforms + * [POWERPC] Fix zImage.coff generation for 32-bit pmac + * [ARM] 4392/2: Do not corrupt the SP register in compressed/head.S + * [ARM] 4418/1: AT91: Number of programmable clocks differs + * [ARM] 4419/1: AT91: SAM9 USB clocks check for suspending + * [ARM] 4422/1: Fix default value handling in gpio_direction_output (PXA) + * [ARM] Solve buggy smp_processor_id() usage + * qla3xxx: device doesnt do hardware checksumming. + * VLAN: kill_vid is only useful for VLAN filtering devices + * sky2: Fix VLAN unregistration + * 8139cp: fix VLAN unregistration + * atl1: eliminate unneeded kill_vid code + * network drivers: eliminate unneeded kill_vid code + * e1000: disable polling before registering netdevice + * smc91x: sh solution engine fixes. + * Update tulip maintainer email address + * NetXen: Removal of extra free_irq call + * myri10ge: report link up/down in standard ethtool way + * NET: add MAINTAINERS entry for ucc_geth driver + * [ARM] 4421/1: AT91: Value of _KEY fields. + * [PARISC] Fix bug when syscall nr is __NR_Linux_syscalls + * [AF_UNIX]: Make socket locking much less confusing. + * [TG3]: Fix link problem on Dell's onboard 5906. + * [AF_UNIX]: Fix datagram connect race causing an OOPS. + * [TCP]: Use default 32768-61000 outgoing port range in all cases. + * [ATM]: Fix warning. + * [NET]: Make net watchdog timers 1 sec jiffy aligned. + * [NET]: Fix comparisons of unsigned < 0. + * [TCP]: Fix GSO ignorance of pkts_acked arg (cong.cntrl modules) + * [NET] gso: Fix GSO feature mask in sk_setup_caps + * [IPV4]: Fix "ipOutNoRoutes" counter error for TCP and UDP + * [ICMP]: Fix icmp_errors_use_inbound_ifaddr sysctl + * [VIDEO]: XVR500 and XVR2500 require FB=y + * [ATA]: Don't allow to enable this for SPARC64 without PCI. + * sh: Fix in_nmi symbol build error. + * sh: microdev: Fix compile warnings. + * sh: Fix SH4-202 clock fwk set_rate() mismatch. + * sh: voyagergx: Fix build warnings. + * sh: ioremap() through PMB needs asm/mmu.h. + * sh: Fix se73180 platform device registration. + * Input: ucb1x00 - do not access input_dev->private directly + * Input: reduce raciness when input handlers disconnect + * [PARISC] Fix kernel panic in check_ivt + * [SCSI] atari_NCR5380: update_timeout removal + * [SCSI] JAZZ ESP and SUN ESP need SPI_ATTRS + * [CIFS] fix mempool destroy done in wrong order in cifs error path + * SPI dynamic busid generation bugfix + * mtrr atomicity fix + * vanishing ioctl handler debugging + * libata: always use polling SETXFER + * Linux 2.6.22-rc4 + * [SPARC64]: Move topology init code into new file, sysfs.c + * [SPARC64]: Export basic cpu properties via sysfs. + * [SPARC64]: Fix service channel hypervisor function names. + * [SPARC64]: Provide mmu statistics via sysfs. + * [SPARC64]: Proper multi-core scheduling support. + * [SPARC64]: Make core and sibling groups equal on UltraSPARC-IV. + * [SPARC64]: Fix {mc,smt}_capable(). + * [SPARC64]: Fill in gaps in non-PCI dma_*() NOP implementation. + * [ATA]: Back out bogus (SPARC64 && !PCI) Kconfig depends. + * [VIDEO]: Fix section mismatch warning in promcon. + * [CIFS] whitespace cleanup + * [ARM] Fix 4417/1: Serial: Fix AMBA drivers locking + * [VIDEO] ffb: The pseudo_palette is only 16 elements long + * [ARM] pxa: fix pxa27x keyboard driver + * [VIDEO] sunxvr2500fb: Fix pseudo_palette array size + * [VIDEO] sunxvr500fb: Fix pseudo_palette array size + * [CIFS] whitespace cleanup part 2 + * [CIFS] Missing flag on negprot needed for some servers to force packet + signing + * [MIPS] Atlas, Malta, SEAD: Remove scroll from interrupt handler. + * [MIPS] Remove duplicate fpu enable hazard code. + * [MIPS] EMMA2RH: remove dead KGDB code + * [MIPS] RM300: Fix MMIO problems by marking the PCI INT ACK region busy + * [MIPS] Fix VGA corruption on RM300C + * [MIPS] Drop __ARCH_WANT_SYS_FADVISE64 + * [MIPS] Make dma_map_sg handle sg elements which are longer than one + page + * [MIPS] Fix some system calls with long long arguments + * [MIPS] Remove prototype for deleted function qemu_handle_int + * [MIPS] Fix some minor typoes in arch/mips/Kconfig. + * [MIPS] Fix warning by moving do_default_vi into CONFIG_CPU_MIPSR2_SRS + * [AGPGART] intel_agp: cleanup intel private data + * [AGPGART] intel_agp: use table for device probe + * [AGPGART] intel_agp: add support for 965GME/GLE + * [AGPGART] intel_agp: add support for 945GME + * [AGPGART] intel_agp: Add support for G33, Q33 and Q35 chipsets + * ocfs2: Fix masklog breakage + * ocfs2: Fix invalid assertion during write on 64k pages + * [POWERPC] pasemi: Fix iommu + 64K PAGE_SIZE bug + * [POWERPC] spufs: Refuse to load the module when not running on cell + * [POWERPC] spufs: Hook up spufs_release_mem + * [POWERPC] spufs: Fix gang destroy leaks + * [POWERPC] spufs: Free mm if spufs_fill_dir() failed + * [POWERPC] spufs: Synchronize pte invalidation vs ps close + * [POWERPC] spufs scheduler: Fix wakeup races + * [POWERPC] Fix pci_setup_phb_io_dynamic for pci_iomap + * [POWERPC] cbe_cpufreq: Limit frequency via cpufreq notifier chain + * [POWERPC] scc_sio: Fix link failure + * [POWERPC] Fix typo in booting-without-of-txt section numbering + * [POWERPC] spufs: Don't yield nosched context + * [POWERPC] Add table of contents to booting-without-of.txt + * [POWERPC] spufs: Fix error handling in spufs_fill_dir() + * mmc-atmel: remove linux/mmc/protocol.h dependencies + * au1xmmc: Replace C code with call to ARRAY_SIZE() macro. + * mmc: fix broken if clause + * mmc: don't call switch on old cards + * [POWERPC] Fix building of COFF zImages + * checkpatch.pl: should be executable + * Restrict clearing TIF_SIGPENDING + * mlx4_core: Fix CQ context layout + * mlx4_core: Initialize ctx_list and ctx_lock earlier + * mlx4_core: Free catastrophic error MSI-X interrupt with correct dev_id + * IB/mthca, mlx4_core: Fix typo in comment + * [BNX2]: Fix netdev watchdog on 5708. + * [BNX2]: Add missing wait in bnx2_init_5709_context(). + * [BNX2]: Enable DMA on 5709. + * [BNX2]: Fix occasional counter corruption on 5708. + * [BNX2]: Update version and reldate. + * [TCP]: Honour sk_bound_dev_if in tcp_v4_send_ack + * [IPV4]: Only panic if inetdev_init fails for loopback + * [IPV4]: Convert IPv4 devconf to an array + * [IPV4]: Add default config support after inetdev_init + * [IPV4]: Restore old behaviour of default config values + * [RFKILL]: Make rfkill->name const + * [TCP]: Use LIMIT_NETDEBUG in tcp_retransmit_timer(). + * [TCP] tcp_probe: Attach printf attribute properly to printl(). + * [NETLINK]: Mark netlink policies const + * [RTNETLINK]: ifindex 0 does not exist + * [NETFILTER]: nf_conntrack: fix helper module unload races + * [NETFILTER]: ip_tables: fix compat related crash + * [NETFILTER]: nf_conntrack_amanda: fix textsearch_prepare() error check + * [AF_UNIX]: Fix stream recvmsg() race. + * [UDP]: Revert 2-pass hashing changes. + * [NET]: Avoid duplicate netlink notification when changing link state + * [NET_SCHED]: Fix filter double free + * xfrm: Add security check before flushing SAD/SPD + * [SPARC64]: Fix 2 bugs in PCI Sabre bus scanning. + * [SPARC64]: Fix SBUS IRQ regression caused by PCI-E driver. + * frv: build fix + * enable interrupts in user path of page fault. + * RAMFS NOMMU: missed POSIX UID/GID inode attribute checking + * [SPARC64]: Include instead of . + * [SPARC64]: Handle PCI bridges without 'ranges' property. + * mlx4_core: Check firmware command interface revision + * mlx4_core: Don't set MTT address in dMPT entries with PA set + * IB/mlx4: Fix zeroing of rnr_retry value in ib_modify_qp() + * RDMA/cma: Fix initialization of next_port + * IB/mlx4: Make sure RQ allocation is always valid + * splice: move inode size check into generic_file_splice_read() + * splice: remove do_splice_direct() symbol export + * pipe: move pipe_inode_info structure decleration up before it's used + * splice: move balance_dirty_pages_ratelimited() outside of splice actor + * splice: __generic_file_splice_read: fix i_size_read() length checks + * splice: __generic_file_splice_read: fix read/truncate race + * V4L/DVB (5702): Fix Kconfig items to avoid linkedition errors + * V4L/DVB (5700): Saa7111: fix picture settings cache bug + * V4L/DVB (5699): Cinergyt2: fix file release handler + * V4L/DVB (5675): Move big PIO accesses from the interrupt handler to a + workhandler + * V4L/DVB (5716): Tda10086,tda826x: fix tuning, STR/SNR values + * V4L/DVB (5720): Usbvision: fix urb allocation and submits + * V4L/DVB (5730): Remove unused V4L2_CAP_VIDEO_OUTPUT_POS + * V4L/DVB (5732): Add ivtv CROPCAP support and fix ivtv S_CROP for video + output. + * V4L/DVB (5736): Add V4L2_FBUF_CAP/FLAG_LOCAL/GLOBAL_INV_ALPHA + * V4L/DVB (5673): Fix audio stuttering for saa711x/ivtv when in radio + mode. + * V4L/DVB (5761): Fix broken b2c2 dependency on non x86 architectures + * V4L/DVB (5751): Ivtv: fix ia64 printk format warnings. + * serverworks: remove crappy code + * serverworks: fix CSB6 tuning logic + * it821x: RAID mode fixes + * ide: HPA detect from resume + * ide: generic IDE PCI driver, add another device exception + * hpt366: disallow Ultra133 for HPT374 + * Add the PATA controller device ID to pci_ids.h for MCP73/MCP77. + * ide: Add the MCP73/77 support to PATA driver + * [CIFS] CIFS should honour umask + * update Documentation/driver-model/platform.txt + * Driver core: keep PHYSDEV for old struct class_device + * Driver core: kill unused code + * kobject: use the proper printk level for kobject error + * firmware: remove orphaned Email + * [IPV4]: Do not remove idev when addresses are cleared + * [NetLabel]: consolidate the struct socket/sock handling to just struct + sock + * [CIPSO]: Fix several unaligned kernel accesses in the CIPSO engine. + * USB: set default y for CONFIG_USB_DEVICE_CLASS + * usblp: Don't let suspend to kill ->used + * USB: usb gadgets avoid le{16,32}_to_cpup() + * USB: UNUSUAL_DEV: Sync up some reported devices from Ubuntu + * USB: cxacru: add Documentation file + * USB: cxacru: create sysfs attributes in atm_start instead of bind + * USB: cxacru: ignore error trying to start ADSL in atm_start + * USB: Fix up bogus bInterval values in endpoint descriptors + * OHCI: Fix machine check in ohci_hub_status_data + * update checkpatch.pl to version 0.03 + * m68knommu: fix ColdFire timer off by 1 + * nommu: report correct errno in message + * loop: preallocate eight loop devices + * document Acked-by: + * update feature-removal-schedule.txt to include deprecated functions + * mount -t tmpfs -o mpol=: check nodes online + * slab: fix alien cache handling + * potential parse error in ifdef part 3 + * SLUB: return ZERO_SIZE_PTR for kmalloc(0) + * uml: fix kernel stack size on x86_64 + * Documentation/atomic_ops.txt typo fix + * Move three functions that are only needed for CONFIG_MEMORY_HOTPLUG + * Char: stallion, don't fail with less than max panels + * Char: stallion, alloc tty before pci devices init + * Char: stallion, proper fail return values + * uml: get declaration of simple_strtoul + * isdn/diva: fix section mismatch + * sata_promise: use TF interface for polling NODATA commands + * rt-mutex: fix stale return value + * rt-mutex: fix chain walk early wakeup bug + * pi-futex: fix exit races and locking problems + * fix sysrq-m oops + * x86_64: oops_begin() fix + * reiserfs: mailing list has moved + * checkpatch: produce fewer lines of output + * MAINTAINERS: corrections + * hexdump: more output formatting + * update checkpatch.pl to version 0.04 + * Protect from multiple inclusion + * [IrDA]: Fix Rx/Tx path race. + * [IrDA]: f-timer reloading when sending rejected frames. + * ibmveth: Fix h_free_logical_lan error on pool resize + * ibmveth: Automatically enable larger rx buffer pools for larger mtu + * typo in via-velocity.c + * NetXen: Fix ping issue after reboot on Blades with 3.4.19 firmware + * NetXen: Fix compile failure seen on PPC architecture + * ehea: Fixed possible kernel panic on VLAN packet recv + * phylib: add RGMII-ID mode to the Marvell m88e1111 PHY to fix broken + ucc_geth + * net: fix typo in drivers/net/usb/Kconfig + * remove unused variable in pata_isapnp + * libata: disable NCQ for HITACHI HTS541680J9SA00/SB21C7EP + * libata: fix probe time irq printouts + * libata: print device model and firmware revision for ATAPI devices + * libata: fix hw_sata_spd_limit initialization + * ahci: Add MCP73/MCP77 support to AHCI driver + * libata-core/sff: Fix multiple assumptions about DMA + * libata: Correct abuse of language + * libata passthru: update protocol numbers + * libata passthru: support PIO multi commands + * libata passthru: map UDMA protocols + * libata passthru: always enforce correct DEV bit + * libata passthru: update cached device paramters + * i915: add new pciids for 945GME, 965GME/GLE + * drm/i915: Add support for the G33, Q33, and Q35 chipsets. + * drm: fix radeon setparam on 32/64 bit systems. + * [ARM] VFP: fix section mismatch error + * libata: force PIO on IOMEGA ZIP 250 ATAPI + * libata: limit post SRST nsect/lbal wait to ~100ms + * Blackfin arch: remove defconfig file + * Blackfin arch: DMA code minor naming convention fix + * Blackfin arch: spelling fixes + * Blackfin arch: fix bug ad1836 fails to build properly for BF533-EZKIT + * Blackfin arch: all symbols were offset by 4k, since we didn't have the + __text label. + * Blackfin arch: mark our memory init functions with __init so they get + freed after init + * Blackfin arch: implement a basic /proc/sram file for L1 allocation + visibility + * Blackfin arch: fixup Blackfin MAINTIANERS team member list + * Blackfin arch: scrub old console defines + * Blackfin arch: update defconfigs + * Blackfin arch: unify differences between our diff head.S files -- no + functional changes + * Blackfin arch: move more of our startup code to .init so it can be + freed once we are up and running + * Blackfin arch: add proper ENDPROC() + * Blackfin arch: try to split up functions like this into smaller units + according to LKML review + * Blackfin arch: fix spelling typo in output + * Blackfin arch: As Mike pointed out range goes form m..MAX_BLACKFIN_GPIO + -1 + * Blackfin arch: add missing gpio.h header to fix compiling in some pm + configurations + * Blackfin arch: add support for Alon Bar-Lev's dynamic kernel + command-line + * Blackfin arch: fix bug can not wakeup from sleep via push buttons + * Blackfin arch: make sure we initialize our L1 Data B section properly + based on the linked kernel + * Blackfin arch: redo our linker script a bit + * Blackfin arch: move HI/LO macros into blackfin.h and punt the rest of + macros.h as it includes VDSP macros we never use + * Blackfin serial driver: hook up our UARTs STP bit with userspaces + CMSPAR + * Blackfin serial driver: ignore framing and parity errors + * Blackfin serial driver: actually implement the break_ctl() function + * Blackfin serial driver: decouple PARODD and CMSPAR checking from PARENB + * Blackfin RTC drivers: update MAINTAINERS information + * Blackfin SPI driver: tweak spi cleanup function to match newer kernel + changes + * [ARM] 4442/1: OSIRIS: Fix CPLD register definitions + * [ARM] 4443/1: OSIRIS: Add watchdog device to machine devices + * [ARM] 4444/2: OSIRIS: CPLD suspend fix + * [ARM] 4445/1: ANUBIS: Fix CPLD registers + * Blackfin SPI driver: fix bug SPI DMA incomplete transmission + * Blackfin SMC91X ethernet supporting driver: SMC91C111 LEDs are note + drived in the kernel like in uboot + * [MIPS] Fix KMODE for the R3000 + * [MIPS] SMTC: Don't set and restore irqregs ptr from self_ipi. + * [MIPS] Always install the DSP exception handler. + * [MIPS] Atlas: Fix build. + * [MIPS] Wire up utimensat, signalfd, timerfd, eventfd + * [MIPS] SMTC: Fix warning. + * [MIPS] SMTC: Don't continue in set_vi_srs_handler on detected bad + arguments. + * [MIPS] SMTC: The MT ASE requires to initialize c0_pagemask and + c0_wired. + * [MIPS] SMTC: Fix build error caused by nonsense code. + * [MIPS] Fix modpost warnings by making start_secondary __cpuinit + * [MIPS] Fix IP27 build + * [MIPS] Fix smp barriers in test_and_{change,clear,set}_bit + * libertas: scan two channels per scan command + * libertas: rename wlan_association_worker + * libertas: a debug output was missing a newline + * libertas: fix removal of all debugfs files + * libertas: remove deprecated pm_register and associated code + * libertas: remove __FILE__ from debug output + * libertas: remove unused/superfluous definitions of DEV_NAME_LEN + * libertas: move vendor & product id's into if_usb.c + * libertas: make libertas_wlan_data_rates static + * libertas: fix scanning from associate path + * libertas: exclude non-used code when PROC_DEBUG is not set + * libertas: make debug configurable + * libertas: tune debug code + * libertas: single out mesh code + * libertas: change debug output of libertas_interrupt() + * libertas: get rid of libertas_sbi_get_priv() + * libertas: fix SSID output + * libertas: changed some occurences of kmalloc() + memset(&a,0,sz) to + kzalloc() + * libertas: move reset_device() code main.c to if_usb.c + * libertas: split wlan_add_card() + * libertas: fixed transmission flow control on the mesh interface + * libertas: fix error handling of card initialization + * libertas: added transmission failures to mesh statistics + * libertas: wakeup both mesh and normal wakeup when getting out of scan + * libertas: indirect all hardware access via hw_XXXX functions + * libertas: move contents of fw.h to decl.h + * libertas: split module into two (libertas.ko and usb8xxx.ko) + * libertas: fix RESET logic at unload time + * libertas: let DRV_NAME be overridable + * libertas: remove unused variables in wlan_dev_t + * libertas: fixed incorrect assigment of fcs errors to frag errors + * libertas: add URB debug info + * libertas: fixed kernel oops on module/card removal + * libertas: call SET_NETDEV_DEV from common code + * libertas: replace 'macaddress' with 'bssid' + * libertas: correctly unregister mesh netdev on error + * libertas: don't tear down netdev in libertas_activate_card + * libertas: version bump (321p0) and cmds update for new fw (5.220.10.p0) + * libertas: updated mesh commands for 5.220.9.p11 + * libertas: make scan result handling more flexible + * libertas: fix 'keep previous scan' behavior + * libertas: cleanup of fwt_list_route processing + * libertas: fix oops on rmmod + * libertas: move channel changing into association framework + * libertas: make association paths consistent + * libertas: use MAC_FMT and MAC_ARG where appropriate + * libertas: use compare_ether_addr() rather than memcmp() where + appropriate + * libertas: fix debug enter/leave prints for + libertas_execute_next_command + * libertas: correctly balance locking in libertas_process_rx_command + * libertas: correct error report paths for wlan_fwt_list_ioctl + * libertas: fix deadlock SIOCGIWSCAN handler + * libertas: fix default adhoc channel + * libertas: honor specific channel requests during association + * libertas: send SIOCGIWSCAN event after partial scans too + * libertas: debug print spacing fixes in assoc.c + * libertas: add more verbose debugging to libertas_cmd_80211_authenticate + * libertas: Make WPA work through supplicant handshake + * libertas: updated readme file + * libertas: make mac address configuration work with mesh interface too + * libertas: split wext for eth and msh + * libertas: support for mesh autostart on firmware 5.220.11 + * libertas: fix character set in README + * libertas: sparse fixes + * libertas: first pass at fixing up endianness issues + * libertas: More endianness fixes. + * libertas: more endianness fixes, in tx.c this time + * libertas: don't byte-swap firmware version number. It's a byte array. + * libertas: fix big-endian associate command. + * libertas: tweak association debug output + * libertas: remove structure WLAN_802_11_SSID and libertas_escape_essid + * libertas: remove WPA_SUPPLICANT structure + * libertas: reduce SSID and BSSID mixed-case abuse + * kbuild: fix sh64 section mismatch problems + * cfg80211: fix signed macaddress in sysfs + * mac80211: fix debugfs tx power reduction output + * mac80211: Don't stop tx queue on master device while scanning. + * Input: usbtouchscreen - fix fallout caused by move from drivers/usb + * Input: i8042 - add ASUS P65UP5 to the noloop list + * Input: i8042 - add ULI EV4873 to noloop list + * [PARISC] remove global_ack_eiem + * libertas: pull current channel from firmware on mesh autostart + * libertas: deauthenticate from AP in channel switch + * libertas: actually send mesh frames to mesh netdev + * libertas: convert libertas_mpp into anycast_mask + * [PPP_MPPE]: Fix "osize too small" check. + * NetXen: Fix link status messages + * myri10ge: limit the number of recoveries + * myri10ge: report when the link partner is running in Myrinet mode + * myri10ge: update driver version + * sysfs: store sysfs inode nrs in s_ino to avoid readdir oopses + * sysfs: fix condition check in sysfs_drop_dentry() + * sysfs: fix race condition around sd->s_dentry, take#2 + * [TCP]: Fix left_out setting during FRTO + * Input: move input-polldev to drivers/input + * [SPARC64]: Wire up cookie based sun4v interrupt registry. + * [SPARC64]: Fix IO/MEM space sizing for PCI. + * [SPARC64]: Really fix parport. + * [SPARC64]: Fix args to sun4v_ldc_revoke(). + * [TCP]: Set initial_ssthresh default to zero in Cubic and BIC. + * mmc-omap: fix sd response type 6 vs. 1 + * mmc: get back read-only switch function + * [SCTP]: Correctly set daddr for IPv6 sockets during peeloff + * [SCTP]: Allow unspecified port in sctp_bindx() + * [SCTP] Fix leak in sctp_getsockopt_local_addrs when copy_to_user fails + * [SCTP] Update pmtu handling to be similar to tcp + * [SCTP] Flag a pmtu change request + * [SCTP] Don't disable PMTU discovery when mtu is small + * [POWERPC] Fix per-cpu allocation on oldworld SMP powermacs + * [POWERPC] Fix console output getting dropped on platforms without + udbg_putc + * [AVR32] ratelimit segfault reporting rate + * [AVR32] gpio_*_cansleep() fix + * [AVR32] STK1000: Set SPI_MODE_3 in the ltv350qv board info + * [AVR32] Define ARCH_KMALLOC_MINALIGN to L1_CACHE_BYTES + * [MIPS] Malta: Fix for SOCitSC based Maltas + * [MIPS] Separate performance counter interrupts + * [MIPS] Fix builds where MSC01E_xxx is undefined. + * [TCP]: Add missing break to TCP option parsing code + * [IPV6] addrconf: Fix IPv6 on tuntap tunnels + * [AGPGART] intel_agp: fix device probe + * KVM: Prevent guest fpu state from leaking into the host + * splice: adjust balance_dirty_pages_ratelimited() call + * splice: fix leak of pages on short splice to pipe + * splice: only check do_wakeup in splice_to_pipe() for a real pipe + * [TCP]: Congestion control API RTT sampling fix + * [TCP]: Fix logic breakage due to DSACK separation + * [RXRPC] net/rxrpc/ar-connection.c: fix NULL dereference + * block: always requeue !fs requests at the front + * mm: Fix memory/cpu hotplug section mismatch and oops. + * Resume from RAM on HPC nx6325 broken + * ide-scsi: fix OOPS in idescsi_expiry() + * fix radeon setparam on 32/64 systems, harder. + * tty: restore locked ioctl file op + * i386: fix NMI watchdog not reserving its MSRs + * i386: use the right wrapper to disable the NMI watchdog + * SLUB slab validation: Alloc while interrupts are disabled must use + GFP_ATOMIC + * Restore shmid as inode# to fix /proc/pid/maps ABI breakage + * i386 mm: use pte_update() in ptep_test_and_clear_dirty() + * cpuset: zero malloc - fix for old cpusets + * toshiba_acpi: fix section mismatch in allyesconfig + * swsusp: Fix userland interface + * perfctr-watchdog: fix interchanged parameters to + release_{evntsel,perfctr}_nmi + * fuse: ->fs_flags fixlet + * md: fix two raid10 bugs + * md: fix bug in error handling during raid1 repair + * spi doc updates + * uml: remove PAGE_SIZE from libc code + * uml: kill x86_64 STACK_TOP_MAX + * random: fix output buffer folding + * Rework ptep_set_access_flags and fix sun4c + * SLUB: minimum alignment fixes + * udf: fix possible leakage of blocks + * hugetlb: fix get_policy for stacked shared memory files + * shm: fix the filename of hugetlb sysv shared memory + * Linux 2.6.22-rc5 + * [GFS2] flush the glock completely in inode_go_sync + * [DLM] fix a couple of races + * [GFS2] kernel changes to support new gfs2_grow command + * [GFS2] Kernel changes to support new gfs2_grow command (part 2) + * [GFS2] use zero_user_page + * [GFS2] Addendum patch 2 for gfs2_grow + * [GFS2] Reduce size of struct gdlm_lock + * [GFS2] Clean up inode number handling + * [GFS2] Quotas non-functional - fix bug + * [DLM] keep dlm from panicing when traversing rsb list in debugfs + * [DLM] block scand during recovery [1/6] + * [DLM] add lock timeouts and warnings [2/6] + * [DLM] dlm_device interface changes [3/6] + * [DLM] cancel in conversion deadlock [4/6] + * [DLM] fix new_lockspace error exit [5/6] + * [DLM] wait for config check during join [6/6] + * [DLM] fix compile breakage + * [GFS2] latest gfs2-nmw headers break userland build + * [DLM] Compile fix + * [DLM] timeout fixes + * [DLM] canceling deadlocked lock + * [DLM] dumping master locks + * [DLM] show default protocol + * [GFS2] Quotas non-functional - fix another bug + * [GFS2] Make the log reserved blocks depend on block size + * [DLM] fix socket shutdown + * [GFS2] fix jdata issues + * [GFS2] Fix sign problem in quota/statfs and cleanup _host structures + * [GFS2] Add nanosecond timestamp feature + * [DLM] fix reference counting + * [DLM] variable allocation + * [GFS2] Fix typo in rename of directories + * [GFS2] Fix bug in error path of inode + * [GFS2] Can't mount GFS2 file system on AoE device + * [GFS2] Recovery for lost unlinked inodes + * [GFS2] gfs2_lookupi() uninitialised var fix + * [GFS2] set plock owner in GETLK info + * [GFS2] return conflicts for GETLK + * [GFS2] Fix deallocation issues + * [DLM] don't require FS flag on all nodes + * [GFS2] Journaled file write/unstuff bug + * [GFS2] Remove bogus '\0' in rgrp.c + * [GFS2] Use zero_user_page() in stuffed_readpage() + * [GFS2] assertion failure after writing to journaled file, umount + * [GFS2] Simplify multiple glock aquisition + * [GFS2] Addendum to the journaled file/unmount patch + + -- Ben Collins Fri, 01 Jun 2007 12:15:58 -0400 + +linux-source-2.6.22 (2.6.22-6.13) gutsy; urgency=low + + [Ben Collins] + + * Bump ABI + * build/scripts: Remove all remnants of debconf from control scripts + * build/config: Re-enable paravirt/vmi + * build/config: Build ide-core as a module + * i386/x86_64: Allow disabling the putstr's from compressed boot wrapper + * PM: Do not require dev spew to get PM_DEBUG + * RTC: Ratelimit "lost interrupts" message + * UNUSUAL_DEV: Sync up some reported devices from Ubuntu + * build/d-i: Include ide-core in storage-core udeb, not that it's modular + * build/d-i: Make ide-modules depend on storage-code-modules + * build/config: Enable CONFIG_TIMER_STATS on x86_64. + * build/config: Disable CONFIG_RTC_DRV_CMOS + * build/config: Enable TIMER_STATS everywhere. + * build/config: Enable SND_AC97_POWER_SAVE + - LP: #116679 + * kmod: Improve call_usermodehelper_pipe to handle data close + * coredump: Convert to new call_usermodehelper_pipe symantics + * PPC: Only set hwif stuff when ide-core is non-modular + * PPC/MEDIABAY: Export some functions for modular ide-core/ppc-ide + + [Colin Watson] + + * Move isofs to storage-core-modules udeb from fs-core-modules. + + [Upstream Kernel Changes] + + * Input: logips2pp - add type 72 (PS/2 TrackMan Marble) + * Input: adbhid - do not access input_dev->private directly + * sh: Shut up compiler warnings in __do_page_fault(). + * sh: Fix up psw build rules for r7780rp. + * sh: Kill off pmb slab cache destructor. + * sh: landisk: rtc-rs5c313 support. + * sh: landisk: Header cleanups. + * input: hp680_ts compile fixes. + * [ARM] 4375/1: sharpsl_pm: Fix compile warnings + * [ARM] 4376/1: Selects GENERIC_GPIO for ARCH_IXP4XX in Kconfig + * [ARM] 4378/1: KS8695: Serial driver fix + * [ARM] Remove Integrator/CP SMP platform support + * [ARM] 4382/1: iop13xx: fix msi support + * [ARM] 4383/1: iop: fix usage of '__init' and 'inline' in iop files + * [ARM] 4384/1: S3C2412/13 SPI registers offset correction + * [ARM] Update ARM syscalls + * [ARM] Silence OMAP kernel configuration warning + * [ARM] gic: Fix gic cascade irq handling + * [ARM] integrator: fix pci_v3 compile error with DEBUG_LL + * [ARM] ARMv6: add CPU_HAS_ASID configuration + * [CRYPTO] padlock: Make CRYPTO_DEV_PADLOCK a tristate again + * [CRYPTO] tcrypt: Add missing error check + * eventfd use waitqueue lock ... + * timerfd use waitqueue lock ... + * [IA64] Fix bogus messages about system calls not implemented. + * [IA64] Yet another section mismatch warning + * Fix roundup_pow_of_two(1) + * Further update of the i386 boot documentation + * cciss: Fix pci_driver.shutdown while device is still active + * Linux v2.6.22-rc2 + * [CRYPTO] api: Read module pointer before freeing algorithm + * powerpc: Fix the MODALIAS generation in modpost for of devices + * kbuild: include limits.h in sumversion.c for PATH_MAX + * kconfig: search harder for curses library in check-lxdialog.sh + * kbuild: make modpost section warnings clearer + * kbuild: make better section mismatch reports on i386, arm and mips + * kbuild: add "Section mismatch" warning whitelist for powerpc + * all-archs: consolidate .text section definition in asm-generic + * all-archs: consolidate .data section definition in asm-generic + * kbuild: introduce __init_refok/__initdata_refok to supress section + mismatch warnings + * init/main: use __init_refok to fix section mismatch + * mm: fix section mismatch warnings + * mm/slab: fix section mismatch warning + * IB/core: Free umem when mm is already gone + * IB/ipath: Fix potential deadlock with multicast spinlocks + * IB/core: Add helpers for uncached GID and P_Key searches + * IB/core: Use start_port() and end_port() + * IPoIB: Handle P_Key table reordering + * IB/ehca: Return proper error code if register_mr fails + * IB/mthca: Fix use-after-free on device restart + * IB/mlx4: Fix check of max_qp_dest_rdma in modify QP + * IB/mthca: Set GRH:HopLimit when building MLX headers + * IB/mlx4: Set GRH:HopLimit when sending globally routed MADs + * IB/mthca: Fix RESET to ERROR transition + * IB/mlx4: Fix RESET to RESET and RESET to ERROR transitions + * mlx4_core: Fix array overrun in dump_dev_cap_flags() + * IB/mlx4: Fix check of opcode in mlx4_ib_post_send() + * [IPV6]: Add ip6_tunnel.h to headers_install + * [RFKILL]: Fix check for correct rfkill allocation + * [NET]: Fix net/core/skbuff.c gcc-3.2.3 compilation error + * [TCP] FRTO: Add missing ECN CWR sending to one of the responses + * [TCP] FRTO: Prevent state inconsistency in corner cases + * [IPSEC] pfkey: Load specific algorithm in pfkey_add rather than all + * [NETFILTER]: nf_conntrack: fix use-after-free in helper destroy + callback invocation + * [NETFILTER]: nf_conntrack_ipv4: fix incorrect #ifdef config name + * [IPV4]: icmp: fix crash with sysctl_icmp_errors_use_inbound_ifaddr + * [NET]: Fix race condition about network device name allocation. + * IB/mlx4: Pass send queue sizes from userspace to kernel + * [ARM] 4387/1: fix /proc/cpuinfo formatting for pre-ARM7 parts + * [ARM] 4388/1: no need for arm/mm mmap range checks for non-mmu + * [ARM] 4395/1: S3C24XX: add include of to relevant + machines + * [ARM] 4396/1: S3C2443: Add missing HCLK clocks + * [ARM] 4397/1: S3C2443: remove SDI0/1 IRQ ambiguity + * [ARM] 4398/1: S3C2443: Fix watchdog IRQ number + * [ARM] 4399/2: S3C2443: Fix SMDK2443 nand timings + * [ARM] 4400/1: S3C24XX: Add high-speed MMC device definition + * [ARM] at91_adc parenthesis balance + * [ARM] spelling fixes + * IB/mlx4: Check if SRQ is full when posting receive + * spelling fixes: arch/sh/ + * sh: revert addition of page fault notifiers + * sh: Wire up signalfd/timerfd/eventfd syscalls. + * sh: Fix up various compile warnings for SE boards. + * sh: Fix page size alignment in __copy_user_page(). + * sh: Disable psw support for R7785RP. + * fs: Kill sh dependency for binfmt_flat. + * sh: disable genrtc support. + * sh: sr.bl toggling around idle sleep. + * sh: Wire up kdump crash kernel exec in die(). + * sh: Fix clock multiplier on SH7722. + * sh: Fix dreamcast build for IRQ changes. + * [S390] cio: Update documentation. + * [S390] Wire up sys_utimensat. + * [S390] Wire up signald, timerfd and eventfd syscalls. + * [S390] Make use of kretprobe_assert. + * [S390] More verbose show_mem() like other architectures. + * Fix "fs: convert core functions to zero_user_page" + * Detach sched.h from mm.h + * Blackfin arch: Add Workaround for ANOMALY 05000257 + * Blackfin arch: add SPI MMC driver support on bf533-stamp, tested on + STAMP-BF533 + * Blackfin arch: ISP1761 doesn't work for USB flash disk + * Blackfin arch: fix a few random warnings + * Blackfin arch: Add configuration data for ISP176x on BF561 + * Blackfin arch: mark a bunch of local functions as static + * Blackfin arch: Fix reserved map after we changed PORT_H definition + * Blackfin arch: Move write to VR_CTL closer to IDLE + * Blackfin arch: DMA operation cleanup + * Blackfin arch: GPIO fix some defines + * Blackfin arch: fix trace output for FLAT binaries + * Blackfin arch: Fix bug using usb keyboard crashes kernel + * Blackfin arch: initial tepla-bf561 board support + * Blackfin arch: make sure we declare the revid functions as pure (since + they are) + * Blackfin arch: dont clear status register bits in SWRST so we can + actually use it + * Blackfin arch: finish removing p* volatile defines for MMRs + * Blackfin arch: move board specific setup out of common init code and + into the board specific init code + * Blackfin arch: issue reset via SWRST so we dont clobber the watchdog + state + * Blackfin arch: document why we have to touch the UART peripheral in our + boot up code + * Blackfin arch: dma_memcpy borken for > 64K + * Blackfin arch: dont clear the bit that tells coreb to start booting + * Blackfin arch: make sure we use local labels + * Blackfin arch: update blackfin header files to latest one in VDSP. + * Blackfin arch: cache SWRST value at bootup so other things like + watchdog can non-destructively query it + * Blackfin arch: fix signal handling bug + * Blackfin arch: Change NO_ACCESS_CHECK to ACCESS_CHECK + * Blackfin arch: add board default configs to blackfin arch + * Blackfin arch: update defconfig files + * Blackfin arch: update pm.c according to power management API change. + * Blackfin serial driver: fix overhead issue + * Blackfin serial driver: implement support for ignoring parity/break + errors + * Blackfin SPI: cleanup according to David Brownell's review + * x86_64: Update defconfig + * i386: Update defconfig + * x86_64: Support x86_64 in make buildtar + * i386: Fix K8/core2 oprofile on multiple CPUs + * x86_64: Support gcc 5 properly + * i386: Clear MCE flag on AMD K6 + * i386: Fix wrong CPU error message in early boot path + * i386: Enable CX8/PGE CPUID bits early on VIA C3 + * x86_64: early_print kernel console should send CRLF not LFCR + * x86_64: vsyscall time() fix + * i386: fix PGE mask + * LDM: Fix for Windows Vista dynamic disks + * IB/ipoib: Fix typos in error messages + * IPoIB/cm: Fix SRQ WR leak + * IB/cm: Improve local id allocation + * e1000: Don't enable polling in open() (was: e1000: assertion hit in + e1000_clean(), kernel 2.6.21.1) + * declance: Remove a dangling spin_unlock_irq() thingy + * Add constant for FCS/CRC length (frame check sequence) + * ahci: disable 64bit dma on sb600 + * libata: Add Seagate STT20000A to DMA blacklist. + * pata_hpt366: Enable bits are unreliable so don't use them + * ata_piix: clean up + * libata: Kiss post_set_mode goodbye + * libata: Trim trailing whitespace + * partitions/LDM: build fix + * Make 'headerscheck' stop immediately on an error + * Fix headers check fallout + * [POWERPC] Fix smp_call_function to be preempt-safe + * [POWERPC] Add missing pmc_type fields in cpu_table + * [POWERPC] Fix typo: MMCR0_PMA0 != MMCR0_PMAO + * [POWERPC] Fix powerpc vmlinux.lds.S + * [POWERPC] Fix warning in 32-bit builds with CONFIG_HIGHMEM + * libertas: skb dereferenced after netif_rx + * drivers/net/wireless/libertas/fw.c: fix use-before-check + * drivers/net/wireless/libertas/rx.c: fix use-after-free + * [IA64] Improve unwind checking. + * [IA64] Only unwind non-running tasks. + * [IA64] fix kmalloc(0) in arch/ia64/pci/pci.c + * i2c: Legacy i2c drivers shouldn't issue uevents + * i2c-tiny-usb: Fix truncated adapter name + * i2c-s3c2410: Fix build warning + * V4L/DVB (5639): Fix Kconfig dependencies for ivtv + * V4L/DVB (5640): Fix: em28xx shouldn't be selecting VIDEO_BUF + * V4L/DVB (5670): Adding new fields to v4l2_pix_format broke the ABI, + reverted that change + * V4L/DVB (5639a): Fix dst usage count + * V4L/DVB (5630): Dvb-core: Handle failures to create devices + * V4L/DVB (5680): Tuner-simple.c fix suport for SECAM with FI1216MF + * V4L/DVB (5690): Cafe_ccic: Properly power down the sensor + * V4L/DVB (5691): Ov7670: reset clkrc in rgb565 mode + * [IPSEC]: Fix warnings with casting int to pointer + * [AF_RXRPC]: AF_RXRPC depends on IPv4 + * [AF_RXRPC]: Make call state names available if CONFIG_PROC_FS=n + * [RTNETLINK]: Allow changing of subsets of netdevice flags in + rtnl_setlink + * [RTNETLINK]: Remove remains of wireless extensions over rtnetlink + * Input: iforce - fix force feedback not working + * Input: iforce - minor clean-ups + * Input: ALPS - force stream mode + * Input: ucb1400_ts - use sched_setscheduler() + * Input: ucb1x00-ts - remove commented out code + * Input: input-polldev - add module info + * Input: ads7846 - document that it handles tsc2046 too + * Input: ads7846 - SPI_CPHA mode bugfix + * USB: fix omninet memory leak found by coverity + * USB: remove useless check in mos7840 found by coverity + * usb-storage: ignore Sitecom WL-117 USB-WLAN + * USB: fix more ftdi-elan/u132-hcd #include lossage + * USB: handle more rndis_host oddities + * USB: remove usb DocBook warnings + * USB: address FIXME in usbnet w.r.t drivers claiming multiple interfaces + * EHCI: fix problem with BIOS handoff + * USB: more autosuspend timer stuff + * USB: remove unneeded WARN_ON + * USB: New device PID for ftdi_sio driver + * USB: set the correct Interrupt interval in usb_bulk_msg + * USB: fsl_usb2_udc: Fix UMTI_WIDE support and a compile warning + * USB: auerswald: fix file release handler + * USB: Remove duplicate IDs from option card driver + * USB: Deref URB after usbmon is done with it + * USB: remove short initial timeout for device descriptor fetch + * USB: don't try to kzalloc 0 bytes + * USB: Onetouch - switch to using input_dev->dev.parent + * USB: Fix debug output of ark3116 + * USB: usblp: Use correct DMA address in case of probe error + * USB: Fix USB OHCI Subvendor for Toshiba Portege 4000 + * USB: make the autosuspend workqueue thread freezable + * USB: handle errors in power/level attribute + * USB: fix ratelimit call semantics + * USB: ftdi_sio: Add USB Product Id for OpenDCC + * USB: ldusb bugfix + * USB: Add support for Sierra Wireless Aircard 595U + * USB: Add support for Olimex arm-usb-ocd JTAG interface serial port + * IB/mlx4: Don't allocate RQ doorbell if using SRQ + * [IA64] start_secondary() and smp_callin() should be __cpuinit + * add the IDE device ID for ATI SB700 + * ide/pci/serverworks.c: Fix corruption/timeouts with MegaIDE + * Add two missing chipsets to drivers/ide/ide-proc.c + * Match DMA blacklist entries between ide-dma.c and libata-core.c + * ide serverworks warning fixes + * freezer: close potential race between refrigerator and thaw_tasks + * freezer: fix vfork problem + * freezer: take kernel_execve into consideration + * freezer: fix kthread_create vs freezer theoretical race + * freezer: fix PF_NOFREEZE vs freezeable race + * freezer: move frozen_process() to kernel/power/process.c + * Ignore bogus ACPI info for offline CPUs + * SLUB Debug: Fix object size calculation + * fuse: fix mknod of regular file + * mpc52xx_psc_spi: fix it for CONFIG_PPC_MERGE + * spi doc update: describe clock mode bits + * NOHZ: Rate limit the local softirq pending warning output + * genhd: expose AN to user space + * genhd: send async notification on media change + * capability.h warning fix + * spi/spidev: check message size before copying + * uml: improve PTRACE_SYSEMU checking + * prohibit rcutorture from being compiled into the kernel + * Documentation: fix the explanation of Kconfig files + * Avoid zero size allocation in cache_k8_northbridges() + * recalc_sigpending_tsk fixes + * optimize compat_core_sys_select() by a using stack space for small fd + sets + * spi: potential memleak in spidev_ioctl + * fbdev: cleanup of sparc FB options + * pm2fb: RDAC_WR barriers clean up + * pm3fb: various fixes + * w100fb: fix compile warnings + * ps3fb: use FB_SYS_* instead of FB_CFB_* + * imxfb: remove ifdefs + * imxfb: fix memory hole + * Missing 'const' from reiserfs MIN_KEY declaration. + * uselib: add missing MNT_NOEXEC check + * fuse: generic_write_checks() for direct_io + * fuse: delete inode on drop + * fix unused setup_nr_node_ids + * SLUB Debug: fix check for super sized slabs (>512k 64bit, >256k 32bit) + * Char: cyclades, fix deadlock + * simplify cleanup_workqueue_thread() + * phantom: move to unlocked_ioctl + * Misc: phantom, take care of pci posting + * power: Fix sizeof(PAGE_SIZE) typo + * update dontdiff file + * signalfd: retrieve multiple signals with one read() call + * i2o: destroy event queue only when drv->event is set + * i2o: fix notifiers when max_drivers is configured + * i2o: eliminate a peculiar constraint on i2o_max_drivers + * i386, x86-64: show that CONFIG_HOTPLUG_CPU is required for suspend on + SMP + * md: avoid overflow in raid0 calculation with large components + * md: don't write more than is required of the last page of a bitmap + * md: fix bug with linear hot-add and elsewhere + * documentation: Documentation/initrd.txt + * HiSax: fix error checking for hisax_register()] + * applesmc - sensors patch missing from 2.6.22-rc2 + * Off by one in floppy.c + * eCryptfs: delay writing 0's after llseek until write + * document clocksources + * ehci-fsl: fix cache coherency problem on system with large memory + * Prevent going idle with softirq pending + * i386: fix early usage of atomic_add_return and local_add_return on real + i386 + * Documentation/memory-barriers.txt: various fixes + * omap_uwire: SPI_CPHA mode bugfix + * capifunc warning fixes + * drivers/isdn/hardware/eicon/message.c warning fixes + * i386 bigsmp: section mismatch fixes + * boot documentation: clarifications + * mmc: clean up unused parts of block driver + * mmc: mark unmaintained drivers + * mmc: Add maintainers for TI OMAP MMC interface + * mmc: add maintainer for iMX MMC interface + * mmc: add maintainer for ARM Primecell controller + * [CRYPTO] geode: Fix in-place operations and set key + * [Bluetooth] Always send HCI_Reset for Broadcom devices + * [Bluetooth] Fix L2CAP configuration parameter handling + * NFS: Avoid a deadlock situation on write + * NFS: Fix handful of compiler warnings in direct.c + * NFS: Fix nfs_direct_dirty_pages() + * Don't call a warnign a bug. It's a warning. + * [IA64] Fix using uninitialized data in _PDC setup + * [IA64] Cleanup acpi header to reuse the generic _PDC defines + * Documentation: Fix up docs still talking about i_sem + * [IA64] acpi_get_sysname() should be __init + * IB/mlx4: Initialize send queue entry ownership bits + * IB/ehca: Fix number of send WRs reported for new QP + * IPoIB/cm: Fix timeout check in ipoib_cm_dev_stop() + * IPoIB/cm: Drain cq in ipoib_cm_dev_stop() + * ucc_geth: Fix MODULE_DEVICE_TABLE() duplication + * ucc_geth:trivial fix + * asix.c - Add Belkin F5D5055 ids + * fix compiler warning in fixed.c + * remove unnecessary dependency on VIA velocity config + * meth driver renovation + * spidernet: skb used after netif_receive_skb + * chelsio parenthesis fix + * forcedeth: fix cpu irq mask + * [NET_SCHED]: Fix qdisc_restart return value when dequeue is empty + * [IPV6]: Ignore ipv6 events on non-IPV6 capable devices. + * [ATM]: Use mutex instead of binary semaphore in idt77252 driver. + * [DCCP]: Use menuconfig objects. + * [IPVS]: Use menuconfig objects. + * [SCTP]: Use menuconfig objects. + * [TIPC]: Use menuconfig objects. + * [ARCNET]: Use menuconfig objects. + * [TR]: Use menuconfig objects. + * [RTNETLINK]: Fix sending netlink message when replace route. + * [TIPC]: Fixed erroneous introduction of for_each_netdev + * [DCCP]: Fix build warning when debugging is disabled. + * [NET_SCHED]: sch_htb: fix event cache time calculation + * [NETFILTER]: nf_conntrack_ftp: fix newline sequence number update + * [NETFILTER]: nf_conntrack_ftp: fix newline sequence number calculation + * [NETFILTER]: nf_conntrack_h323: fix ASN.1 types + * [NETFILTER]: nf_conntrack_h323: fix get_h225_addr() for IPv6 address + access + * [NETFILTER]: nf_conntrack_h323: remove unnecessary process of + Information signal + * [NETFILTER]: nf_conntrack_h323: add missing T.120 address in OLCA + * [NETFILTER]: nf_nat_h323: call set_h225_addr instead of + set_h225_addr_hook + * [NET]: "wrong timeout value" in sk_wait_data() v2 + * hpt3x2n: Correct revision boundary + * pata_sis: Fix and clean up some timing setups + * ata_piix: add short 40c quirk for Acer Aspire 2030, take #2 + * libata: don't consider 0xff as port empty if SStatus is available + * libata: -ENODEV during prereset isn't an error + * pata_via: Handle laptops via DMI + * [CASSINI]: Check pci_set_mwi() return value. + * [XFRM]: Allow packet drops during larval state resolution. + * [libata] sata_promise: fix flags typo + * [libata] sata_mv: add TODO list + * Fix build failure for drivers/ata/pata_scc.c + * libata: sata_sis fixes + * [libata] Fix decoding of 6-byte commands + * [libata] sata_via, pata_via: Add PCI IDs. + * ocfs2: trylock in ocfs2_readpage() + * ocfs2: unmap_mapping_range() in ocfs2_truncate() + * ocfs2: use zero_user_page + * ocfs2: fix inode leak + * ocfs2: use generic_segment_checks + * pata: Trivia + * pata_hpt37x: Further improvements based on the IDE updates and vendor + drivers + * fix compat console unimap regression + * Linux 2.6.22-rc3 + + -- Ben Collins Thu, 31 May 2007 12:35:44 -0400 + +linux-source-2.6.22 (2.6.22-5.11) gutsy; urgency=low + + [Ben Collins] + + * build/headers/ppc: Correct asm-ppc -> asm for arch symlink + * build/headers/ia64: Fix find command line to correctly pull in *.lds + files + * Bump ABI + + [Upstream Kernel Changes] + + * [IA64] spelling fixes: arch/ia64/ + * [AVR32] Remove bogus comment in arch/avr32/kernel/irq.c + * [AVR32] optimize pagefault path + * [AVR32] Wire up signalfd, timerfd and eventfd + * [IA64] wire up {signal,timer,event}fd syscalls + * [IA64] kdump on INIT needs multi-nodes sync-up (v.2) + * [IA64] s/scalibility/scalability/ + * [AVR32] Implement platform hooks for atmel_lcdfb driver + * [IA64] Fix section conflict of ia64_mlogbuf_finish + * [SPARC64]: Add hypervisor API negotiation and fix console bugs. + * pata_scc had been missed by ata_std_prereset() switch + * libata: separate out ata_dev_reread_id() + * libata: during revalidation, check n_sectors after device is configured + * libata-acpi: add ATA_FLAG_ACPI_SATA port flag + * libata: fix shutdown warning message printing + * libata: track spindown status and skip spindown_compat if possible + * [ALSA] usb-audio: another Logitech QuickCam ID + * [ALSA] hda-codec - Make the mixer capability check more robust + * [ALSA] ASoC AC97 static GPL symbol fix + * [ALSA] ASoC AC97 device reg bugfix + * [ALSA] hda-codec - Fix ALC882/861VD codec support on some laptops + * [ALSA] version 1.0.14rc4 + * [ALSA] Fix probe of non-PnP ISA devices + * [ALSA] Include quirks from Ubuntu Dapper/Edgy/Feisty + * [ALSA] usbaudio - Coping with short replies in usbmixer + * [IA64] optimize pagefaults a little + * Fix ACPI suspend / device suspend ordering problem + * AFS: write back dirty data on unmount + * SLUB: It is legit to allocate a slab of the maximum permitted size + * slub: don't confuse ctor and dtor + * AFS: Fix afs_prepare_write() + * spi: fix spidev for >sizeof(long)/32 devices + * parport_pc needs dma-mapping.h + * Fix: find_or_create_page skips cpuset memory spreading. + * slob: implement RCU freeing + * Slab allocators: Drop support for destructors + * SLUB: Remove depends on EXPERIMENTAL and !ARCH_USES_SLAB_PAGE_STRUCT + * SLAB: Move two remaining SLAB specific definitions to slab_def.h + * SLUB: Define functions for cpu slab handling instead of using + PageActive + * slab: warn on zero-length allocations + * slub: fix handling of oversized slabs + * SLUB: slabinfo fixes + * SLUB: Do our own flags based on PG_active and PG_error + * Remove SLAB_CTOR_CONSTRUCTOR + * SLUB: Simplify debug code + * Slab allocators: define common size limitations + * acpi: fix potential call to a freed memory section. + * i386/x86-64: fix section mismatch + * Make __vunmap static + * simplify compat_sys_timerfd + * Let smp_call_function_single return -EBUSY on UP + * Refine SCREEN_INFO sanity check for vgacon initialization + * make freezeable workqueues singlethread + * parport: mailing list is subscribers-only + * docbook: make kernel-locking table readable + * gpio interface loosens call restrictions + * rtc-omap build fix + * rtc kconfig clarification + * icom: add new sub-device-id to support new adapter + * make sysctl/kernel/core_pattern and fs/exec.c agree on maximum core + filename size + * ecryptfs: use zero_user_page + * i386: don't check_pgt_cache in flush_tlb_mm + * circular locking dependency found in QUOTA OFF + * swsusp: fix sysfs interface + * Fix page allocation flags in grow_dev_page() + * mm: more rmap checking + * NS16550A: Restore HS settings in EXCR2 on resume + * Fix incorrect prototype for ipxrtr_route_packet() + * sky2: remove Gigabyte 88e8056 restriction + * sky2: PHY register settings + * sky2: keep track of receive alloc failures + * sky2: MIB counter overflow handling + * sky2: remove dual port workaround + * sky2: memory barriers change + * small netdevices.txt fix + * ibm_emac: fix section mismatch warnings + * ibm_emac: improved PHY support + * ibm_emac: fix link speed detection change + * gianfar: Add I/O barriers when touching buffer descriptor ownership. + * spidernet: node-aware skbuff allocation + * NetXen: Fix NetXen driver ping on system-p + * ixgb: don't print error if pci_enable_msi() fails, cleanup minor leak + * e1000: Fix msi enable leak on error, don't print error message, cleanup + * drivers/ata: remove the wildcard from sata_nv driver + * sata_nv: fix fallout of devres conversion + * libata: remove libata.spindown_compat + * sata_via: pcim_iomap_regions() conversion missed BAR5 + + -- Ben Collins Thu, 17 May 2007 14:54:16 -0400 + +linux-source-2.6.22 (2.6.22-4.10) gutsy; urgency=low + + [Ben Collins] + + * Bump ABI + * build/config: Disable obsolete tsdev driver. + * build: Add tsdev to list of modules intentionally removed. + * build/headers: Include *.lds files (fixes ia64 headers). + * build/headers: Add arch/powerpc/include/asm symlink to get all headers. + * build/module-check: Fix logic for printed messages. + * build/maintainer: Use linux instead of upstream-linux for local diffs + * build/config: Enable SLUB slab allocator (vs. SLAB). + * build/config: Disable orinoco_nortel, use prefered hostap_plx + * build/config: Disable ir-usb in favor of irda-usb + * build/config: Disable sis5513(ide) in favor of pata_sis(libata) + * build/config: Disable piix(ide) in favour of pata_oldpiix, ata_piix and + pata_mpiix (libata) + * build/config: Disable zaurus driver in favour of the cdc_ether driver + * build/abi: Note a few modules intentionally removed. + * build/config: Disable mxb and dpc7146 driver in favour of hexium_orion + * build/config: Disable usbtest driver (for development only) + * build/config: Disable keyspan driver in favour of keyspan_pda + * build/abi: Add mxb and usbtest to list of removed modules. + + [Upstream Kernel Changes] + + * net: Trivial MLX4_DEBUG dependency fix. + * mlx4_core: Remove unused doorbell_lock + * [CPUFREQ] Support rev H AMD64s in powernow-k8 + * [CPUFREQ] powernow-k7: fix MHz rounding issue with perflib + * [AGPGART] Fix wrong ID in via-agp.c + * sh64: ROUND_UP macro cleanup in arch/sh64/kernel/pci_sh5.c + * spelling fixes: arch/sh64/ + * sh64: Wire up many new syscalls. + * sh64: Fixups for the irq_regs changes. + * sh64: dma-mapping updates. + * sh64: ppoll/pselect6() and restartable syscalls. + * sh64: Fixup sh-sci build. + * sh64: Update cayman defconfig. + * sh64: generic quicklist support. + * sh64: Add .gitignore entry for syscalltab. + * IB/mlx4: Fix uninitialized spinlock for 32-bit archs + * IB/ipath: Shadow the gpio_mask register + * IB/ehca: Serialize hypervisor calls in ehca_register_mr() + * IB/ehca: Correctly set GRH mask bit in ehca_modify_qp() + * IB/ehca: Fix AQP0/1 QP number + * IB/ehca: Remove _irqsave, move #ifdef + * IB/ehca: Beautify sysfs attribute code and fix compiler warnings + * IB/ehca: Disable scaling code by default, bump version number + * RDMA/cma: Simplify device removal handling code + * RDMA/cma: Fix synchronization with device removal in cma_iw_handler + * RDMA/cma: Add check to validate that cm_id is bound to a device + * IB/mthca: Fix posting >255 recv WRs for Tavor + * IB/mthca: Set cleaned CQEs back to HW ownership when cleaning CQ + * IPoIB/cm: Optimize stale connection detection + * [CPUFREQ] Correct revision mask for powernow-k8 + * fix epoll single pass code and add wait-exclusive flag + * epoll locks changes and cleanups + * epoll: fix some comments + * epoll: move kfree inside ep_free + * nommu: add ioremap_page_range() + * h8300 atomic.h update + * alpha: fix hard_smp_processor_id compile error + * m68k: implement __clear_user() + * Remove cpu hotplug defines for __INIT & __INITDATA + * i386: move common parts of smp into their own file + * i386: fix voyager build + * SLUB: CONFIG_LARGE_ALLOCS must consider MAX_ORDER limit + * ll_rw_blk: fix gcc 4.2 warning on current_io_context() + * pasemi_mac: Fix register defines + * pasemi_mac: Interrupt ack fixes + * pasemi_mac: Terminate PCI ID list + * pasemi_mac: Fix local-mac-address parsing + * smc911x: fix compilation breakage + * ucc_geth: eliminate max-speed, change interface-type to + phy-connection-type + * pdc202xx_old: rewrite mode programming code (v2) + * serverworks: PIO mode setup fixes + * sis5513: PIO mode setup fixes + * alim15x3: use ide_tune_dma() + * pdc202xx_new: use ide_tune_dma() + * ide: always disable DMA before tuning it + * cs5530/sc1200: add ->udma_filter methods + * ide: use ide_tune_dma() part #2 + * cs5530/sc1200: DMA support cleanup + * cs5530/sc1200: add ->speedproc support + * sl82c105: add speedproc() method and MWDMA0/1 support + * ide: remove ide_dma_enable() + * ide: add missing validity checks for identify words 62 and 63 + * ide: remove ide_use_dma() + * sl82c105: Switch to ref counting API + * Use menuconfig objects: IDE + * x86: Fix discontigmem + non-HIGHMEM compile + * missing mm.h in fw-ohci + * missing dependencies for USB drivers in input + * missing includes in mlx4 + * em28xx and ivtv should depend on PCI + * rpadlpar breakage - fallout of struct subsystem removal + * m32r: __xchg() should be always_inline + * audit_match_signal() and friends are used only if CONFIG_AUDITSYSCALL + is set + * fix uml-x86_64 + * arm: walk_stacktrace() needs to be exported + + -- Ben Collins Tue, 15 May 2007 10:13:23 -0400 + +linux-source-2.6.22 (2.6.22-3.9) gutsy; urgency=low + + * Fixup firmware-modules -> efi-modules in exclude files. + + [Ben Collins] + + * build/config: Enable CONFIG_TIMER_STATS + * build/config: Disable CONFIG_IRQBALANCE, handled in userspace now + * build: Update modules that have been deprecated + * sparc64: Get some drivers compiling, till patches get upstream. + * powerpc: Add 64-bit cmp op for 32-bit. + * build/config: Disable apm_emu, pasemi_mac and cbe_cpufreq on ppc64 + * build/d-i(cjwatson): Rename firmware-modules to efi-modules + + -- Ben Collins Fri, 11 May 2007 09:38:50 +0200 + +linux-source-2.6.22 (2.6.22-2.7) gutsy; urgency=low + + [Changes for 2.7] + + * Added some more modules going missing to ignore. + * Disable ADB_PMU_LED on powerpc64. FTBFS. + + [Ben Collins] + + * XXX: Well, xen and rt got disabled in this upload. Hopefully things will + get working again soon. + + * build: Add check for nrcpus on buildd's for CONCURRENCY_LEVEL + * build: No longer provide ndiswrapper or ivtv modules (l-u-m does). + * build/d-i: Remove firmware lists, since we no longer supply those udebs + * build: Remove more firmware stuff + * build/control: Build-dep on coreutils + * Update configuration files + * build/custom: Updated xen/rt patches and configs. + * build: Make sure to use /bin/bash for headers_install + * build: Add SHELL=/bin/bash to headers_install + * Update configuration files + * Bump ABI + * Update module lists to match module name changes and merges. + * build/rt: Trimmed down real-time patch from Alessio Igor Bogani. + * Update configuration files + * Update configuration files + * build/rt: Fix typo in diff + * Update configuration files + * build: make explicit binary-headers target + * Update configuration files + * build/control-scripts: Remove debconf from pre-rm script + * build/ia64: Compress and use vmlinuz for target install + * build/config: Diable OSS i810_audio driver (Alsa driver prefered) + * build/config: Disable OSS cs4232 driver (Alsa prefered) + * build/config: Disable OSS via82xx driver (Alsa prefered) + * build/config: Disable OSS trident driver (Alsa prefered) + * build/config: Disable OSS Sound Blaster driver (Alsa prefered) + * build/config: Disable IDE generic, ata_generic prefered + * build/config: Disable siimage, pata_sil680 prefered + * build/module-check: More robust module checking + * build: Call module-check with perl, not $SHELL + * Update configuration files + * build: Fixup calling conventions of module-check + * build: Add modules.ignore from 1.3 revision + * build/config: Disable obsolete MOXA_SMARTIO in favor of new driver. + * build/config: Disable orinoco_cs in favor of hostap_cs + * build/config: Disable orinoco_pci in favor of hostap_pci + * build/config: Disable orinoco_{plx,tmd} in favor of hostap_plx + * build/config: Disable sk98lin in favor of skge + * build: Add more modules intentionally removed since 1.3 + + -- Ben Collins Fri, 27 Apr 2007 09:04:29 -0400 + +linux-source-2.6.22 (2.6.22-1.3) gutsy; urgency=low + + [Ben Collins] + + * build: Only use bzip2 for linux-image, and pre-depend on proper dpkg + + [2.6.22-1.2] + + [Ben Collins] + + * build: Add build-arch target. FTBFS + + [2.6.22-1.1] + + [Ben Collins] + + * debian: New build system, from scratch + * debian: Rename place holder so debian/stamps/ sticks around + * debian: Create stamp-flavours at start of build (for build scripts) + * debian/abi: Add revision 0.0 bootstrap module list. + * debian: Fix backwards logic in module/abi checkers. + * debian: Add arch= to vars.* files + * Update configuration files + * build: Added control scripts for images + * build/config: Disable CONFIG_PARAVIRT for now + * build/config: Enable CONFIG_FB_VESA + * build: Take CONCURRENCY_LEVEL from env if it exists. + * build: Do not print SHAs by default for changelog + * build/config(i386): Disable NO_HZ on all but generic + * build: Implement udeb rules + * build/d-i: Remove speakup-modules udeb + * build/udebs: Fix a couple trivial errors in the build. + * build/config: Disable CONFIG_FB_IMSTT on powerpc64-smp (no NVRAM) + * build/config: Disable some modules for ppc64 that don't use DMA API + * build/config: Yet another module to disable on ppc64 + * build/tests: New test infrastructure + * build: Special kernel build infrastructure + * build: Fix typo from last commit + * build/custom: Move custom files for each flavour into subdir. + * build/config: Disable some drivers on sparc that don't support DMA API + * build/sparc: Add new compress_file config, and use it for sparc + * build: Fix typo in compress_file commit. + * build/schedcfs: Update to v6 of the patch. + * build: Fix control file generation for custom images + * build: Correct message in link-headers + * build: 2.6.21 is released, force our SUBLEVEL to .22 + * build/vars: kvm API is at 4, provide that. + * build/custom: Allow custom builds to override things like build_image + * build/custom: Fix type causing custom rules not to be included. + * build/custom: Hello Xen 3.0.5 + * build/custom: Remove sched-cfs. Superseded in use by rt. + * build/custom: Add 2.6.21-rt1 patch for -rt custom flavour + * build/link-headers: Make sure to copy new files for custom + + -- Ben Collins Fri, 27 Apr 2007 08:29:00 -0400 --- linux-2.6.24.orig/debian/rules.d/5-udebs.mk +++ linux-2.6.24/debian/rules.d/5-udebs.mk @@ -0,0 +1,31 @@ +do-binary-udebs: + dh_testdir + dh_testroot + + # unpack the kernels into a temporary directory + mkdir -p debian/d-i-${arch} + + imagelist=$$(cat kernel-versions | grep ^${arch} | awk '{print $$4}') && \ + for i in $$imagelist; do \ + dpkg -x $$(ls ../linux-image-$$i\_*${arch}.deb) \ + debian/d-i-${arch}; \ + done + + touch ignore-dups + export SOURCEDIR=debian/d-i-${arch} && \ + kernel-wedge install-files && \ + kernel-wedge check + + # Build just the udebs + dilist=$$(dh_listpackages -s | grep "\-di$$") && \ + [ -z "$dilist" ] || \ + for i in $$dilist; do \ + dh_fixperms -p$$i; \ + dh_gencontrol -p$$i; \ + dh_builddeb -p$$i; \ + done + +binary-udebs: binary-debs binary-custom debian/control + if [ "$(disable_d_i)" != "true" ]; then \ + debian/rules do-binary-udebs; \ + fi --- linux-2.6.24.orig/debian/rules.d/6-binary-custom.mk +++ linux-2.6.24/debian/rules.d/6-binary-custom.mk @@ -0,0 +1,133 @@ +# This could be somewhere else, but we stub this file so that the include +# in debian/rules doesn't have an empty list. +binary-custom: $(addprefix custom-binary-,$(custom_flavours)) +build-custom: $(addprefix custom-build-,$(custom_flavours)) + +# Custom targets can dep on these targets to help things along. They can +# also override it with a :: target for addition processing. +custom-prepare-%: $(stampdir)/stamp-custom-prepare-% + @# Empty for make to be happy +$(stampdir)/stamp-custom-prepare-%: target_flavour = $* +$(stampdir)/stamp-custom-prepare-%: origsrc = $(builddir)/custom-source-$* +$(stampdir)/stamp-custom-prepare-%: srcdir = $(builddir)/custom-build-$* +$(stampdir)/stamp-custom-prepare-%: debian/binary-custom.d/%/config.$(arch) \ + debian/binary-custom.d/%/patchset + @echo "Preparing custom $*..." + rm -rf $(origsrc) + install -d $(origsrc) + install -d $(srcdir) + touch $(srcdir)/ubuntu-build + find . \( -path ./debian -o -path ./.git -o -name .gitignore \) \ + -prune -o -print | cpio -dumpl $(origsrc) + for patch in `ls debian/binary-custom.d/$*/patchset/*.patch | sort`; do \ + echo $$patch; \ + patch -p1 -d $(origsrc) < $$patch ;\ + done + cat $< > $(srcdir)/.config + $(kmake) -C $(origsrc) O=$(srcdir) silentoldconfig prepare scripts + touch $@ + +custom-build-%: $(stampdir)/stamp-custom-build-% + @# Empty for make to be happy +$(stampdir)/stamp-custom-build-%: target_flavour = $* +$(stampdir)/stamp-custom-build-%: origsrc = $(builddir)/custom-source-$* +$(stampdir)/stamp-custom-build-%: srcdir = $(builddir)/custom-build-$* +$(stampdir)/stamp-custom-build-%: bimage = $(call custom_override,build_image,$*) +$(stampdir)/stamp-custom-build-%: $(stampdir)/stamp-custom-prepare-% + @echo "Building custom $*..." + $(kmake) -C $(origsrc) O=$(srcdir) $(conc_level) + $(kmake) -C $(origsrc) O=$(srcdir) $(conc_level) modules + @touch $@ + +custom-install-%: pkgdir = $(CURDIR)/debian/linux-image-$(release)$(debnum)-$* +custom-install-%: basepkg = linux-headers-$(release)$(debnum) +custom-install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* +custom-install-%: target_flavour = $* +custom-install-%: origsrc = $(builddir)/custom-source-$* +custom-install-%: srcdir = $(builddir)/custom-build-$* +custom-install-%: kfile = $(call custom_override,kernel_file,$*) +custom-install-%: $(stampdir)/stamp-custom-build-% + dh_testdir + dh_testroot + dh_clean -k -plinux-image-$(release)$(debnum)-$* + dh_clean -k -plinux-headers-$(release)$(debnum)-$* + + # The main image + # xen doesnt put stuff in the same directory. its quirky that way + if [ $(target_flavour) == "xen" ]; then \ + install -m644 -D $(srcdir)/arch/x86/boot/vmlinuz $(pkgdir)/boot/$(install_file)-$(release)$(debnum)-$* ; \ + else \ + install -m644 -D $(srcdir)/$(kfile) $(pkgdir)/boot/$(install_file)-$(release)$(debnum)-$* ; \ + fi + + install -m644 $(srcdir)/.config \ + $(pkgdir)/boot/config-$(release)$(debnum)-$* + install -m644 $(srcdir)/System.map \ + $(pkgdir)/boot/System.map-$(release)$(debnum)-$* + $(kmake) -C $(origsrc) O=$(srcdir) modules_install \ + INSTALL_MOD_PATH=$(pkgdir)/ + rm -f $(pkgdir)/lib/modules/$(release)$(debnum)-$*/build + rm -f $(pkgdir)/lib/modules/$(release)$(debnum)-$*/source +ifeq ($(no_image_strip),) + find $(pkgdir)/ -name \*.ko -print | xargs strip --strip-debug +endif + # Some initramfs-tools specific modules + install -d $(pkgdir)/lib/modules/$(release)$(debnum)-$*/initrd + #ln -f $(pkgdir)/lib/modules/$(release)$(debnum)-$*/kernel/security/capability.ko \ + # $(pkgdir)/lib/modules/$(release)$(debnum)-$*/initrd/ + + # Now the image scripts + install -d $(pkgdir)/DEBIAN + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(release)$(debnum)-$*/g' -e 's/=K/$(install_file)/g' \ + -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ + debian/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \ + chmod 755 $(pkgdir)/DEBIAN/$$script; \ + done + + # The flavour specific headers image + # XXX Would be nice if we didn't have to dupe the original builddir + install -m644 -D $(srcdir)/.config \ + $(hdrdir)/.config + $(kmake) -C $(origsrc) O=$(hdrdir) silentoldconfig prepare scripts + # We'll symlink this stuff + rm -f $(hdrdir)/Makefile + rm -rf $(hdrdir)/include2 + # Script to symlink everything up + $(SHELL) debian/scripts/link-headers "$(hdrdir)" "$(basepkg)" \ + "$(origsrc)" "$(build_arch)" "$*" + # Setup the proper asm symlink + rm -f $(hdrdir)/include/asm + ln -s asm-$(asm_link) $(hdrdir)/include/asm + # The build symlink + install -d debian/$(basepkg)-$*/lib/modules/$(release)$(debnum)-$* + ln -s /usr/src/$(basepkg)-$* \ + debian/$(basepkg)-$*/lib/modules/$(release)$(debnum)-$*/build + # And finally the symvers + install -m644 $(srcdir)/Module.symvers \ + $(hdrdir)/Module.symvers + +custom-binary-%: pkgimg = linux-image-$(release)$(debnum)-$* +custom-binary-%: pkghdr = linux-headers-$(release)$(debnum)-$* +custom-binary-%: custom-install-% + dh_testdir + dh_testroot + + dh_installchangelogs -p$(pkgimg) + dh_installdocs -p$(pkgimg) + dh_compress -p$(pkgimg) + dh_fixperms -p$(pkgimg) + dh_installdeb -p$(pkgimg) + dh_gencontrol -p$(pkgimg) + dh_md5sums -p$(pkgimg) + dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9 + + dh_installchangelogs -p$(pkghdr) + dh_installdocs -p$(pkghdr) + dh_compress -p$(pkghdr) + dh_fixperms -p$(pkghdr) + dh_shlibdeps -p$(pkghdr) + dh_installdeb -p$(pkghdr) + dh_gencontrol -p$(pkghdr) + dh_md5sums -p$(pkghdr) + dh_builddeb -p$(pkghdr) --- linux-2.6.24.orig/debian/rules.d/sparc.mk +++ linux-2.6.24/debian/rules.d/sparc.mk @@ -0,0 +1,11 @@ +build_arch = sparc64 +header_arch = $(build_arch) +asm_link = $(build_arch) +defconfig = defconfig +flavours = sparc64 sparc64-smp +build_image = image +kernel_file = arch/$(build_arch)/boot/image +install_file = vmlinuz +compress_file = Yes + +loader = silo --- linux-2.6.24.orig/debian/rules.d/amd64.mk +++ linux-2.6.24/debian/rules.d/amd64.mk @@ -0,0 +1,18 @@ +build_arch = x86_64 +header_arch = $(build_arch) +asm_link = x86 +defconfig = defconfig +flavours = generic +flavours += server +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz + +do_debug_image = true + +loader = grub + +# +# No custom binaries for the PPA build. +# +custom_flavours = rt xen openvz --- linux-2.6.24.orig/debian/rules.d/3-binary-indep.mk +++ linux-2.6.24/debian/rules.d/3-binary-indep.mk @@ -0,0 +1,81 @@ +build-indep: + +docpkg = linux-doc-$(release) +docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg) +install-doc: + dh_testdir + dh_testroot + dh_clean -k -p$(docpkg) + + # First the html docs + install -d $(docdir)/linux-doc-tmp + $(kmake) O=$(docdir)/linux-doc-tmp htmldocs + mv $(docdir)/linux-doc-tmp/Documentation/DocBook \ + $(docdir)/html + rm -rf $(docdir)/linux-doc-tmp + + # Copy the rest + cp -a Documentation $(docdir) + rm -rf $(docdir)/DocBook + +srcpkg = linux-source-$(release) +srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg) +install-source: + dh_testdir + dh_testroot + dh_clean -k -p$(srcpkg) + + install -d $(srcdir) + find . -path './debian/*' -prune -o \ + -path './.*' -prune -o -print | \ + cpio -pd --preserve-modification-time $(srcdir) + (cd $(srcdir)/..; tar cf - $(srcpkg)) | bzip2 -9c > \ + $(srcdir).tar.bz2 + rm -rf $(srcdir) + +indep_hdrpkg = linux-headers-$(release)$(debnum) +indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg) +install-headers: + dh_testdir + dh_testroot + dh_clean -k -p$(indep_hdrpkg) + + install -d $(indep_hdrdir) + find . -path './debian/*' -prune -o -path './include/*' -prune \ + -o -path './scripts/*' -prune -o -type f \ + \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ + -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \ + -print | cpio -pd --preserve-modification-time $(indep_hdrdir) + # Copy headers for LUM + cp -a drivers/media/dvb/dvb-core/*.h $(indep_hdrdir)/drivers/media/dvb/dvb-core + cp -a drivers/media/video/*.h $(indep_hdrdir)/drivers/media/video + cp -a drivers/media/dvb/dvb-core/*.h $(indep_hdrdir)/drivers/media/dvb/dvb-core + cp -a drivers/media/dvb/frontends/*.h $(indep_hdrdir)/drivers/media/dvb/frontends + cp -a scripts include $(indep_hdrdir) + +install-indep: install-source install-headers install-doc + +binary-headers: install-headers + dh_testdir + dh_testroot + dh_installchangelogs -p$(indep_hdrpkg) + dh_installdocs -p$(indep_hdrpkg) + dh_compress -p$(indep_hdrpkg) + dh_fixperms -p$(indep_hdrpkg) + dh_installdeb -p$(indep_hdrpkg) + dh_gencontrol -p$(indep_hdrpkg) + dh_md5sums -p$(indep_hdrpkg) + dh_builddeb -p$(indep_hdrpkg) + +binary-indep: install-indep + dh_testdir + dh_testroot + + dh_installchangelogs -i + dh_installdocs -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i --- linux-2.6.24.orig/debian/rules.d/4-checks.mk +++ linux-2.6.24/debian/rules.d/4-checks.mk @@ -0,0 +1,26 @@ +# Check ABI for package against last release (if not same abinum) +abi-%: $(abidir)/% + @# Empty for make to be happy +$(abidir)/%: $(stampdir)/stamp-build-% + install -d $(abidir) + sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \ + $(builddir)/build-$*/Module.symvers | sort > $@ + +abi-check-%: $(abidir)/% + @$(SHELL) debian/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \ + "$(prev_abidir)" "$(abidir)" "$(skipabi)" + +# Check the module list against the last release (always) +module-%: $(abidir)/%.modules + @# Empty for make to be happy +$(abidir)/%.modules: $(stampdir)/stamp-build-% + install -d $(abidir) + find $(builddir)/build-$*/ -name \*.ko | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $@ + +module-check-%: $(abidir)/%.modules + @perl -f debian/scripts/module-check "$*" \ + "$(prev_abidir)" "$(abidir)" $(skipmodule) + +checks-%: abi-check-% module-check-% + @# Will be calling more stuff later --- linux-2.6.24.orig/debian/rules.d/ia64.mk +++ linux-2.6.24/debian/rules.d/ia64.mk @@ -0,0 +1,11 @@ +build_arch = ia64 +header_arch = $(build_arch) +asm_link = $(build_arch) +defconfig = defconfig +flavours = itanium mckinley +build_image = vmlinux +kernel_file = $(build_image) +install_file = vmlinuz +compress_file = yes + +loader = elilo --- linux-2.6.24.orig/debian/rules.d/hppa.mk +++ linux-2.6.24/debian/rules.d/hppa.mk @@ -0,0 +1,12 @@ +build_arch = parisc +header_arch = $(build_arch) +asm_link = $(build_arch) +defconfig = defconfig +flavours = hppa32 hppa64 +build_image = vmlinux +kernel_file = $(build_image) +install_file = $(build_image) + +no_image_strip = true + +loader = palo --- linux-2.6.24.orig/debian/rules.d/lpia.mk +++ linux-2.6.24/debian/rules.d/lpia.mk @@ -0,0 +1,21 @@ +build_arch = i386 +header_arch = i386 +asm_link = x86 +defconfig = defconfig +flavours = +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz + +do_debug_image = true + +loader = grub + +#custom_flavours = lpiacompat lpia +custom_flavours = lpia lpiacompat + +# +# Set this variable to 'true' in order to +# avoid building udebs for the debian installer. +# +disable_d_i = true --- linux-2.6.24.orig/debian/rules.d/0-common-vars.mk +++ linux-2.6.24/debian/rules.d/0-common-vars.mk @@ -0,0 +1,120 @@ +# Rip some version information from our changelog +release := $(shell sed -n '1s/^.*(\(.*\)-.*).*$$/\1/p' debian/changelog) +revisions := $(shell sed -n 's/^linux\ .*($(release)-\(.*\)).*$$/\1/p' debian/changelog | tac) +revision ?= $(word $(words $(revisions)),$(revisions)) +prev_revisions := $(filter-out $(revision),0.0 $(revisions)) +prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) + +# This is an internally used mechanism for the daily kernel builds. It +# creates packages who's ABI is suffixed with a minimal representation of +# the current git HEAD sha. If .git/HEAD is not present, then it uses the +# uuidgen program, +# +# AUTOBUILD can also be used by anyone wanting to build a custom kernel +# image, or rebuild the entire set of Ubuntu packages using custom patches +# or configs. +ppa_file := $(CURDIR)/ppa_build_sha +is_ppa_build := $(shell if [ -f $(ppa_file) ] ; then echo yes; fi;) +ifndef AUTOBUILD +AUTOBUILD := $(is_ppa_build) +endif + +# +# This is a way to support some external variables. A good example is +# a local setup for ccache and distcc See LOCAL_ENV_CC and +# LOCAL_ENV_DISTCC_HOSTS in the definition of kmake. +# For example: +# LOCAL_ENV_CC="ccache distcc" +# LOCAL_ENV_DISTCC_HOSTS="localhost 10.0.2.5 10.0.2.221" +# +local_env_file := $(CURDIR)/../.hardy-env +have_local_env := $(shell if [ -f $(local_env_file) ] ; then echo yes; fi;) +ifneq ($(have_local_env),) +include $(local_env_file) +endif + +# +# Set this variable to 'true' in the arch makefile in order to +# avoid building udebs for the debian installer. see lpia.mk as +# an example of an architecture specific override. +# +disable_d_i = no + +export AUTOBUILD +ifeq ($(AUTOBUILD),) +abi_suffix = +else +skipabi = true +skipmodule = true +gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi) +gitverpre=$(shell echo $(gitver) | cut -b -3) +gitverpost=$(shell echo $(gitver) | cut -b 38-40) +abi_suffix = -$(gitverpre)$(gitverpost) +endif + +ifeq ($(prev_revision),0.0) +skipabi = true +skipmodule = true +endif + +ifneq ($(NOKERNLOG),) +ubuntu_log_opts += --no-kern-log +endif +ifneq ($(PRINTSHAS),) +ubuntu_log_opts += --print-shas +endif + +abinum := $(shell echo $(revision) | sed -e 's/\..*//')$(abisuffix) +prev_abinum := $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abisuffix) +debnum := -$(abinum) + +# We force the sublevel to be exactly what we want. The actual source may +# be an in development git tree. We want to force it here instead of +# committing changes to the top level Makefile +SUBLEVEL := $(shell echo $(release) | awk -F. '{print $$3}') + +export abinum debnum version + +arch := $(shell dpkg-architecture -qDEB_HOST_ARCH) +abidir := $(CURDIR)/debian/abi/$(release)-$(revision)/$(arch) +prev_abidir := $(CURDIR)/debian/abi/$(release)-$(prev_revision)/$(arch) +confdir := $(CURDIR)/debian/config/$(arch) +builddir := $(CURDIR)/debian/build +stampdir := $(CURDIR)/debian/stamps + +# Support parallel= in DEB_BUILD_OPTIONS (see #209008) +COMMA=, +ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) + CONCURRENCY_LEVEL := $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) +endif + +ifeq ($(CONCURRENCY_LEVEL),) + # Check the environment + CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL) + # No? Check if this is on a buildd + ifeq ($(CONCURRENCY_LEVEL),) + ifeq ($(wildcard /CurrentlyBuilding),) + CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 2) + endif + endif + # Default to hogging them all (and then some) + ifeq ($(CONCURRENCY_LEVEL),) + CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 2) + endif +endif + +conc_level = -j$(CONCURRENCY_LEVEL) + +# target_flavour is filled in for each step +kmake = make ARCH=$(build_arch) EXTRAVERSION=$(debnum)-$(target_flavour) +kmake += SUBLEVEL=$(SUBLEVEL) +ifneq ($(LOCAL_ENV_CC),) +kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS) +endif + +all_custom_flavours = lpia rt lpiacompat xen openvz + +# Checks if a var is overriden by the custom rules. Called with var and +# flavour as arguments. +custom_override = \ + $(shell if [ -n "$($(1)_$(2))" ]; then echo "$($(1)_$(2))"; else echo "$($(1))"; fi) --- linux-2.6.24.orig/debian/rules.d/2-binary-arch.mk +++ linux-2.6.24/debian/rules.d/2-binary-arch.mk @@ -0,0 +1,224 @@ +# We don't want make removing intermediary stamps +.SECONDARY : + +# Prepare the out-of-tree build directory + +prepare-%: $(stampdir)/stamp-prepare-% + @# Empty for make to be happy +$(stampdir)/stamp-prepare-%: target_flavour = $* +$(stampdir)/stamp-prepare-%: $(confdir)/config $(confdir)/config.% + @echo "Preparing $*..." + install -d $(builddir)/build-$* + touch $(builddir)/build-$*/ubuntu-build + cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$*"/' > $(builddir)/build-$*/.config + find $(builddir)/build-$* -name "*.ko" | xargs rm -f + $(kmake) O=$(builddir)/build-$* silentoldconfig prepare scripts + touch $@ + + +# Do the actual build, including image and modules +build-%: $(stampdir)/stamp-build-% + @# Empty for make to be happy +$(stampdir)/stamp-build-%: target_flavour = $* +$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-% + @echo "Building $*..." + $(kmake) O=$(builddir)/build-$* $(conc_level) $(build_image) + $(kmake) O=$(builddir)/build-$* $(conc_level) modules + @touch $@ + +# Install the finished build +install-%: pkgdir = $(CURDIR)/debian/linux-image-$(release)$(debnum)-$* +install-%: dbgpkgdir = $(CURDIR)/debian/linux-image-debug-$(release)$(debnum)-$* +install-%: basepkg = linux-headers-$(release)$(debnum) +install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* +install-%: target_flavour = $* +install-%: $(stampdir)/stamp-build-% checks-% + dh_testdir + dh_testroot + dh_clean -k -plinux-image-$(release)$(debnum)-$* + dh_clean -k -plinux-headers-$(release)$(debnum)-$* + dh_clean -k -plinux-image-debug-$(release)$(debnum)-$* + + # The main image +ifeq ($(compress_file),) + install -m644 -D $(builddir)/build-$*/$(kernel_file) \ + $(pkgdir)/boot/$(install_file)-$(release)$(debnum)-$* +else + install -d $(pkgdir)/boot/ + gzip -c9v $(builddir)/build-$*/$(kernel_file) > \ + $(pkgdir)/boot/$(install_file)-$(release)$(debnum)-$* + chmod 644 $(pkgdir)/boot/$(install_file)-$(release)$(debnum)-$* +endif + install -m644 $(builddir)/build-$*/.config \ + $(pkgdir)/boot/config-$(release)$(debnum)-$* + install -m644 $(abidir)/$* \ + $(pkgdir)/boot/abi-$(release)$(debnum)-$* + install -m644 $(builddir)/build-$*/System.map \ + $(pkgdir)/boot/System.map-$(release)$(debnum)-$* + $(kmake) O=$(builddir)/build-$* modules_install \ + INSTALL_MOD_PATH=$(pkgdir)/ + rm -f $(pkgdir)/lib/modules/$(release)$(debnum)-$*/build + rm -f $(pkgdir)/lib/modules/$(release)$(debnum)-$*/source +ifeq ($(no_image_strip),) + find $(pkgdir)/ -name \*.ko -print | xargs strip --strip-debug +endif + # Some initramfs-tools specific modules + install -d $(pkgdir)/lib/modules/$(release)$(debnum)-$*/initrd + if [ -f $(pkgdir)/lib/modules/$(release)$(debnum)-$*/kernel/drivers/video/vesafb.ko ]; then\ + ln -f $(pkgdir)/lib/modules/$(release)$(debnum)-$*/kernel/drivers/video/vesafb.ko \ + $(pkgdir)/lib/modules/$(release)$(debnum)-$*/initrd/; \ + fi + + # Now the image scripts + install -d $(pkgdir)/DEBIAN + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(release)$(debnum)-$*/g' -e 's/=K/$(install_file)/g' \ + -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ + debian/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \ + chmod 755 $(pkgdir)/DEBIAN/$$script; \ + done + + # Debug image is simple +ifneq ($(do_debug_image),) + install -m644 -D $(builddir)/build-$*/vmlinux \ + $(dbgpkgdir)//boot/vmlinux-debug-$(release)$(debnum)-$* +endif + + # The flavour specific headers image + # XXX Would be nice if we didn't have to dupe the original builddir + install -m644 -D $(builddir)/build-$*/.config \ + $(hdrdir)/.config + $(kmake) O=$(hdrdir) silentoldconfig prepare scripts + # We'll symlink this stuff + rm -f $(hdrdir)/Makefile + rm -rf $(hdrdir)/include2 + # Script to symlink everything up + $(SHELL) debian/scripts/link-headers "$(hdrdir)" "$(basepkg)" \ + "" "$(build_arch)" "$*" + # Setup the proper asm symlink + rm -f $(hdrdir)/include/asm + ln -s asm-$(asm_link) $(hdrdir)/include/asm + # The build symlink + install -d debian/$(basepkg)-$*/lib/modules/$(release)$(debnum)-$* + ln -s /usr/src/$(basepkg)-$* \ + debian/$(basepkg)-$*/lib/modules/$(release)$(debnum)-$*/build + # And finally the symvers + install -m644 $(builddir)/build-$*/Module.symvers \ + $(hdrdir)/Module.symvers + + # Now the header scripts + install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN + for script in postinst; do \ + sed -e 's/=V/$(release)$(debnum)-$*/g' -e 's/=K/$(install_file)/g' \ + debian/control-scripts/headers-$$script > \ + $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + done + + # At the end of the package prep, call the tests + DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*" \ + VERSION="$(release)$(debnum)" REVISION="$(revision)" \ + PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)" \ + PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*" \ + INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)" \ + run-parts -v debian/tests + + +headers_tmp := $(CURDIR)/debian/tmp-headers +headers_dir := $(CURDIR)/debian/linux-libc-dev + +hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) SUBLEVEL=$(SUBLEVEL) \ + EXTRAVERSION=$(debnum) INSTALL_HDR_PATH=$(headers_tmp)/install \ + SHELL="$(SHELL)" + +install-arch-headers: + dh_testdir + dh_testroot + dh_clean -k -plinux-libc-dev + + rm -rf $(headers_tmp) + install -d $(headers_tmp) $(headers_dir)/usr/include/ + + $(hmake) ARCH=$(header_arch) $(defconfig) + mv $(headers_tmp)/.config $(headers_tmp)/.config.old + sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \ + -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \ + $(headers_tmp)/.config.old > $(headers_tmp)/.config + $(hmake) ARCH=$(header_arch) silentoldconfig + $(hmake) ARCH=$(header_arch) headers_install + + mv $(headers_tmp)/install/include/asm* \ + $(headers_dir)/usr/include/ + mv $(headers_tmp)/install/include/linux \ + $(headers_dir)/usr/include/ + + rm -rf $(headers_tmp) + +binary-arch-headers: install-arch-headers + dh_testdir + dh_testroot + + dh_installchangelogs -plinux-libc-dev + dh_installdocs -plinux-libc-dev + dh_compress -plinux-libc-dev + dh_fixperms -plinux-libc-dev + dh_installdeb -plinux-libc-dev + dh_gencontrol -plinux-libc-dev + dh_md5sums -plinux-libc-dev + dh_builddeb -plinux-libc-dev + +binary-%: pkgimg = linux-image-$(release)$(debnum)-$* +binary-%: pkghdr = linux-headers-$(release)$(debnum)-$* +binary-%: dbgpkg = linux-image-debug-$(release)$(debnum)-$* +binary-%: install-% + dh_testdir + dh_testroot + + dh_installchangelogs -p$(pkgimg) + dh_installdocs -p$(pkgimg) + dh_compress -p$(pkgimg) + dh_fixperms -p$(pkgimg) + dh_installdeb -p$(pkgimg) + dh_gencontrol -p$(pkgimg) + dh_md5sums -p$(pkgimg) + dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9 + + dh_installchangelogs -p$(pkghdr) + dh_installdocs -p$(pkghdr) + dh_compress -p$(pkghdr) + dh_fixperms -p$(pkghdr) + dh_shlibdeps -p$(pkghdr) + dh_installdeb -p$(pkghdr) + dh_gencontrol -p$(pkghdr) + dh_md5sums -p$(pkghdr) + dh_builddeb -p$(pkghdr) + +ifneq ($(do_debug_image),) + dh_installchangelogs -p$(dbgpkg) + dh_installdocs -p$(dbgpkg) + dh_compress -p$(dbgpkg) + dh_fixperms -p$(dbgpkg) + dh_installdeb -p$(dbgpkg) + dh_gencontrol -p$(dbgpkg) + dh_md5sums -p$(dbgpkg) + dh_builddeb -p$(dbgpkg) +endif + +$(stampdir)/stamp-flavours: + @echo $(flavours) $(custom_flavours) > $@ + +binary-debs: $(stampdir)/stamp-flavours $(addprefix binary-,$(flavours)) \ + binary-arch-headers + +build-debs: $(addprefix build-,$(flavours)) + +build-arch-deps = build-debs +build-arch-deps += build-custom + +build-arch: $(build-arch-deps) + +binary-arch-deps = binary-debs +binary-arch-deps += binary-custom +binary-arch-deps += binary-udebs + +binary-arch: $(binary-arch-deps) --- linux-2.6.24.orig/debian/rules.d/i386.mk +++ linux-2.6.24/debian/rules.d/i386.mk @@ -0,0 +1,21 @@ +build_arch = i386 +header_arch = x86_64 +asm_link = x86 +defconfig = defconfig +# +# Only build -386 and -generic for PPA. +# +flavours = 386 generic +flavours += server virtual +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz + +do_debug_image = true + +loader = grub + +# +# No custom binaries for the PPA build. +# +custom_flavours = rt xen openvz --- linux-2.6.24.orig/debian/rules.d/powerpc.mk +++ linux-2.6.24/debian/rules.d/powerpc.mk @@ -0,0 +1,12 @@ +build_arch = powerpc +header_arch = $(build_arch) +asm_link = $(build_arch) +defconfig = pmac32_defconfig +flavours = powerpc powerpc-smp powerpc64-smp +build_image = vmlinux +kernel_file = $(build_image) +install_file = $(build_image) + +loader = yaboot + +custom_flavours = --- linux-2.6.24.orig/debian/rules.d/1-maintainer.mk +++ linux-2.6.24/debian/rules.d/1-maintainer.mk @@ -0,0 +1,107 @@ +# The following targets are for the maintainer only! do no run if you don't +# know what they do. + +.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help + +help: + @echo "These are the targets in addition to the normal debian ones:" + @echo + @echo " printenv : Print some variables used in the build" + @echo + @echo " updateconfigs : Update debian/config/*" + @echo + @echo " editconfigs : Update debian/config/* interactively" + @echo + @echo " printchanges : Print the current changelog entries (from git)" + @echo + @echo " insertchanges : Insert current changelog entries (from git)" + @echo + @echo " startnewrelease : Start a new changelog set" + @echo + @echo " diffupstream : Diff stock kernel code against upstream (git)" + @echo + @echo " prepare-ppa : Prepare a PPA source upload" + @echo + @echo " help : If you are kernel hacking, you need the professional" + @echo " version of this" + @echo + @echo "Environment variables:" + @echo + @echo " NOKERNLOG : Do not add upstream kernel commits to changelog" + @echo " CONCURRENCY_LEVEL=X" + @echo " : Use -jX for kernel compile" + @echo " PRINTSHAS : Include SHAs for commits in changelog" + +ARCH_CONFIGS=i386 amd64 ia64 hppa powerpc sparc + +updateconfigs: + dh_testdir + @for arch in $(ARCH_CONFIGS); do \ + $(SHELL) debian/scripts/misc/oldconfig $$arch; \ + done + rm -rf build + +editconfigs: + dh_testdir + @for arch in $(ARCH_CONFIGS); do \ + $(SHELL) debian/scripts/misc/doconfig $$arch; \ + done + rm -rf build + +printenv: + dh_testdir + @echo "release = $(release)" + @echo "revisions = $(revisions)" + @echo "revision = $(revision)" + @echo "prev_revisions = $(prev_revisions)" + @echo "prev_revision = $(prev_revision)" + @echo "debnum = $(debnum)" + @echo "abinum = $(abinum)" + @echo "gitver = $(gitver)" + @echo "flavours = $(flavours)" + @echo "custom_flavours = $(custom_flavours)" +ifneq ($(SUBLEVEL),) + @echo "SUBLEVEL = $(SUBLEVEL)" +endif + @echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)" + +printchanges: + @git-log Ubuntu-$(release)-$(prev_revision)..HEAD | \ + perl -w -f debian/scripts/misc/git-ubuntu-log $(ubuntu_log_opts) + +insertchanges: + @perl -w -f debian/scripts/misc/insert-changes.pl + +diffupstream: + @git-diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|debian|\.git.*)') + +startnewrelease: + dh_testdir + @nextminor=$(shell expr `echo $(revision) | awk -F. '{print $$2}'` + 1); \ + user=$(shell whoami); \ + memyselfandirene="$$(getent passwd $$user | cut -d ":" -f 5 | cut -d "," -f 1)"; \ + now="$(shell date -R)"; \ + echo "Creating new changelog set for $(release)-$(abinum).$$nextminor..."; \ + echo -e "linux ($(release)-$(abinum).$$nextminor) UNRELEASED; urgency=low\n" > debian/changelog.new; \ + echo " CHANGELOG: Do not edit directly. Autogenerated at release." >> \ + debian/changelog.new; \ + echo " CHANGELOG: Use the printchanges target to see the curent changes." \ + >> debian/changelog.new; \ + echo " CHANGELOG: Use the insertchanges target to create the final log." \ + >> debian/changelog.new; \ + echo -e "\n -- $$memyselfandirene <$$user@ubuntu.com> $$now\n" >> \ + debian/changelog.new ; \ + cat debian/changelog >> debian/changelog.new; \ + mv debian/changelog.new debian/changelog + +# +# If $(ppa_file) exists, then only the standard flavours are built for PPA, e.g., +# 386, 386-generic, and amd64-generic. +# +prepare-ppa: + @echo Execute debian/scripts/misc/prepare-ppa-source to prepare an upload + @echo for a PPA build. You must do this outside of debian/rules since it cannot + @echo nest. + +print-ppa-file-name: + @echo $(ppa_file) --- linux-2.6.24.orig/debian/scripts/abi-check +++ linux-2.6.24/debian/scripts/abi-check @@ -0,0 +1,44 @@ +#!/bin/bash -e + +flavour="$1" +prev_abinum="$2" +abinum="$3" +prev_abidir="$4" +abidir="$5" +skipabi="$6" + +echo -n "Checking ABI for $flavour..." + +if [ -f "$prev_abidir/ignore" -o -f "$prev_abidir/$flavour.ignore" -o -n "$skipabi" ]; then + echo "explicitly asked to ignore ABI (probably not good)" + exit +fi + +if [ "$prev_abinum" = "0" -o "$prev_abinum" != "$abinum" ]; then + echo "different ABI numbers, no check needed." + exit +fi + +if [ ! -f "$abidir/$flavour" -o ! -f "$prev_abidir/$flavour" ]; then + echo "previous or current ABI file missing!" + echo " $abidir/$flavour" + echo " $prev_abidir/$flavour" + exit 1 +fi + +if [ "`diff -u $prev_abidir/$flavour $abidir/$flavour | grep ^-[^-] | wc -l`" != "0" ] +then + echo "check FAILED (nice one Tonto, go get the Lone Ranger)" + diff -u $prev_abidir/$flavour $abidir/$flavour + exit 1 +fi + +if [ "`diff -u $prev_abidir/$flavour $abidir/$flavour | grep ^+[^+] | wc -l`" != "0" ] +then + echo "new symbols in ABI (continuing reluctantly)" + diff -u $prev_abidir/$flavour $abidir/$flavour || true + exit +fi + +echo "check PASSED (good job, you saved yourself some work)" +exit --- linux-2.6.24.orig/debian/scripts/control-create +++ linux-2.6.24/debian/scripts/control-create @@ -0,0 +1,33 @@ +#!/bin/bash + +stub=debian/control.d/flavour-control.stub +dstub=debian/control.d/flavour-control-debug.stub +vars=$1 + +# Defaults +section_image=base +section_headers=devel + +. $vars + +flavour=$(basename $vars | sed 's/.*\.//') +# Custom is a little different +if [ "$flavour" = "vars" ]; then + flavour=$(basename `dirname $vars`) +fi + +if [ -n "$do_debug" ]; then + stub="$stub $dstub" +fi + +cat $stub | grep -v '^#' | sed \ + -e "s#FLAVOUR#$flavour#g" \ + -e "s#DESC#$desc#g" \ + -e "s#ARCH#$arch#g" \ + -e "s#SUPPORTED#$supported#g" \ + -e "s#TARGET#$target#g" \ + -e "s#BOOTLOADER#$bootloader#g" \ + -e "s#=PROVIDES=#$provides#g" \ + -e "s#SECTION_IMAGE#$section_image#g" \ + -e "s#SECTION_HEADERS#$section_headers#g" \ + -e "s#=HEADER_DEPENDS=#$header_depends#g" --- linux-2.6.24.orig/debian/scripts/module-check +++ linux-2.6.24/debian/scripts/module-check @@ -0,0 +1,119 @@ +#!/usr/bin/perl -w + +$flavour = shift; +$prev_abidir = shift; +$abidir = shift; +$skipmodule = shift; + +print "II: Checking modules for $flavour..."; + +if (-f "$prev_abidir/ignore.modules" + or -f "$prev_abidir/$flavour.ignore.modules") { + print "explicitly ignoring modules\n"; + exit(0); +} + +if (not -f "$abidir/$flavour.modules" or not -f + "$prev_abidir/$flavour.modules") { + print "previous or current modules file missing!\n"; + print " $abidir/$flavour.modules\n"; + print " $prev_abidir/$flavour.modules\n"; + if (defined($skipmodule)) { + exit(0); + } else { + exit(1); + } +} + +print "\n"; + +my %modules; +my %modules_ignore; +my $missing = 0; +my $new = 0; +my $errors = 0; + +# See if we have any ignores +if (-f "$prev_abidir/../modules.ignore") { + my $ignore = 0; + open(IGNORE, "< $prev_abidir/../modules.ignore") or + die "Could not open $prev_abidir/../modules.ignore"; + print " reading modules to ignore..."; + while () { + chomp; + $modules_ignore{$_} = 1; + $ignore++; + } + close(IGNORE); + print "read $ignore modules.\n"; +} + +# Read new modules first +print " reading new modules..."; +$new_count = 0; +open(NEW, "< $abidir/$flavour.modules") or + die "Could not open $abidir/$flavour.modules"; +while () { + chomp; + $modules{$_} = 1; + $new_count++; +} +close(NEW); +print "read $new_count modules.\n"; + +# Now the old modules, checking for missing ones +print " reading old modules..."; +$old_count = 0; +open(OLD, "< $prev_abidir/$flavour.modules") or + die "Could not open $prev_abidir/$flavour.modules"; +while () { + chomp; + if (not defined($modules{$_})) { + print "\n" if not $missing; + $missing++; + if (not defined($modules_ignore{$_})) { + print " MISS: $_\n"; + $errors++; + } else { + print " MISS: $_ (ignored)\n"; + } + } else { + $modules{$_}++; + } + $old_count++; +} +close(OLD); +# Check for new modules +foreach $mod (keys(%modules)) { + if ($modules{$mod} < 2) { + print "\n" if not $missing and not $new; + print " NEW : $mod\n"; + $new++; + } +} +if ($new or $missing) { + print " read $old_count modules : new($new) missing($missing)\n"; +} else { + print "read $old_count modules.\n"; +} + + +# Let's see where we stand... +if ($errors) { + if (defined($skipmodule)) { + print "WW: Explicitly asked to ignore failures (probably not good)\n"; + } else { + print "EE: Missing modules (start begging for mercy)\n"; + exit 1 + } +} + +if ($new) { + print "II: New modules (you've been busy, wipe the poop off your nose)\n"; +} else { + print "II: No new modules (hope you're happy, slacker)\n"; +} + +print "II: Done\n"; + +exit(0); --- linux-2.6.24.orig/debian/scripts/misc/git-ubuntu-log +++ linux-2.6.24/debian/scripts/misc/git-ubuntu-log @@ -0,0 +1,243 @@ +#!/usr/bin/perl -w + +use strict; +use Text::Wrap; + +my $kernel_auth = "Upstream Kernel Changes"; + +my (%map, @reverts); +my $pstate = 1; +my $no_kern_log = 0; +my $print_shas = 0; +my $first_print = 1; + +while (@ARGV) { + my $opt = $ARGV[0]; + shift; + if ($opt eq "--no-kern-log") { + $no_kern_log = 1; + } elsif ($opt eq "--print-shas") { + $print_shas = 1; + } else { + print STDERR "Unknown options: $opt\n"; + exit(1); + } +} + +sub check_reverts($) { + my ($entry) = @_; + my ($check); + + foreach $check (reverse @reverts) { + my $desc = "Revert \"" . $entry->{'desc'} . "\""; + if ($check->{'desc'} eq $desc) { + @reverts = grep($_->{'desc'} ne $desc, @reverts); + return 1; + } + } + + return 0; +} + +sub add_entry($) { + my ($entry) = @_; + my $key = $entry->{'author'}; + + # store description in array, in email->{desc list} map + if (exists $map{$key}) { + # grab ref + my $obj = $map{$key}; + + # add desc to array + push(@$obj, $entry); + } else { + # create new array, containing 1 item + my @arr = ($entry); + + # store ref to array + $map{$key} = \@arr; + } +} + +sub shortlog_entry($$$$$) { + my ($name, $desc, $bug, $cve, $commit) = @_; + my $entry; + + $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g; + $desc =~ s#\[PATCH\] ##g; + + $desc =~ s#^\s*##g; + $desc =~ s# *UBUNTU: ##g; + + $entry->{'desc'} = $desc; + if ($bug ne '') { + $entry->{'bugno'} = $bug; + } + $entry->{'cve'} = $cve; + $entry->{'commit'} = $commit; + $entry->{'author'} = $name; + + if ($desc =~ /^Revert "/) { + push(@reverts, $entry); + return; + } + + return if check_reverts($entry); + + add_entry($entry); +} + +# sort comparison function +sub by_name($$) { + my ($a, $b) = @_; + + uc($a) cmp uc($b); +} + +sub shortlog_output { + my ($obj, $key, $entry); + + foreach $key (sort by_name keys %map) { + next if $key eq $kernel_auth and $no_kern_log; + + print "\n" unless $first_print; + $first_print = 0; + + # output author + printf " [%s]\n\n", $key; + + # output author's 1-line summaries + $obj = $map{$key}; + foreach $entry (reverse @$obj) { + print wrap(" * ", " ", $entry->{'desc'}) . "\n"; + # For non upstream changes, add other info. + if ($key ne $kernel_auth) { + if ($print_shas) { + print " - GIT-SHA " . $entry->{'commit'} . + "\n"; + } + } + if (defined($entry->{'bugno'})) { + print " - LP: #" . $entry->{'bugno'} . "\n"; + } + if (defined($entry->{'cve'})) { + print " - " . $entry->{'cve'} . "\n"; + } + } + } +} + +sub changelog_input { + my ($author, $desc, $commit, $entry, $cve); + + while () { + # get commit + if ($pstate == 1) { + next unless /^commit (.*)/; + + $commit = $1; + + $pstate++; + } + + # get author and email + elsif ($pstate == 2) { + my ($email); + + next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/; + + $author = $1; + $email = $2; + $desc = undef; + $cve = undef; + + # cset author fixups + if (!$author) { + $author = $email; + } + $pstate++; + } + + # skip to blank line + elsif ($pstate == 3) { + next unless /^\s*$/; + $pstate++; + } + + # skip to non-blank line + elsif ($pstate == 4) { + next unless /^\s*?(.*)/; + my $ignore = 0; + my $bug = undef; + my %bugz = (); + my $k; + + # skip lines that are obviously not + # a 1-line cset description + next if /^\s*From: /; + + chomp; + $desc = $1; + + if ($desc =~ /^ *(Revert "|)UBUNTU:/) { + while () { + $ignore = 1 if /^ *Ignore: yes/i; + if (/^ *Bug: *(#|)(.*)/i) { + foreach $k (split('(,|)*\s*#', $2)) { + $bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/)); + } + } + elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) { + $bugz{$1} = 1; + } + elsif (/^ *(CVE-.*)/) { + $cve = $1 + } + last if /^commit /; + } + } else { + $author = $kernel_auth; + $ignore = 1 if $desc =~ /Merge /; + while () { + if (/^ *Bug: *(#|)(.*)/i) { + foreach $k (split('(,|)*\s*#', $2)) { + $bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/)); + } + } + elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) { + $bugz{$1} = 1; + } + elsif (/^ *(CVE-.*)/) { + $cve = $1 + } + last if /^commit /; + } + } + + $bug = join(", #", keys(%bugz)); + if (!$ignore) { + &shortlog_entry($author, $desc, $bug, + $cve, $commit, 0); + } + + $pstate = 1; + if ($_ && /^commit (.*)/) { + $commit = $1; + $pstate++; + } + } + + else { + die "invalid parse state $pstate"; + } + } + + foreach $entry (@reverts) { + add_entry($entry); + } +} + +&changelog_input; +&shortlog_output; + +exit(0); --- linux-2.6.24.orig/debian/scripts/misc/oldconfig +++ linux-2.6.24/debian/scripts/misc/oldconfig @@ -0,0 +1,66 @@ +#!/bin/bash + +# We have to be in the top level kernel source directory +if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then + echo "This does not appear to be the kernel source directory." 1>&2 + exit 1 +fi + + +# One arg, and that's it. Just pass an architecture +if [ $# -ne 1 ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +arch="$1" + +case "$arch" in + sparc) kernarch="sparc64" ;; + amd64) kernarch="x86_64" ;; + hppa) kernarch="parisc" ;; + lpia) kernarch="i386" ;; + *) kernarch="$arch" ;; +esac + +confdir="`pwd`/debian/config/$arch" +bindir="`pwd`/debian/scripts/misc" + +# Make sure the architecture exists +if [ ! -d $confdir ]; then + echo "Could not find config directory for $arch" 1>&2 + exit 1 +fi + +echo "Processing $arch ($kernarch) ... " + +configs=$(cd $confdir && ls config.*) + +if [ -f $confdir/config ]; then + for config in $configs; do + case $config in + *) + cat $confdir/config >> $confdir/$config + ;; + esac + done + rm -f $confdir/config +fi + +test -d build || mkdir build +cd build +for config in $configs; do + echo "Running silentoldconfig for $config ... " + + cat $confdir/$config > .config + + make -C ../ O=`pwd` silentoldconfig ARCH=$kernarch + + cat .config > $confdir/$config +done +cd .. + +echo "Running splitconfig.pl ... " +echo + +(cd $confdir ; $bindir/splitconfig.pl) --- linux-2.6.24.orig/debian/scripts/misc/splitconfig.pl +++ linux-2.6.24/debian/scripts/misc/splitconfig.pl @@ -0,0 +1,110 @@ +#!/usr/bin/perl -w + +%configs = (); +%common = (); + +print "Reading config's ...\n"; + +opendir(DIR, "."); + +while (defined($config = readdir(DIR))) { + # Only config.* + next if $config !~ /^config\..*/; + # Nothing that is disabled, or remnant + next if $config =~ /.*\.(default|disabled|stub)$/; + # Server config's are standalone + #next if $config =~ /config.server-.*/; + + %{$configs{$config}} = (); + + print " processing $config ... "; + + open(CONFIG, "< $config"); + + while () { + /^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next; + + ${$configs{$config}}{$1} = $2; + + $common{$1} = $2; + } + + close(CONFIG); + + print "done.\n"; +} + +closedir(DIR); + +print "\n"; + +print "Merging lists ... \n"; + +for $config (keys(%configs)) { + my %options = %{$configs{$config}}; + + print " processing $config ... "; + + for $key (keys(%common)) { + next if not defined $common{$key}; + + # If we don't have the common option, then it isn't + # common. If we do have that option, it must have the same + # value (this is where the old split.py was broken). It + # also did the common check while it was parsing files, so + # that there were cases where a non-common option was in + # common anyway (ordering). + if (not defined($options{$key})) { + undef $common{$key}; + } elsif ($common{$key} ne $options{$key}) { + undef $common{$key}; + } + } + + print "done.\n"; +} + +print "\n"; + +print "Creating common config ... "; + +open(COMMON, "> config"); +print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n"; + +for $key (sort(keys(%common))) { + next if not defined $common{$key}; + + if ($common{$key} eq "is not set") { + print COMMON "# CONFIG_$key is not set\n"; + } else { + print COMMON "CONFIG_$key=$common{$key}\n"; + } +} +close(COMMON); + +print "done.\n\n"; + +print "Creating stub configs ...\n"; + +for $config (keys(%configs)) { + my %options = %{$configs{$config}}; + + print " processing $config ... "; + + open(STUB, "> $config"); + print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n"; + + for $key (sort(keys(%options))) { + next if defined $common{$key}; + + if ($options{$key} eq "is not set") { + print STUB "# CONFIG_$key is not set\n"; + } else { + print STUB "CONFIG_$key=$options{$key}\n"; + } + } + + close(STUB); + + print "done.\n"; +} --- linux-2.6.24.orig/debian/scripts/misc/doconfig +++ linux-2.6.24/debian/scripts/misc/doconfig @@ -0,0 +1,67 @@ +#!/bin/bash + +# We have to be in the top level kernel source directory +if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then + echo "This does not appear to be the kernel source directory." 1>&2 + exit 1 +fi + + +# One arg, and that's it. Just pass an architecture +if [ $# -ne 1 ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +arch="$1" + +case "$arch" in + sparc) kernarch="sparc64" ;; + amd64) kernarch="x86_64" ;; + hppa) kernarch="parisc" ;; + lpia) kernarch="i386" ;; + *) kernarch="$arch" ;; +esac + +confdir="`pwd`/debian/config/$arch" +bindir="`pwd`/debian/scripts/misc" + +# Make sure the architecture exists +if [ ! -d $confdir ]; then + echo "Could not find config directory for $arch" 1>&2 + exit 1 +fi + +echo "Processing $arch ($kernarch) ... " + +configs=$(cd $confdir && ls config.*) + +if [ -f $confdir/config ]; then + for config in $configs; do + case $config in + *) + cat $confdir/config >> $confdir/$config + ;; + esac + done + rm -f $confdir/config +fi + +test -d build || mkdir build +cd build +for config in $configs; do + + cat $confdir/$config > .config + + echo About to configure $arch $config + read + make -C ../ O=`pwd` ARCH=$kernarch menuconfig + + cat .config > $confdir/$config +done +cd .. + +echo "Running splitconfig.pl ... " +echo + +(cd $confdir ; $bindir/splitconfig.pl) --- linux-2.6.24.orig/debian/scripts/misc/ppa-cron-job +++ linux-2.6.24/debian/scripts/misc/ppa-cron-job @@ -0,0 +1,47 @@ +#!/bin/sh + +# +# Use this script as a template for the daily kernel build cron job. +# You should copy it somewhere outside of the git tree 'cause the whole +# git tree gets removed and recreated. +# +KNAME=hardy +DAILY_BUILD_DIR=${KBDIR:=${HOME}/${KNAME}} +KERNEL_GIT_REPO=${KREPO:=/srv/kernel.ubuntu.com/git/ubuntu/ubuntu-${KNAME}.git} + +# +# Nothing works unless there is a dput configuration. +# +if [ ! -f ${HOME}/.dput.cf ] +then + echo No dput configuration. + exit 1 +fi + +if [ ! -d ${DAILY_BUILD_DIR} ] +then + rm -rf ${DAILY_BUILD_DIR} + mkdir -p ${DAILY_BUILD_DIR} +fi + +# +# Start with a fresh repo. +# +cd ${DAILY_BUILD_DIR} +rm -rf ubuntu-${KNAME} +git clone ${KERNEL_GIT_REPO} + +# +# Remember that the success of prepare-ppa depends on +# this user account having an un-passworded GPG key. +# Otherwise it requires user intervention, e.g., a +# user must enter the GPG key password. +# +rm -f *.changes +(cd ubuntu-${KNAME}; debian/scripts/misc/prepare-ppa-source) + +find . -maxdepth 1 -type f -name "*.changes" | while read f +do + echo dput my-ppa $f +done + --- linux-2.6.24.orig/debian/scripts/misc/insert-changes.pl +++ linux-2.6.24/debian/scripts/misc/insert-changes.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl -w + +system("make -s -f debian/rules printchanges > debian/changes"); + +open(CHANGELOG, "< debian/changelog") or die "Cannot open changelog"; +open(CHANGES, "< debian/changes") or die "Cannot open new changes"; +open(NEW, "> debian/changelog.new") or die "Cannot open new changelog"; + +$printed = 0; + +while () { + if (/^ CHANGELOG: /) { + next if $printed; + + while () { + print NEW; + } + + $printed = 1; + } else { + print NEW; + } +} + +close(NEW); +close(CHANGES); +close(CHANGELOG); + +rename("debian/changelog.new", "debian/changelog"); +unlink("debian/changes"); --- linux-2.6.24.orig/debian/scripts/misc/getabis +++ linux-2.6.24/debian/scripts/misc/getabis @@ -0,0 +1,86 @@ +#!/bin/bash + +if [ "$#" != "2" ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +ver=$1 +revision=$2 +abi=$(echo $revision | awk -F. '{print $1}') + +verabi=$ver-$abi +verfull=$ver-$revision + +repo="http://archive.ubuntu.com/ubuntu/pool/main/l" +repo_ports="http://ports.ubuntu.com/ubuntu-ports/pool/main/l" +repo_uni="http://archive.ubuntu.com/ubuntu/pool/universe/l" + +WGET="wget --quiet -c" + +abidir="`pwd`/debian/abi/$verfull" +tmpdir="`pwd`/abi-tmp-$verfull" +origdir="`pwd`" + +test -d $tmpdir || mkdir $tmpdir + +getall() { + arch=$1 + shift + + mkdir -p $abidir/$arch + + for sub in $@; do + if [ -f $abidir/$arch/$sub ]; then + echo "Exists: $sub" + continue + fi + echo -n "Fetching $sub..." + filename=linux-image-${verabi}-${sub}_${verfull}_${arch}.deb + cd $tmpdir + if ! [ -f $filename ]; then + $WGET $repo/linux/$filename + fi + if ! [ -f $filename ]; then + $WGET $repo_ports/linux/$filename + fi + if ! [ -f $filename ]; then + $WGET $repo_uni/linux/$filename + fi + if [ "$?" = "0" ]; then + echo -n "extracting..." + dpkg-deb --extract $filename tmp + if [ -f tmp/boot/abi-* ]; then + mv tmp/boot/abi-* $abidir/$arch/$sub + else + echo -n "NO ABI FILE..." + fi + (cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \ + $abidir/$arch/$sub.modules + rm -rf tmp $filename + echo "done." + else + echo "FAILED." + fi + cd $origdir + done +} + +# MAIN + +# Setup abi directory +mkdir -p $abidir +echo $abi > $abidir/abiname + +# NOTE: The flavours are hardcoded, because they may have changed from the +# current build. + +getall powerpc powerpc{,-smp,64-smp} +getall amd64 generic server +getall i386 386 generic server virtual +getall sparc sparc64{,-smp} +getall ia64 itanium mckinley +getall hppa hppa32 hppa64 + +rmdir $tmpdir --- linux-2.6.24.orig/debian/scripts/link-headers +++ linux-2.6.24/debian/scripts/link-headers @@ -0,0 +1,79 @@ +#!/bin/bash -e + +hdrdir="$1" +symdir="$2" +srcdir="$3" +build_arch="$4" +flavour="$5" + +echo "Symlinking and copying headers for $flavour..." + +# XXX Special case for ppc +if [ "$build_arch" = "powerpc" ]; then + install -d -m755 $hdrdir/arch/powerpc/include + ln -fsn ../../../include/asm-ppc $hdrdir/arch/powerpc/include/asm +fi + +excludes='( -path ./debian -prune -o -path ./.git ) -prune -o' + +# For custom builds, we have to take care of a few things. First, we want +# to check for files to symlink and copy in the srcdir, not the stock src. +# We compare against stock source, copying for files that aren't the same, +# and later symlinking for same files. +if [ -n "$srcdir" ]; then + ( + cd $srcdir + find . $excludes -type f \ + \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ + -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print + find ./include ./scripts -name .gitignore -prune -o -type f -print + ) | ( + while read file; do + if [ -e "$hdrdir/$file" ]; then + continue + fi + + # If the files are not the same, copy it + if ! cmp -s "$file" "$srcdir/$file"; then + echo $file + fi + done + ) | ( + cd $srcdir + cpio -pd --preserve-modification-time "$hdrdir" + ) +else + srcdir="." +fi + +( +cd $srcdir +find . $excludes -type f \ + \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ + -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print +find ./include ./scripts -name .gitignore -prune -o -type f -print +find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print +) | ( +while read file; do + dir=$file + lastdir=$file + + if [ -f "$hdrdir/$file" ]; then + continue + fi + + while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do + lastdir=$dir + dir=`dirname $dir` + done + # If the last item to exist is a symlink we assume all is good + if [ ! -L "$hdrdir/$dir" ]; then + # Turns things like "./foo" into "../" + deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`" + item="`echo -n $lastdir | sed -e 's/^\.\///'`" + ln -s $deref$symdir/$item $hdrdir/$item + fi +done +) + +exit --- linux-2.6.24.orig/debian/control.stub.in +++ linux-2.6.24/debian/control.stub.in @@ -0,0 +1,81 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 3), module-init-tools, kernel-wedge (>= 2.24ubuntu1), gcc-4.1-hppa64 [hppa], binutils-hppa64 [hppa], device-tree-compiler [powerpc], gcc-4.1 [powerpc ia64], gawk [amd64 i386] +Build-Depends-Indep: xmlto, docbook-utils, gs, transfig, bzip2, sharutils + +Package: linux-kernel-devel +Architecture: all +Section: devel +Priority: optional +Depends: build-essential, git-core, gitk, rsync, curl, openssh-client, debhelper, kernel-package, kernel-wedge +Description: Linux kernel hacking dependencies + This is a dummy package that will install all possible packages + required to hack comfortably on the kernel. + +Package: linux-source-PKGVER +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version PKGVER with Ubuntu patches + This package provides the source code for the Linux kernel version PKGVER. + . + You may configure the kernel to your setup by typing "make config" and + following instructions, but you could get ncursesX.X-dev and try "make + menuconfig" for a jazzier, and easier to use interface. There are options + to use QT or GNOME based configuration interfaces, but they need + additional packages to be installed. Also, please read the detailed + documentation in the file + /usr/share/doc/linux-source-PKGVER/README.headers.gz. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc-PKGVER +Architecture: all +Section: doc +Priority: optional +Provides: linux-doc-2.6 +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Depends: coreutils | fileutils (>= 4.0) +Description: Linux kernel specific documentation for version PKGVER + This package provides the various readme's in the PKGVER kernel + Documentation/ subdirectory: these typically contain kernel-specific + installation notes for some drivers for example. See + /usr/share/doc/linux-doc-PKGVER/Documentation/00-INDEX for a list of what + is contained in each file. Please read the Changes file, as it contains + information about the problems, which may result by upgrading your + kernel. + +Package: linux-headers-PKGVER-ABINUM +Architecture: all +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version PKGVER + This package provides kernel header files for version PKGVER, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details + +Package: linux-libc-dev +Architecture: amd64 i386 powerpc sparc ia64 hppa lpia +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers +Provides: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0113-UBC-cfq-weighted-bandwidth.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0113-UBC-cfq-weighted-bandwidth.patch @@ -0,0 +1,59 @@ +From e7c95bcf3a2478d1f8b8e9021c7b5035f386f732 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:46 +0400 +Subject: [PATCH 113/131] UBC cfq weighted bandwidth + +Implement bandwidth distribution control based +on per ioprio iotime ratio coefficient. + +It works like bc iotime flows with different speed, depends on ioprio. +BC with lower IO priority faster sink in queue and got less bandwidth. + +Ratio coefficients selected to conform with bandwidth distribution in +previous implementation: ratio = 100./(1+ioprio/7.) + +ioprio 0 -> ratio 100 -> weight 1 +ioprio 7 -> ratio 50 -> weight 2 +--- + kernel/bc/io_prio.c | 11 ++++++++++- + 1 files changed, 10 insertions(+), 1 deletions(-) + +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index ef6982d..d3a39e5 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -19,6 +19,11 @@ + #include + #include + ++#define BC_MAX_RATIO 100 ++ ++/* bc bandwidth inversely proportional coefficient per ioprio */ ++static int bc_ioprio_ratio[CFQ_PRIO_LISTS] = {100, 87, 77, 70, 63, 58, 53, 50}; ++ + struct cfq_bc_data *__find_cfq_bc(struct ub_iopriv *iopriv, + struct cfq_data *cfqd) + { +@@ -223,7 +228,7 @@ static void bc_enqueue(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) + unsigned long iotime, slice, position; + + iotime = cfq_bc->cfq_bc_iotime; +- slice = cfqd->cfq_ub_slice * 2; ++ slice = cfqd->cfq_ub_slice * BC_MAX_RATIO; + position = cfqd->cfq_bc_position; + + /* adjust iotime to hit in interval position +/- maximum slice */ +@@ -243,6 +248,10 @@ static void bc_dequeue(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) + static void bc_update(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc, + unsigned long delta) + { ++ int ioprio; ++ ++ ioprio = cfq_bc->ub_iopriv->ioprio; ++ delta *= bc_ioprio_ratio[ioprio]; + cfq_bc->cfq_bc_iotime += delta; + + if (!cfq_bc->rqnum) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0065-CPT-fix-non-existent-RCU-locking-during-resume.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0065-CPT-fix-non-existent-RCU-locking-during-resume.patch @@ -0,0 +1,170 @@ +From 2898400a6c100c60930ac3f0ae54f19e3199a4ab Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 18 Apr 2008 19:41:05 +0400 +Subject: [PATCH 64/67] CPT: fix non-existent RCU locking during resume + +The rules are that manipulations with pid's found by find_vpid() +should be done under RCU lock. +--- + kernel/cpt/rst_process.c | 32 ++++++++++++++++++-------------- + kernel/cpt/rst_tty.c | 9 +++++++-- + 2 files changed, 25 insertions(+), 16 deletions(-) + +diff --git a/kernel/cpt/rst_process.c b/kernel/cpt/rst_process.c +index 8388f32..c54f04e 100644 +--- a/kernel/cpt/rst_process.c ++++ b/kernel/cpt/rst_process.c +@@ -230,7 +230,8 @@ int rst_process_linkage(cpt_context_t *ctx) + if (task_pgrp_vnr(tsk) != ti->cpt_pgrp) { + struct pid *pid; + +- pid = get_pid(find_vpid(ti->cpt_pgrp)); ++ rcu_read_lock(); ++ pid = find_vpid(ti->cpt_pgrp); + if (!pid) { + eprintk_ctx("illegal PGRP " CPT_FID "\n", CPT_TID(tsk)); + return -EINVAL; +@@ -240,23 +241,21 @@ int rst_process_linkage(cpt_context_t *ctx) + if (task_pgrp_nr(tsk) != pid_nr(pid)) { + detach_pid(tsk, PIDTYPE_PGID); + set_task_pgrp(tsk, pid_nr(pid)); +- if (thread_group_leader(tsk)) { +- get_pid(pid); ++ if (thread_group_leader(tsk)) + attach_pid(tsk, PIDTYPE_PGID, pid); +- } + } + write_unlock_irq(&tasklist_lock); + if (task_pgrp_nr(tsk) != pid_nr(pid)) { +- put_pid(pid); + eprintk_ctx("cannot set PGRP " CPT_FID "\n", CPT_TID(tsk)); + return -EINVAL; + } +- put_pid(pid); ++ rcu_read_unlock(); + } + if (task_session_vnr(tsk) != ti->cpt_session) { + struct pid *pid; + +- pid = get_pid(find_vpid(ti->cpt_session)); ++ rcu_read_lock(); ++ pid = find_vpid(ti->cpt_session); + if (!pid) { + eprintk_ctx("illegal SID " CPT_FID "\n", CPT_TID(tsk)); + return -EINVAL; +@@ -266,28 +265,27 @@ int rst_process_linkage(cpt_context_t *ctx) + if (task_session_nr(tsk) != pid_nr(pid)) { + detach_pid(tsk, PIDTYPE_SID); + set_task_session(tsk, pid_nr(pid)); +- if (thread_group_leader(tsk)) { +- get_pid(pid); ++ if (thread_group_leader(tsk)) + attach_pid(tsk, PIDTYPE_SID, pid); +- } + } + write_unlock_irq(&tasklist_lock); + if (task_session_nr(tsk) != pid_nr(pid)) { +- put_pid(pid); + eprintk_ctx("cannot set SID " CPT_FID "\n", CPT_TID(tsk)); + return -EINVAL; + } +- put_pid(pid); ++ rcu_read_unlock(); + } + if (ti->cpt_old_pgrp > 0 && !tsk->signal->tty_old_pgrp) { + struct pid *pid; + ++ rcu_read_lock(); + pid = get_pid(find_vpid(ti->cpt_old_pgrp)); + if (!pid) { + eprintk_ctx("illegal OLD_PGRP " CPT_FID "\n", CPT_TID(tsk)); + return -EINVAL; + } + tsk->signal->tty_old_pgrp = pid; ++ rcu_read_unlock(); + } + } + +@@ -300,7 +298,7 @@ struct pid *alloc_vpid_safe(pid_t vnr) + + pid = alloc_pid(current->nsproxy->pid_ns, vnr); + if (!pid) +- pid = get_pid(find_vpid(vnr)); ++ pid = find_vpid(vnr); + return pid; + } + +@@ -321,6 +319,7 @@ restore_one_signal_struct(struct cpt_task_image *ti, int *exiting, cpt_context_t + if (task_pgrp_vnr(current) != si->cpt_pgrp) { + struct pid * pid = NULL, *free = NULL; + ++ rcu_read_lock(); + if (si->cpt_pgrp_type == CPT_PGRP_ORPHAN) { + #if 0 + if (!is_virtual_pid(si->cpt_pgrp)) { +@@ -346,6 +345,7 @@ restore_one_signal_struct(struct cpt_task_image *ti, int *exiting, cpt_context_t + write_unlock_irq(&tasklist_lock); + if (free != NULL) + free_pid(free); ++ rcu_read_unlock(); + } + + current->signal->tty_old_pgrp = NULL; +@@ -359,8 +359,10 @@ restore_one_signal_struct(struct cpt_task_image *ti, int *exiting, cpt_context_t + return -EINVAL; + } + } else { ++ rcu_read_lock(); + current->signal->tty_old_pgrp = +- alloc_vpid_safe(si->cpt_old_pgrp); ++ get_pid(alloc_vpid_safe(si->cpt_old_pgrp)); ++ rcu_read_unlock(); + if (!current->signal->tty_old_pgrp) { + dprintk_ctx("forward old tty PGID\n"); + current->signal->tty_old_pgrp = NULL; +@@ -371,6 +373,7 @@ restore_one_signal_struct(struct cpt_task_image *ti, int *exiting, cpt_context_t + if (task_session_vnr(current) != si->cpt_session) { + struct pid * pid = NULL, *free = NULL; + ++ rcu_read_lock(); + if (si->cpt_session_type == CPT_PGRP_ORPHAN) { + #if 0 + if (!is_virtual_pid(si->cpt_session)) { +@@ -398,6 +401,7 @@ restore_one_signal_struct(struct cpt_task_image *ti, int *exiting, cpt_context_t + write_unlock_irq(&tasklist_lock); + if (free != NULL) + free_pid(free); ++ rcu_read_unlock(); + } + + cpt_sigset_import(¤t->signal->shared_pending.signal, si->cpt_sigpending); +diff --git a/kernel/cpt/rst_tty.c b/kernel/cpt/rst_tty.c +index f6d90aa..48bc4ce 100644 +--- a/kernel/cpt/rst_tty.c ++++ b/kernel/cpt/rst_tty.c +@@ -350,7 +350,9 @@ int rst_tty_jobcontrol(struct cpt_context *ctx) + if (obj) { + struct tty_struct *stty = obj->o_obj; + if ((int)pibuf->cpt_pgrp > 0) { +- stty->pgrp = alloc_vpid_safe(pibuf->cpt_pgrp); ++ rcu_read_lock(); ++ stty->pgrp = get_pid(alloc_vpid_safe(pibuf->cpt_pgrp)); ++ rcu_read_unlock(); + if (!stty->pgrp) + dprintk_ctx("unknown tty pgrp %d\n", pibuf->cpt_pgrp); + } else if (pibuf->cpt_pgrp) { +@@ -364,7 +366,10 @@ int rst_tty_jobcontrol(struct cpt_context *ctx) + } + if ((int)pibuf->cpt_session > 0) { + struct pid *sess; +- sess = alloc_vpid_safe(pibuf->cpt_session); ++ ++ rcu_read_lock(); ++ sess = get_pid(alloc_vpid_safe(pibuf->cpt_session)); ++ rcu_read_unlock(); + if (!sess) { + dprintk_ctx("unknown tty session %d\n", pibuf->cpt_session); + } else if (!stty->session) { +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0094-UBC-tcpsndbuf-uncharging-too-much.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0094-UBC-tcpsndbuf-uncharging-too-much.patch @@ -0,0 +1,34 @@ +From 3bd8ea9e606a6c35fbf1873060e67f9a71df6977 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 094/103] UBC tcpsndbuf uncharging too much + +It is not allowed to go to the label wait_for_memory with chargesize != 0 +when this space is already placed to the skb. +--- + net/ipv4/tcp.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c +index 2cdad17..c83979e 100644 +--- a/net/ipv4/tcp.c ++++ b/net/ipv4/tcp.c +@@ -568,6 +568,7 @@ new_segment: + if (!skb) + goto wait_for_memory; + ub_skb_set_charge(skb, sk, chargesize, UB_TCPSNDBUF); ++ chargesize = 0; + + skb_entail(sk, skb); + copy = size_goal; +@@ -760,6 +761,7 @@ new_segment: + goto wait_for_memory; + ub_skb_set_charge(skb, sk, chargesize, + UB_TCPSNDBUF); ++ chargesize = 0; + + /* + * Check whether we can use HW checksum. +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0084-CPT-net-open-requests.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0084-CPT-net-open-requests.patch @@ -0,0 +1,128 @@ +From 67bf484b3dade2a0301e33a91d4469cd17979700 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:48 +0400 +Subject: [PATCH 084/103] CPT net open requests + +Open requests were saved and restored sometimes incorrectly: + +1. Family of open request was not saved (commented out) +2. Restore was broken, would crash because rsk_ops was cleared by memset. +3. And finally, all the coded restoring open requests was skipped. + +Tested with http_load. + +Bug #95113 +http://bugzilla.openvz.org/show_bug.cgi?id=784 +--- + include/net/tcp.h | 1 + + kernel/cpt/cpt_socket_in.c | 2 +- + kernel/cpt/rst_socket_in.c | 21 ++++++++++++++++++--- + net/ipv6/tcp_ipv6.c | 3 ++- + 4 files changed, 22 insertions(+), 5 deletions(-) + +Index: kernel/include/net/tcp.h +=================================================================== +--- kernel.orig/include/net/tcp.h 2008-11-24 15:59:46.000000000 +0100 ++++ kernel/include/net/tcp.h 2008-11-24 16:00:40.000000000 +0100 +@@ -1362,6 +1362,7 @@ + extern void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo); + + extern struct request_sock_ops tcp_request_sock_ops; ++extern struct request_sock_ops tcp6_request_sock_ops; + + extern int tcp_v4_destroy_sock(struct sock *sk); + +Index: kernel/kernel/cpt/cpt_socket_in.c +=================================================================== +--- kernel.orig/kernel/cpt/cpt_socket_in.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/cpt/cpt_socket_in.c 2008-11-24 16:00:40.000000000 +0100 +@@ -313,7 +313,7 @@ + v->cpt_snt_isn = tcp_rsk(req)->snt_isn; + v->cpt_rmt_port = inet_rsk(req)->rmt_port; + v->cpt_mss = req->mss; +- // // v->cpt_family = (req->class == &or_ipv4 ? AF_INET : AF_INET6); ++ v->cpt_family = req->rsk_ops->family; + v->cpt_retrans = req->retrans; + v->cpt_snd_wscale = inet_rsk(req)->snd_wscale; + v->cpt_rcv_wscale = inet_rsk(req)->rcv_wscale; +Index: kernel/kernel/cpt/rst_socket_in.c +=================================================================== +--- kernel.orig/kernel/cpt/rst_socket_in.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/cpt/rst_socket_in.c 2008-11-24 16:00:40.000000000 +0100 +@@ -400,7 +400,7 @@ + loff_t pos, struct cpt_context *ctx) + { + int err; +- loff_t end = si->cpt_next; ++ loff_t end = pos + si->cpt_next; + + pos += si->cpt_hdrlen; + while (pos < end) { +@@ -415,11 +415,21 @@ + } + + if (oi.cpt_object == CPT_OBJ_OPENREQ) { +- struct request_sock *req = reqsk_alloc(&tcp_request_sock_ops); ++ struct request_sock *req; ++ ++ if (oi.cpt_family == AF_INET6) { ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ req = reqsk_alloc(&tcp6_request_sock_ops); ++#else ++ return -EINVAL; ++#endif ++ } else { ++ req = reqsk_alloc(&tcp_request_sock_ops); ++ } ++ + if (req == NULL) + return -ENOMEM; + +- memset(req, 0, sizeof(*req)); + tcp_rsk(req)->rcv_isn = oi.cpt_rcv_isn; + tcp_rsk(req)->snt_isn = oi.cpt_snt_isn; + inet_rsk(req)->rmt_port = oi.cpt_rmt_port; +@@ -432,10 +442,14 @@ + inet_rsk(req)->wscale_ok = oi.cpt_wscale_ok; + inet_rsk(req)->ecn_ok = oi.cpt_ecn_ok; + inet_rsk(req)->acked = oi.cpt_acked; ++ inet_rsk(req)->opt = NULL; + req->window_clamp = oi.cpt_window_clamp; + req->rcv_wnd = oi.cpt_rcv_wnd; + req->ts_recent = oi.cpt_ts_recent; + req->expires = jiffies_import(oi.cpt_expires); ++ req->sk = NULL; ++ req->secid = 0; ++ req->peer_secid = 0; + + if (oi.cpt_family == AF_INET) { + memcpy(&inet_rsk(req)->loc_addr, oi.cpt_loc_addr, 4); +@@ -443,6 +457,7 @@ + inet_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT); + } else { + #if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ inet6_rsk(req)->pktopts = NULL; + memcpy(&inet6_rsk(req)->loc_addr, oi.cpt_loc_addr, 16); + memcpy(&inet6_rsk(req)->rmt_addr, oi.cpt_rmt_addr, 16); + inet6_rsk(req)->iif = oi.cpt_iif; +Index: kernel/net/ipv6/tcp_ipv6.c +=================================================================== +--- kernel.orig/net/ipv6/tcp_ipv6.c 2008-11-24 15:59:46.000000000 +0100 ++++ kernel/net/ipv6/tcp_ipv6.c 2008-11-24 16:00:40.000000000 +0100 +@@ -925,7 +925,7 @@ + } + #endif + +-static struct request_sock_ops tcp6_request_sock_ops __read_mostly = { ++struct request_sock_ops tcp6_request_sock_ops __read_mostly = { + .family = AF_INET6, + .obj_size = sizeof(struct tcp6_request_sock), + .rtx_syn_ack = tcp_v6_send_synack, +@@ -933,6 +933,7 @@ + .destructor = tcp_v6_reqsk_destructor, + .send_reset = tcp_v6_send_reset + }; ++EXPORT_SYMBOL(tcp6_request_sock_ops); + + #ifdef CONFIG_TCP_MD5SIG + static struct tcp_request_sock_ops tcp_request_sock_ipv6_ops = { --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0125-VE-proc-task-state.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0125-VE-proc-task-state.patch @@ -0,0 +1,46 @@ +From 56f88e0d542d62ae5892a9a0e5538ac3e8304932 Mon Sep 17 00:00:00 2001 +From: Vitaliy Gusev +Date: Fri, 18 Jul 2008 15:25:54 +0400 +Subject: [PATCH 125/131] VE proc task state + +Show envID fields in /proc/self/status in VE. +Also show VPid, PNState, StopState, etc. + +http://bugzilla.openvz.org/show_bug.cgi?id=936 +--- + fs/proc/array.c | 19 +++++++++---------- + 1 files changed, 9 insertions(+), 10 deletions(-) + +diff --git a/fs/proc/array.c b/fs/proc/array.c +index 871badb..25f2d73 100644 +--- a/fs/proc/array.c ++++ b/fs/proc/array.c +@@ -208,16 +208,15 @@ static inline char *task_state(struct task_struct *p, char *buffer) + buffer += sprintf(buffer, "\n"); + + #ifdef CONFIG_VE +- if (ve_is_super(get_exec_env())) +- buffer += sprintf(buffer, +- "envID:\t%d\n" +- "VPid:\t%d\n" +- "PNState:\t%u\n" +- "StopState:\t%u\n", +- p->ve_task_info.owner_env->veid, +- task_pid_vnr(p), +- p->pn_state, +- p->stopped_state); ++ buffer += sprintf(buffer, ++ "envID:\t%d\n" ++ "VPid:\t%d\n" ++ "PNState:\t%u\n" ++ "StopState:\t%u\n", ++ p->ve_task_info.owner_env->veid, ++ task_pid_vnr(p), ++ p->pn_state, ++ p->stopped_state); + #endif + return buffer; + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0064-CPT-get-lo-stats-from-correct-place-during-restore.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0064-CPT-get-lo-stats-from-correct-place-during-restore.patch @@ -0,0 +1,26 @@ +From 222a18fcb23b6a7a9c7375f07283fd0789b0ae59 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Wed, 9 Apr 2008 20:13:14 +0400 +Subject: [PATCH 62/67] CPT: get lo stats from correct place during restore + +struct pcpu_lstats and struct net_device_stats aren't the same. +--- + kernel/cpt/rst_net.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c +index 2cb47a4..4a0070e 100644 +--- a/kernel/cpt/rst_net.c ++++ b/kernel/cpt/rst_net.c +@@ -421,7 +421,7 @@ static int rst_restore_netstats(loff_t pos, struct net_device *dev, + BUG_ON(sizeof(struct cpt_netstats_image) != n->cpt_hdrlen); + preempt_disable(); + if (dev == lo) +- stats = netdev_priv(lo); ++ stats = &lo->stats; + #if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) + else if (KSYMREF(veth_open) && dev->open == KSYMREF(veth_open)) + stats = veth_stats(dev, smp_processor_id()); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0020-FAIRSCHED-wire-up-sys_fairsched_-system-calls.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0020-FAIRSCHED-wire-up-sys_fairsched_-system-calls.patch @@ -0,0 +1,207 @@ +From 4f2c64dd3f5f39789adb85ab01c544f523bce66c Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 12 Mar 2008 18:13:20 +0300 +Subject: [PATCH 20/48] FAIRSCHED: wire up sys_fairsched_* system calls + +--- + arch/ia64/kernel/entry.S | 8 +++++++- + arch/sparc64/kernel/systbls.S | 24 ++++++++++++++++++++++-- + arch/x86/kernel/syscall_table_32.S | 12 +++++++++++- + include/asm-ia64/unistd.h | 6 ++++++ + include/asm-powerpc/systbl.h | 15 +++++++++++++-- + include/asm-x86/unistd_32.h | 6 ++++++ + include/asm-x86/unistd_64.h | 12 ++++++++++++ + 7 files changed, 77 insertions(+), 6 deletions(-) + +diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S +index f5008ef..1a76acf 100644 +--- a/arch/ia64/kernel/entry.S ++++ b/arch/ia64/kernel/entry.S +@@ -1684,9 +1684,15 @@ sys_call_table: + data8 sys_signalfd + data8 sys_timerfd + data8 sys_eventfd +-.rept 1505-1310 ++.rept 1499-1310 + data8 sys_ni_syscall + .endr ++ data8 sys_fairsched_vcpus ++ data8 sys_fairsched_mknod // 1500 ++ data8 sys_fairsched_rmnod ++ data8 sys_fairsched_chwt ++ data8 sys_fairsched_mvpr ++ data8 sys_fairsched_rate + data8 sys_getluid // 1505 + data8 sys_setluid + data8 sys_setublimit +diff --git a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S +index d404e20..4155962 100644 +--- a/arch/sparc64/kernel/systbls.S ++++ b/arch/sparc64/kernel/systbls.S +@@ -82,9 +82,19 @@ sys_call_table32: + .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait + /*310*/ .word compat_sys_utimensat, compat_sys_signalfd, compat_sys_timerfd, sys_eventfd, compat_sys_fallocate + +- .rept 510-303 ++ .rept 500-315 + .word sys_nis_syscall + .endr ++ .word sys_fairsched_mknod /* 500 */ ++ .word sys_fairsched_rmnod ++ .word sys_fairsched_chwt ++ .word sys_fairsched_mvpr ++ .word sys_fairsched_rate ++ .word sys_nis_syscall /* 505 */ ++ .word sys_nis_syscall ++ .word sys_nis_syscall ++ .word sys_nis_syscall ++ .word sys_nis_syscall + .word sys_getluid /* 510 */ + .word sys_setluid + .word compat_sys_setublimit +@@ -162,9 +172,19 @@ sys_call_table: + .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait + /*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd, sys_eventfd, sys_fallocate + +- .rept 510-303 ++ .rept 500-315 + .word sys_nis_syscall + .endr ++ .word sys_fairsched_mknod /* 500 */ ++ .word sys_fairsched_rmnod ++ .word sys_fairsched_chwt ++ .word sys_fairsched_mvpr ++ .word sys_fairsched_rate ++ .word sys_nis_syscall /* 505 */ ++ .word sys_nis_syscall ++ .word sys_nis_syscall ++ .word sys_nis_syscall ++ .word sys_nis_syscall + .word sys_getluid /* 510 */ + .word sys_setluid + .word sys_setublimit +diff --git a/arch/x86/kernel/syscall_table_32.S b/arch/x86/kernel/syscall_table_32.S +index 13d6963..13c932d 100644 +--- a/arch/x86/kernel/syscall_table_32.S ++++ b/arch/x86/kernel/syscall_table_32.S +@@ -324,9 +324,19 @@ ENTRY(sys_call_table) + .long sys_timerfd + .long sys_eventfd + .long sys_fallocate +- .rept 510-(.-sys_call_table)/4 ++ .rept 500-(.-sys_call_table)/4 + .long sys_ni_syscall + .endr ++ .long sys_fairsched_mknod /* 500 */ ++ .long sys_fairsched_rmnod ++ .long sys_fairsched_chwt ++ .long sys_fairsched_mvpr ++ .long sys_fairsched_rate ++ .long sys_fairsched_vcpus /* 505 */ ++ .long sys_ni_syscall ++ .long sys_ni_syscall ++ .long sys_ni_syscall ++ .long sys_ni_syscall + .long sys_getluid /* 510 */ + .long sys_setluid + .long sys_setublimit +diff --git a/include/asm-ia64/unistd.h b/include/asm-ia64/unistd.h +index 0097a22..4deeaf5 100644 +--- a/include/asm-ia64/unistd.h ++++ b/include/asm-ia64/unistd.h +@@ -299,6 +299,12 @@ + #define __NR_signalfd 1307 + #define __NR_timerfd 1308 + #define __NR_eventfd 1309 ++#define __NR_fairsched_vcpus 1499 ++#define __NR_fairsched_mknod 1500 ++#define __NR_fairsched_rmnod 1501 ++#define __NR_fairsched_chwt 1502 ++#define __NR_fairsched_mvpr 1503 ++#define __NR_fairsched_rate 1504 + #define __NR_getluid 1505 + #define __NR_setluid 1506 + #define __NR_setublimit 1507 +diff --git a/include/asm-powerpc/systbl.h b/include/asm-powerpc/systbl.h +index 18b575d..6d1a440 100644 +--- a/include/asm-powerpc/systbl.h ++++ b/include/asm-powerpc/systbl.h +@@ -303,7 +303,7 @@ SYSCALL_SPU(readlinkat) + SYSCALL_SPU(fchmodat) + SYSCALL_SPU(faccessat) + COMPAT_SYS_SPU(get_robust_list) +-COMPAT_SYS_SPU(set_robust_list) ++COMPAT_SYS_SPU(set_robust_list) /* 300 */ + COMPAT_SYS_SPU(move_pages) + SYSCALL_SPU(getcpu) + COMPAT_SYS(epoll_pwait) +@@ -313,7 +313,18 @@ COMPAT_SYS_SPU(timerfd) + SYSCALL_SPU(eventfd) + COMPAT_SYS_SPU(sync_file_range2) + COMPAT_SYS(fallocate) +-SYS_SKIP(302, 409) ++SYS_SKIP(310, 400) ++SYSCALL(ni_syscall) ++SYS_SKIP_END() ++SYSCALL(fairsched_mknod) /* 400 */ ++SYSCALL(fairsched_rmnod) ++SYSCALL(fairsched_chwt) ++SYSCALL(fairsched_mvpr) ++SYSCALL(fairsched_rate) ++SYSCALL(fairsched_vcpus) ++SYS_SKIP(406, 410) ++SYSCALL(ni_syscall) ++SYS_SKIP_END() + SYSCALL(getluid) /* 410 */ + SYSCALL(setluid) + SYSCALL(setublimit) +diff --git a/include/asm-x86/unistd_32.h b/include/asm-x86/unistd_32.h +index 1288555..5346ad6 100644 +--- a/include/asm-x86/unistd_32.h ++++ b/include/asm-x86/unistd_32.h +@@ -330,6 +330,12 @@ + #define __NR_timerfd 322 + #define __NR_eventfd 323 + #define __NR_fallocate 324 ++#define __NR_fairsched_mknod 500 /* FairScheduler syscalls */ ++#define __NR_fairsched_rmnod 501 ++#define __NR_fairsched_chwt 502 ++#define __NR_fairsched_mvpr 503 ++#define __NR_fairsched_rate 504 ++#define __NR_fairsched_vcpus 505 + #define __NR_getluid 510 + #define __NR_setluid 511 + #define __NR_setublimit 512 +diff --git a/include/asm-x86/unistd_64.h b/include/asm-x86/unistd_64.h +index 747becb..933cd81 100644 +--- a/include/asm-x86/unistd_64.h ++++ b/include/asm-x86/unistd_64.h +@@ -635,6 +635,8 @@ __SYSCALL(__NR_timerfd, sys_timerfd) + __SYSCALL(__NR_eventfd, sys_eventfd) + #define __NR_fallocate 285 + __SYSCALL(__NR_fallocate, sys_fallocate) ++#define __NR_fairsched_vcpus 499 ++__SYSCALL(__NR_fairsched_vcpus, sys_fairsched_vcpus) + #define __NR_getluid 500 + __SYSCALL(__NR_getluid, sys_getluid) + #define __NR_setluid 501 +@@ -643,6 +645,16 @@ __SYSCALL(__NR_setluid, sys_setluid) + __SYSCALL(__NR_setublimit, sys_setublimit) + #define __NR_ubstat 503 + __SYSCALL(__NR_ubstat, sys_ubstat) ++#define __NR_fairsched_mknod 504 /* FairScheduler syscalls */ ++__SYSCALL(__NR_fairsched_mknod, sys_fairsched_mknod) ++#define __NR_fairsched_rmnod 505 ++__SYSCALL(__NR_fairsched_rmnod, sys_fairsched_rmnod) ++#define __NR_fairsched_chwt 506 ++__SYSCALL(__NR_fairsched_chwt, sys_fairsched_chwt) ++#define __NR_fairsched_mvpr 507 ++__SYSCALL(__NR_fairsched_mvpr, sys_fairsched_mvpr) ++#define __NR_fairsched_rate 508 ++__SYSCALL(__NR_fairsched_rate, sys_fairsched_rate) + #define __NR_lchmod 509 + __SYSCALL(__NR_lchmod, sys_lchmod) + #define __NR_lutime 510 +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0126-VE-simfs-statfs-on-root.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0126-VE-simfs-statfs-on-root.patch @@ -0,0 +1,32 @@ +From 44e3cef221021d6ad1834575abbb89e7609489f9 Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Fri, 18 Jul 2008 15:25:56 +0400 +Subject: [PATCH 126/131] VE simfs statfs on root + simfs: do not use s_root dentry of underlying for statfs + +The real problem is that s_root on the NFS super block is a crap. +Unfortunately, the original dentry (which is asked to be statfs-ed) +is not available at this point. The only visible solution for this +is to use the dentry to which simfs is point to. + +Bug #115232 +--- + fs/simfs.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/fs/simfs.c b/fs/simfs.c +index e5d6bae..b89320c 100644 +--- a/fs/simfs.c ++++ b/fs/simfs.c +@@ -131,7 +131,7 @@ static int sim_statfs(struct super_block *sb, struct kstatfs *buf) + + err = -ENOSYS; + if (lsb && lsb->s_op && lsb->s_op->statfs) +- err = lsb->s_op->statfs(lsb->s_root, &statbuf); ++ err = lsb->s_op->statfs(sb->s_root, &statbuf); + if (err) + return err; + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0075-ubc-drop-cpuset-lock-from-oom.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0075-ubc-drop-cpuset-lock-from-oom.patch @@ -0,0 +1,82 @@ +commit 5f318dd06be87f85073fb9d8a4c73c5554f08c31 +Author: Alexey Dobriyan +Date: Mon May 26 14:36:30 2008 +0400 + + UBC: drop cpuset lock from OOM handling + + cpuset_lock dances around OOM killing are gone in main code, so + no need to account for them. + + Mainline commit 3ff566963ce804809af9e32331b287eedeeff501 + Bug 112959 + + ===================================== + [ BUG: bad unlock balance detected! ] + ------------------------------------- + tstspoof/29391 is trying to release lock (callback_mutex) at: [] ub_oom_lock+0x9a/0xd6 + but there are no more locks to release! + other info that might help us debug this: + 1 lock held by tstspoof/29391: + #0: (&mm->mmap_sem){----}, at: [] do_page_fault+0x1d9/0x5fb + stack backtrace: + Pid: 29391, comm: tstspoof Not tainted 2.6.24-openvz #4 + [] print_unlock_inbalance_bug+0xe7/0xf3 + [] ub_oom_lock+0x9a/0xd6 + [] ktime_get_ts+0x16/0x44 + [] tick_program_event+0x33/0x52 + [] mark_held_locks+0x39/0x53 + [] restore_nocheck+0x12/0x15 + [] trace_hardirqs_on+0x122/0x145 + [] ub_oom_lock+0x9a/0xd6 + [] lock_release+0x148/0x16e + [] __mutex_unlock_slowpath+0xd3/0x140 + [] ub_oom_lock+0x9a/0xd6 + [] autoremove_wake_function+0x0/0x35 + [] out_of_memory+0x5d/0x177 + [] __alloc_pages+0xc3/0x38b + [] handle_mm_fault+0x226/0x87e + [] do_page_fault+0x1d9/0x5fb + [] do_page_fault+0x281/0x5fb + [] restore_nocheck+0x12/0x15 + [] do_page_fault+0x0/0x5fb + [] error_code+0x72/0x78 + +diff --git a/kernel/bc/oom_kill.c b/kernel/bc/oom_kill.c +index 6787750..f8a75c7 100644 +--- a/kernel/bc/oom_kill.c ++++ b/kernel/bc/oom_kill.c +@@ -37,7 +37,6 @@ static void ub_clear_oom(void) + rcu_read_unlock(); + } + +-/* Called with cpuset_lock held */ + int ub_oom_lock(void) + { + int timeout; +@@ -63,11 +62,9 @@ int ub_oom_lock(void) + __set_current_state(TASK_UNINTERRUPTIBLE); + add_wait_queue(&oom_wq, &oom_w); + spin_unlock(&oom_lock); +- cpuset_unlock(); + + timeout = schedule_timeout(timeout); + +- cpuset_lock(); + spin_lock(&oom_lock); + remove_wait_queue(&oom_wq, &oom_w); + } +@@ -176,7 +173,6 @@ void ub_out_of_memory(struct user_beancounter *scope) + struct user_beancounter *ub; + struct task_struct *p; + +- cpuset_lock(); + spin_lock(&oom_lock); + ub_clear_oom(); + ub = get_beancounter(scope); +@@ -195,6 +191,5 @@ retry: + unlock: + read_unlock(&tasklist_lock); + spin_unlock(&oom_lock); +- cpuset_unlock(); + } + EXPORT_SYMBOL(ub_out_of_memory); --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0036-Add-pid-ns-flags-PID_NS_HIDE_CHILD-and-PID_NS_HIDDEN.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0036-Add-pid-ns-flags-PID_NS_HIDE_CHILD-and-PID_NS_HIDDEN.patch @@ -0,0 +1,97 @@ +From f024f0d3b8cd8f6d4d66d2bacc352ad5cf0e62f9 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 17 Mar 2008 15:39:37 +0300 +Subject: [PATCH 36/48] Add pid ns flags PID_NS_HIDE_CHILD and PID_NS_HIDDEN + +If pid ns created in ns with PID_NS_HIDE_CHILD flag first process (like init) +will be added to parent ns, then flag PID_NS_HIDDEN set on new child ns +and all following process will be hidden. Hidden processes have their pids +allocated in all parent ns, but they aren't added to hash. +--- + include/linux/pid_namespace.h | 9 +++++++++ + kernel/fork.c | 2 ++ + kernel/pid.c | 12 ++++++++++-- + 3 files changed, 21 insertions(+), 2 deletions(-) + +diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h +index 1689e28..49bea5f 100644 +--- a/include/linux/pid_namespace.h ++++ b/include/linux/pid_namespace.h +@@ -14,6 +14,14 @@ struct pidmap { + + #define PIDMAP_ENTRIES ((PID_MAX_LIMIT + 8*PAGE_SIZE - 1)/PAGE_SIZE/8) + ++/* pid namespace flags */ ++ ++/* if set newly created pid ns got PID_NS_HIDE_CHILD flag */ ++#define PID_NS_HIDE_CHILD 0x00000001 ++ ++/* if set newly created processes invisible from parent ns*/ ++#define PID_NS_HIDDEN 0x00000002 ++ + struct pid_namespace { + struct kref kref; + struct pidmap pidmap[PIDMAP_ENTRIES]; +@@ -22,6 +30,7 @@ struct pid_namespace { + struct kmem_cache *pid_cachep; + int level; + struct pid_namespace *parent; ++ unsigned flags; + #ifdef CONFIG_PROC_FS + struct vfsmount *proc_mnt; + #endif +diff --git a/kernel/fork.c b/kernel/fork.c +index 6e82c6f..15e0b0a 100644 +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -1205,6 +1205,8 @@ static struct task_struct *copy_process(unsigned long clone_flags, + retval = pid_ns_prepare_proc(task_active_pid_ns(p)); + if (retval < 0) + goto bad_fork_free_pid; ++ if (task_active_pid_ns(current)->flags & PID_NS_HIDE_CHILD) ++ task_active_pid_ns(p)->flags |= PID_NS_HIDDEN; + } + } + +diff --git a/kernel/pid.c b/kernel/pid.c +index 7ab1c07..225d221 100644 +--- a/kernel/pid.c ++++ b/kernel/pid.c +@@ -260,10 +260,14 @@ fastcall void free_pid(struct pid *pid) + /* We can be called with write_lock_irq(&tasklist_lock) held */ + int i; + unsigned long flags; ++ struct upid *upid; + + spin_lock_irqsave(&pidmap_lock, flags); +- for (i = 0; i <= pid->level; i++) +- hlist_del_rcu(&pid->numbers[i].pid_chain); ++ for (i = 0; i <= pid->level; i++) { ++ upid = &pid->numbers[i]; ++ if (!hlist_unhashed(&upid->pid_chain)) ++ hlist_del_rcu(&upid->pid_chain); ++ } + spin_unlock(&pidmap_lock); + ub_kmemsize_uncharge(pid->ub, pid->numbers[pid->level].ns->pid_cachep->objuse); + local_irq_restore(flags); +@@ -322,6 +326,9 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t vpid) + upid = &pid->numbers[i]; + hlist_add_head_rcu(&upid->pid_chain, + &pid_hash[pid_hashfn(upid->nr, upid->ns)]); ++ if (upid->ns->flags & PID_NS_HIDDEN) ++ while (i--) ++ INIT_HLIST_NODE(&pid->numbers[i].pid_chain); + } + spin_unlock_irq(&pidmap_lock); + +@@ -616,6 +623,7 @@ static struct pid_namespace *create_pid_namespace(int level) + ns->last_pid = 0; + ns->child_reaper = NULL; + ns->level = level; ++ ns->flags = 0; + + set_bit(0, ns->pidmap[0].page); + atomic_set(&ns->pidmap[0].nr_free, BITS_PER_PAGE - 1); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0038-Add-kernel.pid_ns_hide_child-sysctl.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0038-Add-kernel.pid_ns_hide_child-sysctl.patch @@ -0,0 +1,76 @@ +From c8f0641ada56a05ab168d521205d78f5e8d0b80b Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 17 Mar 2008 15:45:36 +0300 +Subject: [PATCH 38/48] Add kernel.pid_ns_hide_child sysctl + +It's PID_NS_HIDE_CHILD flg manipulator for current pidns. + +If set to 1, all process except first (like init) in all created pid +namespaces after set will be invisible from current and upfollow pid +namespaces. sysctl itself visible only in VE0. +--- + kernel/sysctl.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 51 insertions(+), 0 deletions(-) + +Index: kernel/kernel/sysctl.c +=================================================================== +--- kernel.orig/kernel/sysctl.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/sysctl.c 2008-11-24 15:59:00.000000000 +0100 +@@ -2911,6 +2911,57 @@ + return 0; + } + ++#ifdef CONFIG_PID_NS ++#include ++ ++static int proc_pid_ns_hide_child(struct ctl_table *table, int write, ++ struct file *filp, void __user *buffer, ++ size_t *lenp, loff_t *ppos) ++{ ++ int tmp, res; ++ ++ tmp = (current->nsproxy->pid_ns->flags & PID_NS_HIDE_CHILD) ? 1 : 0; ++ ++ res = __do_proc_dointvec(&tmp, table, write, filp, buffer, ++ lenp, ppos, NULL, NULL); ++ if (res || !write) ++ return res; ++ ++ if (tmp) ++ current->nsproxy->pid_ns->flags |= PID_NS_HIDE_CHILD; ++ else ++ current->nsproxy->pid_ns->flags &= ~PID_NS_HIDE_CHILD; ++ return 0; ++} ++ ++static struct ctl_table pid_ns_kern_table[] = { ++ { ++ .procname = "pid_ns_hide_child", ++ .maxlen = sizeof(int), ++ .mode = 0600, ++ .proc_handler = proc_pid_ns_hide_child, ++ }, ++ {} ++}; ++ ++static struct ctl_table pid_ns_root_table[] = { ++ { ++ .ctl_name = CTL_KERN, ++ .procname = "kernel", ++ .mode = 0555, ++ .child = pid_ns_kern_table, ++ }, ++ {} ++}; ++ ++static __init int pid_ns_sysctl_init(void) ++{ ++ register_sysctl_table(pid_ns_root_table); ++ return 0; ++} ++postcore_initcall(pid_ns_sysctl_init); ++#endif /* CONFIG_PID_NS */ ++ + /* + * No sense putting this after each symbol definition, twice, + * exception granted :-) --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0080-CPT-checkrunning.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0080-CPT-checkrunning.patch @@ -0,0 +1,27 @@ +From fdf061b9895ab15cfd55f6fdcd5375bd31c3f350 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Mon, 30 Jun 2008 12:41:16 +0400 +Subject: [PATCH 080/103] CPT checkrunning + Check that VE is not running on restore. + +#99679 +--- + kernel/cpt/rst_undump.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/kernel/cpt/rst_undump.c b/kernel/cpt/rst_undump.c +index 13aa020..26eb211 100644 +--- a/kernel/cpt/rst_undump.c ++++ b/kernel/cpt/rst_undump.c +@@ -144,7 +144,7 @@ static int vps_rst_reparent_root(cpt_object_t *obj, struct cpt_context *ctx) + param.known_features = (ctx->image_version < CPT_VERSION_18) ? + VE_FEATURES_OLD : ~(__u64)0; + +- err = real_env_create(ctx->ve_id, VE_CREATE|VE_LOCK, 2, ++ err = real_env_create(ctx->ve_id, VE_CREATE|VE_LOCK|VE_EXCLUSIVE, 2, + ¶m, sizeof(param)); + if (err < 0) + eprintk_ctx("real_env_create: %d\n", err); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0085-CPT-relax-check-for-bind-mounts.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0085-CPT-relax-check-for-bind-mounts.patch @@ -0,0 +1,137 @@ +From 9bdf25b67ea0a67dc09960bf9ed917bff35a420e Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:48 +0400 +Subject: [PATCH 085/103] CPT relax check for bind mounts + +Relax check for special bind mounts which mounted several times on the same +mount point. We need to check only dentry, mount check can be skipped in this +case. +We can't remove completely mount check as there are exist cases when we need +to check mnt too. E.g. /dev is mounted with NODEV over /dev and some file is +opened from underlying mount. If mount check is removed, then we will be able +to checkpoint such state, but we will not be able to restore it. + +Correct sollution will be to dump/restore whole mount tree with overmounts. +But we can't implement this right now for number of reasons. + +Bug #84310 +--- + kernel/cpt/cpt_files.c | 18 +++++++++--------- + kernel/cpt/cpt_files.h | 2 +- + kernel/cpt/cpt_socket.c | 2 +- + 3 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/kernel/cpt/cpt_files.c b/kernel/cpt/cpt_files.c +index adbd43b..e728b64 100644 +--- a/kernel/cpt/cpt_files.c ++++ b/kernel/cpt/cpt_files.c +@@ -58,7 +58,7 @@ void cpt_printk_dentry(struct dentry *d, struct vfsmount *mnt) + } + + int cpt_verify_overmount(char *path, struct dentry *d, struct vfsmount *mnt, +- cpt_context_t *ctx) ++ int verify, cpt_context_t *ctx) + { + if (path[0] == '/' && !(!IS_ROOT(d) && d_unhashed(d))) { + struct nameidata nd; +@@ -66,7 +66,7 @@ int cpt_verify_overmount(char *path, struct dentry *d, struct vfsmount *mnt, + eprintk_ctx("d_path cannot be looked up %s\n", path); + return -EINVAL; + } +- if (nd.dentry != d || nd.mnt != mnt) { ++ if (nd.dentry != d || (verify && nd.mnt != mnt)) { + eprintk_ctx("d_path is invisible %s\n", path); + path_release(&nd); + return -EINVAL; +@@ -125,7 +125,7 @@ cpt_replaced(struct dentry * de, struct vfsmount *mnt, cpt_context_t * ctx) + } + + static int cpt_dump_dentry(struct dentry *d, struct vfsmount *mnt, +- int replaced, cpt_context_t *ctx) ++ int replaced, int verify, cpt_context_t *ctx) + { + int len; + char *path; +@@ -187,7 +187,7 @@ static int cpt_dump_dentry(struct dentry *d, struct vfsmount *mnt, + o.cpt_content = CPT_CONTENT_NAME; + path[len] = 0; + +- if (cpt_verify_overmount(path, d, mnt, ctx)) { ++ if (cpt_verify_overmount(path, d, mnt, verify, ctx)) { + __cpt_release_buf(ctx); + return -EINVAL; + } +@@ -226,7 +226,7 @@ int cpt_dump_string(const char *s, struct cpt_context *ctx) + static int + cpt_dump_filename(struct file *file, int replaced, cpt_context_t *ctx) + { +- return cpt_dump_dentry(file->f_dentry, file->f_vfsmnt, replaced, ctx); ++ return cpt_dump_dentry(file->f_dentry, file->f_vfsmnt, replaced, 1, ctx); + } + + int cpt_dump_inode(struct dentry *d, struct vfsmount *mnt, struct cpt_context *ctx) +@@ -881,7 +881,7 @@ static int find_linked_dentry(struct dentry *d, struct vfsmount *mnt, + } + spin_unlock(&dcache_lock); + if (found) { +- err = cpt_dump_dentry(found, mnt, 0, ctx); ++ err = cpt_dump_dentry(found, mnt, 0, 1, ctx); + dput(found); + if (!err) { + dprintk_ctx("dentry found in aliases\n"); +@@ -920,7 +920,7 @@ static int find_linked_dentry(struct dentry *d, struct vfsmount *mnt, + + dprintk_ctx("dentry found in dir\n"); + __cpt_release_buf(ctx); +- err = cpt_dump_dentry(found, mnt, 0, ctx); ++ err = cpt_dump_dentry(found, mnt, 0, 1, ctx); + + err_lookup: + dput(found); +@@ -1484,7 +1484,7 @@ static int cpt_dump_bind_mnt(struct vfsmount * mnt, cpt_context_t * ctx) + + /* One special case: mount --bind /a /a */ + if (mnt->mnt_root == mnt->mnt_mountpoint) +- return cpt_dump_dentry(mnt->mnt_root, mnt, 0, ctx); ++ return cpt_dump_dentry(mnt->mnt_root, mnt, 0, 0, ctx); + + list_for_each_prev(p, &mnt->mnt_list) { + struct vfsmount * m; +@@ -1497,7 +1497,7 @@ static int cpt_dump_bind_mnt(struct vfsmount * mnt, cpt_context_t * ctx) + if (m->mnt_sb != mnt->mnt_sb) + continue; + +- err = cpt_dump_dentry(mnt->mnt_root, m, 0, ctx); ++ err = cpt_dump_dentry(mnt->mnt_root, m, 0, 1, ctx); + if (err == 0) + break; + } +diff --git a/kernel/cpt/cpt_files.h b/kernel/cpt/cpt_files.h +index 7770ab2..7f4afab 100644 +--- a/kernel/cpt/cpt_files.h ++++ b/kernel/cpt/cpt_files.h +@@ -57,7 +57,7 @@ struct file *rst_open_inotify(struct cpt_file_image *fi, + + + int cpt_verify_overmount(char *path, struct dentry *d, struct vfsmount *mnt, +- cpt_context_t *ctx); ++ int verify, cpt_context_t *ctx); + + #define check_one_vfsmount(mnt) \ + (strcmp(mnt->mnt_sb->s_type->name, "rootfs") != 0 && \ +diff --git a/kernel/cpt/cpt_socket.c b/kernel/cpt/cpt_socket.c +index 10fdd3f..9f7af89 100644 +--- a/kernel/cpt/cpt_socket.c ++++ b/kernel/cpt/cpt_socket.c +@@ -509,7 +509,7 @@ int cpt_dump_socket(cpt_object_t *obj, struct sock *sk, int index, int parent, s + } else { + wprintk_ctx("af_unix path is too long: %s (%s)\n", path, ((char*)v->cpt_laddr)+2); + } +- err = cpt_verify_overmount(path, d, unix_sk(sk)->mnt, ctx); ++ err = cpt_verify_overmount(path, d, unix_sk(sk)->mnt, 1, ctx); + } else { + eprintk_ctx("cannot get path of an af_unix socket\n"); + err = PTR_ERR(path); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0121-VE-nf-netlink-dont-oops.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0121-VE-nf-netlink-dont-oops.patch @@ -0,0 +1,102 @@ +From 561bc6b6de71418dd0be8d872b1272c031cba6cc Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Fri, 18 Jul 2008 15:25:51 +0400 +Subject: [PATCH 121/131] VE nf netlink dont oops + +Fix oops in netlink conntrack module +If we load conntrack modules after ve start one pointer on +ve_struct is NULL and accessing it causes an oops. + +This is handled in most of the places, but the netlink +interface. Fix this one as well. + +http://bugzilla.openvz.org/show_bug.cgi?id=788 +--- + include/net/netfilter/nf_conntrack_core.h | 2 ++ + net/netfilter/nf_conntrack_netlink.c | 18 ++++++++++++++++++ + 2 files changed, 20 insertions(+), 0 deletions(-) + +diff --git a/include/net/netfilter/nf_conntrack_core.h b/include/net/netfilter/nf_conntrack_core.h +index cab835c..3e4ce33 100644 +--- a/include/net/netfilter/nf_conntrack_core.h ++++ b/include/net/netfilter/nf_conntrack_core.h +@@ -64,10 +64,12 @@ extern int __nf_conntrack_confirm(struct sk_buff *skb); + + #if defined(CONFIG_VE_IPTABLES) + #include ++#define ve_nf_conntrack_initialized() (get_exec_env()->_nf_conntrack != NULL) + #define ve_nf_conntrack_hash (get_exec_env()->_nf_conntrack->_nf_conntrack_hash) + #define ve_nf_conntrack_vmalloc (get_exec_env()->_nf_conntrack->_nf_conntrack_vmalloc) + #define ve_unconfirmed (get_exec_env()->_nf_conntrack->_unconfirmed) + #else ++#define ve_nf_conntrack_initialized() 1 + #define ve_nf_conntrack_hash nf_conntrack_hash + #define ve_nf_conntrack_vmalloc nf_conntrack_vmalloc + #define ve_unconfirmed unconfirmed +diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c +index 41b16c6..044f838 100644 +--- a/net/netfilter/nf_conntrack_netlink.c ++++ b/net/netfilter/nf_conntrack_netlink.c +@@ -705,6 +705,9 @@ ctnetlink_del_conntrack(struct sock *ctnl, struct sk_buff *skb, + u_int8_t u3 = nfmsg->nfgen_family; + int err = 0; + ++ if (!ve_nf_conntrack_initialized()) ++ return -ENOPROTOOPT; ++ + if (cda[CTA_TUPLE_ORIG]) + err = ctnetlink_parse_tuple(cda, &tuple, CTA_TUPLE_ORIG, u3); + else if (cda[CTA_TUPLE_REPLY]) +@@ -751,6 +754,9 @@ ctnetlink_get_conntrack(struct sock *ctnl, struct sk_buff *skb, + u_int8_t u3 = nfmsg->nfgen_family; + int err = 0; + ++ if (!ve_nf_conntrack_initialized()) ++ return -ENOPROTOOPT; ++ + if (nlh->nlmsg_flags & NLM_F_DUMP) { + #ifndef CONFIG_NF_CT_ACCT + if (NFNL_MSG_TYPE(nlh->nlmsg_type) == IPCTNL_MSG_CT_GET_CTRZERO) +@@ -1056,6 +1062,9 @@ ctnetlink_new_conntrack(struct sock *ctnl, struct sk_buff *skb, + u_int8_t u3 = nfmsg->nfgen_family; + int err = 0; + ++ if (!ve_nf_conntrack_initialized()) ++ return -ENOPROTOOPT; ++ + if (cda[CTA_TUPLE_ORIG]) { + err = ctnetlink_parse_tuple(cda, &otuple, CTA_TUPLE_ORIG, u3); + if (err < 0) +@@ -1377,6 +1386,9 @@ ctnetlink_get_expect(struct sock *ctnl, struct sk_buff *skb, + u_int8_t u3 = nfmsg->nfgen_family; + int err = 0; + ++ if (!ve_nf_conntrack_initialized()) ++ return -ENOPROTOOPT; ++ + if (nlh->nlmsg_flags & NLM_F_DUMP) { + return netlink_dump_start(ctnl, skb, nlh, + ctnetlink_exp_dump_table, +@@ -1438,6 +1450,9 @@ ctnetlink_del_expect(struct sock *ctnl, struct sk_buff *skb, + unsigned int i; + int err; + ++ if (!ve_nf_conntrack_initialized()) ++ return -ENOPROTOOPT; ++ + if (cda[CTA_EXPECT_TUPLE]) { + /* delete a single expect by tuple */ + err = ctnetlink_parse_tuple(cda, &tuple, CTA_EXPECT_TUPLE, u3); +@@ -1576,6 +1591,9 @@ ctnetlink_new_expect(struct sock *ctnl, struct sk_buff *skb, + u_int8_t u3 = nfmsg->nfgen_family; + int err = 0; + ++ if (!ve_nf_conntrack_initialized()) ++ return -ENOPROTOOPT; ++ + if (!cda[CTA_EXPECT_TUPLE] + || !cda[CTA_EXPECT_MASK] + || !cda[CTA_EXPECT_MASTER]) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0090-UBC-bc-counter.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0090-UBC-bc-counter.patch @@ -0,0 +1,98 @@ +From 80f10d7cf91bc9aa477262f7fb3aeaf4ec8a9e1e Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 090/103] UBC bc counter + +Add ubc and sub-ubc account. +Changing all values protected with ub_hash_lock. +--- + include/bc/beancounter.h | 3 +++ + kernel/bc/beancounter.c | 23 +++++++++++++++++++++++ + 2 files changed, 26 insertions(+), 0 deletions(-) + +diff --git a/include/bc/beancounter.h b/include/bc/beancounter.h +index 7327bcb..89fcf20 100644 +--- a/include/bc/beancounter.h ++++ b/include/bc/beancounter.h +@@ -225,6 +225,7 @@ struct user_beancounter + struct ub_iopriv iopriv; + + struct user_beancounter *parent; ++ int ub_childs; + void *private_data; + unsigned long ub_aflags; + +@@ -250,6 +251,8 @@ struct user_beancounter + #endif + }; + ++extern int ub_count; ++ + enum ub_severity { UB_HARD, UB_SOFT, UB_FORCE }; + + #define UB_AFLAG_NOTIF_PAGEIN 0 +diff --git a/kernel/bc/beancounter.c b/kernel/bc/beancounter.c +index 48fa1cc..00b6469 100644 +--- a/kernel/bc/beancounter.c ++++ b/kernel/bc/beancounter.c +@@ -127,6 +127,25 @@ static inline struct user_beancounter *bc_lookup_hash(struct hlist_head *hash, + return NULL; + } + ++int ub_count; ++ ++/* next two must be called under ub_hash_lock */ ++static inline void ub_count_inc(struct user_beancounter *ub) ++{ ++ if (ub->parent) ++ ub->parent->ub_childs++; ++ else ++ ub_count++; ++} ++ ++static inline void ub_count_dec(struct user_beancounter *ub) ++{ ++ if (ub->parent) ++ ub->parent->ub_childs--; ++ else ++ ub_count--; ++} ++ + struct user_beancounter *get_beancounter_byuid(uid_t uid, int create) + { + struct user_beancounter *new_ub, *ub; +@@ -155,6 +174,7 @@ retry: + if (new_ub != NULL) { + list_add_rcu(&new_ub->ub_list, &ub_list_head); + hlist_add_head(&new_ub->ub_hash, hash); ++ ub_count_inc(new_ub); + spin_unlock_irqrestore(&ub_hash_lock, flags); + return new_ub; + } +@@ -212,6 +232,7 @@ retry: + if (new_ub != NULL) { + list_add_rcu(&new_ub->ub_list, &ub_list_head); + hlist_add_head(&new_ub->ub_hash, hash); ++ ub_count_inc(new_ub); + spin_unlock_irqrestore(&ub_hash_lock, flags); + return new_ub; + } +@@ -307,6 +328,7 @@ again: + + hlist_del(&ub->ub_hash); + list_del_rcu(&ub->ub_list); ++ ub_count_dec(ub); + spin_unlock_irqrestore(&ub_hash_lock, flags); + + bc_verify_held(ub); +@@ -657,6 +679,7 @@ void __init ub_init_early(void) + + hlist_add_head(&ub->ub_hash, &ub_hash[ub->ub_uid]); + list_add(&ub->ub_list, &ub_list_head); ++ ub_count_inc(ub); + } + + void __init ub_init_late(void) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0109-UBC-ioprio-proc.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0109-UBC-ioprio-proc.patch @@ -0,0 +1,64 @@ +From 8fe6eaaa2a02ceeb2ddd84f6f1f7867f98ff1ad3 Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Fri, 18 Jul 2008 15:25:43 +0400 +Subject: [PATCH 109/131] UBC ioprio proc + +Show BC current IO priority +Surprisingly, but currently on the running system, there's no +way to find out what IO priority a VE... sorry - CT has. + +Add the /proc/bc//ioprio file with (currently only) this +information. + +prio: 4 +--- + kernel/bc/io_prio.c | 26 ++++++++++++++++++++++++++ + 1 files changed, 26 insertions(+), 0 deletions(-) + +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index 20aa133..1a10af4 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + #include + + struct cfq_bc_data *__find_cfq_bc(struct ub_iopriv *iopriv, +@@ -275,6 +276,31 @@ void bc_io_restore_context(struct user_beancounter *ub) + } + } + ++#ifdef CONFIG_PROC_FS ++static int bc_ioprio_show(struct seq_file *f, void *v) ++{ ++ struct user_beancounter *bc; ++ ++ bc = seq_beancounter(f); ++ seq_printf(f, "prio: %u\n", bc->iopriv.ioprio); ++ ++ return 0; ++} ++ ++static struct bc_proc_entry bc_ioprio_entry = { ++ .name = "ioprio", ++ .u.show = bc_ioprio_show, ++}; ++ ++static int __init bc_ioprio_init(void) ++{ ++ bc_register_proc_entry(&bc_ioprio_entry); ++ return 0; ++} ++ ++late_initcall(bc_ioprio_init); ++#endif ++ + EXPORT_SYMBOL(bc_io_switch_context); + EXPORT_SYMBOL(bc_io_restore_context); + EXPORT_SYMBOL(__find_cfq_bc); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0086-CPT-reopen-dentries.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0086-CPT-reopen-dentries.patch @@ -0,0 +1,83 @@ +From 3a7f9103e864afaf9ee091a792fee72e2918bfd8 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:48 +0400 +Subject: [PATCH 086/103] CPT reopen dentries + +Dentries were not reopened correctly during checkpointing and restore. + +Two bugs fixed: +1. In case of huge files (more then 2Gb) dentry_open() returns -EFBIG if + O_LARGEFILE flag is not set. This flag should be used for temporary files + used during checkpointing and restore process. + Bug #99544 + +2. In dump_content_regular() we have following code: + file = dentry_open(dget(file->f_dentry), + mntget(file->f_vfsmnt), O_RDONLY); + if (IS_ERR(file)) { + cpt_printk_dentry(file->f_dentry, file->f_vfsmnt); + eprintk_ctx("cannot reopen file for read %ld\n", PTR_ERR(file)); + return PTR_ERR(file); + } + + Which results in kernel oops if dentry_open() returns error + (e.g. -EFBIG because of bug #99544) + + Bug #99542 +--- + kernel/cpt/cpt_files.c | 15 +++++++++------ + kernel/cpt/rst_files.c | 3 ++- + 2 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/kernel/cpt/cpt_files.c b/kernel/cpt/cpt_files.c +index e728b64..ec24ba7 100644 +--- a/kernel/cpt/cpt_files.c ++++ b/kernel/cpt/cpt_files.c +@@ -627,13 +627,16 @@ static int dump_content_regular(struct file *file, struct cpt_context *ctx) + + if (!(file->f_mode & FMODE_READ) || + (file->f_flags & O_DIRECT)) { +- file = dentry_open(dget(file->f_dentry), +- mntget(file->f_vfsmnt), O_RDONLY); +- if (IS_ERR(file)) { ++ struct file *filp; ++ filp = dentry_open(dget(file->f_dentry), ++ mntget(file->f_vfsmnt), ++ O_RDONLY | O_LARGEFILE); ++ if (IS_ERR(filp)) { + cpt_printk_dentry(file->f_dentry, file->f_vfsmnt); +- eprintk_ctx("cannot reopen file for read %ld\n", PTR_ERR(file)); +- return PTR_ERR(file); ++ eprintk_ctx("cannot reopen file for read %ld\n", PTR_ERR(filp)); ++ return PTR_ERR(filp); + } ++ file = filp; + } else { + atomic_inc(&file->f_count); + } +@@ -895,7 +898,7 @@ static int find_linked_dentry(struct dentry *d, struct vfsmount *mnt, + return -EINVAL; + + mntget(mnt); +- f = dentry_open(de, mnt, O_RDONLY); ++ f = dentry_open(de, mnt, O_RDONLY | O_LARGEFILE); + if (IS_ERR(f)) + return PTR_ERR(f); + +diff --git a/kernel/cpt/rst_files.c b/kernel/cpt/rst_files.c +index fd29b60..06dcc2c 100644 +--- a/kernel/cpt/rst_files.c ++++ b/kernel/cpt/rst_files.c +@@ -524,7 +524,8 @@ static int fixup_reg_data(struct file *file, loff_t pos, loff_t end, + (file->f_flags&O_DIRECT)) { + fput(file); + file = dentry_open(dget(file->f_dentry), +- mntget(file->f_vfsmnt), O_WRONLY); ++ mntget(file->f_vfsmnt), ++ O_WRONLY | O_LARGEFILE); + if (IS_ERR(file)) { + __cpt_release_buf(ctx); + return PTR_ERR(file); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0150-MS-NETNS-Namespace-stop-vs-ip-r-l-race.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0150-MS-NETNS-Namespace-stop-vs-ip-r-l-race.patch @@ -0,0 +1,98 @@ +From e8cde2114d19cad865298b0e5dbb4912a137cc30 Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Fri, 18 Jan 2008 23:55:19 -0800 +Subject: [PATCH] MS NETNS Namespace stop vs 'ip r l' race + +mainstream commit 775516bfa2bd7993620c9039191a0c30b8d8a496 + +During network namespace stop process kernel side netlink sockets +belonging to a namespace should be closed. They should not prevent +namespace to stop, so they do not increment namespace usage +counter. Though this counter will be put during last sock_put. + +The raplacement of the correct netns for init_ns solves the problem +only partial as socket to be stoped until proper stop is a valid +netlink kernel socket and can be looked up by the user processes. This +is not a problem until it resides in initial namespace (no processes +inside this net), but this is not true for init_net. + +So, hold the referrence for a socket, remove it from lookup tables and +only after that change namespace and perform a last put. + +Signed-off-by: Denis V. Lunev +Tested-by: Alexey Dobriyan +Signed-off-by: David S. Miller +--- + net/core/rtnetlink.c | 15 ++------------- + net/netlink/af_netlink.c | 15 +++++++++++++++ + 2 files changed, 17 insertions(+), 13 deletions(-) + +diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c +index 6ed7e74..68675f1 100644 +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -1370,25 +1370,14 @@ static int rtnetlink_net_init(struct net *net) + rtnetlink_rcv, &rtnl_mutex, THIS_MODULE); + if (!sk) + return -ENOMEM; +- +- /* Don't hold an extra reference on the namespace */ +- put_net(sk->sk_net); + net->rtnl = sk; + return 0; + } + + static void rtnetlink_net_exit(struct net *net) + { +- struct sock *sk = net->rtnl; +- if (sk) { +- /* At the last minute lie and say this is a socket for the +- * initial network namespace. So the socket will be safe to +- * free. +- */ +- sk->sk_net = get_net(&init_net); +- netlink_kernel_release(net->rtnl); +- net->rtnl = NULL; +- } ++ netlink_kernel_release(net->rtnl); ++ net->rtnl = NULL; + } + + static struct pernet_operations rtnetlink_net_ops = { +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index cf31346..716c31d 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -1400,6 +1400,9 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups, + } + netlink_table_ungrab(); + ++ /* Do not hold an extra referrence to a namespace as this socket is ++ * internal to a namespace and does not prevent it to stop. */ ++ put_net(net); + return sk; + + out_sock_release: +@@ -1414,7 +1417,19 @@ netlink_kernel_release(struct sock *sk) + { + if (sk == NULL || sk->sk_socket == NULL) + return; ++ ++ /* ++ * Last sock_put should drop referrence to sk->sk_net. It has already ++ * been dropped in netlink_kernel_create. Taking referrence to stopping ++ * namespace is not an option. ++ * Take referrence to a socket to remove it from netlink lookup table ++ * _alive_ and after that destroy it in the context of init_net. ++ */ ++ sock_hold(sk); + sock_release(sk->sk_socket); ++ ++ sk->sk_net = get_net(&init_net); ++ sock_put(sk); + } + EXPORT_SYMBOL(netlink_kernel_release); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0095-UBC-tcpsndbuf-endless-loop.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0095-UBC-tcpsndbuf-endless-loop.patch @@ -0,0 +1,108 @@ +From 482427ea920bb8fbce111ce419f44e9182d048e6 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 095/103] UBC tcpsndbuf endless loop + +The loop in __sk_stream_wait_memory when tcp_sendmsg asks to wait for +TCPSNDBUF space is endless when the timeout is not specified. The only way +out is to queue a signal for that process. + +Lets return a status flag from ub_sock_snd_queue_add that UB space is +available. This is enough to make a correct decision to leave the cycle. + +Bug #112103 +--- + include/bc/net.h | 10 +++++----- + kernel/bc/net.c | 7 ++++--- + net/core/stream.c | 4 ++-- + 3 files changed, 11 insertions(+), 10 deletions(-) + +diff --git a/include/bc/net.h b/include/bc/net.h +index 5330a88..5f82aff 100644 +--- a/include/bc/net.h ++++ b/include/bc/net.h +@@ -50,7 +50,7 @@ UB_DECLARE_VOID_FUNC(ub_sock_uncharge(struct sock *sk)) + /* management of queue for send space */ + UB_DECLARE_FUNC(long, ub_sock_wait_for_space(struct sock *sk, long timeo, + unsigned long size)) +-UB_DECLARE_VOID_FUNC(ub_sock_snd_queue_add(struct sock *sk, int resource, ++UB_DECLARE_FUNC(int, ub_sock_snd_queue_add(struct sock *sk, int resource, + unsigned long size)) + UB_DECLARE_VOID_FUNC(ub_sock_sndqueuedel(struct sock *sk)) + +@@ -105,14 +105,14 @@ static inline void ub_sock_retwres_tcp(struct sock *sk, unsigned long size, + ub_sock_ret_wreserv(sk, UB_TCPSNDBUF, size, ressize); + } + +-static inline void ub_sock_sndqueueadd_other(struct sock *sk, unsigned long sz) ++static inline int ub_sock_sndqueueadd_other(struct sock *sk, unsigned long sz) + { +- ub_sock_snd_queue_add(sk, UB_OTHERSOCKBUF, sz); ++ return ub_sock_snd_queue_add(sk, UB_OTHERSOCKBUF, sz); + } + +-static inline void ub_sock_sndqueueadd_tcp(struct sock *sk, unsigned long sz) ++static inline int ub_sock_sndqueueadd_tcp(struct sock *sk, unsigned long sz) + { +- ub_sock_snd_queue_add(sk, UB_TCPSNDBUF, sz); ++ return ub_sock_snd_queue_add(sk, UB_TCPSNDBUF, sz); + } + + static inline int ub_tcpsndbuf_charge(struct sock *sk, +diff --git a/kernel/bc/net.c b/kernel/bc/net.c +index 4db1f9b..ad88b86 100644 +--- a/kernel/bc/net.c ++++ b/kernel/bc/net.c +@@ -226,7 +226,7 @@ static void ub_tcp_snd_wakeup(struct user_beancounter *ub) + } + } + +-void ub_sock_snd_queue_add(struct sock *sk, int res, unsigned long size) ++int ub_sock_snd_queue_add(struct sock *sk, int res, unsigned long size) + { + unsigned long flags; + struct sock_beancounter *skbc; +@@ -234,7 +234,7 @@ void ub_sock_snd_queue_add(struct sock *sk, int res, unsigned long size) + unsigned long added_reserv; + + if (!sock_has_ubc(sk)) +- return; ++ return 0; + + skbc = sock_bc(sk); + ub = top_beancounter(skbc->ub); +@@ -253,7 +253,7 @@ void ub_sock_snd_queue_add(struct sock *sk, int res, unsigned long size) + spin_unlock_irqrestore(&ub->ub_lock, flags); + if (added_reserv) + charge_beancounter_notop(skbc->ub, res, added_reserv); +- return; ++ return 0; + } + + ub_debug(UBD_NET_SLEEP, "Adding sk to queue\n"); +@@ -278,6 +278,7 @@ void ub_sock_snd_queue_add(struct sock *sk, int res, unsigned long size) + } + out: + spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return -ENOMEM; + } + + EXPORT_SYMBOL(ub_sock_snd_queue_add); +diff --git a/net/core/stream.c b/net/core/stream.c +index 08a185d..bd35f57 100644 +--- a/net/core/stream.c ++++ b/net/core/stream.c +@@ -139,8 +139,8 @@ int __sk_stream_wait_memory(struct sock *sk, long *timeo_p, + if (amount == 0) { + if (sk_stream_memory_free(sk) && !vm_wait) + break; +- } else +- ub_sock_sndqueueadd_tcp(sk, amount); ++ } else if (!ub_sock_sndqueueadd_tcp(sk, amount)) ++ break; + + set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); + sk->sk_write_pending++; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0139-VE-NETFILTER-destroy-nf_conntrack_cache-correctly.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0139-VE-NETFILTER-destroy-nf_conntrack_cache-correctly.patch @@ -0,0 +1,26 @@ +From 144e92142adf7bf1ca8221ec1b951e65e4cdb63c Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 10 Jun 2008 16:55:18 +0400 +Subject: [PATCH] VE NETFILTER destroy nf_conntrack_cache correctly + +--- + net/netfilter/nf_conntrack_core.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index 742b808..3fb2bf7 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -1021,7 +1021,8 @@ void nf_conntrack_cleanup(void) + + rcu_assign_pointer(nf_ct_destroy, NULL); + +- kmem_cache_destroy(nf_conntrack_cachep); ++ if (ve_is_super(ve)) ++ kmem_cache_destroy(nf_conntrack_cachep); + skip_ct_cache: + nf_conntrack_helper_fini(); + nf_conntrack_expect_fini(); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0159-Fix-OOPS-while-stopping-VE-after-binfmt_misc.ko-load.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0159-Fix-OOPS-while-stopping-VE-after-binfmt_misc.ko-load.patch @@ -0,0 +1,32 @@ +From dd7d8b358930b07ab4047325fb27ce1da5510486 Mon Sep 17 00:00:00 2001 +From: Konstantin Ozerkov +Date: Thu, 13 Nov 2008 14:33:09 +0300 +Subject: [PATCH 159/159] Fix OOPS while stopping VE after binfmt_misc.ko loaded + +ve_binfmt_fini() should check if current VE have registered binfmt_misc fs. +(Properly handling situation while stopping VE which started before + binfmt_misc.ko loaded) + +http://bugzilla.openvz.org/show_bug.cgi?id=1028 + +Singed-off-by: Konstantin Khlebnikov +--- + fs/binfmt_misc.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c +index b91aaab..5bc2154 100644 +--- a/fs/binfmt_misc.c ++++ b/fs/binfmt_misc.c +@@ -800,6 +800,8 @@ static void ve_binfmt_fini(void *x) + * no locks since exec_ve is dead and noone will + * mess with bm_xxx fields any longer + */ ++ if (!ve->bm_fs_type) ++ return; + dm_genocide(ve); + unregister_ve_fs_type(ve->bm_fs_type, NULL); + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0034-NETFILTER-remove-many-useless-NULL-assignments.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0034-NETFILTER-remove-many-useless-NULL-assignments.patch @@ -0,0 +1,223 @@ +From 06927aa0b67994378a98faa8f2322a204488a4b1 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 17 Mar 2008 14:41:40 +0300 +Subject: [PATCH 34/48] NETFILTER: remove many useless NULL assignments + +VE is going to disappear in a second and memory will be freed, so +all those clears are indeedd useless. +--- + net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 4 +--- + net/ipv4/netfilter/nf_conntrack_proto_icmp.c | 3 --- + net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 2 -- + net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c | 2 -- + net/netfilter/nf_conntrack_core.c | 15 --------------- + net/netfilter/nf_conntrack_proto.c | 4 +--- + net/netfilter/nf_conntrack_proto_generic.c | 2 -- + net/netfilter/nf_conntrack_proto_tcp.c | 4 ---- + net/netfilter/nf_conntrack_proto_udp.c | 4 ---- + net/netfilter/nf_conntrack_standalone.c | 6 +----- + 10 files changed, 3 insertions(+), 43 deletions(-) + +Index: kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2008-11-24 15:58:42.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2008-11-24 15:58:43.000000000 +0100 +@@ -449,10 +449,8 @@ + + static void nf_ct_proto_ipv4_sysctl_cleanup(void) + { +- if (!ve_is_super(get_exec_env())) { ++ if (!ve_is_super(get_exec_env())) + free_sysctl_clone(ve_nf_conntrack_l3proto_ipv4->ctl_table); +- ve_nf_conntrack_l3proto_ipv4->ctl_table = NULL; +- } + } + #else + static inline int nf_ct_proto_ipv4_sysctl_init(void) +Index: kernel/net/ipv4/netfilter/nf_conntrack_proto_icmp.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_proto_icmp.c 2008-11-24 15:57:35.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_proto_icmp.c 2008-11-24 15:58:43.000000000 +0100 +@@ -388,12 +388,9 @@ + #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT + free_sysctl_clone( + ve_nf_conntrack_l4proto_icmp->ctl_compat_table); +- ve_nf_conntrack_l4proto_icmp->ctl_compat_table = NULL; + #endif + free_sysctl_clone(ve_nf_conntrack_l4proto_icmp->ctl_table); +- ve_nf_conntrack_l4proto_icmp->ctl_table = NULL; + kfree(ve_nf_conntrack_l4proto_icmp); +- ve_nf_conntrack_l4proto_icmp = NULL; + } + } + EXPORT_SYMBOL(nf_ct_proto_icmp_sysctl_cleanup); +Index: kernel/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c 2008-11-24 15:57:35.000000000 +0100 ++++ kernel/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c 2008-11-24 15:58:43.000000000 +0100 +@@ -436,9 +436,7 @@ + { + if (!ve_is_super(get_exec_env())) { + free_sysctl_clone(ve_nf_conntrack_l3proto_ipv6->ctl_table); +- ve_nf_conntrack_l3proto_ipv6->ctl_table = NULL; + kfree(ve_nf_conntrack_l3proto_ipv6); +- ve_nf_conntrack_l3proto_ipv6 = NULL; + } + } + #endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c 2008-11-24 15:57:35.000000000 +0100 ++++ kernel/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c 2008-11-24 15:58:43.000000000 +0100 +@@ -334,9 +334,7 @@ + { + if (!ve_is_super(get_exec_env())) { + free_sysctl_clone(ve_nf_conntrack_l4proto_icmpv6->ctl_table); +- ve_nf_conntrack_l4proto_icmpv6->ctl_table = NULL; + kfree(ve_nf_conntrack_l4proto_icmpv6); +- ve_nf_conntrack_l4proto_icmpv6 = NULL; + } + } + EXPORT_SYMBOL(nf_ct_proto_icmpv6_sysctl_cleanup); +Index: kernel/net/netfilter/nf_conntrack_core.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_core.c 2008-11-24 15:57:41.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_core.c 2008-11-24 15:58:43.000000000 +0100 +@@ -998,9 +998,6 @@ + { + struct ve_struct *ve = get_exec_env(); + +-#ifdef CONFIG_VE_IPTABLES +- BUG_ON(!ve->_nf_conntrack); +-#endif + if (ve_is_super(ve)) + rcu_assign_pointer(ip_ct_attach, NULL); + +@@ -1032,15 +1029,9 @@ + nf_ct_proto_generic_sysctl_cleanup(); + nf_ct_free_hashtable(ve_nf_conntrack_hash, ve_nf_conntrack_vmalloc, + nf_conntrack_htable_size); +- ve_nf_conntrack_hash = NULL; +- INIT_HLIST_HEAD(&ve_unconfirmed); +- ve_nf_ct_expect_hash = NULL; +- atomic_set(&ve_nf_conntrack_count, 0); +- ve_nf_conntrack_max = 0; + nf_conntrack_proto_fini(); + #ifdef CONFIG_VE_IPTABLES + kfree(ve->_nf_conntrack); +- ve->_nf_conntrack = NULL; + #endif + } + +@@ -1127,10 +1118,6 @@ + int max_factor = 8; + int ret = 0, i; + +-#ifdef CONFIG_VE_IPTABLES +- if (ve->_nf_conntrack) +- return 0; +-#endif + if (ve_is_super(ve)) { + + /* Idea from tcp.c: use 1/16384 of memory. On i386: 32MB +@@ -1229,11 +1216,9 @@ + err_free_hash: + nf_ct_free_hashtable(ve_nf_conntrack_hash, nf_conntrack_vmalloc, + nf_conntrack_htable_size); +- ve_nf_conntrack_hash = NULL; + err_out: + #ifdef CONFIG_VE_IPTABLES + kfree(ve->_nf_conntrack); +- ve->_nf_conntrack = NULL; + out: + #endif + return ret; +Index: kernel/net/netfilter/nf_conntrack_proto.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto.c 2008-11-24 15:58:41.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto.c 2008-11-24 15:58:43.000000000 +0100 +@@ -357,10 +357,8 @@ + nf_ct_l4proto_unregister_sysctl(ve_nf_conntrack_l4proto_generic); + + /* free l3proto protocol tables */ +- for (i = 0; i < PF_MAX; i++) { ++ for (i = 0; i < PF_MAX; i++) + kfree(ve_nf_ct_protos[i]); +- ve_nf_ct_protos[i] = NULL; +- } + #ifdef CONFIG_VE_IPTABLES + if (!ve_is_super(get_exec_env())) + kfree(ve_nf_conntrack_l4proto_generic); +Index: kernel/net/netfilter/nf_conntrack_proto_generic.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_generic.c 2008-11-24 15:57:35.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_generic.c 2008-11-24 15:58:43.000000000 +0100 +@@ -168,10 +168,8 @@ + #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT + free_sysctl_clone( + ve_nf_conntrack_l4proto_generic->ctl_compat_table); +- ve_nf_conntrack_l4proto_generic->ctl_compat_table = NULL; + #endif + free_sysctl_clone(ve_nf_conntrack_l4proto_generic->ctl_table); +- ve_nf_conntrack_l4proto_generic->ctl_table = NULL; + } + } + EXPORT_SYMBOL(nf_ct_proto_generic_sysctl_cleanup); +Index: kernel/net/netfilter/nf_conntrack_proto_tcp.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_tcp.c 2008-11-24 15:57:35.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_tcp.c 2008-11-24 15:58:43.000000000 +0100 +@@ -1529,15 +1529,11 @@ + #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT + free_sysctl_clone( + ve_nf_conntrack_l4proto_tcp4->ctl_compat_table); +- ve_nf_conntrack_l4proto_tcp4->ctl_compat_table = NULL; + #endif + free_sysctl_clone(ve_nf_conntrack_l4proto_tcp4->ctl_table); +- ve_nf_conntrack_l4proto_tcp4->ctl_table = NULL; + kfree(ve_nf_conntrack_l4proto_tcp4); +- ve_nf_conntrack_l4proto_tcp4 = NULL; + + kfree(ve_nf_conntrack_l4proto_tcp6); +- ve_nf_conntrack_l4proto_tcp6 = NULL; + } + } + EXPORT_SYMBOL(nf_ct_proto_tcp_sysctl_cleanup); +Index: kernel/net/netfilter/nf_conntrack_proto_udp.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_udp.c 2008-11-24 15:57:35.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_udp.c 2008-11-24 15:58:43.000000000 +0100 +@@ -311,15 +311,11 @@ + #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT + free_sysctl_clone( + ve_nf_conntrack_l4proto_udp4->ctl_compat_table); +- ve_nf_conntrack_l4proto_udp4->ctl_compat_table = NULL; + #endif + free_sysctl_clone(ve_nf_conntrack_l4proto_udp4->ctl_table); +- ve_nf_conntrack_l4proto_udp4->ctl_table = NULL; + kfree(ve_nf_conntrack_l4proto_udp4); +- ve_nf_conntrack_l4proto_udp4 = NULL; + + kfree(ve_nf_conntrack_l4proto_udp6); +- ve_nf_conntrack_l4proto_udp6 = NULL; + } + } + EXPORT_SYMBOL(nf_ct_proto_udp_sysctl_cleanup); +Index: kernel/net/netfilter/nf_conntrack_standalone.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_standalone.c 2008-11-24 15:57:02.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_standalone.c 2008-11-24 15:58:43.000000000 +0100 +@@ -488,12 +488,8 @@ + static void nf_conntrack_fini_ve_sysctl(struct ve_struct *ve) + { + unregister_sysctl_table(ve_nf_ct_sysctl_header); +- if (!ve_is_super(ve)) { ++ if (!ve_is_super(ve)) + free_sysctl_clone(ve_nf_ct_net_table); +- ve_nf_ct_net_table = NULL; +- ve_nf_ct_sysctl_table = NULL; +- ve_nf_ct_netfilter_table = NULL; +- } + } + #else + static inline int nf_conntrack_init_ve_sysctl(struct ve_struct *ve) --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0048-Linux-2.6.24-ovz004.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0048-Linux-2.6.24-ovz004.patch @@ -0,0 +1,22 @@ +From 52bfa3b7c6b2eeac15d1b77ab80f350d7c66b5b5 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 25 Mar 2008 13:09:21 +0300 +Subject: [PATCH 48/48] Linux 2.6.24-ovz004 + +--- + Makefile | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +Index: kernel/Makefile +=================================================================== +--- kernel.orig/Makefile 2008-11-24 15:59:06.000000000 +0100 ++++ kernel/Makefile 2008-11-24 15:59:19.000000000 +0100 +@@ -3,7 +3,7 @@ + SUBLEVEL = 24 + EXTRAVERSION = .6 + NAME = Err Metey! A Heury Beelge-a Ret! +-VZVERSION = ovz003 ++VZVERSION = ovz004 + + # *DOCUMENTATION* + # To see a list of typical targets execute "make help" --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0140-VZDQ-correct-size-on-proc-vz-aquota-aquota.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0140-VZDQ-correct-size-on-proc-vz-aquota-aquota.patch @@ -0,0 +1,50 @@ +From bcba535278b993cc23e1abb7ecd4ef9d1a611967 Mon Sep 17 00:00:00 2001 +From: Vasily Tarasov +Date: Thu, 15 May 2008 18:52:00 +0400 +Subject: [PATCH] VZDQ correct size on /proc/vz/aquota/*/aquota.* + +Bug #59920 + +Signed-off-by: Vasily Tarasov +Signed-off-by: Denis Lunev +--- + fs/vzdq_file.c | 16 +++++++++++++++- + 1 files changed, 15 insertions(+), 1 deletions(-) + +diff --git a/fs/vzdq_file.c b/fs/vzdq_file.c +index f63689a..ac3aeb0 100644 +--- a/fs/vzdq_file.c ++++ b/fs/vzdq_file.c +@@ -520,6 +520,8 @@ static int vzdq_aquotq_looktest(struct inode *inode, void *data) + static int vzdq_aquotq_lookset(struct inode *inode, void *data) + { + struct vzdq_aquotq_lookdata *d; ++ struct super_block *sb; ++ struct quotatree_data qtd; + struct quotatree_tree *tree; + + d = data; +@@ -535,7 +537,19 @@ static int vzdq_aquotq_lookset(struct inode *inode, void *data) + vzdq_aquot_setidev(inode, d->dev); + + /* Setting size */ +- tree = QUGID_TREE(d->qmblk, PROC_I(inode)->fd - 1); ++ sb = user_get_super(d->dev); ++ if (sb == NULL) ++ return -ENODEV; ++ qtd.qmblk = vzquota_find_qmblk(sb); ++ drop_super(sb); ++ ++ if (qtd.qmblk == NULL) ++ return -ESRCH; ++ if (qtd.qmblk == VZ_QUOTA_BAD) ++ return -EIO; ++ ++ qtd.type = PROC_I(inode)->fd - 1; ++ tree = QUGID_TREE(qtd.qmblk, qtd.type); + inode->i_size = get_block_num(tree) * 1024; + return 0; + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0135-VE-IPv6-give-owner_ve-to-fib_table-and-fib6_local_ta.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0135-VE-IPv6-give-owner_ve-to-fib_table-and-fib6_local_ta.patch @@ -0,0 +1,34 @@ +From 115ea893b03ae5eab8a9186f83cbc06ae9e74efe Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 6 Jun 2008 20:20:58 +0400 +Subject: [PATCH] VE IPv6 give owner_ve to fib_table and fib6_local_table + +otherwise eventually fib6_clean_all will execute code in NULL context +which is no-no. +--- + net/ipv6/ip6_fib.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c +index b367550..0f9e611 100644 +--- a/net/ipv6/ip6_fib.c ++++ b/net/ipv6/ip6_fib.c +@@ -177,6 +177,7 @@ static struct fib6_table fib6_main_tbl = { + #ifdef CONFIG_VE + static inline void prepare_fib6_table(void) + { ++ fib6_main_tbl.owner_env = get_ve0(); + get_ve0()->_fib6_table = &fib6_main_tbl; + } + +@@ -233,6 +234,7 @@ static struct fib6_table fib6_local_tbl = { + #ifdef CONFIG_VE + static inline void prepare_fib6_local_table(void) + { ++ fib6_local_tbl.owner_env = get_ve0(); + get_ve0()->_fib6_local_table = &fib6_local_tbl; + } + #define fib6_local_tbl (*(get_exec_env())->_fib6_local_table) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0014-NETFILTER-move-VE-s-expect_max-value-initialization.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0014-NETFILTER-move-VE-s-expect_max-value-initialization.patch @@ -0,0 +1,40 @@ +From 3ac4bfd9c19541c576d0804fde799eb4d50facdf Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 7 Mar 2008 16:45:12 +0300 +Subject: [PATCH 14/48] NETFILTER: move VE's expect_max value initialization into correct place + +Copying from nf_ct_expect_max is pointless for VE0 because it's 0 at this place +Move initialization to nf_conntrack_expect_init() for correct behaviour. +--- + net/netfilter/nf_conntrack_core.c | 1 - + net/netfilter/nf_conntrack_expect.c | 2 +- + 2 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index 46e0c5b..879dc9e 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -1167,7 +1167,6 @@ int nf_conntrack_init(void) + } + + ve_nf_conntrack_max = nf_conntrack_max; +- ve_nf_ct_expect_max = nf_ct_expect_max; + atomic_set(&ve_nf_conntrack_count, 0); + INIT_HLIST_HEAD(&ve_unconfirmed); + #endif +diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c +index c90024c..39dde85 100644 +--- a/net/netfilter/nf_conntrack_expect.c ++++ b/net/netfilter/nf_conntrack_expect.c +@@ -521,7 +521,7 @@ int nf_conntrack_expect_init(void) + nf_ct_expect_hsize = 1; + } + nf_ct_expect_max = nf_ct_expect_hsize * 4; +- ++ ve_nf_ct_expect_max = nf_ct_expect_max; + ve_nf_ct_expect_hash = nf_ct_alloc_hashtable(&nf_ct_expect_hsize, + &ve_nf_ct_expect_vmalloc); + if (ve_nf_ct_expect_hash == NULL) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0049-ubuntu-specific-fgetstat-virtinfo-notifier.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0049-ubuntu-specific-fgetstat-virtinfo-notifier.patch @@ -0,0 +1,30 @@ +From: Konstantin Khlebnikov + +In Ubuntu kernel, sys_fstat implemented via new function vfs_fgetattr, +where virtinfo_notifier_call is not presented. As result syscalls stat +and fstat give different device id and inode numbers inside VE. + +http://forum.openvz.org/index.php?t=msg&th=5912 + +--- a/fs/stat.c ++++ b/fs/stat.c +@@ -76,11 +76,19 @@ static int vfs_fgetattr(struct file *fil + struct dentry *dentry = file->f_path.dentry; + struct inode *inode = dentry->d_inode; + int retval; ++ struct faudit_stat_arg arg; + + retval = security_inode_getattr(mnt, dentry); + if (retval) + return retval; + ++ arg.mnt = mnt; ++ arg.dentry = dentry; ++ arg.stat = stat; ++ if (virtinfo_notifier_call(VITYPE_FAUDIT, VIRTINFO_FAUDIT_STAT, &arg) ++ != NOTIFY_DONE) ++ return arg.err; ++ + if (file->f_op && file->f_op->fgetattr) { + return file->f_op->fgetattr(file, stat); + } else if (inode->i_op->getattr) { --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0119-UBC-dcache-sleep-in-dput.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0119-UBC-dcache-sleep-in-dput.patch @@ -0,0 +1,59 @@ +From a859cfd55614c65d7c8bcc92bbba45ac0935a3ff Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Fri, 18 Jul 2008 15:25:50 +0400 +Subject: [PATCH 119/131] UBC dcache sleep in dput + +dentry->dentry_bc.d_ub is unreliable after the sleep. + +d_kill can sleep inside. In this case dentry->dentry_bc.d_ub saved before +is unreliable as we can have dcache accounting on event during sleep. In this +case we'll have saved ub == NULL and OOPS/leak inside dcache_uncharge. + +Another problem here is that we should decrement inuse count on the +dentry appropriately. + +Bug #116095 +--- + fs/dcache.c | 16 +++++++--------- + 1 files changed, 7 insertions(+), 9 deletions(-) + +diff --git a/fs/dcache.c b/fs/dcache.c +index 09fdd5e..17efdbb 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -181,9 +181,6 @@ static struct dentry *d_kill(struct dentry *dentry) + + static void dput_recursive(struct dentry *dentry) + { +- struct user_beancounter *ub; +- unsigned long d_ubsize; +- + repeat: + if (unlikely(ub_dentry_on)) { + spin_lock(&dcache_lock); +@@ -234,15 +231,16 @@ kill_it: + list_del(&dentry->d_lru); + dentry_stat.nr_unused--; + } +- +- ub = dentry->dentry_bc.d_ub; +- d_ubsize = dentry->dentry_bc.d_ubsize; +- dentry = d_kill(dentry); +- preempt_disable(); + if (unlikely(ub_dentry_on)) { +- uncharge_dcache(ub, d_ubsize); ++ struct user_beancounter *ub; ++ ++ ub = dentry->dentry_bc.d_ub; ++ BUG_ON(!ub_dput_testzero(dentry)); ++ uncharge_dcache(ub, dentry->dentry_bc.d_ubsize); + put_beancounter(ub); + } ++ dentry = d_kill(dentry); ++ preempt_disable(); + if (dentry) + goto repeat; + preempt_enable(); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0130-VE-vzdq-vzaquota-proc-nlink.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0130-VE-vzdq-vzaquota-proc-nlink.patch @@ -0,0 +1,67 @@ +From abb3f592cc62d01f96ca4fdeb8fdd6affaf95633 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:58 +0400 +Subject: [PATCH 130/131] VE vzdq vzaquota proc nlink + +Produce correct nlink count for /proc/vz/vzaquota + +Use count mounpoints accessible from VE as upper estimate for +count subdirectories inside /proc/vz/vzaquot. +Concept stolen from vzdq_aquotd_readdir. + +Disable enumation in VE0 for performance reason (like in _readdir and _lookup) + +Bug #115343 +--- + fs/vzdq_file.c | 28 ++++++++++++++++++++++++++++ + 1 files changed, 28 insertions(+), 0 deletions(-) + +diff --git a/fs/vzdq_file.c b/fs/vzdq_file.c +index 5b4133a..f63689a 100644 +--- a/fs/vzdq_file.c ++++ b/fs/vzdq_file.c +@@ -851,6 +851,33 @@ out: + return ERR_PTR(-ENOENT); + } + ++static int vzdq_aquotd_getattr(struct vfsmount *mnt, struct dentry *dentry, ++ struct kstat *stat) ++{ ++ struct ve_struct *ve, *old_ve; ++ struct list_head mntlist, *pos; ++ ++ generic_fillattr(dentry->d_inode, stat); ++ ve = dentry->d_sb->s_type->owner_env; ++#ifdef CONFIG_VE ++ /* ++ * The only reason of disabling getattr for the host system is that ++ * this getattr can be slow and CPU consuming with large number of VPSs ++ * (or just mount points). ++ */ ++ if (ve_is_super(ve)) ++ return 0; ++#endif ++ INIT_LIST_HEAD(&mntlist); ++ old_ve = set_exec_env(ve); ++ if (!vzdq_aquot_buildmntlist(ve, &mntlist)) ++ list_for_each(pos, &mntlist) ++ stat->nlink++; ++ vzdq_aquot_releasemntlist(ve, &mntlist); ++ (void)set_exec_env(old_ve); ++ return 0; ++} ++ + static struct file_operations vzdq_aquotd_file_operations = { + .read = &generic_read_dir, + .readdir = &vzdq_aquotd_readdir, +@@ -858,6 +885,7 @@ static struct file_operations vzdq_aquotd_file_operations = { + + static struct inode_operations vzdq_aquotd_inode_operations = { + .lookup = &vzdq_aquotd_lookup, ++ .getattr = &vzdq_aquotd_getattr, + }; + + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0025-NETFILTER-fix-memory-leak-if-nf_conntrack_ipv4-was.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0025-NETFILTER-fix-memory-leak-if-nf_conntrack_ipv4-was.patch @@ -0,0 +1,45 @@ +From 85e6bc2ba4997464c6ff0f92e7f56b503c6ff792 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 12:51:36 +0300 +Subject: [PATCH 25/48] NETFILTER: fix memory leak if nf_conntrack_ipv4 was used by VE + +--- + net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +index aa23976..9ac2567 100644 +--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c ++++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +@@ -490,6 +490,12 @@ out: + ve_nf_conntrack_l3proto_ipv4 = ipv4; + return 0; + } ++ ++static void nf_ct_proto_ipv4_fini(void) ++{ ++ if (!ve_is_super(get_exec_env())) ++ kfree(ve_nf_conntrack_l3proto_ipv4); ++} + #endif + + int init_nf_ct_l3proto_ipv4(void) +@@ -571,6 +577,7 @@ no_mem_udp: + no_mem_tcp: + nf_ct_proto_ipv4_sysctl_cleanup(); + no_mem_ipv4: ++ nf_ct_proto_ipv4_fini(); + err_out: + if (!ve_is_super(get_exec_env())) + module_put(THIS_MODULE); +@@ -593,6 +600,7 @@ void fini_nf_ct_l3proto_ipv4(void) + nf_ct_proto_udp_sysctl_cleanup(); + nf_ct_proto_tcp_sysctl_cleanup(); + nf_ct_proto_ipv4_sysctl_cleanup(); ++ nf_ct_proto_ipv4_fini(); + if (!ve_is_super(get_exec_env())) + module_put(THIS_MODULE); + #endif /* CONFIG_VE_IPTABLES */ +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0057-Add-per-VE-proc-net-udp-udp6-udplite-udplite6.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0057-Add-per-VE-proc-net-udp-udp6-udplite-udplite6.patch @@ -0,0 +1,208 @@ +From 452bdf6ea996f2e9e030822d87d9106bf33e0677 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 1 Apr 2008 17:55:52 +0400 +Subject: [PATCH 56/67] Add per-VE /proc/net/{udp,udp6,udplite,udplite6} + +Show only connections of current VE (already implemented). +Required for netstat. + +http://bugzilla.openvz.org/show_bug.cgi?id=860 +--- + include/net/udp.h | 4 ++-- + net/ipv4/udp.c | 27 +++++++++++++++++++++------ + net/ipv4/udplite.c | 17 ++++++++++++++++- + net/ipv6/udp.c | 19 +++++++++++++++++-- + net/ipv6/udplite.c | 19 +++++++++++++++++-- + 5 files changed, 73 insertions(+), 13 deletions(-) + +diff --git a/include/net/udp.h b/include/net/udp.h +index 71967e3..20bc0ab 100644 +--- a/include/net/udp.h ++++ b/include/net/udp.h +@@ -180,8 +180,8 @@ struct udp_iter_state { + }; + + #ifdef CONFIG_PROC_FS +-extern int udp_proc_register(struct udp_seq_afinfo *afinfo); +-extern void udp_proc_unregister(struct udp_seq_afinfo *afinfo); ++extern int udp_proc_register(struct net *net, struct udp_seq_afinfo *afinfo); ++extern void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo); + + extern int udp4_proc_init(void); + extern void udp4_proc_exit(void); +diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c +index 32fddac..a27ed8a 100644 +--- a/net/ipv4/udp.c ++++ b/net/ipv4/udp.c +@@ -1576,7 +1576,7 @@ out_kfree: + } + + /* ------------------------------------------------------------------------ */ +-int udp_proc_register(struct udp_seq_afinfo *afinfo) ++int udp_proc_register(struct net *net, struct udp_seq_afinfo *afinfo) + { + struct proc_dir_entry *p; + int rc = 0; +@@ -1589,7 +1589,7 @@ int udp_proc_register(struct udp_seq_afinfo *afinfo) + afinfo->seq_fops->llseek = seq_lseek; + afinfo->seq_fops->release = seq_release_private; + +- p = proc_net_fops_create(&init_net, afinfo->name, S_IRUGO, afinfo->seq_fops); ++ p = proc_net_fops_create(net, afinfo->name, S_IRUGO, afinfo->seq_fops); + if (p) + p->data = afinfo; + else +@@ -1597,11 +1597,11 @@ int udp_proc_register(struct udp_seq_afinfo *afinfo) + return rc; + } + +-void udp_proc_unregister(struct udp_seq_afinfo *afinfo) ++void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo) + { + if (!afinfo) + return; +- proc_net_remove(&init_net, afinfo->name); ++ proc_net_remove(net, afinfo->name); + memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops)); + } + +@@ -1651,14 +1651,29 @@ static struct udp_seq_afinfo udp4_seq_afinfo = { + .seq_fops = &udp4_seq_fops, + }; + ++static int udp4_proc_net_init(struct net *net) ++{ ++ return udp_proc_register(net, &udp4_seq_afinfo); ++} ++ ++static void udp4_proc_net_exit(struct net *net) ++{ ++ udp_proc_unregister(net, &udp4_seq_afinfo); ++} ++ ++static struct pernet_operations udp4_proc_net_ops = { ++ .init = udp4_proc_net_init, ++ .exit = udp4_proc_net_exit, ++}; ++ + int __init udp4_proc_init(void) + { +- return udp_proc_register(&udp4_seq_afinfo); ++ return register_pernet_subsys(&udp4_proc_net_ops); + } + + void udp4_proc_exit(void) + { +- udp_proc_unregister(&udp4_seq_afinfo); ++ unregister_pernet_subsys(&udp4_proc_net_ops); + } + #endif /* CONFIG_PROC_FS */ + +diff --git a/net/ipv4/udplite.c b/net/ipv4/udplite.c +index f5baeb3..c66933b 100644 +--- a/net/ipv4/udplite.c ++++ b/net/ipv4/udplite.c +@@ -92,6 +92,21 @@ static struct udp_seq_afinfo udplite4_seq_afinfo = { + .seq_show = udp4_seq_show, + .seq_fops = &udplite4_seq_fops, + }; ++ ++static int udplite4_proc_net_init(struct net *net) ++{ ++ return udp_proc_register(net, &udplite4_seq_afinfo); ++} ++ ++static void udplite4_proc_net_exit(struct net *net) ++{ ++ udp_proc_unregister(net, &udplite4_seq_afinfo); ++} ++ ++static struct pernet_operations udplite4_proc_net_ops = { ++ .init = udplite4_proc_net_init, ++ .exit = udplite4_proc_net_exit, ++}; + #endif + + void __init udplite4_register(void) +@@ -105,7 +120,7 @@ void __init udplite4_register(void) + inet_register_protosw(&udplite4_protosw); + + #ifdef CONFIG_PROC_FS +- if (udp_proc_register(&udplite4_seq_afinfo)) /* udplite4_proc_init() */ ++ if (register_pernet_subsys(&udplite4_proc_net_ops)) /* udplite4_proc_init() */ + printk(KERN_ERR "%s: Cannot register /proc!\n", __FUNCTION__); + #endif + return; +diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c +index a28f405..bf170a8 100644 +--- a/net/ipv6/udp.c ++++ b/net/ipv6/udp.c +@@ -961,13 +961,28 @@ static struct udp_seq_afinfo udp6_seq_afinfo = { + .seq_fops = &udp6_seq_fops, + }; + ++static int udp6_proc_net_init(struct net *net) ++{ ++ return udp_proc_register(net, &udp6_seq_afinfo); ++} ++ ++static void udp6_proc_net_exit(struct net *net) ++{ ++ udp_proc_unregister(net, &udp6_seq_afinfo); ++} ++ ++static struct pernet_operations udp6_proc_net_ops = { ++ .init = udp6_proc_net_init, ++ .exit = udp6_proc_net_exit, ++}; ++ + int __init udp6_proc_init(void) + { +- return udp_proc_register(&udp6_seq_afinfo); ++ return register_pernet_subsys(&udp6_proc_net_ops); + } + + void udp6_proc_exit(void) { +- udp_proc_unregister(&udp6_seq_afinfo); ++ unregister_pernet_subsys(&udp6_proc_net_ops); + } + #endif /* CONFIG_PROC_FS */ + +diff --git a/net/ipv6/udplite.c b/net/ipv6/udplite.c +index 5a0379f..992e677 100644 +--- a/net/ipv6/udplite.c ++++ b/net/ipv6/udplite.c +@@ -96,13 +96,28 @@ static struct udp_seq_afinfo udplite6_seq_afinfo = { + .seq_fops = &udplite6_seq_fops, + }; + ++static int udplite6_proc_net_init(struct net *net) ++{ ++ return udp_proc_register(net, &udplite6_seq_afinfo); ++} ++ ++static void udplite6_proc_net_exit(struct net *net) ++{ ++ udp_proc_unregister(net, &udplite6_seq_afinfo); ++} ++ ++static struct pernet_operations udplite6_proc_net_ops = { ++ .init = udplite6_proc_net_init, ++ .exit = udplite6_proc_net_exit, ++}; ++ + int __init udplite6_proc_init(void) + { +- return udp_proc_register(&udplite6_seq_afinfo); ++ return register_pernet_subsys(&udplite6_proc_net_ops); + } + + void udplite6_proc_exit(void) + { +- udp_proc_unregister(&udplite6_seq_afinfo); ++ unregister_pernet_subsys(&udplite6_proc_net_ops); + } + #endif +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0035-Change-sys_setsid-and-set_special_pids-to-work-w.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0035-Change-sys_setsid-and-set_special_pids-to-work-w.patch @@ -0,0 +1,145 @@ +From 5185276590e2099c55292fec2906e8d0f8a5bc16 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 17 Mar 2008 15:36:28 +0300 +Subject: [PATCH 35/48] Change sys_setsid() and set_special_pids() to work with struct pid. + +Backport mainstream patch from Oleg Nesterov . +--- + include/linux/sched.h | 6 ++---- + init/main.c | 2 +- + kernel/exit.c | 21 +++++++++++---------- + kernel/sys.c | 11 ++++++----- + 4 files changed, 20 insertions(+), 20 deletions(-) + +Index: kernel/include/linux/sched.h +=================================================================== +--- kernel.orig/include/linux/sched.h 2008-11-24 15:57:08.000000000 +0100 ++++ kernel/include/linux/sched.h 2008-11-24 15:58:47.000000000 +0100 +@@ -1665,8 +1665,6 @@ + extern struct task_struct *find_task_by_pid_ns(pid_t nr, + struct pid_namespace *ns); + +-extern void __set_special_pids(pid_t session, pid_t pgrp); +- + /* per-UID process charging. */ + extern struct user_struct * alloc_uid(struct user_namespace *, uid_t); + static inline struct user_struct *get_uid(struct user_struct *u) +@@ -1678,8 +1676,8 @@ + extern void switch_uid(struct user_struct *); + extern void release_uids(struct user_namespace *ns); + extern int set_user(uid_t uid, int dumpclear); +-extern void set_special_pids(pid_t session, pid_t pgrp); +-extern void __set_special_pids(pid_t session, pid_t pgrp); ++extern void set_special_pids(struct pid *pid); ++extern void __set_special_pids(struct pid *pid); + + #include + +Index: kernel/init/main.c +=================================================================== +--- kernel.orig/init/main.c 2008-11-24 15:57:27.000000000 +0100 ++++ kernel/init/main.c 2008-11-24 15:58:47.000000000 +0100 +@@ -858,7 +858,7 @@ + */ + init_pid_ns.child_reaper = current; + +- __set_special_pids(1, 1); ++ __set_special_pids(&init_struct_pid); + cad_pid = task_pid(current); + + smp_prepare_cpus(max_cpus); +Index: kernel/kernel/exit.c +=================================================================== +--- kernel.orig/kernel/exit.c 2008-11-24 15:57:08.000000000 +0100 ++++ kernel/kernel/exit.c 2008-11-24 15:58:47.000000000 +0100 +@@ -310,26 +310,27 @@ + switch_uid(INIT_USER); + } + +-void __set_special_pids(pid_t session, pid_t pgrp) ++void __set_special_pids(struct pid *pid) + { + struct task_struct *curr = current->group_leader; ++ pid_t nr = pid_nr(pid); + +- if (task_session_nr(curr) != session) { ++ if (task_session(curr) != pid) { + detach_pid(curr, PIDTYPE_SID); +- set_task_session(curr, session); +- attach_pid(curr, PIDTYPE_SID, find_pid(session)); ++ attach_pid(curr, PIDTYPE_SID, pid); ++ set_task_session(curr, nr); + } +- if (task_pgrp_nr(curr) != pgrp) { ++ if (task_pgrp(curr) != pid) { + detach_pid(curr, PIDTYPE_PGID); +- set_task_pgrp(curr, pgrp); +- attach_pid(curr, PIDTYPE_PGID, find_pid_ns(pgrp, &init_pid_ns)); ++ attach_pid(curr, PIDTYPE_PGID, pid); ++ set_task_pgrp(curr, nr); + } + } + +-void set_special_pids(pid_t session, pid_t pgrp) ++void set_special_pids(struct pid *pid) + { + write_lock_irq(&tasklist_lock); +- __set_special_pids(session, pgrp); ++ __set_special_pids(pid); + write_unlock_irq(&tasklist_lock); + } + EXPORT_SYMBOL(set_special_pids); +@@ -401,7 +402,7 @@ + */ + current->flags |= PF_NOFREEZE; + +- set_special_pids(1, 1); ++ set_special_pids(&init_struct_pid); + proc_clear_tty(current); + + /* Block and flush all signals */ +Index: kernel/kernel/sys.c +=================================================================== +--- kernel.orig/kernel/sys.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/sys.c 2008-11-24 15:58:47.000000000 +0100 +@@ -1192,6 +1192,7 @@ + { + struct task_struct *group_leader = current->group_leader; + pid_t session; ++ struct pid *sid; + int err = -EPERM; + + write_lock_irq(&tasklist_lock); +@@ -1200,7 +1201,8 @@ + if (group_leader->signal->leader) + goto out; + +- session = group_leader->pid; ++ sid = task_pid(group_leader); ++ session = pid_vnr(sid); + /* Fail if a process group id already exists that equals the + * proposed session id. + * +@@ -1208,19 +1210,18 @@ + * session id and so the check will always fail and make it so + * init cannot successfully call setsid. + */ +- if (session > 1 && find_task_by_pid_type_ns(PIDTYPE_PGID, +- session, &init_pid_ns)) ++ if (session > 1 && pid_task(sid, PIDTYPE_PGID)) + goto out; + + group_leader->signal->leader = 1; +- __set_special_pids(session, session); ++ __set_special_pids(sid); + + spin_lock(&group_leader->sighand->siglock); + group_leader->signal->tty = NULL; + group_leader->signal->tty_old_pgrp = 0; + spin_unlock(&group_leader->sighand->siglock); + +- err = task_pgrp_vnr(group_leader); ++ err = session; + out: + write_unlock_irq(&tasklist_lock); + return err; --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0099-VE-ipv4-devconf-default.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0099-VE-ipv4-devconf-default.patch @@ -0,0 +1,30 @@ +From 24ee0c8feb02c4a53309a1ee30acddd7b10688bc Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Wed, 2 Jul 2008 19:55:20 +0400 +Subject: [PATCH 099/103] VE ipv4 devconf default + +Use per-VE ipv4_devconf_dflt for new devices +Otherwise, setting sys.ipv4.conf.default inside VE won't have +any effect and will confuse userspace. + +http://bugzilla.openvz.org/show_bug.cgi?id=826 +--- + net/ipv4/devinet.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c +index cbf3bee..8f1f229 100644 +--- a/net/ipv4/devinet.c ++++ b/net/ipv4/devinet.c +@@ -165,7 +165,7 @@ struct in_device *inetdev_init(struct net_device *dev) + if (!in_dev) + goto out; + INIT_RCU_HEAD(&in_dev->rcu_head); +- memcpy(&in_dev->cnf, &ipv4_devconf_dflt, sizeof(in_dev->cnf)); ++ memcpy(&in_dev->cnf, &ve_ipv4_devconf_dflt, sizeof(in_dev->cnf)); + in_dev->cnf.sysctl = NULL; + in_dev->dev = dev; + if ((in_dev->arp_parms = neigh_parms_alloc(dev, &arp_tbl)) == NULL) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0153-MS-NETNS-Make-netlink_kernel_release-publically-avai.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0153-MS-NETNS-Make-netlink_kernel_release-publically-avai.patch @@ -0,0 +1,118 @@ +From 7ce3d10885bf6c04d225d274bcf4458e56198c23 Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Fri, 29 Feb 2008 11:18:32 -0800 +Subject: [PATCH] MS NETNS Make netlink_kernel_release publically available as sk_release_kernel + +mainstream commit edf0208702007ec1f6a36756fdd005f771a4cf17 + +This staff will be needed for non-netlink kernel sockets, which should +also not pin a namespace like tcp_socket and icmp_socket. + +Signed-off-by: Denis V. Lunev +Acked-by: Daniel Lezcano +Signed-off-by: David S. Miller +--- + include/net/sock.h | 13 +++++++++++++ + net/core/sock.c | 18 ++++++++++++++++++ + net/netlink/af_netlink.c | 18 ++---------------- + 3 files changed, 33 insertions(+), 16 deletions(-) + +diff --git a/include/net/sock.h b/include/net/sock.h +index 6e1fb98..fc616d0 100644 +--- a/include/net/sock.h ++++ b/include/net/sock.h +@@ -841,6 +841,7 @@ extern struct sock *sk_alloc(struct net *net, int family, + gfp_t priority, + struct proto *prot); + extern void sk_free(struct sock *sk); ++extern void sk_release_kernel(struct sock *sk); + extern struct sock *sk_clone(const struct sock *sk, + const gfp_t priority); + +@@ -1369,6 +1370,18 @@ static inline void sk_eat_skb(struct sock *sk, struct sk_buff *skb, int copied_e + } + #endif + ++/* ++ * Kernel sockets, f.e. rtnl or icmp_socket, are a part of a namespace. ++ * They should not hold a referrence to a namespace in order to allow ++ * to stop it. ++ * Sockets after sk_change_net should be released using sk_release_kernel ++ */ ++static inline void sk_change_net(struct sock *sk, struct net *net) ++{ ++ put_net(sk->sk_net); ++ sk->sk_net = net; ++} ++ + extern void sock_enable_timestamp(struct sock *sk); + extern int sock_get_timestamp(struct sock *, struct timeval __user *); + extern int sock_get_timestampns(struct sock *, struct timespec __user *); +diff --git a/net/core/sock.c b/net/core/sock.c +index 83933fd..df11bc7 100644 +--- a/net/core/sock.c ++++ b/net/core/sock.c +@@ -978,6 +978,24 @@ void sk_free(struct sock *sk) + sk_prot_free(sk->sk_prot_creator, sk); + } + ++/* ++ * Last sock_put should drop referrence to sk->sk_net. It has already ++ * been dropped in sk_change_net. Taking referrence to stopping namespace ++ * is not an option. ++ * Take referrence to a socket to remove it from hash _alive_ and after that ++ * destroy it in the context of init_net. ++ */ ++void sk_release_kernel(struct sock *sk) ++{ ++ if (sk == NULL || sk->sk_socket == NULL) ++ return; ++ ++ sock_hold(sk); ++ sock_release(sk->sk_socket); ++ sk->sk_net = get_net(&init_net); ++ sock_put(sk); ++} ++ + struct sock *sk_clone(const struct sock *sk, const gfp_t priority) + { + struct sock *newsk; +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index 71e31e3..9533610 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -1376,8 +1376,7 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups, + goto out_sock_release_nosk; + + sk = sock->sk; +- put_net(sk->sk_net); +- sk->sk_net = net; ++ sk_change_net(sk, net); + + if (groups < 32) + groups = 32; +@@ -1424,20 +1423,7 @@ out_sock_release_nosk: + void + netlink_kernel_release(struct sock *sk) + { +- /* +- * Last sock_put should drop referrence to sk->sk_net. It has already +- * been dropped in netlink_kernel_create. Taking referrence to stopping +- * namespace is not an option. +- * Take referrence to a socket to remove it from netlink lookup table +- * _alive_ and after that destroy it in the context of init_net. +- */ +- if (sk == NULL || sk->sk_socket == NULL) +- return; +- +- sock_hold(sk); +- sock_release(sk->sk_socket); +- sk->sk_net = get_net(&init_net); +- sock_put(sk); ++ sk_release_kernel(sk); + } + EXPORT_SYMBOL(netlink_kernel_release); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0107-CPT-rst-iptables-diagnostics.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0107-CPT-rst-iptables-diagnostics.patch @@ -0,0 +1,29 @@ +From 92cc26fffdab5dc6cc3ac8a0784f029391b4714d Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Fri, 18 Jul 2008 15:25:40 +0400 +Subject: [PATCH 107/131] CPT rst iptables diagnostics + +Add diagnostics in case of iptables-restore fail. +It is not clear right now what is wrong if iptables-restore fails. +Add some diagnostics in case of error. + +Bug #95952 +--- + kernel/cpt/rst_net.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c +index 4a0070e..aa79c8b 100644 +--- a/kernel/cpt/rst_net.c ++++ b/kernel/cpt/rst_net.c +@@ -697,6 +697,7 @@ static int rst_restore_iptables(struct cpt_context * ctx) + err = (status & 0xff00) >> 8; + if (err != 0) { + eprintk_ctx("iptables-restore exited with %d\n", err); ++ eprintk_ctx("Most probably some iptables modules are not loaded\n"); + err = -EINVAL; + } + } else { +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0006-CPT-select-tun-venet-veth-modules.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0006-CPT-select-tun-venet-veth-modules.patch @@ -0,0 +1,30 @@ +From b1a7063c226542f1f62972173056fa0971f9d9e8 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 3 Mar 2008 13:46:34 +0300 +Subject: [PATCH 06/48] CPT: select tun, venet, veth modules + +CONFIG_VZ_CHEKPOINT=y, CONFIG_TUN=m result in linking breakage +because CPT can't find tun_chr_open() et al. + +So, if you build CPT as standalone, tun/tap will be also standalone. +--- + kernel/Kconfig.openvz | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/kernel/Kconfig.openvz b/kernel/Kconfig.openvz +index 7371679..5cdcdd3 100644 +--- a/kernel/Kconfig.openvz ++++ b/kernel/Kconfig.openvz +@@ -71,6 +71,9 @@ config VZ_CHECKPOINT + tristate "Checkpointing & restoring Virtual Environments" + depends on VE_CALLS && INET + select PM_SLEEP ++ select TUN ++ select VE_ETHDEV ++ select VE_NETDEV + default m + help + This option adds two modules, "cpt" and "rst", which allow +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0073-CPT-fix-shmat-2-ted-segments.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0073-CPT-fix-shmat-2-ted-segments.patch @@ -0,0 +1,463 @@ +From f28668f8d342c3797cb5cc468675e5ed1012aac3 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Sun, 4 May 2008 17:45:04 +0400 +Subject: [PATCH 72/72] CPT: fix shmat(2)'ted segments + +Commit bc56bba8f31bd99f350a5ebfd43d50f411b620c7 aka +"[PATCH] shm: make sysv ipc shared memory use stacked files"... + +It changed number and relationship of "struct file"s associated +with SysV shmem: + +Before: one struct file for each shmem segment + After: one struct file for each shmem segment + + one struct file (different) for each shmat(2) call. + +Obviously checkpointing broke horribly. There aren't any files of second sort +in image and they have to be recreated by hand. + +What code will do: +a) if CPT_OBJ_SYSV_SHM object restored first -- fine, restore as previous kernels did +b) if CPT_VMA_TYPE_SHM restored first -- restore corresponding segment, then do more + or less similar to what do_shmat() does. +c) if shmem segment already was restored, correct refcounting and just do shmat() part + +http://bugzilla.openvz.org/show_bug.cgi?id=850 +--- + include/linux/ipc.h | 20 +++++++++++ + include/linux/shm.h | 25 +++++++++++++ + ipc/shm.c | 28 +-------------- + ipc/util.c | 3 +- + ipc/util.h | 19 ---------- + kernel/cpt/cpt_files.c | 7 ++++ + kernel/cpt/cpt_files.h | 5 +-- + kernel/cpt/cpt_mm.c | 8 +++-- + kernel/cpt/rst_files.c | 2 +- + kernel/cpt/rst_mm.c | 2 +- + kernel/cpt/rst_sysvipc.c | 86 ++++++++++++++++++++++++++++++++++++++++++++- + 11 files changed, 149 insertions(+), 56 deletions(-) + +diff --git a/include/linux/ipc.h b/include/linux/ipc.h +index 408696e..b7ac734 100644 +--- a/include/linux/ipc.h ++++ b/include/linux/ipc.h +@@ -80,8 +80,21 @@ struct ipc_kludge { + #ifdef __KERNEL__ + + #include ++#include ++#include + #include + ++#define IPC_SEM_IDS 0 ++#define IPC_MSG_IDS 1 ++#define IPC_SHM_IDS 2 ++ ++struct ipc_ids { ++ int in_use; ++ unsigned short seq; ++ unsigned short seq_max; ++ struct rw_semaphore rw_mutex; ++ struct idr ipcs_idr; ++}; + #define IPCMNI 32768 /* <= MAX_INT limit for ipc arrays (including sysctl changes) */ + + /* used by in-kernel data structures */ +@@ -100,6 +113,13 @@ struct kern_ipc_perm + void *security; + }; + ++struct kern_ipc_perm *ipc_lock(struct ipc_ids *, int); ++static inline void ipc_unlock(struct kern_ipc_perm *perm) ++{ ++ spin_unlock(&perm->lock); ++ rcu_read_unlock(); ++} ++ + struct ipc_ids; + struct ipc_namespace { + struct kref kref; +diff --git a/include/linux/shm.h b/include/linux/shm.h +index 19fd699..b2c48c4 100644 +--- a/include/linux/shm.h ++++ b/include/linux/shm.h +@@ -75,6 +75,15 @@ struct shm_info { + }; + + #ifdef __KERNEL__ ++struct shm_file_data { ++ int id; ++ struct ipc_namespace *ns; ++ struct file *file; ++ const struct vm_operations_struct *vm_ops; ++}; ++#define shm_file_data(file) (*((struct shm_file_data **)&(file)->private_data)) ++#define shm_ids(ns) (*((ns)->ids[IPC_SHM_IDS])) ++ + struct shmid_kernel /* private to the kernel */ + { + struct kern_ipc_perm shm_perm; +@@ -89,6 +98,20 @@ struct shmid_kernel /* private to the kernel */ + struct user_struct *mlock_user; + }; + ++/* ++ * shm_lock_(check_) routines are called in the paths where the rw_mutex ++ * is not held. ++ */ ++static inline struct shmid_kernel *shm_lock(struct ipc_namespace *ns, int id) ++{ ++ struct kern_ipc_perm *ipcp = ipc_lock(&shm_ids(ns), id); ++ ++ return container_of(ipcp, struct shmid_kernel, shm_perm); ++} ++ ++#define shm_unlock(shp) \ ++ ipc_unlock(&(shp)->shm_perm) ++ + /* shm_mode upper byte flags */ + #define SHM_DEST 01000 /* segment will be destroyed on last detach */ + #define SHM_LOCKED 02000 /* segment will not be swapped */ +@@ -112,6 +135,8 @@ static inline int is_file_shm_hugepages(struct file *file) + + int sysvipc_walk_shm(int (*func)(struct shmid_kernel*, void *), void *arg); + struct file * sysvipc_setup_shm(key_t key, int shmid, size_t size, int shmflg); ++extern const struct file_operations shmem_file_operations; ++extern const struct file_operations shm_file_operations; + + #endif /* __KERNEL__ */ + +diff --git a/ipc/shm.c b/ipc/shm.c +index 14f0cc2..03cf380 100644 +--- a/ipc/shm.c ++++ b/ipc/shm.c +@@ -47,24 +47,10 @@ + + #include "util.h" + +-struct shm_file_data { +- int id; +- struct ipc_namespace *ns; +- struct file *file; +- const struct vm_operations_struct *vm_ops; +-}; +- +-#define shm_file_data(file) (*((struct shm_file_data **)&(file)->private_data)) +- +-static const struct file_operations shm_file_operations; + static struct vm_operations_struct shm_vm_ops; + + static struct ipc_ids init_shm_ids; + +-#define shm_ids(ns) (*((ns)->ids[IPC_SHM_IDS])) +- +-#define shm_unlock(shp) \ +- ipc_unlock(&(shp)->shm_perm) + #define shm_buildid(id, seq) ipc_buildid(id, seq) + + static int newseg(struct ipc_namespace *, struct ipc_params *); +@@ -165,17 +151,6 @@ static inline struct shmid_kernel *shm_lock_check_down( + return container_of(ipcp, struct shmid_kernel, shm_perm); + } + +-/* +- * shm_lock_(check_) routines are called in the paths where the rw_mutex +- * is not held. +- */ +-static inline struct shmid_kernel *shm_lock(struct ipc_namespace *ns, int id) +-{ +- struct kern_ipc_perm *ipcp = ipc_lock(&shm_ids(ns), id); +- +- return container_of(ipcp, struct shmid_kernel, shm_perm); +-} +- + static inline struct shmid_kernel *shm_lock_check(struct ipc_namespace *ns, + int id) + { +@@ -402,12 +377,13 @@ int is_file_shm_hugepages(struct file *file) + return ret; + } + +-static const struct file_operations shm_file_operations = { ++const struct file_operations shm_file_operations = { + .mmap = shm_mmap, + .fsync = shm_fsync, + .release = shm_release, + .get_unmapped_area = shm_get_unmapped_area, + }; ++EXPORT_SYMBOL_GPL(shm_file_operations); + + static struct vm_operations_struct shm_vm_ops = { + .open = shm_open, /* callback for a new vm-area open */ +diff --git a/ipc/util.c b/ipc/util.c +index 50d9838..8e0a7db 100644 +--- a/ipc/util.c ++++ b/ipc/util.c +@@ -278,7 +278,7 @@ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size, int reqi + id = reqid % SEQ_MULTIPLIER; + err = idr_get_new_above(&ids->ipcs_idr, new, id, &id); + if (err || id != (reqid % SEQ_MULTIPLIER)) +- return -1; ++ return -EEXIST; + goto found; + } + +@@ -749,6 +749,7 @@ struct kern_ipc_perm *ipc_lock(struct ipc_ids *ids, int id) + + return out; + } ++EXPORT_SYMBOL_GPL(ipc_lock); + + /** + * ipc_lock_down - Lock an ipc structure with rw_sem held +diff --git a/ipc/util.h b/ipc/util.h +index 711740c..7ddaf0f 100644 +--- a/ipc/util.h ++++ b/ipc/util.h +@@ -28,14 +28,6 @@ void sem_exit_ns(struct ipc_namespace *ns); + void msg_exit_ns(struct ipc_namespace *ns); + void shm_exit_ns(struct ipc_namespace *ns); + +-struct ipc_ids { +- int in_use; +- unsigned short seq; +- unsigned short seq_max; +- struct rw_semaphore rw_mutex; +- struct idr ipcs_idr; +-}; +- + /* + * Structure that holds the parameters needed by the ipc operations + * (see after) +@@ -76,10 +68,6 @@ void __init ipc_init_proc_interface(const char *path, const char *header, + #define ipc_init_proc_interface(path, header, ids, show) do {} while (0) + #endif + +-#define IPC_SEM_IDS 0 +-#define IPC_MSG_IDS 1 +-#define IPC_SHM_IDS 2 +- + #define ipcid_to_idx(id) ((id) % SEQ_MULTIPLIER) + + /* must be called with ids->rw_mutex acquired for writing */ +@@ -115,7 +103,6 @@ void ipc_rcu_putref(void *ptr); + * ipc_lock: called without that lock held + */ + struct kern_ipc_perm *ipc_lock_down(struct ipc_ids *, int); +-struct kern_ipc_perm *ipc_lock(struct ipc_ids *, int); + + void kernel_to_ipc64_perm(struct kern_ipc_perm *in, struct ipc64_perm *out); + void ipc64_perm_to_ipc_perm(struct ipc64_perm *in, struct ipc_perm *out); +@@ -156,12 +143,6 @@ static inline void ipc_lock_by_ptr(struct kern_ipc_perm *perm) + spin_lock(&perm->lock); + } + +-static inline void ipc_unlock(struct kern_ipc_perm *perm) +-{ +- spin_unlock(&perm->lock); +- rcu_read_unlock(); +-} +- + static inline struct kern_ipc_perm *ipc_lock_check_down(struct ipc_ids *ids, + int id) + { +diff --git a/kernel/cpt/cpt_files.c b/kernel/cpt/cpt_files.c +index 6b3885e..fbba10b 100644 +--- a/kernel/cpt/cpt_files.c ++++ b/kernel/cpt/cpt_files.c +@@ -609,6 +609,13 @@ static int dump_content_regular(struct file *file, struct cpt_context *ctx) + return -EINVAL; + + do_read = file->f_op->read; ++ if (file->f_op == &shm_file_operations) { ++ struct shm_file_data *sfd = file->private_data; ++ ++ cpt_dump_content_sysvshm(sfd->file, ctx); ++ ++ return 0; ++ } + if (file->f_op == &shmem_file_operations) { + do_read = file->f_dentry->d_inode->i_fop->read; + cpt_dump_content_sysvshm(file, ctx); +diff --git a/kernel/cpt/cpt_files.h b/kernel/cpt/cpt_files.h +index b08afea..7770ab2 100644 +--- a/kernel/cpt/cpt_files.h ++++ b/kernel/cpt/cpt_files.h +@@ -9,7 +9,8 @@ int cpt_dump_fs_struct(struct cpt_context *ctx); + int cpt_dump_content_sysvshm(struct file *file, struct cpt_context *ctx); + int cpt_dump_content_tty(struct file *file, struct cpt_context *ctx); + int cpt_dump_tty(cpt_object_t *, struct cpt_context *ctx); +-struct file * rst_sysv_shm(loff_t pos, struct cpt_context *ctx); ++struct file * rst_sysv_shm_vma(struct cpt_vma_image *vmai, struct cpt_context *ctx); ++struct file * rst_sysv_shm_itself(loff_t pos, struct cpt_context *ctx); + struct file * rst_open_tty(struct cpt_file_image *fi, struct cpt_inode_image *ii, unsigned flags, struct cpt_context *ctx); + __u32 cpt_tty_fasync(struct file *file, struct cpt_context *ctx); + +@@ -68,5 +69,3 @@ int cpt_verify_overmount(char *path, struct dentry *d, struct vfsmount *mnt, + strcmp(mnt->mnt_sb->s_type->name, "devpts") != 0 && \ + strcmp(mnt->mnt_sb->s_type->name, "proc") != 0 && \ + strcmp(mnt->mnt_sb->s_type->name, "sysfs") != 0) +- +-extern const struct file_operations shmem_file_operations; +diff --git a/kernel/cpt/cpt_mm.c b/kernel/cpt/cpt_mm.c +index 3c462b8..08aefe2 100644 +--- a/kernel/cpt/cpt_mm.c ++++ b/kernel/cpt/cpt_mm.c +@@ -653,10 +653,12 @@ static int dump_one_vma(cpt_object_t *mmobj, + cpt_object_t *obj = lookup_cpt_object(CPT_OBJ_FILE, vma->vm_file, ctx); + if (obj == NULL) BUG(); + filp = obj->o_obj; +- if (filp->f_op && +- filp->f_op->read == NULL && +- filp->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_TMPFS) ++ if (filp->f_op == &shm_file_operations) { ++ struct shm_file_data *sfd = filp->private_data; ++ + v->cpt_type = CPT_VMA_TYPE_SHM; ++ obj = lookup_cpt_object(CPT_OBJ_FILE, sfd->file, ctx); ++ } + v->cpt_file = obj->o_pos; + } + +diff --git a/kernel/cpt/rst_files.c b/kernel/cpt/rst_files.c +index 4b4079c..2b6b767 100644 +--- a/kernel/cpt/rst_files.c ++++ b/kernel/cpt/rst_files.c +@@ -1640,7 +1640,7 @@ int rst_stray_files(struct cpt_context *ctx) + + dprintk_ctx("stray file %Ld\n", sec); + +- file = rst_sysv_shm(sec, ctx); ++ file = rst_sysv_shm_itself(sec, ctx); + + if (IS_ERR(file)) { + eprintk_ctx("rst_stray_files: %ld\n", PTR_ERR(file)); +diff --git a/kernel/cpt/rst_mm.c b/kernel/cpt/rst_mm.c +index 1f1e472..9b9808d 100644 +--- a/kernel/cpt/rst_mm.c ++++ b/kernel/cpt/rst_mm.c +@@ -511,7 +511,7 @@ static int do_rst_vma(struct cpt_vma_image *vmai, loff_t vmapos, loff_t mmpos, s + return PTR_ERR(file); + } + } else if (vmai->cpt_type == CPT_VMA_TYPE_SHM) { +- file = rst_sysv_shm(vmai->cpt_file, ctx); ++ file = rst_sysv_shm_vma(vmai, ctx); + if (IS_ERR(file)) + return PTR_ERR(file); + } +diff --git a/kernel/cpt/rst_sysvipc.c b/kernel/cpt/rst_sysvipc.c +index f3c9afe..8803de5 100644 +--- a/kernel/cpt/rst_sysvipc.c ++++ b/kernel/cpt/rst_sysvipc.c +@@ -131,7 +131,7 @@ static int fixup_shm_data(struct file *file, loff_t pos, loff_t end, + return 0; + } + +-struct file * rst_sysv_shm(loff_t pos, struct cpt_context *ctx) ++struct file * rst_sysv_shm_itself(loff_t pos, struct cpt_context *ctx) + { + struct file *file; + int err; +@@ -156,16 +156,98 @@ struct file * rst_sysv_shm(loff_t pos, struct cpt_context *ctx) + goto err_out; + dpos += u.shmi.cpt_next; + +- file = sysvipc_setup_shm(u.shmi.cpt_key, u.shmi.cpt_id, ++ file = sysvipc_setup_shm(u.shmi.cpt_key, u.shmi.cpt_id, + u.shmi.cpt_segsz, u.shmi.cpt_mode); + if (!IS_ERR(file)) { + err = fixup_shm(file, &u.shmi); + if (err != -EEXIST && dpos < epos) + err = fixup_shm_data(file, dpos, epos, ctx); ++ } else if (IS_ERR(file) && PTR_ERR(file) == -EEXIST) { ++ struct ipc_namespace *ipc_ns = current->nsproxy->ipc_ns; ++ struct shmid_kernel *shp; ++ ++ shp = shm_lock(ipc_ns, u.shmi.cpt_id); ++ BUG_ON(IS_ERR(shp)); ++ get_file(shp->shm_file); ++ file = shp->shm_file; ++ shm_unlock(shp); + } ++ return file; ++ ++err_out: ++ return ERR_PTR(err); ++} ++ ++struct file * rst_sysv_shm_vma(struct cpt_vma_image *vmai, struct cpt_context *ctx) ++{ ++ struct ipc_namespace *ipc_ns = current->nsproxy->ipc_ns; ++ struct file *file; ++ union { ++ struct cpt_file_image fi; ++ struct cpt_inode_image ii; ++ struct cpt_sysvshm_image shmi; ++ } u; ++ struct shmid_kernel *shp; ++ struct shm_file_data *sfd; ++ struct path path; ++ mode_t f_mode; ++ loff_t pos; ++ int err; ++ ++ pos = vmai->cpt_file; ++ file = rst_sysv_shm_itself(pos, ctx); ++ if (IS_ERR(file) && PTR_ERR(file) != -EEXIST) ++ return file; ++ fput(file); ++ ++ err = rst_get_object(CPT_OBJ_FILE, pos, &u.fi, ctx); ++ if (err < 0) ++ goto err_out; ++ pos = u.fi.cpt_inode; ++ err = rst_get_object(CPT_OBJ_INODE, pos, &u.ii, ctx); ++ if (err < 0) ++ goto err_out; ++ err = rst_get_object(CPT_OBJ_SYSV_SHM, pos + u.ii.cpt_hdrlen, &u.shmi, ctx); ++ if (err < 0) ++ goto err_out; ++ ++ shp = shm_lock(ipc_ns, u.shmi.cpt_id); ++ BUG_ON(IS_ERR(shp)); ++ path.dentry = dget(shp->shm_file->f_path.dentry); ++ path.mnt = shp->shm_file->f_path.mnt; ++ shm_unlock(shp); ++ ++ err = -ENOMEM; ++ sfd = kzalloc(sizeof(*sfd), GFP_KERNEL); ++ if (!sfd) ++ goto out_put_dentry; ++ ++ f_mode = 0; ++ if (vmai->cpt_flags & VM_READ) ++ f_mode |= FMODE_READ; ++ if (vmai->cpt_flags & VM_WRITE) ++ f_mode |= FMODE_WRITE; ++ if (vmai->cpt_flags & VM_EXEC) ++ f_mode |= FMODE_EXEC; ++ ++ err = -ENOMEM; ++ file = alloc_file(path.mnt, path.dentry, f_mode, &shm_file_operations); ++ if (!file) ++ goto out_free; ++ ++ file->private_data = sfd; ++ file->f_mapping = shp->shm_file->f_mapping; ++ sfd->id = shp->shm_perm.id; ++ sfd->ns = get_ipc_ns(ipc_ns); ++ sfd->file = shp->shm_file; ++ sfd->vm_ops = NULL; + + return file; + ++out_free: ++ kfree(sfd); ++out_put_dentry: ++ dput(path.dentry); + err_out: + return ERR_PTR(err); + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0108-UBC-account-for-rss-pages.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0108-UBC-account-for-rss-pages.patch @@ -0,0 +1,118 @@ +From 9de272e0bbf4a41408db8a7ef54acf5e5ff7be51 Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Fri, 18 Jul 2008 15:25:42 +0400 +Subject: [PATCH 108/131] UBC account for rss pages + +UBC: show how much page beancounters each UB has + +Essentially, this is the per-UB rss value calculated +(unline physpages and privvmpages) w/o taking sharing +into account. + +With this statistics (shown via /proc/bc/XXX/vmaux:rss) +we can evaluate the portion of pages, that are shared +accross beancounters (i.e. CTs) like this: + +(\sum (bc.rss + bc.tmpfs_respages) - \sum (bc.physpages)) / + (\sum (bc.rss + bc.tmpfs_respages)) + +Bug #114660 +--- + include/bc/beancounter.h | 3 ++- + include/bc/debug.h | 6 ------ + kernel/bc/rss_pages.c | 16 ++++++++++++++++ + kernel/bc/vm_pages.c | 1 + + 4 files changed, 19 insertions(+), 7 deletions(-) + +diff --git a/include/bc/beancounter.h b/include/bc/beancounter.h +index 89fcf20..0b621dc 100644 +--- a/include/bc/beancounter.h ++++ b/include/bc/beancounter.h +@@ -142,6 +142,7 @@ struct page_private { + unsigned long ubp_unused_privvmpages; + unsigned long ubp_tmpfs_respages; + unsigned long ubp_swap_pages; ++ unsigned long ubp_pbcs; + unsigned long long ubp_held_pages; + }; + +@@ -170,7 +171,6 @@ struct ub_percpu_struct { + #ifdef CONFIG_BC_DEBUG_KMEM + long pages_charged; + long vmalloc_charged; +- long pbcs; + #endif + unsigned long sync; + unsigned long sync_done; +@@ -213,6 +213,7 @@ struct user_beancounter + #define ub_tmpfs_respages ppriv.ubp_tmpfs_respages + #define ub_swap_pages ppriv.ubp_swap_pages + #define ub_held_pages ppriv.ubp_held_pages ++#define ub_pbcs ppriv.ubp_pbcs + struct sock_private spriv; + #define ub_rmem_thres spriv.ubp_rmem_thres + #define ub_maxadvmss spriv.ubp_maxadvmss +diff --git a/include/bc/debug.h b/include/bc/debug.h +index 7b1feb6..58c64f3 100644 +--- a/include/bc/debug.h ++++ b/include/bc/debug.h +@@ -91,17 +91,11 @@ struct vm_struct; + ub_percpu_sub(ub, vmalloc_charged, \ + vm->nr_pages); \ + } while (0) +- +-#define inc_pbc_count(ub) ub_percpu_inc(ub, pbcs) +-#define dec_pbc_count(ub) ub_percpu_dec(ub, pbcs) + #else + #define init_cache_counters() do { } while (0) + #define inc_vmalloc_charged(vm, f) do { } while (0) + #define dec_vmalloc_charged(vm) do { } while (0) + +-#define inc_pbc_count(ub) do { } while (0) +-#define dec_pbc_count(ub) do { } while (0) +- + #define ub_free_counters(ub) do { } while (0) + #define ub_kmemcache_free(cachep) do { } while (0) + #endif +diff --git a/kernel/bc/rss_pages.c b/kernel/bc/rss_pages.c +index 391585e..84c4c6d 100644 +--- a/kernel/bc/rss_pages.c ++++ b/kernel/bc/rss_pages.c +@@ -85,6 +85,22 @@ static void inc_held_pages(struct user_beancounter *ub, int value) + } + + /* ++ * ++ and -- beyond are protected with pb_lock ++ */ ++ ++static inline void inc_pbc_count(struct user_beancounter *ub) ++{ ++ for (; ub != NULL; ub = ub->parent) ++ ub->ub_pbcs++; ++} ++ ++static inline void dec_pbc_count(struct user_beancounter *ub) ++{ ++ for (; ub != NULL; ub = ub->parent) ++ ub->ub_pbcs--; ++} ++ ++/* + * Alloc - free + */ + +diff --git a/kernel/bc/vm_pages.c b/kernel/bc/vm_pages.c +index d48f327..124ebf7 100644 +--- a/kernel/bc/vm_pages.c ++++ b/kernel/bc/vm_pages.c +@@ -529,6 +529,7 @@ static int bc_vmaux_show(struct seq_file *f, void *v) + ub->ub_tmpfs_respages); + seq_printf(f, bc_proc_lu_fmt, ub_rnames[UB_SWAPPAGES], + ub->ub_swap_pages); ++ seq_printf(f, bc_proc_lu_fmt, "rss", ub->ub_pbcs); + + seq_printf(f, bc_proc_lu_fmt, "swapin", swap); + seq_printf(f, bc_proc_lu_fmt, "unmap", unmap); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0071-NETFILTER-remove-mismerge-in-mark_source_chains.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0071-NETFILTER-remove-mismerge-in-mark_source_chains.patch @@ -0,0 +1,30 @@ +From c9d0e80b84a8327381ba9f8a09e5248d7b52b851 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Wed, 30 Apr 2008 13:55:27 +0400 +Subject: [PATCH 70/72] NETFILTER: remove mismerge in mark_source_chains() + +--- + net/ipv4/netfilter/ip_tables.c | 7 ------- + 1 files changed, 0 insertions(+), 7 deletions(-) + +diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c +index ca47b8a..c36e32c 100644 +--- a/net/ipv4/netfilter/ip_tables.c ++++ b/net/ipv4/netfilter/ip_tables.c +@@ -506,13 +506,6 @@ mark_source_chains(struct xt_table_info *newinfo, + return 0; + } + +- if (t->verdict < -NF_MAX_VERDICT - 1) { +- duprintf("mark_source_chains: bad " +- "negative verdict (%i)\n", +- t->verdict); +- return 0; +- } +- + /* Return: backtrack through the last + big jump. */ + do { +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0063-CPT-fix-epoll-checkpointing.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0063-CPT-fix-epoll-checkpointing.patch @@ -0,0 +1,112 @@ +From b9f72ff552da04eb5f741f0a7d81c24affa5ce55 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Thu, 10 Apr 2008 18:35:29 +0400 +Subject: [PATCH 63/67] CPT: fix epoll checkpointing + +eventpoll inodes are created via anon_inodes infrastructure which means they +all have the same magic in superblock: ANON_INODE_FS_MAGIC. Filtering epoll +inodes by magic can't work. So, do it by looking at file->f_op. +--- + kernel/cpt/cpt_epoll.c | 2 -- + kernel/cpt/cpt_files.c | 12 ++++-------- + kernel/cpt/cpt_files.h | 1 + + kernel/cpt/cpt_fsmagic.h | 1 - + kernel/cpt/rst_epoll.c | 1 - + 5 files changed, 5 insertions(+), 12 deletions(-) + +diff --git a/kernel/cpt/cpt_epoll.c b/kernel/cpt/cpt_epoll.c +index 68387e2..81d2b98 100644 +--- a/kernel/cpt/cpt_epoll.c ++++ b/kernel/cpt/cpt_epoll.c +@@ -38,8 +38,6 @@ + #include "cpt_fsmagic.h" + #include "cpt_syscalls.h" + +-extern struct file_operations eventpoll_fops; +- + int cpt_dump_epolldev(cpt_object_t *obj, cpt_context_t *ctx) + { + int err = 0; +diff --git a/kernel/cpt/cpt_files.c b/kernel/cpt/cpt_files.c +index 582bda4..6b3885e 100644 +--- a/kernel/cpt/cpt_files.c ++++ b/kernel/cpt/cpt_files.c +@@ -511,7 +511,7 @@ static int dump_one_file(cpt_object_t *obj, struct file *file, cpt_context_t *ct + if (file->f_flags&FASYNC) + v->cpt_fown_fd = cpt_socket_fasync(file, ctx); + } +- if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_EPOLL) { ++ if (file->f_op == &eventpoll_fops) { + v->cpt_priv = file->f_dentry->d_inode->i_ino; + v->cpt_lflags |= CPT_DENTRY_EPOLL; + } +@@ -942,11 +942,7 @@ static int dump_one_inode(struct file *file, struct dentry *d, + !cpt_replaced(d, mnt, ctx)) + dump_it = 1; + if (!S_ISREG(ino->i_mode) && !S_ISDIR(ino->i_mode)) { +- /* One more bug in epoll: invalid inode mode. +- * What a load of crap... +- */ +- if (ino->i_sb->s_magic == FSMAGIC_EPOLL && +- (ino->i_mode & S_IFMT) == 0) ++ if (file->f_op == &eventpoll_fops) + return 0; + dump_it = 1; + } +@@ -1059,7 +1055,7 @@ int cpt_dump_files(struct cpt_context *ctx) + + if ((err = dump_one_file(obj, file, ctx)) != 0) + return err; +- if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_EPOLL) ++ if (file->f_op == &eventpoll_fops) + epoll_nr++; + if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_INOTIFY) + inotify_nr++; +@@ -1070,7 +1066,7 @@ int cpt_dump_files(struct cpt_context *ctx) + cpt_open_section(ctx, CPT_SECT_EPOLL); + for_each_object(obj, CPT_OBJ_FILE) { + struct file *file = obj->o_obj; +- if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_EPOLL) { ++ if (file->f_op == &eventpoll_fops) { + int err; + if ((err = cpt_dump_epolldev(obj, ctx)) != 0) + return err; +diff --git a/kernel/cpt/cpt_files.h b/kernel/cpt/cpt_files.h +index a4cb0fd..b08afea 100644 +--- a/kernel/cpt/cpt_files.h ++++ b/kernel/cpt/cpt_files.h +@@ -37,6 +37,7 @@ int rst_tty_jobcontrol(struct cpt_context *ctx); + void rst_flush_filejobs(struct cpt_context *); + int rst_do_filejobs(struct cpt_context *); + ++extern struct file_operations eventpoll_fops; + int rst_eventpoll(struct cpt_context *); + struct file *cpt_open_epolldev(struct cpt_file_image *fi, + unsigned flags, +diff --git a/kernel/cpt/cpt_fsmagic.h b/kernel/cpt/cpt_fsmagic.h +index 45c4fb8..142e539 100644 +--- a/kernel/cpt/cpt_fsmagic.h ++++ b/kernel/cpt/cpt_fsmagic.h +@@ -5,7 +5,6 @@ + #define FSMAGIC_SOCKFS 0x534F434B + #define FSMAGIC_PFMFS 0xa0b4d889 + #define FSMAGIC_BDEV 0x62646576 +-#define FSMAGIC_EPOLL 0x03111965 + #define FSMAGIC_FUTEX 0x0BAD1DEA + #define FSMAGIC_INOTIFY 0x2BAD1DEA + #define FSMAGIC_MQUEUE 0x19800202 +diff --git a/kernel/cpt/rst_epoll.c b/kernel/cpt/rst_epoll.c +index 913ceab..0ac4cae 100644 +--- a/kernel/cpt/rst_epoll.c ++++ b/kernel/cpt/rst_epoll.c +@@ -39,7 +39,6 @@ + #include "cpt_syscalls.h" + + /* Those funcations are static in fs/eventpoll.c */ +-extern struct file_operations eventpoll_fops; + extern int ep_insert(struct eventpoll *ep, struct epoll_event *event, + struct file *tfile, int fd); + extern struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0074-Linux-2.6.24-ovz005.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0074-Linux-2.6.24-ovz005.patch @@ -0,0 +1,22 @@ +From 483a70883c85acf684ffbd8fa6a4c9bfade878f3 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Thu, 8 May 2008 13:04:01 +0400 +Subject: [PATCH 73/73] Linux 2.6.24-ovz005 + +--- + Makefile | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +Index: kernel/Makefile +=================================================================== +--- kernel.orig/Makefile 2008-11-24 15:59:19.000000000 +0100 ++++ kernel/Makefile 2008-11-24 16:00:18.000000000 +0100 +@@ -3,7 +3,7 @@ + SUBLEVEL = 24 + EXTRAVERSION = .6 + NAME = Err Metey! A Heury Beelge-a Ret! +-VZVERSION = ovz004 ++VZVERSION = ovz005 + + # *DOCUMENTATION* + # To see a list of typical targets execute "make help" --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0096-VE-do-open-check-perm.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0096-VE-do-open-check-perm.patch @@ -0,0 +1,42 @@ +From 91657bd52f0b6e9d1b655bc43c125da3b9f36fe7 Mon Sep 17 00:00:00 2001 +From: Marat Stanichenko +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 096/103] VE do open check perm + +Don't check permissions in do_open if we already have checked them. +We might come into do_open from __blkdev_get which is called from do_open. +This means that we have already passed the previous test get_device_perms_ve() +and allowed an access to device. +So we don't call get_device_perms_ve() twice because we mightn't pass the test. +--- + fs/block_dev.c | 14 ++++++++++---- + 1 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/fs/block_dev.c b/fs/block_dev.c +index 1ed4a29..f1947df 100644 +--- a/fs/block_dev.c ++++ b/fs/block_dev.c +@@ -1128,10 +1128,16 @@ static int do_open(struct block_device *bdev, struct file *file, int for_part) + int ret; + int part; + +- ret = get_device_perms_ve(S_IFBLK, bdev->bd_dev, +- file->f_mode & (FMODE_READ | FMODE_WRITE)); +- if (ret) +- return ret; ++ /* ++ * We don't check permissions if we already have checked them ++ * and come here from __blkdev_get which is called below ++ */ ++ if (!for_part) { ++ ret = get_device_perms_ve(S_IFBLK, bdev->bd_dev, ++ file->f_mode & (FMODE_READ | FMODE_WRITE)); ++ if (ret) ++ return ret; ++ } + + ret = -ENXIO; + file->f_mapping = bdev->bd_inode->i_mapping; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0060-UBC-fix-preempt_enable-placement-in-dcache-accoun.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0060-UBC-fix-preempt_enable-placement-in-dcache-accoun.patch @@ -0,0 +1,34 @@ +From c77d67e020b658888c69f9133850e298b7c3d02e Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 4 Apr 2008 12:39:42 +0400 +Subject: [PATCH 59/67] UBC: fix preempt_enable() placement in dcache accounting + +--- + fs/dcache.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/fs/dcache.c b/fs/dcache.c +index b69a57e..f32cef2 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -231,14 +231,14 @@ kill_it: + ub = dentry->dentry_bc.d_ub; + d_ubsize = dentry->dentry_bc.d_ubsize; + dentry = d_kill(dentry); ++ preempt_disable(); + if (ub_dentry_on) { + uncharge_dcache(ub, d_ubsize); + put_beancounter(ub); + } +- if (dentry) { +- preempt_disable(); ++ if (dentry) + goto repeat; +- } ++ preempt_enable(); + } + + void dput(struct dentry *dentry) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0127-VE-sysctl-add-dymmy-to-pin-kernel.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0127-VE-sysctl-add-dymmy-to-pin-kernel.patch @@ -0,0 +1,72 @@ +From 84612b3e5dc1e92cb0ae275d5cf36689b416a54d Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 18 Jul 2008 15:25:56 +0400 +Subject: [PATCH 127/131] VE sysctl add dymmy to pin kernel + +Add kernel.dummy-pde to prevent invisible /proc/sys/kernel + +This is a mess. + +There are global and VE0-local sysctl trees. + +They are populated on-demand: creating creates necessary directories +if needed, removing removes directories if they become empty. + +It can very well happen that VE0-local tree is empty before first module +registers sysctl. + +Now, if someone instantiates /proc/sys/kernel inode while VE0-local sysctl tree +doesn't contain /proc/sys/kernel, its LPDE will be NULL. + +Now module registers sysctl, proc entry is created in local list, but nobody +cares. Inode is in memory, and lookup and readdir won't find new shiny sysctl, +because they both see LPDE=NULL and thus won't iterate over local list. + +Net effect -- sysctl registered but invisible in /proc + +In case of BUG112482 they're kernel.vzprivrange and kernel.ve_allow_kthreads . + +One solution is to make sure that /proc/sys/kernel exists in both trees before +first register. But we can't just add directory -- first "service vz stop" can +remove it due to garbage-collecting nature of sysctl removal and situation will +reappear. + +So, add dummy kernel/.dummy-pde which nobody removes. + +Bug #112482 +--- + kernel/ve/veowner.c | 13 +++++++++++++ + 1 files changed, 13 insertions(+), 0 deletions(-) + +diff --git a/kernel/ve/veowner.c b/kernel/ve/veowner.c +index cee5765..172c9e5 100644 +--- a/kernel/ve/veowner.c ++++ b/kernel/ve/veowner.c +@@ -186,11 +186,24 @@ static ctl_table vz_fs_table[] = { + }, + { 0 } + }; ++static int dummy_pde_data = 0; ++static ctl_table dummy_kern_table[] = { ++ { ++ .ctl_name = 23571113, ++ .procname = ".dummy-pde", ++ .data = &dummy_pde_data, ++ .maxlen = sizeof(int), ++ .mode = 0400, ++ .proc_handler = proc_dointvec, ++ }, ++ {} ++}; + static ctl_table root_table2[] = { + #ifdef CONFIG_INET + {CTL_NET, "net", NULL, 0, 0555, vz_net_table}, + #endif + {CTL_FS, "fs", NULL, 0, 0555, vz_fs_table}, ++ {CTL_KERN, "kernel", NULL, 0, 0555, dummy_kern_table}, + { 0 } + }; + int prepare_sysctl(void) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0136-VE-NETLINK-fix-lookup-check.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0136-VE-NETLINK-fix-lookup-check.patch @@ -0,0 +1,36 @@ +From b0ae571e4859bd84e292e957d5e91762c918a647 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 6 Jun 2008 19:01:31 +0400 +Subject: [PATCH] VE NETLINK fix lookup check + +netlink_unicast() is done in init_net context because +a) rtnl socket is bound to init_net, +b) kernel-space socket is successfully looked up by any VE, +c) rtnl is kernel-spase socket. +which is b-r-o-k-e-n, because e.g. just about any manipulation with +netdevices via netlink will be projected onto VE0. + +Fix (after per-netns rtnl socket patches) +http://bugzilla.openvz.org/show_bug.cgi?id=905 +--- + net/netlink/af_netlink.c | 4 +--- + 1 files changed, 1 insertions(+), 3 deletions(-) + +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index ad02fab..4cb562d 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -210,9 +210,7 @@ static __inline__ struct sock *netlink_lookup(struct net *net, int protocol, u32 + read_lock(&nl_table_lock); + head = nl_pid_hashfn(hash, pid); + sk_for_each(sk, node, head) { +- /* VEs should find sockets, created by kernel */ +- if (nlk_sk(sk)->pid == pid && (netlink_is_kernel(sk) || +- ve_accessible_strict(sk->owner_env, get_exec_env()))) { ++ if (nlk_sk(sk)->pid == pid && sk->sk_net == net) { + sock_hold(sk); + goto found; + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0051-CPT-Add-support-for-netdevice-hardware-addresses.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0051-CPT-Add-support-for-netdevice-hardware-addresses.patch @@ -0,0 +1,223 @@ +From bbd642a14f3281af16b0280afcf23c583531bd8b Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Tue, 25 Mar 2008 18:50:22 +0300 +Subject: [PATCH 50/67] CPT: Add support for netdevice hardware addresses + +In current implementation netdevice hardware (MAC) address is not saved, so +devices like tap will have different MAC address after restore. This will +lead to creation of new local IPv6 address based on MAC address. + +This patch allows to save/restore hardware addresses on all netdevices. + +Also this patch changes cpt image version. +This is done because of following code we have now: + + err = rst_get_object(CPT_OBJ_NET_DEVICE, sec, &di, ctx); + if (err) + return err; + + if (di.cpt_next > sizeof(di)) { + err = rst_restore_tuntap(sec, &di, ctx); + if (err) + return err; + } + +It was supposed that we will have only netdevice image or netdevice image and +tuntap image. + +With new code it will be possible to have netdevice and hwaddr image, so old +kernel will consider hwaddr image as tuntap image. And will return -EINVAL +while reading this image. +So, migration to old kernel is prohibited, just to be sure that sensible error +will be returned in this case. + +Bug #96040 +--- + include/linux/cpt_image.h | 12 +++++++++++ + kernel/cpt/cpt_net.c | 14 ++++++++++++ + kernel/cpt/rst_net.c | 49 +++++++++++++++++++++++++++++++++++++++++--- + 3 files changed, 71 insertions(+), 4 deletions(-) + +diff --git a/include/linux/cpt_image.h b/include/linux/cpt_image.h +index 731346c..20f23b4 100644 +--- a/include/linux/cpt_image.h ++++ b/include/linux/cpt_image.h +@@ -96,6 +96,7 @@ enum _cpt_object_type + CPT_OBJ_INOTIFY_EVENT, + CPT_OBJ_TASK_AUX, + CPT_OBJ_NET_TUNTAP, ++ CPT_OBJ_NET_HWADDR, + }; + + #define CPT_ALIGN(n) (((n)+7)&~7) +@@ -109,8 +110,10 @@ struct cpt_major_hdr + #define CPT_VERSION_8 0 + #define CPT_VERSION_9 0x100 + #define CPT_VERSION_9_1 0x101 ++#define CPT_VERSION_9_2 0x102 + #define CPT_VERSION_16 0x200 + #define CPT_VERSION_18 0x300 ++#define CPT_VERSION_18_1 0x301 + #define CPT_VERSION_20 0x400 + #define CPT_VERSION_24 0x500 + __u16 cpt_os_arch; /* Architecture */ +@@ -1501,6 +1504,15 @@ struct cpt_tuntap_image { + __u32 cpt_net_filter[2]; + } __attribute__ ((aligned (8))); + ++struct cpt_hwaddr_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u8 cpt_dev_addr[32]; ++} __attribute__ ((aligned (8))); ++ + struct cpt_ifaddr_image { + __u64 cpt_next; + __u32 cpt_object; +diff --git a/kernel/cpt/cpt_net.c b/kernel/cpt/cpt_net.c +index e3a73f4..4e3dcec 100644 +--- a/kernel/cpt/cpt_net.c ++++ b/kernel/cpt/cpt_net.c +@@ -86,6 +86,7 @@ int cpt_dump_link(struct cpt_context * ctx) + cpt_open_section(ctx, CPT_SECT_NET_DEVICE); + for_each_netdev(net, dev) { + struct cpt_netdev_image v; ++ struct cpt_hwaddr_image hw; + loff_t saved_obj; + + cpt_open_object(NULL, ctx); +@@ -101,7 +102,20 @@ int cpt_dump_link(struct cpt_context * ctx) + ctx->write(&v, sizeof(v), ctx); + + cpt_push_object(&saved_obj, ctx); ++ + cpt_dump_tuntap(dev, ctx); ++ ++ /* Dump hardware address */ ++ cpt_open_object(NULL, ctx); ++ hw.cpt_next = CPT_NULL; ++ hw.cpt_object = CPT_OBJ_NET_HWADDR; ++ hw.cpt_hdrlen = sizeof(hw); ++ hw.cpt_content = CPT_CONTENT_VOID; ++ BUG_ON(sizeof(hw.cpt_dev_addr) != sizeof(dev->dev_addr)); ++ memcpy(hw.cpt_dev_addr, dev->dev_addr, sizeof(hw.cpt_dev_addr)); ++ ctx->write(&hw, sizeof(hw), ctx); ++ cpt_close_object(ctx); ++ + cpt_pop_object(&saved_obj, ctx); + + cpt_close_object(ctx); +diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c +index 934da78..2703800 100644 +--- a/kernel/cpt/rst_net.c ++++ b/kernel/cpt/rst_net.c +@@ -301,7 +301,7 @@ int rst_resume_network(struct cpt_context *ctx) + } + + /* We do not restore skb queue, just reinit it */ +-static int rst_restore_tuntap(loff_t pos, struct cpt_netdev_image *di, ++static int rst_restore_tuntap(loff_t start, struct cpt_netdev_image *di, + struct cpt_context *ctx) + { + int err = -ENODEV; +@@ -310,12 +310,14 @@ static int rst_restore_tuntap(loff_t pos, struct cpt_netdev_image *di, + struct net_device *dev; + struct file *bind_file = NULL; + struct tun_struct *tun; ++ loff_t pos; + +- pos += di->cpt_hdrlen; ++ pos = start + di->cpt_hdrlen; + err = rst_get_object(CPT_OBJ_NET_TUNTAP, pos, &ti, ctx); + if (err) + return err; + ++ pos += ti.cpt_next; + if (ti.cpt_bindfile) { + bind_file = rst_file(ti.cpt_bindfile, -1, ctx); + if (IS_ERR(bind_file)) { +@@ -353,6 +355,17 @@ static int rst_restore_tuntap(loff_t pos, struct cpt_netdev_image *di, + eprintk_ctx("failed to register tun/tap net device\n"); + goto out; + } ++ if (pos < start + di->cpt_next) { ++ struct cpt_hwaddr_image hw; ++ /* Restore hardware address */ ++ err = rst_get_object(CPT_OBJ_NET_HWADDR, pos, ++ &hw, ctx); ++ if (err) ++ goto out; ++ BUG_ON(sizeof(hw.cpt_dev_addr) != sizeof(dev->dev_addr)); ++ memcpy(dev->dev_addr, hw.cpt_dev_addr, ++ sizeof(hw.cpt_dev_addr)); ++ } + list_add(&tun->list, &tun_dev_list); + + bind_file->private_data = tun; +@@ -389,16 +402,28 @@ int rst_restore_netdev(struct cpt_context *ctx) + endsec = sec + h.cpt_next; + sec += h.cpt_hdrlen; + while (sec < endsec) { +- int err; ++ loff_t pos; + struct net_device *dev_new; + err = rst_get_object(CPT_OBJ_NET_DEVICE, sec, &di, ctx); + if (err) + return err; + ++ pos = sec + di.cpt_hdrlen; + if (di.cpt_next > sizeof(di)) { +- err = rst_restore_tuntap(sec, &di, ctx); ++ struct cpt_object_hdr hdr; ++ err = ctx->pread(&hdr, sizeof(struct cpt_object_hdr), ++ ctx, sec + di.cpt_hdrlen); + if (err) + return err; ++ if (hdr.cpt_object == CPT_OBJ_NET_TUNTAP) { ++ err = rst_restore_tuntap(sec, &di, ctx); ++ if (err) { ++ eprintk_ctx("restore tuntap %s: %d\n", ++ di.cpt_name, err); ++ return err; ++ } ++ pos += hdr.cpt_next; ++ } + } + + rtnl_lock(); +@@ -437,6 +462,19 @@ int rst_restore_netdev(struct cpt_context *ctx) + if (err) + eprintk_ctx("dev_change_flags err: %d\n", err); + } ++ if (pos < sec + di.cpt_next) { ++ struct cpt_hwaddr_image hw; ++ /* Restore hardware address */ ++ err = rst_get_object(CPT_OBJ_NET_HWADDR, pos, ++ &hw, ctx); ++ if (err) ++ goto out; ++ BUG_ON(sizeof(hw.cpt_dev_addr) != ++ sizeof(dev->dev_addr)); ++ memcpy(dev->dev_addr, hw.cpt_dev_addr, ++ sizeof(hw.cpt_dev_addr)); ++ pos += hw.cpt_next; ++ } + } else { + eprintk_ctx("unknown interface 2 %s\n", di.cpt_name); + } +@@ -444,6 +482,9 @@ int rst_restore_netdev(struct cpt_context *ctx) + sec += di.cpt_next; + } + return 0; ++out: ++ rtnl_unlock(); ++ return err; + } + + static int dumpfn(void *arg) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0117-UBC-irq-sequence-fix.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0117-UBC-irq-sequence-fix.patch @@ -0,0 +1,29 @@ +From ed9efe4cf895f9bc6b66de37830383207bd90302 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:49 +0400 +Subject: [PATCH 117/131] UBC irq sequence fix + +fix irq enable/disable sequence in case CONFIG_BEANCOUNTERS=n +http://bugzilla.openvz.org/show_bug.cgi?id=433 +--- + kernel/pid.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/kernel/pid.c b/kernel/pid.c +index 225d221..e26509f 100644 +--- a/kernel/pid.c ++++ b/kernel/pid.c +@@ -312,9 +312,9 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t vpid) + for (type = 0; type < PIDTYPE_MAX; ++type) + INIT_HLIST_HEAD(&pid->tasks[type]); + ++ local_irq_disable(); + #ifdef CONFIG_BEANCOUNTERS + ub = get_exec_ub(); +- local_irq_disable(); + if (ub_kmemsize_charge(ub, ns->pid_cachep->objuse, UB_HARD)) + goto out_enable; + pid->ub = get_beancounter(ub); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0083-CPT-inotify-on-symlink.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0083-CPT-inotify-on-symlink.patch @@ -0,0 +1,55 @@ +From a984380ffcba9d10f107d318158427f2eea50900 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:48 +0400 +Subject: [PATCH 083/103] CPT inotify on symlink + +Inside VE file /etc/mtab is a symlink to /proc/mounts. +FreeNX server with KDE creates inotify on /etc/mtab file. +To restore such inotify we need to obtain dentry with path_lookup() and +restore inotify on it. + +Bug #96464 +--- + kernel/cpt/rst_files.c | 25 ++++++++++++++++++++++++- + 1 files changed, 24 insertions(+), 1 deletions(-) + +diff --git a/kernel/cpt/rst_files.c b/kernel/cpt/rst_files.c +index 579f9b7..fd29b60 100644 +--- a/kernel/cpt/rst_files.c ++++ b/kernel/cpt/rst_files.c +@@ -1215,8 +1215,31 @@ int cpt_get_dentry(struct dentry **dp, struct vfsmount **mp, + return err; + + file = rst_file(*pos, -2, ctx); +- if (IS_ERR(file)) ++ if (IS_ERR(file)) { ++ if (PTR_ERR(file) == -EINVAL && S_ISLNK(fi.cpt_i_mode)) { ++ /* One special case: inotify on symlink */ ++ struct nameidata nd; ++ __u8 *name = NULL; ++ ++ if (fi.cpt_next > fi.cpt_hdrlen) ++ name = rst_get_name(*pos + sizeof(fi), ctx); ++ if (!name) { ++ eprintk_ctx("can't get name for file\n"); ++ return -EINVAL; ++ } ++ if ((err = path_lookup(name, 0, &nd)) != 0) { ++ eprintk_ctx("path_lookup %s: %d\n", name, err); ++ rst_put_name(name, ctx); ++ return -EINVAL; ++ } ++ *dp = nd.dentry; ++ *mp = nd.mnt; ++ *pos += fi.cpt_next; ++ rst_put_name(name, ctx); ++ return 0; ++ } + return PTR_ERR(file); ++ } + + *dp = dget(file->f_dentry); + *mp = mntget(file->f_vfsmnt); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0123-VE-NFS-lockd-without-ve.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0123-VE-NFS-lockd-without-ve.patch @@ -0,0 +1,28 @@ +From f0601527973500793e52950c3091a542adafd9a5 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:52 +0400 +Subject: [PATCH 123/131] VE NFS lockd without ve + +fix macro in ve_nfs.h when CONFIG_VE=n +--- + include/linux/ve_nfs.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/linux/ve_nfs.h b/include/linux/ve_nfs.h +index 9f2b4f1..74ba0cd 100644 +--- a/include/linux/ve_nfs.h ++++ b/include/linux/ve_nfs.h +@@ -20,8 +20,8 @@ + #define nlmsvc_users NFS_CTX_FIELD(nlmsvc_users) + #define nlmsvc_pid NFS_CTX_FIELD(nlmsvc_pid) + #else +-#define nlmsvc_grace_period _nlmsvc_timeout +-#define nlmsvc_timeout _nlmsvc_grace_period ++#define nlmsvc_grace_period _nlmsvc_grace_period ++#define nlmsvc_users _nlmsvc_users + #define nlmsvc_pid _nlmsvc_pid + #define nlmsvc_timeout _nlmsvc_timeout + #endif +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0115-UBC-cfq-bc-wait-statistics.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0115-UBC-cfq-bc-wait-statistics.patch @@ -0,0 +1,127 @@ +From b9784922c8bcc65457ce5c5dc0ced4f6d5654f39 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:47 +0400 +Subject: [PATCH 115/131] UBC cfq bc wait statistics + Summarize per (bc, device) pair delays between bc enqueue and activation. + show in /proc/bc//ioprio_queues total wait time in milliseconds. + +--- + include/linux/cfq-iosched.h | 6 ++++++ + kernel/bc/io_prio.c | 42 ++++++++++++++++++++++++++++++++++++++++-- + 2 files changed, 46 insertions(+), 2 deletions(-) + +diff --git a/include/linux/cfq-iosched.h b/include/linux/cfq-iosched.h +index 69c8943..f43f5eb 100644 +--- a/include/linux/cfq-iosched.h ++++ b/include/linux/cfq-iosched.h +@@ -50,6 +50,12 @@ struct cfq_bc_data { + */ + struct cfq_queue *async_cfqq[2][CFQ_PRIO_LISTS]; + struct cfq_queue *async_idle_cfqq; ++ ++ /* write under cfqd->queue->request_queue_lock */ ++ seqcount_t stat_lock; ++ /* summarize delays between enqueue and activation. */ ++ unsigned long wait_time; ++ unsigned long wait_start; + }; + + /* +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index 74202fa..8c06a0d 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -183,6 +183,34 @@ static inline int bc_empty(struct cfq_bc_data *cfq_bc) + return 0; + } + ++static void bc_wait_start(struct cfq_bc_data *cfq_bc, unsigned long now) ++{ ++ write_seqcount_begin(&cfq_bc->stat_lock); ++ cfq_bc->wait_start = now; ++ write_seqcount_end(&cfq_bc->stat_lock); ++} ++ ++static void bc_wait_stop(struct cfq_bc_data *cfq_bc, unsigned long now) ++{ ++ write_seqcount_begin(&cfq_bc->stat_lock); ++ cfq_bc->wait_time += now - cfq_bc->wait_start; ++ cfq_bc->wait_start = 0; ++ write_seqcount_end(&cfq_bc->stat_lock); ++} ++ ++static unsigned int bc_wait_time(struct cfq_bc_data *cfq_bc, unsigned long now) ++{ ++ unsigned long res; ++ unsigned seq; ++ ++ do { ++ seq = read_seqcount_begin(&cfq_bc->stat_lock); ++ res = cfq_bc->wait_time + now - (cfq_bc->wait_start ?: now); ++ } while (read_seqcount_retry(&cfq_bc->stat_lock, seq)); ++ ++ return jiffies_to_msecs(res); ++} ++ + /* return true if a iotime after b, like time_after */ + static int bc_iotime_after(unsigned long a, unsigned long b) + { +@@ -229,6 +257,9 @@ static void bc_enqueue(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) + cfq_bc->cfq_bc_iotime = position; + + bc_insert(cfqd, cfq_bc); ++ ++ if (cfq_bc != cfqd->active_cfq_bc) ++ bc_wait_start(cfq_bc, jiffies); + } + + static void bc_dequeue(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) +@@ -269,6 +300,9 @@ static inline void bc_set_active(struct cfq_data *cfqd) + return; + } + ++ if (cfq_bc && cfq_bc->rqnum) ++ bc_wait_start(cfq_bc, now); ++ + /* peek first bc from queue */ + cfq_bc = rb_entry(rb_first(&cfqd->cfq_bc_queue), + struct cfq_bc_data, cfq_bc_node); +@@ -280,6 +314,8 @@ static inline void bc_set_active(struct cfq_data *cfqd) + cfqd->active_cfq_bc = cfq_bc; + cfqd->slice_begin = now; + cfqd->slice_end = now + cfqd->cfq_ub_slice; ++ ++ bc_wait_stop(cfq_bc, now); + } + + void bc_schedule_active(struct cfq_data *cfqd) +@@ -375,6 +411,7 @@ static int bc_ioprio_queue_show(struct seq_file *f, void *v) + { + struct user_beancounter *bc; + struct cfq_bc_data *cfq_bc; ++ unsigned long now = jiffies; + + bc = seq_beancounter(f); + +@@ -383,7 +420,7 @@ static int bc_ioprio_queue_show(struct seq_file *f, void *v) + struct cfq_data *cfqd; + + cfqd = cfq_bc->cfqd; +- seq_printf(f, "\t%-10s%6lu %c%c\n", ++ seq_printf(f, "\t%-10s%6lu %c%c %10u\n", + /* + * this per-bc -> queue-data -> queue -> device + * access is safe w/o additional locks, since +@@ -393,7 +430,8 @@ static int bc_ioprio_queue_show(struct seq_file *f, void *v) + kobject_name(cfqd->queue->kobj.parent), + cfq_bc->rqnum, + cfq_bc->on_dispatch ? 'D' : ' ', +- cfqd->active_cfq_bc == cfq_bc ? 'A' : ' '); ++ cfqd->active_cfq_bc == cfq_bc ? 'A' : ' ', ++ bc_wait_time(cfq_bc, now)); + } + read_unlock_irq(&bc->iopriv.cfq_bc_list_lock); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0129-VE-veinfo-from-venet.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0129-VE-veinfo-from-venet.patch @@ -0,0 +1,138 @@ +From d4abc6686ac67aa51ff8a78ac3097667affa0c8f Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:57 +0400 +Subject: [PATCH 129/131] VE veinfo from venet + venet part of VE-veinfo-to-vzmon patch + +--- + drivers/net/venet_core.c | 78 ++-------------------------------------------- + 1 files changed, 3 insertions(+), 75 deletions(-) + +diff --git a/drivers/net/venet_core.c b/drivers/net/venet_core.c +index 8355627..7c718d8 100644 +--- a/drivers/net/venet_core.c ++++ b/drivers/net/venet_core.c +@@ -444,15 +444,10 @@ static void venet_setup(struct net_device *dev) + } + + #ifdef CONFIG_PROC_FS +-static int veinfo_seq_show(struct seq_file *m, void *v) ++static void veaddr_seq_print(struct seq_file *m, struct ve_struct *ve) + { +- struct ve_struct *ve; + struct ip_entry_struct *entry; + +- ve = list_entry((struct list_head *)v, struct ve_struct, ve_list); +- +- seq_printf(m, "%10u %5u %5u", ve->veid, +- ve->class_id, atomic_read(&ve->pcounter)); + read_lock(&veip_hash_lock); + if (ve->veip == NULL) + goto unlock; +@@ -470,69 +465,8 @@ static int veinfo_seq_show(struct seq_file *m, void *v) + } + unlock: + read_unlock(&veip_hash_lock); +- seq_putc(m, '\n'); +- return 0; + } + +-static void *ve_seq_start(struct seq_file *m, loff_t *pos) +-{ +- struct ve_struct *curve; +- struct list_head *entry; +- loff_t l; +- +- curve = get_exec_env(); +- read_lock(&ve_list_lock); +- if (!ve_is_super(curve)) { +- if (*pos != 0) +- return NULL; +- return curve; +- } +- +- l = *pos; +- list_for_each(entry, &ve_list_head) { +- if (l == 0) +- return entry; +- l--; +- } +- return NULL; +-} +- +-static void *ve_seq_next(struct seq_file *m, void *v, loff_t *pos) +-{ +- struct list_head *entry; +- +- entry = (struct list_head *)v; +- if (!ve_is_super(get_exec_env())) +- return NULL; +- (*pos)++; +- return entry->next == &ve_list_head ? NULL : entry->next; +-} +- +-static void ve_seq_stop(struct seq_file *m, void *v) +-{ +- read_unlock(&ve_list_lock); +-} +- +- +-static struct seq_operations veinfo_seq_op = { +- .start = ve_seq_start, +- .next = ve_seq_next, +- .stop = ve_seq_stop, +- .show = veinfo_seq_show, +-}; +- +-static int veinfo_open(struct inode *inode, struct file *file) +-{ +- return seq_open(file, &veinfo_seq_op); +-} +- +-static struct file_operations proc_veinfo_operations = { +- .open = veinfo_open, +- .read = seq_read, +- .llseek = seq_lseek, +- .release = seq_release, +-}; +- + static void *veip_seq_start(struct seq_file *m, loff_t *pos) + { + loff_t l; +@@ -775,13 +709,6 @@ __init int venet_init(void) + return err; + + #ifdef CONFIG_PROC_FS +- de = create_proc_glob_entry_mod("vz/veinfo", +- S_IFREG|S_IRUSR, NULL, THIS_MODULE); +- if (de) +- de->proc_fops = &proc_veinfo_operations; +- else +- printk(KERN_WARNING "venet: can't make veinfo proc entry\n"); +- + de = create_proc_entry_mod("vz/veip", + S_IFREG|S_IRUSR, NULL, THIS_MODULE); + if (de) +@@ -792,17 +719,18 @@ __init int venet_init(void) + + ve_hook_register(VE_SS_CHAIN, &venet_ve_hook); + vzioctl_register(&venetcalls); ++ vzmon_register_veaddr_print_cb(veaddr_seq_print); + return 0; + } + + __exit void venet_exit(void) + { ++ vzmon_unregister_veaddr_print_cb(veaddr_seq_print); + vzioctl_unregister(&venetcalls); + ve_hook_unregister(&venet_ve_hook); + + #ifdef CONFIG_PROC_FS + remove_proc_entry("vz/veip", NULL); +- remove_proc_entry("vz/veinfo", NULL); + #endif + venet_stop(get_ve0()); + veip_cleanup(); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0151-MS-NETNS-Fix-race-between-put_net-and-netlink_kern.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0151-MS-NETNS-Fix-race-between-put_net-and-netlink_kern.patch @@ -0,0 +1,170 @@ +From 1f244a7b4f67fed7ca58f70ba73757af770757bf Mon Sep 17 00:00:00 2001 +From: Pavel Emelyanov +Date: Wed, 30 Jan 2008 19:31:06 -0800 +Subject: [PATCH] MS NETNS Fix race between put_net() and netlink_kernel_create() + +mainstream commit 23fe18669e7fdaf5b229747858d943a723124e2e + +The comment about "race free view of the set of network +namespaces" was a bit hasty. Look (there even can be only +one CPU, as discovered by Alexey Dobriyan and Denis Lunev): + +put_net() + if (atomic_dec_and_test(&net->refcnt)) + /* true */ + __put_net(net); + queue_work(...); + +/* + * note: the net now has refcnt 0, but still in + * the global list of net namespaces + */ + +== re-schedule == + +register_pernet_subsys(&some_ops); + register_pernet_operations(&some_ops); + (*some_ops)->init(net); + /* + * we call netlink_kernel_create() here + * in some places + */ + netlink_kernel_create(); + sk_alloc(); + get_net(net); /* refcnt = 1 */ + /* + * now we drop the net refcount not to + * block the net namespace exit in the + * future (or this can be done on the + * error path) + */ + put_net(sk->sk_net); + if (atomic_dec_and_test(&...)) + /* + * true. BOOOM! The net is + * scheduled for release twice + */ + +When thinking on this problem, I decided, that getting and +putting the net in init callback is wrong. If some init +callback needs to have a refcount-less reference on the struct +net, _it_ has to be careful himself, rather than relying on +the infrastructure to handle this correctly. + +In case of netlink_kernel_create(), the problem is that the +sk_alloc() gets the given namespace, but passing the info +that we don't want to get it inside this call is too heavy. + +Instead, I propose to crate the socket inside an init_net +namespace and then re-attach it to the desired one right +after the socket is created. + +After doing this, we also have to be careful on error paths +not to drop the reference on the namespace, we didn't get +the one on. + +Signed-off-by: Pavel Emelyanov +Acked-by: Denis Lunev +Signed-off-by: David S. Miller +--- + net/netlink/af_netlink.c | 52 +++++++++++++++++++++++++++++---------------- + 1 files changed, 33 insertions(+), 19 deletions(-) + +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index 716c31d..b548ab4 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -1348,6 +1348,22 @@ static void netlink_data_ready(struct sock *sk, int len) + * queueing. + */ + ++static void __netlink_release(struct sock *sk) ++{ ++ /* ++ * Last sock_put should drop referrence to sk->sk_net. It has already ++ * been dropped in netlink_kernel_create. Taking referrence to stopping ++ * namespace is not an option. ++ * Take referrence to a socket to remove it from netlink lookup table ++ * _alive_ and after that destroy it in the context of init_net. ++ */ ++ ++ sock_hold(sk); ++ sock_release(sk->sk_socket); ++ sk->sk_net = get_net(&init_net); ++ sock_put(sk); ++} ++ + struct sock * + netlink_kernel_create(struct net *net, int unit, unsigned int groups, + void (*input)(struct sk_buff *skb), +@@ -1366,8 +1382,18 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups, + if (sock_create_lite(PF_NETLINK, SOCK_DGRAM, unit, &sock)) + return NULL; + +- if (__netlink_create(net, sock, cb_mutex, unit) < 0) +- goto out_sock_release; ++ /* ++ * We have to just have a reference on the net from sk, but don't ++ * get_net it. Besides, we cannot get and then put the net here. ++ * So we create one inside init_net and the move it to net. ++ */ ++ ++ if (__netlink_create(&init_net, sock, cb_mutex, unit) < 0) ++ goto out_sock_release_nosk; ++ ++ sk = sock->sk; ++ put_net(sk->sk_net); ++ sk->sk_net = net; + + if (groups < 32) + groups = 32; +@@ -1376,7 +1402,6 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups, + if (!listeners) + goto out_sock_release; + +- sk = sock->sk; + sk->sk_data_ready = netlink_data_ready; + if (input) + nlk_sk(sk)->netlink_rcv = input; +@@ -1399,14 +1424,14 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups, + nl_table[unit].registered++; + } + netlink_table_ungrab(); +- +- /* Do not hold an extra referrence to a namespace as this socket is +- * internal to a namespace and does not prevent it to stop. */ +- put_net(net); + return sk; + + out_sock_release: + kfree(listeners); ++ __netlink_release(sk); ++ return NULL; ++ ++out_sock_release_nosk: + sock_release(sock); + return NULL; + } +@@ -1418,18 +1443,7 @@ netlink_kernel_release(struct sock *sk) + if (sk == NULL || sk->sk_socket == NULL) + return; + +- /* +- * Last sock_put should drop referrence to sk->sk_net. It has already +- * been dropped in netlink_kernel_create. Taking referrence to stopping +- * namespace is not an option. +- * Take referrence to a socket to remove it from netlink lookup table +- * _alive_ and after that destroy it in the context of init_net. +- */ +- sock_hold(sk); +- sock_release(sk->sk_socket); +- +- sk->sk_net = get_net(&init_net); +- sock_put(sk); ++ __netlink_release(sk); + } + EXPORT_SYMBOL(netlink_kernel_release); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0092-UBC-release-udp-once.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0092-UBC-release-udp-once.patch @@ -0,0 +1,31 @@ +From e01cb0998c6c084e1aa2a81e7837d434ba1ec9d8 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 092/103] UBC release udp once + +The socket resided in UB space waiting queue could be released. In this +case ub_snd_wakeup running on the another CPU could hold/release that +socket effectively hitting 0 refcounter second time. + +Bug #112170 +--- + net/socket.c | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/net/socket.c b/net/socket.c +index 6625730..fbeafc6 100644 +--- a/net/socket.c ++++ b/net/socket.c +@@ -513,6 +513,9 @@ const struct file_operations bad_sock_fops = { + + void sock_release(struct socket *sock) + { ++ if (sock->sk) ++ ub_sock_sndqueuedel(sock->sk); ++ + if (sock->ops) { + struct module *owner = sock->ops->owner; + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0015-NETFILTER-fixup-net.netfilter-sysctl-data-for-VE0-t.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0015-NETFILTER-fixup-net.netfilter-sysctl-data-for-VE0-t.patch @@ -0,0 +1,57 @@ +From c3c7fb30af165743ac4c6418af3ec85324971bbe Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 7 Mar 2008 17:56:41 +0300 +Subject: [PATCH 15/48] NETFILTER: fixup net.netfilter sysctl data for VE0 too + +They were pointing to usual mainline variables, not VE0's +and, thus, e.g, net.netfilter.nf_conntrack_count was always +reporting 0. +--- + net/netfilter/nf_conntrack_standalone.c | 23 ++++++++++------------- + 1 files changed, 10 insertions(+), 13 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c +index fb5e4c9..1f33841 100644 +--- a/net/netfilter/nf_conntrack_standalone.c ++++ b/net/netfilter/nf_conntrack_standalone.c +@@ -453,19 +453,15 @@ EXPORT_SYMBOL_GPL(nf_ct_log_invalid); + #if defined(CONFIG_SYSCTL) && defined(CONFIG_VE_IPTABLES) + static int nf_conntrack_init_ve_sysctl(struct ve_struct *ve) + { +- if (ve_is_super(ve)) { +- ve_nf_ct_net_table = nf_ct_net_table; +- ve_nf_ct_netfilter_table = nf_ct_netfilter_table; +- ve_nf_ct_sysctl_table = nf_ct_sysctl_table; +- ve_nf_ct_sysctl_header = register_sysctl_table(ve_nf_ct_net_table); +- if (!ve_nf_ct_sysctl_header) +- return -ENOMEM; +- return 0; +- } ++ ve_nf_ct_net_table = nf_ct_net_table; ++ ve_nf_ct_netfilter_table = nf_ct_netfilter_table; ++ ve_nf_ct_sysctl_table = nf_ct_sysctl_table; + +- ve_nf_ct_net_table = clone_sysctl_template(nf_ct_net_table); +- if (ve_nf_ct_net_table == NULL) +- goto out; ++ if (!ve_is_super(ve)) { ++ ve_nf_ct_net_table = clone_sysctl_template(nf_ct_net_table); ++ if (ve_nf_ct_net_table == NULL) ++ goto out; ++ } + + ve_nf_ct_netfilter_table = ve_nf_ct_net_table[0].child; + ve_nf_ct_netfilter_table[1].data = &ve_nf_conntrack_max; +@@ -483,7 +479,8 @@ static int nf_conntrack_init_ve_sysctl(struct ve_struct *ve) + return 0; + + out_unclone: +- free_sysctl_clone(ve_nf_ct_net_table); ++ if (!ve_is_super(ve)) ++ free_sysctl_clone(ve_nf_ct_net_table); + out: + return -ENOMEM; + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0081-CPT-kernel-thread-owner-ve.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0081-CPT-kernel-thread-owner-ve.patch @@ -0,0 +1,128 @@ +From 4d7043260ff770c44716d035d1f220211e5a3694 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:48 +0400 +Subject: [PATCH 081/103] CPT kernel thread owner ve + +In current implementation master process which performs checkpointing has +owner_env set to VE0 and exec_env set to VE. All auxiliary kernel threads +are created with exec_env set to VE and owner_env set to VE0, so after the +do_fork_pid() we have the follwing: + + * new thread has owner_env == ve0, exec env == ve + * its pid belongs to ve (pid->veid != 0) + +That is why if ve_enter() in thread fails, then we hit BUG_ON in + release_task -> detach_pid -> free_pid +sequence, since task owner env != pid's veid. + +When enter succeeds the task's owner env becomes ve and this BUG_ON +is not triggered. + +To solve this problem exec_env is switched to VE before kernel thread +creation and switched back after. Veid is passed to kernel via args. All +kernel threads are created with CLONE_VFORK to be sure that parent +process will not exit before doing exec() in thread. + +Bug #97124 +--- + kernel/cpt/cpt_files.c | 7 ++++++- + kernel/cpt/cpt_net.c | 20 +++++++++++++++++--- + 2 files changed, 23 insertions(+), 4 deletions(-) + +diff --git a/kernel/cpt/cpt_files.c b/kernel/cpt/cpt_files.c +index fbba10b..adbd43b 100644 +--- a/kernel/cpt/cpt_files.c ++++ b/kernel/cpt/cpt_files.c +@@ -1330,6 +1330,7 @@ struct args_t + { + int* pfd; + char* path; ++ envid_t veid; + }; + + static int dumptmpfs(void *arg) +@@ -1341,7 +1342,7 @@ static int dumptmpfs(void *arg) + char *path = args->path; + char *argv[] = { "tar", "-c", "-S", "--numeric-owner", path, NULL }; + +- i = real_env_create(VEID(get_exec_env()), VE_ENTER|VE_SKIPLOCK, 2, NULL, 0); ++ i = real_env_create(args->veid, VE_ENTER|VE_SKIPLOCK, 2, NULL, 0); + if (i < 0) { + eprintk("cannot enter ve to dump tmpfs\n"); + module_put(THIS_MODULE); +@@ -1388,16 +1389,20 @@ static int cpt_dump_tmpfs(char *path, struct cpt_context *ctx) + int status; + mm_segment_t oldfs; + sigset_t ignore, blocked; ++ struct ve_struct *oldenv; + + err = sc_pipe(pfd); + if (err < 0) + return err; + args.pfd = pfd; + args.path = path; ++ args.veid = VEID(get_exec_env()); + ignore.sig[0] = CPT_SIG_IGNORE_MASK; + sigprocmask(SIG_BLOCK, &ignore, &blocked); ++ oldenv = set_exec_env(get_ve0()); + err = pid = local_kernel_thread(dumptmpfs, (void*)&args, + SIGCHLD | CLONE_VFORK, 0); ++ set_exec_env(oldenv); + if (err < 0) { + eprintk_ctx("tmpfs local_kernel_thread: %d\n", err); + goto out; +diff --git a/kernel/cpt/cpt_net.c b/kernel/cpt/cpt_net.c +index 2926d24..1944654 100644 +--- a/kernel/cpt/cpt_net.c ++++ b/kernel/cpt/cpt_net.c +@@ -460,13 +460,20 @@ out_sock: + return err; + } + ++struct args_t ++{ ++ int* pfd; ++ envid_t veid; ++}; ++ + static int dumpfn(void *arg) + { + int i; +- int *pfd = arg; ++ struct args_t *args = arg; ++ int *pfd = args->pfd; + char *argv[] = { "iptables-save", "-c", NULL }; + +- i = real_env_create(VEID(get_exec_env()), VE_ENTER|VE_SKIPLOCK, 2, NULL, 0); ++ i = real_env_create(args->veid, VE_ENTER|VE_SKIPLOCK, 2, NULL, 0); + if (i < 0) { + eprintk("cannot enter ve to dump iptables\n"); + module_put(THIS_MODULE); +@@ -506,6 +513,8 @@ static int cpt_dump_iptables(struct cpt_context * ctx) + int status; + mm_segment_t oldfs; + sigset_t ignore, blocked; ++ struct args_t args; ++ struct ve_struct *oldenv; + + if (!(get_exec_env()->_iptables_modules & VE_IP_IPTABLES_MOD)) + return 0; +@@ -515,9 +524,14 @@ static int cpt_dump_iptables(struct cpt_context * ctx) + eprintk_ctx("sc_pipe: %d\n", err); + return err; + } ++ args.pfd = pfd; ++ args.veid = VEID(get_exec_env()); + ignore.sig[0] = CPT_SIG_IGNORE_MASK; + sigprocmask(SIG_BLOCK, &ignore, &blocked); +- err = pid = local_kernel_thread(dumpfn, (void*)pfd, SIGCHLD, 0); ++ oldenv = set_exec_env(get_ve0()); ++ err = pid = local_kernel_thread(dumpfn, (void*)&args, ++ SIGCHLD | CLONE_VFORK, 0); ++ set_exec_env(oldenv); + if (err < 0) { + eprintk_ctx("local_kernel_thread: %d\n", err); + goto out; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0016-NETFILTER-per-VE-expect-count.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0016-NETFILTER-per-VE-expect-count.patch @@ -0,0 +1,87 @@ +From 455602f53647d6d947dd966c0f663424a23d1fa4 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 7 Mar 2008 20:10:17 +0300 +Subject: [PATCH 16/48] NETFILTER: per-VE expect count + +Expectation count were left global which defeats the point of per-VE +expectation limits. :-) +--- + include/linux/ve.h | 1 + + net/netfilter/nf_conntrack_expect.c | 12 ++++++++---- + 2 files changed, 9 insertions(+), 4 deletions(-) + +diff --git a/include/linux/ve.h b/include/linux/ve.h +index e60159b..1a5b357 100644 +--- a/include/linux/ve.h ++++ b/include/linux/ve.h +@@ -67,6 +67,7 @@ struct ve_nf_conntrack { + struct hlist_head _unconfirmed; + struct hlist_head *_nf_ct_expect_hash; + unsigned int _nf_ct_expect_vmalloc; ++ unsigned int _nf_ct_expect_count; + unsigned int _nf_ct_expect_max; + struct hlist_head *_nf_ct_helper_hash; + unsigned int _nf_ct_helper_vmalloc; +diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c +index 39dde85..7f85c87 100644 +--- a/net/netfilter/nf_conntrack_expect.c ++++ b/net/netfilter/nf_conntrack_expect.c +@@ -40,8 +40,10 @@ unsigned int nf_ct_expect_max __read_mostly; + static int nf_ct_expect_hash_rnd_initted __read_mostly; + static int nf_ct_expect_vmalloc; + #ifdef CONFIG_VE_IPTABLES ++#define ve_nf_ct_expect_count (get_exec_env()->_nf_conntrack->_nf_ct_expect_count) + #define ve_nf_ct_expect_vmalloc (get_exec_env()->_nf_conntrack->_nf_ct_expect_vmalloc) + #else ++#define ve_nf_ct_expect_count nf_ct_expect_count + #define ve_nf_ct_expect_vmalloc nf_ct_expect_vmalloc + #endif + +@@ -56,7 +58,7 @@ void nf_ct_unlink_expect(struct nf_conntrack_expect *exp) + NF_CT_ASSERT(!timer_pending(&exp->timeout)); + + hlist_del(&exp->hnode); +- nf_ct_expect_count--; ++ ve_nf_ct_expect_count--; + + hlist_del(&exp->lnode); + master_help->expecting--; +@@ -96,7 +98,7 @@ __nf_ct_expect_find(const struct nf_conntrack_tuple *tuple) + struct hlist_node *n; + unsigned int h; + +- if (!nf_ct_expect_count) ++ if (!ve_nf_ct_expect_count) + return NULL; + + h = nf_ct_expect_dst_hash(tuple); +@@ -299,7 +301,7 @@ static void nf_ct_expect_insert(struct nf_conntrack_expect *exp) + master_help->expecting++; + + hlist_add_head(&exp->hnode, &ve_nf_ct_expect_hash[h]); +- nf_ct_expect_count++; ++ ve_nf_ct_expect_count++; + + setup_timer(&exp->timeout, nf_ct_expectation_timed_out, + (unsigned long)exp); +@@ -372,7 +374,7 @@ int nf_ct_expect_related(struct nf_conntrack_expect *expect) + master_help->expecting >= master_help->helper->max_expected) + evict_oldest_expect(master); + +- if (nf_ct_expect_count >= ve_nf_ct_expect_max) { ++ if (ve_nf_ct_expect_count >= ve_nf_ct_expect_max) { + if (net_ratelimit()) + printk(KERN_WARNING + "nf_conntrack: expectation table full\n"); +@@ -521,6 +523,8 @@ int nf_conntrack_expect_init(void) + nf_ct_expect_hsize = 1; + } + nf_ct_expect_max = nf_ct_expect_hsize * 4; ++ ++ ve_nf_ct_expect_count = 0; + ve_nf_ct_expect_max = nf_ct_expect_max; + ve_nf_ct_expect_hash = nf_ct_alloc_hashtable(&nf_ct_expect_hsize, + &ve_nf_ct_expect_vmalloc); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0141-MISC-autofs4-revert-ia32-compat-hack.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0141-MISC-autofs4-revert-ia32-compat-hack.patch @@ -0,0 +1,286 @@ +From 6e9bc37f6990e4c5fd8f9afc491f2ecc717eda16 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 8 Sep 2008 14:15:06 +0400 +Subject: [PATCH] MISC autofs4 revert ia32 compat hack + +Next patch fix it in a less-intrusive manner. +--- + fs/autofs4/autofs_i.h | 5 -- + fs/autofs4/inode.c | 7 --- + fs/autofs4/waitq.c | 107 ++++++++++++++------------------------------- + include/linux/auto_fs.h | 16 ------- + include/linux/auto_fs4.h | 26 ----------- + 5 files changed, 33 insertions(+), 128 deletions(-) + +diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h +index 32d1ddb..2d4ae40 100644 +--- a/fs/autofs4/autofs_i.h ++++ b/fs/autofs4/autofs_i.h +@@ -94,10 +94,6 @@ struct autofs_wait_queue { + #define AUTOFS_TYPE_DIRECT 0x0002 + #define AUTOFS_TYPE_OFFSET 0x0004 + +-/* flags for userspace automount daemon */ +-#define AUTOFS_DEAMON_32BIT 0 /* automount is a 32bit process */ +-#define _AUTOFS_DEAMON_32BIT (1 << AUTOFS_DEAMON_32BIT) +- + struct autofs_sb_info { + u32 magic; + int pipefd; +@@ -118,7 +114,6 @@ struct autofs_sb_info { + struct autofs_wait_queue *queues; /* Wait queue pointer */ + spinlock_t rehash_lock; + struct list_head rehash_list; +- u32 flags; /* flags for userspace automount daemon */ + }; + + static inline struct autofs_sb_info *autofs4_sbi(struct super_block *sb) +diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c +index 2737f29..7f05d6c 100644 +--- a/fs/autofs4/inode.c ++++ b/fs/autofs4/inode.c +@@ -311,7 +311,6 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) + int pipefd; + struct autofs_sb_info *sbi; + struct autofs_info *ino; +- struct task_struct *tsk = current; + + sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); + if (!sbi) +@@ -331,12 +330,6 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) + sbi->type = 0; + sbi->min_proto = 0; + sbi->max_proto = 0; +-#ifdef __x86_64__ +- if (task_thread_info(tsk)->flags & _TIF_IA32) { +- /* mark that automount daemon is 32 bit */ +- sbi->flags |= _AUTOFS_DEAMON_32BIT; +- } +-#endif + mutex_init(&sbi->wq_mutex); + spin_lock_init(&sbi->fs_lock); + sbi->queues = NULL; +diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c +index 98552fd..1fe28e4 100644 +--- a/fs/autofs4/waitq.c ++++ b/fs/autofs4/waitq.c +@@ -102,50 +102,27 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi, + /* Kernel protocol v4 missing and expire packets */ + case autofs_ptype_missing: + { +- if (sbi->flags & _AUTOFS_DEAMON_32BIT) { +- struct autofs_packet_missing_32bit *mp = &pkt.v4_pkt.missing_32bit; +- +- pktsz = sizeof(*mp); +- mp->wait_queue_token = wq->wait_queue_token; +- mp->len = wq->len; +- memcpy(mp->name, wq->name, wq->len); +- mp->name[wq->len] = '\0'; +- break; +- } else { +- struct autofs_packet_missing *mp = &pkt.v4_pkt.missing; ++ struct autofs_packet_missing *mp = &pkt.v4_pkt.missing; + +- pktsz = sizeof(*mp); ++ pktsz = sizeof(*mp); + +- mp->wait_queue_token = wq->wait_queue_token; +- mp->len = wq->len; +- memcpy(mp->name, wq->name, wq->len); +- mp->name[wq->len] = '\0'; +- break; +- } ++ mp->wait_queue_token = wq->wait_queue_token; ++ mp->len = wq->len; ++ memcpy(mp->name, wq->name, wq->len); ++ mp->name[wq->len] = '\0'; ++ break; + } + case autofs_ptype_expire_multi: + { +- if (sbi->flags & _AUTOFS_DEAMON_32BIT) { +- struct autofs_packet_expire_multi_32bit *ep = &pkt.v4_pkt.expire_multi_32bit; +- +- pktsz = sizeof(*ep); +- +- ep->wait_queue_token = wq->wait_queue_token; +- ep->len = wq->len; +- memcpy(ep->name, wq->name, wq->len); +- ep->name[wq->len] = '\0'; +- break; +- } else { +- struct autofs_packet_expire_multi *ep = &pkt.v4_pkt.expire_multi; ++ struct autofs_packet_expire_multi *ep = &pkt.v4_pkt.expire_multi; + +- pktsz = sizeof(*ep); ++ pktsz = sizeof(*ep); + +- ep->wait_queue_token = wq->wait_queue_token; +- ep->len = wq->len; +- memcpy(ep->name, wq->name, wq->len); +- ep->name[wq->len] = '\0'; +- break; +- } ++ ep->wait_queue_token = wq->wait_queue_token; ++ ep->len = wq->len; ++ memcpy(ep->name, wq->name, wq->len); ++ ep->name[wq->len] = '\0'; ++ break; + } + /* + * Kernel protocol v5 packet for handling indirect and direct +@@ -156,39 +133,21 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi, + case autofs_ptype_missing_direct: + case autofs_ptype_expire_direct: + { +- if (sbi->flags & _AUTOFS_DEAMON_32BIT) { +- struct autofs_v5_packet_32bit *packet = &pkt.v5_pkt.v5_packet_32bit; +- +- pktsz = sizeof(*packet); +- +- packet->wait_queue_token = wq->wait_queue_token; +- packet->len = wq->len; +- memcpy(packet->name, wq->name, wq->len); +- packet->name[wq->len] = '\0'; +- packet->dev = wq->dev; +- packet->ino = wq->ino; +- packet->uid = wq->uid; +- packet->gid = wq->gid; +- packet->pid = wq->pid; +- packet->tgid = wq->tgid; +- break; +- } else { +- struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet; +- +- pktsz = sizeof(*packet); +- +- packet->wait_queue_token = wq->wait_queue_token; +- packet->len = wq->len; +- memcpy(packet->name, wq->name, wq->len); +- packet->name[wq->len] = '\0'; +- packet->dev = wq->dev; +- packet->ino = wq->ino; +- packet->uid = wq->uid; +- packet->gid = wq->gid; +- packet->pid = wq->pid; +- packet->tgid = wq->tgid; +- break; +- } ++ struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet; ++ ++ pktsz = sizeof(*packet); ++ ++ packet->wait_queue_token = wq->wait_queue_token; ++ packet->len = wq->len; ++ memcpy(packet->name, wq->name, wq->len); ++ packet->name[wq->len] = '\0'; ++ packet->dev = wq->dev; ++ packet->ino = wq->ino; ++ packet->uid = wq->uid; ++ packet->gid = wq->gid; ++ packet->pid = wq->pid; ++ packet->tgid = wq->tgid; ++ break; + } + default: + printk("autofs4_notify_daemon: bad type %d!\n", type); +diff --git a/include/linux/auto_fs.h b/include/linux/auto_fs.h +index 559a0af..c21e597 100644 +--- a/include/linux/auto_fs.h ++++ b/include/linux/auto_fs.h +@@ -51,8 +51,6 @@ typedef unsigned int autofs_wqt_t; + typedef unsigned long autofs_wqt_t; + #endif + +-typedef __u32 autofs_wqt_t_32bit; +- + /* Packet types */ + #define autofs_ptype_missing 0 /* Missing entry (mount request) */ + #define autofs_ptype_expire 1 /* Expire entry (umount request) */ +@@ -69,13 +67,6 @@ struct autofs_packet_missing { + char name[NAME_MAX+1]; + }; + +-struct autofs_packet_missing_32bit { +- struct autofs_packet_hdr hdr; +- autofs_wqt_t_32bit wait_queue_token; +- int len; +- char name[NAME_MAX+1]; +-} __attribute__ ((__packed__)); +- + /* v3 expire (via ioctl) */ + struct autofs_packet_expire { + struct autofs_packet_hdr hdr; +@@ -83,13 +74,6 @@ struct autofs_packet_expire { + char name[NAME_MAX+1]; + }; + +-/* v3 expire (via ioctl) for 32 bit userspace daemon and x68_64 kernel */ +-struct autofs_packet_expire_32bit { +- struct autofs_packet_hdr hdr; +- int len; +- char name[NAME_MAX+1]; +-} __attribute__ ((__packed__)); +- + #define AUTOFS_IOC_READY _IO(0x93,0x60) + #define AUTOFS_IOC_FAIL _IO(0x93,0x61) + #define AUTOFS_IOC_CATATONIC _IO(0x93,0x62) +diff --git a/include/linux/auto_fs4.h b/include/linux/auto_fs4.h +index 16a80d3..31a2954 100644 +--- a/include/linux/auto_fs4.h ++++ b/include/linux/auto_fs4.h +@@ -59,22 +59,11 @@ struct autofs_packet_expire_multi { + char name[NAME_MAX+1]; + }; + +-/* v4 multi expire (via pipe) for 32 bit userspace daemon and x68_64 kernel */ +-struct autofs_packet_expire_multi_32bit { +- struct autofs_packet_hdr hdr; +- autofs_wqt_t_32bit wait_queue_token; +- int len; +- char name[NAME_MAX+1]; +-} __attribute__ ((__packed__)); +- + union autofs_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_packet_missing missing; +- struct autofs_packet_missing_32bit missing_32bit; + struct autofs_packet_expire expire; +- struct autofs_packet_expire_32bit expire_32bit; + struct autofs_packet_expire_multi expire_multi; +- struct autofs_packet_expire_multi_32bit expire_multi_32bit; + }; + + /* autofs v5 common packet struct */ +@@ -91,20 +80,6 @@ struct autofs_v5_packet { + char name[NAME_MAX+1]; + }; + +-/* autofs v5 packet struct for 32 bit userspace daemon and x68_64 kernel*/ +-struct autofs_v5_packet_32bit { +- struct autofs_packet_hdr hdr; +- autofs_wqt_t_32bit wait_queue_token; +- __u32 dev; +- __u64 ino; +- __u32 uid; +- __u32 gid; +- __u32 pid; +- __u32 tgid; +- __u32 len; +- char name[NAME_MAX+1]; +-} __attribute__ ((__packed__)); +- + typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; + typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; + typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +@@ -113,7 +88,6 @@ typedef struct autofs_v5_packet autofs_packet_expire_direct_t; + union autofs_v5_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_v5_packet v5_packet; +- struct autofs_v5_packet_32bit v5_packet_32bit; + autofs_packet_missing_indirect_t missing_indirect; + autofs_packet_expire_indirect_t expire_indirect; + autofs_packet_missing_direct_t missing_direct; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0152-MS-NETNS-No-need-for-a-separate-__netlink_release-ca.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0152-MS-NETNS-No-need-for-a-separate-__netlink_release-ca.patch @@ -0,0 +1,77 @@ +From 085010126cff45137d3a7bc74aa316007429ed97 Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Fri, 29 Feb 2008 11:17:56 -0800 +Subject: [PATCH] MS NETNS No need for a separate __netlink_release call + +mainstream commit 9dfbec1fb2bedff6b118504055cd9f0485edba45 + +Merge it to netlink_kernel_release. + +Signed-off-by: Denis V. Lunev +Acked-by: Daniel Lezcano +Signed-off-by: David S. Miller +--- + net/netlink/af_netlink.c | 30 ++++++++++++------------------ + 1 files changed, 12 insertions(+), 18 deletions(-) + +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index b548ab4..71e31e3 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -1348,22 +1348,6 @@ static void netlink_data_ready(struct sock *sk, int len) + * queueing. + */ + +-static void __netlink_release(struct sock *sk) +-{ +- /* +- * Last sock_put should drop referrence to sk->sk_net. It has already +- * been dropped in netlink_kernel_create. Taking referrence to stopping +- * namespace is not an option. +- * Take referrence to a socket to remove it from netlink lookup table +- * _alive_ and after that destroy it in the context of init_net. +- */ +- +- sock_hold(sk); +- sock_release(sk->sk_socket); +- sk->sk_net = get_net(&init_net); +- sock_put(sk); +-} +- + struct sock * + netlink_kernel_create(struct net *net, int unit, unsigned int groups, + void (*input)(struct sk_buff *skb), +@@ -1428,7 +1412,7 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups, + + out_sock_release: + kfree(listeners); +- __netlink_release(sk); ++ netlink_kernel_release(sk); + return NULL; + + out_sock_release_nosk: +@@ -1440,10 +1424,20 @@ out_sock_release_nosk: + void + netlink_kernel_release(struct sock *sk) + { ++ /* ++ * Last sock_put should drop referrence to sk->sk_net. It has already ++ * been dropped in netlink_kernel_create. Taking referrence to stopping ++ * namespace is not an option. ++ * Take referrence to a socket to remove it from netlink lookup table ++ * _alive_ and after that destroy it in the context of init_net. ++ */ + if (sk == NULL || sk->sk_socket == NULL) + return; + +- __netlink_release(sk); ++ sock_hold(sk); ++ sock_release(sk->sk_socket); ++ sk->sk_net = get_net(&init_net); ++ sock_put(sk); + } + EXPORT_SYMBOL(netlink_kernel_release); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0003-SLUB-drop-inline-from-__flush_cpu_slab-prototyp.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0003-SLUB-drop-inline-from-__flush_cpu_slab-prototyp.patch @@ -0,0 +1,35 @@ +From 5e5b46ec81534f34dffcca9795c528c4074a563f Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Thu, 28 Feb 2008 19:24:52 +0300 +Subject: [PATCH 03/48] SLUB: drop "inline" from __flush_cpu_slab() prototype + +3.4 gcc sometimes treats as error the following sequence: + + static inline foo(); + + foo(); + + static inline foo() + { + ... + } +--- + mm/slub.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/mm/slub.c b/mm/slub.c +index 3317f93..b251d42 100644 +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -346,7 +346,7 @@ unsigned long ub_cache_growth(struct kmem_cache *cachep) + return atomic_read(&cachep->grown) << cachep->order; + } + +-static inline void __flush_cpu_slab(struct kmem_cache *s, int cpu); ++static void __flush_cpu_slab(struct kmem_cache *s, int cpu); + + static int kmem_cache_walk_page(struct page *pg, struct kmem_cache *s, + int (*fun)(void *)) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0011-CONNTACK-add-n-to-error-message.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0011-CONNTACK-add-n-to-error-message.patch @@ -0,0 +1,25 @@ +From 8544df2e3e8ebc6d028b8d2b12a2d296c3536fba Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 7 Mar 2008 12:23:39 +0300 +Subject: [PATCH 11/48] CONNTACK: add \n to error message + +--- + net/netfilter/nf_conntrack_expect.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c +index ccf3d50..c90024c 100644 +--- a/net/netfilter/nf_conntrack_expect.c ++++ b/net/netfilter/nf_conntrack_expect.c +@@ -375,7 +375,7 @@ int nf_ct_expect_related(struct nf_conntrack_expect *expect) + if (nf_ct_expect_count >= ve_nf_ct_expect_max) { + if (net_ratelimit()) + printk(KERN_WARNING +- "nf_conntrack: expectation table full"); ++ "nf_conntrack: expectation table full\n"); + ret = -EMFILE; + goto out; + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0009-SIT-create-sit-devices-in-correct-netns.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0009-SIT-create-sit-devices-in-correct-netns.patch @@ -0,0 +1,34 @@ +From 1cfe443dac8890ab8e6e3eb8824b1aebb126f697 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 4 Mar 2008 13:48:08 +0300 +Subject: [PATCH 09/48] SIT: create sit devices in correct netns + +http://bugzilla.openvz.org/show_bug.cgi?id=825 +--- + net/ipv6/sit.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c +index 208b16e..f45f3ad 100644 +--- a/net/ipv6/sit.c ++++ b/net/ipv6/sit.c +@@ -201,7 +201,7 @@ static struct ip_tunnel * ipip6_tunnel_locate(struct ip_tunnel_parm *parms, int + dev = alloc_netdev(sizeof(*t), name, ipip6_tunnel_setup); + if (dev == NULL) + return NULL; +- ++ dev->nd_net = get_exec_env()->ve_ns->net_ns; + nt = netdev_priv(dev); + dev->init = ipip6_tunnel_init; + nt->parms = *parms; +@@ -876,6 +876,7 @@ static int sit_ve_start(void *data) + err = -ENOMEM; + goto free_tunnel; + } ++ st->_ipip6_fb_tunnel_dev->nd_net = get_exec_env()->ve_ns->net_ns; + st->_ipip6_fb_tunnel_dev->init = ipip6_fb_tunnel_init; + err = register_netdev(st->_ipip6_fb_tunnel_dev); + if (err < 0) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0044-VE-fix-compilation-without-SYSFS.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0044-VE-fix-compilation-without-SYSFS.patch @@ -0,0 +1,44 @@ +From 0a43b2ec540c364cc10ac851ddd5da2ec38f3d4b Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 24 Mar 2008 14:09:45 +0300 +Subject: [PATCH 44/48] VE: fix compilation without SYSFS + +--- + kernel/ve/vecalls.c | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c +index 4bb5d48..49ecfb8 100644 +--- a/kernel/ve/vecalls.c ++++ b/kernel/ve/vecalls.c +@@ -588,7 +588,8 @@ static void fini_ve_shmem(struct ve_struct *ve) + ve->shmem_mnt = NULL; + } + +-static inline int init_ve_sysfs_root(struct ve_struct *ve) ++#ifdef CONFIG_SYSFS ++static int init_ve_sysfs_root(struct ve_struct *ve) + { + struct sysfs_dirent *sysfs_root; + +@@ -604,6 +605,7 @@ static inline int init_ve_sysfs_root(struct ve_struct *ve) + ve->_sysfs_root = sysfs_root; + return 0; + } ++#endif + + #if defined(CONFIG_NET) && defined(CONFIG_SYSFS) + extern struct device_attribute ve_net_class_attributes[]; +@@ -749,7 +751,9 @@ out_fs_type: + #endif + ve->class_subsys = NULL; + ve->class_obj_subsys = NULL; ++#ifdef CONFIG_SYSFS + out: ++#endif + return err; + } + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0155-VE-introduce-ve_netns.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0155-VE-introduce-ve_netns.patch @@ -0,0 +1,1120 @@ +From dbf8e04245347b6f4c984aefdc99cd57c0abf065 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 9 Jun 2008 15:46:39 +0400 +Subject: [PATCH] VE introduce ->ve_netns + +Preparations for fixing "NULL ->ve_ns" oops in inet6_rt_notify(). +--- + drivers/net/tun.c | 2 +- + drivers/net/venet_core.c | 4 +- + drivers/net/vzethdev.c | 2 +- + include/linux/ve.h | 1 + + kernel/cpt/cpt_dump.c | 2 +- + kernel/cpt/cpt_net.c | 4 +- + kernel/cpt/rst_net.c | 6 ++-- + kernel/ve/ve.c | 1 + + kernel/ve/vecalls.c | 7 +++-- + net/8021q/vlan.c | 2 +- + net/8021q/vlanproc.c | 4 +- + net/bridge/br_netlink.c | 2 +- + net/core/fib_rules.c | 2 +- + net/ipv4/arp.c | 4 +- + net/ipv4/devinet.c | 16 +++++++------- + net/ipv4/fib_frontend.c | 2 +- + net/ipv4/fib_semantics.c | 6 ++-- + net/ipv4/icmp.c | 2 +- + net/ipv4/igmp.c | 4 +- + net/ipv4/ip_fragment.c | 2 +- + net/ipv4/ip_gre.c | 4 +- + net/ipv4/ip_sockglue.c | 2 +- + net/ipv4/ipconfig.c | 2 +- + net/ipv4/ipip.c | 4 +- + net/ipv4/ipmr.c | 2 +- + net/ipv4/ipvs/ip_vs_sync.c | 8 +++--- + net/ipv4/netfilter/ipt_CLUSTERIP.c | 2 +- + net/ipv4/netfilter/ipt_recent.c | 4 +- + .../netfilter/nf_conntrack_l3proto_ipv4_compat.c | 4 +- + net/ipv4/route.c | 10 ++++---- + net/ipv6/addrconf.c | 22 ++++++++++---------- + net/ipv6/af_inet6.c | 2 +- + net/ipv6/anycast.c | 12 +++++----- + net/ipv6/datagram.c | 2 +- + net/ipv6/ipv6_sockglue.c | 2 +- + net/ipv6/mcast.c | 12 +++++----- + net/ipv6/raw.c | 2 +- + net/ipv6/reassembly.c | 2 +- + net/ipv6/route.c | 10 ++++---- + net/ipv6/sit.c | 8 +++--- + net/netfilter/nf_conntrack_standalone.c | 4 +- + net/netfilter/xt_hashlimit.c | 4 +- + 42 files changed, 101 insertions(+), 98 deletions(-) + +Index: kernel/drivers/net/tun.c +=================================================================== +--- kernel.orig/drivers/net/tun.c 2008-11-24 15:59:11.000000000 +0100 ++++ kernel/drivers/net/tun.c 2008-11-24 16:08:08.000000000 +0100 +@@ -495,7 +495,7 @@ + + static int tun_set_iff(struct file *file, struct ifreq *ifr) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct tun_struct *tun; + struct net_device *dev; + int err; +Index: kernel/drivers/net/venet_core.c +=================================================================== +--- kernel.orig/drivers/net/venet_core.c 2008-11-24 16:01:57.000000000 +0100 ++++ kernel/drivers/net/venet_core.c 2008-11-24 16:08:08.000000000 +0100 +@@ -374,7 +374,7 @@ + + ve_old = set_exec_env(ve); + read_lock(&dev_base_lock); +- for_each_netdev(ve->ve_ns->net_ns, dev) { ++ for_each_netdev(ve->ve_netns, dev) { + if (dev->hard_start_xmit == venet_xmit) + ret = fop(dev, data); + } +@@ -630,7 +630,7 @@ + dev_venet = alloc_netdev(0, "venet%d", venet_setup); + if (!dev_venet) + return -ENOMEM; +- dev_venet->nd_net = ve->ve_ns->net_ns; ++ dev_venet->nd_net = ve->ve_netns; + err = dev_alloc_name(dev_venet, dev_venet->name); + if (err<0) + goto err; +Index: kernel/drivers/net/vzethdev.c +=================================================================== +--- kernel.orig/drivers/net/vzethdev.c 2008-11-24 15:59:31.000000000 +0100 ++++ kernel/drivers/net/vzethdev.c 2008-11-24 16:08:08.000000000 +0100 +@@ -609,7 +609,7 @@ + dev = alloc_netdev(sizeof(struct veth_struct), name, veth_setup); + if (!dev) + return ERR_PTR(-ENOMEM); +- dev->nd_net = get_exec_env()->ve_ns->net_ns; ++ dev->nd_net = get_exec_env()->ve_netns; + if (strchr(dev->name, '%')) { + err = dev_alloc_name(dev, dev->name); + if (err < 0) +Index: kernel/include/linux/ve.h +=================================================================== +--- kernel.orig/include/linux/ve.h 2008-11-24 16:01:25.000000000 +0100 ++++ kernel/include/linux/ve.h 2008-11-24 16:08:08.000000000 +0100 +@@ -342,6 +342,7 @@ + #endif + + struct nsproxy *ve_ns; ++ struct net *ve_netns; + #ifdef CONFIG_GRKERNSEC + struct { + int lock; +Index: kernel/kernel/cpt/cpt_dump.c +=================================================================== +--- kernel.orig/kernel/cpt/cpt_dump.c 2008-11-24 16:00:38.000000000 +0100 ++++ kernel/kernel/cpt/cpt_dump.c 2008-11-24 16:08:08.000000000 +0100 +@@ -1035,7 +1035,7 @@ + + static void check_unsupported_netdevices(struct cpt_context *ctx, __u32 *caps) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct net_device *dev; + + read_lock(&dev_base_lock); +Index: kernel/kernel/cpt/cpt_net.c +=================================================================== +--- kernel.orig/kernel/cpt/cpt_net.c 2008-11-24 16:00:36.000000000 +0100 ++++ kernel/kernel/cpt/cpt_net.c 2008-11-24 16:08:08.000000000 +0100 +@@ -153,7 +153,7 @@ + + int cpt_dump_link(struct cpt_context * ctx) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct net_device *dev; + + cpt_open_section(ctx, CPT_SECT_NET_DEVICE); +@@ -237,7 +237,7 @@ + + int cpt_dump_ifaddr(struct cpt_context * ctx) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct net_device *dev; + + cpt_open_section(ctx, CPT_SECT_NET_IFADDR); +Index: kernel/kernel/cpt/rst_net.c +=================================================================== +--- kernel.orig/kernel/cpt/rst_net.c 2008-11-24 16:01:08.000000000 +0100 ++++ kernel/kernel/cpt/rst_net.c 2008-11-24 16:08:08.000000000 +0100 +@@ -48,7 +48,7 @@ + + int rst_restore_ifaddr(struct cpt_context *ctx) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + int err; + loff_t sec = ctx->sections[CPT_SECT_NET_IFADDR]; + loff_t endsec; +@@ -408,7 +408,7 @@ + { + struct cpt_netstats_image *n; + struct net_device_stats *stats = NULL; +- struct net_device *lo = get_exec_env()->ve_ns->net_ns->loopback_dev; ++ struct net_device *lo = get_exec_env()->ve_netns->loopback_dev; + int err; + + if (!dev->get_stats) +@@ -472,7 +472,7 @@ + + int rst_restore_netdev(struct cpt_context *ctx) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + int err; + loff_t sec = ctx->sections[CPT_SECT_NET_DEVICE]; + loff_t endsec; +Index: kernel/kernel/ve/ve.c +=================================================================== +--- kernel.orig/kernel/ve/ve.c 2008-11-24 16:01:59.000000000 +0100 ++++ kernel/kernel/ve/ve.c 2008-11-24 16:08:08.000000000 +0100 +@@ -111,6 +111,7 @@ + .devpts_config = &devpts_config, + #endif + .ve_ns = &init_nsproxy, ++ .ve_netns = &init_net, + .is_running = 1, + .op_sem = __RWSEM_INITIALIZER(ve0.op_sem), + }; +Index: kernel/kernel/ve/vecalls.c +=================================================================== +--- kernel.orig/kernel/ve/vecalls.c 2008-11-24 16:01:59.000000000 +0100 ++++ kernel/kernel/ve/vecalls.c 2008-11-24 16:08:08.000000000 +0100 +@@ -991,6 +991,7 @@ + + put_nsproxy(ve->ve_ns); + ve->ve_ns = get_nsproxy(tsk->nsproxy); ++ ve->ve_netns = ve->ve_ns->net_ns; + *old = cur; + return 0; + } +@@ -2156,7 +2157,7 @@ + if (dst_ve == NULL) + goto out; + +- dst_net = dst_ve->ve_ns->net_ns; ++ dst_net = dst_ve->ve_netns; + + rtnl_lock(); + read_lock(&dev_base_lock); +@@ -2189,7 +2190,7 @@ + if (src_ve == NULL) + goto out; + +- src_net = src_ve->ve_ns->net_ns; ++ src_net = src_ve->ve_netns; + + rtnl_lock(); + +@@ -2228,7 +2229,7 @@ + + static void ve_mapped_devs_cleanup(struct ve_struct *ve) + { +- struct net *net = ve->ve_ns->net_ns; ++ struct net *net = ve->ve_netns; + struct net_device *dev, *next; + int rv; + +Index: kernel/net/8021q/vlan.c +=================================================================== +--- kernel.orig/net/8021q/vlan.c 2008-11-24 16:00:29.000000000 +0100 ++++ kernel/net/8021q/vlan.c 2008-11-24 16:08:08.000000000 +0100 +@@ -604,7 +604,7 @@ + if (new_dev == NULL) + return -ENOBUFS; + +- new_dev->nd_net = get_exec_env()->ve_ns->net_ns; ++ new_dev->nd_net = get_exec_env()->ve_netns; + /* need 4 bytes for extra VLAN header info, + * hope the underlying device can handle it. + */ +Index: kernel/net/8021q/vlanproc.c +=================================================================== +--- kernel.orig/net/8021q/vlanproc.c 2008-11-24 16:00:29.000000000 +0100 ++++ kernel/net/8021q/vlanproc.c 2008-11-24 16:08:08.000000000 +0100 +@@ -166,7 +166,7 @@ + + void vlan_proc_cleanup(void) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + + if (proc_vlan_conf) + remove_proc_entry(name_conf, proc_vlan_dir); +@@ -185,7 +185,7 @@ + + int vlan_proc_init(void) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + + proc_vlan_dir = proc_mkdir(name_root, net->proc_net); + if (proc_vlan_dir) { +Index: kernel/net/bridge/br_netlink.c +=================================================================== +--- kernel.orig/net/bridge/br_netlink.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/bridge/br_netlink.c 2008-11-24 16:08:08.000000000 +0100 +@@ -82,7 +82,7 @@ + */ + void br_ifinfo_notify(int event, struct net_bridge_port *port) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct sk_buff *skb; + int err = -ENOBUFS; + +Index: kernel/net/core/fib_rules.c +=================================================================== +--- kernel.orig/net/core/fib_rules.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/core/fib_rules.c 2008-11-24 16:08:08.000000000 +0100 +@@ -575,7 +575,7 @@ + struct fib_rules_ops *ops, struct nlmsghdr *nlh, + u32 pid) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct sk_buff *skb; + int err = -ENOBUFS; + +Index: kernel/net/ipv4/arp.c +=================================================================== +--- kernel.orig/net/ipv4/arp.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/arp.c 2008-11-24 16:08:08.000000000 +0100 +@@ -961,7 +961,7 @@ + if (mask && mask != htonl(0xFFFFFFFF)) + return -EINVAL; + if (!dev && (r->arp_flags & ATF_COM)) { +- dev = dev_getbyhwaddr(get_exec_env()->ve_ns->net_ns, r->arp_ha.sa_family, r->arp_ha.sa_data); ++ dev = dev_getbyhwaddr(get_exec_env()->ve_netns, r->arp_ha.sa_family, r->arp_ha.sa_data); + if (!dev) + return -ENODEV; + } +@@ -1150,7 +1150,7 @@ + rtnl_lock(); + if (r.arp_dev[0]) { + err = -ENODEV; +- if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, r.arp_dev)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_netns, r.arp_dev)) == NULL) + goto out; + + /* Mmmm... It is wrong... ARPHRD_NETROM==0 */ +Index: kernel/net/ipv4/devinet.c +=================================================================== +--- kernel.orig/net/ipv4/devinet.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/ipv4/devinet.c 2008-11-24 16:08:08.000000000 +0100 +@@ -427,7 +427,7 @@ + struct net_device *dev; + struct in_device *in_dev = NULL; + read_lock(&dev_base_lock); +- dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); ++ dev = __dev_get_by_index(get_exec_env()->ve_netns, ifindex); + if (dev) + in_dev = in_dev_get(dev); + read_unlock(&dev_base_lock); +@@ -514,7 +514,7 @@ + goto errout; + } + +- dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifm->ifa_index); ++ dev = __dev_get_by_index(get_exec_env()->ve_netns, ifm->ifa_index); + if (dev == NULL) { + err = -ENODEV; + goto errout; +@@ -618,7 +618,7 @@ + char *colon; + int ret = -EFAULT; + int tryaddrmatch = 0; +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + + /* + * Fetch the caller's info block into kernel space +@@ -917,7 +917,7 @@ + */ + read_lock(&dev_base_lock); + rcu_read_lock(); +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + if ((in_dev = __in_dev_get_rcu(dev)) == NULL) + continue; + +@@ -996,7 +996,7 @@ + + read_lock(&dev_base_lock); + rcu_read_lock(); +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + if ((in_dev = __in_dev_get_rcu(dev))) { + addr = confirm_addr_indev(in_dev, dst, local, scope); + if (addr) +@@ -1190,7 +1190,7 @@ + + s_ip_idx = ip_idx = cb->args[1]; + idx = 0; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + if (idx < s_idx) + goto cont; + if (idx > s_idx) +@@ -1250,7 +1250,7 @@ + struct net_device *dev; + + read_lock(&dev_base_lock); +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + struct in_device *in_dev; + rcu_read_lock(); + in_dev = __in_dev_get_rcu(dev); +@@ -1338,7 +1338,7 @@ + IPV4_DEVCONF_DFLT(FORWARDING) = on; + + read_lock(&dev_base_lock); +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + struct in_device *in_dev; + rcu_read_lock(); + in_dev = __in_dev_get_rcu(dev); +Index: kernel/net/ipv4/fib_frontend.c +=================================================================== +--- kernel.orig/net/ipv4/fib_frontend.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/fib_frontend.c 2008-11-24 16:08:08.000000000 +0100 +@@ -352,7 +352,7 @@ + colon = strchr(devname, ':'); + if (colon) + *colon = 0; +- dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, devname); ++ dev = __dev_get_by_name(get_exec_env()->ve_netns, devname); + if (!dev) + return -ENODEV; + cfg->fc_oif = dev->ifindex; +Index: kernel/net/ipv4/fib_semantics.c +=================================================================== +--- kernel.orig/net/ipv4/fib_semantics.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/ipv4/fib_semantics.c 2008-11-24 16:08:08.000000000 +0100 +@@ -325,7 +325,7 @@ + int dst_len, u32 tb_id, struct nl_info *info, + unsigned int nlm_flags) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct sk_buff *skb; + u32 seq = info->nlh ? info->nlh->nlmsg_seq : 0; + int err = -ENOBUFS; +@@ -556,7 +556,7 @@ + return -EINVAL; + if (inet_addr_type(nh->nh_gw) != RTN_UNICAST) + return -EINVAL; +- if ((dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, nh->nh_oif)) == NULL) ++ if ((dev = __dev_get_by_index(get_exec_env()->ve_netns, nh->nh_oif)) == NULL) + return -ENODEV; + if (!(dev->flags&IFF_UP)) + return -ENETDOWN; +@@ -822,7 +822,7 @@ + if (nhs != 1 || nh->nh_gw) + goto err_inval; + nh->nh_scope = RT_SCOPE_NOWHERE; +- nh->nh_dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, fi->fib_nh->nh_oif); ++ nh->nh_dev = dev_get_by_index(get_exec_env()->ve_netns, fi->fib_nh->nh_oif); + err = -ENODEV; + if (nh->nh_dev == NULL) + goto failure; +Index: kernel/net/ipv4/icmp.c +=================================================================== +--- kernel.orig/net/ipv4/icmp.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/icmp.c 2008-11-24 16:08:08.000000000 +0100 +@@ -514,7 +514,7 @@ + struct net_device *dev = NULL; + + if (rt->fl.iif && sysctl_icmp_errors_use_inbound_ifaddr) +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, rt->fl.iif); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, rt->fl.iif); + + if (dev) { + saddr = inet_select_addr(dev, 0, RT_SCOPE_LINK); +Index: kernel/net/ipv4/igmp.c +=================================================================== +--- kernel.orig/net/ipv4/igmp.c 2008-11-24 16:00:59.000000000 +0100 ++++ kernel/net/ipv4/igmp.c 2008-11-24 16:08:08.000000000 +0100 +@@ -2301,7 +2301,7 @@ + struct igmp_mc_iter_state *state = igmp_mc_seq_private(seq); + + state->in_dev = NULL; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { ++ for_each_netdev(get_exec_env()->ve_netns, state->dev) { + struct in_device *in_dev; + + in_dev = in_dev_get(state->dev); +@@ -2449,7 +2449,7 @@ + + state->idev = NULL; + state->im = NULL; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { ++ for_each_netdev(get_exec_env()->ve_netns, state->dev) { + struct in_device *idev; + + idev = in_dev_get(state->dev); +Index: kernel/net/ipv4/ip_fragment.c +=================================================================== +--- kernel.orig/net/ipv4/ip_fragment.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/ip_fragment.c 2008-11-24 16:08:08.000000000 +0100 +@@ -228,7 +228,7 @@ + if ((qp->q.last_in&FIRST_IN) && qp->q.fragments != NULL) { + struct sk_buff *head = qp->q.fragments; + /* Send an ICMP "Fragment Reassembly Timeout" message. */ +- if ((head->dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, qp->iif)) != NULL) { ++ if ((head->dev = dev_get_by_index(get_exec_env()->ve_netns, qp->iif)) != NULL) { + icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0); + dev_put(head->dev); + } +Index: kernel/net/ipv4/ip_gre.c +=================================================================== +--- kernel.orig/net/ipv4/ip_gre.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/ip_gre.c 2008-11-24 16:08:08.000000000 +0100 +@@ -263,7 +263,7 @@ + int i; + for (i=1; i<100; i++) { + sprintf(name, "gre%d", i); +- if (__dev_get_by_name(get_exec_env()->ve_ns->net_ns, name) == NULL) ++ if (__dev_get_by_name(get_exec_env()->ve_netns, name) == NULL) + break; + } + if (i==100) +@@ -1211,7 +1211,7 @@ + } + + if (!tdev && tunnel->parms.link) +- tdev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, tunnel->parms.link); ++ tdev = __dev_get_by_index(get_exec_env()->ve_netns, tunnel->parms.link); + + if (tdev) { + hlen = tdev->hard_header_len; +Index: kernel/net/ipv4/ip_sockglue.c +=================================================================== +--- kernel.orig/net/ipv4/ip_sockglue.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/ip_sockglue.c 2008-11-24 16:08:08.000000000 +0100 +@@ -596,7 +596,7 @@ + dev_put(dev); + } + } else +- dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, mreq.imr_ifindex); ++ dev = __dev_get_by_index(get_exec_env()->ve_netns, mreq.imr_ifindex); + + + err = -EADDRNOTAVAIL; +Index: kernel/net/ipv4/ipconfig.c +=================================================================== +--- kernel.orig/net/ipv4/ipconfig.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/ipconfig.c 2008-11-24 16:08:08.000000000 +0100 +@@ -185,7 +185,7 @@ + struct ic_device *d, **last; + struct net_device *dev; + unsigned short oflags; +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + + last = &ic_first_dev; + rtnl_lock(); +Index: kernel/net/ipv4/ipip.c +=================================================================== +--- kernel.orig/net/ipv4/ipip.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/ipip.c 2008-11-24 16:08:08.000000000 +0100 +@@ -226,7 +226,7 @@ + int i; + for (i=1; i<100; i++) { + sprintf(name, "tunl%d", i); +- if (__dev_get_by_name(get_exec_env()->ve_ns->net_ns, name) == NULL) ++ if (__dev_get_by_name(get_exec_env()->ve_netns, name) == NULL) + break; + } + if (i==100) +@@ -821,7 +821,7 @@ + } + + if (!tdev && tunnel->parms.link) +- tdev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, tunnel->parms.link); ++ tdev = __dev_get_by_index(get_exec_env()->ve_netns, tunnel->parms.link); + + if (tdev) { + dev->hard_header_len = tdev->hard_header_len + sizeof(struct iphdr); +Index: kernel/net/ipv4/ipmr.c +=================================================================== +--- kernel.orig/net/ipv4/ipmr.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/ipv4/ipmr.c 2008-11-24 16:08:08.000000000 +0100 +@@ -124,7 +124,7 @@ + static + struct net_device *ipmr_new_tunnel(struct vifctl *v) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct net_device *dev; + + dev = __dev_get_by_name(net, "tunl0"); +Index: kernel/net/ipv4/ipvs/ip_vs_sync.c +=================================================================== +--- kernel.orig/net/ipv4/ipvs/ip_vs_sync.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/ipvs/ip_vs_sync.c 2008-11-24 16:08:08.000000000 +0100 +@@ -405,7 +405,7 @@ + struct net_device *dev; + struct inet_sock *inet = inet_sk(sk); + +- if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, ifname)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_netns, ifname)) == NULL) + return -ENODEV; + + if (sk->sk_bound_dev_if && dev->ifindex != sk->sk_bound_dev_if) +@@ -426,7 +426,7 @@ + */ + static int set_sync_mesg_maxlen(int sync_state) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct net_device *dev; + int num; + +@@ -470,7 +470,7 @@ + memset(&mreq, 0, sizeof(mreq)); + memcpy(&mreq.imr_multiaddr, addr, sizeof(struct in_addr)); + +- if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, ifname)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_netns, ifname)) == NULL) + return -ENODEV; + if (sk->sk_bound_dev_if && dev->ifindex != sk->sk_bound_dev_if) + return -EINVAL; +@@ -491,7 +491,7 @@ + __be32 addr; + struct sockaddr_in sin; + +- if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, ifname)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_netns, ifname)) == NULL) + return -ENODEV; + + addr = inet_select_addr(dev, 0, RT_SCOPE_UNIVERSE); +Index: kernel/net/ipv4/netfilter/ipt_CLUSTERIP.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_CLUSTERIP.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_CLUSTERIP.c 2008-11-24 16:08:08.000000000 +0100 +@@ -402,7 +402,7 @@ + return false; + } + +- dev = dev_get_by_name(get_exec_env()->ve_ns->net_ns, e->ip.iniface); ++ dev = dev_get_by_name(get_exec_env()->ve_netns, e->ip.iniface); + if (!dev) { + printk(KERN_WARNING "CLUSTERIP: no such interface %s\n", e->ip.iniface); + return false; +Index: kernel/net/ipv4/netfilter/ipt_recent.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_recent.c 2008-11-24 15:57:31.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_recent.c 2008-11-24 16:08:08.000000000 +0100 +@@ -508,7 +508,7 @@ + #ifdef CONFIG_PROC_FS + if (err) + return err; +- proc_dir = proc_mkdir("ipt_recent", ve->ve_ns->net_ns->proc_net); ++ proc_dir = proc_mkdir("ipt_recent", ve->ve_netns->proc_net); + if (proc_dir == NULL) { + err = -ENOMEM; + goto out_mem; +@@ -525,7 +525,7 @@ + + static void fini_ipt_recent(struct ve_struct *ve) + { +- remove_proc_entry("ipt_recent", ve->ve_ns->net_ns->proc_net); ++ remove_proc_entry("ipt_recent", ve->ve_netns->proc_net); + #ifdef CONFIG_VE_IPTABLES + kfree(ve->_ipt_recent); + ve->_ipt_recent = NULL; +Index: kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c 2008-11-24 16:08:08.000000000 +0100 +@@ -422,7 +422,7 @@ + + int nf_conntrack_ipv4_compat_init(void) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct proc_dir_entry *proc, *proc_exp, *proc_stat; + + proc = proc_net_fops_create(net, "ip_conntrack", 0440, &ct_file_ops); +@@ -471,7 +471,7 @@ + + void nf_conntrack_ipv4_compat_fini(void) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + + unregister_sysctl_table(ve_ip_ct_sysctl_header); + if (!ve_is_super(get_exec_env())) +Index: kernel/net/ipv4/route.c +=================================================================== +--- kernel.orig/net/ipv4/route.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/ipv4/route.c 2008-11-24 16:08:08.000000000 +0100 +@@ -1684,7 +1684,7 @@ + #endif + rth->rt_iif = + rth->fl.iif = dev->ifindex; +- rth->u.dst.dev = get_exec_env()->ve_ns->net_ns->loopback_dev; ++ rth->u.dst.dev = get_exec_env()->ve_netns->loopback_dev; + dev_hold(rth->u.dst.dev); + rth->idev = in_dev_get(rth->u.dst.dev); + rth->fl.oif = 0; +@@ -1944,7 +1944,7 @@ + if (res.type == RTN_LOCAL) { + int result; + result = fib_validate_source(saddr, daddr, tos, +- get_exec_env()->ve_ns->net_ns->loopback_dev->ifindex, ++ get_exec_env()->ve_netns->loopback_dev->ifindex, + dev, &spec_dst, &itag); + if (result < 0) + goto martian_source; +@@ -2006,7 +2006,7 @@ + #endif + rth->rt_iif = + rth->fl.iif = dev->ifindex; +- rth->u.dst.dev = get_exec_env()->ve_ns->net_ns->loopback_dev; ++ rth->u.dst.dev = get_exec_env()->ve_netns->loopback_dev; + dev_hold(rth->u.dst.dev); + rth->idev = in_dev_get(rth->u.dst.dev); + rth->rt_gateway = daddr; +@@ -2275,7 +2275,7 @@ + + static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct net_device * loopback_dev = net->loopback_dev; + u32 tos = RT_FL_TOS(oldflp); + struct flowi fl = { .nl_u = { .ip4_u = +@@ -2736,7 +2736,7 @@ + if (iif) { + struct net_device *dev; + +- dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, iif); ++ dev = __dev_get_by_index(get_exec_env()->ve_netns, iif); + if (dev == NULL) { + err = -ENODEV; + goto errout_free; +Index: kernel/net/ipv6/addrconf.c +=================================================================== +--- kernel.orig/net/ipv6/addrconf.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/ipv6/addrconf.c 2008-11-24 16:08:08.000000000 +0100 +@@ -463,7 +463,7 @@ + struct inet6_dev *idev; + + read_lock(&dev_base_lock); +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + rcu_read_lock(); + idev = __in6_dev_get(dev); + if (idev) { +@@ -941,7 +941,7 @@ + read_lock(&dev_base_lock); + rcu_read_lock(); + +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + struct inet6_dev *idev; + struct inet6_ifaddr *ifa; + +@@ -1884,7 +1884,7 @@ + */ + int addrconf_set_dstaddr(void __user *arg) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct in6_ifreq ireq; + struct net_device *dev; + int err = -EINVAL; +@@ -1956,7 +1956,7 @@ + if (!valid_lft || prefered_lft > valid_lft) + return -EINVAL; + +- if ((dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex)) == NULL) ++ if ((dev = __dev_get_by_index(get_exec_env()->ve_netns, ifindex)) == NULL) + return -ENODEV; + + if ((idev = addrconf_add_dev(dev)) == NULL) +@@ -2008,7 +2008,7 @@ + struct inet6_dev *idev; + struct net_device *dev; + +- if ((dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex)) == NULL) ++ if ((dev = __dev_get_by_index(get_exec_env()->ve_netns, ifindex)) == NULL) + return -ENODEV; + + if ((idev = __in6_dev_get(dev)) == NULL) +@@ -2103,7 +2103,7 @@ + return; + } + +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + struct in_device * in_dev = __in_dev_get_rtnl(dev); + if (in_dev && (dev->flags & IFF_UP)) { + struct in_ifaddr * ifa; +@@ -2255,7 +2255,7 @@ + + static void ip6_tnl_add_linklocal(struct inet6_dev *idev) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct net_device *link_dev; + + /* first try to inherit the link-local address from the link device */ +@@ -3152,7 +3152,7 @@ + valid_lft = INFINITY_LIFE_TIME; + } + +- dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifm->ifa_index); ++ dev = __dev_get_by_index(get_exec_env()->ve_netns, ifm->ifa_index); + if (dev == NULL) + return -ENODEV; + +@@ -3336,7 +3336,7 @@ + s_ip_idx = ip_idx = cb->args[1]; + + idx = 0; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + if (idx < s_idx) + goto cont; + if (idx > s_idx) +@@ -3446,7 +3446,7 @@ + + ifm = nlmsg_data(nlh); + if (ifm->ifa_index) +- dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifm->ifa_index); ++ dev = __dev_get_by_index(get_exec_env()->ve_netns, ifm->ifa_index); + + if ((ifa = ipv6_get_ifaddr(addr, dev, 1)) == NULL) { + err = -EADDRNOTAVAIL; +@@ -3659,7 +3659,7 @@ + + read_lock(&dev_base_lock); + idx = 0; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { ++ for_each_netdev(get_exec_env()->ve_netns, dev) { + if (idx < s_idx) + goto cont; + if ((idev = in6_dev_get(dev)) == NULL) +Index: kernel/net/ipv6/af_inet6.c +=================================================================== +--- kernel.orig/net/ipv6/af_inet6.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/af_inet6.c 2008-11-24 16:08:08.000000000 +0100 +@@ -318,7 +318,7 @@ + err = -EINVAL; + goto out; + } +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, sk->sk_bound_dev_if); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, sk->sk_bound_dev_if); + if (!dev) { + err = -ENODEV; + goto out; +Index: kernel/net/ipv6/anycast.c +=================================================================== +--- kernel.orig/net/ipv6/anycast.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/anycast.c 2008-11-24 16:08:08.000000000 +0100 +@@ -114,10 +114,10 @@ + } else { + /* router, no matching interface: just pick one */ + +- dev = dev_get_by_flags(get_exec_env()->ve_ns->net_ns, IFF_UP, IFF_UP|IFF_LOOPBACK); ++ dev = dev_get_by_flags(get_exec_env()->ve_netns, IFF_UP, IFF_UP|IFF_LOOPBACK); + } + } else +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, ifindex); + + if (dev == NULL) { + err = -ENODEV; +@@ -198,7 +198,7 @@ + + write_unlock_bh(&ipv6_sk_ac_lock); + +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, pac->acl_ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, pac->acl_ifindex); + if (dev) { + ipv6_dev_ac_dec(dev, &pac->acl_addr); + dev_put(dev); +@@ -226,7 +226,7 @@ + if (pac->acl_ifindex != prev_index) { + if (dev) + dev_put(dev); +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, pac->acl_ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, pac->acl_ifindex); + prev_index = pac->acl_ifindex; + } + if (dev) +@@ -431,7 +431,7 @@ + if (dev) + return ipv6_chk_acast_dev(dev, addr); + read_lock(&dev_base_lock); +- for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) ++ for_each_netdev(get_exec_env()->ve_netns, dev) + if (ipv6_chk_acast_dev(dev, addr)) { + found = 1; + break; +@@ -455,7 +455,7 @@ + struct ac6_iter_state *state = ac6_seq_private(seq); + + state->idev = NULL; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { ++ for_each_netdev(get_exec_env()->ve_netns, state->dev) { + struct inet6_dev *idev; + + idev = in6_dev_get(state->dev); +Index: kernel/net/ipv6/datagram.c +=================================================================== +--- kernel.orig/net/ipv6/datagram.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/datagram.c 2008-11-24 16:08:08.000000000 +0100 +@@ -545,7 +545,7 @@ + if (!src_info->ipi6_ifindex) + return -EINVAL; + else { +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, src_info->ipi6_ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, src_info->ipi6_ifindex); + if (!dev) + return -ENODEV; + } +Index: kernel/net/ipv6/ipv6_sockglue.c +=================================================================== +--- kernel.orig/net/ipv6/ipv6_sockglue.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/ipv6_sockglue.c 2008-11-24 16:08:08.000000000 +0100 +@@ -545,7 +545,7 @@ + if (sk->sk_bound_dev_if && sk->sk_bound_dev_if != val) + goto e_inval; + +- if (__dev_get_by_index(get_exec_env()->ve_ns->net_ns, val) == NULL) { ++ if (__dev_get_by_index(get_exec_env()->ve_netns, val) == NULL) { + retv = -ENODEV; + break; + } +Index: kernel/net/ipv6/mcast.c +=================================================================== +--- kernel.orig/net/ipv6/mcast.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/mcast.c 2008-11-24 16:08:08.000000000 +0100 +@@ -216,7 +216,7 @@ + dst_release(&rt->u.dst); + } + } else +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, ifindex); + + if (dev == NULL) { + sock_kfree_s(sk, mc_lst, sizeof(*mc_lst)); +@@ -268,7 +268,7 @@ + *lnk = mc_lst->next; + write_unlock_bh(&ipv6_sk_mc_lock); + +- if ((dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, mc_lst->ifindex)) != NULL) { ++ if ((dev = dev_get_by_index(get_exec_env()->ve_netns, mc_lst->ifindex)) != NULL) { + struct inet6_dev *idev = in6_dev_get(dev); + + (void) ip6_mc_leave_src(sk, mc_lst, idev); +@@ -303,7 +303,7 @@ + dst_release(&rt->u.dst); + } + } else +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, ifindex); + + if (!dev) + return NULL; +@@ -334,7 +334,7 @@ + np->ipv6_mc_list = mc_lst->next; + write_unlock_bh(&ipv6_sk_mc_lock); + +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, mc_lst->ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, mc_lst->ifindex); + if (dev) { + struct inet6_dev *idev = in6_dev_get(dev); + +@@ -2334,7 +2334,7 @@ + struct igmp6_mc_iter_state *state = igmp6_mc_seq_private(seq); + + state->idev = NULL; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { ++ for_each_netdev(get_exec_env()->ve_netns, state->dev) { + struct inet6_dev *idev; + + idev = in6_dev_get(state->dev); +@@ -2463,7 +2463,7 @@ + + state->idev = NULL; + state->im = NULL; +- for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { ++ for_each_netdev(get_exec_env()->ve_netns, state->dev) { + struct inet6_dev *idev; + + idev = in6_dev_get(state->dev); +Index: kernel/net/ipv6/raw.c +=================================================================== +--- kernel.orig/net/ipv6/raw.c 2008-11-24 15:59:49.000000000 +0100 ++++ kernel/net/ipv6/raw.c 2008-11-24 16:08:08.000000000 +0100 +@@ -288,7 +288,7 @@ + if (!sk->sk_bound_dev_if) + goto out; + +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, sk->sk_bound_dev_if); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, sk->sk_bound_dev_if); + if (!dev) { + err = -ENODEV; + goto out; +Index: kernel/net/ipv6/reassembly.c +=================================================================== +--- kernel.orig/net/ipv6/reassembly.c 2008-11-24 16:00:27.000000000 +0100 ++++ kernel/net/ipv6/reassembly.c 2008-11-24 16:08:08.000000000 +0100 +@@ -217,7 +217,7 @@ + + fq_kill(fq); + +- dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, fq->iif); ++ dev = dev_get_by_index(get_exec_env()->ve_netns, fq->iif); + if (!dev) + goto out; + +Index: kernel/net/ipv6/route.c +=================================================================== +--- kernel.orig/net/ipv6/route.c 2008-11-24 16:02:40.000000000 +0100 ++++ kernel/net/ipv6/route.c 2008-11-24 16:08:08.000000000 +0100 +@@ -1052,7 +1052,7 @@ + + int ip6_route_add(struct fib6_config *cfg) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + int err; + struct rt6_info *rt = NULL; + struct net_device *dev = NULL; +@@ -1125,7 +1125,7 @@ + */ + if ((cfg->fc_flags & RTF_REJECT) || + (dev && (dev->flags&IFF_LOOPBACK) && !(addr_type&IPV6_ADDR_LOOPBACK))) { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + + /* hold loopback dev/idev if we haven't done so. */ + if (dev != net->loopback_dev) { +@@ -1832,7 +1832,7 @@ + const struct in6_addr *addr, + int anycast) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct rt6_info *rt = ip6_dst_alloc(); + + if (rt == NULL) +@@ -2140,7 +2140,7 @@ + if (rt->u.dst.dev) { + struct net_device *odev = rt->rt6i_dev; + if (rt == &ip6_null_entry) +- odev = get_exec_env()->ve_ns->net_ns->loopback_dev; ++ odev = get_exec_env()->ve_netns->loopback_dev; + NLA_PUT_U32(skb, RTA_OIF, odev->ifindex); + } + +@@ -2250,7 +2250,7 @@ + + void inet6_rt_notify(int event, struct rt6_info *rt, struct nl_info *info) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = get_exec_env()->ve_netns; + struct sk_buff *skb; + u32 pid = 0, seq = 0; + struct nlmsghdr *nlh = NULL; +Index: kernel/net/ipv6/sit.c +=================================================================== +--- kernel.orig/net/ipv6/sit.c 2008-11-24 15:56:52.000000000 +0100 ++++ kernel/net/ipv6/sit.c 2008-11-24 16:08:08.000000000 +0100 +@@ -191,7 +191,7 @@ + int i; + for (i=1; i<100; i++) { + sprintf(name, "sit%d", i); +- if (__dev_get_by_name(get_exec_env()->ve_ns->net_ns, name) == NULL) ++ if (__dev_get_by_name(get_exec_env()->ve_netns, name) == NULL) + break; + } + if (i==100) +@@ -201,7 +201,7 @@ + dev = alloc_netdev(sizeof(*t), name, ipip6_tunnel_setup); + if (dev == NULL) + return NULL; +- dev->nd_net = get_exec_env()->ve_ns->net_ns; ++ dev->nd_net = get_exec_env()->ve_netns; + nt = netdev_priv(dev); + dev->init = ipip6_tunnel_init; + nt->parms = *parms; +@@ -794,7 +794,7 @@ + } + + if (!tdev && tunnel->parms.link) +- tdev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, tunnel->parms.link); ++ tdev = __dev_get_by_index(get_exec_env()->ve_netns, tunnel->parms.link); + + if (tdev) { + dev->hard_header_len = tdev->hard_header_len + sizeof(struct iphdr); +@@ -876,7 +876,7 @@ + err = -ENOMEM; + goto free_tunnel; + } +- st->_ipip6_fb_tunnel_dev->nd_net = get_exec_env()->ve_ns->net_ns; ++ st->_ipip6_fb_tunnel_dev->nd_net = get_exec_env()->ve_netns; + st->_ipip6_fb_tunnel_dev->init = ipip6_fb_tunnel_init; + err = register_netdev(st->_ipip6_fb_tunnel_dev); + if (err < 0) +Index: kernel/net/netfilter/nf_conntrack_standalone.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_standalone.c 2008-11-24 16:02:16.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_standalone.c 2008-11-24 16:08:08.000000000 +0100 +@@ -303,7 +303,7 @@ + + static int nf_conntrack_init_ve_proc(struct ve_struct *ve) + { +- struct net *net = ve->ve_ns->net_ns; ++ struct net *net = ve->ve_netns; + struct proc_dir_entry *proc, *proc_stat; + int create_proc_net_stat_nf_conntrack = 1; + +@@ -330,7 +330,7 @@ + + static void nf_conntrack_fini_ve_proc(struct ve_struct *ve) + { +- struct net *net = ve->ve_ns->net_ns; ++ struct net *net = ve->ve_netns; + int remove_proc_net_stat_nf_conntrack = 1; + + #ifdef CONFIG_VE_IPTABLES +Index: kernel/net/netfilter/xt_hashlimit.c +=================================================================== +--- kernel.orig/net/netfilter/xt_hashlimit.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/netfilter/xt_hashlimit.c 2008-11-24 16:08:08.000000000 +0100 +@@ -748,7 +748,7 @@ + + static int init_xt_hashlimit(struct ve_struct *ve) + { +- struct proc_dir_entry *proc_net = ve->ve_ns->net_ns->proc_net; ++ struct proc_dir_entry *proc_net = ve->ve_netns->proc_net; + + #if defined(CONFIG_VE_IPTABLES) + if (ve->_xt_hashlimit) +@@ -788,7 +788,7 @@ + + static void fini_xt_hashlimit(struct ve_struct *ve) + { +- struct proc_dir_entry *proc_net = ve->ve_ns->net_ns->proc_net; ++ struct proc_dir_entry *proc_net = ve->ve_netns->proc_net; + + remove_proc_entry("ip6t_hashlimit", proc_net); + remove_proc_entry("ipt_hashlimit", proc_net); --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0103-VE-proc-root-nlink.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0103-VE-proc-root-nlink.patch @@ -0,0 +1,42 @@ +From 0b3117a59bc498ad0c58d5bd2a717350c7ff8ada Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 2 Jul 2008 19:55:20 +0400 +Subject: [PATCH 103/103] VE proc root nlink + +Correct nlink counter at proc root entry +* add entries from local tree, similar as in proc_getattr. +* inside ve add threads count instead of node total processes count. + it not fully correct, but that's good upper estimate + and ve threads counter already exists. +--- + fs/proc/root.c | 13 ++++++++++++- + 1 files changed, 12 insertions(+), 1 deletions(-) + +diff --git a/fs/proc/root.c b/fs/proc/root.c +index e73fca0..7fc4ba5 100644 +--- a/fs/proc/root.c ++++ b/fs/proc/root.c +@@ -148,8 +148,19 @@ void __init proc_root_init(void) + static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat + ) + { ++ struct ve_struct *ve = get_exec_env(); ++ + generic_fillattr(dentry->d_inode, stat); +- stat->nlink = proc_root.nlink + nr_processes(); ++ stat->nlink = proc_root.nlink; ++ if (ve_is_super(ve)) ++ stat->nlink += nr_processes(); ++#ifdef CONFIG_VE ++ else ++ /* not really processes count, it's not right, but it's ok */ ++ stat->nlink += atomic_read(&ve->pcounter); ++ /* the same logic as in the proc_getattr */ ++ stat->nlink += ve->proc_root->nlink - 2; ++#endif + return 0; + } + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0106-CPT-restore-conntrack-timer-fix.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0106-CPT-restore-conntrack-timer-fix.patch @@ -0,0 +1,57 @@ +From c8ae69f583b6939f86ca75dba8bfb67b518ab0e5 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Fri, 18 Jul 2008 15:25:39 +0400 +Subject: [PATCH 106/131] CPT restore conntrack timer fix + +One more fix of restore conntrack procedure. +Following code: + + if (ct->helper->timeout && !del_timer(&exp->timeout)) { + ... + } + +can lead to oops, as exp->timeout is not initialized at this point. + +Actually this optimization is not needed at all. +If expectation is dying, then we will let it die by its own death. + +Also in ip_conntrack_expect_insert() there is an initialization of +exp->timeout. And we can't just do add_timer() after that (as in add_timer() +we have BUG_ON(timer_pending(timer))), we must do mod_timer() instead. + +Bug #114209 +--- + kernel/cpt/rst_conntrack.c | 10 +--------- + 1 files changed, 1 insertions(+), 9 deletions(-) + +diff --git a/kernel/cpt/rst_conntrack.c b/kernel/cpt/rst_conntrack.c +index 1f48945..bfa6ef2 100644 +--- a/kernel/cpt/rst_conntrack.c ++++ b/kernel/cpt/rst_conntrack.c +@@ -121,13 +121,6 @@ static int undump_expect_list(struct ip_conntrack *ct, + return -ENOMEM; + } + +- if (ct->helper->timeout && !del_timer(&exp->timeout)) { +- /* Dying already. We can do nothing. */ +- write_unlock_bh(&ip_conntrack_lock); +- dprintk_ctx("conntrack expectation is dying\n"); +- continue; +- } +- + decode_tuple(&v.cpt_tuple, &exp->tuple, 0); + decode_tuple(&v.cpt_mask, &exp->mask, 0); + +@@ -144,8 +137,7 @@ static int undump_expect_list(struct ip_conntrack *ct, + } else + #endif + if (ct->helper->timeout) { +- exp->timeout.expires = jiffies + v.cpt_timeout; +- add_timer(&exp->timeout); ++ mod_timer(&exp->timeout, jiffies + v.cpt_timeout); + } + write_unlock_bh(&ip_conntrack_lock); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0082-CPT-dcache-lock.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0082-CPT-dcache-lock.patch @@ -0,0 +1,61 @@ +From df46b61362d3c5b1f0454a7a093da85f02c9a778 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:48 +0400 +Subject: [PATCH 082/103] CPT dcache lock + +Protect __d_path() call with dcache_lock spinlock. +Protect other checks with env->op_sem semaphore. + +Bug #98833 +--- + kernel/cpt/cpt_dump.c | 17 +++++++++++++++++ + 1 files changed, 17 insertions(+), 0 deletions(-) + +diff --git a/kernel/cpt/cpt_dump.c b/kernel/cpt/cpt_dump.c +index ea84dcb..72b7712 100644 +--- a/kernel/cpt/cpt_dump.c ++++ b/kernel/cpt/cpt_dump.c +@@ -1154,9 +1154,11 @@ static void check_unsupported_mounts(struct cpt_context *ctx, __u32 *caps, + list_for_each(p, &n->list) { + struct vfsmount *mnt = list_entry(p, struct vfsmount, mnt_list); + ++ spin_lock(&dcache_lock); + path = __d_path(mnt->mnt_root, mnt, + env->fs_root, env->fs_rootmnt, + path_buf, PAGE_SIZE); ++ spin_unlock(&dcache_lock); + if (IS_ERR(path)) + continue; + +@@ -1186,6 +1188,19 @@ int cpt_vps_caps(struct cpt_context *ctx, __u32 *caps) + if (env == NULL) + return -ESRCH; + ++ down_read(&env->op_sem); ++ err = -ESRCH; ++ if (!env->is_running) { ++ eprintk_ctx("CT is not running\n"); ++ goto out_noenv; ++ } ++ ++ err = -EBUSY; ++ if (env->is_locked) { ++ eprintk_ctx("CT is locked\n"); ++ goto out_noenv; ++ } ++ + *caps = flags & (1<nsproxy = old_ns; + set_exec_env(old_env); ++out_noenv: ++ up_read(&env->op_sem); + put_ve(env); + + return err; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0047-VE-add-ve-mem-class-to-sysfs.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0047-VE-add-ve-mem-class-to-sysfs.patch @@ -0,0 +1,115 @@ +From c6504c8d5283ade41cd3b3c6e1be9a9deafbdaab Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 25 Mar 2008 11:34:36 +0300 +Subject: [PATCH 47/48] [PATCH] VE: add ve mem class to sysfs + +Create in VE sysfs mem class and some its devices: +null, zero, full, random, urandom. + +Required for Ubuntu 8.04 and maybe some other new distro udev package. + +Bug #99897 +http://bugzilla.openvz.org/show_bug.cgi?id=840 +--- + include/linux/ve.h | 1 + + kernel/ve/vecalls.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 50 insertions(+), 0 deletions(-) + +diff --git a/include/linux/ve.h b/include/linux/ve.h +index 1a5b357..f9cc6aa 100644 +--- a/include/linux/ve.h ++++ b/include/linux/ve.h +@@ -211,6 +211,7 @@ struct ve_struct { + struct kset *class_obj_subsys; + struct kset *devices_subsys; + struct class *tty_class; ++ struct class *mem_class; + + #ifdef CONFIG_NET + struct class *net_class; +diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c +index 49ecfb8..616cf0b 100644 +--- a/kernel/ve/vecalls.c ++++ b/kernel/ve/vecalls.c +@@ -71,6 +71,7 @@ + #include + #include + #include ++#include + + int nr_ve = 1; /* One VE always exists. Compatibility with vestat */ + EXPORT_SYMBOL(nr_ve); +@@ -645,6 +646,44 @@ static inline void fini_ve_netclass(struct ve_struct *ve) { ; } + + extern struct kset devices_subsys; + ++static const struct { ++ unsigned minor; ++ char *name; ++} mem_class_devices [] = { ++ {3, "null"}, ++ {5, "zero"}, ++ {7, "full"}, ++ {8, "random"}, ++ {9, "urandom"}, ++ {0, NULL}, ++}; ++ ++static struct class *init_ve_mem_class(void) ++{ ++ int i; ++ struct class *ve_mem_class; ++ ++ ve_mem_class = class_create(THIS_MODULE, "mem"); ++ if (IS_ERR(ve_mem_class)) ++ return ve_mem_class; ++ for (i = 0; mem_class_devices[i].name; i++) ++ class_device_create(ve_mem_class, NULL, ++ MKDEV(MEM_MAJOR, mem_class_devices[i].minor), ++ NULL, mem_class_devices[i].name); ++ return ve_mem_class; ++} ++ ++ ++void fini_ve_mem_class(struct class *ve_mem_class) ++{ ++ int i; ++ ++ for (i = 0; mem_class_devices[i].name; i++) ++ class_device_destroy(ve_mem_class, ++ MKDEV(MEM_MAJOR, mem_class_devices[i].minor)); ++ class_destroy(ve_mem_class); ++} ++ + static int init_ve_sysfs(struct ve_struct *ve) + { + struct kset *subsys; +@@ -721,8 +760,17 @@ static int init_ve_sysfs(struct ve_struct *ve) + goto out_tty_class_register; + } + ++ ve->mem_class = init_ve_mem_class(); ++ if (IS_ERR(ve->mem_class)) { ++ err = PTR_ERR(ve->mem_class); ++ ve->mem_class = NULL; ++ goto out_mem_class_register; ++ } ++ + return err; + ++out_mem_class_register: ++ fini_ve_tty_class(ve->tty_class); + out_tty_class_register: + fini_ve_netclass(ve); + out_nc: +@@ -759,6 +807,7 @@ out: + + static void fini_ve_sysfs(struct ve_struct *ve) + { ++ fini_ve_mem_class(ve->mem_class); + fini_ve_tty_class(ve->tty_class); + fini_ve_netclass(ve); + subsystem_unregister(ve->devices_subsys); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0029-NETFILTER-fix-nf_conntrack_l4proto_generic-s-leak-o.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0029-NETFILTER-fix-nf_conntrack_l4proto_generic-s-leak-o.patch @@ -0,0 +1,64 @@ +From 73501b739013a19bc444de75a5db6f49c2ec9809 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 16:35:50 +0300 +Subject: [PATCH 29/48] NETFILTER: fix nf_conntrack_l4proto_generic's leak on VE stop + +--- + net/netfilter/nf_conntrack_core.c | 7 ------- + net/netfilter/nf_conntrack_proto.c | 1 + + 2 files changed, 1 insertions(+), 7 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index 5271220..030e14f 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -1029,7 +1029,6 @@ skip_ct_cache: + nf_conntrack_helper_fini(); + nf_conntrack_expect_fini(); + +- nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_generic); + nf_ct_proto_generic_sysctl_cleanup(); + nf_ct_free_hashtable(ve_nf_conntrack_hash, ve_nf_conntrack_vmalloc, + nf_conntrack_htable_size); +@@ -1040,7 +1039,6 @@ skip_ct_cache: + ve_nf_conntrack_max = 0; + nf_conntrack_proto_fini(); + #ifdef CONFIG_VE_IPTABLES +- ve_nf_conntrack_l4proto_generic = NULL; + kfree(ve->_nf_conntrack); + ve->_nf_conntrack = NULL; + #endif +@@ -1190,9 +1188,6 @@ int nf_conntrack_init(void) + ret = nf_ct_proto_generic_sysctl_init(); + if (ret < 0) + goto err_free_conntrack_slab; +- ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_generic); +- if (ret < 0) +- goto free_sys; + /* Don't NEED lock here, but good form anyway. */ + write_lock_bh(&nf_conntrack_lock); + for (i = 0; i < AF_MAX; i++) +@@ -1221,10 +1216,8 @@ int nf_conntrack_init(void) + + return 0; + +-free_sys: + #if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) + nf_ct_proto_generic_sysctl_cleanup(); +- ve_nf_conntrack_l4proto_generic = NULL; + #endif + out_fini_expect: + nf_conntrack_expect_fini(); +diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c +index d9a2b15..1384c03 100644 +--- a/net/netfilter/nf_conntrack_proto.c ++++ b/net/netfilter/nf_conntrack_proto.c +@@ -361,4 +361,5 @@ void nf_conntrack_proto_fini(void) + kfree(ve_nf_ct_protos[i]); + ve_nf_ct_protos[i] = NULL; + } ++ kfree(ve_nf_conntrack_l4proto_generic); + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0138-VE-NETFILTER-make-ip_conntrack_disable_ve0-option-do.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0138-VE-NETFILTER-make-ip_conntrack_disable_ve0-option-do.patch @@ -0,0 +1,42 @@ +From 7d7f1709db01ef933d1f711914f12998a7bdcc41 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 16 May 2008 17:39:02 +0400 +Subject: [PATCH] VE NETFILTER make ip_conntrack_disable_ve0 option do something + +--- + net/netfilter/nf_conntrack_standalone.c | 12 ++++++++++-- + 1 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c +index 55161c5..3b2df53 100644 +--- a/net/netfilter/nf_conntrack_standalone.c ++++ b/net/netfilter/nf_conntrack_standalone.c +@@ -511,6 +511,9 @@ int nf_conntrack_init_ve(void) + if (err) + goto out; + ++ if (ve_is_super(ve) && ip_conntrack_disable_ve0) ++ return 0; ++ + ve_nf_conntrack_checksum = nf_conntrack_checksum; + + err = nf_conntrack_init_ve_sysctl(ve); +@@ -533,8 +536,13 @@ out: + + void nf_conntrack_cleanup_ve(void) + { +- nf_conntrack_fini_ve_proc(get_exec_env()); +- nf_conntrack_fini_ve_sysctl(get_exec_env()); ++ struct ve_struct *ve = get_exec_env(); ++ ++ if (ve_is_super(ve) && ip_conntrack_disable_ve0) ++ goto cleanup; ++ nf_conntrack_fini_ve_proc(ve); ++ nf_conntrack_fini_ve_sysctl(ve); ++cleanup: + nf_conntrack_cleanup(); + } + EXPORT_SYMBOL(nf_conntrack_cleanup_ve); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0131-VE-stats-percpustat.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0131-VE-stats-percpustat.patch @@ -0,0 +1,134 @@ +From 6f4e06fb71e31e07621390434472a1ce59d667ab Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Thu, 7 Aug 2008 20:54:20 +0400 +Subject: [PATCH 131/131] VE stats percpustat + +Decrease ve_struct size in case of huge NR_CPUS +kstat_lat_pcpu_struct contains array of NR_CPUS elements. +Replace it with alloc_percpu data which helps to keep ve_struct +relatively small and prevents allocation fails of huge order. + +Mostly relevant to IA64, where NR_CPUS=1024 + +Bug #97575 +--- + include/linux/vzstat.h | 8 ++++---- + kernel/sched.c | 7 +++++++ + kernel/ve/ve.c | 5 ++++- + kernel/ve/vecalls.c | 13 ++++++++++++- + 4 files changed, 27 insertions(+), 6 deletions(-) + +Index: kernel/include/linux/vzstat.h +=================================================================== +--- kernel.orig/include/linux/vzstat.h 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/include/linux/vzstat.h 2008-11-24 16:01:59.000000000 +0100 +@@ -36,7 +36,7 @@ + cycles_t avg[3]; + }; + struct kstat_lat_pcpu_struct { +- struct kstat_lat_pcpu_snap_struct cur[NR_CPUS]; ++ struct kstat_lat_pcpu_snap_struct *cur; + cycles_t max_snap; + struct kstat_lat_snap_struct last; + cycles_t avg[3]; +@@ -121,7 +121,7 @@ + { + struct kstat_lat_pcpu_snap_struct *cur; + +- cur = &p->cur[cpu]; ++ cur = per_cpu_ptr(p->cur, cpu); + write_seqcount_begin(&cur->lock); + cur->count++; + if (cur->maxlat < dur) +@@ -152,8 +152,8 @@ + cycles_t m; + + memset(&p->last, 0, sizeof(p->last)); +- for (cpu = 0; cpu < NR_CPUS; cpu++) { +- cur = &p->cur[cpu]; ++ for_each_online_cpu(cpu) { ++ cur = per_cpu_ptr(p->cur, cpu); + do { + i = read_seqcount_begin(&cur->lock); + memcpy(&snap, cur, sizeof(snap)); +Index: kernel/kernel/sched.c +=================================================================== +--- kernel.orig/kernel/sched.c 2008-11-24 15:57:08.000000000 +0100 ++++ kernel/kernel/sched.c 2008-11-24 16:01:59.000000000 +0100 +@@ -385,7 +385,12 @@ + #endif + } + ++#ifdef CONFIG_SMP ++static struct percpu_data kstat_lat_pcpu_stats; ++#endif ++static struct kstat_lat_pcpu_snap_struct kstat_lat_pcpu_stats_data[NR_CPUS]; + struct kernel_stat_glob kstat_glob; ++ + DEFINE_SPINLOCK(kstat_glb_lock); + EXPORT_SYMBOL(kstat_glob); + EXPORT_SYMBOL(kstat_glb_lock); +@@ -7167,6 +7172,8 @@ + int highest_cpu = 0; + int i, j; + ++ kstat_glob.sched_lat.cur = static_percpu_ptr(&kstat_lat_pcpu_stats, ++ kstat_lat_pcpu_stats_data); + for_each_possible_cpu(i) { + struct rt_prio_array *array; + struct rq *rq; +Index: kernel/kernel/ve/ve.c +=================================================================== +--- kernel.orig/kernel/ve/ve.c 2008-11-24 16:00:05.000000000 +0100 ++++ kernel/kernel/ve/ve.c 2008-11-24 16:01:59.000000000 +0100 +@@ -120,9 +120,10 @@ + #ifdef CONFIG_SMP + static struct { + void *ptrs[NR_CPUS]; +-} ve0_cpu_stats; ++} ve0_cpu_stats, ve0_lat_pcpu_stats; + #endif + static struct ve_cpu_stats ve0_cpu_stats_data[NR_CPUS]; ++static struct kstat_lat_pcpu_snap_struct ve0_lat_pcpu_stats_data[NR_CPUS]; + + LIST_HEAD(ve_list_head); + rwlock_t ve_list_lock = RW_LOCK_UNLOCKED; +@@ -147,6 +148,8 @@ + + ve->cpu_stats = static_percpu_ptr(&ve0_cpu_stats, + ve0_cpu_stats_data); ++ ve->sched_lat_ve.cur = static_percpu_ptr(&ve0_lat_pcpu_stats, ++ ve0_lat_pcpu_stats_data); + + list_add(&ve->ve_list, &ve_list_head); + } +Index: kernel/kernel/ve/vecalls.c +=================================================================== +--- kernel.orig/kernel/ve/vecalls.c 2008-11-24 16:01:56.000000000 +0100 ++++ kernel/kernel/ve/vecalls.c 2008-11-24 16:01:59.000000000 +0100 +@@ -1374,13 +1374,24 @@ + static inline int init_ve_cpustats(struct ve_struct *ve) + { + ve->cpu_stats = alloc_percpu(struct ve_cpu_stats); +- return ve->cpu_stats == NULL ? -ENOMEM : 0; ++ if (ve->cpu_stats == NULL) ++ return -ENOMEM; ++ ve->sched_lat_ve.cur = alloc_percpu(struct kstat_lat_pcpu_snap_struct); ++ if (ve->sched_lat_ve.cur == NULL) ++ goto fail; ++ return 0; ++ ++fail: ++ free_percpu(ve->cpu_stats); ++ return -ENOMEM; + } + + static inline void free_ve_cpustats(struct ve_struct *ve) + { + free_percpu(ve->cpu_stats); + ve->cpu_stats = NULL; ++ free_percpu(ve->sched_lat_ve.cur); ++ ve->sched_lat_ve.cur = NULL; + } + + static int alone_in_pgrp(struct task_struct *tsk) --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0053-CPT-add-support-for-network-statistics.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0053-CPT-add-support-for-network-statistics.patch @@ -0,0 +1,369 @@ +From b343c030e374d9eb767d27df01e85dd17567f561 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Wed, 26 Mar 2008 12:12:35 +0300 +Subject: [PATCH 52/67] CPT: add support for network statistics + +In current implementation network statistics are not dumped at all. +This patch allows to save/restore network statistics on all supported network +devices. + +Statistics is restored on current cpu. +--- + drivers/net/venet_core.c | 14 ------ + drivers/net/vzethdev.c | 6 --- + include/linux/cpt_image.h | 33 +++++++++++++++ + include/linux/venet.h | 14 ++++++ + include/linux/veth.h | 6 +++ + kernel/cpt/cpt_net.c | 49 ++++++++++++++++++++++ + kernel/cpt/rst_net.c | 99 +++++++++++++++++++++++++++++++++++++++----- + 7 files changed, 189 insertions(+), 32 deletions(-) + +diff --git a/drivers/net/venet_core.c b/drivers/net/venet_core.c +index 576a0b3..8355627 100644 +--- a/drivers/net/venet_core.c ++++ b/drivers/net/venet_core.c +@@ -53,20 +53,6 @@ struct list_head ip_entry_hash_table[VEIP_HASH_SZ]; + rwlock_t veip_hash_lock = RW_LOCK_UNLOCKED; + LIST_HEAD(veip_lh); + +-struct venet_stats { +- struct net_device_stats stats; +- struct net_device_stats *real_stats; +-}; +- +-static inline struct net_device_stats * +-venet_stats(struct net_device *dev, int cpu) +-{ +- struct venet_stats *stats; +- stats = (struct venet_stats*)dev->priv; +- return per_cpu_ptr(stats->real_stats, cpu); +-} +- +- + #define ip_entry_hash_function(ip) (ntohl(ip) & (VEIP_HASH_SZ - 1)) + + void ip_entry_hash(struct ip_entry_struct *entry, struct veip_struct *veip) +diff --git a/drivers/net/vzethdev.c b/drivers/net/vzethdev.c +index 5fe9fae..2c52593 100644 +--- a/drivers/net/vzethdev.c ++++ b/drivers/net/vzethdev.c +@@ -57,12 +57,6 @@ static LIST_HEAD(veth_hwaddr_list); + static DEFINE_RWLOCK(ve_hwaddr_lock); + static DECLARE_MUTEX(hwaddr_sem); + +-static inline struct net_device_stats * +-veth_stats(struct net_device *dev, int cpuid) +-{ +- return per_cpu_ptr(veth_from_netdev(dev)->real_stats, cpuid); +-} +- + struct net_device * veth_dev_start(char *dev_addr, char *name); + + struct veth_struct *hwaddr_entry_lookup(char *name) +diff --git a/include/linux/cpt_image.h b/include/linux/cpt_image.h +index 045bc1f..158980e 100644 +--- a/include/linux/cpt_image.h ++++ b/include/linux/cpt_image.h +@@ -98,6 +98,7 @@ enum _cpt_object_type + CPT_OBJ_NET_TUNTAP, + CPT_OBJ_NET_HWADDR, + CPT_OBJ_NET_VETH, ++ CPT_OBJ_NET_STATS, + }; + + #define CPT_ALIGN(n) (((n)+7)&~7) +@@ -1524,6 +1525,38 @@ struct cpt_hwaddr_image { + __u8 cpt_dev_addr[32]; + } __attribute__ ((aligned (8))); + ++struct cpt_netstats_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_rx_packets; ++ __u64 cpt_tx_packets; ++ __u64 cpt_rx_bytes; ++ __u64 cpt_tx_bytes; ++ __u64 cpt_rx_errors; ++ __u64 cpt_tx_errors; ++ __u64 cpt_rx_dropped; ++ __u64 cpt_tx_dropped; ++ __u64 cpt_multicast; ++ __u64 cpt_collisions; ++ __u64 cpt_rx_length_errors; ++ __u64 cpt_rx_over_errors; ++ __u64 cpt_rx_crc_errors; ++ __u64 cpt_rx_frame_errors; ++ __u64 cpt_rx_fifo_errors; ++ __u64 cpt_rx_missed_errors; ++ __u64 cpt_tx_aborted_errors; ++ __u64 cpt_tx_carrier_errors; ++ __u64 cpt_tx_fifo_errors; ++ __u64 cpt_tx_heartbeat_errors; ++ __u64 cpt_tx_window_errors; ++ __u64 cpt_rx_compressed; ++ __u64 cpt_tx_compressed; ++ __u64 pad[4]; ++} __attribute__ ((aligned (8))); ++ + struct cpt_ifaddr_image { + __u64 cpt_next; + __u32 cpt_object; +diff --git a/include/linux/venet.h b/include/linux/venet.h +index 3a6903a..14cf89e 100644 +--- a/include/linux/venet.h ++++ b/include/linux/venet.h +@@ -15,11 +15,17 @@ + #include + #include + #include ++#include + + #define VEIP_HASH_SZ 512 + + struct ve_struct; + struct venet_stat; ++struct venet_stats { ++ struct net_device_stats stats; ++ struct net_device_stats *real_stats; ++}; ++ + struct ip_entry_struct + { + struct ve_addr_struct addr; +@@ -39,6 +45,14 @@ struct veip_struct + envid_t veid; + }; + ++static inline struct net_device_stats * ++venet_stats(struct net_device *dev, int cpu) ++{ ++ struct venet_stats *stats; ++ stats = (struct venet_stats*)dev->priv; ++ return per_cpu_ptr(stats->real_stats, cpu); ++} ++ + /* veip_hash_lock should be taken for write by caller */ + void ip_entry_hash(struct ip_entry_struct *entry, struct veip_struct *veip); + /* veip_hash_lock should be taken for write by caller */ +diff --git a/include/linux/veth.h b/include/linux/veth.h +index 9d0273f..34cfe2b 100644 +--- a/include/linux/veth.h ++++ b/include/linux/veth.h +@@ -36,4 +36,10 @@ static inline struct net_device * veth_to_netdev(struct veth_struct *veth) + } + #endif + ++static inline struct net_device_stats * ++veth_stats(struct net_device *dev, int cpuid) ++{ ++ return per_cpu_ptr(veth_from_netdev(dev)->real_stats, cpuid); ++} ++ + #endif +diff --git a/kernel/cpt/cpt_net.c b/kernel/cpt/cpt_net.c +index 4fe5ca7..2926d24 100644 +--- a/kernel/cpt/cpt_net.c ++++ b/kernel/cpt/cpt_net.c +@@ -63,6 +63,53 @@ static void cpt_dump_veth(struct net_device *dev, struct cpt_context * ctx) + return; + } + ++static void cpt_dump_netstats(struct net_device *dev, struct cpt_context * ctx) ++{ ++ struct cpt_netstats_image *n; ++ struct net_device_stats *stats; ++ ++ if (!dev->get_stats) ++ return; ++ ++ n = cpt_get_buf(ctx); ++ stats = dev->get_stats(dev); ++ cpt_open_object(NULL, ctx); ++ ++ n->cpt_next = CPT_NULL; ++ n->cpt_object = CPT_OBJ_NET_STATS; ++ n->cpt_hdrlen = sizeof(*n); ++ n->cpt_content = CPT_CONTENT_VOID; ++ ++ n->cpt_rx_packets = stats->rx_packets; ++ n->cpt_tx_packets = stats->tx_packets; ++ n->cpt_rx_bytes = stats->rx_bytes; ++ n->cpt_tx_bytes = stats->tx_bytes; ++ n->cpt_rx_errors = stats->rx_errors; ++ n->cpt_tx_errors = stats->tx_errors; ++ n->cpt_rx_dropped = stats->rx_dropped; ++ n->cpt_tx_dropped = stats->tx_dropped; ++ n->cpt_multicast = stats->multicast; ++ n->cpt_collisions = stats->collisions; ++ n->cpt_rx_length_errors = stats->rx_length_errors; ++ n->cpt_rx_over_errors = stats->rx_over_errors; ++ n->cpt_rx_crc_errors = stats->rx_crc_errors; ++ n->cpt_rx_frame_errors = stats->rx_frame_errors; ++ n->cpt_rx_fifo_errors = stats->rx_fifo_errors; ++ n->cpt_rx_missed_errors = stats->rx_missed_errors; ++ n->cpt_tx_aborted_errors = stats->tx_aborted_errors; ++ n->cpt_tx_carrier_errors = stats->tx_carrier_errors; ++ n->cpt_tx_fifo_errors = stats->tx_fifo_errors; ++ n->cpt_tx_heartbeat_errors = stats->tx_heartbeat_errors; ++ n->cpt_tx_window_errors = stats->tx_window_errors; ++ n->cpt_rx_compressed = stats->rx_compressed; ++ n->cpt_tx_compressed = stats->tx_compressed; ++ ++ ctx->write(n, sizeof(*n), ctx); ++ cpt_close_object(ctx); ++ cpt_release_buf(ctx); ++ return; ++} ++ + static void cpt_dump_tuntap(struct net_device *dev, struct cpt_context * ctx) + { + #if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) +@@ -144,6 +191,8 @@ int cpt_dump_link(struct cpt_context * ctx) + ctx->write(&hw, sizeof(hw), ctx); + cpt_close_object(ctx); + ++ cpt_dump_netstats(dev, ctx); ++ + cpt_pop_object(&saved_obj, ctx); + + cpt_close_object(ctx); +diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c +index df6b659..2cb47a4 100644 +--- a/kernel/cpt/rst_net.c ++++ b/kernel/cpt/rst_net.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include "cpt_obj.h" + #include "cpt_context.h" +@@ -402,6 +403,73 @@ static int rst_restore_veth(loff_t pos, struct net_device *dev, + return err; + } + ++static int rst_restore_netstats(loff_t pos, struct net_device *dev, ++ struct cpt_context * ctx) ++{ ++ struct cpt_netstats_image *n; ++ struct net_device_stats *stats = NULL; ++ struct net_device *lo = get_exec_env()->ve_ns->net_ns->loopback_dev; ++ int err; ++ ++ if (!dev->get_stats) ++ return 0; ++ ++ n = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_NET_STATS, pos, n, ctx); ++ if (err) ++ goto out; ++ BUG_ON(sizeof(struct cpt_netstats_image) != n->cpt_hdrlen); ++ preempt_disable(); ++ if (dev == lo) ++ stats = netdev_priv(lo); ++#if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) ++ else if (KSYMREF(veth_open) && dev->open == KSYMREF(veth_open)) ++ stats = veth_stats(dev, smp_processor_id()); ++#endif ++#if defined(CONFIG_VE_NETDEV) || defined(CONFIG_VE_NETDEV_MODULE) ++ else if (dev == get_exec_env()->_venet_dev) ++ stats = venet_stats(dev, smp_processor_id()); ++#endif ++#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) ++ if (dev->open == tun_net_open) ++ stats = &dev->stats; ++#endif ++ if (!stats) { ++ err = -ENODEV; ++ eprintk_ctx("Network device %s is not supported\n", dev->name); ++ goto out; ++ } ++ ++ stats->rx_packets = n->cpt_rx_packets; ++ stats->tx_packets = n->cpt_tx_packets; ++ stats->rx_bytes = n->cpt_rx_bytes; ++ stats->tx_bytes = n->cpt_tx_bytes; ++ stats->rx_errors = n->cpt_rx_errors; ++ stats->tx_errors = n->cpt_tx_errors; ++ stats->rx_dropped = n->cpt_rx_dropped; ++ stats->tx_dropped = n->cpt_tx_dropped; ++ stats->multicast = n->cpt_multicast; ++ stats->collisions = n->cpt_collisions; ++ stats->rx_length_errors = n->cpt_rx_length_errors; ++ stats->rx_over_errors = n->cpt_rx_over_errors; ++ stats->rx_crc_errors = n->cpt_rx_crc_errors; ++ stats->rx_frame_errors = n->cpt_rx_frame_errors; ++ stats->rx_fifo_errors = n->cpt_rx_fifo_errors; ++ stats->rx_missed_errors = n->cpt_rx_missed_errors; ++ stats->tx_aborted_errors = n->cpt_tx_aborted_errors; ++ stats->tx_carrier_errors = n->cpt_tx_carrier_errors; ++ stats->tx_fifo_errors = n->cpt_tx_fifo_errors; ++ stats->tx_heartbeat_errors = n->cpt_tx_heartbeat_errors; ++ stats->tx_window_errors = n->cpt_tx_window_errors; ++ stats->rx_compressed = n->cpt_rx_compressed; ++ stats->tx_compressed = n->cpt_tx_compressed; ++ ++out: ++ preempt_enable(); ++ cpt_release_buf(ctx); ++ return err; ++} ++ + int rst_restore_netdev(struct cpt_context *ctx) + { + struct net *net = get_exec_env()->ve_ns->net_ns; +@@ -486,9 +554,8 @@ int rst_restore_netdev(struct cpt_context *ctx) + if (err) + eprintk_ctx("dev_change_flags err: %d\n", err); + } +- if (pos < sec + di.cpt_next) { ++ while (pos < sec + di.cpt_next) { + struct cpt_object_hdr hdr; +- struct cpt_hwaddr_image hw; + err = ctx->pread(&hdr, sizeof(struct cpt_object_hdr), + ctx, pos); + if (err) +@@ -500,18 +567,26 @@ int rst_restore_netdev(struct cpt_context *ctx) + di.cpt_name, err); + goto out; + } +- pos += hdr.cpt_next; +- } +- /* Restore hardware address */ +- err = rst_get_object(CPT_OBJ_NET_HWADDR, pos, +- &hw, ctx); +- if (err) +- goto out; ++ } else if (hdr.cpt_object == CPT_OBJ_NET_HWADDR) { ++ /* Restore hardware address */ ++ struct cpt_hwaddr_image hw; ++ err = rst_get_object(CPT_OBJ_NET_HWADDR, ++ pos, &hw, ctx); ++ if (err) ++ goto out; + BUG_ON(sizeof(hw.cpt_dev_addr) != + sizeof(dev->dev_addr)); +- memcpy(dev->dev_addr, hw.cpt_dev_addr, +- sizeof(hw.cpt_dev_addr)); +- pos += hw.cpt_next; ++ memcpy(dev->dev_addr, hw.cpt_dev_addr, ++ sizeof(hw.cpt_dev_addr)); ++ } else if (hdr.cpt_object == CPT_OBJ_NET_STATS) { ++ err = rst_restore_netstats(pos, dev, ctx); ++ if (err) { ++ eprintk_ctx("rst stats %s: %d\n", ++ di.cpt_name, err); ++ goto out; ++ } ++ } ++ pos += hdr.cpt_next; + } + } else { + eprintk_ctx("unknown interface 2 %s\n", di.cpt_name); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0116-UBC-net-setcharge-warning-fix.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0116-UBC-net-setcharge-warning-fix.patch @@ -0,0 +1,100 @@ +From a96cbb24e5e820a4457b6520e2590951348028e1 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Fri, 18 Jul 2008 15:25:48 +0400 +Subject: [PATCH 116/131] UBC net setcharge warning fix + +ub: ub_sock_tcp_chargesend warning if called via tcp_fragment + +BUG: warning at kernel/ub/ub_net.c:335/__ub_skb_set_charge() (Tainted: P ) + [] ub_sock_tcp_chargesend+0x86/0x171 + [] tcp_fragment+0xaf/0x452 + [] tcp_sacktag_write_queue+0x30f/0x71e + [] tcp_ack+0x206/0x184c + [] __tcp_push_pending_frames+0x4ab/0x79e + [] tcp_rcv_established+0x76b/0x884 + [] tcp_v4_do_rcv+0x40/0x329 + [] ipt_hook+0x28/0x30 [iptable_filter] + [] nf_iterate+0x30/0x61 + [] tcp_v4_rcv+0x981/0x9d5 + [] ip_local_deliver+0x1a6/0x26f + [] ip_rcv+0x4fb/0x53e + [] netif_receive_skb+0x306/0x3ac + [] e1000_clean_rx_irq+0x34a/0x41f [e1000] + [] e1000_clean+0x6b/0x222 [e1000] + [] net_rx_action+0x92/0x175 + [] __do_softirq+0x84/0x109 + [] do_softirq+0x36/0x3a + [] do_IRQ+0xad/0xb6 + [] common_interrupt+0x1a/0x20 + [] mwait_idle+0x25/0x38 + [] cpu_idle+0x5e/0x74 + ======================= + +The warning occures when we try to charge skb that is already charged. +This is correct for the case. The size of underlying skb is changed and +we uncharge/charge to keep situation sane. + +ub_skb_uncharge is equivalent to + ub_sock_ret_wreserv + ub_skb_set_uncharge +which is just correct for the case. + +Bug #115332 +--- + include/bc/net.h | 2 -- + kernel/bc/net.c | 8 -------- + net/ipv4/tcp_output.c | 4 +--- + 3 files changed, 1 insertions(+), 13 deletions(-) + +diff --git a/include/bc/net.h b/include/bc/net.h +index 5f82aff..32f33b9 100644 +--- a/include/bc/net.h ++++ b/include/bc/net.h +@@ -63,8 +63,6 @@ UB_DECLARE_VOID_FUNC(ub_sock_ret_wreserv(struct sock *sk, int bufid, + unsigned long size, unsigned long ressize)) + UB_DECLARE_FUNC(int, ub_sock_tcp_chargesend(struct sock *sk, + struct sk_buff *skb, enum ub_severity strict)) +-UB_DECLARE_VOID_FUNC(ub_sock_tcp_unchargesend(struct sock *sk, +- unsigned long size)) + UB_DECLARE_FUNC(int, ub_sock_tcp_chargepage(struct sock *sk)) + UB_DECLARE_VOID_FUNC(ub_sock_tcp_detachpage(struct sock *sk)) + +diff --git a/kernel/bc/net.c b/kernel/bc/net.c +index ad88b86..8f7512f 100644 +--- a/kernel/bc/net.c ++++ b/kernel/bc/net.c +@@ -1135,14 +1135,6 @@ int ub_sock_tcp_chargesend(struct sock *sk, struct sk_buff *skb, + } + EXPORT_SYMBOL(ub_sock_tcp_chargesend); + +-void ub_sock_tcp_unchargesend(struct sock *sk, unsigned long size) +-{ +- if (unlikely(!sock_has_ubc(sk))) +- return; +- /* see ub_tcpsndbuf_uncharge */ +- ub_sock_ret_wreserv(sk, UB_TCPSNDBUF, size, sock_bc(sk)->poll_reserv); +-} +- + /* + * Initialization + */ +diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c +index 3e0a33a..f414220 100644 +--- a/net/ipv4/tcp_output.c ++++ b/net/ipv4/tcp_output.c +@@ -718,11 +718,9 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss + nsize = 0; + + if (skb_cloned(skb) && skb_is_nonlinear(skb)) { +- unsigned long chargesize; +- chargesize = skb_bc(skb)->charged; + if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) + return -ENOMEM; +- ub_sock_tcp_unchargesend(sk, chargesize); ++ ub_skb_uncharge(skb); + ub_tcpsndbuf_charge_forced(sk, skb); + } + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0148-MS-NETNS-Double-free-in-netlink_release.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0148-MS-NETNS-Double-free-in-netlink_release.patch @@ -0,0 +1,51 @@ +From 00040a3ad6402c8493ad8a7c35d911da3e4204f3 Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Fri, 18 Jan 2008 23:53:31 -0800 +Subject: [PATCH] MS NETNS Double free in netlink_release + +mainstream commit 869e58f87094b1e8a0df49232e4a5172678d46c9 + +Netlink protocol table is global for all namespaces. Some netlink +protocols have been virtualized, i.e. they have per/namespace netlink +socket. This difference can easily lead to double free if more than 1 +namespace is started. Count the number of kernel netlink sockets to +track that this table is not used any more. + +Signed-off-by: Denis V. Lunev +Tested-by: Alexey Dobriyan +Signed-off-by: David S. Miller +--- + net/netlink/af_netlink.c | 10 +++++++--- + 1 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index 4cb562d..fcdd345 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -486,9 +486,12 @@ static int netlink_release(struct socket *sock) + + netlink_table_grab(); + if (netlink_is_kernel(sk)) { +- kfree(nl_table[sk->sk_protocol].listeners); +- nl_table[sk->sk_protocol].module = NULL; +- nl_table[sk->sk_protocol].registered = 0; ++ BUG_ON(nl_table[sk->sk_protocol].registered == 0); ++ if (--nl_table[sk->sk_protocol].registered == 0) { ++ kfree(nl_table[sk->sk_protocol].listeners); ++ nl_table[sk->sk_protocol].module = NULL; ++ nl_table[sk->sk_protocol].registered = 0; ++ } + } else if (nlk->subscriptions) + netlink_update_listeners(sk); + netlink_table_ungrab(); +@@ -1393,6 +1396,7 @@ netlink_kernel_create(struct net *net, int unit, unsigned int groups, + nl_table[unit].registered = 1; + } else { + kfree(listeners); ++ nl_table[unit].registered++; + } + netlink_table_ungrab(); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0010-CPT-select-PM-as-well.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0010-CPT-select-PM-as-well.patch @@ -0,0 +1,27 @@ +From 15938557b7ee1cebc893c676e0574a990fb79947 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 4 Mar 2008 15:33:53 +0300 +Subject: [PATCH 10/48] CPT: select PM as well + +Just PM_SLEEP is not enough, because selecting logic doesn't select second and +all other levels of dependencies (which is probably a bug in build system +depending on how to look at it). +--- + kernel/Kconfig.openvz | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/kernel/Kconfig.openvz b/kernel/Kconfig.openvz +index 5cdcdd3..5d5d6f0 100644 +--- a/kernel/Kconfig.openvz ++++ b/kernel/Kconfig.openvz +@@ -70,6 +70,7 @@ config VZ_WDOG + config VZ_CHECKPOINT + tristate "Checkpointing & restoring Virtual Environments" + depends on VE_CALLS && INET ++ select PM + select PM_SLEEP + select TUN + select VE_ETHDEV +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0068-Leave-irq-state-alone-during-call_console_drivers.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0068-Leave-irq-state-alone-during-call_console_drivers.patch @@ -0,0 +1,31 @@ +From 551b0650d9b192116226b8f55bdeda4953a062d6 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 22 Apr 2008 15:20:19 +0400 +Subject: [PATCH 67/67] Leave irq state alone during call_console_drivers() + +Mainline does so at least. + +http://bugzilla.openvz.org/show_bug.cgi?id=812 +--- + kernel/printk.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/kernel/printk.c b/kernel/printk.c +index bd62078..0c91174 100644 +--- a/kernel/printk.c ++++ b/kernel/printk.c +@@ -1105,9 +1105,9 @@ static unsigned long do_release_console_sem(unsigned long *flags) + _con_start = con_start; + _log_end = log_end; + con_start = log_end; /* Flush */ +- spin_unlock_irqrestore(&logbuf_lock, *flags); ++ spin_unlock(&logbuf_lock); + call_console_drivers(_con_start, _log_end); +- spin_lock_irqsave(&logbuf_lock, *flags); ++ spin_lock(&logbuf_lock); + } + out: + return wake_klogd; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0104-VE-ipv6-ifdown-fix.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0104-VE-ipv6-ifdown-fix.patch @@ -0,0 +1,62 @@ +From 12a4a44de439ee8a91806c8aefef61059b26eb31 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 14:46:33 +0400 +Subject: [PATCH 104/131] VE ipv6 ifdown fix + +Correct ipv6 ifdown at network namespace destroy. +--- + net/ipv6/addrconf.c | 24 ++++++++++++++++++++++++ + 1 files changed, 24 insertions(+), 0 deletions(-) + +diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c +index c0ef49f..ba5b3e3 100644 +--- a/net/ipv6/addrconf.c ++++ b/net/ipv6/addrconf.c +@@ -4315,6 +4315,25 @@ int unregister_inet6addr_notifier(struct notifier_block *nb) + + EXPORT_SYMBOL(unregister_inet6addr_notifier); + ++static void addrconf_net_exit(struct net *net) ++{ ++ struct net_device *dev; ++ ++ rtnl_lock(); ++ /* clean dev list */ ++ for_each_netdev(net, dev) { ++ if (__in6_dev_get(dev) == NULL) ++ continue; ++ addrconf_ifdown(dev, 1); ++ } ++ addrconf_ifdown(net->loopback_dev, 2); ++ rtnl_unlock(); ++} ++ ++static struct pernet_operations addrconf_net_ops = { ++ .exit = addrconf_net_exit, ++}; ++ + /* + * Init / cleanup code + */ +@@ -4362,6 +4381,10 @@ int __init addrconf_init(void) + ip6_blk_hole_entry.rt6i_idev = in6_dev_get(init_net.loopback_dev); + #endif + ++ err = register_pernet_device(&addrconf_net_ops); ++ if (err) ++ return err; ++ + register_netdevice_notifier(&ipv6_dev_notf); + + addrconf_verify(0); +@@ -4397,6 +4420,7 @@ void __exit addrconf_cleanup(void) + int i; + + unregister_netdevice_notifier(&ipv6_dev_notf); ++ unregister_pernet_device(&addrconf_net_ops); + + #ifdef CONFIG_SYSCTL + addrconf_sysctl_unregister(&global_ipv6_devconf_dflt); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0039-CPT-disable-for-hidden-pid-namespaces.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0039-CPT-disable-for-hidden-pid-namespaces.patch @@ -0,0 +1,31 @@ +From bbbb51672f190dfeed6b8866ed2dd2e675af932e Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 17 Mar 2008 15:46:43 +0300 +Subject: [PATCH 39/48] CPT: disable for "hidden" pid namespaces + +CPT is currently broken if session id or process group id not presented in +global pid ns. +--- + kernel/cpt/cpt_dump.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/kernel/cpt/cpt_dump.c b/kernel/cpt/cpt_dump.c +index 4ff03f0..ea84dcb 100644 +--- a/kernel/cpt/cpt_dump.c ++++ b/kernel/cpt/cpt_dump.c +@@ -875,6 +875,12 @@ int cpt_dump(struct cpt_context *ctx) + goto out_noenv; + if (!env->is_locked) + goto out_noenv; ++ err = -EINVAL; ++ if (env->ve_ns->pid_ns->flags & PID_NS_HIDDEN) { ++ printk(KERN_WARNING "CT: checkpointing not supported yet" ++ " for hidden pid namespaces.\n"); ++ goto out_noenv; ++ } + + oldenv = set_exec_env(env); + old_ns = current->nsproxy; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0004-CONNTRACK-move-exp_proc_init-to-text-section.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0004-CONNTRACK-move-exp_proc_init-to-text-section.patch @@ -0,0 +1,27 @@ +From 9c10803877cbf58bebe511eafa67fee2c615f6f6 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Thu, 28 Feb 2008 20:18:49 +0300 +Subject: [PATCH 04/48] CONNTRACK: move exp_proc_init() to text section + +nf_conntrack_expect_init() is calling exp_proc_init() which +was can't be in .init.text for that reason. +--- + net/netfilter/nf_conntrack_expect.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c +index 5f8d9dd..ccf3d50 100644 +--- a/net/netfilter/nf_conntrack_expect.c ++++ b/net/netfilter/nf_conntrack_expect.c +@@ -490,7 +490,7 @@ static const struct file_operations exp_file_ops = { + }; + #endif /* CONFIG_PROC_FS */ + +-static int __init exp_proc_init(void) ++static int exp_proc_init(void) + { + #ifdef CONFIG_PROC_FS + struct proc_dir_entry *proc; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0059-Add-per-VE-proc-net-raw6.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0059-Add-per-VE-proc-net-raw6.patch @@ -0,0 +1,70 @@ +From 2670e872531c35866f12598970ee812456c0e9ee Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 1 Apr 2008 18:28:28 +0400 +Subject: [PATCH 58/67] Add per-VE /proc/net/raw6 + +Show only connections of current VE (already implemented) + +Required for netstat +http://bugzilla.openvz.org/show_bug.cgi?id=860 + +and fix small bug in v4 raw socket proc -- call unregister_pernet_subsys +instead of remove_proc_entry(). +--- + net/ipv4/raw.c | 2 +- + net/ipv6/raw.c | 21 ++++++++++++++++++--- + 2 files changed, 19 insertions(+), 4 deletions(-) + +diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c +index 8e0df71..abf5873 100644 +--- a/net/ipv4/raw.c ++++ b/net/ipv4/raw.c +@@ -953,6 +953,6 @@ int __init raw_proc_init(void) + + void __init raw_proc_exit(void) + { +- proc_net_remove(&init_net, "raw"); ++ unregister_pernet_subsys(&raw_net_ops); + } + #endif /* CONFIG_PROC_FS */ +diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c +index f6dcbe4..1cc3e0f 100644 +--- a/net/ipv6/raw.c ++++ b/net/ipv6/raw.c +@@ -1314,15 +1314,30 @@ static const struct file_operations raw6_seq_fops = { + .release = seq_release_private, + }; + +-int __init raw6_proc_init(void) ++static int raw6_net_init(struct net *net) + { +- if (!proc_net_fops_create(&init_net, "raw6", S_IRUGO, &raw6_seq_fops)) ++ if (!proc_net_fops_create(net, "raw6", S_IRUGO, &raw6_seq_fops)) + return -ENOMEM; + return 0; + } + ++static void raw6_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "raw6"); ++} ++ ++static struct pernet_operations raw6_net_ops = { ++ .init = raw6_net_init, ++ .exit = raw6_net_exit, ++}; ++ ++int __init raw6_proc_init(void) ++{ ++ return register_pernet_subsys(&raw6_net_ops); ++} ++ + void raw6_proc_exit(void) + { +- proc_net_remove(&init_net, "raw6"); ++ unregister_pernet_subsys(&raw6_net_ops); + } + #endif /* CONFIG_PROC_FS */ +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0076-ipv6-fix-frags-owner-ve.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0076-ipv6-fix-frags-owner-ve.patch @@ -0,0 +1,49 @@ +commit a628e361137fa399f047747e1df2ed914655e560 +Author: Alexey Dobriyan +Date: Thu May 29 15:18:19 2008 +0400 + + IPv6: get frag's owner VE from inet_frag_queue + + IPv6 specific frag queue doesn't need owner_ve, because it's already in core + data structure (struct inet_frag_queue). + + And it's in fact NULL, which is the cause of + http://bugzilla.openvz.org/show_bug.cgi?id=899 + +diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c +index 846c622..2cc9769 100644 +--- a/net/ipv6/reassembly.c ++++ b/net/ipv6/reassembly.c +@@ -81,7 +81,6 @@ struct frag_queue + int iif; + unsigned int csum; + __u16 nhoffset; +- struct ve_struct *owner_ve; + }; + + struct inet_frags_ctl ip6_frags_ctl __read_mostly = { +@@ -154,7 +153,7 @@ int ip6_frag_match(struct inet_frag_queue *q, void *a) + return (fq->id == arg->id && + ipv6_addr_equal(&fq->saddr, arg->src) && + ipv6_addr_equal(&fq->daddr, arg->dst) && +- fq->owner_ve == get_exec_env()); ++ q->owner_ve == get_exec_env()); + } + EXPORT_SYMBOL(ip6_frag_match); + +@@ -204,12 +203,12 @@ static void ip6_evictor(struct inet6_dev *idev) + + static void ip6_frag_expire(unsigned long data) + { +- struct frag_queue *fq; ++ struct inet_frag_queue *q = (struct inet_frag_queue *)data; ++ struct frag_queue *fq = container_of(q, struct frag_queue, q); + struct net_device *dev = NULL; + struct ve_struct *old_ve; + +- fq = container_of((struct inet_frag_queue *)data, struct frag_queue, q); +- old_ve = set_exec_env(fq->owner_ve); ++ old_ve = set_exec_env(q->owner_ve); + + spin_lock(&fq->q.lock); + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0045-VE-fix-uevent-generation-in-VE.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0045-VE-fix-uevent-generation-in-VE.patch @@ -0,0 +1,33 @@ +From 0474535acfde6adec1628cf02c67a296f4f38c5e Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 24 Mar 2008 14:11:16 +0300 +Subject: [PATCH 45/48] VE: fix uevent generation in VE + +There is only one uevent netlink socket with ->net being init_net. +There are multiple listeners (->mc_list) both from VE0 and VE. + +So, when, e. g., init scripts inside VE do echo 1 >/sys/.../uevent +uevent is discarded due to "->net doesn't match" check! + +http://bugzilla.openvz.org/show_bug.cgi?id=840 +--- + net/netlink/af_netlink.c | 3 --- + 1 files changed, 0 insertions(+), 3 deletions(-) + +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index 2bd6026..ad02fab 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -956,9 +956,6 @@ static inline int do_one_broadcast(struct sock *sk, + !test_bit(p->group - 1, nlk->groups)) + goto out; + +- if ((sk->sk_net != p->net)) +- goto out; +- + if (!ve_accessible_strict(get_exec_env(), sk->owner_env)) + goto out; + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0052-CPT-enhance-support-of-veth-device.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0052-CPT-enhance-support-of-veth-device.patch @@ -0,0 +1,244 @@ +From ae528ceeeffe35582a2e81c5ce4adbd8f6e3facd Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Tue, 25 Mar 2008 19:03:58 +0300 +Subject: [PATCH 51/67] CPT: enhance support of veth device + +In current implementation veth devices are not dumped correctly and +we can lose private veth data. + +This patch allows to save/restore private veth data. +--- + drivers/net/vzethdev.c | 17 +---------------- + include/linux/cpt_image.h | 11 +++++++++++ + include/linux/veth.h | 27 +++++++++++++++++++++++++++ + kernel/cpt/cpt_net.c | 28 ++++++++++++++++++++++++++++ + kernel/cpt/rst_net.c | 38 ++++++++++++++++++++++++++++++++++++++ + 5 files changed, 105 insertions(+), 16 deletions(-) + +diff --git a/drivers/net/vzethdev.c b/drivers/net/vzethdev.c +index 05d2ec5..5fe9fae 100644 +--- a/drivers/net/vzethdev.c ++++ b/drivers/net/vzethdev.c +@@ -44,6 +44,7 @@ + #include /* For ARPHRD_ETHER */ + #include + #include ++#include + #include + #include + +@@ -52,26 +53,10 @@ + #include + #include + +-struct veth_struct +-{ +- struct net_device_stats stats; +- struct net_device *pair; +- struct list_head hwaddr_list; +- struct net_device_stats *real_stats; +- int allow_mac_change; +-}; +- + static LIST_HEAD(veth_hwaddr_list); + static DEFINE_RWLOCK(ve_hwaddr_lock); + static DECLARE_MUTEX(hwaddr_sem); + +-#define veth_from_netdev(dev) \ +- ((struct veth_struct *)(netdev_priv(dev))) +-static inline struct net_device * veth_to_netdev(struct veth_struct *veth) +-{ +- return (struct net_device *)((char *)veth - ((sizeof(struct net_device) + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST)); +-} +- + static inline struct net_device_stats * + veth_stats(struct net_device *dev, int cpuid) + { +diff --git a/include/linux/cpt_image.h b/include/linux/cpt_image.h +index 20f23b4..045bc1f 100644 +--- a/include/linux/cpt_image.h ++++ b/include/linux/cpt_image.h +@@ -97,6 +97,7 @@ enum _cpt_object_type + CPT_OBJ_TASK_AUX, + CPT_OBJ_NET_TUNTAP, + CPT_OBJ_NET_HWADDR, ++ CPT_OBJ_NET_VETH, + }; + + #define CPT_ALIGN(n) (((n)+7)&~7) +@@ -1504,6 +1505,16 @@ struct cpt_tuntap_image { + __u32 cpt_net_filter[2]; + } __attribute__ ((aligned (8))); + ++struct cpt_veth_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_allow_mac_change; ++ __u32 __cpt_pad; ++} __attribute__ ((aligned (8))); ++ + struct cpt_hwaddr_image { + __u64 cpt_next; + __u32 cpt_object; +diff --git a/include/linux/veth.h b/include/linux/veth.h +index 3354c1e..9d0273f 100644 +--- a/include/linux/veth.h ++++ b/include/linux/veth.h +@@ -1,3 +1,12 @@ ++/* ++ * include/linux/veth.h ++ * ++ * Copyright (C) 2007 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ + #ifndef __NET_VETH_H_ + #define __NET_VETH_H_ + +@@ -9,4 +18,22 @@ enum { + #define VETH_INFO_MAX (__VETH_INFO_MAX - 1) + }; + ++#ifdef __KERNEL__ ++struct veth_struct ++{ ++ struct net_device_stats stats; ++ struct net_device *pair; ++ struct list_head hwaddr_list; ++ struct net_device_stats *real_stats; ++ int allow_mac_change; ++}; ++ ++#define veth_from_netdev(dev) \ ++ ((struct veth_struct *)(netdev_priv(dev))) ++static inline struct net_device * veth_to_netdev(struct veth_struct *veth) ++{ ++ return (struct net_device *)((char *)veth - ((sizeof(struct net_device) + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST)); ++} ++#endif ++ + #endif +diff --git a/kernel/cpt/cpt_net.c b/kernel/cpt/cpt_net.c +index 4e3dcec..4fe5ca7 100644 +--- a/kernel/cpt/cpt_net.c ++++ b/kernel/cpt/cpt_net.c +@@ -31,12 +31,38 @@ + #include + #include + #include ++#include + + #include "cpt_obj.h" + #include "cpt_context.h" + #include "cpt_kernel.h" + #include "cpt_syscalls.h" + ++static void cpt_dump_veth(struct net_device *dev, struct cpt_context * ctx) ++{ ++#if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) ++ struct cpt_veth_image v; ++ struct veth_struct *veth; ++ ++ if (!KSYMREF(veth_open) || dev->open != KSYMREF(veth_open)) ++ return; ++ ++ veth = veth_from_netdev(dev); ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NET_VETH; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_VOID; ++ ++ v.cpt_allow_mac_change = veth->allow_mac_change; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ cpt_close_object(ctx); ++#endif ++ return; ++} ++ + static void cpt_dump_tuntap(struct net_device *dev, struct cpt_context * ctx) + { + #if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) +@@ -105,6 +131,8 @@ int cpt_dump_link(struct cpt_context * ctx) + + cpt_dump_tuntap(dev, ctx); + ++ cpt_dump_veth(dev, ctx); ++ + /* Dump hardware address */ + cpt_open_object(NULL, ctx); + hw.cpt_next = CPT_NULL; +diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c +index 2703800..df6b659 100644 +--- a/kernel/cpt/rst_net.c ++++ b/kernel/cpt/rst_net.c +@@ -30,6 +30,8 @@ + #include + #include + #include ++#include ++#include + + #include "cpt_obj.h" + #include "cpt_context.h" +@@ -378,6 +380,28 @@ out: + return err; + } + ++static int rst_restore_veth(loff_t pos, struct net_device *dev, ++ struct cpt_context *ctx) ++{ ++ int err = -ENODEV; ++#if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) ++ struct cpt_veth_image vi; ++ struct veth_struct *veth; ++ ++ if (!KSYMREF(veth_open) || dev->open != KSYMREF(veth_open)) { ++ eprintk_ctx("Module vzethdev is not loaded, " ++ "or device %s is not a veth device\n", dev->name); ++ return -EINVAL; ++ } ++ err = rst_get_object(CPT_OBJ_NET_VETH, pos, &vi, ctx); ++ if (err) ++ return err; ++ veth = veth_from_netdev(dev); ++ veth->allow_mac_change = vi.cpt_allow_mac_change; ++#endif ++ return err; ++} ++ + int rst_restore_netdev(struct cpt_context *ctx) + { + struct net *net = get_exec_env()->ve_ns->net_ns; +@@ -463,7 +487,21 @@ int rst_restore_netdev(struct cpt_context *ctx) + eprintk_ctx("dev_change_flags err: %d\n", err); + } + if (pos < sec + di.cpt_next) { ++ struct cpt_object_hdr hdr; + struct cpt_hwaddr_image hw; ++ err = ctx->pread(&hdr, sizeof(struct cpt_object_hdr), ++ ctx, pos); ++ if (err) ++ goto out; ++ if (hdr.cpt_object == CPT_OBJ_NET_VETH) { ++ err = rst_restore_veth(pos, dev, ctx); ++ if (err) { ++ eprintk_ctx("restore veth %s: %d\n", ++ di.cpt_name, err); ++ goto out; ++ } ++ pos += hdr.cpt_next; ++ } + /* Restore hardware address */ + err = rst_get_object(CPT_OBJ_NET_HWADDR, pos, + &hw, ctx); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0120-VE-virtualize-binfmt_misc.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0120-VE-virtualize-binfmt_misc.patch @@ -0,0 +1,282 @@ +From 0b522a5e097eb7c46d2c3a47f9ca8f0f70129980 Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Fri, 18 Jul 2008 15:25:50 +0400 +Subject: [PATCH 120/131] VE virtualize binfmt_misc + +Nothing special. SUN jdk complains since can't use binfmt. +Not serious and java surely works fine w/o it, but just to +make it and its users happy let's virtualize binfmt_misc. + +1. register ve start-stop hook +2. register per-ve filesystem +3. make status variable per-ve +4. make list of entries per-ve +5. make vfsmnt per-ve (for simple_pin/release_fs) +6. don't forget to genocide the entries on VE stop + +Bug #99599 +--- + fs/binfmt_misc.c | 104 ++++++++++++++++++++++++++++++++++++++++++++-------- + include/linux/ve.h | 8 ++++ + 2 files changed, 96 insertions(+), 16 deletions(-) + +diff --git a/fs/binfmt_misc.c b/fs/binfmt_misc.c +index b53c7e5..b91aaab 100644 +--- a/fs/binfmt_misc.c ++++ b/fs/binfmt_misc.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #include + +@@ -34,8 +35,15 @@ enum { + VERBOSE_STATUS = 1 /* make it zero to save 400 bytes kernel memory */ + }; + ++#ifdef CONFIG_VE ++#define bm_entries(ve) ((ve)->bm_entries) ++#define bm_enabled(ve) ((ve)->bm_enabled) ++#else + static LIST_HEAD(entries); + static int enabled = 1; ++#define bm_entries(ve) (entries) ++#define bm_enabled(ve) (enabled) ++#endif + + enum {Enabled, Magic}; + #define MISC_FMT_PRESERVE_ARGV0 (1<<31) +@@ -55,21 +63,30 @@ typedef struct { + } Node; + + static DEFINE_RWLOCK(entries_lock); ++#ifdef CONFIG_VE ++#define bm_fs_type(ve) (*(ve)->bm_fs_type) ++#define bm_mnt(ve) ((ve)->bm_mnt) ++#define bm_entry_count(ve) ((ve)->bm_entry_count) ++#else + static struct file_system_type bm_fs_type; + static struct vfsmount *bm_mnt; + static int entry_count; ++#define bm_fs_type(ve) (bm_fs_type) ++#define bm_mnt(ve) (bm_mnt) ++#define bm_entry_count(ve) (bm_entry_count) ++#endif + + /* + * Check if we support the binfmt + * if we do, return the node, else NULL + * locking is done in load_misc_binary + */ +-static Node *check_file(struct linux_binprm *bprm) ++static Node *check_file(struct ve_struct *ve, struct linux_binprm *bprm) + { + char *p = strrchr(bprm->interp, '.'); + struct list_head *l; + +- list_for_each(l, &entries) { ++ list_for_each(l, &bm_entries(ve)) { + Node *e = list_entry(l, Node, list); + char *s; + int j; +@@ -111,14 +128,15 @@ static int load_misc_binary(struct linux_binprm *bprm, struct pt_regs *regs) + int retval; + int fd_binary = -1; + struct files_struct *files = NULL; ++ struct ve_struct *ve = get_exec_env(); + + retval = -ENOEXEC; +- if (!enabled) ++ if (!bm_enabled(ve)) + goto _ret; + + /* to keep locking time low, we copy the interpreter string */ + read_lock(&entries_lock); +- fmt = check_file(bprm); ++ fmt = check_file(ve, bprm); + if (fmt) + strlcpy(iname, fmt->interpreter, BINPRM_BUF_SIZE); + read_unlock(&entries_lock); +@@ -519,7 +537,7 @@ static void bm_clear_inode(struct inode *inode) + kfree(inode->i_private); + } + +-static void kill_node(Node *e) ++static void kill_node(struct ve_struct *ve, Node *e) + { + struct dentry *dentry; + +@@ -535,7 +553,7 @@ static void kill_node(Node *e) + dentry->d_inode->i_nlink--; + d_drop(dentry); + dput(dentry); +- simple_release_fs(&bm_mnt, &entry_count); ++ simple_release_fs(&bm_mnt(ve), &bm_entry_count(ve)); + } + } + +@@ -589,7 +607,7 @@ static ssize_t bm_entry_write(struct file *file, const char __user *buffer, + case 3: root = dget(file->f_path.mnt->mnt_sb->s_root); + mutex_lock(&root->d_inode->i_mutex); + +- kill_node(e); ++ kill_node(get_exec_env(), e); + + mutex_unlock(&root->d_inode->i_mutex); + dput(root); +@@ -614,6 +632,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer, + struct dentry *root, *dentry; + struct super_block *sb = file->f_path.mnt->mnt_sb; + int err = 0; ++ struct ve_struct *ve = get_exec_env(); + + e = create_entry(buffer, count); + +@@ -637,7 +656,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer, + if (!inode) + goto out2; + +- err = simple_pin_fs(&bm_fs_type, &bm_mnt, &entry_count); ++ err = simple_pin_fs(&bm_fs_type(ve), &bm_mnt(ve), &bm_entry_count(ve)); + if (err) { + iput(inode); + inode = NULL; +@@ -650,7 +669,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer, + + d_instantiate(dentry, inode); + write_lock(&entries_lock); +- list_add(&e->list, &entries); ++ list_add(&e->list, &bm_entries(ve)); + write_unlock(&entries_lock); + + err = 0; +@@ -676,26 +695,30 @@ static const struct file_operations bm_register_operations = { + static ssize_t + bm_status_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) + { +- char *s = enabled ? "enabled" : "disabled"; ++ char *s = bm_enabled(get_exec_env()) ? "enabled" : "disabled"; + + return simple_read_from_buffer(buf, nbytes, ppos, s, strlen(s)); + } + ++static void dm_genocide(struct ve_struct *ve) ++{ ++ while (!list_empty(&bm_entries(ve))) ++ kill_node(ve, list_entry(bm_entries(ve).next, Node, list)); ++} ++ + static ssize_t bm_status_write(struct file * file, const char __user * buffer, + size_t count, loff_t *ppos) + { ++ struct ve_struct *ve = get_exec_env(); + int res = parse_command(buffer, count); + struct dentry *root; + + switch (res) { +- case 1: enabled = 0; break; +- case 2: enabled = 1; break; ++ case 1: bm_enabled(ve) = 0; break; ++ case 2: bm_enabled(ve) = 1; break; + case 3: root = dget(file->f_path.mnt->mnt_sb->s_root); + mutex_lock(&root->d_inode->i_mutex); +- +- while (!list_empty(&entries)) +- kill_node(list_entry(entries.next, Node, list)); +- ++ dm_genocide(ve); + mutex_unlock(&root->d_inode->i_mutex); + dput(root); + default: return res; +@@ -746,6 +769,49 @@ static struct file_system_type bm_fs_type = { + .kill_sb = kill_litter_super, + }; + ++#ifdef CONFIG_VE ++static void __ve_binfmt_init(struct ve_struct *ve, struct file_system_type *fs) ++{ ++ ve->bm_fs_type = fs; ++ INIT_LIST_HEAD(&ve->bm_entries); ++ ve->bm_enabled = 1; ++ ve->bm_mnt = NULL; ++ ve->bm_entry_count = 0; ++} ++ ++static int ve_binfmt_init(void *x) ++{ ++ struct ve_struct *ve = x; ++ struct file_system_type *fs_type; ++ int err; ++ ++ err = register_ve_fs_type(ve, &bm_fs_type, &fs_type, NULL); ++ if (err == 0) ++ __ve_binfmt_init(ve, fs_type); ++ ++ return err; ++} ++ ++static void ve_binfmt_fini(void *x) ++{ ++ struct ve_struct *ve = x; ++ ++ /* ++ * no locks since exec_ve is dead and noone will ++ * mess with bm_xxx fields any longer ++ */ ++ dm_genocide(ve); ++ unregister_ve_fs_type(ve->bm_fs_type, NULL); ++} ++ ++static struct ve_hook ve_binfmt_hook = { ++ .init = ve_binfmt_init, ++ .fini = ve_binfmt_fini, ++ .priority = HOOK_PRIO_FS, ++ .owner = THIS_MODULE, ++}; ++#endif ++ + static int __init init_misc_binfmt(void) + { + int err = register_filesystem(&bm_fs_type); +@@ -754,11 +820,17 @@ static int __init init_misc_binfmt(void) + if (err) + unregister_filesystem(&bm_fs_type); + } ++ ++ if (!err) { ++ __ve_binfmt_init(get_ve0(), &bm_fs_type); ++ ve_hook_register(VE_SS_CHAIN, &ve_binfmt_hook); ++ } + return err; + } + + static void __exit exit_misc_binfmt(void) + { ++ ve_hook_unregister(&ve_binfmt_hook); + unregister_binfmt(&misc_format); + unregister_filesystem(&bm_fs_type); + } +diff --git a/include/linux/ve.h b/include/linux/ve.h +index f9cc6aa..88ecd3b 100644 +--- a/include/linux/ve.h ++++ b/include/linux/ve.h +@@ -333,6 +333,14 @@ struct ve_struct { + unsigned long _nlmsvc_timeout; + #endif + ++#if defined(CONFIG_BINFMT_MISC) || defined(CONFIG_BINFMT_MISC_MODULE) ++ struct file_system_type *bm_fs_type; ++ struct vfsmount *bm_mnt; ++ int bm_enabled; ++ int bm_entry_count; ++ struct list_head bm_entries; ++#endif ++ + struct nsproxy *ve_ns; + #ifdef CONFIG_GRKERNSEC + struct { +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0056-IPv6-make-proc-net-ipv6_route-visible-in-VE.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0056-IPv6-make-proc-net-ipv6_route-visible-in-VE.patch @@ -0,0 +1,70 @@ +From 0f8928ff450f8255a36a08ed6f59468f982fa086 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 1 Apr 2008 17:41:43 +0400 +Subject: [PATCH 55/67] IPv6: make /proc/net/ipv6_route visible in VE + +Show only rules of current VE (this logic already exists and works, entries +enumerated in private ve hash). + +http://bugzilla.openvz.org/show_bug.cgi?id=857 +--- + net/ipv6/route.c | 21 +++++++++++++++++++-- + 1 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/net/ipv6/route.c b/net/ipv6/route.c +index 226ae36..74c434b 100644 +--- a/net/ipv6/route.c ++++ b/net/ipv6/route.c +@@ -2476,6 +2476,23 @@ ctl_table ipv6_route_table[] = { + + #endif + ++static int ip6_route_net_init(struct net *net) ++{ ++ if (!proc_net_fops_create(net, "ipv6_route", 0, &ipv6_route_proc_fops)) ++ return -ENOMEM; ++ return 0; ++} ++ ++static void ip6_route_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "ipv6_route"); ++} ++ ++static struct pernet_operations ip6_route_net_ops = { ++ .init = ip6_route_net_init, ++ .exit = ip6_route_net_exit, ++}; ++ + void __init ip6_route_init(void) + { + ip6_dst_ops.kmem_cachep = +@@ -2484,7 +2501,6 @@ void __init ip6_route_init(void) + ip6_dst_blackhole_ops.kmem_cachep = ip6_dst_ops.kmem_cachep; + + fib6_init(); +- proc_net_fops_create(&init_net, "ipv6_route", 0, &ipv6_route_proc_fops); + proc_net_fops_create(&init_net, "rt6_stats", S_IRUGO, &rt6_stats_seq_fops); + #ifdef CONFIG_XFRM + xfrm6_init(); +@@ -2496,15 +2512,16 @@ void __init ip6_route_init(void) + __rtnl_register(PF_INET6, RTM_NEWROUTE, inet6_rtm_newroute, NULL); + __rtnl_register(PF_INET6, RTM_DELROUTE, inet6_rtm_delroute, NULL); + __rtnl_register(PF_INET6, RTM_GETROUTE, inet6_rtm_getroute, NULL); ++ register_pernet_subsys(&ip6_route_net_ops); + } + + void ip6_route_cleanup(void) + { ++ unregister_pernet_subsys(&ip6_route_net_ops); + #ifdef CONFIG_IPV6_MULTIPLE_TABLES + fib6_rules_cleanup(); + #endif + #ifdef CONFIG_PROC_FS +- proc_net_remove(&init_net, "ipv6_route"); + proc_net_remove(&init_net, "rt6_stats"); + #endif + #ifdef CONFIG_XFRM +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0013-NETFILTER-copy-max-expect-value-from-VE0-s-during-V.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0013-NETFILTER-copy-max-expect-value-from-VE0-s-during-V.patch @@ -0,0 +1,25 @@ +From b20f7531a00d4433d2791655e1899e015a0dfd04 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 7 Mar 2008 16:03:55 +0300 +Subject: [PATCH 13/48] NETFILTER: copy max expect value from VE0's during VE start + +Otherwise it's set to 0, which effectively means no FTP conntrack by default. +--- + net/netfilter/nf_conntrack_core.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index 879dc9e..46e0c5b 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -1167,6 +1167,7 @@ int nf_conntrack_init(void) + } + + ve_nf_conntrack_max = nf_conntrack_max; ++ ve_nf_ct_expect_max = nf_ct_expect_max; + atomic_set(&ve_nf_conntrack_count, 0); + INIT_HLIST_HEAD(&ve_unconfirmed); + #endif +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0022-FAIRSCHED-add-proc-fairsched-proc-fairsched2.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0022-FAIRSCHED-add-proc-fairsched-proc-fairsched2.patch @@ -0,0 +1,347 @@ +From 9eecc52aaa10d1c156a6aee48993ca9f3a3cd166 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 12 Mar 2008 18:15:29 +0300 +Subject: [PATCH 22/48] FAIRSCHED: add /proc/fairsched , /proc/fairsched2 + +--- + kernel/vzfairsched.c | 327 ++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 327 insertions(+), 0 deletions(-) + +diff --git a/kernel/vzfairsched.c b/kernel/vzfairsched.c +index c2eae4d..12f4874 100644 +--- a/kernel/vzfairsched.c ++++ b/kernel/vzfairsched.c +@@ -328,3 +328,330 @@ asmlinkage int sys_fairsched_mvpr(pid_t pid, unsigned int nodeid) + return retval; + } + EXPORT_SYMBOL(sys_fairsched_mvpr); ++ ++#ifdef CONFIG_PROC_FS ++ ++/*********************************************************************/ ++/* ++ * proc interface ++ */ ++/*********************************************************************/ ++ ++struct fairsched_node_dump { ++#ifdef CONFIG_VE ++ envid_t veid; ++#endif ++ int id; ++ unsigned weight; ++ unsigned rate; ++ unsigned rate_limited : 1, ++ delayed : 1; ++ fschtag_t start_tag; ++ fschvalue_t value; ++ cycles_t delay; ++ int nr_ready; ++ int nr_runnable; ++ int nr_pcpu; ++ int nr_tasks, nr_runtasks; ++}; ++ ++struct fairsched_dump { ++ int len, compat; ++ struct fairsched_node_dump nodes[0]; ++}; ++ ++static struct fairsched_dump *fairsched_do_dump(int compat) ++{ ++ int nr_nodes; ++ int len, i; ++ struct fairsched_dump *dump; ++ struct fairsched_node *node; ++ struct fairsched_node_dump *p; ++ unsigned long flags; ++ ++start: ++ nr_nodes = (ve_is_super(get_exec_env()) ? fairsched_nr_nodes + 16 : 1); ++ len = sizeof(*dump) + nr_nodes * sizeof(dump->nodes[0]); ++ dump = ub_vmalloc(len); ++ if (dump == NULL) ++ goto out; ++ ++ spin_lock_irqsave(&fairsched_lock, flags); ++ if (ve_is_super(get_exec_env()) && nr_nodes < fairsched_nr_nodes) ++ goto repeat; ++ p = dump->nodes; ++ list_for_each_entry_reverse(node, &fairsched_node_head, nodelist) { ++ if ((char *)p - (char *)dump >= len) ++ break; ++ p->nr_tasks = 0; ++ p->nr_runtasks = 0; ++#ifdef CONFIG_VE ++ if (!ve_accessible(node->owner_env, get_exec_env())) ++ continue; ++ p->veid = node->owner_env->veid; ++ if (compat) { ++ p->nr_tasks = atomic_read(&node->owner_env->pcounter); ++ for_each_online_cpu(i) ++ p->nr_runtasks += ++ VE_CPU_STATS(node->owner_env, i) ++ ->nr_running; ++ if (p->nr_runtasks < 0) ++ p->nr_runtasks = 0; ++ } ++#endif ++ p->id = node->id; ++ p->weight = node->weight; ++ p->rate = node->rate; ++ p->rate_limited = node->rate_limited; ++ p->delayed = node->delayed; ++ p->start_tag = node->start_tag; ++ p->value = node->value; ++ p->delay = node->delay; ++ p->nr_ready = node->nr_ready; ++ p->nr_runnable = node->nr_runnable; ++ p->nr_pcpu = node->nr_pcpu; ++ p++; ++ } ++ dump->len = p - dump->nodes; ++ dump->compat = compat; ++ spin_unlock_irqrestore(&fairsched_lock, flags); ++ ++out: ++ return dump; ++ ++repeat: ++ spin_unlock_irqrestore(&fairsched_lock, flags); ++ vfree(dump); ++ goto start; ++} ++ ++#define FAIRSCHED_PROC_HEADLINES 2 ++ ++#define FAIRSHED_DEBUG " debug" ++ ++#if defined(CONFIG_VE) ++/* ++ * File format is dictated by compatibility reasons. ++ */ ++static int fairsched_seq_show(struct seq_file *m, void *v) ++{ ++ struct fairsched_dump *dump; ++ struct fairsched_node_dump *p; ++ unsigned vid, nid, pid, r; ++ ++ dump = m->private; ++ p = (struct fairsched_node_dump *)((unsigned long)v & ~3UL); ++ if (p - dump->nodes < FAIRSCHED_PROC_HEADLINES) { ++ if (p == dump->nodes) ++ seq_printf(m, "Version: 2.6 debug\n"); ++ else if (p == dump->nodes + 1) ++ seq_printf(m, ++ " veid " ++ " id " ++ " parent " ++ "weight " ++ " rate " ++ "tasks " ++ " run " ++ "cpus" ++ " " ++ "flg " ++ "ready " ++ " start_tag " ++ " value " ++ " delay" ++ "\n"); ++ } else { ++ p -= FAIRSCHED_PROC_HEADLINES; ++ vid = nid = pid = 0; ++ r = (unsigned long)v & 3; ++ if (p == dump->nodes) { ++ if (r == 2) ++ nid = p->id; ++ } else { ++ if (!r) ++ nid = p->id; ++ else if (r == 1) ++ vid = pid = p->id; ++ else ++ vid = p->id, nid = 1; ++ } ++ seq_printf(m, ++ "%10u " ++ "%10u %10u %6u %5u %5u %5u %4u" ++ " " ++ " %c%c %5u %20Lu %20Lu %20Lu" ++ "\n", ++ vid, ++ nid, ++ pid, ++ p->weight, ++ p->rate, ++ p->nr_tasks, ++ p->nr_runtasks, ++ p->nr_pcpu, ++ p->rate_limited ? 'L' : '.', ++ p->delayed ? 'D' : '.', ++ p->nr_ready, ++ (unsigned long long)p->start_tag.t, ++ (unsigned long long)p->value.v, ++ (unsigned long long)p->delay ++ ); ++ } ++ ++ return 0; ++} ++ ++static void *fairsched_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ struct fairsched_dump *dump; ++ unsigned long l; ++ ++ dump = m->private; ++ if (*pos >= dump->len * 3 - 1 + FAIRSCHED_PROC_HEADLINES) ++ return NULL; ++ if (*pos < FAIRSCHED_PROC_HEADLINES) ++ return dump->nodes + *pos; ++ /* guess why... */ ++ l = (unsigned long)(dump->nodes + ++ ((unsigned long)*pos + FAIRSCHED_PROC_HEADLINES * 2 + 1) / 3); ++ l |= ((unsigned long)*pos + FAIRSCHED_PROC_HEADLINES * 2 + 1) % 3; ++ return (void *)l; ++} ++static void *fairsched_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ ++*pos; ++ return fairsched_seq_start(m, pos); ++} ++#endif ++ ++static int fairsched2_seq_show(struct seq_file *m, void *v) ++{ ++ struct fairsched_dump *dump; ++ struct fairsched_node_dump *p; ++ ++ dump = m->private; ++ p = v; ++ if (p - dump->nodes < FAIRSCHED_PROC_HEADLINES) { ++ if (p == dump->nodes) ++ seq_printf(m, "Version: 2.7" FAIRSHED_DEBUG "\n"); ++ else if (p == dump->nodes + 1) ++ seq_printf(m, ++ " id " ++ "weight " ++ " rate " ++ " run " ++ "cpus" ++#ifdef FAIRSHED_DEBUG ++ " " ++ "flg " ++ "ready " ++ " start_tag " ++ " value " ++ " delay" ++#endif ++ "\n"); ++ } else { ++ p -= FAIRSCHED_PROC_HEADLINES; ++ seq_printf(m, ++ "%10u %6u %5u %5u %4u" ++#ifdef FAIRSHED_DEBUG ++ " " ++ " %c%c %5u %20Lu %20Lu %20Lu" ++#endif ++ "\n", ++ p->id, ++ p->weight, ++ p->rate, ++ p->nr_runnable, ++ p->nr_pcpu ++#ifdef FAIRSHED_DEBUG ++ , ++ p->rate_limited ? 'L' : '.', ++ p->delayed ? 'D' : '.', ++ p->nr_ready, ++ (unsigned long long)p->start_tag.t, ++ (unsigned long long)p->value.v, ++ (unsigned long long)p->delay ++#endif ++ ); ++ } ++ ++ return 0; ++} ++ ++static void *fairsched2_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ struct fairsched_dump *dump; ++ ++ dump = m->private; ++ if (*pos >= dump->len + FAIRSCHED_PROC_HEADLINES) ++ return NULL; ++ return dump->nodes + *pos; ++} ++static void *fairsched2_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ ++*pos; ++ return fairsched2_seq_start(m, pos); ++} ++static void fairsched2_seq_stop(struct seq_file *m, void *v) ++{ ++} ++ ++#ifdef CONFIG_VE ++static struct seq_operations fairsched_seq_op = { ++ .start = fairsched_seq_start, ++ .next = fairsched_seq_next, ++ .stop = fairsched2_seq_stop, ++ .show = fairsched_seq_show ++}; ++#endif ++static struct seq_operations fairsched2_seq_op = { ++ .start = fairsched2_seq_start, ++ .next = fairsched2_seq_next, ++ .stop = fairsched2_seq_stop, ++ .show = fairsched2_seq_show ++}; ++static int fairsched_seq_open(struct inode *inode, struct file *file) ++{ ++ int ret; ++ struct seq_file *m; ++ int compat; ++ ++#ifdef CONFIG_VE ++ compat = (file->f_dentry->d_name.len == sizeof("fairsched") - 1); ++ ret = seq_open(file, compat ? &fairsched_seq_op : &fairsched2_seq_op); ++#else ++ compat = 0; ++ ret = seq_open(file, &fairsched2_seq_op); ++#endif ++ if (ret) ++ return ret; ++ m = file->private_data; ++ m->private = fairsched_do_dump(compat); ++ if (m->private == NULL) { ++ seq_release(inode, file); ++ ret = -ENOMEM; ++ } ++ return ret; ++} ++static int fairsched_seq_release(struct inode *inode, struct file *file) ++{ ++ struct seq_file *m; ++ struct fairsched_dump *dump; ++ ++ m = file->private_data; ++ dump = m->private; ++ m->private = NULL; ++ vfree(dump); ++ seq_release(inode, file); ++ return 0; ++} ++static struct file_operations proc_fairsched_operations = { ++ .open = fairsched_seq_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = fairsched_seq_release ++}; ++ ++#endif /* CONFIG_PROC_FS */ +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0012-NETFILTER-create-net.netfilter.-hierarchy-in-VE0-t.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0012-NETFILTER-create-net.netfilter.-hierarchy-in-VE0-t.patch @@ -0,0 +1,36 @@ +From fc59e9f2e9a0769009d2e87d8570bbc7a2d063d1 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 7 Mar 2008 15:37:12 +0300 +Subject: [PATCH 12/48] NETFILTER: create net.netfilter.* hierarchy in VE0 too + +--- + net/netfilter/nf_conntrack_standalone.c | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c +index 78cfaf0..fb5e4c9 100644 +--- a/net/netfilter/nf_conntrack_standalone.c ++++ b/net/netfilter/nf_conntrack_standalone.c +@@ -457,6 +457,9 @@ static int nf_conntrack_init_ve_sysctl(struct ve_struct *ve) + ve_nf_ct_net_table = nf_ct_net_table; + ve_nf_ct_netfilter_table = nf_ct_netfilter_table; + ve_nf_ct_sysctl_table = nf_ct_sysctl_table; ++ ve_nf_ct_sysctl_header = register_sysctl_table(ve_nf_ct_net_table); ++ if (!ve_nf_ct_sysctl_header) ++ return -ENOMEM; + return 0; + } + +@@ -487,8 +490,8 @@ out: + + static void nf_conntrack_fini_ve_sysctl(struct ve_struct *ve) + { ++ unregister_sysctl_table(ve_nf_ct_sysctl_header); + if (!ve_is_super(ve)) { +- unregister_sysctl_table(ve_nf_ct_sysctl_header); + free_sysctl_clone(ve_nf_ct_net_table); + ve_nf_ct_net_table = NULL; + ve_nf_ct_sysctl_table = NULL; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0069-Expand-VE0-cpu-stats.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0069-Expand-VE0-cpu-stats.patch @@ -0,0 +1,32 @@ +From f293cb5b21c98bc78af5e64b11dbfce603843b27 Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Tue, 22 Apr 2008 19:39:43 +0400 +Subject: [PATCH 68/72] Expand VE0 cpu stats + +Stable commit 28680bfb8269703def997e2269caf9bfe2de489c +shrank struct percpu_data from NR_CPUS pointers to just 1, +so space for VE0 cpu statistics (which is allocated very early) +was too small resulting in oops in +account_system_time()/update_ve_cpu_time(). +--- + kernel/ve/ve.c | 4 +++- + 1 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/kernel/ve/ve.c b/kernel/ve/ve.c +index 8a1e8c5..04da442 100644 +--- a/kernel/ve/ve.c ++++ b/kernel/ve/ve.c +@@ -118,7 +118,9 @@ struct ve_struct ve0 = { + EXPORT_SYMBOL(ve0); + + #ifdef CONFIG_SMP +-static struct percpu_data ve0_cpu_stats; ++static struct { ++ void *ptrs[NR_CPUS]; ++} ve0_cpu_stats; + #endif + static struct ve_cpu_stats ve0_cpu_stats_data[NR_CPUS]; + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0040-Backport-modules-warn-about-suspicious-return-valu.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0040-Backport-modules-warn-about-suspicious-return-valu.patch @@ -0,0 +1,64 @@ +From 0812a8a04f802de46e47f2623cf3114116174283 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 17 Mar 2008 17:08:19 +0300 +Subject: [PATCH 40/48] Backport "modules: warn about suspicious return values from module's ->init() hook" + +commit e24e2e64c468c8060bb7173abecdf11d00ed5751 +Author: Alexey Dobriyan +Date: Mon Mar 10 11:43:53 2008 -0700 + + modules: warn about suspicious return values from module's ->init() hook + + Return value convention of module's init functions is 0/-E. Sometimes, + e.g. during forward-porting mistakes happen and buggy module created, + where result of comparison "workqueue != NULL" is propagated all the way up + to sys_init_module. What happens is that some other module created + workqueue in question, our module created it again and module was + successfully loaded. + + Or it could be some other bug. + + Let's make such mistakes much more visible. In retrospective, such + messages would noticeably shorten some of my head-scratching sessions. + + Note, that dump_stack() is just a way to get attention from user. Sample + message: + + sys_init_module: 'foo'->init suspiciously returned 1, it should follow 0/-E convention + sys_init_module: loading module anyway... + Pid: 4223, comm: modprobe Not tainted 2.6.24-25f666300625d894ebe04bac2b4b3aadb907c861 #5 + + Call Trace: + [] sys_init_module+0xe5/0x1d0 + [] system_call_after_swapgs+0x7b/0x80 + + Signed-off-by: Alexey Dobriyan + Cc: Rusty Russell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds +--- + kernel/module.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/kernel/module.c b/kernel/module.c +index ebc0e03..d5bf278 100644 +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2135,6 +2135,14 @@ sys_init_module(void __user *umod, + mutex_unlock(&module_mutex); + return ret; + } ++ if (ret > 0) { ++ printk(KERN_WARNING "%s: '%s'->init suspiciously returned %d, " ++ "it should follow 0/-E convention\n" ++ KERN_WARNING "%s: loading module anyway...\n", ++ __func__, mod->name, ret, ++ __func__); ++ dump_stack(); ++ } + + /* Now it's a first class citizen! */ + mutex_lock(&module_mutex); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0133-CPT-SMP-race-in-detecting-state-of-ptraced-processes.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0133-CPT-SMP-race-in-detecting-state-of-ptraced-processes.patch @@ -0,0 +1,33 @@ +From 87490ee50be2cae1d07bc5e8d2c15cbff58a0d3f Mon Sep 17 00:00:00 2001 +From: Alexey Kuznetsov +Date: Thu, 15 May 2008 18:54:23 +0400 +Subject: [PATCH] CPT SMP race in detecting state of ptraced processes + +When suspending VE, we test state of processes while they are +still running. It is not a bug: we have to verify for invalid state +before checkpointing, real state is saved after processes are scheduled +out. + +The impact is that we can see process in a bad state, f.e. stopped +without any reasons. It is also not a bug, but this rersults in random +failures of checkpointing. The only way to fix this is to order updates +of state variables. The order is correct almost everywhere. +--- + kernel/signal.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/kernel/signal.c b/kernel/signal.c +index 10d8886..a2ea3a7 100644 +--- a/kernel/signal.c ++++ b/kernel/signal.c +@@ -1822,6 +1822,7 @@ static int handle_group_stop(void) + */ + return 0; + ++ clear_pn_state(current); + /* + * There is a group stop in progress. We stop + * without any associated signal being in our queue. +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0023-FAIRSCHED-change-proc-interface-to-work-with-vz-gro.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0023-FAIRSCHED-change-proc-interface-to-work-with-vz-gro.patch @@ -0,0 +1,242 @@ +From b89e74dc201e5943b79051f7f0c61b2c39d4d244 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 12 Mar 2008 18:18:14 +0300 +Subject: [PATCH 23/48] FAIRSCHED: change proc interface to work with vz groups + +Show weight and rate limit from fairsched_node. +CFS internals are different, so show (start_tag, value, delay) fields as zeros. +--- + include/linux/fairsched.h | 2 + + init/main.c | 2 + + kernel/vzfairsched.c | 89 ++++++++++++++++++++------------------------- + 3 files changed, 44 insertions(+), 49 deletions(-) + +Index: kernel/include/linux/fairsched.h +=================================================================== +--- kernel.orig/include/linux/fairsched.h 2008-11-24 15:57:19.000000000 +0100 ++++ kernel/include/linux/fairsched.h 2008-11-24 15:57:27.000000000 +0100 +@@ -39,6 +39,7 @@ + extern struct fairsched_node fairsched_init_node; + + void fairsched_init_early(void); ++void fairsched_init_late(void); + + static inline int task_fairsched_node_id(struct task_struct *p) + { +@@ -72,6 +73,7 @@ + #else /* CONFIG_VZ_FAIRSCHED */ + + static inline void fairsched_init_early(void) { } ++static inline void fairsched_init_late(void) { } + static inline int task_fairsched_node_id(struct task_struct *p) { return 0; } + static inline void get_task_fairsched_node(struct task_struct *p) { } + static inline void put_task_fairsched_node(struct task_struct *p) { } +Index: kernel/init/main.c +=================================================================== +--- kernel.orig/init/main.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/init/main.c 2008-11-24 15:57:27.000000000 +0100 +@@ -57,6 +57,7 @@ + #include + #include + #include ++#include + + #include + +@@ -865,6 +866,7 @@ + do_pre_smp_initcalls(); + + smp_init(); ++ fairsched_init_late(); + sched_init_smp(); + + cpuset_init_smp(); +Index: kernel/kernel/vzfairsched.c +=================================================================== +--- kernel.orig/kernel/vzfairsched.c 2008-11-24 15:57:26.000000000 +0100 ++++ kernel/kernel/vzfairsched.c 2008-11-24 15:57:27.000000000 +0100 +@@ -337,37 +337,31 @@ + */ + /*********************************************************************/ + ++#include ++#include ++#include ++ + struct fairsched_node_dump { +-#ifdef CONFIG_VE +- envid_t veid; +-#endif + int id; + unsigned weight; + unsigned rate; +- unsigned rate_limited : 1, +- delayed : 1; +- fschtag_t start_tag; +- fschvalue_t value; +- cycles_t delay; +- int nr_ready; +- int nr_runnable; ++ int rate_limited; + int nr_pcpu; + int nr_tasks, nr_runtasks; + }; + + struct fairsched_dump { +- int len, compat; ++ int len; + struct fairsched_node_dump nodes[0]; + }; + + static struct fairsched_dump *fairsched_do_dump(int compat) + { + int nr_nodes; +- int len, i; ++ int len; + struct fairsched_dump *dump; + struct fairsched_node *node; + struct fairsched_node_dump *p; +- unsigned long flags; + + start: + nr_nodes = (ve_is_super(get_exec_env()) ? fairsched_nr_nodes + 16 : 1); +@@ -376,7 +370,7 @@ + if (dump == NULL) + goto out; + +- spin_lock_irqsave(&fairsched_lock, flags); ++ mutex_lock(&fairsched_mutex); + if (ve_is_super(get_exec_env()) && nr_nodes < fairsched_nr_nodes) + goto repeat; + p = dump->nodes; +@@ -388,39 +382,24 @@ + #ifdef CONFIG_VE + if (!ve_accessible(node->owner_env, get_exec_env())) + continue; +- p->veid = node->owner_env->veid; +- if (compat) { +- p->nr_tasks = atomic_read(&node->owner_env->pcounter); +- for_each_online_cpu(i) +- p->nr_runtasks += +- VE_CPU_STATS(node->owner_env, i) +- ->nr_running; +- if (p->nr_runtasks < 0) +- p->nr_runtasks = 0; +- } ++ p->nr_tasks = atomic_read(&node->owner_env->pcounter); ++ p->nr_runtasks = nr_running_ve(node->owner_env); + #endif + p->id = node->id; + p->weight = node->weight; + p->rate = node->rate; + p->rate_limited = node->rate_limited; +- p->delayed = node->delayed; +- p->start_tag = node->start_tag; +- p->value = node->value; +- p->delay = node->delay; +- p->nr_ready = node->nr_ready; +- p->nr_runnable = node->nr_runnable; +- p->nr_pcpu = node->nr_pcpu; ++ p->nr_pcpu = num_online_cpus(); + p++; + } + dump->len = p - dump->nodes; +- dump->compat = compat; +- spin_unlock_irqrestore(&fairsched_lock, flags); ++ mutex_unlock(&fairsched_mutex); + + out: + return dump; + + repeat: +- spin_unlock_irqrestore(&fairsched_lock, flags); ++ mutex_unlock(&fairsched_mutex); + vfree(dump); + goto start; + } +@@ -429,7 +408,7 @@ + + #define FAIRSHED_DEBUG " debug" + +-#if defined(CONFIG_VE) ++#ifdef CONFIG_VE + /* + * File format is dictated by compatibility reasons. + */ +@@ -451,7 +430,7 @@ + " parent " + "weight " + " rate " +- "tasks " ++ "tasks " + " run " + "cpus" + " " +@@ -491,12 +470,9 @@ + p->nr_runtasks, + p->nr_pcpu, + p->rate_limited ? 'L' : '.', +- p->delayed ? 'D' : '.', +- p->nr_ready, +- (unsigned long long)p->start_tag.t, +- (unsigned long long)p->value.v, +- (unsigned long long)p->delay +- ); ++ '.', ++ p->nr_runtasks, ++ 0ll, 0ll, 0ll); + } + + return 0; +@@ -523,7 +499,7 @@ + ++*pos; + return fairsched_seq_start(m, pos); + } +-#endif ++#endif /* CONFIG_VE */ + + static int fairsched2_seq_show(struct seq_file *m, void *v) + { +@@ -563,16 +539,14 @@ + p->id, + p->weight, + p->rate, +- p->nr_runnable, ++ p->nr_runtasks, + p->nr_pcpu + #ifdef FAIRSHED_DEBUG + , + p->rate_limited ? 'L' : '.', +- p->delayed ? 'D' : '.', +- p->nr_ready, +- (unsigned long long)p->start_tag.t, +- (unsigned long long)p->value.v, +- (unsigned long long)p->delay ++ '.', ++ p->nr_runtasks, ++ 0ll, 0ll, 0ll + #endif + ); + } +@@ -654,4 +628,21 @@ + .release = fairsched_seq_release + }; + ++void __init fairsched_init_late(void) ++{ ++ struct proc_dir_entry *entry; ++#ifdef CONFIG_VE ++ entry = create_proc_glob_entry("fairsched", S_IRUGO, NULL); ++ if (entry) ++ entry->proc_fops = &proc_fairsched_operations; ++#endif ++ entry = create_proc_glob_entry("fairsched2", S_IRUGO, NULL); ++ if (entry) ++ entry->proc_fops = &proc_fairsched_operations; ++} ++ ++#else ++ ++void __init fairsched_init_late(void) { } ++ + #endif /* CONFIG_PROC_FS */ --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0114-UBC-cfq-remove-variable-slice.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0114-UBC-cfq-remove-variable-slice.patch @@ -0,0 +1,49 @@ +From 8f7aa861d70b16db33db541070a87ed03884e790 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:46 +0400 +Subject: [PATCH 114/131] UBC cfq remove variable slice + +Remove variable bc timeslice -- with fair queue it useless. +BC got bigger timeslice, but bandwidth unchanged, +because bc queued according it iotime. + +Bandwidth distribution now fully controlled by iotime ratio coefficients. +--- + kernel/bc/io_prio.c | 14 ++------------ + 1 files changed, 2 insertions(+), 12 deletions(-) + +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index d3a39e5..74202fa 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -182,15 +182,7 @@ static inline int bc_empty(struct cfq_bc_data *cfq_bc) + + return 0; + } +- +-static inline unsigned long bc_time_slice_by_ioprio(unsigned int ioprio, +- unsigned int base_slice) +-{ +- return base_slice + +- (base_slice * (ioprio - UB_IOPRIO_MIN)) +- / (UB_IOPRIO_MAX - UB_IOPRIO_MIN - 1); +-} +- ++ + /* return true if a iotime after b, like time_after */ + static int bc_iotime_after(unsigned long a, unsigned long b) + { +@@ -287,9 +279,7 @@ static inline void bc_set_active(struct cfq_data *cfqd) + + cfqd->active_cfq_bc = cfq_bc; + cfqd->slice_begin = now; +- cfqd->slice_end = now + +- bc_time_slice_by_ioprio(cfqd->active_cfq_bc->ub_iopriv->ioprio, +- cfqd->cfq_ub_slice); ++ cfqd->slice_end = now + cfqd->cfq_ub_slice; + } + + void bc_schedule_active(struct cfq_data *cfqd) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0144-MISC-autofs-fix-default-pgrp-vnr.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0144-MISC-autofs-fix-default-pgrp-vnr.patch @@ -0,0 +1,27 @@ +From cf5f65e4441b3acb94f895cb65bbc948c9101384 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 8 Sep 2008 14:15:06 +0400 +Subject: [PATCH] MISC autofs fix default pgrp vnr + +Default pgrp should be virtual-nr, +because autofs lookup pid struct via find_get_pid. +--- + fs/autofs/inode.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/fs/autofs/inode.c b/fs/autofs/inode.c +index 45f5992..af82143 100644 +--- a/fs/autofs/inode.c ++++ b/fs/autofs/inode.c +@@ -80,7 +80,7 @@ static int parse_options(char *options, int *pipefd, uid_t *uid, gid_t *gid, + + *uid = current->uid; + *gid = current->gid; +- *pgrp = task_pgrp_nr(current); ++ *pgrp = task_pgrp_vnr(current); + + *minproto = *maxproto = AUTOFS_PROTO_VERSION; + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0154-MS-NETNS-sk_release_kernel-needs-to-be-exported-to-m.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0154-MS-NETNS-sk_release_kernel-needs-to-be-exported-to-m.patch @@ -0,0 +1,31 @@ +From 9f911a8444d69b0fe3d2927b66c4aaf1c1c6f5bb Mon Sep 17 00:00:00 2001 +From: David S. Miller +Date: Fri, 29 Feb 2008 11:33:19 -0800 +Subject: [PATCH] MS NETNS sk_release_kernel needs to be exported to modules + +mainsteam commit 45af1754bc09926b5e062bda24f789d7b320939f + +Fixes: + +ERROR: "sk_release_kernel" [net/ipv6/ipv6.ko] undefined! + +Signed-off-by: David S. Miller +--- + net/core/sock.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/net/core/sock.c b/net/core/sock.c +index df11bc7..01e6d56 100644 +--- a/net/core/sock.c ++++ b/net/core/sock.c +@@ -995,6 +995,7 @@ void sk_release_kernel(struct sock *sk) + sk->sk_net = get_net(&init_net); + sock_put(sk); + } ++EXPORT_SYMBOL(sk_release_kernel); + + struct sock *sk_clone(const struct sock *sk, const gfp_t priority) + { +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0026-NETFILTER-fix-uber-memory-leaks-during-nf_conntrack.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0026-NETFILTER-fix-uber-memory-leaks-during-nf_conntrack.patch @@ -0,0 +1,42 @@ +From 0bfe93b674c2af97c3bd729ec127c473d22d0f4d Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 14:40:00 +0300 +Subject: [PATCH 26/48] NETFILTER: fix uber memory leaks during nf_conntrack shutdown + +ve_nf_ct_protos array freeing was skipped during VE stop if it registered +L4 protocols. Also remove generic proto freeing from sysctl freeing code -- +it's definitely not right place. +--- + net/netfilter/nf_conntrack_core.c | 2 +- + net/netfilter/nf_conntrack_proto_generic.c | 2 -- + 2 files changed, 1 insertions(+), 3 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index 879dc9e..5271220 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -1038,7 +1038,7 @@ skip_ct_cache: + ve_nf_ct_expect_hash = NULL; + atomic_set(&ve_nf_conntrack_count, 0); + ve_nf_conntrack_max = 0; +-// nf_conntrack_proto_fini(); ++ nf_conntrack_proto_fini(); + #ifdef CONFIG_VE_IPTABLES + ve_nf_conntrack_l4proto_generic = NULL; + kfree(ve->_nf_conntrack); +diff --git a/net/netfilter/nf_conntrack_proto_generic.c b/net/netfilter/nf_conntrack_proto_generic.c +index 3d00786..9980d3d 100644 +--- a/net/netfilter/nf_conntrack_proto_generic.c ++++ b/net/netfilter/nf_conntrack_proto_generic.c +@@ -128,8 +128,6 @@ void nf_ct_proto_generic_sysctl_cleanup(void) + #endif + free_sysctl_clone(ve_nf_conntrack_l4proto_generic->ctl_table); + ve_nf_conntrack_l4proto_generic->ctl_table = NULL; +- kfree(ve_nf_conntrack_l4proto_generic); +- ve_nf_conntrack_l4proto_generic = NULL; + } + } + EXPORT_SYMBOL(nf_ct_proto_generic_sysctl_cleanup); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0149-MS-NETNS-Consolidate-kernel-netlink-socket-destructi.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0149-MS-NETNS-Consolidate-kernel-netlink-socket-destructi.patch @@ -0,0 +1,304 @@ +From b1a0175d49f9e1186c59c2b2c5a61c8d74d62c53 Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Mon, 28 Jan 2008 14:41:19 -0800 +Subject: [PATCH] MS NETNS Consolidate kernel netlink socket destruction + +mainstream commit b7c6ba6eb1234e35a74fb8ba8123232a7b1ba9e4 + +Create a specific helper for netlink kernel socket disposal. This just +let the code look better and provides a ground for proper disposal +inside a namespace. + +Signed-off-by: Denis V. Lunev +Tested-by: Alexey Dobriyan +Signed-off-by: David S. Miller +--- + drivers/connector/connector.c | 9 +++------ + drivers/scsi/scsi_netlink.c | 2 +- + drivers/scsi/scsi_transport_iscsi.c | 2 +- + fs/ecryptfs/netlink.c | 3 +-- + include/linux/netlink.h | 1 + + net/bridge/netfilter/ebt_ulog.c | 4 ++-- + net/core/rtnetlink.c | 2 +- + net/decnet/netfilter/dn_rtmsg.c | 4 ++-- + net/ipv4/inet_diag.c | 2 +- + net/ipv4/netfilter/ip_queue.c | 4 ++-- + net/ipv4/netfilter/ipt_ULOG.c | 4 ++-- + net/ipv6/netfilter/ip6_queue.c | 4 ++-- + net/netfilter/nfnetlink.c | 2 +- + net/netlink/af_netlink.c | 11 +++++++++++ + net/xfrm/xfrm_user.c | 2 +- + 15 files changed, 32 insertions(+), 24 deletions(-) + +diff --git a/drivers/connector/connector.c b/drivers/connector/connector.c +index bf9716b..615bc09 100644 +--- a/drivers/connector/connector.c ++++ b/drivers/connector/connector.c +@@ -441,8 +441,7 @@ static int __devinit cn_init(void) + + dev->cbdev = cn_queue_alloc_dev("cqueue", dev->nls); + if (!dev->cbdev) { +- if (dev->nls->sk_socket) +- sock_release(dev->nls->sk_socket); ++ netlink_kernel_release(dev->nls); + return -EINVAL; + } + +@@ -452,8 +451,7 @@ static int __devinit cn_init(void) + if (err) { + cn_already_initialized = 0; + cn_queue_free_dev(dev->cbdev); +- if (dev->nls->sk_socket) +- sock_release(dev->nls->sk_socket); ++ netlink_kernel_release(dev->nls); + return -EINVAL; + } + +@@ -468,8 +466,7 @@ static void __devexit cn_fini(void) + + cn_del_callback(&dev->id); + cn_queue_free_dev(dev->cbdev); +- if (dev->nls->sk_socket) +- sock_release(dev->nls->sk_socket); ++ netlink_kernel_release(dev->nls); + } + + subsys_initcall(cn_init); +diff --git a/drivers/scsi/scsi_netlink.c b/drivers/scsi/scsi_netlink.c +index 40579ed..fe48c24 100644 +--- a/drivers/scsi/scsi_netlink.c ++++ b/drivers/scsi/scsi_netlink.c +@@ -169,7 +169,7 @@ void + scsi_netlink_exit(void) + { + if (scsi_nl_sock) { +- sock_release(scsi_nl_sock->sk_socket); ++ netlink_kernel_release(scsi_nl_sock); + netlink_unregister_notifier(&scsi_netlink_notifier); + } + +diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c +index 5428d15..9e463a6 100644 +--- a/drivers/scsi/scsi_transport_iscsi.c ++++ b/drivers/scsi/scsi_transport_iscsi.c +@@ -1533,7 +1533,7 @@ unregister_transport_class: + + static void __exit iscsi_transport_exit(void) + { +- sock_release(nls->sk_socket); ++ netlink_kernel_release(nls); + transport_class_unregister(&iscsi_connection_class); + transport_class_unregister(&iscsi_session_class); + transport_class_unregister(&iscsi_host_class); +diff --git a/fs/ecryptfs/netlink.c b/fs/ecryptfs/netlink.c +index 9aa3451..f638a69 100644 +--- a/fs/ecryptfs/netlink.c ++++ b/fs/ecryptfs/netlink.c +@@ -237,7 +237,6 @@ out: + */ + void ecryptfs_release_netlink(void) + { +- if (ecryptfs_nl_sock && ecryptfs_nl_sock->sk_socket) +- sock_release(ecryptfs_nl_sock->sk_socket); ++ netlink_kernel_release(ecryptfs_nl_sock); + ecryptfs_nl_sock = NULL; + } +diff --git a/include/linux/netlink.h b/include/linux/netlink.h +index d5bfaba..530b27c 100644 +--- a/include/linux/netlink.h ++++ b/include/linux/netlink.h +@@ -178,6 +178,7 @@ extern struct sock *netlink_kernel_create(struct net *net, + void (*input)(struct sk_buff *skb), + struct mutex *cb_mutex, + struct module *module); ++extern void netlink_kernel_release(struct sock *sk); + extern int netlink_change_ngroups(struct sock *sk, unsigned int groups); + extern void netlink_clear_multicast_users(struct sock *sk, unsigned int group); + extern void netlink_ack(struct sk_buff *in_skb, struct nlmsghdr *nlh, int err); +diff --git a/net/bridge/netfilter/ebt_ulog.c b/net/bridge/netfilter/ebt_ulog.c +index e7cfd30..d756bcf 100644 +--- a/net/bridge/netfilter/ebt_ulog.c ++++ b/net/bridge/netfilter/ebt_ulog.c +@@ -306,7 +306,7 @@ static int __init ebt_ulog_init(void) + if (!ebtulognl) + ret = -ENOMEM; + else if ((ret = ebt_register_watcher(&ulog))) +- sock_release(ebtulognl->sk_socket); ++ netlink_kernel_release(ebtulognl); + + if (ret == 0) + nf_log_register(PF_BRIDGE, &ebt_ulog_logger); +@@ -332,7 +332,7 @@ static void __exit ebt_ulog_fini(void) + } + spin_unlock_bh(&ub->lock); + } +- sock_release(ebtulognl->sk_socket); ++ netlink_kernel_release(ebtulognl); + } + + module_init(ebt_ulog_init); +diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c +index e025b0c..6ed7e74 100644 +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -1386,7 +1386,7 @@ static void rtnetlink_net_exit(struct net *net) + * free. + */ + sk->sk_net = get_net(&init_net); +- sock_release(net->rtnl->sk_socket); ++ netlink_kernel_release(net->rtnl); + net->rtnl = NULL; + } + } +diff --git a/net/decnet/netfilter/dn_rtmsg.c b/net/decnet/netfilter/dn_rtmsg.c +index eca4340..5ba99b3 100644 +--- a/net/decnet/netfilter/dn_rtmsg.c ++++ b/net/decnet/netfilter/dn_rtmsg.c +@@ -137,7 +137,7 @@ static int __init dn_rtmsg_init(void) + + rv = nf_register_hook(&dnrmg_ops); + if (rv) { +- sock_release(dnrmg->sk_socket); ++ netlink_kernel_release(dnrmg); + } + + return rv; +@@ -146,7 +146,7 @@ static int __init dn_rtmsg_init(void) + static void __exit dn_rtmsg_fini(void) + { + nf_unregister_hook(&dnrmg_ops); +- sock_release(dnrmg->sk_socket); ++ netlink_kernel_release(dnrmg); + } + + +diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c +index 2715ada..a859c34 100644 +--- a/net/ipv4/inet_diag.c ++++ b/net/ipv4/inet_diag.c +@@ -944,7 +944,7 @@ out_free_table: + + static void __exit inet_diag_exit(void) + { +- sock_release(idiagnl->sk_socket); ++ netlink_kernel_release(idiagnl); + kfree(inet_diag_table); + } + +diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c +index 1b5847d..d8ba67d 100644 +--- a/net/ipv4/netfilter/ip_queue.c ++++ b/net/ipv4/netfilter/ip_queue.c +@@ -690,7 +690,7 @@ cleanup_sysctl: + unregister_netdevice_notifier(&ipq_dev_notifier); + proc_net_remove(&init_net, IPQ_PROC_FS_NAME); + cleanup_ipqnl: +- sock_release(ipqnl->sk_socket); ++ netlink_kernel_release(ipqnl); + mutex_lock(&ipqnl_mutex); + mutex_unlock(&ipqnl_mutex); + +@@ -709,7 +709,7 @@ static void __exit ip_queue_fini(void) + unregister_netdevice_notifier(&ipq_dev_notifier); + proc_net_remove(&init_net, IPQ_PROC_FS_NAME); + +- sock_release(ipqnl->sk_socket); ++ netlink_kernel_release(ipqnl); + mutex_lock(&ipqnl_mutex); + mutex_unlock(&ipqnl_mutex); + +diff --git a/net/ipv4/netfilter/ipt_ULOG.c b/net/ipv4/netfilter/ipt_ULOG.c +index 212b830..b02b928 100644 +--- a/net/ipv4/netfilter/ipt_ULOG.c ++++ b/net/ipv4/netfilter/ipt_ULOG.c +@@ -417,7 +417,7 @@ static int __init ipt_ulog_init(void) + + ret = xt_register_target(&ipt_ulog_reg); + if (ret < 0) { +- sock_release(nflognl->sk_socket); ++ netlink_kernel_release(nflognl); + return ret; + } + if (nflog) +@@ -436,7 +436,7 @@ static void __exit ipt_ulog_fini(void) + if (nflog) + nf_log_unregister(&ipt_ulog_logger); + xt_unregister_target(&ipt_ulog_reg); +- sock_release(nflognl->sk_socket); ++ netlink_kernel_release(nflognl); + + /* remove pending timers and free allocated skb's */ + for (i = 0; i < ULOG_MAXNLGROUPS; i++) { +diff --git a/net/ipv6/netfilter/ip6_queue.c b/net/ipv6/netfilter/ip6_queue.c +index f1a3b2b..14ac71d 100644 +--- a/net/ipv6/netfilter/ip6_queue.c ++++ b/net/ipv6/netfilter/ip6_queue.c +@@ -680,7 +680,7 @@ cleanup_sysctl: + proc_net_remove(&init_net, IPQ_PROC_FS_NAME); + + cleanup_ipqnl: +- sock_release(ipqnl->sk_socket); ++ netlink_kernel_release(ipqnl); + mutex_lock(&ipqnl_mutex); + mutex_unlock(&ipqnl_mutex); + +@@ -699,7 +699,7 @@ static void __exit ip6_queue_fini(void) + unregister_netdevice_notifier(&ipq_dev_notifier); + proc_net_remove(&init_net, IPQ_PROC_FS_NAME); + +- sock_release(ipqnl->sk_socket); ++ netlink_kernel_release(ipqnl); + mutex_lock(&ipqnl_mutex); + mutex_unlock(&ipqnl_mutex); + +diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c +index 32007af..04491ab 100644 +--- a/net/netfilter/nfnetlink.c ++++ b/net/netfilter/nfnetlink.c +@@ -179,7 +179,7 @@ static void nfnetlink_rcv(struct sk_buff *skb) + static void __exit nfnetlink_exit(void) + { + printk("Removing netfilter NETLINK layer.\n"); +- sock_release(nfnl->sk_socket); ++ netlink_kernel_release(nfnl); + return; + } + +diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c +index fcdd345..cf31346 100644 +--- a/net/netlink/af_netlink.c ++++ b/net/netlink/af_netlink.c +@@ -1408,6 +1408,17 @@ out_sock_release: + return NULL; + } + ++ ++void ++netlink_kernel_release(struct sock *sk) ++{ ++ if (sk == NULL || sk->sk_socket == NULL) ++ return; ++ sock_release(sk->sk_socket); ++} ++EXPORT_SYMBOL(netlink_kernel_release); ++ ++ + /** + * netlink_change_ngroups - change number of multicast groups + * +diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c +index a128476..52c6535 100644 +--- a/net/xfrm/xfrm_user.c ++++ b/net/xfrm/xfrm_user.c +@@ -2420,7 +2420,7 @@ static void __exit xfrm_user_exit(void) + xfrm_unregister_km(&netlink_mgr); + rcu_assign_pointer(xfrm_nl, NULL); + synchronize_rcu(); +- sock_release(nlsk->sk_socket); ++ netlink_kernel_release(nlsk); + } + + module_init(xfrm_user_init); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0102-VE-proc-getattr.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0102-VE-proc-getattr.patch @@ -0,0 +1,63 @@ +From 564a2db2f8d14dfff620ac89cc702b9c84742bbd Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 2 Jul 2008 19:55:20 +0400 +Subject: [PATCH 102/103] VE proc getattr + +Move nlink correction from proc_lookup to proc_getattr +and change it in stat result insted of inode nlink. + +Bug #114644 +--- + fs/proc/generic.c | 25 ++++++++++++++----------- + 1 files changed, 14 insertions(+), 11 deletions(-) + +diff --git a/fs/proc/generic.c b/fs/proc/generic.c +index 2260a20..a5a6f1f 100644 +--- a/fs/proc/generic.c ++++ b/fs/proc/generic.c +@@ -268,10 +268,21 @@ static int proc_getattr(struct vfsmount *mnt, struct dentry *dentry, + { + struct inode *inode = dentry->d_inode; + struct proc_dir_entry *de = PROC_I(inode)->pde; +- if (de && de->nlink) +- inode->i_nlink = de->nlink; ++ struct proc_dir_entry *gde = GPDE(inode); + + generic_fillattr(inode, stat); ++ ++ if (de && de->nlink) ++ stat->nlink = de->nlink; ++ /* if dentry is found in both trees and it is a directory ++ * then inode's nlink count must be altered, because local ++ * and global subtrees may differ. ++ * on the other hand, they may intersect, so actual nlink ++ * value is difficult to calculate - upper estimate is used ++ * instead of it. ++ */ ++ if (de && gde && de != gde && gde->nlink > 1) ++ stat->nlink += gde->nlink - 2; + return 0; + } + +@@ -503,17 +514,9 @@ struct dentry *proc_lookup(struct inode * dir, struct dentry *dentry, struct nam + if (gde) + __module_get(gde->owner); + +- /* if dentry is found in both trees and it is a directory +- * then inode's nlink count must be altered, because local +- * and global subtrees may differ. +- * on the other hand, they may intersect, so actual nlink +- * value is difficult to calculate - upper estimate is used +- * instead of it. +- * dentry found in global tree only must not be writable ++ /* dentry found in global tree only must not be writable + * in non-super ve. + */ +- if (lde && gde && lde != gde && gde->nlink > 1) +- inode->i_nlink += gde->nlink - 2; + if (lde == NULL && !ve_is_super(dir->i_sb->s_type->owner_env)) + inode->i_mode &= ~S_IWUGO; + #endif +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0031-NETFILTER-don-t-free-nf_conntrack_l4proto_generic-i.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0031-NETFILTER-don-t-free-nf_conntrack_l4proto_generic-i.patch @@ -0,0 +1,26 @@ +From d211c0017393748f68f515fd09dcd4786660f5b0 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 18:08:41 +0300 +Subject: [PATCH 31/48] NETFILTER: don't free nf_conntrack_l4proto_generic if VE_IPTABLES=n + +ve_nf_conntrack_l4proto_generic is stubbed to nf_conntrack_l4proto_generic +which is statically allocated array and thus shouldn't be freed. +--- + net/netfilter/nf_conntrack_proto.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c +index 1384c03..bde6914 100644 +--- a/net/netfilter/nf_conntrack_proto.c ++++ b/net/netfilter/nf_conntrack_proto.c +@@ -361,5 +361,7 @@ void nf_conntrack_proto_fini(void) + kfree(ve_nf_ct_protos[i]); + ve_nf_ct_protos[i] = NULL; + } ++#ifdef CONFIG_VE_IPTABLES + kfree(ve_nf_conntrack_l4proto_generic); ++#endif + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0046-sysfs-add-missing-sysfs-allowed-checks.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0046-sysfs-add-missing-sysfs-allowed-checks.patch @@ -0,0 +1,42 @@ +From 5ac8d25b5e31e08af04f464e44c8214efea2e271 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 24 Mar 2008 17:15:49 +0300 +Subject: [PATCH 46/48] sysfs: add missing "sysfs allowed?" checks + +http://bugzilla.openvz.org/show_bug.cgi?id=852 +--- + fs/sysfs/bin.c | 3 +++ + fs/sysfs/dir.c | 3 +++ + 2 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c +index 3cc6838..9aec999 100644 +--- a/fs/sysfs/bin.c ++++ b/fs/sysfs/bin.c +@@ -241,6 +241,9 @@ const struct file_operations bin_fops = { + + int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr) + { ++ if (!ve_sysfs_alowed()) ++ return 0; ++ + BUG_ON(!kobj || !kobj->sd || !attr); + + return sysfs_add_file(kobj->sd, &attr->attr, SYSFS_KOBJ_BIN_ATTR); +diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c +index 5a17b68..c6cb983 100644 +--- a/fs/sysfs/dir.c ++++ b/fs/sysfs/dir.c +@@ -655,6 +655,9 @@ int sysfs_create_dir(struct kobject * kobj) + struct sysfs_dirent *parent_sd, *sd; + int error = 0; + ++ if (!ve_sysfs_alowed()) ++ return 0; ++ + BUG_ON(!kobj); + + if (kobj->parent) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0111-UBC-cfq-fair-queue.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0111-UBC-cfq-fair-queue.patch @@ -0,0 +1,215 @@ +From 79c9f8358982d12f1c3b22947aa368c6a21d758f Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:44 +0400 +Subject: [PATCH 111/131] UBC cfq fair queue + +replace round-robin scheduling in CFQ BC level with +fair queuing scheme based on used io time accounting. + +replace list per cfq bc data storage with rb-tree based priority queue +ordered by total used io time (cfq_bc_iotime). + +iotime is a monotonic rising counter of bc total used io time. + +on bc switch queue update iotime of previous active bc according it used time +and activate bc with smallest iotime. +--- + block/cfq-iosched.c | 14 ++++--- + include/linux/cfq-iosched.h | 10 +++-- + kernel/bc/io_prio.c | 85 ++++++++++++++++++++++++++++++++++++++----- + 3 files changed, 89 insertions(+), 20 deletions(-) + +diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c +index 223dd18..8999df2 100644 +--- a/block/cfq-iosched.c ++++ b/block/cfq-iosched.c +@@ -1093,17 +1093,19 @@ static int __cfq_forced_dispatch(struct cfq_bc_data *cfq_bc) + + static int cfq_forced_dispatch(struct cfq_data *cfqd) + { ++ struct rb_node *node; + struct cfq_bc_data *cfq_bc; +- struct cfq_bc_data *cfq_bc_tmp; + int dispatched; + + dispatched = 0; + /* + * We use here _safe iterating, because +- * __cfq_forced_dispatch() produces list_del() implicitly +- */ +- list_for_each_entry_safe(cfq_bc, cfq_bc_tmp, +- &cfqd->act_cfq_bc_head, act_cfq_bc_list) { ++ * __cfq_forced_dispatch() remove bc from tree implicitly ++ */ ++ node = rb_first(&cfqd->cfq_bc_queue); ++ while (node) { ++ cfq_bc = rb_entry(node, struct cfq_bc_data, cfq_bc_node); ++ node = rb_next(node); + dispatched += __cfq_forced_dispatch(cfq_bc); + } + +@@ -2154,7 +2156,7 @@ static void *cfq_init_queue(struct request_queue *q) + if (!cfqd) + return NULL; + +- INIT_LIST_HEAD(&cfqd->act_cfq_bc_head); ++ cfqd->cfq_bc_queue = RB_ROOT; + #ifndef CONFIG_BC_IO_SCHED + cfq_init_cfq_bc(&cfqd->cfq_bc); + /* +diff --git a/include/linux/cfq-iosched.h b/include/linux/cfq-iosched.h +index 62a5697..7f773a2 100644 +--- a/include/linux/cfq-iosched.h ++++ b/include/linux/cfq-iosched.h +@@ -27,8 +27,8 @@ struct cfq_rb_root { + struct cfq_bc_data { + /* for ub.iopriv->cfq_bc_head */ + struct list_head cfq_bc_list; +- /* for cfqd->act_cfq_bc_head */ +- struct list_head act_cfq_bc_list; ++ /* for cfqd->cfq_bc_queue */ ++ struct rb_node cfq_bc_node; + + struct cfq_data *cfqd; + struct ub_iopriv *ub_iopriv; +@@ -43,6 +43,7 @@ struct cfq_bc_data { + + unsigned long rqnum; + unsigned long on_dispatch; ++ unsigned long cfq_bc_iotime; + + /* + * async queue for each priority case +@@ -93,11 +94,12 @@ struct cfq_data { + + struct list_head cic_list; + +- /* list of ub that have requests */ +- struct list_head act_cfq_bc_head; ++ /* bc priority queue */ ++ struct rb_root cfq_bc_queue; + /* ub that owns a timeslice at the moment */ + struct cfq_bc_data *active_cfq_bc; + unsigned int cfq_ub_slice; ++ unsigned long slice_begin; + unsigned long slice_end; + int virt_mode; + int write_virt_mode; +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index 5dcb9bb..9813a18 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -186,18 +186,84 @@ static inline unsigned long bc_time_slice_by_ioprio(unsigned int ioprio, + / (UB_IOPRIO_MAX - UB_IOPRIO_MIN - 1); + } + ++/* return true if a iotime after b, like time_after */ ++static int bc_iotime_after(unsigned long a, unsigned long b) ++{ ++ return (long)a - (long)b > 0; ++} ++ ++/* cfq bc queue rb_tree helper function */ ++static void bc_insert(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) ++{ ++ struct rb_node **p = &cfqd->cfq_bc_queue.rb_node; ++ struct rb_node *parent = NULL; ++ struct cfq_bc_data *__cfq_bc; ++ ++ while (*p) { ++ parent = *p; ++ __cfq_bc = rb_entry(parent, struct cfq_bc_data, cfq_bc_node); ++ /* important: if equal push right */ ++ if (bc_iotime_after(__cfq_bc->cfq_bc_iotime, ++ cfq_bc->cfq_bc_iotime)) ++ p = &(*p)->rb_left; ++ else ++ p = &(*p)->rb_right; ++ } ++ rb_link_node(&cfq_bc->cfq_bc_node, parent, p); ++ rb_insert_color(&cfq_bc->cfq_bc_node, &cfqd->cfq_bc_queue); ++} ++ ++static void bc_remove(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) ++{ ++ rb_erase(&cfq_bc->cfq_bc_node, &cfqd->cfq_bc_queue); ++} ++ ++static void bc_enqueue(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) ++{ ++ bc_insert(cfqd, cfq_bc); ++} ++ ++static void bc_dequeue(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) ++{ ++ bc_remove(cfqd, cfq_bc); ++} ++ ++/* update bc iotime */ ++static void bc_update(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc, ++ unsigned long delta) ++{ ++ cfq_bc->cfq_bc_iotime += delta; ++ ++ if (!cfq_bc->rqnum) ++ return; ++ ++ bc_remove(cfqd, cfq_bc); ++ bc_insert(cfqd, cfq_bc); ++} ++ + static inline void bc_set_active(struct cfq_data *cfqd) + { +- if (list_empty(&cfqd->act_cfq_bc_head)) { +- cfqd->active_cfq_bc = NULL; ++ struct cfq_bc_data *cfq_bc; ++ unsigned long now = jiffies; ++ ++ /* update iotime of last active bc according to used time */ ++ cfq_bc = cfqd->active_cfq_bc; ++ if (cfq_bc && cfqd->slice_begin) ++ bc_update(cfqd, cfq_bc, now - cfqd->slice_begin); ++ ++ /* if no active BCs then keep this as an active one */ ++ if (RB_EMPTY_ROOT(&cfqd->cfq_bc_queue)) { ++ cfqd->slice_begin = 0; + return; + } + +- cfqd->active_cfq_bc = list_first_entry(&cfqd->act_cfq_bc_head, +- struct cfq_bc_data, act_cfq_bc_list); +- list_move_tail(&cfqd->active_cfq_bc->act_cfq_bc_list, +- &cfqd->act_cfq_bc_head); +- cfqd->slice_end = jiffies + ++ /* peek first bc from queue */ ++ cfq_bc = rb_entry(rb_first(&cfqd->cfq_bc_queue), ++ struct cfq_bc_data, cfq_bc_node); ++ ++ cfqd->active_cfq_bc = cfq_bc; ++ cfqd->slice_begin = now; ++ cfqd->slice_end = now + + bc_time_slice_by_ioprio(cfqd->active_cfq_bc->ub_iopriv->ioprio, + cfqd->cfq_ub_slice); + } +@@ -216,8 +282,7 @@ void bc_inc_rqnum(struct cfq_queue *cfqq) + cfq_bc = cfqq->cfq_bc; + + if (!cfq_bc->rqnum) +- list_add_tail(&cfq_bc->act_cfq_bc_list, +- &cfqq->cfqd->act_cfq_bc_head); ++ bc_enqueue(cfq_bc->cfqd, cfq_bc); + + cfq_bc->rqnum++; + } +@@ -231,7 +296,7 @@ void bc_dec_rqnum(struct cfq_queue *cfqq) + cfq_bc->rqnum--; + + if (!cfq_bc->rqnum) +- list_del(&cfq_bc->act_cfq_bc_list); ++ bc_dequeue(cfq_bc->cfqd, cfq_bc); + } + + unsigned long bc_set_ioprio(int ubid, int ioprio) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0061-UBC-fix-use-after-free-in-dcache-accounting.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0061-UBC-fix-use-after-free-in-dcache-accounting.patch @@ -0,0 +1,47 @@ +From e6c66d4324baffd63b43c39f9100453ae3889562 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 7 Apr 2008 15:20:16 +0400 +Subject: [PATCH 60/67] UBC: fix use-after-free in dcache accounting + +After ->d_count is decremented and dcache_lock is dropped dentry can +dissapear at any moment, so we can't start uncharging from it to root. +--- + fs/dcache.c | 15 +++++++++++---- + 1 files changed, 11 insertions(+), 4 deletions(-) + +diff --git a/fs/dcache.c b/fs/dcache.c +index f32cef2..09fdd5e 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -185,9 +185,16 @@ static void dput_recursive(struct dentry *dentry) + unsigned long d_ubsize; + + repeat: +- if (!atomic_dec_and_lock(&dentry->d_count, &dcache_lock)) { +- ub_dentry_uncharge(dentry); +- goto out_preempt; ++ if (unlikely(ub_dentry_on)) { ++ spin_lock(&dcache_lock); ++ if (!atomic_dec_and_test(&dentry->d_count)) { ++ ub_dentry_uncharge_locked(dentry); ++ spin_unlock(&dcache_lock); ++ goto out_preempt; ++ } ++ } else { ++ if (!atomic_dec_and_lock(&dentry->d_count, &dcache_lock)) ++ goto out_preempt; + } + + spin_lock(&dentry->d_lock); +@@ -232,7 +239,7 @@ kill_it: + d_ubsize = dentry->dentry_bc.d_ubsize; + dentry = d_kill(dentry); + preempt_disable(); +- if (ub_dentry_on) { ++ if (unlikely(ub_dentry_on)) { + uncharge_dcache(ub, d_ubsize); + put_beancounter(ub); + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0007-SLUBC-change-SLAB_UBC-SLAB_NO_CHARGE-flags.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0007-SLUBC-change-SLAB_UBC-SLAB_NO_CHARGE-flags.patch @@ -0,0 +1,30 @@ +From 73980b5b87e7619ba49364d2618b25d4f4bd8450 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 3 Mar 2008 15:02:38 +0300 +Subject: [PATCH 07/48] SLUBC: change SLAB_UBC, SLAB_NO_CHARGE flags + +SLAB_NO_CHARGE conflicted with __SYSFS_ADD_DEFERRED internal flag +which resulted in double and broken additional directories created +in /sys/slab/ . +--- + include/linux/slab.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/linux/slab.h b/include/linux/slab.h +index 2ff029a..793613f 100644 +--- a/include/linux/slab.h ++++ b/include/linux/slab.h +@@ -62,8 +62,8 @@ + * poll, fdsets, ...) non-ub allocs) + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ +-#define SLAB_UBC 0x20000000UL /* alloc space for ubs ... */ +-#define SLAB_NO_CHARGE 0x40000000UL /* ... but don't charge */ ++#define SLAB_UBC 0x10000000UL /* alloc space for ubs ... */ ++#define SLAB_NO_CHARGE 0x20000000UL /* ... but don't charge */ + + /* + * struct kmem_cache related prototypes +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0098-VE-igmp-owner-ve.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0098-VE-igmp-owner-ve.patch @@ -0,0 +1,74 @@ +From c9d58c128b1abebc32e9a6d4fbd9209830c3fef6 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Wed, 2 Jul 2008 19:55:19 +0400 +Subject: [PATCH 098/103] VE igmp owner ve + +IGMP packets should be sent in the context of correct VE. + +Timers by default are processed in the context of VE0. +Obtain the context from device and send the packet inside it. +(Add 2 more timers after tangaldi's patch). +--- + net/ipv4/igmp.c | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c +index c81ec13..5bfd510 100644 +--- a/net/ipv4/igmp.c ++++ b/net/ipv4/igmp.c +@@ -703,22 +703,28 @@ static int igmp_send_report(struct in_device *in_dev, struct ip_mc_list *pmc, + static void igmp_gq_timer_expire(unsigned long data) + { + struct in_device *in_dev = (struct in_device *)data; ++ struct ve_struct *old_env; + ++ old_env = set_exec_env(in_dev->dev->owner_env); + in_dev->mr_gq_running = 0; + igmpv3_send_report(in_dev, NULL); + __in_dev_put(in_dev); ++ (void)set_exec_env(old_env); + } + + static void igmp_ifc_timer_expire(unsigned long data) + { + struct in_device *in_dev = (struct in_device *)data; ++ struct ve_struct *old_env; + ++ old_env = set_exec_env(in_dev->dev->owner_env); + igmpv3_send_cr(in_dev); + if (in_dev->mr_ifc_count) { + in_dev->mr_ifc_count--; + igmp_ifc_start_timer(in_dev, IGMP_Unsolicited_Report_Interval); + } + __in_dev_put(in_dev); ++ (void)set_exec_env(old_env); + } + + static void igmp_ifc_event(struct in_device *in_dev) +@@ -735,6 +741,7 @@ static void igmp_timer_expire(unsigned long data) + { + struct ip_mc_list *im=(struct ip_mc_list *)data; + struct in_device *in_dev = im->interface; ++ struct ve_struct *old_env; + + spin_lock(&im->lock); + im->tm_running=0; +@@ -746,6 +753,7 @@ static void igmp_timer_expire(unsigned long data) + im->reporter = 1; + spin_unlock(&im->lock); + ++ old_env = set_exec_env(in_dev->dev->owner_env); + if (IGMP_V1_SEEN(in_dev)) + igmp_send_report(in_dev, im, IGMP_HOST_MEMBERSHIP_REPORT); + else if (IGMP_V2_SEEN(in_dev)) +@@ -754,6 +762,7 @@ static void igmp_timer_expire(unsigned long data) + igmp_send_report(in_dev, im, IGMPV3_HOST_MEMBERSHIP_REPORT); + + ip_ma_put(im); ++ (void)set_exec_env(old_env); + } + + /* mark EXCLUDE-mode sources */ +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0088-CPT-udp-sockets-restore.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0088-CPT-udp-sockets-restore.patch @@ -0,0 +1,47 @@ +From aa4f5ce52d18acda1bbe9a30855e044a529f2924 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 088/103] CPT udp sockets restore + +Some applications (like ntpd) set on udp sockets sk_reuse to 1. So any other +applications can bind to the same port. During restore we must skip this +check and restore and bind all sockets. On IPv6 we must also force DAD +(Duplicate Address Detection) procedure to be sure that IFA_F_TENTATIVE flag +will be cleared on IPv6 address and socket can be binded to it. + +http://bugzilla.openvz.org/show_bug.cgi?id=784 +--- + net/ipv4/udp.c | 2 +- + net/ipv6/addrconf.c | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c +index 959ea53..84fd76d 100644 +--- a/net/ipv4/udp.c ++++ b/net/ipv4/udp.c +@@ -206,7 +206,7 @@ gotit: + sk_for_each(sk2, node, head) + if (sk2->sk_hash == snum && + sk2 != sk && +- (!sk2->sk_reuse || !sk->sk_reuse) && ++ (sk->sk_reuse != 2 && (!sk2->sk_reuse || !sk->sk_reuse)) && + ve_accessible_strict(sk2->owner_env, ve) && + (!sk2->sk_bound_dev_if || !sk->sk_bound_dev_if + || sk2->sk_bound_dev_if == sk->sk_bound_dev_if) && +diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c +index 19ac1e8..85ec6c6 100644 +--- a/net/ipv6/addrconf.c ++++ b/net/ipv6/addrconf.c +@@ -2637,7 +2637,8 @@ static void addrconf_dad_start(struct inet6_ifaddr *ifp, u32 flags) + + if (dev->flags&(IFF_NOARP|IFF_LOOPBACK) || + !(ifp->flags&IFA_F_TENTATIVE) || +- ifp->flags & IFA_F_NODAD) { ++ ifp->flags & IFA_F_NODAD || ++ dev->owner_env->disable_net) { + ifp->flags &= ~(IFA_F_TENTATIVE|IFA_F_OPTIMISTIC); + spin_unlock_bh(&ifp->lock); + read_unlock_bh(&idev->lock); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0156-VE-let-ve_netns-live-a-bit-more.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0156-VE-let-ve_netns-live-a-bit-more.patch @@ -0,0 +1,69 @@ +From e4645288a01f65d02382bcf0d10148965c2038ac Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 9 Jun 2008 15:53:08 +0400 +Subject: [PATCH] VE let ->ve_netns live a bit more + +1. netns shutdown is done asynchronously +2. nsproxy free is done synchronously +which means we can't use "get_exec_env()->ve_ns->net_ns" construct +anywhere in netns teardown codepath. ->ve_ns will be NULL (fixable) or +will point to freed memory (hardly fixable). + +The solution it to pin netns one more time, and use get_exec_env()->ve_netns . +get_exec_env() is always valid. It's ->ve_netns will also be valid during +shutdown. As for ->ve_ns, we don't care from now. +--- + kernel/ve/vecalls.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c +index ee5d600..96e856f 100644 +--- a/kernel/ve/vecalls.c ++++ b/kernel/ve/vecalls.c +@@ -970,10 +970,8 @@ static inline void fini_ve_namespaces(struct ve_struct *ve, + tmp = ve->ve_ns; + ve->ve_ns = get_nsproxy(old); + put_nsproxy(tmp); +- } else { ++ } else + put_nsproxy(ve->ve_ns); +- ve->ve_ns = NULL; +- } + } + + static int init_ve_netns(struct ve_struct *ve, struct nsproxy **old) +@@ -991,7 +989,7 @@ static int init_ve_netns(struct ve_struct *ve, struct nsproxy **old) + + put_nsproxy(ve->ve_ns); + ve->ve_ns = get_nsproxy(tsk->nsproxy); +- ve->ve_netns = ve->ve_ns->net_ns; ++ ve->ve_netns = get_net(ve->ve_ns->net_ns); + *old = cur; + return 0; + } +@@ -1580,9 +1578,10 @@ err_devpts: + err_shmem: + fini_ve_tty_drivers(ve); + err_tty: +- ve->ve_ns->net_ns->sysfs_completion = &sysfs_completion; + fini_ve_namespaces(ve, old_ns_net); + put_nsproxy(old_ns_net); ++ ve->ve_netns->sysfs_completion = &sysfs_completion; ++ put_net(ve->ve_netns); + wait_for_completion(&sysfs_completion); + err_netns: + fini_ve_route6(ve); +@@ -1792,8 +1791,9 @@ static void env_cleanup(struct ve_struct *ve) + unregister_ve_tty_drivers(ve); + fini_ve_meminfo(ve); + +- ve->ve_ns->net_ns->sysfs_completion = &sysfs_completion; + fini_ve_namespaces(ve, NULL); ++ ve->ve_netns->sysfs_completion = &sysfs_completion; ++ put_net(ve->ve_netns); + wait_for_completion(&sysfs_completion); + fini_ve_route(ve); + fini_ve_route6(ve); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0118-UBC-pid-charge-size.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0118-UBC-pid-charge-size.patch @@ -0,0 +1,36 @@ +From ee08765df7bc7994142c133a78e1cb817d53be86 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:49 +0400 +Subject: [PATCH 118/131] UBC pid charge size + add missign CHARGE_SIZE macro + +--- + kernel/pid.c | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/kernel/pid.c b/kernel/pid.c +index e26509f..56dd048 100644 +--- a/kernel/pid.c ++++ b/kernel/pid.c +@@ -269,7 +269,8 @@ fastcall void free_pid(struct pid *pid) + hlist_del_rcu(&upid->pid_chain); + } + spin_unlock(&pidmap_lock); +- ub_kmemsize_uncharge(pid->ub, pid->numbers[pid->level].ns->pid_cachep->objuse); ++ ub_kmemsize_uncharge(pid->ub, CHARGE_SIZE(pid->numbers[pid->level].ns-> ++ pid_cachep->objuse)); + local_irq_restore(flags); + + for (i = 0; i <= pid->level; i++) +@@ -315,7 +316,7 @@ struct pid *alloc_pid(struct pid_namespace *ns, pid_t vpid) + local_irq_disable(); + #ifdef CONFIG_BEANCOUNTERS + ub = get_exec_ub(); +- if (ub_kmemsize_charge(ub, ns->pid_cachep->objuse, UB_HARD)) ++ if (ub_kmemsize_charge(ub, CHARGE_SIZE(ns->pid_cachep->objuse), UB_HARD)) + goto out_enable; + pid->ub = get_beancounter(ub); + spin_lock(&pidmap_lock); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0019-FAIRSCHED-add-sys_fairsched_-system-calls.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0019-FAIRSCHED-add-sys_fairsched_-system-calls.patch @@ -0,0 +1,397 @@ +From f14a05b0c80e9f858666f5574c97720f4a1fae21 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 12 Mar 2008 18:11:42 +0300 +Subject: [PATCH 19/48] FAIRSCHED: add sys_fairsched_* system calls + +--- + include/linux/fairsched.h | 23 ++++ + kernel/sys_ni.c | 8 ++ + kernel/vzfairsched.c | 300 +++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 331 insertions(+), 0 deletions(-) + +diff --git a/include/linux/fairsched.h b/include/linux/fairsched.h +index e5bb3a2..cdba9a4 100644 +--- a/include/linux/fairsched.h ++++ b/include/linux/fairsched.h +@@ -11,6 +11,10 @@ + #ifndef __LINUX_FAIRSCHED_H__ + #define __LINUX_FAIRSCHED_H__ + ++#define FAIRSCHED_SET_RATE 0 ++#define FAIRSCHED_DROP_RATE 1 ++#define FAIRSCHED_GET_RATE 2 ++ + #ifdef __KERNEL__ + + /* refcnt change protected with tasklist write lock */ +@@ -19,6 +23,13 @@ struct fairsched_node { + int refcnt; + unsigned id; + struct list_head nodelist; ++ ++ unsigned weight; ++ unsigned char rate_limited; ++ unsigned rate; ++#ifdef CONFIG_VE ++ struct ve_struct *owner_env; ++#endif + }; + + #ifdef CONFIG_VZ_FAIRSCHED +@@ -46,6 +57,18 @@ static inline void put_task_fairsched_node(struct task_struct *p) + + #define INIT_VZ_FAIRSCHED .fsched_node = &fairsched_init_node, + ++#define FSCHWEIGHT_MAX ((1 << 16) - 1) ++#define FSCHRATE_SHIFT 10 ++#define FSCH_TIMESLICE 16 ++ ++asmlinkage int sys_fairsched_mknod(unsigned int parent, unsigned int weight, ++ unsigned int newid); ++asmlinkage int sys_fairsched_rmnod(unsigned int id); ++asmlinkage int sys_fairsched_mvpr(pid_t pid, unsigned int nodeid); ++asmlinkage int sys_fairsched_vcpus(unsigned int id, unsigned int vcpus); ++asmlinkage int sys_fairsched_chwt(unsigned int id, unsigned int weight); ++asmlinkage int sys_fairsched_rate(unsigned int id, int op, unsigned rate); ++ + #else /* CONFIG_VZ_FAIRSCHED */ + + static inline void fairsched_init_early(void) { } +diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c +index f801b56..74137d8 100644 +--- a/kernel/sys_ni.c ++++ b/kernel/sys_ni.c +@@ -161,3 +161,11 @@ cond_syscall(sys_getluid); + cond_syscall(sys_setluid); + cond_syscall(sys_setublimit); + cond_syscall(sys_ubstat); ++ ++/* fairsched compat */ ++cond_syscall(sys_fairsched_mknod); ++cond_syscall(sys_fairsched_rmnod); ++cond_syscall(sys_fairsched_mvpr); ++cond_syscall(sys_fairsched_vcpus); ++cond_syscall(sys_fairsched_chwt); ++cond_syscall(sys_fairsched_rate); +diff --git a/kernel/vzfairsched.c b/kernel/vzfairsched.c +index 43c743a..c2eae4d 100644 +--- a/kernel/vzfairsched.c ++++ b/kernel/vzfairsched.c +@@ -10,10 +10,16 @@ + + #include + #include ++#include ++#include + + struct fairsched_node fairsched_init_node = { + .id = FAIRSCHED_INIT_NODE_ID, + .tg = &init_task_group, ++#ifdef CONFIG_VE ++ .owner_env = get_ve0(), ++#endif ++ .weight = 1, + }; + + static DEFINE_MUTEX(fairsched_mutex); +@@ -28,3 +34,297 @@ void __init fairsched_init_early(void) + fairsched_nr_nodes++; + } + ++#define FSCHWEIGHT_BASE 512000 ++ ++/****************************************************************************** ++ * cfs group shares = FSCHWEIGHT_BASE / fairsched weight ++ * ++ * vzctl cpuunits default 1000 ++ * cfs shares default value is 1024 (see init_task_group_load in sched.c) ++ * cpuunits = 1000 --> weight = 500000 / cpuunits = 500 --> shares = 1024 ++ * ^--- from vzctl ++ * weight in 1..65535 --> shares in 7..512000 ++ * shares should be >1 (see comment in sched_group_set_shares function) ++ *****************************************************************************/ ++ ++static struct fairsched_node *fairsched_find(unsigned int id) ++{ ++ struct fairsched_node *p; ++ list_for_each_entry(p, &fairsched_node_head, nodelist) { ++ if (p->id == id) ++ return p; ++ } ++ return NULL; ++} ++ ++/****************************************************************************** ++ * System calls ++ * ++ * All do_xxx functions are called under fairsched mutex and after ++ * capability check. ++ * ++ * The binary interfaces follow some other Fair Scheduler implementations ++ * (although some system call arguments are not needed for our implementation). ++ *****************************************************************************/ ++ ++static int do_fairsched_mknod(unsigned int parent, unsigned int weight, ++ unsigned int newid) ++{ ++ struct fairsched_node *node; ++ int retval; ++ ++ retval = -EINVAL; ++ if (weight < 1 || weight > FSCHWEIGHT_MAX) ++ goto out; ++ if (newid < 0 || newid > INT_MAX) ++ goto out; ++ ++ retval = -EBUSY; ++ if (fairsched_find(newid) != NULL) ++ goto out; ++ ++ retval = -ENOMEM; ++ node = kzalloc(sizeof(*node), GFP_KERNEL); ++ if (node == NULL) ++ goto out; ++ ++ node->tg = sched_create_group(); ++ if (IS_ERR(node->tg)) ++ goto out_free; ++ ++ node->id = newid; ++ node->weight = weight; ++ sched_group_set_shares(node->tg, FSCHWEIGHT_BASE / weight); ++#ifdef CONFIG_VE ++ node->owner_env = get_exec_env(); ++#endif ++ list_add(&node->nodelist, &fairsched_node_head); ++ fairsched_nr_nodes++; ++ ++ retval = newid; ++out: ++ return retval; ++ ++out_free: ++ kfree(node); ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_mknod(unsigned int parent, unsigned int weight, ++ unsigned int newid) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_mknod(parent, weight, newid); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_mknod); ++ ++static int do_fairsched_rmnod(unsigned int id) ++{ ++ struct fairsched_node *node; ++ int retval; ++ ++ retval = -EINVAL; ++ node = fairsched_find(id); ++ if (node == NULL) ++ goto out; ++ if (node == &fairsched_init_node) ++ goto out; ++ ++ retval = -EBUSY; ++ if (node->refcnt) ++ goto out; ++ ++ list_del(&node->nodelist); ++ fairsched_nr_nodes--; ++ ++ sched_destroy_group(node->tg); ++ kfree(node); ++ retval = 0; ++out: ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_rmnod(unsigned int id) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_rmnod(id); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_rmnod); ++ ++static int do_fairsched_chwt(unsigned int id, unsigned weight) ++{ ++ struct fairsched_node *node; ++ ++ if (id == 0) ++ return -EINVAL; ++ if (weight < 1 || weight > FSCHWEIGHT_MAX) ++ return -EINVAL; ++ ++ node = fairsched_find(id); ++ if (node == NULL) ++ return -ENOENT; ++ ++ node->weight = weight; ++ sched_group_set_shares(node->tg, FSCHWEIGHT_BASE / weight); ++ ++ return 0; ++} ++ ++asmlinkage int sys_fairsched_chwt(unsigned int id, unsigned weight) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_chwt(id, weight); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++ ++static int do_fairsched_vcpus(unsigned int id, unsigned int vcpus) ++{ ++ struct fairsched_node *node; ++ ++ if (id == 0) ++ return -EINVAL; ++ ++ node = fairsched_find(id); ++ if (node == NULL) ++ return -ENOENT; ++ ++ return 0; ++} ++ ++asmlinkage int sys_fairsched_vcpus(unsigned int id, unsigned int vcpus) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_vcpus(id, vcpus); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_vcpus); ++ ++static int do_fairsched_rate(unsigned int id, int op, unsigned rate) ++{ ++ struct fairsched_node *node; ++ int retval; ++ ++ if (id == 0) ++ return -EINVAL; ++ if (op == FAIRSCHED_SET_RATE && (rate < 1 || rate >= (1UL << 31))) ++ return -EINVAL; ++ ++ node = fairsched_find(id); ++ if (node == NULL) ++ return -ENOENT; ++ ++ retval = -EINVAL; ++ switch (op) { ++ case FAIRSCHED_SET_RATE: ++ node->rate = rate; ++ node->rate_limited = 1; ++ retval = rate; ++ break; ++ case FAIRSCHED_DROP_RATE: ++ node->rate = 0; ++ node->rate_limited = 0; ++ retval = 0; ++ break; ++ case FAIRSCHED_GET_RATE: ++ if (node->rate_limited) ++ retval = node->rate; ++ else ++ retval = -ENODATA; ++ break; ++ } ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_rate(unsigned int id, int op, unsigned rate) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_rate(id, op, rate); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++ ++static int do_fairsched_mvpr(pid_t pid, unsigned int nodeid) ++{ ++ struct task_struct *p; ++ struct fairsched_node *node; ++ int retval; ++ unsigned flags; ++ ++ retval = -ENOENT; ++ node = fairsched_find(nodeid); ++ if (node == NULL) ++ goto out; ++ ++ write_lock_irqsave(&tasklist_lock, flags); ++ retval = -ESRCH; ++ p = find_task_by_pid(pid); ++ if (p == NULL) ++ goto out_unlock; ++ ++ get_task_struct(p); ++ put_task_fairsched_node(p); ++ p->fsched_node = node; ++ get_task_fairsched_node(p); ++ write_unlock_irqrestore(&tasklist_lock, flags); ++ ++ smp_wmb(); ++ sched_move_task(p); ++ put_task_struct(p); ++ return 0; ++ ++out_unlock: ++ write_unlock_irqrestore(&tasklist_lock, flags); ++out: ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_mvpr(pid_t pid, unsigned int nodeid) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_mvpr(pid, nodeid); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_mvpr); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0091-UBC-proc-nlink.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0091-UBC-proc-nlink.patch @@ -0,0 +1,66 @@ +From 7d73bf886255be04c87db19c31076dd282a849e0 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 091/103] UBC proc nlink + Override getattr callback on /proc/bc and ubc entries to get correct nlink. + +--- + kernel/bc/proc.c | 21 +++++++++++++++++++++ + 1 files changed, 21 insertions(+), 0 deletions(-) + +diff --git a/kernel/bc/proc.c b/kernel/bc/proc.c +index 433095f..caf4b1b 100644 +--- a/kernel/bc/proc.c ++++ b/kernel/bc/proc.c +@@ -601,6 +601,17 @@ static struct dentry *bc_entry_lookup(struct inode *dir, struct dentry *dentry, + return bc_lookup(ub, dir, dentry); + } + ++static int bc_entry_getattr(struct vfsmount *mnt, struct dentry *dentry, ++ struct kstat *stat) ++{ ++ struct user_beancounter *ub; ++ ++ generic_fillattr(dentry->d_inode, stat); ++ ub = (struct user_beancounter *)dentry->d_fsdata; ++ stat->nlink = ub->ub_childs + 2; ++ return 0; ++} ++ + static struct file_operations bc_entry_fops = { + .read = generic_read_dir, + .readdir = bc_entry_readdir, +@@ -608,6 +619,7 @@ static struct file_operations bc_entry_fops = { + + static struct inode_operations bc_entry_iops = { + .lookup = bc_entry_lookup, ++ .getattr = bc_entry_getattr, + }; + + /* +@@ -645,6 +657,14 @@ static struct dentry *bc_root_lookup(struct inode *dir, struct dentry *dentry, + return bc_lookup(ub, dir, dentry); + } + ++static int bc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, ++ struct kstat *stat) ++{ ++ generic_fillattr(dentry->d_inode, stat); ++ stat->nlink = ub_count + 2; ++ return 0; ++} ++ + static struct file_operations bc_root_fops = { + .read = generic_read_dir, + .readdir = bc_root_readdir, +@@ -652,6 +672,7 @@ static struct file_operations bc_root_fops = { + + static struct inode_operations bc_root_iops = { + .lookup = bc_root_lookup, ++ .getattr = bc_root_getattr, + }; + + static int __init ub_init_proc(void) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0145-VE-add-missed-semaphore-up-and-set-exec-env.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0145-VE-add-missed-semaphore-up-and-set-exec-env.patch @@ -0,0 +1,26 @@ +From 2e272c2b5966c134d7b70cfb555867c6d8623a5f Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 9 Sep 2008 13:42:31 +0400 +Subject: [PATCH] VE add missed semaphore up and set exec env + +NFS connect over TCP-IPv4 block VE stop process. +--- + net/sunrpc/xprtsock.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c +index f58f1ac..f6f3db8 100644 +--- a/net/sunrpc/xprtsock.c ++++ b/net/sunrpc/xprtsock.c +@@ -1642,6 +1642,8 @@ out: + xprt_wake_pending_tasks(xprt, status); + out_clear: + xprt_clear_connecting(xprt); ++ up_read(&xprt->owner_env->op_sem); ++ (void)set_exec_env(ve); + } + + /** +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0008-CPT-reexport-sys_open.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0008-CPT-reexport-sys_open.patch @@ -0,0 +1,23 @@ +From 29ec264a595bb385ce4818a31a01987b3b31fd9c Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 4 Mar 2008 12:24:54 +0300 +Subject: [PATCH 08/48] CPT: reexport sys_open() + +http://bugzilla.openvz.org/show_bug.cgi?id=835 +--- + fs/open.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +Index: kernel/fs/open.c +=================================================================== +--- kernel.orig/fs/open.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/fs/open.c 2008-11-24 15:56:46.000000000 +0100 +@@ -1102,7 +1102,7 @@ + prevent_tail_call(ret); + return ret; + } +-EXPORT_UNUSED_SYMBOL_GPL(sys_open); /* To be deleted for 2.6.25 */ ++EXPORT_SYMBOL_GPL(sys_open); + + asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, + int mode) --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0042-tun-fix-netdevice-creation-in-VE.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0042-tun-fix-netdevice-creation-in-VE.patch @@ -0,0 +1,49 @@ +From b0a6532da1157d370daa475f545ba18de04dee86 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Wed, 19 Mar 2008 18:15:44 +0300 +Subject: [PATCH 42/48] tun: fix netdevice creation in VE + +--- + drivers/net/tun.c | 5 ++++- + 1 files changed, 4 insertions(+), 1 deletions(-) + +diff --git a/drivers/net/tun.c b/drivers/net/tun.c +index 98d1db9..2fcf253 100644 +--- a/drivers/net/tun.c ++++ b/drivers/net/tun.c +@@ -53,6 +53,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -494,6 +495,7 @@ static struct tun_struct *tun_get_by_name(const char *name) + + static int tun_set_iff(struct file *file, struct ifreq *ifr) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct tun_struct *tun; + struct net_device *dev; + int err; +@@ -512,7 +514,7 @@ static int tun_set_iff(struct file *file, struct ifreq *ifr) + !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + } +- else if (__dev_get_by_name(&init_net, ifr->ifr_name)) ++ else if (__dev_get_by_name(net, ifr->ifr_name)) + return -EINVAL; + else { + char *name; +@@ -542,6 +544,7 @@ static int tun_set_iff(struct file *file, struct ifreq *ifr) + tun_setup); + if (!dev) + return -ENOMEM; ++ dev->nd_net = net; + + tun = netdev_priv(dev); + tun->dev = dev; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0066-NETFILTER-fix-iptables-build-against-openvz-kernel.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0066-NETFILTER-fix-iptables-build-against-openvz-kernel.patch @@ -0,0 +1,48 @@ +From 12242e1c13001ab1345f4fa5cd2d074e07055819 Mon Sep 17 00:00:00 2001 +From: Peter Volkov +Date: Fri, 18 Apr 2008 19:54:54 +0400 +Subject: [PATCH 65/67] NETFILTER: fix iptables build against -openvz kernel headers + +http://bugzilla.openvz.org/show_bug.cgi?id=875 +--- + include/linux/netfilter/xt_hashlimit.h | 2 ++ + include/linux/netfilter_ipv4/ipt_recent.h | 3 +++ + 2 files changed, 5 insertions(+), 0 deletions(-) + +diff --git a/include/linux/netfilter/xt_hashlimit.h b/include/linux/netfilter/xt_hashlimit.h +index 934930b..9ef74c4 100644 +--- a/include/linux/netfilter/xt_hashlimit.h ++++ b/include/linux/netfilter/xt_hashlimit.h +@@ -38,9 +38,11 @@ struct xt_hashlimit_info { + } u; + }; + ++#ifdef __KERNEL__ + struct ve_xt_hashlimit { + struct hlist_head hashlimit_htables; + struct proc_dir_entry *hashlimit_procdir4; + struct proc_dir_entry *hashlimit_procdir6; + }; ++#endif + #endif /*_XT_HASHLIMIT_H*/ +diff --git a/include/linux/netfilter_ipv4/ipt_recent.h b/include/linux/netfilter_ipv4/ipt_recent.h +index 2ad01d9..4cc62b2 100644 +--- a/include/linux/netfilter_ipv4/ipt_recent.h ++++ b/include/linux/netfilter_ipv4/ipt_recent.h +@@ -24,10 +24,13 @@ struct ipt_recent_info { + u_int8_t side; + }; + ++#ifdef __KERNEL__ + struct ve_ipt_recent { + struct list_head tables; + #ifdef CONFIG_PROC_FS + struct proc_dir_entry *proc_dir; + #endif + }; ++#endif ++ + #endif /*_IPT_RECENT_H*/ +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0062-ms-don-t-clear-afinfo-seq_fops-during-netns-stop.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0062-ms-don-t-clear-afinfo-seq_fops-during-netns-stop.patch @@ -0,0 +1,40 @@ +From ddaf8cd72814753b729bf7c6df1b9eaf07e4bafe Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Wed, 9 Apr 2008 18:23:02 +0400 +Subject: [PATCH 61/67] ms: don't clear afinfo->seq_fops during netns stop + +afinfo structures are shared, so netns shouldn't clear it for everyone. +This can result in situation when ->open won't be run, because it was +cleared, but ->read will be. +--- + net/ipv4/tcp_ipv4.c | 1 - + net/ipv4/udp.c | 1 - + 2 files changed, 0 insertions(+), 2 deletions(-) + +diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c +index 1a83482..2d132db 100644 +--- a/net/ipv4/tcp_ipv4.c ++++ b/net/ipv4/tcp_ipv4.c +@@ -2316,7 +2316,6 @@ void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo) + return; + + proc_net_remove(net, afinfo->name); +- memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops)); + } + + static void get_openreq4(struct sock *sk, struct request_sock *req, +diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c +index a27ed8a..959ea53 100644 +--- a/net/ipv4/udp.c ++++ b/net/ipv4/udp.c +@@ -1602,7 +1602,6 @@ void udp_proc_unregister(struct net *net, struct udp_seq_afinfo *afinfo) + if (!afinfo) + return; + proc_net_remove(net, afinfo->name); +- memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops)); + } + + /* ------------------------------------------------------------------------ */ +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0077-fix-proc-cwd-link.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0077-fix-proc-cwd-link.patch @@ -0,0 +1,23 @@ +commit 72746db0ffbf3715516991a14903b6d30d8d96ed +Author: Alexey Dobriyan +Date: Mon Jun 2 17:53:28 2008 +0400 + + proc: fix proc_cwd_link + + If d_root_check() in there fails, we shouldn't pretend everything is OK + and leave mnt unitialized or NULL (in case /proc/*/cwd). + + http://bugzilla.openvz.org/show_bug.cgi?id=900 + +diff --git a/fs/proc/base.c b/fs/proc/base.c +index da0be8b..8579ee6 100644 +--- a/fs/proc/base.c ++++ b/fs/proc/base.c +@@ -171,7 +171,6 @@ static int proc_cwd_link(struct inode *inode, struct dentry **dentry, struct vfs + *dentry = dget(fs->pwd); + } + read_unlock(&fs->lock); +- result = 0; + put_fs_struct(fs); + } + return result; --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0050-ubuntu-make-mmap-POSIX-conform.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0050-ubuntu-make-mmap-POSIX-conform.patch @@ -0,0 +1,28 @@ +X-Git-Url: http://git.openvz.org/?p=linux-2.6.24-openvz;a=blobdiff_plain;f=mm%2Fmmap.c;fp=mm%2Fmmap.c;h=89731b3901454e0abfb9544d7ee0be8b13e310aa;hp=15678aa6ec73a4389d1c523fe542144cd3050836;hb=8d7a5ca70e9913a71ec0ac9dccdb6ce85c23ac4b;hpb=148ba276d7db5fd498d17e2769291e7f17446233 + +Index: kernel/mm/mmap.c +=================================================================== +--- kernel.orig/mm/mmap.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/mm/mmap.c 2008-11-24 15:59:24.000000000 +0100 +@@ -930,7 +930,7 @@ + prot |= PROT_EXEC; + + if (!len) +- return addr; ++ return -EINVAL; + + if (!(flags & MAP_FIXED)) + addr = round_hint_to_min(addr); +Index: kernel/arch/ia64/kernel/sys_ia64.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/sys_ia64.c 2008-11-24 15:47:45.000000000 +0100 ++++ kernel/arch/ia64/kernel/sys_ia64.c 2008-11-24 15:59:24.000000000 +0100 +@@ -204,7 +204,7 @@ + + /* Careful about overflows.. */ + len = PAGE_ALIGN(len); +- if (len > TASK_SIZE) { ++ if (!len || len > TASK_SIZE) { + addr = -EINVAL; + goto out; + } --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0054-UBC-don-t-do-preventive-dentries-uncharge.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0054-UBC-don-t-do-preventive-dentries-uncharge.patch @@ -0,0 +1,100 @@ +From 95fcbf4bed2550fd173963493c217aefcc6a866a Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 1 Apr 2008 15:55:25 +0400 +Subject: [PATCH 53/67] UBC: don't do preventive dentries uncharge + +NFS in 2.6.23+ kernels started to dget parent dentry temporarily +during final dentry put. This doesn't work with current scheme, namely, "drop +all ->d_inuse counters, uncharge, do normal put later", because +ub_dget_testone() will oops on such dentries in filesystem. + +So, move actual uncharge code to later stage right after dentry free, so +that "->d_inuse" won't be -1 during filesystem dentry put method. + +Once we find parent dentry which won't be freed this time, drop ->d_inuse et +al counters as usually do. + +Steps to reproduce: + creat08 test from LTP on NFS mounted /vz with dentry accounting active. + +Mainline commit: e4eff1a622edd6ab7b73acd5d8763aa2fa3fee49 + aka "SUNRPC: Clean up the sillyrename code" +--- + fs/dcache.c | 16 ++++++++++++++-- + include/bc/dcache_op.h | 2 ++ + 2 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/fs/dcache.c b/fs/dcache.c +index 499f1ba..b69a57e 100644 +--- a/fs/dcache.c ++++ b/fs/dcache.c +@@ -181,9 +181,14 @@ static struct dentry *d_kill(struct dentry *dentry) + + static void dput_recursive(struct dentry *dentry) + { ++ struct user_beancounter *ub; ++ unsigned long d_ubsize; ++ + repeat: +- if (!atomic_dec_and_lock(&dentry->d_count, &dcache_lock)) ++ if (!atomic_dec_and_lock(&dentry->d_count, &dcache_lock)) { ++ ub_dentry_uncharge(dentry); + goto out_preempt; ++ } + + spin_lock(&dentry->d_lock); + if (atomic_read(&dentry->d_count)) +@@ -206,6 +211,7 @@ repeat: + } + out_unlock: + spin_unlock(&dentry->d_lock); ++ ub_dentry_uncharge_locked(dentry); + spin_unlock(&dcache_lock); + out_preempt: + preempt_enable(); +@@ -221,7 +227,14 @@ kill_it: + list_del(&dentry->d_lru); + dentry_stat.nr_unused--; + } ++ ++ ub = dentry->dentry_bc.d_ub; ++ d_ubsize = dentry->dentry_bc.d_ubsize; + dentry = d_kill(dentry); ++ if (ub_dentry_on) { ++ uncharge_dcache(ub, d_ubsize); ++ put_beancounter(ub); ++ } + if (dentry) { + preempt_disable(); + goto repeat; +@@ -237,7 +250,6 @@ void dput(struct dentry *dentry) + might_sleep(); + + preempt_disable(); +- ub_dentry_uncharge(dentry); + dput_recursive(dentry); + } + +diff --git a/include/bc/dcache_op.h b/include/bc/dcache_op.h +index 6227195..23306e9 100644 +--- a/include/bc/dcache_op.h ++++ b/include/bc/dcache_op.h +@@ -85,6 +85,7 @@ static inline void ub_dentry_uncharge(struct dentry *d) + spin_unlock(&dcache_lock); + } + ++void uncharge_dcache(struct user_beancounter *ub, unsigned long size); + #else /* CONFIG_BEANCOUNTERS */ + + static inline int ub_dentry_alloc(struct dentry *d) { return 0; } +@@ -94,6 +95,7 @@ static inline int ub_dentry_charge(struct dentry *d) { return 0; } + static inline void ub_dentry_charge_nofail(struct dentry *d) { } + static inline void ub_dentry_uncharge_locked(struct dentry *d) { } + static inline void ub_dentry_uncharge(struct dentry *d) { } ++static inline void uncharge_dcache(struct user_beancounter *ub, unsigned long size) { } + + #endif /* CONFIG_BEANCOUNTERS */ + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0143-MISC-autofs4-pidns-friendly-oz_mode.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0143-MISC-autofs4-pidns-friendly-oz_mode.patch @@ -0,0 +1,129 @@ +From f36b9627a92ded4bb0f7f2a13aeb086512614633 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 5 Sep 2008 11:36:55 +0400 +Subject: [PATCH] MISC autofs4 pidns friendly oz_mode + +Fix oz_mode detection to prevent autofs daemon hang inside container. + +Switch from pid_t to struct pid of process group. +The same changes as in mainstream commit fa0334f1 for autofs. + +http://bugzilla.openvz.org/show_bug.cgi?id=959 +--- + fs/autofs4/autofs_i.h | 4 ++-- + fs/autofs4/inode.c | 24 ++++++++++++++++++------ + 2 files changed, 20 insertions(+), 8 deletions(-) + +diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h +index 2d4ae40..ac6631f 100644 +--- a/fs/autofs4/autofs_i.h ++++ b/fs/autofs4/autofs_i.h +@@ -98,7 +98,7 @@ struct autofs_sb_info { + u32 magic; + int pipefd; + struct file *pipe; +- pid_t oz_pgrp; ++ struct pid *oz_pgrp; + int catatonic; + int version; + int sub_version; +@@ -131,7 +131,7 @@ static inline struct autofs_info *autofs4_dentry_ino(struct dentry *dentry) + filesystem without "magic".) */ + + static inline int autofs4_oz_mode(struct autofs_sb_info *sbi) { +- return sbi->catatonic || task_pgrp_nr(current) == sbi->oz_pgrp; ++ return sbi->catatonic || task_pgrp(current) == sbi->oz_pgrp; + } + + /* Does a dentry have some pending activity? */ +diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c +index 7f05d6c..246778b 100644 +--- a/fs/autofs4/inode.c ++++ b/fs/autofs4/inode.c +@@ -165,6 +165,8 @@ void autofs4_kill_sb(struct super_block *sb) + /* Clean up and release dangling references */ + autofs4_force_release(sbi); + ++ put_pid(sbi->oz_pgrp); ++ + sb->s_fs_info = NULL; + kfree(sbi); + +@@ -181,7 +183,7 @@ static int autofs4_show_options(struct seq_file *m, struct vfsmount *mnt) + return 0; + + seq_printf(m, ",fd=%d", sbi->pipefd); +- seq_printf(m, ",pgrp=%d", sbi->oz_pgrp); ++ seq_printf(m, ",pgrp=%d", pid_vnr(sbi->oz_pgrp)); + seq_printf(m, ",timeout=%lu", sbi->exp_timeout/HZ); + seq_printf(m, ",minproto=%d", sbi->min_proto); + seq_printf(m, ",maxproto=%d", sbi->max_proto); +@@ -226,7 +228,7 @@ static int parse_options(char *options, int *pipefd, uid_t *uid, gid_t *gid, + + *uid = current->uid; + *gid = current->gid; +- *pgrp = task_pgrp_nr(current); ++ *pgrp = task_pgrp_vnr(current); + + *minproto = AUTOFS_MIN_PROTO_VERSION; + *maxproto = AUTOFS_MAX_PROTO_VERSION; +@@ -311,6 +313,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) + int pipefd; + struct autofs_sb_info *sbi; + struct autofs_info *ino; ++ pid_t pgrp; + + sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); + if (!sbi) +@@ -323,7 +326,6 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) + sbi->pipe = NULL; + sbi->catatonic = 1; + sbi->exp_timeout = 0; +- sbi->oz_pgrp = task_pgrp_nr(current); + sbi->sb = s; + sbi->version = 0; + sbi->sub_version = 0; +@@ -361,7 +363,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) + + /* Can this call block? */ + if (parse_options(data, &pipefd, &root_inode->i_uid, &root_inode->i_gid, +- &sbi->oz_pgrp, &sbi->type, &sbi->min_proto, ++ &pgrp, &sbi->type, &sbi->min_proto, + &sbi->max_proto)) { + printk("autofs: called with bogus options\n"); + goto fail_dput; +@@ -389,12 +391,20 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) + sbi->version = sbi->max_proto; + sbi->sub_version = AUTOFS_PROTO_SUBVERSION; + +- DPRINTK("pipe fd = %d, pgrp = %u", pipefd, sbi->oz_pgrp); ++ DPRINTK("pipe fd = %d, pgrp = %u", pipefd, pgrp); ++ ++ sbi->oz_pgrp = find_get_pid(pgrp); ++ ++ if (!sbi->oz_pgrp) { ++ printk("autofs: could not find process group %d\n", pgrp); ++ goto fail_dput; ++ } ++ + pipe = fget(pipefd); + + if (!pipe) { + printk("autofs: could not open pipe file descriptor\n"); +- goto fail_dput; ++ goto fail_put_pid; + } + if (!pipe->f_op || !pipe->f_op->write) + goto fail_fput; +@@ -415,6 +425,8 @@ fail_fput: + printk("autofs: pipe file descriptor does not contain proper ops\n"); + fput(pipe); + /* fall through */ ++fail_put_pid: ++ put_pid(sbi->oz_pgrp); + fail_dput: + dput(root); + goto fail_free; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0134-BRIDGE-correct-checking-for-input-packets.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0134-BRIDGE-correct-checking-for-input-packets.patch @@ -0,0 +1,41 @@ +From 7c163a9667783ebd9ae87941723e31810edf3121 Mon Sep 17 00:00:00 2001 +From: Vitaliy Gusev +Date: Thu, 15 May 2008 18:45:50 +0400 +Subject: [PATCH] BRIDGE correct checking for input packets + +When via_phys_dev flag is set then bridge doesn't have any ip address. +Therefore ip-traffic HW->VE passes only if brigge has the same MAC-address as +real ethernet interface. + +Bug #92737 +--- + net/bridge/br_input.c | 6 +++++- + 1 files changed, 5 insertions(+), 1 deletions(-) + +diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c +index 3377788..ac27655 100644 +--- a/net/bridge/br_input.c ++++ b/net/bridge/br_input.c +@@ -154,6 +154,8 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb) + } + + switch (p->state) { ++ struct net_device *out; ++ + case BR_STATE_FORWARDING: + rhook = rcu_dereference(br_should_route_hook); + if (rhook != NULL) { +@@ -166,7 +168,9 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb) + if (skb->brmark == BR_ALREADY_SEEN) + return 0; + +- if (!compare_ether_addr(p->br->dev->dev_addr, dest)) ++ out = p->br->via_phys_dev ? p->br->master_dev : p->br->dev; ++ ++ if (out && !compare_ether_addr(p->br->dev->dev_addr, dest)) + skb->pkt_type = PACKET_HOST; + + NF_HOOK(PF_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL, +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0055-IPV6-make-proc-net-if_inet6-visible-in-VE.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0055-IPV6-make-proc-net-if_inet6-visible-in-VE.patch @@ -0,0 +1,51 @@ +From 55f446a3291f66d97b068470e7ae88bd18b8fd59 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 1 Apr 2008 16:49:17 +0400 +Subject: [PATCH 54/67] IPV6: make /proc/net/if_inet6 visible in VE + +Logic for showing per-VE IPv6 addresses is already in place. + +http://bugzilla.openvz.org/show_bug.cgi?id=857 +--- + net/ipv6/addrconf.c | 21 ++++++++++++++++++--- + 1 files changed, 18 insertions(+), 3 deletions(-) + +Index: kernel/net/ipv6/addrconf.c +=================================================================== +--- kernel.orig/net/ipv6/addrconf.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/addrconf.c 2008-11-24 15:59:35.000000000 +0100 +@@ -2873,16 +2873,31 @@ + .release = seq_release_private, + }; + +-int __init if6_proc_init(void) ++static int ipv6_proc_net_init(struct net *net) + { +- if (!proc_net_fops_create(&init_net, "if_inet6", S_IRUGO, &if6_fops)) ++ if (!proc_net_fops_create(net, "if_inet6", S_IRUGO, &if6_fops)) + return -ENOMEM; + return 0; + } + ++static void ipv6_proc_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "if_inet6"); ++} ++ ++static struct pernet_operations ipv6_proc_net_ops = { ++ .init = ipv6_proc_net_init, ++ .exit = ipv6_proc_net_exit, ++}; ++ ++int __init if6_proc_init(void) ++{ ++ return register_pernet_subsys(&ipv6_proc_net_ops); ++} ++ + void if6_proc_exit(void) + { +- proc_net_remove(&init_net, "if_inet6"); ++ unregister_pernet_subsys(&ipv6_proc_net_ops); + } + #endif /* CONFIG_PROC_FS */ + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0027-NETFILTER-move-init-functions-after-fini-functions.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0027-NETFILTER-move-init-functions-after-fini-functions.patch @@ -0,0 +1,331 @@ +From 69e391057ffeb889138078c85666c2db4bd9c182 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 15:54:13 +0300 +Subject: [PATCH 27/48] NETFILTER: move init functions after fini functions + +This is getting incosistent across netfilter changes, so make it consistent. +--- + net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 20 ++++++------ + net/ipv4/netfilter/nf_conntrack_proto_icmp.c | 32 ++++++++++---------- + net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c | 20 ++++++------ + net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c | 22 +++++++------- + net/netfilter/nf_conntrack_proto_generic.c | 28 +++++++++--------- + net/netfilter/nf_conntrack_proto_tcp.c | 38 ++++++++++++------------ + net/netfilter/nf_conntrack_proto_udp.c | 38 ++++++++++++------------ + 7 files changed, 99 insertions(+), 99 deletions(-) + +Index: kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2008-11-24 15:57:32.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2008-11-24 15:57:35.000000000 +0100 +@@ -429,16 +429,6 @@ + + #ifdef CONFIG_VE_IPTABLES + #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) +-static void nf_ct_proto_ipv4_sysctl_cleanup(void) +-{ +- if (!ve_is_super(get_exec_env())) { +- free_sysctl_clone(ve_nf_conntrack_l3proto_ipv4->ctl_table); +- ve_nf_conntrack_l3proto_ipv4->ctl_table = NULL; +- kfree(ve_nf_conntrack_l3proto_ipv4); +- ve_nf_conntrack_l3proto_ipv4 = NULL; +- } +-} +- + static int nf_ct_proto_ipv4_sysctl_init(void) + { + struct nf_conntrack_l3proto *ipv4 = ve_nf_conntrack_l3proto_ipv4; +@@ -456,6 +446,16 @@ + + return 0; + } ++ ++static void nf_ct_proto_ipv4_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++ free_sysctl_clone(ve_nf_conntrack_l3proto_ipv4->ctl_table); ++ ve_nf_conntrack_l3proto_ipv4->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l3proto_ipv4); ++ ve_nf_conntrack_l3proto_ipv4 = NULL; ++ } ++} + #else + static inline int nf_ct_proto_ipv4_sysctl_init(void) + { +Index: kernel/net/ipv4/netfilter/nf_conntrack_proto_icmp.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_proto_icmp.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_proto_icmp.c 2008-11-24 15:57:35.000000000 +0100 +@@ -337,22 +337,6 @@ + }; + + #if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) +-void nf_ct_proto_icmp_sysctl_cleanup(void) +-{ +- if (!ve_is_super(get_exec_env())) { +-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT +- free_sysctl_clone( +- ve_nf_conntrack_l4proto_icmp->ctl_compat_table); +- ve_nf_conntrack_l4proto_icmp->ctl_compat_table = NULL; +-#endif +- free_sysctl_clone(ve_nf_conntrack_l4proto_icmp->ctl_table); +- ve_nf_conntrack_l4proto_icmp->ctl_table = NULL; +- kfree(ve_nf_conntrack_l4proto_icmp); +- ve_nf_conntrack_l4proto_icmp = NULL; +- } +-} +-EXPORT_SYMBOL(nf_ct_proto_icmp_sysctl_cleanup); +- + int nf_ct_proto_icmp_sysctl_init(void) + { + struct nf_conntrack_l4proto *icmp; +@@ -397,4 +381,20 @@ + return -ENOMEM; + } + EXPORT_SYMBOL(nf_ct_proto_icmp_sysctl_init); ++ ++void nf_ct_proto_icmp_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_icmp->ctl_compat_table); ++ ve_nf_conntrack_l4proto_icmp->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_icmp->ctl_table); ++ ve_nf_conntrack_l4proto_icmp->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_icmp); ++ ve_nf_conntrack_l4proto_icmp = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_icmp_sysctl_cleanup); + #endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c 2008-11-24 15:57:35.000000000 +0100 +@@ -396,16 +396,6 @@ + MODULE_AUTHOR("Yasuyuki KOZAKAI @USAGI "); + + #if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) +-static void nf_ct_proto_ipv6_sysctl_cleanup(void) +-{ +- if (!ve_is_super(get_exec_env())) { +- free_sysctl_clone(ve_nf_conntrack_l3proto_ipv6->ctl_table); +- ve_nf_conntrack_l3proto_ipv6->ctl_table = NULL; +- kfree(ve_nf_conntrack_l3proto_ipv6); +- ve_nf_conntrack_l3proto_ipv6 = NULL; +- } +-} +- + static int nf_ct_proto_ipv6_sysctl_init(void) + { + struct nf_conntrack_l3proto *ipv6; +@@ -441,6 +431,16 @@ + no_mem_ct: + return -ENOMEM; + } ++ ++static void nf_ct_proto_ipv6_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++ free_sysctl_clone(ve_nf_conntrack_l3proto_ipv6->ctl_table); ++ ve_nf_conntrack_l3proto_ipv6->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l3proto_ipv6); ++ ve_nf_conntrack_l3proto_ipv6 = NULL; ++ } ++} + #endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ + + int init_nf_ct_l3proto_ipv6(void) +Index: kernel/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c 2008-11-24 15:57:35.000000000 +0100 +@@ -297,17 +297,6 @@ + }; + + #if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) +-void nf_ct_proto_icmpv6_sysctl_cleanup(void) +-{ +- if (!ve_is_super(get_exec_env())) { +- free_sysctl_clone(ve_nf_conntrack_l4proto_icmpv6->ctl_table); +- ve_nf_conntrack_l4proto_icmpv6->ctl_table = NULL; +- kfree(ve_nf_conntrack_l4proto_icmpv6); +- ve_nf_conntrack_l4proto_icmpv6 = NULL; +- } +-} +-EXPORT_SYMBOL(nf_ct_proto_icmpv6_sysctl_cleanup); +- + int nf_ct_proto_icmpv6_sysctl_init(void) + { + struct nf_conntrack_l4proto *icmp6; +@@ -340,4 +329,15 @@ + return -ENOMEM; + } + EXPORT_SYMBOL(nf_ct_proto_icmpv6_sysctl_init); ++ ++void nf_ct_proto_icmpv6_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++ free_sysctl_clone(ve_nf_conntrack_l4proto_icmpv6->ctl_table); ++ ve_nf_conntrack_l4proto_icmpv6->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_icmpv6); ++ ve_nf_conntrack_l4proto_icmpv6 = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_icmpv6_sysctl_cleanup); + #endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/netfilter/nf_conntrack_proto_generic.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_generic.c 2008-11-24 15:57:33.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_generic.c 2008-11-24 15:57:35.000000000 +0100 +@@ -118,20 +118,6 @@ + }; + + #if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) +-void nf_ct_proto_generic_sysctl_cleanup(void) +-{ +- if (!ve_is_super(get_exec_env())) { +-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT +- free_sysctl_clone( +- ve_nf_conntrack_l4proto_generic->ctl_compat_table); +- ve_nf_conntrack_l4proto_generic->ctl_compat_table = NULL; +-#endif +- free_sysctl_clone(ve_nf_conntrack_l4proto_generic->ctl_table); +- ve_nf_conntrack_l4proto_generic->ctl_table = NULL; +- } +-} +-EXPORT_SYMBOL(nf_ct_proto_generic_sysctl_cleanup); +- + int nf_ct_proto_generic_sysctl_init(void) + { + struct nf_conntrack_l4proto *generic; +@@ -175,4 +161,18 @@ + return -ENOMEM; + } + EXPORT_SYMBOL(nf_ct_proto_generic_sysctl_init); ++ ++void nf_ct_proto_generic_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_generic->ctl_compat_table); ++ ve_nf_conntrack_l4proto_generic->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_generic->ctl_table); ++ ve_nf_conntrack_l4proto_generic->ctl_table = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_generic_sysctl_cleanup); + #endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/netfilter/nf_conntrack_proto_tcp.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_tcp.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_tcp.c 2008-11-24 15:57:35.000000000 +0100 +@@ -1430,25 +1430,6 @@ + EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_tcp6); + + #if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) +-void nf_ct_proto_tcp_sysctl_cleanup(void) +-{ +- if (!ve_is_super(get_exec_env())) { +-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT +- free_sysctl_clone( +- ve_nf_conntrack_l4proto_tcp4->ctl_compat_table); +- ve_nf_conntrack_l4proto_tcp4->ctl_compat_table = NULL; +-#endif +- free_sysctl_clone(ve_nf_conntrack_l4proto_tcp4->ctl_table); +- ve_nf_conntrack_l4proto_tcp4->ctl_table = NULL; +- kfree(ve_nf_conntrack_l4proto_tcp4); +- ve_nf_conntrack_l4proto_tcp4 = NULL; +- +- kfree(ve_nf_conntrack_l4proto_tcp6); +- ve_nf_conntrack_l4proto_tcp6 = NULL; +- } +-} +-EXPORT_SYMBOL(nf_ct_proto_tcp_sysctl_cleanup); +- + int nf_ct_proto_tcp_sysctl_init(void) + { + struct nf_conntrack_l4proto *tcp4, *tcp6; +@@ -1541,5 +1522,24 @@ + return -ENOMEM; + } + EXPORT_SYMBOL(nf_ct_proto_tcp_sysctl_init); ++ ++void nf_ct_proto_tcp_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_tcp4->ctl_compat_table); ++ ve_nf_conntrack_l4proto_tcp4->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_tcp4->ctl_table); ++ ve_nf_conntrack_l4proto_tcp4->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_tcp4); ++ ve_nf_conntrack_l4proto_tcp4 = NULL; ++ ++ kfree(ve_nf_conntrack_l4proto_tcp6); ++ ve_nf_conntrack_l4proto_tcp6 = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_tcp_sysctl_cleanup); + #endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ + +Index: kernel/net/netfilter/nf_conntrack_proto_udp.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_udp.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_udp.c 2008-11-24 15:57:35.000000000 +0100 +@@ -241,25 +241,6 @@ + EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_udp6); + + #if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) +-void nf_ct_proto_udp_sysctl_cleanup(void) +-{ +- if (!ve_is_super(get_exec_env())) { +-#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT +- free_sysctl_clone( +- ve_nf_conntrack_l4proto_udp4->ctl_compat_table); +- ve_nf_conntrack_l4proto_udp4->ctl_compat_table = NULL; +-#endif +- free_sysctl_clone(ve_nf_conntrack_l4proto_udp4->ctl_table); +- ve_nf_conntrack_l4proto_udp4->ctl_table = NULL; +- kfree(ve_nf_conntrack_l4proto_udp4); +- ve_nf_conntrack_l4proto_udp4 = NULL; +- +- kfree(ve_nf_conntrack_l4proto_udp6); +- ve_nf_conntrack_l4proto_udp6 = NULL; +- } +-} +-EXPORT_SYMBOL(nf_ct_proto_udp_sysctl_cleanup); +- + int nf_ct_proto_udp_sysctl_init(void) + { + struct nf_conntrack_l4proto *udp4, *udp6; +@@ -323,4 +304,23 @@ + return -ENOMEM; + } + EXPORT_SYMBOL(nf_ct_proto_udp_sysctl_init); ++ ++void nf_ct_proto_udp_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_udp4->ctl_compat_table); ++ ve_nf_conntrack_l4proto_udp4->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_udp4->ctl_table); ++ ve_nf_conntrack_l4proto_udp4->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_udp4); ++ ve_nf_conntrack_l4proto_udp4 = NULL; ++ ++ kfree(ve_nf_conntrack_l4proto_udp6); ++ ve_nf_conntrack_l4proto_udp6 = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_udp_sysctl_cleanup); + #endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0024-NETFILTER-fix-compilation-with-VE_IPTABLES-n.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0024-NETFILTER-fix-compilation-with-VE_IPTABLES-n.patch @@ -0,0 +1,57 @@ +From 191b730b9dd8ea3e55f8fe41baf22e9b549cc7ea Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Thu, 13 Mar 2008 20:05:08 +0300 +Subject: [PATCH 24/48] NETFILTER: fix compilation with VE_IPTABLES=n + +--- + net/ipv4/netfilter/ipt_recent.c | 2 ++ + net/ipv4/netfilter/nf_nat_core.c | 6 ++++-- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/net/ipv4/netfilter/ipt_recent.c b/net/ipv4/netfilter/ipt_recent.c +index cd85bf4..a6e4080 100644 +--- a/net/ipv4/netfilter/ipt_recent.c ++++ b/net/ipv4/netfilter/ipt_recent.c +@@ -517,7 +517,9 @@ static int init_ipt_recent(struct ve_struct *ve) + out: + return err; + out_mem: ++#ifdef CONFIG_VE_IPTABLES + kfree(ve->_ipt_recent); ++#endif + goto out; + } + +diff --git a/net/ipv4/netfilter/nf_nat_core.c b/net/ipv4/netfilter/nf_nat_core.c +index c25715e..10b2f64 100644 +--- a/net/ipv4/netfilter/nf_nat_core.c ++++ b/net/ipv4/netfilter/nf_nat_core.c +@@ -659,13 +659,13 @@ int nf_nat_init(void) + ret = -ENOMEM; + goto cleanup_extend; + } +- ++#ifdef CONFIG_VE_IPTABLES + ve_nf_nat_protos = kcalloc(MAX_IP_NAT_PROTO, sizeof(void *), GFP_KERNEL); + if (!ve_nf_nat_protos) { + ret = -ENOMEM; + goto cleanup_hash; + } +- ++#endif + /* Sew in builtin protocols. */ + write_lock_bh(&nf_nat_lock); + for (i = 0; i < MAX_IP_NAT_PROTO; i++) +@@ -687,7 +687,9 @@ int nf_nat_init(void) + ve_nf_nat_l3proto = nf_ct_l3proto_find_get((u_int16_t)AF_INET); + return 0; + ++#ifdef CONFIG_VE_IPTABLES + cleanup_hash: ++#endif + nf_ct_free_hashtable(ve_bysource, ve_nf_nat_vmalloced, nf_nat_htable_size); + cleanup_extend: + nf_ct_extend_unregister(&nat_extend); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0028-NETFILTER-add-back-__init-__exit-markers-for-nf_con.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0028-NETFILTER-add-back-__init-__exit-markers-for-nf_con.patch @@ -0,0 +1,34 @@ +From 5b45e0d2b46b4a7293f61fa8f7bf4d48ddcdf267 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 15:57:51 +0300 +Subject: [PATCH 28/48] NETFILTER: add back __init/__exit markers for nf_conntrack_ipv4 + +--- + net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +index fee3438..bbbfee7 100644 +--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c ++++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +@@ -607,7 +607,7 @@ void fini_nf_ct_l3proto_ipv4(void) + } + EXPORT_SYMBOL(fini_nf_ct_l3proto_ipv4); + +-static int nf_conntrack_l3proto_ipv4_init(void) ++static int __init nf_conntrack_l3proto_ipv4_init(void) + { + int ret = 0; + +@@ -634,7 +634,7 @@ static int nf_conntrack_l3proto_ipv4_init(void) + return ret; + } + +-static void nf_conntrack_l3proto_ipv4_fini(void) ++static void __exit nf_conntrack_l3proto_ipv4_fini(void) + { + synchronize_net(); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0100-VE-proc-boot-time.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0100-VE-proc-boot-time.patch @@ -0,0 +1,29 @@ +From f0a9304509c8acf12d5ff8b3a9233a09911c376a Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 2 Jul 2008 19:55:20 +0400 +Subject: [PATCH 100/103] VE proc boot time + +Make boot time relative to VE start time. +Some proc process tools use it to calculate process times, +but /proc/*/stat already related to VE start time. + +http://bugzilla.openvz.org/show_bug.cgi?id=828 +--- + fs/proc/proc_misc.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c +index 2bb8529..27bfda9 100644 +--- a/fs/proc/proc_misc.c ++++ b/fs/proc/proc_misc.c +@@ -649,6 +649,7 @@ int show_stat(struct seq_file *p, void *v) + show_stat_ve(p, env); + __nr_running = nr_running_ve(env); + __nr_iowait = nr_iowait_ve(env); ++ jif += env->start_timespec.tv_sec; + } + #endif + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0005-Fix-proc-compilation.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0005-Fix-proc-compilation.patch @@ -0,0 +1,42 @@ +From da23c1831f33ce142b38534f8e54f985f651707c Mon Sep 17 00:00:00 2001 +From: Peter Volkov +Date: Mon, 3 Mar 2008 12:52:27 +0300 +Subject: [PATCH 05/48] Fix proc compilation + +fs/proc/generic.c: In function 'xlate_proc_loc_name': +fs/proc/generic.c:330: error: implicit declaration of function 'get_exec_env' +fs/proc/generic.c:330: error: invalid type argument of '->' +fs/proc/generic.c: In function 'proc_lookup': +fs/proc/generic.c:516: error: implicit declaration of function 've_is_super' +--- + fs/proc/generic.c | 1 + + fs/proc/proc_tty.c | 1 + + 2 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/fs/proc/generic.c b/fs/proc/generic.c +index ff8484e..2260a20 100644 +--- a/fs/proc/generic.c ++++ b/fs/proc/generic.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + + #include "internal.h" +diff --git a/fs/proc/proc_tty.c b/fs/proc/proc_tty.c +index a5e8cd9..a3da5a0 100644 +--- a/fs/proc/proc_tty.c ++++ b/fs/proc/proc_tty.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + + static int tty_ldiscs_read_proc(char *page, char **start, off_t off, +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0058-Add-per-VE-proc-net-tcp6.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0058-Add-per-VE-proc-net-tcp6.patch @@ -0,0 +1,116 @@ +From ae2649d1f4e2249b3854be0570ea5074aa1836cb Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 1 Apr 2008 18:19:20 +0400 +Subject: [PATCH 57/67] Add per-VE /proc/net/tcp6 + +Required for netstat. +http://bugzilla.openvz.org/show_bug.cgi?id=860 +--- + include/net/tcp.h | 4 ++-- + net/ipv4/tcp_ipv4.c | 12 ++++++------ + net/ipv6/tcp_ipv6.c | 19 +++++++++++++++++-- + 3 files changed, 25 insertions(+), 10 deletions(-) + +Index: kernel/include/net/tcp.h +=================================================================== +--- kernel.orig/include/net/tcp.h 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/include/net/tcp.h 2008-11-24 15:59:46.000000000 +0100 +@@ -1358,8 +1358,8 @@ + struct seq_operations seq_ops; + }; + +-extern int tcp_proc_register(struct tcp_seq_afinfo *afinfo); +-extern void tcp_proc_unregister(struct tcp_seq_afinfo *afinfo); ++extern int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo); ++extern void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo); + + extern struct request_sock_ops tcp_request_sock_ops; + +Index: kernel/net/ipv4/tcp_ipv4.c +=================================================================== +--- kernel.orig/net/ipv4/tcp_ipv4.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv4/tcp_ipv4.c 2008-11-24 15:59:46.000000000 +0100 +@@ -2289,7 +2289,7 @@ + goto out; + } + +-int tcp_proc_register(struct tcp_seq_afinfo *afinfo) ++int tcp_proc_register(struct net *net, struct tcp_seq_afinfo *afinfo) + { + int rc = 0; + struct proc_dir_entry *p; +@@ -2302,7 +2302,7 @@ + afinfo->seq_fops->llseek = seq_lseek; + afinfo->seq_fops->release = seq_release_private; + +- p = proc_net_fops_create(current->nsproxy->net_ns, afinfo->name, S_IRUGO, afinfo->seq_fops); ++ p = proc_net_fops_create(net, afinfo->name, S_IRUGO, afinfo->seq_fops); + if (p) + p->data = afinfo; + else +@@ -2310,12 +2310,12 @@ + return rc; + } + +-void tcp_proc_unregister(struct tcp_seq_afinfo *afinfo) ++void tcp_proc_unregister(struct net *net, struct tcp_seq_afinfo *afinfo) + { + if (!afinfo) + return; + +- proc_net_remove(current->nsproxy->net_ns, afinfo->name); ++ proc_net_remove(net, afinfo->name); + memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops)); + } + +@@ -2456,12 +2456,12 @@ + + static int tcp4_proc_net_init(struct net *net) + { +- return tcp_proc_register(&tcp4_seq_afinfo); ++ return tcp_proc_register(net, &tcp4_seq_afinfo); + } + + static void tcp4_proc_net_exit(struct net *net) + { +- tcp_proc_unregister(&tcp4_seq_afinfo); ++ tcp_proc_unregister(net, &tcp4_seq_afinfo); + } + + static struct pernet_operations tcp4_proc_net_ops = { +Index: kernel/net/ipv6/tcp_ipv6.c +=================================================================== +--- kernel.orig/net/ipv6/tcp_ipv6.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/net/ipv6/tcp_ipv6.c 2008-11-24 15:59:46.000000000 +0100 +@@ -2107,14 +2107,29 @@ + .seq_fops = &tcp6_seq_fops, + }; + ++static int tcp6_proc_net_init(struct net *net) ++{ ++ return tcp_proc_register(net, &tcp6_seq_afinfo); ++} ++ ++static void tcp6_proc_net_exit(struct net *net) ++{ ++ tcp_proc_unregister(net, &tcp6_seq_afinfo); ++} ++ ++static struct pernet_operations tcp6_proc_net_ops = { ++ .init = tcp6_proc_net_init, ++ .exit = tcp6_proc_net_exit, ++}; ++ + int __init tcp6_proc_init(void) + { +- return tcp_proc_register(&tcp6_seq_afinfo); ++ return register_pernet_subsys(&tcp6_proc_net_ops); + } + + void tcp6_proc_exit(void) + { +- tcp_proc_unregister(&tcp6_seq_afinfo); ++ unregister_pernet_subsys(&tcp6_proc_net_ops); + } + #endif + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0157-CPT-assign-net_ns-of-restored-tun-tap-device.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0157-CPT-assign-net_ns-of-restored-tun-tap-device.patch @@ -0,0 +1,25 @@ +From bce432d13a89bfed1d183084ef69a9e763e26262 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 9 Jun 2008 17:08:16 +0400 +Subject: [PATCH] CPT assign ->net_ns of restored tun/tap device + +otherwise init_net is used and device becomes invisible in CT. +--- + kernel/cpt/rst_net.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/kernel/cpt/rst_net.c b/kernel/cpt/rst_net.c +index 7575dd8..179655e 100644 +--- a/kernel/cpt/rst_net.c ++++ b/kernel/cpt/rst_net.c +@@ -336,6 +336,7 @@ static int rst_restore_tuntap(loff_t start, struct cpt_netdev_image *di, + dev = alloc_netdev(sizeof(struct tun_struct), di->cpt_name, tun_setup); + if (!dev) + goto out; ++ dev->nd_net = get_exec_env()->ve_netns; + + tun = netdev_priv(dev); + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0067-Fix-dcache-accounting-interaction-with-SLUB.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0067-Fix-dcache-accounting-interaction-with-SLUB.patch @@ -0,0 +1,88 @@ +From aa10c926328212bb916e1c8e925497881c648dd3 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 22 Apr 2008 14:47:50 +0400 +Subject: [PATCH 66/67] Fix dcache accounting interaction with SLUB + +SLUB passes allocations greater than PAGE_SIZE/2 directly to page +allocator, so in case of large names there is no cache associated with +them and no ->objuse counter. + +Account for PAGE_SIZE in such cases. + +http://bugzilla.openvz.org/show_bug.cgi?id=878 +--- + include/linux/slab.h | 1 + + kernel/bc/dcache.c | 2 +- + mm/slab.c | 5 +++++ + mm/slub.c | 14 ++++++++++++++ + 4 files changed, 21 insertions(+), 1 deletions(-) + +diff --git a/include/linux/slab.h b/include/linux/slab.h +index 6d1d2f4..8f34584 100644 +--- a/include/linux/slab.h ++++ b/include/linux/slab.h +@@ -83,6 +83,7 @@ int kmem_ptr_validate(struct kmem_cache *cachep, const void *ptr); + extern void show_slab_info(void); + int kmem_cache_objuse(struct kmem_cache *cachep); + int kmem_obj_objuse(void *obj); ++int kmem_dname_objuse(void *obj); + unsigned long ub_cache_growth(struct kmem_cache *cachep); + + #ifdef CONFIG_BEANCOUNTERS +diff --git a/kernel/bc/dcache.c b/kernel/bc/dcache.c +index a9114e8..2242d64 100644 +--- a/kernel/bc/dcache.c ++++ b/kernel/bc/dcache.c +@@ -163,7 +163,7 @@ static inline unsigned long d_charge_size(struct dentry *dentry) + /* dentry's d_name is already set to appropriate value (see d_alloc) */ + return kmem_cache_objuse(inode_cachep) + kmem_cache_objuse(dentry_cache) + + (dname_external(dentry) ? +- kmem_obj_objuse((void *)dentry->d_name.name) : 0); ++ kmem_dname_objuse((void *)dentry->d_name.name) : 0); + } + + /* +diff --git a/mm/slab.c b/mm/slab.c +index 4605df4..e4b09a2 100644 +--- a/mm/slab.c ++++ b/mm/slab.c +@@ -755,6 +755,11 @@ int kmem_obj_objuse(void *obj) + return virt_to_cache(obj)->objuse; + } + ++int kmem_dname_objuse(void *obj) ++{ ++ return virt_to_cache(obj)->objuse; ++} ++ + unsigned long ub_cache_growth(struct kmem_cache *cachep) + { + return (cachep->grown - cachep->reaped - cachep->shrunk) +diff --git a/mm/slub.c b/mm/slub.c +index 68cff78..ad0717a 100644 +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -362,6 +362,20 @@ int kmem_obj_objuse(void *obj) + + EXPORT_SYMBOL(kmem_obj_objuse); + ++int kmem_dname_objuse(void *obj) ++{ ++ struct kmem_cache *s; ++ ++ /* ++ * Allocations larger than PAGE_SIZE/2 go directly through ++ * __get_free_pages() and aren't associated with any cache. ++ */ ++ s = virt_to_head_page(obj)->slab; ++ if (!s) ++ return PAGE_SIZE; ++ return kmem_cache_objuse(s); ++} ++ + #define page_ubs(pg) (pg->bc.slub_ubs) + + struct user_beancounter **ub_slab_ptr(struct kmem_cache *s, void *obj) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0122-VE-NFS-compare-super.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0122-VE-NFS-compare-super.patch @@ -0,0 +1,28 @@ +From 3f71b17bd0dcd9ed2fb3472beef576f8e3c26224 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Fri, 18 Jul 2008 15:25:51 +0400 +Subject: [PATCH 122/131] VE NFS compare super + +NFS super blocks in different VEs should be different +Teach nfs_compare_super to this. +--- + fs/nfs/super.c | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/fs/nfs/super.c b/fs/nfs/super.c +index 290bb86..fcab4a3 100644 +--- a/fs/nfs/super.c ++++ b/fs/nfs/super.c +@@ -1387,6 +1387,9 @@ static int nfs_compare_super(struct super_block *sb, void *data) + struct nfs_server *server = sb_mntdata->server, *old = NFS_SB(sb); + int mntflags = sb_mntdata->mntflags; + ++ if (!ve_accessible_strict(old->client->cl_xprt->owner_env, ++ get_exec_env())) ++ return 0; + if (memcmp(&old->nfs_client->cl_addr, + &server->nfs_client->cl_addr, + sizeof(old->nfs_client->cl_addr)) != 0) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0132-CPT-fix-EXIT_DEAD-TASK_DEAD-checks.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0132-CPT-fix-EXIT_DEAD-TASK_DEAD-checks.patch @@ -0,0 +1,41 @@ +From cdd141cddb559d5d7c235a0336da62194a5f429c Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 9 Jun 2008 20:06:27 +0400 +Subject: [PATCH] CPT fix EXIT_DEAD TASK_DEAD checks + +For one thing EXIT_DEAD was moved to ->exit_state only. +For another, this task state is called TASK_DEAD now and lives in ->state; +--- + kernel/cpt/cpt_process.c | 2 +- + kernel/cpt/rst_process.c | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/kernel/cpt/cpt_process.c b/kernel/cpt/cpt_process.c +index 12e9bf1..0837fdf 100644 +--- a/kernel/cpt/cpt_process.c ++++ b/kernel/cpt/cpt_process.c +@@ -777,7 +777,7 @@ static int dump_one_process(cpt_object_t *obj, struct cpt_context *ctx) + } + if (tsk->exit_state) { + v->cpt_state = tsk->exit_state; +- if (tsk->state != EXIT_DEAD) { ++ if (tsk->state != TASK_DEAD) { + eprintk_ctx("invalid tsk->state %ld/%d on" CPT_FID "\n", + tsk->state, tsk->exit_state, CPT_TID(tsk)); + cpt_release_buf(ctx); +diff --git a/kernel/cpt/rst_process.c b/kernel/cpt/rst_process.c +index 2630538..5a893f5 100644 +--- a/kernel/cpt/rst_process.c ++++ b/kernel/cpt/rst_process.c +@@ -1630,7 +1630,7 @@ int rst_restore_process(struct cpt_context *ctx) + else if (ti->cpt_state & (EXIT_ZOMBIE|EXIT_DEAD)) { + tsk->signal->it_virt_expires = 0; + tsk->signal->it_prof_expires = 0; +- if (tsk->state != EXIT_DEAD) ++ if (tsk->state != TASK_DEAD) + eprintk_ctx("oops, schedule() did not make us dead\n"); + } + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0001-2.6.24-ovz002.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0001-2.6.24-ovz002.patch @@ -0,0 +1,91593 @@ +Index: kernel/COPYING.SWsoft +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/COPYING.SWsoft 2008-11-24 15:47:45.000000000 +0100 +@@ -0,0 +1,350 @@ ++ ++Nothing in this license should be construed as a grant by SWsoft of any rights ++beyond the rights specified in the GNU General Public License, and nothing in ++this license should be construed as a waiver by SWsoft of its patent, copyright ++and/or trademark rights, beyond the waiver required by the GNU General Public ++License. This license is expressly inapplicable to any product that is not ++within the scope of the GNU General Public License ++ ++---------------------------------------- ++ ++ GNU GENERAL PUBLIC LICENSE ++ Version 2, June 1991 ++ ++ Copyright (C) 1989, 1991 Free Software Foundation, Inc. ++ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ Everyone is permitted to copy and distribute verbatim copies ++ of this license document, but changing it is not allowed. ++ ++ Preamble ++ ++ The licenses for most software are designed to take away your ++freedom to share and change it. By contrast, the GNU General Public ++License is intended to guarantee your freedom to share and change free ++software--to make sure the software is free for all its users. This ++General Public License applies to most of the Free Software ++Foundation's software and to any other program whose authors commit to ++using it. (Some other Free Software Foundation software is covered by ++the GNU Library General Public License instead.) You can apply it to ++your programs, too. ++ ++ When we speak of free software, we are referring to freedom, not ++price. Our General Public Licenses are designed to make sure that you ++have the freedom to distribute copies of free software (and charge for ++this service if you wish), that you receive source code or can get it ++if you want it, that you can change the software or use pieces of it ++in new free programs; and that you know you can do these things. ++ ++ To protect your rights, we need to make restrictions that forbid ++anyone to deny you these rights or to ask you to surrender the rights. ++These restrictions translate to certain responsibilities for you if you ++distribute copies of the software, or if you modify it. ++ ++ For example, if you distribute copies of such a program, whether ++gratis or for a fee, you must give the recipients all the rights that ++you have. You must make sure that they, too, receive or can get the ++source code. And you must show them these terms so they know their ++rights. ++ ++ We protect your rights with two steps: (1) copyright the software, and ++(2) offer you this license which gives you legal permission to copy, ++distribute and/or modify the software. ++ ++ Also, for each author's protection and ours, we want to make certain ++that everyone understands that there is no warranty for this free ++software. If the software is modified by someone else and passed on, we ++want its recipients to know that what they have is not the original, so ++that any problems introduced by others will not reflect on the original ++authors' reputations. ++ ++ Finally, any free program is threatened constantly by software ++patents. We wish to avoid the danger that redistributors of a free ++program will individually obtain patent licenses, in effect making the ++program proprietary. To prevent this, we have made it clear that any ++patent must be licensed for everyone's free use or not licensed at all. ++ ++ The precise terms and conditions for copying, distribution and ++modification follow. ++ ++ GNU GENERAL PUBLIC LICENSE ++ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION ++ ++ 0. This License applies to any program or other work which contains ++a notice placed by the copyright holder saying it may be distributed ++under the terms of this General Public License. The "Program", below, ++refers to any such program or work, and a "work based on the Program" ++means either the Program or any derivative work under copyright law: ++that is to say, a work containing the Program or a portion of it, ++either verbatim or with modifications and/or translated into another ++language. (Hereinafter, translation is included without limitation in ++the term "modification".) Each licensee is addressed as "you". ++ ++Activities other than copying, distribution and modification are not ++covered by this License; they are outside its scope. The act of ++running the Program is not restricted, and the output from the Program ++is covered only if its contents constitute a work based on the ++Program (independent of having been made by running the Program). ++Whether that is true depends on what the Program does. ++ ++ 1. You may copy and distribute verbatim copies of the Program's ++source code as you receive it, in any medium, provided that you ++conspicuously and appropriately publish on each copy an appropriate ++copyright notice and disclaimer of warranty; keep intact all the ++notices that refer to this License and to the absence of any warranty; ++and give any other recipients of the Program a copy of this License ++along with the Program. ++ ++You may charge a fee for the physical act of transferring a copy, and ++you may at your option offer warranty protection in exchange for a fee. ++ ++ 2. You may modify your copy or copies of the Program or any portion ++of it, thus forming a work based on the Program, and copy and ++distribute such modifications or work under the terms of Section 1 ++above, provided that you also meet all of these conditions: ++ ++ a) You must cause the modified files to carry prominent notices ++ stating that you changed the files and the date of any change. ++ ++ b) You must cause any work that you distribute or publish, that in ++ whole or in part contains or is derived from the Program or any ++ part thereof, to be licensed as a whole at no charge to all third ++ parties under the terms of this License. ++ ++ c) If the modified program normally reads commands interactively ++ when run, you must cause it, when started running for such ++ interactive use in the most ordinary way, to print or display an ++ announcement including an appropriate copyright notice and a ++ notice that there is no warranty (or else, saying that you provide ++ a warranty) and that users may redistribute the program under ++ these conditions, and telling the user how to view a copy of this ++ License. (Exception: if the Program itself is interactive but ++ does not normally print such an announcement, your work based on ++ the Program is not required to print an announcement.) ++ ++These requirements apply to the modified work as a whole. If ++identifiable sections of that work are not derived from the Program, ++and can be reasonably considered independent and separate works in ++themselves, then this License, and its terms, do not apply to those ++sections when you distribute them as separate works. But when you ++distribute the same sections as part of a whole which is a work based ++on the Program, the distribution of the whole must be on the terms of ++this License, whose permissions for other licensees extend to the ++entire whole, and thus to each and every part regardless of who wrote it. ++ ++Thus, it is not the intent of this section to claim rights or contest ++your rights to work written entirely by you; rather, the intent is to ++exercise the right to control the distribution of derivative or ++collective works based on the Program. ++ ++In addition, mere aggregation of another work not based on the Program ++with the Program (or with a work based on the Program) on a volume of ++a storage or distribution medium does not bring the other work under ++the scope of this License. ++ ++ 3. You may copy and distribute the Program (or a work based on it, ++under Section 2) in object code or executable form under the terms of ++Sections 1 and 2 above provided that you also do one of the following: ++ ++ a) Accompany it with the complete corresponding machine-readable ++ source code, which must be distributed under the terms of Sections ++ 1 and 2 above on a medium customarily used for software interchange; or, ++ ++ b) Accompany it with a written offer, valid for at least three ++ years, to give any third party, for a charge no more than your ++ cost of physically performing source distribution, a complete ++ machine-readable copy of the corresponding source code, to be ++ distributed under the terms of Sections 1 and 2 above on a medium ++ customarily used for software interchange; or, ++ ++ c) Accompany it with the information you received as to the offer ++ to distribute corresponding source code. (This alternative is ++ allowed only for noncommercial distribution and only if you ++ received the program in object code or executable form with such ++ an offer, in accord with Subsection b above.) ++ ++The source code for a work means the preferred form of the work for ++making modifications to it. For an executable work, complete source ++code means all the source code for all modules it contains, plus any ++associated interface definition files, plus the scripts used to ++control compilation and installation of the executable. However, as a ++special exception, the source code distributed need not include ++anything that is normally distributed (in either source or binary ++form) with the major components (compiler, kernel, and so on) of the ++operating system on which the executable runs, unless that component ++itself accompanies the executable. ++ ++If distribution of executable or object code is made by offering ++access to copy from a designated place, then offering equivalent ++access to copy the source code from the same place counts as ++distribution of the source code, even though third parties are not ++compelled to copy the source along with the object code. ++ ++ 4. You may not copy, modify, sublicense, or distribute the Program ++except as expressly provided under this License. Any attempt ++otherwise to copy, modify, sublicense or distribute the Program is ++void, and will automatically terminate your rights under this License. ++However, parties who have received copies, or rights, from you under ++this License will not have their licenses terminated so long as such ++parties remain in full compliance. ++ ++ 5. You are not required to accept this License, since you have not ++signed it. However, nothing else grants you permission to modify or ++distribute the Program or its derivative works. These actions are ++prohibited by law if you do not accept this License. Therefore, by ++modifying or distributing the Program (or any work based on the ++Program), you indicate your acceptance of this License to do so, and ++all its terms and conditions for copying, distributing or modifying ++the Program or works based on it. ++ ++ 6. Each time you redistribute the Program (or any work based on the ++Program), the recipient automatically receives a license from the ++original licensor to copy, distribute or modify the Program subject to ++these terms and conditions. You may not impose any further ++restrictions on the recipients' exercise of the rights granted herein. ++You are not responsible for enforcing compliance by third parties to ++this License. ++ ++ 7. If, as a consequence of a court judgment or allegation of patent ++infringement or for any other reason (not limited to patent issues), ++conditions are imposed on you (whether by court order, agreement or ++otherwise) that contradict the conditions of this License, they do not ++excuse you from the conditions of this License. If you cannot ++distribute so as to satisfy simultaneously your obligations under this ++License and any other pertinent obligations, then as a consequence you ++may not distribute the Program at all. For example, if a patent ++license would not permit royalty-free redistribution of the Program by ++all those who receive copies directly or indirectly through you, then ++the only way you could satisfy both it and this License would be to ++refrain entirely from distribution of the Program. ++ ++If any portion of this section is held invalid or unenforceable under ++any particular circumstance, the balance of the section is intended to ++apply and the section as a whole is intended to apply in other ++circumstances. ++ ++It is not the purpose of this section to induce you to infringe any ++patents or other property right claims or to contest validity of any ++such claims; this section has the sole purpose of protecting the ++integrity of the free software distribution system, which is ++implemented by public license practices. Many people have made ++generous contributions to the wide range of software distributed ++through that system in reliance on consistent application of that ++system; it is up to the author/donor to decide if he or she is willing ++to distribute software through any other system and a licensee cannot ++impose that choice. ++ ++This section is intended to make thoroughly clear what is believed to ++be a consequence of the rest of this License. ++ ++ 8. If the distribution and/or use of the Program is restricted in ++certain countries either by patents or by copyrighted interfaces, the ++original copyright holder who places the Program under this License ++may add an explicit geographical distribution limitation excluding ++those countries, so that distribution is permitted only in or among ++countries not thus excluded. In such case, this License incorporates ++the limitation as if written in the body of this License. ++ ++ 9. The Free Software Foundation may publish revised and/or new versions ++of the General Public License from time to time. Such new versions will ++be similar in spirit to the present version, but may differ in detail to ++address new problems or concerns. ++ ++Each version is given a distinguishing version number. If the Program ++specifies a version number of this License which applies to it and "any ++later version", you have the option of following the terms and conditions ++either of that version or of any later version published by the Free ++Software Foundation. If the Program does not specify a version number of ++this License, you may choose any version ever published by the Free Software ++Foundation. ++ ++ 10. If you wish to incorporate parts of the Program into other free ++programs whose distribution conditions are different, write to the author ++to ask for permission. For software which is copyrighted by the Free ++Software Foundation, write to the Free Software Foundation; we sometimes ++make exceptions for this. Our decision will be guided by the two goals ++of preserving the free status of all derivatives of our free software and ++of promoting the sharing and reuse of software generally. ++ ++ NO WARRANTY ++ ++ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY ++FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN ++OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES ++PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED ++OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS ++TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE ++PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, ++REPAIR OR CORRECTION. ++ ++ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING ++WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR ++REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, ++INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING ++OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED ++TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY ++YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER ++PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE ++POSSIBILITY OF SUCH DAMAGES. ++ ++ END OF TERMS AND CONDITIONS ++ ++ How to Apply These Terms to Your New Programs ++ ++ If you develop a new program, and you want it to be of the greatest ++possible use to the public, the best way to achieve this is to make it ++free software which everyone can redistribute and change under these terms. ++ ++ To do so, attach the following notices to the program. It is safest ++to attach them to the start of each source file to most effectively ++convey the exclusion of warranty; and each file should have at least ++the "copyright" line and a pointer to where the full notice is found. ++ ++ ++ Copyright (C) ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 2 of the License, or ++ (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ ++ ++Also add information on how to contact you by electronic and paper mail. ++ ++If the program is interactive, make it output a short notice like this ++when it starts in an interactive mode: ++ ++ Gnomovision version 69, Copyright (C) year name of author ++ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. ++ This is free software, and you are welcome to redistribute it ++ under certain conditions; type `show c' for details. ++ ++The hypothetical commands `show w' and `show c' should show the appropriate ++parts of the General Public License. Of course, the commands you use may ++be called something other than `show w' and `show c'; they could even be ++mouse-clicks or menu items--whatever suits your program. ++ ++You should also get your employer (if you work as a programmer) or your ++school, if any, to sign a "copyright disclaimer" for the program, if ++necessary. Here is a sample; alter the names: ++ ++ Yoyodyne, Inc., hereby disclaims all copyright interest in the program ++ `Gnomovision' (which makes passes at compilers) written by James Hacker. ++ ++ , 1 April 1989 ++ Ty Coon, President of Vice ++ ++This General Public License does not permit incorporating your program into ++proprietary programs. If your program is a subroutine library, you may ++consider it more useful to permit linking proprietary applications with the ++library. If this is what you want to do, use the GNU Library General ++Public License instead of this License. +Index: kernel/Makefile +=================================================================== +--- kernel.orig/Makefile 2008-11-24 14:18:14.000000000 +0100 ++++ kernel/Makefile 2008-11-24 15:47:45.000000000 +0100 +@@ -3,6 +3,7 @@ + SUBLEVEL = 24 + EXTRAVERSION = .6 + NAME = Err Metey! A Heury Beelge-a Ret! ++VZVERSION = ovz002 + + # *DOCUMENTATION* + # To see a list of typical targets execute "make help" +@@ -355,7 +356,7 @@ + KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null) + KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) + +-export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION ++export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION VZVERSION + export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC + export CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE + export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS +@@ -613,7 +614,7 @@ + + + ifeq ($(KBUILD_EXTMOD),) +-core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ ++core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ grsecurity/ + + vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ + $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ +@@ -973,7 +974,8 @@ + echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \ + exit 1; \ + fi; \ +- (echo \#define UTS_RELEASE \"$(KERNELRELEASE)\";) ++ (echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"; \ ++ echo \#define VZVERSION \"$(VZVERSION)\";) + endef + + define filechk_version.h +Index: kernel/arch/arm/kernel/smp.c +=================================================================== +--- kernel.orig/arch/arm/kernel/smp.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/arm/kernel/smp.c 2008-11-24 15:47:45.000000000 +0100 +@@ -201,7 +201,7 @@ + local_flush_tlb_all(); + + read_lock(&tasklist_lock); +- for_each_process(p) { ++ for_each_process_all(p) { + if (p->mm) + cpu_clear(cpu, p->mm->cpu_vm_mask); + } +Index: kernel/arch/ia64/Kconfig +=================================================================== +--- kernel.orig/arch/ia64/Kconfig 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/Kconfig 2008-11-24 15:47:45.000000000 +0100 +@@ -570,6 +570,7 @@ + + source "lib/Kconfig" + ++source "kernel/bc/Kconfig" + # + # Use the generic interrupt handling code in kernel/irq/: + # +@@ -596,6 +597,8 @@ + + source "arch/ia64/Kconfig.debug" + ++source "kernel/Kconfig.openvz" ++ + source "security/Kconfig" + + source "crypto/Kconfig" +Index: kernel/arch/ia64/ia32/binfmt_elf32.c +=================================================================== +--- kernel.orig/arch/ia64/ia32/binfmt_elf32.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/ia32/binfmt_elf32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -17,6 +17,8 @@ + #include + #include + ++#include ++ + #include "ia32priv.h" + #include "elfcore32.h" + +@@ -132,6 +134,12 @@ + up_write(¤t->mm->mmap_sem); + } + ++ if (ub_memory_charge(current->mm, PAGE_ALIGN(IA32_LDT_ENTRIES * ++ IA32_LDT_ENTRY_SIZE), ++ VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE, ++ NULL, UB_SOFT)) ++ goto skip; ++ + /* + * Install LDT as anonymous memory. This gives us all-zero segment descriptors + * until a task modifies them via modify_ldt(). +@@ -152,7 +160,12 @@ + } + } + up_write(¤t->mm->mmap_sem); +- } ++ } else ++ ub_memory_uncharge(current->mm, PAGE_ALIGN(IA32_LDT_ENTRIES * ++ IA32_LDT_ENTRY_SIZE), ++ VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE, NULL); ++ ++skip: + + ia64_psr(regs)->ac = 0; /* turn off alignment checking */ + regs->loadrs = 0; +Index: kernel/arch/ia64/kernel/asm-offsets.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/asm-offsets.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/asm-offsets.c 2008-11-24 15:47:45.000000000 +0100 +@@ -46,11 +46,9 @@ + DEFINE(IA64_TASK_CLEAR_CHILD_TID_OFFSET,offsetof (struct task_struct, clear_child_tid)); + DEFINE(IA64_TASK_GROUP_LEADER_OFFSET, offsetof (struct task_struct, group_leader)); + DEFINE(IA64_TASK_PENDING_OFFSET,offsetof (struct task_struct, pending)); +- DEFINE(IA64_TASK_PID_OFFSET, offsetof (struct task_struct, pid)); + DEFINE(IA64_TASK_REAL_PARENT_OFFSET, offsetof (struct task_struct, real_parent)); + DEFINE(IA64_TASK_SIGHAND_OFFSET,offsetof (struct task_struct, sighand)); + DEFINE(IA64_TASK_SIGNAL_OFFSET,offsetof (struct task_struct, signal)); +- DEFINE(IA64_TASK_TGID_OFFSET, offsetof (struct task_struct, tgid)); + DEFINE(IA64_TASK_THREAD_KSP_OFFSET, offsetof (struct task_struct, thread.ksp)); + DEFINE(IA64_TASK_THREAD_ON_USTACK_OFFSET, offsetof (struct task_struct, thread.on_ustack)); + +Index: kernel/arch/ia64/kernel/entry.S +=================================================================== +--- kernel.orig/arch/ia64/kernel/entry.S 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/entry.S 2008-11-24 15:47:45.000000000 +0100 +@@ -504,6 +504,74 @@ + br.ret.sptk.many rp + END(clone) + ++GLOBAL_ENTRY(ia64_ret_from_resume) ++ PT_REGS_UNWIND_INFO(0) ++{ /* ++ * Some versions of gas generate bad unwind info if the first instruction of a ++ * procedure doesn't go into the first slot of a bundle. This is a workaround. ++ */ ++ nop.m 0 ++ nop.i 0 ++ /* ++ * We need to call schedule_tail() to complete the scheduling process. ++ * Called by ia64_switch_to() after do_fork()->copy_thread(). r8 contains the ++ * address of the previously executing task. ++ */ ++ br.call.sptk.many rp=ia64_invoke_schedule_tail ++} ++ br.call.sptk.many rp=ia64_invoke_resume ++ ;; ++ adds sp=256,sp ++ ;; ++ /* Return from interrupt, we are all right. */ ++(pNonSys) br ia64_leave_kernel ++ ;; ++ /* Tricky part follows. We must restore correct syscall ++ * register frame before doing normal syscall exit job. ++ * It would the most natural to keep sw->ar_pfs correct, ++ * then we would be here with correct register frame. ++ * Unfortunately, IA64 has a feature. Registers were in backstore ++ * after context switch, and the first br.ret does _NOT_ fetch ++ * output registers. ++ * It is quite natural: look, if caller has output regs in his ++ * frame, they should be consumed. If callee does not have (enough of) ++ * input/local registers (1 in this case), the situation is unusual. ++ * Practical evidence: they are filled with something random crap. ++ * The only case, when this is essential in mainstream kernel ++ * is sys_clone(). The result is that new process gets some kernel ++ * information in its register frame. Which is a security problem, btw. ++ * ++ * So, we set sw->ar_pfs to pretend the whole frame is of local ++ * regs. And we have to repartition the frame it manually, using ++ * information from pt->cr_ifs (the register is invalid in this ++ * case, but it holds correct pfm). ++ */ ++ adds r3=PT(CR_IFS)+16,sp ++ ;; ++ ld8 r2=[r3],-(PT(CR_IFS)-PT(R8)) ++ ;; ++ extr.u r2=r2,0,37 ++ mov r8=ar.ec ++ ;; ++ extr.u r8=r8,0,5 ++ ;; ++ shl r8=r8,52 ++ ;; ++ or r2=r2,r8 ++ ;; ++ mov ar.pfs=r2 ++ ;; ++ movl r2=ia64_leave_syscall ++ ;; ++ mov rp=r2 ++ /* Plus, we should fetch r8 and r10 from pt_regs. Something else? */ ++ ld8 r8=[r3],PT(R10)-PT(R8) ++ ;; ++ ld8 r10=[r3] ++ ;; ++ br.ret.sptk.many rp ++END(ia64_ret_from_resume) ++ + /* + * Invoke a system call, but do some tracing before and after the call. + * We MUST preserve the current register frame throughout this routine +@@ -1167,6 +1235,34 @@ + br.ret.sptk.many rp + END(ia64_invoke_schedule_tail) + ++GLOBAL_ENTRY(ia64_invoke_resume) ++ alloc loc1=ar.pfs,0,3,1,0 ++ mov loc0=rp ++ adds out0=16,sp ++ ;; ++ ld8 r8=[out0] ++ ;; ++ cmp.eq p6,p0=r8,r0 ++ ;; ++(p6) br.cond.sptk 1f ++ ;; ++ mov loc2=gp ++ ;; ++ ld8 r10=[r8],8 ++ ;; ++ ld8 gp=[r8] ++ ;; ++ mov b7=r10 ++ ;; ++ br.call.sptk.many rp=b7 ++ ;; ++ mov gp=loc2 ++1: ++ mov ar.pfs=loc1 ++ mov rp=loc0 ++ br.ret.sptk.many rp ++END(ia64_invoke_resume) ++ + /* + * Setup stack and call do_notify_resume_user(). Note that pSys and pNonSys need to + * be set up by the caller. We declare 8 input registers so the system call +@@ -1588,5 +1684,14 @@ + data8 sys_signalfd + data8 sys_timerfd + data8 sys_eventfd ++.rept 1505-1310 ++ data8 sys_ni_syscall ++.endr ++ data8 sys_getluid // 1505 ++ data8 sys_setluid ++ data8 sys_setublimit ++ data8 sys_ubstat ++ data8 sys_lchmod ++ data8 sys_lutime // 1510 + + .org sys_call_table + 8*NR_syscalls // guard against failures to increase NR_syscalls +Index: kernel/arch/ia64/kernel/fsys.S +=================================================================== +--- kernel.orig/arch/ia64/kernel/fsys.S 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/fsys.S 2008-11-24 15:47:45.000000000 +0100 +@@ -57,96 +57,6 @@ + FSYS_RETURN + END(fsys_ni_syscall) + +-ENTRY(fsys_getpid) +- .prologue +- .altrp b6 +- .body +- add r9=TI_FLAGS+IA64_TASK_SIZE,r16 +- ;; +- ld4 r9=[r9] +- add r8=IA64_TASK_TGID_OFFSET,r16 +- ;; +- and r9=TIF_ALLWORK_MASK,r9 +- ld4 r8=[r8] // r8 = current->tgid +- ;; +- cmp.ne p8,p0=0,r9 +-(p8) br.spnt.many fsys_fallback_syscall +- FSYS_RETURN +-END(fsys_getpid) +- +-ENTRY(fsys_getppid) +- .prologue +- .altrp b6 +- .body +- add r17=IA64_TASK_GROUP_LEADER_OFFSET,r16 +- ;; +- ld8 r17=[r17] // r17 = current->group_leader +- add r9=TI_FLAGS+IA64_TASK_SIZE,r16 +- ;; +- +- ld4 r9=[r9] +- add r17=IA64_TASK_REAL_PARENT_OFFSET,r17 // r17 = ¤t->group_leader->real_parent +- ;; +- and r9=TIF_ALLWORK_MASK,r9 +- +-1: ld8 r18=[r17] // r18 = current->group_leader->real_parent +- ;; +- cmp.ne p8,p0=0,r9 +- add r8=IA64_TASK_TGID_OFFSET,r18 // r8 = ¤t->group_leader->real_parent->tgid +- ;; +- +- /* +- * The .acq is needed to ensure that the read of tgid has returned its data before +- * we re-check "real_parent". +- */ +- ld4.acq r8=[r8] // r8 = current->group_leader->real_parent->tgid +-#ifdef CONFIG_SMP +- /* +- * Re-read current->group_leader->real_parent. +- */ +- ld8 r19=[r17] // r19 = current->group_leader->real_parent +-(p8) br.spnt.many fsys_fallback_syscall +- ;; +- cmp.ne p6,p0=r18,r19 // did real_parent change? +- mov r19=0 // i must not leak kernel bits... +-(p6) br.cond.spnt.few 1b // yes -> redo the read of tgid and the check +- ;; +- mov r17=0 // i must not leak kernel bits... +- mov r18=0 // i must not leak kernel bits... +-#else +- mov r17=0 // i must not leak kernel bits... +- mov r18=0 // i must not leak kernel bits... +- mov r19=0 // i must not leak kernel bits... +-#endif +- FSYS_RETURN +-END(fsys_getppid) +- +-ENTRY(fsys_set_tid_address) +- .prologue +- .altrp b6 +- .body +- add r9=TI_FLAGS+IA64_TASK_SIZE,r16 +- ;; +- ld4 r9=[r9] +- tnat.z p6,p7=r32 // check argument register for being NaT +- ;; +- and r9=TIF_ALLWORK_MASK,r9 +- add r8=IA64_TASK_PID_OFFSET,r16 +- add r18=IA64_TASK_CLEAR_CHILD_TID_OFFSET,r16 +- ;; +- ld4 r8=[r8] +- cmp.ne p8,p0=0,r9 +- mov r17=-1 +- ;; +-(p6) st8 [r18]=r32 +-(p7) st8 [r18]=r17 +-(p8) br.spnt.many fsys_fallback_syscall +- ;; +- mov r17=0 // i must not leak kernel bits... +- mov r18=0 // i must not leak kernel bits... +- FSYS_RETURN +-END(fsys_set_tid_address) +- + #if IA64_GTOD_LOCK_OFFSET !=0 + #error fsys_gettimeofday incompatible with changes to struct fsyscall_gtod_data_t + #endif +@@ -718,8 +628,8 @@ + data8 0 // chmod + data8 0 // chown + data8 0 // lseek // 1040 +- data8 fsys_getpid // getpid +- data8 fsys_getppid // getppid ++ data8 0 // getpid ++ data8 0 // getppid + data8 0 // mount + data8 0 // umount + data8 0 // setuid // 1045 +@@ -910,7 +820,7 @@ + data8 0 // futex // 1230 + data8 0 // sched_setaffinity + data8 0 // sched_getaffinity +- data8 fsys_set_tid_address // set_tid_address ++ data8 0 // set_tid_address + data8 0 // fadvise64_64 + data8 0 // tgkill // 1235 + data8 0 // exit_group +Index: kernel/arch/ia64/kernel/head.S +=================================================================== +--- kernel.orig/arch/ia64/kernel/head.S 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/head.S 2008-11-24 15:47:45.000000000 +0100 +@@ -1011,7 +1011,7 @@ + mov out1 = r11;; + br.call.sptk.many rp = kernel_thread_helper;; + mov out0 = r8 +- br.call.sptk.many rp = sys_exit;; ++ br.call.sptk.many rp = do_exit;; + 1: br.sptk.few 1b // not reached + END(start_kernel_thread) + +Index: kernel/arch/ia64/kernel/ia64_ksyms.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/ia64_ksyms.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/ia64_ksyms.c 2008-11-24 15:47:45.000000000 +0100 +@@ -78,6 +78,8 @@ + EXPORT_SYMBOL(xor_ia64_5); + #endif + ++EXPORT_SYMBOL(empty_zero_page); ++ + #include + EXPORT_SYMBOL(ia64_pal_call_phys_stacked); + EXPORT_SYMBOL(ia64_pal_call_phys_static); +Index: kernel/arch/ia64/kernel/mca.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/mca.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/mca.c 2008-11-24 15:47:45.000000000 +0100 +@@ -1551,10 +1551,10 @@ + } + printk("\n\n"); + if (read_trylock(&tasklist_lock)) { +- do_each_thread (g, t) { ++ do_each_thread_all (g, t) { + printk("\nBacktrace of pid %d (%s)\n", t->pid, t->comm); + show_stack(t, NULL); +- } while_each_thread (g, t); ++ } while_each_thread_all (g, t); + read_unlock(&tasklist_lock); + } + /* FIXME: This will not restore zapped printk locks. */ +Index: kernel/arch/ia64/kernel/perfmon.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/perfmon.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/perfmon.c 2008-11-24 15:47:45.000000000 +0100 +@@ -4216,12 +4216,12 @@ + + read_lock(&tasklist_lock); + +- do_each_thread (g, t) { ++ do_each_thread_ve (g, t) { + if (t->thread.pfm_context == ctx) { + ret = 0; + break; + } +- } while_each_thread (g, t); ++ } while_each_thread_ve (g, t); + + read_unlock(&tasklist_lock); + +Index: kernel/arch/ia64/kernel/process.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/process.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/process.c 2008-11-24 15:47:45.000000000 +0100 +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -369,6 +370,9 @@ + #endif + } + ++extern char ia64_ret_from_resume; ++EXPORT_SYMBOL(ia64_ret_from_resume); ++ + /* + * Copy the state of an ia-64 thread. + * +@@ -442,7 +446,6 @@ + child_ptregs->r12 = user_stack_base + user_stack_size - 16; + child_ptregs->ar_bspstore = user_stack_base; + child_ptregs->ar_rnat = 0; +- child_ptregs->loadrs = 0; + } + } else { + /* +@@ -684,16 +687,25 @@ + return error; + } + ++extern void start_kernel_thread (void); ++EXPORT_SYMBOL(start_kernel_thread); ++ + pid_t + kernel_thread (int (*fn)(void *), void *arg, unsigned long flags) + { +- extern void start_kernel_thread (void); + unsigned long *helper_fptr = (unsigned long *) &start_kernel_thread; + struct { + struct switch_stack sw; + struct pt_regs pt; + } regs; + ++ /* Don't allow kernel_thread() inside VE */ ++ if (!ve_allow_kthreads && !ve_is_super(get_exec_env())) { ++ printk("kernel_thread call inside container\n"); ++ dump_stack(); ++ return -EPERM; ++ } ++ + memset(®s, 0, sizeof(regs)); + regs.pt.cr_iip = helper_fptr[0]; /* set entry point (IP) */ + regs.pt.r1 = helper_fptr[1]; /* set GP */ +Index: kernel/arch/ia64/kernel/ptrace.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/ptrace.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/ptrace.c 2008-11-24 15:47:45.000000000 +0100 +@@ -7,6 +7,7 @@ + * Derived from the x86 and Alpha versions. + */ + #include ++#include + #include + #include + #include +@@ -100,6 +101,8 @@ + + # undef GET_BITS + } ++EXPORT_SYMBOL(ia64_get_scratch_nat_bits); ++EXPORT_SYMBOL(__ia64_save_fpu); + + /* + * Set the NaT bits for the scratch registers according to NAT and +@@ -456,6 +459,7 @@ + *val = ret; + return 0; + } ++EXPORT_SYMBOL(ia64_peek); + + long + ia64_poke (struct task_struct *child, struct switch_stack *child_stack, +@@ -520,6 +524,7 @@ + *cfmp = cfm; + return (unsigned long) ia64_rse_skip_regs(bspstore, ndirty); + } ++EXPORT_SYMBOL(ia64_get_user_rbs_end); + + /* + * Synchronize (i.e, write) the RSE backing store living in kernel +@@ -757,20 +762,20 @@ + if (write_access) { + nat_bits = *data; + scratch_unat = ia64_put_scratch_nat_bits(pt, nat_bits); +- if (unw_set_ar(info, UNW_AR_UNAT, scratch_unat) < 0) { +- dprintk("ptrace: failed to set ar.unat\n"); +- return -1; +- } ++ if (info->pri_unat_loc) ++ *info->pri_unat_loc = scratch_unat; ++ else ++ info->sw->caller_unat = scratch_unat; + for (regnum = 4; regnum <= 7; ++regnum) { + unw_get_gr(info, regnum, &dummy, &nat); + unw_set_gr(info, regnum, dummy, + (nat_bits >> regnum) & 1); + } + } else { +- if (unw_get_ar(info, UNW_AR_UNAT, &scratch_unat) < 0) { +- dprintk("ptrace: failed to read ar.unat\n"); +- return -1; +- } ++ if (info->pri_unat_loc) ++ scratch_unat = *info->pri_unat_loc; ++ else ++ scratch_unat = info->sw->caller_unat; + nat_bits = ia64_get_scratch_nat_bits(pt, scratch_unat); + for (regnum = 4; regnum <= 7; ++regnum) { + unw_get_gr(info, regnum, &dummy, &nat); +Index: kernel/arch/ia64/kernel/signal.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/signal.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/signal.c 2008-11-24 15:47:45.000000000 +0100 +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -446,6 +447,12 @@ + if (!user_mode(&scr->pt)) + return; + ++ if (try_to_freeze() && !signal_pending(current)) { ++ if ((long) scr->pt.r10 != -1) ++ restart = 0; ++ goto no_signal; ++ } ++ + if (test_thread_flag(TIF_RESTORE_SIGMASK)) + oldset = ¤t->saved_sigmask; + else +@@ -501,8 +508,10 @@ + if (IS_IA32_PROCESS(&scr->pt)) { + scr->pt.r8 = scr->pt.r1; + scr->pt.cr_iip -= 2; +- } else ++ } else { + ia64_decrement_ip(&scr->pt); ++ scr->pt.r10 = 0; ++ } + restart = 0; /* don't restart twice if handle_signal() fails... */ + } + } +@@ -523,6 +532,7 @@ + } + + /* Did we come from a system call? */ ++no_signal: + if (restart) { + /* Restart the system call - no handlers present */ + if (errno == ERESTARTNOHAND || errno == ERESTARTSYS || errno == ERESTARTNOINTR +@@ -542,6 +552,7 @@ + ia64_decrement_ip(&scr->pt); + if (errno == ERESTART_RESTARTBLOCK) + scr->pt.r15 = __NR_restart_syscall; ++ scr->pt.r10 = 0; + } + } + } +Index: kernel/arch/ia64/kernel/sys_ia64.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/sys_ia64.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/sys_ia64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -204,7 +204,7 @@ + + /* Careful about overflows.. */ + len = PAGE_ALIGN(len); +- if (!len || len > TASK_SIZE) { ++ if (len > TASK_SIZE) { + addr = -EINVAL; + goto out; + } +Index: kernel/arch/ia64/kernel/unaligned.c +=================================================================== +--- kernel.orig/arch/ia64/kernel/unaligned.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/kernel/unaligned.c 2008-11-24 15:47:45.000000000 +0100 +@@ -1289,7 +1289,7 @@ + { + static unsigned long count, last_time; + +- if (jiffies - last_time > 5*HZ) ++ if (jiffies - last_time > 60 * HZ) + count = 0; + if (count < 5) { + last_time = jiffies; +Index: kernel/arch/ia64/mm/contig.c +=================================================================== +--- kernel.orig/arch/ia64/mm/contig.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/mm/contig.c 2008-11-24 15:47:45.000000000 +0100 +@@ -94,6 +94,7 @@ + quicklist_total_size()); + printk(KERN_INFO "%d free buffer pages\n", nr_free_buffer_pages()); + } ++EXPORT_SYMBOL(show_mem); + + + /* physical address where the bootmem map is located */ +Index: kernel/arch/ia64/mm/discontig.c +=================================================================== +--- kernel.orig/arch/ia64/mm/discontig.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/mm/discontig.c 2008-11-24 15:47:45.000000000 +0100 +@@ -49,6 +49,7 @@ + static nodemask_t memory_less_mask __initdata; + + pg_data_t *pgdat_list[MAX_NUMNODES]; ++EXPORT_SYMBOL(pgdat_list); + + /* + * To prevent cache aliasing effects, align per-node structures so that they +@@ -567,6 +568,7 @@ + quicklist_total_size()); + printk(KERN_INFO "%d free buffer pages\n", nr_free_buffer_pages()); + } ++EXPORT_SYMBOL(show_mem); + + /** + * call_pernode_memory - use SRAT to call callback functions with node info +Index: kernel/arch/ia64/mm/fault.c +=================================================================== +--- kernel.orig/arch/ia64/mm/fault.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/mm/fault.c 2008-11-24 15:47:45.000000000 +0100 +@@ -148,7 +148,6 @@ + if ((vma->vm_flags & mask) != mask) + goto bad_area; + +- survive: + /* + * If for any reason at all we couldn't handle the fault, make + * sure we exit gracefully rather than endlessly redo the +@@ -274,13 +273,13 @@ + + out_of_memory: + up_read(&mm->mmap_sem); +- if (is_global_init(current)) { +- yield(); +- down_read(&mm->mmap_sem); +- goto survive; +- } +- printk(KERN_CRIT "VM: killing process %s\n", current->comm); +- if (user_mode(regs)) +- do_group_exit(SIGKILL); ++ if (user_mode(regs)) { ++ /* ++ * 0-order allocation always success if something really ++ * fatal not happen: beancounter overdraft or OOM. ++ */ ++ force_sig(SIGKILL, current); ++ return; ++ } + goto no_context; + } +Index: kernel/arch/ia64/mm/init.c +=================================================================== +--- kernel.orig/arch/ia64/mm/init.c 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/ia64/mm/init.c 2008-11-24 15:47:45.000000000 +0100 +@@ -37,6 +37,8 @@ + #include + #include + ++#include ++ + DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); + + extern void ia64_tlb_init (void); +@@ -117,6 +119,10 @@ + + ia64_set_rbs_bot(); + ++ if (ub_memory_charge(current->mm, PAGE_SIZE, VM_DATA_DEFAULT_FLAGS, ++ NULL, UB_SOFT)) ++ goto skip; ++ + /* + * If we're out of memory and kmem_cache_alloc() returns NULL, we simply ignore + * the problem. When the process attempts to write to the register backing store +@@ -133,11 +139,16 @@ + if (insert_vm_struct(current->mm, vma)) { + up_write(¤t->mm->mmap_sem); + kmem_cache_free(vm_area_cachep, vma); ++ ub_memory_uncharge(current->mm, PAGE_SIZE, ++ VM_DATA_DEFAULT_FLAGS, NULL); + return; + } + up_write(¤t->mm->mmap_sem); +- } ++ } else ++ ub_memory_uncharge(current->mm, PAGE_SIZE, ++ VM_DATA_DEFAULT_FLAGS, NULL); + ++skip: + /* map NaT-page at address zero to speed up speculative dereferencing of NULL: */ + if (!(current->personality & MMAP_PAGE_ZERO)) { + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); +Index: kernel/arch/powerpc/Kconfig +=================================================================== +--- kernel.orig/arch/powerpc/Kconfig 2008-11-18 01:19:41.000000000 +0100 ++++ kernel/arch/powerpc/Kconfig 2008-11-24 15:47:45.000000000 +0100 +@@ -674,10 +674,14 @@ + + source "lib/Kconfig" + ++source "kernel/bc/Kconfig" ++ + source "kernel/Kconfig.instrumentation" + + source "arch/powerpc/Kconfig.debug" + ++source "kernel/Kconfig.openvz" ++ + source "security/Kconfig" + + config KEYS_COMPAT +Index: kernel/arch/powerpc/kernel/misc_32.S +=================================================================== +--- kernel.orig/arch/powerpc/kernel/misc_32.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/kernel/misc_32.S 2008-11-24 15:47:45.000000000 +0100 +@@ -787,7 +787,7 @@ + * Create a kernel thread + * kernel_thread(fn, arg, flags) + */ +-_GLOBAL(kernel_thread) ++_GLOBAL(ppc_kernel_thread) + stwu r1,-16(r1) + stw r30,8(r1) + stw r31,12(r1) +Index: kernel/arch/powerpc/kernel/misc_64.S +=================================================================== +--- kernel.orig/arch/powerpc/kernel/misc_64.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/kernel/misc_64.S 2008-11-24 15:47:45.000000000 +0100 +@@ -427,7 +427,7 @@ + * Create a kernel thread + * kernel_thread(fn, arg, flags) + */ +-_GLOBAL(kernel_thread) ++_GLOBAL(ppc_kernel_thread) + std r29,-24(r1) + std r30,-16(r1) + stdu r1,-STACK_FRAME_OVERHEAD(r1) +Index: kernel/arch/powerpc/kernel/process.c +=================================================================== +--- kernel.orig/arch/powerpc/kernel/process.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/kernel/process.c 2008-11-24 15:47:45.000000000 +0100 +@@ -48,6 +48,8 @@ + #include + #endif + ++#include ++ + extern unsigned long _get_SP(void); + + #ifndef CONFIG_SMP +@@ -446,8 +448,9 @@ + + printk("NIP: "REG" LR: "REG" CTR: "REG"\n", + regs->nip, regs->link, regs->ctr); +- printk("REGS: %p TRAP: %04lx %s (%s)\n", +- regs, regs->trap, print_tainted(), init_utsname()->release); ++ printk("REGS: %p TRAP: %04lx %s (%s %s)\n", ++ regs, regs->trap, print_tainted(), init_utsname()->release, ++ VZVERSION); + printk("MSR: "REG" ", regs->msr); + printbits(regs->msr, msr_bits); + printk(" CR: %08lx XER: %08lx\n", regs->ccr, regs->xer); +@@ -1015,6 +1018,20 @@ + } + EXPORT_SYMBOL(dump_stack); + ++long kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) ++{ ++ extern long ppc_kernel_thread(int (*fn)(void *), void *arg, ++ unsigned long flags); ++ ++ if (!ve_is_super(get_exec_env())) { ++ printk("kernel_thread call inside container\n"); ++ dump_stack(); ++ return -EPERM; ++ } ++ ++ return ppc_kernel_thread(fn, arg, flags); ++} ++ + #ifdef CONFIG_PPC64 + void ppc64_runlatch_on(void) + { +Index: kernel/arch/powerpc/kernel/systbl.S +=================================================================== +--- kernel.orig/arch/powerpc/kernel/systbl.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/kernel/systbl.S 2008-11-24 15:47:45.000000000 +0100 +@@ -43,5 +43,9 @@ + .p2align 3 + #endif + ++#define SYS_SKIP(from, to) .rept to - from \ ++ SYSCALL(sys_ni_syscall) \ ++ .endr ++ + _GLOBAL(sys_call_table) + #include +Index: kernel/arch/powerpc/kernel/vdso.c +=================================================================== +--- kernel.orig/arch/powerpc/kernel/vdso.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/kernel/vdso.c 2008-11-24 15:47:45.000000000 +0100 +@@ -184,7 +184,7 @@ + * vDSO and insert it into the mm struct tree + */ + int arch_setup_additional_pages(struct linux_binprm *bprm, +- int executable_stack) ++ int executable_stack, unsigned long map_adress) + { + struct mm_struct *mm = current->mm; + struct page **vdso_pagelist; +Index: kernel/arch/powerpc/mm/fault.c +=================================================================== +--- kernel.orig/arch/powerpc/mm/fault.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/mm/fault.c 2008-11-24 15:47:45.000000000 +0100 +@@ -335,7 +335,6 @@ + * make sure we exit gracefully rather than endlessly redo + * the fault. + */ +- survive: + ret = handle_mm_fault(mm, vma, address, is_write); + if (unlikely(ret & VM_FAULT_ERROR)) { + if (ret & VM_FAULT_OOM) +@@ -375,14 +374,12 @@ + */ + out_of_memory: + up_read(&mm->mmap_sem); +- if (is_global_init(current)) { +- yield(); +- down_read(&mm->mmap_sem); +- goto survive; +- } +- printk("VM: killing process %s\n", current->comm); + if (user_mode(regs)) +- do_group_exit(SIGKILL); ++ /* ++ * 0-order allocation always success if something really ++ * fatal not happen: beancounter overdraft or OOM. Den ++ */ ++ force_sig(SIGKILL, current); + return SIGKILL; + + do_sigbus: +Index: kernel/arch/powerpc/mm/init_64.c +=================================================================== +--- kernel.orig/arch/powerpc/mm/init_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/mm/init_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -171,7 +171,7 @@ + "for size: %08x...\n", name, i, size); + pgtable_cache[i] = kmem_cache_create(name, + size, size, +- SLAB_PANIC, ++ SLAB_PANIC|SLAB_UBC|SLAB_NO_CHARGE, + zero_ctor); + } + } +Index: kernel/arch/powerpc/mm/mem.c +=================================================================== +--- kernel.orig/arch/powerpc/mm/mem.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/mm/mem.c 2008-11-24 15:47:45.000000000 +0100 +@@ -170,6 +170,7 @@ + printk("%ld pages shared\n", shared); + printk("%ld pages swap cached\n", cached); + } ++EXPORT_SYMBOL(show_mem); + + /* + * Initialize the bootmem system and give it all the memory we +Index: kernel/arch/powerpc/mm/pgtable_32.c +=================================================================== +--- kernel.orig/arch/powerpc/mm/pgtable_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/mm/pgtable_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -82,7 +82,8 @@ + { + pgd_t *ret; + +- ret = (pgd_t *)__get_free_pages(GFP_KERNEL|__GFP_ZERO, PGDIR_ORDER); ++ ret = (pgd_t *)__get_free_pages(GFP_KERNEL_UBC | __GFP_SOFT_UBC | ++ __GFP_ZERO, PGDIR_ORDER); + return ret; + } + +@@ -116,6 +117,7 @@ + #else + gfp_t flags = GFP_KERNEL | __GFP_REPEAT; + #endif ++ flags |= (__GFP_UBC | __GFP_SOFT_UBC); + + ptepage = alloc_pages(flags, 0); + if (ptepage) +Index: kernel/arch/powerpc/platforms/cell/spu_callbacks.c +=================================================================== +--- kernel.orig/arch/powerpc/platforms/cell/spu_callbacks.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/powerpc/platforms/cell/spu_callbacks.c 2008-11-24 15:47:45.000000000 +0100 +@@ -46,6 +46,8 @@ + #define PPC_SYS_SPU(func) ppc_##func, + #define SYSX_SPU(f, f3264, f32) f, + ++#define SYS_SKIP(from, to) [from ... to] = sys_ni_syscall, ++ + #include + }; + +Index: kernel/arch/ppc/Kconfig +=================================================================== +--- kernel.orig/arch/ppc/Kconfig 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/ppc/Kconfig 2008-11-24 15:47:45.000000000 +0100 +@@ -1321,6 +1321,10 @@ + + source "arch/ppc/Kconfig.debug" + ++source "kernel/Kconfig.openvz" ++ + source "security/Kconfig" + ++source "kernel/bc/Kconfig" ++ + source "crypto/Kconfig" +Index: kernel/arch/ppc/kernel/misc.S +=================================================================== +--- kernel.orig/arch/ppc/kernel/misc.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/ppc/kernel/misc.S 2008-11-24 15:47:45.000000000 +0100 +@@ -868,7 +868,7 @@ + * Create a kernel thread + * kernel_thread(fn, arg, flags) + */ +-_GLOBAL(kernel_thread) ++_GLOBAL(ppc_kernel_thread) + stwu r1,-16(r1) + stw r30,8(r1) + stw r31,12(r1) +Index: kernel/arch/ppc/mm/fault.c +=================================================================== +--- kernel.orig/arch/ppc/mm/fault.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/ppc/mm/fault.c 2008-11-24 15:47:45.000000000 +0100 +@@ -249,7 +249,6 @@ + * make sure we exit gracefully rather than endlessly redo + * the fault. + */ +- survive: + fault = handle_mm_fault(mm, vma, address, is_write); + if (unlikely(fault & VM_FAULT_ERROR)) { + if (fault & VM_FAULT_OOM) +@@ -290,14 +289,12 @@ + */ + out_of_memory: + up_read(&mm->mmap_sem); +- if (is_global_init(current)) { +- yield(); +- down_read(&mm->mmap_sem); +- goto survive; +- } +- printk("VM: killing process %s\n", current->comm); + if (user_mode(regs)) +- do_group_exit(SIGKILL); ++ /* ++ * 0-order allocation always success if something really ++ * fatal not happen: beancounter overdraft or OOM. Den ++ */ ++ force_sig(SIGKILL, current); + return SIGKILL; + + do_sigbus: +Index: kernel/arch/ppc/mm/init.c +=================================================================== +--- kernel.orig/arch/ppc/mm/init.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/ppc/mm/init.c 2008-11-24 15:47:45.000000000 +0100 +@@ -131,6 +131,7 @@ + printk("%d pages shared\n",shared); + printk("%d pages swap cached\n",cached); + } ++EXPORT_SYMBOL(show_mem); + + /* Free up now-unused memory */ + static void free_sec(unsigned long start, unsigned long end, const char *name) +Index: kernel/arch/ppc/mm/pgtable.c +=================================================================== +--- kernel.orig/arch/ppc/mm/pgtable.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/ppc/mm/pgtable.c 2008-11-24 15:47:45.000000000 +0100 +@@ -83,7 +83,8 @@ + { + pgd_t *ret; + +- ret = (pgd_t *)__get_free_pages(GFP_KERNEL|__GFP_ZERO, PGDIR_ORDER); ++ ret = (pgd_t *)__get_free_pages(GFP_KERNEL_UBC | __GFP_SOFT_UBC | ++ __GFP_ZERO, PGDIR_ORDER); + return ret; + } + +@@ -117,6 +118,7 @@ + #else + gfp_t flags = GFP_KERNEL | __GFP_REPEAT; + #endif ++ flags |= (__GFP_UBC | __GFP_SOFT_UBC); + + ptepage = alloc_pages(flags, 0); + if (ptepage) +Index: kernel/arch/s390/Kconfig +=================================================================== +--- kernel.orig/arch/s390/Kconfig 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/s390/Kconfig 2008-11-24 15:47:45.000000000 +0100 +@@ -533,8 +533,12 @@ + + source "arch/s390/Kconfig.debug" + ++source "kernel/Kconfig.openvz" ++ + source "security/Kconfig" + + source "crypto/Kconfig" + + source "lib/Kconfig" ++ ++source "kernel/bc/Kconfig" +Index: kernel/arch/s390/kernel/smp.c +=================================================================== +--- kernel.orig/arch/s390/kernel/smp.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/s390/kernel/smp.c 2008-11-24 15:47:45.000000000 +0100 +@@ -430,8 +430,19 @@ + */ + int __cpuinit start_secondary(void *cpuvoid) + { +- /* Setup the cpu */ +- cpu_init(); ++ /* Setup the cpu */ ++ cpu_init(); ++ ++#ifdef CONFIG_VE ++ /* TSC reset. kill whatever might rely on old values */ ++ VE_TASK_INFO(current)->wakeup_stamp = 0; ++ /* ++ * Cosmetic: sleep_time won't be changed afterwards for the idle ++ * thread; keep it 0 rather than -cycles. ++ */ ++ VE_TASK_INFO(idle)->sleep_time = 0; ++#endif ++ + preempt_disable(); + /* Enable TOD clock interrupts on the secondary cpu. */ + init_cpu_timer(); +@@ -677,6 +688,11 @@ + for_each_possible_cpu(cpu) + if (cpu != smp_processor_id()) + smp_create_idle(cpu); ++ ++#ifdef CONFIG_VE ++ /* TSC reset. kill whatever might rely on old values */ ++ VE_TASK_INFO(current)->wakeup_stamp = 0; ++#endif + } + + void __init smp_prepare_boot_cpu(void) +Index: kernel/arch/s390/mm/init.c +=================================================================== +--- kernel.orig/arch/s390/mm/init.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/s390/mm/init.c 2008-11-24 15:47:45.000000000 +0100 +@@ -77,6 +77,7 @@ + global_page_state(NR_SLAB_UNRECLAIMABLE)); + printk("%lu pages pagetables\n", global_page_state(NR_PAGETABLE)); + } ++EXPORT_SYMBOL(show_mem); + + static void __init setup_ro_region(void) + { +Index: kernel/arch/sh64/kernel/process.c +=================================================================== +--- kernel.orig/arch/sh64/kernel/process.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/sh64/kernel/process.c 2008-11-24 15:47:45.000000000 +0100 +@@ -663,7 +663,7 @@ + int len=0; + struct task_struct *p; + read_lock(&tasklist_lock); +- for_each_process(p) { ++ for_each_process_ve(p) { + int pid = p->pid; + struct mm_struct *mm; + if (!pid) continue; +Index: kernel/arch/sparc64/Kconfig +=================================================================== +--- kernel.orig/arch/sparc64/Kconfig 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/sparc64/Kconfig 2008-11-24 15:47:45.000000000 +0100 +@@ -175,6 +175,8 @@ + depends on SMP + default "64" + ++source "kernel/Kconfig.fairsched" ++ + source "drivers/cpufreq/Kconfig" + + config US3_FREQ +@@ -466,8 +468,12 @@ + + source "arch/sparc64/Kconfig.debug" + ++source "kernel/Kconfig.openvz" ++ + source "security/Kconfig" + + source "crypto/Kconfig" + + source "lib/Kconfig" ++ ++source "kernel/bc/Kconfig" +Index: kernel/arch/sparc64/kernel/process.c +=================================================================== +--- kernel.orig/arch/sparc64/kernel/process.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/sparc64/kernel/process.c 2008-11-24 15:47:45.000000000 +0100 +@@ -699,6 +699,13 @@ + { + long retval; + ++ /* Don't allow kernel_thread() inside VE */ ++ if (!ve_is_super(get_exec_env())) { ++ printk("kernel_thread call inside container\n"); ++ dump_stack(); ++ return -EPERM; ++ } ++ + /* If the parent runs before fn(arg) is called by the child, + * the input registers of this function can be clobbered. + * So we stash 'fn' and 'arg' into global registers which +Index: kernel/arch/sparc64/kernel/sparc64_ksyms.c +=================================================================== +--- kernel.orig/arch/sparc64/kernel/sparc64_ksyms.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/sparc64/kernel/sparc64_ksyms.c 2008-11-24 15:47:45.000000000 +0100 +@@ -310,6 +310,7 @@ + EXPORT_SYMBOL(copy_in_user_fixup); + EXPORT_SYMBOL(__strncpy_from_user); + EXPORT_SYMBOL(__clear_user); ++EXPORT_SYMBOL(mem_map_zero); + + /* Various address conversion macros use this. */ + EXPORT_SYMBOL(sparc64_valid_addr_bitmap); +Index: kernel/arch/sparc64/kernel/systbls.S +=================================================================== +--- kernel.orig/arch/sparc64/kernel/systbls.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/sparc64/kernel/systbls.S 2008-11-24 15:47:45.000000000 +0100 +@@ -82,6 +82,14 @@ + .word compat_sys_set_mempolicy, compat_sys_kexec_load, compat_sys_move_pages, sys_getcpu, compat_sys_epoll_pwait + /*310*/ .word compat_sys_utimensat, compat_sys_signalfd, compat_sys_timerfd, sys_eventfd, compat_sys_fallocate + ++ .rept 510-303 ++ .word sys_nis_syscall ++ .endr ++ .word sys_getluid /* 510 */ ++ .word sys_setluid ++ .word compat_sys_setublimit ++ .word compat_sys_ubstat ++ + #endif /* CONFIG_COMPAT */ + + /* Now the 64-bit native Linux syscall table. */ +@@ -154,6 +162,15 @@ + .word sys_set_mempolicy, sys_kexec_load, sys_move_pages, sys_getcpu, sys_epoll_pwait + /*310*/ .word sys_utimensat, sys_signalfd, sys_timerfd, sys_eventfd, sys_fallocate + ++ .rept 510-303 ++ .word sys_nis_syscall ++ .endr ++ .word sys_getluid /* 510 */ ++ .word sys_setluid ++ .word sys_setublimit ++ .word sys_ubstat ++ ++ + #if defined(CONFIG_SUNOS_EMUL) || defined(CONFIG_SOLARIS_EMUL) || \ + defined(CONFIG_SOLARIS_EMUL_MODULE) + /* Now the 32-bit SunOS syscall table. */ +@@ -272,5 +289,8 @@ + .word sunos_nosys + /*310*/ .word sunos_nosys, sunos_nosys, sunos_nosys + .word sunos_nosys, sunos_nosys ++ .rept 520-315 ++ .word sunos_nosys ++ .endr + + #endif +Index: kernel/arch/sparc64/kernel/traps.c +=================================================================== +--- kernel.orig/arch/sparc64/kernel/traps.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/sparc64/kernel/traps.c 2008-11-24 15:47:45.000000000 +0100 +@@ -2229,6 +2229,10 @@ + " \\__U_/\n"); + + printk("%s(%d): %s [#%d]\n", current->comm, task_pid_nr(current), str, ++die_counter); ++ printk("VE:EXCVE %d:%d, CPU %d, VCPU %d:%d\n", ++ VEID(VE_TASK_INFO(current)->owner_env), VEID(get_exec_env()), ++ smp_processor_id(), ++ task_vsched_id(current), task_cpu(current)); + notify_die(DIE_OOPS, str, regs, 0, 255, SIGSEGV); + __asm__ __volatile__("flushw"); + __show_regs(regs); +Index: kernel/arch/sparc64/mm/init.c +=================================================================== +--- kernel.orig/arch/sparc64/mm/init.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/sparc64/mm/init.c 2008-11-24 15:47:45.000000000 +0100 +@@ -434,6 +434,7 @@ + printk(KERN_INFO "%lu pages pagetables\n", + global_page_state(NR_PAGETABLE)); + } ++EXPORT_SYMBOL(show_mem); + + void mmu_info(struct seq_file *m) + { +Index: kernel/arch/x86/Kconfig +=================================================================== +--- kernel.orig/arch/x86/Kconfig 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/Kconfig 2008-11-24 15:47:45.000000000 +0100 +@@ -537,6 +537,14 @@ + depends on X86_32 && X86_VISWS + default y + ++config NMI_WATCHDOG ++ bool "NMI Watchdog" ++ default y ++ help ++ If you say Y here the kernel will activate NMI watchdog by default ++ on boot. You can still activate NMI watchdog via nmi_watchdog ++ command line option even if you say N here. ++ + config X86_MCE + bool "Machine Check Exception" + depends on !X86_VOYAGER +@@ -1603,6 +1611,7 @@ + + endmenu + ++source "kernel/Kconfig.openvz" + + source "net/Kconfig" + +@@ -1623,3 +1632,5 @@ + source "arch/x86/kvm/Kconfig" + + source "lib/Kconfig" ++ ++source "kernel/bc/Kconfig" +Index: kernel/arch/x86/ia32/ia32_binfmt.c +=================================================================== +--- kernel.orig/arch/x86/ia32/ia32_binfmt.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/ia32/ia32_binfmt.c 2008-11-24 15:47:45.000000000 +0100 +@@ -47,7 +47,7 @@ + #define AT_SYSINFO 32 + #define AT_SYSINFO_EHDR 33 + +-int sysctl_vsyscall32 = 1; ++int sysctl_vsyscall32 = 0; + + #undef ARCH_DLINFO + #define ARCH_DLINFO do { \ +@@ -225,9 +225,7 @@ + + static void elf32_init(struct pt_regs *); + +-#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1 +-#define arch_setup_additional_pages syscall32_setup_pages +-extern int syscall32_setup_pages(struct linux_binprm *, int exstack); ++extern int arch_setup_additional_pages(struct linux_binprm *, int exstack, unsigned long map_address); + + #include "../../../fs/binfmt_elf.c" + +Index: kernel/arch/x86/ia32/ia32entry.S +=================================================================== +--- kernel.orig/arch/x86/ia32/ia32entry.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/ia32/ia32entry.S 2008-11-24 15:47:45.000000000 +0100 +@@ -104,7 +104,8 @@ + pushfq + CFI_ADJUST_CFA_OFFSET 8 + /*CFI_REL_OFFSET rflags,0*/ +- movl $VSYSCALL32_SYSEXIT, %r10d ++ GET_THREAD_INFO(%r10) ++ movl threadinfo_sysenter_return(%r10), %r10d + CFI_REGISTER rip,r10 + pushq $__USER32_CS + CFI_ADJUST_CFA_OFFSET 8 +@@ -149,7 +150,7 @@ + popq %rcx /* User %esp */ + CFI_ADJUST_CFA_OFFSET -8 + CFI_REGISTER rsp,rcx +- movl $VSYSCALL32_SYSEXIT,%edx /* User %eip */ ++ movl threadinfo_sysenter_return(%r10),%edx /* User %eip */ + CFI_REGISTER rip,rdx + TRACE_IRQS_ON + swapgs +@@ -514,7 +515,7 @@ + .quad stub32_iopl /* 110 */ + .quad sys_vhangup + .quad quiet_ni_syscall /* old "idle" system call */ +- .quad sys32_vm86_warning /* vm86old */ ++ .quad quiet_ni_syscall /* vm86old */ + .quad compat_sys_wait4 + .quad sys_swapoff /* 115 */ + .quad compat_sys_sysinfo +@@ -567,7 +568,7 @@ + .quad sys_mremap + .quad sys_setresuid16 + .quad sys_getresuid16 /* 165 */ +- .quad sys32_vm86_warning /* vm86 */ ++ .quad quiet_ni_syscall /* vm86 */ + .quad quiet_ni_syscall /* query_module */ + .quad sys_poll + .quad compat_sys_nfsservctl +Index: kernel/arch/x86/ia32/sys_ia32.c +=================================================================== +--- kernel.orig/arch/x86/ia32/sys_ia32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/ia32/sys_ia32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -842,18 +842,6 @@ + advice); + } + +-long sys32_vm86_warning(void) +-{ +- struct task_struct *me = current; +- static char lastcomm[sizeof(me->comm)]; +- if (strncmp(lastcomm, me->comm, sizeof(lastcomm))) { +- compat_printk(KERN_INFO "%s: vm86 mode not supported on 64 bit kernel\n", +- me->comm); +- strncpy(lastcomm, me->comm, sizeof(lastcomm)); +- } +- return -ENOSYS; +-} +- + long sys32_lookup_dcookie(u32 addr_low, u32 addr_high, + char __user * buf, size_t len) + { +Index: kernel/arch/x86/ia32/syscall32.c +=================================================================== +--- kernel.orig/arch/x86/ia32/syscall32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/ia32/syscall32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -10,27 +10,54 @@ + #include + #include + #include ++#include + #include + #include + #include + #include + ++#include ++ + extern unsigned char syscall32_syscall[], syscall32_syscall_end[]; + extern unsigned char syscall32_sysenter[], syscall32_sysenter_end[]; + extern int sysctl_vsyscall32; + +-static struct page *syscall32_pages[1]; ++char *syscall32_page; ++EXPORT_SYMBOL_GPL(syscall32_page); ++struct page *syscall32_pages[1]; ++EXPORT_SYMBOL_GPL(syscall32_pages); + static int use_sysenter = -1; + + struct linux_binprm; + + /* Setup a VMA at program startup for the vsyscall page */ +-int syscall32_setup_pages(struct linux_binprm *bprm, int exstack) ++int syscall32_setup_pages(struct linux_binprm *bprm, int exstack, ++ unsigned long map_address) + { ++ int npages = (__VSYSCALL32_END - __VSYSCALL32_BASE) >> PAGE_SHIFT; + struct mm_struct *mm = current->mm; ++ unsigned long flags; ++ unsigned long addr = map_address ? : __VSYSCALL32_BASE; + int ret; + ++ if (sysctl_vsyscall32 == 0 && map_address == 0) ++ return 0; ++ ++ flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC | VM_MAYWRITE | ++ mm->def_flags; ++ ++ ret = -ENOMEM; ++ if (ub_memory_charge(mm, __VSYSCALL32_END - __VSYSCALL32_BASE, ++ flags, NULL, UB_SOFT)) ++ goto err_charge; ++ + down_write(&mm->mmap_sem); ++ addr = get_unmapped_area(NULL, addr, PAGE_SIZE * npages, 0, ++ MAP_PRIVATE | MAP_FIXED); ++ if (unlikely(addr & ~PAGE_MASK)) { ++ ret = addr; ++ goto err_ins; ++ } + /* + * MAYWRITE to allow gdb to COW and set breakpoints + * +@@ -40,18 +67,27 @@ + * what PC values meant. + */ + /* Could randomize here */ +- ret = install_special_mapping(mm, VSYSCALL32_BASE, PAGE_SIZE, ++ ret = install_special_mapping(mm, addr, PAGE_SIZE * npages, + VM_READ|VM_EXEC| + VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC| + VM_ALWAYSDUMP, + syscall32_pages); ++ if (ret == 0) { ++ mm->context.vdso = (void *)addr; ++ current_thread_info()->sysenter_return = VSYSCALL32_SYSEXIT; ++ } + up_write(&mm->mmap_sem); ++ if (ret < 0) ++err_ins: ++ ub_memory_uncharge(mm, __VSYSCALL32_END - __VSYSCALL32_BASE, flags, NULL); ++err_charge: + return ret; + } ++EXPORT_SYMBOL_GPL(syscall32_setup_pages); + + static int __init init_syscall32(void) + { +- char *syscall32_page = (void *)get_zeroed_page(GFP_KERNEL); ++ syscall32_page = (void *)get_zeroed_page(GFP_KERNEL); + if (!syscall32_page) + panic("Cannot allocate syscall32 page"); + syscall32_pages[0] = virt_to_page(syscall32_page); +Index: kernel/arch/x86/ia32/vsyscall-sysenter.S +=================================================================== +--- kernel.orig/arch/x86/ia32/vsyscall-sysenter.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/ia32/vsyscall-sysenter.S 2008-11-24 15:47:45.000000000 +0100 +@@ -20,9 +20,9 @@ + .Lenter_kernel: + movl %esp,%ebp + sysenter +- .space 7,0x90 ++ .space 23,0x90 + jmp .Lenter_kernel +- /* 16: System call normal return point is here! */ ++ /* 32: System call normal return point is here! */ + pop %ebp + .Lpop_ebp: + pop %edx +Index: kernel/arch/x86/ia32/vsyscall.lds +=================================================================== +--- kernel.orig/arch/x86/ia32/vsyscall.lds 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/ia32/vsyscall.lds 2008-11-24 15:47:45.000000000 +0100 +@@ -4,11 +4,11 @@ + */ + + /* This must match . */ +-VSYSCALL_BASE = 0xffffe000; ++__VSYSCALL_BASE = 0xffffe000; + + SECTIONS + { +- . = VSYSCALL_BASE + SIZEOF_HEADERS; ++ . = __VSYSCALL_BASE + SIZEOF_HEADERS; + + .hash : { *(.hash) } :text + .gnu.hash : { *(.gnu.hash) } +@@ -22,18 +22,18 @@ + For the layouts to match, we need to skip more than enough + space for the dynamic symbol table et al. If this amount + is insufficient, ld -shared will barf. Just increase it here. */ +- . = VSYSCALL_BASE + 0x400; ++ . = __VSYSCALL_BASE + 0x400; + + .text.vsyscall : { *(.text.vsyscall) } :text =0x90909090 + + /* This is an 32bit object and we cannot easily get the offsets + into the 64bit kernel. Just hardcode them here. This assumes + that all the stubs don't need more than 0x100 bytes. */ +- . = VSYSCALL_BASE + 0x500; ++ . = __VSYSCALL_BASE + 0x500; + + .text.sigreturn : { *(.text.sigreturn) } :text =0x90909090 + +- . = VSYSCALL_BASE + 0x600; ++ . = __VSYSCALL_BASE + 0x600; + + .text.rtsigreturn : { *(.text.rtsigreturn) } :text =0x90909090 + +Index: kernel/arch/x86/kernel/asm-offsets_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/asm-offsets_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/asm-offsets_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -47,6 +47,7 @@ + ENTRY(addr_limit); + ENTRY(preempt_count); + ENTRY(status); ++ ENTRY(sysenter_return); + BLANK(); + #undef ENTRY + #define ENTRY(entry) DEFINE(pda_ ## entry, offsetof(struct x8664_pda, entry)) +Index: kernel/arch/x86/kernel/cpu/mtrr/if.c +=================================================================== +--- kernel.orig/arch/x86/kernel/cpu/mtrr/if.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/cpu/mtrr/if.c 2008-11-24 15:47:45.000000000 +0100 +@@ -427,7 +427,7 @@ + return -ENODEV; + + proc_root_mtrr = +- create_proc_entry("mtrr", S_IWUSR | S_IRUGO, &proc_root); ++ create_proc_entry("mtrr", S_IWUSR | S_IRUGO, NULL); + if (proc_root_mtrr) { + proc_root_mtrr->owner = THIS_MODULE; + proc_root_mtrr->proc_fops = &mtrr_fops; +Index: kernel/arch/x86/kernel/entry_32.S +=================================================================== +--- kernel.orig/arch/x86/kernel/entry_32.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/entry_32.S 2008-11-24 15:47:45.000000000 +0100 +@@ -221,6 +221,7 @@ + GET_THREAD_INFO(%ebp) + popl %eax + CFI_ADJUST_CFA_OFFSET -4 ++ret_from_fork_tail: + pushl $0x0202 # Reset kernel eflags + CFI_ADJUST_CFA_OFFSET 4 + popfl +@@ -229,6 +230,25 @@ + CFI_ENDPROC + END(ret_from_fork) + ++ENTRY(i386_ret_from_resume) ++ CFI_STARTPROC ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ call schedule_tail ++ GET_THREAD_INFO(%ebp) ++ popl %eax ++ CFI_ADJUST_CFA_OFFSET -4 ++ movl (%esp),%eax ++ testl %eax,%eax ++ jz 1f ++ pushl %esp ++ call *%eax ++ addl $4,%esp ++1: ++ addl $256,%esp ++ jmp ret_from_fork_tail ++ CFI_ENDPROC ++ + /* + * Return to user mode is not as complex as all this looks, + * but we want the default path for a system call return to +Index: kernel/arch/x86/kernel/entry_64.S +=================================================================== +--- kernel.orig/arch/x86/kernel/entry_64.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/entry_64.S 2008-11-24 15:47:45.000000000 +0100 +@@ -160,7 +160,12 @@ + popf # reset kernel eflags + CFI_ADJUST_CFA_OFFSET -4 + call schedule_tail ++ret_from_fork_tail: + GET_THREAD_INFO(%rcx) ++ btr $TIF_RESUME,threadinfo_flags(%rcx) ++ jc x86_64_ret_from_resume ++ ++ret_from_fork_check: + testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),threadinfo_flags(%rcx) + jnz rff_trace + rff_action: +@@ -176,6 +181,19 @@ + call syscall_trace_leave + GET_THREAD_INFO(%rcx) + jmp rff_action ++ ++x86_64_ret_from_resume: ++ movq (%rsp),%rax ++ testq %rax,%rax ++ jz 1f ++ movq %rsp,%rdi ++ call *%rax ++1: ++ addq $256,%rsp ++ cmpq $0,ORIG_RAX(%rsp) ++ jge ret_from_fork_tail ++ RESTORE_REST ++ jmp int_ret_from_sys_call + CFI_ENDPROC + END(ret_from_fork) + +@@ -283,7 +301,7 @@ + sysret_signal: + TRACE_IRQS_ON + sti +- testl $(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx ++ testl $(_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx + jz 1f + + /* Really a signal */ +@@ -377,7 +395,7 @@ + jmp int_restore_rest + + int_signal: +- testl $(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx ++ testl $(_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx + jz 1f + movq %rsp,%rdi # &ptregs -> arg1 + xorl %esi,%esi # oldset -> arg2 +@@ -603,7 +621,7 @@ + jmp retint_check + + retint_signal: +- testl $(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx ++ testl $(_TIF_SIGPENDING|_TIF_RESTORE_SIGMASK|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx + jz retint_swapgs + TRACE_IRQS_ON + sti +@@ -960,7 +978,7 @@ + xorl %r9d,%r9d + + # clone now +- call do_fork ++ call do_fork_kthread + movq %rax,RAX(%rsp) + xorl %edi,%edi + +Index: kernel/arch/x86/kernel/ldt_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/ldt_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/ldt_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -17,6 +18,8 @@ + #include + #include + ++#include ++ + #ifdef CONFIG_SMP /* avoids "defined but not used" warnig */ + static void flush_ldt(void *null) + { +@@ -36,9 +39,9 @@ + oldsize = pc->size; + mincount = (mincount+511)&(~511); + if (mincount*LDT_ENTRY_SIZE > PAGE_SIZE) +- newldt = vmalloc(mincount*LDT_ENTRY_SIZE); ++ newldt = ub_vmalloc(mincount*LDT_ENTRY_SIZE); + else +- newldt = kmalloc(mincount*LDT_ENTRY_SIZE, GFP_KERNEL); ++ newldt = kmalloc(mincount*LDT_ENTRY_SIZE, GFP_KERNEL_UBC); + + if (!newldt) + return -ENOMEM; +@@ -102,6 +105,7 @@ + } + return retval; + } ++EXPORT_SYMBOL_GPL(init_new_context); + + /* + * No need to lock the MM as we are the last user +Index: kernel/arch/x86/kernel/ldt_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/ldt_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/ldt_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -20,6 +21,8 @@ + #include + #include + ++#include ++ + #ifdef CONFIG_SMP /* avoids "defined but not used" warnig */ + static void flush_ldt(void *null) + { +@@ -39,9 +42,9 @@ + oldsize = pc->size; + mincount = (mincount+511)&(~511); + if (mincount*LDT_ENTRY_SIZE > PAGE_SIZE) +- newldt = vmalloc(mincount*LDT_ENTRY_SIZE); ++ newldt = ub_vmalloc(mincount*LDT_ENTRY_SIZE); + else +- newldt = kmalloc(mincount*LDT_ENTRY_SIZE, GFP_KERNEL); ++ newldt = kmalloc(mincount*LDT_ENTRY_SIZE, GFP_KERNEL_UBC); + + if (!newldt) + return -ENOMEM; +@@ -106,6 +109,7 @@ + } + return retval; + } ++EXPORT_SYMBOL_GPL(init_new_context); + + /* + * +Index: kernel/arch/x86/kernel/nmi_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/nmi_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/nmi_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -318,6 +318,21 @@ + + extern void die_nmi(struct pt_regs *, const char *msg); + ++void smp_show_regs(struct pt_regs *regs, void *info) ++{ ++ static DEFINE_SPINLOCK(show_regs_lock); ++ ++ if (regs == NULL) ++ return; ++ ++ spin_lock(&show_regs_lock); ++ bust_spinlocks(1); ++ printk("----------- IPI show regs -----------"); ++ show_regs(regs); ++ bust_spinlocks(0); ++ spin_unlock(&show_regs_lock); ++} ++ + __kprobes int nmi_watchdog_tick(struct pt_regs * regs, unsigned reason) + { + +Index: kernel/arch/x86/kernel/nmi_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/nmi_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/nmi_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -41,7 +41,12 @@ + atomic_t nmi_active = ATOMIC_INIT(0); /* oprofile uses this */ + int panic_on_timeout; + ++#ifdef CONFIG_NMI_WATCHDOG + unsigned int nmi_watchdog = NMI_DEFAULT; ++#else ++unsigned int nmi_watchdog = NMI_NONE; ++#endif ++ + static unsigned int nmi_hz = HZ; + + static DEFINE_PER_CPU(short, wd_enabled); +@@ -354,10 +359,10 @@ + if (!touched && __get_cpu_var(last_irq_sum) == sum) { + /* + * Ayiee, looks like this CPU is stuck ... +- * wait a few IRQs (5 seconds) before doing the oops ... ++ * wait a few IRQs (30 seconds) before doing the oops ... + */ + local_inc(&__get_cpu_var(alert_counter)); +- if (local_read(&__get_cpu_var(alert_counter)) == 5*nmi_hz) ++ if (local_read(&__get_cpu_var(alert_counter)) == 30*nmi_hz) + die_nmi("NMI Watchdog detected LOCKUP on CPU %d\n", regs, + panic_on_timeout); + } else { +@@ -385,15 +390,34 @@ + + static unsigned ignore_nmis; + ++static int dummy_nmi_callback(struct pt_regs * regs, int cpu) ++{ ++ return 0; ++} ++ ++static nmi_callback_t nmi_ipi_callback = dummy_nmi_callback; ++ + asmlinkage __kprobes void do_nmi(struct pt_regs * regs, long error_code) + { + nmi_enter(); + add_pda(__nmi_count,1); +- if (!ignore_nmis) ++ if (!ignore_nmis) { + default_do_nmi(regs); ++ nmi_ipi_callback(regs, smp_processor_id()); ++ } + nmi_exit(); + } + ++void set_nmi_ipi_callback(nmi_callback_t callback) ++{ ++ nmi_ipi_callback = callback; ++} ++ ++void unset_nmi_ipi_callback(void) ++{ ++ nmi_ipi_callback = dummy_nmi_callback; ++} ++ + int do_nmi_callback(struct pt_regs * regs, int cpu) + { + #ifdef CONFIG_SYSCTL +Index: kernel/arch/x86/kernel/process_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/process_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/process_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -52,11 +53,15 @@ + #endif + + #include ++#include + + #include + #include + + asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); ++EXPORT_SYMBOL(ret_from_fork); ++asmlinkage void i386_ret_from_resume(void) __asm__("i386_ret_from_resume"); ++EXPORT_SYMBOL_GPL(i386_ret_from_resume); + + static int hlt_counter; + +@@ -324,16 +329,17 @@ + } + + printk("\n"); +- printk("Pid: %d, comm: %s %s (%s %.*s)\n", ++ printk("Pid: %d, comm: %s %s (%s %.*s %s)\n", + task_pid_nr(current), current->comm, + print_tainted(), init_utsname()->release, + (int)strcspn(init_utsname()->version, " "), +- init_utsname()->version); ++ init_utsname()->version, VZVERSION); + + printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", + 0xffff & regs->xcs, regs->eip, regs->eflags, + smp_processor_id()); +- print_symbol("EIP is at %s\n", regs->eip); ++ if (decode_call_traces) ++ print_symbol("EIP is at %s\n", regs->eip); + + printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", + regs->eax, regs->ebx, regs->ecx, regs->edx); +@@ -370,6 +376,8 @@ + { + __show_registers(regs, 1); + show_trace(NULL, regs, ®s->esp); ++ if (!decode_call_traces) ++ printk(" EIP: [<%08lx>]\n",regs->eip); + } + + /* +@@ -378,6 +386,7 @@ + * the "args". + */ + extern void kernel_thread_helper(void); ++EXPORT_SYMBOL_GPL(kernel_thread_helper); + + /* + * Create a kernel thread +@@ -386,6 +395,13 @@ + { + struct pt_regs regs; + ++ /* Don't allow kernel_thread() inside VE */ ++ if (!ve_allow_kthreads && !ve_is_super(get_exec_env())) { ++ printk("kernel_thread call inside container\n"); ++ dump_stack(); ++ return -EPERM; ++ } ++ + memset(®s, 0, sizeof(regs)); + + regs.ebx = (unsigned long) fn; +Index: kernel/arch/x86/kernel/process_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/process_64.c 2008-11-24 14:14:44.000000000 +0100 ++++ kernel/arch/x86/kernel/process_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -26,12 +26,14 @@ + #include + #include + #include ++#include + #include + #include + #include + #include + #include + #include ++#include + #include + #include + #include +@@ -52,8 +54,6 @@ + #include + #include + +-asmlinkage extern void ret_from_fork(void); +- + unsigned long kernel_thread_flags = CLONE_VM | CLONE_UNTRACED; + + unsigned long boot_option_idle_override = 0; +@@ -324,13 +324,14 @@ + + printk("\n"); + print_modules(); +- printk("Pid: %d, comm: %.20s %s %s %.*s\n", ++ printk("Pid: %d, comm: %.20s %s %s %.*s %s\n", + current->pid, current->comm, print_tainted(), + init_utsname()->release, + (int)strcspn(init_utsname()->version, " "), +- init_utsname()->version); ++ init_utsname()->version, VZVERSION); + printk("RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->rip); +- printk_address(regs->rip); ++ if (decode_call_traces) ++ printk_address(regs->rip); + printk("RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, regs->rsp, + regs->eflags); + printk("RAX: %016lx RBX: %016lx RCX: %016lx\n", +@@ -378,7 +379,22 @@ + { + printk("CPU %d:", smp_processor_id()); + __show_regs(regs); +- show_trace(NULL, regs, (void *)(regs + 1)); ++ show_trace(NULL, regs, ®s->rsp); ++} ++ ++void smp_show_regs(struct pt_regs *regs, void *data) ++{ ++ static DEFINE_SPINLOCK(show_regs_lock); ++ ++ if (regs == NULL) ++ return; ++ ++ spin_lock(&show_regs_lock); ++ bust_spinlocks(1); ++ printk("----------- IPI show regs -----------\n"); ++ show_regs(regs); ++ bust_spinlocks(0); ++ spin_unlock(&show_regs_lock); + } + + /* +@@ -913,3 +929,20 @@ + sp -= get_random_int() % 8192; + return sp & ~0xf; + } ++ ++long do_fork_kthread(unsigned long clone_flags, ++ unsigned long stack_start, ++ struct pt_regs *regs, ++ unsigned long stack_size, ++ int __user *parent_tidptr, ++ int __user *child_tidptr) ++{ ++ if (ve_allow_kthreads || ve_is_super(get_exec_env())) ++ return do_fork(clone_flags, stack_start, regs, stack_size, ++ parent_tidptr, child_tidptr); ++ ++ /* Don't allow kernel_thread() inside VE */ ++ printk("kernel_thread call inside container\n"); ++ dump_stack(); ++ return -EPERM; ++} +Index: kernel/arch/x86/kernel/ptrace_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/ptrace_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/ptrace_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -682,8 +682,11 @@ + return 0; + + /* Fake a debug trap */ +- if (is_singlestep) ++ if (is_singlestep) { ++ set_pn_state(current, entryexit ? PN_STOP_LEAVE : PN_STOP_ENTRY); + send_sigtrap(current, regs, 0); ++ clear_pn_state(current); ++ } + + if (!test_thread_flag(TIF_SYSCALL_TRACE) && !is_sysemu) + goto out; +Index: kernel/arch/x86/kernel/ptrace_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/ptrace_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/ptrace_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -616,6 +616,10 @@ + + if ((test_thread_flag(TIF_SYSCALL_TRACE) + || test_thread_flag(TIF_SINGLESTEP)) +- && (current->ptrace & PT_PTRACED)) ++ && (current->ptrace & PT_PTRACED)) { ++ set_pn_state(current, (regs->rax != -ENOSYS) ? ++ PN_STOP_LEAVE : PN_STOP_ENTRY); + syscall_trace(regs); ++ clear_pn_state(current); ++ } + } +Index: kernel/arch/x86/kernel/setup64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/setup64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/setup64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -293,3 +293,5 @@ + + raw_local_save_flags(kernel_eflags); + } ++ ++EXPORT_SYMBOL_GPL(cpu_gdt_descr); +Index: kernel/arch/x86/kernel/signal_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/signal_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/signal_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -587,6 +588,9 @@ + if (!user_mode(regs)) + return; + ++ if (try_to_freeze() && !signal_pending(current)) ++ goto no_signal; ++ + if (test_thread_flag(TIF_RESTORE_SIGMASK)) + oldset = ¤t->saved_sigmask; + else +@@ -615,6 +619,7 @@ + return; + } + ++no_signal: + /* Did we come from a system call? */ + if (regs->orig_eax >= 0) { + /* Restart the system call - no handlers present */ +Index: kernel/arch/x86/kernel/signal_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/signal_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/signal_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -403,6 +404,9 @@ + if (!user_mode(regs)) + return; + ++ if (try_to_freeze() && !signal_pending(current)) ++ goto no_signal; ++ + if (test_thread_flag(TIF_RESTORE_SIGMASK)) + oldset = ¤t->saved_sigmask; + else +@@ -429,6 +433,7 @@ + return; + } + ++no_signal: + /* Did we come from a system call? */ + if ((long)regs->orig_rax >= 0) { + /* Restart the system call - no handlers present */ +Index: kernel/arch/x86/kernel/smp_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/smp_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/smp_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -20,6 +20,7 @@ + #include + #include + ++#include + #include + #include + #include +@@ -427,6 +428,8 @@ + preempt_enable(); + } + ++EXPORT_SYMBOL(flush_tlb_mm); ++ + void flush_tlb_page(struct vm_area_struct * vma, unsigned long va) + { + struct mm_struct *mm = vma->vm_mm; +@@ -602,6 +605,89 @@ + return 0; + } + ++static DEFINE_SPINLOCK(nmi_call_lock); ++static struct nmi_call_data_struct { ++ smp_nmi_function func; ++ void *info; ++ atomic_t started; ++ atomic_t finished; ++ cpumask_t cpus_called; ++ int wait; ++} *nmi_call_data; ++ ++static int smp_nmi_callback(struct pt_regs * regs, int cpu) ++{ ++ smp_nmi_function func; ++ void *info; ++ int wait; ++ ++ func = nmi_call_data->func; ++ info = nmi_call_data->info; ++ wait = nmi_call_data->wait; ++ ack_APIC_irq(); ++ /* prevent from calling func() multiple times */ ++ if (cpu_test_and_set(cpu, nmi_call_data->cpus_called)) ++ return 0; ++ /* ++ * notify initiating CPU that I've grabbed the data and am ++ * about to execute the function ++ */ ++ mb(); ++ atomic_inc(&nmi_call_data->started); ++ /* at this point the nmi_call_data structure is out of scope */ ++ irq_enter(); ++ func(regs, info); ++ irq_exit(); ++ if (wait) ++ atomic_inc(&nmi_call_data->finished); ++ ++ return 0; ++} ++ ++/* ++ * This function tries to call func(regs, info) on each cpu. ++ * Func must be fast and non-blocking. ++ * May be called with disabled interrupts and from any context. ++ */ ++int smp_nmi_call_function(smp_nmi_function func, void *info, int wait) ++{ ++ struct nmi_call_data_struct data; ++ int cpus; ++ ++ cpus = num_online_cpus() - 1; ++ if (!cpus) ++ return 0; ++ ++ data.func = func; ++ data.info = info; ++ data.wait = wait; ++ atomic_set(&data.started, 0); ++ atomic_set(&data.finished, 0); ++ cpus_clear(data.cpus_called); ++ /* prevent this cpu from calling func if NMI happens */ ++ cpu_set(smp_processor_id(), data.cpus_called); ++ ++ if (!spin_trylock(&nmi_call_lock)) ++ return -1; ++ ++ nmi_call_data = &data; ++ set_nmi_ipi_callback(smp_nmi_callback); ++ mb(); ++ ++ /* Send a message to all other CPUs and wait for them to respond */ ++ send_IPI_allbutself(APIC_DM_NMI); ++ while (atomic_read(&data.started) != cpus) ++ barrier(); ++ ++ unset_nmi_ipi_callback(); ++ if (wait) ++ while (atomic_read(&data.finished) != cpus) ++ barrier(); ++ spin_unlock(&nmi_call_lock); ++ ++ return 0; ++} ++ + static void stop_this_cpu (void * dummy) + { + local_irq_disable(); +Index: kernel/arch/x86/kernel/smp_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/smp_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/smp_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + /* + * Smarter SMP flushing macros. +@@ -463,6 +464,84 @@ + } + EXPORT_SYMBOL(smp_call_function); + ++static DEFINE_SPINLOCK(nmi_call_lock); ++static struct nmi_call_data_struct { ++ smp_nmi_function func; ++ void *info; ++ atomic_t started; ++ atomic_t finished; ++ cpumask_t cpus_called; ++ int wait; ++} *nmi_call_data; ++ ++static int smp_nmi_callback(struct pt_regs * regs, int cpu) ++{ ++ smp_nmi_function func; ++ void *info; ++ int wait; ++ ++ func = nmi_call_data->func; ++ info = nmi_call_data->info; ++ wait = nmi_call_data->wait; ++ ack_APIC_irq(); ++ /* prevent from calling func() multiple times */ ++ if (cpu_test_and_set(cpu, nmi_call_data->cpus_called)) ++ return 0; ++ /* ++ * notify initiating CPU that I've grabbed the data and am ++ * about to execute the function ++ */ ++ mb(); ++ atomic_inc(&nmi_call_data->started); ++ /* at this point the nmi_call_data structure is out of scope */ ++ irq_enter(); ++ func(regs, info); ++ irq_exit(); ++ if (wait) ++ atomic_inc(&nmi_call_data->finished); ++ ++ return 0; ++} ++ ++int smp_nmi_call_function(smp_nmi_function func, void *info, int wait) ++{ ++ struct nmi_call_data_struct data; ++ int cpus; ++ ++ cpus = num_online_cpus() - 1; ++ if (!cpus) ++ return 0; ++ ++ data.func = func; ++ data.info = info; ++ data.wait = wait; ++ atomic_set(&data.started, 0); ++ atomic_set(&data.finished, 0); ++ cpus_clear(data.cpus_called); ++ /* prevent this cpu from calling func if NMI happens */ ++ cpu_set(smp_processor_id(), data.cpus_called); ++ ++ if (!spin_trylock(&nmi_call_lock)) ++ return -1; ++ ++ nmi_call_data = &data; ++ set_nmi_ipi_callback(smp_nmi_callback); ++ mb(); ++ ++ /* Send a message to all other CPUs and wait for them to respond */ ++ send_IPI_allbutself(APIC_DM_NMI); ++ while (atomic_read(&data.started) != cpus) ++ barrier(); ++ ++ unset_nmi_ipi_callback(); ++ if (wait) ++ while (atomic_read(&data.finished) != cpus) ++ barrier(); ++ spin_unlock(&nmi_call_lock); ++ ++ return 0; ++} ++ + static void stop_this_cpu(void *dummy) + { + local_irq_disable(); +Index: kernel/arch/x86/kernel/smpboot_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/smpboot_32.c 2008-11-24 14:14:34.000000000 +0100 ++++ kernel/arch/x86/kernel/smpboot_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -800,6 +800,13 @@ + early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu); + + idle->thread.eip = (unsigned long) start_secondary; ++ ++#ifdef CONFIG_VE ++ /* Cosmetic: sleep_time won't be changed afterwards for the idle ++ * thread; keep it 0 rather than -cycles. */ ++ VE_TASK_INFO(idle)->sleep_time = 0; ++#endif ++ + /* start_eip had better be page-aligned! */ + start_eip = setup_trampoline(); + +Index: kernel/arch/x86/kernel/syscall_table_32.S +=================================================================== +--- kernel.orig/arch/x86/kernel/syscall_table_32.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/syscall_table_32.S 2008-11-24 15:47:45.000000000 +0100 +@@ -324,3 +324,14 @@ + .long sys_timerfd + .long sys_eventfd + .long sys_fallocate ++ .rept 510-(.-sys_call_table)/4 ++ .long sys_ni_syscall ++ .endr ++ .long sys_getluid /* 510 */ ++ .long sys_setluid ++ .long sys_setublimit ++ .long sys_ubstat ++ .long sys_ni_syscall ++ .long sys_ni_syscall ++ .long sys_lchmod /* 516 */ ++ .long sys_lutime +Index: kernel/arch/x86/kernel/sysenter_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/sysenter_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/sysenter_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -215,7 +215,10 @@ + */ + extern const char vsyscall_int80_start, vsyscall_int80_end; + extern const char vsyscall_sysenter_start, vsyscall_sysenter_end; +-static struct page *syscall_pages[1]; ++void *syscall_page; ++EXPORT_SYMBOL(syscall_page); ++struct page *syscall_pages[1]; ++EXPORT_SYMBOL_GPL(syscall_pages); + + static void map_compat_vdso(int map) + { +@@ -235,10 +238,10 @@ + + int __init sysenter_setup(void) + { +- void *syscall_page = (void *)get_zeroed_page(GFP_ATOMIC); + const void *vsyscall; + size_t vsyscall_len; + ++ syscall_page = (void *)get_zeroed_page(GFP_ATOMIC); + syscall_pages[0] = virt_to_page(syscall_page); + + gate_vma_init(); +@@ -261,15 +264,22 @@ + + /* Defined in vsyscall-sysenter.S */ + extern void SYSENTER_RETURN; ++EXPORT_SYMBOL_GPL(SYSENTER_RETURN); + + /* Setup a VMA at program startup for the vsyscall page */ +-int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack) ++int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack, ++ unsigned long map_address) + { + struct mm_struct *mm = current->mm; + unsigned long addr; + int ret = 0; + bool compat; + ++ if (unlikely(!vdso_enabled) && map_address == 0) { ++ current->mm->context.vdso = NULL; ++ return 0; ++ } ++ + down_write(&mm->mmap_sem); + + /* Test compat mode once here, in case someone +@@ -281,7 +291,7 @@ + if (compat) + addr = VDSO_HIGH_BASE; + else { +- addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0); ++ addr = get_unmapped_area(NULL, map_address, PAGE_SIZE, 0, 0); + if (IS_ERR_VALUE(addr)) { + ret = addr; + goto up_fail; +@@ -315,6 +325,7 @@ + + return ret; + } ++EXPORT_SYMBOL(arch_setup_additional_pages); + + const char *arch_vma_name(struct vm_area_struct *vma) + { +Index: kernel/arch/x86/kernel/traps_32.c +=================================================================== +--- kernel.orig/arch/x86/kernel/traps_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/traps_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -58,6 +58,7 @@ + #include + + #include ++#include + + #include "mach_traps.h" + +@@ -220,7 +221,8 @@ + static void print_trace_address(void *data, unsigned long addr) + { + printk("%s [<%08lx>] ", (char *)data, addr); +- print_symbol("%s\n", addr); ++ if (decode_call_traces) ++ print_symbol("%s\n", addr); + touch_nmi_watchdog(); + } + +@@ -236,7 +238,10 @@ + unsigned long * stack, char *log_lvl) + { + dump_trace(task, regs, stack, &print_trace_ops, log_lvl); +- printk("%s =======================\n", log_lvl); ++ if (decode_call_traces) ++ printk("%s =======================\n", log_lvl); ++ else ++ printk("%s ==", log_lvl); + } + + void show_trace(struct task_struct *task, struct pt_regs *regs, +@@ -266,8 +271,13 @@ + printk("\n%s ", log_lvl); + printk("%08lx ", *stack++); + } +- printk("\n%sCall Trace:\n", log_lvl); ++ if (decode_call_traces) ++ printk("\n%s Call Trace:\n", log_lvl); ++ else ++ printk("\n%s Call Trace: ", log_lvl); + show_trace_log_lvl(task, regs, esp, log_lvl); ++ if (!decode_call_traces) ++ printk("\n"); + } + + void show_stack(struct task_struct *task, unsigned long *esp) +@@ -289,6 +299,8 @@ + (int)strcspn(init_utsname()->version, " "), + init_utsname()->version); + show_trace(current, NULL, &stack); ++ if (!decode_call_traces) ++ printk("\n"); + } + + EXPORT_SYMBOL(dump_stack); +@@ -299,8 +311,9 @@ + + print_modules(); + __show_registers(regs, 0); +- printk(KERN_EMERG "Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)", ++ printk(KERN_EMERG "Process %.*s (pid: %d, veid: %d, ti=%p task=%p task.ti=%p)", + TASK_COMM_LEN, current->comm, task_pid_nr(current), ++ VEID(current->ve_task_info.owner_env), + current_thread_info(), current, task_thread_info(current)); + /* + * When in-kernel, we also print out the stack and code at the +@@ -351,6 +364,13 @@ + return ud2 == 0x0b0f; + } + ++static void inline check_kernel_csum_bug(void) ++{ ++ if (kernel_text_csum_broken) ++ printk("Kernel code checksum mismatch detected %d times\n", ++ kernel_text_csum_broken); ++} ++ + /* + * This is gone through when something in the kernel has done something bad and + * is about to be terminated. +@@ -420,6 +440,7 @@ + } else + printk(KERN_EMERG "Recursive die() failure, output suppressed\n"); + ++ check_kernel_csum_bug(); + bust_spinlocks(0); + die.lock_owner = -1; + add_taint(TAINT_DIE); +@@ -690,12 +711,27 @@ + printk(KERN_EMERG "Dazed and confused, but trying to continue\n"); + } + +-static DEFINE_SPINLOCK(nmi_print_lock); ++/* ++ * Voyager doesn't implement these ++ */ ++void __attribute__((weak)) smp_show_regs(struct pt_regs *regs, void *info) ++{ ++} + ++#ifdef CONFIG_SMP ++int __attribute__((weak)) ++smp_nmi_call_function(smp_nmi_function func, void *info, int wait) ++{ ++ return 0; ++} ++#endif ++ + void __kprobes die_nmi(struct pt_regs *regs, const char *msg) + { ++ static DEFINE_SPINLOCK(nmi_print_lock); ++ + if (notify_die(DIE_NMIWATCHDOG, msg, regs, 0, 2, SIGINT) == +- NOTIFY_STOP) ++ NOTIFY_STOP) + return; + + spin_lock(&nmi_print_lock); +@@ -708,6 +744,10 @@ + printk(" on CPU%d, eip %08lx, registers:\n", + smp_processor_id(), regs->eip); + show_registers(regs); ++ smp_nmi_call_function(smp_show_regs, NULL, 1); ++ bust_spinlocks(1); ++ if (!decode_call_traces) ++ show_registers(regs); + console_silent(); + spin_unlock(&nmi_print_lock); + bust_spinlocks(0); +@@ -723,6 +763,13 @@ + do_exit(SIGSEGV); + } + ++static int dummy_nmi_callback(struct pt_regs * regs, int cpu) ++{ ++ return 0; ++} ++ ++static nmi_callback_t nmi_ipi_callback = dummy_nmi_callback; ++ + static __kprobes void default_do_nmi(struct pt_regs * regs) + { + unsigned char reason = 0; +@@ -742,10 +789,15 @@ + */ + if (nmi_watchdog_tick(regs, reason)) + return; +- if (!do_nmi_callback(regs, smp_processor_id())) +-#endif ++ if (!do_nmi_callback(regs, smp_processor_id())) { + unknown_nmi_error(reason, regs); ++ return; ++ } ++#endif ++ if (nmi_ipi_callback != dummy_nmi_callback) ++ return; + ++ unknown_nmi_error(reason, regs); + return; + } + if (notify_die(DIE_NMI, "nmi", regs, reason, 2, SIGINT) == NOTIFY_STOP) +@@ -773,12 +825,24 @@ + + ++nmi_count(cpu); + +- if (!ignore_nmis) ++ if (!ignore_nmis) { + default_do_nmi(regs); ++ nmi_ipi_callback(regs, cpu); ++ } + + nmi_exit(); + } + ++void set_nmi_ipi_callback(nmi_callback_t callback) ++{ ++ nmi_ipi_callback = callback; ++} ++ ++void unset_nmi_ipi_callback(void) ++{ ++ nmi_ipi_callback = dummy_nmi_callback; ++} ++ + void stop_nmi(void) + { + acpi_nmi_disable(); +Index: kernel/arch/x86/kernel/traps_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/traps_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/traps_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -107,6 +107,11 @@ + char *delim = ":"; + char namebuf[128]; + ++ if (!decode_call_traces) { ++ printk("[<%016lx>]", address); ++ return; ++ } ++ + symname = kallsyms_lookup(address, &symsize, &offset, + &modname, namebuf); + if (!symname) { +@@ -382,7 +387,7 @@ + if (((long) stack & (THREAD_SIZE-1)) == 0) + break; + } +- if (i && ((i % 4) == 0)) ++ if (i && ((i % 4) == 0) && decode_call_traces) + printk("\n"); + printk(" %016lx", *stack++); + touch_nmi_watchdog(); +@@ -421,10 +426,12 @@ + struct task_struct *cur = cpu_pda(cpu)->pcurrent; + + rsp = regs->rsp; +- printk("CPU %d ", cpu); ++ printk("CPU: %d ", cpu); + __show_regs(regs); +- printk("Process %s (pid: %d, threadinfo %p, task %p)\n", +- cur->comm, cur->pid, task_thread_info(cur), cur); ++ printk("Process %s (pid: %d, veid=%d, threadinfo %p, task %p)\n", ++ cur->comm, cur->pid, ++ VEID(VE_TASK_INFO(current)->owner_env), ++ task_thread_info(cur), cur); + + /* + * When in-kernel, we also print out the stack and code at the +Index: kernel/arch/x86/kernel/tsc_sync.c +=================================================================== +--- kernel.orig/arch/x86/kernel/tsc_sync.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/tsc_sync.c 2008-11-24 15:47:45.000000000 +0100 +@@ -145,7 +145,10 @@ + } else { + printk(" passed.\n"); + } +- ++#ifdef CONFIG_VE ++ /* TSC reset. kill whatever might rely on old values */ ++ VE_TASK_INFO(current)->wakeup_stamp = 0; ++#endif + /* + * Let the target continue with the bootup: + */ +Index: kernel/arch/x86/kernel/vsyscall-sigreturn_32.S +=================================================================== +--- kernel.orig/arch/x86/kernel/vsyscall-sigreturn_32.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/vsyscall-sigreturn_32.S 2008-11-24 15:47:45.000000000 +0100 +@@ -15,7 +15,7 @@ + */ + + .text +- .org __kernel_vsyscall+32,0x90 ++ .org __kernel_vsyscall+0x100,0x90 + .globl __kernel_sigreturn + .type __kernel_sigreturn,@function + __kernel_sigreturn: +@@ -27,6 +27,7 @@ + .size __kernel_sigreturn,.-.LSTART_sigreturn + + .balign 32 ++ .org __kernel_vsyscall+0x200,0x90 + .globl __kernel_rt_sigreturn + .type __kernel_rt_sigreturn,@function + __kernel_rt_sigreturn: +Index: kernel/arch/x86/kernel/vsyscall-sysenter_32.S +=================================================================== +--- kernel.orig/arch/x86/kernel/vsyscall-sysenter_32.S 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/vsyscall-sysenter_32.S 2008-11-24 15:47:45.000000000 +0100 +@@ -39,12 +39,12 @@ + movl %esp,%ebp + sysenter + +- /* 7: align return point with nop's to make disassembly easier */ +- .space 7,0x90 ++ /* 17: align return point with nop's to make disassembly easier */ ++ .space 13,0x90 + +- /* 14: System call restart point is here! (SYSENTER_RETURN-2) */ ++ /* 30: System call restart point is here! (SYSENTER_RETURN-2) */ + jmp .Lenter_kernel +- /* 16: System call normal return point is here! */ ++ /* 32: System call normal return point is here! */ + .globl SYSENTER_RETURN /* Symbol used by sysenter.c */ + SYSENTER_RETURN: + pop %ebp +Index: kernel/arch/x86/kernel/x8664_ksyms_64.c +=================================================================== +--- kernel.orig/arch/x86/kernel/x8664_ksyms_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/kernel/x8664_ksyms_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -3,12 +3,14 @@ + + #include + #include ++#include + + #include + #include + #include + #include + ++EXPORT_SYMBOL(kernel_execve); + EXPORT_SYMBOL(kernel_thread); + + EXPORT_SYMBOL(__down_failed); +Index: kernel/arch/x86/mm/fault_32.c +=================================================================== +--- kernel.orig/arch/x86/mm/fault_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/mm/fault_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -279,7 +279,7 @@ + return 0; + } + +-int show_unhandled_signals = 1; ++int show_unhandled_signals = 0; + + /* + * This routine handles page faults. It determines the address, +@@ -420,7 +420,6 @@ + goto bad_area; + } + +- survive: + /* + * If for any reason at all we couldn't handle the fault, + * make sure we exit gracefully rather than endlessly redo +@@ -593,14 +592,14 @@ + */ + out_of_memory: + up_read(&mm->mmap_sem); +- if (is_global_init(tsk)) { +- yield(); +- down_read(&mm->mmap_sem); +- goto survive; ++ if (error_code & 4) { ++ /* ++ * 0-order allocation always success if something really ++ * fatal not happen: beancounter overdraft or OOM. ++ */ ++ force_sig(SIGKILL, tsk); ++ return; + } +- printk("VM: killing process %s\n", tsk->comm); +- if (error_code & 4) +- do_group_exit(SIGKILL); + goto no_context; + + do_sigbus: +Index: kernel/arch/x86/mm/fault_64.c +=================================================================== +--- kernel.orig/arch/x86/mm/fault_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/mm/fault_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -285,7 +285,7 @@ + return 0; + } + +-int show_unhandled_signals = 1; ++int show_unhandled_signals = 0; + + /* + * This routine handles page faults. It determines the address, +@@ -375,7 +375,6 @@ + if (user_mode_vm(regs)) + error_code |= PF_USER; + +- again: + /* When running in the kernel we expect faults to occur only to + * addresses in user space. All other faults represent errors in the + * kernel and should generate an OOPS. Unfortunately, in the case of an +@@ -487,7 +486,7 @@ + + if (show_unhandled_signals && unhandled_signal(tsk, SIGSEGV) && + printk_ratelimit()) { +- printk( ++ ve_printk(VE_LOG, + "%s%s[%d]: segfault at %lx rip %lx rsp %lx error %lx\n", + tsk->pid > 1 ? KERN_INFO : KERN_EMERG, + tsk->comm, tsk->pid, address, regs->rip, +@@ -537,7 +536,8 @@ + else + printk(KERN_ALERT "Unable to handle kernel paging request"); + printk(" at %016lx RIP: \n" KERN_ALERT,address); +- printk_address(regs->rip); ++ if (decode_call_traces) ++ printk_address(regs->rip); + dump_pagetable(address); + tsk->thread.cr2 = address; + tsk->thread.trap_no = 14; +@@ -554,13 +554,14 @@ + */ + out_of_memory: + up_read(&mm->mmap_sem); +- if (is_global_init(current)) { +- yield(); +- goto again; ++ if (error_code & 4) { ++ /* ++ * 0-order allocation always success if something really ++ * fatal not happen: beancounter overdraft or OOM. ++ */ ++ force_sig(SIGKILL, tsk); ++ return; + } +- printk("VM: killing process %s\n", tsk->comm); +- if (error_code & 4) +- do_group_exit(SIGKILL); + goto no_context; + + do_sigbus: +Index: kernel/arch/x86/mm/hugetlbpage.c +=================================================================== +--- kernel.orig/arch/x86/mm/hugetlbpage.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/mm/hugetlbpage.c 2008-11-24 15:47:45.000000000 +0100 +@@ -12,6 +12,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -206,6 +207,7 @@ + { + return !!(pmd_val(pmd) & _PAGE_PSE); + } ++EXPORT_SYMBOL(pmd_huge); + + struct page * + follow_huge_pmd(struct mm_struct *mm, unsigned long address, +Index: kernel/arch/x86/mm/init_32.c +=================================================================== +--- kernel.orig/arch/x86/mm/init_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/mm/init_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -783,7 +783,7 @@ + pmd_cache = kmem_cache_create("pmd", + PTRS_PER_PMD*sizeof(pmd_t), + PTRS_PER_PMD*sizeof(pmd_t), +- SLAB_PANIC, ++ SLAB_PANIC|SLAB_UBC, + pmd_ctor); + } + +Index: kernel/arch/x86/mm/init_64.c +=================================================================== +--- kernel.orig/arch/x86/mm/init_64.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/mm/init_64.c 2008-11-24 15:47:45.000000000 +0100 +@@ -97,6 +97,7 @@ + printk(KERN_INFO "%lu pages shared\n",shared); + printk(KERN_INFO "%lu pages swap cached\n",cached); + } ++EXPORT_SYMBOL(show_mem); + + int after_bootmem; + +Index: kernel/arch/x86/mm/pgtable_32.c +=================================================================== +--- kernel.orig/arch/x86/mm/pgtable_32.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/mm/pgtable_32.c 2008-11-24 15:47:45.000000000 +0100 +@@ -4,9 +4,11 @@ + + #include + #include ++#include + #include + #include + #include ++#include + #include + #include + #include +@@ -71,6 +73,7 @@ + printk(KERN_INFO "%lu pages pagetables\n", + global_page_state(NR_PAGETABLE)); + } ++EXPORT_SYMBOL(show_mem); + + /* + * Associate a virtual page frame with a given physical page frame +@@ -188,9 +191,11 @@ + struct page *pte; + + #ifdef CONFIG_HIGHPTE +- pte = alloc_pages(GFP_KERNEL|__GFP_HIGHMEM|__GFP_REPEAT|__GFP_ZERO, 0); ++ pte = alloc_pages(GFP_KERNEL_UBC|__GFP_SOFT_UBC|__GFP_HIGHMEM| ++ __GFP_REPEAT|__GFP_ZERO, 0); + #else +- pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); ++ pte = alloc_pages(GFP_KERNEL_UBC|__GFP_SOFT_UBC| ++ __GFP_REPEAT|__GFP_ZERO, 0); + #endif + return pte; + } +Index: kernel/arch/x86/vdso/vma.c +=================================================================== +--- kernel.orig/arch/x86/vdso/vma.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/arch/x86/vdso/vma.c 2008-11-24 15:47:45.000000000 +0100 +@@ -4,6 +4,7 @@ + * Subject to the GPL, v.2 + */ + #include ++#include + #include + #include + #include +@@ -100,18 +101,24 @@ + + /* Setup a VMA at program startup for the vsyscall page. + Not called for compat tasks */ +-int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack) ++int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack, ++ unsigned long map_address) + { + struct mm_struct *mm = current->mm; + unsigned long addr; + int ret; + unsigned len = round_up(vdso_end - vdso_start, PAGE_SIZE); + +- if (!vdso_enabled) ++ if (!vdso_enabled && map_address == 0) { ++ current->mm->context.vdso = NULL; + return 0; ++ } + + down_write(&mm->mmap_sem); +- addr = vdso_addr(mm->start_stack, len); ++ if (map_address) ++ addr = map_address; ++ else ++ addr = vdso_addr(mm->start_stack, len); + addr = get_unmapped_area(NULL, addr, len, 0, 0); + if (IS_ERR_VALUE(addr)) { + ret = addr; +@@ -131,6 +138,7 @@ + up_write(&mm->mmap_sem); + return ret; + } ++EXPORT_SYMBOL_GPL(arch_setup_additional_pages); + + static __init int vdso_setup(char *s) + { +Index: kernel/block/cfq-iosched.c +=================================================================== +--- kernel.orig/block/cfq-iosched.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/block/cfq-iosched.c 2008-11-24 15:47:45.000000000 +0100 +@@ -11,6 +11,11 @@ + #include + #include + #include ++#include ++#include ++#include ++#include ++#include + + /* + * tunables +@@ -24,6 +29,7 @@ + static int cfq_slice_async = HZ / 25; + static const int cfq_slice_async_rq = 2; + static int cfq_slice_idle = HZ / 125; ++static int cfq_ub_slice = HZ / 2; + + /* + * grace period before allowing idle class to get disk access +@@ -40,13 +46,11 @@ + #define RQ_CIC(rq) ((struct cfq_io_context*)(rq)->elevator_private) + #define RQ_CFQQ(rq) ((rq)->elevator_private2) + +-static struct kmem_cache *cfq_pool; + static struct kmem_cache *cfq_ioc_pool; + + static DEFINE_PER_CPU(unsigned long, ioc_count); + static struct completion *ioc_gone; + +-#define CFQ_PRIO_LISTS IOPRIO_BE_NR + #define cfq_class_idle(cfqq) ((cfqq)->ioprio_class == IOPRIO_CLASS_IDLE) + #define cfq_class_rt(cfqq) ((cfqq)->ioprio_class == IOPRIO_CLASS_RT) + +@@ -55,107 +59,6 @@ + + #define sample_valid(samples) ((samples) > 80) + +-/* +- * Most of our rbtree usage is for sorting with min extraction, so +- * if we cache the leftmost node we don't have to walk down the tree +- * to find it. Idea borrowed from Ingo Molnars CFS scheduler. We should +- * move this into the elevator for the rq sorting as well. +- */ +-struct cfq_rb_root { +- struct rb_root rb; +- struct rb_node *left; +-}; +-#define CFQ_RB_ROOT (struct cfq_rb_root) { RB_ROOT, NULL, } +- +-/* +- * Per block device queue structure +- */ +-struct cfq_data { +- struct request_queue *queue; +- +- /* +- * rr list of queues with requests and the count of them +- */ +- struct cfq_rb_root service_tree; +- unsigned int busy_queues; +- +- int rq_in_driver; +- int sync_flight; +- int hw_tag; +- +- /* +- * idle window management +- */ +- struct timer_list idle_slice_timer; +- struct work_struct unplug_work; +- +- struct cfq_queue *active_queue; +- struct cfq_io_context *active_cic; +- +- /* +- * async queue for each priority case +- */ +- struct cfq_queue *async_cfqq[2][IOPRIO_BE_NR]; +- struct cfq_queue *async_idle_cfqq; +- +- struct timer_list idle_class_timer; +- +- sector_t last_position; +- unsigned long last_end_request; +- +- /* +- * tunables, see top of file +- */ +- unsigned int cfq_quantum; +- unsigned int cfq_fifo_expire[2]; +- unsigned int cfq_back_penalty; +- unsigned int cfq_back_max; +- unsigned int cfq_slice[2]; +- unsigned int cfq_slice_async_rq; +- unsigned int cfq_slice_idle; +- +- struct list_head cic_list; +-}; +- +-/* +- * Per process-grouping structure +- */ +-struct cfq_queue { +- /* reference count */ +- atomic_t ref; +- /* parent cfq_data */ +- struct cfq_data *cfqd; +- /* service_tree member */ +- struct rb_node rb_node; +- /* service_tree key */ +- unsigned long rb_key; +- /* sorted list of pending requests */ +- struct rb_root sort_list; +- /* if fifo isn't expired, next request to serve */ +- struct request *next_rq; +- /* requests queued in sort_list */ +- int queued[2]; +- /* currently allocated requests */ +- int allocated[2]; +- /* pending metadata requests */ +- int meta_pending; +- /* fifo list of requests in sort_list */ +- struct list_head fifo; +- +- unsigned long slice_end; +- long slice_resid; +- +- /* number of requests that are on the dispatch list or inside driver */ +- int dispatched; +- +- /* io prio of this group */ +- unsigned short ioprio, org_ioprio; +- unsigned short ioprio_class, org_ioprio_class; +- +- /* various state flags, see below */ +- unsigned int flags; +-}; +- + enum cfqq_state_flags { + CFQ_CFQQ_FLAG_on_rr = 0, /* on round-robin busy list */ + CFQ_CFQQ_FLAG_wait_request, /* waiting for a request */ +@@ -200,6 +103,67 @@ + static void cfq_dispatch_insert(struct request_queue *, struct request *); + static struct cfq_queue *cfq_get_queue(struct cfq_data *, int, + struct task_struct *, gfp_t); ++static void cfq_put_queue(struct cfq_queue *cfqq); ++ ++static void __cfq_put_async_queues(struct cfq_bc_data *cfq_bc) ++{ ++ int i; ++ ++ for (i = 0; i < CFQ_PRIO_LISTS; i++) { ++ if (cfq_bc->async_cfqq[0][i]) { ++ cfq_put_queue(cfq_bc->async_cfqq[0][i]); ++ cfq_bc->async_cfqq[0][i] = NULL; ++ } ++ if (cfq_bc->async_cfqq[1][i]) { ++ cfq_put_queue(cfq_bc->async_cfqq[1][i]); ++ cfq_bc->async_cfqq[1][i] = NULL; ++ } ++ } ++ if (cfq_bc->async_idle_cfqq) { ++ cfq_put_queue(cfq_bc->async_idle_cfqq); ++ cfq_bc->async_idle_cfqq = NULL; ++ } ++} ++ ++#ifdef CONFIG_BC_IO_SCHED ++static inline struct ub_iopriv *cfqq_ub_iopriv(struct cfq_data *cfqd, int sync) ++{ ++ int mode; ++ ++ mode = sync ? cfqd->virt_mode : cfqd->write_virt_mode; ++ return mode ? &get_io_ub()->iopriv : &get_ub0()->iopriv; ++} ++ ++static inline void cfq_put_async_queues(struct cfq_data *cfqd) ++{ ++ struct user_beancounter *ub; ++ struct cfq_bc_data *cfq_bc; ++ ++ rcu_read_lock(); ++ for_each_beancounter(ub) { ++ write_lock(&ub->iopriv.cfq_bc_list_lock); ++ cfq_bc = __find_cfq_bc(&ub->iopriv, cfqd); ++ if (!cfq_bc) { ++ write_unlock(&ub->iopriv.cfq_bc_list_lock); ++ continue; ++ } ++ __cfq_put_async_queues(cfq_bc); ++ write_unlock(&ub->iopriv.cfq_bc_list_lock); ++ } ++ rcu_read_unlock(); ++} ++#else ++static inline struct ub_iopriv *cfqq_ub_iopriv(struct cfq_data *cfqd, int sync) ++{ ++ return NULL; ++} ++ ++static inline void cfq_put_async_queues(struct cfq_data *cfqd) ++{ ++ __cfq_put_async_queues(&cfqd->cfq_bc); ++} ++#endif ++ + static struct cfq_io_context *cfq_cic_rb_lookup(struct cfq_data *, + struct io_context *); + +@@ -286,6 +250,11 @@ + return 1; + } + ++static inline struct user_beancounter *ub_by_iopriv(struct ub_iopriv *iopriv) ++{ ++ return container_of(iopriv, struct user_beancounter, iopriv); ++} ++ + /* + * Lifted from AS - choose which of rq1 and rq2 that is best served now. + * We choose the request that is closest to the head right now. Distance +@@ -446,11 +415,15 @@ + static void cfq_service_tree_add(struct cfq_data *cfqd, + struct cfq_queue *cfqq, int add_front) + { +- struct rb_node **p = &cfqd->service_tree.rb.rb_node; ++ struct cfq_bc_data *cfq_bc; ++ struct rb_node **p; + struct rb_node *parent = NULL; + unsigned long rb_key; + int left; + ++ cfq_bc = cfqq->cfq_bc; ++ ++ p = &cfq_bc->service_tree.rb.rb_node; + if (!add_front) { + rb_key = cfq_slice_offset(cfqd, cfqq) + jiffies; + rb_key += cfqq->slice_resid; +@@ -465,7 +438,7 @@ + if (rb_key == cfqq->rb_key) + return; + +- cfq_rb_erase(&cfqq->rb_node, &cfqd->service_tree); ++ cfq_rb_erase(&cfqq->rb_node, &cfq_bc->service_tree); + } + + left = 1; +@@ -501,11 +474,11 @@ + } + + if (left) +- cfqd->service_tree.left = &cfqq->rb_node; ++ cfq_bc->service_tree.left = &cfqq->rb_node; + + cfqq->rb_key = rb_key; + rb_link_node(&cfqq->rb_node, parent, p); +- rb_insert_color(&cfqq->rb_node, &cfqd->service_tree.rb); ++ rb_insert_color(&cfqq->rb_node, &cfq_bc->service_tree.rb); + } + + /* +@@ -530,6 +503,7 @@ + BUG_ON(cfq_cfqq_on_rr(cfqq)); + cfq_mark_cfqq_on_rr(cfqq); + cfqd->busy_queues++; ++ bc_inc_rqnum(cfqq); + + cfq_resort_rr_list(cfqd, cfqq); + } +@@ -541,14 +515,19 @@ + static inline void + cfq_del_cfqq_rr(struct cfq_data *cfqd, struct cfq_queue *cfqq) + { ++ struct cfq_bc_data *cfq_bc; ++ + BUG_ON(!cfq_cfqq_on_rr(cfqq)); + cfq_clear_cfqq_on_rr(cfqq); + ++ cfq_bc = cfqq->cfq_bc; ++ + if (!RB_EMPTY_NODE(&cfqq->rb_node)) +- cfq_rb_erase(&cfqq->rb_node, &cfqd->service_tree); ++ cfq_rb_erase(&cfqq->rb_node, &cfq_bc->service_tree); + + BUG_ON(!cfqd->busy_queues); + cfqd->busy_queues--; ++ bc_dec_rqnum(cfqq); + } + + /* +@@ -665,8 +644,7 @@ + } + } + +-static int cfq_merge(struct request_queue *q, struct request **req, +- struct bio *bio) ++static int cfq_merge(struct request_queue *q, struct request **req, struct bio *bio) + { + struct cfq_data *cfqd = q->elevator->elevator_data; + struct request *__rq; +@@ -795,7 +773,7 @@ + unsigned long now = jiffies; + + if (time_before(now, end) && +- time_after_eq(now, cfqd->last_end_request)) { ++ time_after_eq(now, cfqd->last_end_request)) { + mod_timer(&cfqd->idle_class_timer, end); + return 1; + } +@@ -809,13 +787,18 @@ + */ + static struct cfq_queue *cfq_get_next_queue(struct cfq_data *cfqd) + { ++ struct cfq_bc_data *cfq_bc; + struct cfq_queue *cfqq; + struct rb_node *n; + +- if (RB_EMPTY_ROOT(&cfqd->service_tree.rb)) ++ cfq_bc = cfqd->active_cfq_bc; ++ if (!cfq_bc) + return NULL; + +- n = cfq_rb_first(&cfqd->service_tree); ++ if (RB_EMPTY_ROOT(&cfq_bc->service_tree.rb)) ++ return NULL; ++ ++ n = cfq_rb_first(&cfq_bc->service_tree); + cfqq = rb_entry(n, struct cfq_queue, rb_node); + + if (cfq_class_idle(cfqq)) { +@@ -837,9 +820,17 @@ + */ + static struct cfq_queue *cfq_set_active_queue(struct cfq_data *cfqd) + { +- struct cfq_queue *cfqq; ++ struct cfq_queue *cfqq = NULL; ++ struct cfq_bc_data *cfq_bc; ++ ++ bc_schedule_active(cfqd); ++ ++ cfq_bc = cfqd->active_cfq_bc; ++ if (!cfq_bc) ++ goto out; + + cfqq = cfq_get_next_queue(cfqd); ++out: + __cfq_set_active_queue(cfqd, cfqq); + return cfqq; + } +@@ -930,6 +921,7 @@ + + cfq_remove_request(rq); + cfqq->dispatched++; ++ cfqq->cfq_bc->on_dispatch++; + elv_dispatch_sort(q, rq); + + if (cfq_cfqq_sync(cfqq)) +@@ -987,7 +979,7 @@ + /* + * The active queue has run out of time, expire it and select new. + */ +- if (cfq_slice_used(cfqq)) ++ if (cfq_slice_used(cfqq) || bc_expired(cfqd)) + goto expire; + + /* +@@ -1085,17 +1077,36 @@ + * Drain our current requests. Used for barriers and when switching + * io schedulers on-the-fly. + */ +-static int cfq_forced_dispatch(struct cfq_data *cfqd) ++static int __cfq_forced_dispatch(struct cfq_bc_data *cfq_bc) + { + int dispatched = 0; + struct rb_node *n; + +- while ((n = cfq_rb_first(&cfqd->service_tree)) != NULL) { ++ while ((n = cfq_rb_first(&cfq_bc->service_tree)) != NULL) { + struct cfq_queue *cfqq = rb_entry(n, struct cfq_queue, rb_node); + + dispatched += __cfq_forced_dispatch_cfqq(cfqq); + } + ++ return dispatched; ++} ++ ++static int cfq_forced_dispatch(struct cfq_data *cfqd) ++{ ++ struct cfq_bc_data *cfq_bc; ++ struct cfq_bc_data *cfq_bc_tmp; ++ int dispatched; ++ ++ dispatched = 0; ++ /* ++ * We use here _safe iterating, because ++ * __cfq_forced_dispatch() produces list_del() implicitly ++ */ ++ list_for_each_entry_safe(cfq_bc, cfq_bc_tmp, ++ &cfqd->act_cfq_bc_head, act_cfq_bc_list) { ++ dispatched += __cfq_forced_dispatch(cfq_bc); ++ } ++ + cfq_slice_expired(cfqd, 0); + + BUG_ON(cfqd->busy_queues); +@@ -1208,6 +1219,10 @@ + smp_wmb(); + cic->key = NULL; + ++ /* ++ * cic->cfqq[ASYNC] is always NULL and the put of async queues ++ * happens on appropriate bc death or device unplug ++ */ + if (cic->cfqq[ASYNC]) { + cfq_exit_cfqq(cfqd, cic->cfqq[ASYNC]); + cic->cfqq[ASYNC] = NULL; +@@ -1327,6 +1342,10 @@ + + spin_lock_irqsave(cfqd->queue->queue_lock, flags); + ++ /* ++ * cic->cfqq[ASYNC] is always NULL, ioprio change ++ * for async queues happens automatically ++ */ + cfqq = cic->cfqq[ASYNC]; + if (cfqq) { + struct cfq_queue *new_cfqq; +@@ -1367,8 +1386,11 @@ + { + struct cfq_queue *cfqq, *new_cfqq = NULL; + struct cfq_io_context *cic; ++ struct ub_iopriv *iopriv; ++ struct cfq_bc_data *cfq_bc = NULL; + + retry: ++ iopriv = cfqq_ub_iopriv(cfqd, is_sync); + cic = cfq_cic_rb_lookup(cfqd, tsk->io_context); + /* cic always exists here */ + cfqq = cic_to_cfqq(cic, is_sync); +@@ -1386,18 +1408,32 @@ + */ + spin_unlock_irq(cfqd->queue->queue_lock); + new_cfqq = kmem_cache_alloc_node(cfq_pool, +- gfp_mask | __GFP_NOFAIL | __GFP_ZERO, ++ gfp_mask|__GFP_NOFAIL|__GFP_ZERO, + cfqd->queue->node); ++ if (new_cfqq) { ++ cfq_bc = bc_findcreate_cfq_bc(iopriv, ++ cfqd, gfp_mask); ++ if (!cfq_bc) { ++ kmem_cache_free(cfq_pool, new_cfqq); ++ new_cfqq = NULL; ++ } ++ } + spin_lock_irq(cfqd->queue->queue_lock); + goto retry; + } else { + cfqq = kmem_cache_alloc_node(cfq_pool, +- gfp_mask | __GFP_ZERO, +- cfqd->queue->node); ++ gfp_mask|__GFP_ZERO, cfqd->queue->node); + if (!cfqq) + goto out; ++ cfq_bc = bc_findcreate_cfq_bc(iopriv, cfqd, gfp_mask); ++ if (!cfq_bc) { ++ kmem_cache_free(cfq_pool, cfqq); ++ cfqq = NULL; ++ goto out; ++ } + } + ++ cfqq->cfq_bc = cfq_bc; + RB_CLEAR_NODE(&cfqq->rb_node); + INIT_LIST_HEAD(&cfqq->fifo); + +@@ -1424,15 +1460,15 @@ + } + + static struct cfq_queue ** +-cfq_async_queue_prio(struct cfq_data *cfqd, int ioprio_class, int ioprio) ++cfq_async_queue_prio(struct cfq_bc_data *cfq_bc, int ioprio_class, int ioprio) + { + switch(ioprio_class) { + case IOPRIO_CLASS_RT: +- return &cfqd->async_cfqq[0][ioprio]; ++ return &cfq_bc->async_cfqq[0][ioprio]; + case IOPRIO_CLASS_BE: +- return &cfqd->async_cfqq[1][ioprio]; ++ return &cfq_bc->async_cfqq[1][ioprio]; + case IOPRIO_CLASS_IDLE: +- return &cfqd->async_idle_cfqq; ++ return &cfq_bc->async_idle_cfqq; + default: + BUG(); + } +@@ -1446,12 +1482,18 @@ + const int ioprio_class = task_ioprio_class(tsk); + struct cfq_queue **async_cfqq = NULL; + struct cfq_queue *cfqq = NULL; ++ struct cfq_bc_data *cfq_bc; ++ struct ub_iopriv *iopriv; ++ ++ iopriv = cfqq_ub_iopriv(cfqd, is_sync); + + if (!is_sync) { +- async_cfqq = cfq_async_queue_prio(cfqd, ioprio_class, ioprio); ++ cfq_bc = bc_findcreate_cfq_bc(iopriv, cfqd, gfp_mask); ++ if (!cfq_bc) ++ return NULL; ++ async_cfqq = cfq_async_queue_prio(cfq_bc, ioprio_class, ioprio); + cfqq = *async_cfqq; + } +- + if (!cfqq) { + cfqq = cfq_find_alloc_queue(cfqd, is_sync, tsk, gfp_mask); + if (!cfqq) +@@ -1815,6 +1857,7 @@ + WARN_ON(!cfqq->dispatched); + cfqd->rq_in_driver--; + cfqq->dispatched--; ++ cfqq->cfq_bc->on_dispatch--; + + if (cfq_cfqq_sync(cfqq)) + cfqd->sync_flight--; +@@ -1927,6 +1970,7 @@ + rq->elevator_private = NULL; + rq->elevator_private2 = NULL; + ++ put_beancounter(ub_by_iopriv(cfqq->cfq_bc->ub_iopriv)); + cfq_put_queue(cfqq); + } + } +@@ -1944,14 +1988,19 @@ + const int is_sync = rq_is_sync(rq); + struct cfq_queue *cfqq; + unsigned long flags; ++ struct ub_iopriv *iopriv; ++ struct cfq_bc_data *cfq_bc = NULL; + + might_sleep_if(gfp_mask & __GFP_WAIT); + + cic = cfq_get_io_context(cfqd, gfp_mask); ++ iopriv = cfqq_ub_iopriv(cfqd, is_sync); ++ if (!is_sync) ++ cfq_bc = bc_findcreate_cfq_bc(iopriv, cfqd, gfp_mask); + + spin_lock_irqsave(q->queue_lock, flags); + +- if (!cic) ++ if (!cic || (!is_sync && cfq_bc == NULL)) + goto queue_fail; + + cfqq = cic_to_cfqq(cic, is_sync); +@@ -1972,6 +2021,7 @@ + + rq->elevator_private = cic; + rq->elevator_private2 = cfqq; ++ get_beancounter(ub_by_iopriv(cfqq->cfq_bc->ub_iopriv)); + return 0; + + queue_fail: +@@ -2065,21 +2115,6 @@ + kblockd_flush_work(&cfqd->unplug_work); + } + +-static void cfq_put_async_queues(struct cfq_data *cfqd) +-{ +- int i; +- +- for (i = 0; i < IOPRIO_BE_NR; i++) { +- if (cfqd->async_cfqq[0][i]) +- cfq_put_queue(cfqd->async_cfqq[0][i]); +- if (cfqd->async_cfqq[1][i]) +- cfq_put_queue(cfqd->async_cfqq[1][i]); +- } +- +- if (cfqd->async_idle_cfqq) +- cfq_put_queue(cfqd->async_idle_cfqq); +-} +- + static void cfq_exit_queue(elevator_t *e) + { + struct cfq_data *cfqd = e->elevator_data; +@@ -2106,6 +2141,8 @@ + + cfq_shutdown_timer_wq(cfqd); + ++ bc_cfq_exit_queue(cfqd); ++ + kfree(cfqd); + } + +@@ -2113,11 +2150,19 @@ + { + struct cfq_data *cfqd; + +- cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node); ++ cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL|__GFP_ZERO, q->node); + if (!cfqd) + return NULL; + +- cfqd->service_tree = CFQ_RB_ROOT; ++ INIT_LIST_HEAD(&cfqd->act_cfq_bc_head); ++#ifndef CONFIG_BC_IO_SCHED ++ cfq_init_cfq_bc(&cfqd->cfq_bc); ++ /* ++ * Adding ub0 to active list in order to serve force dispatching ++ * case uniformally. Note, that nobody removes ub0 from this list. ++ */ ++ list_add_tail(&cfqd->cfq_bc.act_cfq_bc_list, &cfqd->act_cfq_bc_head); ++#endif + INIT_LIST_HEAD(&cfqd->cic_list); + + cfqd->queue = q; +@@ -2142,6 +2187,9 @@ + cfqd->cfq_slice[1] = cfq_slice_sync; + cfqd->cfq_slice_async_rq = cfq_slice_async_rq; + cfqd->cfq_slice_idle = cfq_slice_idle; ++ cfqd->cfq_ub_slice = cfq_ub_slice; ++ cfqd->virt_mode = 1; ++ cfqd->write_virt_mode = 1; + + return cfqd; + } +@@ -2206,6 +2254,9 @@ + SHOW_FUNCTION(cfq_slice_sync_show, cfqd->cfq_slice[1], 1); + SHOW_FUNCTION(cfq_slice_async_show, cfqd->cfq_slice[0], 1); + SHOW_FUNCTION(cfq_slice_async_rq_show, cfqd->cfq_slice_async_rq, 0); ++SHOW_FUNCTION(cfq_ub_slice_show, cfqd->cfq_ub_slice, 1); ++SHOW_FUNCTION(cfq_virt_mode_show, cfqd->virt_mode, 0); ++SHOW_FUNCTION(cfq_write_virt_mode_show, cfqd->write_virt_mode, 0); + #undef SHOW_FUNCTION + + #define STORE_FUNCTION(__FUNC, __PTR, MIN, MAX, __CONV) \ +@@ -2233,7 +2284,9 @@ + STORE_FUNCTION(cfq_slice_sync_store, &cfqd->cfq_slice[1], 1, UINT_MAX, 1); + STORE_FUNCTION(cfq_slice_async_store, &cfqd->cfq_slice[0], 1, UINT_MAX, 1); + STORE_FUNCTION(cfq_slice_async_rq_store, &cfqd->cfq_slice_async_rq, 1, UINT_MAX, 0); +-#undef STORE_FUNCTION ++STORE_FUNCTION(cfq_ub_slice_store, &cfqd->cfq_ub_slice, 1, UINT_MAX, 1); ++STORE_FUNCTION(cfq_virt_mode_store, &cfqd->virt_mode, 0, 1, 0); ++STORE_FUNCTION(cfq_write_virt_mode_store, &cfqd->write_virt_mode, 0, 1, 0); + + #define CFQ_ATTR(name) \ + __ATTR(name, S_IRUGO|S_IWUSR, cfq_##name##_show, cfq_##name##_store) +@@ -2248,6 +2301,9 @@ + CFQ_ATTR(slice_async), + CFQ_ATTR(slice_async_rq), + CFQ_ATTR(slice_idle), ++ CFQ_ATTR(ub_slice), ++ CFQ_ATTR(virt_mode), ++ CFQ_ATTR(write_virt_mode), + __ATTR_NULL + }; + +@@ -2271,6 +2327,7 @@ + .elevator_init_fn = cfq_init_queue, + .elevator_exit_fn = cfq_exit_queue, + .trim = cfq_free_io_context, ++ .put_queue = cfq_put_queue, + }, + .elevator_attrs = cfq_attrs, + .elevator_name = "cfq", +Index: kernel/block/elevator.c +=================================================================== +--- kernel.orig/block/elevator.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/block/elevator.c 2008-11-24 15:47:45.000000000 +0100 +@@ -40,6 +40,9 @@ + static DEFINE_SPINLOCK(elv_list_lock); + static LIST_HEAD(elv_list); + ++struct kmem_cache *cfq_pool; ++EXPORT_SYMBOL_GPL(cfq_pool); ++ + /* + * Merge hash stuff. + */ +@@ -987,12 +990,12 @@ + */ + if (e->ops.trim) { + read_lock(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + task_lock(p); + if (p->io_context) + e->ops.trim(p->io_context); + task_unlock(p); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + read_unlock(&tasklist_lock); + } + +Index: kernel/block/genhd.c +=================================================================== +--- kernel.orig/block/genhd.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/block/genhd.c 2008-11-24 15:47:45.000000000 +0100 +@@ -18,6 +18,7 @@ + #include + + struct kset block_subsys; ++EXPORT_SYMBOL(block_subsys); + static DEFINE_MUTEX(block_subsys_lock); + + /* +Index: kernel/drivers/base/class.c +=================================================================== +--- kernel.orig/drivers/base/class.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/drivers/base/class.c 2008-11-24 15:47:45.000000000 +0100 +@@ -17,6 +17,8 @@ + #include + #include + #include ++#include ++#include + #include "base.h" + + #define to_class_attr(_attr) container_of(_attr, struct class_attribute, attr) +@@ -71,8 +73,13 @@ + }; + + /* Hotplug events for classes go to the class_obj subsys */ +-static decl_subsys(class, &class_ktype, NULL); ++decl_subsys(class, &class_ktype, NULL); + ++#ifndef CONFIG_VE ++#define visible_class_subsys class_subsys ++#else ++#define visible_class_subsys (*get_exec_env()->class_subsys) ++#endif + + int class_create_file(struct class * cls, const struct class_attribute * attr) + { +@@ -149,7 +156,7 @@ + if (error) + return error; + +- cls->subsys.kobj.kset = &class_subsys; ++ cls->subsys.kobj.kset = &visible_class_subsys; + + error = subsystem_register(&cls->subsys); + if (!error) { +@@ -452,8 +459,13 @@ + .uevent = class_uevent, + }; + +-static decl_subsys(class_obj, &class_device_ktype, &class_uevent_ops); ++decl_subsys(class_obj, &class_device_ktype, &class_uevent_ops); + ++#ifndef CONFIG_VE ++#define visible_class_obj_subsys class_obj_subsys ++#else ++#define visible_class_obj_subsys (*get_exec_env()->class_obj_subsys) ++#endif + + static int class_device_add_attrs(struct class_device * cd) + { +@@ -537,7 +549,7 @@ + + void class_device_initialize(struct class_device *class_dev) + { +- kobj_set_kset_s(class_dev, class_obj_subsys); ++ kobj_set_kset_s(class_dev, visible_class_obj_subsys); + kobject_init(&class_dev->kobj); + INIT_LIST_HEAD(&class_dev->node); + } +@@ -851,10 +863,19 @@ + class_put(parent); + } + ++void prepare_sysfs_classes(void) ++{ ++#ifdef CONFIG_VE ++ get_ve0()->class_subsys = &class_subsys; ++ get_ve0()->class_obj_subsys = &class_obj_subsys; ++#endif ++} ++ + int __init classes_init(void) + { + int retval; + ++ prepare_sysfs_classes(); + retval = subsystem_register(&class_subsys); + if (retval) + return retval; +@@ -890,3 +911,6 @@ + + EXPORT_SYMBOL_GPL(class_interface_register); + EXPORT_SYMBOL_GPL(class_interface_unregister); ++ ++EXPORT_SYMBOL(class_subsys); ++EXPORT_SYMBOL(class_obj_subsys); +Index: kernel/drivers/base/core.c +=================================================================== +--- kernel.orig/drivers/base/core.c 2008-11-18 01:19:42.000000000 +0100 ++++ kernel/drivers/base/core.c 2008-11-24 15:47:45.000000000 +0100 +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -406,7 +407,12 @@ + */ + + decl_subsys(devices, &device_ktype, &device_uevent_ops); +- ++EXPORT_SYMBOL_GPL(devices_subsys); ++#ifdef CONFIG_VE ++#define ve_devices_subsys (get_exec_env()->devices_subsys) ++#else ++#define ve_devices_subsys (&devices_subsys) ++#endif + + /** + * device_create_file - create sysfs attribute file for device. +@@ -525,7 +531,7 @@ + + void device_initialize(struct device *dev) + { +- kobj_set_kset_s(dev, devices_subsys); ++ dev->kobj.kset = ve_devices_subsys; + kobject_init(&dev->kobj); + klist_init(&dev->klist_children, klist_children_get, + klist_children_put); +@@ -556,12 +562,17 @@ + return NULL; + } + #else ++#ifdef CONFIG_VE ++#include ++#define virtual_dir (get_exec_env()->_virtual_dir) ++#else ++static struct kobject *virtual_dir = NULL; ++#endif ++ + static struct kobject *virtual_device_parent(struct device *dev) + { +- static struct kobject *virtual_dir = NULL; +- + if (!virtual_dir) +- virtual_dir = kobject_add_dir(&devices_subsys.kobj, "virtual"); ++ virtual_dir = kobject_add_dir(&get_exec_env()->devices_subsys->kobj, "virtual"); + + return virtual_dir; + } +@@ -1073,6 +1084,9 @@ + + int __init devices_init(void) + { ++#ifdef CONFIG_VE ++ ve0.devices_subsys = &devices_subsys; ++#endif + return subsystem_register(&devices_subsys); + } + +Index: kernel/drivers/char/pty.c +=================================================================== +--- kernel.orig/drivers/char/pty.c 2008-11-18 01:19:43.000000000 +0100 ++++ kernel/drivers/char/pty.c 2008-11-24 15:47:45.000000000 +0100 +@@ -29,16 +29,30 @@ + #include + #include + ++#include ++ + /* These are global because they are accessed in tty_io.c */ + #ifdef CONFIG_UNIX98_PTYS + struct tty_driver *ptm_driver; +-static struct tty_driver *pts_driver; ++struct tty_driver *pts_driver; ++EXPORT_SYMBOL(ptm_driver); ++EXPORT_SYMBOL(pts_driver); ++ ++void prepare_pty(void) ++{ ++#ifdef CONFIG_VE ++ get_ve0()->ptm_driver = ptm_driver; ++ /* don't clean ptm_driver and co. here, they are used in vecalls.c */ ++#endif ++} + #endif + + static void pty_close(struct tty_struct * tty, struct file * filp) + { + if (!tty) + return; ++ ++ ub_pty_uncharge(tty); + if (tty->driver->subtype == PTY_TYPE_MASTER) { + if (tty->count > 1) + printk("master pty_close: count = %d!!\n", tty->count); +@@ -58,8 +72,12 @@ + if (tty->driver->subtype == PTY_TYPE_MASTER) { + set_bit(TTY_OTHER_CLOSED, &tty->flags); + #ifdef CONFIG_UNIX98_PTYS +- if (tty->driver == ptm_driver) ++ if (tty->driver->flags & TTY_DRIVER_DEVPTS_MEM) { ++ struct ve_struct *old_env; ++ old_env = set_exec_env(tty->owner_env); + devpts_pty_kill(tty->index); ++ (void)set_exec_env(old_env); ++ } + #endif + tty_vhangup(tty->link); + } +@@ -209,6 +227,10 @@ + if (tty->link->count != 1) + goto out; + ++ retval = -ENOMEM; ++ if (ub_pty_charge(tty)) ++ goto out; ++ + clear_bit(TTY_OTHER_CLOSED, &tty->link->flags); + set_bit(TTY_THROTTLED, &tty->flags); + set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); +@@ -236,7 +258,9 @@ + + /* Traditional BSD devices */ + #ifdef CONFIG_LEGACY_PTYS +-static struct tty_driver *pty_driver, *pty_slave_driver; ++struct tty_driver *pty_driver, *pty_slave_driver; ++EXPORT_SYMBOL(pty_driver); ++EXPORT_SYMBOL(pty_slave_driver); + + static int pty_bsd_ioctl(struct tty_struct *tty, struct file *file, + unsigned int cmd, unsigned long arg) +@@ -426,6 +450,7 @@ + + pty_table[1].data = &ptm_driver->refcount; + register_sysctl_table(pty_root_table); ++ prepare_pty(); + } + #else + static inline void unix98_pty_init(void) { } +Index: kernel/drivers/char/sysrq.c +=================================================================== +--- kernel.orig/drivers/char/sysrq.c 2008-11-18 01:19:43.000000000 +0100 ++++ kernel/drivers/char/sysrq.c 2008-11-24 15:47:45.000000000 +0100 +@@ -36,6 +36,8 @@ + #include + #include + #include ++#include ++#include + #include + + #include +@@ -199,8 +201,14 @@ + static void sysrq_handle_showregs(int key, struct tty_struct *tty) + { + struct pt_regs *regs = get_irq_regs(); ++ ++ bust_spinlocks(1); + if (regs) + show_regs(regs); ++ bust_spinlocks(0); ++#if defined(__i386__) || defined(__x86_64__) ++ smp_nmi_call_function(smp_show_regs, NULL, 1); ++#endif + } + static struct sysrq_key_op sysrq_showregs_op = { + .handler = sysrq_handle_showregs, +@@ -235,6 +243,7 @@ + static void sysrq_handle_showmem(int key, struct tty_struct *tty) + { + show_mem(); ++ show_slab_info(); + } + static struct sysrq_key_op sysrq_showmem_op = { + .handler = sysrq_handle_showmem, +@@ -250,7 +259,7 @@ + { + struct task_struct *p; + +- for_each_process(p) { ++ for_each_process_all(p) { + if (p->mm && !is_global_init(p)) + /* Not swapper, init nor kernel thread */ + force_sig(sig, p); +@@ -313,7 +322,267 @@ + /* Key Operations table and lock */ + static DEFINE_SPINLOCK(sysrq_key_table_lock); + +-static struct sysrq_key_op *sysrq_key_table[36] = { ++#define SYSRQ_KEY_TABLE_LENGTH 37 ++static struct sysrq_key_op **sysrq_key_table; ++static struct sysrq_key_op *sysrq_default_key_table[]; ++ ++#ifdef CONFIG_SYSRQ_DEBUG ++#define SYSRQ_NAMELEN_MAX 64 ++#define SYSRQ_DUMP_LINES 32 ++ ++static struct sysrq_key_op *sysrq_debug_key_table[]; ++static struct sysrq_key_op *sysrq_input_key_table[]; ++static unsigned long *dump_address; ++static int orig_console_loglevel; ++static void (*sysrq_input_return)(char *) = NULL; ++ ++static void dump_mem(void) ++{ ++ unsigned long value[4]; ++ mm_segment_t old_fs; ++ int line, err; ++ ++ old_fs = get_fs(); ++ set_fs(KERNEL_DS); ++ err = 0; ++ ++ for (line = 0; line < SYSRQ_DUMP_LINES; line++) { ++ err |= __get_user(value[0], dump_address++); ++ err |= __get_user(value[1], dump_address++); ++ err |= __get_user(value[2], dump_address++); ++ err |= __get_user(value[3], dump_address++); ++ if (err) { ++ printk("Invalid address %p\n", dump_address - 4); ++ break; ++ } ++#if BITS_PER_LONG == 32 ++ printk("0x%p: %08lx %08lx %08lx %08lx\n", ++ dump_address - 4, ++ value[0], value[1], value[2], value[3]); ++#else ++ printk("0x%p: %016lx %016lx %016lx %016lx\n", ++ dump_address - 4, ++ value[0], value[1], value[2], value[3]); ++#endif ++ } ++ set_fs(old_fs); ++} ++ ++static void write_mem(unsigned long val) ++{ ++ mm_segment_t old_fs; ++ unsigned long old_val; ++ ++ old_fs = get_fs(); ++ set_fs(KERNEL_DS); ++ if (__get_user(old_val, dump_address)) { ++ printk("Invalid address %p\n", dump_address); ++ goto out; ++ } ++ ++#if BITS_PER_LONG == 32 ++ printk("Changing [%p] from %08lx to %08lx\n", ++ dump_address, old_val, val); ++#else ++ printk("Changing [%p] from %016lx to %016lx\n", ++ dump_address, old_val, val); ++#endif ++ __put_user(val, dump_address); ++out: ++ set_fs(old_fs); ++} ++ ++static void handle_read(int key, struct tty_struct *tty) ++{ ++ static int pos; ++ static int upper_case; ++ static char str[SYSRQ_NAMELEN_MAX]; ++ ++ if (key == 0) { ++ /* actually 0 is not shift only... */ ++ upper_case = 1; ++ return; ++ } ++ ++ if (key == 0x0d || pos == SYSRQ_NAMELEN_MAX - 1) { ++ /* enter */ ++ sysrq_key_table = sysrq_debug_key_table; ++ str[pos] = '\0'; ++ pos = upper_case = 0; ++ printk("\n"); ++ if (sysrq_input_return == NULL) ++ printk("No return handler!!!\n"); ++ else ++ sysrq_input_return(str); ++ return; ++ }; ++ ++ /* check for alowed symbols */ ++ if (key == '-') { ++ if (upper_case) ++ key = '_'; ++ goto correct; ++ }; ++ if (key >= 'a' && key <= 'z') { ++ if (upper_case) ++ key = key - 'a' + 'A'; ++ goto correct; ++ }; ++ if (key >= '0' && key <= '9') ++ goto correct; ++ ++ upper_case = 0; ++ return; ++ ++correct: ++ str[pos] = key; ++ printk("%c", (char)key); ++ pos++; ++ upper_case = 0; ++} ++ ++static struct sysrq_key_op input_read = { ++ .handler = handle_read, ++ .help_msg = "", ++ .action_msg = NULL, ++}; ++ ++static struct sysrq_key_op *sysrq_input_key_table[SYSRQ_KEY_TABLE_LENGTH] = { ++ [0 ... SYSRQ_KEY_TABLE_LENGTH - 1] = &input_read, ++}; ++ ++static void return_dump_mem(char *str) ++{ ++ unsigned long address; ++ char *end; ++ ++ address = simple_strtoul(str, &end, 0); ++ if (*end != '\0') { ++ printk("Bad address [%s]\n", str); ++ return; ++ } ++ ++ dump_address = (unsigned long *)address; ++ dump_mem(); ++} ++ ++static void handle_dump_mem(int key, struct tty_struct *tty) ++{ ++ sysrq_input_return = return_dump_mem; ++ sysrq_key_table = sysrq_input_key_table; ++} ++ ++static struct sysrq_key_op debug_dump_mem = { ++ .handler = handle_dump_mem, ++ .help_msg = "Dump", ++ .action_msg = "Enter address:", ++}; ++ ++static void return_resolve(char *str) ++{ ++ unsigned long address; ++ ++ address = kallsyms_lookup_name(str); ++ printk("%s : %lx\n", str, address); ++ if (address) { ++ dump_address = (unsigned long *)address; ++ printk("Now you can dump it via X\n"); ++ } ++} ++ ++static void handle_resolve(int key, struct tty_struct *tty) ++{ ++ sysrq_input_return = return_resolve; ++ sysrq_key_table = sysrq_input_key_table; ++} ++ ++static struct sysrq_key_op debug_resolve = { ++ .handler = handle_resolve, ++ .help_msg = "Resolve", ++ .action_msg = "Enter symbol name:", ++}; ++ ++static void return_write_mem(char *str) ++{ ++ unsigned long address; ++ unsigned long value; ++ char *end; ++ ++ address = simple_strtoul(str, &end, 0); ++ if (*end != '-') { ++ printk("Bad address in %s\n", str); ++ return; ++ } ++ value = simple_strtoul(end + 1, &end, 0); ++ if (*end != '\0') { ++ printk("Bad value in %s\n", str); ++ return; ++ } ++ ++ dump_address = (unsigned long *)address; ++ write_mem(value); ++} ++ ++static void handle_write_mem(int key, struct tty_struct *tty) ++{ ++ sysrq_input_return = return_write_mem; ++ sysrq_key_table = sysrq_input_key_table; ++} ++ ++static struct sysrq_key_op debug_write_mem = { ++ .handler = handle_write_mem, ++ .help_msg = "Writemem", ++ .action_msg = "Enter address-value:", ++}; ++ ++static void handle_next(int key, struct tty_struct *tty) ++{ ++ dump_mem(); ++} ++ ++static struct sysrq_key_op debug_next = { ++ .handler = handle_next, ++ .help_msg = "neXt", ++ .action_msg = "continuing", ++}; ++ ++static void handle_quit(int key, struct tty_struct *tty) ++{ ++ sysrq_key_table = sysrq_default_key_table; ++ console_loglevel = orig_console_loglevel; ++} ++ ++static struct sysrq_key_op debug_quit = { ++ .handler = handle_quit, ++ .help_msg = "Quit", ++ .action_msg = "Tnahk you for using debugger", ++}; ++ ++static struct sysrq_key_op *sysrq_debug_key_table[SYSRQ_KEY_TABLE_LENGTH] = { ++ [13] = &debug_dump_mem, /* d */ ++ [26] = &debug_quit, /* q */ ++ [27] = &debug_resolve, /* r */ ++ [32] = &debug_write_mem, /* w */ ++ [33] = &debug_next, /* x */ ++}; ++ ++static void sysrq_handle_debug(int key, struct tty_struct *tty) ++{ ++ orig_console_loglevel = console_loglevel; ++ console_loglevel = 8; ++ sysrq_key_table = sysrq_debug_key_table; ++ printk("Welcome sysrq debugging mode\n" ++ "Press H for help\n"); ++} ++ ++static struct sysrq_key_op sysrq_debug_op = { ++ .handler = sysrq_handle_debug, ++ .help_msg = "debuG", ++ .action_msg = "Select desired action", ++}; ++#endif ++ ++static struct sysrq_key_op *sysrq_default_key_table[SYSRQ_KEY_TABLE_LENGTH] = { + &sysrq_loglevel_op, /* 0 */ + &sysrq_loglevel_op, /* 1 */ + &sysrq_loglevel_op, /* 2 */ +@@ -336,7 +605,11 @@ + &sysrq_term_op, /* e */ + &sysrq_moom_op, /* f */ + /* g: May be registered by ppc for kgdb */ ++#ifdef CONFIG_SYSRQ_DEBUG ++ &sysrq_debug_op, /* g */ ++#else + NULL, /* g */ ++#endif + NULL, /* h */ + &sysrq_kill_op, /* i */ + NULL, /* j */ +@@ -358,9 +631,12 @@ + /* x: May be registered on ppc/powerpc for xmon */ + NULL, /* x */ + NULL, /* y */ +- NULL /* z */ ++ NULL, /* z */ ++ NULL, /* for debugger */ + }; + ++static struct sysrq_key_op **sysrq_key_table = sysrq_default_key_table; ++ + /* key2index calculation, -1 on invalid index */ + static int sysrq_key_table_key2index(int key) + { +@@ -370,6 +646,10 @@ + retval = key - '0'; + else if ((key >= 'a') && (key <= 'z')) + retval = key + 10 - 'a'; ++#ifdef CONFIG_SYSRQ_DEBUG ++ else if (key == 0 || key == 0x0d || key == '-') ++ retval = SYSRQ_KEY_TABLE_LENGTH - 1; ++#endif + else + retval = -1; + return retval; +@@ -411,7 +691,6 @@ + spin_lock_irqsave(&sysrq_key_table_lock, flags); + orig_log_level = console_loglevel; + console_loglevel = 7; +- printk(KERN_INFO "SysRq : "); + + op_p = __sysrq_get_key_op(key); + if (op_p) { +@@ -420,16 +699,17 @@ + * should not) and is the invoked operation enabled? + */ + if (!check_mask || sysrq_on_mask(op_p->enable_mask)) { +- printk("%s\n", op_p->action_msg); ++ if (op_p->action_msg) ++ printk("%s\n", op_p->action_msg); + console_loglevel = orig_log_level; + op_p->handler(key, tty); + } else { + printk("This sysrq operation is disabled.\n"); + } + } else { +- printk("HELP : "); ++ printk("SysRq HELP : "); + /* Only print the help msg once per handler */ +- for (i = 0; i < ARRAY_SIZE(sysrq_key_table); i++) { ++ for (i = 0; i < SYSRQ_KEY_TABLE_LENGTH; i++) { + if (sysrq_key_table[i]) { + int j; + +Index: kernel/drivers/char/tty_io.c +=================================================================== +--- kernel.orig/drivers/char/tty_io.c 2008-11-18 01:19:43.000000000 +0100 ++++ kernel/drivers/char/tty_io.c 2008-11-24 15:47:45.000000000 +0100 +@@ -94,6 +94,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -104,6 +106,7 @@ + + #include + #include ++#include + + #undef TTY_DEBUG_HANGUP + +@@ -128,6 +131,7 @@ + into this file */ + + LIST_HEAD(tty_drivers); /* linked list of tty drivers */ ++EXPORT_SYMBOL(tty_drivers); + + /* Mutex to protect creating and releasing a tty. This is shared with + vt.c for deeply disgusting hack reasons */ +@@ -138,6 +142,15 @@ + extern struct tty_driver *ptm_driver; /* Unix98 pty masters; for /dev/ptmx */ + extern int pty_limit; /* Config limit on Unix98 ptys */ + static DEFINE_IDR(allocated_ptys); ++#ifdef CONFIG_VE ++#define __ve_allocated_ptys(ve) (*((ve)->allocated_ptys)) ++#define ve_allocated_ptys __ve_allocated_ptys(get_exec_env()) ++#define ve_ptm_driver (get_exec_env()->ptm_driver) ++#else ++#define __ve_allocated_ptys(ve) allocated_ptys ++#define ve_allocated_ptys allocated_ptys ++#define ve_ptm_driver ptm_driver ++#endif + static DECLARE_MUTEX(allocated_ptys_lock); + static int ptmx_open(struct inode *, struct file *); + #endif +@@ -172,9 +185,20 @@ + * Locking: none + */ + ++void prepare_tty(void) ++{ ++#ifdef CONFIG_VE ++ get_ve0()->allocated_ptys = &allocated_ptys; ++ /* ++ * in this case, tty_register_driver() setups ++ * owner_env correctly right from the bootup ++ */ ++#endif ++} ++ + static struct tty_struct *alloc_tty_struct(void) + { +- return kzalloc(sizeof(struct tty_struct), GFP_KERNEL); ++ return kzalloc(sizeof(struct tty_struct), GFP_KERNEL_UBC); + } + + static void tty_buffer_free_all(struct tty_struct *); +@@ -1148,9 +1172,29 @@ + if (device < base || device >= base + p->num) + continue; + *index = device - base; +- return p; ++#ifdef CONFIG_VE ++ if (in_interrupt()) ++ goto found; ++ if (p->major!=PTY_MASTER_MAJOR && p->major!=PTY_SLAVE_MAJOR ++#ifdef CONFIG_UNIX98_PTYS ++ && (p->majormajor>UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT-1) && ++ (p->majormajor>UNIX98_PTY_SLAVE_MAJOR+UNIX98_PTY_MAJOR_COUNT-1) ++#endif ++ ) ++ goto found; ++ if (ve_is_super(p->owner_env) && ve_is_super(get_exec_env())) ++ goto found; ++ if (!ve_accessible_strict(p->owner_env, get_exec_env())) ++ continue; ++#endif ++ goto found; + } + return NULL; ++ ++found: ++ return p; + } + + /** +@@ -1999,13 +2043,21 @@ + */ + + static int init_dev(struct tty_driver *driver, int idx, +- struct tty_struct **ret_tty) ++ struct tty_struct *i_tty, struct tty_struct **ret_tty) + { + struct tty_struct *tty, *o_tty; + struct ktermios *tp, **tp_loc, *o_tp, **o_tp_loc; + struct ktermios *ltp, **ltp_loc, *o_ltp, **o_ltp_loc; ++ struct ve_struct * owner; + int retval = 0; + ++ owner = driver->owner_env; ++ ++ if (i_tty) { ++ tty = i_tty; ++ goto fast_track; ++ } ++ + /* check whether we're reopening an existing tty */ + if (driver->flags & TTY_DRIVER_DEVPTS_MEM) { + tty = devpts_get_tty(idx); +@@ -2054,6 +2106,7 @@ + tty->driver = driver; + tty->index = idx; + tty_line_name(driver, idx, tty->name); ++ tty->owner_env = owner; + + if (driver->flags & TTY_DRIVER_DEVPTS_MEM) { + tp_loc = &tty->termios; +@@ -2064,14 +2117,14 @@ + } + + if (!*tp_loc) { +- tp = kmalloc(sizeof(struct ktermios), GFP_KERNEL); ++ tp = kmalloc(sizeof(struct ktermios), GFP_KERNEL_UBC); + if (!tp) + goto free_mem_out; + *tp = driver->init_termios; + } + + if (!*ltp_loc) { +- ltp = kzalloc(sizeof(struct ktermios), GFP_KERNEL); ++ ltp = kzalloc(sizeof(struct ktermios), GFP_KERNEL_UBC); + if (!ltp) + goto free_mem_out; + } +@@ -2084,6 +2137,7 @@ + o_tty->driver = driver->other; + o_tty->index = idx; + tty_line_name(driver->other, idx, o_tty->name); ++ o_tty->owner_env = owner; + + if (driver->flags & TTY_DRIVER_DEVPTS_MEM) { + o_tp_loc = &o_tty->termios; +@@ -2094,14 +2148,14 @@ + } + + if (!*o_tp_loc) { +- o_tp = kmalloc(sizeof(struct ktermios), GFP_KERNEL); ++ o_tp = kmalloc(sizeof(struct ktermios), GFP_KERNEL_UBC); + if (!o_tp) + goto free_mem_out; + *o_tp = driver->other->init_termios; + } + + if (!*o_ltp_loc) { +- o_ltp = kzalloc(sizeof(struct ktermios), GFP_KERNEL); ++ o_ltp = kzalloc(sizeof(struct ktermios), GFP_KERNEL_UBC); + if (!o_ltp) + goto free_mem_out; + } +@@ -2118,6 +2172,10 @@ + *o_ltp_loc = o_ltp; + o_tty->termios = *o_tp_loc; + o_tty->termios_locked = *o_ltp_loc; ++#ifdef CONFIG_VE ++ if (driver->other->refcount == 0) ++ (void)get_ve(owner); ++#endif + driver->other->refcount++; + if (driver->subtype == PTY_TYPE_MASTER) + o_tty->count++; +@@ -2142,6 +2200,10 @@ + *ltp_loc = ltp; + tty->termios = *tp_loc; + tty->termios_locked = *ltp_loc; ++#ifdef CONFIG_VE ++ if (driver->refcount == 0) ++ (void)get_ve(owner); ++#endif + /* Compatibility until drivers always set this */ + tty->termios->c_ispeed = tty_termios_input_baud_rate(tty->termios); + tty->termios->c_ospeed = tty_termios_baud_rate(tty->termios); +@@ -2266,7 +2328,8 @@ + + tty->magic = 0; + tty->driver->refcount--; +- ++ if (tty->driver->refcount == 0) ++ put_ve(tty->owner_env); + file_list_lock(); + list_del_init(&tty->tty_files); + file_list_unlock(); +@@ -2312,7 +2375,10 @@ + int idx; + char buf[64]; + unsigned long flags; +- ++#ifdef CONFIG_UNIX98_PTYS ++ struct idr *idr_alloced; ++#endif ++ + tty = (struct tty_struct *)filp->private_data; + if (tty_paranoia_check(tty, filp->f_path.dentry->d_inode, "release_dev")) + return; +@@ -2326,6 +2392,9 @@ + tty->driver->subtype == PTY_TYPE_MASTER); + devpts = (tty->driver->flags & TTY_DRIVER_DEVPTS_MEM) != 0; + o_tty = tty->link; ++#ifdef CONFIG_UNIX98_PTYS ++ idr_alloced = &__ve_allocated_ptys(tty->owner_env); ++#endif + + #ifdef TTY_PARANOIA_CHECK + if (idx < 0 || idx >= tty->driver->num) { +@@ -2572,7 +2641,7 @@ + /* Make this pty number available for reallocation */ + if (devpts) { + down(&allocated_ptys_lock); +- idr_remove(&allocated_ptys, idx); ++ idr_remove(idr_alloced, idx); + up(&allocated_ptys_lock); + } + #endif +@@ -2602,7 +2671,7 @@ + + static int tty_open(struct inode * inode, struct file * filp) + { +- struct tty_struct *tty; ++ struct tty_struct *tty, *c_tty; + int noctty, retval; + struct tty_driver *driver; + int index; +@@ -2615,6 +2684,7 @@ + noctty = filp->f_flags & O_NOCTTY; + index = -1; + retval = 0; ++ c_tty = NULL; + + mutex_lock(&tty_mutex); + +@@ -2626,6 +2696,7 @@ + } + driver = tty->driver; + index = tty->index; ++ c_tty = tty; + filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */ + /* noctty = 1; */ + goto got_driver; +@@ -2633,6 +2704,12 @@ + #ifdef CONFIG_VT + if (device == MKDEV(TTY_MAJOR,0)) { + extern struct tty_driver *console_driver; ++#ifdef CONFIG_VE ++ if (!ve_is_super(get_exec_env())) { ++ mutex_unlock(&tty_mutex); ++ return -ENODEV; ++ } ++#endif + driver = console_driver; + index = fg_console; + noctty = 1; +@@ -2640,6 +2717,12 @@ + } + #endif + if (device == MKDEV(TTYAUX_MAJOR,1)) { ++#ifdef CONFIG_VE ++ if (!ve_is_super(get_exec_env())) { ++ mutex_unlock(&tty_mutex); ++ return -ENODEV; ++ } ++#endif + driver = console_device(&index); + if (driver) { + /* Don't let /dev/console block */ +@@ -2657,7 +2740,7 @@ + return -ENODEV; + } + got_driver: +- retval = init_dev(driver, index, &tty); ++ retval = init_dev(driver, index, c_tty, &tty); + mutex_unlock(&tty_mutex); + if (retval) + return retval; +@@ -2738,11 +2821,11 @@ + + /* find a device that is not in use. */ + down(&allocated_ptys_lock); +- if (!idr_pre_get(&allocated_ptys, GFP_KERNEL)) { ++ if (!idr_pre_get(&ve_allocated_ptys, GFP_KERNEL)) { + up(&allocated_ptys_lock); + return -ENOMEM; + } +- idr_ret = idr_get_new(&allocated_ptys, NULL, &index); ++ idr_ret = idr_get_new(&ve_allocated_ptys, NULL, &index); + if (idr_ret < 0) { + up(&allocated_ptys_lock); + if (idr_ret == -EAGAIN) +@@ -2750,14 +2833,14 @@ + return -EIO; + } + if (index >= pty_limit) { +- idr_remove(&allocated_ptys, index); ++ idr_remove(&ve_allocated_ptys, index); + up(&allocated_ptys_lock); + return -EIO; + } + up(&allocated_ptys_lock); + + mutex_lock(&tty_mutex); +- retval = init_dev(ptm_driver, index, &tty); ++ retval = init_dev(ve_ptm_driver, index, NULL, &tty); + mutex_unlock(&tty_mutex); + + if (retval) +@@ -2772,7 +2855,7 @@ + goto out1; + + check_tty_count(tty, "tty_open"); +- retval = ptm_driver->open(tty, filp); ++ retval = ve_ptm_driver->open(tty, filp); + if (!retval) { + tty_audit_opening(); + return 0; +@@ -2782,7 +2865,7 @@ + return retval; + out: + down(&allocated_ptys_lock); +- idr_remove(&allocated_ptys, index); ++ idr_remove(&ve_allocated_ptys, index); + up(&allocated_ptys_lock); + return retval; + } +@@ -2988,6 +3071,8 @@ + { + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; ++ if (!ve_is_super(get_exec_env())) ++ return -EACCES; + if (file->f_op->write == redirected_tty_write) { + struct file *f; + spin_lock(&redirect_lock); +@@ -3536,7 +3621,7 @@ + /* Now kill any processes that happen to have the + * tty open. + */ +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + if (p->signal->tty == tty) { + printk(KERN_NOTICE "SAK: killed process %d" + " (%s): task_session_nr(p)==tty->session\n", +@@ -3568,7 +3653,7 @@ + spin_unlock(&p->files->file_lock); + } + task_unlock(p); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + read_unlock(&tasklist_lock); + #endif + } +@@ -3914,6 +3999,7 @@ + driver->put_char = tty_default_put_char; + + mutex_lock(&tty_mutex); ++ driver->owner_env = get_exec_env(); + list_add(&driver->tty_drivers, &tty_drivers); + mutex_unlock(&tty_mutex); + +@@ -4107,6 +4193,44 @@ + + vty_init(); + #endif ++ prepare_tty(); + return 0; + } + module_init(tty_init); ++ ++#ifdef CONFIG_UNIX98_PTYS ++struct class *init_ve_tty_class(void) ++{ ++ struct class * ve_tty_class; ++ struct class_device * ve_ptmx_dev_class; ++ ++ ve_tty_class = class_create(THIS_MODULE, "tty"); ++ if (IS_ERR(ve_tty_class)) ++ return ve_tty_class; ++ ++ ve_ptmx_dev_class = class_device_create(ve_tty_class, NULL, ++ MKDEV(TTYAUX_MAJOR, 2), NULL, "ptmx"); ++ if (IS_ERR(ve_ptmx_dev_class)) { ++ class_destroy(ve_tty_class); ++ return (struct class *)ve_ptmx_dev_class; ++ } ++ ++ return ve_tty_class; ++} ++ ++void fini_ve_tty_class(struct class *ve_tty_class) ++{ ++ class_device_destroy(ve_tty_class, MKDEV(TTYAUX_MAJOR, 2)); ++ class_destroy(ve_tty_class); ++} ++#else ++struct class *init_ve_tty_class(void) ++{ ++ return NULL; ++} ++void fini_ve_tty_class(struct class *ve_tty_class) ++{ ++} ++#endif ++EXPORT_SYMBOL(init_ve_tty_class); ++EXPORT_SYMBOL(fini_ve_tty_class); +Index: kernel/drivers/net/Makefile +=================================================================== +--- kernel.orig/drivers/net/Makefile 2008-11-18 01:19:44.000000000 +0100 ++++ kernel/drivers/net/Makefile 2008-11-24 15:47:45.000000000 +0100 +@@ -25,6 +25,10 @@ + obj-$(CONFIG_UCC_GETH) += ucc_geth_driver.o + ucc_geth_driver-objs := ucc_geth.o ucc_geth_mii.o ucc_geth_ethtool.o + ++obj-$(CONFIG_VE_NETDEV) += vznetdev.o ++vznetdev-objs := open_vznet.o venet_core.o ++obj-$(CONFIG_VE_ETHDEV) += vzethdev.o ++ + # + # link order important here + # +Index: kernel/drivers/net/loopback.c +=================================================================== +--- kernel.orig/drivers/net/loopback.c 2008-11-18 01:19:44.000000000 +0100 ++++ kernel/drivers/net/loopback.c 2008-11-24 15:47:45.000000000 +0100 +@@ -136,6 +136,12 @@ + { + struct pcpu_lstats *pcpu_lstats, *lb_stats; + ++#ifdef CONFIG_VE ++ if (unlikely(get_exec_env()->disable_net)) { ++ kfree_skb(skb); ++ return 0; ++ } ++#endif + skb_orphan(skb); + + skb->protocol = eth_type_trans(skb,dev); +@@ -242,7 +248,8 @@ + | NETIF_F_NO_CSUM + | NETIF_F_HIGHDMA + | NETIF_F_LLTX +- | NETIF_F_NETNS_LOCAL; ++ | NETIF_F_NETNS_LOCAL ++ | NETIF_F_VIRTUAL; + dev->ethtool_ops = &loopback_ethtool_ops; + dev->header_ops = ð_header_ops; + dev->init = loopback_dev_init; +Index: kernel/drivers/net/open_vznet.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/drivers/net/open_vznet.c 2008-11-24 15:47:45.000000000 +0100 +@@ -0,0 +1,244 @@ ++/* ++ * open_vznet.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++/* ++ * Virtual Networking device used to change VE ownership on packets ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++void veip_stop(struct ve_struct *ve) ++{ ++ struct list_head *p, *tmp; ++ ++ write_lock_irq(&veip_hash_lock); ++ if (ve->veip == NULL) ++ goto unlock; ++ list_for_each_safe(p, tmp, &ve->veip->ip_lh) { ++ struct ip_entry_struct *ptr; ++ ptr = list_entry(p, struct ip_entry_struct, ve_list); ++ ptr->active_env = NULL; ++ list_del(&ptr->ve_list); ++ list_del(&ptr->ip_hash); ++ kfree(ptr); ++ } ++ veip_put(ve->veip); ++ ve->veip = NULL; ++ if (!ve_is_super(ve)) ++ module_put(THIS_MODULE); ++unlock: ++ write_unlock_irq(&veip_hash_lock); ++} ++ ++int veip_start(struct ve_struct *ve) ++{ ++ int err, get; ++ ++ err = 0; ++ write_lock_irq(&veip_hash_lock); ++ get = ve->veip == NULL; ++ ve->veip = veip_findcreate(ve->veid); ++ if (ve->veip == NULL) ++ err = -ENOMEM; ++ write_unlock_irq(&veip_hash_lock); ++ if (err == 0 && get && !ve_is_super(ve)) ++ __module_get(THIS_MODULE); ++ return err; ++} ++ ++int veip_entry_add(struct ve_struct *ve, struct ve_addr_struct *addr) ++{ ++ struct ip_entry_struct *entry, *found; ++ int err; ++ ++ entry = kzalloc(sizeof(struct ip_entry_struct), GFP_KERNEL); ++ if (entry == NULL) ++ return -ENOMEM; ++ ++ if (ve->veip == NULL) { ++ /* This can happen if we load venet AFTER ve was started */ ++ err = veip_start(ve); ++ if (err < 0) ++ goto out; ++ } ++ ++ write_lock_irq(&veip_hash_lock); ++ err = -EADDRINUSE; ++ found = venet_entry_lookup(addr); ++ if (found != NULL) ++ goto out_unlock; ++ ++ entry->active_env = ve; ++ entry->addr = *addr; ++ ip_entry_hash(entry, ve->veip); ++ ++ err = 0; ++ entry = NULL; ++out_unlock: ++ write_unlock_irq(&veip_hash_lock); ++out: ++ if (entry != NULL) ++ kfree(entry); ++ return err; ++} ++ ++int veip_entry_del(envid_t veid, struct ve_addr_struct *addr) ++{ ++ struct ip_entry_struct *found; ++ int err; ++ ++ err = -EADDRNOTAVAIL; ++ write_lock_irq(&veip_hash_lock); ++ found = venet_entry_lookup(addr); ++ if (found == NULL) ++ goto out; ++ if (found->active_env->veid != veid) ++ goto out; ++ ++ err = 0; ++ found->active_env = NULL; ++ ++ list_del(&found->ip_hash); ++ list_del(&found->ve_list); ++ kfree(found); ++out: ++ write_unlock_irq(&veip_hash_lock); ++ return err; ++} ++ ++static int skb_extract_addr(struct sk_buff *skb, ++ struct ve_addr_struct *addr, int dir) ++{ ++ switch (skb->protocol) { ++ case __constant_htons(ETH_P_IP): ++ addr->family = AF_INET; ++ addr->key[0] = 0; ++ addr->key[1] = 0; ++ addr->key[2] = 0; ++ addr->key[3] = (dir ? ip_hdr(skb)->daddr : ip_hdr(skb)->saddr); ++ return 0; ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ case __constant_htons(ETH_P_IPV6): ++ addr->family = AF_INET6; ++ memcpy(&addr->key, dir ? ++ ipv6_hdr(skb)->daddr.s6_addr32 : ++ ipv6_hdr(skb)->saddr.s6_addr32, ++ sizeof(addr->key)); ++ return 0; ++#endif ++ } ++ ++ return -EAFNOSUPPORT; ++} ++ ++static struct ve_struct *venet_find_ve(struct sk_buff *skb, int dir) ++{ ++ struct ip_entry_struct *entry; ++ struct ve_addr_struct addr; ++ ++ if (skb_extract_addr(skb, &addr, dir) < 0) ++ return NULL; ++ ++ entry = venet_entry_lookup(&addr); ++ if (entry == NULL) ++ return NULL; ++ ++ return entry->active_env; ++} ++ ++int venet_change_skb_owner(struct sk_buff *skb) ++{ ++ struct ve_struct *ve, *ve_old; ++ ++ ve_old = skb->owner_env; ++ ++ read_lock(&veip_hash_lock); ++ if (!ve_is_super(ve_old)) { ++ /* from VE to host */ ++ ve = venet_find_ve(skb, 0); ++ if (ve == NULL) ++ goto out_drop; ++ if (!ve_accessible_strict(ve, ve_old)) ++ goto out_source; ++ skb->owner_env = get_ve0(); ++ } else { ++ /* from host to VE */ ++ ve = venet_find_ve(skb, 1); ++ if (ve == NULL) ++ goto out_drop; ++ skb->owner_env = ve; ++ } ++ read_unlock(&veip_hash_lock); ++ ++ return 0; ++ ++out_drop: ++ read_unlock(&veip_hash_lock); ++ return -ESRCH; ++ ++out_source: ++ read_unlock(&veip_hash_lock); ++ if (net_ratelimit() && skb->protocol == __constant_htons(ETH_P_IP)) { ++ printk(KERN_WARNING "Dropped packet, source wrong " ++ "veid=%u src-IP=%u.%u.%u.%u " ++ "dst-IP=%u.%u.%u.%u\n", ++ skb->owner_env->veid, ++ NIPQUAD(ip_hdr(skb)->saddr), ++ NIPQUAD(ip_hdr(skb)->daddr)); ++ } ++ return -EACCES; ++} ++ ++#ifdef CONFIG_PROC_FS ++int veip_seq_show(struct seq_file *m, void *v) ++{ ++ struct list_head *p; ++ struct ip_entry_struct *entry; ++ char s[40]; ++ ++ p = (struct list_head *)v; ++ if (p == ip_entry_hash_table) { ++ seq_puts(m, "Version: 2.5\n"); ++ return 0; ++ } ++ entry = list_entry(p, struct ip_entry_struct, ip_hash); ++ veaddr_print(s, sizeof(s), &entry->addr); ++ seq_printf(m, "%39s %10u\n", s, 0); ++ return 0; ++} ++#endif ++ ++__exit void veip_cleanup(void) ++{ ++ int i; ++ ++ write_lock_irq(&veip_hash_lock); ++ for (i = 0; i < VEIP_HASH_SZ; i++) ++ while (!list_empty(ip_entry_hash_table + i)) { ++ struct ip_entry_struct *entry; ++ ++ entry = list_first_entry(ip_entry_hash_table + i, ++ struct ip_entry_struct, ip_hash); ++ list_del(&entry->ip_hash); ++ kfree(entry); ++ } ++ write_unlock_irq(&veip_hash_lock); ++} ++ ++MODULE_AUTHOR("SWsoft "); ++MODULE_DESCRIPTION("Virtuozzo Virtual Network Device"); ++MODULE_LICENSE("GPL v2"); +Index: kernel/drivers/net/tun.c +=================================================================== +--- kernel.orig/drivers/net/tun.c 2008-11-18 01:19:44.000000000 +0100 ++++ kernel/drivers/net/tun.c 2008-11-24 15:47:45.000000000 +0100 +@@ -66,6 +66,7 @@ + + #include + #include ++#include + + #ifdef TUN_DEBUG + static int debug; +@@ -73,15 +74,18 @@ + + /* Network device part of the driver */ + +-static LIST_HEAD(tun_dev_list); ++LIST_HEAD(tun_dev_list); ++EXPORT_SYMBOL(tun_dev_list); ++ + static const struct ethtool_ops tun_ethtool_ops; + + /* Net device open. */ +-static int tun_net_open(struct net_device *dev) ++int tun_net_open(struct net_device *dev) + { + netif_start_queue(dev); + return 0; + } ++EXPORT_SYMBOL(tun_net_open); + + /* Net device close. */ + static int tun_net_close(struct net_device *dev) +@@ -94,6 +98,9 @@ + static int tun_net_xmit(struct sk_buff *skb, struct net_device *dev) + { + struct tun_struct *tun = netdev_priv(dev); ++#if 0 ++ struct user_beancounter *ub; ++#endif + + DBG(KERN_INFO "%s: tun_net_xmit %d\n", tun->dev->name, skb->len); + +@@ -118,6 +125,24 @@ + } + } + ++ /* ++ * XXX this code is broken: ++ * See comment in dev_queue_xmit ++ */ ++#if 0 ++ ub = netdev_bc(dev)->exec_ub; ++ if (ub && (skb_bc(skb)->charged == 0)) { ++ unsigned long charge; ++ charge = skb_charge_fullsize(skb); ++ if (charge_beancounter(ub, UB_OTHERSOCKBUF, charge, 1)) ++ goto drop; ++ get_beancounter(ub); ++ skb_bc(skb)->ub = ub; ++ skb_bc(skb)->charged = charge; ++ skb_bc(skb)->resource = UB_OTHERSOCKBUF; ++ } ++#endif ++ + /* Queue packet */ + skb_queue_tail(&tun->readq, skb); + dev->trans_start = jiffies; +@@ -184,7 +209,7 @@ + } + + /* Initialize net device. */ +-static void tun_net_init(struct net_device *dev) ++void tun_net_init(struct net_device *dev) + { + struct tun_struct *tun = netdev_priv(dev); + +@@ -216,6 +241,7 @@ + break; + } + } ++EXPORT_SYMBOL(tun_net_init); + + /* Character device part */ + +@@ -415,11 +441,13 @@ + DBG(KERN_DEBUG "%s: tun_chr_readv: accepted: %s\n", + tun->dev->name, print_mac(mac, addr)); + ret = tun_put_user(tun, skb, (struct iovec *) iv, len); ++ /* skb will be uncharged in kfree_skb() */ + kfree_skb(skb); + break; + } else { + DBG(KERN_DEBUG "%s: tun_chr_readv: rejected: %s\n", + tun->dev->name, print_mac(mac, addr)); ++ /* skb will be uncharged in kfree_skb() */ + kfree_skb(skb); + continue; + } +@@ -431,7 +459,7 @@ + return ret; + } + +-static void tun_setup(struct net_device *dev) ++void tun_setup(struct net_device *dev) + { + struct tun_struct *tun = netdev_priv(dev); + +@@ -446,7 +474,9 @@ + dev->stop = tun_net_close; + dev->ethtool_ops = &tun_ethtool_ops; + dev->destructor = free_netdev; ++ dev->features |= NETIF_F_VIRTUAL; + } ++EXPORT_SYMBOL(tun_setup); + + static struct tun_struct *tun_get_by_name(const char *name) + { +@@ -454,8 +484,9 @@ + + ASSERT_RTNL(); + list_for_each_entry(tun, &tun_dev_list, list) { +- if (!strncmp(tun->dev->name, name, IFNAMSIZ)) +- return tun; ++ if (ve_accessible_strict(tun->dev->owner_env, get_exec_env()) && ++ !strncmp(tun->dev->name, name, IFNAMSIZ)) ++ return tun; + } + + return NULL; +@@ -477,7 +508,8 @@ + current->euid != tun->owner) || + (tun->group != -1 && + current->egid != tun->group)) && +- !capable(CAP_NET_ADMIN)) ++ !capable(CAP_NET_ADMIN) && ++ !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + } + else if (__dev_get_by_name(&init_net, ifr->ifr_name)) +@@ -488,7 +520,7 @@ + + err = -EINVAL; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) && !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + + /* Set dev type */ +@@ -546,6 +578,7 @@ + + file->private_data = tun; + tun->attached = 1; ++ tun->bind_file = file; + + strcpy(ifr->ifr_name, tun->dev->name); + return 0; +@@ -603,6 +636,9 @@ + break; + + case TUNSETPERSIST: ++ /* prohibit persist mode inside VE */ ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; + /* Disable/Enable persist mode */ + if (arg) + tun->flags |= TUN_PERSIST; +@@ -734,12 +770,13 @@ + return 0; + } + +-static int tun_chr_open(struct inode *inode, struct file * file) ++int tun_chr_open(struct inode *inode, struct file * file) + { + DBG1(KERN_INFO "tunX: tun_chr_open\n"); + file->private_data = NULL; + return 0; + } ++EXPORT_SYMBOL(tun_chr_open); + + static int tun_chr_close(struct inode *inode, struct file *file) + { +Index: kernel/drivers/net/venet_core.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/drivers/net/venet_core.c 2008-11-24 15:47:45.000000000 +0100 +@@ -0,0 +1,826 @@ ++/* ++ * venet_core.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++/* ++ * Common part for Virtuozzo virtual network devices ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include /* For the statistics structure. */ ++#include /* For ARPHRD_ETHER */ ++#include ++#include ++#include ++#include ++#include ++ ++struct list_head ip_entry_hash_table[VEIP_HASH_SZ]; ++rwlock_t veip_hash_lock = RW_LOCK_UNLOCKED; ++LIST_HEAD(veip_lh); ++ ++struct venet_stats { ++ struct net_device_stats stats; ++ struct net_device_stats *real_stats; ++}; ++ ++static inline struct net_device_stats * ++venet_stats(struct net_device *dev, int cpu) ++{ ++ struct venet_stats *stats; ++ stats = (struct venet_stats*)dev->priv; ++ return per_cpu_ptr(stats->real_stats, cpu); ++} ++ ++ ++#define ip_entry_hash_function(ip) (ntohl(ip) & (VEIP_HASH_SZ - 1)) ++ ++void ip_entry_hash(struct ip_entry_struct *entry, struct veip_struct *veip) ++{ ++ list_add(&entry->ip_hash, ++ ip_entry_hash_table + ++ ip_entry_hash_function(entry->addr.key[3])); ++ list_add(&entry->ve_list, &veip->ip_lh); ++} ++ ++void veip_put(struct veip_struct *veip) ++{ ++ if (!list_empty(&veip->ip_lh)) ++ return; ++ if (!list_empty(&veip->src_lh)) ++ return; ++ if (!list_empty(&veip->dst_lh)) ++ return; ++ ++ list_del(&veip->list); ++ kfree(veip); ++} ++ ++struct ip_entry_struct *venet_entry_lookup(struct ve_addr_struct *addr) ++{ ++ struct ip_entry_struct *entry; ++ ++ list_for_each_entry (entry, ip_entry_hash_table + ++ ip_entry_hash_function(addr->key[3]), ip_hash) ++ if (memcmp(&entry->addr, addr, sizeof(*addr)) == 0) ++ return entry; ++ return NULL; ++} ++ ++struct veip_struct *veip_find(envid_t veid) ++{ ++ struct veip_struct *ptr; ++ ++ list_for_each_entry(ptr, &veip_lh, list) { ++ if (ptr->veid != veid) ++ continue; ++ return ptr; ++ } ++ return NULL; ++} ++ ++struct veip_struct *veip_findcreate(envid_t veid) ++{ ++ struct veip_struct *ptr; ++ ++ ptr = veip_find(veid); ++ if (ptr != NULL) ++ return ptr; ++ ++ ptr = kmalloc(sizeof(struct veip_struct), GFP_ATOMIC); ++ if (ptr == NULL) ++ return NULL; ++ memset(ptr, 0, sizeof(struct veip_struct)); ++ INIT_LIST_HEAD(&ptr->ip_lh); ++ INIT_LIST_HEAD(&ptr->src_lh); ++ INIT_LIST_HEAD(&ptr->dst_lh); ++ ptr->veid = veid; ++ list_add(&ptr->list, &veip_lh); ++ return ptr; ++} ++ ++static int convert_sockaddr(struct sockaddr *addr, int addrlen, ++ struct ve_addr_struct *veaddr) ++{ ++ int err; ++ ++ switch (addr->sa_family) { ++ case AF_INET: { ++ struct sockaddr_in *sin; ++ ++ err = -EINVAL; ++ if (addrlen != sizeof(struct sockaddr_in)) ++ break; ++ ++ err = 0; ++ sin = (struct sockaddr_in *)addr; ++ veaddr->family = AF_INET; ++ veaddr->key[0] = 0; ++ veaddr->key[1] = 0; ++ veaddr->key[2] = 0; ++ veaddr->key[3] = sin->sin_addr.s_addr; ++ break; ++ } ++ case AF_INET6: { ++ struct sockaddr_in6 *sin; ++ ++ err = -EINVAL; ++ if (addrlen != sizeof(struct sockaddr_in6)) ++ break; ++ ++ err = 0; ++ sin = (struct sockaddr_in6 *)addr; ++ veaddr->family = AF_INET6; ++ memcpy(veaddr->key, &sin->sin6_addr, sizeof(veaddr->key)); ++ break; ++ } ++ default: ++ err = -EAFNOSUPPORT; ++ } ++ return err; ++} ++ ++int sockaddr_to_veaddr(struct sockaddr __user *uaddr, int addrlen, ++ struct ve_addr_struct *veaddr) ++{ ++ int err; ++ char addr[MAX_SOCK_ADDR]; ++ ++ err = move_addr_to_kernel(uaddr, addrlen, &addr); ++ if (err < 0) ++ goto out; ++ ++ err = convert_sockaddr((struct sockaddr *)&addr, addrlen, veaddr); ++out: ++ return err; ++} ++ ++void veaddr_print(char *str, int len, struct ve_addr_struct *a) ++{ ++ if (a->family == AF_INET) ++ snprintf(str, len, "%u.%u.%u.%u", NIPQUAD(a->key[3])); ++ else ++ snprintf(str, len, "%x:%x:%x:%x:%x:%x:%x:%x", ++ ntohl(a->key[0])>>16, ntohl(a->key[0])&0xFFFF, ++ ntohl(a->key[1])>>16, ntohl(a->key[1])&0xFFFF, ++ ntohl(a->key[2])>>16, ntohl(a->key[2])&0xFFFF, ++ ntohl(a->key[3])>>16, ntohl(a->key[3])&0xFFFF ++ ); ++} ++ ++/* ++ * Device functions ++ */ ++ ++static int venet_open(struct net_device *dev) ++{ ++ if (!ve_is_super(get_exec_env()) && !try_module_get(THIS_MODULE)) ++ return -EBUSY; ++ return 0; ++} ++ ++static int venet_close(struct net_device *master) ++{ ++ if (!ve_is_super(get_exec_env())) ++ module_put(THIS_MODULE); ++ return 0; ++} ++ ++static void venet_destructor(struct net_device *dev) ++{ ++ struct venet_stats *stats = (struct venet_stats *)dev->priv; ++ if (stats == NULL) ++ return; ++ free_percpu(stats->real_stats); ++ kfree(stats); ++ dev->priv = NULL; ++} ++ ++/* ++ * The higher levels take care of making this non-reentrant (it's ++ * called with bh's disabled). ++ */ ++static int venet_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct net_device_stats *stats; ++ struct net_device *rcv = NULL; ++ int length; ++ ++ stats = venet_stats(dev, smp_processor_id()); ++ if (unlikely(get_exec_env()->disable_net)) ++ goto outf; ++ ++ if (skb->protocol == __constant_htons(ETH_P_IP)) { ++ struct iphdr *iph; ++ iph = ip_hdr(skb); ++ if (MULTICAST(iph->daddr)) ++ goto outf; ++ } else if (skb->protocol == __constant_htons(ETH_P_IPV6)) { ++ struct ipv6hdr *ip6h; ++ ip6h = ipv6_hdr(skb); ++ if (ipv6_addr_is_multicast(&ip6h->daddr)) ++ goto outf; ++ skb_orphan(skb); ++ } else { ++ goto outf; ++ } ++ ++ if (venet_change_skb_owner(skb) < 0) ++ goto outf; ++ ++ if (unlikely(skb->owner_env->disable_net)) ++ goto outf; ++ ++ rcv = skb->owner_env->_venet_dev; ++ if (!rcv) ++ /* VE going down */ ++ goto outf; ++ ++ dev_hold(rcv); ++ ++ if (!(rcv->flags & IFF_UP)) { ++ /* Target VE does not want to receive packets */ ++ dev_put(rcv); ++ goto outf; ++ } ++ ++ skb->pkt_type = PACKET_HOST; ++ skb->dev = rcv; ++ ++ skb_reset_mac_header(skb); ++ memset(skb->data - dev->hard_header_len, 0, dev->hard_header_len); ++ ++ dst_release(skb->dst); ++ skb->dst = NULL; ++#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) ++ nf_conntrack_put(skb->nfct); ++ skb->nfct = NULL; ++#endif ++ length = skb->len; ++ ++ netif_rx(skb); ++ ++ stats->tx_bytes += length; ++ stats->tx_packets++; ++ if (rcv) { ++ struct net_device_stats *rcv_stats; ++ ++ rcv_stats = venet_stats(rcv, smp_processor_id()); ++ rcv_stats->rx_bytes += length; ++ rcv_stats->rx_packets++; ++ dev_put(rcv); ++ } ++ ++ return 0; ++ ++outf: ++ kfree_skb(skb); ++ ++stats->tx_dropped; ++ return 0; ++} ++ ++static struct net_device_stats *get_stats(struct net_device *dev) ++{ ++ int i; ++ struct venet_stats *stats; ++ ++ stats = (struct venet_stats *)dev->priv; ++ memset(&stats->stats, 0, sizeof(struct net_device_stats)); ++ for (i=0; i < NR_CPUS; i++) { ++ struct net_device_stats *dev_stats; ++ ++ if (!cpu_possible(i)) ++ continue; ++ dev_stats = venet_stats(dev, i); ++ stats->stats.rx_bytes += dev_stats->rx_bytes; ++ stats->stats.tx_bytes += dev_stats->tx_bytes; ++ stats->stats.rx_packets += dev_stats->rx_packets; ++ stats->stats.tx_packets += dev_stats->tx_packets; ++ } ++ ++ return &stats->stats; ++} ++ ++/* Initialize the rest of the LOOPBACK device. */ ++int venet_init_dev(struct net_device *dev) ++{ ++ struct venet_stats *stats; ++ ++ dev->hard_start_xmit = venet_xmit; ++ stats = kzalloc(sizeof(struct venet_stats), GFP_KERNEL); ++ if (stats == NULL) ++ goto fail; ++ stats->real_stats = alloc_percpu(struct net_device_stats); ++ if (stats->real_stats == NULL) ++ goto fail_free; ++ dev->priv = stats; ++ ++ dev->get_stats = get_stats; ++ dev->open = venet_open; ++ dev->stop = venet_close; ++ dev->destructor = venet_destructor; ++ ++ /* ++ * Fill in the generic fields of the device structure. ++ */ ++ dev->type = ARPHRD_VOID; ++ dev->hard_header_len = ETH_HLEN; ++ dev->mtu = 1500; /* eth_mtu */ ++ dev->tx_queue_len = 0; ++ ++ memset(dev->broadcast, 0xFF, ETH_ALEN); ++ ++ /* New-style flags. */ ++ dev->flags = IFF_BROADCAST|IFF_NOARP|IFF_POINTOPOINT; ++ return 0; ++ ++fail_free: ++ kfree(stats); ++fail: ++ return -ENOMEM; ++} ++ ++static int ++venet_set_op(struct net_device *dev, u32 data, ++ int (*fop)(struct net_device *, u32)) ++{ ++ ++ struct ve_struct *ve; ++ int ret = 0; ++ ++ read_lock(&ve_list_lock); ++ for_each_ve(ve) { ++ struct ve_struct *ve_old; ++ ++ ve_old = set_exec_env(ve); ++ read_lock(&dev_base_lock); ++ for_each_netdev(ve->ve_ns->net_ns, dev) { ++ if (dev->hard_start_xmit == venet_xmit) ++ ret = fop(dev, data); ++ } ++ read_unlock(&dev_base_lock); ++ set_exec_env(ve_old); ++ ++ if (ret < 0) ++ break; ++ } ++ read_unlock(&ve_list_lock); ++ return ret; ++} ++ ++static unsigned long common_features; ++ ++static int venet_op_set_sg(struct net_device *dev, u32 data) ++{ ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; ++ ++ if (data) ++ common_features |= NETIF_F_SG; ++ else ++ common_features &= ~NETIF_F_SG; ++ ++ return venet_set_op(dev, data, ethtool_op_set_sg); ++} ++ ++static int venet_op_set_tx_csum(struct net_device *dev, u32 data) ++{ ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; ++ ++ if (data) ++ common_features |= NETIF_F_IP_CSUM; ++ else ++ common_features &= ~NETIF_F_IP_CSUM; ++ ++ return venet_set_op(dev, data, ethtool_op_set_tx_csum); ++} ++ ++#define venet_op_set_rx_csum venet_op_set_tx_csum ++ ++static struct ethtool_ops venet_ethtool_ops = { ++ .get_sg = ethtool_op_get_sg, ++ .set_sg = venet_op_set_sg, ++ .get_tx_csum = ethtool_op_get_tx_csum, ++ .set_tx_csum = venet_op_set_tx_csum, ++ .get_rx_csum = ethtool_op_get_tx_csum, ++ .set_rx_csum = venet_op_set_rx_csum, ++ .get_tso = ethtool_op_get_tso, ++}; ++ ++static void venet_setup(struct net_device *dev) ++{ ++ dev->init = venet_init_dev; ++ /* ++ * No other features, as they are: ++ * - checksumming is required, and nobody else will done our job ++ */ ++ dev->features |= NETIF_F_VENET | NETIF_F_VIRTUAL | NETIF_F_LLTX | ++ NETIF_F_HIGHDMA | NETIF_F_VLAN_CHALLENGED; ++ ++ dev->features |= common_features; ++ ++ SET_ETHTOOL_OPS(dev, &venet_ethtool_ops); ++} ++ ++#ifdef CONFIG_PROC_FS ++static int veinfo_seq_show(struct seq_file *m, void *v) ++{ ++ struct ve_struct *ve; ++ struct ip_entry_struct *entry; ++ ++ ve = list_entry((struct list_head *)v, struct ve_struct, ve_list); ++ ++ seq_printf(m, "%10u %5u %5u", ve->veid, ++ ve->class_id, atomic_read(&ve->pcounter)); ++ read_lock(&veip_hash_lock); ++ if (ve->veip == NULL) ++ goto unlock; ++ list_for_each_entry (entry, &ve->veip->ip_lh, ve_list) { ++ char addr[40]; ++ ++ if (entry->active_env == NULL) ++ continue; ++ ++ veaddr_print(addr, sizeof(addr), &entry->addr); ++ if (entry->addr.family == AF_INET) ++ seq_printf(m, " %15s", addr); ++ else ++ seq_printf(m, " %39s", addr); ++ } ++unlock: ++ read_unlock(&veip_hash_lock); ++ seq_putc(m, '\n'); ++ return 0; ++} ++ ++static void *ve_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ struct ve_struct *curve; ++ struct list_head *entry; ++ loff_t l; ++ ++ curve = get_exec_env(); ++ read_lock(&ve_list_lock); ++ if (!ve_is_super(curve)) { ++ if (*pos != 0) ++ return NULL; ++ return curve; ++ } ++ ++ l = *pos; ++ list_for_each(entry, &ve_list_head) { ++ if (l == 0) ++ return entry; ++ l--; ++ } ++ return NULL; ++} ++ ++static void *ve_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ struct list_head *entry; ++ ++ entry = (struct list_head *)v; ++ if (!ve_is_super(get_exec_env())) ++ return NULL; ++ (*pos)++; ++ return entry->next == &ve_list_head ? NULL : entry->next; ++} ++ ++static void ve_seq_stop(struct seq_file *m, void *v) ++{ ++ read_unlock(&ve_list_lock); ++} ++ ++ ++static struct seq_operations veinfo_seq_op = { ++ .start = ve_seq_start, ++ .next = ve_seq_next, ++ .stop = ve_seq_stop, ++ .show = veinfo_seq_show, ++}; ++ ++static int veinfo_open(struct inode *inode, struct file *file) ++{ ++ return seq_open(file, &veinfo_seq_op); ++} ++ ++static struct file_operations proc_veinfo_operations = { ++ .open = veinfo_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++ ++static void *veip_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ loff_t l; ++ struct list_head *p; ++ int i; ++ ++ l = *pos; ++ write_lock_irq(&veip_hash_lock); ++ if (l == 0) ++ return ip_entry_hash_table; ++ for (i = 0; i < VEIP_HASH_SZ; i++) { ++ list_for_each(p, ip_entry_hash_table + i) { ++ if (--l == 0) ++ return p; ++ } ++ } ++ return NULL; ++} ++ ++static void *veip_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ struct list_head *p; ++ ++ p = (struct list_head *)v; ++ while (1) { ++ p = p->next; ++ if (p < ip_entry_hash_table || ++ p >= ip_entry_hash_table + VEIP_HASH_SZ) { ++ (*pos)++; ++ return p; ++ } ++ if (++p >= ip_entry_hash_table + VEIP_HASH_SZ) ++ return NULL; ++ } ++ return NULL; ++} ++ ++static void veip_seq_stop(struct seq_file *m, void *v) ++{ ++ write_unlock_irq(&veip_hash_lock); ++} ++ ++static struct seq_operations veip_seq_op = { ++ .start = veip_seq_start, ++ .next = veip_seq_next, ++ .stop = veip_seq_stop, ++ .show = veip_seq_show, ++}; ++ ++static int veip_open(struct inode *inode, struct file *file) ++{ ++ return seq_open(file, &veip_seq_op); ++} ++ ++static struct file_operations proc_veip_operations = { ++ .open = veip_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++#endif ++ ++static int real_ve_ip_map(envid_t veid, int op, struct sockaddr __user *uaddr, ++ int addrlen) ++{ ++ int err; ++ struct ve_struct *ve; ++ struct ve_addr_struct addr; ++ ++ err = -EPERM; ++ if (!capable(CAP_SETVEID)) ++ goto out; ++ ++ err = sockaddr_to_veaddr(uaddr, addrlen, &addr); ++ if (err < 0) ++ goto out; ++ ++ switch (op) ++ { ++ case VE_IP_ADD: ++ ve = get_ve_by_id(veid); ++ err = -ESRCH; ++ if (!ve) ++ goto out; ++ ++ down_read(&ve->op_sem); ++ if (ve->is_running) ++ err = veip_entry_add(ve, &addr); ++ up_read(&ve->op_sem); ++ put_ve(ve); ++ break; ++ ++ case VE_IP_DEL: ++ err = veip_entry_del(veid, &addr); ++ break; ++ default: ++ err = -EINVAL; ++ } ++ ++out: ++ return err; ++} ++ ++int venet_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ int err; ++ ++ err = -ENOTTY; ++ switch(cmd) { ++ case VENETCTL_VE_IP_MAP: { ++ struct vzctl_ve_ip_map s; ++ err = -EFAULT; ++ if (copy_from_user(&s, (void __user *)arg, sizeof(s))) ++ break; ++ err = real_ve_ip_map(s.veid, s.op, s.addr, s.addrlen); ++ break; ++ } ++ } ++ return err; ++} ++ ++#ifdef CONFIG_COMPAT ++int compat_venet_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ int err; ++ ++ switch(cmd) { ++ case VENETCTL_COMPAT_VE_IP_MAP: { ++ struct compat_vzctl_ve_ip_map cs; ++ ++ err = -EFAULT; ++ if (copy_from_user(&cs, (void *)arg, sizeof(cs))) ++ break; ++ ++ err = real_ve_ip_map(cs.veid, cs.op, compat_ptr(cs.addr), ++ cs.addrlen); ++ break; ++ } ++ default: ++ err = venet_ioctl(file, cmd, arg); ++ break; ++ } ++ return err; ++} ++#endif ++ ++static struct vzioctlinfo venetcalls = { ++ .type = VENETCTLTYPE, ++ .ioctl = venet_ioctl, ++#ifdef CONFIG_COMPAT ++ .compat_ioctl = compat_venet_ioctl, ++#endif ++ .owner = THIS_MODULE, ++}; ++ ++int venet_dev_start(struct ve_struct *ve) ++{ ++ struct net_device *dev_venet; ++ int err; ++ ++ dev_venet = alloc_netdev(0, "venet%d", venet_setup); ++ if (!dev_venet) ++ return -ENOMEM; ++ dev_venet->nd_net = ve->ve_ns->net_ns; ++ err = dev_alloc_name(dev_venet, dev_venet->name); ++ if (err<0) ++ goto err; ++ if ((err = register_netdev(dev_venet)) != 0) ++ goto err; ++ ve->_venet_dev = dev_venet; ++ return 0; ++err: ++ free_netdev(dev_venet); ++ printk(KERN_ERR "VENET initialization error err=%d\n", err); ++ return err; ++} ++ ++static int venet_start(void *data) ++{ ++ struct ve_struct *env; ++ int err; ++ ++ env = (struct ve_struct *)data; ++ if (env->veip) ++ return -EEXIST; ++ ++ err = veip_start(env); ++ if (err != 0) ++ return err; ++ ++ err = venet_dev_start(env); ++ if (err) ++ goto err_free; ++ return 0; ++ ++err_free: ++ veip_stop(env); ++ return err; ++} ++ ++static void venet_stop(void *data) ++{ ++ struct ve_struct *env; ++ struct net_device *dev; ++ ++ env = (struct ve_struct *)data; ++ veip_stop(env); ++ ++ dev = env->_venet_dev; ++ if (dev == NULL) ++ return; ++ ++ unregister_netdev(dev); ++ env->_venet_dev = NULL; ++ free_netdev(dev); ++} ++ ++static struct ve_hook venet_ve_hook = { ++ .init = venet_start, ++ .fini = venet_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_NET, ++}; ++ ++__init int venet_init(void) ++{ ++#ifdef CONFIG_PROC_FS ++ struct proc_dir_entry *de; ++#endif ++ int i, err; ++ ++ if (get_ve0()->_venet_dev != NULL) ++ return -EEXIST; ++ ++ for (i = 0; i < VEIP_HASH_SZ; i++) ++ INIT_LIST_HEAD(ip_entry_hash_table + i); ++ ++ err = venet_start(get_ve0()); ++ if (err) ++ return err; ++ ++#ifdef CONFIG_PROC_FS ++ de = create_proc_glob_entry_mod("vz/veinfo", ++ S_IFREG|S_IRUSR, NULL, THIS_MODULE); ++ if (de) ++ de->proc_fops = &proc_veinfo_operations; ++ else ++ printk(KERN_WARNING "venet: can't make veinfo proc entry\n"); ++ ++ de = create_proc_entry_mod("vz/veip", ++ S_IFREG|S_IRUSR, NULL, THIS_MODULE); ++ if (de) ++ de->proc_fops = &proc_veip_operations; ++ else ++ printk(KERN_WARNING "venet: can't make veip proc entry\n"); ++#endif ++ ++ ve_hook_register(VE_SS_CHAIN, &venet_ve_hook); ++ vzioctl_register(&venetcalls); ++ return 0; ++} ++ ++__exit void venet_exit(void) ++{ ++ vzioctl_unregister(&venetcalls); ++ ve_hook_unregister(&venet_ve_hook); ++ ++#ifdef CONFIG_PROC_FS ++ remove_proc_entry("vz/veip", NULL); ++ remove_proc_entry("vz/veinfo", NULL); ++#endif ++ venet_stop(get_ve0()); ++ veip_cleanup(); ++} ++ ++module_init(venet_init); ++module_exit(venet_exit); +Index: kernel/drivers/net/vzethdev.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/drivers/net/vzethdev.c 2008-11-24 15:47:45.000000000 +0100 +@@ -0,0 +1,729 @@ ++/* ++ * veth.c ++ * ++ * Copyright (C) 2006 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++/* ++ * Virtual ethernet device used to change VE ownership on packets ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include /* For the statistics structure. */ ++#include /* For ARPHRD_ETHER */ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++struct veth_struct ++{ ++ struct net_device_stats stats; ++ struct net_device *pair; ++ struct list_head hwaddr_list; ++ struct net_device_stats *real_stats; ++ int allow_mac_change; ++}; ++ ++static LIST_HEAD(veth_hwaddr_list); ++static DEFINE_RWLOCK(ve_hwaddr_lock); ++static DECLARE_MUTEX(hwaddr_sem); ++ ++#define veth_from_netdev(dev) \ ++ ((struct veth_struct *)(netdev_priv(dev))) ++static inline struct net_device * veth_to_netdev(struct veth_struct *veth) ++{ ++ return (struct net_device *)((char *)veth - ((sizeof(struct net_device) + NETDEV_ALIGN_CONST) & ~NETDEV_ALIGN_CONST)); ++} ++ ++static inline struct net_device_stats * ++veth_stats(struct net_device *dev, int cpuid) ++{ ++ return per_cpu_ptr(veth_from_netdev(dev)->real_stats, cpuid); ++} ++ ++struct net_device * veth_dev_start(char *dev_addr, char *name); ++ ++struct veth_struct *hwaddr_entry_lookup(char *name) ++{ ++ struct veth_struct *entry; ++ ++ list_for_each_entry(entry, &veth_hwaddr_list, hwaddr_list) { ++ BUG_ON(entry->pair == NULL); ++ if (strncmp(name, entry->pair->name, IFNAMSIZ) == 0) ++ return entry; ++ } ++ return NULL; ++} ++ ++int veth_entry_add(struct ve_struct *ve, char *dev_addr, char *name, ++ char *dev_addr_ve, char *name_ve) ++{ ++ struct net_device *dev_ve; ++ struct net_device *dev_ve0; ++ struct ve_struct *old_env; ++ char dev_name[IFNAMSIZ]; ++ int err; ++ ++ down(&hwaddr_sem); ++ ++ if (name[0] == '\0') ++ snprintf(dev_name, sizeof(dev_name), "vz%d.%%d", ve->veid); ++ else { ++ memcpy(dev_name, name, IFNAMSIZ - 1); ++ dev_name[IFNAMSIZ - 1] = '\0'; ++ } ++ dev_ve0 = veth_dev_start(dev_addr, dev_name); ++ if (IS_ERR(dev_ve0)) { ++ err = PTR_ERR(dev_ve0); ++ goto err; ++ } ++ ++ old_env = set_exec_env(ve); ++ if (name_ve[0] == '\0') ++ sprintf(dev_name, "eth%%d"); ++ else { ++ memcpy(dev_name, name_ve, IFNAMSIZ - 1); ++ dev_name[IFNAMSIZ - 1] = '\0'; ++ } ++ dev_ve = veth_dev_start(dev_addr_ve, dev_name); ++ if (IS_ERR(dev_ve)) { ++ err = PTR_ERR(dev_ve); ++ goto err_ve; ++ } ++ set_exec_env(old_env); ++ veth_from_netdev(dev_ve)->pair = dev_ve0; ++ veth_from_netdev(dev_ve0)->pair = dev_ve; ++ ++ write_lock(&ve_hwaddr_lock); ++ list_add(&(veth_from_netdev(dev_ve)->hwaddr_list), &veth_hwaddr_list); ++ write_unlock(&ve_hwaddr_lock); ++ ++ up(&hwaddr_sem); ++ return 0; ++ ++err_ve: ++ set_exec_env(old_env); ++ unregister_netdev(dev_ve0); ++err: ++ up(&hwaddr_sem); ++ return err; ++} ++ ++void veth_pair_del(struct ve_struct *env, struct veth_struct *entry) ++{ ++ struct net_device *dev; ++ struct ve_struct *old_env; ++ ++ write_lock(&ve_hwaddr_lock); ++ list_del(&entry->hwaddr_list); ++ write_unlock(&ve_hwaddr_lock); ++ ++ dev = entry->pair; ++ BUG_ON(entry->pair == NULL); ++ ++ veth_from_netdev(dev)->pair = NULL; ++ entry->pair = NULL; ++ rtnl_lock(); ++ old_env = set_exec_env(dev->owner_env); ++ dev_close(dev); ++ ++ /* ++ * Now device from VE0 does not send or receive anything, ++ * i.e. dev->hard_start_xmit won't be called. ++ */ ++ set_exec_env(env); ++ unregister_netdevice(veth_to_netdev(entry)); ++ set_exec_env(dev->owner_env); ++ unregister_netdevice(dev); ++ set_exec_env(old_env); ++ rtnl_unlock(); ++} ++ ++int veth_entry_del(struct ve_struct *ve, char *name) ++{ ++ struct veth_struct *found; ++ int err; ++ ++ err = -ENODEV; ++ down(&hwaddr_sem); ++ found = hwaddr_entry_lookup(name); ++ if (found == NULL) ++ goto out; ++ if (veth_to_netdev(found)->owner_env != ve) ++ goto out; ++ ++ err = 0; ++ veth_pair_del(ve, found); ++ ++out: ++ up(&hwaddr_sem); ++ return err; ++} ++ ++int veth_allow_change_mac(envid_t veid, char *name, int allow) ++{ ++ struct ve_struct *ve; ++ struct veth_struct *found; ++ int err; ++ ++ err = -ESRCH; ++ ve = get_ve_by_id(veid); ++ if (!ve) ++ return err; ++ ++ down_read(&ve->op_sem); ++ if (!ve->is_running) ++ goto out_ve; ++ err = -ENODEV; ++ down(&hwaddr_sem); ++ found = hwaddr_entry_lookup(name); ++ if (found == NULL) ++ goto out_sem; ++ if (veth_to_netdev(found)->owner_env != ve) ++ goto out_sem; ++ ++ err = 0; ++ found->allow_mac_change = allow; ++ ++out_sem: ++ up(&hwaddr_sem); ++out_ve: ++ up_read(&ve->op_sem); ++ put_ve(ve); ++ return err; ++} ++ ++/* ++ * Device functions ++ */ ++ ++static int veth_open(struct net_device *dev) ++{ ++ return 0; ++} ++ ++static int veth_close(struct net_device *master) ++{ ++ return 0; ++} ++ ++static void veth_destructor(struct net_device *dev) ++{ ++ free_percpu(veth_from_netdev(dev)->real_stats); ++ free_netdev(dev); ++} ++ ++static struct net_device_stats *get_stats(struct net_device *dev) ++{ ++ int i; ++ struct net_device_stats *stats; ++ ++ stats = &veth_from_netdev(dev)->stats; ++ memset(stats, 0, sizeof(struct net_device_stats)); ++ for (i = 0; i < NR_CPUS; i++) { ++ struct net_device_stats *dev_stats; ++ ++ if (!cpu_possible(i)) ++ continue; ++ dev_stats = veth_stats(dev, i); ++ stats->rx_bytes += dev_stats->rx_bytes; ++ stats->tx_bytes += dev_stats->tx_bytes; ++ stats->rx_packets += dev_stats->rx_packets; ++ stats->tx_packets += dev_stats->tx_packets; ++ } ++ ++ return stats; ++} ++ ++/* ++ * The higher levels take care of making this non-reentrant (it's ++ * called with bh's disabled). ++ */ ++static int veth_xmit(struct sk_buff *skb, struct net_device *dev) ++{ ++ struct net_device_stats *stats; ++ struct net_device *rcv = NULL; ++ struct veth_struct *entry; ++ int length; ++ ++ stats = veth_stats(dev, smp_processor_id()); ++ if (unlikely(get_exec_env()->disable_net)) ++ goto outf; ++ ++ entry = veth_from_netdev(dev); ++ rcv = entry->pair; ++ if (!rcv) ++ /* VE going down */ ++ goto outf; ++ ++ if (!(rcv->flags & IFF_UP)) { ++ /* Target VE does not want to receive packets */ ++ goto outf; ++ } ++ ++ if (unlikely(rcv->owner_env->disable_net)) ++ goto outf; ++ /* Filtering */ ++ if (ve_is_super(dev->owner_env) && ++ !veth_from_netdev(rcv)->allow_mac_change) { ++ /* from VE0 to VEX */ ++ if (ve_is_super(rcv->owner_env)) ++ goto out; ++ if (is_multicast_ether_addr( ++ ((struct ethhdr *)skb->data)->h_dest)) ++ goto out; ++ if (compare_ether_addr(((struct ethhdr *)skb->data)->h_dest, ++ rcv->dev_addr)) ++ goto outf; ++ } else if (!ve_is_super(dev->owner_env) && ++ !entry->allow_mac_change) { ++ /* from VE to VE0 */ ++ if (compare_ether_addr(((struct ethhdr *)skb->data)->h_source, ++ dev->dev_addr)) ++ goto outf; ++ } ++ ++out: ++ skb->owner_env = rcv->owner_env; ++ ++ skb->dev = rcv; ++ skb->pkt_type = PACKET_HOST; ++ skb->protocol = eth_type_trans(skb, rcv); ++ ++ if (skb->protocol != __constant_htons(ETH_P_IP)) ++ skb_orphan(skb); ++ ++ dst_release(skb->dst); ++ skb->dst = NULL; ++#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) ++ nf_conntrack_put(skb->nfct); ++ skb->nfct = NULL; ++#endif ++ length = skb->len; ++ ++ netif_rx(skb); ++ ++ stats->tx_bytes += length; ++ stats->tx_packets++; ++ if (rcv) { ++ struct net_device_stats *rcv_stats; ++ rcv_stats = veth_stats(rcv, smp_processor_id()); ++ rcv_stats->rx_bytes += length; ++ rcv_stats->rx_packets++; ++ } ++ ++ return 0; ++ ++outf: ++ kfree_skb(skb); ++ stats->tx_dropped++; ++ return 0; ++} ++ ++static int veth_set_mac(struct net_device *dev, void *p) ++{ ++ struct sockaddr *addr = p; ++ ++ if (!ve_is_super(dev->owner_env) && ++ !veth_from_netdev(dev)->allow_mac_change) ++ return -EPERM; ++ if (netif_running(dev)) ++ return -EBUSY; ++ if (!is_valid_ether_addr(addr->sa_data)) ++ return -EADDRNOTAVAIL; ++ ++ memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); ++ ++ return 0; ++} ++ ++int veth_init_dev(struct net_device *dev) ++{ ++ dev->hard_start_xmit = veth_xmit; ++ dev->get_stats = get_stats; ++ dev->open = veth_open; ++ dev->stop = veth_close; ++ dev->destructor = veth_destructor; ++ ++ ether_setup(dev); ++ dev->set_mac_address = veth_set_mac; ++ ++ /* remove setted by ether_setup() handler */ ++ dev->change_mtu = NULL; ++ ++ dev->tx_queue_len = 0; ++ ++ veth_from_netdev(dev)->real_stats = ++ alloc_percpu(struct net_device_stats); ++ if (veth_from_netdev(dev)->real_stats == NULL) ++ return -ENOMEM; ++ ++ return 0; ++} ++ ++static int ++veth_set_op(struct net_device *dev, u32 data, ++ int (*fop)(struct net_device *, u32)) ++{ ++ struct net_device *pair; ++ int ret = 0; ++ ++ ret = fop(dev, data); ++ if (ret < 0) ++ goto out; ++ ++ pair = veth_from_netdev(dev)->pair; ++ if (pair) ++ ret = fop(pair, data); ++out: ++ return ret; ++} ++ ++static int veth_op_set_sg(struct net_device *dev, u32 data) ++{ ++ return veth_set_op(dev, data, ethtool_op_set_sg); ++} ++ ++static int veth_op_set_tx_csum(struct net_device *dev, u32 data) ++{ ++ return veth_set_op(dev, data, ethtool_op_set_tx_csum); ++} ++ ++#define veth_op_set_rx_csum veth_op_set_tx_csum ++ ++static struct ethtool_ops veth_ethtool_ops = { ++ .get_sg = ethtool_op_get_sg, ++ .set_sg = veth_op_set_sg, ++ .get_tx_csum = ethtool_op_get_tx_csum, ++ .set_tx_csum = veth_op_set_tx_csum, ++ .get_rx_csum = ethtool_op_get_tx_csum, ++ .set_rx_csum = veth_op_set_rx_csum, ++ .get_tso = ethtool_op_get_tso, ++}; ++ ++static void veth_setup(struct net_device *dev) ++{ ++ dev->init = veth_init_dev; ++ /* ++ * No other features, as they are: ++ * - checksumming is required, and nobody else will done our job ++ */ ++ dev->features |= NETIF_F_VENET | NETIF_F_VIRTUAL | NETIF_F_LLTX | ++ NETIF_F_HIGHDMA; ++ ++ SET_ETHTOOL_OPS(dev, &veth_ethtool_ops); ++} ++ ++#ifdef CONFIG_PROC_FS ++#define ADDR_FMT "%02x:%02x:%02x:%02x:%02x:%02x" ++#define ADDR_ARG(x) (x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5] ++static int vehwaddr_seq_show(struct seq_file *m, void *v) ++{ ++ struct list_head *p; ++ struct veth_struct *entry; ++ ++ p = (struct list_head *)v; ++ if (p == &veth_hwaddr_list) { ++ seq_puts(m, "Version: 1.0\n"); ++ return 0; ++ } ++ entry = list_entry(p, struct veth_struct, hwaddr_list); ++ seq_printf(m, ADDR_FMT " %16s ", ++ ADDR_ARG(entry->pair->dev_addr), entry->pair->name); ++ seq_printf(m, ADDR_FMT " %16s %10u %5s\n", ++ ADDR_ARG(veth_to_netdev(entry)->dev_addr), ++ veth_to_netdev(entry)->name, ++ VEID(veth_to_netdev(entry)->owner_env), ++ entry->allow_mac_change ? "allow" : "deny"); ++ return 0; ++} ++ ++static void *vehwaddr_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ loff_t l; ++ struct list_head *p; ++ ++ l = *pos; ++ read_lock(&ve_hwaddr_lock); ++ if (l == 0) ++ return &veth_hwaddr_list; ++ list_for_each(p, &veth_hwaddr_list) { ++ if (--l == 0) ++ return p; ++ } ++ return NULL; ++} ++ ++static void *vehwaddr_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ struct list_head *p; ++ ++ p = (struct list_head *)v; ++ (*pos)++; ++ return p->next == &veth_hwaddr_list ? NULL : p->next; ++} ++ ++static void vehwaddr_seq_stop(struct seq_file *m, void *v) ++{ ++ read_unlock(&ve_hwaddr_lock); ++} ++ ++static struct seq_operations vehwaddr_seq_op = { ++ .start = vehwaddr_seq_start, ++ .next = vehwaddr_seq_next, ++ .stop = vehwaddr_seq_stop, ++ .show = vehwaddr_seq_show, ++}; ++ ++static int vehwaddr_open(struct inode *inode, struct file *file) ++{ ++ return seq_open(file, &vehwaddr_seq_op); ++} ++ ++static struct file_operations proc_vehwaddr_operations = { ++ .open = vehwaddr_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++#endif ++ ++int real_ve_hwaddr(envid_t veid, int op, ++ unsigned char *dev_addr, int addrlen, char *name, ++ unsigned char *dev_addr_ve, int addrlen_ve, char *name_ve) ++{ ++ int err; ++ struct ve_struct *ve; ++ char ve_addr[ETH_ALEN]; ++ ++ err = -EPERM; ++ if (!capable(CAP_NET_ADMIN)) ++ goto out; ++ ++ err = -EINVAL; ++ switch (op) { ++ case VE_ETH_ADD: ++ if (addrlen != ETH_ALEN) ++ goto out; ++ if (addrlen_ve != ETH_ALEN && addrlen_ve != 0) ++ goto out; ++ /* If ve addr is not set then we use dev_addr[3] & 0x80 for it */ ++ if (addrlen_ve == 0 && (dev_addr[3] & 0x80)) ++ goto out; ++ if (addrlen_ve == 0) { ++ memcpy(ve_addr, dev_addr, ETH_ALEN); ++ ve_addr[3] |= 0x80; ++ } else { ++ memcpy(ve_addr, dev_addr_ve, ETH_ALEN); ++ } ++ ++ ve = get_ve_by_id(veid); ++ err = -ESRCH; ++ if (!ve) ++ goto out; ++ ++ down_read(&ve->op_sem); ++ if (ve->is_running) ++ err = veth_entry_add(ve, dev_addr, name, ve_addr, name_ve); ++ up_read(&ve->op_sem); ++ put_ve(ve); ++ break; ++ ++ case VE_ETH_DEL: ++ if (name[0] == '\0') ++ goto out; ++ ve = get_ve_by_id(veid); ++ err = -ESRCH; ++ if (!ve) ++ goto out; ++ ++ down_read(&ve->op_sem); ++ if (ve->is_running) ++ err = veth_entry_del(ve, name); ++ up_read(&ve->op_sem); ++ put_ve(ve); ++ break; ++ case VE_ETH_ALLOW_MAC_CHANGE: ++ case VE_ETH_DENY_MAC_CHANGE: ++ err = veth_allow_change_mac(veid, name, ++ op == VE_ETH_ALLOW_MAC_CHANGE); ++ break; ++ } ++ ++out: ++ return err; ++} ++ ++int veth_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ int err; ++ ++ err = -ENOTTY; ++ switch(cmd) { ++ case VETHCTL_VE_HWADDR: { ++ struct vzctl_ve_hwaddr s; ++ ++ err = -EFAULT; ++ if (copy_from_user(&s, (void __user *)arg, sizeof(s))) ++ break; ++ err = real_ve_hwaddr(s.veid, s.op, s.dev_addr, s.addrlen, ++ s.dev_name, s.dev_addr_ve, s.addrlen_ve, ++ s.dev_name_ve); ++ } ++ break; ++ } ++ return err; ++} ++ ++static struct vzioctlinfo vethcalls = { ++ .type = VETHCTLTYPE, ++ .ioctl = veth_ioctl, ++ .compat_ioctl = veth_ioctl, ++ .owner = THIS_MODULE, ++}; ++ ++struct net_device * veth_dev_start(char *dev_addr, char *name) ++{ ++ struct net_device *dev; ++ int err; ++ ++ if (!is_valid_ether_addr(dev_addr)) ++ return ERR_PTR(-EADDRNOTAVAIL); ++ ++ dev = alloc_netdev(sizeof(struct veth_struct), name, veth_setup); ++ if (!dev) ++ return ERR_PTR(-ENOMEM); ++ dev->nd_net = get_exec_env()->ve_ns->net_ns; ++ if (strchr(dev->name, '%')) { ++ err = dev_alloc_name(dev, dev->name); ++ if (err < 0) ++ goto err; ++ } ++ if ((err = register_netdev(dev)) != 0) ++ goto err; ++ ++ memcpy(dev->dev_addr, dev_addr, ETH_ALEN); ++ dev->addr_len = ETH_ALEN; ++ ++ return dev; ++err: ++ free_netdev(dev); ++ printk(KERN_ERR "%s initialization error err=%d\n", name, err); ++ return ERR_PTR(err); ++} ++ ++static int veth_start(void *data) ++{ ++ return 0; ++} ++ ++static void veth_stop(void *data) ++{ ++ struct ve_struct *env; ++ struct veth_struct *entry, *tmp; ++ ++ env = (struct ve_struct *)data; ++ down(&hwaddr_sem); ++ list_for_each_entry_safe(entry, tmp, &veth_hwaddr_list, hwaddr_list) ++ if (VEID(env) == VEID(veth_to_netdev(entry)->owner_env)) ++ veth_pair_del(env, entry); ++ up(&hwaddr_sem); ++} ++ ++static struct ve_hook veth_ve_hook = { ++ .init = veth_start, ++ .fini = veth_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_NET, ++}; ++ ++__init int veth_init(void) ++{ ++#ifdef CONFIG_PROC_FS ++ struct proc_dir_entry *de; ++ ++ de = create_proc_entry_mod("vz/veth", ++ S_IFREG|S_IRUSR, NULL, THIS_MODULE); ++ if (de) ++ de->proc_fops = &proc_vehwaddr_operations; ++ else ++ printk(KERN_WARNING "veth: can't make vehwaddr proc entry\n"); ++#endif ++ ++ ve_hook_register(VE_SS_CHAIN, &veth_ve_hook); ++ vzioctl_register(&vethcalls); ++ KSYMRESOLVE(veth_open); ++ KSYMMODRESOLVE(vzethdev); ++ return 0; ++} ++ ++__exit void veth_exit(void) ++{ ++ struct veth_struct *entry; ++ struct list_head *tmp, *n; ++ struct ve_struct *ve; ++ ++ KSYMMODUNRESOLVE(vzethdev); ++ KSYMUNRESOLVE(veth_open); ++ vzioctl_unregister(&vethcalls); ++ ve_hook_unregister(&veth_ve_hook); ++#ifdef CONFIG_PROC_FS ++ remove_proc_entry("vz/veth", NULL); ++#endif ++ ++ down(&hwaddr_sem); ++ list_for_each_safe(tmp, n, &veth_hwaddr_list) { ++ entry = list_entry(tmp, struct veth_struct, hwaddr_list); ++ ve = get_ve(veth_to_netdev(entry)->owner_env); ++ ++ veth_pair_del(ve, entry); ++ ++ put_ve(ve); ++ } ++ up(&hwaddr_sem); ++} ++ ++module_init(veth_init); ++module_exit(veth_exit); ++ ++MODULE_AUTHOR("Andrey Mirkin "); ++MODULE_DESCRIPTION("Virtuozzo Virtual Ethernet Device"); ++MODULE_LICENSE("GPL v2"); ++ +Index: kernel/drivers/pci/probe.c +=================================================================== +--- kernel.orig/drivers/pci/probe.c 2008-11-18 01:19:44.000000000 +0100 ++++ kernel/drivers/pci/probe.c 2008-11-24 15:47:45.000000000 +0100 +@@ -21,6 +21,7 @@ + EXPORT_SYMBOL(pci_root_buses); + + LIST_HEAD(pci_devices); ++EXPORT_SYMBOL(pci_devices); + + /* + * Some device drivers need know if pci is initiated. +Index: kernel/drivers/sbus/char/bbc_envctrl.c +=================================================================== +--- kernel.orig/drivers/sbus/char/bbc_envctrl.c 2008-11-18 01:19:44.000000000 +0100 ++++ kernel/drivers/sbus/char/bbc_envctrl.c 2008-11-24 15:47:45.000000000 +0100 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include "bbc_i2c.h" + #include "max1617.h" +Index: kernel/drivers/sbus/char/envctrl.c +=================================================================== +--- kernel.orig/drivers/sbus/char/envctrl.c 2008-11-18 01:19:44.000000000 +0100 ++++ kernel/drivers/sbus/char/envctrl.c 2008-11-24 15:47:45.000000000 +0100 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #define ENVCTRL_MINOR 162 + +Index: kernel/fs/Kconfig +=================================================================== +--- kernel.orig/fs/Kconfig 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/Kconfig 2008-11-24 15:47:45.000000000 +0100 +@@ -562,6 +562,15 @@ + Note that this behavior is currently deprecated and may go away in + future. Please use notification via netlink socket instead. + ++config QUOTA_COMPAT ++ bool "Compatibility with older quotactl interface" ++ depends on QUOTA ++ help ++ This option enables compatibility layer for older version ++ of quotactl interface with byte granularity (QUOTAON at 0x0100, ++ GETQUOTA at 0x0D00). Interface versions older than that one and ++ with block granularity are still not supported. ++ + config QFMT_V1 + tristate "Old quota format support" + depends on QUOTA +@@ -577,6 +586,39 @@ + This quota format allows using quotas with 32-bit UIDs/GIDs. If you + need this functionality say Y here. + ++config SIM_FS ++ tristate "VPS filesystem" ++ depends on VZ_QUOTA ++ default m ++ help ++ This file system is a part of Virtuozzo. It intoduces a fake ++ superblock and blockdev to VE to hide real device and show ++ statfs results taken from quota. ++ ++config VZ_QUOTA ++ tristate "Virtuozzo Disk Quota support" ++ depends on QUOTA ++ select VZ_DEV ++ default m ++ help ++ Virtuozzo Disk Quota imposes disk quota on directories with their ++ files and subdirectories in total. Such disk quota is used to ++ account and limit disk usage by Virtuozzo VPS, but also may be used ++ separately. ++ ++config VZ_QUOTA_UNLOAD ++ bool "Unloadable Virtuozzo Disk Quota module" ++ depends on VZ_QUOTA=m ++ default n ++ help ++ Make Virtuozzo Disk Quota module unloadable. ++ Doesn't work reliably now. ++ ++config VZ_QUOTA_UGID ++ bool "Per-user and per-group quota in Virtuozzo quota partitions" ++ depends on VZ_QUOTA!=n ++ default y ++ + config QUOTACTL + bool + depends on XFS_QUOTA || QUOTA +Index: kernel/fs/Makefile +=================================================================== +--- kernel.orig/fs/Makefile 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/Makefile 2008-11-24 15:47:45.000000000 +0100 +@@ -52,9 +52,15 @@ + obj-$(CONFIG_QFMT_V1) += quota_v1.o + obj-$(CONFIG_QFMT_V2) += quota_v2.o + obj-$(CONFIG_QUOTACTL) += quota.o ++obj-$(CONFIG_VZ_QUOTA) += vzdquota.o ++vzdquota-y += vzdquot.o vzdq_mgmt.o vzdq_ops.o vzdq_tree.o ++vzdquota-$(CONFIG_VZ_QUOTA_UGID) += vzdq_ugid.o ++vzdquota-$(CONFIG_VZ_QUOTA_UGID) += vzdq_file.o + + obj-$(CONFIG_DNOTIFY) += dnotify.o + ++obj-$(CONFIG_SIM_FS) += simfs.o ++ + obj-$(CONFIG_PROC_FS) += proc/ + obj-y += partitions/ + obj-$(CONFIG_SYSFS) += sysfs/ +Index: kernel/fs/aio.c +=================================================================== +--- kernel.orig/fs/aio.c 2008-11-24 14:14:52.000000000 +0100 ++++ kernel/fs/aio.c 2008-11-24 15:47:45.000000000 +0100 +@@ -43,13 +43,16 @@ + #endif + + /*------ sysctl variables----*/ +-static DEFINE_SPINLOCK(aio_nr_lock); ++DEFINE_SPINLOCK(aio_nr_lock); ++EXPORT_SYMBOL_GPL(aio_nr_lock); + unsigned long aio_nr; /* current system wide number of aio requests */ ++EXPORT_SYMBOL_GPL(aio_nr); + unsigned long aio_max_nr = 0x10000; /* system wide maximum number of aio requests */ + /*----end sysctl variables---*/ + + static struct kmem_cache *kiocb_cachep; +-static struct kmem_cache *kioctx_cachep; ++struct kmem_cache *kioctx_cachep; ++EXPORT_SYMBOL_GPL(kioctx_cachep); + + static struct workqueue_struct *aio_wq; + +@@ -60,7 +63,7 @@ + static DEFINE_SPINLOCK(fput_lock); + static LIST_HEAD(fput_head); + +-static void aio_kick_handler(struct work_struct *); ++void aio_kick_handler(struct work_struct *); + static void aio_queue_work(struct kioctx *); + + /* aio_setup +@@ -290,7 +293,7 @@ + spin_unlock_irq(&ctx->ctx_lock); + } + +-static void wait_for_all_aios(struct kioctx *ctx) ++void wait_for_all_aios(struct kioctx *ctx) + { + struct task_struct *tsk = current; + DECLARE_WAITQUEUE(wait, tsk); +@@ -313,6 +316,7 @@ + out: + spin_unlock_irq(&ctx->ctx_lock); + } ++EXPORT_SYMBOL_GPL(wait_for_all_aios); + + /* wait_on_sync_kiocb: + * Waits on the given sync kiocb to complete. +@@ -835,7 +839,7 @@ + * space. + * Run on aiod's context. + */ +-static void aio_kick_handler(struct work_struct *work) ++void aio_kick_handler(struct work_struct *work) + { + struct kioctx *ctx = container_of(work, struct kioctx, wq.work); + mm_segment_t oldfs = get_fs(); +@@ -856,7 +860,7 @@ + if (requeue) + queue_delayed_work(aio_wq, &ctx->wq, 0); + } +- ++EXPORT_SYMBOL_GPL(aio_kick_handler); + + /* + * Called by kick_iocb to queue the kiocb for retry +Index: kernel/fs/autofs/init.c +=================================================================== +--- kernel.orig/fs/autofs/init.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/autofs/init.c 2008-11-24 15:47:45.000000000 +0100 +@@ -25,6 +25,7 @@ + .name = "autofs", + .get_sb = autofs_get_sb, + .kill_sb = autofs_kill_sb, ++ .fs_flags = FS_VIRTUALIZED, + }; + + static int __init init_autofs_fs(void) +Index: kernel/fs/autofs/root.c +=================================================================== +--- kernel.orig/fs/autofs/root.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/autofs/root.c 2008-11-24 15:47:45.000000000 +0100 +@@ -356,7 +356,7 @@ + + /* This allows root to remove symlinks */ + lock_kernel(); +- if (!autofs_oz_mode(sbi) && !capable(CAP_SYS_ADMIN)) { ++ if (!autofs_oz_mode(sbi) && !capable(CAP_SYS_ADMIN) && !capable(CAP_VE_SYS_ADMIN)) { + unlock_kernel(); + return -EACCES; + } +@@ -542,7 +542,7 @@ + _IOC_NR(cmd) - _IOC_NR(AUTOFS_IOC_FIRST) >= AUTOFS_IOC_COUNT) + return -ENOTTY; + +- if (!autofs_oz_mode(sbi) && !capable(CAP_SYS_ADMIN)) ++ if (!autofs_oz_mode(sbi) && !capable(CAP_SYS_ADMIN) && !capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + + switch(cmd) { +Index: kernel/fs/autofs4/autofs_i.h +=================================================================== +--- kernel.orig/fs/autofs4/autofs_i.h 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/autofs4/autofs_i.h 2008-11-24 15:47:45.000000000 +0100 +@@ -94,6 +94,10 @@ + #define AUTOFS_TYPE_DIRECT 0x0002 + #define AUTOFS_TYPE_OFFSET 0x0004 + ++/* flags for userspace automount daemon */ ++#define AUTOFS_DEAMON_32BIT 0 /* automount is a 32bit process */ ++#define _AUTOFS_DEAMON_32BIT (1 << AUTOFS_DEAMON_32BIT) ++ + struct autofs_sb_info { + u32 magic; + int pipefd; +@@ -114,6 +118,7 @@ + struct autofs_wait_queue *queues; /* Wait queue pointer */ + spinlock_t rehash_lock; + struct list_head rehash_list; ++ u32 flags; /* flags for userspace automount daemon */ + }; + + static inline struct autofs_sb_info *autofs4_sbi(struct super_block *sb) +Index: kernel/fs/autofs4/init.c +=================================================================== +--- kernel.orig/fs/autofs4/init.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/autofs4/init.c 2008-11-24 15:47:45.000000000 +0100 +@@ -25,6 +25,7 @@ + .name = "autofs", + .get_sb = autofs_get_sb, + .kill_sb = autofs4_kill_sb, ++ .fs_flags = FS_VIRTUALIZED, + }; + + static int __init init_autofs4_fs(void) +Index: kernel/fs/autofs4/inode.c +=================================================================== +--- kernel.orig/fs/autofs4/inode.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/autofs4/inode.c 2008-11-24 15:47:45.000000000 +0100 +@@ -311,6 +311,7 @@ + int pipefd; + struct autofs_sb_info *sbi; + struct autofs_info *ino; ++ struct task_struct *tsk = current; + + sbi = kzalloc(sizeof(*sbi), GFP_KERNEL); + if (!sbi) +@@ -330,6 +331,12 @@ + sbi->type = 0; + sbi->min_proto = 0; + sbi->max_proto = 0; ++#ifdef __x86_64__ ++ if (task_thread_info(tsk)->flags & _TIF_IA32) { ++ /* mark that automount daemon is 32 bit */ ++ sbi->flags |= _AUTOFS_DEAMON_32BIT; ++ } ++#endif + mutex_init(&sbi->wq_mutex); + spin_lock_init(&sbi->fs_lock); + sbi->queues = NULL; +Index: kernel/fs/autofs4/root.c +=================================================================== +--- kernel.orig/fs/autofs4/root.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/autofs4/root.c 2008-11-24 15:47:45.000000000 +0100 +@@ -762,7 +762,7 @@ + struct autofs_info *p_ino; + + /* This allows root to remove symlinks */ +- if (!autofs4_oz_mode(sbi) && !capable(CAP_SYS_ADMIN)) ++ if (!autofs4_oz_mode(sbi) && !capable(CAP_SYS_ADMIN) && !capable(CAP_VE_SYS_ADMIN)) + return -EACCES; + + if (atomic_dec_and_test(&ino->count)) { +@@ -982,7 +982,7 @@ + _IOC_NR(cmd) - _IOC_NR(AUTOFS_IOC_FIRST) >= AUTOFS_IOC_COUNT) + return -ENOTTY; + +- if (!autofs4_oz_mode(sbi) && !capable(CAP_SYS_ADMIN)) ++ if (!autofs4_oz_mode(sbi) && !capable(CAP_SYS_ADMIN) && !capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + + switch(cmd) { +Index: kernel/fs/autofs4/waitq.c +=================================================================== +--- kernel.orig/fs/autofs4/waitq.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/autofs4/waitq.c 2008-11-24 15:47:45.000000000 +0100 +@@ -102,27 +102,50 @@ + /* Kernel protocol v4 missing and expire packets */ + case autofs_ptype_missing: + { +- struct autofs_packet_missing *mp = &pkt.v4_pkt.missing; ++ if (sbi->flags & _AUTOFS_DEAMON_32BIT) { ++ struct autofs_packet_missing_32bit *mp = &pkt.v4_pkt.missing_32bit; + +- pktsz = sizeof(*mp); ++ pktsz = sizeof(*mp); ++ mp->wait_queue_token = wq->wait_queue_token; ++ mp->len = wq->len; ++ memcpy(mp->name, wq->name, wq->len); ++ mp->name[wq->len] = '\0'; ++ break; ++ } else { ++ struct autofs_packet_missing *mp = &pkt.v4_pkt.missing; ++ ++ pktsz = sizeof(*mp); + +- mp->wait_queue_token = wq->wait_queue_token; +- mp->len = wq->len; +- memcpy(mp->name, wq->name, wq->len); +- mp->name[wq->len] = '\0'; +- break; ++ mp->wait_queue_token = wq->wait_queue_token; ++ mp->len = wq->len; ++ memcpy(mp->name, wq->name, wq->len); ++ mp->name[wq->len] = '\0'; ++ break; ++ } + } + case autofs_ptype_expire_multi: + { +- struct autofs_packet_expire_multi *ep = &pkt.v4_pkt.expire_multi; ++ if (sbi->flags & _AUTOFS_DEAMON_32BIT) { ++ struct autofs_packet_expire_multi_32bit *ep = &pkt.v4_pkt.expire_multi_32bit; ++ ++ pktsz = sizeof(*ep); ++ ++ ep->wait_queue_token = wq->wait_queue_token; ++ ep->len = wq->len; ++ memcpy(ep->name, wq->name, wq->len); ++ ep->name[wq->len] = '\0'; ++ break; ++ } else { ++ struct autofs_packet_expire_multi *ep = &pkt.v4_pkt.expire_multi; + +- pktsz = sizeof(*ep); ++ pktsz = sizeof(*ep); + +- ep->wait_queue_token = wq->wait_queue_token; +- ep->len = wq->len; +- memcpy(ep->name, wq->name, wq->len); +- ep->name[wq->len] = '\0'; +- break; ++ ep->wait_queue_token = wq->wait_queue_token; ++ ep->len = wq->len; ++ memcpy(ep->name, wq->name, wq->len); ++ ep->name[wq->len] = '\0'; ++ break; ++ } + } + /* + * Kernel protocol v5 packet for handling indirect and direct +@@ -133,21 +156,39 @@ + case autofs_ptype_missing_direct: + case autofs_ptype_expire_direct: + { +- struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet; ++ if (sbi->flags & _AUTOFS_DEAMON_32BIT) { ++ struct autofs_v5_packet_32bit *packet = &pkt.v5_pkt.v5_packet_32bit; ++ ++ pktsz = sizeof(*packet); ++ ++ packet->wait_queue_token = wq->wait_queue_token; ++ packet->len = wq->len; ++ memcpy(packet->name, wq->name, wq->len); ++ packet->name[wq->len] = '\0'; ++ packet->dev = wq->dev; ++ packet->ino = wq->ino; ++ packet->uid = wq->uid; ++ packet->gid = wq->gid; ++ packet->pid = wq->pid; ++ packet->tgid = wq->tgid; ++ break; ++ } else { ++ struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet; + +- pktsz = sizeof(*packet); ++ pktsz = sizeof(*packet); + +- packet->wait_queue_token = wq->wait_queue_token; +- packet->len = wq->len; +- memcpy(packet->name, wq->name, wq->len); +- packet->name[wq->len] = '\0'; +- packet->dev = wq->dev; +- packet->ino = wq->ino; +- packet->uid = wq->uid; +- packet->gid = wq->gid; +- packet->pid = wq->pid; +- packet->tgid = wq->tgid; +- break; ++ packet->wait_queue_token = wq->wait_queue_token; ++ packet->len = wq->len; ++ memcpy(packet->name, wq->name, wq->len); ++ packet->name[wq->len] = '\0'; ++ packet->dev = wq->dev; ++ packet->ino = wq->ino; ++ packet->uid = wq->uid; ++ packet->gid = wq->gid; ++ packet->pid = wq->pid; ++ packet->tgid = wq->tgid; ++ break; ++ } + } + default: + printk("autofs4_notify_daemon: bad type %d!\n", type); +Index: kernel/fs/binfmt_aout.c +=================================================================== +--- kernel.orig/fs/binfmt_aout.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/binfmt_aout.c 2008-11-24 15:47:45.000000000 +0100 +@@ -375,14 +375,14 @@ + if ((ex.a_text & 0xfff || ex.a_data & 0xfff) && + (N_MAGIC(ex) != NMAGIC) && (jiffies-error_time2) > 5*HZ) + { +- printk(KERN_NOTICE "executable not page aligned\n"); ++ ve_printk(VE_LOG, KERN_NOTICE "executable not page aligned\n"); + error_time2 = jiffies; + } + + if ((fd_offset & ~PAGE_MASK) != 0 && + (jiffies-error_time) > 5*HZ) + { +- printk(KERN_WARNING ++ ve_printk(VE_LOG, KERN_WARNING + "fd_offset is not page aligned. Please convert program: %s\n", + bprm->file->f_path.dentry->d_name.name); + error_time = jiffies; +@@ -499,7 +499,7 @@ + + if ((jiffies-error_time) > 5*HZ) + { +- printk(KERN_WARNING ++ ve_printk(VE_LOG, KERN_WARNING + "N_TXTOFF is not page aligned. Please convert library: %s\n", + file->f_path.dentry->d_name.name); + error_time = jiffies; +Index: kernel/fs/binfmt_elf.c +=================================================================== +--- kernel.orig/fs/binfmt_elf.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/binfmt_elf.c 2008-11-24 15:47:45.000000000 +0100 +@@ -417,7 +417,7 @@ + eppnt = elf_phdata; + for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { + if (eppnt->p_type == PT_LOAD) { +- int elf_type = MAP_PRIVATE | MAP_DENYWRITE; ++ int elf_type = MAP_PRIVATE|MAP_DENYWRITE|MAP_EXECPRIO; + int elf_prot = 0; + unsigned long vaddr = 0; + unsigned long k, map_addr; +@@ -918,7 +918,8 @@ + if (elf_ppnt->p_flags & PF_X) + elf_prot |= PROT_EXEC; + +- elf_flags = MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE; ++ elf_flags = MAP_PRIVATE | MAP_DENYWRITE | ++ MAP_EXECUTABLE | MAP_EXECPRIO; + + vaddr = elf_ppnt->p_vaddr; + if (loc->elf_ex.e_type == ET_EXEC || load_addr_set) { +@@ -1059,7 +1060,7 @@ + set_binfmt(&elf_format); + + #ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES +- retval = arch_setup_additional_pages(bprm, executable_stack); ++ retval = arch_setup_additional_pages(bprm, executable_stack, 0); + if (retval < 0) { + send_sig(SIGKILL, current, 0); + goto out; +@@ -1658,7 +1659,7 @@ + if (signr) { + struct elf_thread_status *tmp; + rcu_read_lock(); +- do_each_thread(g,p) ++ do_each_thread_ve(g,p) + if (current->mm == p->mm && current != p) { + tmp = kzalloc(sizeof(*tmp), GFP_ATOMIC); + if (!tmp) { +@@ -1668,7 +1669,7 @@ + tmp->thread = p; + list_add(&tmp->list, &thread_list); + } +- while_each_thread(g,p); ++ while_each_thread_ve(g,p); + rcu_read_unlock(); + list_for_each(t, &thread_list) { + struct elf_thread_status *tmp; +Index: kernel/fs/block_dev.c +=================================================================== +--- kernel.orig/fs/block_dev.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/block_dev.c 2008-11-24 15:47:45.000000000 +0100 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include "internal.h" + +@@ -1124,9 +1125,15 @@ + { + struct module *owner = NULL; + struct gendisk *disk; +- int ret = -ENXIO; ++ int ret; + int part; + ++ ret = get_device_perms_ve(S_IFBLK, bdev->bd_dev, ++ file->f_mode & (FMODE_READ | FMODE_WRITE)); ++ if (ret) ++ return ret; ++ ++ ret = -ENXIO; + file->f_mapping = bdev->bd_inode->i_mapping; + lock_kernel(); + disk = get_gendisk(bdev->bd_dev, &part); +@@ -1384,7 +1391,7 @@ + * namespace if possible and return it. Return ERR_PTR(error) + * otherwise. + */ +-struct block_device *lookup_bdev(const char *path) ++struct block_device *lookup_bdev(const char *path, int mode) + { + struct block_device *bdev; + struct inode *inode; +@@ -1402,6 +1409,11 @@ + error = -ENOTBLK; + if (!S_ISBLK(inode->i_mode)) + goto fail; ++ ++ error = get_device_perms_ve(S_IFBLK, inode->i_rdev, mode); ++ if (error) ++ goto fail; ++ + error = -EACCES; + if (nd.mnt->mnt_flags & MNT_NODEV) + goto fail; +@@ -1433,12 +1445,13 @@ + mode_t mode = FMODE_READ; + int error = 0; + +- bdev = lookup_bdev(path); ++ if (!(flags & MS_RDONLY)) ++ mode |= FMODE_WRITE; ++ ++ bdev = lookup_bdev(path, mode); + if (IS_ERR(bdev)) + return bdev; + +- if (!(flags & MS_RDONLY)) +- mode |= FMODE_WRITE; + error = blkdev_get(bdev, mode, 0); + if (error) + return ERR_PTR(error); +@@ -1486,7 +1499,7 @@ + * hold). + */ + shrink_dcache_sb(sb); +- res = invalidate_inodes(sb); ++ res = invalidate_inodes_check(sb, 1); + drop_super(sb); + } + invalidate_bdev(bdev); +Index: kernel/fs/buffer.c +=================================================================== +--- kernel.orig/fs/buffer.c 2008-11-24 14:17:48.000000000 +0100 ++++ kernel/fs/buffer.c 2008-11-24 15:47:46.000000000 +0100 +@@ -698,6 +698,8 @@ + static int __set_page_dirty(struct page *page, + struct address_space *mapping, int warn) + { ++ int acct = 0; ++ + if (unlikely(!mapping)) + return !TestSetPageDirty(page); + +@@ -712,12 +714,14 @@ + __inc_zone_page_state(page, NR_FILE_DIRTY); + __inc_bdi_stat(mapping->backing_dev_info, + BDI_RECLAIMABLE); +- task_io_account_write(PAGE_CACHE_SIZE); ++ acct = 1; + } + radix_tree_tag_set(&mapping->page_tree, + page_index(page), PAGECACHE_TAG_DIRTY); + } + write_unlock_irq(&mapping->tree_lock); ++ if (acct) ++ task_io_account_write(page, PAGE_CACHE_SIZE, 0); + __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); + + return 1; +Index: kernel/fs/char_dev.c +=================================================================== +--- kernel.orig/fs/char_dev.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/char_dev.c 2008-11-24 15:47:46.000000000 +0100 +@@ -22,6 +22,8 @@ + #include + #include + ++#include ++ + #ifdef CONFIG_KMOD + #include + #endif +@@ -363,6 +365,11 @@ + struct cdev *new = NULL; + int ret = 0; + ++ ret = get_device_perms_ve(S_IFCHR, inode->i_rdev, ++ filp->f_mode & (FMODE_READ | FMODE_WRITE)); ++ if (ret) ++ return ret; ++ + spin_lock(&cdev_lock); + p = inode->i_cdev; + if (!p) { +Index: kernel/fs/compat.c +=================================================================== +--- kernel.orig/fs/compat.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/compat.c 2008-11-24 15:47:46.000000000 +0100 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -50,6 +51,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -72,6 +74,18 @@ + + #include "read_write.h" + ++int ve_compat_printk(int dst, const char *fmt, ...) ++{ ++ va_list ap; ++ int ret; ++ if (!compat_log) ++ return 0; ++ va_start(ap, fmt); ++ ret = ve_vprintk(dst, fmt, ap); ++ va_end(ap); ++ return ret; ++} ++ + /* + * Not all architectures have sys_utime, so implement this in terms + * of sys_utimes. +@@ -243,6 +257,8 @@ + struct kstatfs tmp; + error = vfs_statfs(nd.dentry, &tmp); + if (!error) ++ error = faudit_statfs(nd.mnt->mnt_sb, &tmp); ++ if (!error) + error = put_compat_statfs(buf, &tmp); + path_release(&nd); + } +@@ -261,6 +277,8 @@ + goto out; + error = vfs_statfs(file->f_path.dentry, &tmp); + if (!error) ++ error = faudit_statfs(file->f_vfsmnt->mnt_sb, &tmp); ++ if (!error) + error = put_compat_statfs(buf, &tmp); + fput(file); + out: +@@ -311,6 +329,8 @@ + struct kstatfs tmp; + error = vfs_statfs(nd.dentry, &tmp); + if (!error) ++ error = faudit_statfs(nd.mnt->mnt_sb, &tmp); ++ if (!error) + error = put_compat_statfs64(buf, &tmp); + path_release(&nd); + } +@@ -332,6 +352,8 @@ + goto out; + error = vfs_statfs(file->f_path.dentry, &tmp); + if (!error) ++ error = faudit_statfs(file->f_vfsmnt->mnt_sb, &tmp); ++ if (!error) + error = put_compat_statfs64(buf, &tmp); + fput(file); + out: +@@ -1357,6 +1379,10 @@ + struct file *file; + int retval; + ++ retval = virtinfo_gencall(VIRTINFO_DOEXECVE, NULL); ++ if (retval) ++ return retval; ++ + retval = -ENOMEM; + bprm = kzalloc(sizeof(*bprm), GFP_KERNEL); + if (!bprm) +@@ -1406,6 +1432,11 @@ + if (retval < 0) + goto out; + ++ if (!gr_tpe_allow(file)) { ++ retval = -EACCES; ++ goto out; ++ } ++ + retval = search_binary_handler(bprm, regs); + if (retval >= 0) { + /* execve success */ +Index: kernel/fs/dcache.c +=================================================================== +--- kernel.orig/fs/dcache.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/dcache.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,13 +26,19 @@ + #include + #include + #include ++#include + #include + #include + #include + #include + #include ++#include ++#include ++#include + #include "internal.h" + ++#include ++#include + + int sysctl_vfs_cache_pressure __read_mostly = 100; + EXPORT_SYMBOL_GPL(sysctl_vfs_cache_pressure); +@@ -42,7 +48,7 @@ + + EXPORT_SYMBOL(dcache_lock); + +-static struct kmem_cache *dentry_cache __read_mostly; ++struct kmem_cache *dentry_cache __read_mostly; + + #define DNAME_INLINE_LEN (sizeof(struct dentry)-offsetof(struct dentry,d_iname)) + +@@ -135,6 +141,7 @@ + + list_del(&dentry->d_u.d_child); + dentry_stat.nr_dentry--; /* For d_free, below */ ++ preempt_enable_no_resched(); + /*drops the locks, at that point nobody can reach this dentry */ + dentry_iput(dentry); + parent = dentry->d_parent; +@@ -169,25 +176,18 @@ + * they too may now get deleted. + * + * no dcache lock, please. ++ * preemption is disabled by the caller. + */ + +-void dput(struct dentry *dentry) ++static void dput_recursive(struct dentry *dentry) + { +- if (!dentry) +- return; +- + repeat: +- if (atomic_read(&dentry->d_count) == 1) +- might_sleep(); + if (!atomic_dec_and_lock(&dentry->d_count, &dcache_lock)) +- return; ++ goto out_preempt; + + spin_lock(&dentry->d_lock); +- if (atomic_read(&dentry->d_count)) { +- spin_unlock(&dentry->d_lock); +- spin_unlock(&dcache_lock); +- return; +- } ++ if (atomic_read(&dentry->d_count)) ++ goto out_unlock; + + /* + * AV: ->d_delete() is _NOT_ allowed to block now. +@@ -204,8 +204,11 @@ + list_add(&dentry->d_lru, &dentry_unused); + dentry_stat.nr_unused++; + } ++out_unlock: + spin_unlock(&dentry->d_lock); + spin_unlock(&dcache_lock); ++out_preempt: ++ preempt_enable(); + return; + + unhash_it: +@@ -219,8 +222,23 @@ + dentry_stat.nr_unused--; + } + dentry = d_kill(dentry); +- if (dentry) ++ if (dentry) { ++ preempt_disable(); + goto repeat; ++ } ++} ++ ++void dput(struct dentry *dentry) ++{ ++ if (!dentry) ++ return; ++ ++ if (atomic_read(&dentry->d_count) == 1) ++ might_sleep(); ++ ++ preempt_disable(); ++ ub_dentry_uncharge(dentry); ++ dput_recursive(dentry); + } + + /** +@@ -289,6 +307,8 @@ + dentry_stat.nr_unused--; + list_del_init(&dentry->d_lru); + } ++ ++ ub_dentry_charge_nofail(dentry); + return dentry; + } + +@@ -391,6 +411,7 @@ + static void prune_one_dentry(struct dentry * dentry) + { + __d_drop(dentry); ++ preempt_disable(); + dentry = d_kill(dentry); + + /* +@@ -409,6 +430,7 @@ + dentry_stat.nr_unused--; + } + __d_drop(dentry); ++ preempt_disable(); + dentry = d_kill(dentry); + spin_lock(&dcache_lock); + } +@@ -709,6 +731,8 @@ + + dentry = sb->s_root; + sb->s_root = NULL; ++ /* "/" was also charged in d_alloc_root() */ ++ ub_dentry_uncharge(dentry); + atomic_dec(&dentry->d_count); + shrink_dcache_for_umount_subtree(dentry); + +@@ -871,12 +895,18 @@ + */ + static int shrink_dcache_memory(int nr, gfp_t gfp_mask) + { ++ int res = -1; ++ ++ KSTAT_PERF_ENTER(shrink_dcache) + if (nr) { + if (!(gfp_mask & __GFP_FS)) +- return -1; ++ goto out; + prune_dcache(nr, NULL); + } +- return (dentry_stat.nr_unused / 100) * sysctl_vfs_cache_pressure; ++ res = (dentry_stat.nr_unused / 100) * sysctl_vfs_cache_pressure; ++out: ++ KSTAT_PERF_LEAVE(shrink_dcache) ++ return res; + } + + static struct shrinker dcache_shrinker = { +@@ -899,21 +929,27 @@ + struct dentry *dentry; + char *dname; + ++ dname = NULL; ++ if (name->len > DNAME_INLINE_LEN-1) { ++ dname = kmalloc(name->len + 1, GFP_KERNEL); ++ if (!dname) ++ goto err_name; ++ } ++ ++ ub_dentry_alloc_start(); ++ + dentry = kmem_cache_alloc(dentry_cache, GFP_KERNEL); + if (!dentry) +- return NULL; ++ goto err_alloc; + +- if (name->len > DNAME_INLINE_LEN-1) { +- dname = kmalloc(name->len + 1, GFP_KERNEL); +- if (!dname) { +- kmem_cache_free(dentry_cache, dentry); +- return NULL; +- } +- } else { ++ preempt_disable(); ++ if (dname == NULL) + dname = dentry->d_iname; +- } + dentry->d_name.name = dname; + ++ if (ub_dentry_alloc(dentry)) ++ goto err_charge; ++ + dentry->d_name.len = name->len; + dentry->d_name.hash = name->hash; + memcpy(dname, name->name, name->len); +@@ -944,12 +980,27 @@ + } + + spin_lock(&dcache_lock); +- if (parent) ++ if (parent) { + list_add(&dentry->d_u.d_child, &parent->d_subdirs); ++ if (parent->d_flags & DCACHE_VIRTUAL) ++ dentry->d_flags |= DCACHE_VIRTUAL; ++ } + dentry_stat.nr_dentry++; + spin_unlock(&dcache_lock); ++ preempt_enable(); ++ ub_dentry_alloc_end(); + + return dentry; ++ ++err_charge: ++ preempt_enable(); ++ kmem_cache_free(dentry_cache, dentry); ++err_alloc: ++ if (name->len > DNAME_INLINE_LEN - 1) ++ kfree(dname); ++ ub_dentry_alloc_end(); ++err_name: ++ return NULL; + } + + struct dentry *d_alloc_name(struct dentry *parent, const char *name) +@@ -1255,12 +1306,12 @@ + unsigned int hash = name->hash; + const unsigned char *str = name->name; + struct hlist_head *head = d_hash(parent,hash); +- struct dentry *found = NULL; + struct hlist_node *node; +- struct dentry *dentry; ++ struct dentry *dentry, *found; + + rcu_read_lock(); + ++ found = NULL; + hlist_for_each_entry_rcu(dentry, node, head, d_hash) { + struct qstr *qstr; + +@@ -1297,6 +1348,8 @@ + if (!d_unhashed(dentry)) { + atomic_inc(&dentry->d_count); + found = dentry; ++ if (ub_dentry_charge(found)) ++ goto charge_failure; + } + spin_unlock(&dentry->d_lock); + break; +@@ -1306,6 +1359,14 @@ + rcu_read_unlock(); + + return found; ++ ++charge_failure: ++ spin_unlock(&found->d_lock); ++ rcu_read_unlock(); ++ /* dentry is now unhashed, just kill it */ ++ dput(found); ++ /* ... and fail lookup */ ++ return NULL; + } + + /** +@@ -1761,7 +1822,33 @@ + } + + /** +- * __d_path - return the path of a dentry ++ * __d_path_add_deleted - prepend "(deleted) " text ++ * @end: a pointer to the character after free space at the beginning of the ++ * buffer ++ * @buflen: remaining free space ++ */ ++static inline char * __d_path_add_deleted(char * end, int buflen) ++{ ++ buflen -= 10; ++ if (buflen < 0) ++ return ERR_PTR(-ENAMETOOLONG); ++ end -= 10; ++ memcpy(end, "(deleted) ", 10); ++ return end; ++} ++ ++/** ++ * d_root_check - checks if dentry is accessible from current's fs root ++ * @dentry: dentry to be verified ++ * @vfsmnt: vfsmnt to which the dentry belongs ++ */ ++int d_root_check(struct dentry *dentry, struct vfsmount *vfsmnt) ++{ ++ return PTR_ERR(d_path(dentry, vfsmnt, NULL, 0)); ++} ++ ++/** ++ * d_path - return the path of a dentry + * @dentry: dentry to report + * @vfsmnt: vfsmnt to which the dentry belongs + * @root: root dentry +@@ -1779,98 +1866,94 @@ + * + * Returns the buffer or an error code. + */ +-char *__d_path(struct dentry *dentry, struct vfsmount *vfsmnt, +- struct dentry *root, struct vfsmount *rootmnt, +- char *buffer, int buflen, int fail_deleted) +-{ +- int namelen, is_slash, vfsmount_locked = 0; +- +- if (buflen < 2) +- return ERR_PTR(-ENAMETOOLONG); +- buffer += --buflen; +- *buffer = '\0'; ++char * __d_path( struct dentry *dentry, struct vfsmount *vfsmnt, ++ struct dentry *root, struct vfsmount *rootmnt, ++ char *buffer, int buflen) ++{ ++ char * end = buffer+buflen; ++ char * retval = NULL; ++ int namelen; ++ int deleted; ++ struct vfsmount *oldvfsmnt; ++ ++ oldvfsmnt = vfsmnt; ++ deleted = (!IS_ROOT(dentry) && d_unhashed(dentry)); ++ if (buffer != NULL) { ++ *--end = '\0'; ++ buflen--; + +- spin_lock(&dcache_lock); +- if (!IS_ROOT(dentry) && d_unhashed(dentry)) { +- if (fail_deleted) { +- buffer = ERR_PTR(-ENOENT); +- goto out; +- } +- if (buflen < 10) ++ if (buflen < 1) + goto Elong; +- buflen -= 10; +- buffer -= 10; +- memcpy(buffer, " (deleted)", 10); ++ /* Get '/' right */ ++ retval = end-1; ++ *retval = '/'; + } +- while (dentry != root || vfsmnt != rootmnt) { ++ ++ for (;;) { + struct dentry * parent; + + if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) { +- if (!vfsmount_locked) { +- spin_lock(&vfsmount_lock); +- vfsmount_locked = 1; ++ /* root of a tree? */ ++ spin_lock(&vfsmount_lock); ++ if (vfsmnt->mnt_parent == vfsmnt) { ++ spin_unlock(&vfsmount_lock); ++ goto other_root; + } +- if (vfsmnt->mnt_parent == vfsmnt) +- goto global_root; + dentry = vfsmnt->mnt_mountpoint; + vfsmnt = vfsmnt->mnt_parent; + continue; + } + parent = dentry->d_parent; + prefetch(parent); +- namelen = dentry->d_name.len; +- if (buflen < namelen + 1) +- goto Elong; +- buflen -= namelen + 1; +- buffer -= namelen; +- memcpy(buffer, dentry->d_name.name, namelen); +- *--buffer = '/'; ++ if (buffer != NULL) { ++ namelen = dentry->d_name.len; ++ buflen -= namelen + 1; ++ if (buflen < 0) ++ goto Elong; ++ end -= namelen; ++ memcpy(end, dentry->d_name.name, namelen); ++ *--end = '/'; ++ retval = end; ++ } + dentry = parent; + } +- /* Get '/' right. */ +- if (*buffer != '/') +- *--buffer = '/'; ++ /* the given root point is reached */ ++finish: ++ if (buffer != NULL && deleted) ++ retval = __d_path_add_deleted(end, buflen); ++ return retval; + +-out: +- if (vfsmount_locked) +- spin_unlock(&vfsmount_lock); +- spin_unlock(&dcache_lock); +- return buffer; +- +-global_root: ++other_root: + /* +- * We went past the (vfsmount, dentry) we were looking for and have +- * either hit a root dentry, a lazily unmounted dentry, an +- * unconnected dentry, or the file is on a pseudo filesystem. ++ * We traversed the tree upward and reached a root, but the given ++ * lookup terminal point wasn't encountered. It means either that the ++ * dentry is out of our scope or belongs to an abstract space like ++ * sock_mnt or pipe_mnt. Check for it. ++ * ++ * There are different options to check it. ++ * We may assume that any dentry tree is unreachable unless it's ++ * connected to `root' (defined as fs root of init aka child reaper) ++ * and expose all paths that are not connected to it. ++ * The other option is to allow exposing of known abstract spaces ++ * explicitly and hide the path information for other cases. ++ * This approach is more safe, let's take it. 2001/04/22 SAW + */ +- namelen = dentry->d_name.len; +- is_slash = (namelen == 1 && *dentry->d_name.name == '/'); +- if (is_slash || (dentry->d_sb->s_flags & MS_NOUSER)) { +- /* +- * Make sure we won't return a pathname starting with '/'. +- * +- * Historically, we also glue together the root dentry and +- * remaining name for pseudo filesystems like pipefs, which +- * have the MS_NOUSER flag set. This results in pathnames +- * like "pipe:[439336]". +- */ +- if (*buffer == '/') { +- buffer++; +- buflen++; +- } +- if (is_slash) +- goto out; ++ if (!(oldvfsmnt->mnt_sb->s_flags & MS_NOUSER)) ++ return ERR_PTR(-EINVAL); ++ if (buffer != NULL) { ++ namelen = dentry->d_name.len; ++ buflen -= namelen; ++ if (buflen < 0) ++ goto Elong; ++ retval -= namelen-1; /* hit the slash */ ++ memcpy(retval, dentry->d_name.name, namelen); + } +- if (buflen < namelen) +- goto Elong; +- buffer -= namelen; +- memcpy(buffer, dentry->d_name.name, namelen); +- goto out; ++ goto finish; + + Elong: +- buffer = ERR_PTR(-ENAMETOOLONG); +- goto out; ++ return ERR_PTR(-ENAMETOOLONG); + } ++EXPORT_SYMBOL(__d_path); + + static char *__connect_d_path(char *path, char *buffer) + { +@@ -1898,21 +1981,248 @@ + * thus don't need to be hashed. They also don't need a name until a + * user wants to identify the object in /proc/pid/fd/. The little hack + * below allows us to generate a name for these objects on demand: ++ * ++ * pipefs and socketfs methods assume valid buffer, d_root_check() ++ * supplies NULL one for access checks. + */ +- if (dentry->d_op && dentry->d_op->d_dname) ++ if (buf && dentry->d_op && dentry->d_op->d_dname) + return dentry->d_op->d_dname(dentry, buf, buflen); + + read_lock(¤t->fs->lock); + rootmnt = mntget(current->fs->rootmnt); + root = dget(current->fs->root); + read_unlock(¤t->fs->lock); +- res = __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen, 0); +- res = __connect_d_path(res, buf); ++ spin_lock(&dcache_lock); ++ res = __d_path(dentry, vfsmnt, root, rootmnt, buf, buflen); ++ spin_unlock(&dcache_lock); + dput(root); + mntput(rootmnt); + return res; + } + ++#ifdef CONFIG_VE ++#include ++#include ++#include ++#include ++#include ++ ++static void mark_sub_tree_virtual(struct dentry *d) ++{ ++ struct dentry *orig_root; ++ ++ orig_root = d; ++ while (1) { ++ spin_lock(&d->d_lock); ++ d->d_flags |= DCACHE_VIRTUAL; ++ spin_unlock(&d->d_lock); ++ ++ if (!list_empty(&d->d_subdirs)) { ++ d = list_entry(d->d_subdirs.next, ++ struct dentry, d_u.d_child); ++ continue; ++ } ++ if (d == orig_root) ++ break; ++ while (d == list_entry(d->d_parent->d_subdirs.prev, ++ struct dentry, d_u.d_child)) { ++ d = d->d_parent; ++ if (d == orig_root) ++ goto out; ++ } ++ d = list_entry(d->d_u.d_child.next, ++ struct dentry, d_u.d_child); ++ } ++out: ++ return; ++} ++ ++void mark_tree_virtual(struct vfsmount *m, struct dentry *d) ++{ ++ struct vfsmount *orig_rootmnt; ++ ++ spin_lock(&dcache_lock); ++ spin_lock(&vfsmount_lock); ++ orig_rootmnt = m; ++ while (1) { ++ mark_sub_tree_virtual(d); ++ if (!list_empty(&m->mnt_mounts)) { ++ m = list_entry(m->mnt_mounts.next, ++ struct vfsmount, mnt_child); ++ d = m->mnt_root; ++ continue; ++ } ++ if (m == orig_rootmnt) ++ break; ++ while (m == list_entry(m->mnt_parent->mnt_mounts.prev, ++ struct vfsmount, mnt_child)) { ++ m = m->mnt_parent; ++ if (m == orig_rootmnt) ++ goto out; ++ } ++ m = list_entry(m->mnt_child.next, ++ struct vfsmount, mnt_child); ++ d = m->mnt_root; ++ } ++out: ++ spin_unlock(&vfsmount_lock); ++ spin_unlock(&dcache_lock); ++} ++EXPORT_SYMBOL(mark_tree_virtual); ++ ++static struct vz_rate_info area_ri = { 20, 10*HZ }; ++#define VE_AREA_ACC_CHECK 0x0001 ++#define VE_AREA_ACC_DENY 0x0002 ++#define VE_AREA_EXEC_CHECK 0x0010 ++#define VE_AREA_EXEC_DENY 0x0020 ++#define VE0_AREA_ACC_CHECK 0x0100 ++#define VE0_AREA_ACC_DENY 0x0200 ++#define VE0_AREA_EXEC_CHECK 0x1000 ++#define VE0_AREA_EXEC_DENY 0x2000 ++int ve_area_access_check = 0; ++ ++static void print_connection_info(struct task_struct *tsk) ++{ ++ struct files_struct *files; ++ struct fdtable *fdt; ++ int fd; ++ ++ files = get_files_struct(tsk); ++ if (!files) ++ return; ++ ++ spin_lock(&files->file_lock); ++ fdt = files_fdtable(files); ++ for (fd = 0; fd < fdt->max_fds; fd++) { ++ struct file *file; ++ struct inode *inode; ++ struct socket *socket; ++ struct sock *sk; ++ struct inet_sock *inet; ++ ++ file = fdt->fd[fd]; ++ if (file == NULL) ++ continue; ++ ++ inode = file->f_dentry->d_inode; ++ if (!S_ISSOCK(inode->i_mode)) ++ continue; ++ ++ socket = SOCKET_I(inode); ++ if (socket == NULL) ++ continue; ++ ++ sk = socket->sk; ++ if ((sk->sk_family != PF_INET && sk->sk_family != PF_INET6) ++ || sk->sk_type != SOCK_STREAM) ++ continue; ++ ++ inet = inet_sk(sk); ++ printk(KERN_ALERT "connection from %u.%u.%u.%u:%u to port %u\n", ++ NIPQUAD(inet->daddr), ntohs(inet->dport), ++ inet->num); ++ } ++ spin_unlock(&files->file_lock); ++ put_files_struct(files); ++} ++ ++static void check_alert(struct vfsmount *vfsmnt, struct dentry *dentry, ++ char *str) ++{ ++ struct task_struct *tsk; ++ unsigned long page; ++ struct super_block *sb; ++ char *p; ++ ++ if (!vz_ratelimit(&area_ri)) ++ return; ++ ++ tsk = current; ++ p = ERR_PTR(-ENOMEM); ++ page = __get_free_page(GFP_KERNEL); ++ if (page) { ++ spin_lock(&dcache_lock); ++ p = __d_path(dentry, vfsmnt, tsk->fs->root, tsk->fs->rootmnt, ++ (char *)page, PAGE_SIZE); ++ spin_unlock(&dcache_lock); ++ } ++ if (IS_ERR(p)) ++ p = "(undefined)"; ++ ++ sb = dentry->d_sb; ++ printk(KERN_ALERT "%s check alert! file:[%s] from %d/%s, dev%x\n" ++ "Task %d/%d[%s] from VE%d, execenv %d\n", ++ str, p, sb->s_type->owner_env->veid, ++ sb->s_type->name, sb->s_dev, ++ tsk->pid, task_pid_vnr(tsk), tsk->comm, ++ VE_TASK_INFO(tsk)->owner_env->veid, ++ get_exec_env()->veid); ++ ++ free_page(page); ++ ++ print_connection_info(tsk); ++ ++ read_lock(&tasklist_lock); ++ tsk = tsk->parent; ++ get_task_struct(tsk); ++ read_unlock(&tasklist_lock); ++ ++ printk(KERN_ALERT "Parent %d/%d[%s] from VE%d\n", ++ tsk->pid, task_pid_vnr(tsk), tsk->comm, ++ VE_TASK_INFO(tsk)->owner_env->veid); ++ ++ print_connection_info(tsk); ++ put_task_struct(tsk); ++ dump_stack(); ++} ++#endif ++ ++int check_area_access_ve(struct dentry *dentry, struct vfsmount *mnt) ++{ ++#ifdef CONFIG_VE ++ int check, alert, deny; ++ ++ if (ve_is_super(get_exec_env())) { ++ check = ve_area_access_check & VE0_AREA_ACC_CHECK; ++ alert = dentry->d_flags & DCACHE_VIRTUAL; ++ deny = ve_area_access_check & VE0_AREA_ACC_DENY; ++ } else { ++ check = ve_area_access_check & VE_AREA_ACC_CHECK; ++ alert = !(dentry->d_flags & DCACHE_VIRTUAL); ++ deny = ve_area_access_check & VE_AREA_ACC_DENY; ++ } ++ ++ if (check && alert) ++ check_alert(mnt, dentry, "Access"); ++ if (deny && alert) ++ return -EACCES; ++#endif ++ return 0; ++} ++ ++int check_area_execute_ve(struct dentry *dentry, struct vfsmount *mnt) ++{ ++#ifdef CONFIG_VE ++ int check, alert, deny; ++ ++ if (ve_is_super(get_exec_env())) { ++ check = ve_area_access_check & VE0_AREA_EXEC_CHECK; ++ alert = dentry->d_flags & DCACHE_VIRTUAL; ++ deny = ve_area_access_check & VE0_AREA_EXEC_DENY; ++ } else { ++ check = ve_area_access_check & VE_AREA_EXEC_CHECK; ++ alert = !(dentry->d_flags & DCACHE_VIRTUAL); ++ deny = ve_area_access_check & VE_AREA_EXEC_DENY; ++ } ++ ++ if (check && alert) ++ check_alert(mnt, dentry, "Exec"); ++ if (deny && alert) ++ return -EACCES; ++#endif ++ return 0; ++} ++ + /* + * Helper function for dentry_operations.d_dname() members + */ +@@ -1969,7 +2279,7 @@ + root = dget(current->fs->root); + read_unlock(¤t->fs->lock); + +- cwd = __d_path(pwd, pwdmnt, root, rootmnt, page, PAGE_SIZE, 1); ++ cwd = __d_path(pwd, pwdmnt, root, rootmnt, page, PAGE_SIZE); + cwd = __connect_d_path(cwd, page); + error = PTR_ERR(cwd); + if (IS_ERR(cwd)) +@@ -2060,10 +2370,12 @@ + goto repeat; + } + atomic_dec(&dentry->d_count); ++ ub_dentry_uncharge_locked(dentry); + } + if (this_parent != root) { + next = this_parent->d_u.d_child.next; + atomic_dec(&this_parent->d_count); ++ ub_dentry_uncharge_locked(this_parent); + this_parent = this_parent->d_parent; + goto resume; + } +Index: kernel/fs/devpts/inode.c +=================================================================== +--- kernel.orig/fs/devpts/inode.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/devpts/inode.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,19 +20,21 @@ + #include + #include + #include ++#include + + #define DEVPTS_SUPER_MAGIC 0x1cd1 + ++struct devpts_config devpts_config = {.mode = 0600}; ++ ++#ifndef CONFIG_VE + static struct vfsmount *devpts_mnt; + static struct dentry *devpts_root; +- +-static struct { +- int setuid; +- int setgid; +- uid_t uid; +- gid_t gid; +- umode_t mode; +-} config = {.mode = 0600}; ++#define config devpts_config ++#else ++#define devpts_mnt (get_exec_env()->devpts_mnt) ++#define devpts_root (get_exec_env()->devpts_root) ++#define config (*(get_exec_env()->devpts_config)) ++#endif + + enum { + Opt_uid, Opt_gid, Opt_mode, +@@ -84,7 +86,8 @@ + config.mode = option & ~S_IFMT; + break; + default: +- printk(KERN_ERR "devpts: called with bogus options\n"); ++ ve_printk(VE_LOG, KERN_ERR ++ "devpts: called with bogus options\n"); + return -EINVAL; + } + } +@@ -136,13 +139,15 @@ + return get_sb_single(fs_type, flags, data, devpts_fill_super, mnt); + } + +-static struct file_system_type devpts_fs_type = { ++struct file_system_type devpts_fs_type = { + .owner = THIS_MODULE, + .name = "devpts", + .get_sb = devpts_get_sb, + .kill_sb = kill_anon_super, + }; + ++EXPORT_SYMBOL(devpts_fs_type); ++ + /* + * The normal naming convention is simply /dev/pts/; this conforms + * to the System V naming convention +@@ -235,6 +240,7 @@ + + static void __exit exit_devpts_fs(void) + { ++ /* the code is never called, the argument is irrelevant */ + unregister_filesystem(&devpts_fs_type); + mntput(devpts_mnt); + } +Index: kernel/fs/direct-io.c +=================================================================== +--- kernel.orig/fs/direct-io.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/direct-io.c 2008-11-24 15:47:46.000000000 +0100 +@@ -666,7 +666,7 @@ + /* + * Read accounting is performed in submit_bio() + */ +- task_io_account_write(len); ++ task_io_account_write(page, len, 1); + } + + /* +Index: kernel/fs/dquot.c +=================================================================== +--- kernel.orig/fs/dquot.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/dquot.c 2008-11-24 15:47:46.000000000 +0100 +@@ -162,7 +162,9 @@ + struct quota_format_type *actqf; + + spin_lock(&dq_list_lock); +- for (actqf = quota_formats; actqf && actqf->qf_fmt_id != id; actqf = actqf->qf_next); ++ for (actqf = quota_formats; ++ actqf && (actqf->qf_fmt_id != id || actqf->qf_ops == NULL); ++ actqf = actqf->qf_next); + if (!actqf || !try_module_get(actqf->qf_owner)) { + int qm; + +Index: kernel/fs/eventpoll.c +=================================================================== +--- kernel.orig/fs/eventpoll.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/eventpoll.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -102,11 +103,6 @@ + + #define EP_UNACTIVE_PTR ((void *) -1L) + +-struct epoll_filefd { +- struct file *file; +- int fd; +-}; +- + /* + * Node that is linked into the "wake_task_list" member of the "struct poll_safewake". + * It is used to keep track on all tasks that are currently inside the wake_up() code +@@ -129,79 +125,6 @@ + spinlock_t lock; + }; + +-/* +- * Each file descriptor added to the eventpoll interface will +- * have an entry of this type linked to the "rbr" RB tree. +- */ +-struct epitem { +- /* RB tree node used to link this structure to the eventpoll RB tree */ +- struct rb_node rbn; +- +- /* List header used to link this structure to the eventpoll ready list */ +- struct list_head rdllink; +- +- /* +- * Works together "struct eventpoll"->ovflist in keeping the +- * single linked chain of items. +- */ +- struct epitem *next; +- +- /* The file descriptor information this item refers to */ +- struct epoll_filefd ffd; +- +- /* Number of active wait queue attached to poll operations */ +- int nwait; +- +- /* List containing poll wait queues */ +- struct list_head pwqlist; +- +- /* The "container" of this item */ +- struct eventpoll *ep; +- +- /* List header used to link this item to the "struct file" items list */ +- struct list_head fllink; +- +- /* The structure that describe the interested events and the source fd */ +- struct epoll_event event; +-}; +- +-/* +- * This structure is stored inside the "private_data" member of the file +- * structure and rapresent the main data sructure for the eventpoll +- * interface. +- */ +-struct eventpoll { +- /* Protect the this structure access */ +- spinlock_t lock; +- +- /* +- * This mutex is used to ensure that files are not removed +- * while epoll is using them. This is held during the event +- * collection loop, the file cleanup path, the epoll file exit +- * code and the ctl operations. +- */ +- struct mutex mtx; +- +- /* Wait queue used by sys_epoll_wait() */ +- wait_queue_head_t wq; +- +- /* Wait queue used by file->poll() */ +- wait_queue_head_t poll_wait; +- +- /* List of ready file descriptors */ +- struct list_head rdllist; +- +- /* RB tree root used to store monitored fd structs */ +- struct rb_root rbr; +- +- /* +- * This is a single linked list that chains all the "struct epitem" that +- * happened while transfering ready events to userspace w/out +- * holding ->lock. +- */ +- struct epitem *ovflist; +-}; +- + /* Wait structure used by the poll hooks */ + struct eppoll_entry { + /* List header used to link this structure to the "struct epitem" */ +@@ -229,7 +152,8 @@ + /* + * This mutex is used to serialize ep_free() and eventpoll_release_file(). + */ +-static struct mutex epmutex; ++struct mutex epmutex; ++EXPORT_SYMBOL_GPL(epmutex); + + /* Safe wake up implementation */ + static struct poll_safewake psw; +@@ -502,10 +426,11 @@ + } + + /* File callbacks that implement the eventpoll file behaviour */ +-static const struct file_operations eventpoll_fops = { ++const struct file_operations eventpoll_fops = { + .release = ep_eventpoll_release, + .poll = ep_eventpoll_poll + }; ++EXPORT_SYMBOL(eventpoll_fops); + + /* Fast test to see if the file is an evenpoll file */ + static inline int is_file_epoll(struct file *f) +@@ -577,7 +502,7 @@ + * are protected by the "mtx" mutex, and ep_find() must be called with + * "mtx" held. + */ +-static struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd) ++struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd) + { + int kcmp; + struct rb_node *rbp; +@@ -603,6 +528,7 @@ + + return epir; + } ++EXPORT_SYMBOL_GPL(ep_find); + + /* + * This is the callback that is passed to the wait queue wakeup +@@ -716,7 +642,7 @@ + /* + * Must be called with "mtx" held. + */ +-static int ep_insert(struct eventpoll *ep, struct epoll_event *event, ++int ep_insert(struct eventpoll *ep, struct epoll_event *event, + struct file *tfile, int fd) + { + int error, revents, pwake = 0; +@@ -814,6 +740,7 @@ + error_return: + return error; + } ++EXPORT_SYMBOL(ep_insert); + + /* + * Modify the interest event mask by dropping an event if the new mask +@@ -1109,6 +1036,7 @@ + current, size, error)); + return error; + } ++EXPORT_SYMBOL(sys_epoll_create); + + /* + * The following function implements the controller interface for +Index: kernel/fs/exec.c +=================================================================== +--- kernel.orig/fs/exec.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/exec.c 2008-11-24 15:47:46.000000000 +0100 +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -51,11 +52,14 @@ + #include + #include + #include ++#include + + #include + #include + #include + ++#include ++ + #ifdef CONFIG_KMOD + #include + #endif +@@ -66,6 +70,8 @@ + + /* The maximal length of core_pattern is also specified in sysctl.c */ + ++int sysctl_at_vsyscall; ++ + static LIST_HEAD(formats); + static DEFINE_RWLOCK(binfmt_lock); + +@@ -217,9 +223,13 @@ + struct vm_area_struct *vma = NULL; + struct mm_struct *mm = bprm->mm; + +- bprm->vma = vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); ++ if (ub_memory_charge(mm, PAGE_SIZE, VM_STACK_FLAGS | mm->def_flags, ++ NULL, UB_SOFT)) ++ goto fail_charge; ++ ++ bprm->vma = vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL_UBC); + if (!vma) +- goto err; ++ goto fail_alloc; + + down_write(&mm->mmap_sem); + vma->vm_mm = mm; +@@ -253,7 +263,9 @@ + bprm->vma = NULL; + kmem_cache_free(vm_area_cachep, vma); + } +- ++fail_alloc: ++ ub_memory_uncharge(mm, PAGE_SIZE, VM_STACK_FLAGS | mm->def_flags, NULL); ++fail_charge: + return err; + } + +@@ -695,10 +707,11 @@ + + EXPORT_SYMBOL(kernel_read); + +-static int exec_mmap(struct mm_struct *mm) ++static int exec_mmap(struct linux_binprm *bprm) + { + struct task_struct *tsk; +- struct mm_struct * old_mm, *active_mm; ++ struct mm_struct *old_mm, *active_mm, *mm; ++ int ret; + + /* Notify parent that we're no longer interested in the old VM */ + tsk = current; +@@ -720,6 +733,10 @@ + return -EINTR; + } + } ++ ++ ret = 0; ++ mm = bprm->mm; ++ mm->vps_dumpable = 1; + task_lock(tsk); + active_mm = tsk->active_mm; + tsk->mm = mm; +@@ -727,14 +744,24 @@ + activate_mm(active_mm, mm); + task_unlock(tsk); + arch_pick_mmap_layout(mm); ++ bprm->mm = NULL; /* We're using it now */ ++ ++#ifdef CONFIG_VZ_GENCALLS ++ if (virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_EXECMMAP, ++ bprm) & NOTIFY_FAIL) { ++ /* similar to binfmt_elf */ ++ send_sig(SIGKILL, current, 0); ++ ret = -ENOMEM; ++ } ++#endif + if (old_mm) { + up_read(&old_mm->mmap_sem); + BUG_ON(active_mm != old_mm); + mmput(old_mm); +- return 0; ++ return ret; + } + mmdrop(active_mm); +- return 0; ++ return ret; + } + + /* +@@ -861,6 +888,10 @@ + transfer_pid(leader, tsk, PIDTYPE_PGID); + transfer_pid(leader, tsk, PIDTYPE_SID); + list_replace_rcu(&leader->tasks, &tsk->tasks); ++#ifdef CONFIG_VE ++ list_replace_rcu(&leader->ve_task_info.vetask_list, ++ &tsk->ve_task_info.vetask_list); ++#endif + + tsk->group_leader = tsk; + leader->group_leader = tsk; +@@ -989,12 +1020,10 @@ + /* + * Release all of the old mmap stuff + */ +- retval = exec_mmap(bprm->mm); ++ retval = exec_mmap(bprm); + if (retval) + goto mmap_failed; + +- bprm->mm = NULL; /* We're using it now */ +- + /* This is the point of no return */ + put_files_struct(files); + +@@ -1298,6 +1327,10 @@ + unsigned long env_p; + int retval; + ++ retval = virtinfo_gencall(VIRTINFO_DOEXECVE, NULL); ++ if (retval) ++ return retval; ++ + retval = -ENOMEM; + bprm = kzalloc(sizeof(*bprm), GFP_KERNEL); + if (!bprm) +@@ -1349,6 +1382,11 @@ + goto out; + bprm->argv_len = env_p - bprm->p; + ++ if (!gr_tpe_allow(file)) { ++ retval = -EACCES; ++ goto out; ++ } ++ + retval = search_binary_handler(bprm,regs); + if (retval >= 0) { + /* execve success */ +@@ -1561,7 +1599,7 @@ + goto done; + + rcu_read_lock(); +- for_each_process(g) { ++ for_each_process_ve(g) { + if (g == tsk->group_leader) + continue; + +@@ -1695,7 +1733,7 @@ + /* + * If another thread got here first, or we are not dumpable, bail out. + */ +- if (mm->core_waiters || !get_dumpable(mm)) { ++ if (mm->core_waiters || !get_dumpable(mm) || mm->vps_dumpable != 1) { + up_write(&mm->mmap_sem); + goto fail; + } +Index: kernel/fs/ext2/namei.c +=================================================================== +--- kernel.orig/fs/ext2/namei.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/ext2/namei.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,6 +31,7 @@ + */ + + #include ++#include + #include "ext2.h" + #include "xattr.h" + #include "acl.h" +@@ -257,6 +258,8 @@ + struct page * page; + int err = -ENOENT; + ++ DQUOT_INIT(inode); ++ + de = ext2_find_entry (dir, dentry, &page); + if (!de) + goto out; +@@ -299,6 +302,9 @@ + struct ext2_dir_entry_2 * old_de; + int err = -ENOENT; + ++ if (new_inode) ++ DQUOT_INIT(new_inode); ++ + old_de = ext2_find_entry (old_dir, old_dentry, &old_page); + if (!old_de) + goto out; +Index: kernel/fs/ext2/super.c +=================================================================== +--- kernel.orig/fs/ext2/super.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/ext2/super.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1377,7 +1377,7 @@ + .name = "ext2", + .get_sb = ext2_get_sb, + .kill_sb = kill_block_super, +- .fs_flags = FS_REQUIRES_DEV, ++ .fs_flags = FS_REQUIRES_DEV | FS_VIRTUALIZED, + }; + + static int __init init_ext2_fs(void) +Index: kernel/fs/ext3/ioctl.c +=================================================================== +--- kernel.orig/fs/ext3/ioctl.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/ext3/ioctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -79,7 +79,7 @@ + * the relevant capability. + */ + if ((jflag ^ oldflags) & (EXT3_JOURNAL_DATA_FL)) { +- if (!capable(CAP_SYS_RESOURCE)) { ++ if (!capable(CAP_SYS_ADMIN)) { + mutex_unlock(&inode->i_mutex); + return -EPERM; + } +Index: kernel/fs/ext3/namei.c +=================================================================== +--- kernel.orig/fs/ext3/namei.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/ext3/namei.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1355,7 +1355,7 @@ + if (err) + ext3_std_error(dir->i_sb, err); + brelse(bh); +- return 0; ++ return err; + } + + /* +Index: kernel/fs/ext3/super.c +=================================================================== +--- kernel.orig/fs/ext3/super.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/ext3/super.c 2008-11-24 15:47:46.000000000 +0100 +@@ -2869,7 +2869,7 @@ + .name = "ext3", + .get_sb = ext3_get_sb, + .kill_sb = kill_block_super, +- .fs_flags = FS_REQUIRES_DEV, ++ .fs_flags = FS_REQUIRES_DEV | FS_VIRTUALIZED, + }; + + static int __init init_ext3_fs(void) +Index: kernel/fs/ext4/ioctl.c +=================================================================== +--- kernel.orig/fs/ext4/ioctl.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/ext4/ioctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -79,7 +79,7 @@ + * the relevant capability. + */ + if ((jflag ^ oldflags) & (EXT4_JOURNAL_DATA_FL)) { +- if (!capable(CAP_SYS_RESOURCE)) { ++ if (!capable(CAP_SYS_ADMIN)) { + mutex_unlock(&inode->i_mutex); + return -EPERM; + } +Index: kernel/fs/fcntl.c +=================================================================== +--- kernel.orig/fs/fcntl.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/fcntl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -192,6 +192,7 @@ + fput(file); + goto out; + } ++EXPORT_SYMBOL_GPL(sys_dup2); + + asmlinkage long sys_dup(unsigned int fildes) + { +@@ -210,6 +211,9 @@ + struct inode * inode = filp->f_path.dentry->d_inode; + int error = 0; + ++ if (!capable(CAP_SYS_RAWIO) && !odirect_enable) ++ arg &= ~O_DIRECT; ++ + /* + * O_APPEND cannot be cleared if the file is marked as append-only + * and the file is open for write. +Index: kernel/fs/file.c +=================================================================== +--- kernel.orig/fs/file.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/file.c 2008-11-24 15:47:46.000000000 +0100 +@@ -8,6 +8,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -18,6 +19,8 @@ + #include + #include + ++#include ++ + struct fdtable_defer { + spinlock_t lock; + struct work_struct wq; +@@ -35,9 +38,9 @@ + static inline void * alloc_fdmem(unsigned int size) + { + if (size <= PAGE_SIZE) +- return kmalloc(size, GFP_KERNEL); ++ return kmalloc(size, GFP_KERNEL_UBC); + else +- return vmalloc(size); ++ return ub_vmalloc(size); + } + + static inline void free_fdarr(struct fdtable *fdt) +@@ -150,7 +153,7 @@ + if (nr > NR_OPEN) + nr = NR_OPEN; + +- fdt = kmalloc(sizeof(struct fdtable), GFP_KERNEL); ++ fdt = kmalloc(sizeof(struct fdtable), GFP_KERNEL_UBC); + if (!fdt) + goto out; + fdt->max_fds = nr; +@@ -185,7 +188,7 @@ + * Return <0 error code on error; 1 on successful completion. + * The files->file_lock should be held on entry, and will be held on exit. + */ +-static int expand_fdtable(struct files_struct *files, int nr) ++int expand_fdtable(struct files_struct *files, int nr) + __releases(files->file_lock) + __acquires(files->file_lock) + { +@@ -215,6 +218,7 @@ + } + return 1; + } ++EXPORT_SYMBOL_GPL(expand_fdtable); + + /* + * Expand files. +Index: kernel/fs/file_table.c +=================================================================== +--- kernel.orig/fs/file_table.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/file_table.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,9 +20,14 @@ + #include + #include + #include ++#include + + #include + ++#include ++#include ++#include ++ + /* sysctl tunables... */ + struct files_stat_struct files_stat = { + .max_files = NR_FILE +@@ -36,12 +41,15 @@ + static inline void file_free_rcu(struct rcu_head *head) + { + struct file *f = container_of(head, struct file, f_u.fu_rcuhead); ++ put_ve(f->owner_env); + kmem_cache_free(filp_cachep, f); + } + + static inline void file_free(struct file *f) + { +- percpu_counter_dec(&nr_files); ++ if (f->f_ub == get_ub0()) ++ percpu_counter_dec(&nr_files); ++ ub_file_uncharge(f); + call_rcu(&f->f_u.fu_rcuhead, file_free_rcu); + } + +@@ -89,11 +97,14 @@ + struct task_struct *tsk; + static int old_max; + struct file * f; ++ int acct; + ++ acct = (get_exec_ub() == get_ub0()); + /* + * Privileged users can go above max_files + */ +- if (get_nr_files() >= files_stat.max_files && !capable(CAP_SYS_ADMIN)) { ++ if (acct && get_nr_files() >= files_stat.max_files && ++ !capable(CAP_SYS_ADMIN)) { + /* + * percpu_counters are inaccurate. Do an expensive check before + * we go and fail. +@@ -106,7 +117,13 @@ + if (f == NULL) + goto fail; + +- percpu_counter_inc(&nr_files); ++ if (ub_file_charge(f)) ++ goto fail_ch; ++ if (acct) ++ percpu_counter_inc(&nr_files); ++ ++ f->owner_env = get_ve(get_exec_env()); ++ + if (security_file_alloc(f)) + goto fail_sec; + +@@ -133,6 +150,10 @@ + file_free(f); + fail: + return NULL; ++ ++fail_ch: ++ kmem_cache_free(filp_cachep, f); ++ return NULL; + } + + EXPORT_SYMBOL(get_empty_filp); +Index: kernel/fs/filesystems.c +=================================================================== +--- kernel.orig/fs/filesystems.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/filesystems.c 2008-11-24 15:47:46.000000000 +0100 +@@ -12,6 +12,9 @@ + #include + #include + #include ++#include /* for 'current' */ ++#include ++#include + #include + + /* +@@ -21,8 +24,8 @@ + * During the unload module must call unregister_filesystem(). + * We can access the fields of list element if: + * 1) spinlock is held or +- * 2) we hold the reference to the module. +- * The latter can be guaranteed by call of try_module_get(); if it ++ * 2) we hold the reference to the element. ++ * The latter can be guaranteed by call of try_filesystem(); if it + * returned 0 we must skip the element, otherwise we got the reference. + * Once the reference is obtained we can drop the spinlock. + */ +@@ -30,24 +33,46 @@ + static struct file_system_type *file_systems; + static DEFINE_RWLOCK(file_systems_lock); + ++int try_get_filesystem(struct file_system_type *fs) ++{ ++ if (try_module_get(fs->owner)) { ++ (void)get_ve(fs->owner_env); ++ return 1; ++ } ++ return 0; ++} ++ + /* WARNING: This can be used only if we _already_ own a reference */ + void get_filesystem(struct file_system_type *fs) + { ++ (void)get_ve(fs->owner_env); + __module_get(fs->owner); + } + + void put_filesystem(struct file_system_type *fs) + { + module_put(fs->owner); ++ put_ve(fs->owner_env); ++} ++ ++static inline int check_ve_fstype(struct file_system_type *p, ++ struct ve_struct *env) ++{ ++ return ((p->fs_flags & FS_VIRTUALIZED) || ++ ve_accessible_strict(p->owner_env, env)); + } + +-static struct file_system_type **find_filesystem(const char *name, unsigned len) ++static struct file_system_type **find_filesystem(const char *name, unsigned len, ++ struct ve_struct *env) + { + struct file_system_type **p; +- for (p=&file_systems; *p; p=&(*p)->next) ++ for (p=&file_systems; *p; p=&(*p)->next) { ++ if (!check_ve_fstype(*p, env)) ++ continue; + if (strlen((*p)->name) == len && + strncmp((*p)->name, name, len) == 0) + break; ++ } + return p; + } + +@@ -73,8 +98,12 @@ + if (fs->next) + return -EBUSY; + INIT_LIST_HEAD(&fs->fs_supers); ++ if (fs->owner_env == NULL) ++ fs->owner_env = get_ve0(); ++ if (fs->proto == NULL) ++ fs->proto = fs; + write_lock(&file_systems_lock); +- p = find_filesystem(fs->name, strlen(fs->name)); ++ p = find_filesystem(fs->name, strlen(fs->name), fs->owner_env); + if (*p) + res = -EBUSY; + else +@@ -118,6 +147,75 @@ + + EXPORT_SYMBOL(unregister_filesystem); + ++#ifdef CONFIG_VE ++int register_ve_fs_type(struct ve_struct *ve, struct file_system_type *template, ++ struct file_system_type **p_fs_type, struct vfsmount **p_mnt) ++{ ++ struct vfsmount *mnt; ++ struct file_system_type *local_fs_type; ++ int ret; ++ ++ local_fs_type = kzalloc(sizeof(*local_fs_type) + sizeof(void *), ++ GFP_KERNEL); ++ if (local_fs_type == NULL) ++ return -ENOMEM; ++ ++ local_fs_type->name = template->name; ++ local_fs_type->fs_flags = template->fs_flags; ++ local_fs_type->get_sb = template->get_sb; ++ local_fs_type->kill_sb = template->kill_sb; ++ local_fs_type->owner = template->owner; ++ local_fs_type->owner_env = ve; ++ local_fs_type->proto = template; ++ ++ get_filesystem(local_fs_type); /* get_ve() inside */ ++ ++ ret = register_filesystem(local_fs_type); ++ if (ret) ++ goto reg_err; ++ ++ if (p_mnt == NULL) ++ goto done; ++ ++ mnt = vfs_kern_mount(local_fs_type, 0, local_fs_type->name, NULL); ++ if (IS_ERR(mnt)) ++ goto mnt_err; ++ ++ *p_mnt = mnt; ++done: ++ *p_fs_type = local_fs_type; ++ return 0; ++ ++mnt_err: ++ ret = PTR_ERR(mnt); ++ unregister_filesystem(local_fs_type); /* does not put */ ++ ++reg_err: ++ put_filesystem(local_fs_type); ++ kfree(local_fs_type); ++ printk(KERN_DEBUG ++ "register_ve_fs_type(\"%s\") err=%d\n", template->name, ret); ++ return ret; ++} ++ ++EXPORT_SYMBOL(register_ve_fs_type); ++ ++void unregister_ve_fs_type(struct file_system_type *local_fs_type, ++ struct vfsmount *local_fs_mount) ++{ ++ if (local_fs_mount == NULL && local_fs_type == NULL) ++ return; ++ ++ unregister_filesystem(local_fs_type); ++ umount_ve_fs_type(local_fs_type); ++ if (local_fs_mount) ++ kern_umount(local_fs_mount); /* alias to mntput, drop our ref */ ++ put_filesystem(local_fs_type); ++} ++ ++EXPORT_SYMBOL(unregister_ve_fs_type); ++#endif ++ + static int fs_index(const char __user * __name) + { + struct file_system_type * tmp; +@@ -131,11 +229,14 @@ + + err = -EINVAL; + read_lock(&file_systems_lock); +- for (tmp=file_systems, index=0 ; tmp ; tmp=tmp->next, index++) { ++ for (tmp=file_systems, index=0 ; tmp ; tmp=tmp->next) { ++ if (!check_ve_fstype(tmp, get_exec_env())) ++ continue; + if (strcmp(tmp->name,name) == 0) { + err = index; + break; + } ++ index++; + } + read_unlock(&file_systems_lock); + putname(name); +@@ -148,9 +249,15 @@ + int len, res; + + read_lock(&file_systems_lock); +- for (tmp = file_systems; tmp; tmp = tmp->next, index--) +- if (index <= 0 && try_module_get(tmp->owner)) +- break; ++ for (tmp = file_systems; tmp; tmp = tmp->next) { ++ if (!check_ve_fstype(tmp, get_exec_env())) ++ continue; ++ if (!index) { ++ if (try_get_filesystem(tmp)) ++ break; ++ } else ++ index--; ++ } + read_unlock(&file_systems_lock); + if (!tmp) + return -EINVAL; +@@ -168,8 +275,9 @@ + int index; + + read_lock(&file_systems_lock); +- for (tmp = file_systems, index = 0 ; tmp ; tmp = tmp->next, index++) +- ; ++ for (tmp = file_systems, index = 0 ; tmp ; tmp = tmp->next) ++ if (check_ve_fstype(tmp, get_exec_env())) ++ index++; + read_unlock(&file_systems_lock); + return index; + } +@@ -205,9 +313,10 @@ + read_lock(&file_systems_lock); + tmp = file_systems; + while (tmp && len < PAGE_SIZE - 80) { +- len += sprintf(buf+len, "%s\t%s\n", +- (tmp->fs_flags & FS_REQUIRES_DEV) ? "" : "nodev", +- tmp->name); ++ if (check_ve_fstype(tmp, get_exec_env())) ++ len += sprintf(buf+len, "%s\t%s\n", ++ (tmp->fs_flags & FS_REQUIRES_DEV) ? "" : "nodev", ++ tmp->name); + tmp = tmp->next; + } + read_unlock(&file_systems_lock); +@@ -221,14 +330,14 @@ + unsigned len = dot ? dot - name : strlen(name); + + read_lock(&file_systems_lock); +- fs = *(find_filesystem(name, len)); +- if (fs && !try_module_get(fs->owner)) ++ fs = *(find_filesystem(name, len, get_exec_env())); ++ if (fs && !try_get_filesystem(fs)) + fs = NULL; + read_unlock(&file_systems_lock); + if (!fs && (request_module("%.*s", len, name) == 0)) { + read_lock(&file_systems_lock); +- fs = *(find_filesystem(name, len)); +- if (fs && !try_module_get(fs->owner)) ++ fs = *(find_filesystem(name, len, get_exec_env())); ++ if (fs && !try_get_filesystem(fs)) + fs = NULL; + read_unlock(&file_systems_lock); + } +@@ -241,3 +350,5 @@ + } + + EXPORT_SYMBOL(get_fs_type); ++EXPORT_SYMBOL(get_filesystem); ++EXPORT_SYMBOL(put_filesystem); +Index: kernel/fs/fuse/control.c +=================================================================== +--- kernel.orig/fs/fuse/control.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/fuse/control.c 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,8 @@ + + #include + #include ++#include ++#include + + #define FUSE_CTL_SUPER_MAGIC 0x65735543 + +@@ -17,7 +19,11 @@ + * This is non-NULL when the single instance of the control filesystem + * exists. Protected by fuse_mutex + */ ++#ifdef CONFIG_VE ++#define fuse_control_sb (get_exec_env()->_fuse_control_sb) ++#else + static struct super_block *fuse_control_sb; ++#endif + + static struct fuse_conn *fuse_ctl_file_conn_get(struct file *file) + { +@@ -211,12 +217,51 @@ + .kill_sb = fuse_ctl_kill_sb, + }; + ++#ifdef CONFIG_VE ++static int fuse_ctl_start(void *data) ++{ ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)data; ++ if (ve->fuse_ctl_fs_type != NULL) ++ return -EBUSY; ++ ++ return register_ve_fs_type(ve, &fuse_ctl_fs_type, ++ &ve->fuse_ctl_fs_type, NULL); ++} ++ ++static void fuse_ctl_stop(void *data) ++{ ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)data; ++ if (ve->fuse_ctl_fs_type == NULL) ++ return; ++ ++ unregister_ve_fs_type(ve->fuse_ctl_fs_type, NULL); ++ ve->fuse_ctl_fs_type = NULL; ++} ++ ++static struct ve_hook fuse_ctl_ve_hook = { ++ .init = fuse_ctl_start, ++ .fini = fuse_ctl_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_FS, ++}; ++#endif ++ + int __init fuse_ctl_init(void) + { +- return register_filesystem(&fuse_ctl_fs_type); ++ int err; ++ ++ err = register_filesystem(&fuse_ctl_fs_type); ++ if (err == 0) ++ ve_hook_register(VE_SS_CHAIN, &fuse_ctl_ve_hook); ++ return err; + } + + void fuse_ctl_cleanup(void) + { ++ ve_hook_unregister(&fuse_ctl_ve_hook); + unregister_filesystem(&fuse_ctl_fs_type); + } +Index: kernel/fs/fuse/fuse_i.h +=================================================================== +--- kernel.orig/fs/fuse/fuse_i.h 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/fuse/fuse_i.h 2008-11-24 15:47:46.000000000 +0100 +@@ -41,7 +41,11 @@ + #define FUSE_ALLOW_OTHER (1 << 1) + + /** List of active connections */ ++#ifdef CONFIG_VE ++#define fuse_conn_list (get_exec_env()->_fuse_conn_list) ++#else + extern struct list_head fuse_conn_list; ++#endif + + /** Global mutex protecting fuse_conn_list and the control filesystem */ + extern struct mutex fuse_mutex; +Index: kernel/fs/fuse/inode.c +=================================================================== +--- kernel.orig/fs/fuse/inode.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/fuse/inode.c 2008-11-24 15:47:46.000000000 +0100 +@@ -18,13 +18,16 @@ + #include + #include + #include ++#include + + MODULE_AUTHOR("Miklos Szeredi "); + MODULE_DESCRIPTION("Filesystem in Userspace"); + MODULE_LICENSE("GPL"); + + static struct kmem_cache *fuse_inode_cachep; ++#ifndef CONFIG_VE + struct list_head fuse_conn_list; ++#endif + DEFINE_MUTEX(fuse_mutex); + + #define FUSE_SUPER_MAGIC 0x65735546 +@@ -819,6 +822,41 @@ + subsystem_unregister(&fuse_subsys); + } + ++#ifdef CONFIG_VE ++static int fuse_start(void *data) ++{ ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)data; ++ if (ve->fuse_fs_type != NULL) ++ return -EBUSY; ++ ++ INIT_LIST_HEAD(&ve->_fuse_conn_list); ++ return register_ve_fs_type(ve, &fuse_fs_type, &ve->fuse_fs_type, NULL); ++} ++ ++static void fuse_stop(void *data) ++{ ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)data; ++ if (ve->fuse_fs_type == NULL) ++ return; ++ ++ unregister_ve_fs_type(ve->fuse_fs_type, NULL); ++ kfree(ve->fuse_fs_type); ++ ve->fuse_fs_type = NULL; ++ BUG_ON(!list_empty(&ve->_fuse_conn_list)); ++} ++ ++static struct ve_hook fuse_ve_hook = { ++ .init = fuse_start, ++ .fini = fuse_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_FS, ++}; ++#endif ++ + static int __init fuse_init(void) + { + int res; +@@ -843,6 +881,7 @@ + if (res) + goto err_sysfs_cleanup; + ++ ve_hook_register(VE_SS_CHAIN, &fuse_ve_hook); + return 0; + + err_sysfs_cleanup: +@@ -859,6 +898,7 @@ + { + printk(KERN_DEBUG "fuse exit\n"); + ++ ve_hook_unregister(&fuse_ve_hook); + fuse_ctl_cleanup(); + fuse_sysfs_cleanup(); + fuse_fs_cleanup(); +Index: kernel/fs/gfs2/glock.c +=================================================================== +--- kernel.orig/fs/gfs2/glock.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/gfs2/glock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -8,6 +8,7 @@ + */ + + #include ++#include + #include + #include + #include +Index: kernel/fs/inode.c +=================================================================== +--- kernel.orig/fs/inode.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/inode.c 2008-11-24 15:47:46.000000000 +0100 +@@ -8,10 +8,13 @@ + #include + #include + #include ++#include + #include + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -22,6 +25,7 @@ + #include + #include + #include ++#include + + /* + * This is needed for the following functions: +@@ -97,7 +101,8 @@ + */ + struct inodes_stat_t inodes_stat; + +-static struct kmem_cache * inode_cachep __read_mostly; ++struct kmem_cache * inode_cachep __read_mostly; ++ + + static void wake_up_inode(struct inode *inode) + { +@@ -108,11 +113,13 @@ + wake_up_bit(&inode->i_state, __I_LOCK); + } + ++static struct address_space_operations vfs_empty_aops; ++struct inode_operations vfs_empty_iops; ++static struct file_operations vfs_empty_fops; ++EXPORT_SYMBOL(vfs_empty_iops); ++ + static struct inode *alloc_inode(struct super_block *sb) + { +- static const struct address_space_operations empty_aops; +- static struct inode_operations empty_iops; +- static const struct file_operations empty_fops; + struct inode *inode; + + if (sb->s_op->alloc_inode) +@@ -127,8 +134,8 @@ + inode->i_blkbits = sb->s_blocksize_bits; + inode->i_flags = 0; + atomic_set(&inode->i_count, 1); +- inode->i_op = &empty_iops; +- inode->i_fop = &empty_fops; ++ inode->i_op = &vfs_empty_iops; ++ inode->i_fop = &vfs_empty_fops; + inode->i_nlink = 1; + atomic_set(&inode->i_writecount, 0); + inode->i_size = 0; +@@ -152,15 +159,15 @@ + } + + spin_lock_init(&inode->i_lock); +- lockdep_set_class(&inode->i_lock, &sb->s_type->i_lock_key); ++ lockdep_set_class(&inode->i_lock, &sb->s_type->proto->i_lock_key); + + mutex_init(&inode->i_mutex); +- lockdep_set_class(&inode->i_mutex, &sb->s_type->i_mutex_key); ++ lockdep_set_class(&inode->i_mutex, &sb->s_type->proto->i_mutex_key); + + init_rwsem(&inode->i_alloc_sem); +- lockdep_set_class(&inode->i_alloc_sem, &sb->s_type->i_alloc_sem_key); ++ lockdep_set_class(&inode->i_alloc_sem, &sb->s_type->proto->i_alloc_sem_key); + +- mapping->a_ops = &empty_aops; ++ mapping->a_ops = &vfs_empty_aops; + mapping->host = inode; + mapping->flags = 0; + mapping_set_gfp_mask(mapping, GFP_HIGHUSER_PAGECACHE); +@@ -310,13 +317,76 @@ + spin_unlock(&inode_lock); + } + ++static void show_header(struct inode *inode) ++{ ++ struct super_block *sb = inode->i_sb; ++ ++ printk("VFS: Busy inodes after unmount. " ++ "sb = %p, fs type = %s, sb count = %d, " ++ "sb->s_root = %s\n", sb, ++ (sb->s_type != NULL) ? sb->s_type->name : "", ++ sb->s_count, ++ (sb->s_root != NULL) ? ++ (char *)sb->s_root->d_name.name : ""); ++} ++ ++static void show_inode(struct inode *inode) ++{ ++ struct dentry *d; ++ struct vfsmount *mnt; ++ int i; ++ ++ printk("inode = %p, inode->i_count = %d, " ++ "inode->i_nlink = %d, " ++ "inode->i_mode = %d, " ++ "inode->i_state = %ld, " ++ "inode->i_flags = %d, " ++ "inode->i_devices.next = %p, " ++ "inode->i_devices.prev = %p, " ++ "inode->i_ino = %ld\n", ++ inode, ++ atomic_read(&inode->i_count), ++ inode->i_nlink, ++ inode->i_mode, ++ inode->i_state, ++ inode->i_flags, ++ inode->i_devices.next, ++ inode->i_devices.prev, ++ inode->i_ino); ++ printk("inode dump: "); ++ for (i = 0; i < sizeof(*inode); i++) ++ printk("%2.2x ", *((u_char *)inode + i)); ++ printk("\n"); ++ list_for_each_entry(d, &inode->i_dentry, d_alias) { ++ printk(" d_alias %s d_count=%d d_flags=%x\n", ++ d->d_name.name, atomic_read(&d->d_count), d->d_flags); ++ for (i = 0; i < sizeof(*d); i++) ++ printk("%2.2x ", *((u_char *)d + i)); ++ printk("\n"); ++ } ++ ++ spin_lock(&vfsmount_lock); ++ list_for_each_entry(mnt, &get_task_mnt_ns(current)->list, mnt_list) { ++ if (mnt->mnt_sb != inode->i_sb) ++ continue; ++ printk("mnt=%p count=%d flags=%x exp_mask=%x\n", ++ mnt, atomic_read(&mnt->mnt_count), ++ mnt->mnt_flags, ++ mnt->mnt_expiry_mark); ++ for (i = 0; i < sizeof(*mnt); i++) ++ printk("%2.2x ", *((u_char *)mnt + i)); ++ printk("\n"); ++ } ++ spin_unlock(&vfsmount_lock); ++} ++ + /* + * Invalidate all inodes for a device. + */ +-static int invalidate_list(struct list_head *head, struct list_head *dispose) ++static int invalidate_list(struct list_head *head, struct list_head *dispose, int check) + { + struct list_head *next; +- int busy = 0, count = 0; ++ int busy = 0, count = 0, once = 1; + + next = head->next; + for (;;) { +@@ -343,6 +413,14 @@ + continue; + } + busy = 1; ++ ++ if (check) { ++ if (once) { ++ once = 0; ++ show_header(inode); ++ } ++ show_inode(inode); ++ } + } + /* only unused inodes may be cached with i_count zero */ + inodes_stat.nr_unused -= count; +@@ -357,7 +435,7 @@ + * fails because there are busy inodes then a non zero value is returned. + * If the discard is successful all the inodes have been discarded. + */ +-int invalidate_inodes(struct super_block * sb) ++int invalidate_inodes_check(struct super_block * sb, int check) + { + int busy; + LIST_HEAD(throw_away); +@@ -365,7 +443,7 @@ + mutex_lock(&iprune_mutex); + spin_lock(&inode_lock); + inotify_unmount_inodes(&sb->s_inodes); +- busy = invalidate_list(&sb->s_inodes, &throw_away); ++ busy = invalidate_list(&sb->s_inodes, &throw_away, check); + spin_unlock(&inode_lock); + + dispose_list(&throw_away); +@@ -374,7 +452,7 @@ + return busy; + } + +-EXPORT_SYMBOL(invalidate_inodes); ++EXPORT_SYMBOL(invalidate_inodes_check); + + static int can_unuse(struct inode *inode) + { +@@ -464,6 +542,7 @@ + */ + static int shrink_icache_memory(int nr, gfp_t gfp_mask) + { ++ KSTAT_PERF_ENTER(shrink_icache) + if (nr) { + /* + * Nasty deadlock avoidance. We may hold various FS locks, +@@ -474,6 +553,7 @@ + return -1; + prune_icache(nr); + } ++ KSTAT_PERF_LEAVE(shrink_icache) + return (inodes_stat.nr_unused / 100) * sysctl_vfs_cache_pressure; + } + +@@ -585,7 +665,7 @@ + */ + mutex_destroy(&inode->i_mutex); + mutex_init(&inode->i_mutex); +- lockdep_set_class(&inode->i_mutex, &type->i_mutex_dir_key); ++ lockdep_set_class(&inode->i_mutex, &type->proto->i_mutex_dir_key); + } + #endif + /* +Index: kernel/fs/inotify.c +=================================================================== +--- kernel.orig/fs/inotify.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/inotify.c 2008-11-24 15:47:46.000000000 +0100 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + static atomic_t inotify_cookie; + +@@ -69,19 +70,6 @@ + * inotify_add_watch() to the final put_inotify_watch(). + */ + +-/* +- * struct inotify_handle - represents an inotify instance +- * +- * This structure is protected by the mutex 'mutex'. +- */ +-struct inotify_handle { +- struct idr idr; /* idr mapping wd -> watch */ +- struct mutex mutex; /* protects this bad boy */ +- struct list_head watches; /* list of watches */ +- atomic_t count; /* reference count */ +- u32 last_wd; /* the last wd allocated */ +- const struct inotify_operations *in_ops; /* inotify caller operations */ +-}; + + static inline void get_inotify_handle(struct inotify_handle *ih) + { +@@ -118,6 +106,10 @@ + struct inotify_handle *ih = watch->ih; + + iput(watch->inode); ++ dput(watch->dentry); ++ mntput(watch->mnt); ++ watch->dentry = NULL; ++ watch->mnt = NULL; + ih->in_ops->destroy_watch(watch); + put_inotify_handle(ih); + } +@@ -476,6 +468,8 @@ + INIT_LIST_HEAD(&watch->i_list); + atomic_set(&watch->count, 0); + get_inotify_watch(watch); /* initial get */ ++ watch->dentry = NULL; ++ watch->mnt = NULL; + } + EXPORT_SYMBOL_GPL(inotify_init_watch); + +@@ -616,8 +610,10 @@ + * Caller must ensure it only calls inotify_add_watch() once per watch. + * Calls inotify_handle_get_wd() so may sleep. + */ +-s32 inotify_add_watch(struct inotify_handle *ih, struct inotify_watch *watch, +- struct inode *inode, u32 mask) ++s32 __inotify_add_watch(struct inotify_handle *ih, ++ struct inotify_watch *watch, ++ struct dentry *d, struct vfsmount *mnt, ++ struct inode * inode, u32 mask) + { + int ret = 0; + int newly_watched; +@@ -645,6 +641,10 @@ + * Save a reference to the inode and bump the ref count to make it + * official. We hold a reference to nameidata, which makes this safe. + */ ++ if (d) { ++ watch->dentry = dget(d); ++ watch->mnt = mntget(mnt); ++ } + watch->inode = igrab(inode); + + /* Add the watch to the handle's and the inode's list */ +@@ -666,6 +666,19 @@ + } + EXPORT_SYMBOL_GPL(inotify_add_watch); + ++s32 inotify_add_watch(struct inotify_handle *ih, struct inotify_watch *watch, ++ struct inode *inode, u32 mask) ++{ ++ return __inotify_add_watch(ih, watch, NULL, NULL, inode, mask); ++} ++ ++s32 inotify_add_watch_dget(struct inotify_handle *ih, ++ struct inotify_watch *watch, struct dentry *d, ++ struct vfsmount *mnt, u32 mask) ++{ ++ return __inotify_add_watch(ih, watch, d, mnt, d->d_inode, mask); ++} ++ + /** + * inotify_clone_watch - put the watch next to existing one + * @old: already installed watch +Index: kernel/fs/inotify_user.c +=================================================================== +--- kernel.orig/fs/inotify_user.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/inotify_user.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,6 +20,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -66,46 +67,6 @@ + * first event, or to inotify_destroy(). + */ + +-/* +- * struct inotify_device - represents an inotify instance +- * +- * This structure is protected by the mutex 'mutex'. +- */ +-struct inotify_device { +- wait_queue_head_t wq; /* wait queue for i/o */ +- struct mutex ev_mutex; /* protects event queue */ +- struct mutex up_mutex; /* synchronizes watch updates */ +- struct list_head events; /* list of queued events */ +- atomic_t count; /* reference count */ +- struct user_struct *user; /* user who opened this dev */ +- struct inotify_handle *ih; /* inotify handle */ +- unsigned int queue_size; /* size of the queue (bytes) */ +- unsigned int event_count; /* number of pending events */ +- unsigned int max_events; /* maximum number of events */ +-}; +- +-/* +- * struct inotify_kernel_event - An inotify event, originating from a watch and +- * queued for user-space. A list of these is attached to each instance of the +- * device. In read(), this list is walked and all events that can fit in the +- * buffer are returned. +- * +- * Protected by dev->ev_mutex of the device in which we are queued. +- */ +-struct inotify_kernel_event { +- struct inotify_event event; /* the user-space event */ +- struct list_head list; /* entry in inotify_device's list */ +- char *name; /* filename, if any */ +-}; +- +-/* +- * struct inotify_user_watch - our version of an inotify_watch, we add +- * a reference to the associated inotify_device. +- */ +-struct inotify_user_watch { +- struct inotify_device *dev; /* associated device */ +- struct inotify_watch wdata; /* inotify watch data */ +-}; + + #ifdef CONFIG_SYSCTL + +@@ -361,8 +322,8 @@ + * + * Callers must hold dev->up_mutex. + */ +-static int create_watch(struct inotify_device *dev, struct inode *inode, +- u32 mask) ++int inotify_create_watch(struct inotify_device *dev, struct dentry *d, ++ struct vfsmount *mnt, u32 mask) + { + struct inotify_user_watch *watch; + int ret; +@@ -382,12 +343,13 @@ + atomic_inc(&dev->user->inotify_watches); + + inotify_init_watch(&watch->wdata); +- ret = inotify_add_watch(dev->ih, &watch->wdata, inode, mask); ++ ret = inotify_add_watch_dget(dev->ih, &watch->wdata, d, mnt, mask); + if (ret < 0) + free_inotify_user_watch(&watch->wdata); + + return ret; + } ++EXPORT_SYMBOL(inotify_create_watch); + + /* Device Interface */ + +@@ -527,13 +489,14 @@ + return ret; + } + +-static const struct file_operations inotify_fops = { ++const struct file_operations inotify_fops = { + .poll = inotify_poll, + .read = inotify_read, + .release = inotify_release, + .unlocked_ioctl = inotify_ioctl, + .compat_ioctl = inotify_ioctl, + }; ++EXPORT_SYMBOL(inotify_fops); + + static const struct inotify_operations inotify_user_ops = { + .handle_event = inotify_dev_queue_event, +@@ -610,6 +573,7 @@ + put_unused_fd(fd); + return ret; + } ++EXPORT_SYMBOL(sys_inotify_init); + + asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask) + { +@@ -646,7 +610,7 @@ + mutex_lock(&dev->up_mutex); + ret = inotify_find_update_watch(dev->ih, inode, mask); + if (ret == -ENOENT) +- ret = create_watch(dev, inode, mask); ++ ret = inotify_create_watch(dev, nd.dentry, nd.mnt, mask); + mutex_unlock(&dev->up_mutex); + + path_release(&nd); +Index: kernel/fs/ioprio.c +=================================================================== +--- kernel.orig/fs/ioprio.c 2008-11-18 01:19:45.000000000 +0100 ++++ kernel/fs/ioprio.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,8 @@ + #include + #include + #include ++#include ++#include + + static int set_task_ioprio(struct task_struct *task, int ioprio) + { +@@ -61,8 +63,11 @@ + int data = IOPRIO_PRIO_DATA(ioprio); + struct task_struct *p, *g; + struct user_struct *user; +- struct pid *pgrp; + int ret; ++ struct pid *pgrp; ++ ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; + + switch (class) { + case IOPRIO_CLASS_RT: +@@ -122,17 +127,23 @@ + if (!user) + break; + +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + if (p->uid != who) + continue; + ret = set_task_ioprio(p, ioprio); + if (ret) + goto free_uid; +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + free_uid: + if (who) + free_uid(user); + break; ++ case IOPRIO_WHO_UBC: ++ if (class != IOPRIO_CLASS_BE) ++ return -ERANGE; ++ ++ ret = bc_set_ioprio(who, data); ++ break; + default: + ret = -EINVAL; + } +@@ -175,9 +186,9 @@ + { + struct task_struct *g, *p; + struct user_struct *user; +- struct pid *pgrp; + int ret = -ESRCH; + int tmpio; ++ struct pid *pgrp; + + read_lock(&tasklist_lock); + switch (which) { +@@ -213,7 +224,7 @@ + if (!user) + break; + +- do_each_thread(g, p) { ++ do_each_thread_ve(g, p) { + if (p->uid != user->uid) + continue; + tmpio = get_task_ioprio(p); +@@ -223,7 +234,7 @@ + ret = tmpio; + else + ret = ioprio_best(ret, tmpio); +- } while_each_thread(g, p); ++ } while_each_thread_ve(g, p); + + if (who) + free_uid(user); +Index: kernel/fs/lockd/clntproc.c +=================================================================== +--- kernel.orig/fs/lockd/clntproc.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/lockd/clntproc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -159,6 +159,7 @@ + sigset_t oldset; + unsigned long flags; + int status, vers; ++ struct ve_struct *ve; + + vers = (NFS_PROTO(inode)->version == 3) ? 4 : 1; + if (NFS_PROTO(inode)->version > 3) { +@@ -166,16 +167,19 @@ + return -ENOLCK; + } + ++ ve = set_exec_env(NFS_CLIENT(inode)->cl_xprt->owner_env); + rpc_peeraddr(client, (struct sockaddr *) &addr, sizeof(addr)); + host = nlmclnt_lookup_host(&addr, client->cl_xprt->prot, vers, + nfssrv->nfs_client->cl_hostname, + strlen(nfssrv->nfs_client->cl_hostname)); ++ status = -ENOLCK; + if (host == NULL) +- return -ENOLCK; ++ goto fail; + + call = nlm_alloc_call(host); ++ status = -ENOMEM; + if (call == NULL) +- return -ENOMEM; ++ goto fail; + + nlmclnt_locks_init_private(fl, host); + /* Set up the argument struct */ +@@ -217,6 +221,8 @@ + spin_unlock_irqrestore(¤t->sighand->siglock, flags); + + dprintk("lockd: clnt proc returns %d\n", status); ++fail: ++ (void)set_exec_env(ve); + return status; + } + EXPORT_SYMBOL(nlmclnt_proc); +Index: kernel/fs/lockd/host.c +=================================================================== +--- kernel.orig/fs/lockd/host.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/lockd/host.c 2008-11-24 15:47:46.000000000 +0100 +@@ -52,6 +52,7 @@ + struct nlm_host *host; + struct nsm_handle *nsm = NULL; + int hash; ++ struct ve_struct *ve; + + dprintk("lockd: nlm_lookup_host("NIPQUAD_FMT"->"NIPQUAD_FMT + ", p=%d, v=%d, my role=%s, name=%.*s)\n", +@@ -77,10 +78,14 @@ + * different NLM rpc_clients into one single nlm_host object. + * This would allow us to have one nlm_host per address. + */ ++ ++ ve = get_exec_env(); + chain = &nlm_hosts[hash]; + hlist_for_each_entry(host, pos, chain, h_hash) { + if (!nlm_cmp_addr(&host->h_addr, sin)) + continue; ++ if (!ve_accessible_strict(host->owner_env, ve)) ++ continue; + + /* See if we have an NSM handle for this client */ + if (!nsm) +@@ -140,6 +145,7 @@ + spin_lock_init(&host->h_lock); + INIT_LIST_HEAD(&host->h_granted); + INIT_LIST_HEAD(&host->h_reclaim); ++ host->owner_env = ve; + + if (++nrhosts > NLM_HOST_MAX) + next_gc = 0; +@@ -440,6 +446,52 @@ + next_gc = jiffies + NLM_HOST_COLLECT; + } + ++#ifdef CONFIG_VE ++void ve_nlm_shutdown_hosts(struct ve_struct *ve) ++{ ++ envid_t veid = ve->veid; ++ int i; ++ ++ dprintk("lockd: shutting down host module for ve %d\n", veid); ++ mutex_lock(&nlm_host_mutex); ++ ++ /* Perform a garbage collection pass */ ++ for (i = 0; i < NLM_HOST_NRHASH; i++) { ++ struct nlm_host *host; ++ struct hlist_node *pos; ++ ++ hlist_for_each_entry(host, pos, &nlm_hosts[i], h_hash) { ++ struct rpc_clnt *clnt; ++ ++ if (ve != host->owner_env) ++ continue; ++ ++ hlist_del(&host->h_hash); ++ if (host->h_nsmhandle) ++ host->h_nsmhandle->sm_monitored = 0; ++ dprintk("lockd: delete host %s ve %d\n", host->h_name, ++ veid); ++ if ((clnt = host->h_rpcclnt) != NULL) { ++ if (!list_empty(&clnt->cl_tasks)) { ++ struct rpc_xprt *xprt; ++ ++ printk(KERN_WARNING ++ "lockd: active RPC handle\n"); ++ rpc_killall_tasks(clnt); ++ xprt = clnt->cl_xprt; ++ xprt_disconnect(xprt); ++ xprt->ops->close(xprt); ++ } else ++ rpc_shutdown_client(clnt); ++ } ++ kfree(host); ++ nrhosts--; ++ } ++ } ++ ++ mutex_unlock(&nlm_host_mutex); ++} ++#endif + + /* + * Manage NSM handles +Index: kernel/fs/lockd/svc.c +=================================================================== +--- kernel.orig/fs/lockd/svc.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/lockd/svc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -47,11 +48,12 @@ + EXPORT_SYMBOL(nlmsvc_ops); + + static DEFINE_MUTEX(nlmsvc_mutex); +-static unsigned int nlmsvc_users; +-static pid_t nlmsvc_pid; ++static unsigned int _nlmsvc_users; ++static pid_t _nlmsvc_pid; + static struct svc_serv *nlmsvc_serv; +-int nlmsvc_grace_period; +-unsigned long nlmsvc_timeout; ++int _nlmsvc_grace_period; ++unsigned long _nlmsvc_timeout; ++ + + static DECLARE_COMPLETION(lockd_start_done); + static DECLARE_WAIT_QUEUE_HEAD(lockd_exit); +@@ -179,8 +181,13 @@ + * recvfrom routine. + */ + err = svc_recv(rqstp, timeout); +- if (err == -EAGAIN || err == -EINTR) ++ if (err == -EAGAIN || err == -EINTR) { ++#ifdef CONFIG_VE ++ if (!get_exec_env()->is_running) ++ break; ++#endif + continue; ++ } + if (err < 0) { + printk(KERN_WARNING + "lockd: terminating on error %d\n", +@@ -494,6 +501,29 @@ + return SVC_DENIED; + } + ++#ifdef CONFIG_VE ++extern void ve_nlm_shutdown_hosts(struct ve_struct *ve); ++ ++static int ve_lockd_start(void *data) ++{ ++ return 0; ++} ++ ++static void ve_lockd_stop(void *data) ++{ ++ struct ve_struct *ve = (struct ve_struct *)data; ++ ++ ve_nlm_shutdown_hosts(ve); ++ flush_scheduled_work(); ++} ++ ++static struct ve_hook lockd_hook = { ++ .init = ve_lockd_start, ++ .fini = ve_lockd_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_FS, ++}; ++#endif + + param_set_min_max(port, int, simple_strtol, 0, 65535) + param_set_min_max(grace_period, unsigned long, simple_strtoul, +@@ -522,12 +552,14 @@ + static int __init init_nlm(void) + { + nlm_sysctl_table = register_sysctl_table(nlm_sysctl_root); ++ ve_hook_register(VE_SS_CHAIN, &lockd_hook); + return nlm_sysctl_table ? 0 : -ENOMEM; + } + + static void __exit exit_nlm(void) + { + /* FIXME: delete all NLM clients */ ++ ve_hook_unregister(&lockd_hook); + nlm_shutdown_hosts(); + unregister_sysctl_table(nlm_sysctl_table); + } +Index: kernel/fs/lockd/svcsubs.c +=================================================================== +--- kernel.orig/fs/lockd/svcsubs.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/lockd/svcsubs.c 2008-11-24 15:47:46.000000000 +0100 +@@ -318,6 +318,9 @@ + static int + nlmsvc_is_client(struct nlm_host *host, struct nlm_host *dummy) + { ++ if (!ve_accessible_strict(host->owner_env, get_exec_env())) ++ return 0; ++ + if (host->h_server) { + /* we are destroying locks even though the client + * hasn't asked us too, so don't unmonitor the +Index: kernel/fs/locks.c +=================================================================== +--- kernel.orig/fs/locks.c 2008-11-24 14:18:06.000000000 +0100 ++++ kernel/fs/locks.c 2008-11-24 15:47:46.000000000 +0100 +@@ -129,6 +129,8 @@ + #include + #include + ++#include ++ + #define IS_POSIX(fl) (fl->fl_flags & FL_POSIX) + #define IS_FLOCK(fl) (fl->fl_flags & FL_FLOCK) + #define IS_LEASE(fl) (fl->fl_flags & FL_LEASE) +@@ -145,9 +147,25 @@ + static struct kmem_cache *filelock_cache __read_mostly; + + /* Allocate an empty lock structure. */ +-static struct file_lock *locks_alloc_lock(void) ++static struct file_lock *locks_alloc_lock(int charge) + { +- return kmem_cache_alloc(filelock_cache, GFP_KERNEL); ++ struct file_lock *fl; ++ ++ fl = kmem_cache_alloc(filelock_cache, GFP_KERNEL); ++#ifdef CONFIG_BEANCOUNTERS ++ if (fl == NULL) ++ goto out; ++ fl->fl_charged = 0; ++ if (!charge) ++ goto out; ++ if (!ub_flock_charge(fl, 1)) ++ goto out; ++ ++ kmem_cache_free(filelock_cache, fl); ++ fl = NULL; ++out: ++#endif ++ return fl; + } + + static void locks_release_private(struct file_lock *fl) +@@ -172,6 +190,7 @@ + BUG_ON(!list_empty(&fl->fl_block)); + BUG_ON(!list_empty(&fl->fl_link)); + ++ ub_flock_uncharge(fl); + locks_release_private(fl); + kmem_cache_free(filelock_cache, fl); + } +@@ -273,7 +292,7 @@ + if (type < 0) + return type; + +- fl = locks_alloc_lock(); ++ fl = locks_alloc_lock(type != F_UNLCK); + if (fl == NULL) + return -ENOMEM; + +@@ -460,7 +479,7 @@ + /* Allocate a file_lock initialised to this type of lease */ + static struct file_lock *lease_alloc(struct file *filp, int type) + { +- struct file_lock *fl = locks_alloc_lock(); ++ struct file_lock *fl = locks_alloc_lock(1); + int error = -ENOMEM; + + if (fl == NULL) +@@ -746,8 +765,13 @@ + goto find_conflict; + + if (request->fl_type != F_UNLCK) { ++ /* ++ * Nont F_UNLCK request must be already charged in ++ * flock_make_lock(). Actually new_fl must be charged not the ++ * request, but we try to fail earlier. ++ */ + error = -ENOMEM; +- new_fl = locks_alloc_lock(); ++ new_fl = locks_alloc_lock(0); + if (new_fl == NULL) + goto out; + error = 0; +@@ -797,6 +821,10 @@ + } + if (request->fl_flags & FL_ACCESS) + goto out; ++ ++ set_flock_charged(new_fl); ++ unset_flock_charged(request); ++ + locks_copy_lock(new_fl, request); + locks_insert_lock(before, new_fl); + new_fl = NULL; +@@ -828,8 +856,11 @@ + if (!(request->fl_flags & FL_ACCESS) && + (request->fl_type != F_UNLCK || + request->fl_start != 0 || request->fl_end != OFFSET_MAX)) { +- new_fl = locks_alloc_lock(); +- new_fl2 = locks_alloc_lock(); ++ if (request->fl_type != F_UNLCK) ++ new_fl = locks_alloc_lock(1); ++ else ++ new_fl = NULL; ++ new_fl2 = locks_alloc_lock(0); + } + + lock_kernel(); +@@ -963,7 +994,7 @@ + * bail out. + */ + error = -ENOLCK; /* "no luck" */ +- if (right && left == right && !new_fl2) ++ if (right && left == right && !(request->fl_type == F_UNLCK || new_fl2)) + goto out; + + error = 0; +@@ -974,23 +1005,32 @@ + goto out; + } + +- if (!new_fl) { +- error = -ENOLCK; ++ error = -ENOLCK; ++ if (!new_fl) ++ goto out; ++ if (right && (left == right) && ub_flock_charge(new_fl, 1)) + goto out; +- } + locks_copy_lock(new_fl, request); + locks_insert_lock(before, new_fl); + new_fl = NULL; ++ error = 0; + } + if (right) { + if (left == right) { + /* The new lock breaks the old one in two pieces, + * so we have to use the second new lock. + */ ++ error = -ENOLCK; ++ if (added && ub_flock_charge(new_fl2, ++ request->fl_type != F_UNLCK)) ++ goto out; ++ /* FIXME move all fl_charged manipulations in ub code */ ++ set_flock_charged(new_fl2); + left = new_fl2; + new_fl2 = NULL; + locks_copy_lock(left, right); + locks_insert_lock(before, left); ++ error = 0; + } + right->fl_start = request->fl_end + 1; + locks_wake_up_blocks(right); +@@ -1381,7 +1421,7 @@ + goto out; + + error = -ENOMEM; +- new_fl = locks_alloc_lock(); ++ new_fl = locks_alloc_lock(1); + if (new_fl == NULL) + goto out; + +@@ -1615,6 +1655,7 @@ + out: + return error; + } ++EXPORT_SYMBOL_GPL(sys_flock); + + /** + * vfs_test_lock - test file byte range lock +@@ -1635,7 +1676,7 @@ + + static int posix_lock_to_flock(struct flock *flock, struct file_lock *fl) + { +- flock->l_pid = fl->fl_pid; ++ flock->l_pid = pid_to_vpid(fl->fl_pid); + #if BITS_PER_LONG == 32 + /* + * Make sure we can represent the posix lock via +@@ -1657,7 +1698,7 @@ + #if BITS_PER_LONG == 32 + static void posix_lock_to_flock64(struct flock64 *flock, struct file_lock *fl) + { +- flock->l_pid = fl->fl_pid; ++ flock->l_pid = pid_to_vpid(fl->fl_pid); + flock->l_start = fl->fl_start; + flock->l_len = fl->fl_end == OFFSET_MAX ? 0 : + fl->fl_end - fl->fl_start + 1; +@@ -1751,7 +1792,7 @@ + int fcntl_setlk(unsigned int fd, struct file *filp, unsigned int cmd, + struct flock __user *l) + { +- struct file_lock *file_lock = locks_alloc_lock(); ++ struct file_lock *file_lock = locks_alloc_lock(0); + struct flock flock; + struct inode *inode; + struct file *f; +@@ -1888,7 +1929,7 @@ + int fcntl_setlk64(unsigned int fd, struct file *filp, unsigned int cmd, + struct flock64 __user *l) + { +- struct file_lock *file_lock = locks_alloc_lock(); ++ struct file_lock *file_lock = locks_alloc_lock(0); + struct flock64 flock; + struct inode *inode; + struct file *f; +@@ -2105,7 +2146,9 @@ + int id, char *pfx) + { + struct inode *inode = NULL; ++ unsigned int fl_pid; + ++ fl_pid = pid_to_vpid(fl->fl_pid); + if (fl->fl_file != NULL) + inode = fl->fl_file->f_path.dentry->d_inode; + +@@ -2145,16 +2188,16 @@ + } + if (inode) { + #ifdef WE_CAN_BREAK_LSLK_NOW +- seq_printf(f, "%d %s:%ld ", fl->fl_pid, ++ seq_printf(f, "%d %s:%ld ", fl_pid, + inode->i_sb->s_id, inode->i_ino); + #else + /* userspace relies on this representation of dev_t ;-( */ +- seq_printf(f, "%d %02x:%02x:%ld ", fl->fl_pid, ++ seq_printf(f, "%d %02x:%02x:%ld ", fl_pid, + MAJOR(inode->i_sb->s_dev), + MINOR(inode->i_sb->s_dev), inode->i_ino); + #endif + } else { +- seq_printf(f, "%d :0 ", fl->fl_pid); ++ seq_printf(f, "%d :0 ", fl_pid); + } + if (IS_POSIX(fl)) { + if (fl->fl_end == OFFSET_MAX) +@@ -2171,6 +2214,8 @@ + struct file_lock *fl, *bfl; + + fl = list_entry(v, struct file_lock, fl_link); ++ if (!ve_accessible(fl->fl_file->owner_env, get_exec_env())) ++ goto out; + + lock_get_status(f, fl, (long)f->private, ""); + +@@ -2178,6 +2223,7 @@ + lock_get_status(f, bfl, (long)f->private, " ->"); + + f->private++; ++out: + return 0; + } + +@@ -2287,7 +2333,7 @@ + static int __init filelock_init(void) + { + filelock_cache = kmem_cache_create("file_lock_cache", +- sizeof(struct file_lock), 0, SLAB_PANIC, ++ sizeof(struct file_lock), 0, SLAB_PANIC|SLAB_UBC, + init_once); + return 0; + } +Index: kernel/fs/mpage.c +=================================================================== +--- kernel.orig/fs/mpage.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/mpage.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + /* + * I/O completion handler for multipage BIOs. +Index: kernel/fs/namei.c +=================================================================== +--- kernel.orig/fs/namei.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/namei.c 2008-11-24 15:47:46.000000000 +0100 +@@ -141,6 +141,7 @@ + { + char *tmp, *result; + ++ /*ub_dentry_checkup();*/ + result = ERR_PTR(-ENOMEM); + tmp = __getname(); + if (tmp) { +@@ -434,6 +435,21 @@ + if (!dentry) + dentry = d_lookup(parent, name); + ++ /* ++ * The revalidation rules are simple: ++ * d_revalidate operation is called when we're about to use a cached ++ * dentry rather than call d_lookup. ++ * d_revalidate method may unhash the dentry itself or return FALSE, in ++ * which case if the dentry can be released d_lookup will be called. ++ * ++ * Additionally, by request of NFS people ++ * (http://linux.bkbits.net:8080/linux-2.4/cset@1.181?nav=index.html|src/|src/fs|related/fs/namei.c) ++ * d_revalidate is called when `/', `.' or `..' are looked up. ++ * Since re-lookup is impossible on them, we introduce a hack and ++ * return an error in this case. ++ * ++ * 2003/02/19 SAW ++ */ + if (dentry && dentry->d_op && dentry->d_op->d_revalidate) + dentry = do_revalidate(dentry, nd); + +@@ -493,6 +509,7 @@ + struct dentry * result; + struct inode *dir = parent->d_inode; + ++repeat: + mutex_lock(&dir->i_mutex); + /* + * First re-do the cached lookup just in case it was created +@@ -539,7 +556,7 @@ + if (result->d_op && result->d_op->d_revalidate) { + result = do_revalidate(result, nd); + if (!result) +- result = ERR_PTR(-ENOENT); ++ goto repeat; + } + return result; + } +@@ -765,6 +782,13 @@ + read_unlock(&fs->lock); + break; + } ++#ifdef CONFIG_VE ++ if (nd->dentry == get_exec_env()->fs_root && ++ nd->mnt == get_exec_env()->fs_rootmnt) { ++ read_unlock(¤t->fs->lock); ++ break; ++ } ++#endif + read_unlock(&fs->lock); + spin_lock(&dcache_lock); + if (nd->dentry != nd->mnt->mnt_root) { +@@ -806,6 +830,10 @@ + if (dentry->d_op && dentry->d_op->d_revalidate) + goto need_revalidate; + done: ++ if ((nd->flags & LOOKUP_STRICT) && d_mountpoint(dentry)) { ++ dput(dentry); ++ return -ENOENT; ++ } + path->mnt = mnt; + path->dentry = dentry; + __follow_mount(path); +@@ -843,6 +871,7 @@ + struct inode *inode; + int err; + unsigned int lookup_flags = nd->flags; ++ int real_components = 0; + + while (*name=='/') + name++; +@@ -912,6 +941,7 @@ + break; + } + /* This does the actual lookups.. */ ++ real_components++; + err = do_lookup(nd, &this, &next); + if (err) + break; +@@ -925,6 +955,9 @@ + goto out_dput; + + if (inode->i_op->follow_link) { ++ err = -ENOENT; ++ if (lookup_flags & LOOKUP_STRICT) ++ goto out_dput; + err = do_follow_link(&next, nd); + if (err) + goto return_err; +@@ -972,6 +1005,7 @@ + break; + inode = next.dentry->d_inode; + if ((lookup_flags & LOOKUP_FOLLOW) ++ && !(lookup_flags & LOOKUP_STRICT) + && inode && inode->i_op && inode->i_op->follow_link) { + err = do_follow_link(&next, nd); + if (err) +@@ -993,26 +1027,40 @@ + nd->last_type = LAST_NORM; + if (this.name[0] != '.') + goto return_base; +- if (this.len == 1) ++ if (this.len == 1) { + nd->last_type = LAST_DOT; +- else if (this.len == 2 && this.name[1] == '.') ++ goto return_reval; ++ } else if (this.len == 2 && this.name[1] == '.') { + nd->last_type = LAST_DOTDOT; +- else +- goto return_base; ++ goto return_reval; ++ } ++return_base: ++ if (!(nd->flags & LOOKUP_NOAREACHECK)) { ++ err = check_area_access_ve(nd->dentry, nd->mnt); ++ if (err) ++ break; ++ } ++ return 0; + return_reval: + /* + * We bypassed the ordinary revalidation routines. + * We may need to check the cached dentry for staleness. + */ +- if (nd->dentry && nd->dentry->d_sb && ++ if (!real_components && nd->dentry && nd->dentry->d_sb && + (nd->dentry->d_sb->s_type->fs_flags & FS_REVAL_DOT)) { + err = -ESTALE; + /* Note: we do not d_invalidate() */ + if (!nd->dentry->d_op->d_revalidate(nd->dentry, nd)) ++ /* ++ * This lookup is for `/' or `.' or `..'. ++ * The filesystem unhashed the dentry itself ++ * inside d_revalidate (otherwise, d_invalidate ++ * wouldn't succeed). As a special courtesy to ++ * NFS we return an error. 2003/02/19 SAW ++ */ + break; + } +-return_base: +- return 0; ++ goto return_base; + out_dput: + dput_path(&next, nd); + break; +@@ -2019,6 +2067,7 @@ + { + return sys_mknodat(AT_FDCWD, filename, mode, dev); + } ++EXPORT_SYMBOL_GPL(sys_mknod); + + int vfs_mkdir(struct inode *dir, struct dentry *dentry, struct vfsmount *mnt, + int mode) +@@ -2080,6 +2129,7 @@ + { + return sys_mkdirat(AT_FDCWD, pathname, mode); + } ++EXPORT_SYMBOL_GPL(sys_mkdir); + + /* + * We try to drop the dentry early: we should have +@@ -2107,6 +2157,7 @@ + spin_unlock(&dentry->d_lock); + spin_unlock(&dcache_lock); + } ++EXPORT_SYMBOL(sys_symlink); + + int vfs_rmdir(struct inode *dir, struct dentry *dentry,struct vfsmount *mnt) + { +@@ -2188,6 +2239,7 @@ + { + return do_rmdir(AT_FDCWD, pathname); + } ++EXPORT_SYMBOL_GPL(sys_rmdir); + + int vfs_unlink(struct inode *dir, struct dentry *dentry, struct vfsmount *mnt) + { +@@ -2287,6 +2339,7 @@ + { + return do_unlinkat(AT_FDCWD, pathname); + } ++EXPORT_SYMBOL_GPL(sys_unlink); + + int vfs_symlink(struct inode *dir, struct dentry *dentry, struct vfsmount *mnt, + const char *oldname, int mode) +@@ -2451,6 +2504,7 @@ + { + return sys_linkat(AT_FDCWD, oldname, AT_FDCWD, newname, 0); + } ++EXPORT_SYMBOL(sys_rename); + + /* + * The worst of all namespace operations - renaming directory. "Perverted" +@@ -2567,6 +2621,9 @@ + int is_dir = S_ISDIR(old_dentry->d_inode->i_mode); + const char *old_name; + ++ if (DQUOT_RENAME(old_dentry->d_inode, old_dir, new_dir)) ++ return -EXDEV; ++ + if (old_dentry->d_inode == new_dentry->d_inode) + return 0; + +Index: kernel/fs/namespace.c +=================================================================== +--- kernel.orig/fs/namespace.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/namespace.c 2008-11-24 15:47:46.000000000 +0100 +@@ -32,6 +32,7 @@ + + /* spinlock for vfsmount related operations, inplace of dcache_lock */ + __cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock); ++EXPORT_SYMBOL(vfsmount_lock); + + static int event; + +@@ -57,6 +58,7 @@ + { + struct vfsmount *mnt = kmem_cache_zalloc(mnt_cache, GFP_KERNEL); + if (mnt) { ++ mnt->owner = VEID(get_exec_env()); + atomic_set(&mnt->mnt_count, 1); + INIT_LIST_HEAD(&mnt->mnt_hash); + INIT_LIST_HEAD(&mnt->mnt_child); +@@ -68,7 +70,7 @@ + INIT_LIST_HEAD(&mnt->mnt_slave); + if (name) { + int size = strlen(name) + 1; +- char *newname = kmalloc(size, GFP_KERNEL); ++ char *newname = kmalloc(size, GFP_KERNEL_UBC); + if (newname) { + memcpy(newname, name, size); + mnt->mnt_devname = newname; +@@ -344,10 +346,33 @@ + seq_escape(m, s, " \t\n\\"); + } + ++static int prepare_mnt_root_mangle(struct vfsmount *mnt, ++ char **path_buf, char **path) ++{ ++ /* skip FS_NOMOUNT mounts (rootfs) */ ++ if (mnt->mnt_sb->s_flags & MS_NOUSER) ++ return -EACCES; ++ ++ *path_buf = (char *)__get_free_page(GFP_KERNEL); ++ if (!*path_buf) ++ return -ENOMEM; ++ ++ *path = d_path(mnt->mnt_root, mnt, *path_buf, PAGE_SIZE); ++ if (IS_ERR(*path)) { ++ free_page((unsigned long)*path_buf); ++ /* ++ * This means that the file position will be incremented, i.e. ++ * the total number of "invisible" vfsmnt will leak. ++ */ ++ return -EACCES; ++ } ++ return 0; ++} ++ + static int show_vfsmnt(struct seq_file *m, void *v) + { + struct vfsmount *mnt = list_entry(v, struct vfsmount, mnt_list); +- int err = 0; ++ int err; + static struct proc_fs_info { + int flag; + char *str; +@@ -367,10 +392,20 @@ + { 0, NULL } + }; + struct proc_fs_info *fs_infop; ++ char *path_buf, *path; + +- mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none"); ++ err = prepare_mnt_root_mangle(mnt, &path_buf, &path); ++ if (err < 0) ++ return (err == -EACCES ? 0 : err); ++ ++ if (ve_is_super(get_exec_env()) || ++ !(mnt->mnt_sb->s_type->fs_flags & FS_MANGLE_PROC)) ++ mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none"); ++ else ++ mangle(m, mnt->mnt_sb->s_type->name); + seq_putc(m, ' '); +- seq_path(m, mnt, mnt->mnt_root, " \t\n\\"); ++ mangle(m, path); ++ free_page((unsigned long) path_buf); + seq_putc(m, ' '); + mangle(m, mnt->mnt_sb->s_type->name); + if (mnt->mnt_sb->s_subtype && mnt->mnt_sb->s_subtype[0]) { +@@ -402,18 +437,27 @@ + static int show_vfsstat(struct seq_file *m, void *v) + { + struct vfsmount *mnt = list_entry(v, struct vfsmount, mnt_list); +- int err = 0; ++ char *path_buf, *path; ++ int err; ++ ++ err = prepare_mnt_root_mangle(mnt, &path_buf, &path); ++ if (err < 0) ++ return (err == -EACCES ? 0 : err); + + /* device */ + if (mnt->mnt_devname) { + seq_puts(m, "device "); +- mangle(m, mnt->mnt_devname); ++ if (ve_is_super(get_exec_env())) ++ mangle(m, mnt->mnt_devname); ++ else ++ mangle(m, mnt->mnt_sb->s_type->name); + } else + seq_puts(m, "no device"); + + /* mount point */ + seq_puts(m, " mounted on "); +- seq_path(m, mnt, mnt->mnt_root, " \t\n\\"); ++ mangle(m, path); ++ free_page((unsigned long)path_buf); + seq_putc(m, ' '); + + /* file system type */ +@@ -512,6 +556,7 @@ + mntput(mnt); + } + } ++EXPORT_SYMBOL(release_mounts); + + void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill) + { +@@ -534,6 +579,7 @@ + change_mnt_propagation(p, MS_PRIVATE); + } + } ++EXPORT_SYMBOL(umount_tree); + + static int do_umount(struct vfsmount *mnt, int flags) + { +@@ -621,6 +667,34 @@ + return retval; + } + ++#ifdef CONFIG_VE ++void umount_ve_fs_type(struct file_system_type *local_fs_type) ++{ ++ struct vfsmount *mnt; ++ struct list_head *p, *q; ++ LIST_HEAD(kill); ++ LIST_HEAD(umount_list); ++ ++ down_write(&namespace_sem); ++ spin_lock(&vfsmount_lock); ++ list_for_each_safe(p, q, ¤t->nsproxy->mnt_ns->list) { ++ mnt = list_entry(p, struct vfsmount, mnt_list); ++ if (mnt->mnt_sb->s_type != local_fs_type) ++ continue; ++ list_del(p); ++ list_add(p, &kill); ++ } ++ ++ while (!list_empty(&kill)) { ++ mnt = list_entry(kill.next, struct vfsmount, mnt_list); ++ umount_tree(mnt, 1, &umount_list); ++ } ++ spin_unlock(&vfsmount_lock); ++ up_write(&namespace_sem); ++ release_mounts(&umount_list); ++} ++#endif ++ + /* + * Now umount can handle mount points as well as block devices. + * This is important for filesystems which use unnamed block devices. +@@ -644,7 +718,7 @@ + goto dput_and_out; + + retval = -EPERM; +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + goto dput_and_out; + + retval = do_umount(nd.mnt, flags); +@@ -668,7 +742,7 @@ + + static int mount_is_safe(struct nameidata *nd) + { +- if (capable(CAP_SYS_ADMIN)) ++ if (capable(CAP_VE_SYS_ADMIN)) + return 0; + return -EPERM; + #ifdef notyet +@@ -907,6 +981,8 @@ + + if (nd->dentry != nd->mnt->mnt_root) + return -EINVAL; ++ if (!ve_accessible_veid(nd->mnt->owner, get_exec_env()->veid)) ++ return -EPERM; + + down_write(&namespace_sem); + spin_lock(&vfsmount_lock); +@@ -920,7 +996,8 @@ + /* + * do loopback mount. + */ +-static int do_loopback(struct nameidata *nd, char *old_name, int recurse) ++static int do_loopback(struct nameidata *nd, char *old_name, int recurse, ++ int mnt_flags) + { + struct nameidata old_nd; + struct vfsmount *mnt = NULL; +@@ -950,6 +1027,7 @@ + if (!mnt) + goto out; + ++ mnt->mnt_flags |= mnt_flags; + err = graft_tree(mnt, nd); + if (err) { + LIST_HEAD(umount_list); +@@ -975,8 +1053,9 @@ + { + int err; + struct super_block *sb = nd->mnt->mnt_sb; ++ int bind; + +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + + if (!check_mnt(nd->mnt)) +@@ -985,12 +1064,23 @@ + if (nd->dentry != nd->mnt->mnt_root) + return -EINVAL; + ++ if (!ve_accessible_veid(nd->mnt->owner, get_exec_env()->veid)) ++ return -EPERM; ++ ++ /* do not allow to remount bind-mounts with another mountpoint flags */ ++ bind = 0; ++ if (nd->dentry != sb->s_root) { ++ if ((flags & ~(MS_BIND|MS_POSIXACL|MS_NOUSER)) != 0) ++ return -EINVAL; ++ bind = 1; ++ } ++ + down_write(&sb->s_umount); +- err = do_remount_sb(sb, flags, data, 0); ++ err = bind ? 0 : do_remount_sb(sb, flags, data, 0); + if (!err) + nd->mnt->mnt_flags = mnt_flags; + up_write(&sb->s_umount); +- if (!err) ++ if (!err && !bind) + security_sb_post_remount(nd->mnt, flags, data); + return err; + } +@@ -1010,7 +1100,7 @@ + struct nameidata old_nd, parent_nd; + struct vfsmount *p; + int err = 0; +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + if (!old_name || !*old_name) + return -EINVAL; +@@ -1018,6 +1108,10 @@ + if (err) + return err; + ++ err = -EPERM; ++ if (!ve_accessible_veid(old_nd.mnt->owner, get_exec_env()->veid)) ++ goto out_nosem; ++ + down_write(&namespace_sem); + while (d_mountpoint(nd->dentry) && follow_down(&nd->mnt, &nd->dentry)) + ; +@@ -1073,6 +1167,7 @@ + up_write(&namespace_sem); + if (!err) + path_release(&parent_nd); ++out_nosem: + path_release(&old_nd); + return err; + } +@@ -1090,7 +1185,7 @@ + return -EINVAL; + + /* we need capabilities... */ +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + + mnt = do_kern_mount(type, flags, name, data); +@@ -1129,6 +1224,10 @@ + + newmnt->mnt_flags = mnt_flags; + ++ /* make this before graft_tree reveals mnt_root to the world... */ ++ if (nd->dentry->d_flags & DCACHE_VIRTUAL) ++ newmnt->mnt_root->d_flags |= DCACHE_VIRTUAL; ++ + if ((err = graft_tree(newmnt, nd))) + goto unlock; + +@@ -1471,7 +1570,7 @@ + retval = do_remount(&nd, flags & ~MS_REMOUNT, mnt_flags, + data_page); + else if (flags & MS_BIND) +- retval = do_loopback(&nd, dev_name, flags & MS_REC); ++ retval = do_loopback(&nd, dev_name, flags & MS_REC, mnt_flags); + else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE)) + retval = do_change_type(&nd, flags); + else if (flags & MS_MOVE) +@@ -1613,6 +1712,7 @@ + free_page(type_page); + return retval; + } ++EXPORT_SYMBOL_GPL(sys_mount); + + /* + * Replace the fs->{rootmnt,root} with {mnt,dentry}. Put the old values. +@@ -1664,7 +1764,7 @@ + struct fs_struct *fs; + + read_lock(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_ve(g, p) { + task_lock(p); + fs = p->fs; + if (fs) { +@@ -1679,7 +1779,7 @@ + put_fs_struct(fs); + } else + task_unlock(p); +- } while_each_thread(g, p); ++ } while_each_thread_ve(g, p); + read_unlock(&tasklist_lock); + } + +@@ -1846,7 +1946,7 @@ + init_rwsem(&namespace_sem); + + mnt_cache = kmem_cache_create("mnt_cache", sizeof(struct vfsmount), +- 0, SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL); ++ 0, SLAB_HWCACHE_ALIGN | SLAB_PANIC | SLAB_UBC, NULL); + + mount_hashtable = (struct list_head *)__get_free_page(GFP_ATOMIC); + +@@ -1908,6 +2008,7 @@ + release_mounts(&umount_list); + kfree(ns); + } ++EXPORT_SYMBOL_GPL(__put_mnt_ns); + + char *d_namespace_path(struct dentry *dentry, struct vfsmount *vfsmnt, + char *buf, int buflen) +@@ -1926,7 +2027,7 @@ + mntput(rootmnt); + if (nsrootmnt) + root = dget(nsrootmnt->mnt_root); +- res = __d_path(dentry, vfsmnt, root, nsrootmnt, buf, buflen, 1); ++ res = __d_path(dentry, vfsmnt, root, nsrootmnt, buf, buflen); + dput(root); + mntput(nsrootmnt); + /* Prevent empty path for lazily unmounted filesystems. */ +Index: kernel/fs/nfs/client.c +=================================================================== +--- kernel.orig/fs/nfs/client.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/nfs/client.c 2008-11-24 15:47:46.000000000 +0100 +@@ -116,6 +116,7 @@ + + atomic_set(&clp->cl_count, 1); + clp->cl_cons_state = NFS_CS_INITING; ++ clp->owner_env = get_exec_env(); + + clp->cl_nfsversion = nfsversion; + memcpy(&clp->cl_addr, addr, sizeof(clp->cl_addr)); +@@ -210,7 +211,9 @@ + static struct nfs_client *__nfs_find_client(const struct sockaddr_in *addr, int nfsversion, int match_port) + { + struct nfs_client *clp; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + list_for_each_entry(clp, &nfs_client_list, cl_share_link) { + /* Don't match clients that failed to initialise properly */ + if (clp->cl_cons_state < 0) +@@ -220,6 +223,9 @@ + if (clp->cl_nfsversion != nfsversion) + continue; + ++ if (!ve_accessible_strict(clp->owner_env, ve)) ++ continue; ++ + if (memcmp(&clp->cl_addr.sin_addr, &addr->sin_addr, + sizeof(clp->cl_addr.sin_addr)) != 0) + continue; +Index: kernel/fs/nfs/super.c +=================================================================== +--- kernel.orig/fs/nfs/super.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/nfs/super.c 2008-11-24 15:47:46.000000000 +0100 +@@ -48,6 +48,9 @@ + #include + #include + #include ++#include ++#include ++#include + + #include + #include +@@ -208,7 +211,8 @@ + .name = "nfs", + .get_sb = nfs_get_sb, + .kill_sb = nfs_kill_super, +- .fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, ++ .fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT| ++ FS_BINARY_MOUNTDATA|FS_VIRTUALIZED, + }; + + struct file_system_type nfs_xdev_fs_type = { +@@ -216,7 +220,8 @@ + .name = "nfs", + .get_sb = nfs_xdev_get_sb, + .kill_sb = nfs_kill_super, +- .fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, ++ .fs_flags = FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT| ++ FS_BINARY_MOUNTDATA|FS_VIRTUALIZED, + }; + + static const struct super_operations nfs_sops = { +@@ -280,6 +285,55 @@ + .seeks = DEFAULT_SEEKS, + }; + ++#ifdef CONFIG_VE ++static int ve_nfs_start(void *data) ++{ ++ return 0; ++} ++ ++static void ve_nfs_stop(void *data) ++{ ++ struct ve_struct *ve; ++ struct super_block *sb; ++ ++ flush_scheduled_work(); ++ ++ ve = (struct ve_struct *)data; ++ /* Basically, on a valid stop we can be here iff NFS was mounted ++ read-only. In such a case client force-stop is not a problem. ++ If we are here and NFS is read-write, we are in a FORCE stop, so ++ force the client to stop. ++ Lock daemon is already dead. ++ Only superblock client remains. Den */ ++ spin_lock(&sb_lock); ++ list_for_each_entry(sb, &super_blocks, s_list) { ++ struct rpc_clnt *clnt; ++ struct rpc_xprt *xprt; ++ if (sb->s_type != &nfs_fs_type) ++ continue; ++ clnt = NFS_SB(sb)->client; ++ if (!ve_accessible_strict(clnt->cl_xprt->owner_env, ve)) ++ continue; ++ clnt->cl_broken = 1; ++ rpc_killall_tasks(clnt); ++ ++ xprt = clnt->cl_xprt; ++ xprt_disconnect(xprt); ++ xprt->ops->close(xprt); ++ } ++ spin_unlock(&sb_lock); ++ ++ flush_scheduled_work(); ++} ++ ++static struct ve_hook nfs_hook = { ++ .init = ve_nfs_start, ++ .fini = ve_nfs_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_NET_POST, ++}; ++#endif ++ + /* + * Register the NFS filesystems + */ +@@ -300,6 +354,7 @@ + goto error_2; + #endif + register_shrinker(&acl_shrinker); ++ ve_hook_register(VE_SS_CHAIN, &nfs_hook); + return 0; + + #ifdef CONFIG_NFS_V4 +@@ -318,6 +373,7 @@ + void __exit unregister_nfs_fs(void) + { + unregister_shrinker(&acl_shrinker); ++ ve_hook_unregister(&nfs_hook); + #ifdef CONFIG_NFS_V4 + unregister_filesystem(&nfs4_fs_type); + #endif +@@ -561,6 +617,9 @@ + struct nfs_server *server = NFS_SB(vfsmnt->mnt_sb); + struct rpc_clnt *rpc; + ++ /* ++ * FIXME - think over wether this is OK ++ */ + shrink_submounts(vfsmnt, &nfs_automount_list); + + if (!(flags & MNT_FORCE)) +@@ -1353,6 +1412,11 @@ + .mntflags = flags, + }; + int error; ++ struct ve_struct *ve; ++ ++ ve = get_exec_env(); ++ if (!ve_is_super(ve) && !(get_exec_env()->features & VE_FEATURE_NFS)) ++ return -ENODEV; + + /* Validate the mount data */ + error = nfs_validate_mount_data(raw_data, &data, &mntfh, dev_name); +Index: kernel/fs/open.c +=================================================================== +--- kernel.orig/fs/open.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/open.c 2008-11-24 15:47:46.000000000 +0100 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -49,7 +50,21 @@ + + EXPORT_SYMBOL(vfs_statfs); + +-static int vfs_statfs_native(struct dentry *dentry, struct statfs *buf) ++int faudit_statfs(struct super_block *sb, struct kstatfs *buf) ++{ ++ struct faudit_statfs_arg arg; ++ ++ arg.sb = sb; ++ arg.stat = buf; ++ ++ if (virtinfo_notifier_call(VITYPE_FAUDIT, VIRTINFO_FAUDIT_STATFS, &arg) ++ != NOTIFY_DONE) ++ return arg.err; ++ return 0; ++} ++ ++static int vfs_statfs_native(struct dentry *dentry, struct vfsmount *mnt, ++ struct statfs *buf) + { + struct kstatfs st; + int retval; +@@ -58,6 +73,10 @@ + if (retval) + return retval; + ++ retval = faudit_statfs(mnt->mnt_sb, &st); ++ if (retval) ++ return retval; ++ + if (sizeof(*buf) == sizeof(st)) + memcpy(buf, &st, sizeof(st)); + else { +@@ -92,7 +111,8 @@ + return 0; + } + +-static int vfs_statfs64(struct dentry *dentry, struct statfs64 *buf) ++static int vfs_statfs64(struct dentry *dentry, struct vfsmount *mnt, ++ struct statfs64 *buf) + { + struct kstatfs st; + int retval; +@@ -101,6 +121,10 @@ + if (retval) + return retval; + ++ retval = faudit_statfs(mnt->mnt_sb, &st); ++ if (retval) ++ return retval; ++ + if (sizeof(*buf) == sizeof(st)) + memcpy(buf, &st, sizeof(st)); + else { +@@ -127,7 +151,7 @@ + error = user_path_walk(path, &nd); + if (!error) { + struct statfs tmp; +- error = vfs_statfs_native(nd.dentry, &tmp); ++ error = vfs_statfs_native(nd.dentry, nd.mnt, &tmp); + if (!error && copy_to_user(buf, &tmp, sizeof(tmp))) + error = -EFAULT; + path_release(&nd); +@@ -146,7 +170,7 @@ + error = user_path_walk(path, &nd); + if (!error) { + struct statfs64 tmp; +- error = vfs_statfs64(nd.dentry, &tmp); ++ error = vfs_statfs64(nd.dentry, nd.mnt, &tmp); + if (!error && copy_to_user(buf, &tmp, sizeof(tmp))) + error = -EFAULT; + path_release(&nd); +@@ -165,7 +189,7 @@ + file = fget(fd); + if (!file) + goto out; +- error = vfs_statfs_native(file->f_path.dentry, &tmp); ++ error = vfs_statfs_native(file->f_path.dentry, file->f_path.mnt, &tmp); + if (!error && copy_to_user(buf, &tmp, sizeof(tmp))) + error = -EFAULT; + fput(file); +@@ -186,7 +210,7 @@ + file = fget(fd); + if (!file) + goto out; +- error = vfs_statfs64(file->f_path.dentry, &tmp); ++ error = vfs_statfs64(file->f_path.dentry, file->f_path.mnt, &tmp); + if (!error && copy_to_user(buf, &tmp, sizeof(tmp))) + error = -EFAULT; + fput(file); +@@ -589,15 +613,20 @@ + return err; + } + +-asmlinkage long sys_fchmodat(int dfd, const char __user *filename, +- mode_t mode) ++static long do_fchmodat(int dfd, const char __user *filename, mode_t mode, ++ int flags) + { + struct nameidata nd; + struct inode * inode; +- int error; ++ int error = -EINVAL; + struct iattr newattrs; ++ int follow; ++ ++ if ((flags & ~AT_SYMLINK_NOFOLLOW) != 0) ++ goto out; + +- error = __user_walk_fd(dfd, filename, LOOKUP_FOLLOW, &nd); ++ follow = (flags & AT_SYMLINK_NOFOLLOW) ? 0 : LOOKUP_FOLLOW; ++ error = __user_walk_fd(dfd, filename, follow, &nd); + if (error) + goto out; + inode = nd.dentry->d_inode; +@@ -624,6 +653,12 @@ + return error; + } + ++asmlinkage long sys_fchmodat(int dfd, const char __user *filename, ++ mode_t mode) ++{ ++ return do_fchmodat(dfd, filename, mode, 0); ++} ++ + asmlinkage long sys_chmod(const char __user *filename, mode_t mode) + { + return sys_fchmodat(AT_FDCWD, filename, mode); +@@ -681,6 +716,7 @@ + out: + return error; + } ++EXPORT_SYMBOL_GPL(sys_chown); + + asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user, + gid_t group, int flag) +@@ -898,6 +934,7 @@ + return filp; + } + ++int odirect_enable = 0; + /* + * dentry_open() will have done dput(dentry) and mntput(mnt) if it returns an + * error. +@@ -907,6 +944,9 @@ + int error; + struct file *f; + ++ if (!capable(CAP_SYS_RAWIO) && !odirect_enable) ++ flags &= ~O_DIRECT; ++ + error = -ENFILE; + f = get_empty_filp(); + if (f == NULL) { +@@ -1196,3 +1236,8 @@ + } + + EXPORT_SYMBOL(nonseekable_open); ++ ++asmlinkage long sys_lchmod(char __user * filename, mode_t mode) ++{ ++ return do_fchmodat(AT_FDCWD, filename, mode, AT_SYMLINK_NOFOLLOW); ++} +Index: kernel/fs/partitions/check.c +=================================================================== +--- kernel.orig/fs/partitions/check.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/partitions/check.c 2008-11-24 15:47:46.000000000 +0100 +@@ -130,6 +130,7 @@ + + return buf; + } ++EXPORT_SYMBOL(disk_name); + + const char *bdevname(struct block_device *bdev, char *buf) + { +Index: kernel/fs/pipe.c +=================================================================== +--- kernel.orig/fs/pipe.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/pipe.c 2008-11-24 15:47:46.000000000 +0100 +@@ -21,6 +21,8 @@ + #include + #include + ++#include ++ + /* + * We use a start+len construction, which provides full use of the + * allocated memory. +@@ -477,7 +479,7 @@ + int error, atomic = 1; + + if (!page) { +- page = alloc_page(GFP_HIGHUSER); ++ page = alloc_page(GFP_HIGHUSER | __GFP_UBC); + if (unlikely(!page)) { + ret = ret ? : -ENOMEM; + break; +@@ -857,7 +859,7 @@ + { + struct pipe_inode_info *pipe; + +- pipe = kzalloc(sizeof(struct pipe_inode_info), GFP_KERNEL); ++ pipe = kzalloc(sizeof(struct pipe_inode_info), GFP_KERNEL_UBC); + if (pipe) { + init_waitqueue_head(&pipe->wait); + pipe->r_counter = pipe->w_counter = 1; +@@ -1075,6 +1077,8 @@ + return error; + } + ++EXPORT_SYMBOL_GPL(do_pipe); ++ + /* + * pipefs should _never_ be mounted by userland - too much of security hassle, + * no real gain from having the whole whorehouse mounted. So we don't need +Index: kernel/fs/proc/array.c +=================================================================== +--- kernel.orig/fs/proc/array.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/array.c 2008-11-24 15:47:46.000000000 +0100 +@@ -79,6 +79,9 @@ + #include + #include + ++#include ++ ++#include + #include + #include + #include "internal.h" +@@ -203,6 +206,19 @@ + put_group_info(group_info); + + buffer += sprintf(buffer, "\n"); ++ ++#ifdef CONFIG_VE ++ if (ve_is_super(get_exec_env())) ++ buffer += sprintf(buffer, ++ "envID:\t%d\n" ++ "VPid:\t%d\n" ++ "PNState:\t%u\n" ++ "StopState:\t%u\n", ++ p->ve_task_info.owner_env->veid, ++ task_pid_vnr(p), ++ p->pn_state, ++ p->stopped_state); ++#endif + return buffer; + } + +@@ -246,10 +262,10 @@ + } + } + +-static inline char *task_sig(struct task_struct *p, char *buffer) ++char *task_sig(struct task_struct *p, char *buffer) + { + unsigned long flags; +- sigset_t pending, shpending, blocked, ignored, caught; ++ sigset_t pending, shpending, blocked, ignored, caught, saved; + int num_threads = 0; + unsigned long qsize = 0; + unsigned long qlim = 0; +@@ -259,12 +275,14 @@ + sigemptyset(&blocked); + sigemptyset(&ignored); + sigemptyset(&caught); ++ sigemptyset(&saved); + + rcu_read_lock(); + if (lock_task_sighand(p, &flags)) { + pending = p->pending.signal; + shpending = p->signal->shared_pending.signal; + blocked = p->blocked; ++ saved = p->saved_sigmask; + collect_sigign_sigcatch(p, &ignored, &caught); + num_threads = atomic_read(&p->signal->count); + qsize = atomic_read(&p->user->sigpending); +@@ -282,6 +300,7 @@ + buffer = render_sigset_t("SigBlk:\t", &blocked, buffer); + buffer = render_sigset_t("SigIgn:\t", &ignored, buffer); + buffer = render_sigset_t("SigCgt:\t", &caught, buffer); ++ buffer = render_sigset_t("SigSvd:\t", &saved, buffer); + + return buffer; + } +@@ -296,6 +315,20 @@ + cap_t(p->cap_effective)); + } + ++#ifdef CONFIG_BEANCOUNTERS ++static inline void ub_dump_task_info(struct task_struct *tsk, ++ char *stsk, int ltsk, char *smm, int lmm) ++{ ++ print_ub_uid(tsk->task_bc.task_ub, stsk, ltsk); ++ task_lock(tsk); ++ if (tsk->mm) ++ print_ub_uid(tsk->mm->mm_ub, smm, lmm); ++ else ++ strncpy(smm, "N/A", lmm); ++ task_unlock(tsk); ++} ++#endif ++ + static inline char *task_context_switch_counts(struct task_struct *p, + char *buffer) + { +@@ -309,6 +342,9 @@ + { + char *orig = buffer; + struct mm_struct *mm = get_task_mm(task); ++#ifdef CONFIG_BEANCOUNTERS ++ char tsk_ub_info[64], mm_ub_info[64]; ++#endif + + buffer = task_name(task, buffer); + buffer = task_state(task, buffer); +@@ -324,6 +360,14 @@ + buffer = task_show_regs(task, buffer); + #endif + buffer = task_context_switch_counts(task, buffer); ++#ifdef CONFIG_BEANCOUNTERS ++ ub_dump_task_info(task, ++ tsk_ub_info, sizeof(tsk_ub_info), ++ mm_ub_info, sizeof(mm_ub_info)); ++ ++ buffer += sprintf(buffer, "TaskUB:\t%s\n", tsk_ub_info); ++ buffer += sprintf(buffer, "MMUB:\t%s\n", mm_ub_info); ++#endif + return buffer - orig; + } + +@@ -406,6 +450,10 @@ + char tcomm[sizeof(task->comm)]; + unsigned long flags; + struct pid_namespace *ns; ++#ifdef CONFIG_BEANCOUNTERS ++ char ub_task_info[64]; ++ char ub_mm_info[64]; ++#endif + + ns = current->nsproxy->pid_ns; + +@@ -486,6 +534,7 @@ + priority = task_prio(task); + nice = task_nice(task); + ++#ifndef CONFIG_VE + /* Temporary variable needed for gcc-2.96 */ + /* convert timespec -> nsec*/ + start_time = +@@ -493,10 +542,25 @@ + + task->real_start_time.tv_nsec; + /* convert nsec -> ticks */ + start_time = nsec_to_clock_t(start_time); ++#else ++ start_time = ve_relative_clock(&task->start_time); ++#endif ++ ++#ifdef CONFIG_BEANCOUNTERS ++ ub_dump_task_info(task, ub_task_info, sizeof(ub_task_info), ++ ub_mm_info, sizeof(ub_mm_info)); ++#endif + + res = sprintf(buffer, "%d (%s) %c %d %d %d %d %d %u %lu \ + %lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \ +-%lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld\n", ++%lu %lu %lu %lu %lu %lu %lu %lu %d %d %u %u %llu %lu %ld" ++#ifdef CONFIG_VE ++ " 0 0 0 0 0 0 0 %d %u" ++#endif ++#ifdef CONFIG_BEANCOUNTERS ++ " %s %s" ++#endif ++ "\n", + task_pid_nr_ns(task, ns), + tcomm, + state, +@@ -543,7 +607,16 @@ + task->policy, + (unsigned long long)delayacct_blkio_ticks(task), + cputime_to_clock_t(gtime), +- cputime_to_clock_t(cgtime)); ++ cputime_to_clock_t(cgtime) ++#ifdef CONFIG_VE ++ , task_pid_vnr(task), ++ VEID(VE_TASK_INFO(task)->owner_env) ++#endif ++#ifdef CONFIG_BEANCOUNTERS ++ , ub_task_info, ++ ub_mm_info ++#endif ++ ); + if (mm) + mmput(mm); + return res; +Index: kernel/fs/proc/base.c +=================================================================== +--- kernel.orig/fs/proc/base.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/base.c 2008-11-24 15:47:46.000000000 +0100 +@@ -165,8 +165,11 @@ + } + if (fs) { + read_lock(&fs->lock); +- *mnt = mntget(fs->pwdmnt); +- *dentry = dget(fs->pwd); ++ result = d_root_check(fs->pwd, fs->pwdmnt); ++ if (result == 0) { ++ *mnt = mntget(fs->pwdmnt); ++ *dentry = dget(fs->pwd); ++ } + read_unlock(&fs->lock); + result = 0; + put_fs_struct(fs); +@@ -477,17 +480,19 @@ + static int proc_fd_access_allowed(struct inode *inode) + { + struct task_struct *task; +- int allowed = 0; ++ int err; ++ + /* Allow access to a task's file descriptors if it is us or we + * may use ptrace attach to the process and find out that + * information. + */ ++ err = -ENOENT; + task = get_proc_task(inode); + if (task) { +- allowed = ptrace_may_attach(task); ++ err = (ptrace_may_attach(task) ? 0 : -EACCES); + put_task_struct(task); + } +- return allowed; ++ return err; + } + + static int proc_setattr(struct dentry *dentry, struct iattr *attr) +@@ -916,6 +921,8 @@ + if ((oom_adjust < OOM_ADJUST_MIN || oom_adjust > OOM_ADJUST_MAX) && + oom_adjust != OOM_DISABLE) + return -EINVAL; ++ if (oom_adjust == OOM_DISABLE && !ve_is_super(get_exec_env())) ++ return -EPERM; + if (*end == '\n') + end++; + task = get_proc_task(file->f_path.dentry->d_inode); +@@ -1159,13 +1166,14 @@ + static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd) + { + struct inode *inode = dentry->d_inode; +- int error = -EACCES; ++ int error; + + /* We don't need a base pointer in the /proc filesystem */ + path_release(nd); + + /* Are we allowed to snoop on the tasks file descriptors? */ +- if (!proc_fd_access_allowed(inode)) ++ error = proc_fd_access_allowed(inode); ++ if (error < 0) + goto out; + + error = PROC_I(inode)->op.proc_get_link(inode, &nd->dentry, &nd->mnt); +@@ -1203,13 +1211,14 @@ + + static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int buflen) + { +- int error = -EACCES; ++ int error; + struct inode *inode = dentry->d_inode; + struct dentry *de; + struct vfsmount *mnt = NULL; + + /* Are we allowed to snoop on the tasks file descriptors? */ +- if (!proc_fd_access_allowed(inode)) ++ error = proc_fd_access_allowed(inode); ++ if (error < 0) + goto out; + + error = PROC_I(inode)->op.proc_get_link(inode, &de, &mnt); +@@ -1253,6 +1262,10 @@ + struct inode * inode; + struct proc_inode *ei; + ++ if (!ve_accessible(task->ve_task_info.owner_env, ++ sb->s_type->owner_env)) ++ return NULL; ++ + /* We need a new inode */ + + inode = new_inode(sb); +@@ -1452,6 +1465,9 @@ + struct files_struct *files = NULL; + struct file *file; + int fd = proc_fd(inode); ++ int err; ++ ++ err = -ENOENT; + + if (task) { + files = get_files_struct(task); +@@ -1464,7 +1480,9 @@ + */ + spin_lock(&files->file_lock); + file = fcheck_files(files, fd); +- if (file) { ++ err = -EACCES; ++ if (file && !d_root_check(file->f_path.dentry, ++ file->f_path.mnt)) { + if (mnt) + *mnt = mntget(file->f_path.mnt); + if (dentry) +@@ -1482,7 +1500,7 @@ + spin_unlock(&files->file_lock); + put_files_struct(files); + } +- return -ENOENT; ++ return err; + } + + static int proc_fd_link(struct inode *inode, struct dentry **dentry, +Index: kernel/fs/proc/generic.c +=================================================================== +--- kernel.orig/fs/proc/generic.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/generic.c 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -33,7 +34,7 @@ + + DEFINE_SPINLOCK(proc_subdir_lock); + +-static int proc_match(int len, const char *name, struct proc_dir_entry *de) ++int proc_match(int len, const char *name, struct proc_dir_entry *de) + { + if (de->namelen != len) + return 0; +@@ -239,6 +240,10 @@ + struct proc_dir_entry *de = PDE(inode); + int error; + ++ if ((iattr->ia_valid & (ATTR_MODE|ATTR_UID|ATTR_GID)) && ++ LPDE(inode) == GPDE(inode)) ++ return -EPERM; ++ + error = inode_change_ok(inode, iattr); + if (error) + goto out; +@@ -247,9 +252,12 @@ + if (error) + goto out; + +- de->uid = inode->i_uid; +- de->gid = inode->i_gid; +- de->mode = inode->i_mode; ++ if (iattr->ia_valid & ATTR_UID) ++ de->uid = inode->i_uid; ++ if (iattr->ia_valid & ATTR_GID) ++ de->gid = inode->i_gid; ++ if (iattr->ia_valid & ATTR_MODE) ++ de->mode = inode->i_mode; + out: + return error; + } +@@ -275,7 +283,7 @@ + * returns the struct proc_dir_entry for "/proc/tty/driver", and + * returns "serial" in residual. + */ +-static int xlate_proc_name(const char *name, ++static int __xlate_proc_name(struct proc_dir_entry *root, const char *name, + struct proc_dir_entry **ret, const char **residual) + { + const char *cp = name, *next; +@@ -283,8 +291,13 @@ + int len; + int rtn = 0; + ++ if (*ret) { ++ de_get(*ret); ++ return 0; ++ } ++ + spin_lock(&proc_subdir_lock); +- de = &proc_root; ++ de = root; + while (1) { + next = strchr(cp, '/'); + if (!next) +@@ -302,12 +315,29 @@ + cp += len + 1; + } + *residual = cp; +- *ret = de; ++ *ret = de_get(de); + out: + spin_unlock(&proc_subdir_lock); + return rtn; + } + ++#ifndef CONFIG_VE ++#define xlate_proc_loc_name xlate_proc_name ++#else ++static int xlate_proc_loc_name(const char *name, ++ struct proc_dir_entry **ret, const char **residual) ++{ ++ return __xlate_proc_name(get_exec_env()->proc_root, ++ name, ret, residual); ++} ++#endif ++ ++static int xlate_proc_name(const char *name, ++ struct proc_dir_entry **ret, const char **residual) ++{ ++ return __xlate_proc_name(&proc_root, name, ret, residual); ++} ++ + static DEFINE_IDR(proc_inum_idr); + static DEFINE_SPINLOCK(proc_inum_lock); /* protects the above */ + +@@ -379,6 +409,22 @@ + .d_delete = proc_delete_dentry, + }; + ++static struct proc_dir_entry *__proc_lookup(struct proc_dir_entry *dir, ++ struct dentry *d) ++{ ++ struct proc_dir_entry *de; ++ ++ for (de = dir->subdir; de; de = de->next) { ++ if (de->namelen != d->d_name.len) ++ continue; ++ if (!memcmp(d->d_name.name, de->name, de->namelen)) ++ break; ++ } ++ if (de && de->shadow_proc) ++ de = de->shadow_proc(current, de); ++ return de_get(de); ++} ++ + /* + * Don't create negative dentries here, return -ENOENT by hand + * instead. +@@ -386,41 +432,121 @@ + struct dentry *proc_lookup(struct inode * dir, struct dentry *dentry, struct nameidata *nd) + { + struct inode *inode = NULL; +- struct proc_dir_entry * de; ++ struct proc_dir_entry *lde, *gde; + int error = -ENOENT; + + lock_kernel(); + spin_lock(&proc_subdir_lock); +- de = PDE(dir); +- if (de) { +- for (de = de->subdir; de ; de = de->next) { +- if (de->namelen != dentry->d_name.len) +- continue; +- if (!memcmp(dentry->d_name.name, de->name, de->namelen)) { +- unsigned int ino; +- +- if (de->shadow_proc) +- de = de->shadow_proc(current, de); +- ino = de->low_ino; +- de_get(de); +- spin_unlock(&proc_subdir_lock); +- error = -EINVAL; +- inode = proc_get_inode(dir->i_sb, ino, de); +- spin_lock(&proc_subdir_lock); +- break; +- } +- } +- } ++ lde = LPDE(dir); ++ if (lde) ++ lde = __proc_lookup(lde, dentry); ++ if (lde && !try_module_get(lde->owner)) { ++ de_put(lde); ++ lde = NULL; ++ } ++#ifdef CONFIG_VE ++ gde = GPDE(dir); ++ if (gde) ++ gde = __proc_lookup(gde, dentry); ++ if (!lde && gde && !try_module_get(gde->owner)) { ++ de_put(gde); ++ gde = NULL; ++ } ++#else ++ gde = NULL; ++#endif + spin_unlock(&proc_subdir_lock); ++ ++ /* ++ * There are following possible cases after lookup: ++ * ++ * lde gde ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * NULL NULL ENOENT ++ * loc NULL found in local tree ++ * loc glob found in both trees ++ * NULL glob found in global tree ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * ++ * We initialized inode as follows after lookup: ++ * ++ * inode->lde inode->gde ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * loc NULL in local tree ++ * loc glob both trees ++ * glob glob global tree ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * i.e. inode->lde is always initialized ++ */ ++ ++ if (lde == NULL && gde == NULL) ++ goto out; ++ ++ if (lde != NULL) { ++ de_get(lde); ++ inode = proc_get_inode(dir->i_sb, lde->low_ino, lde); ++ } else { ++ de_get(gde); ++ inode = proc_get_inode(dir->i_sb, gde->low_ino, gde); ++ } ++ ++ /* ++ * We can sleep in proc_get_inode(), but since we have i_sem ++ * being taken, no one can setup GPDE/LPDE on this inode. ++ */ ++ if (!inode) ++ goto out_put; ++ ++#ifdef CONFIG_VE ++ GPDE(inode) = de_get(gde); ++ if (gde) ++ __module_get(gde->owner); ++ ++ /* if dentry is found in both trees and it is a directory ++ * then inode's nlink count must be altered, because local ++ * and global subtrees may differ. ++ * on the other hand, they may intersect, so actual nlink ++ * value is difficult to calculate - upper estimate is used ++ * instead of it. ++ * dentry found in global tree only must not be writable ++ * in non-super ve. ++ */ ++ if (lde && gde && lde != gde && gde->nlink > 1) ++ inode->i_nlink += gde->nlink - 2; ++ if (lde == NULL && !ve_is_super(dir->i_sb->s_type->owner_env)) ++ inode->i_mode &= ~S_IWUGO; ++#endif ++ unlock_kernel(); ++ dentry->d_op = &proc_dentry_operations; ++ d_add(dentry, inode); ++ de_put(lde); ++ de_put(gde); ++ return NULL; ++ ++out_put: ++ if (lde) ++ module_put(lde->owner); ++ else ++ module_put(gde->owner); ++ de_put(lde); ++ de_put(gde); ++out: + unlock_kernel(); ++ return ERR_PTR(error); ++} + +- if (inode) { +- dentry->d_op = &proc_dentry_operations; +- d_add(dentry, inode); +- return NULL; ++static inline int in_tree(struct proc_dir_entry *de, struct proc_dir_entry *dir) ++{ ++ struct proc_dir_entry *gde; ++ ++ for (gde = dir->subdir; gde; gde = gde->next) { ++ if (de->namelen != gde->namelen) ++ continue; ++ if (memcmp(de->name, gde->name, gde->namelen)) ++ continue; ++ return 1; + } +- de_put(de); +- return ERR_PTR(error); ++ return 0; + } + + /* +@@ -470,11 +596,8 @@ + de = de->subdir; + i -= 2; + for (;;) { +- if (!de) { +- ret = 1; +- spin_unlock(&proc_subdir_lock); +- goto out; +- } ++ if (!de) ++ goto chk_global; + if (!i) + break; + de = de->next; +@@ -487,8 +610,9 @@ + /* filldir passes info to user space */ + de_get(de); + spin_unlock(&proc_subdir_lock); +- if (filldir(dirent, de->name, de->namelen, filp->f_pos, +- de->low_ino, de->mode >> 12) < 0) { ++ if (filldir(dirent, de->name, de->namelen, ++ filp->f_pos, de->low_ino, ++ de->mode >> 12) < 0) { + de_put(de); + goto out; + } +@@ -498,6 +622,44 @@ + de_put(de); + de = next; + } while (de); ++chk_global: ++#ifdef CONFIG_VE ++ de = GPDE(inode); ++ if (de == NULL) ++ goto done; ++ ++ de = de->subdir; ++ while (de) { ++ struct proc_dir_entry *tmp; ++ ++ /* skip local names */ ++ if (in_tree(de, LPDE(inode))) { ++ de = de->next; ++ continue; ++ } ++ ++ if (i > 0) { ++ i--; ++ de = de->next; ++ continue; ++ } ++ ++ de_get(de); ++ spin_unlock(&proc_subdir_lock); ++ if (filldir(dirent, de->name, de->namelen, ++ filp->f_pos, de->low_ino, ++ de->mode >> 12) < 0) { ++ de_put(de); ++ goto out; ++ } ++ spin_lock(&proc_subdir_lock); ++ tmp = de->next; ++ de_put(de); ++ filp->f_pos++; ++ de = tmp; ++ } ++done: ++#endif + spin_unlock(&proc_subdir_lock); + } + ret = 1; +@@ -551,7 +713,7 @@ + + spin_lock(&proc_subdir_lock); + dp->next = dir->subdir; +- dp->parent = dir; ++ dp->parent = de_get(dir); + dir->subdir = dp; + spin_unlock(&proc_subdir_lock); + +@@ -570,17 +732,18 @@ + /* make sure name is valid */ + if (!name || !strlen(name)) goto out; + +- if (!(*parent) && xlate_proc_name(name, parent, &fn) != 0) ++ if (xlate_proc_loc_name(name, parent, &fn) != 0) + goto out; + + /* At this point there must not be any '/' characters beyond *fn */ + if (strchr(fn, '/')) +- goto out; ++ goto out_put; + + len = strlen(fn); + + ent = kmalloc(sizeof(struct proc_dir_entry) + len + 1, GFP_KERNEL); +- if (!ent) goto out; ++ if (!ent) ++ goto out_put; + + memset(ent, 0, sizeof(struct proc_dir_entry)); + memcpy(((char *) ent) + sizeof(struct proc_dir_entry), fn, len + 1); +@@ -592,8 +755,12 @@ + ent->pde_users = 0; + spin_lock_init(&ent->pde_unload_lock); + ent->pde_unload_completion = NULL; +- out: + return ent; ++ ++out_put: ++ de_put(*parent); ++out: ++ return NULL; + } + + struct proc_dir_entry *proc_symlink(const char *name, +@@ -617,6 +784,7 @@ + kfree(ent); + ent = NULL; + } ++ de_put(parent); + } + return ent; + } +@@ -632,6 +800,7 @@ + kfree(ent); + ent = NULL; + } ++ de_put(parent); + } + return ent; + } +@@ -666,9 +835,28 @@ + kfree(ent); + ent = NULL; + } ++ de_put(parent); + } + return ent; + } ++EXPORT_SYMBOL(remove_proc_glob_entry); ++ ++struct proc_dir_entry *create_proc_glob_entry(const char *name, mode_t mode, ++ struct proc_dir_entry *parent) ++{ ++ const char *path; ++ struct proc_dir_entry *ent; ++ ++ path = name; ++ if (xlate_proc_name(path, &parent, &name) != 0) ++ return NULL; ++ ++ ent = create_proc_entry(name, mode, parent); ++ de_put(parent); ++ return ent; ++} ++ ++EXPORT_SYMBOL(create_proc_glob_entry); + + void free_proc_entry(struct proc_dir_entry *de) + { +@@ -687,15 +875,13 @@ + /* + * Remove a /proc entry and free it if it's not currently in use. + */ +-void remove_proc_entry(const char *name, struct proc_dir_entry *parent) ++static void __remove_proc_entry(const char *name, struct proc_dir_entry *parent) + { + struct proc_dir_entry **p; + struct proc_dir_entry *de; + const char *fn = name; + int len; + +- if (!parent && xlate_proc_name(name, &parent, &fn) != 0) +- goto out; + len = strlen(fn); + + spin_lock(&proc_subdir_lock); +@@ -734,11 +920,42 @@ + parent->nlink--; + de->nlink = 0; + WARN_ON(de->subdir); +- if (atomic_dec_and_test(&de->count)) +- free_proc_entry(de); ++ de_put(parent); ++ de_put(de); + break; + } + spin_unlock(&proc_subdir_lock); +-out: +- return; ++} ++ ++void remove_proc_loc_entry(const char *name, struct proc_dir_entry *parent) ++{ ++ const char *path; ++ ++ path = name; ++ if (xlate_proc_loc_name(path, &parent, &name) != 0) ++ return; ++ ++ __remove_proc_entry(name, parent); ++ de_put(parent); ++} ++ ++void remove_proc_glob_entry(const char *name, struct proc_dir_entry *parent) ++{ ++ const char *path; ++ ++ path = name; ++ if (xlate_proc_name(path, &parent, &name) != 0) ++ return; ++ ++ __remove_proc_entry(name, parent); ++ de_put(parent); ++} ++ ++void remove_proc_entry(const char *name, struct proc_dir_entry *parent) ++{ ++ remove_proc_loc_entry(name, parent); ++#ifdef CONFIG_VE ++ if (ve_is_super(get_exec_env())) ++ remove_proc_glob_entry(name, parent); ++#endif + } +Index: kernel/fs/proc/inode.c +=================================================================== +--- kernel.orig/fs/proc/inode.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/inode.c 2008-11-24 15:47:46.000000000 +0100 +@@ -36,16 +36,13 @@ + void de_put(struct proc_dir_entry *de) + { + if (de) { +- lock_kernel(); + if (!atomic_read(&de->count)) { + printk("de_put: entry %s already free!\n", de->name); +- unlock_kernel(); + return; + } + + if (atomic_dec_and_test(&de->count)) + free_proc_entry(de); +- unlock_kernel(); + } + } + +@@ -62,16 +59,25 @@ + put_pid(PROC_I(inode)->pid); + + /* Let go of any associated proc directory entry */ +- de = PROC_I(inode)->pde; ++ de = LPDE(inode); + if (de) { + if (de->owner) + module_put(de->owner); + de_put(de); + } ++#ifdef CONFIG_VE ++ de = GPDE(inode); ++ if (de) { ++ module_put(de->owner); ++ de_put(de); ++ } ++#endif + clear_inode(inode); + } + ++#ifndef CONFIG_VE + struct vfsmount *proc_mnt; ++#endif + + static void proc_read_inode(struct inode * inode) + { +@@ -94,6 +100,9 @@ + ei->pde = NULL; + inode = &ei->vfs_inode; + inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; ++#ifdef CONFIG_VE ++ GPDE(inode) = NULL; ++#endif + return inode; + } + +@@ -398,12 +407,9 @@ + { + struct inode * inode; + +- if (de != NULL && !try_module_get(de->owner)) +- goto out_mod; +- + inode = iget(sb, ino); + if (!inode) +- goto out_ino; ++ goto out_mod; + + PROC_I(inode)->fd = 0; + PROC_I(inode)->pde = de; +@@ -436,9 +442,6 @@ + + return inode; + +-out_ino: +- if (de != NULL) +- module_put(de->owner); + out_mod: + return NULL; + } +@@ -463,6 +466,12 @@ + s->s_root = d_alloc_root(root_inode); + if (!s->s_root) + goto out_no_root; ++#ifdef CONFIG_VE ++ LPDE(root_inode) = de_get(get_exec_env()->proc_root); ++ GPDE(root_inode) = &proc_root; ++#else ++ LPDE(root_inode) = &proc_root; ++#endif + return 0; + + out_no_root: +Index: kernel/fs/proc/kmsg.c +=================================================================== +--- kernel.orig/fs/proc/kmsg.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/kmsg.c 2008-11-24 15:47:46.000000000 +0100 +@@ -11,6 +11,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -40,7 +42,7 @@ + + static unsigned int kmsg_poll(struct file *file, poll_table *wait) + { +- poll_wait(file, &log_wait, wait); ++ poll_wait(file, &ve_log_wait, wait); + if (do_syslog(9, NULL, 0)) + return POLLIN | POLLRDNORM; + return 0; +@@ -53,3 +55,4 @@ + .open = kmsg_open, + .release = kmsg_release, + }; ++EXPORT_SYMBOL(proc_kmsg_operations); +Index: kernel/fs/proc/proc_misc.c +=================================================================== +--- kernel.orig/fs/proc/proc_misc.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/proc_misc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -46,6 +47,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -53,8 +55,10 @@ + #include + #include "internal.h" + +-#define LOAD_INT(x) ((x) >> FSHIFT) +-#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100) ++#ifdef CONFIG_FAIRSCHED ++#include ++#endif ++ + /* + * Warning: stuff below (imported functions) assumes that its output will fit + * into one page. For some of those functions it may be wrong. Moreover, we +@@ -83,15 +87,30 @@ + { + int a, b, c; + int len; ++ long running, threads; ++ struct ve_struct *ve; + +- a = avenrun[0] + (FIXED_1/200); +- b = avenrun[1] + (FIXED_1/200); +- c = avenrun[2] + (FIXED_1/200); +- len = sprintf(page,"%d.%02d %d.%02d %d.%02d %ld/%d %d\n", ++ ve = get_exec_env(); ++ if (ve_is_super(ve)) { ++ a = avenrun[0] + (FIXED_1/200); ++ b = avenrun[1] + (FIXED_1/200); ++ c = avenrun[2] + (FIXED_1/200); ++ running = nr_running(); ++ threads = nr_threads; ++#ifdef CONFIG_VE ++ } else { ++ a = ve->avenrun[0] + (FIXED_1/200); ++ b = ve->avenrun[1] + (FIXED_1/200); ++ c = ve->avenrun[2] + (FIXED_1/200); ++ running = nr_running_ve(ve); ++ threads = atomic_read(&ve->pcounter); ++#endif ++ } ++ len = sprintf(page,"%d.%02d %d.%02d %d.%02d %ld/%ld %d\n", + LOAD_INT(a), LOAD_FRAC(a), + LOAD_INT(b), LOAD_FRAC(b), + LOAD_INT(c), LOAD_FRAC(c), +- nr_running(), nr_threads, ++ running, threads, + task_active_pid_ns(current)->last_pid); + return proc_calc_metrics(page, start, off, count, eof, len); + } +@@ -106,6 +125,13 @@ + + do_posix_clock_monotonic_gettime(&uptime); + monotonic_to_bootbased(&uptime); ++#ifdef CONFIG_VE ++ if (!ve_is_super(get_exec_env())) { ++ set_normalized_timespec(&uptime, ++ uptime.tv_sec - get_exec_env()->start_timespec.tv_sec, ++ uptime.tv_nsec - get_exec_env()->start_timespec.tv_nsec); ++ } ++#endif + cputime_to_timespec(idletime, &idle); + len = sprintf(page,"%lu.%02lu %lu.%02lu\n", + (unsigned long) uptime.tv_sec, +@@ -119,29 +145,49 @@ + static int meminfo_read_proc(char *page, char **start, off_t off, + int count, int *eof, void *data) + { +- struct sysinfo i; ++ struct meminfo mi; + int len; +- unsigned long committed; +- unsigned long allowed; ++ unsigned long dummy; + struct vmalloc_info vmi; +- long cached; ++ ++ get_zone_counts(&mi.active, &mi.inactive, &dummy); + + /* + * display in kilobytes. + */ + #define K(x) ((x) << (PAGE_SHIFT - 10)) +- si_meminfo(&i); +- si_swapinfo(&i); +- committed = atomic_read(&vm_committed_space); +- allowed = ((totalram_pages - hugetlb_total_pages()) ++ si_meminfo(&mi.si); ++ si_swapinfo(&mi.si); ++ mi.committed_space = atomic_read(&vm_committed_space); ++ mi.swapcache = total_swapcache_pages; ++ mi.allowed = ((totalram_pages - hugetlb_total_pages()) + * sysctl_overcommit_ratio / 100) + total_swap_pages; + +- cached = global_page_state(NR_FILE_PAGES) - +- total_swapcache_pages - i.bufferram; +- if (cached < 0) +- cached = 0; ++ mi.cache = global_page_state(NR_FILE_PAGES) - ++ total_swapcache_pages - mi.si.bufferram; ++ if (mi.cache < 0) ++ mi.cache = 0; + + get_vmalloc_info(&vmi); ++ mi.vmalloc_used = vmi.used >> PAGE_SHIFT; ++ mi.vmalloc_largest = vmi.largest_chunk >> PAGE_SHIFT; ++ mi.vmalloc_total = VMALLOC_TOTAL >> PAGE_SHIFT; ++ ++ mi.pi.nr_file_dirty = global_page_state(NR_FILE_DIRTY); ++ mi.pi.nr_writeback = global_page_state(NR_WRITEBACK); ++ mi.pi.nr_anon_pages = global_page_state(NR_ANON_PAGES); ++ mi.pi.nr_file_mapped = global_page_state(NR_FILE_MAPPED); ++ mi.pi.nr_slab_rec = global_page_state(NR_SLAB_RECLAIMABLE); ++ mi.pi.nr_slab_unrec = global_page_state(NR_SLAB_UNRECLAIMABLE); ++ mi.pi.nr_pagetable = global_page_state(NR_PAGETABLE); ++ mi.pi.nr_unstable_nfs = global_page_state(NR_UNSTABLE_NFS); ++ mi.pi.nr_bounce = global_page_state(NR_BOUNCE); ++ ++#ifdef CONFIG_BEANCOUNTERS ++ if (virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_MEMINFO, &mi) ++ & NOTIFY_FAIL) ++ return -ENOMSG; ++#endif + + /* + * Tagged format, for easy grepping and expansion. +@@ -177,37 +223,37 @@ + "VmallocTotal: %8lu kB\n" + "VmallocUsed: %8lu kB\n" + "VmallocChunk: %8lu kB\n", +- K(i.totalram), +- K(i.freeram), +- K(i.bufferram), +- K(cached), +- K(total_swapcache_pages), +- K(global_page_state(NR_ACTIVE)), +- K(global_page_state(NR_INACTIVE)), ++ K(mi.si.totalram), ++ K(mi.si.freeram), ++ K(mi.si.bufferram), ++ K(mi.cache), ++ K(mi.swapcache), ++ K(mi.active), ++ K(mi.inactive), + #ifdef CONFIG_HIGHMEM +- K(i.totalhigh), +- K(i.freehigh), +- K(i.totalram-i.totalhigh), +- K(i.freeram-i.freehigh), +-#endif +- K(i.totalswap), +- K(i.freeswap), +- K(global_page_state(NR_FILE_DIRTY)), +- K(global_page_state(NR_WRITEBACK)), +- K(global_page_state(NR_ANON_PAGES)), +- K(global_page_state(NR_FILE_MAPPED)), +- K(global_page_state(NR_SLAB_RECLAIMABLE) + +- global_page_state(NR_SLAB_UNRECLAIMABLE)), +- K(global_page_state(NR_SLAB_RECLAIMABLE)), +- K(global_page_state(NR_SLAB_UNRECLAIMABLE)), +- K(global_page_state(NR_PAGETABLE)), +- K(global_page_state(NR_UNSTABLE_NFS)), +- K(global_page_state(NR_BOUNCE)), +- K(allowed), +- K(committed), +- (unsigned long)VMALLOC_TOTAL >> 10, +- vmi.used >> 10, +- vmi.largest_chunk >> 10 ++ K(mi.si.totalhigh), ++ K(mi.si.freehigh), ++ K(mi.si.totalram-mi.si.totalhigh), ++ K(mi.si.freeram-mi.si.freehigh), ++#endif ++ K(mi.si.totalswap), ++ K(mi.si.freeswap), ++ K(mi.pi.nr_file_dirty), ++ K(mi.pi.nr_writeback), ++ K(mi.pi.nr_anon_pages), ++ K(mi.pi.nr_file_mapped), ++ K(mi.pi.nr_slab_rec + ++ mi.pi.nr_slab_unrec), ++ K(mi.pi.nr_slab_rec), ++ K(mi.pi.nr_slab_unrec), ++ K(mi.pi.nr_pagetable), ++ K(mi.pi.nr_unstable_nfs), ++ K(mi.pi.nr_bounce), ++ K(mi.allowed), ++ K(mi.committed_space), ++ K(mi.vmalloc_total), ++ K(mi.vmalloc_used), ++ K(mi.vmalloc_largest) + ); + + len += hugetlb_report_meminfo(page + len); +@@ -451,25 +497,21 @@ + #endif + #endif + +-static int show_stat(struct seq_file *p, void *v) ++static void show_stat_ve0(struct seq_file *p) + { + int i; +- unsigned long jif; + cputime64_t user, nice, system, idle, iowait, irq, softirq, steal; + cputime64_t guest; + u64 sum = 0; +- struct timespec boottime; + unsigned int *per_irq_sum; + + per_irq_sum = kzalloc(sizeof(unsigned int)*NR_IRQS, GFP_KERNEL); + if (!per_irq_sum) +- return -ENOMEM; ++ return; + + user = nice = system = idle = iowait = + irq = softirq = steal = cputime64_zero; + guest = cputime64_zero; +- getboottime(&boottime); +- jif = boottime.tv_sec; + + for_each_possible_cpu(i) { + int j; +@@ -529,9 +571,89 @@ + + for (i = 0; i < NR_IRQS; i++) + seq_printf(p, " %u", per_irq_sum[i]); ++ kfree(per_irq_sum); ++#ifdef CONFIG_VM_EVENT_COUNTERS ++ seq_printf(p, "\nswap %lu %lu\n", ++ vm_events(PSWPIN), vm_events(PSWPOUT)); ++#else ++ seq_printf(p, "\nswap 0 0\n"); ++#endif ++} ++ ++#ifdef CONFIG_VE ++static void show_stat_ve(struct seq_file *p, struct ve_struct *ve) ++{ ++ int i; ++ u64 user, nice, system; ++ cycles_t idle, iowait; ++ cpumask_t ve_cpus; ++ ++ ve_cpu_online_map(ve, &ve_cpus); ++ ++ user = nice = system = idle = iowait = 0; ++ for_each_cpu_mask(i, ve_cpus) { ++ user += VE_CPU_STATS(ve, i)->user; ++ nice += VE_CPU_STATS(ve, i)->nice; ++ system += VE_CPU_STATS(ve, i)->system; ++ idle += ve_sched_get_idle_time(ve, i); ++ iowait += ve_sched_get_iowait_time(ve, i); ++ } ++ ++ seq_printf(p, "cpu %llu %llu %llu %llu %llu 0 0 0\n", ++ (unsigned long long)cputime64_to_clock_t(user), ++ (unsigned long long)cputime64_to_clock_t(nice), ++ (unsigned long long)cputime64_to_clock_t(system), ++ (unsigned long long)cycles_to_clocks(idle), ++ (unsigned long long)cycles_to_clocks(iowait)); ++ ++ for_each_cpu_mask(i, ve_cpus) { ++ user = VE_CPU_STATS(ve, i)->user; ++ nice = VE_CPU_STATS(ve, i)->nice; ++ system = VE_CPU_STATS(ve, i)->system; ++ idle = ve_sched_get_idle_time(ve, i); ++ iowait = ve_sched_get_iowait_time(ve, i); ++ seq_printf(p, "cpu%d %llu %llu %llu %llu %llu 0 0 0\n", ++ i, ++ (unsigned long long)cputime64_to_clock_t(user), ++ (unsigned long long)cputime64_to_clock_t(nice), ++ (unsigned long long)cputime64_to_clock_t(system), ++ (unsigned long long)cycles_to_clocks(idle), ++ (unsigned long long)cycles_to_clocks(iowait)); ++ } ++ seq_printf(p, "intr 0\nswap 0 0\n"); ++} ++#endif ++ ++int show_stat(struct seq_file *p, void *v) ++{ ++ extern unsigned long total_forks; ++ unsigned long seq, jif; ++ struct ve_struct *env; ++ unsigned long __nr_running, __nr_iowait; ++ ++ do { ++ seq = read_seqbegin(&xtime_lock); ++ jif = - wall_to_monotonic.tv_sec; ++ if (wall_to_monotonic.tv_nsec) ++ --jif; ++ } while (read_seqretry(&xtime_lock, seq)); ++ ++ env = get_exec_env(); ++ if (ve_is_super(env)) { ++ show_stat_ve0(p); ++ __nr_running = nr_running(); ++ __nr_iowait = nr_iowait(); ++ } ++#ifdef CONFIG_VE ++ else { ++ show_stat_ve(p, env); ++ __nr_running = nr_running_ve(env); ++ __nr_iowait = nr_iowait_ve(env); ++ } ++#endif + + seq_printf(p, +- "\nctxt %llu\n" ++ "ctxt %llu\n" + "btime %lu\n" + "processes %lu\n" + "procs_running %lu\n" +@@ -539,10 +661,9 @@ + nr_context_switches(), + (unsigned long)jif, + total_forks, +- nr_running(), +- nr_iowait()); ++ __nr_running, ++ __nr_iowait); + +- kfree(per_irq_sum); + return 0; + } + +@@ -630,7 +751,8 @@ + { + int len; + +- len = sprintf(page, "%s\n", saved_command_line); ++ len = sprintf(page, "%s\n", ++ ve_is_super(get_exec_env()) ? saved_command_line : "quiet"); + return proc_calc_metrics(page, start, off, count, eof, len); + } + +@@ -674,11 +796,16 @@ + size_t count, loff_t *ppos) + { + if (count) { +- char c; ++ int i, cnt; ++ char c[32]; + +- if (get_user(c, buf)) ++ cnt = min(count, sizeof(c)); ++ if (copy_from_user(c, buf, cnt)) + return -EFAULT; +- __handle_sysrq(c, NULL, 0); ++ ++ ++ for (i = 0; i < cnt && c[i] != '\n'; i++) ++ __handle_sysrq(c[i], NULL, 0); + } + return count; + } +Index: kernel/fs/proc/proc_net.c +=================================================================== +--- kernel.orig/fs/proc/proc_net.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/proc_net.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,7 +31,7 @@ + { + struct proc_dir_entry *res; + +- res = create_proc_entry(name, mode, net->proc_net); ++ res = create_proc_entry(name, mode, get_exec_env()->_proc_net); + if (res) + res->proc_fops = fops; + return res; +@@ -40,7 +40,7 @@ + + void proc_net_remove(struct net *net, const char *name) + { +- remove_proc_entry(name, net->proc_net); ++ remove_proc_entry(name, get_exec_env()->_proc_net); + } + EXPORT_SYMBOL_GPL(proc_net_remove); + +@@ -50,68 +50,26 @@ + } + EXPORT_SYMBOL_GPL(get_proc_net); + +-static struct proc_dir_entry *shadow_pde; +- + static struct proc_dir_entry *proc_net_shadow(struct task_struct *task, + struct proc_dir_entry *de) + { + return task->nsproxy->net_ns->proc_net; + } + +-static __net_init int proc_net_ns_init(struct net *net) +-{ +- struct proc_dir_entry *root, *netd, *net_statd; +- int err; +- +- err = -ENOMEM; +- root = kzalloc(sizeof(*root), GFP_KERNEL); +- if (!root) +- goto out; +- +- err = -EEXIST; +- netd = proc_mkdir("net", root); +- if (!netd) +- goto free_root; +- +- err = -EEXIST; +- net_statd = proc_mkdir("stat", netd); +- if (!net_statd) +- goto free_net; +- +- root->data = net; +- netd->data = net; +- net_statd->data = net; +- +- net->proc_net_root = root; +- net->proc_net = netd; +- net->proc_net_stat = net_statd; +- err = 0; +- +-out: +- return err; +-free_net: +- remove_proc_entry("net", root); +-free_root: +- kfree(root); +- goto out; +-} +- +-static __net_exit void proc_net_ns_exit(struct net *net) +-{ +- remove_proc_entry("stat", net->proc_net); +- remove_proc_entry("net", net->proc_net_root); +- kfree(net->proc_net_root); +-} +- +-static struct pernet_operations __net_initdata proc_net_ns_ops = { +- .init = proc_net_ns_init, +- .exit = proc_net_ns_exit, +-}; +- + int __init proc_net_init(void) + { +- shadow_pde = proc_mkdir("net", NULL); +- shadow_pde->shadow_proc = proc_net_shadow; ++ struct proc_dir_entry *pde; ++ ++ pde = proc_mkdir("net", NULL); ++ pde->shadow_proc = proc_net_shadow; ++ init_net.proc_net = pde; ++ ve0._proc_net = pde; ++ pde->data = &init_net; ++ ++ pde = proc_mkdir("stat", pde); ++ init_net.proc_net_stat = pde; ++ ve0._proc_net_stat = pde; ++ pde->data = &init_net; + +- return register_pernet_subsys(&proc_net_ns_ops); ++ return 0; + } +Index: kernel/fs/proc/proc_sysctl.c +=================================================================== +--- kernel.orig/fs/proc/proc_sysctl.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/proc_sysctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1,15 +1,15 @@ + /* + * /proc/sys support + */ +- ++#include + #include + #include + #include + #include "internal.h" + + static struct dentry_operations proc_sys_dentry_operations; +-static const struct file_operations proc_sys_file_operations; +-static struct inode_operations proc_sys_inode_operations; ++extern const struct file_operations proc_sys_file_operations; ++extern struct inode_operations proc_sys_inode_operations; + + static void proc_sys_refresh_inode(struct inode *inode, struct ctl_table *table) + { +@@ -440,17 +440,19 @@ + /* I'm lazy and don't distinguish between files and directories, + * until access time. + */ +-static const struct file_operations proc_sys_file_operations = { ++const struct file_operations proc_sys_file_operations = { + .read = proc_sys_read, + .write = proc_sys_write, + .readdir = proc_sys_readdir, + }; ++EXPORT_SYMBOL_GPL(proc_sys_file_operations); + +-static struct inode_operations proc_sys_inode_operations = { ++struct inode_operations proc_sys_inode_operations = { + .lookup = proc_sys_lookup, + .permission = proc_sys_permission, + .setattr = proc_sys_setattr, + }; ++EXPORT_SYMBOL_GPL(proc_sys_inode_operations); + + static int proc_sys_revalidate(struct dentry *dentry, struct nameidata *nd) + { +@@ -466,13 +468,11 @@ + .d_revalidate = proc_sys_revalidate, + }; + +-static struct proc_dir_entry *proc_sys_root; +- + int proc_sys_init(void) + { +- proc_sys_root = proc_mkdir("sys", NULL); +- proc_sys_root->proc_iops = &proc_sys_inode_operations; +- proc_sys_root->proc_fops = &proc_sys_file_operations; +- proc_sys_root->nlink = 0; ++ ve0.proc_sys_root = proc_mkdir("sys", NULL); ++ ve0.proc_sys_root->proc_iops = &proc_sys_inode_operations; ++ ve0.proc_sys_root->proc_fops = &proc_sys_file_operations; ++ ve0.proc_sys_root->nlink = 0; + return 0; + } +Index: kernel/fs/proc/proc_tty.c +=================================================================== +--- kernel.orig/fs/proc/proc_tty.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/proc_tty.c 2008-11-24 15:47:46.000000000 +0100 +@@ -73,6 +73,9 @@ + dev_t from = MKDEV(p->major, p->minor_start); + dev_t to = from + p->num; + ++ if (!ve_accessible_strict(p->owner_env, get_exec_env())) ++ goto out; ++ + if (&p->tty_drivers == tty_drivers.next) { + /* pseudo-drivers first */ + seq_printf(m, "%-20s /dev/%-8s ", "/dev/tty", "tty"); +@@ -100,6 +103,7 @@ + } + if (from != to) + show_tty_range(m, p, from, to - from); ++out: + return 0; + } + +Index: kernel/fs/proc/root.c +=================================================================== +--- kernel.orig/fs/proc/root.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/root.c 2008-11-24 15:47:46.000000000 +0100 +@@ -45,7 +45,9 @@ + struct super_block *sb; + struct pid_namespace *ns; + struct proc_inode *ei; ++ struct vfsmount *proc_mnt; + ++ proc_mnt = proc_mnt(fs_type->owner_env); + if (proc_mnt) { + /* Seed the root directory with a pid so it doesn't need + * to be special in base.c. I would do this earlier but +@@ -98,12 +100,14 @@ + put_pid_ns(ns); + } + +-static struct file_system_type proc_fs_type = { ++struct file_system_type proc_fs_type = { + .name = "proc", + .get_sb = proc_get_sb, + .kill_sb = proc_kill_sb, + }; + ++EXPORT_SYMBOL(proc_fs_type); ++ + void __init proc_root_init(void) + { + int err = proc_init_inodecache(); +@@ -112,9 +116,9 @@ + err = register_filesystem(&proc_fs_type); + if (err) + return; +- proc_mnt = kern_mount_data(&proc_fs_type, &init_pid_ns); +- err = PTR_ERR(proc_mnt); +- if (IS_ERR(proc_mnt)) { ++ proc_mnt(get_ve0()) = kern_mount_data(&proc_fs_type, &init_pid_ns); ++ err = PTR_ERR(proc_mnt(get_ve0())); ++ if (IS_ERR(proc_mnt(get_ve0()))) { + unregister_filesystem(&proc_fs_type); + return; + } +Index: kernel/fs/proc/task_mmu.c +=================================================================== +--- kernel.orig/fs/proc/task_mmu.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/task_mmu.c 2008-11-24 15:47:46.000000000 +0100 +@@ -95,9 +95,12 @@ + } + + if (vma) { +- *mnt = mntget(vma->vm_file->f_path.mnt); +- *dentry = dget(vma->vm_file->f_path.dentry); +- result = 0; ++ result = d_root_check(vma->vm_file->f_path.dentry, ++ vma->vm_file->f_path.mnt); ++ if (!result) { ++ *mnt = mntget(vma->vm_file->f_path.mnt); ++ *dentry = dget(vma->vm_file->f_path.dentry); ++ } + } + + up_read(&mm->mmap_sem); +Index: kernel/fs/proc/task_nommu.c +=================================================================== +--- kernel.orig/fs/proc/task_nommu.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/proc/task_nommu.c 2008-11-24 15:47:46.000000000 +0100 +@@ -127,9 +127,12 @@ + } + + if (vma) { +- *mnt = mntget(vma->vm_file->f_path.mnt); +- *dentry = dget(vma->vm_file->f_path.dentry); +- result = 0; ++ result = d_root_check(vma->vm_file->f_path.dentry, ++ vma->vm_file->f_path.mnt); ++ if (!result) { ++ *mnt = mntget(vma->vm_file->f_path.mnt); ++ *dentry = dget(vma->vm_file->f_path.dentry); ++ } + } + + up_read(&mm->mmap_sem); +Index: kernel/fs/quota.c +=================================================================== +--- kernel.orig/fs/quota.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/quota.c 2008-11-24 15:47:46.000000000 +0100 +@@ -82,11 +82,11 @@ + if (cmd == Q_GETQUOTA) { + if (((type == USRQUOTA && current->euid != id) || + (type == GRPQUOTA && !in_egroup_p(id))) && +- !capable(CAP_SYS_ADMIN)) ++ !capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + } + else if (cmd != Q_GETFMT && cmd != Q_SYNC && cmd != Q_GETINFO) +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + + return 0; +@@ -133,10 +133,10 @@ + if (cmd == Q_XGETQUOTA) { + if (((type == XQM_USRQUOTA && current->euid != id) || + (type == XQM_GRPQUOTA && !in_egroup_p(id))) && +- !capable(CAP_SYS_ADMIN)) ++ !capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + } else if (cmd != Q_XGETQSTAT && cmd != Q_XQUOTASYNC) { +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + } + +@@ -178,6 +178,8 @@ + continue; + if (!sb_has_quota_enabled(sb, cnt)) + continue; ++ if (!sb_dqopt(sb)->files[cnt]) ++ continue; + mutex_lock_nested(&sb_dqopt(sb)->files[cnt]->i_mutex, I_MUTEX_QUOTA); + truncate_inode_pages(&sb_dqopt(sb)->files[cnt]->i_data, 0); + mutex_unlock(&sb_dqopt(sb)->files[cnt]->i_mutex); +@@ -208,7 +210,7 @@ + sb->s_count++; + spin_unlock(&sb_lock); + down_read(&sb->s_umount); +- if (sb->s_root && sb->s_qcop->quota_sync) ++ if (sb->s_root && sb->s_qcop && sb->s_qcop->quota_sync) + quota_sync_sb(sb, type); + up_read(&sb->s_umount); + spin_lock(&sb_lock); +@@ -342,7 +344,7 @@ + + if (IS_ERR(tmp)) + return ERR_PTR(PTR_ERR(tmp)); +- bdev = lookup_bdev(tmp); ++ bdev = lookup_bdev(tmp, FMODE_QUOTACTL); + putname(tmp); + if (IS_ERR(bdev)) + return ERR_PTR(PTR_ERR(bdev)); +@@ -357,6 +359,215 @@ + #endif + } + ++#ifdef CONFIG_QUOTA_COMPAT ++ ++#define QC_QUOTAON 0x0100 /* enable quotas */ ++#define QC_QUOTAOFF 0x0200 /* disable quotas */ ++/* GETQUOTA, SETQUOTA and SETUSE which were at 0x0300-0x0500 has now other parameteres */ ++#define QC_SYNC 0x0600 /* sync disk copy of a filesystems quotas */ ++#define QC_SETQLIM 0x0700 /* set limits */ ++/* GETSTATS at 0x0800 is now longer... */ ++#define QC_GETINFO 0x0900 /* get info about quotas - graces, flags... */ ++#define QC_SETINFO 0x0A00 /* set info about quotas */ ++#define QC_SETGRACE 0x0B00 /* set inode and block grace */ ++#define QC_SETFLAGS 0x0C00 /* set flags for quota */ ++#define QC_GETQUOTA 0x0D00 /* get limits and usage */ ++#define QC_SETQUOTA 0x0E00 /* set limits and usage */ ++#define QC_SETUSE 0x0F00 /* set usage */ ++/* 0x1000 used by old RSQUASH */ ++#define QC_GETSTATS 0x1100 /* get collected stats */ ++ ++struct compat_dqblk { ++ unsigned int dqb_ihardlimit; ++ unsigned int dqb_isoftlimit; ++ unsigned int dqb_curinodes; ++ unsigned int dqb_bhardlimit; ++ unsigned int dqb_bsoftlimit; ++ qsize_t dqb_curspace; ++ __kernel_time_t dqb_btime; ++ __kernel_time_t dqb_itime; ++}; ++ ++struct compat_dqinfo { ++ unsigned int dqi_bgrace; ++ unsigned int dqi_igrace; ++ unsigned int dqi_flags; ++ unsigned int dqi_blocks; ++ unsigned int dqi_free_blk; ++ unsigned int dqi_free_entry; ++}; ++ ++struct compat_dqstats { ++ __u32 lookups; ++ __u32 drops; ++ __u32 reads; ++ __u32 writes; ++ __u32 cache_hits; ++ __u32 allocated_dquots; ++ __u32 free_dquots; ++ __u32 syncs; ++ __u32 version; ++}; ++ ++asmlinkage long sys_quotactl(unsigned int cmd, const char __user *special, qid_t id, void __user *addr); ++static long compat_quotactl(unsigned int cmds, unsigned int type, ++ const char __user *special, qid_t id, ++ void __user *addr) ++{ ++ struct super_block *sb; ++ long ret; ++ ++ sb = NULL; ++ switch (cmds) { ++ case QC_QUOTAON: ++ return sys_quotactl(QCMD(Q_QUOTAON, type), ++ special, id, addr); ++ ++ case QC_QUOTAOFF: ++ return sys_quotactl(QCMD(Q_QUOTAOFF, type), ++ special, id, addr); ++ ++ case QC_SYNC: ++ return sys_quotactl(QCMD(Q_SYNC, type), ++ special, id, addr); ++ ++ case QC_GETQUOTA: { ++ struct if_dqblk idq; ++ struct compat_dqblk cdq; ++ ++ sb = quotactl_block(special); ++ ret = PTR_ERR(sb); ++ if (IS_ERR(sb)) ++ break; ++ ret = check_quotactl_valid(sb, type, Q_GETQUOTA, id); ++ if (ret) ++ break; ++ ret = sb->s_qcop->get_dqblk(sb, type, id, &idq); ++ if (ret) ++ break; ++ cdq.dqb_ihardlimit = idq.dqb_ihardlimit; ++ cdq.dqb_isoftlimit = idq.dqb_isoftlimit; ++ cdq.dqb_curinodes = idq.dqb_curinodes; ++ cdq.dqb_bhardlimit = idq.dqb_bhardlimit; ++ cdq.dqb_bsoftlimit = idq.dqb_bsoftlimit; ++ cdq.dqb_curspace = idq.dqb_curspace; ++ cdq.dqb_btime = idq.dqb_btime; ++ cdq.dqb_itime = idq.dqb_itime; ++ ret = 0; ++ if (copy_to_user(addr, &cdq, sizeof(cdq))) ++ ret = -EFAULT; ++ break; ++ } ++ ++ case QC_SETQUOTA: ++ case QC_SETUSE: ++ case QC_SETQLIM: { ++ struct if_dqblk idq; ++ struct compat_dqblk cdq; ++ ++ sb = quotactl_block(special); ++ ret = PTR_ERR(sb); ++ if (IS_ERR(sb)) ++ break; ++ ret = check_quotactl_valid(sb, type, Q_SETQUOTA, id); ++ if (ret) ++ break; ++ ret = -EFAULT; ++ if (copy_from_user(&cdq, addr, sizeof(cdq))) ++ break; ++ idq.dqb_ihardlimit = cdq.dqb_ihardlimit; ++ idq.dqb_isoftlimit = cdq.dqb_isoftlimit; ++ idq.dqb_curinodes = cdq.dqb_curinodes; ++ idq.dqb_bhardlimit = cdq.dqb_bhardlimit; ++ idq.dqb_bsoftlimit = cdq.dqb_bsoftlimit; ++ idq.dqb_curspace = cdq.dqb_curspace; ++ idq.dqb_valid = 0; ++ if (cmds == QC_SETQUOTA || cmds == QC_SETQLIM) ++ idq.dqb_valid |= QIF_LIMITS; ++ if (cmds == QC_SETQUOTA || cmds == QC_SETUSE) ++ idq.dqb_valid |= QIF_USAGE; ++ ret = sb->s_qcop->set_dqblk(sb, type, id, &idq); ++ break; ++ } ++ ++ case QC_GETINFO: { ++ struct if_dqinfo iinf; ++ struct compat_dqinfo cinf; ++ ++ sb = quotactl_block(special); ++ ret = PTR_ERR(sb); ++ if (IS_ERR(sb)) ++ break; ++ ret = check_quotactl_valid(sb, type, Q_GETQUOTA, id); ++ if (ret) ++ break; ++ ret = sb->s_qcop->get_info(sb, type, &iinf); ++ if (ret) ++ break; ++ cinf.dqi_bgrace = iinf.dqi_bgrace; ++ cinf.dqi_igrace = iinf.dqi_igrace; ++ cinf.dqi_flags = 0; ++ if (iinf.dqi_flags & DQF_INFO_DIRTY) ++ cinf.dqi_flags |= 0x0010; ++ cinf.dqi_blocks = 0; ++ cinf.dqi_free_blk = 0; ++ cinf.dqi_free_entry = 0; ++ ret = 0; ++ if (copy_to_user(addr, &cinf, sizeof(cinf))) ++ ret = -EFAULT; ++ break; ++ } ++ ++ case QC_SETINFO: ++ case QC_SETGRACE: ++ case QC_SETFLAGS: { ++ struct if_dqinfo iinf; ++ struct compat_dqinfo cinf; ++ ++ sb = quotactl_block(special); ++ ret = PTR_ERR(sb); ++ if (IS_ERR(sb)) ++ break; ++ ret = check_quotactl_valid(sb, type, Q_SETINFO, id); ++ if (ret) ++ break; ++ ret = -EFAULT; ++ if (copy_from_user(&cinf, addr, sizeof(cinf))) ++ break; ++ iinf.dqi_bgrace = cinf.dqi_bgrace; ++ iinf.dqi_igrace = cinf.dqi_igrace; ++ iinf.dqi_flags = cinf.dqi_flags; ++ iinf.dqi_valid = 0; ++ if (cmds == QC_SETINFO || cmds == QC_SETGRACE) ++ iinf.dqi_valid |= IIF_BGRACE | IIF_IGRACE; ++ if (cmds == QC_SETINFO || cmds == QC_SETFLAGS) ++ iinf.dqi_valid |= IIF_FLAGS; ++ ret = sb->s_qcop->set_info(sb, type, &iinf); ++ break; ++ } ++ ++ case QC_GETSTATS: { ++ struct compat_dqstats stat; ++ ++ memset(&stat, 0, sizeof(stat)); ++ stat.version = 6*10000+5*100+0; ++ ret = 0; ++ if (copy_to_user(addr, &stat, sizeof(stat))) ++ ret = -EFAULT; ++ break; ++ } ++ ++ default: ++ ret = -ENOSYS; ++ break; ++ } ++ if (sb && !IS_ERR(sb)) ++ drop_super(sb); ++ return ret; ++} ++ ++#endif ++ + /* + * This is the system call interface. This communicates with + * the user-level programs. Currently this only supports diskquota +@@ -372,6 +583,11 @@ + cmds = cmd >> SUBCMDSHIFT; + type = cmd & SUBCMDMASK; + ++#ifdef CONFIG_QUOTA_COMPAT ++ if (cmds >= 0x0100 && cmds < 0x3000) ++ return compat_quotactl(cmds, type, special, id, addr); ++#endif ++ + if (cmds != Q_SYNC || special) { + sb = quotactl_block(special); + if (IS_ERR(sb)) +Index: kernel/fs/read_write.c +=================================================================== +--- kernel.orig/fs/read_write.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/read_write.c 2008-11-24 15:47:46.000000000 +0100 +@@ -21,6 +21,8 @@ + #include + #include + ++#include ++ + const struct file_operations generic_ro_fops = { + .llseek = generic_file_llseek, + .read = do_sync_read, +@@ -354,6 +356,29 @@ + file->f_pos = pos; + } + ++static inline void bc_acct_write(size_t bytes) ++{ ++ struct user_beancounter *ub; ++ ++ if (bytes > 0) { ++ ub = get_exec_ub(); ++ ub_percpu_inc(ub, write); ++ ub_percpu_add(ub, wchar, bytes); ++ } ++} ++ ++static inline void bc_acct_read(size_t bytes) ++{ ++ struct user_beancounter *ub; ++ ++ if (bytes > 0) { ++ ub = get_exec_ub(); ++ ub_percpu_inc(ub, read); ++ ub_percpu_add(ub, rchar, bytes); ++ } ++} ++ ++ + asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count) + { + struct file *file; +@@ -366,6 +391,8 @@ + ret = vfs_read(file, buf, count, &pos); + file_pos_write(file, pos); + fput_light(file, fput_needed); ++ ++ bc_acct_read(ret); + } + + return ret; +@@ -384,6 +411,8 @@ + ret = vfs_write(file, buf, count, &pos); + file_pos_write(file, pos); + fput_light(file, fput_needed); ++ ++ bc_acct_write(ret); + } + + return ret; +@@ -405,6 +434,8 @@ + if (file->f_mode & FMODE_PREAD) + ret = vfs_read(file, buf, count, &pos); + fput_light(file, fput_needed); ++ ++ bc_acct_read(ret); + } + + return ret; +@@ -426,6 +457,8 @@ + if (file->f_mode & FMODE_PWRITE) + ret = vfs_write(file, buf, count, &pos); + fput_light(file, fput_needed); ++ ++ bc_acct_write(ret); + } + + return ret; +@@ -673,6 +706,8 @@ + ret = vfs_readv(file, vec, vlen, &pos); + file_pos_write(file, pos); + fput_light(file, fput_needed); ++ ++ bc_acct_read(ret); + } + + if (ret > 0) +@@ -694,6 +729,8 @@ + ret = vfs_writev(file, vec, vlen, &pos); + file_pos_write(file, pos); + fput_light(file, fput_needed); ++ ++ bc_acct_write(ret); + } + + if (ret > 0) +Index: kernel/fs/reiserfs/namei.c +=================================================================== +--- kernel.orig/fs/reiserfs/namei.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/reiserfs/namei.c 2008-11-24 15:47:46.000000000 +0100 +@@ -859,6 +859,9 @@ + INITIALIZE_PATH(path); + struct reiserfs_dir_entry de; + ++ inode = dentry->d_inode; ++ DQUOT_INIT(inode); ++ + /* we will be doing 2 balancings and update 2 stat data, we change quotas + * of the owner of the directory and of the owner of the parent directory. + * The quota structure is possibly deleted only on last iput => outside +@@ -883,8 +886,6 @@ + goto end_rmdir; + } + +- inode = dentry->d_inode; +- + reiserfs_update_inode_transaction(inode); + reiserfs_update_inode_transaction(dir); + +@@ -947,6 +948,7 @@ + unsigned long savelink; + + inode = dentry->d_inode; ++ DQUOT_INIT(inode); + + /* in this transaction we can be doing at max two balancings and update + * two stat datas, we change quotas of the owner of the directory and of +@@ -1254,6 +1256,8 @@ + + old_inode = old_dentry->d_inode; + new_dentry_inode = new_dentry->d_inode; ++ if (new_dentry_inode) ++ DQUOT_INIT(new_dentry_inode); + + // make sure, that oldname still exists and points to an object we + // are going to rename +Index: kernel/fs/select.c +=================================================================== +--- kernel.orig/fs/select.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/select.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,8 @@ + + #include + ++#include ++ + struct poll_table_page { + struct poll_table_page * next; + struct poll_table_entry * entry; +@@ -331,7 +333,8 @@ + if (size > sizeof(stack_fds) / 6) { + /* Not enough space in on-stack array; must use kmalloc */ + ret = -ENOMEM; +- bits = kmalloc(6 * size, GFP_KERNEL); ++ bits = kmalloc(6 * size, size > PAGE_SIZE / 6 ? ++ GFP_KERNEL_UBC : GFP_KERNEL); + if (!bits) + goto out_nofds; + } +@@ -677,7 +680,7 @@ + + len = min(todo, POLLFD_PER_PAGE); + size = sizeof(struct poll_list) + sizeof(struct pollfd) * len; +- walk = walk->next = kmalloc(size, GFP_KERNEL); ++ walk = walk->next = kmalloc(size, GFP_KERNEL_UBC); + if (!walk) { + err = -ENOMEM; + goto out_fds; +@@ -709,7 +712,7 @@ + return err; + } + +-static long do_restart_poll(struct restart_block *restart_block) ++long do_restart_poll(struct restart_block *restart_block) + { + struct pollfd __user *ufds = (struct pollfd __user*)restart_block->arg0; + int nfds = restart_block->arg1; +@@ -725,6 +728,7 @@ + } + return ret; + } ++EXPORT_SYMBOL_GPL(do_restart_poll); + + asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, + long timeout_msecs) +Index: kernel/fs/seq_file.c +=================================================================== +--- kernel.orig/fs/seq_file.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/seq_file.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,7 +31,7 @@ + struct seq_file *p = file->private_data; + + if (!p) { +- p = kmalloc(sizeof(*p), GFP_KERNEL); ++ p = kmalloc(sizeof(*p), GFP_KERNEL_UBC); + if (!p) + return -ENOMEM; + file->private_data = p; +@@ -86,7 +86,7 @@ + m->version = file->f_version; + /* grab buffer if we didn't have one */ + if (!m->buf) { +- m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL); ++ m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL_UBC); + if (!m->buf) + goto Enomem; + } +@@ -120,7 +120,7 @@ + goto Fill; + m->op->stop(m, p); + kfree(m->buf); +- m->buf = kmalloc(m->size <<= 1, GFP_KERNEL); ++ m->buf = kmalloc(m->size <<= 1, GFP_KERNEL_UBC); + if (!m->buf) + goto Enomem; + m->count = 0; +@@ -189,7 +189,7 @@ + return 0; + } + if (!m->buf) { +- m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL); ++ m->buf = kmalloc(m->size = PAGE_SIZE, GFP_KERNEL_UBC); + if (!m->buf) + return -ENOMEM; + } +@@ -224,7 +224,7 @@ + Eoverflow: + m->op->stop(m, p); + kfree(m->buf); +- m->buf = kmalloc(m->size <<= 1, GFP_KERNEL); ++ m->buf = kmalloc(m->size <<= 1, GFP_KERNEL_UBC); + return !m->buf ? -ENOMEM : -EAGAIN; + } + +@@ -349,6 +349,8 @@ + if (m->count < m->size) { + char *s = m->buf + m->count; + char *p = d_path(dentry, mnt, s, m->size - m->count); ++ if (IS_ERR(p) && PTR_ERR(p) != -ENAMETOOLONG) ++ return 0; + if (!IS_ERR(p)) { + while (s <= p) { + char c = *p++; +@@ -392,7 +394,7 @@ + int single_open(struct file *file, int (*show)(struct seq_file *, void *), + void *data) + { +- struct seq_operations *op = kmalloc(sizeof(*op), GFP_KERNEL); ++ struct seq_operations *op = kmalloc(sizeof(*op), GFP_KERNEL_UBC); + int res = -ENOMEM; + + if (op) { +@@ -436,7 +438,7 @@ + void *private; + struct seq_file *seq; + +- private = kzalloc(psize, GFP_KERNEL); ++ private = kzalloc(psize, GFP_KERNEL_UBC); + if (private == NULL) + goto out; + +Index: kernel/fs/simfs.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/fs/simfs.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,332 @@ ++/* ++ * fs/simfs.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#define SIMFS_GET_LOWER_FS_SB(sb) sb->s_root->d_sb ++ ++static struct super_operations sim_super_ops; ++ ++static int sim_getattr(struct vfsmount *mnt, struct dentry *dentry, ++ struct kstat *stat) ++{ ++ struct super_block *sb; ++ struct inode *inode; ++ ++ inode = dentry->d_inode; ++ if (!inode->i_op->getattr) { ++ generic_fillattr(inode, stat); ++ if (!stat->blksize) { ++ unsigned blocks; ++ ++ sb = inode->i_sb; ++ blocks = (stat->size + sb->s_blocksize-1) >> ++ sb->s_blocksize_bits; ++ stat->blocks = (sb->s_blocksize / 512) * blocks; ++ stat->blksize = sb->s_blocksize; ++ } ++ } else { ++ int err; ++ ++ err = inode->i_op->getattr(mnt, dentry, stat); ++ if (err) ++ return err; ++ } ++ ++ sb = mnt->mnt_sb; ++ if (sb->s_op == &sim_super_ops) ++ stat->dev = sb->s_dev; ++ return 0; ++} ++ ++static void quota_get_stat(struct super_block *sb, struct kstatfs *buf) ++{ ++ int err; ++ struct dq_stat qstat; ++ struct virt_info_quota q; ++ long free_file, adj_file; ++ s64 blk, free_blk, adj_blk; ++ int bsize_bits; ++ ++ q.super = sb; ++ q.qstat = &qstat; ++ err = virtinfo_notifier_call(VITYPE_QUOTA, VIRTINFO_QUOTA_GETSTAT, &q); ++ if (err != NOTIFY_OK) ++ return; ++ ++ bsize_bits = ffs(buf->f_bsize) - 1; ++ ++ if (qstat.bsoftlimit > qstat.bcurrent) ++ free_blk = (qstat.bsoftlimit - qstat.bcurrent) >> bsize_bits; ++ else ++ free_blk = 0; ++ /* ++ * In the regular case, we always set buf->f_bfree and buf->f_blocks to ++ * the values reported by quota. In case of real disk space shortage, ++ * we adjust the values. We want this adjustment to look as if the ++ * total disk space were reduced, not as if the usage were increased. ++ * -- SAW ++ */ ++ adj_blk = 0; ++ if (buf->f_bfree < free_blk) ++ adj_blk = free_blk - buf->f_bfree; ++ buf->f_bfree = free_blk - adj_blk; ++ ++ if (free_blk < buf->f_bavail) ++ buf->f_bavail = free_blk; ++ ++ blk = (qstat.bsoftlimit >> bsize_bits) - adj_blk; ++ buf->f_blocks = blk > LONG_MAX ? LONG_MAX : blk; ++ ++ free_file = qstat.isoftlimit - qstat.icurrent; ++ if (free_file < 0) ++ free_file = 0; ++ if (buf->f_type == REISERFS_SUPER_MAGIC) ++ /* ++ * reiserfs doesn't initialize f_ffree and f_files values of ++ * kstatfs because it doesn't have an inode limit. ++ */ ++ buf->f_ffree = free_file; ++ adj_file = 0; ++ if (buf->f_ffree < free_file) ++ adj_file = free_file - buf->f_ffree; ++ buf->f_ffree = free_file - adj_file; ++ buf->f_files = qstat.isoftlimit - adj_file; ++} ++ ++static int sim_statfs(struct super_block *sb, struct kstatfs *buf) ++{ ++ int err; ++ struct super_block *lsb; ++ struct kstatfs statbuf; ++ ++ err = 0; ++ if (sb->s_op != &sim_super_ops) ++ return 0; ++ ++ memset(&statbuf, 0, sizeof(statbuf)); ++ lsb = SIMFS_GET_LOWER_FS_SB(sb); ++ ++ err = -ENOSYS; ++ if (lsb && lsb->s_op && lsb->s_op->statfs) ++ err = lsb->s_op->statfs(lsb->s_root, &statbuf); ++ if (err) ++ return err; ++ ++ quota_get_stat(sb, &statbuf); ++ ++ buf->f_files = statbuf.f_files; ++ buf->f_ffree = statbuf.f_ffree; ++ buf->f_blocks = statbuf.f_blocks; ++ buf->f_bfree = statbuf.f_bfree; ++ buf->f_bavail = statbuf.f_bavail; ++ return 0; ++} ++ ++static int sim_systemcall(struct vnotifier_block *me, unsigned long n, ++ void *d, int old_ret) ++{ ++ int err; ++ ++ switch (n) { ++ case VIRTINFO_FAUDIT_STAT: { ++ struct faudit_stat_arg *arg; ++ ++ arg = (struct faudit_stat_arg *)d; ++ err = sim_getattr(arg->mnt, arg->dentry, arg->stat); ++ arg->err = err; ++ } ++ break; ++ case VIRTINFO_FAUDIT_STATFS: { ++ struct faudit_statfs_arg *arg; ++ ++ arg = (struct faudit_statfs_arg *)d; ++ err = sim_statfs(arg->sb, arg->stat); ++ arg->err = err; ++ } ++ break; ++ default: ++ return old_ret; ++ } ++ return (err ? NOTIFY_BAD : NOTIFY_OK); ++} ++ ++static struct inode *sim_quota_root(struct super_block *sb) ++{ ++ return sb->s_root->d_inode; ++} ++ ++/* ++ * NOTE: We need to setup s_bdev field on super block, since sys_quotactl() ++ * does lookup_bdev() and get_super() which are comparing sb->s_bdev. ++ * so this is a MUST if we want unmodified sys_quotactl ++ * to work correctly on /dev/simfs inside VE ++ */ ++static int sim_init_blkdev(struct super_block *sb) ++{ ++ static struct hd_struct fake_hd; ++ struct block_device *blkdev; ++ ++ blkdev = bdget(sb->s_dev); ++ if (blkdev == NULL) ++ return -ENOMEM; ++ ++ blkdev->bd_part = &fake_hd; /* required for bdev_read_only() */ ++ sb->s_bdev = blkdev; ++ ++ return 0; ++} ++ ++static void sim_free_blkdev(struct super_block *sb) ++{ ++ /* set bd_part back to NULL */ ++ sb->s_bdev->bd_part = NULL; ++ bdput(sb->s_bdev); ++} ++ ++static void sim_quota_init(struct super_block *sb) ++{ ++ struct virt_info_quota viq; ++ ++ viq.super = sb; ++ virtinfo_notifier_call(VITYPE_QUOTA, VIRTINFO_QUOTA_ON, &viq); ++} ++ ++static void sim_quota_free(struct super_block *sb) ++{ ++ struct virt_info_quota viq; ++ ++ viq.super = sb; ++ virtinfo_notifier_call(VITYPE_QUOTA, VIRTINFO_QUOTA_OFF, &viq); ++} ++ ++static struct super_operations sim_super_ops = { ++ .get_quota_root = sim_quota_root, ++}; ++ ++static int sim_fill_super(struct super_block *s, void *data) ++{ ++ int err; ++ struct nameidata *nd; ++ ++ err = set_anon_super(s, NULL); ++ if (err) ++ goto out; ++ ++ err = 0; ++ nd = (struct nameidata *)data; ++ s->s_fs_info = mntget(nd->mnt); ++ s->s_root = dget(nd->dentry); ++ s->s_op = &sim_super_ops; ++out: ++ return err; ++} ++ ++static int sim_get_sb(struct file_system_type *type, int flags, ++ const char *dev_name, void *opt, struct vfsmount *mnt) ++{ ++ int err; ++ struct nameidata nd; ++ struct super_block *sb; ++ ++ err = -EINVAL; ++ if (opt == NULL) ++ goto out; ++ ++ err = path_lookup(opt, LOOKUP_FOLLOW|LOOKUP_DIRECTORY, &nd); ++ if (err) ++ goto out; ++ ++ sb = sget(type, NULL, sim_fill_super, &nd); ++ err = PTR_ERR(sb); ++ if (IS_ERR(sb)) ++ goto out_path; ++ ++ err = sim_init_blkdev(sb); ++ if (err) ++ goto out_killsb; ++ ++ sim_quota_init(sb); ++ ++ path_release(&nd); ++ return simple_set_mnt(mnt, sb); ++ ++out_killsb: ++ up_write(&sb->s_umount); ++ deactivate_super(sb); ++out_path: ++ path_release(&nd); ++out: ++ return err; ++} ++ ++static void sim_kill_sb(struct super_block *sb) ++{ ++ dput(sb->s_root); ++ sb->s_root = NULL; ++ mntput((struct vfsmount *)(sb->s_fs_info)); ++ ++ sim_quota_free(sb); ++ sim_free_blkdev(sb); ++ ++ kill_anon_super(sb); ++} ++ ++static struct file_system_type sim_fs_type = { ++ .owner = THIS_MODULE, ++ .name = "simfs", ++ .get_sb = sim_get_sb, ++ .kill_sb = sim_kill_sb, ++ .fs_flags = FS_MANGLE_PROC, ++}; ++ ++static struct vnotifier_block sim_syscalls = { ++ .notifier_call = sim_systemcall, ++}; ++ ++static int __init init_simfs(void) ++{ ++ int err; ++ ++ err = register_filesystem(&sim_fs_type); ++ if (err) ++ return err; ++ ++ virtinfo_notifier_register(VITYPE_FAUDIT, &sim_syscalls); ++ return 0; ++} ++ ++static void __exit exit_simfs(void) ++{ ++ virtinfo_notifier_unregister(VITYPE_FAUDIT, &sim_syscalls); ++ unregister_filesystem(&sim_fs_type); ++} ++ ++MODULE_AUTHOR("SWsoft "); ++MODULE_DESCRIPTION("Open Virtuozzo Simulation of File System"); ++MODULE_LICENSE("GPL v2"); ++ ++module_init(init_simfs); ++module_exit(exit_simfs); +Index: kernel/fs/smbfs/sock.c +=================================================================== +--- kernel.orig/fs/smbfs/sock.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/smbfs/sock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -99,6 +99,7 @@ + + VERBOSE("closing socket %p\n", sock); + sock->sk->sk_data_ready = server->data_ready; ++ sock->sk->sk_user_data = NULL; + server->sock_file = NULL; + fput(file); + } +Index: kernel/fs/stat.c +=================================================================== +--- kernel.orig/fs/stat.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/stat.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -41,11 +42,19 @@ + { + struct inode *inode = dentry->d_inode; + int retval; ++ struct faudit_stat_arg arg; + + retval = security_inode_getattr(mnt, dentry); + if (retval) + return retval; + ++ arg.mnt = mnt; ++ arg.dentry = dentry; ++ arg.stat = stat; ++ if (virtinfo_notifier_call(VITYPE_FAUDIT, VIRTINFO_FAUDIT_STAT, &arg) ++ != NOTIFY_DONE) ++ return arg.err; ++ + if (inode->i_op->getattr) + return inode->i_op->getattr(mnt, dentry, stat); + +Index: kernel/fs/super.c +=================================================================== +--- kernel.orig/fs/super.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/super.c 2008-11-24 15:47:46.000000000 +0100 +@@ -37,11 +37,14 @@ + #include + #include + #include ++#include + #include + + + LIST_HEAD(super_blocks); ++EXPORT_SYMBOL_GPL(super_blocks); + DEFINE_SPINLOCK(sb_lock); ++EXPORT_SYMBOL_GPL(sb_lock); + + /** + * alloc_super - create new superblock +@@ -70,13 +73,15 @@ + INIT_LIST_HEAD(&s->s_inodes); + init_rwsem(&s->s_umount); + mutex_init(&s->s_lock); +- lockdep_set_class(&s->s_umount, &type->s_umount_key); ++ lockdep_set_class(&s->s_umount, ++ &type->proto->s_umount_key); + /* + * The locking rules for s_lock are up to the + * filesystem. For example ext3fs has different + * lock ordering than usbfs: + */ +- lockdep_set_class(&s->s_lock, &type->s_lock_key); ++ lockdep_set_class(&s->s_lock, ++ &type->proto->s_lock_key); + down_write(&s->s_umount); + s->s_count = S_BIAS; + atomic_set(&s->s_active, 1); +@@ -300,7 +305,7 @@ + sop->put_super(sb); + + /* Forget any remaining inodes */ +- if (invalidate_inodes(sb)) { ++ if (invalidate_inodes_check(sb, 1)) { + printk("VFS: Busy inodes after unmount of %s. " + "Self-destruct in 5 seconds. Have a nice day...\n", + sb->s_id); +@@ -529,17 +534,26 @@ + spin_unlock(&sb_lock); + return NULL; + } ++EXPORT_SYMBOL(user_get_super); + + asmlinkage long sys_ustat(unsigned dev, struct ustat __user * ubuf) + { ++ dev_t kdev; + struct super_block *s; + struct ustat tmp; + struct kstatfs sbuf; +- int err = -EINVAL; ++ int err; ++ ++ kdev = new_decode_dev(dev); ++ err = get_device_perms_ve(S_IFBLK, kdev, FMODE_READ); ++ if (err) ++ goto out; ++ ++ err = -EINVAL; ++ s = user_get_super(kdev); ++ if (s == NULL) ++ goto out; + +- s = user_get_super(new_decode_dev(dev)); +- if (s == NULL) +- goto out; + err = vfs_statfs(s->s_root, &sbuf); + drop_super(s); + if (err) +@@ -655,6 +669,13 @@ + static struct idr unnamed_dev_idr; + static DEFINE_SPINLOCK(unnamed_dev_lock);/* protects the above */ + ++/* for compatibility with coreutils still unaware of new minor sizes */ ++int unnamed_dev_majors[] = { ++ 0, 144, 145, 146, 242, 243, 244, 245, ++ 246, 247, 248, 249, 250, 251, 252, 253 ++}; ++EXPORT_SYMBOL(unnamed_dev_majors); ++ + int set_anon_super(struct super_block *s, void *data) + { + int dev; +@@ -672,13 +693,13 @@ + else if (error) + return -EAGAIN; + +- if ((dev & MAX_ID_MASK) == (1 << MINORBITS)) { ++ if ((dev & MAX_ID_MASK) >= (1 << MINORBITS)) { + spin_lock(&unnamed_dev_lock); + idr_remove(&unnamed_dev_idr, dev); + spin_unlock(&unnamed_dev_lock); + return -EMFILE; + } +- s->s_dev = MKDEV(0, dev & MINORMASK); ++ s->s_dev = make_unnamed_dev(dev); + return 0; + } + +@@ -686,8 +707,9 @@ + + void kill_anon_super(struct super_block *sb) + { +- int slot = MINOR(sb->s_dev); ++ int slot; + ++ slot = unnamed_dev_idx(sb->s_dev); + generic_shutdown_super(sb); + spin_lock(&unnamed_dev_lock); + idr_remove(&unnamed_dev_idr, slot); +Index: kernel/fs/sync.c +=================================================================== +--- kernel.orig/fs/sync.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sync.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,10 @@ + #include + #include + ++#include ++ ++#include ++ + #define VALID_FLAGS (SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE| \ + SYNC_FILE_RANGE_WAIT_AFTER) + +@@ -38,7 +42,14 @@ + + asmlinkage long sys_sync(void) + { ++ struct user_beancounter *ub; ++ ++ ub = get_exec_ub(); ++ ub_percpu_inc(ub, sync); ++ + do_sync(1); ++ ++ ub_percpu_inc(ub, sync_done); + return 0; + } + +@@ -80,6 +91,7 @@ + int ret; + int err; + struct address_space *mapping = file->f_mapping; ++ struct user_beancounter *ub; + + if (!file->f_op || !file->f_op->fsync) { + /* Why? We can still call filemap_fdatawrite */ +@@ -87,6 +99,12 @@ + goto out; + } + ++ ub = get_exec_ub(); ++ if (datasync) ++ ub_percpu_inc(ub, fdsync); ++ else ++ ub_percpu_inc(ub, fsync); ++ + ret = filemap_fdatawrite(mapping); + + /* +@@ -101,6 +119,11 @@ + err = filemap_fdatawait(mapping); + if (!ret) + ret = err; ++ ++ if (datasync) ++ ub_percpu_inc(ub, fdsync_done); ++ else ++ ub_percpu_inc(ub, fsync_done); + out: + return ret; + } +@@ -251,12 +274,16 @@ + loff_t endbyte, unsigned int flags) + { + int ret; ++ struct user_beancounter *ub; + + if (!mapping) { + ret = -EINVAL; +- goto out; ++ goto out_noacct; + } + ++ ub = get_exec_ub(); ++ ub_percpu_inc(ub, frsync); ++ + ret = 0; + if (flags & SYNC_FILE_RANGE_WAIT_BEFORE) { + ret = wait_on_page_writeback_range(mapping, +@@ -279,6 +306,8 @@ + endbyte >> PAGE_CACHE_SHIFT); + } + out: ++ ub_percpu_inc(ub, frsync_done); ++out_noacct: + return ret; + } + EXPORT_SYMBOL_GPL(do_sync_mapping_range); +Index: kernel/fs/sysfs/bin.c +=================================================================== +--- kernel.orig/fs/sysfs/bin.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/bin.c 2008-11-24 15:47:46.000000000 +0100 +@@ -177,6 +177,9 @@ + struct bin_buffer *bb = NULL; + int error; + ++ if (!ve_sysfs_alowed()) ++ return 0; ++ + /* binary file operations requires both @sd and its parent */ + if (!sysfs_get_active_two(attr_sd)) + return -ENODEV; +@@ -252,6 +255,8 @@ + + void sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr) + { ++ if (!ve_sysfs_alowed()) ++ return; + sysfs_hash_and_remove(kobj->sd, attr->attr.name); + } + +Index: kernel/fs/sysfs/dir.c +=================================================================== +--- kernel.orig/fs/sysfs/dir.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/dir.c 2008-11-24 15:47:46.000000000 +0100 +@@ -481,6 +481,9 @@ + struct inode *inode; + struct dentry *dentry; + ++ if (!ve_sysfs_alowed()) ++ return; ++ + inode = ilookup(sysfs_sb, sd->s_ino); + if (!inode) + return; +@@ -657,7 +660,7 @@ + if (kobj->parent) + parent_sd = kobj->parent->sd; + else +- parent_sd = &sysfs_root; ++ parent_sd = ve_sysfs_root; + + error = create_dir(kobj, parent_sd, kobject_name(kobj), &sd); + if (!error) +@@ -758,6 +761,9 @@ + { + struct sysfs_dirent *sd = kobj->sd; + ++ if (!ve_sysfs_alowed()) ++ return; ++ + spin_lock(&sysfs_assoc_lock); + kobj->sd = NULL; + spin_unlock(&sysfs_assoc_lock); +@@ -773,6 +779,9 @@ + const char *dup_name = NULL; + int error; + ++ if (!ve_sysfs_alowed()) ++ return 0; ++ + mutex_lock(&sysfs_rename_mutex); + + error = 0; +@@ -841,7 +850,7 @@ + + mutex_lock(&sysfs_rename_mutex); + BUG_ON(!sd->s_parent); +- new_parent_sd = new_parent_kobj->sd ? new_parent_kobj->sd : &sysfs_root; ++ new_parent_sd = new_parent_kobj->sd ? new_parent_kobj->sd : ve_sysfs_root; + + error = 0; + if (sd->s_parent == new_parent_sd) +Index: kernel/fs/sysfs/file.c +=================================================================== +--- kernel.orig/fs/sysfs/file.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/file.c 2008-11-24 15:47:46.000000000 +0100 +@@ -549,6 +549,8 @@ + + int sysfs_create_file(struct kobject * kobj, const struct attribute * attr) + { ++ if (!ve_sysfs_alowed()) ++ return 0; + BUG_ON(!kobj || !kobj->sd || !attr); + + return sysfs_add_file(kobj->sd, attr, SYSFS_KOBJ_ATTR); +@@ -641,16 +643,18 @@ + + void sysfs_remove_file(struct kobject * kobj, const struct attribute * attr) + { ++ if (!ve_sysfs_alowed()) ++ return; + sysfs_hash_and_remove(kobj->sd, attr->name); + } + +- + /** + * sysfs_remove_file_from_group - remove an attribute file from a group. + * @kobj: object we're acting for. + * @attr: attribute descriptor. + * @group: group name. + */ ++ + void sysfs_remove_file_from_group(struct kobject *kobj, + const struct attribute *attr, const char *group) + { +Index: kernel/fs/sysfs/group.c +=================================================================== +--- kernel.orig/fs/sysfs/group.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/group.c 2008-11-24 15:47:46.000000000 +0100 +@@ -45,6 +45,8 @@ + struct sysfs_dirent *sd; + int error; + ++ if (!ve_sysfs_alowed()) ++ return 0; + BUG_ON(!kobj || !kobj->sd); + + if (grp->name) { +@@ -69,6 +71,9 @@ + struct sysfs_dirent *dir_sd = kobj->sd; + struct sysfs_dirent *sd; + ++ if (!ve_sysfs_alowed()) ++ return; ++ + if (grp->name) { + sd = sysfs_get_dirent(dir_sd, grp->name); + BUG_ON(!sd); +Index: kernel/fs/sysfs/inode.c +=================================================================== +--- kernel.orig/fs/sysfs/inode.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/inode.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,8 +20,6 @@ + #include + #include "sysfs.h" + +-extern struct super_block * sysfs_sb; +- + static const struct address_space_operations sysfs_aops = { + .readpage = simple_readpage, + .write_begin = simple_write_begin, +Index: kernel/fs/sysfs/mount.c +=================================================================== +--- kernel.orig/fs/sysfs/mount.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/mount.c 2008-11-24 15:47:46.000000000 +0100 +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + + #include "sysfs.h" +@@ -22,8 +23,11 @@ + /* Random magic number */ + #define SYSFS_MAGIC 0x62656572 + +-static struct vfsmount *sysfs_mount; ++#ifndef CONFIG_VE ++struct vfsmount *sysfs_mount; + struct super_block * sysfs_sb = NULL; ++#endif ++ + struct kmem_cache *sysfs_dir_cachep; + + static const struct super_operations sysfs_ops = { +@@ -39,6 +43,13 @@ + .s_ino = 1, + }; + ++static void init_ve0_sysfs_root(void) ++{ ++#ifdef CONFIG_VE ++ get_ve0()->_sysfs_root = &sysfs_root; ++#endif ++} ++ + static int sysfs_fill_super(struct super_block *sb, void *data, int silent) + { + struct inode *inode; +@@ -52,7 +63,7 @@ + sysfs_sb = sb; + + /* get root inode, initialize and unlock it */ +- inode = sysfs_get_inode(&sysfs_root); ++ inode = sysfs_get_inode(ve_sysfs_root); + if (!inode) { + pr_debug("sysfs: could not get root inode\n"); + return -ENOMEM; +@@ -65,7 +76,7 @@ + iput(inode); + return -ENOMEM; + } +- root->d_fsdata = &sysfs_root; ++ root->d_fsdata = ve_sysfs_root; + sb->s_root = root; + return 0; + } +@@ -76,16 +87,19 @@ + return get_sb_single(fs_type, flags, data, sysfs_fill_super, mnt); + } + +-static struct file_system_type sysfs_fs_type = { ++struct file_system_type sysfs_fs_type = { + .name = "sysfs", + .get_sb = sysfs_get_sb, + .kill_sb = kill_anon_super, + }; + ++EXPORT_SYMBOL(sysfs_fs_type); ++ + int __init sysfs_init(void) + { + int err = -ENOMEM; + ++ init_ve0_sysfs_root(); + sysfs_dir_cachep = kmem_cache_create("sysfs_dir_cache", + sizeof(struct sysfs_dirent), + 0, 0, NULL); +Index: kernel/fs/sysfs/symlink.c +=================================================================== +--- kernel.orig/fs/sysfs/symlink.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/symlink.c 2008-11-24 15:47:46.000000000 +0100 +@@ -66,10 +66,13 @@ + struct sysfs_addrm_cxt acxt; + int error; + ++ if (!ve_sysfs_alowed()) ++ return 0; ++ + BUG_ON(!name); + + if (!kobj) +- parent_sd = &sysfs_root; ++ parent_sd = ve_sysfs_root; + else + parent_sd = kobj->sd; + +@@ -121,6 +124,8 @@ + + void sysfs_remove_link(struct kobject * kobj, const char * name) + { ++ if(!ve_sysfs_alowed()) ++ return; + sysfs_hash_and_remove(kobj->sd, name); + } + +Index: kernel/fs/sysfs/sysfs.h +=================================================================== +--- kernel.orig/fs/sysfs/sysfs.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/sysfs/sysfs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -8,67 +8,17 @@ + * This file is released under the GPLv2. + */ + +-struct sysfs_open_dirent; +- +-/* type-specific structures for sysfs_dirent->s_* union members */ +-struct sysfs_elem_dir { +- struct kobject *kobj; +- /* children list starts here and goes through sd->s_sibling */ +- struct sysfs_dirent *children; +-}; +- +-struct sysfs_elem_symlink { +- struct sysfs_dirent *target_sd; +-}; +- +-struct sysfs_elem_attr { +- struct attribute *attr; +- struct sysfs_open_dirent *open; +-}; +- +-struct sysfs_elem_bin_attr { +- struct bin_attribute *bin_attr; +-}; +- +-/* +- * sysfs_dirent - the building block of sysfs hierarchy. Each and +- * every sysfs node is represented by single sysfs_dirent. +- * +- * As long as s_count reference is held, the sysfs_dirent itself is +- * accessible. Dereferencing s_elem or any other outer entity +- * requires s_active reference. +- */ +-struct sysfs_dirent { +- atomic_t s_count; +- atomic_t s_active; +- struct sysfs_dirent *s_parent; +- struct sysfs_dirent *s_sibling; +- const char *s_name; +- +- union { +- struct sysfs_elem_dir s_dir; +- struct sysfs_elem_symlink s_symlink; +- struct sysfs_elem_attr s_attr; +- struct sysfs_elem_bin_attr s_bin_attr; +- }; +- +- unsigned int s_flags; +- ino_t s_ino; +- umode_t s_mode; +- struct iattr *s_iattr; +-}; +- +-#define SD_DEACTIVATED_BIAS INT_MIN +- +-#define SYSFS_TYPE_MASK 0x00ff +-#define SYSFS_DIR 0x0001 +-#define SYSFS_KOBJ_ATTR 0x0002 +-#define SYSFS_KOBJ_BIN_ATTR 0x0004 +-#define SYSFS_KOBJ_LINK 0x0008 +-#define SYSFS_COPY_NAME (SYSFS_DIR | SYSFS_KOBJ_LINK) +- +-#define SYSFS_FLAG_MASK ~SYSFS_TYPE_MASK +-#define SYSFS_FLAG_REMOVED 0x0200 ++#ifndef CONFIG_VE ++extern struct vfsmount *sysfs_mount; ++extern struct super_block *sysfs_sb; ++#define ve_sysfs_alowed() 1 ++#else ++#include ++#include ++#define sysfs_mount (get_exec_env()->sysfs_mnt) ++#define sysfs_sb (get_exec_env()->sysfs_sb) ++#define ve_sysfs_alowed() (sysfs_sb != NULL) ++#endif + + static inline unsigned int sysfs_type(struct sysfs_dirent *sd) + { +@@ -88,8 +38,12 @@ + /* + * mount.c + */ ++#ifdef CONFIG_VE ++#define ve_sysfs_root (get_exec_env()->_sysfs_root) ++#else + extern struct sysfs_dirent sysfs_root; +-extern struct super_block *sysfs_sb; ++#define ve_sysfs_root (&sysfs_root) ++#endif + extern struct kmem_cache *sysfs_dir_cachep; + + /* +Index: kernel/fs/utimes.c +=================================================================== +--- kernel.orig/fs/utimes.c 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/fs/utimes.c 2008-11-24 15:47:46.000000000 +0100 +@@ -57,7 +57,7 @@ + */ + long do_utimes(int dfd, char __user *filename, struct timespec *times, int flags) + { +- int error; ++ int error = -EINVAL; + struct nameidata nd; + struct path path; + struct inode *inode; +@@ -212,3 +212,18 @@ + { + return sys_futimesat(AT_FDCWD, filename, utimes); + } ++ ++asmlinkage long sys_lutime(char __user *filename, struct utimbuf __user *times) ++{ ++ struct timespec tv[2]; ++ ++ if (times) { ++ if (get_user(tv[0].tv_sec, ×->actime) || ++ get_user(tv[1].tv_sec, ×->modtime)) ++ return -EFAULT; ++ tv[0].tv_nsec = 0; ++ tv[1].tv_nsec = 0; ++ } ++ ++ return do_utimes(AT_FDCWD, filename, times ? tv : NULL, AT_SYMLINK_NOFOLLOW); ++} +Index: kernel/fs/vzdq_file.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/fs/vzdq_file.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,909 @@ ++/* ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * This file contains Virtuozzo quota files as proc entry implementation. ++ * It is required for std quota tools to work correctly as they are expecting ++ * aquota.user and aquota.group files. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* ---------------------------------------------------------------------- ++ * ++ * File read operation ++ * ++ * FIXME: functions in this section (as well as many functions in vzdq_ugid.c, ++ * perhaps) abuse vz_quota_sem. ++ * Taking a global semaphore for lengthy and user-controlled operations inside ++ * VPSs is not a good idea in general. ++ * In this case, the reasons for taking this semaphore are completely unclear, ++ * especially taking into account that the only function that has comments ++ * about the necessity to be called under this semaphore ++ * (create_proc_quotafile) is actually called OUTSIDE it. ++ * ++ * --------------------------------------------------------------------- */ ++ ++#define DQBLOCK_SIZE 1024 ++#define DQUOTBLKNUM 21U ++#define DQTREE_DEPTH 4 ++#define TREENUM_2_BLKNUM(num) (((num) + 1) << 1) ++#define ISINDBLOCK(num) ((num)%2 != 0) ++#define FIRST_DATABLK 2 /* first even number */ ++#define LAST_IND_LEVEL (DQTREE_DEPTH - 1) ++#define CONVERT_LEVEL(level) ((level) * (QUOTAID_EBITS/QUOTAID_BBITS)) ++#define GETLEVINDX(ind, lev) (((ind) >> QUOTAID_BBITS*(lev)) \ ++ & QUOTATREE_BMASK) ++ ++#if (QUOTAID_EBITS / QUOTAID_BBITS) != (QUOTATREE_DEPTH / DQTREE_DEPTH) ++#error xBITS and DQTREE_DEPTH does not correspond ++#endif ++ ++#define BLOCK_NOT_FOUND 1 ++ ++/* data for quota file -- one per proc entry */ ++struct quotatree_data { ++ struct list_head list; ++ struct vz_quota_master *qmblk; ++ int type; /* type of the tree */ ++}; ++ ++/* serialized by vz_quota_sem */ ++static LIST_HEAD(qf_data_head); ++ ++static const u_int32_t vzquota_magics[] = V2_INITQMAGICS; ++static const u_int32_t vzquota_versions[] = V2_INITQVERSIONS; ++static const char aquota_user[] = "aquota.user"; ++static const char aquota_group[] = "aquota.group"; ++ ++ ++static inline loff_t get_depoff(int depth) ++{ ++ loff_t res = 1; ++ while (depth) { ++ res += (1 << ((depth - 1)*QUOTAID_EBITS + 1)); ++ depth--; ++ } ++ return res; ++} ++ ++static inline loff_t get_blknum(loff_t num, int depth) ++{ ++ loff_t res; ++ res = (num << 1) + get_depoff(depth); ++ return res; ++} ++ ++static int get_depth(loff_t num) ++{ ++ int i; ++ for (i = 0; i < DQTREE_DEPTH; i++) { ++ if (num >= get_depoff(i) && (i == DQTREE_DEPTH - 1 ++ || num < get_depoff(i + 1))) ++ return i; ++ } ++ return -1; ++} ++ ++static inline loff_t get_offset(loff_t num) ++{ ++ loff_t res, tmp; ++ ++ tmp = get_depth(num); ++ if (tmp < 0) ++ return -1; ++ num -= get_depoff(tmp); ++ BUG_ON(num < 0); ++ res = num >> 1; ++ ++ return res; ++} ++ ++static inline loff_t get_quot_blk_num(struct quotatree_tree *tree, int level) ++{ ++ /* return maximum available block num */ ++ return tree->levels[level].freenum; ++} ++ ++static inline loff_t get_block_num(struct quotatree_tree *tree) ++{ ++ loff_t ind_blk_num, quot_blk_num, max_ind, max_quot; ++ ++ quot_blk_num = get_quot_blk_num(tree, CONVERT_LEVEL(DQTREE_DEPTH) - 1); ++ max_quot = TREENUM_2_BLKNUM(quot_blk_num); ++ ind_blk_num = get_quot_blk_num(tree, CONVERT_LEVEL(DQTREE_DEPTH - 1)); ++ max_ind = (quot_blk_num) ? get_blknum(ind_blk_num, LAST_IND_LEVEL) ++ : get_blknum(ind_blk_num, 0); ++ ++ return (max_ind > max_quot) ? max_ind + 1 : max_quot + 1; ++} ++ ++/* Write quota file header */ ++static int read_header(void *buf, struct quotatree_tree *tree, ++ struct dq_info *dq_ugid_info, int type) ++{ ++ struct v2_disk_dqheader *dqh; ++ struct v2_disk_dqinfo *dq_disk_info; ++ ++ dqh = buf; ++ dq_disk_info = buf + sizeof(struct v2_disk_dqheader); ++ ++ dqh->dqh_magic = vzquota_magics[type]; ++ dqh->dqh_version = vzquota_versions[type]; ++ ++ dq_disk_info->dqi_bgrace = dq_ugid_info[type].bexpire; ++ dq_disk_info->dqi_igrace = dq_ugid_info[type].iexpire; ++ dq_disk_info->dqi_flags = 0; /* no flags */ ++ dq_disk_info->dqi_blocks = get_block_num(tree); ++ dq_disk_info->dqi_free_blk = 0; /* first block in the file */ ++ dq_disk_info->dqi_free_entry = FIRST_DATABLK; ++ ++ return 0; ++} ++ ++static int get_block_child(int depth, struct quotatree_node *p, u_int32_t *buf) ++{ ++ int i, j, lev_num; ++ ++ lev_num = QUOTATREE_DEPTH/DQTREE_DEPTH - 1; ++ for (i = 0; i < BLOCK_SIZE/sizeof(u_int32_t); i++) { ++ struct quotatree_node *next, *parent; ++ ++ parent = p; ++ next = p; ++ for (j = lev_num; j >= 0; j--) { ++ if (!next->blocks[GETLEVINDX(i,j)]) { ++ buf[i] = 0; ++ goto bad_branch; ++ } ++ parent = next; ++ next = next->blocks[GETLEVINDX(i,j)]; ++ } ++ buf[i] = (depth == DQTREE_DEPTH - 1) ? ++ TREENUM_2_BLKNUM(parent->num) ++ : get_blknum(next->num, depth + 1); ++ ++ bad_branch: ++ ; ++ } ++ ++ return 0; ++} ++ ++/* ++ * Write index block to disk (or buffer) ++ * @buf has length 256*sizeof(u_int32_t) bytes ++ */ ++static int read_index_block(int num, u_int32_t *buf, ++ struct quotatree_tree *tree) ++{ ++ struct quotatree_node *p; ++ u_int32_t index; ++ loff_t off; ++ int depth, res; ++ ++ res = BLOCK_NOT_FOUND; ++ index = 0; ++ depth = get_depth(num); ++ off = get_offset(num); ++ if (depth < 0 || off < 0) ++ return -EINVAL; ++ ++ list_for_each_entry(p, &tree->levels[CONVERT_LEVEL(depth)].usedlh, ++ list) { ++ if (p->num >= off) ++ res = 0; ++ if (p->num != off) ++ continue; ++ get_block_child(depth, p, buf); ++ break; ++ } ++ ++ return res; ++} ++ ++static inline void convert_quot_format(struct v2_disk_dqblk *dq, ++ struct vz_quota_ugid *vzq) ++{ ++ dq->dqb_id = vzq->qugid_id; ++ dq->dqb_ihardlimit = vzq->qugid_stat.ihardlimit; ++ dq->dqb_isoftlimit = vzq->qugid_stat.isoftlimit; ++ dq->dqb_curinodes = vzq->qugid_stat.icurrent; ++ dq->dqb_bhardlimit = vzq->qugid_stat.bhardlimit / QUOTABLOCK_SIZE; ++ dq->dqb_bsoftlimit = vzq->qugid_stat.bsoftlimit / QUOTABLOCK_SIZE; ++ dq->dqb_curspace = vzq->qugid_stat.bcurrent; ++ dq->dqb_btime = vzq->qugid_stat.btime; ++ dq->dqb_itime = vzq->qugid_stat.itime; ++} ++ ++static int read_dquot(loff_t num, void *buf, struct quotatree_tree *tree) ++{ ++ int res, i, entries = 0; ++ struct v2_disk_dqdbheader *dq_header; ++ struct quotatree_node *p; ++ struct v2_disk_dqblk *blk = buf + sizeof(struct v2_disk_dqdbheader); ++ ++ res = BLOCK_NOT_FOUND; ++ dq_header = buf; ++ memset(dq_header, 0, sizeof(*dq_header)); ++ ++ list_for_each_entry(p, &(tree->levels[QUOTATREE_DEPTH - 1].usedlh), ++ list) { ++ if (TREENUM_2_BLKNUM(p->num) >= num) ++ res = 0; ++ if (TREENUM_2_BLKNUM(p->num) != num) ++ continue; ++ ++ for (i = 0; i < QUOTATREE_BSIZE; i++) { ++ if (!p->blocks[i]) ++ continue; ++ convert_quot_format(blk + entries, ++ (struct vz_quota_ugid *)p->blocks[i]); ++ entries++; ++ res = 0; ++ } ++ break; ++ } ++ dq_header->dqdh_entries = entries; ++ ++ return res; ++} ++ ++static int read_block(int num, void *buf, struct quotatree_tree *tree, ++ struct dq_info *dq_ugid_info, int magic) ++{ ++ int res; ++ ++ memset(buf, 0, DQBLOCK_SIZE); ++ if (!num) ++ res = read_header(buf, tree, dq_ugid_info, magic); ++ else if (ISINDBLOCK(num)) ++ res = read_index_block(num, (u_int32_t*)buf, tree); ++ else ++ res = read_dquot(num, buf, tree); ++ ++ return res; ++} ++ ++/* ++ * FIXME: this function can handle quota files up to 2GB only. ++ */ ++static int read_proc_quotafile(char *page, char **start, off_t off, int count, ++ int *eof, void *data) ++{ ++ off_t blk_num, blk_off, buf_off; ++ char *tmp; ++ size_t buf_size; ++ struct quotatree_data *qtd; ++ struct quotatree_tree *tree; ++ struct dq_info *dqi; ++ int res; ++ ++ *start = NULL; ++ tmp = kmalloc(DQBLOCK_SIZE, GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ qtd = data; ++ down(&vz_quota_sem); ++ down(&qtd->qmblk->dq_sem); ++ ++ res = 0; ++ tree = QUGID_TREE(qtd->qmblk, qtd->type); ++ if (!tree) { ++ *eof = 1; ++ goto out_dq; ++ } ++ ++ dqi = &qtd->qmblk->dq_ugid_info[qtd->type]; ++ ++ buf_off = 0; ++ buf_size = count; ++ blk_num = off / DQBLOCK_SIZE; ++ blk_off = off % DQBLOCK_SIZE; ++ ++ while (buf_size > 0) { ++ off_t len; ++ ++ len = min((size_t)(DQBLOCK_SIZE-blk_off), buf_size); ++ res = read_block(blk_num, tmp, tree, dqi, qtd->type); ++ if (res < 0) ++ goto out_err; ++ if (res == BLOCK_NOT_FOUND) { ++ *eof = 1; ++ break; ++ } ++ memcpy(page + buf_off, tmp + blk_off, len); ++ ++ blk_num++; ++ buf_size -= len; ++ blk_off = 0; ++ buf_off += len; ++ } ++ res = buf_off; ++ ++out_err: ++ *start += count; ++out_dq: ++ up(&qtd->qmblk->dq_sem); ++ up(&vz_quota_sem); ++ kfree(tmp); ++ ++ return res; ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * /proc/vz/vzaquota/QID/aquota.* files ++ * ++ * FIXME: this code lacks serialization of read/readdir/lseek. ++ * However, this problem should be fixed after the mainstream issue of what ++ * appears to be non-atomic read and update of file position in sys_read. ++ * ++ * --------------------------------------------------------------------- */ ++ ++static inline unsigned long vzdq_aquot_getino(dev_t dev) ++{ ++ return 0xec000000UL + dev; ++} ++ ++static inline dev_t vzdq_aquot_getidev(struct inode *inode) ++{ ++ return (dev_t)(unsigned long)PROC_I(inode)->op.proc_get_link; ++} ++ ++static inline void vzdq_aquot_setidev(struct inode *inode, dev_t dev) ++{ ++ PROC_I(inode)->op.proc_get_link = (void *)(unsigned long)dev; ++} ++ ++static ssize_t vzdq_aquotf_read(struct file *file, ++ char __user *buf, size_t size, loff_t *ppos) ++{ ++ char *page; ++ size_t bufsize; ++ ssize_t l, l2, copied; ++ char *start; ++ struct inode *inode; ++ struct block_device *bdev; ++ struct super_block *sb; ++ struct quotatree_data data; ++ int eof, err; ++ ++ err = -ENOMEM; ++ page = (char *)__get_free_page(GFP_KERNEL); ++ if (page == NULL) ++ goto out_err; ++ ++ err = -ENODEV; ++ inode = file->f_dentry->d_inode; ++ bdev = bdget(vzdq_aquot_getidev(inode)); ++ if (bdev == NULL) ++ goto out_err; ++ sb = get_super(bdev); ++ bdput(bdev); ++ if (sb == NULL) ++ goto out_err; ++ data.qmblk = vzquota_find_qmblk(sb); ++ data.type = PROC_I(inode)->fd - 1; ++ drop_super(sb); ++ if (data.qmblk == NULL || data.qmblk == VZ_QUOTA_BAD) ++ goto out_err; ++ ++ copied = 0; ++ l = l2 = 0; ++ while (1) { ++ bufsize = min(size, (size_t)PAGE_SIZE); ++ if (bufsize <= 0) ++ break; ++ ++ l = read_proc_quotafile(page, &start, *ppos, bufsize, ++ &eof, &data); ++ if (l <= 0) ++ break; ++ ++ l2 = copy_to_user(buf, page, l); ++ copied += l - l2; ++ if (l2) ++ break; ++ ++ buf += l; ++ size -= l; ++ *ppos += (unsigned long)start; ++ l = l2 = 0; ++ } ++ ++ qmblk_put(data.qmblk); ++ free_page((unsigned long)page); ++ if (copied) ++ return copied; ++ else if (l2) /* last copy_to_user failed */ ++ return -EFAULT; ++ else /* read error or EOF */ ++ return l; ++ ++out_err: ++ if (page != NULL) ++ free_page((unsigned long)page); ++ return err; ++} ++ ++static struct file_operations vzdq_aquotf_file_operations = { ++ .read = &vzdq_aquotf_read, ++}; ++ ++static struct inode_operations vzdq_aquotf_inode_operations = { ++}; ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * /proc/vz/vzaquota/QID directory ++ * ++ * --------------------------------------------------------------------- */ ++ ++static int vzdq_aquotq_readdir(struct file *file, void *data, filldir_t filler) ++{ ++ loff_t n; ++ int err; ++ ++ n = file->f_pos; ++ for (err = 0; !err; n++) { ++ /* ppc32 can't cmp 2 long long's in switch, calls __cmpdi2() */ ++ switch ((unsigned long)n) { ++ case 0: ++ err = (*filler)(data, ".", 1, n, ++ file->f_dentry->d_inode->i_ino, ++ DT_DIR); ++ break; ++ case 1: ++ err = (*filler)(data, "..", 2, n, ++ parent_ino(file->f_dentry), DT_DIR); ++ break; ++ case 2: ++ err = (*filler)(data, aquota_user, ++ sizeof(aquota_user)-1, n, ++ file->f_dentry->d_inode->i_ino ++ + USRQUOTA + 1, ++ DT_REG); ++ break; ++ case 3: ++ err = (*filler)(data, aquota_group, ++ sizeof(aquota_group)-1, n, ++ file->f_dentry->d_inode->i_ino ++ + GRPQUOTA + 1, ++ DT_REG); ++ break; ++ default: ++ goto out; ++ } ++ } ++out: ++ file->f_pos = n; ++ return err; ++} ++ ++struct vzdq_aquotq_lookdata { ++ dev_t dev; ++ int type; ++ struct vz_quota_master *qmblk; ++}; ++ ++static int vzdq_aquotq_looktest(struct inode *inode, void *data) ++{ ++ struct vzdq_aquotq_lookdata *d; ++ ++ d = data; ++ return inode->i_op == &vzdq_aquotf_inode_operations && ++ vzdq_aquot_getidev(inode) == d->dev && ++ PROC_I(inode)->fd == d->type + 1; ++} ++ ++static int vzdq_aquotq_lookset(struct inode *inode, void *data) ++{ ++ struct vzdq_aquotq_lookdata *d; ++ struct quotatree_tree *tree; ++ ++ d = data; ++ inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; ++ inode->i_ino = vzdq_aquot_getino(d->dev) + d->type + 1; ++ inode->i_mode = S_IFREG | S_IRUSR; ++ inode->i_uid = 0; ++ inode->i_gid = 0; ++ inode->i_nlink = 1; ++ inode->i_op = &vzdq_aquotf_inode_operations; ++ inode->i_fop = &vzdq_aquotf_file_operations; ++ PROC_I(inode)->fd = d->type + 1; ++ vzdq_aquot_setidev(inode, d->dev); ++ ++ /* Setting size */ ++ tree = QUGID_TREE(d->qmblk, PROC_I(inode)->fd - 1); ++ inode->i_size = get_block_num(tree) * 1024; ++ return 0; ++} ++ ++static int vzdq_aquotq_revalidate(struct dentry *vdentry, struct nameidata *nd) ++{ ++ return 0; ++} ++ ++static struct dentry_operations vzdq_aquotq_dentry_operations = { ++ .d_revalidate = &vzdq_aquotq_revalidate, ++}; ++ ++static struct vz_quota_master *find_qmblk_by_dev(dev_t dev) ++{ ++ struct super_block *sb; ++ struct vz_quota_master *qmblk; ++ ++ qmblk = NULL; ++ sb = user_get_super(dev); ++ if (sb != NULL) { ++ qmblk = vzquota_find_qmblk(sb); ++ drop_super(sb); ++ ++ if (qmblk == VZ_QUOTA_BAD) ++ qmblk = NULL; ++ } ++ ++ return qmblk; ++} ++ ++static struct dentry *vzdq_aquotq_lookup(struct inode *dir, ++ struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ struct inode *inode; ++ struct vzdq_aquotq_lookdata d; ++ int k; ++ ++ if (dentry->d_name.len == sizeof(aquota_user)-1) { ++ if (memcmp(dentry->d_name.name, aquota_user, ++ sizeof(aquota_user)-1)) ++ goto out; ++ k = USRQUOTA; ++ } else if (dentry->d_name.len == sizeof(aquota_group)-1) { ++ if (memcmp(dentry->d_name.name, aquota_group, ++ sizeof(aquota_group)-1)) ++ goto out; ++ k = GRPQUOTA; ++ } else ++ goto out; ++ d.dev = vzdq_aquot_getidev(dir); ++ d.type = k; ++ d.qmblk = find_qmblk_by_dev(d.dev); ++ if (d.qmblk == NULL) ++ goto out; ++ ++ inode = iget5_locked(dir->i_sb, dir->i_ino + k + 1, ++ vzdq_aquotq_looktest, vzdq_aquotq_lookset, &d); ++ if (inode == NULL) ++ goto out; ++ unlock_new_inode(inode); ++ dentry->d_op = &vzdq_aquotq_dentry_operations; ++ d_add(dentry, inode); ++ return NULL; ++ ++out: ++ return ERR_PTR(-ENOENT); ++} ++ ++static struct file_operations vzdq_aquotq_file_operations = { ++ .read = &generic_read_dir, ++ .readdir = &vzdq_aquotq_readdir, ++}; ++ ++static struct inode_operations vzdq_aquotq_inode_operations = { ++ .lookup = &vzdq_aquotq_lookup, ++}; ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * /proc/vz/vzaquota directory ++ * ++ * --------------------------------------------------------------------- */ ++ ++struct vzdq_aquot_de { ++ struct list_head list; ++ struct vfsmount *mnt; ++}; ++ ++static int vzdq_aquot_buildmntlist(struct ve_struct *ve, ++ struct list_head *head) ++{ ++ struct vfsmount *rmnt, *mnt; ++ struct vzdq_aquot_de *p; ++ int err; ++ ++#ifdef CONFIG_VE ++ rmnt = mntget(ve->fs_rootmnt); ++#else ++ read_lock(¤t->fs->lock); ++ rmnt = mntget(current->fs->rootmnt); ++ read_unlock(¤t->fs->lock); ++#endif ++ mnt = rmnt; ++ spin_lock(&vfsmount_lock); ++ while (1) { ++ list_for_each_entry(p, head, list) { ++ if (p->mnt->mnt_sb == mnt->mnt_sb) ++ goto skip; ++ } ++ ++ err = -ENOMEM; ++ p = kmalloc(sizeof(*p), GFP_ATOMIC); ++ if (p == NULL) ++ goto out; ++ p->mnt = mntget(mnt); ++ list_add_tail(&p->list, head); ++ ++skip: ++ err = 0; ++ if (list_empty(&mnt->mnt_mounts)) { ++ while (1) { ++ if (mnt == rmnt) ++ goto out; ++ if (mnt->mnt_child.next != ++ &mnt->mnt_parent->mnt_mounts) ++ break; ++ mnt = mnt->mnt_parent; ++ } ++ mnt = list_entry(mnt->mnt_child.next, ++ struct vfsmount, mnt_child); ++ } else ++ mnt = list_entry(mnt->mnt_mounts.next, ++ struct vfsmount, mnt_child); ++ } ++out: ++ spin_unlock(&vfsmount_lock); ++ mntput(rmnt); ++ return err; ++} ++ ++static void vzdq_aquot_releasemntlist(struct ve_struct *ve, ++ struct list_head *head) ++{ ++ struct vzdq_aquot_de *p; ++ ++ while (!list_empty(head)) { ++ p = list_entry(head->next, typeof(*p), list); ++ mntput(p->mnt); ++ list_del(&p->list); ++ kfree(p); ++ } ++} ++ ++static int vzdq_aquotd_readdir(struct file *file, void *data, filldir_t filler) ++{ ++ struct ve_struct *ve, *old_ve; ++ struct list_head mntlist; ++ struct vzdq_aquot_de *de; ++ struct super_block *sb; ++ struct vz_quota_master *qmblk; ++ loff_t i, n; ++ char buf[24]; ++ int l, err; ++ ++ i = 0; ++ n = file->f_pos; ++ ve = file->f_dentry->d_sb->s_type->owner_env; ++ old_ve = set_exec_env(ve); ++ ++ INIT_LIST_HEAD(&mntlist); ++#ifdef CONFIG_VE ++ /* ++ * The only reason of disabling readdir for the host system is that ++ * this readdir can be slow and CPU consuming with large number of VPSs ++ * (or just mount points). ++ */ ++ err = ve_is_super(ve); ++#else ++ err = 0; ++#endif ++ if (!err) { ++ err = vzdq_aquot_buildmntlist(ve, &mntlist); ++ if (err) ++ goto out_err; ++ } ++ ++ if (i >= n) { ++ if ((*filler)(data, ".", 1, i, ++ file->f_dentry->d_inode->i_ino, DT_DIR)) ++ goto out_fill; ++ } ++ i++; ++ ++ if (i >= n) { ++ if ((*filler)(data, "..", 2, i, ++ parent_ino(file->f_dentry), DT_DIR)) ++ goto out_fill; ++ } ++ i++; ++ ++ list_for_each_entry (de, &mntlist, list) { ++ sb = de->mnt->mnt_sb; ++ if (get_device_perms_ve(S_IFBLK, sb->s_dev, FMODE_QUOTACTL)) ++ continue; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ if (qmblk == NULL || qmblk == VZ_QUOTA_BAD) ++ continue; ++ ++ qmblk_put(qmblk); ++ i++; ++ if (i <= n) ++ continue; ++ ++ l = sprintf(buf, "%08x", new_encode_dev(sb->s_dev)); ++ if ((*filler)(data, buf, l, i - 1, ++ vzdq_aquot_getino(sb->s_dev), DT_DIR)) ++ break; ++ } ++ ++out_fill: ++ err = 0; ++ file->f_pos = i; ++out_err: ++ vzdq_aquot_releasemntlist(ve, &mntlist); ++ (void)set_exec_env(old_ve); ++ return err; ++} ++ ++static int vzdq_aquotd_looktest(struct inode *inode, void *data) ++{ ++ return inode->i_op == &vzdq_aquotq_inode_operations && ++ vzdq_aquot_getidev(inode) == (dev_t)(unsigned long)data; ++} ++ ++static int vzdq_aquotd_lookset(struct inode *inode, void *data) ++{ ++ dev_t dev; ++ ++ dev = (dev_t)(unsigned long)data; ++ inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; ++ inode->i_ino = vzdq_aquot_getino(dev); ++ inode->i_mode = S_IFDIR | S_IRUSR | S_IXUSR; ++ inode->i_uid = 0; ++ inode->i_gid = 0; ++ inode->i_nlink = 2; ++ inode->i_op = &vzdq_aquotq_inode_operations; ++ inode->i_fop = &vzdq_aquotq_file_operations; ++ vzdq_aquot_setidev(inode, dev); ++ return 0; ++} ++ ++static struct dentry *vzdq_aquotd_lookup(struct inode *dir, ++ struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ struct ve_struct *ve, *old_ve; ++ const unsigned char *s; ++ int l; ++ dev_t dev; ++ struct inode *inode; ++ ++ ve = dir->i_sb->s_type->owner_env; ++ old_ve = set_exec_env(ve); ++#ifdef CONFIG_VE ++ /* ++ * Lookup is much lighter than readdir, so it can be allowed for the ++ * host system. But it would be strange to be able to do lookup only ++ * without readdir... ++ */ ++ if (ve_is_super(ve)) ++ goto out; ++#endif ++ ++ dev = 0; ++ l = dentry->d_name.len; ++ if (l <= 0) ++ goto out; ++ for (s = dentry->d_name.name; l > 0; s++, l--) { ++ if (!isxdigit(*s)) ++ goto out; ++ if (dev & ~(~0UL >> 4)) ++ goto out; ++ dev <<= 4; ++ if (isdigit(*s)) ++ dev += *s - '0'; ++ else if (islower(*s)) ++ dev += *s - 'a' + 10; ++ else ++ dev += *s - 'A' + 10; ++ } ++ dev = new_decode_dev(dev); ++ ++ if (get_device_perms_ve(S_IFBLK, dev, FMODE_QUOTACTL)) ++ goto out; ++ ++ inode = iget5_locked(dir->i_sb, vzdq_aquot_getino(dev), ++ vzdq_aquotd_looktest, vzdq_aquotd_lookset, ++ (void *)(unsigned long)dev); ++ if (inode == NULL) ++ goto out; ++ unlock_new_inode(inode); ++ ++ d_add(dentry, inode); ++ (void)set_exec_env(old_ve); ++ return NULL; ++ ++out: ++ (void)set_exec_env(old_ve); ++ return ERR_PTR(-ENOENT); ++} ++ ++static struct file_operations vzdq_aquotd_file_operations = { ++ .read = &generic_read_dir, ++ .readdir = &vzdq_aquotd_readdir, ++}; ++ ++static struct inode_operations vzdq_aquotd_inode_operations = { ++ .lookup = &vzdq_aquotd_lookup, ++}; ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Initialization and deinitialization ++ * ++ * --------------------------------------------------------------------- */ ++static ctl_table fs_table[] = { ++ { ++ .ctl_name = FS_DQSTATS, ++ .procname = "quota", ++ .mode = 0555, ++ }, ++ {}, ++}; ++ ++static ctl_table sys_table[] = { ++ { ++ .ctl_name = CTL_FS, ++ .procname = "fs", ++ .mode = 0555, ++ .child = fs_table, ++ }, ++ {}, ++}; ++ ++/* ++ * FIXME: creation of proc entries here is unsafe with respect to module ++ * unloading. ++ */ ++void vzaquota_init(void) ++{ ++ struct proc_dir_entry *de; ++ ++ de = create_proc_glob_entry("vz/vzaquota", ++ S_IFDIR | S_IRUSR | S_IXUSR, NULL); ++ if (de != NULL) { ++ de->proc_iops = &vzdq_aquotd_inode_operations; ++ de->proc_fops = &vzdq_aquotd_file_operations; ++ } else ++ printk("VZDQ: vz/vzaquota creation failed\n"); ++ register_glob_sysctl_table(sys_table); ++} ++ ++void vzaquota_fini(void) ++{ ++ remove_proc_entry("vz/vzaquota", NULL); ++} +Index: kernel/fs/vzdq_mgmt.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/fs/vzdq_mgmt.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,769 @@ ++/* ++ * Copyright (C) 2001, 2002, 2004, 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* ---------------------------------------------------------------------- ++ * Switching quota on. ++ * --------------------------------------------------------------------- */ ++ ++/* ++ * check limits copied from user ++ */ ++int vzquota_check_sane_limits(struct dq_stat *qstat) ++{ ++ int err; ++ ++ err = -EINVAL; ++ ++ /* softlimit must be less then hardlimit */ ++ if (qstat->bsoftlimit > qstat->bhardlimit) ++ goto out; ++ ++ if (qstat->isoftlimit > qstat->ihardlimit) ++ goto out; ++ ++ err = 0; ++out: ++ return err; ++} ++ ++/* ++ * check usage values copied from user ++ */ ++int vzquota_check_sane_values(struct dq_stat *qstat) ++{ ++ int err; ++ ++ err = -EINVAL; ++ ++ /* expiration time must not be set if softlimit was not exceeded */ ++ if (qstat->bcurrent < qstat->bsoftlimit && qstat->btime != 0) ++ goto out; ++ ++ if (qstat->icurrent < qstat->isoftlimit && qstat->itime != 0) ++ goto out; ++ ++ err = vzquota_check_sane_limits(qstat); ++out: ++ return err; ++} ++ ++/* ++ * create new quota master block ++ * this function should: ++ * - copy limits and usage parameters from user buffer; ++ * - allock, initialize quota block and insert it to hash; ++ */ ++static int vzquota_create(unsigned int quota_id, ++ struct vz_quota_stat __user *u_qstat, int compat) ++{ ++ int err; ++ struct vz_quota_stat qstat; ++ struct vz_quota_master *qmblk; ++ ++ down(&vz_quota_sem); ++ ++ err = -EFAULT; ++ if (!compat) { ++ if (copy_from_user(&qstat, u_qstat, sizeof(qstat))) ++ goto out; ++ } else { ++#ifdef CONFIG_COMPAT ++ struct compat_vz_quota_stat cqstat; ++ if (copy_from_user(&cqstat, u_qstat, sizeof(cqstat))) ++ goto out; ++ compat_dqstat2dqstat(&cqstat.dq_stat, &qstat.dq_stat); ++ compat_dqinfo2dqinfo(&cqstat.dq_info, &qstat.dq_info); ++#endif ++ } ++ ++ err = -EINVAL; ++ if (quota_id == 0) ++ goto out; ++ ++ if (vzquota_check_sane_values(&qstat.dq_stat)) ++ goto out; ++ err = 0; ++ qmblk = vzquota_alloc_master(quota_id, &qstat); ++ ++ if (IS_ERR(qmblk)) /* ENOMEM or EEXIST */ ++ err = PTR_ERR(qmblk); ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++/** ++ * vzquota_on - turn quota on ++ * ++ * This function should: ++ * - find and get refcnt of directory entry for quota root and corresponding ++ * mountpoint; ++ * - find corresponding quota block and mark it with given path; ++ * - check quota tree; ++ * - initialize quota for the tree root. ++ */ ++static int vzquota_on(unsigned int quota_id, const char __user *quota_root, ++ char __user *buf) ++{ ++ int err; ++ struct nameidata nd; ++ struct vz_quota_master *qmblk; ++ struct super_block *dqsb; ++ ++ dqsb = NULL; ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EBUSY; ++ if (qmblk->dq_state != VZDQ_STARTING) ++ goto out; ++ ++ err = user_path_walk(quota_root, &nd); ++ if (err) ++ goto out; ++ /* init path must be a directory */ ++ err = -ENOTDIR; ++ if (!S_ISDIR(nd.dentry->d_inode->i_mode)) ++ goto out_path; ++ ++ qmblk->dq_root_dentry = nd.dentry; ++ qmblk->dq_root_mnt = nd.mnt; ++ qmblk->dq_sb = nd.dentry->d_inode->i_sb; ++ err = vzquota_get_super(qmblk->dq_sb); ++ if (err) ++ goto out_super; ++ ++ /* ++ * Serialization with quota initialization and operations is performed ++ * through generation check: generation is memorized before qmblk is ++ * found and compared under inode_qmblk_lock with assignment. ++ * ++ * Note that the dentry tree is shrunk only for high-level logical ++ * serialization, purely as a courtesy to the user: to have consistent ++ * quota statistics, files should be closed etc. on quota on. ++ */ ++ err = vzquota_on_qmblk(qmblk->dq_sb, qmblk->dq_root_dentry->d_inode, ++ qmblk, buf); ++ if (err) ++ goto out_init; ++ qmblk->dq_state = VZDQ_WORKING; ++ ++ up(&vz_quota_sem); ++ return 0; ++ ++out_init: ++ dqsb = qmblk->dq_sb; ++out_super: ++ /* clear for qmblk_put/quota_free_master */ ++ qmblk->dq_sb = NULL; ++ qmblk->dq_root_dentry = NULL; ++ qmblk->dq_root_mnt = NULL; ++out_path: ++ path_release(&nd); ++out: ++ if (dqsb) ++ vzquota_put_super(dqsb); ++ up(&vz_quota_sem); ++ return err; ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * Switching quota off. ++ * --------------------------------------------------------------------- */ ++ ++/* ++ * destroy quota block by ID ++ */ ++static int vzquota_destroy(unsigned int quota_id) ++{ ++ int err; ++ struct vz_quota_master *qmblk; ++ struct dentry *dentry; ++ struct vfsmount *mnt; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EBUSY; ++ if (qmblk->dq_state == VZDQ_WORKING) ++ goto out; /* quota_off first */ ++ ++ list_del_init(&qmblk->dq_hash); ++ dentry = qmblk->dq_root_dentry; ++ qmblk->dq_root_dentry = NULL; ++ mnt = qmblk->dq_root_mnt; ++ qmblk->dq_root_mnt = NULL; ++ ++ if (qmblk->dq_sb) ++ vzquota_put_super(qmblk->dq_sb); ++ up(&vz_quota_sem); ++ ++ qmblk_put(qmblk); ++ dput(dentry); ++ mntput(mnt); ++ return 0; ++ ++out: ++ up(&vz_quota_sem); ++ return err; ++} ++ ++/** ++ * vzquota_off - turn quota off ++ */ ++ ++static int __vzquota_sync_list(struct list_head *lh, ++ struct vz_quota_master *qmblk, ++ enum writeback_sync_modes sync_mode) ++{ ++ struct writeback_control wbc; ++ LIST_HEAD(list); ++ struct vz_quota_ilink *qlnk; ++ struct inode *inode; ++ int err, ret; ++ ++ memset(&wbc, 0, sizeof(wbc)); ++ wbc.sync_mode = sync_mode; ++ ++ err = ret = 0; ++ while (!list_empty(lh)) { ++ if (need_resched()) { ++ inode_qmblk_unlock(qmblk->dq_sb); ++ schedule(); ++ inode_qmblk_lock(qmblk->dq_sb); ++ continue; ++ } ++ ++ qlnk = list_first_entry(lh, struct vz_quota_ilink, list); ++ list_move(&qlnk->list, &list); ++ ++ inode = igrab(QLNK_INODE(qlnk)); ++ if (!inode) ++ continue; ++ ++ inode_qmblk_unlock(qmblk->dq_sb); ++ ++ wbc.nr_to_write = LONG_MAX; ++ ret = sync_inode(inode, &wbc); ++ if (ret) ++ err = ret; ++ iput(inode); ++ ++ inode_qmblk_lock(qmblk->dq_sb); ++ } ++ ++ list_splice(&list, lh); ++ return err; ++} ++ ++static int vzquota_sync_list(struct list_head *lh, ++ struct vz_quota_master *qmblk) ++{ ++ (void)__vzquota_sync_list(lh, qmblk, WB_SYNC_NONE); ++ return __vzquota_sync_list(lh, qmblk, WB_SYNC_ALL); ++} ++ ++static int vzquota_sync_inodes(struct vz_quota_master *qmblk) ++{ ++ int err; ++ LIST_HEAD(qlnk_list); ++ ++ list_splice_init(&qmblk->dq_ilink_list, &qlnk_list); ++ err = vzquota_sync_list(&qlnk_list, qmblk); ++ if (!err && !list_empty(&qmblk->dq_ilink_list)) ++ err = -EBUSY; ++ list_splice(&qlnk_list, &qmblk->dq_ilink_list); ++ ++ return err; ++} ++ ++static int vzquota_off(unsigned int quota_id, char __user *buf, int force) ++{ ++ int err, ret; ++ struct vz_quota_master *qmblk; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EALREADY; ++ if (qmblk->dq_state != VZDQ_WORKING) ++ goto out; ++ ++ inode_qmblk_lock(qmblk->dq_sb); /* protects dq_ilink_list also */ ++ ret = vzquota_sync_inodes(qmblk); ++ inode_qmblk_unlock(qmblk->dq_sb); ++ ++ err = vzquota_off_qmblk(qmblk->dq_sb, qmblk, buf, force); ++ if (err) ++ goto out; ++ ++ err = ret; ++ /* vzquota_destroy will free resources */ ++ qmblk->dq_state = VZDQ_STOPING; ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * Other VZQUOTA ioctl's. ++ * --------------------------------------------------------------------- */ ++ ++/* ++ * this function should: ++ * - set new limits/buffer under quota master block lock ++ * - if new softlimit less then usage, then set expiration time ++ * - no need to alloc ugid hash table - we'll do that on demand ++ */ ++int vzquota_update_limit(struct dq_stat *_qstat, ++ struct dq_stat *qstat) ++{ ++ int err; ++ ++ err = -EINVAL; ++ if (vzquota_check_sane_limits(qstat)) ++ goto out; ++ ++ err = 0; ++ ++ /* limits */ ++ _qstat->bsoftlimit = qstat->bsoftlimit; ++ _qstat->bhardlimit = qstat->bhardlimit; ++ /* ++ * If the soft limit is exceeded, administrator can override the moment ++ * when the grace period for limit exceeding ends. ++ * Specifying the moment may be useful if the soft limit is set to be ++ * lower than the current usage. In the latter case, if the grace ++ * period end isn't specified, the grace period will start from the ++ * moment of the first write operation. ++ * There is a race with the user level. Soft limit may be already ++ * exceeded before the limit change, and grace period end calculated by ++ * the kernel will be overriden. User level may check if the limit is ++ * already exceeded, but check and set calls are not atomic. ++ * This race isn't dangerous. Under normal cicrumstances, the ++ * difference between the grace period end calculated by the kernel and ++ * the user level should be not greater than as the difference between ++ * the moments of check and set calls, i.e. not bigger than the quota ++ * timer resolution - 1 sec. ++ */ ++ if (qstat->btime != (time_t)0 && ++ _qstat->bcurrent >= _qstat->bsoftlimit) ++ _qstat->btime = qstat->btime; ++ ++ _qstat->isoftlimit = qstat->isoftlimit; ++ _qstat->ihardlimit = qstat->ihardlimit; ++ if (qstat->itime != (time_t)0 && ++ _qstat->icurrent >= _qstat->isoftlimit) ++ _qstat->itime = qstat->itime; ++ ++out: ++ return err; ++} ++ ++/* ++ * set new quota limits. ++ * this function should: ++ * copy new limits from user level ++ * - find quota block ++ * - set new limits and flags. ++ */ ++static int vzquota_setlimit(unsigned int quota_id, ++ struct vz_quota_stat __user *u_qstat, int compat) ++{ ++ int err; ++ struct vz_quota_stat qstat; ++ struct vz_quota_master *qmblk; ++ ++ down(&vz_quota_sem); /* for hash list protection */ ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EFAULT; ++ if (!compat) { ++ if (copy_from_user(&qstat, u_qstat, sizeof(qstat))) ++ goto out; ++ } else { ++#ifdef CONFIG_COMPAT ++ struct compat_vz_quota_stat cqstat; ++ if (copy_from_user(&cqstat, u_qstat, sizeof(cqstat))) ++ goto out; ++ compat_dqstat2dqstat(&cqstat.dq_stat, &qstat.dq_stat); ++ compat_dqinfo2dqinfo(&cqstat.dq_info, &qstat.dq_info); ++#endif ++ } ++ ++ qmblk_data_write_lock(qmblk); ++ err = vzquota_update_limit(&qmblk->dq_stat, &qstat.dq_stat); ++ if (err == 0) ++ qmblk->dq_info = qstat.dq_info; ++ qmblk_data_write_unlock(qmblk); ++ ++out: ++ up(&vz_quota_sem); ++ return err; ++} ++ ++/* ++ * get quota limits. ++ * very simple - just return stat buffer to user ++ */ ++static int vzquota_getstat(unsigned int quota_id, ++ struct vz_quota_stat __user *u_qstat, int compat) ++{ ++ int err; ++ struct vz_quota_stat qstat; ++ struct vz_quota_master *qmblk; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ qmblk_data_read_lock(qmblk); ++ /* copy whole buffer under lock */ ++ memcpy(&qstat.dq_stat, &qmblk->dq_stat, sizeof(qstat.dq_stat)); ++ memcpy(&qstat.dq_info, &qmblk->dq_info, sizeof(qstat.dq_info)); ++ qmblk_data_read_unlock(qmblk); ++ ++ if (!compat) ++ err = copy_to_user(u_qstat, &qstat, sizeof(qstat)); ++ else { ++#ifdef CONFIG_COMPAT ++ struct compat_vz_quota_stat cqstat; ++ dqstat2compat_dqstat(&qstat.dq_stat, &cqstat.dq_stat); ++ dqinfo2compat_dqinfo(&qstat.dq_info, &cqstat.dq_info); ++ err = copy_to_user(u_qstat, &cqstat, sizeof(cqstat)); ++#endif ++ } ++ if (err) ++ err = -EFAULT; ++ ++out: ++ up(&vz_quota_sem); ++ return err; ++} ++ ++/* ++ * This is a system call to turn per-VE disk quota on. ++ * Note this call is allowed to run ONLY from VE0 ++ */ ++long do_vzquotactl(int cmd, unsigned int quota_id, ++ struct vz_quota_stat __user *qstat, const char __user *ve_root, ++ int compat) ++{ ++ int ret; ++ int force = 0; ++ ++ ret = -EPERM; ++ /* access allowed only from root of VE0 */ ++ if (!capable(CAP_SYS_RESOURCE) || ++ !capable(CAP_SYS_ADMIN)) ++ goto out; ++ ++ switch (cmd) { ++ case VZ_DQ_CREATE: ++ ret = vzquota_create(quota_id, qstat, compat); ++ break; ++ case VZ_DQ_DESTROY: ++ ret = vzquota_destroy(quota_id); ++ break; ++ case VZ_DQ_ON: ++ /* ++ * qstat is just a pointer to userspace buffer to ++ * store busy files path in case of vzquota_on fail ++ */ ++ ret = vzquota_on(quota_id, ve_root, (char *)qstat); ++ break; ++ case VZ_DQ_OFF_FORCED: ++ force = 1; ++ case VZ_DQ_OFF: ++ /* ++ * ve_root is just a pointer to userspace buffer to ++ * store busy files path in case of vzquota_off fail ++ */ ++ ret = vzquota_off(quota_id, (char *)ve_root, force); ++ break; ++ case VZ_DQ_SETLIMIT: ++ ret = vzquota_setlimit(quota_id, qstat, compat); ++ break; ++ case VZ_DQ_GETSTAT: ++ ret = vzquota_getstat(quota_id, qstat, compat); ++ break; ++ ++ default: ++ ret = -EINVAL; ++ goto out; ++ } ++ ++out: ++ return ret; ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * Proc filesystem routines ++ * ---------------------------------------------------------------------*/ ++ ++#if defined(CONFIG_PROC_FS) ++ ++#define QUOTA_UINT_LEN 15 ++#define QUOTA_TIME_LEN_FMT_UINT "%11u" ++#define QUOTA_NUM_LEN_FMT_UINT "%15u" ++#define QUOTA_NUM_LEN_FMT_ULL "%15Lu" ++#define QUOTA_TIME_LEN_FMT_STR "%11s" ++#define QUOTA_NUM_LEN_FMT_STR "%15s" ++#define QUOTA_PROC_MAX_LINE_LEN 2048 ++ ++/* ++ * prints /proc/ve_dq header line ++ */ ++static int print_proc_header(char * buffer) ++{ ++ return sprintf(buffer, ++ "%-11s" ++ QUOTA_NUM_LEN_FMT_STR ++ QUOTA_NUM_LEN_FMT_STR ++ QUOTA_NUM_LEN_FMT_STR ++ QUOTA_TIME_LEN_FMT_STR ++ QUOTA_TIME_LEN_FMT_STR ++ "\n", ++ "qid: path", ++ "usage", "softlimit", "hardlimit", "time", "expire"); ++} ++ ++/* ++ * prints proc master record id, dentry path ++ */ ++static int print_proc_master_id(char * buffer, char * path_buf, ++ struct vz_quota_master * qp) ++{ ++ char *path; ++ int over; ++ ++ path = NULL; ++ switch (qp->dq_state) { ++ case VZDQ_WORKING: ++ if (!path_buf) { ++ path = ""; ++ break; ++ } ++ path = d_path(qp->dq_root_dentry, ++ qp->dq_root_mnt, path_buf, PAGE_SIZE); ++ if (IS_ERR(path)) { ++ path = ""; ++ break; ++ } ++ /* do not print large path, truncate it */ ++ over = strlen(path) - ++ (QUOTA_PROC_MAX_LINE_LEN - 3 - 3 - ++ QUOTA_UINT_LEN); ++ if (over > 0) { ++ path += over - 3; ++ path[0] = path[1] = path[3] = '.'; ++ } ++ break; ++ case VZDQ_STARTING: ++ path = "-- started --"; ++ break; ++ case VZDQ_STOPING: ++ path = "-- stopped --"; ++ break; ++ } ++ ++ return sprintf(buffer, "%u: %s\n", qp->dq_id, path); ++} ++ ++/* ++ * prints struct vz_quota_stat data ++ */ ++static int print_proc_stat(char * buffer, struct dq_stat *qs, ++ struct dq_info *qi) ++{ ++ return sprintf(buffer, ++ "%11s" ++ QUOTA_NUM_LEN_FMT_ULL ++ QUOTA_NUM_LEN_FMT_ULL ++ QUOTA_NUM_LEN_FMT_ULL ++ QUOTA_TIME_LEN_FMT_UINT ++ QUOTA_TIME_LEN_FMT_UINT ++ "\n" ++ "%11s" ++ QUOTA_NUM_LEN_FMT_UINT ++ QUOTA_NUM_LEN_FMT_UINT ++ QUOTA_NUM_LEN_FMT_UINT ++ QUOTA_TIME_LEN_FMT_UINT ++ QUOTA_TIME_LEN_FMT_UINT ++ "\n", ++ "1k-blocks", ++ (unsigned long long)qs->bcurrent >> 10, ++ (unsigned long long)qs->bsoftlimit >> 10, ++ (unsigned long long)qs->bhardlimit >> 10, ++ (unsigned int)qs->btime, ++ (unsigned int)qi->bexpire, ++ "inodes", ++ qs->icurrent, ++ qs->isoftlimit, ++ qs->ihardlimit, ++ (unsigned int)qs->itime, ++ (unsigned int)qi->iexpire); ++} ++ ++ ++/* ++ * for /proc filesystem output ++ */ ++static int vzquota_read_proc(char *page, char **start, off_t off, int count, ++ int *eof, void *data) ++{ ++ int len, i; ++ off_t printed = 0; ++ char *p = page; ++ struct vz_quota_master *qp; ++ struct vz_quota_ilink *ql2; ++ struct list_head *listp; ++ char *path_buf; ++ ++ path_buf = (char*)__get_free_page(GFP_KERNEL); ++ if (path_buf == NULL) ++ return -ENOMEM; ++ ++ len = print_proc_header(p); ++ printed += len; ++ if (off < printed) /* keep header in output */ { ++ *start = p + off; ++ p += len; ++ } ++ ++ down(&vz_quota_sem); ++ ++ /* traverse master hash table for all records */ ++ for (i = 0; i < vzquota_hash_size; i++) { ++ list_for_each(listp, &vzquota_hash_table[i]) { ++ qp = list_entry(listp, ++ struct vz_quota_master, dq_hash); ++ ++ /* Skip other VE's information if not root of VE0 */ ++ if ((!capable(CAP_SYS_ADMIN) || ++ !capable(CAP_SYS_RESOURCE))) { ++ ql2 = INODE_QLNK(current->fs->root->d_inode); ++ if (ql2 == NULL || qp != ql2->qmblk) ++ continue; ++ } ++ /* ++ * Now print the next record ++ */ ++ len = 0; ++ /* we print quotaid and path only in VE0 */ ++ if (capable(CAP_SYS_ADMIN)) ++ len += print_proc_master_id(p+len,path_buf, qp); ++ len += print_proc_stat(p+len, &qp->dq_stat, ++ &qp->dq_info); ++ printed += len; ++ /* skip unnecessary lines */ ++ if (printed <= off) ++ continue; ++ p += len; ++ /* provide start offset */ ++ if (*start == NULL) ++ *start = p + (off - printed); ++ /* have we printed all requested size? */ ++ if (PAGE_SIZE - (p - page) < QUOTA_PROC_MAX_LINE_LEN || ++ (p - *start) >= count) ++ goto out; ++ } ++ } ++ ++ *eof = 1; /* checked all hash */ ++out: ++ up(&vz_quota_sem); ++ ++ len = 0; ++ if (*start != NULL) { ++ len = (p - *start); ++ if (len > count) ++ len = count; ++ } ++ ++ if (path_buf) ++ free_page((unsigned long) path_buf); ++ ++ return len; ++} ++ ++/* ++ * Register procfs read callback ++ */ ++int vzquota_proc_init(void) ++{ ++ struct proc_dir_entry *de; ++ ++ de = create_proc_entry_mod("vz/vzquota", S_IFREG|S_IRUSR, NULL, ++ THIS_MODULE); ++ if (de == NULL) { ++ /* create "vz" subdirectory, if not exist */ ++ de = create_proc_entry("vz", S_IFDIR|S_IRUGO|S_IXUGO, NULL); ++ if (de == NULL) ++ goto out_err; ++ de = create_proc_entry_mod("vzquota", S_IFREG|S_IRUSR, de, ++ THIS_MODULE); ++ if (de == NULL) ++ goto out_err; ++ } ++ de->read_proc = vzquota_read_proc; ++ de->data = NULL; ++ return 0; ++out_err: ++ return -EBUSY; ++} ++ ++void vzquota_proc_release(void) ++{ ++ /* Unregister procfs read callback */ ++ remove_proc_entry("vz/vzquota", NULL); ++} ++ ++#endif +Index: kernel/fs/vzdq_ops.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/fs/vzdq_ops.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,633 @@ ++/* ++ * Copyright (C) 2001, 2002, 2004, 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* ---------------------------------------------------------------------- ++ * Quota superblock operations - helper functions. ++ * --------------------------------------------------------------------- */ ++ ++static inline void vzquota_incr_inodes(struct dq_stat *dqstat, ++ unsigned long number) ++{ ++ dqstat->icurrent += number; ++} ++ ++static inline void vzquota_incr_space(struct dq_stat *dqstat, ++ __u64 number) ++{ ++ dqstat->bcurrent += number; ++} ++ ++static inline void vzquota_decr_inodes(struct dq_stat *dqstat, ++ unsigned long number) ++{ ++ if (dqstat->icurrent > number) ++ dqstat->icurrent -= number; ++ else ++ dqstat->icurrent = 0; ++ if (dqstat->icurrent < dqstat->isoftlimit) ++ dqstat->itime = (time_t) 0; ++} ++ ++static inline void vzquota_decr_space(struct dq_stat *dqstat, ++ __u64 number) ++{ ++ if (dqstat->bcurrent > number) ++ dqstat->bcurrent -= number; ++ else ++ dqstat->bcurrent = 0; ++ if (dqstat->bcurrent < dqstat->bsoftlimit) ++ dqstat->btime = (time_t) 0; ++} ++ ++/* ++ * better printk() message or use /proc/vzquotamsg interface ++ * similar to /proc/kmsg ++ */ ++static inline void vzquota_warn(struct dq_info *dq_info, int dq_id, int flag, ++ const char *fmt) ++{ ++ if (dq_info->flags & flag) /* warning already printed for this ++ masterblock */ ++ return; ++ printk(fmt, dq_id); ++ dq_info->flags |= flag; ++} ++ ++/* ++ * ignore_hardlimit - ++ * ++ * Intended to allow superuser of VE0 to overwrite hardlimits. ++ * ++ * ignore_hardlimit() has a very bad feature: ++ * ++ * writepage() operation for writable mapping of a file with holes ++ * may trigger get_block() with wrong current and as a consequence, ++ * opens a possibility to overcommit hardlimits ++ */ ++/* for the reason above, it is disabled now */ ++static inline int ignore_hardlimit(struct dq_info *dqstat) ++{ ++#if 0 ++ return ve_is_super(get_exec_env()) && ++ capable(CAP_SYS_RESOURCE) && ++ (dqstat->options & VZ_QUOTA_OPT_RSQUASH); ++#else ++ return 0; ++#endif ++} ++ ++static int vzquota_check_inodes(struct dq_info *dq_info, ++ struct dq_stat *dqstat, ++ unsigned long number, int dq_id) ++{ ++ if (number == 0) ++ return QUOTA_OK; ++ ++ if (dqstat->icurrent + number > dqstat->ihardlimit && ++ !ignore_hardlimit(dq_info)) { ++ vzquota_warn(dq_info, dq_id, VZ_QUOTA_INODES, ++ "VZ QUOTA: file hardlimit reached for id=%d\n"); ++ return NO_QUOTA; ++ } ++ ++ if (dqstat->icurrent + number > dqstat->isoftlimit) { ++ if (dqstat->itime == (time_t)0) { ++ vzquota_warn(dq_info, dq_id, 0, ++ "VZ QUOTA: file softlimit exceeded " ++ "for id=%d\n"); ++ dqstat->itime = CURRENT_TIME_SECONDS + ++ dq_info->iexpire; ++ } else if (CURRENT_TIME_SECONDS >= dqstat->itime && ++ !ignore_hardlimit(dq_info)) { ++ vzquota_warn(dq_info, dq_id, VZ_QUOTA_INODES, ++ "VZ QUOTA: file softlimit expired " ++ "for id=%d\n"); ++ return NO_QUOTA; ++ } ++ } ++ ++ return QUOTA_OK; ++} ++ ++static int vzquota_check_space(struct dq_info *dq_info, ++ struct dq_stat *dqstat, ++ __u64 number, int dq_id, char prealloc) ++{ ++ if (number == 0) ++ return QUOTA_OK; ++ ++ if (prealloc == DQUOT_CMD_FORCE) ++ return QUOTA_OK; ++ ++ if (dqstat->bcurrent + number > dqstat->bhardlimit && ++ !ignore_hardlimit(dq_info)) { ++ if (!prealloc) ++ vzquota_warn(dq_info, dq_id, VZ_QUOTA_SPACE, ++ "VZ QUOTA: disk hardlimit reached " ++ "for id=%d\n"); ++ return NO_QUOTA; ++ } ++ ++ if (dqstat->bcurrent + number > dqstat->bsoftlimit) { ++ if (dqstat->btime == (time_t)0) { ++ if (!prealloc) { ++ vzquota_warn(dq_info, dq_id, 0, ++ "VZ QUOTA: disk softlimit exceeded " ++ "for id=%d\n"); ++ dqstat->btime = CURRENT_TIME_SECONDS ++ + dq_info->bexpire; ++ } else { ++ /* ++ * Original Linux quota doesn't allow ++ * preallocation to exceed softlimit so ++ * exceeding will be always printed ++ */ ++ return NO_QUOTA; ++ } ++ } else if (CURRENT_TIME_SECONDS >= dqstat->btime && ++ !ignore_hardlimit(dq_info)) { ++ if (!prealloc) ++ vzquota_warn(dq_info, dq_id, VZ_QUOTA_SPACE, ++ "VZ QUOTA: disk quota " ++ "softlimit expired " ++ "for id=%d\n"); ++ return NO_QUOTA; ++ } ++ } ++ ++ return QUOTA_OK; ++} ++ ++#ifdef CONFIG_VZ_QUOTA_UGID ++static int vzquota_check_ugid_inodes(struct vz_quota_master *qmblk, ++ struct vz_quota_ugid *qugid[], ++ int type, unsigned long number) ++{ ++ struct dq_info *dqinfo; ++ struct dq_stat *dqstat; ++ ++ if (qugid[type] == NULL) ++ return QUOTA_OK; ++ if (qugid[type] == VZ_QUOTA_UGBAD) ++ return NO_QUOTA; ++ ++ if (type == USRQUOTA && !(qmblk->dq_flags & VZDQ_USRQUOTA)) ++ return QUOTA_OK; ++ if (type == GRPQUOTA && !(qmblk->dq_flags & VZDQ_GRPQUOTA)) ++ return QUOTA_OK; ++ if (number == 0) ++ return QUOTA_OK; ++ ++ dqinfo = &qmblk->dq_ugid_info[type]; ++ dqstat = &qugid[type]->qugid_stat; ++ ++ if (dqstat->ihardlimit != 0 && ++ dqstat->icurrent + number > dqstat->ihardlimit) ++ return NO_QUOTA; ++ ++ if (dqstat->isoftlimit != 0 && ++ dqstat->icurrent + number > dqstat->isoftlimit) { ++ if (dqstat->itime == (time_t)0) ++ dqstat->itime = CURRENT_TIME_SECONDS + ++ dqinfo->iexpire; ++ else if (CURRENT_TIME_SECONDS >= dqstat->itime) ++ return NO_QUOTA; ++ } ++ ++ return QUOTA_OK; ++} ++ ++static int vzquota_check_ugid_space(struct vz_quota_master *qmblk, ++ struct vz_quota_ugid *qugid[], ++ int type, __u64 number, char prealloc) ++{ ++ struct dq_info *dqinfo; ++ struct dq_stat *dqstat; ++ ++ if (prealloc == DQUOT_CMD_FORCE) ++ return QUOTA_OK; ++ ++ if (qugid[type] == NULL) ++ return QUOTA_OK; ++ if (qugid[type] == VZ_QUOTA_UGBAD) ++ return NO_QUOTA; ++ ++ if (type == USRQUOTA && !(qmblk->dq_flags & VZDQ_USRQUOTA)) ++ return QUOTA_OK; ++ if (type == GRPQUOTA && !(qmblk->dq_flags & VZDQ_GRPQUOTA)) ++ return QUOTA_OK; ++ if (number == 0) ++ return QUOTA_OK; ++ ++ dqinfo = &qmblk->dq_ugid_info[type]; ++ dqstat = &qugid[type]->qugid_stat; ++ ++ if (dqstat->bhardlimit != 0 && ++ dqstat->bcurrent + number > dqstat->bhardlimit) ++ return NO_QUOTA; ++ ++ if (dqstat->bsoftlimit != 0 && ++ dqstat->bcurrent + number > dqstat->bsoftlimit) { ++ if (dqstat->btime == (time_t)0) { ++ if (!prealloc) ++ dqstat->btime = CURRENT_TIME_SECONDS ++ + dqinfo->bexpire; ++ else ++ /* ++ * Original Linux quota doesn't allow ++ * preallocation to exceed softlimit so ++ * exceeding will be always printed ++ */ ++ return NO_QUOTA; ++ } else if (CURRENT_TIME_SECONDS >= dqstat->btime) ++ return NO_QUOTA; ++ } ++ ++ return QUOTA_OK; ++} ++#endif ++ ++/* ---------------------------------------------------------------------- ++ * Quota superblock operations ++ * --------------------------------------------------------------------- */ ++ ++/* ++ * S_NOQUOTA note. ++ * In the current kernel (2.6.8.1), S_NOQUOTA flag is set only for ++ * - quota file (absent in our case) ++ * - after explicit DQUOT_DROP (earlier than clear_inode) in functions like ++ * filesystem-specific new_inode, before the inode gets outside links. ++ * For the latter case, the only quota operation where care about S_NOQUOTA ++ * might be required is vzquota_drop, but there S_NOQUOTA has already been ++ * checked in DQUOT_DROP(). ++ * So, S_NOQUOTA may be ignored for now in the VZDQ code. ++ * ++ * The above note is not entirely correct. ++ * Both for ext2 and ext3 filesystems, DQUOT_FREE_INODE is called from ++ * delete_inode if new_inode fails (for example, because of inode quota ++ * limits), so S_NOQUOTA check is needed in free_inode. ++ * This seems to be the dark corner of the current quota API. ++ */ ++ ++/* ++ * Initialize quota operations for the specified inode. ++ */ ++static int vzquota_initialize(struct inode *inode, int type) ++{ ++ vzquota_inode_init_call(inode); ++ return 0; /* ignored by caller */ ++} ++ ++/* ++ * Release quota for the specified inode. ++ */ ++static int vzquota_drop(struct inode *inode) ++{ ++ vzquota_inode_drop_call(inode); ++ return 0; /* ignored by caller */ ++} ++ ++/* ++ * Allocate block callback. ++ * ++ * If (prealloc) disk quota exceeding warning is not printed. ++ * See Linux quota to know why. ++ * ++ * Return: ++ * QUOTA_OK == 0 on SUCCESS ++ * NO_QUOTA == 1 if allocation should fail ++ */ ++static int vzquota_alloc_space(struct inode *inode, ++ qsize_t number, int prealloc) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_datast data; ++ int ret = QUOTA_OK; ++ ++ qmblk = vzquota_inode_data(inode, &data); ++ if (qmblk == VZ_QUOTA_BAD) ++ return NO_QUOTA; ++ if (qmblk != NULL) { ++#ifdef CONFIG_VZ_QUOTA_UGID ++ int cnt; ++ struct vz_quota_ugid * qugid[MAXQUOTAS]; ++#endif ++ ++ /* checking first */ ++ ret = vzquota_check_space(&qmblk->dq_info, &qmblk->dq_stat, ++ number, qmblk->dq_id, prealloc); ++ if (ret == NO_QUOTA) ++ goto no_quota; ++#ifdef CONFIG_VZ_QUOTA_UGID ++ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { ++ qugid[cnt] = INODE_QLNK(inode)->qugid[cnt]; ++ ret = vzquota_check_ugid_space(qmblk, qugid, ++ cnt, number, prealloc); ++ if (ret == NO_QUOTA) ++ goto no_quota; ++ } ++ /* check ok, may increment */ ++ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { ++ if (qugid[cnt] == NULL) ++ continue; ++ vzquota_incr_space(&qugid[cnt]->qugid_stat, number); ++ } ++#endif ++ vzquota_incr_space(&qmblk->dq_stat, number); ++ vzquota_data_unlock(inode, &data); ++ } ++ ++ inode_add_bytes(inode, number); ++ might_sleep(); ++ return QUOTA_OK; ++ ++no_quota: ++ vzquota_data_unlock(inode, &data); ++ return NO_QUOTA; ++} ++ ++/* ++ * Allocate inodes callback. ++ * ++ * Return: ++ * QUOTA_OK == 0 on SUCCESS ++ * NO_QUOTA == 1 if allocation should fail ++ */ ++static int vzquota_alloc_inode(const struct inode *inode, unsigned long number) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_datast data; ++ int ret = QUOTA_OK; ++ ++ qmblk = vzquota_inode_data((struct inode *)inode, &data); ++ if (qmblk == VZ_QUOTA_BAD) ++ return NO_QUOTA; ++ if (qmblk != NULL) { ++#ifdef CONFIG_VZ_QUOTA_UGID ++ int cnt; ++ struct vz_quota_ugid *qugid[MAXQUOTAS]; ++#endif ++ ++ /* checking first */ ++ ret = vzquota_check_inodes(&qmblk->dq_info, &qmblk->dq_stat, ++ number, qmblk->dq_id); ++ if (ret == NO_QUOTA) ++ goto no_quota; ++#ifdef CONFIG_VZ_QUOTA_UGID ++ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { ++ qugid[cnt] = INODE_QLNK(inode)->qugid[cnt]; ++ ret = vzquota_check_ugid_inodes(qmblk, qugid, ++ cnt, number); ++ if (ret == NO_QUOTA) ++ goto no_quota; ++ } ++ /* check ok, may increment */ ++ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { ++ if (qugid[cnt] == NULL) ++ continue; ++ vzquota_incr_inodes(&qugid[cnt]->qugid_stat, number); ++ } ++#endif ++ vzquota_incr_inodes(&qmblk->dq_stat, number); ++ vzquota_data_unlock((struct inode *)inode, &data); ++ } ++ ++ might_sleep(); ++ return QUOTA_OK; ++ ++no_quota: ++ vzquota_data_unlock((struct inode *)inode, &data); ++ return NO_QUOTA; ++} ++ ++/* ++ * Free space callback. ++ */ ++static int vzquota_free_space(struct inode *inode, qsize_t number) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_datast data; ++ ++ qmblk = vzquota_inode_data(inode, &data); ++ if (qmblk == VZ_QUOTA_BAD) ++ return NO_QUOTA; /* isn't checked by the caller */ ++ if (qmblk != NULL) { ++#ifdef CONFIG_VZ_QUOTA_UGID ++ int cnt; ++ struct vz_quota_ugid * qugid; ++#endif ++ ++ vzquota_decr_space(&qmblk->dq_stat, number); ++#ifdef CONFIG_VZ_QUOTA_UGID ++ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { ++ qugid = INODE_QLNK(inode)->qugid[cnt]; ++ if (qugid == NULL || qugid == VZ_QUOTA_UGBAD) ++ continue; ++ vzquota_decr_space(&qugid->qugid_stat, number); ++ } ++#endif ++ vzquota_data_unlock(inode, &data); ++ } ++ inode_sub_bytes(inode, number); ++ might_sleep(); ++ return QUOTA_OK; ++} ++ ++/* ++ * Free inodes callback. ++ */ ++static int vzquota_free_inode(const struct inode *inode, unsigned long number) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_datast data; ++ ++ qmblk = vzquota_inode_data((struct inode *)inode, &data); ++ if (qmblk == VZ_QUOTA_BAD) ++ return NO_QUOTA; ++ if (qmblk != NULL) { ++#ifdef CONFIG_VZ_QUOTA_UGID ++ int cnt; ++ struct vz_quota_ugid * qugid; ++#endif ++ ++ vzquota_decr_inodes(&qmblk->dq_stat, number); ++#ifdef CONFIG_VZ_QUOTA_UGID ++ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { ++ qugid = INODE_QLNK(inode)->qugid[cnt]; ++ if (qugid == NULL || qugid == VZ_QUOTA_UGBAD) ++ continue; ++ vzquota_decr_inodes(&qugid->qugid_stat, number); ++ } ++#endif ++ vzquota_data_unlock((struct inode *)inode, &data); ++ } ++ might_sleep(); ++ return QUOTA_OK; ++} ++ ++void vzquota_inode_off(struct inode * inode) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_datast data; ++ ++ /* The call is made through virtinfo, it can be an inode ++ * not controlled by vzquota. ++ */ ++ if (inode->i_sb->dq_op != &vz_quota_operations) ++ return; ++ ++ qmblk = vzquota_inode_data(inode, &data); ++ if (qmblk == VZ_QUOTA_BAD) ++ return; ++ ++ if (qmblk == NULL) { ++ /* Tricky place. If qmblk == NULL, it means that this inode ++ * is not in area controlled by vzquota (except for rare ++ * case of already set S_NOQUOTA). But we have to set ++ * S_NOQUOTA in any case because vzquota can be turned ++ * on later, when this inode is invalid from viewpoint ++ * of vzquota. ++ * ++ * To be safe, we reacquire vzquota lock. ++ */ ++ inode_qmblk_lock(inode->i_sb); ++ inode->i_flags |= S_NOQUOTA; ++ inode_qmblk_unlock(inode->i_sb); ++ return; ++ } else { ++ loff_t bytes = inode_get_bytes(inode); ++#ifdef CONFIG_VZ_QUOTA_UGID ++ int cnt; ++ struct vz_quota_ugid * qugid; ++#endif ++ ++ inode->i_flags |= S_NOQUOTA; ++ ++ vzquota_decr_space(&qmblk->dq_stat, bytes); ++ vzquota_decr_inodes(&qmblk->dq_stat, 1); ++#ifdef CONFIG_VZ_QUOTA_UGID ++ for (cnt = 0; cnt < MAXQUOTAS; cnt++) { ++ qugid = INODE_QLNK(inode)->qugid[cnt]; ++ if (qugid == NULL || qugid == VZ_QUOTA_UGBAD) ++ continue; ++ vzquota_decr_space(&qugid->qugid_stat, bytes); ++ vzquota_decr_inodes(&qugid->qugid_stat, 1); ++ } ++#endif ++ ++ vzquota_data_unlock(inode, &data); ++ ++ vzquota_inode_drop_call(inode); ++ } ++} ++ ++ ++#ifdef CONFIG_VZ_QUOTA_UGID ++ ++/* ++ * helper function for quota_transfer ++ * check that we can add inode to this quota_id ++ */ ++static int vzquota_transfer_check(struct vz_quota_master *qmblk, ++ struct vz_quota_ugid *qugid[], ++ unsigned int type, __u64 size) ++{ ++ if (vzquota_check_ugid_space(qmblk, qugid, type, size, 0) != QUOTA_OK || ++ vzquota_check_ugid_inodes(qmblk, qugid, type, 1) != QUOTA_OK) ++ return -1; ++ return 0; ++} ++ ++int vzquota_transfer_usage(struct inode *inode, ++ int mask, ++ struct vz_quota_ilink *qlnk) ++{ ++ struct vz_quota_ugid *qugid_old; ++ __u64 space; ++ int i; ++ ++ space = inode_get_bytes(inode); ++ for (i = 0; i < MAXQUOTAS; i++) { ++ if (!(mask & (1 << i))) ++ continue; ++ /* ++ * Do not permit chown a file if its owner does not have ++ * ugid record. This might happen if we somehow exceeded ++ * the UID/GID (e.g. set uglimit less than number of users). ++ */ ++ if (INODE_QLNK(inode)->qugid[i] == VZ_QUOTA_UGBAD) ++ return -1; ++ if (vzquota_transfer_check(qlnk->qmblk, qlnk->qugid, i, space)) ++ return -1; ++ } ++ ++ for (i = 0; i < MAXQUOTAS; i++) { ++ if (!(mask & (1 << i))) ++ continue; ++ qugid_old = INODE_QLNK(inode)->qugid[i]; ++ vzquota_decr_space(&qugid_old->qugid_stat, space); ++ vzquota_decr_inodes(&qugid_old->qugid_stat, 1); ++ vzquota_incr_space(&qlnk->qugid[i]->qugid_stat, space); ++ vzquota_incr_inodes(&qlnk->qugid[i]->qugid_stat, 1); ++ } ++ return 0; ++} ++ ++/* ++ * Transfer the inode between diffent user/group quotas. ++ */ ++static int vzquota_transfer(struct inode *inode, struct iattr *iattr) ++{ ++ return vzquota_inode_transfer_call(inode, iattr) ? ++ NO_QUOTA : QUOTA_OK; ++} ++ ++#else /* CONFIG_VZ_QUOTA_UGID */ ++ ++static int vzquota_transfer(struct inode *inode, struct iattr *iattr) ++{ ++ return QUOTA_OK; ++} ++ ++#endif ++ ++/* ++ * Called under following semaphores: ++ * old_d->d_inode->i_sb->s_vfs_rename_sem ++ * old_d->d_inode->i_sem ++ * new_d->d_inode->i_sem ++ * [not verified --SAW] ++ */ ++static int vzquota_rename(struct inode *inode, ++ struct inode *old_dir, struct inode *new_dir) ++{ ++ return vzquota_rename_check(inode, old_dir, new_dir) ? ++ NO_QUOTA : QUOTA_OK; ++} ++ ++/* ++ * Structure of superblock diskquota operations. ++ */ ++struct dquot_operations vz_quota_operations = { ++ .initialize = vzquota_initialize, ++ .drop = vzquota_drop, ++ .alloc_space = vzquota_alloc_space, ++ .alloc_inode = vzquota_alloc_inode, ++ .free_space = vzquota_free_space, ++ .free_inode = vzquota_free_inode, ++ .transfer = vzquota_transfer, ++ .rename = vzquota_rename, ++}; +Index: kernel/fs/vzdq_tree.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/fs/vzdq_tree.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,286 @@ ++/* ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * This file contains Virtuozzo quota tree implementation ++ */ ++ ++#include ++#include ++#include ++ ++struct quotatree_tree *quotatree_alloc(void) ++{ ++ int l; ++ struct quotatree_tree *tree; ++ ++ tree = kmalloc(sizeof(struct quotatree_tree), GFP_KERNEL); ++ if (tree == NULL) ++ goto out; ++ ++ for (l = 0; l < QUOTATREE_DEPTH; l++) { ++ INIT_LIST_HEAD(&tree->levels[l].usedlh); ++ INIT_LIST_HEAD(&tree->levels[l].freelh); ++ tree->levels[l].freenum = 0; ++ } ++ tree->root = NULL; ++ tree->leaf_num = 0; ++out: ++ return tree; ++} ++ ++static struct quotatree_node * ++quotatree_follow(struct quotatree_tree *tree, quotaid_t id, int level, ++ struct quotatree_find_state *st) ++{ ++ void **block; ++ struct quotatree_node *parent; ++ int l, index; ++ ++ parent = NULL; ++ block = (void **)&tree->root; ++ l = 0; ++ while (l < level && *block != NULL) { ++ index = (id >> QUOTATREE_BSHIFT(l)) & QUOTATREE_BMASK; ++ parent = *block; ++ block = parent->blocks + index; ++ l++; ++ } ++ if (st != NULL) { ++ st->block = block; ++ st->level = l; ++ } ++ ++ return parent; ++} ++ ++void *quotatree_find(struct quotatree_tree *tree, quotaid_t id, ++ struct quotatree_find_state *st) ++{ ++ quotatree_follow(tree, id, QUOTATREE_DEPTH, st); ++ if (st->level == QUOTATREE_DEPTH) ++ return *st->block; ++ else ++ return NULL; ++} ++ ++void *quotatree_leaf_byindex(struct quotatree_tree *tree, unsigned int index) ++{ ++ int i, count; ++ struct quotatree_node *p; ++ void *leaf; ++ ++ if (QTREE_LEAFNUM(tree) <= index) ++ return NULL; ++ ++ count = 0; ++ list_for_each_entry(p, &QTREE_LEAFLVL(tree)->usedlh, list) { ++ for (i = 0; i < QUOTATREE_BSIZE; i++) { ++ leaf = p->blocks[i]; ++ if (leaf == NULL) ++ continue; ++ if (count == index) ++ return leaf; ++ count++; ++ } ++ } ++ return NULL; ++} ++ ++/* returns data leaf (vz_quota_ugid) after _existent_ ugid (@id) ++ * in the tree... */ ++void *quotatree_get_next(struct quotatree_tree *tree, quotaid_t id) ++{ ++ int off; ++ struct quotatree_node *parent, *p; ++ struct list_head *lh; ++ ++ /* get parent refering correct quota tree node of the last level */ ++ parent = quotatree_follow(tree, id, QUOTATREE_DEPTH, NULL); ++ if (!parent) ++ return NULL; ++ ++ off = (id & QUOTATREE_BMASK) + 1; /* next ugid */ ++ lh = &parent->list; ++ do { ++ p = list_entry(lh, struct quotatree_node, list); ++ for ( ; off < QUOTATREE_BSIZE; off++) ++ if (p->blocks[off]) ++ return p->blocks[off]; ++ off = 0; ++ lh = lh->next; ++ } while (lh != &QTREE_LEAFLVL(tree)->usedlh); ++ ++ return NULL; ++} ++ ++int quotatree_insert(struct quotatree_tree *tree, quotaid_t id, ++ struct quotatree_find_state *st, void *data) ++{ ++ struct quotatree_node *p; ++ int l, index; ++ ++ while (st->level < QUOTATREE_DEPTH) { ++ l = st->level; ++ if (!list_empty(&tree->levels[l].freelh)) { ++ p = list_entry(tree->levels[l].freelh.next, ++ struct quotatree_node, list); ++ list_del(&p->list); ++ } else { ++ p = kmalloc(sizeof(struct quotatree_node), GFP_NOFS | __GFP_NOFAIL); ++ if (p == NULL) ++ return -ENOMEM; ++ /* save block number in the l-level ++ * it uses for quota file generation */ ++ p->num = tree->levels[l].freenum++; ++ } ++ list_add(&p->list, &tree->levels[l].usedlh); ++ memset(p->blocks, 0, sizeof(p->blocks)); ++ *st->block = p; ++ ++ index = (id >> QUOTATREE_BSHIFT(l)) & QUOTATREE_BMASK; ++ st->block = p->blocks + index; ++ st->level++; ++ } ++ tree->leaf_num++; ++ *st->block = data; ++ ++ return 0; ++} ++ ++static struct quotatree_node * ++quotatree_remove_ptr(struct quotatree_tree *tree, quotaid_t id, ++ int level) ++{ ++ struct quotatree_node *parent; ++ struct quotatree_find_state st; ++ ++ parent = quotatree_follow(tree, id, level, &st); ++ if (st.level == QUOTATREE_DEPTH) ++ tree->leaf_num--; ++ *st.block = NULL; ++ return parent; ++} ++ ++void quotatree_remove(struct quotatree_tree *tree, quotaid_t id) ++{ ++ struct quotatree_node *p; ++ int level, i; ++ ++ p = quotatree_remove_ptr(tree, id, QUOTATREE_DEPTH); ++ for (level = QUOTATREE_DEPTH - 1; level >= QUOTATREE_CDEPTH; level--) { ++ for (i = 0; i < QUOTATREE_BSIZE; i++) ++ if (p->blocks[i] != NULL) ++ return; ++ list_move(&p->list, &tree->levels[level].freelh); ++ p = quotatree_remove_ptr(tree, id, level); ++ } ++} ++ ++#if 0 ++static void quotatree_walk(struct quotatree_tree *tree, ++ struct quotatree_node *node_start, ++ quotaid_t id_start, ++ int level_start, int level_end, ++ int (*callback)(struct quotatree_tree *, ++ quotaid_t id, ++ int level, ++ void *ptr, ++ void *data), ++ void *data) ++{ ++ struct quotatree_node *p; ++ int l, shift, index; ++ quotaid_t id; ++ struct quotatree_find_state st; ++ ++ p = node_start; ++ l = level_start; ++ shift = (QUOTATREE_DEPTH - l) * QUOTAID_BBITS; ++ id = id_start; ++ index = 0; ++ ++ /* ++ * Invariants: ++ * shift == (QUOTATREE_DEPTH - l) * QUOTAID_BBITS; ++ * id & ((1 << shift) - 1) == 0 ++ * p is l-level node corresponding to id ++ */ ++ do { ++ if (!p) ++ break; ++ ++ if (l < level_end) { ++ for (; index < QUOTATREE_BSIZE; index++) ++ if (p->blocks[index] != NULL) ++ break; ++ if (index < QUOTATREE_BSIZE) { ++ /* descend */ ++ p = p->blocks[index]; ++ l++; ++ shift -= QUOTAID_BBITS; ++ id += (quotaid_t)index << shift; ++ index = 0; ++ continue; ++ } ++ } ++ ++ if ((*callback)(tree, id, l, p, data)) ++ break; ++ ++ /* ascend and to the next node */ ++ p = quotatree_follow(tree, id, l, &st); ++ ++ index = ((id >> shift) & QUOTATREE_BMASK) + 1; ++ l--; ++ shift += QUOTAID_BBITS; ++ id &= ~(((quotaid_t)1 << shift) - 1); ++ } while (l >= level_start); ++} ++#endif ++ ++static void free_list(struct list_head *node_list) ++{ ++ struct quotatree_node *p, *tmp; ++ ++ list_for_each_entry_safe(p, tmp, node_list, list) { ++ list_del(&p->list); ++ kfree(p); ++ } ++} ++ ++static inline void quotatree_free_nodes(struct quotatree_tree *tree) ++{ ++ int i; ++ ++ for (i = 0; i < QUOTATREE_DEPTH; i++) { ++ free_list(&tree->levels[i].usedlh); ++ free_list(&tree->levels[i].freelh); ++ } ++} ++ ++static void quotatree_free_leafs(struct quotatree_tree *tree, ++ void (*dtor)(void *)) ++{ ++ int i; ++ struct quotatree_node *p; ++ ++ list_for_each_entry(p, &QTREE_LEAFLVL(tree)->usedlh, list) { ++ for (i = 0; i < QUOTATREE_BSIZE; i++) { ++ if (p->blocks[i] == NULL) ++ continue; ++ ++ dtor(p->blocks[i]); ++ } ++ } ++} ++ ++void quotatree_free(struct quotatree_tree *tree, void (*dtor)(void *)) ++{ ++ quotatree_free_leafs(tree, dtor); ++ quotatree_free_nodes(tree); ++ kfree(tree); ++} +Index: kernel/fs/vzdq_ugid.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/fs/vzdq_ugid.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1221 @@ ++/* ++ * Copyright (C) 2002 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * This file contains Virtuozzo UID/GID disk quota implementation ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* ++ * XXX ++ * may be something is needed for sb->s_dquot->info[]? ++ */ ++ ++#define USRQUOTA_MASK (1 << USRQUOTA) ++#define GRPQUOTA_MASK (1 << GRPQUOTA) ++#define QTYPE2MASK(type) (1 << (type)) ++ ++static struct kmem_cache *vz_quota_ugid_cachep; ++ ++/* guard to protect vz_quota_master from destroy in quota_on/off. Also protects ++ * list on the hash table */ ++extern struct semaphore vz_quota_sem; ++ ++inline struct vz_quota_ugid *vzquota_get_ugid(struct vz_quota_ugid *qugid) ++{ ++ if (qugid != VZ_QUOTA_UGBAD) ++ atomic_inc(&qugid->qugid_count); ++ return qugid; ++} ++ ++/* we don't limit users with zero limits */ ++static inline int vzquota_fake_stat(struct dq_stat *stat) ++{ ++ return stat->bhardlimit == 0 && stat->bsoftlimit == 0 && ++ stat->ihardlimit == 0 && stat->isoftlimit == 0; ++} ++ ++/* callback function for quotatree_free() */ ++static inline void vzquota_free_qugid(void *ptr) ++{ ++ kmem_cache_free(vz_quota_ugid_cachep, ptr); ++} ++ ++/* ++ * destroy ugid, if it have zero refcount, limits and usage ++ * must be called under qmblk->dq_sem ++ */ ++void vzquota_put_ugid(struct vz_quota_master *qmblk, ++ struct vz_quota_ugid *qugid) ++{ ++ if (qugid == VZ_QUOTA_UGBAD) ++ return; ++ qmblk_data_read_lock(qmblk); ++ if (atomic_dec_and_test(&qugid->qugid_count) && ++ (qmblk->dq_flags & VZDQUG_FIXED_SET) == 0 && ++ vzquota_fake_stat(&qugid->qugid_stat) && ++ qugid->qugid_stat.bcurrent == 0 && ++ qugid->qugid_stat.icurrent == 0) { ++ quotatree_remove(QUGID_TREE(qmblk, qugid->qugid_type), ++ qugid->qugid_id); ++ qmblk->dq_ugid_count--; ++ vzquota_free_qugid(qugid); ++ } ++ qmblk_data_read_unlock(qmblk); ++} ++ ++/* ++ * Get ugid block by its index, like it would present in array. ++ * In reality, this is not array - this is leafs chain of the tree. ++ * NULL if index is out of range. ++ * qmblk semaphore is required to protect the tree. ++ */ ++static inline struct vz_quota_ugid * ++vzquota_get_byindex(struct vz_quota_master *qmblk, unsigned int index, int type) ++{ ++ return quotatree_leaf_byindex(QUGID_TREE(qmblk, type), index); ++} ++ ++/* ++ * get next element from ugid "virtual array" ++ * ugid must be in current array and this array may not be changed between ++ * two accesses (quaranteed by "stopped" quota state and quota semaphore) ++ * qmblk semaphore is required to protect the tree ++ */ ++static inline struct vz_quota_ugid * ++vzquota_get_next(struct vz_quota_master *qmblk, struct vz_quota_ugid *qugid) ++{ ++ return quotatree_get_next(QUGID_TREE(qmblk, qugid->qugid_type), ++ qugid->qugid_id); ++} ++ ++/* ++ * requires dq_sem ++ */ ++struct vz_quota_ugid *__vzquota_find_ugid(struct vz_quota_master *qmblk, ++ unsigned int quota_id, int type, int flags) ++{ ++ struct vz_quota_ugid *qugid; ++ struct quotatree_tree *tree; ++ struct quotatree_find_state st; ++ ++ tree = QUGID_TREE(qmblk, type); ++ qugid = quotatree_find(tree, quota_id, &st); ++ if (qugid) ++ goto success; ++ ++ /* caller does not want alloc */ ++ if (flags & VZDQUG_FIND_DONT_ALLOC) ++ goto fail; ++ ++ if (flags & VZDQUG_FIND_FAKE) ++ goto doit; ++ ++ /* check limit */ ++ if (qmblk->dq_ugid_count >= qmblk->dq_ugid_max) ++ goto fail; ++ ++ /* see comment at VZDQUG_FIXED_SET define */ ++ if (qmblk->dq_flags & VZDQUG_FIXED_SET) ++ goto fail; ++ ++doit: ++ /* alloc new structure */ ++ qugid = kmem_cache_alloc(vz_quota_ugid_cachep, ++ GFP_NOFS | __GFP_NOFAIL); ++ if (qugid == NULL) ++ goto fail; ++ ++ /* initialize new structure */ ++ qugid->qugid_id = quota_id; ++ memset(&qugid->qugid_stat, 0, sizeof(qugid->qugid_stat)); ++ qugid->qugid_type = type; ++ atomic_set(&qugid->qugid_count, 0); ++ ++ /* insert in tree */ ++ if (quotatree_insert(tree, quota_id, &st, qugid) < 0) ++ goto fail_insert; ++ qmblk->dq_ugid_count++; ++ ++success: ++ vzquota_get_ugid(qugid); ++ return qugid; ++ ++fail_insert: ++ vzquota_free_qugid(qugid); ++fail: ++ return VZ_QUOTA_UGBAD; ++} ++ ++/* ++ * takes dq_sem, may schedule ++ */ ++struct vz_quota_ugid *vzquota_find_ugid(struct vz_quota_master *qmblk, ++ unsigned int quota_id, int type, int flags) ++{ ++ struct vz_quota_ugid *qugid; ++ ++ down(&qmblk->dq_sem); ++ qugid = __vzquota_find_ugid(qmblk, quota_id, type, flags); ++ up(&qmblk->dq_sem); ++ ++ return qugid; ++} ++ ++/* ++ * destroy all ugid records on given quota master ++ */ ++void vzquota_kill_ugid(struct vz_quota_master *qmblk) ++{ ++ BUG_ON((qmblk->dq_gid_tree == NULL && qmblk->dq_uid_tree != NULL) || ++ (qmblk->dq_uid_tree == NULL && qmblk->dq_gid_tree != NULL)); ++ ++ if (qmblk->dq_uid_tree != NULL) { ++ quotatree_free(qmblk->dq_uid_tree, vzquota_free_qugid); ++ quotatree_free(qmblk->dq_gid_tree, vzquota_free_qugid); ++ } ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * Management interface to ugid quota for (super)users. ++ * --------------------------------------------------------------------- */ ++ ++static int vzquota_initialize2(struct inode *inode, int type) ++{ ++ return QUOTA_OK; ++} ++ ++static int vzquota_drop2(struct inode *inode) ++{ ++ return QUOTA_OK; ++} ++ ++static int vzquota_alloc_space2(struct inode *inode, ++ qsize_t number, int prealloc) ++{ ++ inode_add_bytes(inode, number); ++ return QUOTA_OK; ++} ++ ++static int vzquota_alloc_inode2(const struct inode *inode, unsigned long number) ++{ ++ return QUOTA_OK; ++} ++ ++static int vzquota_free_space2(struct inode *inode, qsize_t number) ++{ ++ inode_sub_bytes(inode, number); ++ return QUOTA_OK; ++} ++ ++static int vzquota_free_inode2(const struct inode *inode, unsigned long number) ++{ ++ return QUOTA_OK; ++} ++ ++static int vzquota_transfer2(struct inode *inode, struct iattr *iattr) ++{ ++ return QUOTA_OK; ++} ++ ++struct dquot_operations vz_quota_operations2 = { ++ .initialize = vzquota_initialize2, ++ .drop = vzquota_drop2, ++ .alloc_space = vzquota_alloc_space2, ++ .alloc_inode = vzquota_alloc_inode2, ++ .free_space = vzquota_free_space2, ++ .free_inode = vzquota_free_inode2, ++ .transfer = vzquota_transfer2, ++}; ++ ++ ++asmlinkage long sys_unlink(const char __user * pathname); ++asmlinkage long sys_rename(const char __user * oldname, ++ const char __user * newname); ++asmlinkage long sys_symlink(const char __user * oldname, ++ const char __user * newname); ++ ++/* called under sb->s_umount semaphore */ ++static int vz_restore_symlink(struct super_block *sb, char *path, int type) ++{ ++ mm_segment_t oldfs; ++ char *newpath; ++ char dest[64]; ++ const char *names[] = { ++ [USRQUOTA] "aquota.user", ++ [GRPQUOTA] "aquota.group" ++ }; ++ int err; ++ ++ newpath = kmalloc(strlen(path) + sizeof(".new"), GFP_KERNEL); ++ if (newpath == NULL) ++ return -ENOMEM; ++ ++ strcpy(newpath, path); ++ strcat(newpath, ".new"); ++ ++ sprintf(dest, "/proc/vz/vzaquota/%08x/%s", ++ new_encode_dev(sb->s_dev), names[type]); ++ ++ /* ++ * Lockdep will learn unneeded dependency while unlink(2): ++ * ->s_umount => ->i_mutex/1 => ->i_mutex ++ * Reverse dependency is, ++ * open_namei() => ->i_mutex => lookup_hash() => __lookup_hash() ++ * => ->lookup() \eq vzdq_aquotq_lookup() => find_qmblk_by_dev() ++ * => user_get_super() => ->s_umount ++ * ++ * However, first set of ->i_mutex'es belong to /, second to /proc . ++ * Right fix is to get rid of vz_restore_symlink(), of course. ++ */ ++ up_read(&sb->s_umount); ++ ++ oldfs = get_fs(); ++ set_fs(KERNEL_DS); ++ err = sys_unlink(newpath); ++ if (err < 0 && err != -ENOENT) ++ goto out_restore; ++ err = sys_symlink(dest, newpath); ++ if (err < 0) ++ goto out_restore; ++ err = sys_rename(newpath, path); ++out_restore: ++ set_fs(oldfs); ++ ++ down_read(&sb->s_umount); ++ /* umounted meanwhile? */ ++ if (err == 0 && !sb->s_root) ++ err = -ENODEV; ++ ++ kfree(newpath); ++ return err; ++} ++ ++/* called under sb->s_umount semaphore */ ++static int vz_quota_on(struct super_block *sb, int type, ++ int format_id, char *path) ++{ ++ struct vz_quota_master *qmblk; ++ int mask, mask2; ++ int err; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ err = -ESRCH; ++ if (qmblk == NULL) ++ goto out; ++ err = -EIO; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out; ++ ++ err = vz_restore_symlink(sb, path, type); ++ if (err < 0) ++ goto out_put; ++ ++ down(&vz_quota_sem); ++ mask = 0; ++ mask2 = 0; ++ sb->dq_op = &vz_quota_operations2; ++ sb->s_qcop = &vz_quotactl_operations; ++ if (type == USRQUOTA) { ++ mask = DQUOT_USR_ENABLED; ++ mask2 = VZDQ_USRQUOTA; ++ } ++ if (type == GRPQUOTA) { ++ mask = DQUOT_GRP_ENABLED; ++ mask2 = VZDQ_GRPQUOTA; ++ } ++ err = -EBUSY; ++ if (qmblk->dq_flags & mask2) ++ goto out_sem; ++ ++ err = 0; ++ qmblk->dq_flags |= mask2; ++ sb->s_dquot.flags |= mask; ++ ++out_sem: ++ up(&vz_quota_sem); ++out_put: ++ qmblk_put(qmblk); ++out: ++ return err; ++} ++ ++static int vz_quota_off(struct super_block *sb, int type) ++{ ++ struct vz_quota_master *qmblk; ++ int mask2; ++ int err; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ down(&vz_quota_sem); ++ err = -ESRCH; ++ if (qmblk == NULL) ++ goto out; ++ err = -EIO; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out; ++ ++ mask2 = 0; ++ if (type == USRQUOTA) ++ mask2 = VZDQ_USRQUOTA; ++ if (type == GRPQUOTA) ++ mask2 = VZDQ_GRPQUOTA; ++ err = -EINVAL; ++ if (!(qmblk->dq_flags & mask2)) ++ goto out; ++ ++ qmblk->dq_flags &= ~mask2; ++ err = 0; ++ ++out: ++ up(&vz_quota_sem); ++ if (qmblk != NULL && qmblk != VZ_QUOTA_BAD) ++ qmblk_put(qmblk); ++ return err; ++} ++ ++static int vz_quota_sync(struct super_block *sb, int type) ++{ ++ return 0; /* vz quota is always uptodate */ ++} ++ ++static int vz_get_dqblk(struct super_block *sb, int type, ++ qid_t id, struct if_dqblk *di) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ugid *ugid; ++ int err; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ down(&vz_quota_sem); ++ err = -ESRCH; ++ if (qmblk == NULL) ++ goto out; ++ err = -EIO; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out; ++ ++ err = 0; ++ ugid = vzquota_find_ugid(qmblk, id, type, VZDQUG_FIND_DONT_ALLOC); ++ if (ugid != VZ_QUOTA_UGBAD) { ++ qmblk_data_read_lock(qmblk); ++ di->dqb_bhardlimit = ugid->qugid_stat.bhardlimit >> 10; ++ di->dqb_bsoftlimit = ugid->qugid_stat.bsoftlimit >> 10; ++ di->dqb_curspace = ugid->qugid_stat.bcurrent; ++ di->dqb_ihardlimit = ugid->qugid_stat.ihardlimit; ++ di->dqb_isoftlimit = ugid->qugid_stat.isoftlimit; ++ di->dqb_curinodes = ugid->qugid_stat.icurrent; ++ di->dqb_btime = ugid->qugid_stat.btime; ++ di->dqb_itime = ugid->qugid_stat.itime; ++ qmblk_data_read_unlock(qmblk); ++ di->dqb_valid = QIF_ALL; ++ vzquota_put_ugid(qmblk, ugid); ++ } else { ++ memset(di, 0, sizeof(*di)); ++ di->dqb_valid = QIF_ALL; ++ } ++ ++out: ++ up(&vz_quota_sem); ++ if (qmblk != NULL && qmblk != VZ_QUOTA_BAD) ++ qmblk_put(qmblk); ++ return err; ++} ++ ++/* must be called under vz_quota_sem */ ++static int __vz_set_dqblk(struct vz_quota_master *qmblk, ++ int type, qid_t id, struct if_dqblk *di) ++{ ++ struct vz_quota_ugid *ugid; ++ ++ ugid = vzquota_find_ugid(qmblk, id, type, 0); ++ if (ugid == VZ_QUOTA_UGBAD) ++ return -ESRCH; ++ ++ qmblk_data_write_lock(qmblk); ++ /* ++ * Subtle compatibility breakage. ++ * ++ * Some old non-vz kernel quota didn't start grace period ++ * if the new soft limit happens to be below the usage. ++ * Non-vz kernel quota in 2.4.20 starts the grace period ++ * (if it hasn't been started). ++ * Current non-vz kernel performs even more complicated ++ * manipulations... ++ * ++ * Also, current non-vz kernels have inconsistency related to ++ * the grace time start. In regular operations the grace period ++ * is started if the usage is greater than the soft limit (and, ++ * strangely, is cancelled if the usage is less). ++ * However, set_dqblk starts the grace period if the usage is greater ++ * or equal to the soft limit. ++ * ++ * Here we try to mimic the behavior of the current non-vz kernel. ++ */ ++ if (di->dqb_valid & QIF_BLIMITS) { ++ ugid->qugid_stat.bhardlimit = ++ (__u64)di->dqb_bhardlimit << 10; ++ ugid->qugid_stat.bsoftlimit = ++ (__u64)di->dqb_bsoftlimit << 10; ++ if (di->dqb_bsoftlimit == 0 || ++ ugid->qugid_stat.bcurrent < ugid->qugid_stat.bsoftlimit) ++ ugid->qugid_stat.btime = 0; ++ else if (!(di->dqb_valid & QIF_BTIME)) ++ ugid->qugid_stat.btime = CURRENT_TIME_SECONDS ++ + qmblk->dq_ugid_info[type].bexpire; ++ else ++ ugid->qugid_stat.btime = di->dqb_btime; ++ } ++ if (di->dqb_valid & QIF_ILIMITS) { ++ ugid->qugid_stat.ihardlimit = di->dqb_ihardlimit; ++ ugid->qugid_stat.isoftlimit = di->dqb_isoftlimit; ++ if (di->dqb_isoftlimit == 0 || ++ ugid->qugid_stat.icurrent < ugid->qugid_stat.isoftlimit) ++ ugid->qugid_stat.itime = 0; ++ else if (!(di->dqb_valid & QIF_ITIME)) ++ ugid->qugid_stat.itime = CURRENT_TIME_SECONDS ++ + qmblk->dq_ugid_info[type].iexpire; ++ else ++ ugid->qugid_stat.itime = di->dqb_itime; ++ } ++ qmblk_data_write_unlock(qmblk); ++ vzquota_put_ugid(qmblk, ugid); ++ ++ return 0; ++} ++ ++static int vz_set_dqblk(struct super_block *sb, int type, ++ qid_t id, struct if_dqblk *di) ++{ ++ struct vz_quota_master *qmblk; ++ int err; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ down(&vz_quota_sem); ++ err = -ESRCH; ++ if (qmblk == NULL) ++ goto out; ++ err = -EIO; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out; ++ err = __vz_set_dqblk(qmblk, type, id, di); ++out: ++ up(&vz_quota_sem); ++ if (qmblk != NULL && qmblk != VZ_QUOTA_BAD) ++ qmblk_put(qmblk); ++ return err; ++} ++ ++static int vz_get_dqinfo(struct super_block *sb, int type, ++ struct if_dqinfo *ii) ++{ ++ struct vz_quota_master *qmblk; ++ int err; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ down(&vz_quota_sem); ++ err = -ESRCH; ++ if (qmblk == NULL) ++ goto out; ++ err = -EIO; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out; ++ ++ err = 0; ++ ii->dqi_bgrace = qmblk->dq_ugid_info[type].bexpire; ++ ii->dqi_igrace = qmblk->dq_ugid_info[type].iexpire; ++ ii->dqi_flags = 0; ++ ii->dqi_valid = IIF_ALL; ++ ++out: ++ up(&vz_quota_sem); ++ if (qmblk != NULL && qmblk != VZ_QUOTA_BAD) ++ qmblk_put(qmblk); ++ return err; ++} ++ ++/* must be called under vz_quota_sem */ ++static int __vz_set_dqinfo(struct vz_quota_master *qmblk, ++ int type, struct if_dqinfo *ii) ++{ ++ if (ii->dqi_valid & IIF_FLAGS) ++ if (ii->dqi_flags & DQF_MASK) ++ return -EINVAL; ++ ++ if (ii->dqi_valid & IIF_BGRACE) ++ qmblk->dq_ugid_info[type].bexpire = ii->dqi_bgrace; ++ if (ii->dqi_valid & IIF_IGRACE) ++ qmblk->dq_ugid_info[type].iexpire = ii->dqi_igrace; ++ return 0; ++} ++ ++static int vz_set_dqinfo(struct super_block *sb, int type, ++ struct if_dqinfo *ii) ++{ ++ struct vz_quota_master *qmblk; ++ int err; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ down(&vz_quota_sem); ++ err = -ESRCH; ++ if (qmblk == NULL) ++ goto out; ++ err = -EIO; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out; ++ err = __vz_set_dqinfo(qmblk, type, ii); ++out: ++ up(&vz_quota_sem); ++ if (qmblk != NULL && qmblk != VZ_QUOTA_BAD) ++ qmblk_put(qmblk); ++ return err; ++} ++ ++#ifdef CONFIG_QUOTA_COMPAT ++ ++#define Q_GETQUOTI_SIZE 1024 ++ ++#define UGID2DQBLK(dst, src) \ ++ do { \ ++ (dst)->dqb_ihardlimit = (src)->qugid_stat.ihardlimit; \ ++ (dst)->dqb_isoftlimit = (src)->qugid_stat.isoftlimit; \ ++ (dst)->dqb_curinodes = (src)->qugid_stat.icurrent; \ ++ /* in 1K blocks */ \ ++ (dst)->dqb_bhardlimit = (src)->qugid_stat.bhardlimit >> 10; \ ++ /* in 1K blocks */ \ ++ (dst)->dqb_bsoftlimit = (src)->qugid_stat.bsoftlimit >> 10; \ ++ /* in bytes, 64 bit */ \ ++ (dst)->dqb_curspace = (src)->qugid_stat.bcurrent; \ ++ (dst)->dqb_btime = (src)->qugid_stat.btime; \ ++ (dst)->dqb_itime = (src)->qugid_stat.itime; \ ++ } while (0) ++ ++static int vz_get_quoti(struct super_block *sb, int type, qid_t idx, ++ struct v2_disk_dqblk __user *dqblk) ++{ ++ struct vz_quota_master *qmblk; ++ struct v2_disk_dqblk *data, *kbuf; ++ struct vz_quota_ugid *ugid; ++ int count; ++ int err; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ err = -ESRCH; ++ if (qmblk == NULL) ++ goto out; ++ err = -EIO; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out; ++ ++ err = -ENOMEM; ++ kbuf = vmalloc(Q_GETQUOTI_SIZE * sizeof(*kbuf)); ++ if (!kbuf) ++ goto out; ++ ++ down(&vz_quota_sem); ++ down(&qmblk->dq_sem); ++ for (ugid = vzquota_get_byindex(qmblk, idx, type), count = 0; ++ ugid != NULL && count < Q_GETQUOTI_SIZE; ++ count++) ++ { ++ data = kbuf + count; ++ qmblk_data_read_lock(qmblk); ++ UGID2DQBLK(data, ugid); ++ qmblk_data_read_unlock(qmblk); ++ data->dqb_id = ugid->qugid_id; ++ ++ /* Find next entry */ ++ ugid = vzquota_get_next(qmblk, ugid); ++ BUG_ON(ugid != NULL && ugid->qugid_type != type); ++ } ++ up(&qmblk->dq_sem); ++ up(&vz_quota_sem); ++ ++ err = count; ++ if (copy_to_user(dqblk, kbuf, count * sizeof(*kbuf))) ++ err = -EFAULT; ++ ++ vfree(kbuf); ++out: ++ if (qmblk != NULL && qmblk != VZ_QUOTA_BAD) ++ qmblk_put(qmblk); ++ ++ return err; ++} ++ ++#endif ++ ++struct quotactl_ops vz_quotactl_operations = { ++ .quota_on = vz_quota_on, ++ .quota_off = vz_quota_off, ++ .quota_sync = vz_quota_sync, ++ .get_info = vz_get_dqinfo, ++ .set_info = vz_set_dqinfo, ++ .get_dqblk = vz_get_dqblk, ++ .set_dqblk = vz_set_dqblk, ++#ifdef CONFIG_QUOTA_COMPAT ++ .get_quoti = vz_get_quoti, ++#endif ++}; ++ ++ ++/* ---------------------------------------------------------------------- ++ * Management interface for host system admins. ++ * --------------------------------------------------------------------- */ ++ ++static int quota_ugid_addstat(unsigned int quota_id, unsigned int ugid_size, ++ struct vz_quota_iface __user *u_ugid_buf, int compat) ++{ ++ struct vz_quota_master *qmblk; ++ int ret; ++ ++ down(&vz_quota_sem); ++ ++ ret = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ ret = -EBUSY; ++ if (qmblk->dq_state != VZDQ_STARTING) ++ goto out; /* working quota doesn't accept new ugids */ ++ ++ ret = 0; ++ /* start to add ugids */ ++ for (ret = 0; ret < ugid_size; ret++) { ++ struct vz_quota_iface ugid_buf; ++ struct vz_quota_ugid *ugid; ++ ++ if (!compat) { ++ if (copy_from_user(&ugid_buf, u_ugid_buf, ++ sizeof(ugid_buf))) ++ break; ++ u_ugid_buf++; /* next user buffer */ ++ } else { ++#ifdef CONFIG_COMPAT ++ struct compat_vz_quota_iface oqif; ++ if (copy_from_user(&oqif, u_ugid_buf, ++ sizeof(oqif))) ++ break; ++ ugid_buf.qi_id = oqif.qi_id; ++ ugid_buf.qi_type = oqif.qi_type; ++ compat_dqstat2dqstat(&oqif.qi_stat, &ugid_buf.qi_stat); ++ u_ugid_buf = (struct vz_quota_iface __user *) ++ (((void *)u_ugid_buf) + sizeof(oqif)); ++#endif ++ } ++ ++ if (ugid_buf.qi_type >= MAXQUOTAS) ++ break; /* bad quota type - this is the only check */ ++ ++ ugid = vzquota_find_ugid(qmblk, ++ ugid_buf.qi_id, ugid_buf.qi_type, 0); ++ if (ugid == VZ_QUOTA_UGBAD) { ++ qmblk->dq_flags |= VZDQUG_FIXED_SET; ++ break; /* limit reached */ ++ } ++ ++ /* update usage/limits ++ * we can copy the data without the lock, because the data ++ * cannot be modified in VZDQ_STARTING state */ ++ ugid->qugid_stat = ugid_buf.qi_stat; ++ ++ vzquota_put_ugid(qmblk, ugid); ++ } ++out: ++ up(&vz_quota_sem); ++ ++ return ret; ++} ++ ++static int quota_ugid_setgrace(unsigned int quota_id, ++ struct dq_info __user u_dq_info[], int compat) ++{ ++ struct vz_quota_master *qmblk; ++ struct dq_info dq_info[MAXQUOTAS]; ++ struct dq_info *target; ++ int err, type; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EBUSY; ++ if (qmblk->dq_state != VZDQ_STARTING) ++ goto out; /* working quota doesn't accept changing options */ ++ ++ err = -EFAULT; ++ if (!compat) { ++ if (copy_from_user(dq_info, u_dq_info, sizeof(dq_info))) ++ goto out; ++ } else { ++#ifdef CONFIG_COMPAT ++ struct compat_dq_info odqi[MAXQUOTAS]; ++ if (copy_from_user(odqi, u_dq_info, sizeof(odqi))) ++ goto out; ++ for (type = 0; type < MAXQUOTAS; type++) ++ compat_dqinfo2dqinfo(&odqi[type], &dq_info[type]); ++#endif ++ } ++ ++ err = 0; ++ ++ /* update in qmblk */ ++ for (type = 0; type < MAXQUOTAS; type++) { ++ target = &qmblk->dq_ugid_info[type]; ++ target->bexpire = dq_info[type].bexpire; ++ target->iexpire = dq_info[type].iexpire; ++ } ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++static int do_quota_ugid_getstat(struct vz_quota_master *qmblk, int index, int size, ++ struct vz_quota_iface *u_ugid_buf) ++{ ++ int type, count; ++ struct vz_quota_ugid *ugid; ++ ++ if (QTREE_LEAFNUM(qmblk->dq_uid_tree) + ++ QTREE_LEAFNUM(qmblk->dq_gid_tree) ++ <= index) ++ return 0; ++ ++ count = 0; ++ ++ type = index < QTREE_LEAFNUM(qmblk->dq_uid_tree) ? USRQUOTA : GRPQUOTA; ++ if (type == GRPQUOTA) ++ index -= QTREE_LEAFNUM(qmblk->dq_uid_tree); ++ ++ /* loop through ugid and then qgid quota */ ++repeat: ++ for (ugid = vzquota_get_byindex(qmblk, index, type); ++ ugid != NULL && count < size; ++ ugid = vzquota_get_next(qmblk, ugid), count++) ++ { ++ struct vz_quota_iface ugid_buf; ++ ++ /* form interface buffer and send in to user-level */ ++ qmblk_data_read_lock(qmblk); ++ memcpy(&ugid_buf.qi_stat, &ugid->qugid_stat, ++ sizeof(ugid_buf.qi_stat)); ++ qmblk_data_read_unlock(qmblk); ++ ugid_buf.qi_id = ugid->qugid_id; ++ ugid_buf.qi_type = ugid->qugid_type; ++ ++ memcpy(u_ugid_buf, &ugid_buf, sizeof(ugid_buf)); ++ u_ugid_buf++; /* next portion of user buffer */ ++ } ++ ++ if (type == USRQUOTA && count < size) { ++ type = GRPQUOTA; ++ index = 0; ++ goto repeat; ++ } ++ ++ return count; ++} ++ ++static int quota_ugid_getstat(unsigned int quota_id, ++ int index, int size, struct vz_quota_iface __user *u_ugid_buf, ++ int compat) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_iface *k_ugid_buf; ++ int err; ++ ++ if (index < 0 || size < 0) ++ return -EINVAL; ++ ++ if (size > INT_MAX / sizeof(struct vz_quota_iface)) ++ return -EINVAL; ++ ++ k_ugid_buf = vmalloc(size * sizeof(struct vz_quota_iface)); ++ if (k_ugid_buf == NULL) ++ return -ENOMEM; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ down(&qmblk->dq_sem); ++ err = do_quota_ugid_getstat(qmblk, index, size, k_ugid_buf); ++ up(&qmblk->dq_sem); ++ if (err < 0) ++ goto out; ++ ++ if (!compat) { ++ if (copy_to_user(u_ugid_buf, k_ugid_buf, ++ err * sizeof(struct vz_quota_iface))) ++ err = -EFAULT; ++ } else { ++#ifdef CONFIG_COMPAT ++ struct compat_vz_quota_iface oqif; ++ int i; ++ for (i = 0; i < err; i++) { ++ oqif.qi_id = k_ugid_buf[i].qi_id; ++ oqif.qi_type = k_ugid_buf[i].qi_type; ++ dqstat2compat_dqstat(&k_ugid_buf[i].qi_stat, ++ &oqif.qi_stat); ++ if (copy_to_user(u_ugid_buf, &oqif, sizeof(oqif))) ++ err = -EFAULT; ++ u_ugid_buf = (struct vz_quota_iface __user *) ++ (((void *)u_ugid_buf) + sizeof(oqif)); ++ } ++#endif ++ } ++ ++out: ++ up(&vz_quota_sem); ++ vfree(k_ugid_buf); ++ return err; ++} ++ ++static int quota_ugid_getgrace(unsigned int quota_id, ++ struct dq_info __user u_dq_info[], int compat) ++{ ++ struct vz_quota_master *qmblk; ++ struct dq_info dq_info[MAXQUOTAS]; ++ struct dq_info *target; ++ int err, type; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = 0; ++ /* update from qmblk */ ++ for (type = 0; type < MAXQUOTAS; type ++) { ++ target = &qmblk->dq_ugid_info[type]; ++ dq_info[type].bexpire = target->bexpire; ++ dq_info[type].iexpire = target->iexpire; ++ dq_info[type].flags = target->flags; ++ } ++ ++ if (!compat) { ++ if (copy_to_user(u_dq_info, dq_info, sizeof(dq_info))) ++ err = -EFAULT; ++ } else { ++#ifdef CONFIG_COMPAT ++ struct compat_dq_info odqi[MAXQUOTAS]; ++ for (type = 0; type < MAXQUOTAS; type ++) ++ dqinfo2compat_dqinfo(&dq_info[type], &odqi[type]); ++ if (copy_to_user(u_dq_info, odqi, sizeof(odqi))) ++ err = -EFAULT; ++#endif ++ } ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++static int quota_ugid_getconfig(unsigned int quota_id, ++ struct vz_quota_ugid_stat __user *info) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ugid_stat kinfo; ++ int err; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = 0; ++ kinfo.limit = qmblk->dq_ugid_max; ++ kinfo.count = qmblk->dq_ugid_count; ++ kinfo.flags = qmblk->dq_flags; ++ ++ if (copy_to_user(info, &kinfo, sizeof(kinfo))) ++ err = -EFAULT; ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++static int quota_ugid_setconfig(unsigned int quota_id, ++ struct vz_quota_ugid_stat __user *info) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ugid_stat kinfo; ++ int err; ++ ++ down(&vz_quota_sem); ++ ++ err = -ENOENT; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EFAULT; ++ if (copy_from_user(&kinfo, info, sizeof(kinfo))) ++ goto out; ++ ++ err = 0; ++ qmblk->dq_ugid_max = kinfo.limit; ++ if (qmblk->dq_state == VZDQ_STARTING) { ++ qmblk->dq_flags = kinfo.flags; ++ if (qmblk->dq_flags & VZDQUG_ON) ++ qmblk->dq_flags |= VZDQ_USRQUOTA | VZDQ_GRPQUOTA; ++ } ++ ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++static int quota_ugid_setlimit(unsigned int quota_id, ++ struct vz_quota_ugid_setlimit __user *u_lim) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ugid_setlimit lim; ++ int err; ++ ++ down(&vz_quota_sem); ++ ++ err = -ESRCH; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EFAULT; ++ if (copy_from_user(&lim, u_lim, sizeof(lim))) ++ goto out; ++ ++ err = __vz_set_dqblk(qmblk, lim.type, lim.id, &lim.dqb); ++ ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++static int quota_ugid_setinfo(unsigned int quota_id, ++ struct vz_quota_ugid_setinfo __user *u_info) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ugid_setinfo info; ++ int err; ++ ++ down(&vz_quota_sem); ++ ++ err = -ESRCH; ++ qmblk = vzquota_find_master(quota_id); ++ if (qmblk == NULL) ++ goto out; ++ ++ err = -EFAULT; ++ if (copy_from_user(&info, u_info, sizeof(info))) ++ goto out; ++ ++ err = __vz_set_dqinfo(qmblk, info.type, &info.dqi); ++ ++out: ++ up(&vz_quota_sem); ++ ++ return err; ++} ++ ++/* ++ * This is a system call to maintain UGID quotas ++ * Note this call is allowed to run ONLY from VE0 ++ */ ++long do_vzquotaugidctl(int cmd, unsigned int quota_id, ++ unsigned int ugid_index, unsigned int ugid_size, ++ void *addr, int compat) ++{ ++ int ret; ++ ++ ret = -EPERM; ++ /* access allowed only from root of VE0 */ ++ if (!capable(CAP_SYS_RESOURCE) || ++ !capable(CAP_SYS_ADMIN)) ++ goto out; ++ ++ switch (cmd) { ++ case VZ_DQ_UGID_GETSTAT: ++ ret = quota_ugid_getstat(quota_id, ++ ugid_index, ugid_size, ++ (struct vz_quota_iface __user *)addr, ++ compat); ++ break; ++ case VZ_DQ_UGID_ADDSTAT: ++ ret = quota_ugid_addstat(quota_id, ugid_size, ++ (struct vz_quota_iface __user *) addr, ++ compat); ++ break; ++ case VZ_DQ_UGID_GETGRACE: ++ ret = quota_ugid_getgrace(quota_id, ++ (struct dq_info __user *)addr, compat); ++ break; ++ case VZ_DQ_UGID_SETGRACE: ++ ret = quota_ugid_setgrace(quota_id, ++ (struct dq_info __user *)addr, compat); ++ break; ++ case VZ_DQ_UGID_GETCONFIG: ++ ret = quota_ugid_getconfig(quota_id, ++ (struct vz_quota_ugid_stat __user *) ++ addr); ++ break; ++ case VZ_DQ_UGID_SETCONFIG: ++ ret = quota_ugid_setconfig(quota_id, ++ (struct vz_quota_ugid_stat __user *) ++ addr); ++ break; ++ case VZ_DQ_UGID_SETLIMIT: ++ ret = quota_ugid_setlimit(quota_id, ++ (struct vz_quota_ugid_setlimit __user *) ++ addr); ++ break; ++ case VZ_DQ_UGID_SETINFO: ++ ret = quota_ugid_setinfo(quota_id, ++ (struct vz_quota_ugid_setinfo __user *) ++ addr); ++ break; ++ default: ++ ret = -EINVAL; ++ goto out; ++ } ++out: ++ return ret; ++} ++ ++static void ugid_quota_on_sb(struct super_block *sb) ++{ ++ struct super_block *real_sb; ++ struct vz_quota_master *qmblk; ++ ++ if (!sb->s_op->get_quota_root) ++ return; ++ ++ real_sb = sb->s_op->get_quota_root(sb)->i_sb; ++ if (real_sb->dq_op != &vz_quota_operations) ++ return; ++ ++ sb->dq_op = &vz_quota_operations2; ++ sb->s_qcop = &vz_quotactl_operations; ++ INIT_LIST_HEAD(&sb->s_dquot.info[USRQUOTA].dqi_dirty_list); ++ INIT_LIST_HEAD(&sb->s_dquot.info[GRPQUOTA].dqi_dirty_list); ++ sb->s_dquot.info[USRQUOTA].dqi_format = &vz_quota_empty_v2_format; ++ sb->s_dquot.info[GRPQUOTA].dqi_format = &vz_quota_empty_v2_format; ++ ++ qmblk = vzquota_find_qmblk(sb); ++ if ((qmblk == NULL) || (qmblk == VZ_QUOTA_BAD)) ++ return; ++ down(&vz_quota_sem); ++ if (qmblk->dq_flags & VZDQ_USRQUOTA) ++ sb->s_dquot.flags |= DQUOT_USR_ENABLED; ++ if (qmblk->dq_flags & VZDQ_GRPQUOTA) ++ sb->s_dquot.flags |= DQUOT_GRP_ENABLED; ++ up(&vz_quota_sem); ++ qmblk_put(qmblk); ++} ++ ++static void ugid_quota_off_sb(struct super_block *sb) ++{ ++ /* can't make quota off on mounted super block */ ++ BUG_ON(sb->s_root != NULL); ++} ++ ++static int ugid_notifier_call(struct vnotifier_block *self, ++ unsigned long n, void *data, int old_ret) ++{ ++ struct virt_info_quota *viq; ++ ++ viq = (struct virt_info_quota *)data; ++ ++ switch (n) { ++ case VIRTINFO_QUOTA_ON: ++ ugid_quota_on_sb(viq->super); ++ break; ++ case VIRTINFO_QUOTA_OFF: ++ ugid_quota_off_sb(viq->super); ++ break; ++ case VIRTINFO_QUOTA_GETSTAT: ++ break; ++ default: ++ return old_ret; ++ } ++ return NOTIFY_OK; ++} ++ ++static struct vnotifier_block ugid_notifier_block = { ++ .notifier_call = ugid_notifier_call, ++}; ++ ++/* ---------------------------------------------------------------------- ++ * Init/exit. ++ * --------------------------------------------------------------------- */ ++ ++int vzquota_ugid_init(void) ++{ ++ int err; ++ ++ vz_quota_ugid_cachep = kmem_cache_create("vz_quota_ugid", ++ sizeof(struct vz_quota_ugid), ++ 0, SLAB_HWCACHE_ALIGN, NULL); ++ if (vz_quota_ugid_cachep == NULL) ++ goto err_slab; ++ ++ err = register_quota_format(&vz_quota_empty_v2_format); ++ if (err) ++ goto err_reg; ++ ++ virtinfo_notifier_register(VITYPE_QUOTA, &ugid_notifier_block); ++ return 0; ++ ++err_reg: ++ kmem_cache_destroy(vz_quota_ugid_cachep); ++ return err; ++ ++err_slab: ++ printk(KERN_ERR "Cannot create VZ_QUOTA SLAB cache\n"); ++ return -ENOMEM; ++} ++ ++void vzquota_ugid_release(void) ++{ ++ virtinfo_notifier_unregister(VITYPE_QUOTA, &ugid_notifier_block); ++ unregister_quota_format(&vz_quota_empty_v2_format); ++ ++ kmem_cache_destroy(vz_quota_ugid_cachep); ++} +Index: kernel/fs/vzdquot.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/fs/vzdquot.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1954 @@ ++/* ++ * Copyright (C) 2001, 2002, 2004, 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * This file contains the core of Virtuozzo disk quota implementation: ++ * maintenance of VZDQ information in inodes, ++ * external interfaces, ++ * module entry. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Locking ++ * ++ * ---------------------------------------------------------------------- */ ++ ++/* ++ * Serializes on/off and all other do_vzquotactl operations. ++ * Protects qmblk hash. ++ */ ++struct semaphore vz_quota_sem; ++ ++/* ++ * Data access locks ++ * inode_qmblk ++ * protects qmblk pointers in all inodes and qlnk content in general ++ * (but not qmblk content); ++ * also protects related qmblk invalidation procedures; ++ * can't be per-inode because of vzquota_dtree_qmblk complications ++ * and problems with serialization with quota_on, ++ * but can be per-superblock; ++ * qmblk_data ++ * protects qmblk fields (such as current usage) ++ * quota_data ++ * protects charge/uncharge operations, thus, implies ++ * qmblk_data lock and, if CONFIG_VZ_QUOTA_UGID, inode_qmblk lock ++ * (to protect ugid pointers). ++ * ++ * Lock order: ++ * inode_qmblk_lock -> dcache_lock ++ * inode_qmblk_lock -> qmblk_data ++ */ ++static DEFINE_SPINLOCK(vzdq_qmblk_lock); ++ ++inline void inode_qmblk_lock(struct super_block *sb) ++{ ++ spin_lock(&vzdq_qmblk_lock); ++} ++ ++inline void inode_qmblk_unlock(struct super_block *sb) ++{ ++ spin_unlock(&vzdq_qmblk_lock); ++} ++ ++inline void qmblk_data_read_lock(struct vz_quota_master *qmblk) ++{ ++ spin_lock(&qmblk->dq_data_lock); ++} ++ ++inline void qmblk_data_read_unlock(struct vz_quota_master *qmblk) ++{ ++ spin_unlock(&qmblk->dq_data_lock); ++} ++ ++inline void qmblk_data_write_lock(struct vz_quota_master *qmblk) ++{ ++ spin_lock(&qmblk->dq_data_lock); ++} ++ ++inline void qmblk_data_write_unlock(struct vz_quota_master *qmblk) ++{ ++ spin_unlock(&qmblk->dq_data_lock); ++} ++ ++struct quota_format_type vz_quota_empty_v2_format = { ++ .qf_fmt_id = QFMT_VFS_V0, ++ .qf_ops = NULL, ++ .qf_owner = THIS_MODULE, ++}; ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Master hash table handling. ++ * ++ * SMP not safe, serialied by vz_quota_sem within quota syscalls ++ * ++ * --------------------------------------------------------------------- */ ++ ++static struct kmem_cache *vzquota_cachep; ++ ++/* ++ * Hash function. ++ */ ++#define QHASH_BITS 6 ++#define VZ_QUOTA_HASH_SIZE (1 << QHASH_BITS) ++#define QHASH_MASK (VZ_QUOTA_HASH_SIZE - 1) ++ ++struct list_head vzquota_hash_table[VZ_QUOTA_HASH_SIZE]; ++int vzquota_hash_size = VZ_QUOTA_HASH_SIZE; ++ ++static inline int vzquota_hash_func(unsigned int qid) ++{ ++ return (((qid >> QHASH_BITS) ^ qid) & QHASH_MASK); ++} ++ ++/** ++ * vzquota_alloc_master - alloc and instantiate master quota record ++ * ++ * Returns: ++ * pointer to newly created record if SUCCESS ++ * -ENOMEM if out of memory ++ * -EEXIST if record with given quota_id already exist ++ */ ++struct vz_quota_master *vzquota_alloc_master(unsigned int quota_id, ++ struct vz_quota_stat *qstat) ++{ ++ int err; ++ struct vz_quota_master *qmblk; ++ ++ err = -EEXIST; ++ if (vzquota_find_master(quota_id) != NULL) ++ goto out; ++ ++ err = -ENOMEM; ++ qmblk = kmem_cache_alloc(vzquota_cachep, GFP_KERNEL); ++ if (qmblk == NULL) ++ goto out; ++#ifdef CONFIG_VZ_QUOTA_UGID ++ qmblk->dq_uid_tree = quotatree_alloc(); ++ if (!qmblk->dq_uid_tree) ++ goto out_free; ++ ++ qmblk->dq_gid_tree = quotatree_alloc(); ++ if (!qmblk->dq_gid_tree) ++ goto out_free_tree; ++#endif ++ ++ qmblk->dq_state = VZDQ_STARTING; ++ init_MUTEX(&qmblk->dq_sem); ++ spin_lock_init(&qmblk->dq_data_lock); ++ ++ qmblk->dq_id = quota_id; ++ qmblk->dq_stat = qstat->dq_stat; ++ qmblk->dq_info = qstat->dq_info; ++ qmblk->dq_root_dentry = NULL; ++ qmblk->dq_root_mnt = NULL; ++ qmblk->dq_sb = NULL; ++ qmblk->dq_ugid_count = 0; ++ qmblk->dq_ugid_max = 0; ++ qmblk->dq_flags = 0; ++ memset(qmblk->dq_ugid_info, 0, sizeof(qmblk->dq_ugid_info)); ++ INIT_LIST_HEAD(&qmblk->dq_ilink_list); ++ ++ atomic_set(&qmblk->dq_count, 1); ++ ++ /* insert in hash chain */ ++ list_add(&qmblk->dq_hash, ++ &vzquota_hash_table[vzquota_hash_func(quota_id)]); ++ ++ /* success */ ++ return qmblk; ++ ++#ifdef CONFIG_VZ_QUOTA_UGID ++out_free_tree: ++ quotatree_free(qmblk->dq_uid_tree, NULL); ++out_free: ++ kmem_cache_free(vzquota_cachep, qmblk); ++#endif ++out: ++ return ERR_PTR(err); ++} ++ ++static struct vz_quota_master *vzquota_alloc_fake(void) ++{ ++ struct vz_quota_master *qmblk; ++ ++ qmblk = kmem_cache_alloc(vzquota_cachep, GFP_KERNEL); ++ if (qmblk == NULL) ++ return NULL; ++ memset(qmblk, 0, sizeof(*qmblk)); ++ qmblk->dq_state = VZDQ_STOPING; ++ qmblk->dq_flags = VZDQ_NOQUOT; ++ spin_lock_init(&qmblk->dq_data_lock); ++ INIT_LIST_HEAD(&qmblk->dq_ilink_list); ++ atomic_set(&qmblk->dq_count, 1); ++ return qmblk; ++} ++ ++/** ++ * vzquota_find_master - find master record with given id ++ * ++ * Returns qmblk without touching its refcounter. ++ * Called under vz_quota_sem. ++ */ ++struct vz_quota_master *vzquota_find_master(unsigned int quota_id) ++{ ++ int i; ++ struct vz_quota_master *qp; ++ ++ i = vzquota_hash_func(quota_id); ++ list_for_each_entry(qp, &vzquota_hash_table[i], dq_hash) { ++ if (qp->dq_id == quota_id) ++ return qp; ++ } ++ return NULL; ++} ++ ++/** ++ * vzquota_free_master - release resources taken by qmblk, freeing memory ++ * ++ * qmblk is assumed to be already taken out from the hash. ++ * Should be called outside vz_quota_sem. ++ */ ++void vzquota_free_master(struct vz_quota_master *qmblk) ++{ ++#ifdef CONFIG_VZ_QUOTA_UGID ++ vzquota_kill_ugid(qmblk); ++#endif ++ BUG_ON(!list_empty(&qmblk->dq_ilink_list)); ++ kmem_cache_free(vzquota_cachep, qmblk); ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Passing quota information through current ++ * ++ * Used in inode -> qmblk lookup at inode creation stage (since at that ++ * time there are no links between the inode being created and its parent ++ * directory). ++ * ++ * --------------------------------------------------------------------- */ ++ ++#define VZDQ_CUR_MAGIC 0x57d0fee2 ++ ++static inline int vzquota_cur_qmblk_check(void) ++{ ++ return current->magic == VZDQ_CUR_MAGIC; ++} ++ ++static inline struct inode *vzquota_cur_qmblk_fetch(void) ++{ ++ return current->ino; ++} ++ ++static inline void vzquota_cur_qmblk_set(struct inode *data) ++{ ++ struct task_struct *tsk; ++ ++ tsk = current; ++ tsk->magic = VZDQ_CUR_MAGIC; ++ tsk->ino = data; ++} ++ ++#if 0 ++static inline void vzquota_cur_qmblk_reset(void) ++{ ++ current->magic = 0; ++} ++#endif ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Superblock quota operations ++ * ++ * --------------------------------------------------------------------- */ ++ ++/* ++ * Kernel structure abuse. ++ * We use files[0] pointer as an int variable: ++ * reference counter of how many quota blocks uses this superblock. ++ * files[1] is used for generations structure which helps us to track ++ * when traversing of dentries is really required. ++ */ ++#define __VZ_QUOTA_NOQUOTA(sb) sb->s_dquot.vzdq_master ++#define __VZ_QUOTA_TSTAMP(sb) ((struct timeval *)\ ++ &sb->s_dquot.dqio_mutex) ++ ++#if defined(VZ_QUOTA_UNLOAD) ++ ++#define __VZ_QUOTA_SBREF(sb) sb->s_dquot.vzdq_count ++ ++struct dquot_operations *orig_dq_op; ++struct quotactl_ops *orig_dq_cop; ++ ++/** ++ * quota_get_super - account for new a quoted tree under the superblock ++ * ++ * One superblock can have multiple directory subtrees with different VZ ++ * quotas. We keep a counter of such subtrees and set VZ quota operations or ++ * reset the default ones. ++ * ++ * Called under vz_quota_sem (from quota_on). ++ */ ++int vzquota_get_super(struct super_block *sb) ++{ ++ if (sb->dq_op != &vz_quota_operations) { ++ down(&sb->s_dquot.dqonoff_sem); ++ if (sb->s_dquot.flags & (DQUOT_USR_ENABLED|DQUOT_GRP_ENABLED)) { ++ up(&sb->s_dquot.dqonoff_sem); ++ return -EEXIST; ++ } ++ if (orig_dq_op == NULL && sb->dq_op != NULL) ++ orig_dq_op = sb->dq_op; ++ sb->dq_op = &vz_quota_operations; ++ if (orig_dq_cop == NULL && sb->s_qcop != NULL) ++ orig_dq_cop = sb->s_qcop; ++ /* XXX this may race with sys_quotactl */ ++#ifdef CONFIG_VZ_QUOTA_UGID ++ sb->s_qcop = &vz_quotactl_operations; ++#else ++ sb->s_qcop = NULL; ++#endif ++ do_gettimeofday(__VZ_QUOTA_TSTAMP(sb)); ++ memset(&sb->s_dquot.info, 0, sizeof(sb->s_dquot.info)); ++ ++ INIT_LIST_HEAD(&sb->s_dquot.info[USRQUOTA].dqi_dirty_list); ++ INIT_LIST_HEAD(&sb->s_dquot.info[GRPQUOTA].dqi_dirty_list); ++ sb->s_dquot.info[USRQUOTA].dqi_format = &vz_quota_empty_v2_format; ++ sb->s_dquot.info[GRPQUOTA].dqi_format = &vz_quota_empty_v2_format; ++ /* ++ * To get quotaops.h call us we need to mark superblock ++ * as having quota. These flags mark the moment when ++ * our dq_op start to be called. ++ * ++ * The ordering of dq_op and s_dquot.flags assignment ++ * needs to be enforced, but other CPUs do not do rmb() ++ * between s_dquot.flags and dq_op accesses. ++ */ ++ wmb(); synchronize_sched(); ++ sb->s_dquot.flags = DQUOT_USR_ENABLED|DQUOT_GRP_ENABLED; ++ __module_get(THIS_MODULE); ++ up(&sb->s_dquot.dqonoff_sem); ++ } ++ /* protected by vz_quota_sem */ ++ __VZ_QUOTA_SBREF(sb)++; ++ return 0; ++} ++ ++/** ++ * quota_put_super - release superblock when one quota tree goes away ++ * ++ * Called under vz_quota_sem. ++ */ ++void vzquota_put_super(struct super_block *sb) ++{ ++ int count; ++ ++ count = --__VZ_QUOTA_SBREF(sb); ++ if (count == 0) { ++ down(&sb->s_dquot.dqonoff_sem); ++ sb->s_dquot.flags = 0; ++ wmb(); synchronize_sched(); ++ sema_init(&sb->s_dquot.dqio_sem, 1); ++ sb->s_qcop = orig_dq_cop; ++ sb->dq_op = orig_dq_op; ++ inode_qmblk_lock(sb); ++ quota_gen_put(SB_QGEN(sb)); ++ SB_QGEN(sb) = NULL; ++ /* release qlnk's without qmblk */ ++ remove_inode_quota_links_list(&non_vzquota_inodes_lh, ++ sb, NULL); ++ /* ++ * Races with quota initialization: ++ * after this inode_qmblk_unlock all inode's generations are ++ * invalidated, quota_inode_qmblk checks superblock operations. ++ */ ++ inode_qmblk_unlock(sb); ++ /* ++ * Module refcounting: in theory, this is the best place ++ * to call module_put(THIS_MODULE). ++ * In reality, it can't be done because we can't be sure that ++ * other CPUs do not enter our code segment through dq_op ++ * cached long time ago. Quotaops interface isn't supposed to ++ * go into modules currently (that is, into unloadable ++ * modules). By omitting module_put, our module isn't ++ * unloadable. ++ */ ++ up(&sb->s_dquot.dqonoff_sem); ++ } ++} ++ ++#else ++ ++struct vzquota_new_sop { ++ struct super_operations new_op; ++ const struct super_operations *old_op; ++}; ++ ++/** ++ * vzquota_shutdown_super - callback on umount ++ */ ++void vzquota_shutdown_super(struct super_block *sb) ++{ ++ struct vz_quota_master *qmblk; ++ struct vzquota_new_sop *sop; ++ ++ qmblk = __VZ_QUOTA_NOQUOTA(sb); ++ __VZ_QUOTA_NOQUOTA(sb) = NULL; ++ if (qmblk != NULL) ++ qmblk_put(qmblk); ++ sop = container_of(sb->s_op, struct vzquota_new_sop, new_op); ++ sb->s_op = sop->old_op; ++ kfree(sop); ++ if (sb->s_op->put_super != NULL) ++ (*sb->s_op->put_super)(sb); ++} ++ ++/** ++ * vzquota_get_super - account for new a quoted tree under the superblock ++ * ++ * One superblock can have multiple directory subtrees with different VZ ++ * quotas. ++ * ++ * Called under vz_quota_sem (from vzquota_on). ++ */ ++int vzquota_get_super(struct super_block *sb) ++{ ++ struct vz_quota_master *qnew; ++ struct vzquota_new_sop *sop; ++ int err; ++ ++ mutex_lock(&sb->s_dquot.dqonoff_mutex); ++ err = -EEXIST; ++ if ((sb->s_dquot.flags & (DQUOT_USR_ENABLED|DQUOT_GRP_ENABLED)) && ++ sb->dq_op != &vz_quota_operations) ++ goto out_up; ++ ++ /* ++ * This allocation code should be under sb->dq_op check below, but ++ * it doesn't really matter... ++ */ ++ if (__VZ_QUOTA_NOQUOTA(sb) == NULL) { ++ qnew = vzquota_alloc_fake(); ++ if (qnew == NULL) ++ goto out_up; ++ __VZ_QUOTA_NOQUOTA(sb) = qnew; ++ } ++ ++ if (sb->dq_op != &vz_quota_operations) { ++ sop = kmalloc(sizeof(*sop), GFP_KERNEL); ++ if (sop == NULL) { ++ vzquota_free_master(__VZ_QUOTA_NOQUOTA(sb)); ++ __VZ_QUOTA_NOQUOTA(sb) = NULL; ++ goto out_up; ++ } ++ memcpy(&sop->new_op, sb->s_op, sizeof(sop->new_op)); ++ sop->new_op.put_super = &vzquota_shutdown_super; ++ sop->old_op = sb->s_op; ++ sb->s_op = &sop->new_op; ++ ++ sb->dq_op = &vz_quota_operations; ++#ifdef CONFIG_VZ_QUOTA_UGID ++ sb->s_qcop = &vz_quotactl_operations; ++#else ++ sb->s_qcop = NULL; ++#endif ++ do_gettimeofday(__VZ_QUOTA_TSTAMP(sb)); ++ ++ memset(&sb->s_dquot.info, 0, sizeof(sb->s_dquot.info)); ++ /* these 2 list heads are checked in sync_dquots() */ ++ INIT_LIST_HEAD(&sb->s_dquot.info[USRQUOTA].dqi_dirty_list); ++ INIT_LIST_HEAD(&sb->s_dquot.info[GRPQUOTA].dqi_dirty_list); ++ sb->s_dquot.info[USRQUOTA].dqi_format = ++ &vz_quota_empty_v2_format; ++ sb->s_dquot.info[GRPQUOTA].dqi_format = ++ &vz_quota_empty_v2_format; ++ ++ /* ++ * To get quotaops.h to call us we need to mark superblock ++ * as having quota. These flags mark the moment when ++ * our dq_op start to be called. ++ * ++ * The ordering of dq_op and s_dquot.flags assignment ++ * needs to be enforced, but other CPUs do not do rmb() ++ * between s_dquot.flags and dq_op accesses. ++ */ ++ wmb(); synchronize_sched(); ++ sb->s_dquot.flags = DQUOT_USR_ENABLED|DQUOT_GRP_ENABLED; ++ } ++ err = 0; ++ ++out_up: ++ mutex_unlock(&sb->s_dquot.dqonoff_mutex); ++ return err; ++} ++ ++/** ++ * vzquota_put_super - one quota tree less on this superblock ++ * ++ * Called under vz_quota_sem. ++ */ ++void vzquota_put_super(struct super_block *sb) ++{ ++ /* ++ * Even if this put is the last one, ++ * sb->s_dquot.flags can't be cleared, because otherwise vzquota_drop ++ * won't be called and the remaining qmblk references won't be put. ++ */ ++} ++ ++#endif ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Helpers for inode -> qmblk link maintenance ++ * ++ * --------------------------------------------------------------------- */ ++ ++#define __VZ_QUOTA_EMPTY ((void *)0xbdbdbdbd) ++#define VZ_QUOTA_IS_NOQUOTA(qm, sb) ((qm)->dq_flags & VZDQ_NOQUOT) ++#define VZ_QUOTA_EMPTY_IOPS (&vfs_empty_iops) ++extern struct inode_operations vfs_empty_iops; ++ ++static int VZ_QUOTA_IS_ACTUAL(struct inode *inode) ++{ ++ struct vz_quota_master *qmblk; ++ ++ qmblk = INODE_QLNK(inode)->qmblk; ++ if (qmblk == VZ_QUOTA_BAD) ++ return 1; ++ if (qmblk == __VZ_QUOTA_EMPTY) ++ return 0; ++ if (qmblk->dq_flags & VZDQ_NOACT) ++ /* not actual (invalidated) qmblk */ ++ return 0; ++ return 1; ++} ++ ++static inline int vzquota_qlnk_is_empty(struct vz_quota_ilink *qlnk) ++{ ++ return qlnk->qmblk == __VZ_QUOTA_EMPTY; ++} ++ ++static inline void set_qlnk_origin(struct vz_quota_ilink *qlnk, ++ unsigned char origin) ++{ ++ qlnk->origin[0] = qlnk->origin[1]; ++ qlnk->origin[1] = origin; ++} ++ ++static inline void vzquota_qlnk_set_empty(struct vz_quota_ilink *qlnk) ++{ ++ qlnk->qmblk = __VZ_QUOTA_EMPTY; ++ set_qlnk_origin(qlnk, VZ_QUOTAO_SETE); ++} ++ ++void vzquota_qlnk_init(struct vz_quota_ilink *qlnk) ++{ ++ memset(qlnk, 0, sizeof(*qlnk)); ++ INIT_LIST_HEAD(&qlnk->list); ++ vzquota_qlnk_set_empty(qlnk); ++ set_qlnk_origin(qlnk, VZ_QUOTAO_INIT); ++} ++ ++void vzquota_qlnk_destroy(struct vz_quota_ilink *qlnk) ++{ ++ might_sleep(); ++ if (vzquota_qlnk_is_empty(qlnk)) ++ return; ++#if defined(CONFIG_VZ_QUOTA_UGID) ++ if (qlnk->qmblk != NULL && qlnk->qmblk != VZ_QUOTA_BAD) { ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ugid *quid, *qgid; ++ qmblk = qlnk->qmblk; ++ quid = qlnk->qugid[USRQUOTA]; ++ qgid = qlnk->qugid[GRPQUOTA]; ++ if (quid != NULL || qgid != NULL) { ++ down(&qmblk->dq_sem); ++ if (qgid != NULL) ++ vzquota_put_ugid(qmblk, qgid); ++ if (quid != NULL) ++ vzquota_put_ugid(qmblk, quid); ++ up(&qmblk->dq_sem); ++ } ++ } ++#endif ++ if (qlnk->qmblk != NULL && qlnk->qmblk != VZ_QUOTA_BAD) ++ qmblk_put(qlnk->qmblk); ++ set_qlnk_origin(qlnk, VZ_QUOTAO_DESTR); ++} ++ ++/** ++ * vzquota_qlnk_swap - swap inode's and temporary vz_quota_ilink contents ++ * @qlt: temporary ++ * @qli: inode's ++ * ++ * Locking is provided by the caller (depending on the context). ++ * After swap, @qli is inserted into the corresponding dq_ilink_list, ++ * @qlt list is reinitialized. ++ */ ++static void vzquota_qlnk_swap(struct vz_quota_ilink *qlt, ++ struct vz_quota_ilink *qli) ++{ ++ struct vz_quota_master *qb; ++ struct vz_quota_ugid *qu; ++ int i; ++ ++ qb = qlt->qmblk; ++ qlt->qmblk = qli->qmblk; ++ qli->qmblk = qb; ++ list_del_init(&qli->list); ++ if (qb != __VZ_QUOTA_EMPTY && qb != VZ_QUOTA_BAD) ++ list_add(&qli->list, &qb->dq_ilink_list); ++ INIT_LIST_HEAD(&qlt->list); ++ set_qlnk_origin(qli, VZ_QUOTAO_SWAP); ++ ++ for (i = 0; i < MAXQUOTAS; i++) { ++ qu = qlt->qugid[i]; ++ qlt->qugid[i] = qli->qugid[i]; ++ qli->qugid[i] = qu; ++ } ++} ++ ++/** ++ * vzquota_qlnk_reinit_locked - destroy qlnk content, called under locks ++ * ++ * Called under dcache_lock and inode_qmblk locks. ++ * Returns 1 if locks were dropped inside, 0 if atomic. ++ */ ++static int vzquota_qlnk_reinit_locked(struct vz_quota_ilink *qlnk, ++ struct inode *inode) ++{ ++ if (vzquota_qlnk_is_empty(qlnk)) ++ return 0; ++ if (qlnk->qmblk == VZ_QUOTA_BAD) { ++ vzquota_qlnk_set_empty(qlnk); ++ set_qlnk_origin(qlnk, VZ_QUOTAO_RE_LOCK); ++ return 0; ++ } ++ spin_unlock(&dcache_lock); ++ inode_qmblk_unlock(inode->i_sb); ++ vzquota_qlnk_destroy(qlnk); ++ vzquota_qlnk_init(qlnk); ++ inode_qmblk_lock(inode->i_sb); ++ spin_lock(&dcache_lock); ++ return 1; ++} ++ ++#if defined(CONFIG_VZ_QUOTA_UGID) ++/** ++ * vzquota_qlnk_reinit_attr - destroy and reinit qlnk content ++ * ++ * Similar to vzquota_qlnk_reinit_locked, called under different locks. ++ */ ++static int vzquota_qlnk_reinit_attr(struct vz_quota_ilink *qlnk, ++ struct inode *inode, ++ struct vz_quota_master *qmblk) ++{ ++ if (vzquota_qlnk_is_empty(qlnk)) ++ return 0; ++ /* may be optimized if qlnk->qugid all NULLs */ ++ qmblk_data_write_unlock(qmblk); ++ inode_qmblk_unlock(inode->i_sb); ++ vzquota_qlnk_destroy(qlnk); ++ vzquota_qlnk_init(qlnk); ++ inode_qmblk_lock(inode->i_sb); ++ qmblk_data_write_lock(qmblk); ++ return 1; ++} ++#endif ++ ++/** ++ * vzquota_qlnk_fill - fill vz_quota_ilink content ++ * @qlnk: vz_quota_ilink to fill ++ * @inode: inode for which @qlnk is filled (i_sb, i_uid, i_gid) ++ * @qmblk: qmblk to which this @qlnk will belong ++ * ++ * Called under dcache_lock and inode_qmblk locks. ++ * Returns 1 if locks were dropped inside, 0 if atomic. ++ * @qlnk is expected to be empty. ++ */ ++static int vzquota_qlnk_fill(struct vz_quota_ilink *qlnk, ++ struct inode *inode, ++ struct vz_quota_master *qmblk) ++{ ++ if (qmblk != VZ_QUOTA_BAD) ++ qmblk_get(qmblk); ++ qlnk->qmblk = qmblk; ++ ++#if defined(CONFIG_VZ_QUOTA_UGID) ++ if (qmblk != VZ_QUOTA_BAD && ++ !VZ_QUOTA_IS_NOQUOTA(qmblk, inode->i_sb) && ++ (qmblk->dq_flags & VZDQUG_ON)) { ++ struct vz_quota_ugid *quid, *qgid; ++ ++ spin_unlock(&dcache_lock); ++ inode_qmblk_unlock(inode->i_sb); ++ ++ down(&qmblk->dq_sem); ++ quid = __vzquota_find_ugid(qmblk, inode->i_uid, USRQUOTA, 0); ++ qgid = __vzquota_find_ugid(qmblk, inode->i_gid, GRPQUOTA, 0); ++ up(&qmblk->dq_sem); ++ ++ inode_qmblk_lock(inode->i_sb); ++ spin_lock(&dcache_lock); ++ qlnk->qugid[USRQUOTA] = quid; ++ qlnk->qugid[GRPQUOTA] = qgid; ++ return 1; ++ } ++#endif ++ ++ return 0; ++} ++ ++#if defined(CONFIG_VZ_QUOTA_UGID) ++/** ++ * vzquota_qlnk_fill_attr - fill vz_quota_ilink content for uid, gid ++ * ++ * This function is a helper for vzquota_transfer, and differs from ++ * vzquota_qlnk_fill only by locking. ++ */ ++static int vzquota_qlnk_fill_attr(struct vz_quota_ilink *qlnk, ++ struct inode *inode, ++ struct iattr *iattr, ++ int mask, ++ struct vz_quota_master *qmblk) ++{ ++ qmblk_get(qmblk); ++ qlnk->qmblk = qmblk; ++ ++ if (mask) { ++ struct vz_quota_ugid *quid, *qgid; ++ ++ quid = qgid = NULL; /* to make gcc happy */ ++ if (!(mask & (1 << USRQUOTA))) ++ quid = vzquota_get_ugid(INODE_QLNK(inode)-> ++ qugid[USRQUOTA]); ++ if (!(mask & (1 << GRPQUOTA))) ++ qgid = vzquota_get_ugid(INODE_QLNK(inode)-> ++ qugid[GRPQUOTA]); ++ ++ qmblk_data_write_unlock(qmblk); ++ inode_qmblk_unlock(inode->i_sb); ++ ++ down(&qmblk->dq_sem); ++ if (mask & (1 << USRQUOTA)) ++ quid = __vzquota_find_ugid(qmblk, iattr->ia_uid, ++ USRQUOTA, 0); ++ if (mask & (1 << GRPQUOTA)) ++ qgid = __vzquota_find_ugid(qmblk, iattr->ia_gid, ++ GRPQUOTA, 0); ++ up(&qmblk->dq_sem); ++ ++ inode_qmblk_lock(inode->i_sb); ++ qmblk_data_write_lock(qmblk); ++ qlnk->qugid[USRQUOTA] = quid; ++ qlnk->qugid[GRPQUOTA] = qgid; ++ return 1; ++ } ++ ++ return 0; ++} ++#endif ++ ++/** ++ * __vzquota_inode_init - make sure inode's qlnk is initialized ++ * ++ * May be called if qlnk is already initialized, detects this situation itself. ++ * Called under inode_qmblk_lock. ++ */ ++static void __vzquota_inode_init(struct inode *inode, unsigned char origin) ++{ ++ if (inode->i_dquot[USRQUOTA] == NODQUOT) { ++ vzquota_qlnk_init(INODE_QLNK(inode)); ++ inode->i_dquot[USRQUOTA] = (void *)~(unsigned long)NODQUOT; ++ } ++ set_qlnk_origin(INODE_QLNK(inode), origin); ++} ++ ++/** ++ * vzquota_inode_drop - destroy VZ quota information in the inode ++ * ++ * Inode must not be externally accessible or dirty. ++ */ ++static void vzquota_inode_drop(struct inode *inode) ++{ ++ struct vz_quota_ilink qlnk; ++ ++ vzquota_qlnk_init(&qlnk); ++ inode_qmblk_lock(inode->i_sb); ++ vzquota_qlnk_swap(&qlnk, INODE_QLNK(inode)); ++ set_qlnk_origin(INODE_QLNK(inode), VZ_QUOTAO_DRCAL); ++ inode->i_dquot[USRQUOTA] = NODQUOT; ++ inode_qmblk_unlock(inode->i_sb); ++ vzquota_qlnk_destroy(&qlnk); ++} ++ ++/** ++ * vzquota_inode_qmblk_set - initialize inode's qlnk ++ * @inode: inode to be initialized ++ * @qmblk: quota master block to which this inode should belong (may be BAD) ++ * @qlnk: placeholder to store data to resolve locking issues ++ * ++ * Returns 1 if locks were dropped and rechecks possibly needed, 0 otherwise. ++ * Called under dcache_lock and inode_qmblk locks. ++ * @qlnk will be destroyed in the caller chain. ++ * ++ * It is not mandatory to restart parent checks since quota on/off currently ++ * shrinks dentry tree and checks that there are not outside references. ++ * But if at some time that shink is removed, restarts will be required. ++ * Additionally, the restarts prevent inconsistencies if the dentry tree ++ * changes (inode is moved). This is not a big deal, but anyway... ++ */ ++static int vzquota_inode_qmblk_set(struct inode *inode, ++ struct vz_quota_master *qmblk, ++ struct vz_quota_ilink *qlnk) ++{ ++ if (qmblk == NULL) { ++ printk(KERN_ERR "VZDQ: NULL in set, orig {%u, %u}, " ++ "dev %s, inode %lu, fs %s\n", ++ INODE_QLNK(inode)->origin[0], ++ INODE_QLNK(inode)->origin[1], ++ inode->i_sb->s_id, inode->i_ino, ++ inode->i_sb->s_type->name); ++ printk(KERN_ERR "current %d (%s), VE %d\n", ++ current->pid, current->comm, ++ VEID(get_exec_env())); ++ dump_stack(); ++ qmblk = VZ_QUOTA_BAD; ++ } ++ while (1) { ++ if (vzquota_qlnk_is_empty(qlnk) && ++ vzquota_qlnk_fill(qlnk, inode, qmblk)) ++ return 1; ++ if (qlnk->qmblk == qmblk) ++ break; ++ if (vzquota_qlnk_reinit_locked(qlnk, inode)) ++ return 1; ++ } ++ vzquota_qlnk_swap(qlnk, INODE_QLNK(inode)); ++ set_qlnk_origin(INODE_QLNK(inode), VZ_QUOTAO_QSET); ++ return 0; ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * vzquota_inode_qmblk (inode -> qmblk lookup) parts ++ * ++ * --------------------------------------------------------------------- */ ++ ++static int vzquota_dparents_check_attach(struct inode *inode) ++{ ++ if (!list_empty(&inode->i_dentry)) ++ return 0; ++ printk(KERN_ERR "VZDQ: no parent for " ++ "dev %s, inode %lu, fs %s\n", ++ inode->i_sb->s_id, ++ inode->i_ino, ++ inode->i_sb->s_type->name); ++ return -1; ++} ++ ++static struct inode *vzquota_dparents_check_actual(struct inode *inode) ++{ ++ struct dentry *de; ++ ++ list_for_each_entry(de, &inode->i_dentry, d_alias) { ++ if (de->d_parent == de) /* detached dentry, perhaps */ ++ continue; ++ /* first access to parent, make sure its qlnk initialized */ ++ __vzquota_inode_init(de->d_parent->d_inode, VZ_QUOTAO_ACT); ++ if (!VZ_QUOTA_IS_ACTUAL(de->d_parent->d_inode)) ++ return de->d_parent->d_inode; ++ } ++ return NULL; ++} ++ ++static struct vz_quota_master *vzquota_dparents_check_same(struct inode *inode) ++{ ++ struct dentry *de; ++ struct vz_quota_master *qmblk; ++ ++ qmblk = NULL; ++ list_for_each_entry(de, &inode->i_dentry, d_alias) { ++ if (de->d_parent == de) /* detached dentry, perhaps */ ++ continue; ++ if (qmblk == NULL) { ++ qmblk = INODE_QLNK(de->d_parent->d_inode)->qmblk; ++ continue; ++ } ++ if (INODE_QLNK(de->d_parent->d_inode)->qmblk != qmblk) { ++ printk(KERN_WARNING "VZDQ: multiple quotas for " ++ "dev %s, inode %lu, fs %s\n", ++ inode->i_sb->s_id, ++ inode->i_ino, ++ inode->i_sb->s_type->name); ++ qmblk = VZ_QUOTA_BAD; ++ break; ++ } ++ } ++ if (qmblk == NULL) { ++ printk(KERN_WARNING "VZDQ: not attached to tree, " ++ "dev %s, inode %lu, fs %s\n", ++ inode->i_sb->s_id, ++ inode->i_ino, ++ inode->i_sb->s_type->name); ++ qmblk = VZ_QUOTA_BAD; ++ } ++ return qmblk; ++} ++ ++static void vzquota_dbranch_actualize(struct inode *inode, ++ struct inode *refinode) ++{ ++ struct inode *pinode; ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ilink qlnk; ++ ++ vzquota_qlnk_init(&qlnk); ++ ++start: ++ if (inode == inode->i_sb->s_root->d_inode) { ++ /* filesystem root */ ++ atomic_inc(&inode->i_count); ++ do { ++ qmblk = __VZ_QUOTA_NOQUOTA(inode->i_sb); ++ } while (vzquota_inode_qmblk_set(inode, qmblk, &qlnk)); ++ goto out; ++ } ++ ++ if (!vzquota_dparents_check_attach(inode)) { ++ pinode = vzquota_dparents_check_actual(inode); ++ if (pinode != NULL) { ++ inode = pinode; ++ goto start; ++ } ++ } ++ ++ atomic_inc(&inode->i_count); ++ while (1) { ++ if (VZ_QUOTA_IS_ACTUAL(inode)) /* actualized without us */ ++ break; ++ /* ++ * Need to check parents again if we have slept inside ++ * vzquota_inode_qmblk_set() in the loop. ++ * If the state of parents is different, just return and repeat ++ * the actualizing process again from the inode passed to ++ * vzquota_inode_qmblk_recalc(). ++ */ ++ if (!vzquota_dparents_check_attach(inode)) { ++ if (vzquota_dparents_check_actual(inode) != NULL) ++ break; ++ qmblk = vzquota_dparents_check_same(inode); ++ } else ++ qmblk = VZ_QUOTA_BAD; ++ if (!vzquota_inode_qmblk_set(inode, qmblk, &qlnk)){/* success */ ++ set_qlnk_origin(INODE_QLNK(inode), VZ_QUOTAO_ACT); ++ break; ++ } ++ } ++ ++out: ++ spin_unlock(&dcache_lock); ++ inode_qmblk_unlock(refinode->i_sb); ++ vzquota_qlnk_destroy(&qlnk); ++ iput(inode); ++ inode_qmblk_lock(refinode->i_sb); ++ spin_lock(&dcache_lock); ++} ++ ++static void vzquota_dtree_qmblk_recalc(struct inode *inode, ++ struct vz_quota_ilink *qlnk) ++{ ++ struct inode *pinode; ++ struct vz_quota_master *qmblk; ++ ++ if (inode == inode->i_sb->s_root->d_inode) { ++ /* filesystem root */ ++ do { ++ qmblk = __VZ_QUOTA_NOQUOTA(inode->i_sb); ++ } while (vzquota_inode_qmblk_set(inode, qmblk, qlnk)); ++ return; ++ } ++ ++start: ++ if (VZ_QUOTA_IS_ACTUAL(inode)) ++ return; ++ /* ++ * Here qmblk is (re-)initialized for all ancestors. ++ * This is not a very efficient procedure, but it guarantees that ++ * the quota tree is consistent (that is, the inode doesn't have two ++ * ancestors with different qmblk). ++ */ ++ if (!vzquota_dparents_check_attach(inode)) { ++ pinode = vzquota_dparents_check_actual(inode); ++ if (pinode != NULL) { ++ vzquota_dbranch_actualize(pinode, inode); ++ goto start; ++ } ++ qmblk = vzquota_dparents_check_same(inode); ++ } else ++ qmblk = VZ_QUOTA_BAD; ++ ++ if (vzquota_inode_qmblk_set(inode, qmblk, qlnk)) ++ goto start; ++ set_qlnk_origin(INODE_QLNK(inode), VZ_QUOTAO_DTREE); ++} ++ ++static void vzquota_det_qmblk_recalc(struct inode *inode, ++ struct vz_quota_ilink *qlnk) ++{ ++ struct inode *parent; ++ struct vz_quota_master *qmblk; ++ char *msg; ++ int cnt; ++ time_t timeout; ++ ++ cnt = 0; ++ parent = NULL; ++start: ++ /* ++ * qmblk of detached inodes shouldn't be considered as not actual. ++ * They are not in any dentry tree, so quota on/off shouldn't affect ++ * them. ++ */ ++ if (!vzquota_qlnk_is_empty(INODE_QLNK(inode))) ++ return; ++ ++ timeout = 3; ++ qmblk = __VZ_QUOTA_NOQUOTA(inode->i_sb); ++ /* ++ * Scenario: ++ * open ++ * unlink ++ * quotaon ++ * generic_delete_inode ++ * ++ * This is the first time vzquota sees inode. inode is outside of ++ * vzquota area of interest, otherwise quotaon would have got -EBUSY ++ * due to shrink_dcache_parent(). ++ * inode is almost completely destroyed, so don't intervene. ++ * ++ * dev@: ++ * However, there is a small race here... ++ * dput() first removes itself from all the lists, ++ * so shrink_dcache_parent() can succeed while dentry_iput is not ++ * done yet. ++ */ ++ if (inode->i_state & I_FREEING) ++ goto set; ++ ++ msg = "detached inode not in creation"; ++ if (inode->i_op != VZ_QUOTA_EMPTY_IOPS) ++ goto fail; ++ qmblk = VZ_QUOTA_BAD; ++ msg = "unexpected creation context"; ++ if (!vzquota_cur_qmblk_check()) ++ goto fail; ++ timeout = 0; ++ parent = vzquota_cur_qmblk_fetch(); ++ msg = "uninitialized parent"; ++ if (vzquota_qlnk_is_empty(INODE_QLNK(parent))) ++ goto fail; ++ msg = "parent not in tree"; ++ if (list_empty(&parent->i_dentry)) ++ goto fail; ++ msg = "parent has 0 refcount"; ++ if (!atomic_read(&parent->i_count)) ++ goto fail; ++ msg = "parent has different sb"; ++ if (parent->i_sb != inode->i_sb) ++ goto fail; ++ if (!VZ_QUOTA_IS_ACTUAL(parent)) { ++ vzquota_dbranch_actualize(parent, inode); ++ goto start; ++ } ++ ++ qmblk = INODE_QLNK(parent)->qmblk; ++set: ++ if (vzquota_inode_qmblk_set(inode, qmblk, qlnk)) ++ goto start; ++ set_qlnk_origin(INODE_QLNK(inode), VZ_QUOTAO_DET); ++ return; ++ ++fail: ++ { ++ struct timeval tv, tvo; ++ do_gettimeofday(&tv); ++ memcpy(&tvo, __VZ_QUOTA_TSTAMP(inode->i_sb), sizeof(tvo)); ++ tv.tv_sec -= tvo.tv_sec; ++ if (tv.tv_usec < tvo.tv_usec) { ++ tv.tv_sec--; ++ tv.tv_usec += USEC_PER_SEC - tvo.tv_usec; ++ } else ++ tv.tv_usec -= tvo.tv_usec; ++ if (tv.tv_sec < timeout) ++ goto set; ++ printk(KERN_ERR "VZDQ: %s, orig {%u, %u}," ++ " dev %s, inode %lu, fs %s\n", ++ msg, ++ INODE_QLNK(inode)->origin[0], ++ INODE_QLNK(inode)->origin[1], ++ inode->i_sb->s_id, inode->i_ino, ++ inode->i_sb->s_type->name); ++ printk(KERN_ERR "i_count %u, ", atomic_read(&inode->i_count)); ++ printk(KERN_ERR "i_mode %o, ", inode->i_mode); ++ printk(KERN_ERR "i_state %lx, ", inode->i_state); ++ printk(KERN_ERR "i_flags %x\n", inode->i_flags); ++ printk(KERN_ERR "i_op %p, vfs_empty_iops %p, " ++ "i_fop %p, i_mapping %p\n", ++ inode->i_op, &vfs_empty_iops, ++ inode->i_fop, inode->i_mapping); ++ if (!cnt++) { ++ printk(KERN_ERR "current %d (%s), VE %d," ++ " time %ld.%06ld\n", ++ current->pid, current->comm, ++ VEID(get_exec_env()), ++ tv.tv_sec, (long)tv.tv_usec); ++ dump_stack(); ++ } ++ if (parent != NULL) ++ printk(KERN_ERR "VZDQ: parent of %lu is %lu\n", ++ inode->i_ino, parent->i_ino); ++ } ++ goto set; ++} ++ ++static void vzquota_inode_qmblk_recalc(struct inode *inode, ++ struct vz_quota_ilink *qlnk) ++{ ++ spin_lock(&dcache_lock); ++ if (!list_empty(&inode->i_dentry)) ++ vzquota_dtree_qmblk_recalc(inode, qlnk); ++ else ++ vzquota_det_qmblk_recalc(inode, qlnk); ++ spin_unlock(&dcache_lock); ++} ++ ++/** ++ * vzquota_inode_qmblk - obtain inode's qmblk ++ * ++ * Returns qmblk with refcounter taken, %NULL if not under ++ * VZ quota or %VZ_QUOTA_BAD. ++ * ++ * FIXME: This function should be removed when vzquota_find_qmblk / ++ * get_quota_root / vzquota_dstat code is cleaned up. ++ */ ++struct vz_quota_master *vzquota_inode_qmblk(struct inode *inode) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ilink qlnk; ++ ++ might_sleep(); ++ ++ if (inode->i_sb->dq_op != &vz_quota_operations) ++ return NULL; ++#if defined(VZ_QUOTA_UNLOAD) ++#error Make sure qmblk does not disappear ++#endif ++ ++ vzquota_qlnk_init(&qlnk); ++ inode_qmblk_lock(inode->i_sb); ++ __vzquota_inode_init(inode, VZ_QUOTAO_INICAL); ++ ++ if (vzquota_qlnk_is_empty(INODE_QLNK(inode)) || ++ !VZ_QUOTA_IS_ACTUAL(inode)) ++ vzquota_inode_qmblk_recalc(inode, &qlnk); ++ ++ qmblk = INODE_QLNK(inode)->qmblk; ++ if (qmblk != VZ_QUOTA_BAD) { ++ if (!VZ_QUOTA_IS_NOQUOTA(qmblk, inode->i_sb)) ++ qmblk_get(qmblk); ++ else ++ qmblk = NULL; ++ } ++ ++ inode_qmblk_unlock(inode->i_sb); ++ vzquota_qlnk_destroy(&qlnk); ++ return qmblk; ++} ++ ++/** ++ * vzquota_find_qmblk - helper to emulate quota on virtual filesystems ++ * ++ * This function finds a quota master block corresponding to the root of ++ * a virtual filesystem. ++ * Returns a quota master block with reference taken, or %NULL if not under ++ * quota, or %VZ_QUOTA_BAD if quota inconsistency is found (and all allocation ++ * operations will fail). ++ * ++ * Note: this function uses vzquota_inode_qmblk(). ++ * The latter is a rather confusing function: it returns qmblk that used to be ++ * on the inode some time ago (without guarantee that it still has any ++ * relations to the inode). So, vzquota_find_qmblk() leaves it up to the ++ * caller to think whether the inode could have changed its qmblk and what to ++ * do in that case. ++ * Currently, the callers appear to not care :( ++ */ ++struct vz_quota_master *vzquota_find_qmblk(struct super_block *sb) ++{ ++ struct inode *qrinode; ++ struct vz_quota_master *qmblk; ++ ++ qmblk = NULL; ++ qrinode = NULL; ++ if (sb->s_op->get_quota_root != NULL) ++ qrinode = sb->s_op->get_quota_root(sb); ++ if (qrinode != NULL) ++ qmblk = vzquota_inode_qmblk(qrinode); ++ return qmblk; ++} ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Calls from quota operations ++ * ++ * --------------------------------------------------------------------- */ ++ ++/** ++ * vzquota_inode_init_call - call from DQUOT_INIT ++ */ ++void vzquota_inode_init_call(struct inode *inode) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_datast data; ++ ++ /* initializes inode's quota inside */ ++ qmblk = vzquota_inode_data(inode, &data); ++ if (qmblk != NULL && qmblk != VZ_QUOTA_BAD) ++ vzquota_data_unlock(inode, &data); ++ ++ /* ++ * The check is needed for repeated new_inode() calls from a single ++ * ext3 call like create or mkdir in case of -ENOSPC. ++ */ ++ spin_lock(&dcache_lock); ++ if (!list_empty(&inode->i_dentry)) ++ vzquota_cur_qmblk_set(inode); ++ spin_unlock(&dcache_lock); ++} ++ ++/** ++ * vzquota_inode_drop_call - call from DQUOT_DROP ++ */ ++void vzquota_inode_drop_call(struct inode *inode) ++{ ++ vzquota_inode_drop(inode); ++} ++ ++/** ++ * vzquota_inode_data - initialize (if nec.) and lock inode quota ptrs ++ * @inode: the inode ++ * @data: storage space ++ * ++ * Returns: qmblk is NULL or VZ_QUOTA_BAD or actualized qmblk. ++ * On return if qmblk is neither NULL nor VZ_QUOTA_BAD: ++ * qmblk in inode's qlnk is the same as returned, ++ * ugid pointers inside inode's qlnk are valid, ++ * some locks are taken (and should be released by vzquota_data_unlock). ++ * If qmblk is NULL or VZ_QUOTA_BAD, locks are NOT taken. ++ */ ++struct vz_quota_master *vzquota_inode_data(struct inode *inode, ++ struct vz_quota_datast *data) ++{ ++ struct vz_quota_master *qmblk; ++ ++ might_sleep(); ++ ++ vzquota_qlnk_init(&data->qlnk); ++ inode_qmblk_lock(inode->i_sb); ++ if (unlikely(inode->i_flags & S_NOQUOTA)) { ++ inode_qmblk_unlock(inode->i_sb); ++ return NULL; ++ } ++ __vzquota_inode_init(inode, VZ_QUOTAO_INICAL); ++ ++ if (vzquota_qlnk_is_empty(INODE_QLNK(inode)) || ++ !VZ_QUOTA_IS_ACTUAL(inode)) ++ vzquota_inode_qmblk_recalc(inode, &data->qlnk); ++ ++ qmblk = INODE_QLNK(inode)->qmblk; ++ if (qmblk != VZ_QUOTA_BAD) { ++ if (!VZ_QUOTA_IS_NOQUOTA(qmblk, inode->i_sb)) { ++ /* ++ * Note that in the current implementation, ++ * inode_qmblk_lock can theoretically be dropped here. ++ * This place is serialized with quota_off because ++ * quota_off fails when there are extra dentry ++ * references and syncs inodes before removing quota ++ * information from them. ++ * However, quota usage information should stop being ++ * updated immediately after vzquota_off. ++ */ ++ qmblk_data_write_lock(qmblk); ++ } else { ++ inode_qmblk_unlock(inode->i_sb); ++ qmblk = NULL; ++ } ++ } else { ++ inode_qmblk_unlock(inode->i_sb); ++ } ++ return qmblk; ++} ++ ++void vzquota_data_unlock(struct inode *inode, ++ struct vz_quota_datast *data) ++{ ++ qmblk_data_write_unlock(INODE_QLNK(inode)->qmblk); ++ inode_qmblk_unlock(inode->i_sb); ++ vzquota_qlnk_destroy(&data->qlnk); ++} ++ ++#if defined(CONFIG_VZ_QUOTA_UGID) ++/** ++ * vzquota_inode_transfer_call - call from vzquota_transfer ++ */ ++int vzquota_inode_transfer_call(struct inode *inode, struct iattr *iattr) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_datast data; ++ struct vz_quota_ilink qlnew; ++ int mask; ++ int ret; ++ ++ might_sleep(); ++ vzquota_qlnk_init(&qlnew); ++start: ++ qmblk = vzquota_inode_data(inode, &data); ++ ret = NO_QUOTA; ++ if (qmblk == VZ_QUOTA_BAD) ++ goto out_destr; ++ ret = QUOTA_OK; ++ if (qmblk == NULL) ++ goto out_destr; ++ qmblk_get(qmblk); ++ ++ ret = QUOTA_OK; ++ if (!(qmblk->dq_flags & VZDQUG_ON)) ++ /* no ugid quotas */ ++ goto out_unlock; ++ ++ mask = 0; ++ if ((iattr->ia_valid & ATTR_UID) && iattr->ia_uid != inode->i_uid) ++ mask |= 1 << USRQUOTA; ++ if ((iattr->ia_valid & ATTR_GID) && iattr->ia_gid != inode->i_gid) ++ mask |= 1 << GRPQUOTA; ++ while (1) { ++ if (vzquota_qlnk_is_empty(&qlnew) && ++ vzquota_qlnk_fill_attr(&qlnew, inode, iattr, mask, qmblk)) ++ break; ++ if (qlnew.qmblk == INODE_QLNK(inode)->qmblk && ++ qlnew.qmblk == qmblk) ++ goto finish; ++ if (vzquota_qlnk_reinit_attr(&qlnew, inode, qmblk)) ++ break; ++ } ++ ++ /* prepare for restart */ ++ vzquota_data_unlock(inode, &data); ++ qmblk_put(qmblk); ++ goto start; ++ ++finish: ++ /* all references obtained successfully */ ++ ret = vzquota_transfer_usage(inode, mask, &qlnew); ++ if (!ret) { ++ vzquota_qlnk_swap(&qlnew, INODE_QLNK(inode)); ++ set_qlnk_origin(INODE_QLNK(inode), VZ_QUOTAO_TRANS); ++ } ++out_unlock: ++ vzquota_data_unlock(inode, &data); ++ qmblk_put(qmblk); ++out_destr: ++ vzquota_qlnk_destroy(&qlnew); ++ return ret; ++} ++#endif ++ ++int vzquota_rename_check(struct inode *inode, ++ struct inode *old_dir, struct inode *new_dir) ++{ ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ilink qlnk1, qlnk2, qlnk3; ++ int c, ret; ++ ++ if (inode->i_sb != old_dir->i_sb || inode->i_sb != new_dir->i_sb) ++ return -1; ++ ++ might_sleep(); ++ ++ vzquota_qlnk_init(&qlnk1); ++ vzquota_qlnk_init(&qlnk2); ++ vzquota_qlnk_init(&qlnk3); ++ inode_qmblk_lock(inode->i_sb); ++ __vzquota_inode_init(inode, VZ_QUOTAO_INICAL); ++ __vzquota_inode_init(old_dir, VZ_QUOTAO_INICAL); ++ __vzquota_inode_init(new_dir, VZ_QUOTAO_INICAL); ++ ++ do { ++ c = 0; ++ if (vzquota_qlnk_is_empty(INODE_QLNK(inode)) || ++ !VZ_QUOTA_IS_ACTUAL(inode)) { ++ vzquota_inode_qmblk_recalc(inode, &qlnk1); ++ c++; ++ } ++ if (vzquota_qlnk_is_empty(INODE_QLNK(new_dir)) || ++ !VZ_QUOTA_IS_ACTUAL(new_dir)) { ++ vzquota_inode_qmblk_recalc(new_dir, &qlnk2); ++ c++; ++ } ++ } while (c); ++ ++ ret = 0; ++ qmblk = INODE_QLNK(inode)->qmblk; ++ if (qmblk != INODE_QLNK(new_dir)->qmblk) { ++ ret = -1; ++ while (vzquota_qlnk_is_empty(INODE_QLNK(old_dir)) || ++ !VZ_QUOTA_IS_ACTUAL(old_dir)) ++ vzquota_inode_qmblk_recalc(old_dir, &qlnk3); ++ if (qmblk != VZ_QUOTA_BAD && ++ !VZ_QUOTA_IS_NOQUOTA(qmblk, inode->i_sb) && ++ qmblk->dq_root_dentry->d_inode == inode && ++ VZ_QUOTA_IS_NOQUOTA(INODE_QLNK(new_dir)->qmblk, ++ inode->i_sb) && ++ VZ_QUOTA_IS_NOQUOTA(INODE_QLNK(old_dir)->qmblk, ++ inode->i_sb)) ++ /* quota root rename is allowed */ ++ ret = 0; ++ } ++ ++ inode_qmblk_unlock(inode->i_sb); ++ vzquota_qlnk_destroy(&qlnk3); ++ vzquota_qlnk_destroy(&qlnk2); ++ vzquota_qlnk_destroy(&qlnk1); ++ return ret; ++} ++ ++/* ++ * Scan parent subdirs and find busy dentries names/path ++ * @parent: parent dentry ++ * @buf: buffer to store path. ++ */ ++static void vzdquota_read_busy_dentries(struct dentry * parent, ++ struct vfsmount *vfsmnt, char *buf, int buflen) ++{ ++ struct dentry *this_parent = parent; ++ struct list_head *next; ++ char *res, *end, *start; ++ struct vfsmount *rootmnt; ++ struct dentry *root; ++ int len; ++ ++ if (!buf || buflen <= 0) ++ return; ++ ++ /* From d_path() ... */ ++ read_lock(¤t->fs->lock); ++ rootmnt = mntget(current->fs->rootmnt); ++ root = dget(current->fs->root); ++ read_unlock(¤t->fs->lock); ++ ++ spin_lock(&dcache_lock); ++ ++ end = buf + buflen; ++ start = buf; ++repeat: ++ next = this_parent->d_subdirs.next; ++resume: ++ while (next != &this_parent->d_subdirs) { ++ struct list_head *tmp = next; ++ struct dentry *dentry; ++ int subdirs; ++ ++ dentry = list_entry(tmp, struct dentry, d_u.d_child); ++ next = tmp->next; ++ subdirs = !list_empty(&dentry->d_subdirs); ++ ++ if (atomic_read(&dentry->d_count) && !subdirs) { ++ if (!buflen) ++ goto out; ++ /* ++ * Note: __d_path will store filename at the ++ * end of buf. ++ */ ++ res = __d_path(dentry, vfsmnt, root, rootmnt, ++ buf, buflen); ++ /* Exit if name is too long */ ++ if (IS_ERR(res)) ++ goto out; ++ ++ /* ++ * Move the string obtained by __d_path, ++ * behind the last dentry path in buf. ++ */ ++ len = end - res; ++ BUG_ON(len <= 0); ++ ++ memmove(buf, res, len); ++ ++ /* Trick: replace \0 by \n */ ++ if (buf != start) ++ *(char *)(buf - 1) = '\n'; ++ ++ buf += len; ++ buflen -= len; ++ } ++ ++ /* ++ * Descend a level if the d_subdirs list is non-empty. ++ */ ++ if (subdirs) { ++ this_parent = dentry; ++ goto repeat; ++ } ++ } ++ /* ++ * All done at this level ... ascend and resume the search. ++ */ ++ if (this_parent != parent) { ++ next = this_parent->d_u.d_child.next; ++ this_parent = this_parent->d_parent; ++ goto resume; ++ } ++out: ++ /* From d_path() ... */ ++ spin_unlock(&dcache_lock); ++ dput(root); ++ mntput(rootmnt); ++} ++ ++/* ---------------------------------------------------------------------- ++ * ++ * qmblk-related parts of on/off operations ++ * ++ * --------------------------------------------------------------------- */ ++ ++/** ++ * vzquota_check_dtree - check dentry tree if quota on/off is allowed ++ * ++ * This function doesn't allow quota to be turned on/off if some dentries in ++ * the tree have external references. ++ * In addition to technical reasons, it enforces user-space correctness: ++ * current usage (taken from or reported to the user space) can be meaningful ++ * and accurate only if the tree is not being modified. ++ * Side effect: additional vfsmount structures referencing the tree (bind ++ * mounts of tree nodes to some other places) are not allowed at on/off time. ++ * ++ * Store busy dentries path to the buf (if passed) in case of vzquota_off ++ * ioctl fail. ++ */ ++int vzquota_check_dtree(struct vz_quota_master *qmblk, int off, ++ char *buf, int buflen) ++{ ++ struct dentry *dentry; ++ int err, count; ++ ++ err = -EBUSY; ++ dentry = qmblk->dq_root_dentry; ++ ++ if (d_unhashed(dentry) && dentry != dentry->d_sb->s_root) ++ goto unhashed; ++ ++ /* attempt to shrink */ ++ if (!list_empty(&dentry->d_subdirs)) { ++ spin_unlock(&dcache_lock); ++ inode_qmblk_unlock(dentry->d_sb); ++ shrink_dcache_parent(dentry); ++ inode_qmblk_lock(dentry->d_sb); ++ spin_lock(&dcache_lock); ++ if (!list_empty(&dentry->d_subdirs)) { ++ spin_unlock(&dcache_lock); ++ vzdquota_read_busy_dentries(dentry, qmblk->dq_root_mnt, ++ buf, buflen); ++ spin_lock(&dcache_lock); ++ goto out; ++ } ++ ++ count = 1; ++ if (dentry == dentry->d_sb->s_root) ++ count += 2; /* sb and mnt refs */ ++ if (atomic_read(&dentry->d_count) < count) { ++ printk(KERN_ERR "%s: too small count %d vs %d.\n", ++ __FUNCTION__, ++ atomic_read(&dentry->d_count), count); ++ goto out; ++ } ++ if (atomic_read(&dentry->d_count) > count) ++ goto out; ++ } ++ ++ err = 0; ++out: ++ return err; ++ ++unhashed: ++ /* ++ * Quota root is removed. ++ * Allow to turn quota off, but not on. ++ */ ++ if (off) ++ err = 0; ++ goto out; ++} ++ ++int vzquota_on_qmblk(struct super_block *sb, struct inode *inode, ++ struct vz_quota_master *qmblk, char __user *ubuf) ++{ ++ struct vz_quota_ilink qlnk; ++ struct vz_quota_master *qold, *qnew; ++ int err; ++ char *buf; ++ ++ buf = (ubuf != NULL) ? (char *)__get_free_page(GFP_KERNEL) : NULL; ++ ++ might_sleep(); ++ ++ qold = NULL; ++ qnew = vzquota_alloc_fake(); ++ if (qnew == NULL) { ++ free_page((unsigned long)buf); ++ return -ENOMEM; ++ } ++ ++ vzquota_qlnk_init(&qlnk); ++ inode_qmblk_lock(sb); ++ __vzquota_inode_init(inode, VZ_QUOTAO_INICAL); ++ ++ spin_lock(&dcache_lock); ++ while (1) { ++ err = vzquota_check_dtree(qmblk, 0, buf, PAGE_SIZE); ++ if (err) ++ break; ++ if (!vzquota_inode_qmblk_set(inode, qmblk, &qlnk)) ++ break; ++ } ++ set_qlnk_origin(INODE_QLNK(inode), VZ_QUOTAO_ON); ++ spin_unlock(&dcache_lock); ++ ++ if (!err) { ++ qold = __VZ_QUOTA_NOQUOTA(sb); ++ qold->dq_flags |= VZDQ_NOACT; ++ __VZ_QUOTA_NOQUOTA(sb) = qnew; ++ } ++ ++ inode_qmblk_unlock(sb); ++ vzquota_qlnk_destroy(&qlnk); ++ if (qold != NULL) ++ qmblk_put(qold); ++ ++ if (buf) { ++ (void)copy_to_user(ubuf, buf, PAGE_SIZE); ++ free_page((unsigned long)buf); ++ } ++ return err; ++} ++ ++int vzquota_off_qmblk(struct super_block *sb, struct vz_quota_master *qmblk, ++ char __user *ubuf, int force) ++{ ++ int ret; ++ char *buf; ++ ++ buf = (ubuf != NULL) ? (char *)__get_free_page(GFP_KERNEL) : NULL; ++ ++ ret = 0; ++ inode_qmblk_lock(sb); ++ ++ spin_lock(&dcache_lock); ++ if (vzquota_check_dtree(qmblk, 1, buf, PAGE_SIZE) && !force) ++ ret = -EBUSY; ++ spin_unlock(&dcache_lock); ++ ++ if (!ret) ++ qmblk->dq_flags |= VZDQ_NOACT | VZDQ_NOQUOT; ++ inode_qmblk_unlock(sb); ++ ++ if (buf) { ++ (void)copy_to_user(ubuf, buf, PAGE_SIZE); ++ free_page((unsigned long)buf); ++ } ++ return ret; ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * External interfaces ++ * ++ * ---------------------------------------------------------------------*/ ++ ++static int vzquota_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ int err; ++ ++ switch (cmd) { ++ case VZCTL_QUOTA_NEW_CTL: { ++ struct vzctl_quotactl qb; ++ ++ err = -EFAULT; ++ if (copy_from_user(&qb, (void __user *)arg, sizeof(qb))) ++ break; ++ err = do_vzquotactl(qb.cmd, qb.quota_id, ++ qb.qstat, qb.ve_root, 0); ++ break; ++ } ++#ifdef CONFIG_VZ_QUOTA_UGID ++ case VZCTL_QUOTA_UGID_CTL: { ++ struct vzctl_quotaugidctl qub; ++ ++ err = -EFAULT; ++ if (copy_from_user(&qub, (void __user *)arg, sizeof(qub))) ++ break; ++ err = do_vzquotaugidctl(qub.cmd, qub.quota_id, ++ qub.ugid_index, qub.ugid_size, qub.addr, 0); ++ break; ++ } ++#endif ++ default: ++ err = -ENOTTY; ++ } ++ return err; ++} ++ ++#ifdef CONFIG_COMPAT ++static int compat_vzquota_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ int err; ++ ++ switch (cmd) { ++ case VZCTL_COMPAT_QUOTA_CTL: { ++ struct compat_vzctl_quotactl cs; ++ ++ err = -EFAULT; ++ if (copy_from_user(&cs, (void *)arg, sizeof(cs))) ++ break; ++ err = do_vzquotactl(cs.cmd, cs.quota_id, ++ compat_ptr(cs.qstat), ++ compat_ptr(cs.ve_root), 1); ++ break; ++ } ++#ifdef CONFIG_VZ_QUOTA_UGID ++ case VZCTL_COMPAT_QUOTA_UGID_CTL: { ++ struct compat_vzctl_quotaugidctl cs; ++ ++ err = -EFAULT; ++ if (copy_from_user(&cs, (void *)arg, sizeof(cs))) ++ break; ++ ++ err = do_vzquotaugidctl(cs.cmd, cs.quota_id, cs.ugid_index, ++ cs.ugid_size, compat_ptr(cs.addr), 1); ++ break; ++ } ++#endif ++ default: ++ err = -ENOIOCTLCMD; ++ } ++ return err; ++} ++#endif ++ ++static struct vzioctlinfo vzdqcalls = { ++ .type = VZDQCTLTYPE, ++ .ioctl = vzquota_ioctl, ++#ifdef CONFIG_COMPAT ++ .compat_ioctl = compat_vzquota_ioctl, ++#endif ++ .owner = THIS_MODULE, ++}; ++ ++/** ++ * vzquota_dstat - get quota usage info for virtual superblock ++ */ ++static int vzquota_dstat(struct super_block *super, struct dq_stat *qstat) ++{ ++ struct vz_quota_master *qmblk; ++ ++ qmblk = vzquota_find_qmblk(super); ++ if (qmblk == NULL) ++ return -ENOENT; ++ if (qmblk == VZ_QUOTA_BAD) { ++ memset(qstat, 0, sizeof(*qstat)); ++ return 0; ++ } ++ ++ qmblk_data_read_lock(qmblk); ++ memcpy(qstat, &qmblk->dq_stat, sizeof(*qstat)); ++ qmblk_data_read_unlock(qmblk); ++ qmblk_put(qmblk); ++ return 0; ++} ++ ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Init/exit helpers ++ * ++ * ---------------------------------------------------------------------*/ ++ ++static int vzquota_cache_init(void) ++{ ++ int i; ++ ++ vzquota_cachep = kmem_cache_create("vz_quota_master", ++ sizeof(struct vz_quota_master), ++ 0, SLAB_HWCACHE_ALIGN, NULL); ++ if (vzquota_cachep == NULL) { ++ printk(KERN_ERR "Cannot create VZ_QUOTA SLAB cache\n"); ++ goto nomem2; ++ } ++ for (i = 0; i < VZ_QUOTA_HASH_SIZE; i++) ++ INIT_LIST_HEAD(&vzquota_hash_table[i]); ++ ++ return 0; ++ ++nomem2: ++ return -ENOMEM; ++} ++ ++static void vzquota_cache_release(void) ++{ ++ int i; ++ ++ /* sanity check */ ++ for (i = 0; i < VZ_QUOTA_HASH_SIZE; i++) ++ if (!list_empty(&vzquota_hash_table[i])) ++ BUG(); ++ ++ /* release caches */ ++ kmem_cache_destroy(vzquota_cachep); ++ vzquota_cachep = NULL; ++} ++ ++static int quota_notifier_call(struct vnotifier_block *self, ++ unsigned long n, void *data, int err) ++{ ++ struct virt_info_quota *viq; ++ struct super_block *sb; ++ ++ viq = (struct virt_info_quota *)data; ++ switch (n) { ++ case VIRTINFO_QUOTA_ON: ++ err = NOTIFY_BAD; ++ if (!try_module_get(THIS_MODULE)) ++ break; ++ sb = viq->super; ++ memset(&sb->s_dquot.info, 0, sizeof(sb->s_dquot.info)); ++ INIT_LIST_HEAD(&sb->s_dquot.info[USRQUOTA].dqi_dirty_list); ++ INIT_LIST_HEAD(&sb->s_dquot.info[GRPQUOTA].dqi_dirty_list); ++ err = NOTIFY_OK; ++ break; ++ case VIRTINFO_QUOTA_OFF: ++ module_put(THIS_MODULE); ++ err = NOTIFY_OK; ++ break; ++ case VIRTINFO_QUOTA_GETSTAT: ++ err = NOTIFY_BAD; ++ if (vzquota_dstat(viq->super, viq->qstat)) ++ break; ++ err = NOTIFY_OK; ++ break; ++ case VIRTINFO_QUOTA_DISABLE: ++ err = NOTIFY_OK; ++ vzquota_inode_off((struct inode *)data); ++ break; ++ } ++ return err; ++} ++ ++struct vnotifier_block quota_notifier_block = { ++ .notifier_call = quota_notifier_call, ++ .priority = INT_MAX, ++}; ++ ++/* ---------------------------------------------------------------------- ++ * ++ * Init/exit procedures ++ * ++ * ---------------------------------------------------------------------*/ ++ ++static int __init vzquota_init(void) ++{ ++ int err; ++ ++ if ((err = vzquota_cache_init()) != 0) ++ goto out_cache; ++ ++ if ((err = vzquota_proc_init()) != 0) ++ goto out_proc; ++ ++#ifdef CONFIG_VZ_QUOTA_UGID ++ if ((err = vzquota_ugid_init()) != 0) ++ goto out_ugid; ++#endif ++ ++ init_MUTEX(&vz_quota_sem); ++ vzioctl_register(&vzdqcalls); ++ virtinfo_notifier_register(VITYPE_QUOTA, "a_notifier_block); ++#if defined(CONFIG_VZ_QUOTA_UGID) && defined(CONFIG_PROC_FS) ++ vzaquota_init(); ++#endif ++ ++ return 0; ++ ++#ifdef CONFIG_VZ_QUOTA_UGID ++out_ugid: ++ vzquota_proc_release(); ++#endif ++out_proc: ++ vzquota_cache_release(); ++out_cache: ++ return err; ++} ++ ++#if defined(VZ_QUOTA_UNLOAD) ++static void __exit vzquota_release(void) ++{ ++ virtinfo_notifier_unregister(VITYPE_QUOTA, "a_notifier_block); ++ vzioctl_unregister(&vzdqcalls); ++#ifdef CONFIG_VZ_QUOTA_UGID ++#ifdef CONFIG_PROC_FS ++ vzaquota_fini(); ++#endif ++ vzquota_ugid_release(); ++#endif ++ vzquota_proc_release(); ++ vzquota_cache_release(); ++} ++#endif ++ ++MODULE_AUTHOR("SWsoft "); ++MODULE_DESCRIPTION("Virtuozzo Disk Quota"); ++MODULE_LICENSE("GPL v2"); ++ ++module_init(vzquota_init) ++#if defined(VZ_QUOTA_UNLOAD) ++module_exit(vzquota_release) ++#endif +Index: kernel/grsecurity/Kconfig +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/Kconfig 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,129 @@ ++# ++# grecurity configuration ++# ++ ++menu "Grsecurity" ++ ++config GRKERNSEC ++ bool "Grsecurity" ++ help ++ If you say Y here, you will be able to configure many features ++ that will enhance the security of your system. It is highly ++ recommended that you say Y here and read through the help ++ for each option so that you fully understand the features and ++ can evaluate their usefulness for your machine. ++ ++menu "Executable Protections" ++depends on GRKERNSEC ++ ++config GRKERNSEC_TPE ++ bool "Trusted Path Execution (TPE)" ++ help ++ If you say Y here, you will be able to choose a gid to add to the ++ supplementary groups of users you want to mark as "untrusted." ++ These users will not be able to execute any files that are not in ++ root-owned directories writable only by root. If the sysctl option ++ is enabled, a sysctl option with name "tpe" is created. ++ ++config GRKERNSEC_TPE_ALL ++ bool "Partially restrict non-root users" ++ depends on GRKERNSEC_TPE ++ help ++ If you say Y here, All non-root users other than the ones in the ++ group specified in the main TPE option will only be allowed to ++ execute files in directories they own that are not group or ++ world-writable, or in directories owned by root and writable only by ++ root. If the sysctl option is enabled, a sysctl option with name ++ "tpe_restrict_all" is created. ++ ++config GRKERNSEC_TPE_INVERT ++ bool "Invert GID option" ++ depends on GRKERNSEC_TPE ++ help ++ If you say Y here, the group you specify in the TPE configuration will ++ decide what group TPE restrictions will be *disabled* for. This ++ option is useful if you want TPE restrictions to be applied to most ++ users on the system. ++ ++config GRKERNSEC_TPE_GID ++ int "GID for untrusted users" ++ depends on GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT ++ default 1005 ++ help ++ If you have selected the "Invert GID option" above, setting this ++ GID determines what group TPE restrictions will be *disabled* for. ++ If you have not selected the "Invert GID option" above, setting this ++ GID determines what group TPE restrictions will be *enabled* for. ++ If the sysctl option is enabled, a sysctl option with name "tpe_gid" ++ is created. ++ ++config GRKERNSEC_TPE_GID ++ int "GID for trusted users" ++ depends on GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT ++ default 1005 ++ help ++ If you have selected the "Invert GID option" above, setting this ++ GID determines what group TPE restrictions will be *disabled* for. ++ If you have not selected the "Invert GID option" above, setting this ++ GID determines what group TPE restrictions will be *enabled* for. ++ If the sysctl option is enabled, a sysctl option with name "tpe_gid" ++ is created. ++ ++endmenu ++menu "Sysctl support" ++depends on GRKERNSEC && SYSCTL ++ ++config GRKERNSEC_SYSCTL ++ bool "Sysctl support" ++ help ++ If you say Y here, you will be able to change the options that ++ grsecurity runs with at bootup, without having to recompile your ++ kernel. You can echo values to files in /proc/sys/kernel/grsecurity ++ to enable (1) or disable (0) various features. All the sysctl entries ++ are mutable until the "grsec_lock" entry is set to a non-zero value. ++ All features enabled in the kernel configuration are disabled at boot ++ if you do not say Y to the "Turn on features by default" option. ++ All options should be set at startup, and the grsec_lock entry should ++ be set to a non-zero value after all the options are set. ++ *THIS IS EXTREMELY IMPORTANT* ++ ++config GRKERNSEC_SYSCTL_ON ++ bool "Turn on features by default" ++ depends on GRKERNSEC_SYSCTL ++ help ++ If you say Y here, instead of having all features enabled in the ++ kernel configuration disabled at boot time, the features will be ++ enabled at boot time. It is recommended you say Y here unless ++ there is some reason you would want all sysctl-tunable features to ++ be disabled by default. As mentioned elsewhere, it is important ++ to enable the grsec_lock entry once you have finished modifying ++ the sysctl entries. ++ ++endmenu ++ ++menu "Logging Options" ++depends on GRKERNSEC ++ ++config GRKERNSEC_FLOODTIME ++ int "Seconds in between log messages (minimum)" ++ default 10 ++ help ++ This option allows you to enforce the number of seconds between ++ grsecurity log messages. The default should be suitable for most ++ people, however, if you choose to change it, choose a value small enough ++ to allow informative logs to be produced, but large enough to ++ prevent flooding. ++ ++config GRKERNSEC_FLOODBURST ++ int "Number of messages in a burst (maximum)" ++ default 4 ++ help ++ This option allows you to choose the maximum number of messages allowed ++ within the flood time interval you chose in a separate option. The ++ default should be suitable for most people, however if you find that ++ many of your logs are being interpreted as flooding, you may want to ++ raise this value. ++ ++endmenu ++ ++endmenu +Index: kernel/grsecurity/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/Makefile 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,15 @@ ++# grsecurity's ACL system was originally written in 2001 by Michael Dalton ++# during 2001-2005 it has been completely redesigned by Brad Spengler ++# into an RBAC system ++# ++# All code in this directory and various hooks inserted throughout the kernel ++# are copyright Brad Spengler, and released under the GPL v2 or higher ++ ++obj-y = grsec_tpe.o grsec_sysctl.o ++ ++obj-$(CONFIG_GRKERNSEC) += grsec_init.o gracl.o grsec_log.o ++ ++ifndef CONFIG_GRKERNSEC ++obj-y += grsec_disabled.o ++endif ++ +Index: kernel/grsecurity/gracl.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/gracl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,137 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++extern char *gr_shared_page[4]; ++ ++static char * ++gen_full_path(struct dentry *dentry, struct vfsmount *vfsmnt, ++ struct dentry *root, struct vfsmount *rootmnt, char *buf, int buflen) ++{ ++ char *end = buf + buflen; ++ char *retval; ++ int namelen = 0; ++ ++ *--end = '\0'; ++ ++ retval = end - 1; ++ *retval = '/'; ++ ++ if (dentry == root && vfsmnt == rootmnt) ++ return retval; ++ if (dentry != vfsmnt->mnt_root && !IS_ROOT(dentry)) { ++ namelen = strlen(dentry->d_name.name); ++ buflen -= namelen; ++ if (buflen < 2) ++ goto err; ++ if (dentry->d_parent != root || vfsmnt != rootmnt) ++ buflen--; ++ } ++ ++ retval = __d_path(dentry->d_parent, vfsmnt, root, rootmnt, buf, buflen); ++ if (unlikely(IS_ERR(retval))) ++err: ++ retval = strcpy(buf, ""); ++ else if (namelen != 0) { ++ end = buf + buflen - 1; // accounts for null termination ++ if (dentry->d_parent != root || vfsmnt != rootmnt) ++ *end++ = '/'; // accounted for above with buflen-- ++ memcpy(end, dentry->d_name.name, namelen); ++ } ++ ++ return retval; ++} ++ ++static char * ++d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt, ++ char *buf, int buflen) ++{ ++ char *res; ++ struct dentry *root; ++ struct vfsmount *rootmnt; ++ ++ /* we can't use real_root, real_root_mnt, because they belong only to the RBAC system */ ++#ifdef CONFIG_VE ++ /* Don't use child_reaper, because it's VE0 process */ ++ root = dget(get_exec_env()->fs_root); ++ rootmnt = mntget(get_exec_env()->fs_rootmnt); ++#else ++ read_lock(&child_reaper->fs->lock); ++ root = dget(child_reaper->fs->root); ++ rootmnt = mntget(child_reaper->fs->rootmnt); ++ read_unlock(&child_reaper->fs->lock); ++#endif ++ ++ spin_lock(&dcache_lock); ++ res = gen_full_path((struct dentry *)dentry, (struct vfsmount *)vfsmnt, root, rootmnt, buf, buflen); ++ spin_unlock(&dcache_lock); ++ ++ dput(root); ++ mntput(rootmnt); ++ return res; ++} ++ ++char * ++gr_to_filename(const struct dentry *dentry, const struct vfsmount *mnt) ++{ ++ return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()), ++ PAGE_SIZE); ++} ++ ++char * ++gr_to_filename2(const struct dentry *dentry, const struct vfsmount *mnt) ++{ ++ return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[2], smp_processor_id()), ++ PAGE_SIZE); ++} ++ ++char * ++gr_to_filename3(const struct dentry *dentry, const struct vfsmount *mnt) ++{ ++ return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[3], smp_processor_id()), ++ PAGE_SIZE); ++} ++ ++int ++gr_acl_handle_mmap(const struct file *file, const unsigned long prot) ++{ ++ if (unlikely(!file || !(prot & PROT_EXEC))) ++ return 1; ++ ++ if (!gr_tpe_allow(file)) ++ return 0; ++ return 1; ++} ++ ++int ++gr_acl_handle_mprotect(const struct file *file, const unsigned long prot) ++{ ++ if (unlikely(!file || !(prot & PROT_EXEC))) ++ return 1; ++ ++ if (!gr_tpe_allow(file)) ++ return 0; ++ return 1; ++} +Index: kernel/grsecurity/grsec_disabled.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/grsec_disabled.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,39 @@ ++#include ++#include ++#include ++ ++void ++gr_copy_label(struct task_struct *tsk) ++{ ++ return; ++} ++ ++int ++gr_acl_handle_mmap(const struct file *file, const unsigned long prot, ++ unsigned int *vm_flags) ++{ ++ return 1; ++} ++ ++void ++grsecurity_init(void) ++{ ++ return; ++} ++ ++void ++gr_acl_handle_exit(void) ++{ ++ return; ++} ++ ++int ++gr_acl_handle_mprotect(const struct file *file, const unsigned long prot) ++{ ++ return 1; ++} ++ ++void grsecurity_setup(void) ++{ ++} ++EXPORT_SYMBOL(grsecurity_setup); +Index: kernel/grsecurity/grsec_init.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/grsec_init.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,89 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_VE ++#include ++#else ++int grsec_enable_tpe; ++int grsec_tpe_gid; ++int grsec_enable_tpe_all; ++int grsec_lock; ++#endif ++ ++spinlock_t grsec_alert_lock = SPIN_LOCK_UNLOCKED; ++ ++unsigned long grsec_alert_wtime = 0; ++unsigned long grsec_alert_fyet = 0; ++ ++spinlock_t grsec_audit_lock = SPIN_LOCK_UNLOCKED; ++ ++char *gr_shared_page[4]; ++ ++char *gr_alert_log_fmt; ++char *gr_audit_log_fmt; ++ ++char *gr_alert_log_buf; ++char *gr_audit_log_buf; ++ ++void grsecurity_setup(void) ++{ ++#if !defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_SYSCTL_ON) ++#ifndef CONFIG_GRKERNSEC_SYSCTL ++ grsec_lock = 1; ++#endif ++#ifdef CONFIG_GRKERNSEC_TPE ++ grsec_enable_tpe = 1; ++ grsec_tpe_gid = CONFIG_GRKERNSEC_TPE_GID; ++#ifdef CONFIG_GRKERNSEC_TPE_ALL ++ grsec_enable_tpe_all = 1; ++#endif ++#endif ++#endif ++} ++EXPORT_SYMBOL(grsecurity_setup); ++ ++void ++grsecurity_init(void) ++{ ++ int j; ++ /* create the per-cpu shared pages */ ++ ++ for (j = 0; j < 4; j++) { ++ gr_shared_page[j] = (char *)__alloc_percpu(PAGE_SIZE); ++ if (gr_shared_page[j] == NULL) { ++ panic("Unable to allocate grsecurity shared page"); ++ return; ++ } ++ } ++ ++ /* allocate log buffers */ ++ gr_alert_log_fmt = kmalloc(512, GFP_KERNEL); ++ if (!gr_alert_log_fmt) { ++ panic("Unable to allocate grsecurity alert log format buffer"); ++ return; ++ } ++ gr_audit_log_fmt = kmalloc(512, GFP_KERNEL); ++ if (!gr_audit_log_fmt) { ++ panic("Unable to allocate grsecurity audit log format buffer"); ++ return; ++ } ++ gr_alert_log_buf = (char *) get_zeroed_page(GFP_KERNEL); ++ if (!gr_alert_log_buf) { ++ panic("Unable to allocate grsecurity alert log buffer"); ++ return; ++ } ++ gr_audit_log_buf = (char *) get_zeroed_page(GFP_KERNEL); ++ if (!gr_audit_log_buf) { ++ panic("Unable to allocate grsecurity audit log buffer"); ++ return; ++ } ++ grsecurity_setup(); ++ ++ return; ++} +Index: kernel/grsecurity/grsec_log.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/grsec_log.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,122 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define BEGIN_LOCKS(x) \ ++ if (x != GR_DO_AUDIT) \ ++ spin_lock(&grsec_alert_lock); \ ++ else \ ++ spin_lock(&grsec_audit_lock) ++ ++#define END_LOCKS(x) \ ++ if (x != GR_DO_AUDIT) \ ++ spin_unlock(&grsec_alert_lock); \ ++ else \ ++ spin_unlock(&grsec_audit_lock); ++ ++enum { ++ FLOODING, ++ NO_FLOODING ++}; ++ ++extern char *gr_alert_log_fmt; ++extern char *gr_audit_log_fmt; ++extern char *gr_alert_log_buf; ++extern char *gr_audit_log_buf; ++ ++static int gr_log_start(int audit) ++{ ++ char *loglevel = (audit == GR_DO_AUDIT) ? KERN_INFO : KERN_ALERT; ++ char *fmt = (audit == GR_DO_AUDIT) ? gr_audit_log_fmt : gr_alert_log_fmt; ++ char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf; ++ ++ if (audit == GR_DO_AUDIT) ++ goto set_fmt; ++ ++ if (!grsec_alert_wtime || jiffies - grsec_alert_wtime > CONFIG_GRKERNSEC_FLOODTIME * HZ) { ++ grsec_alert_wtime = jiffies; ++ grsec_alert_fyet = 0; ++ } else if ((jiffies - grsec_alert_wtime < CONFIG_GRKERNSEC_FLOODTIME * HZ) && (grsec_alert_fyet < CONFIG_GRKERNSEC_FLOODBURST)) { ++ grsec_alert_fyet++; ++ } else if (grsec_alert_fyet == CONFIG_GRKERNSEC_FLOODBURST) { ++ grsec_alert_wtime = jiffies; ++ grsec_alert_fyet++; ++ ve_printk(VE_LOG, KERN_ALERT "grsec: more alerts, logging disabled for %d seconds\n", CONFIG_GRKERNSEC_FLOODTIME); ++ return FLOODING; ++ } else return FLOODING; ++ ++set_fmt: ++ memset(buf, 0, PAGE_SIZE); ++ sprintf(fmt, "%s%s", loglevel, "grsec: "); ++ strcpy(buf, fmt); ++ ++ return NO_FLOODING; ++} ++ ++static void gr_log_middle(int audit, const char *msg, va_list ap) ++{ ++ char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf; ++ unsigned int len = strlen(buf); ++ ++ vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap); ++ ++ return; ++} ++ ++static void gr_log_middle_varargs(int audit, const char *msg, ...) ++{ ++ char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf; ++ unsigned int len = strlen(buf); ++ va_list ap; ++ ++ va_start(ap, msg); ++ vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap); ++ va_end(ap); ++ ++ return; ++} ++ ++static void gr_log_end(int audit) ++{ ++ char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf; ++ unsigned int len = strlen(buf); ++ ++ snprintf(buf + len, PAGE_SIZE - len - 1, DEFAULTSECMSG, DEFAULTSECARGS(current)); ++ ve_printk(VE_LOG, "%s\n", buf); ++ ++ return; ++} ++ ++void gr_log_varargs(int audit, const char *msg, int argtypes, ...) ++{ ++ int logtype; ++ struct dentry *dentry; ++ struct vfsmount *mnt; ++ va_list ap; ++ ++ BEGIN_LOCKS(audit); ++ logtype = gr_log_start(audit); ++ if (logtype == FLOODING) { ++ END_LOCKS(audit); ++ return; ++ } ++ va_start(ap, argtypes); ++ switch (argtypes) { ++ /* ++ * Only GR_FILENAME is now supported in VZ ++ */ ++ case GR_FILENAME: ++ dentry = va_arg(ap, struct dentry *); ++ mnt = va_arg(ap, struct vfsmount *); ++ gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt)); ++ break; ++ default: ++ gr_log_middle(audit, msg, ap); ++ } ++ va_end(ap); ++ gr_log_end(audit); ++ END_LOCKS(audit); ++} +Index: kernel/grsecurity/grsec_sysctl.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/grsec_sysctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,85 @@ ++#include ++#include ++#include ++#include ++#include ++ ++int ++gr_handle_sysctl_mod(const char *dirname, const char *name, const int op) ++{ ++#ifdef CONFIG_GRKERNSEC_SYSCTL ++ if (!strcmp(dirname, "grsecurity") && grsec_lock && (op & 002)) { ++ gr_log_str(GR_DONT_AUDIT, GR_SYSCTL_MSG, name); ++ return -EACCES; ++ } ++#endif ++ return 0; ++} ++ ++#ifdef CONFIG_GRKERNSEC_SYSCTL ++static int grsec_proc_dointvec(ctl_table *ctl, int write, struct file * filp, ++ void __user *buffer, size_t *lenp, loff_t *ppos) ++{ ++ int ret; ++#ifdef CONFIG_VE ++ struct ctl_table fake_table; ++ struct ve_struct *env = get_exec_env(); ++ ++ if (!ve_is_super(env)) { ++ memcpy(&fake_table, ctl, sizeof(struct ctl_table)); ++ fake_table.data = (char *)((unsigned long)&env->grsec + ++ (unsigned long)ctl->data - ++ (unsigned long)&get_ve0()->grsec); ++ ctl = &fake_table; ++ } ++#endif ++ ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); ++ return ret; ++} ++ ++enum {GS_TPE = 1, GS_TPE_GID, GS_TPE_ALL, GS_LOCK}; ++ ++ctl_table grsecurity_table[] = { ++#ifdef CONFIG_GRKERNSEC_TPE ++ { ++ .ctl_name = GS_TPE, ++ .procname = "tpe", ++ .data = &ve0.grsec.enable_tpe, ++ .maxlen = sizeof(int), ++ .mode = 0600, ++ .proc_handler = &grsec_proc_dointvec, ++ .virt_handler = 1, ++ }, ++ { ++ .ctl_name = GS_TPE_GID, ++ .procname = "tpe_gid", ++ .data = &ve0.grsec.tpe_gid, ++ .maxlen = sizeof(int), ++ .mode = 0600, ++ .proc_handler = &grsec_proc_dointvec, ++ .virt_handler = 1, ++ }, ++#endif ++#ifdef CONFIG_GRKERNSEC_TPE_ALL ++ { ++ .ctl_name = GS_TPE_ALL, ++ .procname = "tpe_restrict_all", ++ .data = &ve0.grsec.enable_tpe_all, ++ .maxlen = sizeof(int), ++ .mode = 0600, ++ .proc_handler = &grsec_proc_dointvec, ++ .virt_handler = 1, ++ }, ++#endif ++ { ++ .ctl_name = GS_LOCK, ++ .procname = "grsec_lock", ++ .data = &ve0.grsec.lock, ++ .maxlen = sizeof(int), ++ .mode = 0600, ++ .proc_handler = &grsec_proc_dointvec, ++ .virt_handler = 1, ++ }, ++ { .ctl_name = 0 } ++}; ++#endif +Index: kernel/grsecurity/grsec_tpe.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/grsecurity/grsec_tpe.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,37 @@ ++#include ++#include ++#include ++#include ++#include ++ ++extern int gr_acl_tpe_check(void); ++ ++int ++gr_tpe_allow(const struct file *file) ++{ ++#ifdef CONFIG_GRKERNSEC_TPE ++ struct inode *inode = file->f_dentry->d_parent->d_inode; ++ ++ if (current->uid && ((grsec_enable_tpe && ++#ifdef CONFIG_GRKERNSEC_TPE_INVERT ++ !in_group_p(grsec_tpe_gid) ++#else ++ in_group_p(grsec_tpe_gid) ++#endif ++ )) && ++ (inode->i_uid || (!inode->i_uid && ((inode->i_mode & S_IWGRP) || ++ (inode->i_mode & S_IWOTH))))) { ++ gr_log_fs_generic(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, file->f_dentry, file->f_vfsmnt); ++ return 0; ++ } ++#ifdef CONFIG_GRKERNSEC_TPE_ALL ++ if (current->uid && grsec_enable_tpe && grsec_enable_tpe_all && ++ ((inode->i_uid && (inode->i_uid != current->uid)) || ++ (inode->i_mode & S_IWGRP) || (inode->i_mode & S_IWOTH))) { ++ gr_log_fs_generic(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, file->f_dentry, file->f_vfsmnt); ++ return 0; ++ } ++#endif ++#endif ++ return 1; ++} +Index: kernel/include/asm-ia64/mman.h +=================================================================== +--- kernel.orig/include/asm-ia64/mman.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/include/asm-ia64/mman.h 2008-11-24 15:47:46.000000000 +0100 +@@ -18,6 +18,7 @@ + #define MAP_NORESERVE 0x04000 /* don't check for reservations */ + #define MAP_POPULATE 0x08000 /* populate (prefault) pagetables */ + #define MAP_NONBLOCK 0x10000 /* do not block on IO */ ++#define MAP_EXECPRIO 0x20000 /* soft ubc charge */ + + #define MCL_CURRENT 1 /* lock all current mappings */ + #define MCL_FUTURE 2 /* lock all future mappings */ +Index: kernel/include/asm-ia64/pgalloc.h +=================================================================== +--- kernel.orig/include/asm-ia64/pgalloc.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/include/asm-ia64/pgalloc.h 2008-11-24 15:47:46.000000000 +0100 +@@ -20,11 +20,13 @@ + #include + #include + ++#include ++ + #include + + static inline pgd_t *pgd_alloc(struct mm_struct *mm) + { +- return quicklist_alloc(0, GFP_KERNEL, NULL); ++ return quicklist_alloc(0, GFP_KERNEL_UBC|__GFP_SOFT_UBC, NULL); + } + + static inline void pgd_free(pgd_t * pgd) +@@ -41,7 +43,7 @@ + + static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) + { +- return quicklist_alloc(0, GFP_KERNEL, NULL); ++ return quicklist_alloc(0, GFP_KERNEL_UBC|__GFP_SOFT_UBC, NULL); + } + + static inline void pud_free(pud_t * pud) +@@ -59,7 +61,7 @@ + + static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr) + { +- return quicklist_alloc(0, GFP_KERNEL, NULL); ++ return quicklist_alloc(0, GFP_KERNEL_UBC|__GFP_SOFT_UBC, NULL); + } + + static inline void pmd_free(pmd_t * pmd) +@@ -84,7 +86,7 @@ + static inline struct page *pte_alloc_one(struct mm_struct *mm, + unsigned long addr) + { +- void *pg = quicklist_alloc(0, GFP_KERNEL, NULL); ++ void *pg = quicklist_alloc(0, GFP_KERNEL_UBC|__GFP_SOFT_UBC, NULL); + return pg ? virt_to_page(pg) : NULL; + } + +Index: kernel/include/asm-ia64/processor.h +=================================================================== +--- kernel.orig/include/asm-ia64/processor.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/include/asm-ia64/processor.h 2008-11-24 15:47:46.000000000 +0100 +@@ -297,7 +297,7 @@ + regs->loadrs = 0; \ + regs->r8 = get_dumpable(current->mm); /* set "don't zap registers" flag */ \ + regs->r12 = new_sp - 16; /* allocate 16 byte scratch area */ \ +- if (unlikely(!get_dumpable(current->mm))) { \ ++ if (unlikely(!get_dumpable(current->mm) || !current->mm->vps_dumpable)) { \ + /* \ + * Zap scratch regs to avoid leaking bits between processes with different \ + * uid/privileges. \ +Index: kernel/include/asm-ia64/unistd.h +=================================================================== +--- kernel.orig/include/asm-ia64/unistd.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/include/asm-ia64/unistd.h 2008-11-24 15:47:46.000000000 +0100 +@@ -299,11 +299,17 @@ + #define __NR_signalfd 1307 + #define __NR_timerfd 1308 + #define __NR_eventfd 1309 ++#define __NR_getluid 1505 ++#define __NR_setluid 1506 ++#define __NR_setublimit 1507 ++#define __NR_ubstat 1508 ++#define __NR_lchmod 1509 ++#define __NR_lutime 1510 + + #ifdef __KERNEL__ + + +-#define NR_syscalls 286 /* length of syscall table */ ++#define NR_syscalls 487 /* length of syscall table */ + + /* + * The following defines stop scripts/checksyscalls.sh from complaining about +Index: kernel/include/asm-powerpc/elf.h +=================================================================== +--- kernel.orig/include/asm-powerpc/elf.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/include/asm-powerpc/elf.h 2008-11-24 15:47:46.000000000 +0100 +@@ -280,7 +280,8 @@ + #define ARCH_HAS_SETUP_ADDITIONAL_PAGES + struct linux_binprm; + extern int arch_setup_additional_pages(struct linux_binprm *bprm, +- int executable_stack); ++ int executable_stack, ++ unsigned long map_address); + #define VDSO_AUX_ENT(a,b) NEW_AUX_ENT(a,b); + + /* +Index: kernel/include/asm-powerpc/mman.h +=================================================================== +--- kernel.orig/include/asm-powerpc/mman.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/include/asm-powerpc/mman.h 2008-11-24 15:47:46.000000000 +0100 +@@ -23,5 +23,6 @@ + + #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */ + #define MAP_NONBLOCK 0x10000 /* do not block on IO */ ++#define MAP_EXECPRIO 0x20000 /* do soft ubc charge */ + + #endif /* _ASM_POWERPC_MMAN_H */ +Index: kernel/include/asm-powerpc/pgalloc-64.h +=================================================================== +--- kernel.orig/include/asm-powerpc/pgalloc-64.h 2008-11-18 01:19:46.000000000 +0100 ++++ kernel/include/asm-powerpc/pgalloc-64.h 2008-11-24 15:47:46.000000000 +0100 +@@ -22,7 +22,8 @@ + + static inline pgd_t *pgd_alloc(struct mm_struct *mm) + { +- return kmem_cache_alloc(pgtable_cache[PGD_CACHE_NUM], GFP_KERNEL); ++ return kmem_cache_alloc(pgtable_cache[PGD_CACHE_NUM], ++ GFP_KERNEL_UBC | __GFP_SOFT_UBC); + } + + static inline void pgd_free(pgd_t *pgd) +@@ -37,7 +38,7 @@ + static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) + { + return kmem_cache_alloc(pgtable_cache[PUD_CACHE_NUM], +- GFP_KERNEL|__GFP_REPEAT); ++ GFP_KERNEL_UBC|__GFP_SOFT_UBC|__GFP_REPEAT); + } + + static inline void pud_free(pud_t *pud) +@@ -81,16 +82,21 @@ + kmem_cache_free(pgtable_cache[PMD_CACHE_NUM], pmd); + } + ++static inline pte_t *do_pte_alloc(gfp_t flags) ++{ ++ return (pte_t *)__get_free_page(flags); ++} ++ + static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, + unsigned long address) + { +- return (pte_t *)__get_free_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO); ++ return do_pte_alloc(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO); + } + + static inline struct page *pte_alloc_one(struct mm_struct *mm, + unsigned long address) + { +- pte_t *pte = pte_alloc_one_kernel(mm, address); ++ pte_t *pte = do_pte_alloc(GFP_KERNEL_UBC | __GFP_SOFT_UBC | __GFP_ZERO); + return pte ? virt_to_page(pte) : NULL; + } + +Index: kernel/include/asm-powerpc/systbl.h +=================================================================== +--- kernel.orig/include/asm-powerpc/systbl.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-powerpc/systbl.h 2008-11-24 15:47:46.000000000 +0100 +@@ -313,3 +313,8 @@ + SYSCALL_SPU(eventfd) + COMPAT_SYS_SPU(sync_file_range2) + COMPAT_SYS(fallocate) ++SYS_SKIP(302, 409) ++SYSCALL(getluid) /* 410 */ ++SYSCALL(setluid) ++SYSCALL(setublimit) ++SYSCALL(ubstat) +Index: kernel/include/asm-powerpc/unistd.h +=================================================================== +--- kernel.orig/include/asm-powerpc/unistd.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-powerpc/unistd.h 2008-11-24 15:47:46.000000000 +0100 +@@ -333,9 +333,14 @@ + #define __NR_sync_file_range2 308 + #define __NR_fallocate 309 + ++#define __NR_getluid 410 ++#define __NR_setluid 411 ++#define __NR_setublimit 412 ++#define __NR_ubstat 413 ++ + #ifdef __KERNEL__ + +-#define __NR_syscalls 310 ++#define __NR_syscalls 414 + + #define __NR__exit __NR_exit + #define NR_syscalls __NR_syscalls +Index: kernel/include/asm-sparc64/mman.h +=================================================================== +--- kernel.orig/include/asm-sparc64/mman.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-sparc64/mman.h 2008-11-24 15:47:46.000000000 +0100 +@@ -21,6 +21,7 @@ + + #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */ + #define MAP_NONBLOCK 0x10000 /* do not block on IO */ ++#define MAP_EXECPRIO 0x20000 /* do soft ubc charge */ + + /* XXX Need to add flags to SunOS's mctl, mlockall, and madvise system + * XXX calls. +Index: kernel/include/asm-sparc64/pgalloc.h +=================================================================== +--- kernel.orig/include/asm-sparc64/pgalloc.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-sparc64/pgalloc.h 2008-11-24 15:47:46.000000000 +0100 +@@ -17,7 +17,7 @@ + + static inline pgd_t *pgd_alloc(struct mm_struct *mm) + { +- return quicklist_alloc(0, GFP_KERNEL, NULL); ++ return quicklist_alloc(0, GFP_KERNEL_UBC, NULL); + } + + static inline void pgd_free(pgd_t *pgd) +@@ -29,7 +29,7 @@ + + static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr) + { +- return quicklist_alloc(0, GFP_KERNEL, NULL); ++ return quicklist_alloc(0, GFP_KERNEL_UBC|__GFP_REPEAT, NULL); + } + + static inline void pmd_free(pmd_t *pmd) +@@ -46,7 +46,7 @@ + static inline struct page *pte_alloc_one(struct mm_struct *mm, + unsigned long address) + { +- void *pg = quicklist_alloc(0, GFP_KERNEL, NULL); ++ void *pg = quicklist_alloc(0, GFP_KERNEL_UBC|__GFP_REPEAT, NULL); + return pg ? virt_to_page(pg) : NULL; + } + +Index: kernel/include/asm-sparc64/thread_info.h +=================================================================== +--- kernel.orig/include/asm-sparc64/thread_info.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-sparc64/thread_info.h 2008-11-24 15:47:46.000000000 +0100 +@@ -162,14 +162,14 @@ + struct thread_info *ret; \ + \ + ret = (struct thread_info *) \ +- __get_free_pages(GFP_KERNEL, __THREAD_INFO_ORDER); \ ++ __get_free_pages(GFP_KERNEL_UBC, __THREAD_INFO_ORDER);\ + if (ret) \ + memset(ret, 0, PAGE_SIZE<<__THREAD_INFO_ORDER); \ + ret; \ + }) + #else + #define alloc_thread_info(tsk) \ +- ((struct thread_info *)__get_free_pages(GFP_KERNEL, __THREAD_INFO_ORDER)) ++ ((struct thread_info *)__get_free_pages(GFP_KERNEL_UBC, __THREAD_INFO_ORDER)) + #endif + + #define free_thread_info(ti) \ +@@ -236,6 +236,7 @@ + #define TIF_ABI_PENDING 12 + #define TIF_MEMDIE 13 + #define TIF_POLLING_NRFLAG 14 ++#define TIF_FREEZE 15 /* Freeze request (atomic PF_FREEZE) */ + + #define _TIF_SYSCALL_TRACE (1< +-# define STACK_TOP TASK_SIZE ++# define STACK_TOP (TASK_SIZE - PAGE_SIZE) /* +1 page for vdso */ + # ifdef CONFIG_X86_32 + # define STACK_TOP_MAX STACK_TOP + # else +Index: kernel/include/asm-x86/elf.h +=================================================================== +--- kernel.orig/include/asm-x86/elf.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/elf.h 2008-11-24 15:47:46.000000000 +0100 +@@ -262,7 +262,7 @@ + /* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */ + + #define ARCH_DLINFO \ +-do if (vdso_enabled) { \ ++do if (vdso_enabled && sysctl_at_vsyscall) { \ + NEW_AUX_ENT(AT_SYSINFO, VDSO_ENTRY); \ + NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_CURRENT_BASE); \ + } while (0) +@@ -283,7 +283,8 @@ + + #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1 + extern int arch_setup_additional_pages(struct linux_binprm *bprm, +- int executable_stack); ++ int executable_stack, ++ unsigned long map_address); + + #endif /* __KERNEL__ */ + +Index: kernel/include/asm-x86/ia32.h +=================================================================== +--- kernel.orig/include/asm-x86/ia32.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/ia32.h 2008-11-24 15:47:46.000000000 +0100 +@@ -156,7 +156,7 @@ + char f_fpack[6]; + }; + +-#define IA32_STACK_TOP IA32_PAGE_OFFSET ++#define IA32_STACK_TOP (IA32_PAGE_OFFSET - PAGE_SIZE * 2) + + #ifdef __KERNEL__ + struct user_desc; +Index: kernel/include/asm-x86/mman.h +=================================================================== +--- kernel.orig/include/asm-x86/mman.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/mman.h 2008-11-24 15:47:46.000000000 +0100 +@@ -12,6 +12,7 @@ + #define MAP_NORESERVE 0x4000 /* don't check for reservations */ + #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */ + #define MAP_NONBLOCK 0x10000 /* do not block on IO */ ++#define MAP_EXECPRIO 0x20000 /* soft ubc charge */ + + #define MCL_CURRENT 1 /* lock all current mappings */ + #define MCL_FUTURE 2 /* lock all future mappings */ +Index: kernel/include/asm-x86/nmi_32.h +=================================================================== +--- kernel.orig/include/asm-x86/nmi_32.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/nmi_32.h 2008-11-24 15:47:46.000000000 +0100 +@@ -25,6 +25,10 @@ + extern int reserve_evntsel_nmi(unsigned int); + extern void release_evntsel_nmi(unsigned int); + ++typedef int (*nmi_callback_t)(struct pt_regs * regs, int cpu); ++void set_nmi_ipi_callback(nmi_callback_t callback); ++void unset_nmi_ipi_callback(void); ++ + extern void setup_apic_nmi_watchdog (void *); + extern void stop_apic_nmi_watchdog (void *); + extern void disable_timer_nmi_watchdog(void); +@@ -33,7 +37,7 @@ + + extern atomic_t nmi_active; + extern unsigned int nmi_watchdog; +-#define NMI_DISABLED -1 ++#define NMI_DISABLED -1 + #define NMI_NONE 0 + #define NMI_IO_APIC 1 + #define NMI_LOCAL_APIC 2 +Index: kernel/include/asm-x86/nmi_64.h +=================================================================== +--- kernel.orig/include/asm-x86/nmi_64.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/nmi_64.h 2008-11-24 15:47:46.000000000 +0100 +@@ -35,6 +35,11 @@ + } + + #endif /* CONFIG_PM */ ++ ++typedef int (*nmi_callback_t)(struct pt_regs * regs, int cpu); ++void set_nmi_ipi_callback(nmi_callback_t callback); ++void unset_nmi_ipi_callback(void); ++ + + extern void default_do_nmi(struct pt_regs *); + extern void die_nmi(char *str, struct pt_regs *regs, int do_panic); +Index: kernel/include/asm-x86/pgalloc_64.h +=================================================================== +--- kernel.orig/include/asm-x86/pgalloc_64.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/pgalloc_64.h 2008-11-24 15:47:46.000000000 +0100 +@@ -25,12 +25,14 @@ + + static inline pmd_t *pmd_alloc_one (struct mm_struct *mm, unsigned long addr) + { +- return (pmd_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT); ++ return (pmd_t *)get_zeroed_page(GFP_KERNEL_UBC|__GFP_REPEAT| ++ __GFP_SOFT_UBC); + } + + static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) + { +- return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT); ++ return (pud_t *)get_zeroed_page(GFP_KERNEL_UBC|__GFP_REPEAT| ++ __GFP_SOFT_UBC); + } + + static inline void pud_free (pud_t *pud) +@@ -60,7 +62,8 @@ + static inline pgd_t *pgd_alloc(struct mm_struct *mm) + { + unsigned boundary; +- pgd_t *pgd = (pgd_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT); ++ pgd_t *pgd = (pgd_t *)__get_free_page(GFP_KERNEL_UBC|__GFP_REPEAT| ++ __GFP_SOFT_UBC); + if (!pgd) + return NULL; + pgd_list_add(pgd); +@@ -91,7 +94,8 @@ + + static inline struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) + { +- void *p = (void *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT); ++ void *p = (void *)get_zeroed_page(GFP_KERNEL_UBC|__GFP_REPEAT| ++ __GFP_SOFT_UBC); + if (!p) + return NULL; + return virt_to_page(p); +Index: kernel/include/asm-x86/processor_64.h +=================================================================== +--- kernel.orig/include/asm-x86/processor_64.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/processor_64.h 2008-11-24 15:47:46.000000000 +0100 +@@ -143,7 +143,7 @@ + /* This decides where the kernel will search for a free chunk of vm + * space during mmap's. + */ +-#define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? 0xc0000000 : 0xFFFFe000) ++#define IA32_PAGE_OFFSET 0xc0000000 + + #define TASK_SIZE (test_thread_flag(TIF_IA32) ? IA32_PAGE_OFFSET : TASK_SIZE64) + #define TASK_SIZE_OF(child) ((test_tsk_thread_flag(child, TIF_IA32)) ? IA32_PAGE_OFFSET : TASK_SIZE64) +Index: kernel/include/asm-x86/thread_info_32.h +=================================================================== +--- kernel.orig/include/asm-x86/thread_info_32.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/thread_info_32.h 2008-11-24 15:47:46.000000000 +0100 +@@ -96,10 +96,10 @@ + /* thread information allocation */ + #ifdef CONFIG_DEBUG_STACK_USAGE + #define alloc_thread_info(tsk) ((struct thread_info *) \ +- __get_free_pages(GFP_KERNEL| __GFP_ZERO, get_order(THREAD_SIZE))) ++ __get_free_pages(GFP_KERNEL_UBC| __GFP_ZERO, get_order(THREAD_SIZE))) + #else + #define alloc_thread_info(tsk) ((struct thread_info *) \ +- __get_free_pages(GFP_KERNEL, get_order(THREAD_SIZE))) ++ __get_free_pages(GFP_KERNEL_UBC, get_order(THREAD_SIZE))) + #endif + + #define free_thread_info(info) free_pages((unsigned long)(info), get_order(THREAD_SIZE)) +Index: kernel/include/asm-x86/thread_info_64.h +=================================================================== +--- kernel.orig/include/asm-x86/thread_info_64.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/asm-x86/thread_info_64.h 2008-11-24 15:47:46.000000000 +0100 +@@ -33,6 +33,7 @@ + + mm_segment_t addr_limit; + struct restart_block restart_block; ++ void *sysenter_return; + }; + #endif + +@@ -78,14 +79,15 @@ + ({ \ + struct thread_info *ret; \ + \ +- ret = ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)); \ ++ ret = ((struct thread_info *) __get_free_pages(GFP_KERNEL_UBC,\ ++ THREAD_ORDER)); \ + if (ret) \ + memset(ret, 0, THREAD_SIZE); \ + ret; \ + }) + #else + #define alloc_thread_info(tsk) \ +- ((struct thread_info *) __get_free_pages(GFP_KERNEL,THREAD_ORDER)) ++ ((struct thread_info *) __get_free_pages(GFP_KERNEL_UBC,THREAD_ORDER)) + #endif + + #define free_thread_info(ti) free_pages((unsigned long) (ti), THREAD_ORDER) +@@ -123,6 +125,7 @@ + #define TIF_DEBUG 21 /* uses debug registers */ + #define TIF_IO_BITMAP 22 /* uses I/O bitmap */ + #define TIF_FREEZE 23 /* is freezing for suspend */ ++#define TIF_RESUME 24 + + #define _TIF_SYSCALL_TRACE (1<mm->context.vdso) + #define VSYSCALL32_END (VSYSCALL32_BASE + PAGE_SIZE) + #define VSYSCALL32_EHDR ((const struct elf32_hdr *) VSYSCALL32_BASE) + ++#define __VSYSCALL32_BASE ((unsigned long)(IA32_PAGE_OFFSET - PAGE_SIZE)) ++#define __VSYSCALL32_END (__VSYSCALL32_BASE + PAGE_SIZE) ++ + #define VSYSCALL32_VSYSCALL ((void *)VSYSCALL32_BASE + 0x400) +-#define VSYSCALL32_SYSEXIT ((void *)VSYSCALL32_BASE + 0x410) ++#define VSYSCALL32_SYSEXIT ((void *)VSYSCALL32_BASE + 0x420) + #define VSYSCALL32_SIGRETURN ((void __user *)VSYSCALL32_BASE + 0x500) + #define VSYSCALL32_RTSIGRETURN ((void __user *)VSYSCALL32_BASE + 0x600) + #endif +Index: kernel/include/bc/beancounter.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/beancounter.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,451 @@ ++/* ++ * include/bc/beancounter.h ++ * ++ * Copyright (C) 1999-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * Andrey Savochkin saw@sw-soft.com ++ * ++ */ ++ ++#ifndef _LINUX_BEANCOUNTER_H ++#define _LINUX_BEANCOUNTER_H ++ ++/* ++ * Generic ratelimiting stuff. ++ */ ++ ++struct ub_rate_info { ++ int burst; ++ int interval; /* jiffy_t per event */ ++ int bucket; /* kind of leaky bucket */ ++ unsigned long last; /* last event */ ++}; ++ ++/* Return true if rate limit permits. */ ++int ub_ratelimit(struct ub_rate_info *); ++ ++ ++/* ++ * This magic is used to distinuish user beancounter and pages beancounter ++ * in struct page. page_ub and page_bc are placed in union and MAGIC ++ * ensures us that we don't use pbc as ubc in ub_page_uncharge(). ++ */ ++#define UB_MAGIC 0x62756275 ++ ++/* ++ * Resource list. ++ */ ++ ++#define UB_KMEMSIZE 0 /* Unswappable kernel memory size including ++ * struct task, page directories, etc. ++ */ ++#define UB_LOCKEDPAGES 1 /* Mlock()ed pages. */ ++#define UB_PRIVVMPAGES 2 /* Total number of pages, counting potentially ++ * private pages as private and used. ++ */ ++#define UB_SHMPAGES 3 /* IPC SHM segment size. */ ++#define UB_DUMMY 4 /* Dummy resource (compatibility) */ ++#define UB_NUMPROC 5 /* Number of processes. */ ++#define UB_PHYSPAGES 6 /* All resident pages, for swapout guarantee. */ ++#define UB_VMGUARPAGES 7 /* Guarantee for memory allocation, ++ * checked against PRIVVMPAGES. ++ */ ++#define UB_OOMGUARPAGES 8 /* Guarantees against OOM kill. ++ * Only limit is used, no accounting. ++ */ ++#define UB_NUMTCPSOCK 9 /* Number of TCP sockets. */ ++#define UB_NUMFLOCK 10 /* Number of file locks. */ ++#define UB_NUMPTY 11 /* Number of PTYs. */ ++#define UB_NUMSIGINFO 12 /* Number of siginfos. */ ++#define UB_TCPSNDBUF 13 /* Total size of tcp send buffers. */ ++#define UB_TCPRCVBUF 14 /* Total size of tcp receive buffers. */ ++#define UB_OTHERSOCKBUF 15 /* Total size of other socket ++ * send buffers (all buffers for PF_UNIX). ++ */ ++#define UB_DGRAMRCVBUF 16 /* Total size of other socket ++ * receive buffers. ++ */ ++#define UB_NUMOTHERSOCK 17 /* Number of other sockets. */ ++#define UB_DCACHESIZE 18 /* Size of busy dentry/inode cache. */ ++#define UB_NUMFILE 19 /* Number of open files. */ ++ ++#define UB_RESOURCES_COMPAT 24 ++ ++/* Add new resources here */ ++ ++#define UB_NUMXTENT 23 ++#define UB_RESOURCES 24 ++ ++#define UB_UNUSEDPRIVVM (UB_RESOURCES + 0) ++#define UB_TMPFSPAGES (UB_RESOURCES + 1) ++#define UB_SWAPPAGES (UB_RESOURCES + 2) ++#define UB_HELDPAGES (UB_RESOURCES + 3) ++ ++struct ubparm { ++ /* ++ * A barrier over which resource allocations are failed gracefully. ++ * If the amount of consumed memory is over the barrier further sbrk() ++ * or mmap() calls fail, the existing processes are not killed. ++ */ ++ unsigned long barrier; ++ /* hard resource limit */ ++ unsigned long limit; ++ /* consumed resources */ ++ unsigned long held; ++ /* maximum amount of consumed resources through the last period */ ++ unsigned long maxheld; ++ /* minimum amount of consumed resources through the last period */ ++ unsigned long minheld; ++ /* count of failed charges */ ++ unsigned long failcnt; ++}; ++ ++/* ++ * Kernel internal part. ++ */ ++ ++#ifdef __KERNEL__ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * UB_MAXVALUE is essentially LONG_MAX declared in a cross-compiling safe form. ++ */ ++#define UB_MAXVALUE ( (1UL << (sizeof(unsigned long)*8-1)) - 1) ++ ++ ++/* ++ * Resource management structures ++ * Serialization issues: ++ * beancounter list management is protected via ub_hash_lock ++ * task pointers are set only for current task and only once ++ * refcount is managed atomically ++ * value and limit comparison and change are protected by per-ub spinlock ++ */ ++ ++struct page_beancounter; ++struct task_beancounter; ++struct sock_beancounter; ++ ++struct page_private { ++ unsigned long ubp_unused_privvmpages; ++ unsigned long ubp_tmpfs_respages; ++ unsigned long ubp_swap_pages; ++ unsigned long long ubp_held_pages; ++}; ++ ++struct sock_private { ++ unsigned long ubp_rmem_thres; ++ unsigned long ubp_wmem_pressure; ++ unsigned long ubp_maxadvmss; ++ unsigned long ubp_rmem_pressure; ++ int ubp_tw_count; ++#define UB_RMEM_EXPAND 0 ++#define UB_RMEM_KEEP 1 ++#define UB_RMEM_SHRINK 2 ++ struct list_head ubp_other_socks; ++ struct list_head ubp_tcp_socks; ++ atomic_t ubp_orphan_count; ++}; ++ ++struct ub_percpu_struct { ++ unsigned long unmap; ++ unsigned long swapin; ++#ifdef CONFIG_BC_IO_ACCOUNTING ++ unsigned long long bytes_wrote; ++ unsigned long long bytes_read; ++ unsigned long long bytes_cancelled; ++#endif ++#ifdef CONFIG_BC_DEBUG_KMEM ++ long pages_charged; ++ long vmalloc_charged; ++ long pbcs; ++#endif ++ unsigned long sync; ++ unsigned long sync_done; ++ ++ unsigned long fsync; ++ unsigned long fsync_done; ++ ++ unsigned long fdsync; ++ unsigned long fdsync_done; ++ ++ unsigned long frsync; ++ unsigned long frsync_done; ++ ++ unsigned long write; ++ unsigned long read; ++ unsigned long long wchar; ++ unsigned long long rchar; ++}; ++ ++struct user_beancounter ++{ ++ unsigned long ub_magic; ++ atomic_t ub_refcount; ++ struct list_head ub_list; ++ struct hlist_node ub_hash; ++ ++ union { ++ struct rcu_head rcu; ++ struct execute_work cleanup; ++ }; ++ ++ spinlock_t ub_lock; ++ uid_t ub_uid; ++ ++ struct ub_rate_info ub_limit_rl; ++ int ub_oom_noproc; ++ ++ struct page_private ppriv; ++#define ub_unused_privvmpages ppriv.ubp_unused_privvmpages ++#define ub_tmpfs_respages ppriv.ubp_tmpfs_respages ++#define ub_swap_pages ppriv.ubp_swap_pages ++#define ub_held_pages ppriv.ubp_held_pages ++ struct sock_private spriv; ++#define ub_rmem_thres spriv.ubp_rmem_thres ++#define ub_maxadvmss spriv.ubp_maxadvmss ++#define ub_rmem_pressure spriv.ubp_rmem_pressure ++#define ub_wmem_pressure spriv.ubp_wmem_pressure ++#define ub_tcp_sk_list spriv.ubp_tcp_socks ++#define ub_other_sk_list spriv.ubp_other_socks ++#define ub_orphan_count spriv.ubp_orphan_count ++#define ub_tw_count spriv.ubp_tw_count ++ struct ub_iopriv iopriv; ++ ++ struct user_beancounter *parent; ++ void *private_data; ++ unsigned long ub_aflags; ++ ++#ifdef CONFIG_PROC_FS ++ struct proc_dir_entry *proc; ++#endif ++ ++ /* resources statistic and settings */ ++ struct ubparm ub_parms[UB_RESOURCES]; ++ /* resources statistic for last interval */ ++ struct ubparm ub_store[UB_RESOURCES]; ++ ++ struct ub_percpu_struct *ub_percpu; ++#ifdef CONFIG_BC_IO_ACCOUNTING ++ /* these are protected with pb_lock */ ++ unsigned long long bytes_wrote; ++ unsigned long long bytes_dirtied; ++ unsigned long long bytes_dirty_missed; ++ unsigned long io_pb_held; ++#endif ++#ifdef CONFIG_BC_DEBUG_KMEM ++ struct list_head ub_cclist; ++#endif ++}; ++ ++enum ub_severity { UB_HARD, UB_SOFT, UB_FORCE }; ++ ++#define UB_AFLAG_NOTIF_PAGEIN 0 ++ ++static inline ++struct user_beancounter *top_beancounter(struct user_beancounter *ub) ++{ ++ while (ub->parent != NULL) ++ ub = ub->parent; ++ return ub; ++} ++ ++static inline int ub_barrier_hit(struct user_beancounter *ub, int resource) ++{ ++ return ub->ub_parms[resource].held > ub->ub_parms[resource].barrier; ++} ++ ++static inline int ub_hfbarrier_hit(struct user_beancounter *ub, int resource) ++{ ++ return (ub->ub_parms[resource].held > ++ ((ub->ub_parms[resource].barrier) >> 1)); ++} ++ ++static inline int ub_barrier_farnr(struct user_beancounter *ub, int resource) ++{ ++ struct ubparm *p; ++ p = ub->ub_parms + resource; ++ return p->held <= (p->barrier >> 3); ++} ++ ++static inline int ub_barrier_farsz(struct user_beancounter *ub, int resource) ++{ ++ struct ubparm *p; ++ p = ub->ub_parms + resource; ++ return p->held <= (p->barrier >> 3) && p->barrier >= 1024 * 1024; ++} ++ ++#ifndef CONFIG_BEANCOUNTERS ++ ++#define ub_percpu_add(ub, f, v) do { } while (0) ++#define ub_percpu_sub(ub, f, v) do { } while (0) ++#define ub_percpu_inc(ub, f) do { } while (0) ++#define ub_percpu_dec(ub, f) do { } while (0) ++ ++#define mm_ub(mm) (NULL) ++ ++extern inline struct user_beancounter *get_beancounter_byuid ++ (uid_t uid, int create) { return NULL; } ++extern inline struct user_beancounter *get_beancounter ++ (struct user_beancounter *ub) { return NULL; } ++extern inline void put_beancounter(struct user_beancounter *ub) { } ++ ++static inline void ub_init_late(void) { }; ++static inline void ub_init_early(void) { }; ++ ++static inline int charge_beancounter(struct user_beancounter *ub, ++ int resource, unsigned long val, ++ enum ub_severity strict) { return 0; } ++static inline void uncharge_beancounter(struct user_beancounter *ub, ++ int resource, unsigned long val) { } ++ ++#else /* CONFIG_BEANCOUNTERS */ ++ ++#define ub_percpu_add(ub, field, v) do { \ ++ per_cpu_ptr(ub->ub_percpu, get_cpu())->field += (v); \ ++ put_cpu(); \ ++ } while (0) ++#define ub_percpu_inc(ub, field) ub_percpu_add(ub, field, 1) ++ ++#define ub_percpu_sub(ub, field, v) do { \ ++ per_cpu_ptr(ub->ub_percpu, get_cpu())->field -= (v); \ ++ put_cpu(); \ ++ } while (0) ++#define ub_percpu_dec(ub, field) ub_percpu_sub(ub, field, 1) ++ ++#define mm_ub(mm) ((mm)->mm_ub) ++/* ++ * Charge/uncharge operations ++ */ ++ ++extern int __charge_beancounter_locked(struct user_beancounter *ub, ++ int resource, unsigned long val, enum ub_severity strict); ++ ++extern void __uncharge_beancounter_locked(struct user_beancounter *ub, ++ int resource, unsigned long val); ++ ++extern void put_beancounter_safe(struct user_beancounter *ub); ++extern void __put_beancounter(struct user_beancounter *ub); ++ ++extern void uncharge_warn(struct user_beancounter *ub, int resource, ++ unsigned long val, unsigned long held); ++ ++extern const char *ub_rnames[]; ++/* ++ * Put a beancounter reference ++ */ ++ ++static inline void put_beancounter(struct user_beancounter *ub) ++{ ++ if (unlikely(ub == NULL)) ++ return; ++ ++ /* FIXME - optimize not to disable interrupts and make call */ ++ __put_beancounter(ub); ++} ++ ++/* fast put, refcount can't reach zero */ ++static inline void __put_beancounter_batch(struct user_beancounter *ub, int n) ++{ ++ atomic_sub(n, &ub->ub_refcount); ++} ++ ++static inline void put_beancounter_batch(struct user_beancounter *ub, int n) ++{ ++ if (n > 1) ++ __put_beancounter_batch(ub, n - 1); ++ __put_beancounter(ub); ++} ++ ++/* ++ * Create a new beancounter reference ++ */ ++extern struct user_beancounter *get_beancounter_byuid(uid_t uid, int create); ++ ++static inline ++struct user_beancounter *get_beancounter(struct user_beancounter *ub) ++{ ++ if (unlikely(ub == NULL)) ++ return NULL; ++ ++ atomic_inc(&ub->ub_refcount); ++ return ub; ++} ++ ++static inline ++struct user_beancounter *get_beancounter_rcu(struct user_beancounter *ub) ++{ ++ return atomic_inc_not_zero(&ub->ub_refcount) ? ub : NULL; ++} ++ ++static inline void get_beancounter_batch(struct user_beancounter *ub, int n) ++{ ++ atomic_add(n, &ub->ub_refcount); ++} ++ ++extern struct user_beancounter *get_subbeancounter_byid( ++ struct user_beancounter *, ++ int id, int create); ++ ++extern void ub_init_late(void); ++extern void ub_init_early(void); ++ ++extern int print_ub_uid(struct user_beancounter *ub, char *buf, int size); ++ ++/* ++ * Resource charging ++ * Change user's account and compare against limits ++ */ ++ ++static inline void ub_adjust_maxheld(struct user_beancounter *ub, int resource) ++{ ++ if (ub->ub_parms[resource].maxheld < ub->ub_parms[resource].held) ++ ub->ub_parms[resource].maxheld = ub->ub_parms[resource].held; ++ if (ub->ub_parms[resource].minheld > ub->ub_parms[resource].held) ++ ub->ub_parms[resource].minheld = ub->ub_parms[resource].held; ++} ++ ++int charge_beancounter(struct user_beancounter *ub, int resource, ++ unsigned long val, enum ub_severity strict); ++void uncharge_beancounter(struct user_beancounter *ub, int resource, ++ unsigned long val); ++void __charge_beancounter_notop(struct user_beancounter *ub, int resource, ++ unsigned long val); ++void __uncharge_beancounter_notop(struct user_beancounter *ub, int resource, ++ unsigned long val); ++ ++static inline void charge_beancounter_notop(struct user_beancounter *ub, ++ int resource, unsigned long val) ++{ ++ if (ub->parent != NULL) ++ __charge_beancounter_notop(ub, resource, val); ++} ++ ++static inline void uncharge_beancounter_notop(struct user_beancounter *ub, ++ int resource, unsigned long val) ++{ ++ if (ub->parent != NULL) ++ __uncharge_beancounter_notop(ub, resource, val); ++} ++ ++#endif /* CONFIG_BEANCOUNTERS */ ++ ++#ifndef CONFIG_BC_RSS_ACCOUNTING ++static inline void ub_ini_pbc(void) { } ++#else ++extern void ub_init_pbc(void); ++#endif ++#endif /* __KERNEL__ */ ++#endif /* _LINUX_BEANCOUNTER_H */ +Index: kernel/include/bc/dcache.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/dcache.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,49 @@ ++/* ++ * include/bc/dcache.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_DCACHE_H_ ++#define __BC_DCACHE_H_ ++ ++#include ++ ++/* ++ * UB_DCACHESIZE accounting ++ */ ++ ++struct dentry_beancounter ++{ ++ /* ++ * d_inuse = ++ * + ++ * ++ * ++ * d_inuse == -1 means that dentry is unused ++ * state change -1 => 0 causes charge ++ * state change 0 => -1 causes uncharge ++ */ ++ atomic_t d_inuse; ++ /* charged size, including name length if name is not inline */ ++ unsigned long d_ubsize; ++ struct user_beancounter *d_ub; ++}; ++ ++#ifdef CONFIG_BEANCOUNTERS ++#define ub_dget_testone(d) (atomic_inc_and_test(&(d)->dentry_bc.d_inuse)) ++#define ub_dput_testzero(d) (atomic_add_negative(-1, &(d)->dentry_bc.d_inuse)) ++#define INUSE_INIT 0 ++ ++extern int ub_dentry_on; ++extern void ub_dentry_checkup(void); ++#else ++#define ub_dget_testone(d) (0) ++#define ub_dput_testzero(d) (0) ++#define ub_dentry_checkup() do { } while (0) ++#endif ++#endif +Index: kernel/include/bc/dcache_op.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/dcache_op.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,100 @@ ++/* ++ * include/bc/dcache_op.h ++ * ++ * Copyright (C) 2006 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_DCACHE_OP_H_ ++#define __BC_DCACHE_OP_H_ ++ ++struct dentry; ++ ++#ifdef CONFIG_BEANCOUNTERS ++ ++#include ++#include ++#include ++ ++extern int ub_dentry_alloc_barrier; ++extern spinlock_t dcache_lock; ++ ++static inline int ub_dentry_alloc(struct dentry *d) ++{ ++ extern int __ub_dentry_alloc(struct dentry *); ++ ++ if (!ub_dentry_on) ++ return 0; ++ return __ub_dentry_alloc(d); ++} ++ ++static inline void ub_dentry_alloc_start(void) ++{ ++ extern void __ub_dentry_alloc_start(void); ++ ++ if (ub_dentry_alloc_barrier) ++ __ub_dentry_alloc_start(); ++} ++ ++static inline void ub_dentry_alloc_end(void) ++{ ++ extern void __ub_dentry_alloc_end(void); ++ ++ if (current->task_bc.dentry_alloc) ++ __ub_dentry_alloc_end(); ++} ++ ++static inline int ub_dentry_charge(struct dentry *d) ++{ ++ extern int __ub_dentry_charge(struct dentry *); ++ ++ if (!ub_dentry_on) ++ return 0; ++ return __ub_dentry_charge(d); ++} ++ ++static inline void ub_dentry_charge_nofail(struct dentry *d) ++{ ++ extern void __ub_dentry_charge_nofail(struct dentry *); ++ ++ if (!ub_dentry_on) ++ return; ++ __ub_dentry_charge_nofail(d); ++} ++ ++static inline void ub_dentry_uncharge_locked(struct dentry *d) ++{ ++ extern void __ub_dentry_uncharge(struct dentry *); ++ ++ if (!ub_dentry_on) ++ return; ++ __ub_dentry_uncharge(d); ++} ++ ++static inline void ub_dentry_uncharge(struct dentry *d) ++{ ++ extern void __ub_dentry_uncharge(struct dentry *); ++ ++ if (!ub_dentry_on) ++ return; ++ spin_lock(&dcache_lock); ++ __ub_dentry_uncharge(d); ++ spin_unlock(&dcache_lock); ++} ++ ++#else /* CONFIG_BEANCOUNTERS */ ++ ++static inline int ub_dentry_alloc(struct dentry *d) { return 0; } ++static inline void ub_dentry_alloc_start(void) { } ++static inline void ub_dentry_alloc_end(void) { } ++static inline int ub_dentry_charge(struct dentry *d) { return 0; } ++static inline void ub_dentry_charge_nofail(struct dentry *d) { } ++static inline void ub_dentry_uncharge_locked(struct dentry *d) { } ++static inline void ub_dentry_uncharge(struct dentry *d) { } ++ ++#endif /* CONFIG_BEANCOUNTERS */ ++ ++#endif /* __dcache_op.h_ */ +Index: kernel/include/bc/debug.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/debug.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,109 @@ ++/* ++ * include/bc/debug.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_DEBUG_H_ ++#define __BC_DEBUG_H_ ++ ++/* ++ * general debugging ++ */ ++ ++#define UBD_ALLOC 0x1 ++#define UBD_CHARGE 0x2 ++#define UBD_LIMIT 0x4 ++#define UBD_TRACE 0x8 ++ ++/* ++ * ub_net debugging ++ */ ++ ++#define UBD_NET_SOCKET 0x10 ++#define UBD_NET_SLEEP 0x20 ++#define UBD_NET_SEND 0x40 ++#define UBD_NET_RECV 0x80 ++ ++/* ++ * Main routines ++ */ ++ ++#define UB_DEBUG (0) ++#define DEBUG_RESOURCE (0ULL) ++ ++#define ub_dbg_cond(__cond, __str, args...) \ ++ do { \ ++ if ((__cond) != 0) \ ++ printk(__str, ##args); \ ++ } while(0) ++ ++#define ub_debug(__section, __str, args...) \ ++ ub_dbg_cond(UB_DEBUG & (__section), __str, ##args) ++ ++#define ub_debug_resource(__resource, __str, args...) \ ++ ub_dbg_cond((UB_DEBUG & UBD_CHARGE) && \ ++ (DEBUG_RESOURCE & (1 << (__resource))), \ ++ __str, ##args) ++ ++#if UB_DEBUG & UBD_TRACE ++#define ub_debug_trace(__cond, __b, __r) \ ++ do { \ ++ static struct ub_rate_info ri = { __b, __r }; \ ++ if ((__cond) != 0 && ub_ratelimit(&ri)) \ ++ dump_stack(); \ ++ } while(0) ++#else ++#define ub_debug_trace(__cond, __burst, __rate) ++#endif ++ ++#ifdef CONFIG_BC_DEBUG_KMEM ++#include ++ ++struct user_beancounter; ++struct ub_cache_counter { ++ struct list_head ulist; ++ struct ub_cache_counter *next; ++ struct user_beancounter *ub; ++ struct kmem_cache *cachep; ++ unsigned long counter; ++}; ++ ++extern spinlock_t cc_lock; ++extern void init_cache_counters(void); ++extern void ub_free_counters(struct user_beancounter *); ++extern void ub_kmemcache_free(struct kmem_cache *cachep); ++ ++struct vm_struct; ++#define inc_vmalloc_charged(vm, flags) do { \ ++ if (flags & __GFP_UBC) \ ++ ub_percpu_add(get_exec_ub(), vmalloc_charged, \ ++ vm->nr_pages); \ ++ } while (0) ++#define dec_vmalloc_charged(vm) do { \ ++ struct user_beancounter *ub; \ ++ ub = page_ub(vm->pages[0]); \ ++ if (ub != NULL) \ ++ ub_percpu_sub(ub, vmalloc_charged, \ ++ vm->nr_pages); \ ++ } while (0) ++ ++#define inc_pbc_count(ub) ub_percpu_inc(ub, pbcs) ++#define dec_pbc_count(ub) ub_percpu_dec(ub, pbcs) ++#else ++#define init_cache_counters() do { } while (0) ++#define inc_vmalloc_charged(vm, f) do { } while (0) ++#define dec_vmalloc_charged(vm) do { } while (0) ++ ++#define inc_pbc_count(ub) do { } while (0) ++#define dec_pbc_count(ub) do { } while (0) ++ ++#define ub_free_counters(ub) do { } while (0) ++#define ub_kmemcache_free(cachep) do { } while (0) ++#endif ++ ++#endif +Index: kernel/include/bc/decl.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/decl.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,41 @@ ++/* ++ * include/bc/decl.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_DECL_H_ ++#define __BC_DECL_H_ ++ ++#ifdef __KERNEL__ ++ ++/* ++ * Naming convension: ++ * ub__ ++ */ ++ ++#ifdef CONFIG_BEANCOUNTERS ++ ++#define UB_DECLARE_FUNC(ret_type, decl) extern ret_type decl; ++#define UB_DECLARE_VOID_FUNC(decl) extern void decl; ++ ++#else /* CONFIG_BEANCOUNTERS */ ++ ++#define UB_DECLARE_FUNC(ret_type, decl) \ ++ static inline ret_type decl \ ++ { \ ++ return (ret_type)0; \ ++ } ++#define UB_DECLARE_VOID_FUNC(decl) \ ++ static inline void decl \ ++ { \ ++ } ++ ++#endif /* CONFIG_BEANCOUNTERS */ ++#endif ++ ++#endif +Index: kernel/include/bc/hash.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/hash.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,36 @@ ++/* ++ * include/bc/hash.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _LINUX_UBHASH_H ++#define _LINUX_UBHASH_H ++ ++#ifdef __KERNEL__ ++ ++#define UB_HASH_SIZE 256 ++ ++extern struct hlist_head ub_hash[]; ++extern spinlock_t ub_hash_lock; ++extern struct list_head ub_list_head; ++ ++#ifdef CONFIG_BEANCOUNTERS ++ ++/* ++ * Iterate over beancounters ++ * @__ubp - beancounter ptr ++ * Can use break :) ++ */ ++#define for_each_beancounter(__ubp) \ ++ list_for_each_entry_rcu(__ubp, &ub_list_head, ub_list) \ ++ ++#define bc_hash_entry(ptr) hlist_entry(ptr, struct user_beancounter, ub_hash) ++ ++#endif /* CONFIG_BEANCOUNTERS */ ++#endif /* __KERNEL__ */ ++#endif /* _LINUX_UBHASH_H */ +Index: kernel/include/bc/io_acct.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/io_acct.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,113 @@ ++/* ++ * include/bc/io_acct.h ++ * ++ * Copyright (C) 2006 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * Pavel Emelianov ++ * ++ */ ++ ++#ifndef __UB_IO_ACCT_H_ ++#define __UB_IO_ACCT_H_ ++ ++#ifdef CONFIG_BC_IO_ACCOUNTING ++#include ++#include ++ ++#define page_iopb(page) ({ \ ++ struct page_beancounter *pb; \ ++ pb = page_pbc(page); \ ++ rmb(); \ ++ pb; \ ++ }) ++ ++/* ++ * IO ub is required in task context only, so if exec_ub is set ++ * to NULL this means that uses doesn't need to charge some ++ * resources. nevertheless IO activity must be accounted, so we ++ * account it to current's task beancounter. ++ */ ++ ++static inline struct user_beancounter *get_io_ub(void) ++{ ++ struct user_beancounter *ub; ++ ++ ub = get_exec_ub(); ++ if (unlikely(ub == NULL)) ++ ub = get_task_ub(current); ++ ++ return top_beancounter(ub); ++} ++ ++extern struct page_beancounter **page_pblist(struct page *); ++ ++extern void ub_io_save_context(struct page *, size_t); ++extern void ub_io_release_context(struct page *pg, size_t size); ++ ++#define PAGE_IO_MARK (0x1UL) ++ ++static inline struct page_beancounter *iopb_to_pb(struct page_beancounter *pb) ++{ ++ if (!((unsigned long)pb & PAGE_IO_MARK)) ++ return NULL; ++ ++ return (struct page_beancounter *)((unsigned long)pb & ~PAGE_IO_MARK); ++} ++ ++static inline void ub_io_account_read(size_t bytes) ++{ ++ ub_percpu_add(get_io_ub(), bytes_read, bytes); ++} ++ ++static inline void ub_io_account_write(size_t bytes) ++{ ++ ub_percpu_add(get_io_ub(), bytes_wrote, bytes); ++} ++ ++static inline void ub_io_account_dirty(struct page *page, size_t bytes) ++{ ++ ub_io_save_context(page, bytes); ++} ++ ++static inline void ub_io_account_write_cancelled(size_t bytes) ++{ ++ ub_percpu_add(get_io_ub(), bytes_cancelled, bytes); ++} ++ ++void ub_init_io(struct kmem_cache *); ++#else /* BC_IO_ACCOUNTING */ ++#define page_iopb(page) (NULL) ++#define page_pblist(page) (&page_pbc(page)) ++ ++static inline void ub_io_release_context(struct page *pg, size_t bytes) ++{ ++} ++ ++static inline void ub_io_account_dirty(struct page *p, size_t bytes) ++{ ++} ++ ++static inline void ub_io_account_read(size_t bytes) ++{ ++} ++ ++static inline void ub_io_account_write(size_t bytes) ++{ ++} ++ ++static inline void ub_io_account_write_cancelled(size_t bytes) ++{ ++} ++ ++static inline void ub_init_io(struct kmem_cache *pb_cachep) { }; ++#endif ++ ++#ifdef CONFIG_BC_DEBUG_IO ++extern void ub_io_release_debug(struct page *pg); ++#else ++#define ub_io_release_debug(pg) do { } while (0) ++#endif ++#endif +Index: kernel/include/bc/io_prio.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/io_prio.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,82 @@ ++/* ++ * include/bc/io_prio.h ++ * ++ * Copyright (C) 2007 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * Vasily Tarasov ++ * ++ */ ++ ++#ifndef _UB_IO_PRIO_H ++#define _UB_IO_PRIO_H ++ ++#include ++#include ++#include ++ ++#define UB_IOPRIO_MIN 0 ++#define UB_IOPRIO_MAX IOPRIO_BE_NR ++#define UB_IOPRIO_BASE 4 ++ ++struct ub_iopriv { ++ struct list_head cfq_bc_head; ++ rwlock_t cfq_bc_list_lock; ++ ++ unsigned int ioprio; ++}; ++ ++struct cfq_data; ++struct cfq_queue; ++ ++#ifdef CONFIG_BC_IO_SCHED ++extern void bc_init_ioprio(struct ub_iopriv *); ++extern void bc_fini_ioprio(struct ub_iopriv *); ++extern struct cfq_bc_data * bc_find_cfq_bc(struct ub_iopriv *, ++ struct cfq_data *); ++extern struct cfq_bc_data * bc_findcreate_cfq_bc(struct ub_iopriv *, ++ struct cfq_data *, gfp_t gfp_mask); ++extern void bc_cfq_exit_queue(struct cfq_data *); ++extern int bc_expired(struct cfq_data *); ++extern void bc_schedule_active(struct cfq_data *); ++extern void bc_inc_rqnum(struct cfq_queue *); ++extern void bc_dec_rqnum(struct cfq_queue *); ++extern unsigned long bc_set_ioprio(int, int); ++extern struct cfq_bc_data * ++__find_cfq_bc(struct ub_iopriv *iopriv, struct cfq_data *cfqd); ++extern struct user_beancounter *bc_io_switch_context(struct page *); ++extern void bc_io_restore_context(struct user_beancounter *); ++#else ++#include ++static inline void bc_init_ioprio(struct ub_iopriv *iopriv) { ; } ++static inline void bc_fini_ioprio(struct ub_iopriv *iopriv) { ; } ++static inline struct cfq_bc_data * ++bc_findcreate_cfq_bc(struct ub_iopriv *iopriv, ++ struct cfq_data *cfqd, gfp_t mask) ++{ ++ return &cfqd->cfq_bc; ++} ++static inline void bc_cfq_exit_queue(struct cfq_data *cfqd) { ; } ++static inline int bc_expired(struct cfq_data *cfqd) { return 0; } ++static inline void bc_schedule_active(struct cfq_data *cfqd) ++{ ++ cfqd->active_cfq_bc = &cfqd->cfq_bc; ++} ++static inline void bc_inc_rqnum(struct cfq_queue *cfqq) { ; } ++static inline void bc_dec_rqnum(struct cfq_queue *cfqq) { ; } ++static inline unsigned long bc_set_ioprio(int ubid, int ioprio) ++{ ++ return -EINVAL; ++} ++static inline struct cfq_bc_data * ++__find_cfq_bc(struct ub_iopriv *iopriv, struct cfq_data *cfqd) ++{ ++ return &cfqd->cfq_bc; ++} ++static inline struct user_beancounter * ++bc_io_switch_context(struct page *page) { return NULL; } ++static inline void bc_io_restore_context(struct user_beancounter *ub) { ; } ++#endif /* CONFIG_BC_IO_SCHED */ ++#endif /* _UB_IO_PRIO_H */ +Index: kernel/include/bc/kmem.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/kmem.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,69 @@ ++/* ++ * include/bc/kmem.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __UB_SLAB_H_ ++#define __UB_SLAB_H_ ++ ++#include ++#include ++ ++/* ++ * UB_KMEMSIZE accounting ++ */ ++ ++#ifdef CONFIG_BC_DEBUG_ITEMS ++#define CHARGE_ORDER(__o) (1 << (__o)) ++#define CHARGE_SIZE(__s) 1 ++#else ++#define CHARGE_ORDER(__o) (PAGE_SIZE << (__o)) ++#define CHARGE_SIZE(__s) (__s) ++#endif ++ ++#ifdef CONFIG_BEANCOUNTERS ++#define page_ub(__page) ((__page)->bc.page_ub) ++#else ++#define page_ub(__page) NULL ++#endif ++ ++struct mm_struct; ++struct page; ++struct kmem_cache; ++ ++UB_DECLARE_FUNC(struct user_beancounter *, vmalloc_ub(void *obj)) ++UB_DECLARE_FUNC(struct user_beancounter *, mem_ub(void *obj)) ++ ++UB_DECLARE_FUNC(int, ub_kmemsize_charge(struct user_beancounter *ub, ++ unsigned long size, enum ub_severity strict)) ++UB_DECLARE_VOID_FUNC(ub_kmemsize_uncharge(struct user_beancounter *ub, ++ unsigned long size)) ++ ++UB_DECLARE_FUNC(int, ub_page_charge(struct page *page, int order, gfp_t mask)) ++UB_DECLARE_VOID_FUNC(ub_page_uncharge(struct page *page, int order)) ++UB_DECLARE_FUNC(int, ub_slab_charge(struct kmem_cache *cachep, ++ void *objp, gfp_t flags)) ++UB_DECLARE_VOID_FUNC(ub_slab_uncharge(struct kmem_cache *cachep, void *obj)) ++ ++#ifdef CONFIG_BEANCOUNTERS ++static inline int should_charge(struct kmem_cache *cachep, gfp_t flags) ++{ ++ if (!(cachep->flags & SLAB_UBC)) ++ return 0; ++ if ((cachep->flags & SLAB_NO_CHARGE) && !(flags & __GFP_UBC)) ++ return 0; ++ return 1; ++} ++ ++#define should_uncharge(cachep) should_charge(cachep, __GFP_UBC) ++#else ++#define should_charge(cache, f) 0 ++#define should_uncharge(cache) 0 ++#endif ++ ++#endif /* __UB_SLAB_H_ */ +Index: kernel/include/bc/misc.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/misc.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,55 @@ ++/* ++ * include/bc/misc.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_MISC_H_ ++#define __BC_MISC_H_ ++ ++#include ++ ++struct tty_struct; ++struct file; ++struct file_lock; ++struct sigqueue; ++ ++UB_DECLARE_FUNC(int, ub_file_charge(struct file *f)) ++UB_DECLARE_VOID_FUNC(ub_file_uncharge(struct file *f)) ++UB_DECLARE_FUNC(int, ub_flock_charge(struct file_lock *fl, int hard)) ++UB_DECLARE_VOID_FUNC(ub_flock_uncharge(struct file_lock *fl)) ++UB_DECLARE_FUNC(int, ub_siginfo_charge(struct sigqueue *q, ++ struct user_beancounter *ub)) ++UB_DECLARE_VOID_FUNC(ub_siginfo_uncharge(struct sigqueue *q)) ++UB_DECLARE_FUNC(int, ub_task_charge(struct task_struct *parent, ++ struct task_struct *task)) ++UB_DECLARE_VOID_FUNC(ub_task_uncharge(struct task_struct *task)) ++UB_DECLARE_VOID_FUNC(ub_task_put(struct task_struct *task)) ++UB_DECLARE_FUNC(int, ub_pty_charge(struct tty_struct *tty)) ++UB_DECLARE_VOID_FUNC(ub_pty_uncharge(struct tty_struct *tty)) ++ ++#ifdef CONFIG_BEANCOUNTERS ++#define set_flock_charged(fl) do { (fl)->fl_charged = 1; } while (0) ++#define unset_flock_charged(fl) do { \ ++ WARN_ON((fl)->fl_charged == 0); \ ++ (fl)->fl_charged = 0; \ ++ } while (0) ++#define set_mm_ub(mm, tsk) do { \ ++ (mm)->mm_ub = get_beancounter(tsk ? \ ++ tsk->task_bc.task_ub : get_exec_ub()); \ ++ } while (0) ++#define put_mm_ub(mm) do { \ ++ put_beancounter((mm)->mm_ub); \ ++ (mm)->mm_ub = NULL; \ ++ } while (0) ++#else ++#define set_flock_charged(fl) do { } while (0) ++#define unset_flock_charged(fl) do { } while (0) ++#define set_mm_ub(mm, tsk) do { } while (0) ++#define put_mm_ub(mm) do { } while (0) ++#endif ++#endif +Index: kernel/include/bc/net.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/net.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,215 @@ ++/* ++ * include/bc/net.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_NET_H_ ++#define __BC_NET_H_ ++ ++/* ++ * UB_NUMXXXSOCK, UB_XXXBUF accounting ++ */ ++ ++#include ++#include ++#include ++ ++#define bid2sid(__bufid) \ ++ ((__bufid) == UB_TCPSNDBUF ? UB_NUMTCPSOCK : UB_NUMOTHERSOCK) ++ ++#define SOCK_MIN_UBCSPACE ((int)((2048 - sizeof(struct skb_shared_info)) & \ ++ ~(SMP_CACHE_BYTES-1))) ++#define SOCK_MIN_UBCSPACE_CH skb_charge_size(SOCK_MIN_UBCSPACE) ++ ++static inline int ub_skb_alloc_bc(struct sk_buff *skb, gfp_t gfp_mask) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ memset(skb_bc(skb), 0, sizeof(struct skb_beancounter)); ++#endif ++ return 0; ++} ++ ++static inline void ub_skb_free_bc(struct sk_buff *skb) ++{ ++} ++ ++#define IS_TCP_SOCK(__family, __type) \ ++ (((__family) == PF_INET || (__family) == PF_INET6) && (__type) == SOCK_STREAM) ++ ++/* number of sockets */ ++UB_DECLARE_FUNC(int, ub_sock_charge(struct sock *sk, int family, int type)) ++UB_DECLARE_FUNC(int, ub_tcp_sock_charge(struct sock *sk)) ++UB_DECLARE_FUNC(int, ub_other_sock_charge(struct sock *sk)) ++UB_DECLARE_VOID_FUNC(ub_sock_uncharge(struct sock *sk)) ++ ++/* management of queue for send space */ ++UB_DECLARE_FUNC(long, ub_sock_wait_for_space(struct sock *sk, long timeo, ++ unsigned long size)) ++UB_DECLARE_VOID_FUNC(ub_sock_snd_queue_add(struct sock *sk, int resource, ++ unsigned long size)) ++UB_DECLARE_VOID_FUNC(ub_sock_sndqueuedel(struct sock *sk)) ++ ++/* send space */ ++UB_DECLARE_FUNC(int, ub_sock_make_wreserv(struct sock *sk, int bufid, ++ unsigned long size)) ++UB_DECLARE_FUNC(int, ub_sock_get_wreserv(struct sock *sk, int bufid, ++ unsigned long size)) ++UB_DECLARE_VOID_FUNC(ub_sock_ret_wreserv(struct sock *sk, int bufid, ++ unsigned long size, unsigned long ressize)) ++UB_DECLARE_FUNC(int, ub_sock_tcp_chargesend(struct sock *sk, ++ struct sk_buff *skb, enum ub_severity strict)) ++UB_DECLARE_VOID_FUNC(ub_sock_tcp_unchargesend(struct sock *sk, ++ unsigned long size)) ++UB_DECLARE_FUNC(int, ub_sock_tcp_chargepage(struct sock *sk)) ++UB_DECLARE_VOID_FUNC(ub_sock_tcp_detachpage(struct sock *sk)) ++ ++UB_DECLARE_FUNC(int, ub_nlrcvbuf_charge(struct sk_buff *skb, struct sock *sk)) ++ ++/* receive space */ ++UB_DECLARE_FUNC(int, ub_sockrcvbuf_charge(struct sock *sk, struct sk_buff *skb)) ++UB_DECLARE_FUNC(int, ub_sock_tcp_chargerecv(struct sock *sk, ++ struct sk_buff *skb, enum ub_severity strict)) ++ ++/* skb destructor */ ++UB_DECLARE_VOID_FUNC(ub_skb_uncharge(struct sk_buff *skb)) ++ ++static inline int ub_sock_makewres_other(struct sock *sk, unsigned long size) ++{ ++ return ub_sock_make_wreserv(sk, UB_OTHERSOCKBUF, size); ++} ++ ++static inline int ub_sock_makewres_tcp(struct sock *sk, unsigned long size) ++{ ++ return ub_sock_make_wreserv(sk, UB_TCPSNDBUF, size); ++} ++ ++UB_DECLARE_FUNC(int, ub_sock_getwres_other(struct sock *sk, ++ unsigned long size)) ++ ++static inline int ub_sock_getwres_tcp(struct sock *sk, unsigned long size) ++{ ++ return ub_sock_get_wreserv(sk, UB_TCPSNDBUF, size); ++} ++ ++UB_DECLARE_VOID_FUNC(ub_sock_retwres_other(struct sock *sk, ++ unsigned long size, unsigned long ressize)) ++ ++static inline void ub_sock_retwres_tcp(struct sock *sk, unsigned long size, ++ unsigned long ressize) ++{ ++ ub_sock_ret_wreserv(sk, UB_TCPSNDBUF, size, ressize); ++} ++ ++static inline void ub_sock_sndqueueadd_other(struct sock *sk, unsigned long sz) ++{ ++ ub_sock_snd_queue_add(sk, UB_OTHERSOCKBUF, sz); ++} ++ ++static inline void ub_sock_sndqueueadd_tcp(struct sock *sk, unsigned long sz) ++{ ++ ub_sock_snd_queue_add(sk, UB_TCPSNDBUF, sz); ++} ++ ++static inline int ub_tcpsndbuf_charge(struct sock *sk, ++ struct sk_buff *skb) ++{ ++ return ub_sock_tcp_chargesend(sk, skb, UB_HARD); ++} ++ ++static inline int ub_tcpsndbuf_charge_forced(struct sock *sk, ++ struct sk_buff *skb) ++{ ++ return ub_sock_tcp_chargesend(sk, skb, UB_FORCE); ++} ++ ++static inline int ub_tcprcvbuf_charge(struct sock *sk, struct sk_buff *skb) ++{ ++ return ub_sock_tcp_chargerecv(sk, skb, UB_SOFT); ++} ++ ++static inline int ub_tcprcvbuf_charge_forced(struct sock *sk, ++ struct sk_buff *skb) ++{ ++ return ub_sock_tcp_chargerecv(sk, skb, UB_FORCE); ++} ++ ++/* Charge size */ ++static inline unsigned long skb_charge_datalen(unsigned long chargesize) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ unsigned long slabsize; ++ ++ chargesize -= sizeof(struct sk_buff); ++ slabsize = 64; ++ do { ++ slabsize <<= 1; ++ } while (slabsize <= chargesize); ++ ++ slabsize >>= 1; ++ return (slabsize - sizeof(struct skb_shared_info)) & ++ ~(SMP_CACHE_BYTES-1); ++#else ++ return 0; ++#endif ++} ++ ++static inline unsigned long skb_charge_size_gen(unsigned long size) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ unsigned int slabsize; ++ ++ size = SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info); ++ slabsize = 32; /* min size is 64 because of skb_shared_info */ ++ do { ++ slabsize <<= 1; ++ } while (slabsize < size); ++ ++ return slabsize + sizeof(struct sk_buff); ++#else ++ return 0; ++#endif ++ ++} ++ ++static inline unsigned long skb_charge_size_const(unsigned long size) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ unsigned int ret; ++ if (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info) <= 64) ++ ret = 64 + sizeof(struct sk_buff); ++ else if (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info) <= 128) ++ ret = 128 + sizeof(struct sk_buff); ++ else if (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info) <= 256) ++ ret = 256 + sizeof(struct sk_buff); ++ else if (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info) <= 512) ++ ret = 512 + sizeof(struct sk_buff); ++ else if (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info) <= 1024) ++ ret = 1024 + sizeof(struct sk_buff); ++ else if (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info) <= 2048) ++ ret = 2048 + sizeof(struct sk_buff); ++ else if (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info) <= 4096) ++ ret = 4096 + sizeof(struct sk_buff); ++ else ++ ret = skb_charge_size_gen(size); ++ return ret; ++#else ++ return 0; ++#endif ++} ++ ++ ++#define skb_charge_size(__size) \ ++ (__builtin_constant_p(__size) ? \ ++ skb_charge_size_const(__size) : \ ++ skb_charge_size_gen(__size)) ++ ++UB_DECLARE_FUNC(int, skb_charge_fullsize(struct sk_buff *skb)) ++UB_DECLARE_VOID_FUNC(ub_skb_set_charge(struct sk_buff *skb, ++ struct sock *sk, unsigned long size, int res)) ++ ++#endif +Index: kernel/include/bc/oom_kill.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/oom_kill.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,26 @@ ++#include ++#include ++ ++UB_DECLARE_FUNC(int, ub_oom_lock(void)) ++UB_DECLARE_FUNC(struct user_beancounter *, ub_oom_select_worst(void)) ++UB_DECLARE_VOID_FUNC(ub_oom_mm_killed(struct user_beancounter *ub)) ++UB_DECLARE_VOID_FUNC(ub_oom_unlock(void)) ++UB_DECLARE_VOID_FUNC(ub_out_of_memory(struct user_beancounter *ub)) ++UB_DECLARE_VOID_FUNC(ub_oom_task_dead(struct task_struct *tsk)) ++UB_DECLARE_FUNC(int, ub_oom_task_skip(struct user_beancounter *ub, ++ struct task_struct *tsk)) ++ ++#ifdef CONFIG_BEANCOUNTERS ++extern int oom_generation; ++extern int oom_kill_counter; ++#define ub_oom_start() do { \ ++ current->task_bc.oom_generation = oom_generation; \ ++ } while (0) ++#define ub_oom_task_killed(p) do { \ ++ oom_kill_counter++; \ ++ wake_up_process(p); \ ++ } while (0) ++#else ++#define ub_oom_start() do { } while (0) ++#define ub_oom_task_killed(p) do { } while (0) ++#endif +Index: kernel/include/bc/proc.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/proc.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,40 @@ ++/* ++ * include/bc/proc.h ++ * ++ * Copyright (C) 2006 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __UB_PROC_H_ ++#define __UB_PROC_H_ ++ ++#include ++ ++struct bc_proc_entry { ++ char *name; ++ union { ++ int (*show)(struct seq_file *, void *); ++ struct file_operations *fops; ++ } u; ++ struct bc_proc_entry *next; ++ int cookie; ++}; ++ ++struct user_beancounter; ++ ++void bc_register_proc_entry(struct bc_proc_entry *); ++void bc_register_proc_root_entry(struct bc_proc_entry *); ++ ++static inline struct user_beancounter *seq_beancounter(struct seq_file *f) ++{ ++ return (struct user_beancounter *)(f->private); ++} ++ ++extern const char *bc_proc_lu_fmt; ++extern const char *bc_proc_lu_lfmt; ++extern const char *bc_proc_llu_fmt; ++extern const char *bc_proc_lu_lu_fmt; ++#endif +Index: kernel/include/bc/rss_pages.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/rss_pages.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,57 @@ ++/* ++ * include/bc/rss_pages.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __RSS_PAGES_H_ ++#define __RSS_PAGES_H_ ++ ++/* ++ * Page_beancounters ++ */ ++ ++struct page; ++struct user_beancounter; ++ ++#define PB_MAGIC 0x62700001UL ++ ++struct page_beancounter { ++ unsigned long pb_magic; ++ struct page *page; ++ struct user_beancounter *ub; ++ union { ++ struct page_beancounter *next_hash; ++ struct page_beancounter *page_pb_list; ++ }; ++ union { ++ unsigned refcount; ++ unsigned io_debug; ++ }; ++ union { ++ struct list_head page_list; ++ struct list_head io_list; ++ }; ++}; ++ ++#define PB_REFCOUNT_BITS 24 ++#define PB_SHIFT_GET(c) ((c) >> PB_REFCOUNT_BITS) ++#define PB_SHIFT_INC(c) ((c) += (1 << PB_REFCOUNT_BITS)) ++#define PB_SHIFT_DEC(c) ((c) -= (1 << PB_REFCOUNT_BITS)) ++#define PB_COUNT_GET(c) ((c) & ((1 << PB_REFCOUNT_BITS) - 1)) ++#define PB_COUNT_INC(c) ((c)++) ++#define PB_COUNT_DEC(c) ((c)--) ++#define PB_REFCOUNT_MAKE(s, c) (((s) << PB_REFCOUNT_BITS) + (c)) ++ ++#define page_pbc(__page) ((__page)->bc.page_pb) ++ ++extern spinlock_t pb_lock; ++ ++struct address_space; ++extern int is_shmem_mapping(struct address_space *); ++ ++#endif +Index: kernel/include/bc/sock.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/sock.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,47 @@ ++/* ++ * include/bc/sock.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_SOCK_H_ ++#define __BC_SOCK_H_ ++ ++#include ++ ++struct sock; ++struct sk_buff; ++ ++struct skb_beancounter { ++ struct user_beancounter *ub; ++ unsigned long charged:27, resource:5; ++}; ++ ++struct sock_beancounter { ++ struct user_beancounter *ub; ++ /* ++ * poll_reserv accounts space already charged for future sends. ++ * It is required to make poll agree with sendmsg. ++ * Additionally, it makes real charges (with taking bc spinlock) ++ * in the send path rarer, speeding networking up. ++ * For TCP (only): changes are protected by socket lock (not bc!) ++ * For all proto: may be read without serialization in poll. ++ */ ++ unsigned long poll_reserv; ++ unsigned long forw_space; ++ /* fields below are protected by bc spinlock */ ++ unsigned long ub_waitspc; /* space waiting for */ ++ unsigned long ub_wcharged; ++ struct list_head ub_sock_list; ++}; ++ ++#define sock_bc(__sk) (&(__sk)->sk_bc) ++#define skb_bc(__skb) (&(__skb)->skb_bc) ++#define skbc_sock(__skbc) (container_of(__skbc, struct sock, sk_bc)) ++#define sock_has_ubc(__sk) (sock_bc(__sk)->ub != NULL) ++ ++#endif +Index: kernel/include/bc/sock_orphan.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/sock_orphan.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,106 @@ ++/* ++ * include/bc/sock_orphan.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_SOCK_ORPHAN_H_ ++#define __BC_SOCK_ORPHAN_H_ ++ ++#include ++ ++#include "bc/beancounter.h" ++#include "bc/net.h" ++ ++ ++static inline atomic_t *__ub_get_orphan_count_ptr(struct sock *sk) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ if (sock_has_ubc(sk)) ++ return &sock_bc(sk)->ub->ub_orphan_count; ++#endif ++ return sk->sk_prot->orphan_count; ++} ++ ++static inline void ub_inc_orphan_count(struct sock *sk) ++{ ++ atomic_inc(__ub_get_orphan_count_ptr(sk)); ++} ++ ++static inline void ub_dec_orphan_count(struct sock *sk) ++{ ++ atomic_dec(__ub_get_orphan_count_ptr(sk)); ++} ++ ++static inline int ub_get_orphan_count(struct sock *sk) ++{ ++ return atomic_read(__ub_get_orphan_count_ptr(sk)); ++} ++ ++extern int __ub_too_many_orphans(struct sock *sk, int count); ++static inline int ub_too_many_orphans(struct sock *sk, int count) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ if (__ub_too_many_orphans(sk, count)) ++ return 1; ++#endif ++ return (ub_get_orphan_count(sk) > sysctl_tcp_max_orphans || ++ (sk->sk_wmem_queued > SOCK_MIN_SNDBUF && ++ atomic_read(&tcp_memory_allocated) > sysctl_tcp_mem[2])); ++} ++ ++#include ++ ++struct inet_timewait_sock; ++ ++static inline void ub_timewait_mod(struct inet_timewait_sock *tw, int incdec) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *ub; ++ ++ ub = slab_ub(tw); ++ if (ub != NULL) ++ ub->ub_tw_count += incdec; ++#endif ++} ++ ++static inline int __ub_timewait_check(struct sock *sk) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *ub; ++ unsigned long mem_max, mem; ++ int tw_count; ++ ++ ub = sock_bc(sk)->ub; ++ if (ub == NULL) ++ return 1; ++ ++ tw_count = ub->ub_tw_count; ++ mem_max = sysctl_tcp_max_tw_kmem_fraction * ++ ((ub->ub_parms[UB_KMEMSIZE].limit >> 10) + 1); ++ mem = kmem_cache_objuse(sk->sk_prot_creator->twsk_prot->twsk_slab); ++ mem *= tw_count; ++ return tw_count < sysctl_tcp_max_tw_buckets_ub && mem < mem_max; ++#else ++ return 1; ++#endif ++} ++ ++#define ub_timewait_inc(tw, twdr) do { \ ++ if ((twdr)->ub_managed) \ ++ ub_timewait_mod(tw, 1); \ ++ } while (0) ++ ++#define ub_timewait_dec(tw, twdr) do { \ ++ if ((twdr)->ub_managed) \ ++ ub_timewait_mod(tw, -1); \ ++ } while (0) ++ ++#define ub_timewait_check(sk, twdr) ((!(twdr)->ub_managed) || \ ++ __ub_timewait_check(sk)) ++ ++#endif +Index: kernel/include/bc/statd.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/statd.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,70 @@ ++/* ++ * include/bc/statd.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_STATD_H_ ++#define __BC_STATD_H_ ++ ++/* sys_ubstat commands list */ ++#define UBSTAT_READ_ONE 0x010000 ++#define UBSTAT_READ_ALL 0x020000 ++#define UBSTAT_READ_FULL 0x030000 ++#define UBSTAT_UBLIST 0x040000 ++#define UBSTAT_UBPARMNUM 0x050000 ++#define UBSTAT_GETTIME 0x060000 ++ ++#define UBSTAT_CMD(func) ((func) & 0xF0000) ++#define UBSTAT_PARMID(func) ((func) & 0x0FFFF) ++ ++#define TIME_MAX_SEC (LONG_MAX / HZ) ++#define TIME_MAX_JIF (TIME_MAX_SEC * HZ) ++ ++typedef unsigned long ubstattime_t; ++ ++typedef struct { ++ ubstattime_t start_time; ++ ubstattime_t end_time; ++ ubstattime_t cur_time; ++} ubgettime_t; ++ ++typedef struct { ++ long maxinterval; ++ int signum; ++} ubnotifrq_t; ++ ++typedef struct { ++ unsigned long maxheld; ++ unsigned long failcnt; ++} ubstatparm_t; ++ ++typedef struct { ++ unsigned long barrier; ++ unsigned long limit; ++ unsigned long held; ++ unsigned long maxheld; ++ unsigned long minheld; ++ unsigned long failcnt; ++ unsigned long __unused1; ++ unsigned long __unused2; ++} ubstatparmf_t; ++ ++typedef struct { ++ ubstattime_t start_time; ++ ubstattime_t end_time; ++ ubstatparmf_t param[0]; ++} ubstatfull_t; ++ ++#ifdef __KERNEL__ ++struct ub_stat_notify { ++ struct list_head list; ++ struct task_struct *task; ++ int signum; ++}; ++#endif ++#endif +Index: kernel/include/bc/task.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/task.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,69 @@ ++/* ++ * include/bc/task.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_TASK_H_ ++#define __BC_TASK_H_ ++ ++struct user_beancounter; ++ ++ ++#ifdef CONFIG_BEANCOUNTERS ++struct task_beancounter { ++ struct user_beancounter *exec_ub; ++ struct user_beancounter *saved_ub; ++ struct user_beancounter *task_ub; ++ struct user_beancounter *fork_sub; ++ unsigned long file_precharged, file_quant, file_count; ++ unsigned long kmem_precharged; ++ char dentry_alloc, pgfault_handle; ++ void *task_fnode, *task_freserv; ++ unsigned long oom_generation; ++ unsigned long task_data[4]; ++ unsigned long pgfault_allot; ++}; ++ ++#define get_task_ub(__task) ((__task)->task_bc.task_ub) ++ ++extern struct user_beancounter ub0; ++#define get_ub0() (&ub0) ++ ++#define ub_save_context(t) do { \ ++ t->task_bc.saved_ub = t->task_bc.exec_ub; \ ++ t->task_bc.exec_ub = get_ub0(); \ ++ } while (0) ++#define ub_restore_context(t) do { \ ++ t->task_bc.exec_ub = t->task_bc.saved_ub; \ ++ } while (0) ++ ++#define get_exec_ub() (current->task_bc.exec_ub) ++#define set_exec_ub(__newub) \ ++({ \ ++ struct user_beancounter *old; \ ++ struct task_beancounter *tbc; \ ++ \ ++ tbc = ¤t->task_bc; \ ++ old = tbc->exec_ub; \ ++ tbc->exec_ub = __newub; \ ++ old; \ ++}) ++ ++void ub_init_task_bc(struct task_beancounter *); ++ ++#else /* CONFIG_BEANCOUNTERS */ ++ ++#define get_ub0() (NULL) ++#define get_exec_ub() (NULL) ++#define get_task_ub(task) (NULL) ++#define set_exec_ub(__ub) (NULL) ++#define ub_save_context(t) do { } while (0) ++#define ub_restore_context(t) do { } while (0) ++ ++#endif /* CONFIG_BEANCOUNTERS */ ++#endif /* __task.h_ */ +Index: kernel/include/bc/tcp.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/tcp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,76 @@ ++/* ++ * include/bc/tcp.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __BC_TCP_H_ ++#define __BC_TCP_H_ ++ ++/* ++ * UB_NUMXXXSOCK, UB_XXXBUF accounting ++ */ ++ ++#include ++#include ++ ++static inline void ub_tcp_update_maxadvmss(struct sock *sk) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ if (!sock_has_ubc(sk)) ++ return; ++ if (sock_bc(sk)->ub->ub_maxadvmss >= tcp_sk(sk)->advmss) ++ return; ++ ++ sock_bc(sk)->ub->ub_maxadvmss = ++ skb_charge_size(MAX_HEADER + sizeof(struct iphdr) ++ + sizeof(struct tcphdr) + tcp_sk(sk)->advmss); ++#endif ++} ++ ++static inline int ub_tcp_rmem_allows_expand(struct sock *sk) ++{ ++ if (tcp_memory_pressure) ++ return 0; ++#ifdef CONFIG_BEANCOUNTERS ++ if (sock_has_ubc(sk)) { ++ struct user_beancounter *ub; ++ ++ ub = sock_bc(sk)->ub; ++ if (ub->ub_rmem_pressure == UB_RMEM_EXPAND) ++ return 1; ++ if (ub->ub_rmem_pressure == UB_RMEM_SHRINK) ++ return 0; ++ return sk->sk_rcvbuf <= ub->ub_rmem_thres; ++ } ++#endif ++ return 1; ++} ++ ++static inline int ub_tcp_memory_pressure(struct sock *sk) ++{ ++ if (tcp_memory_pressure) ++ return 1; ++#ifdef CONFIG_BEANCOUNTERS ++ if (sock_has_ubc(sk)) ++ return sock_bc(sk)->ub->ub_rmem_pressure != UB_RMEM_EXPAND; ++#endif ++ return 0; ++} ++ ++static inline int ub_tcp_shrink_rcvbuf(struct sock *sk) ++{ ++ if (tcp_memory_pressure) ++ return 1; ++#ifdef CONFIG_BEANCOUNTERS ++ if (sock_has_ubc(sk)) ++ return sock_bc(sk)->ub->ub_rmem_pressure == UB_RMEM_SHRINK; ++#endif ++ return 0; ++} ++ ++#endif +Index: kernel/include/bc/vmpages.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/bc/vmpages.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,152 @@ ++/* ++ * include/bc/vmpages.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __UB_PAGES_H_ ++#define __UB_PAGES_H_ ++ ++#include ++#include ++#include ++ ++/* ++ * Check whether vma has private or copy-on-write mapping. ++ * Should match checks in ub_protected_charge(). ++ */ ++#define VM_UB_PRIVATE(__flags, __file) \ ++ ( ((__flags) & VM_WRITE) ? \ ++ (__file) == NULL || !((__flags) & VM_SHARED) : \ ++ 0 \ ++ ) ++ ++/* Mprotect charging result */ ++#define PRIVVM_ERROR -1 ++#define PRIVVM_NO_CHARGE 0 /* UB_DECLARE_FUNC retval with ubc off */ ++#define PRIVVM_TO_PRIVATE 1 ++#define PRIVVM_TO_SHARED 2 ++ ++UB_DECLARE_FUNC(int, ub_protected_charge(struct mm_struct *mm, ++ unsigned long size, ++ unsigned long newflags, ++ struct vm_area_struct *vma)) ++ ++UB_DECLARE_VOID_FUNC(ub_unused_privvm_add(struct mm_struct *mm, ++ struct vm_area_struct *vma, ++ unsigned long num)) ++#define ub_unused_privvm_inc(mm, vma) ub_unused_privvm_add(mm, vma, 1) ++UB_DECLARE_VOID_FUNC(ub_unused_privvm_sub(struct mm_struct *mm, ++ struct vm_area_struct *vma, ++ unsigned long num)) ++#define ub_unused_privvm_dec(mm, vma) ub_unused_privvm_sub(mm, vma, 1) ++ ++UB_DECLARE_VOID_FUNC(__ub_unused_privvm_dec(struct mm_struct *mm, ++ long sz)) ++ ++UB_DECLARE_FUNC(int, ub_memory_charge(struct mm_struct *mm, ++ unsigned long size, ++ unsigned vm_flags, ++ struct file *vm_file, ++ int strict)) ++UB_DECLARE_VOID_FUNC(ub_memory_uncharge(struct mm_struct *mm, ++ unsigned long size, ++ unsigned vm_flags, ++ struct file *vm_file)) ++ ++struct shmem_inode_info; ++UB_DECLARE_FUNC(int, ub_shmpages_charge(struct shmem_inode_info *i, ++ unsigned long sz)) ++UB_DECLARE_VOID_FUNC(ub_shmpages_uncharge(struct shmem_inode_info *i, ++ unsigned long sz)) ++UB_DECLARE_VOID_FUNC(ub_tmpfs_respages_inc(struct shmem_inode_info *shi)) ++UB_DECLARE_VOID_FUNC(ub_tmpfs_respages_sub(struct shmem_inode_info *shi, ++ unsigned long size)) ++#define ub_tmpfs_respages_dec(shi) ub_tmpfs_respages_sub(shi, 1) ++ ++#ifdef CONFIG_BEANCOUNTERS ++#define shmi_ub_set(shi, ub) do { \ ++ (shi)->shmi_ub = get_beancounter(ub); \ ++ } while (0) ++#define shmi_ub_put(shi) do { \ ++ put_beancounter((shi)->shmi_ub); \ ++ (shi)->shmi_ub = NULL; \ ++ } while (0) ++#else ++#define shmi_ub_set(shi, ub) do { } while (0) ++#define shmi_ub_put(shi) do { } while (0) ++#endif ++ ++UB_DECLARE_FUNC(int, ub_locked_charge(struct mm_struct *mm, ++ unsigned long size)) ++UB_DECLARE_VOID_FUNC(ub_locked_uncharge(struct mm_struct *mm, ++ unsigned long size)) ++UB_DECLARE_FUNC(int, ub_lockedshm_charge(struct shmem_inode_info *shi, ++ unsigned long size)) ++UB_DECLARE_VOID_FUNC(ub_lockedshm_uncharge(struct shmem_inode_info *shi, ++ unsigned long size)) ++ ++UB_DECLARE_FUNC(unsigned long, pages_in_vma_range(struct vm_area_struct *vma, ++ unsigned long addr, unsigned long end)) ++#define pages_in_vma(vma) (pages_in_vma_range(vma, \ ++ vma->vm_start, vma->vm_end)) ++ ++#define UB_PAGE_WEIGHT_SHIFT 24 ++#define UB_PAGE_WEIGHT (1 << UB_PAGE_WEIGHT_SHIFT) ++ ++struct page_beancounter; ++#define PBC_COPY_SAME ((struct page_beancounter *) 1) ++ ++/* Mprotect charging result */ ++#define PRIVVM_ERROR -1 ++#define PRIVVM_NO_CHARGE 0 ++#define PRIVVM_TO_PRIVATE 1 ++#define PRIVVM_TO_SHARED 2 ++ ++extern void fastcall __ub_update_physpages(struct user_beancounter *ub); ++extern void fastcall __ub_update_oomguarpages(struct user_beancounter *ub); ++extern void fastcall __ub_update_privvm(struct user_beancounter *ub); ++ ++#ifdef CONFIG_BC_RSS_ACCOUNTING ++#define PB_DECLARE_FUNC(ret, decl) UB_DECLARE_FUNC(ret, decl) ++#define PB_DECLARE_VOID_FUNC(decl) UB_DECLARE_VOID_FUNC(decl) ++#else ++#define PB_DECLARE_FUNC(ret, decl) static inline ret decl {return (ret)0;} ++#define PB_DECLARE_VOID_FUNC(decl) static inline void decl { } ++#endif ++ ++PB_DECLARE_FUNC(int, pb_alloc(struct page_beancounter **pbc)) ++PB_DECLARE_FUNC(int, pb_alloc_list(struct page_beancounter **pbc, int num)) ++PB_DECLARE_FUNC(int, pb_alloc_all(struct page_beancounter **pbc)) ++PB_DECLARE_VOID_FUNC(pb_add_ref(struct page *page, ++ struct mm_struct *mm, ++ struct page_beancounter **pbc)) ++PB_DECLARE_VOID_FUNC(pb_dup_ref(struct page *page, ++ struct mm_struct *mm, ++ struct page_beancounter **pbc)) ++PB_DECLARE_VOID_FUNC(pb_free_list(struct page_beancounter **pb)) ++PB_DECLARE_VOID_FUNC(pb_free(struct page_beancounter **pb)) ++PB_DECLARE_VOID_FUNC(pb_remove_ref(struct page *page, ++ struct mm_struct *mm)) ++ ++PB_DECLARE_FUNC(struct user_beancounter *, pb_grab_page_ub(struct page *page)) ++#endif ++ ++#ifdef CONFIG_BC_SWAP_ACCOUNTING ++#define SWP_DECLARE_FUNC(ret, decl) UB_DECLARE_FUNC(ret, decl) ++#define SWP_DECLARE_VOID_FUNC(decl) UB_DECLARE_VOID_FUNC(decl) ++#else ++#define SWP_DECLARE_FUNC(ret, decl) static inline ret decl {return (ret)0;} ++#define SWP_DECLARE_VOID_FUNC(decl) static inline void decl { } ++#endif ++ ++struct swap_info_struct; ++SWP_DECLARE_FUNC(int, ub_swap_init(struct swap_info_struct *si, pgoff_t n)) ++SWP_DECLARE_VOID_FUNC(ub_swap_fini(struct swap_info_struct *si)) ++SWP_DECLARE_VOID_FUNC(ub_swapentry_inc(struct swap_info_struct *si, pgoff_t n, ++ struct user_beancounter *ub)) ++SWP_DECLARE_VOID_FUNC(ub_swapentry_dec(struct swap_info_struct *si, pgoff_t n)) +Index: kernel/include/linux/aio.h +=================================================================== +--- kernel.orig/include/linux/aio.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/aio.h 2008-11-24 15:47:46.000000000 +0100 +@@ -245,4 +245,8 @@ + extern unsigned long aio_nr; + extern unsigned long aio_max_nr; + ++void wait_for_all_aios(struct kioctx *ctx); ++extern struct kmem_cache *kioctx_cachep; ++extern void aio_kick_handler(struct work_struct *); ++ + #endif /* __LINUX__AIO_H */ +Index: kernel/include/linux/auto_fs.h +=================================================================== +--- kernel.orig/include/linux/auto_fs.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/auto_fs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -51,6 +51,8 @@ + typedef unsigned long autofs_wqt_t; + #endif + ++typedef __u32 autofs_wqt_t_32bit; ++ + /* Packet types */ + #define autofs_ptype_missing 0 /* Missing entry (mount request) */ + #define autofs_ptype_expire 1 /* Expire entry (umount request) */ +@@ -67,6 +69,13 @@ + char name[NAME_MAX+1]; + }; + ++struct autofs_packet_missing_32bit { ++ struct autofs_packet_hdr hdr; ++ autofs_wqt_t_32bit wait_queue_token; ++ int len; ++ char name[NAME_MAX+1]; ++} __attribute__ ((__packed__)); ++ + /* v3 expire (via ioctl) */ + struct autofs_packet_expire { + struct autofs_packet_hdr hdr; +@@ -74,6 +83,13 @@ + char name[NAME_MAX+1]; + }; + ++/* v3 expire (via ioctl) for 32 bit userspace daemon and x68_64 kernel */ ++struct autofs_packet_expire_32bit { ++ struct autofs_packet_hdr hdr; ++ int len; ++ char name[NAME_MAX+1]; ++} __attribute__ ((__packed__)); ++ + #define AUTOFS_IOC_READY _IO(0x93,0x60) + #define AUTOFS_IOC_FAIL _IO(0x93,0x61) + #define AUTOFS_IOC_CATATONIC _IO(0x93,0x62) +Index: kernel/include/linux/auto_fs4.h +=================================================================== +--- kernel.orig/include/linux/auto_fs4.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/auto_fs4.h 2008-11-24 15:47:46.000000000 +0100 +@@ -59,11 +59,22 @@ + char name[NAME_MAX+1]; + }; + ++/* v4 multi expire (via pipe) for 32 bit userspace daemon and x68_64 kernel */ ++struct autofs_packet_expire_multi_32bit { ++ struct autofs_packet_hdr hdr; ++ autofs_wqt_t_32bit wait_queue_token; ++ int len; ++ char name[NAME_MAX+1]; ++} __attribute__ ((__packed__)); ++ + union autofs_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_packet_missing missing; ++ struct autofs_packet_missing_32bit missing_32bit; + struct autofs_packet_expire expire; ++ struct autofs_packet_expire_32bit expire_32bit; + struct autofs_packet_expire_multi expire_multi; ++ struct autofs_packet_expire_multi_32bit expire_multi_32bit; + }; + + /* autofs v5 common packet struct */ +@@ -80,6 +91,20 @@ + char name[NAME_MAX+1]; + }; + ++/* autofs v5 packet struct for 32 bit userspace daemon and x68_64 kernel*/ ++struct autofs_v5_packet_32bit { ++ struct autofs_packet_hdr hdr; ++ autofs_wqt_t_32bit wait_queue_token; ++ __u32 dev; ++ __u64 ino; ++ __u32 uid; ++ __u32 gid; ++ __u32 pid; ++ __u32 tgid; ++ __u32 len; ++ char name[NAME_MAX+1]; ++} __attribute__ ((__packed__)); ++ + typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; + typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; + typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +@@ -88,6 +113,7 @@ + union autofs_v5_packet_union { + struct autofs_packet_hdr hdr; + struct autofs_v5_packet v5_packet; ++ struct autofs_v5_packet_32bit v5_packet_32bit; + autofs_packet_missing_indirect_t missing_indirect; + autofs_packet_expire_indirect_t expire_indirect; + autofs_packet_missing_direct_t missing_direct; +Index: kernel/include/linux/capability.h +=================================================================== +--- kernel.orig/include/linux/capability.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/capability.h 2008-11-24 15:47:46.000000000 +0100 +@@ -61,6 +61,7 @@ + }; + + #ifdef __KERNEL__ ++#include + + /* #define STRICT_CAP_T_TYPECHECKS */ + +@@ -163,12 +164,9 @@ + + #define CAP_NET_BROADCAST 11 + +-/* Allow interface configuration */ + /* Allow administration of IP firewall, masquerading and accounting */ + /* Allow setting debug option on sockets */ + /* Allow modification of routing tables */ +-/* Allow setting arbitrary process / process group ownership on +- sockets */ + /* Allow binding to any address for transparent proxying */ + /* Allow setting TOS (type of service) */ + /* Allow setting promiscuous mode */ +@@ -199,6 +197,7 @@ + #define CAP_SYS_MODULE 16 + + /* Allow ioperm/iopl access */ ++/* Allow O_DIRECT access */ + /* Allow sending USB messages to any device via /proc/bus/usb */ + + #define CAP_SYS_RAWIO 17 +@@ -217,24 +216,19 @@ + + /* Allow configuration of the secure attention key */ + /* Allow administration of the random device */ +-/* Allow examination and configuration of disk quotas */ + /* Allow configuring the kernel's syslog (printk behaviour) */ + /* Allow setting the domainname */ + /* Allow setting the hostname */ + /* Allow calling bdflush() */ +-/* Allow mount() and umount(), setting up new smb connection */ ++/* Allow setting up new smb connection */ + /* Allow some autofs root ioctls */ + /* Allow nfsservctl */ + /* Allow VM86_REQUEST_IRQ */ + /* Allow to read/write pci config on alpha */ + /* Allow irix_prctl on mips (setstacksize) */ + /* Allow flushing all cache on m68k (sys_cacheflush) */ +-/* Allow removing semaphores */ +-/* Used instead of CAP_CHOWN to "chown" IPC message queues, semaphores +- and shared memory */ + /* Allow locking/unlocking of shared memory segment */ + /* Allow turning swap on/off */ +-/* Allow forged pids on socket credentials passing */ + /* Allow setting readahead and flushing buffers on block devices */ + /* Allow setting geometry in floppy driver */ + /* Allow turning DMA on/off in xd driver */ +@@ -252,6 +246,8 @@ + arbitrary SCSI commands */ + /* Allow setting encryption key on loopback filesystem */ + /* Allow setting zone reclaim policy */ ++/* Modify data journaling mode on ext[34] filesystem (uses journaling ++ resources) */ + + #define CAP_SYS_ADMIN 21 + +@@ -271,7 +267,7 @@ + /* Override resource limits. Set resource limits. */ + /* Override quota limits. */ + /* Override reserved space on ext2 filesystem */ +-/* Modify data journaling mode on ext3 filesystem (uses journaling ++/* Modify data journaling mode on ext[34] filesystem (uses journaling + resources) */ + /* NOTE: ext2 honors fsuid when checking for resource overrides, so + you can override using fsuid too */ +@@ -307,8 +303,59 @@ + + #define CAP_SETFCAP 31 + ++/* ++ * Important note: VZ capabilities do intersect with CAP_AUDIT ++ * this is due to compatibility reasons. Nothing bad. ++ * Both VZ and Audit/SELinux caps are disabled in VPSs. ++ */ ++ ++/* Allow access to all information. In the other case some structures will be ++ hiding to ensure different Virtual Environment non-interaction on the same ++ node */ ++#define CAP_SETVEID 29 ++ ++#define CAP_VE_ADMIN 30 ++ + #ifdef __KERNEL__ + ++#ifdef CONFIG_VE ++ ++/* Replacement for CAP_NET_ADMIN: ++ delegated rights to the Virtual environment of its network administration. ++ For now the following rights have been delegated: ++ ++ Allow setting arbitrary process / process group ownership on sockets ++ Allow interface configuration ++ */ ++#define CAP_VE_NET_ADMIN CAP_VE_ADMIN ++ ++/* Replacement for CAP_SYS_ADMIN: ++ delegated rights to the Virtual environment of its administration. ++ For now the following rights have been delegated: ++ */ ++/* Allow mount/umount/remount */ ++/* Allow examination and configuration of disk quotas */ ++/* Allow removing semaphores */ ++/* Used instead of CAP_CHOWN to "chown" IPC message queues, semaphores ++ and shared memory */ ++/* Allow locking/unlocking of shared memory segment */ ++/* Allow forged pids on socket credentials passing */ ++ ++#define CAP_VE_SYS_ADMIN CAP_VE_ADMIN ++#else ++#define CAP_VE_NET_ADMIN CAP_NET_ADMIN ++#define CAP_VE_SYS_ADMIN CAP_SYS_ADMIN ++#endif ++ ++/* ++ * Bounding set ++ */ ++#ifdef CONFIG_VE ++#define cap_bset (get_exec_env()->ve_cap_bset) ++#else ++extern kernel_cap_t cap_bset; ++#endif ++ + /* + * Internal kernel functions only + */ +@@ -367,13 +414,23 @@ + #define cap_issubset(a,set) (!(cap_t(a) & ~cap_t(set))) + + #define cap_clear(c) do { cap_t(c) = 0; } while(0) ++#ifndef CONFIG_VE + #define cap_set_full(c) do { cap_t(c) = ~0; } while(0) ++#else ++#define cap_set_full(c) \ ++ do { \ ++ cap_t(c) = ve_is_super(get_exec_env()) ? \ ++ ~0 : \ ++ cap_bset; \ ++ } while(0) ++#endif + #define cap_mask(c,mask) do { cap_t(c) &= cap_t(mask); } while(0) + + #define cap_is_fs_cap(c) (CAP_TO_MASK(c) & CAP_FS_MASK) + + int capable(int cap); + int __capable(struct task_struct *t, int cap); ++extern spinlock_t task_capability_lock; + + #endif /* __KERNEL__ */ + +Index: kernel/include/linux/cfq-iosched.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/cfq-iosched.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,151 @@ ++#ifndef _LINUX_CFQ_IOSCHED_H ++#define _LINUX_CFQ_IOSCHED_H ++ ++#include ++#include ++#include ++ ++extern struct kmem_cache *cfq_pool; ++ ++#define CFQ_PRIO_LISTS IOPRIO_BE_NR ++ ++/* ++ * Most of our rbtree usage is for sorting with min extraction, so ++ * if we cache the leftmost node we don't have to walk down the tree ++ * to find it. Idea borrowed from Ingo Molnars CFS scheduler. We should ++ * move this into the elevator for the rq sorting as well. ++ */ ++struct cfq_rb_root { ++ struct rb_root rb; ++ struct rb_node *left; ++}; ++#define CFQ_RB_ROOT (struct cfq_rb_root) { RB_ROOT, NULL, } ++ ++/* ++ * Per (Device, UBC) queue data ++ */ ++struct cfq_bc_data { ++ /* for ub.iopriv->cfq_bc_head */ ++ struct list_head cfq_bc_list; ++ /* for cfqd->act_cfq_bc_head */ ++ struct list_head act_cfq_bc_list; ++ ++ struct cfq_data *cfqd; ++ struct ub_iopriv *ub_iopriv; ++ ++ /* ++ * rr list of queues with requests and the count of them ++ */ ++ struct cfq_rb_root service_tree; ++ ++ int cur_prio; ++ int cur_end_prio; ++ ++ unsigned long rqnum; ++ unsigned long on_dispatch; ++ ++ /* ++ * async queue for each priority case ++ */ ++ struct cfq_queue *async_cfqq[2][CFQ_PRIO_LISTS]; ++ struct cfq_queue *async_idle_cfqq; ++}; ++ ++/* ++ * Per block device queue structure ++ */ ++struct cfq_data { ++ struct request_queue *queue; ++ ++#ifndef CONFIG_BC_IO_SCHED ++ struct cfq_bc_data cfq_bc; ++#endif ++ unsigned int busy_queues; ++ ++ int rq_in_driver; ++ int sync_flight; ++ int hw_tag; ++ ++ /* ++ * idle window management ++ */ ++ struct timer_list idle_slice_timer; ++ struct work_struct unplug_work; ++ ++ struct cfq_queue *active_queue; ++ struct cfq_io_context *active_cic; ++ ++ struct timer_list idle_class_timer; ++ ++ sector_t last_position; ++ unsigned long last_end_request; ++ ++ /* ++ * tunables, see top of file ++ */ ++ unsigned int cfq_quantum; ++ unsigned int cfq_fifo_expire[2]; ++ unsigned int cfq_back_penalty; ++ unsigned int cfq_back_max; ++ unsigned int cfq_slice[2]; ++ unsigned int cfq_slice_async_rq; ++ unsigned int cfq_slice_idle; ++ ++ struct list_head cic_list; ++ ++ /* list of ub that have requests */ ++ struct list_head act_cfq_bc_head; ++ /* ub that owns a timeslice at the moment */ ++ struct cfq_bc_data *active_cfq_bc; ++ unsigned int cfq_ub_slice; ++ unsigned long slice_end; ++ int virt_mode; ++ int write_virt_mode; ++}; ++ ++/* ++ * Per process-grouping structure ++ */ ++struct cfq_queue { ++ /* reference count */ ++ atomic_t ref; ++ /* parent cfq_data */ ++ struct cfq_data *cfqd; ++ /* service_tree member */ ++ struct rb_node rb_node; ++ /* service_tree key */ ++ unsigned long rb_key; ++ /* sorted list of pending requests */ ++ struct rb_root sort_list; ++ /* if fifo isn't expired, next request to serve */ ++ struct request *next_rq; ++ /* requests queued in sort_list */ ++ int queued[2]; ++ /* currently allocated requests */ ++ int allocated[2]; ++ /* pending metadata requests */ ++ int meta_pending; ++ /* fifo list of requests in sort_list */ ++ struct list_head fifo; ++ ++ unsigned long slice_end; ++ long slice_resid; ++ ++ /* number of requests that are on the dispatch list or inside driver */ ++ int dispatched; ++ ++ /* io prio of this group */ ++ unsigned short ioprio, org_ioprio; ++ unsigned short ioprio_class, org_ioprio_class; ++ ++ /* various state flags, see below */ ++ unsigned int flags; ++ ++ struct cfq_bc_data *cfq_bc; ++}; ++ ++static void inline cfq_init_cfq_bc(struct cfq_bc_data *cfq_bc) ++{ ++ cfq_bc->service_tree = CFQ_RB_ROOT; ++} ++#endif /* _LINUX_CFQ_IOSCHED_H */ +Index: kernel/include/linux/compat.h +=================================================================== +--- kernel.orig/include/linux/compat.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/compat.h 2008-11-24 15:47:46.000000000 +0100 +@@ -233,6 +233,7 @@ + asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp); + + extern int compat_printk(const char *fmt, ...); ++extern int ve_compat_printk(int dst, const char *fmt, ...); + extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat); + + asmlinkage long compat_sys_migrate_pages(compat_pid_t pid, +Index: kernel/include/linux/console.h +=================================================================== +--- kernel.orig/include/linux/console.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/console.h 2008-11-24 15:47:46.000000000 +0100 +@@ -147,4 +147,22 @@ + #define VESA_HSYNC_SUSPEND 2 + #define VESA_POWERDOWN 3 + ++ ++#include ++#include ++#include ++ ++struct printk_aligned { ++ int v; ++} ____cacheline_aligned; ++extern struct printk_aligned printk_no_wake_var[NR_CPUS]; ++#define __printk_no_wake (printk_no_wake_var[smp_processor_id()].v) ++#define printk_no_wake ({ \ ++ int v; \ ++ preempt_disable(); \ ++ v = __printk_no_wake; \ ++ preempt_enable_no_resched(); \ ++ v; \ ++ }) ++ + #endif /* _LINUX_CONSOLE_H */ +Index: kernel/include/linux/cpt_image.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/cpt_image.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1705 @@ ++/* ++ * ++ * include/linux/cpt_image.h ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __CPT_IMAGE_H_ ++#define __CPT_IMAGE_H_ 1 ++ ++#define CPT_NULL (~0ULL) ++#define CPT_NOINDEX (~0U) ++ ++/* ++ * Image file layout. ++ * ++ * - major header ++ * - sections[] ++ * ++ * Each section is: ++ * - section header ++ * - array of objects ++ * ++ * All data records are arch independent, 64 bit aligned. ++ */ ++ ++enum _cpt_object_type ++{ ++ CPT_OBJ_TASK = 0, ++ CPT_OBJ_MM, ++ CPT_OBJ_FS, ++ CPT_OBJ_FILES, ++ CPT_OBJ_FILE, ++ CPT_OBJ_SIGHAND_STRUCT, ++ CPT_OBJ_SIGNAL_STRUCT, ++ CPT_OBJ_TTY, ++ CPT_OBJ_SOCKET, ++ CPT_OBJ_SYSVSEM_UNDO, ++ CPT_OBJ_NAMESPACE, ++ CPT_OBJ_SYSV_SHM, ++ CPT_OBJ_INODE, ++ CPT_OBJ_UBC, ++ CPT_OBJ_SLM_SGREG, ++ CPT_OBJ_SLM_REGOBJ, ++ CPT_OBJ_SLM_MM, ++ CPT_OBJ_MAX, ++ /* The objects above are stored in memory while checkpointing */ ++ ++ CPT_OBJ_VMA = 1024, ++ CPT_OBJ_FILEDESC, ++ CPT_OBJ_SIGHANDLER, ++ CPT_OBJ_SIGINFO, ++ CPT_OBJ_LASTSIGINFO, ++ CPT_OBJ_SYSV_SEM, ++ CPT_OBJ_SKB, ++ CPT_OBJ_FLOCK, ++ CPT_OBJ_OPENREQ, ++ CPT_OBJ_VFSMOUNT, ++ CPT_OBJ_TRAILER, ++ CPT_OBJ_SYSVSEM_UNDO_REC, ++ CPT_OBJ_NET_DEVICE, ++ CPT_OBJ_NET_IFADDR, ++ CPT_OBJ_NET_ROUTE, ++ CPT_OBJ_NET_CONNTRACK, ++ CPT_OBJ_NET_CONNTRACK_EXPECT, ++ CPT_OBJ_AIO_CONTEXT, ++ CPT_OBJ_VEINFO, ++ CPT_OBJ_EPOLL, ++ CPT_OBJ_EPOLL_FILE, ++ CPT_OBJ_SKFILTER, ++ CPT_OBJ_SIGALTSTACK, ++ CPT_OBJ_SOCK_MCADDR, ++ CPT_OBJ_BIND_MNT, ++ CPT_OBJ_SYSVMSG, ++ CPT_OBJ_SYSVMSG_MSG, ++ ++ CPT_OBJ_X86_REGS = 4096, ++ CPT_OBJ_X86_64_REGS, ++ CPT_OBJ_PAGES, ++ CPT_OBJ_COPYPAGES, ++ CPT_OBJ_REMAPPAGES, ++ CPT_OBJ_LAZYPAGES, ++ CPT_OBJ_NAME, ++ CPT_OBJ_BITS, ++ CPT_OBJ_REF, ++ CPT_OBJ_ITERPAGES, ++ CPT_OBJ_ITERYOUNGPAGES, ++ CPT_OBJ_VSYSCALL, ++ CPT_OBJ_IA64_REGS, ++ CPT_OBJ_INOTIFY, ++ CPT_OBJ_INOTIFY_WATCH, ++ CPT_OBJ_INOTIFY_EVENT, ++ CPT_OBJ_TASK_AUX, ++ CPT_OBJ_NET_TUNTAP, ++}; ++ ++#define CPT_ALIGN(n) (((n)+7)&~7) ++ ++struct cpt_major_hdr ++{ ++ __u8 cpt_signature[4]; /* Magic number */ ++ __u16 cpt_hdrlen; /* Length of this header */ ++ __u16 cpt_image_version; /* Format of this file */ ++#define CPT_VERSION_MINOR(a) ((a) & 0xf) ++#define CPT_VERSION_8 0 ++#define CPT_VERSION_9 0x100 ++#define CPT_VERSION_9_1 0x101 ++#define CPT_VERSION_16 0x200 ++#define CPT_VERSION_18 0x300 ++#define CPT_VERSION_20 0x400 ++#define CPT_VERSION_24 0x500 ++ __u16 cpt_os_arch; /* Architecture */ ++#define CPT_OS_ARCH_I386 0 ++#define CPT_OS_ARCH_EMT64 1 ++#define CPT_OS_ARCH_IA64 2 ++ __u16 __cpt_pad1; ++ __u32 cpt_ve_features; /* VE features */ ++ __u32 cpt_ve_features2; /* VE features */ ++ __u16 cpt_pagesize; /* Page size used by OS */ ++ __u16 cpt_hz; /* HZ used by OS */ ++ __u64 cpt_start_jiffies64; /* Jiffies */ ++ __u32 cpt_start_sec; /* Seconds */ ++ __u32 cpt_start_nsec; /* Nanoseconds */ ++ __u32 cpt_cpu_caps[4]; /* CPU capabilities */ ++ __u32 cpt_kernel_config[4]; /* Kernel config */ ++ __u64 cpt_iptables_mask; /* Used netfilter modules */ ++} __attribute__ ((aligned (8))); ++ ++#define CPT_SIGNATURE0 0x79 ++#define CPT_SIGNATURE1 0x1c ++#define CPT_SIGNATURE2 0x01 ++#define CPT_SIGNATURE3 0x63 ++ ++/* CPU capabilities */ ++#define CPT_CPU_X86_CMOV 0 ++#define CPT_CPU_X86_FXSR 1 ++#define CPT_CPU_X86_SSE 2 ++#define CPT_CPU_X86_SSE2 3 ++#define CPT_CPU_X86_MMX 4 ++#define CPT_CPU_X86_3DNOW 5 ++#define CPT_CPU_X86_3DNOW2 6 ++#define CPT_CPU_X86_SEP 7 ++#define CPT_CPU_X86_EMT64 8 ++#define CPT_CPU_X86_IA64 9 ++#define CPT_CPU_X86_SYSCALL 10 ++#define CPT_CPU_X86_SYSCALL32 11 ++#define CPT_CPU_X86_SEP32 12 ++ ++/* Unsupported features */ ++#define CPT_EXTERNAL_PROCESS 16 ++#define CPT_NAMESPACES 17 ++#define CPT_SCHEDULER_POLICY 18 ++#define CPT_PTRACED_FROM_VE0 19 ++#define CPT_UNSUPPORTED_FSTYPE 20 ++#define CPT_BIND_MOUNT 21 ++#define CPT_UNSUPPORTED_NETDEV 22 ++#define CPT_UNSUPPORTED_MISC 23 ++ ++/* This mask is used to determine whether VE ++ has some unsupported features or not */ ++#define CPT_UNSUPPORTED_MASK 0xffff0000UL ++ ++#define CPT_KERNEL_CONFIG_PAE 0 ++ ++struct cpt_section_hdr ++{ ++ __u64 cpt_next; ++ __u32 cpt_section; ++ __u16 cpt_hdrlen; ++ __u16 cpt_align; ++} __attribute__ ((aligned (8))); ++ ++enum ++{ ++ CPT_SECT_ERROR, /* Error section, content is string */ ++ CPT_SECT_VEINFO, ++ CPT_SECT_FILES, /* Files. Content is array of file objects */ ++ CPT_SECT_TASKS, ++ CPT_SECT_MM, ++ CPT_SECT_FILES_STRUCT, ++ CPT_SECT_FS, ++ CPT_SECT_SIGHAND_STRUCT, ++ CPT_SECT_TTY, ++ CPT_SECT_SOCKET, ++ CPT_SECT_NAMESPACE, ++ CPT_SECT_SYSVSEM_UNDO, ++ CPT_SECT_INODE, /* Inodes with i->i_nlink==0 and ++ * deleted dentires with inodes not ++ * referenced inside dumped process. ++ */ ++ CPT_SECT_SYSV_SHM, ++ CPT_SECT_SYSV_SEM, ++ CPT_SECT_ORPHANS, ++ CPT_SECT_NET_DEVICE, ++ CPT_SECT_NET_IFADDR, ++ CPT_SECT_NET_ROUTE, ++ CPT_SECT_NET_IPTABLES, ++ CPT_SECT_NET_CONNTRACK, ++ CPT_SECT_NET_CONNTRACK_VE0, ++ CPT_SECT_UTSNAME, ++ CPT_SECT_TRAILER, ++ CPT_SECT_UBC, ++ CPT_SECT_SLM_SGREGS, ++ CPT_SECT_SLM_REGOBJS, ++/* Due to silly mistake we cannot index sections beyond this value */ ++#define CPT_SECT_MAX_INDEX (CPT_SECT_SLM_REGOBJS+1) ++ CPT_SECT_EPOLL, ++ CPT_SECT_VSYSCALL, ++ CPT_SECT_INOTIFY, ++ CPT_SECT_SYSV_MSG, ++ CPT_SECT_MAX ++}; ++ ++struct cpt_major_tail ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_lazypages; ++ __u32 cpt_64bit; ++ __u64 cpt_sections[CPT_SECT_MAX_INDEX]; ++ __u32 cpt_nsect; ++ __u8 cpt_signature[4]; /* Magic number */ ++} __attribute__ ((aligned (8))); ++ ++ ++/* Common object header. */ ++struct cpt_object_hdr ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++} __attribute__ ((aligned (8))); ++ ++enum _cpt_content_type { ++ CPT_CONTENT_VOID, ++ CPT_CONTENT_ARRAY, ++ CPT_CONTENT_DATA, ++ CPT_CONTENT_NAME, ++ ++ CPT_CONTENT_STACK, ++ CPT_CONTENT_X86_FPUSTATE_OLD, ++ CPT_CONTENT_X86_FPUSTATE, ++ CPT_CONTENT_MM_CONTEXT, ++ CPT_CONTENT_SEMARRAY, ++ CPT_CONTENT_SEMUNDO, ++ CPT_CONTENT_NLMARRAY, ++ CPT_CONTENT_MAX ++}; ++ ++/* CPT_OBJ_BITS: encode array of bytes */ ++struct cpt_obj_bits ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_size; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++ ++/* CPT_OBJ_REF: a reference to another object */ ++struct cpt_obj_ref ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_pos; ++} __attribute__ ((aligned (8))); ++ ++/* CPT_OBJ_VEINFO: various ve specific data */ ++struct cpt_veinfo_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ /* ipc ctls */ ++ __u32 shm_ctl_max; ++ __u32 shm_ctl_all; ++ __u32 shm_ctl_mni; ++ __u32 msg_ctl_max; ++ __u32 msg_ctl_mni; ++ __u32 msg_ctl_mnb; ++ __u32 sem_ctl_arr[4]; ++ ++ /* start time */ ++ __u64 start_timespec_delta; ++ __u64 start_jiffies_delta; ++ ++ /* later extension */ ++ __u32 last_pid; ++ __u32 pad1; ++ __u64 reserved[8]; ++} __attribute__ ((aligned (8))); ++ ++/* CPT_OBJ_FILE: one struct file */ ++struct cpt_file_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_flags; ++ __u32 cpt_mode; ++ __u64 cpt_pos; ++ __u32 cpt_uid; ++ __u32 cpt_gid; ++ ++ __u32 cpt_i_mode; ++ __u32 cpt_lflags; ++#define CPT_DENTRY_DELETED 1 ++#define CPT_DENTRY_ROOT 2 ++#define CPT_DENTRY_CLONING 4 ++#define CPT_DENTRY_PROC 8 ++#define CPT_DENTRY_EPOLL 0x10 ++#define CPT_DENTRY_REPLACED 0x20 ++#define CPT_DENTRY_INOTIFY 0x40 ++#define CPT_DENTRY_FUTEX 0x80 ++#define CPT_DENTRY_TUNTAP 0x100 ++ __u64 cpt_inode; ++ __u64 cpt_priv; ++ ++ __u32 cpt_fown_fd; ++ __u32 cpt_fown_pid; ++#define CPT_FOWN_STRAY_PID 0 ++ __u32 cpt_fown_uid; ++ __u32 cpt_fown_euid; ++ __u32 cpt_fown_signo; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++/* Followed by file name, encoded as CPT_OBJ_NAME */ ++ ++struct cpt_epoll_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_file; ++} __attribute__ ((aligned (8))); ++/* Followed by array of struct cpt_epoll_file */ ++ ++struct cpt_epoll_file_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_file; ++ __u32 cpt_fd; ++ __u32 cpt_events; ++ __u64 cpt_data; ++ __u32 cpt_revents; ++ __u32 cpt_ready; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_inotify_wd_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_wd; ++ __u32 cpt_mask; ++} __attribute__ ((aligned (8))); ++/* Followed by cpt_file_image of inode to watch */ ++ ++struct cpt_inotify_ev_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_wd; ++ __u32 cpt_mask; ++ __u32 cpt_cookie; ++ __u32 cpt_namelen; ++} __attribute__ ((aligned (8))); ++/* Followed by name */ ++ ++struct cpt_inotify_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_file; ++ __u32 cpt_user; ++ __u32 cpt_max_events; ++ __u32 cpt_last_wd; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++/* Followed by array of struct cpt_inotify_wd_image and cpt_inotify_ev_image */ ++ ++ ++/* CPT_OBJ_FILEDESC: one file descriptor */ ++struct cpt_fd_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_fd; ++ __u32 cpt_flags; ++#define CPT_FD_FLAG_CLOSEEXEC 1 ++ __u64 cpt_file; ++} __attribute__ ((aligned (8))); ++ ++/* CPT_OBJ_FILES: one files_struct */ ++struct cpt_files_struct_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_index; ++ __u32 cpt_max_fds; ++ __u32 cpt_next_fd; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++/* Followed by array of cpt_fd_image */ ++ ++/* CPT_OBJ_FS: one fs_struct */ ++struct cpt_fs_struct_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_umask; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++/* Followed by two/three CPT_OBJ_FILENAME for root, pwd and, optionally, altroot */ ++ ++/* CPT_OBJ_INODE: one struct inode */ ++struct cpt_inode_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_dev; ++ __u64 cpt_ino; ++ __u32 cpt_mode; ++ __u32 cpt_nlink; ++ __u32 cpt_uid; ++ __u32 cpt_gid; ++ __u64 cpt_rdev; ++ __u64 cpt_size; ++ __u64 cpt_blksize; ++ __u64 cpt_atime; ++ __u64 cpt_mtime; ++ __u64 cpt_ctime; ++ __u64 cpt_blocks; ++ __u32 cpt_sb; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++ ++/* CPT_OBJ_VFSMOUNT: one vfsmount */ ++struct cpt_vfsmount_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_mntflags; ++#define CPT_MNT_BIND 0x80000000 ++#define CPT_MNT_EXT 0x40000000 ++ __u32 cpt_flags; ++} __attribute__ ((aligned (8))); ++ ++ ++struct cpt_flock_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_owner; ++ __u32 cpt_pid; ++ __u64 cpt_start; ++ __u64 cpt_end; ++ __u32 cpt_flags; ++ __u32 cpt_type; ++} __attribute__ ((aligned (8))); ++ ++ ++struct cpt_tty_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_flags; ++ __u32 cpt_link; ++ __u32 cpt_index; ++ __u32 cpt_drv_type; ++ __u32 cpt_drv_subtype; ++ __u32 cpt_drv_flags; ++ __u8 cpt_packet; ++ __u8 cpt_stopped; ++ __u8 cpt_hw_stopped; ++ __u8 cpt_flow_stopped; ++ ++ __u32 cpt_canon_data; ++ __u32 cpt_canon_head; ++ __u32 cpt_canon_column; ++ __u32 cpt_column; ++ __u8 cpt_ctrl_status; ++ __u8 cpt_erasing; ++ __u8 cpt_lnext; ++ __u8 cpt_icanon; ++ __u8 cpt_raw; ++ __u8 cpt_real_raw; ++ __u8 cpt_closing; ++ __u8 __cpt_pad1; ++ __u16 cpt_minimum_to_wake; ++ __u16 __cpt_pad2; ++ __u32 cpt_pgrp; ++ __u32 cpt_session; ++ __u32 cpt_c_line; ++ __u8 cpt_name[64]; ++ __u16 cpt_ws_row; ++ __u16 cpt_ws_col; ++ __u16 cpt_ws_prow; ++ __u16 cpt_ws_pcol; ++ __u8 cpt_c_cc[32]; ++ __u32 cpt_c_iflag; ++ __u32 cpt_c_oflag; ++ __u32 cpt_c_cflag; ++ __u32 cpt_c_lflag; ++ __u32 cpt_read_flags[4096/32]; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_sock_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_file; ++ __u32 cpt_parent; ++ __u32 cpt_index; ++ ++ __u64 cpt_ssflags; ++ __u16 cpt_type; ++ __u16 cpt_family; ++ __u8 cpt_sstate; ++ __u8 cpt_passcred; ++ __u8 cpt_state; ++ __u8 cpt_reuse; ++ ++ __u8 cpt_zapped; ++ __u8 cpt_shutdown; ++ __u8 cpt_userlocks; ++ __u8 cpt_no_check; ++ __u8 cpt_debug; ++ __u8 cpt_rcvtstamp; ++ __u8 cpt_localroute; ++ __u8 cpt_protocol; ++ ++ __u32 cpt_err; ++ __u32 cpt_err_soft; ++ ++ __u16 cpt_max_ack_backlog; ++ __u16 __cpt_pad1; ++ __u32 cpt_priority; ++ ++ __u32 cpt_rcvlowat; ++ __u32 cpt_bound_dev_if; ++ ++ __u64 cpt_rcvtimeo; ++ __u64 cpt_sndtimeo; ++ __u32 cpt_rcvbuf; ++ __u32 cpt_sndbuf; ++ __u64 cpt_flags; ++ __u64 cpt_lingertime; ++ __u32 cpt_peer_pid; ++ __u32 cpt_peer_uid; ++ ++ __u32 cpt_peer_gid; ++ __u32 cpt_laddrlen; ++ __u32 cpt_laddr[128/4]; ++ __u32 cpt_raddrlen; ++ __u32 cpt_raddr[128/4]; ++ /* AF_UNIX */ ++ __u32 cpt_peer; ++ ++ __u8 cpt_socketpair; ++ __u8 cpt_deleted; ++ __u16 __cpt_pad4; ++ __u32 __cpt_pad5; ++/* ++ struct sk_filter *sk_filter; ++ */ ++ ++ __u64 cpt_stamp; ++ __u32 cpt_daddr; ++ __u16 cpt_dport; ++ __u16 cpt_sport; ++ ++ __u32 cpt_saddr; ++ __u32 cpt_rcv_saddr; ++ ++ __u32 cpt_uc_ttl; ++ __u32 cpt_tos; ++ ++ __u32 cpt_cmsg_flags; ++ __u32 cpt_mc_index; ++ ++ __u32 cpt_mc_addr; ++/* ++ struct ip_options *opt; ++ */ ++ __u8 cpt_hdrincl; ++ __u8 cpt_mc_ttl; ++ __u8 cpt_mc_loop; ++ __u8 cpt_pmtudisc; ++ ++ __u8 cpt_recverr; ++ __u8 cpt_freebind; ++ __u16 cpt_idcounter; ++ __u32 cpt_cork_flags; ++ ++ __u32 cpt_cork_fragsize; ++ __u32 cpt_cork_length; ++ __u32 cpt_cork_addr; ++ __u32 cpt_cork_saddr; ++ __u32 cpt_cork_daddr; ++ __u32 cpt_cork_oif; ++ ++ __u32 cpt_udp_pending; ++ __u32 cpt_udp_corkflag; ++ __u16 cpt_udp_encap; ++ __u16 cpt_udp_len; ++ __u32 __cpt_pad7; ++ ++ __u64 cpt_saddr6[2]; ++ __u64 cpt_rcv_saddr6[2]; ++ __u64 cpt_daddr6[2]; ++ __u32 cpt_flow_label6; ++ __u32 cpt_frag_size6; ++ __u32 cpt_hop_limit6; ++ __u32 cpt_mcast_hops6; ++ ++ __u32 cpt_mcast_oif6; ++ __u8 cpt_rxopt6; ++ __u8 cpt_mc_loop6; ++ __u8 cpt_recverr6; ++ __u8 cpt_sndflow6; ++ ++ __u8 cpt_pmtudisc6; ++ __u8 cpt_ipv6only6; ++ __u8 cpt_mapped; ++ __u8 __cpt_pad8; ++ __u32 cpt_pred_flags; ++ ++ __u32 cpt_rcv_nxt; ++ __u32 cpt_snd_nxt; ++ ++ __u32 cpt_snd_una; ++ __u32 cpt_snd_sml; ++ ++ __u32 cpt_rcv_tstamp; ++ __u32 cpt_lsndtime; ++ ++ __u8 cpt_tcp_header_len; ++ __u8 cpt_ack_pending; ++ __u8 cpt_quick; ++ __u8 cpt_pingpong; ++ __u8 cpt_blocked; ++ __u8 __cpt_pad9; ++ __u16 __cpt_pad10; ++ ++ __u32 cpt_ato; ++ __u32 cpt_ack_timeout; ++ ++ __u32 cpt_lrcvtime; ++ __u16 cpt_last_seg_size; ++ __u16 cpt_rcv_mss; ++ ++ __u32 cpt_snd_wl1; ++ __u32 cpt_snd_wnd; ++ ++ __u32 cpt_max_window; ++ __u32 cpt_pmtu_cookie; ++ ++ __u32 cpt_mss_cache; ++ __u16 cpt_mss_cache_std; ++ __u16 cpt_mss_clamp; ++ ++ __u16 cpt_ext_header_len; ++ __u16 cpt_ext2_header_len; ++ __u8 cpt_ca_state; ++ __u8 cpt_retransmits; ++ __u8 cpt_reordering; ++ __u8 cpt_frto_counter; ++ ++ __u32 cpt_frto_highmark; ++ __u8 cpt_adv_cong; ++ __u8 cpt_defer_accept; ++ __u8 cpt_backoff; ++ __u8 __cpt_pad11; ++ ++ __u32 cpt_srtt; ++ __u32 cpt_mdev; ++ ++ __u32 cpt_mdev_max; ++ __u32 cpt_rttvar; ++ ++ __u32 cpt_rtt_seq; ++ __u32 cpt_rto; ++ ++ __u32 cpt_packets_out; ++ __u32 cpt_left_out; ++ ++ __u32 cpt_retrans_out; ++ __u32 cpt_snd_ssthresh; ++ ++ __u32 cpt_snd_cwnd; ++ __u16 cpt_snd_cwnd_cnt; ++ __u16 cpt_snd_cwnd_clamp; ++ ++ __u32 cpt_snd_cwnd_used; ++ __u32 cpt_snd_cwnd_stamp; ++ ++ __u32 cpt_timeout; ++ __u32 cpt_ka_timeout; ++ ++ __u32 cpt_rcv_wnd; ++ __u32 cpt_rcv_wup; ++ ++ __u32 cpt_write_seq; ++ __u32 cpt_pushed_seq; ++ ++ __u32 cpt_copied_seq; ++ __u8 cpt_tstamp_ok; ++ __u8 cpt_wscale_ok; ++ __u8 cpt_sack_ok; ++ __u8 cpt_saw_tstamp; ++ ++ __u8 cpt_snd_wscale; ++ __u8 cpt_rcv_wscale; ++ __u8 cpt_nonagle; ++ __u8 cpt_keepalive_probes; ++ __u32 cpt_rcv_tsval; ++ ++ __u32 cpt_rcv_tsecr; ++ __u32 cpt_ts_recent; ++ ++ __u64 cpt_ts_recent_stamp; ++ __u16 cpt_user_mss; ++ __u8 cpt_dsack; ++ __u8 cpt_eff_sacks; ++ __u32 cpt_sack_array[2*5]; ++ __u32 cpt_window_clamp; ++ ++ __u32 cpt_rcv_ssthresh; ++ __u8 cpt_probes_out; ++ __u8 cpt_num_sacks; ++ __u16 cpt_advmss; ++ ++ __u8 cpt_syn_retries; ++ __u8 cpt_ecn_flags; ++ __u16 cpt_prior_ssthresh; ++ __u32 cpt_lost_out; ++ ++ __u32 cpt_sacked_out; ++ __u32 cpt_fackets_out; ++ ++ __u32 cpt_high_seq; ++ __u32 cpt_retrans_stamp; ++ ++ __u32 cpt_undo_marker; ++ __u32 cpt_undo_retrans; ++ ++ __u32 cpt_urg_seq; ++ __u16 cpt_urg_data; ++ __u8 cpt_pending; ++ __u8 cpt_urg_mode; ++ ++ __u32 cpt_snd_up; ++ __u32 cpt_keepalive_time; ++ ++ __u32 cpt_keepalive_intvl; ++ __u32 cpt_linger2; ++ ++ __u32 cpt_rcvrtt_rtt; ++ __u32 cpt_rcvrtt_seq; ++ ++ __u32 cpt_rcvrtt_time; ++ __u32 __cpt_pad12; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_sockmc_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u16 cpt_family; ++ __u16 cpt_mode; ++ __u32 cpt_ifindex; ++ __u32 cpt_mcaddr[4]; ++} __attribute__ ((aligned (8))); ++/* Followed by array of source addresses, each zero padded to 16 bytes */ ++ ++struct cpt_openreq_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_rcv_isn; ++ __u32 cpt_snt_isn; ++ ++ __u16 cpt_rmt_port; ++ __u16 cpt_mss; ++ __u8 cpt_family; ++ __u8 cpt_retrans; ++ __u8 cpt_snd_wscale; ++ __u8 cpt_rcv_wscale; ++ ++ __u8 cpt_tstamp_ok; ++ __u8 cpt_sack_ok; ++ __u8 cpt_wscale_ok; ++ __u8 cpt_ecn_ok; ++ __u8 cpt_acked; ++ __u8 __cpt_pad1; ++ __u16 __cpt_pad2; ++ ++ __u32 cpt_window_clamp; ++ __u32 cpt_rcv_wnd; ++ __u32 cpt_ts_recent; ++ __u32 cpt_iif; ++ __u64 cpt_expires; ++ ++ __u64 cpt_loc_addr[2]; ++ __u64 cpt_rmt_addr[2]; ++/* ++ struct ip_options *opt; ++ */ ++ ++} __attribute__ ((aligned (8))); ++ ++struct cpt_skb_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_owner; ++ __u32 cpt_queue; ++#define CPT_SKB_NQ 0 ++#define CPT_SKB_RQ 1 ++#define CPT_SKB_WQ 2 ++#define CPT_SKB_OFOQ 3 ++ ++ __u64 cpt_stamp; ++ __u32 cpt_len; ++ __u32 cpt_hspace; ++ __u32 cpt_tspace; ++ __u32 cpt_h; ++ __u32 cpt_nh; ++ __u32 cpt_mac; ++ ++ __u64 cpt_cb[5]; ++ __u32 cpt_mac_len; ++ __u32 cpt_csum; ++ __u8 cpt_local_df; ++ __u8 cpt_pkt_type; ++ __u8 cpt_ip_summed; ++ __u8 __cpt_pad1; ++ __u32 cpt_priority; ++ __u16 cpt_protocol; ++ __u16 cpt_security; ++ __u16 cpt_gso_segs; ++ __u16 cpt_gso_size; ++} __attribute__ ((aligned (8))); ++ ++ ++struct cpt_sysvshm_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_key; ++ __u64 cpt_uid; ++ __u64 cpt_gid; ++ __u64 cpt_cuid; ++ __u64 cpt_cgid; ++ __u64 cpt_mode; ++ __u64 cpt_seq; ++ ++ __u32 cpt_id; ++ __u32 cpt_mlockuser; ++ __u64 cpt_segsz; ++ __u64 cpt_atime; ++ __u64 cpt_ctime; ++ __u64 cpt_dtime; ++ __u64 cpt_creator; ++ __u64 cpt_last; ++} __attribute__ ((aligned (8))); ++ ++ ++struct cpt_sysvsem_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_key; ++ __u64 cpt_uid; ++ __u64 cpt_gid; ++ __u64 cpt_cuid; ++ __u64 cpt_cgid; ++ __u64 cpt_mode; ++ __u64 cpt_seq; ++ __u32 cpt_id; ++ __u32 __cpt_pad1; ++ ++ __u64 cpt_otime; ++ __u64 cpt_ctime; ++} __attribute__ ((aligned (8))); ++/* Content is array of pairs semval/sempid */ ++ ++struct cpt_sysvsem_undo_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_id; ++ __u32 cpt_nsem; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_sysvmsg_msg_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_type; ++ __u64 cpt_size; ++} __attribute__ ((aligned (8))); ++ ++ ++struct cpt_sysvmsg_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_key; ++ __u64 cpt_uid; ++ __u64 cpt_gid; ++ __u64 cpt_cuid; ++ __u64 cpt_cgid; ++ __u64 cpt_mode; ++ __u64 cpt_seq; ++ __u32 cpt_id; ++ __u32 __cpt_pad1; ++ ++ __u64 cpt_stime; ++ __u64 cpt_rtime; ++ __u64 cpt_ctime; ++ __u64 cpt_last_sender; ++ __u64 cpt_last_receiver; ++ __u64 cpt_qbytes; ++} __attribute__ ((aligned (8))); ++/* Content is array of sysv msg */ ++ ++ ++struct cpt_mm_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_start_code; ++ __u64 cpt_end_code; ++ __u64 cpt_start_data; ++ __u64 cpt_end_data; ++ __u64 cpt_start_brk; ++ __u64 cpt_brk; ++ __u64 cpt_start_stack; ++ __u64 cpt_start_arg; ++ __u64 cpt_end_arg; ++ __u64 cpt_start_env; ++ __u64 cpt_end_env; ++ __u64 cpt_def_flags; ++ __u64 cpt_mmub; ++ __u8 cpt_dumpable; ++ __u8 cpt_vps_dumpable; ++ __u8 cpt_used_hugetlb; ++ __u8 __cpt_pad; ++ __u32 cpt_vdso; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_page_block ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_start; ++ __u64 cpt_end; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_remappage_block ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_start; ++ __u64 cpt_end; ++ __u64 cpt_pgoff; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_copypage_block ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_start; ++ __u64 cpt_end; ++ __u64 cpt_source; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_lazypage_block ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_start; ++ __u64 cpt_end; ++ __u64 cpt_index; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_iterpage_block ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_start; ++ __u64 cpt_end; ++} __attribute__ ((aligned (8))); ++/* Followed by array of PFNs */ ++ ++struct cpt_vma_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_file; ++ __u32 cpt_type; ++#define CPT_VMA_TYPE_0 0 ++#define CPT_VMA_TYPE_SHM 1 ++#define CPT_VMA_VDSO 2 ++ __u32 cpt_anonvma; ++ __u64 cpt_anonvmaid; ++ ++ __u64 cpt_start; ++ __u64 cpt_end; ++ __u64 cpt_flags; ++ __u64 cpt_pgprot; ++ __u64 cpt_pgoff; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_aio_ctx_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_max_reqs; ++ __u32 cpt_ring_pages; ++ __u32 cpt_tail; ++ __u32 cpt_nr; ++ __u64 cpt_mmap_base; ++ /* Data (io_event's) and struct aio_ring are stored in user space VM */ ++} __attribute__ ((aligned (8))); ++ ++ ++/* Format of MM section. ++ * ++ * It is array of MM objects (mm_struct). Each MM object is ++ * header, encoding mm_struct, followed by array of VMA objects. ++ * Each VMA consists of VMA header, encoding vm_area_struct, and ++ * if the VMA contains copied pages, the header is followed by ++ * array of tuples start-end each followed by data. ++ * ++ * ATTN: no block/page alignment. Only 64bit alignment. This might be not good? ++ */ ++ ++struct cpt_restart_block { ++ __u64 fn; ++#define CPT_RBL_0 0 ++#define CPT_RBL_NANOSLEEP 1 ++#define CPT_RBL_COMPAT_NANOSLEEP 2 ++#define CPT_RBL_POLL 3 ++#define CPT_RBL_FUTEX_WAIT 4 ++ __u64 arg0; ++ __u64 arg1; ++ __u64 arg2; ++ __u64 arg3; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_siginfo_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_qflags; ++ __u32 cpt_signo; ++ __u32 cpt_errno; ++ __u32 cpt_code; ++ ++ __u64 cpt_sigval; ++ __u32 cpt_pid; ++ __u32 cpt_uid; ++ __u64 cpt_utime; ++ __u64 cpt_stime; ++ ++ __u64 cpt_user; ++} __attribute__ ((aligned (8))); ++ ++/* Portable presentaions for segment registers */ ++ ++#define CPT_SEG_ZERO 0 ++#define CPT_SEG_TLS1 1 ++#define CPT_SEG_TLS2 2 ++#define CPT_SEG_TLS3 3 ++#define CPT_SEG_USER32_DS 4 ++#define CPT_SEG_USER32_CS 5 ++#define CPT_SEG_USER64_DS 6 ++#define CPT_SEG_USER64_CS 7 ++#define CPT_SEG_LDT 256 ++ ++struct cpt_x86_regs ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_debugreg[8]; ++ __u32 cpt_fs; ++ __u32 cpt_gs; ++ ++ __u32 cpt_ebx; ++ __u32 cpt_ecx; ++ __u32 cpt_edx; ++ __u32 cpt_esi; ++ __u32 cpt_edi; ++ __u32 cpt_ebp; ++ __u32 cpt_eax; ++ __u32 cpt_xds; ++ __u32 cpt_xes; ++ __u32 cpt_orig_eax; ++ __u32 cpt_eip; ++ __u32 cpt_xcs; ++ __u32 cpt_eflags; ++ __u32 cpt_esp; ++ __u32 cpt_xss; ++ __u32 pad; ++}; ++ ++struct cpt_x86_64_regs ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_debugreg[8]; ++ ++ __u64 cpt_fsbase; ++ __u64 cpt_gsbase; ++ __u32 cpt_fsindex; ++ __u32 cpt_gsindex; ++ __u32 cpt_ds; ++ __u32 cpt_es; ++ ++ __u64 cpt_r15; ++ __u64 cpt_r14; ++ __u64 cpt_r13; ++ __u64 cpt_r12; ++ __u64 cpt_rbp; ++ __u64 cpt_rbx; ++ __u64 cpt_r11; ++ __u64 cpt_r10; ++ __u64 cpt_r9; ++ __u64 cpt_r8; ++ __u64 cpt_rax; ++ __u64 cpt_rcx; ++ __u64 cpt_rdx; ++ __u64 cpt_rsi; ++ __u64 cpt_rdi; ++ __u64 cpt_orig_rax; ++ __u64 cpt_rip; ++ __u64 cpt_cs; ++ __u64 cpt_eflags; ++ __u64 cpt_rsp; ++ __u64 cpt_ss; ++}; ++ ++struct cpt_ia64_regs ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 gr[128]; ++ __u64 fr[256]; ++ __u64 br[8]; ++ __u64 nat[2]; ++ ++ __u64 ar_bspstore; ++ __u64 num_regs; ++ __u64 loadrs; ++ __u64 ar_bsp; ++ __u64 ar_unat; ++ __u64 ar_pfs; ++ __u64 ar_ccv; ++ __u64 ar_fpsr; ++ __u64 ar_csd; ++ __u64 ar_ssd; ++ __u64 ar_ec; ++ __u64 ar_lc; ++ __u64 ar_rsc; ++ __u64 ar_rnat; ++ ++ __u64 cr_iip; ++ __u64 cr_ipsr; ++ ++ __u64 cfm; ++ __u64 pr; ++ ++ __u64 ibr[8]; ++ __u64 dbr[8]; ++}; ++ ++ ++struct cpt_task_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_state; ++ __u64 cpt_flags; ++ __u64 cpt_ptrace; ++ __u32 cpt_prio; ++ __u32 cpt_static_prio; ++ __u32 cpt_policy; ++ __u32 cpt_rt_priority; ++ ++ /* struct thread_info */ ++ __u64 cpt_exec_domain; ++ __u64 cpt_thrflags; ++ __u64 cpt_thrstatus; ++ __u64 cpt_addr_limit; ++ ++ __u64 cpt_personality; ++ ++ __u64 cpt_mm; ++ __u64 cpt_files; ++ __u64 cpt_fs; ++ __u64 cpt_signal; ++ __u64 cpt_sighand; ++ __u64 cpt_sigblocked; ++ __u64 cpt_sigrblocked; ++ __u64 cpt_sigpending; ++ __u64 cpt_namespace; ++ __u64 cpt_sysvsem_undo; ++ __u32 cpt_pid; ++ __u32 cpt_tgid; ++ __u32 cpt_ppid; ++ __u32 cpt_rppid; ++ __u32 cpt_pgrp; ++ __u32 cpt_session; ++ __u32 cpt_old_pgrp; ++ __u32 __cpt_pad; ++ __u32 cpt_leader; ++ __u8 cpt_pn_state; ++ __u8 cpt_stopped_state; ++ __u8 cpt_sigsuspend_state; ++ __u8 cpt_64bit; ++ __u64 cpt_set_tid; ++ __u64 cpt_clear_tid; ++ __u32 cpt_exit_code; ++ __u32 cpt_exit_signal; ++ __u32 cpt_pdeath_signal; ++ __u32 cpt_user; ++ __u32 cpt_uid; ++ __u32 cpt_euid; ++ __u32 cpt_suid; ++ __u32 cpt_fsuid; ++ __u32 cpt_gid; ++ __u32 cpt_egid; ++ __u32 cpt_sgid; ++ __u32 cpt_fsgid; ++ __u32 cpt_ngids; ++ __u32 cpt_gids[32]; ++ __u8 cpt_prctl_uac; ++ __u8 cpt_prctl_fpemu; ++ __u16 __cpt_pad1; ++ __u64 cpt_ecap; ++ __u64 cpt_icap; ++ __u64 cpt_pcap; ++ __u8 cpt_comm[16]; ++ __u64 cpt_tls[3]; ++ struct cpt_restart_block cpt_restart; ++ __u64 cpt_it_real_value; /* V8: jiffies, V9..: nsec */ ++ __u64 cpt_it_real_incr; /* V8: jiffies, V9..: nsec */ ++ __u64 cpt_it_prof_value; ++ __u64 cpt_it_prof_incr; ++ __u64 cpt_it_virt_value; ++ __u64 cpt_it_virt_incr; ++ ++ __u16 cpt_used_math; ++ __u8 cpt_keepcap; ++ __u8 cpt_did_exec; ++ __u32 cpt_ptrace_message; ++ ++ __u64 cpt_utime; ++ __u64 cpt_stime; ++ __u64 cpt_starttime; /* V8: jiffies, V9...: timespec */ ++ __u64 cpt_nvcsw; ++ __u64 cpt_nivcsw; ++ __u64 cpt_min_flt; ++ __u64 cpt_maj_flt; ++ ++ __u64 cpt_sigsuspend_blocked; ++ __u64 cpt_cutime, cpt_cstime; ++ __u64 cpt_cnvcsw, cpt_cnivcsw; ++ __u64 cpt_cmin_flt, cpt_cmaj_flt; ++ ++#define CPT_RLIM_NLIMITS 16 ++ __u64 cpt_rlim_cur[CPT_RLIM_NLIMITS]; ++ __u64 cpt_rlim_max[CPT_RLIM_NLIMITS]; ++ ++ __u64 cpt_task_ub; ++ __u64 cpt_exec_ub; ++ __u64 cpt_mm_ub; ++ __u64 cpt_fork_sub; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_sigaltstack_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_stack; ++ __u32 cpt_stacksize; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_task_aux_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_robust_list; ++ __u64 __cpt_future[16]; ++} __attribute__ ((aligned (8))); ++ ++ ++struct cpt_signal_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_leader; ++ __u8 cpt_pgrp_type; ++ __u8 cpt_old_pgrp_type; ++ __u8 cpt_session_type; ++#define CPT_PGRP_NORMAL 0 ++#define CPT_PGRP_ORPHAN 1 ++#define CPT_PGRP_STRAY 2 ++ __u8 __cpt_pad1; ++ __u64 cpt_pgrp; ++ __u64 cpt_old_pgrp; ++ __u64 cpt_session; ++ __u64 cpt_sigpending; ++ __u64 cpt_ctty; ++ ++ __u32 cpt_curr_target; ++ __u32 cpt_group_exit; ++ __u32 cpt_group_exit_code; ++ __u32 cpt_group_exit_task; ++ __u32 cpt_notify_count; ++ __u32 cpt_group_stop_count; ++ __u32 cpt_stop_state; ++ __u32 __cpt_pad2; ++ ++ __u64 cpt_utime, cpt_stime, cpt_cutime, cpt_cstime; ++ __u64 cpt_nvcsw, cpt_nivcsw, cpt_cnvcsw, cpt_cnivcsw; ++ __u64 cpt_min_flt, cpt_maj_flt, cpt_cmin_flt, cpt_cmaj_flt; ++ ++ __u64 cpt_rlim_cur[CPT_RLIM_NLIMITS]; ++ __u64 cpt_rlim_max[CPT_RLIM_NLIMITS]; ++} __attribute__ ((aligned (8))); ++/* Followed by list of posix timers. */ ++ ++struct cpt_sighand_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++} __attribute__ ((aligned (8))); ++/* Followed by list of sighandles. */ ++ ++struct cpt_sighandler_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_signo; ++ __u32 __cpt_pad1; ++ __u64 cpt_handler; ++ __u64 cpt_restorer; ++ __u64 cpt_flags; ++ __u64 cpt_mask; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_netdev_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_index; ++ __u32 cpt_flags; ++ __u8 cpt_name[16]; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_tuntap_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_owner; ++ __u32 cpt_attached; ++ __u64 cpt_flags; ++ __u64 cpt_bindfile; ++ __u64 cpt_if_flags; ++ __u8 cpt_dev_addr[6]; ++ __u16 cpt_pad; ++ __u32 cpt_chr_filter[2]; ++ __u32 cpt_net_filter[2]; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_ifaddr_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_index; ++ __u8 cpt_family; ++ __u8 cpt_masklen; ++ __u8 cpt_flags; ++ __u8 cpt_scope; ++ __u32 cpt_address[4]; ++ __u32 cpt_peer[4]; ++ __u32 cpt_broadcast[4]; ++ __u8 cpt_label[16]; ++ __u32 cpt_valid_lft; ++ __u32 cpt_prefered_lft; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_ipct_tuple ++{ ++ __u32 cpt_src; ++ __u16 cpt_srcport; ++ __u16 __cpt_pad1; ++ ++ __u32 cpt_dst; ++ __u16 cpt_dstport; ++ __u8 cpt_protonum; ++ __u8 cpt_dir; /* TEMPORARY HACK TO VALIDATE CODE */ ++} __attribute__ ((aligned (8))); ++ ++struct cpt_nat_manip ++{ ++ __u8 cpt_direction; ++ __u8 cpt_hooknum; ++ __u8 cpt_maniptype; ++ __u8 __cpt_pad1; ++ ++ __u32 cpt_manip_addr; ++ __u16 cpt_manip_port; ++ __u16 __cpt_pad2; ++ __u32 __cpt_pad3; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_nat_seq ++{ ++ __u32 cpt_correction_pos; ++ __u32 cpt_offset_before; ++ __u32 cpt_offset_after; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_ip_connexpect_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_timeout; ++ __u32 cpt_sibling_conntrack; /* Index of child conntrack */ ++ __u32 cpt_seq; /* id in 2.6.15 */ ++ ++ struct cpt_ipct_tuple cpt_ct_tuple; /* NU 2.6.15 */ ++ struct cpt_ipct_tuple cpt_tuple; ++ struct cpt_ipct_tuple cpt_mask; ++ ++ /* union ip_conntrack_expect_help. Used by ftp, irc, amanda */ ++ __u32 cpt_help[3]; /* NU 2.6.15 */ ++ __u16 cpt_manip_proto; ++ __u8 cpt_dir; ++ __u8 cpt_flags; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_ip_conntrack_image ++{ ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ struct cpt_ipct_tuple cpt_tuple[2]; ++ __u64 cpt_status; ++ __u64 cpt_timeout; ++ __u32 cpt_index; ++ __u8 cpt_ct_helper; ++ __u8 cpt_nat_helper; ++ __u16 cpt_pad1; ++ ++ /* union ip_conntrack_proto. Used by tcp and icmp. */ ++ __u32 cpt_proto_data[12]; ++ ++ /* union ip_conntrack_help. Used by ftp and pptp helper. ++ * We do not support pptp... ++ */ ++ __u32 cpt_help_data[6]; ++ ++ /* nat info */ ++ __u32 cpt_initialized; /* NU 2.6.15 */ ++ __u32 cpt_num_manips; /* NU 2.6.15 */ ++ struct cpt_nat_manip cpt_nat_manips[6]; /* NU 2.6.15 */ ++ ++ struct cpt_nat_seq cpt_nat_seq[2]; ++ ++ __u32 cpt_masq_index; ++ __u32 cpt_id; ++ __u32 cpt_mark; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_ubparm ++{ ++ __u64 barrier; ++ __u64 limit; ++ __u64 held; ++ __u64 maxheld; ++ __u64 minheld; ++ __u64 failcnt; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_beancounter_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u64 cpt_parent; ++ __u32 cpt_id; ++ __u32 __cpt_pad; ++ struct cpt_ubparm cpt_parms[32 * 2]; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_slm_sgreg_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_size; ++ __u32 __cpt_pad1; ++ __u32 cpt_id; ++ __u16 cpt_resource; ++ __u8 cpt_regname[32]; ++ __u8 __cpt_pad2[2]; ++} __attribute__ ((aligned (8))); ++ ++struct cpt_slm_obj_image { ++ __u64 cpt_next; ++ __u32 cpt_object; ++ __u16 cpt_hdrlen; ++ __u16 cpt_content; ++ ++ __u32 cpt_size; ++ __u32 __cpt_pad1; ++} __attribute__ ((aligned (8))); ++ ++#ifdef __KERNEL__ ++ ++static inline void __user * cpt_ptr_import(__u64 ptr) ++{ ++ return (void*)(unsigned long)ptr; ++} ++ ++static inline __u64 cpt_ptr_export(void __user *ptr) ++{ ++ return (__u64)(unsigned long)ptr; ++} ++ ++static inline void cpt_sigset_import(sigset_t *sig, __u64 ptr) ++{ ++ memcpy(sig, &ptr, sizeof(*sig)); ++} ++ ++static inline __u64 cpt_sigset_export(sigset_t *sig) ++{ ++ return *(__u64*)sig; ++} ++ ++static inline __u64 cpt_timespec_export(struct timespec *tv) ++{ ++ return (((u64)tv->tv_sec) << 32) + tv->tv_nsec; ++} ++ ++static inline void cpt_timespec_import(struct timespec *tv, __u64 val) ++{ ++ tv->tv_sec = val>>32; ++ tv->tv_nsec = (val&0xFFFFFFFF); ++} ++ ++static inline __u64 cpt_timeval_export(struct timeval *tv) ++{ ++ return (((u64)tv->tv_sec) << 32) + tv->tv_usec; ++} ++ ++static inline void cpt_timeval_import(struct timeval *tv, __u64 val) ++{ ++ tv->tv_sec = val>>32; ++ tv->tv_usec = (val&0xFFFFFFFF); ++} ++ ++#endif ++ ++#endif /* __CPT_IMAGE_H_ */ +Index: kernel/include/linux/cpt_ioctl.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/cpt_ioctl.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,43 @@ ++/* ++ * ++ * include/linux/cpt_ioctl.h ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _CPT_IOCTL_H_ ++#define _CPT_IOCTL_H_ 1 ++ ++#include ++#include ++ ++#define CPTCTLTYPE '-' ++#define CPT_SET_DUMPFD _IOW(CPTCTLTYPE, 1, int) ++#define CPT_SET_STATUSFD _IOW(CPTCTLTYPE, 2, int) ++#define CPT_SET_LOCKFD _IOW(CPTCTLTYPE, 3, int) ++#define CPT_SET_VEID _IOW(CPTCTLTYPE, 4, int) ++#define CPT_SUSPEND _IO(CPTCTLTYPE, 5) ++#define CPT_DUMP _IO(CPTCTLTYPE, 6) ++#define CPT_UNDUMP _IO(CPTCTLTYPE, 7) ++#define CPT_RESUME _IO(CPTCTLTYPE, 8) ++#define CPT_KILL _IO(CPTCTLTYPE, 9) ++#define CPT_JOIN_CONTEXT _IO(CPTCTLTYPE, 10) ++#define CPT_GET_CONTEXT _IOW(CPTCTLTYPE, 11, unsigned int) ++#define CPT_PUT_CONTEXT _IO(CPTCTLTYPE, 12) ++#define CPT_SET_PAGEINFDIN _IOW(CPTCTLTYPE, 13, int) ++#define CPT_SET_PAGEINFDOUT _IOW(CPTCTLTYPE, 14, int) ++#define CPT_PAGEIND _IO(CPTCTLTYPE, 15) ++#define CPT_VMPREP _IOW(CPTCTLTYPE, 16, int) ++#define CPT_SET_LAZY _IOW(CPTCTLTYPE, 17, int) ++#define CPT_SET_CPU_FLAGS _IOW(CPTCTLTYPE, 18, unsigned int) ++#define CPT_TEST_CAPS _IOW(CPTCTLTYPE, 19, unsigned int) ++#define CPT_TEST_VECAPS _IOW(CPTCTLTYPE, 20, unsigned int) ++#define CPT_SET_ERRORFD _IOW(CPTCTLTYPE, 21, int) ++ ++#define CPT_ITER _IOW(CPTCTLTYPE, 23, int) ++ ++#endif +Index: kernel/include/linux/dcache.h +=================================================================== +--- kernel.orig/include/linux/dcache.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/dcache.h 2008-11-24 15:47:46.000000000 +0100 +@@ -9,6 +9,8 @@ + #include + #include + ++#include ++ + struct nameidata; + struct vfsmount; + +@@ -111,6 +113,9 @@ + struct dcookie_struct *d_cookie; /* cookie, if any */ + #endif + int d_mounted; ++#ifdef CONFIG_BEANCOUNTERS ++ struct dentry_beancounter dentry_bc; ++#endif + unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */ + }; + +@@ -174,9 +179,13 @@ + + #define DCACHE_REFERENCED 0x0008 /* Recently used, don't discard. */ + #define DCACHE_UNHASHED 0x0010 ++#define DCACHE_VIRTUAL 0x0100 /* ve accessible */ ++ ++extern void mark_tree_virtual(struct vfsmount *m, struct dentry *d); + + #define DCACHE_INOTIFY_PARENT_WATCHED 0x0020 /* Parent inode is watched */ + ++extern struct kmem_cache *dentry_cache; + extern spinlock_t dcache_lock; + extern seqlock_t rename_lock; + +@@ -300,9 +309,12 @@ + */ + extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); + +-extern char *__d_path(struct dentry *, struct vfsmount *, struct dentry *, +- struct vfsmount *, char *, int, int); ++extern int d_root_check(struct dentry *, struct vfsmount *); ++ + extern char * d_path(struct dentry *, struct vfsmount *, char *, int); ++extern char * __d_path( struct dentry *dentry, struct vfsmount *vfsmnt, ++ struct dentry *root, struct vfsmount *rootmnt, ++ char *buffer, int buflen); + + /* Allocation counts.. */ + +@@ -322,6 +334,12 @@ + static inline struct dentry *dget(struct dentry *dentry) + { + if (dentry) { ++#ifdef CONFIG_BEANCOUNTERS ++ preempt_disable(); ++ if (ub_dentry_on && ub_dget_testone(dentry)) ++ BUG(); ++ preempt_enable_no_resched(); ++#endif + BUG_ON(!atomic_read(&dentry->d_count)); + atomic_inc(&dentry->d_count); + } +@@ -365,6 +383,8 @@ + + extern int sysctl_vfs_cache_pressure; + ++extern int check_area_access_ve(struct dentry *, struct vfsmount *); ++extern int check_area_execute_ve(struct dentry *, struct vfsmount *); + #endif /* __KERNEL__ */ + + #endif /* __LINUX_DCACHE_H */ +Index: kernel/include/linux/device.h +=================================================================== +--- kernel.orig/include/linux/device.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/device.h 2008-11-24 15:47:46.000000000 +0100 +@@ -279,6 +279,8 @@ + dev->class_data = data; + } + ++extern struct class net_class; ++ + + extern int __must_check class_device_register(struct class_device *); + extern void class_device_unregister(struct class_device *); +Index: kernel/include/linux/devpts_fs.h +=================================================================== +--- kernel.orig/include/linux/devpts_fs.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/devpts_fs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -21,6 +21,16 @@ + struct tty_struct *devpts_get_tty(int number); /* get tty structure */ + void devpts_pty_kill(int number); /* unlink */ + ++struct devpts_config { ++ int setuid; ++ int setgid; ++ uid_t uid; ++ gid_t gid; ++ umode_t mode; ++}; ++ ++extern struct devpts_config devpts_config; ++extern struct file_system_type devpts_fs_type; + #else + + /* Dummy stubs in the no-pty case */ +Index: kernel/include/linux/elevator.h +=================================================================== +--- kernel.orig/include/linux/elevator.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/elevator.h 2008-11-24 15:47:46.000000000 +0100 +@@ -56,6 +56,11 @@ + elevator_init_fn *elevator_init_fn; + elevator_exit_fn *elevator_exit_fn; + void (*trim)(struct io_context *); ++ /* In original cfq design task holds a cfqq refcount and puts it ++ * on exit via io context. Now async cfqqs are hold by UB, ++ * so we need somehow to put these queues. Use this function. ++ */ ++ void (*put_queue)(struct cfq_queue *); + }; + + #define ELV_NAME_MAX (16) +Index: kernel/include/linux/elfcore.h +=================================================================== +--- kernel.orig/include/linux/elfcore.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/elfcore.h 2008-11-24 15:47:46.000000000 +0100 +@@ -7,6 +7,8 @@ + #include + #include + ++extern int sysctl_at_vsyscall; ++ + struct elf_siginfo + { + int si_signo; /* signal number */ +Index: kernel/include/linux/eventpoll.h +=================================================================== +--- kernel.orig/include/linux/eventpoll.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/eventpoll.h 2008-11-24 15:47:46.000000000 +0100 +@@ -60,6 +60,88 @@ + spin_lock_init(&file->f_ep_lock); + } + ++struct epoll_filefd { ++ struct file *file; ++ int fd; ++}; ++ ++/* ++ * This structure is stored inside the "private_data" member of the file ++ * structure and rapresent the main data sructure for the eventpoll ++ * interface. ++ */ ++struct eventpoll { ++ /* Protect the this structure access */ ++ spinlock_t lock; ++ ++ /* ++ * This mutex is used to ensure that files are not removed ++ * while epoll is using them. This is held during the event ++ * collection loop, the file cleanup path, the epoll file exit ++ * code and the ctl operations. ++ */ ++ struct mutex mtx; ++ ++ /* Wait queue used by sys_epoll_wait() */ ++ wait_queue_head_t wq; ++ ++ /* Wait queue used by file->poll() */ ++ wait_queue_head_t poll_wait; ++ ++ /* List of ready file descriptors */ ++ struct list_head rdllist; ++ ++ /* RB tree root used to store monitored fd structs */ ++ struct rb_root rbr; ++ ++ /* ++ * This is a single linked list that chains all the "struct epitem" that ++ * happened while transfering ready events to userspace w/out ++ * holding ->lock. ++ */ ++ struct epitem *ovflist; ++}; ++ ++/* ++ * Each file descriptor added to the eventpoll interface will ++ * have an entry of this type linked to the "rbr" RB tree. ++ */ ++struct epitem { ++ /* RB tree node used to link this structure to the eventpoll RB tree */ ++ struct rb_node rbn; ++ ++ /* List header used to link this structure to the eventpoll ready list */ ++ struct list_head rdllink; ++ ++ /* ++ * Works together "struct eventpoll"->ovflist in keeping the ++ * single linked chain of items. ++ */ ++ struct epitem *next; ++ ++ /* The file descriptor information this item refers to */ ++ struct epoll_filefd ffd; ++ ++ /* Number of active wait queue attached to poll operations */ ++ int nwait; ++ ++ /* List containing poll wait queues */ ++ struct list_head pwqlist; ++ ++ /* The "container" of this item */ ++ struct eventpoll *ep; ++ ++ /* List header used to link this item to the "struct file" items list */ ++ struct list_head fllink; ++ ++ /* The structure that describe the interested events and the source fd */ ++ struct epoll_event event; ++}; ++ ++extern struct semaphore epsem; ++struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd); ++int ep_insert(struct eventpoll *ep, struct epoll_event *event, ++ struct file *tfile, int fd); + + /* Used to release the epoll bits inside the "struct file" */ + void eventpoll_release_file(struct file *file); +@@ -92,6 +174,8 @@ + eventpoll_release_file(file); + } + ++extern struct mutex epmutex; ++ + #else + + static inline void eventpoll_init_file(struct file *file) {} +Index: kernel/include/linux/faudit.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/faudit.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,45 @@ ++/* ++ * include/linux/faudit.h ++ * ++ * Copyright (C) 2005 SWSoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __FAUDIT_H_ ++#define __FAUDIT_H_ ++ ++#include ++ ++struct vfsmount; ++struct dentry; ++struct super_block; ++struct kstatfs; ++struct kstat; ++struct pt_regs; ++ ++struct faudit_regs_arg { ++ int err; ++ struct pt_regs *regs; ++}; ++ ++struct faudit_stat_arg { ++ int err; ++ struct vfsmount *mnt; ++ struct dentry *dentry; ++ struct kstat *stat; ++}; ++ ++struct faudit_statfs_arg { ++ int err; ++ struct super_block *sb; ++ struct kstatfs *stat; ++}; ++ ++#define VIRTINFO_FAUDIT (0) ++#define VIRTINFO_FAUDIT_STAT (VIRTINFO_FAUDIT + 0) ++#define VIRTINFO_FAUDIT_STATFS (VIRTINFO_FAUDIT + 1) ++ ++#endif +Index: kernel/include/linux/fs.h +=================================================================== +--- kernel.orig/include/linux/fs.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/fs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -49,6 +49,7 @@ + extern struct inodes_stat_t inodes_stat; + + extern int leases_enable, lease_break_time; ++extern int odirect_enable; + + #ifdef CONFIG_DNOTIFY + extern int dir_notify_enable; +@@ -68,6 +69,7 @@ + #define FMODE_LSEEK 4 + #define FMODE_PREAD 8 + #define FMODE_PWRITE FMODE_PREAD /* These go hand in hand */ ++#define FMODE_QUOTACTL 4 + + /* File is being opened for execution. Primary users of this flag are + distributed filesystems that can use it to achieve correct ETXTBUSY +@@ -93,6 +95,8 @@ + #define FS_REQUIRES_DEV 1 + #define FS_BINARY_MOUNTDATA 2 + #define FS_HAS_SUBTYPE 4 ++#define FS_VIRTUALIZED 64 /* Can mount this fstype inside ve */ ++#define FS_MANGLE_PROC 128 /* hide some /proc/mounts info inside VE */ + #define FS_REVAL_DOT 16384 /* Check the paths ".", ".." for staleness */ + #define FS_RENAME_DOES_D_MOVE 32768 /* FS will handle d_move() + * during rename() internally. +@@ -357,6 +361,9 @@ + * Includes for diskquotas. + */ + #include ++#if defined(CONFIG_VZ_QUOTA) || defined(CONFIG_VZ_QUOTA_MODULE) ++#include ++#endif + + /** + * enum positive_aop_returns - aop return codes with specific semantics +@@ -616,6 +623,9 @@ + #ifdef CONFIG_QUOTA + struct dquot *i_dquot[MAXQUOTAS]; + #endif ++#if defined(CONFIG_VZ_QUOTA) || defined(CONFIG_VZ_QUOTA_MODULE) ++ struct vz_quota_ilink i_qlnk; ++#endif + struct list_head i_devices; + union { + struct pipe_inode_info *i_pipe; +@@ -671,6 +681,8 @@ + extern void inode_double_lock(struct inode *inode1, struct inode *inode2); + extern void inode_double_unlock(struct inode *inode1, struct inode *inode2); + ++extern struct kmem_cache *inode_cachep; ++ + /* + * NOTE: in a 32bit arch with a preemptable kernel and + * an UP compile the i_size_read/write must be atomic +@@ -787,6 +799,7 @@ + struct fown_struct f_owner; + unsigned int f_uid, f_gid; + struct file_ra_state f_ra; ++ struct user_beancounter *f_ub; + + u64 f_version; + #ifdef CONFIG_SECURITY +@@ -801,7 +814,9 @@ + spinlock_t f_ep_lock; + #endif /* #ifdef CONFIG_EPOLL */ + struct address_space *f_mapping; ++ struct ve_struct *owner_env; + }; ++ + extern spinlock_t files_lock; + #define file_list_lock() spin_lock(&files_lock); + #define file_list_unlock() spin_unlock(&files_lock); +@@ -867,6 +882,9 @@ + struct file *fl_file; + unsigned char fl_flags; + unsigned char fl_type; ++#ifdef CONFIG_BEANCOUNTERS ++ unsigned char fl_charged; ++#endif + loff_t fl_start; + loff_t fl_end; + +@@ -1183,6 +1201,7 @@ + int (*setlease)(struct file *, long, struct file_lock **); + int (*fgetattr)(struct file *, struct kstat *); + int (*fsetattr)(struct file *, struct iattr *); ++ struct file * (*get_host)(struct file *); + }; + + struct inode_operations { +@@ -1256,6 +1275,7 @@ + #ifdef CONFIG_QUOTA + ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); + ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); ++ struct inode *(*get_quota_root)(struct super_block *); + #endif + }; + +@@ -1415,8 +1435,14 @@ + struct lock_class_key i_mutex_key; + struct lock_class_key i_mutex_dir_key; + struct lock_class_key i_alloc_sem_key; ++ ++ struct file_system_type *proto; ++ struct ve_struct *owner_env; + }; + ++void get_filesystem(struct file_system_type *fs); ++void put_filesystem(struct file_system_type *fs); ++ + extern int get_sb_bdev(struct file_system_type *fs_type, + int flags, const char *dev_name, void *data, + int (*fill_super)(struct super_block *, void *, int), +@@ -1457,9 +1483,14 @@ + extern int unregister_filesystem(struct file_system_type *); + extern struct vfsmount *kern_mount_data(struct file_system_type *, void *data); + #define kern_mount(type) kern_mount_data(type, NULL) ++extern int register_ve_fs_type(struct ve_struct *, struct file_system_type *, ++ struct file_system_type **, struct vfsmount **); ++extern void unregister_ve_fs_type(struct file_system_type *, struct vfsmount *); ++extern void umount_ve_fs_type(struct file_system_type *local_fs_type); + extern int may_umount_tree(struct vfsmount *); + extern int may_umount(struct vfsmount *); + extern void umount_tree(struct vfsmount *, int, struct list_head *); ++#define kern_umount mntput + extern void release_mounts(struct list_head *); + extern long do_mount(char *, char *, char *, unsigned long, void *); + extern struct vfsmount *copy_tree(struct vfsmount *, struct dentry *, int); +@@ -1469,6 +1500,7 @@ + extern void drop_collected_mounts(struct vfsmount *); + + extern int vfs_statfs(struct dentry *, struct kstatfs *); ++extern int faudit_statfs(struct super_block *, struct kstatfs *); + + /* /sys/fs */ + extern struct kset fs_subsys; +@@ -1608,7 +1640,7 @@ + #define BLKDEV_MAJOR_HASH_SIZE 255 + extern const char *__bdevname(dev_t, char *buffer); + extern const char *bdevname(struct block_device *bdev, char *buffer); +-extern struct block_device *lookup_bdev(const char *); ++extern struct block_device *lookup_bdev(const char *, int mode); + extern struct block_device *open_bdev_excl(const char *, int, void *); + extern void close_bdev_excl(struct block_device *); + extern void blkdev_show(struct seq_file *,off_t); +@@ -1643,7 +1675,8 @@ + extern int __invalidate_device(struct block_device *); + extern int invalidate_partition(struct gendisk *, int); + #endif +-extern int invalidate_inodes(struct super_block *); ++extern int invalidate_inodes_check(struct super_block *, int check); ++#define invalidate_inodes(sb) invalidate_inodes_check(sb, 0) + unsigned long __invalidate_mapping_pages(struct address_space *mapping, + pgoff_t start, pgoff_t end, + bool be_atomic); +@@ -2087,10 +2120,20 @@ + { } + #endif /* CONFIG_SECURITY */ + ++static inline void *file_private(struct file *file) ++{ ++ struct file *host = file; ++ ++ while (host->f_op->get_host) { ++ host = host->f_op->get_host(host); ++ BUG_ON(host->f_mapping != file->f_mapping); ++ } ++ return host->private_data; ++} ++ + struct ctl_table; + int proc_nr_files(struct ctl_table *table, int write, struct file *filp, + void __user *buffer, size_t *lenp, loff_t *ppos); + +- + #endif /* __KERNEL__ */ + #endif /* _LINUX_FS_H */ +Index: kernel/include/linux/futex.h +=================================================================== +--- kernel.orig/include/linux/futex.h 2008-11-24 14:14:38.000000000 +0100 ++++ kernel/include/linux/futex.h 2008-11-24 15:47:46.000000000 +0100 +@@ -110,7 +110,7 @@ + #ifdef __KERNEL__ + long do_futex(u32 __user *uaddr, int op, u32 val, union ktime *timeout, + u32 __user *uaddr2, u32 val2, u32 val3); +- ++long futex_wait_restart(struct restart_block *restart); + extern int + handle_futex_death(u32 __user *uaddr, struct task_struct *curr, int pi); + +Index: kernel/include/linux/genhd.h +=================================================================== +--- kernel.orig/include/linux/genhd.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/genhd.h 2008-11-24 15:47:46.000000000 +0100 +@@ -435,6 +435,7 @@ + return bdget(MKDEV(disk->major, disk->first_minor) + index); + } + ++extern struct kset block_subsys; + #endif + + #else /* CONFIG_BLOCK */ +Index: kernel/include/linux/gfp.h +=================================================================== +--- kernel.orig/include/linux/gfp.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/gfp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -50,20 +50,25 @@ + #define __GFP_THISNODE ((__force gfp_t)0x40000u)/* No fallback, no policies */ + #define __GFP_RECLAIMABLE ((__force gfp_t)0x80000u) /* Page is reclaimable */ + #define __GFP_MOVABLE ((__force gfp_t)0x100000u) /* Page is movable */ ++#define __GFP_UBC ((__force gfp_t)0x200000u)/* charge kmem in buddy and slab */ ++#define __GFP_SOFT_UBC ((__force gfp_t)0x400000u)/* use soft charging */ + +-#define __GFP_BITS_SHIFT 21 /* Room for 21 __GFP_FOO bits */ ++#define __GFP_BITS_SHIFT 23 /* Room for __GFP_FOO bits */ + #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) + + /* This equals 0, but use constants in case they ever change */ + #define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH) + /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ + #define GFP_ATOMIC (__GFP_HIGH) ++#define GFP_ATOMIC_UBC (__GFP_HIGH | __GFP_UBC) + #define GFP_NOIO (__GFP_WAIT) + #define GFP_NOFS (__GFP_WAIT | __GFP_IO) + #define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS) ++#define GFP_KERNEL_UBC (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_UBC) + #define GFP_TEMPORARY (__GFP_WAIT | __GFP_IO | __GFP_FS | \ + __GFP_RECLAIMABLE) + #define GFP_USER (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL) ++#define GFP_USER_UBC (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL | __GFP_UBC) + #define GFP_HIGHUSER (__GFP_WAIT | __GFP_IO | __GFP_FS | __GFP_HARDWALL | \ + __GFP_HIGHMEM) + #define GFP_HIGHUSER_MOVABLE (__GFP_WAIT | __GFP_IO | __GFP_FS | \ +Index: kernel/include/linux/grinternal.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/grinternal.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,91 @@ ++#ifndef __GRINTERNAL_H ++#define __GRINTERNAL_H ++ ++#ifdef CONFIG_GRKERNSEC ++ ++#include ++ ++extern char *gr_to_filename(const struct dentry *dentry, ++ const struct vfsmount *mnt); ++extern char *gr_to_filename2(const struct dentry *dentry, ++ const struct vfsmount *mnt); ++extern char *gr_to_filename3(const struct dentry *dentry, ++ const struct vfsmount *mnt); ++ ++#ifdef CONFIG_VE ++#include ++#define grsec_enable_tpe (get_exec_env()->grsec.enable_tpe) ++#define grsec_tpe_gid (get_exec_env()->grsec.tpe_gid) ++#define grsec_enable_tpe_all (get_exec_env()->grsec.enable_tpe_all) ++#define grsec_lock (get_exec_env()->grsec.lock) ++#else ++extern int grsec_enable_tpe; ++extern int grsec_tpe_gid; ++extern int grsec_enable_tpe_all; ++extern int grsec_lock; ++#endif ++ ++extern spinlock_t grsec_alert_lock; ++extern unsigned long grsec_alert_wtime; ++extern unsigned long grsec_alert_fyet; ++ ++extern spinlock_t grsec_audit_lock; ++ ++#define gr_task_fullpath(tsk) ("") ++ ++#define gr_parent_task_fullpath(tsk) ("") ++ ++#define DEFAULTSECARGS(task) gr_task_fullpath(task), task->comm, \ ++ task->pid, task->uid, \ ++ task->euid, task->gid, task->egid, \ ++ gr_parent_task_fullpath(task), \ ++ task->parent->comm, task->parent->pid, \ ++ task->parent->uid, task->parent->euid, \ ++ task->parent->gid, task->parent->egid ++ ++enum { ++ GR_DO_AUDIT, ++ GR_DONT_AUDIT, ++ GR_DONT_AUDIT_GOOD ++}; ++ ++enum { ++ GR_TTYSNIFF, ++ GR_RBAC, ++ GR_RBAC_STR, ++ GR_STR_RBAC, ++ GR_RBAC_MODE2, ++ GR_RBAC_MODE3, ++ GR_FILENAME, ++ GR_NOARGS, ++ GR_ONE_INT, ++ GR_ONE_INT_TWO_STR, ++ GR_ONE_STR, ++ GR_STR_INT, ++ GR_TWO_INT, ++ GR_THREE_INT, ++ GR_FIVE_INT_TWO_STR, ++ GR_TWO_STR, ++ GR_THREE_STR, ++ GR_FOUR_STR, ++ GR_STR_FILENAME, ++ GR_FILENAME_STR, ++ GR_FILENAME_TWO_INT, ++ GR_FILENAME_TWO_INT_STR, ++ GR_TEXTREL, ++ GR_PTRACE, ++ GR_RESOURCE, ++ GR_CAP, ++ GR_SIG, ++ GR_CRASH1, ++ GR_CRASH2, ++ GR_PSACCT ++}; ++ ++#define gr_log_fs_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_FILENAME, dentry, mnt) ++#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str) ++ ++extern void gr_log_varargs(int audit, const char *msg, int argtypes, ...); ++ ++#endif ++#endif +Index: kernel/include/linux/grmsg.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/grmsg.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,3 @@ ++#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u" ++#define GR_EXEC_TPE_MSG "denied untrusted exec of %.950s by " ++#define GR_SYSCTL_MSG "denied modification of grsecurity sysctl value : %.32s by " +Index: kernel/include/linux/grsecurity.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/grsecurity.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,13 @@ ++#ifndef GR_SECURITY_H ++#define GR_SECURITY_H ++#include ++ ++extern int gr_tpe_allow(const struct file *file); ++extern void gr_copy_label(struct task_struct *tsk); ++extern int gr_acl_handle_mmap(const struct file *file, ++ const unsigned long prot); ++extern int gr_acl_handle_mprotect(const struct file *file, ++ const unsigned long prot); ++extern void gr_acl_handle_exit(void); ++ ++#endif +Index: kernel/include/linux/hardirq.h +=================================================================== +--- kernel.orig/include/linux/hardirq.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/hardirq.h 2008-11-24 15:47:46.000000000 +0100 +@@ -7,6 +7,9 @@ + #include + #include + ++#include ++#include ++ + /* + * We put the hardirq and softirq counter into the preemption + * counter. The bitmask has the following meaning: +@@ -113,6 +116,24 @@ + } + #endif + ++#define save_context() do { \ ++ struct task_struct *tsk; \ ++ if (hardirq_count() == HARDIRQ_OFFSET) { \ ++ tsk = current; \ ++ ve_save_context(tsk); \ ++ ub_save_context(tsk); \ ++ } \ ++ } while (0) ++ ++#define restore_context() do { \ ++ struct task_struct *tsk; \ ++ if (hardirq_count() == HARDIRQ_OFFSET) { \ ++ tsk = current; \ ++ ve_restore_context(tsk); \ ++ ub_restore_context(tsk); \ ++ } \ ++ } while (0) ++ + /* + * It is safe to do non-atomic ops on ->hardirq_context, + * because NMI handlers may not preempt and the ops are +@@ -123,6 +144,7 @@ + do { \ + account_system_vtime(current); \ + add_preempt_count(HARDIRQ_OFFSET); \ ++ save_context(); \ + trace_hardirq_enter(); \ + } while (0) + +@@ -138,6 +160,7 @@ + do { \ + trace_hardirq_exit(); \ + account_system_vtime(current); \ ++ restore_context(); \ + sub_preempt_count(HARDIRQ_OFFSET); \ + } while (0) + +Index: kernel/include/linux/hrtimer.h +=================================================================== +--- kernel.orig/include/linux/hrtimer.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/hrtimer.h 2008-11-24 15:47:46.000000000 +0100 +@@ -304,6 +304,9 @@ + const enum hrtimer_mode mode, + const clockid_t clockid); + extern long hrtimer_nanosleep_restart(struct restart_block *restart_block); ++#ifdef CONFIG_COMPAT ++long compat_nanosleep_restart(struct restart_block *restart); ++#endif + + extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, + struct task_struct *tsk); +Index: kernel/include/linux/if_bridge.h +=================================================================== +--- kernel.orig/include/linux/if_bridge.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/if_bridge.h 2008-11-24 15:47:46.000000000 +0100 +@@ -44,6 +44,7 @@ + #define BRCTL_SET_PORT_PRIORITY 16 + #define BRCTL_SET_PATH_COST 17 + #define BRCTL_GET_FDB_ENTRIES 18 ++#define BRCTL_SET_VIA_ORIG_DEV 19 + + #define BR_STATE_DISABLED 0 + #define BR_STATE_LISTENING 1 +@@ -72,6 +73,7 @@ + __u32 tcn_timer_value; + __u32 topology_change_timer_value; + __u32 gc_timer_value; ++ __u8 via_phys_dev; + }; + + struct __port_info +@@ -104,9 +106,12 @@ + + #include + ++#define BR_ALREADY_SEEN 1 ++ + extern void brioctl_set(int (*ioctl_hook)(struct net *, unsigned int, void __user *)); + extern struct sk_buff *(*br_handle_frame_hook)(struct net_bridge_port *p, + struct sk_buff *skb); ++extern int (*br_hard_xmit_hook)(struct sk_buff *skb, struct net_bridge_port *port); + extern int (*br_should_route_hook)(struct sk_buff *skb); + + #endif +Index: kernel/include/linux/if_tun.h +=================================================================== +--- kernel.orig/include/linux/if_tun.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/if_tun.h 2008-11-24 15:47:46.000000000 +0100 +@@ -18,10 +18,14 @@ + #ifndef __IF_TUN_H + #define __IF_TUN_H + ++#include ++#include ++ + /* Uncomment to enable debugging */ + /* #define TUN_DEBUG 1 */ + + #ifdef __KERNEL__ ++#include + + #ifdef TUN_DEBUG + #define DBG if(tun->debug)printk +@@ -35,6 +39,7 @@ + struct list_head list; + unsigned long flags; + int attached; ++ void *bind_file; + uid_t owner; + gid_t group; + +@@ -92,4 +97,10 @@ + }; + #define TUN_PKT_STRIP 0x0001 + ++extern int tun_net_open(struct net_device *dev); ++extern int tun_chr_open(struct inode *inode, struct file * file); ++extern void tun_net_init(struct net_device *dev); ++extern void tun_setup(struct net_device *dev); ++extern struct list_head tun_dev_list; ++ + #endif /* __IF_TUN_H */ +Index: kernel/include/linux/if_vlan.h +=================================================================== +--- kernel.orig/include/linux/if_vlan.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/if_vlan.h 2008-11-24 15:47:46.000000000 +0100 +@@ -79,6 +79,9 @@ + struct hlist_node hlist; /* linked list */ + struct net_device **vlan_devices_arrays[VLAN_GROUP_ARRAY_SPLIT_PARTS]; + struct rcu_head rcu; ++#ifdef CONFIG_VE ++ struct ve_struct *owner; ++#endif + }; + + static inline struct net_device *vlan_group_get_device(struct vlan_group *vg, int vlan_id) +Index: kernel/include/linux/inetdevice.h +=================================================================== +--- kernel.orig/include/linux/inetdevice.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/inetdevice.h 2008-11-24 15:47:46.000000000 +0100 +@@ -18,6 +18,12 @@ + }; + + extern struct ipv4_devconf ipv4_devconf; ++extern struct ipv4_devconf ipv4_devconf_dflt; ++#if defined(CONFIG_VE) && defined(CONFIG_INET) ++#define ve_ipv4_devconf (*(get_exec_env()->_ipv4_devconf)) ++#else ++#define ve_ipv4_devconf ipv4_devconf ++#endif + + struct in_device + { +@@ -44,7 +50,7 @@ + }; + + #define IPV4_DEVCONF(cnf, attr) ((cnf).data[NET_IPV4_CONF_ ## attr - 1]) +-#define IPV4_DEVCONF_ALL(attr) IPV4_DEVCONF(ipv4_devconf, attr) ++#define IPV4_DEVCONF_ALL(attr) IPV4_DEVCONF(ve_ipv4_devconf, attr) + + static inline int ipv4_devconf_get(struct in_device *in_dev, int index) + { +@@ -136,6 +142,7 @@ + extern __be32 inet_confirm_addr(const struct net_device *dev, __be32 dst, __be32 local, int scope); + extern struct in_ifaddr *inet_ifa_byprefix(struct in_device *in_dev, __be32 prefix, __be32 mask); + extern void inet_forward_change(void); ++extern void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, int destroy); + + static __inline__ int inet_ifa_match(__be32 addr, struct in_ifaddr *ifa) + { +@@ -204,6 +211,16 @@ + #define __in_dev_put(idev) atomic_dec(&(idev)->refcnt) + #define in_dev_hold(idev) atomic_inc(&(idev)->refcnt) + ++struct ve_struct; ++#ifdef CONFIG_INET ++extern int devinet_sysctl_init(struct ve_struct *); ++extern void devinet_sysctl_fini(struct ve_struct *); ++extern void devinet_sysctl_free(struct ve_struct *); ++#else ++static inline int devinet_sysctl_init(struct ve_struct *ve) { return 0; } ++static inline void devinet_sysctl_fini(struct ve_struct *ve) { ; } ++static inline void devinet_sysctl_free(struct ve_struct *ve) { ; } ++#endif + #endif /* __KERNEL__ */ + + static __inline__ __be32 inet_make_mask(int logmask) +Index: kernel/include/linux/init_task.h +=================================================================== +--- kernel.orig/include/linux/init_task.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/init_task.h 2008-11-24 15:47:46.000000000 +0100 +@@ -69,10 +69,17 @@ + .rlim = INIT_RLIMITS, \ + } + ++#ifdef CONFIG_VE ++/* one for ve0, one for init_task */ ++#define INIT_NSPROXY_COUNT ATOMIC_INIT(2) ++#else ++#define INIT_NSPROXY_COUNT ATOMIC_INIT(1) ++#endif ++ + extern struct nsproxy init_nsproxy; + #define INIT_NSPROXY(nsproxy) { \ + .pid_ns = &init_pid_ns, \ +- .count = ATOMIC_INIT(1), \ ++ .count = INIT_NSPROXY_COUNT, \ + .uts_ns = &init_uts_ns, \ + .mnt_ns = NULL, \ + INIT_NET_NS(net_ns) \ +Index: kernel/include/linux/inotify.h +=================================================================== +--- kernel.orig/include/linux/inotify.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/inotify.h 2008-11-24 15:47:46.000000000 +0100 +@@ -67,6 +67,7 @@ + + #include + #include ++#include + + /* + * struct inotify_watch - represents a watch request on a specific inode +@@ -84,6 +85,8 @@ + struct list_head i_list; /* entry in inode's list */ + atomic_t count; /* reference count */ + struct inotify_handle *ih; /* associated inotify handle */ ++ struct dentry *dentry; ++ struct vfsmount *mnt; + struct inode *inode; /* associated inode */ + __s32 wd; /* watch descriptor */ + __u32 mask; /* event mask for this watch */ +@@ -120,6 +123,8 @@ + u32); + extern __s32 inotify_add_watch(struct inotify_handle *, struct inotify_watch *, + struct inode *, __u32); ++extern __s32 inotify_add_watch_dget(struct inotify_handle *, struct inotify_watch *, ++ struct dentry *, struct vfsmount *, __u32); + extern __s32 inotify_clone_watch(struct inotify_watch *, struct inotify_watch *); + extern void inotify_evict_watch(struct inotify_watch *); + extern int inotify_rm_watch(struct inotify_handle *, struct inotify_watch *); +@@ -129,6 +134,66 @@ + extern void get_inotify_watch(struct inotify_watch *); + extern void put_inotify_watch(struct inotify_watch *); + ++/* ++ * struct inotify_handle - represents an inotify instance ++ * ++ * This structure is protected by the mutex 'mutex'. ++ */ ++struct inotify_handle { ++ struct idr idr; /* idr mapping wd -> watch */ ++ struct mutex mutex; /* protects this bad boy */ ++ struct list_head watches; /* list of watches */ ++ atomic_t count; /* reference count */ ++ u32 last_wd; /* the last wd allocated */ ++ const struct inotify_operations *in_ops; /* inotify caller operations */ ++}; ++ ++ ++/* ++ * struct inotify_device - represents an inotify instance ++ * ++ * This structure is protected by the mutex 'mutex'. ++ */ ++struct inotify_device { ++ wait_queue_head_t wq; /* wait queue for i/o */ ++ struct mutex ev_mutex; /* protects event queue */ ++ struct mutex up_mutex; /* synchronizes watch updates */ ++ struct list_head events; /* list of queued events */ ++ atomic_t count; /* reference count */ ++ struct user_struct *user; /* user who opened this dev */ ++ struct inotify_handle *ih; /* inotify handle */ ++ unsigned int queue_size; /* size of the queue (bytes) */ ++ unsigned int event_count; /* number of pending events */ ++ unsigned int max_events; /* maximum number of events */ ++}; ++ ++/* ++ * struct inotify_kernel_event - An inotify event, originating from a watch and ++ * queued for user-space. A list of these is attached to each instance of the ++ * device. In read(), this list is walked and all events that can fit in the ++ * buffer are returned. ++ * ++ * Protected by dev->ev_mutex of the device in which we are queued. ++ */ ++struct inotify_kernel_event { ++ struct inotify_event event; /* the user-space event */ ++ struct list_head list; /* entry in inotify_device's list */ ++ char *name; /* filename, if any */ ++}; ++ ++/* ++ * struct inotify_user_watch - our version of an inotify_watch, we add ++ * a reference to the associated inotify_device. ++ */ ++struct inotify_user_watch { ++ struct inotify_device *dev; /* associated device */ ++ struct inotify_watch wdata; /* inotify watch data */ ++}; ++ ++int inotify_create_watch(struct inotify_device *dev, struct dentry *d, ++ struct vfsmount *mnt, u32 mask); ++ ++ + #else + + static inline void inotify_d_instantiate(struct dentry *dentry, +Index: kernel/include/linux/ioprio.h +=================================================================== +--- kernel.orig/include/linux/ioprio.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/ioprio.h 2008-11-24 15:47:46.000000000 +0100 +@@ -38,6 +38,7 @@ + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP, + IOPRIO_WHO_USER, ++ IOPRIO_WHO_UBC = 1000, + }; + + /* +Index: kernel/include/linux/ipv6.h +=================================================================== +--- kernel.orig/include/linux/ipv6.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/ipv6.h 2008-11-24 15:47:46.000000000 +0100 +@@ -457,12 +457,13 @@ + #define inet_v6_ipv6only(__sk) 0 + #endif /* defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) */ + +-#define INET6_MATCH(__sk, __hash, __saddr, __daddr, __ports, __dif)\ ++#define INET6_MATCH(__sk, __hash, __saddr, __daddr, __ports, __dif,__ve)\ + (((__sk)->sk_hash == (__hash)) && \ + ((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \ + ((__sk)->sk_family == AF_INET6) && \ + ipv6_addr_equal(&inet6_sk(__sk)->daddr, (__saddr)) && \ + ipv6_addr_equal(&inet6_sk(__sk)->rcv_saddr, (__daddr)) && \ ++ ve_accessible_strict((__sk)->owner_env, (__ve)) && \ + (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) + + #endif /* __KERNEL__ */ +Index: kernel/include/linux/kdev_t.h +=================================================================== +--- kernel.orig/include/linux/kdev_t.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/kdev_t.h 2008-11-24 15:47:46.000000000 +0100 +@@ -87,6 +87,57 @@ + return dev & 0x3ffff; + } + ++#define UNNAMED_MAJOR_COUNT 16 ++ ++#if UNNAMED_MAJOR_COUNT > 1 ++ ++extern int unnamed_dev_majors[UNNAMED_MAJOR_COUNT]; ++ ++static inline dev_t make_unnamed_dev(int idx) ++{ ++ /* ++ * Here we transfer bits from 8 to 8+log2(UNNAMED_MAJOR_COUNT) of the ++ * unnamed device index into major number. ++ */ ++ return MKDEV(unnamed_dev_majors[(idx >> 8) & (UNNAMED_MAJOR_COUNT - 1)], ++ idx & ~((UNNAMED_MAJOR_COUNT - 1) << 8)); ++} ++ ++static inline int unnamed_dev_idx(dev_t dev) ++{ ++ int i; ++ for (i = 0; i < UNNAMED_MAJOR_COUNT && ++ MAJOR(dev) != unnamed_dev_majors[i]; i++); ++ return MINOR(dev) | (i << 8); ++} ++ ++static inline int is_unnamed_dev(dev_t dev) ++{ ++ int i; ++ for (i = 0; i < UNNAMED_MAJOR_COUNT && ++ MAJOR(dev) != unnamed_dev_majors[i]; i++); ++ return i < UNNAMED_MAJOR_COUNT; ++} ++ ++#else /* UNNAMED_MAJOR_COUNT */ ++ ++static inline dev_t make_unnamed_dev(int idx) ++{ ++ return MKDEV(0, idx); ++} ++ ++static inline int unnamed_dev_idx(dev_t dev) ++{ ++ return MINOR(dev); ++} ++ ++static inline int is_unnamed_dev(dev_t dev) ++{ ++ return MAJOR(dev) == 0; ++} ++ ++#endif /* UNNAMED_MAJOR_COUNT */ ++ + #else /* __KERNEL__ */ + + /* +Index: kernel/include/linux/kernel.h +=================================================================== +--- kernel.orig/include/linux/kernel.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/kernel.h 2008-11-24 15:47:46.000000000 +0100 +@@ -182,6 +182,12 @@ + extern int log_buf_get_len(void); + extern int log_buf_read(int idx); + extern int log_buf_copy(char *dest, int idx, int len); ++ ++asmlinkage int ve_vprintk(int dst, const char *fmt, va_list args) ++ __attribute__ ((format (printf, 2, 0))); ++asmlinkage int ve_printk(int, const char * fmt, ...) ++ __attribute__ ((format (printf, 2, 3))); ++void prepare_printk(void); + #else + static inline int vprintk(const char *s, va_list args) + __attribute__ ((format (printf, 1, 0))); +@@ -192,8 +198,22 @@ + static inline int log_buf_get_len(void) { return 0; } + static inline int log_buf_read(int idx) { return 0; } + static inline int log_buf_copy(char *dest, int idx, int len) { return 0; } ++ ++static inline int ve_printk(int d, const char *s, ...) ++ __attribute__ ((format (printf, 2, 3))); ++static inline int ve_printk(int d, const char *s, ...) ++{ ++ return 0; ++} ++static inline void prepare_printk(void) ++{ ++} + #endif + ++#define VE0_LOG 1 ++#define VE_LOG 2 ++#define VE_LOG_BOTH (VE0_LOG | VE_LOG) ++ + unsigned long int_sqrt(unsigned long); + + extern int printk_ratelimit(void); +@@ -201,9 +221,14 @@ + extern bool printk_timed_ratelimit(unsigned long *caller_jiffies, + unsigned int interval_msec); + ++extern int console_silence_loglevel; ++ + static inline void console_silent(void) + { +- console_loglevel = 0; ++ if (console_loglevel > console_silence_loglevel) { ++ printk(KERN_EMERG "console shuts up ...\n"); ++ console_loglevel = 0; ++ } + } + + static inline void console_verbose(void) +@@ -217,8 +242,10 @@ + extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */ + extern int panic_timeout; + extern int panic_on_oops; ++extern int decode_call_traces; + extern int panic_on_unrecovered_nmi; + extern int tainted; ++extern int kernel_text_csum_broken; + extern const char *print_tainted(void); + extern void add_taint(unsigned); + +Index: kernel/include/linux/kobject.h +=================================================================== +--- kernel.orig/include/linux/kobject.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/kobject.h 2008-11-24 15:47:46.000000000 +0100 +@@ -55,6 +55,8 @@ + KOBJ_REMOVE, + KOBJ_CHANGE, + KOBJ_MOVE, ++ KOBJ_START, ++ KOBJ_STOP, + KOBJ_ONLINE, + KOBJ_OFFLINE, + KOBJ_MAX +@@ -202,6 +204,9 @@ + /* The global /sys/hypervisor/ subsystem */ + extern struct kset hypervisor_subsys; + ++extern struct kset class_obj_subsys; ++extern struct kset class_subsys; ++ + /* + * Helpers for setting the kset of registered objects. + * Often, a registered object belongs to a kset embedded in a +Index: kernel/include/linux/lockd/lockd.h +=================================================================== +--- kernel.orig/include/linux/lockd/lockd.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/lockd/lockd.h 2008-11-24 15:47:46.000000000 +0100 +@@ -61,6 +61,7 @@ + struct list_head h_granted; /* Locks in GRANTED state */ + struct list_head h_reclaim; /* Locks in RECLAIM state */ + struct nsm_handle * h_nsmhandle; /* NSM status handle */ ++ struct ve_struct * owner_env; /* VE owning the host */ + }; + + struct nsm_handle { +@@ -151,8 +152,11 @@ + #ifdef CONFIG_LOCKD_V4 + extern struct svc_procedure nlmsvc_procedures4[]; + #endif +-extern int nlmsvc_grace_period; +-extern unsigned long nlmsvc_timeout; ++ ++#include ++extern int _nlmsvc_grace_period; ++extern unsigned long _nlmsvc_timeout; ++ + extern int nsm_use_hostnames; + + /* +Index: kernel/include/linux/major.h +=================================================================== +--- kernel.orig/include/linux/major.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/major.h 2008-11-24 15:47:46.000000000 +0100 +@@ -170,4 +170,7 @@ + + #define VIOTAPE_MAJOR 230 + ++#define UNNAMED_EXTRA_MAJOR 130 ++#define UNNAMED_EXTRA_MAJOR_COUNT 120 ++ + #endif +Index: kernel/include/linux/mm.h +=================================================================== +--- kernel.orig/include/linux/mm.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/mm.h 2008-11-24 15:47:46.000000000 +0100 +@@ -661,15 +661,7 @@ + + extern void show_free_areas(void); + +-#ifdef CONFIG_SHMEM +-int shmem_lock(struct file *file, int lock, struct user_struct *user); +-#else +-static inline int shmem_lock(struct file *file, int lock, +- struct user_struct *user) +-{ +- return 0; +-} +-#endif ++#define shmem_nopage filemap_nopage + struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags); + + int shmem_zero_setup(struct vm_area_struct *); +@@ -710,7 +702,9 @@ + void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, + unsigned long floor, unsigned long ceiling); + int copy_page_range(struct mm_struct *dst, struct mm_struct *src, +- struct vm_area_struct *vma); ++ struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma); ++int __copy_page_range(struct vm_area_struct *dst_vma, struct vm_area_struct *vma, ++ unsigned long addr, size_t size); + void unmap_mapping_range(struct address_space *mapping, + loff_t const holebegin, loff_t const holelen, int even_cows); + +Index: kernel/include/linux/mm_types.h +=================================================================== +--- kernel.orig/include/linux/mm_types.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/mm_types.h 2008-11-24 15:47:46.000000000 +0100 +@@ -88,6 +88,13 @@ + void *virtual; /* Kernel virtual address (NULL if + not kmapped, ie. highmem) */ + #endif /* WANT_PAGE_VIRTUAL */ ++#ifdef CONFIG_BEANCOUNTERS ++ union { ++ struct user_beancounter *page_ub; ++ struct page_beancounter *page_pb; ++ struct user_beancounter **slub_ubs; ++ } bc; ++#endif + }; + + /* +@@ -212,6 +219,9 @@ + + unsigned long flags; /* Must use atomic bitops to access the bits */ + ++ unsigned int vps_dumpable:2; ++ unsigned int oom_killed:1; ++ + /* coredumping support */ + int core_waiters; + struct completion *core_startup_done, core_done; +@@ -219,6 +229,9 @@ + /* aio bits */ + rwlock_t ioctx_list_lock; + struct kioctx *ioctx_list; ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *mm_ub; ++#endif + }; + + #endif /* _LINUX_MM_TYPES_H */ +Index: kernel/include/linux/mman.h +=================================================================== +--- kernel.orig/include/linux/mman.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/mman.h 2008-11-24 15:47:46.000000000 +0100 +@@ -61,6 +61,9 @@ + calc_vm_flag_bits(unsigned long flags) + { + return _calc_vm_trans(flags, MAP_GROWSDOWN, VM_GROWSDOWN ) | ++#ifdef MAP_GROWSUP ++ _calc_vm_trans(flags, MAP_GROWSUP, VM_GROWSUP ) | ++#endif + _calc_vm_trans(flags, MAP_DENYWRITE, VM_DENYWRITE ) | + _calc_vm_trans(flags, MAP_EXECUTABLE, VM_EXECUTABLE) | + _calc_vm_trans(flags, MAP_LOCKED, VM_LOCKED ); +Index: kernel/include/linux/mnt_namespace.h +=================================================================== +--- kernel.orig/include/linux/mnt_namespace.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/mnt_namespace.h 2008-11-24 15:47:46.000000000 +0100 +@@ -16,6 +16,8 @@ + + extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *, + struct fs_struct *); ++extern struct rw_semaphore namespace_sem; ++ + extern void __put_mnt_ns(struct mnt_namespace *ns); + + static inline void put_mnt_ns(struct mnt_namespace *ns) +Index: kernel/include/linux/mount.h +=================================================================== +--- kernel.orig/include/linux/mount.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/mount.h 2008-11-24 15:47:46.000000000 +0100 +@@ -61,6 +61,7 @@ + atomic_t mnt_count; + int mnt_expiry_mark; /* true if marked for expiry */ + int mnt_pinned; ++ unsigned owner; + }; + + static inline struct vfsmount *mntget(struct vfsmount *mnt) +Index: kernel/include/linux/msg.h +=================================================================== +--- kernel.orig/include/linux/msg.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/msg.h 2008-11-24 15:47:46.000000000 +0100 +@@ -97,6 +97,14 @@ + extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext, + size_t msgsz, long msgtyp, int msgflg); + ++int sysvipc_walk_msg(int (*func)(int, struct msg_queue*, void *), void *arg); ++int sysvipc_setup_msg(key_t key, int msqid, int msgflg); ++int sysv_msg_store(struct msg_msg *msg, ++ int (*store)(void * src, int len, int offset, void * data), ++ int len, void * data); ++struct msg_msg *sysv_msg_load(int (*load)(void * dst, int len, int offset, ++ void * data), int len, void * data); ++ + #endif /* __KERNEL__ */ + + #endif /* _LINUX_MSG_H */ +Index: kernel/include/linux/namei.h +=================================================================== +--- kernel.orig/include/linux/namei.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/namei.h 2008-11-24 15:47:46.000000000 +0100 +@@ -61,6 +61,8 @@ + #define LOOKUP_CREATE (0x0200) + #define LOOKUP_ACCESS (0x0400) + #define LOOKUP_CHDIR (0x0800) ++#define LOOKUP_NOAREACHECK (0x1000) /* no area check on lookup */ ++#define LOOKUP_STRICT (0x2000) /* no symlinks or other filesystems */ + + extern int FASTCALL(__user_walk(const char __user *, unsigned, struct nameidata *)); + extern int FASTCALL(__user_walk_fd(int dfd, const char __user *, unsigned, struct nameidata *)); +Index: kernel/include/linux/netdevice.h +=================================================================== +--- kernel.orig/include/linux/netdevice.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/netdevice.h 2008-11-24 15:47:46.000000000 +0100 +@@ -280,6 +280,11 @@ + __LINK_STATE_QDISC_RUNNING, + }; + ++struct netdev_bc { ++ struct user_beancounter *exec_ub, *owner_ub; ++}; ++ ++#define netdev_bc(dev) (&(dev)->dev_bc) + + /* + * This structure holds at boot time configured netdevice settings. They +@@ -514,6 +519,10 @@ + #define NETIF_F_GSO_ROBUST (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT) + #define NETIF_F_TSO_ECN (SKB_GSO_TCP_ECN << NETIF_F_GSO_SHIFT) + #define NETIF_F_TSO6 (SKB_GSO_TCPV6 << NETIF_F_GSO_SHIFT) ++/* device is venet device */ ++#define NETIF_F_VENET (1 << (NETIF_F_GSO_SHIFT - 1)) ++/* can be registered inside VE */ ++#define NETIF_F_VIRTUAL (1 << (NETIF_F_GSO_SHIFT - 2)) + + /* List of features with software fallbacks. */ + #define NETIF_F_GSO_SOFTWARE (NETIF_F_TSO | NETIF_F_TSO_ECN | NETIF_F_TSO6) +@@ -716,6 +725,9 @@ + /* macvlan */ + struct macvlan_port *macvlan_port; + ++ struct ve_struct *owner_env; /* Owner VE of the interface */ ++ struct netdev_bc dev_bc; ++ + /* class/net/name entry */ + struct device dev; + /* space for optional statistics and wireless sysfs groups */ +@@ -730,6 +742,20 @@ + }; + #define to_net_dev(d) container_of(d, struct net_device, dev) + ++#define NETDEV_HASHBITS 8 ++#define NETDEV_HASHENTRIES (1 << NETDEV_HASHBITS) ++ ++static inline struct hlist_head *dev_name_hash(struct net *net, const char *name) ++{ ++ unsigned hash = full_name_hash(name, strnlen(name, IFNAMSIZ)); ++ return &net->dev_name_head[hash & ((1 << NETDEV_HASHBITS) - 1)]; ++} ++ ++static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex) ++{ ++ return &net->dev_index_head[ifindex & ((1 << NETDEV_HASHBITS) - 1)]; ++} ++ + #define NETDEV_ALIGN 32 + #define NETDEV_ALIGN_CONST (NETDEV_ALIGN - 1) + +@@ -1092,6 +1118,9 @@ + extern unsigned dev_get_flags(const struct net_device *); + extern int dev_change_flags(struct net_device *, unsigned); + extern int dev_change_name(struct net_device *, char *); ++int __dev_change_net_namespace(struct net_device *, struct net *, const char *, ++ struct ve_struct *src_ve, struct ve_struct *dst_ve, ++ struct user_beancounter *exec_ub); + extern int dev_change_net_namespace(struct net_device *, + struct net *, const char *); + extern int dev_set_mtu(struct net_device *, int); +@@ -1453,6 +1482,18 @@ + + extern int netdev_compute_features(unsigned long all, unsigned long one); + ++#if defined(CONFIG_VE) && defined(CONFIG_NET) ++static inline int ve_is_dev_movable(struct net_device *dev) ++{ ++ return !(dev->features & NETIF_F_VIRTUAL); ++} ++#else ++static inline int ve_is_dev_movable(struct net_device *dev) ++{ ++ return 0; ++} ++#endif ++ + static inline int net_gso_ok(int features, int gso_type) + { + int feature = gso_type << NETIF_F_GSO_SHIFT; +Index: kernel/include/linux/netfilter.h +=================================================================== +--- kernel.orig/include/linux/netfilter.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/netfilter.h 2008-11-24 15:47:46.000000000 +0100 +@@ -126,7 +126,13 @@ + extern struct ctl_table nf_net_ipv4_netfilter_sysctl_path[]; + #endif /* CONFIG_SYSCTL */ + ++#ifdef CONFIG_VE_IPTABLES ++#define ve_nf_hooks \ ++ ((struct list_head (*)[NF_MAX_HOOKS])(get_exec_env()->_nf_hooks)) ++#else + extern struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS]; ++#define ve_nf_hooks nf_hooks ++#endif + + /* those NF_LOG_* defines and struct nf_loginfo are legacy definitios that will + * disappear once iptables is replaced with pkttables. Please DO NOT use them +@@ -204,7 +210,7 @@ + if (!cond) + return 1; + #ifndef CONFIG_NETFILTER_DEBUG +- if (list_empty(&nf_hooks[pf][hook])) ++ if (list_empty(&ve_nf_hooks[pf][hook])) + return 1; + #endif + return nf_hook_slow(pf, hook, skb, indev, outdev, okfn, thresh); +Index: kernel/include/linux/netfilter/x_tables.h +=================================================================== +--- kernel.orig/include/linux/netfilter/x_tables.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/netfilter/x_tables.h 2008-11-24 15:47:46.000000000 +0100 +@@ -259,6 +259,7 @@ + { + /* Size per table */ + unsigned int size; ++ unsigned int alloc_size; + /* Number of entries: FIXME. --RR */ + unsigned int number; + /* Initial number of entries. Needed for module usage count */ +@@ -293,6 +294,10 @@ + struct xt_table_info *bootstrap, + struct xt_table_info *newinfo); + extern void *xt_unregister_table(struct xt_table *table); ++extern struct xt_table *virt_xt_register_table(struct xt_table *table, ++ struct xt_table_info *bootstrap, ++ struct xt_table_info *newinfo); ++extern void *virt_xt_unregister_table(struct xt_table *table); + + extern struct xt_table_info *xt_replace_table(struct xt_table *table, + unsigned int num_counters, +Index: kernel/include/linux/netfilter/xt_hashlimit.h +=================================================================== +--- kernel.orig/include/linux/netfilter/xt_hashlimit.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/netfilter/xt_hashlimit.h 2008-11-24 15:47:46.000000000 +0100 +@@ -37,4 +37,10 @@ + struct xt_hashlimit_info *master; + } u; + }; ++ ++struct ve_xt_hashlimit { ++ struct hlist_head hashlimit_htables; ++ struct proc_dir_entry *hashlimit_procdir4; ++ struct proc_dir_entry *hashlimit_procdir6; ++}; + #endif /*_XT_HASHLIMIT_H*/ +Index: kernel/include/linux/netfilter_ipv4/ip_tables.h +=================================================================== +--- kernel.orig/include/linux/netfilter_ipv4/ip_tables.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/netfilter_ipv4/ip_tables.h 2008-11-24 15:47:46.000000000 +0100 +@@ -292,7 +292,7 @@ + #include + extern void ipt_init(void) __init; + +-extern int ipt_register_table(struct xt_table *table, ++extern struct xt_table *ipt_register_table(struct xt_table *table, + const struct ipt_replace *repl); + extern void ipt_unregister_table(struct xt_table *table); + +Index: kernel/include/linux/netfilter_ipv4/ipt_recent.h +=================================================================== +--- kernel.orig/include/linux/netfilter_ipv4/ipt_recent.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/netfilter_ipv4/ipt_recent.h 2008-11-24 15:47:46.000000000 +0100 +@@ -24,4 +24,10 @@ + u_int8_t side; + }; + ++struct ve_ipt_recent { ++ struct list_head tables; ++#ifdef CONFIG_PROC_FS ++ struct proc_dir_entry *proc_dir; ++#endif ++}; + #endif /*_IPT_RECENT_H*/ +Index: kernel/include/linux/netfilter_ipv6/ip6_tables.h +=================================================================== +--- kernel.orig/include/linux/netfilter_ipv6/ip6_tables.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/netfilter_ipv6/ip6_tables.h 2008-11-24 15:47:46.000000000 +0100 +@@ -333,7 +333,7 @@ + #include + extern void ip6t_init(void) __init; + +-extern int ip6t_register_table(struct xt_table *table, ++extern struct xt_table *ip6t_register_table(struct xt_table *table, + const struct ip6t_replace *repl); + extern void ip6t_unregister_table(struct xt_table *table); + extern unsigned int ip6t_do_table(struct sk_buff *skb, +Index: kernel/include/linux/nfcalls.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/nfcalls.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,188 @@ ++/* ++ * include/linux/nfcalls.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _LINUX_NFCALLS_H ++#define _LINUX_NFCALLS_H ++ ++#include ++ ++#ifdef CONFIG_MODULES ++extern struct module no_module; ++ ++#define DECL_KSYM_MODULE(name) \ ++ extern struct module *vz_mod_##name ++ ++#define INIT_KSYM_MODULE(name) \ ++ struct module *vz_mod_##name = &no_module; \ ++ EXPORT_SYMBOL(vz_mod_##name) ++ ++static inline void __vzksym_modresolve(struct module **modp, struct module *mod) ++{ ++ /* ++ * we want to be sure, that pointer updates are visible first: ++ * 1. wmb() is here only for piece of sure ++ * (note, no rmb() in KSYMSAFECALL) ++ * 2. synchronize_sched() guarantees that updates are visible ++ * on all cpus and allows us to remove rmb() in KSYMSAFECALL ++ */ ++ wmb(); synchronize_sched(); ++ *modp = mod; ++ /* just to be sure, our changes are visible as soon as possible */ ++ wmb(); synchronize_sched(); ++} ++ ++static inline void __vzksym_modunresolve(struct module **modp) ++{ ++ /* ++ * try_module_get() in KSYMSAFECALL should fail at this moment since ++ * THIS_MODULE in in unloading state (we should be called from fini), ++ * no need to syncronize pointers/ve_module updates. ++ */ ++ *modp = &no_module; ++ /* ++ * synchronize_sched() guarantees here that we see ++ * updated module pointer before the module really gets away ++ */ ++ synchronize_sched(); ++} ++ ++static inline int __vzksym_module_get(struct module *mod) ++{ ++ /* ++ * we want to avoid rmb(), so use synchronize_sched() in KSYMUNRESOLVE ++ * and smp_read_barrier_depends() here... ++ */ ++ smp_read_barrier_depends(); /* for module loading */ ++ if (!try_module_get(mod)) ++ return -EBUSY; ++ ++ return 0; ++} ++ ++static inline void __vzksym_module_put(struct module *mod) ++{ ++ module_put(mod); ++} ++#else ++#define DECL_KSYM_MODULE(name) ++#define INIT_KSYM_MODULE(name) ++#define __vzksym_modresolve(modp, mod) ++#define __vzksym_modunresolve(modp) ++#define __vzksym_module_get(mod) 0 ++#define __vzksym_module_put(mod) ++#endif ++ ++#define __KSYMERRCALL(err, type, mod, name, args) \ ++({ \ ++ type ret = (type)err; \ ++ if (!__vzksym_module_get(vz_mod_##mod)) { \ ++ if (vz_##name) \ ++ ret = ((*vz_##name)args); \ ++ __vzksym_module_put(vz_mod_##mod); \ ++ } \ ++ ret; \ ++}) ++ ++#define __KSYMSAFECALL_VOID(mod, name, args) \ ++ do { \ ++ if (!__vzksym_module_get(vz_mod_##mod)) { \ ++ if (vz_##name) \ ++ ((*vz_##name)args); \ ++ __vzksym_module_put(vz_mod_##mod); \ ++ } \ ++ } while (0) ++ ++#define DECL_KSYM_CALL(type, name, args) \ ++ extern type (*vz_##name) args ++#define INIT_KSYM_CALL(type, name, args) \ ++ type (*vz_##name) args; \ ++EXPORT_SYMBOL(vz_##name) ++ ++#define KSYMERRCALL(err, mod, name, args) \ ++ __KSYMERRCALL(err, int, mod, name, args) ++#define KSYMSAFECALL(type, mod, name, args) \ ++ __KSYMERRCALL(0, type, mod, name, args) ++#define KSYMSAFECALL_VOID(mod, name, args) \ ++ __KSYMSAFECALL_VOID(mod, name, args) ++#define KSYMREF(name) vz_##name ++ ++/* should be called _after_ KSYMRESOLVE's */ ++#define KSYMMODRESOLVE(name) \ ++ __vzksym_modresolve(&vz_mod_##name, THIS_MODULE) ++#define KSYMMODUNRESOLVE(name) \ ++ __vzksym_modunresolve(&vz_mod_##name) ++ ++#define KSYMRESOLVE(name) \ ++ vz_##name = &name ++#define KSYMUNRESOLVE(name) \ ++ vz_##name = NULL ++ ++#if defined(CONFIG_VE) ++DECL_KSYM_MODULE(ip_tables); ++DECL_KSYM_MODULE(ip6_tables); ++DECL_KSYM_MODULE(iptable_filter); ++DECL_KSYM_MODULE(ip6table_filter); ++DECL_KSYM_MODULE(iptable_mangle); ++DECL_KSYM_MODULE(ip6table_mangle); ++DECL_KSYM_MODULE(ip_conntrack); ++DECL_KSYM_MODULE(nf_conntrack); ++DECL_KSYM_MODULE(nf_conntrack_ipv4); ++DECL_KSYM_MODULE(nf_conntrack_ipv6); ++DECL_KSYM_MODULE(xt_conntrack); ++DECL_KSYM_MODULE(ip_nat); ++DECL_KSYM_MODULE(nf_nat); ++DECL_KSYM_MODULE(iptable_nat); ++ ++struct sk_buff; ++ ++DECL_KSYM_CALL(int, init_netfilter, (void)); ++DECL_KSYM_CALL(int, init_iptables, (void)); ++DECL_KSYM_CALL(int, init_ip6tables, (void)); ++DECL_KSYM_CALL(int, init_iptable_filter, (void)); ++DECL_KSYM_CALL(int, init_ip6table_filter, (void)); ++DECL_KSYM_CALL(int, init_iptable_mangle, (void)); ++DECL_KSYM_CALL(int, init_ip6table_mangle, (void)); ++DECL_KSYM_CALL(int, init_iptable_conntrack, (void)); ++DECL_KSYM_CALL(int, nf_conntrack_init_ve, (void)); ++DECL_KSYM_CALL(int, init_nf_ct_l3proto_ipv4, (void)); ++DECL_KSYM_CALL(int, init_nf_ct_l3proto_ipv6, (void)); ++DECL_KSYM_CALL(int, nf_nat_init, (void)); ++DECL_KSYM_CALL(int, init_iptable_nat, (void)); ++DECL_KSYM_CALL(int, init_nftable_nat, (void)); ++DECL_KSYM_CALL(int, nf_nat_init, (void)); ++DECL_KSYM_CALL(void, fini_iptable_nat, (void)); ++DECL_KSYM_CALL(void, fini_nftable_nat, (void)); ++DECL_KSYM_CALL(void, nf_nat_cleanup, (void)); ++DECL_KSYM_CALL(void, fini_iptable_conntrack, (void)); ++DECL_KSYM_CALL(void, nf_conntrack_cleanup_ve, (void)); ++DECL_KSYM_CALL(void, fini_nf_ct_l3proto_ipv4, (void)); ++DECL_KSYM_CALL(void, fini_nf_ct_l3proto_ipv6, (void)); ++DECL_KSYM_CALL(void, fini_iptable_filter, (void)); ++DECL_KSYM_CALL(void, fini_ip6table_filter, (void)); ++DECL_KSYM_CALL(void, fini_iptable_mangle, (void)); ++DECL_KSYM_CALL(void, fini_ip6table_mangle, (void)); ++DECL_KSYM_CALL(void, fini_iptables, (void)); ++DECL_KSYM_CALL(void, fini_ip6tables, (void)); ++DECL_KSYM_CALL(void, fini_netfilter, (void)); ++ ++#include ++#endif ++ ++#if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) ++DECL_KSYM_MODULE(vzethdev); ++DECL_KSYM_CALL(int, veth_open, (struct net_device *dev)); ++#endif ++ ++#if defined(CONFIG_VE_CALLS) || defined(CONFIG_VE_CALLS_MODULE) ++DECL_KSYM_MODULE(vzmon); ++DECL_KSYM_CALL(void, real_do_env_free, (struct ve_struct *env)); ++#endif ++ ++#endif /* _LINUX_NFCALLS_H */ +Index: kernel/include/linux/nfs_fs_sb.h +=================================================================== +--- kernel.orig/include/linux/nfs_fs_sb.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/nfs_fs_sb.h 2008-11-24 15:47:46.000000000 +0100 +@@ -65,6 +65,7 @@ + char cl_ipaddr[16]; + unsigned char cl_id_uniquifier; + #endif ++ struct ve_struct *owner_env; + }; + + /* +Index: kernel/include/linux/notifier.h +=================================================================== +--- kernel.orig/include/linux/notifier.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/notifier.h 2008-11-24 15:47:46.000000000 +0100 +@@ -149,8 +149,9 @@ + + #define NOTIFY_DONE 0x0000 /* Don't care */ + #define NOTIFY_OK 0x0001 /* Suits me */ ++#define NOTIFY_FAIL 0x0002 /* Reject */ + #define NOTIFY_STOP_MASK 0x8000 /* Don't call further */ +-#define NOTIFY_BAD (NOTIFY_STOP_MASK|0x0002) ++#define NOTIFY_BAD (NOTIFY_STOP_MASK|NOTIFY_FAIL) + /* Bad/Veto action */ + /* + * Clean way to return from the notifier and stop further calls. +Index: kernel/include/linux/nsproxy.h +=================================================================== +--- kernel.orig/include/linux/nsproxy.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/nsproxy.h 2008-11-24 15:47:46.000000000 +0100 +@@ -66,6 +66,7 @@ + void exit_task_namespaces(struct task_struct *tsk); + void switch_task_namespaces(struct task_struct *tsk, struct nsproxy *new); + void free_nsproxy(struct nsproxy *ns); ++struct mnt_namespace * get_task_mnt_ns(struct task_struct *tsk); + int unshare_nsproxy_namespaces(unsigned long, struct nsproxy **, + struct fs_struct *); + +@@ -76,9 +77,10 @@ + } + } + +-static inline void get_nsproxy(struct nsproxy *ns) ++static inline struct nsproxy *get_nsproxy(struct nsproxy *ns) + { + atomic_inc(&ns->count); ++ return ns; + } + + #ifdef CONFIG_CGROUP_NS +Index: kernel/include/linux/page-flags.h +=================================================================== +--- kernel.orig/include/linux/page-flags.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/page-flags.h 2008-11-24 15:47:46.000000000 +0100 +@@ -93,6 +93,8 @@ + /* PG_readahead is only used for file reads; PG_reclaim is only for writes */ + #define PG_readahead PG_reclaim /* Reminder to do async read-ahead */ + ++#define PG_checkpointed 21 /* Page transferred */ ++ + /* PG_owner_priv_1 users should have descriptive aliases */ + #define PG_checked PG_owner_priv_1 /* Used by some filesystems */ + #define PG_pinned PG_owner_priv_1 /* Xen pinned pagetable */ +@@ -260,6 +262,8 @@ + #define SetPageUncached(page) set_bit(PG_uncached, &(page)->flags) + #define ClearPageUncached(page) clear_bit(PG_uncached, &(page)->flags) + ++#define ClearPageCheckpointed(page) clear_bit(PG_checkpointed, &(page)->flags) ++ + struct page; /* forward declaration */ + + extern void cancel_dirty_page(struct page *page, unsigned int account_size); +Index: kernel/include/linux/percpu.h +=================================================================== +--- kernel.orig/include/linux/percpu.h 2008-11-24 14:17:47.000000000 +0100 ++++ kernel/include/linux/percpu.h 2008-11-24 15:47:46.000000000 +0100 +@@ -49,6 +49,13 @@ + (__typeof__(ptr))__p->ptrs[(cpu)]; \ + }) + ++#define static_percpu_ptr(sptr, sptrs) ({ \ ++ int i; \ ++ for (i = 0; i < NR_CPUS; i++) \ ++ (sptr)->ptrs[i] = &(sptrs)[i]; \ ++ (void *)__percpu_disguise(sptr); \ ++ }) ++ + extern void *percpu_populate(void *__pdata, size_t size, gfp_t gfp, int cpu); + extern void percpu_depopulate(void *__pdata, int cpu); + extern int __percpu_populate_mask(void *__pdata, size_t size, gfp_t gfp, +@@ -60,6 +67,7 @@ + #else /* CONFIG_SMP */ + + #define percpu_ptr(ptr, cpu) ({ (void)(cpu); (ptr); }) ++#define static_percpu_ptr(sptr, sptrs) (&sptrs[0]) + + static inline void percpu_depopulate(void *__pdata, int cpu) + { +Index: kernel/include/linux/pid.h +=================================================================== +--- kernel.orig/include/linux/pid.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/pid.h 2008-11-24 15:47:46.000000000 +0100 +@@ -59,6 +59,9 @@ + atomic_t count; + /* lists of tasks that use this pid */ + struct hlist_head tasks[PIDTYPE_MAX]; ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *ub; ++#endif + struct rcu_head rcu; + int level; + struct upid numbers[1]; +@@ -119,9 +122,12 @@ + extern struct pid *find_get_pid(int nr); + extern struct pid *find_ge_pid(int nr, struct pid_namespace *); + +-extern struct pid *alloc_pid(struct pid_namespace *ns); ++extern struct pid *alloc_pid(struct pid_namespace *ns, pid_t vpid); + extern void FASTCALL(free_pid(struct pid *pid)); ++extern int pid_ns_attach_init(struct pid_namespace *, struct task_struct *); ++extern int pid_ns_attach_task(struct pid_namespace *, struct task_struct *); + extern void zap_pid_ns_processes(struct pid_namespace *pid_ns); ++pid_t pid_to_vpid(pid_t nr); + + /* + * the helpers to get the pid's id seen from different namespaces +Index: kernel/include/linux/poll.h +=================================================================== +--- kernel.orig/include/linux/poll.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/poll.h 2008-11-24 15:47:46.000000000 +0100 +@@ -117,6 +117,7 @@ + extern int do_select(int n, fd_set_bits *fds, s64 *timeout); + extern int do_sys_poll(struct pollfd __user * ufds, unsigned int nfds, + s64 *timeout); ++long do_restart_poll(struct restart_block *restart_block); + + #endif /* KERNEL */ + +Index: kernel/include/linux/proc_fs.h +=================================================================== +--- kernel.orig/include/linux/proc_fs.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/proc_fs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -5,6 +5,7 @@ + #include + #include + #include ++#include + #include + + struct net; +@@ -100,6 +101,8 @@ + + extern struct proc_dir_entry proc_root; + extern struct proc_dir_entry *proc_root_fs; ++extern struct file_system_type proc_fs_type; ++ + extern struct proc_dir_entry *proc_bus; + extern struct proc_dir_entry *proc_root_driver; + extern struct proc_dir_entry *proc_root_kcore; +@@ -124,7 +127,17 @@ + + extern struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, + struct proc_dir_entry *parent); ++extern struct proc_dir_entry *create_proc_glob_entry(const char *name, ++ mode_t mode, ++ struct proc_dir_entry *parent); + extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent); ++extern void remove_proc_glob_entry(const char *name, struct proc_dir_entry *parent); ++ ++#ifdef CONFIG_VE ++#define proc_mnt(ve) (ve->proc_mnt) ++#else ++#define proc_mnt(ve) (proc_mnt) ++#endif + + extern struct vfsmount *proc_mnt; + struct pid_namespace; +@@ -202,12 +215,22 @@ + const char *name, mode_t mode, const struct file_operations *fops); + extern void proc_net_remove(struct net *net, const char *name); + ++static inline struct proc_dir_entry *proc_glob_fops_create(const char *name, ++ mode_t mode, const struct file_operations *fops) ++{ ++ struct proc_dir_entry *res = create_proc_glob_entry(name, mode, NULL); ++ if (res) ++ res->proc_fops = fops; ++ return res; ++} ++ + #else + + #define proc_root_driver NULL + #define proc_bus NULL + + #define proc_net_fops_create(net, name, mode, fops) ({ (void)(mode), NULL; }) ++#define proc_glob_fops_create(name, mode, fops) ({ (void)(mode), NULL; }) + static inline void proc_net_remove(struct net *net, const char *name) {} + + static inline void proc_flush_task(struct task_struct *task) +@@ -216,6 +239,8 @@ + + static inline struct proc_dir_entry *create_proc_entry(const char *name, + mode_t mode, struct proc_dir_entry *parent) { return NULL; } ++static inline struct proc_dir_entry *create_proc_glob_entry(const char *name, ++ mode_t mode, struct proc_dir_entry *parent) { return NULL; } + + #define remove_proc_entry(name, parent) do {} while (0) + +@@ -248,6 +273,48 @@ + + #endif /* CONFIG_PROC_FS */ + ++static inline struct proc_dir_entry *create_proc_entry_mod(const char *name, ++ mode_t mode, ++ struct proc_dir_entry *parent, ++ struct module *owner) ++{ ++ struct proc_dir_entry *ent; ++ ++ /* ++ * lock_kernel() here protects against proc_lookup() ++ * which can find this freshly created entry w/o owner being set. ++ * this can lead to module being put more times then getted. ++ */ ++ lock_kernel(); ++ ent = create_proc_entry(name, mode, parent); ++ if (ent) ++ ent->owner = owner; ++ unlock_kernel(); ++ ++ return ent; ++} ++ ++static inline struct proc_dir_entry *create_proc_glob_entry_mod(const char *name, ++ mode_t mode, ++ struct proc_dir_entry *parent, ++ struct module *owner) ++{ ++ struct proc_dir_entry *ent; ++ ++ /* ++ * lock_kernel() here protects against proc_lookup() ++ * which can find this freshly created entry w/o owner being set. ++ * this can lead to module being put more times then getted. ++ */ ++ lock_kernel(); ++ ent = create_proc_glob_entry(name, mode, parent); ++ if (ent) ++ ent->owner = owner; ++ unlock_kernel(); ++ ++ return ent; ++} ++ + #if !defined(CONFIG_PROC_KCORE) + static inline void kclist_add(struct kcore_list *new, void *addr, size_t size) + { +@@ -294,4 +361,11 @@ + #endif + }; + ++#define LPDE(inode) (PROC_I((inode))->pde) ++#ifdef CONFIG_VE ++#define GPDE(inode) (*(struct proc_dir_entry **)(&(inode)->i_pipe)) ++#endif ++ ++int proc_match(int len, const char *name, struct proc_dir_entry *de); ++ + #endif /* _LINUX_PROC_FS_H */ +Index: kernel/include/linux/quota.h +=================================================================== +--- kernel.orig/include/linux/quota.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/quota.h 2008-11-24 15:47:46.000000000 +0100 +@@ -164,6 +164,10 @@ + #include + #include + ++#include ++ ++extern spinlock_t dq_data_lock; ++ + #include + #include + #include +@@ -274,6 +278,8 @@ + int (*release_dqblk)(struct dquot *dquot); /* Called when last reference to dquot is being dropped */ + }; + ++struct inode; ++struct iattr; + /* Operations working with dquots */ + struct dquot_operations { + int (*initialize) (struct inode *, int); +@@ -288,9 +294,11 @@ + int (*release_dquot) (struct dquot *); /* Quota is going to be deleted from disk */ + int (*mark_dirty) (struct dquot *); /* Dquot is marked dirty */ + int (*write_info) (struct super_block *, int); /* Write of quota "superblock" */ ++ int (*rename) (struct inode *, struct inode *, struct inode *); + }; + + /* Operations handling requests from userspace */ ++struct v2_disk_dqblk; + struct quotactl_ops { + int (*quota_on)(struct super_block *, int, int, char *); + int (*quota_off)(struct super_block *, int); +@@ -303,6 +311,10 @@ + int (*set_xstate)(struct super_block *, unsigned int, int); + int (*get_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *); + int (*set_xquota)(struct super_block *, int, qid_t, struct fs_disk_quota *); ++#ifdef CONFIG_QUOTA_COMPAT ++ int (*get_quoti)(struct super_block *, int, unsigned int, ++ struct v2_disk_dqblk __user *); ++#endif + }; + + struct quota_format_type { +@@ -323,6 +335,10 @@ + struct inode *files[MAXQUOTAS]; /* inodes of quotafiles */ + struct mem_dqinfo info[MAXQUOTAS]; /* Information for each quota type */ + struct quota_format_ops *ops[MAXQUOTAS]; /* Operations for each type */ ++#if defined(CONFIG_VZ_QUOTA) || defined(CONFIG_VZ_QUOTA_MODULE) ++ struct vz_quota_master *vzdq_master; ++ int vzdq_count; ++#endif + }; + + /* Inline would be better but we need to dereference super_block which is not defined yet */ +Index: kernel/include/linux/quotaops.h +=================================================================== +--- kernel.orig/include/linux/quotaops.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/quotaops.h 2008-11-24 15:47:46.000000000 +0100 +@@ -170,6 +170,19 @@ + return 0; + } + ++static __inline__ int DQUOT_RENAME(struct inode *inode, ++ struct inode *old_dir, struct inode *new_dir) ++{ ++ struct dquot_operations *q_op; ++ ++ q_op = inode->i_sb->dq_op; ++ if (q_op && q_op->rename) { ++ if (q_op->rename(inode, old_dir, new_dir) == NO_QUOTA) ++ return 1; ++ } ++ return 0; ++} ++ + /* The following two functions cannot be called inside a transaction */ + #define DQUOT_SYNC(sb) sync_dquots(sb, -1) + +@@ -196,6 +209,7 @@ + #define DQUOT_SYNC(sb) do { } while(0) + #define DQUOT_OFF(sb) do { } while(0) + #define DQUOT_TRANSFER(inode, iattr) (0) ++#define DQUOT_RENAME(inode, old_dir, new_dir) (0) + static inline int DQUOT_PREALLOC_SPACE_NODIRTY(struct inode *inode, qsize_t nr) + { + inode_add_bytes(inode, nr); +Index: kernel/include/linux/rmap.h +=================================================================== +--- kernel.orig/include/linux/rmap.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/rmap.h 2008-11-24 15:47:46.000000000 +0100 +@@ -73,6 +73,8 @@ + void page_add_new_anon_rmap(struct page *, struct vm_area_struct *, unsigned long); + void page_add_file_rmap(struct page *); + void page_remove_rmap(struct page *, struct vm_area_struct *); ++struct anon_vma *page_lock_anon_vma(struct page *page); ++void page_unlock_anon_vma(struct anon_vma *anon_vma); + + #ifdef CONFIG_DEBUG_VM + void page_dup_rmap(struct page *page, struct vm_area_struct *vma, unsigned long address); +Index: kernel/include/linux/sched.h +=================================================================== +--- kernel.orig/include/linux/sched.h 2008-11-24 14:17:45.000000000 +0100 ++++ kernel/include/linux/sched.h 2008-11-24 15:47:46.000000000 +0100 +@@ -28,6 +28,9 @@ + #define CLONE_NEWPID 0x20000000 /* New pid namespace */ + #define CLONE_NEWNET 0x40000000 /* New network namespace */ + ++/* mask of clones which are disabled in OpenVZ VEs */ ++#define CLONE_NAMESPACES_MASK (CLONE_NEWUTS | CLONE_NEWIPC | CLONE_NEWUSER | CLONE_NEWPID | CLONE_NEWNET) ++ + /* + * Scheduling policies + */ +@@ -92,6 +95,8 @@ + + #include + ++#include ++ + struct exec_domain; + struct futex_pi_state; + struct bio; +@@ -126,15 +131,38 @@ + load += n*(FIXED_1-exp); \ + load >>= FSHIFT; + ++#define LOAD_INT(x) ((x) >> FSHIFT) ++#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100) ++ + extern unsigned long total_forks; + extern int nr_threads; + DECLARE_PER_CPU(unsigned long, process_counts); + extern int nr_processes(void); + extern unsigned long nr_running(void); ++extern unsigned long nr_sleeping(void); ++extern unsigned long nr_stopped(void); + extern unsigned long nr_uninterruptible(void); + extern unsigned long nr_active(void); + extern unsigned long nr_iowait(void); + extern unsigned long weighted_cpuload(const int cpu); ++extern atomic_t nr_dead; ++extern unsigned long nr_zombie; ++ ++#ifdef CONFIG_VE ++struct ve_struct; ++extern unsigned long nr_running_ve(struct ve_struct *); ++extern unsigned long nr_iowait_ve(struct ve_struct *); ++extern unsigned long nr_uninterruptible_ve(struct ve_struct *); ++extern cycles_t ve_sched_get_idle_time(struct ve_struct *ve, int cpu); ++extern cycles_t ve_sched_get_iowait_time(struct ve_struct *ve, int cpu); ++void ve_sched_attach(struct ve_struct *envid); ++#else ++#define nr_running_ve(ve) 0 ++#define nr_iowait_ve(ve) 0 ++#define nr_uninterruptible_ve(ve) 0 ++#define ve_sched_get_idle_time(ve, cpu) 0 ++#define ve_sched_get_iowait_time(ve, cpu) 0 ++#endif + + struct seq_file; + struct cfs_rq; +@@ -242,6 +270,7 @@ + } + + extern void show_regs(struct pt_regs *); ++extern void smp_show_regs(struct pt_regs *, void *); + + /* + * TASK is a pointer to the task whose backtrace we want to see (or NULL for current +@@ -389,6 +418,9 @@ + unsigned long ac_minflt, ac_majflt; + }; + ++#include ++#include ++ + /* + * NOTE! "signal_struct" does not have it's own + * locking, because a shared signal_struct always +@@ -985,6 +1017,7 @@ + /* ??? */ + unsigned int personality; + unsigned did_exec:1; ++ unsigned did_ve_enter:1; + pid_t pid; + pid_t tgid; + +@@ -1173,6 +1206,14 @@ + struct rcu_head rcu; + + /* ++ * state tracking for suspend ++ * FIXME - ptrace is completely rewritten in this kernel ++ * so set_pn_state() is not set in many places correctyl ++ */ ++ __u8 pn_state; ++ __u8 stopped_state:1; ++ ++ /* + * cache last used pipe for splice + */ + struct pipe_inode_info *splice_pipe; +@@ -1188,6 +1229,16 @@ + struct latency_record latency_record[LT_SAVECOUNT]; + #endif + struct list_head *scm_work_list; ++#ifdef CONFIG_BEANCOUNTERS ++ struct task_beancounter task_bc; ++#endif ++#ifdef CONFIG_VE ++ struct ve_task_info ve_task_info; ++#endif ++#if defined(CONFIG_VZ_QUOTA) || defined(CONFIG_VZ_QUOTA_MODULE) ++ unsigned long magic; ++ struct inode *ino; ++#endif + }; + + /* +@@ -1363,6 +1414,43 @@ + __put_task_struct(t); + } + ++#ifndef CONFIG_VE ++#define set_pn_state(tsk, state) do { } while(0) ++#define clear_pn_state(tsk) do { } while(0) ++#define set_stop_state(tsk) do { } while(0) ++#define clear_stop_state(tsk) do { } while(0) ++#else ++#define PN_STOP_TF 1 /* was not in 2.6.8 */ ++#define PN_STOP_TF_RT 2 /* was not in 2.6.8 */ ++#define PN_STOP_ENTRY 3 ++#define PN_STOP_FORK 4 ++#define PN_STOP_VFORK 5 ++#define PN_STOP_SIGNAL 6 ++#define PN_STOP_EXIT 7 ++#define PN_STOP_EXEC 8 ++#define PN_STOP_LEAVE 9 ++ ++static inline void set_pn_state(struct task_struct *tsk, int state) ++{ ++ tsk->pn_state = state; ++} ++ ++static inline void clear_pn_state(struct task_struct *tsk) ++{ ++ tsk->pn_state = 0; ++} ++ ++static inline void set_stop_state(struct task_struct *tsk) ++{ ++ tsk->stopped_state = 1; ++} ++ ++static inline void clear_stop_state(struct task_struct *tsk) ++{ ++ tsk->stopped_state = 0; ++} ++#endif ++ + /* + * Per process flags + */ +@@ -1379,6 +1467,7 @@ + #define PF_MEMALLOC 0x00000800 /* Allocating memory */ + #define PF_FLUSHER 0x00001000 /* responsible for disk writeback */ + #define PF_USED_MATH 0x00002000 /* if unset the fpu must be initialized before use */ ++#define PF_EXIT_RESTART 0x00004000 /* do_exit() restarted, see do_exit() */ + #define PF_NOFREEZE 0x00008000 /* this thread should not be frozen */ + #define PF_FROZEN 0x00010000 /* frozen for system suspend */ + #define PF_FSTRANS 0x00020000 /* inside a filesystem transaction */ +@@ -1441,6 +1530,21 @@ + extern unsigned long long + task_sched_runtime(struct task_struct *task); + ++static inline unsigned long cycles_to_clocks(cycles_t cycles) ++{ ++ extern unsigned long cycles_per_clock; ++ do_div(cycles, cycles_per_clock); ++ return cycles; ++} ++ ++static inline u64 cycles_to_jiffies(cycles_t cycles) ++{ ++ extern unsigned long cycles_per_jiffy; ++ do_div(cycles, cycles_per_jiffy); ++ return cycles; ++} ++ ++ + /* sched_exec is called by processes performing an exec */ + #ifdef CONFIG_SMP + extern void sched_exec(void); +@@ -1570,6 +1674,9 @@ + extern void free_uid(struct user_struct *); + extern void switch_uid(struct user_struct *); + extern void release_uids(struct user_namespace *ns); ++extern int set_user(uid_t uid, int dumpclear); ++extern void set_special_pids(pid_t session, pid_t pgrp); ++extern void __set_special_pids(pid_t session, pid_t pgrp); + + #include + +@@ -1701,6 +1808,13 @@ + + extern int do_execve(char *, char __user * __user *, char __user * __user *, struct pt_regs *); + extern long do_fork(unsigned long, unsigned long, struct pt_regs *, unsigned long, int __user *, int __user *); ++extern long do_fork_pid(unsigned long clone_flags, ++ unsigned long stack_start, ++ struct pt_regs *regs, ++ unsigned long stack_size, ++ int __user *parent_tidptr, ++ int __user *child_tidptr, ++ long pid0); + struct task_struct *fork_idle(int); + + extern void set_task_comm(struct task_struct *tsk, char *from); +@@ -1715,19 +1829,19 @@ + #define remove_parent(p) list_del_init(&(p)->sibling) + #define add_parent(p) list_add_tail(&(p)->sibling,&(p)->parent->children) + +-#define next_task(p) list_entry(rcu_dereference((p)->tasks.next), struct task_struct, tasks) ++#define next_task_all(p) list_entry(rcu_dereference((p)->tasks.next), struct task_struct, tasks) + +-#define for_each_process(p) \ +- for (p = &init_task ; (p = next_task(p)) != &init_task ; ) ++#define for_each_process_all(p) \ ++ for (p = &init_task ; (p = next_task_all(p)) != &init_task ; ) + + /* + * Careful: do_each_thread/while_each_thread is a double loop so + * 'break' will not work as expected - use goto instead. + */ +-#define do_each_thread(g, t) \ +- for (g = t = &init_task ; (g = t = next_task(g)) != &init_task ; ) do ++#define do_each_thread_all(g, t) \ ++ for (g = t = &init_task ; (g = t = next_task_all(g)) != &init_task ; ) do + +-#define while_each_thread(g, t) \ ++#define while_each_thread_all(g, t) \ + while ((t = next_thread(t)) != g) + + /* de_thread depends on thread_group_leader not being a pid based check */ +@@ -1752,8 +1866,15 @@ + + static inline struct task_struct *next_thread(const struct task_struct *p) + { +- return list_entry(rcu_dereference(p->thread_group.next), ++ struct task_struct *tsk; ++ ++ tsk = list_entry(rcu_dereference(p->thread_group.next), + struct task_struct, thread_group); ++#ifdef CONFIG_VE ++ /* all threads should belong to ONE ve! */ ++ BUG_ON(VE_TASK_INFO(tsk)->owner_env != VE_TASK_INFO(p)->owner_env); ++#endif ++ return tsk; + } + + static inline int thread_group_empty(struct task_struct *p) +@@ -1793,6 +1914,98 @@ + spin_unlock_irqrestore(&tsk->sighand->siglock, *flags); + } + ++#ifndef CONFIG_VE ++ ++#define for_each_process_ve(p) for_each_process_all(p) ++#define do_each_thread_ve(g, t) do_each_thread_all(g, t) ++#define while_each_thread_ve(g, t) while_each_thread_all(g, t) ++#define first_task_ve() next_task_ve(&init_task) ++#define __first_task_ve(owner) next_task_ve(&init_task) ++#define __next_task_ve(owner, p) next_task_ve(p) ++#define next_task_ve(p) \ ++ (next_task_all(p) != &init_task ? next_task_all(p) : NULL) ++ ++#define ve_is_super(env) 1 ++#define ve_accessible(target, owner) 1 ++#define ve_accessible_strict(target, owner) 1 ++#define ve_accessible_veid(target, owner) 1 ++#define ve_accessible_strict_veid(target, owner) 1 ++ ++#define VEID(ve) 0 ++ ++#else /* CONFIG_VE */ ++ ++#include ++ ++#define ve_is_super(env) ((env) == get_ve0()) ++ ++#define ve_accessible_strict(target, owner) ((target) == (owner)) ++static inline int ve_accessible(struct ve_struct *target, ++ struct ve_struct *owner) ++{ ++ return ve_is_super(owner) || ve_accessible_strict(target, owner); ++} ++ ++#define ve_accessible_strict_veid(target, owner) ((target) == (owner)) ++static inline int ve_accessible_veid(envid_t target, envid_t owner) ++{ ++ return get_ve0()->veid == owner || ++ ve_accessible_strict_veid(target, owner); ++} ++ ++#define VEID(ve) (ve->veid) ++ ++static inline struct task_struct *ve_lh2task(struct ve_struct *ve, ++ struct list_head *lh) ++{ ++ return lh == &ve->vetask_lh ? NULL : ++ list_entry(lh, struct task_struct, ve_task_info.vetask_list); ++} ++ ++static inline struct task_struct *__first_task_ve(struct ve_struct *ve) ++{ ++ struct task_struct *tsk; ++ ++ if (unlikely(ve_is_super(ve))) { ++ tsk = next_task_all(&init_task); ++ if (tsk == &init_task) ++ tsk = NULL; ++ } else { ++ tsk = ve_lh2task(ve, rcu_dereference(ve->vetask_lh.next)); ++ } ++ return tsk; ++} ++ ++static inline struct task_struct *__next_task_ve(struct ve_struct *ve, ++ struct task_struct *tsk) ++{ ++ if (unlikely(ve_is_super(ve))) { ++ tsk = next_task_all(tsk); ++ if (tsk == &init_task) ++ tsk = NULL; ++ } else { ++ BUG_ON(tsk->ve_task_info.owner_env != ve); ++ tsk = ve_lh2task(ve, rcu_dereference(tsk-> ++ ve_task_info.vetask_list.next)); ++ } ++ return tsk; ++} ++ ++#define first_task_ve() __first_task_ve(get_exec_env()) ++#define next_task_ve(p) __next_task_ve(get_exec_env(), p) ++/* no one uses prev_task_ve(), copy next_task_ve() if needed */ ++ ++#define for_each_process_ve(p) \ ++ for (p = first_task_ve(); p != NULL ; p = next_task_ve(p)) ++ ++#define do_each_thread_ve(g, t) \ ++ for (g = t = first_task_ve() ; g != NULL; g = t = next_task_ve(g)) do ++ ++#define while_each_thread_ve(g, t) \ ++ while ((t = next_thread(t)) != g) ++ ++#endif /* CONFIG_VE */ ++ + #ifndef __HAVE_THREAD_FUNCTIONS + + #define task_thread_info(task) ((struct thread_info *)(task)->stack) +Index: kernel/include/linux/security.h +=================================================================== +--- kernel.orig/include/linux/security.h 2008-11-24 14:18:05.000000000 +0100 ++++ kernel/include/linux/security.h 2008-11-24 15:47:46.000000000 +0100 +@@ -34,11 +34,6 @@ + #include + #include + +-/* +- * Bounding set +- */ +-extern kernel_cap_t cap_bset; +- + extern unsigned securebits; + + struct ctl_table; +Index: kernel/include/linux/sem.h +=================================================================== +--- kernel.orig/include/linux/sem.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/sem.h 2008-11-24 15:47:46.000000000 +0100 +@@ -154,6 +154,9 @@ + } + #endif + ++int sysvipc_walk_sem(int (*func)(int, struct sem_array*, void *), void *arg); ++int sysvipc_setup_sem(key_t key, int semid, size_t size, int semflg); ++ + #endif /* __KERNEL__ */ + + #endif /* _LINUX_SEM_H */ +Index: kernel/include/linux/shm.h +=================================================================== +--- kernel.orig/include/linux/shm.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/shm.h 2008-11-24 15:47:46.000000000 +0100 +@@ -110,6 +110,9 @@ + } + #endif + ++int sysvipc_walk_shm(int (*func)(struct shmid_kernel*, void *), void *arg); ++struct file * sysvipc_setup_shm(key_t key, int shmid, size_t size, int shmflg); ++ + #endif /* __KERNEL__ */ + + #endif /* _LINUX_SHM_H_ */ +Index: kernel/include/linux/shmem_fs.h +=================================================================== +--- kernel.orig/include/linux/shmem_fs.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/shmem_fs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -23,6 +23,9 @@ + struct posix_acl *i_acl; + struct posix_acl *i_default_acl; + #endif ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *shmi_ub; ++#endif + }; + + struct shmem_sb_info { +@@ -60,4 +63,6 @@ + } + #endif /* CONFIG_TMPFS_POSIX_ACL */ + ++extern struct file_system_type tmpfs_fs_type; ++ + #endif +Index: kernel/include/linux/signal.h +=================================================================== +--- kernel.orig/include/linux/signal.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/signal.h 2008-11-24 15:47:46.000000000 +0100 +@@ -6,6 +6,8 @@ + + #ifdef __KERNEL__ + #include ++#include ++#include + + /* + * Real Time signals may be queued. +@@ -16,6 +18,9 @@ + int flags; + siginfo_t info; + struct user_struct *user; ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *sig_ub; ++#endif + }; + + /* flags values. */ +@@ -371,6 +376,8 @@ + (!siginmask(signr, SIG_KERNEL_IGNORE_MASK|SIG_KERNEL_STOP_MASK) && \ + (t)->sighand->action[(signr)-1].sa.sa_handler == SIG_DFL) + ++extern struct kmem_cache *sigqueue_cachep; ++ + #endif /* __KERNEL__ */ + + #endif /* _LINUX_SIGNAL_H */ +Index: kernel/include/linux/skbuff.h +=================================================================== +--- kernel.orig/include/linux/skbuff.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/skbuff.h 2008-11-24 15:47:46.000000000 +0100 +@@ -247,6 +247,8 @@ + * @secmark: security marking + */ + ++#include ++ + struct sk_buff { + /* These two members must be first. */ + struct sk_buff *next; +@@ -289,7 +291,13 @@ + ipvs_property:1, + nf_trace:1; + __be16 protocol; +- ++#if defined(CONFIG_BRIDGE) || defined (CONFIG_BRIDGE_MODULE) ++ __u8 brmark; ++#endif ++#ifdef CONFIG_VE ++ unsigned int accounted:1; ++ unsigned int redirected:1; ++#endif + void (*destructor)(struct sk_buff *skb); + #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE) + struct nf_conntrack *nfct; +@@ -330,6 +338,8 @@ + *data; + unsigned int truesize; + atomic_t users; ++ struct skb_beancounter skb_bc; ++ struct ve_struct *owner_env; + }; + + #ifdef __KERNEL__ +@@ -337,6 +347,7 @@ + * Handling routines are only of interest to the kernel + */ + #include ++#include + + #include + +@@ -1258,6 +1269,8 @@ + */ + static inline void skb_orphan(struct sk_buff *skb) + { ++ ub_skb_uncharge(skb); ++ + if (skb->destructor) + skb->destructor(skb); + skb->destructor = NULL; +@@ -1764,6 +1777,26 @@ + { } + #endif + ++#if defined(CONFIG_BRIDGE) || defined (CONFIG_BRIDGE_MODULE) ++static inline void skb_copy_brmark(struct sk_buff *to, const struct sk_buff *from) ++{ ++ to->brmark = from->brmark; ++} ++ ++static inline void skb_init_brmark(struct sk_buff *skb) ++{ ++ skb->brmark = 0; ++} ++#else ++static inline void skb_copy_brmark(struct sk_buff *to, const struct sk_buff *from) ++{ ++} ++ ++static inline void skb_init_brmark(struct sk_buff *skb) ++{ ++} ++#endif ++ + static inline void skb_set_queue_mapping(struct sk_buff *skb, u16 queue_mapping) + { + #ifdef CONFIG_NETDEVICES_MULTIQUEUE +Index: kernel/include/linux/slab.h +=================================================================== +--- kernel.orig/include/linux/slab.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/slab.h 2008-11-24 15:47:46.000000000 +0100 +@@ -46,6 +46,26 @@ + (unsigned long)ZERO_SIZE_PTR) + + /* ++ * allocation rules: __GFP_UBC 0 ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * cache (SLAB_UBC) charge charge ++ * (usual caches: mm, vma, task_struct, ...) ++ * ++ * cache (SLAB_UBC | SLAB_NO_CHARGE) charge --- ++ * (ub_kmalloc) (kmalloc) ++ * ++ * cache (no UB flags) BUG() --- ++ * (nonub caches, mempools) ++ * ++ * pages charge --- ++ * (ub_vmalloc, (vmalloc, ++ * poll, fdsets, ...) non-ub allocs) ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ */ ++#define SLAB_UBC 0x20000000UL /* alloc space for ubs ... */ ++#define SLAB_NO_CHARGE 0x40000000UL /* ... but don't charge */ ++ ++/* + * struct kmem_cache related prototypes + */ + void __init kmem_cache_init(void); +@@ -60,7 +80,20 @@ + unsigned int kmem_cache_size(struct kmem_cache *); + const char *kmem_cache_name(struct kmem_cache *); + int kmem_ptr_validate(struct kmem_cache *cachep, const void *ptr); +- ++extern void show_slab_info(void); ++int kmem_cache_objuse(struct kmem_cache *cachep); ++int kmem_obj_objuse(void *obj); ++int kmem_cache_walk_objects(struct kmem_cache *cachep, int (*fun)(void *obj)); ++unsigned long ub_cache_growth(struct kmem_cache *cachep); ++ ++#ifdef CONFIG_BEANCOUNTERS ++void kmem_mark_nocharge(struct kmem_cache *cachep); ++struct user_beancounter **ub_slab_ptr(struct kmem_cache *cachep, void *obj); ++struct user_beancounter *slab_ub(void *obj); ++#else ++static inline void kmem_mark_nocharge(struct kmem_cache *cachep) { } ++static inline struct user_beancounter *slab_ub(void *obj) { return NULL; } ++#endif + /* + * Please use this macro to create slab caches. Simply specify the + * name of the structure and maybe some flags that are listed above. +Index: kernel/include/linux/slab_def.h +=================================================================== +--- kernel.orig/include/linux/slab_def.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/slab_def.h 2008-11-24 15:47:46.000000000 +0100 +@@ -15,6 +15,111 @@ + #include /* kmalloc_sizes.h needs L1_CACHE_BYTES */ + #include + ++/* ++ * DEBUG - 1 for kmem_cache_create() to honour; SLAB_RED_ZONE & SLAB_POISON. ++ * 0 for faster, smaller code (especially in the critical paths). ++ * ++ * STATS - 1 to collect stats for /proc/slabinfo. ++ * 0 for faster, smaller code (especially in the critical paths). ++ * ++ * FORCED_DEBUG - 1 enables SLAB_RED_ZONE and SLAB_POISON (if possible) ++ */ ++ ++#ifdef CONFIG_DEBUG_SLAB ++#define SLAB_DEBUG 1 ++#define SLAB_STATS 1 ++#define SLAB_FORCED_DEBUG 1 ++#else ++#define SLAB_DEBUG 0 ++#define SLAB_STATS 0 ++#define SLAB_FORCED_DEBUG 0 ++#endif ++ ++/* ++ * struct kmem_cache ++ * ++ * manages a cache. ++ */ ++ ++struct kmem_cache { ++/* 1) per-cpu data, touched during every alloc/free */ ++ struct array_cache *array[NR_CPUS]; ++/* 2) Cache tunables. Protected by cache_chain_mutex */ ++ unsigned int batchcount; ++ unsigned int limit; ++ unsigned int shared; ++ ++ unsigned int buffer_size; ++ u32 reciprocal_buffer_size; ++/* 3) touched by every alloc & free from the backend */ ++ ++ unsigned int flags; /* constant flags */ ++ unsigned int num; /* # of objs per slab */ ++ ++/* 4) cache_grow/shrink */ ++ /* order of pgs per slab (2^n) */ ++ unsigned int gfporder; ++ ++ /* force GFP flags, e.g. GFP_DMA */ ++ gfp_t gfpflags; ++ ++ size_t colour; /* cache colouring range */ ++ unsigned int colour_off; /* colour offset */ ++ struct kmem_cache *slabp_cache; ++ unsigned int slab_size; ++ unsigned int dflags; /* dynamic flags */ ++ ++ /* constructor func */ ++ void (*ctor) (struct kmem_cache *, void *); ++ ++/* 5) cache creation/removal */ ++ const char *name; ++ struct list_head next; ++ ++/* 6) statistics */ ++ unsigned long grown; ++ unsigned long reaped; ++ unsigned long shrunk; ++#if SLAB_STATS ++ unsigned long num_active; ++ unsigned long num_allocations; ++ unsigned long high_mark; ++ unsigned long errors; ++ unsigned long max_freeable; ++ unsigned long node_allocs; ++ unsigned long node_frees; ++ unsigned long node_overflow; ++ atomic_t allochit; ++ atomic_t allocmiss; ++ atomic_t freehit; ++ atomic_t freemiss; ++#endif ++#if SLAB_DEBUG ++ /* ++ * If debugging is enabled, then the allocator can add additional ++ * fields and/or padding to every object. buffer_size contains the total ++ * object size including these internal fields, the following two ++ * variables contain the offset to the user object and its size. ++ */ ++ int obj_offset; ++ int obj_size; ++#endif ++#ifdef CONFIG_BEANCOUNTERS ++ int objuse; ++#endif ++ /* ++ * We put nodelists[] at the end of kmem_cache, because we want to size ++ * this array to nr_node_ids slots instead of MAX_NUMNODES ++ * (see kmem_cache_init()) ++ * We still use [MAX_NUMNODES] and not [1] or [0] because cache_cache ++ * is statically defined, so we reserve the max number of nodes. ++ */ ++ struct kmem_list3 *nodelists[MAX_NUMNODES]; ++ /* ++ * Do not add fields after nodelists[] ++ */ ++}; ++ + /* Size description struct for general caches. */ + struct cache_sizes { + size_t cs_size; +@@ -24,6 +129,7 @@ + #endif + }; + extern struct cache_sizes malloc_sizes[]; ++extern int malloc_cache_num; + + void *kmem_cache_alloc(struct kmem_cache *, gfp_t); + void *__kmalloc(size_t size, gfp_t flags); +@@ -48,6 +154,8 @@ + __you_cannot_kmalloc_that_much(); + } + found: ++ if (flags & __GFP_UBC) ++ i += malloc_cache_num; + #ifdef CONFIG_ZONE_DMA + if (flags & GFP_DMA) + return kmem_cache_alloc(malloc_sizes[i].cs_dmacachep, +Index: kernel/include/linux/slub_def.h +=================================================================== +--- kernel.orig/include/linux/slub_def.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/slub_def.h 2008-11-24 15:47:46.000000000 +0100 +@@ -58,6 +58,10 @@ + struct kobject kobj; /* For sysfs */ + #endif + ++#ifdef CONFIG_BEANCOUNTERS ++ atomic_t grown; ++ int objuse; ++#endif + #ifdef CONFIG_NUMA + int defrag_ratio; + struct kmem_cache_node *node[MAX_NUMNODES]; +@@ -86,6 +90,19 @@ + */ + extern struct kmem_cache kmalloc_caches[PAGE_SHIFT]; + ++#ifdef CONFIG_BEANCOUNTERS ++extern struct kmem_cache ub_kmalloc_caches[KMALLOC_SHIFT_HIGH + 1]; ++static inline struct kmem_cache *__kmalloc_cache(gfp_t f, int idx) ++{ ++ return (f & __GFP_UBC) ? &ub_kmalloc_caches[idx] : &kmalloc_caches[idx]; ++} ++#else ++static inline struct kmem_cache *__kmalloc_cache(gfp_t flags, int idx) ++{ ++ return &kmalloc_caches[idx]; ++} ++#endif ++ + /* + * Sorry that the following has to be that ugly but some versions of GCC + * have trouble with constant propagation and loops. +@@ -142,14 +159,14 @@ + * This ought to end up with a global pointer to the right cache + * in kmalloc_caches. + */ +-static __always_inline struct kmem_cache *kmalloc_slab(size_t size) ++static __always_inline struct kmem_cache *kmalloc_slab(size_t size, gfp_t flags) + { + int index = kmalloc_index(size); + + if (index == 0) + return NULL; + +- return &kmalloc_caches[index]; ++ return __kmalloc_cache(flags, index); + } + + #ifdef CONFIG_ZONE_DMA +@@ -170,7 +187,7 @@ + get_order(size)); + + if (!(flags & SLUB_DMA)) { +- struct kmem_cache *s = kmalloc_slab(size); ++ struct kmem_cache *s = kmalloc_slab(size, flags); + + if (!s) + return ZERO_SIZE_PTR; +@@ -189,7 +206,7 @@ + { + if (__builtin_constant_p(size) && + size <= PAGE_SIZE / 2 && !(flags & SLUB_DMA)) { +- struct kmem_cache *s = kmalloc_slab(size); ++ struct kmem_cache *s = kmalloc_slab(size, flags); + + if (!s) + return ZERO_SIZE_PTR; +Index: kernel/include/linux/smp.h +=================================================================== +--- kernel.orig/include/linux/smp.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/smp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,9 @@ + + extern void cpu_idle(void); + ++struct pt_regs; ++typedef void (*smp_nmi_function)(struct pt_regs *regs, void *info); ++ + #ifdef CONFIG_SMP + + #include +@@ -49,6 +52,8 @@ + */ + extern void smp_cpus_done(unsigned int max_cpus); + ++extern int smp_nmi_call_function(smp_nmi_function func, void *info, int wait); ++ + /* + * Call a function on all other processors + */ +@@ -111,6 +116,12 @@ + #define smp_call_function_mask(mask, func, info, wait) \ + (up_smp_call_function(func, info)) + ++static inline int smp_nmi_call_function(smp_nmi_function func, ++ void *info, int wait) ++{ ++ return 0; ++} ++ + #endif /* !SMP */ + + /* +Index: kernel/include/linux/socket.h +=================================================================== +--- kernel.orig/include/linux/socket.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/socket.h 2008-11-24 15:47:46.000000000 +0100 +@@ -297,6 +297,16 @@ + #define IPX_TYPE 1 + + #ifdef __KERNEL__ ++ ++#define MAX_SOCK_ADDR 128 /* 108 for Unix domain - ++ 16 for IP, 16 for IPX, ++ 24 for IPv6, ++ about 80 for AX.25 ++ must be at least one bigger than ++ the AF_UNIX size (see net/unix/af_unix.c ++ :unix_mkname()). ++ */ ++ + extern int memcpy_fromiovec(unsigned char *kdata, struct iovec *iov, int len); + extern int memcpy_fromiovecend(unsigned char *kdata, struct iovec *iov, + int offset, int len); +@@ -310,6 +320,8 @@ + extern int move_addr_to_user(void *kaddr, int klen, void __user *uaddr, int __user *ulen); + extern int move_addr_to_kernel(void __user *uaddr, int ulen, void *kaddr); + extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data); ++extern int vz_security_family_check(int family); ++extern int vz_security_protocol_check(int protocol); + + #endif + #endif /* not kernel and not glibc */ +Index: kernel/include/linux/sunrpc/clnt.h +=================================================================== +--- kernel.orig/include/linux/sunrpc/clnt.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/sunrpc/clnt.h 2008-11-24 15:47:46.000000000 +0100 +@@ -44,6 +44,7 @@ + cl_intr : 1,/* interruptible */ + cl_discrtry : 1,/* disconnect before retry */ + cl_autobind : 1;/* use getport() */ ++ unsigned int cl_broken : 1;/* no responce for too long */ + + struct rpc_rtt * cl_rtt; /* RTO estimator data */ + +@@ -55,6 +56,7 @@ + struct rpc_clnt * cl_parent; /* Points to parent of clones */ + struct rpc_rtt cl_rtt_default; + struct rpc_program * cl_program; ++ unsigned long cl_pr_time; + char cl_inline_name[32]; + }; + +Index: kernel/include/linux/sunrpc/xprt.h +=================================================================== +--- kernel.orig/include/linux/sunrpc/xprt.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/sunrpc/xprt.h 2008-11-24 15:47:46.000000000 +0100 +@@ -24,6 +24,14 @@ + #define RPC_MAX_SLOT_TABLE (128U) + + /* ++ * Grand abort timeout (stop the client if occures) ++ */ ++extern int xprt_abort_timeout; ++ ++#define RPC_MIN_ABORT_TIMEOUT 300 ++#define RPC_MAX_ABORT_TIMEOUT INT_MAX ++ ++/* + * This describes a timeout strategy + */ + struct rpc_timeout { +@@ -119,6 +127,7 @@ + struct rpc_xprt { + struct kref kref; /* Reference count */ + struct rpc_xprt_ops * ops; /* transport methods */ ++ struct ve_struct * owner_env; /* VE owner of mount */ + + struct rpc_timeout timeout; /* timeout parms */ + struct sockaddr_storage addr; /* server address */ +Index: kernel/include/linux/swap.h +=================================================================== +--- kernel.orig/include/linux/swap.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/swap.h 2008-11-24 15:47:46.000000000 +0100 +@@ -17,6 +17,7 @@ + #define SWAP_FLAG_PREFER 0x8000 /* set if swap priority specified */ + #define SWAP_FLAG_PRIO_MASK 0x7fff + #define SWAP_FLAG_PRIO_SHIFT 0 ++#define SWAP_FLAG_READONLY 0x40000000 /* set if swap is read-only */ + + static inline int current_is_kswapd(void) + { +@@ -92,6 +93,7 @@ + struct sysinfo; + struct writeback_control; + struct zone; ++struct user_beancounter; + + /* + * A swap extent maps a range of a swapfile's PAGE_SIZE pages onto a range of +@@ -121,6 +123,7 @@ + SWP_ACTIVE = (SWP_USED | SWP_WRITEOK), + /* add others here before... */ + SWP_SCANNING = (1 << 8), /* refcount in scan_swap_map */ ++ SWP_READONLY = (1 << 2), + }; + + #define SWAP_CLUSTER_MAX 32 +@@ -131,6 +134,7 @@ + /* + * The in-memory structure used to track swap areas. + */ ++struct user_beancounter; + struct swap_info_struct { + unsigned int flags; + int prio; /* swap priority */ +@@ -148,6 +152,9 @@ + unsigned int max; + unsigned int inuse_pages; + int next; /* next entry on swap list */ ++#ifdef CONFIG_BC_SWAP_ACCOUNTING ++ struct user_beancounter **swap_ubs; ++#endif + }; + + struct swap_list_t { +@@ -155,9 +162,19 @@ + int next; /* swapfile to be used next */ + }; + ++extern struct swap_list_t swap_list; ++extern struct swap_info_struct swap_info[MAX_SWAPFILES]; ++ + /* Swap 50% full? Release swapcache more aggressively.. */ + #define vm_swap_full() (nr_swap_pages*2 < total_swap_pages) + ++/* linux/mm/oom_kill.c */ ++extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order); ++extern int register_oom_notifier(struct notifier_block *nb); ++extern int unregister_oom_notifier(struct notifier_block *nb); ++extern int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, const char *message); ++extern struct task_struct *oom_select_bad_process(struct user_beancounter *ub); ++ + /* linux/mm/memory.c */ + extern void swapin_readahead(swp_entry_t, unsigned long, struct vm_area_struct *); + +@@ -224,6 +241,9 @@ + extern void show_swap_cache_info(void); + extern int add_to_swap(struct page *, gfp_t); + extern void __delete_from_swap_cache(struct page *); ++extern int add_to_swap_cache(struct page *page, swp_entry_t entry); ++extern int __add_to_swap_cache(struct page *page, ++ swp_entry_t entry, gfp_t gfp_mask); + extern void delete_from_swap_cache(struct page *); + extern int move_to_swap_cache(struct page *, swp_entry_t); + extern int move_from_swap_cache(struct page *, unsigned long, +@@ -237,7 +257,7 @@ + extern long total_swap_pages; + extern unsigned int nr_swapfiles; + extern void si_swapinfo(struct sysinfo *); +-extern swp_entry_t get_swap_page(void); ++extern swp_entry_t get_swap_page(struct user_beancounter *); + extern swp_entry_t get_swap_page_of_type(int); + extern int swap_duplicate(swp_entry_t); + extern int valid_swaphandles(swp_entry_t, unsigned long *); +@@ -250,6 +270,7 @@ + extern struct swap_info_struct *get_swap_info_struct(unsigned); + extern int can_share_swap_page(struct page *); + extern int remove_exclusive_swap_page(struct page *); ++extern int try_to_remove_exclusive_swap_page(struct page *); + struct backing_dev_info; + + extern spinlock_t swap_lock; +@@ -350,7 +371,7 @@ + return 0; + } + +-static inline swp_entry_t get_swap_page(void) ++static inline swp_entry_t get_swap_page(struct user_beancounter *ub) + { + swp_entry_t entry; + entry.val = 0; +Index: kernel/include/linux/sysctl.h +=================================================================== +--- kernel.orig/include/linux/sysctl.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/sysctl.h 2008-11-24 15:47:46.000000000 +0100 +@@ -159,6 +159,9 @@ + KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ + KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ + KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */ ++#ifdef CONFIG_GRKERNSEC_SYSCTL ++ KERN_GRSECURITY=98, /* grsecurity */ ++#endif + KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */ + KERN_COMPAT_LOG=73, /* int: print compat layer messages */ + KERN_MAX_LOCK_DEPTH=74, +@@ -948,6 +951,7 @@ + extern struct ctl_table_header *sysctl_head_next(struct ctl_table_header *prev); + extern void sysctl_head_finish(struct ctl_table_header *prev); + extern int sysctl_perm(struct ctl_table *table, int op); ++extern int ve_allow_kthreads; + + typedef struct ctl_table ctl_table; + +@@ -1036,6 +1040,8 @@ + */ + + /* A sysctl table is an array of struct ctl_table: */ ++struct ve_struct; ++ + struct ctl_table + { + int ctl_name; /* Binary ID */ +@@ -1049,6 +1055,8 @@ + ctl_handler *strategy; /* Callback function for all r/w */ + void *extra1; + void *extra2; ++ struct ve_struct *owner_env; ++ int virt_handler; + }; + + /* struct ctl_table_header is used to maintain dynamic lists of +@@ -1062,10 +1070,14 @@ + }; + + struct ctl_table_header *register_sysctl_table(struct ctl_table * table); ++struct ctl_table_header *register_glob_sysctl_table(struct ctl_table * table); + + void unregister_sysctl_table(struct ctl_table_header * table); + int sysctl_check_table(struct ctl_table *table); + ++ctl_table *clone_sysctl_template(ctl_table *tmpl); ++void free_sysctl_clone(ctl_table *clone); ++ + #else /* __KERNEL__ */ + + #endif /* __KERNEL__ */ +Index: kernel/include/linux/sysfs.h +=================================================================== +--- kernel.orig/include/linux/sysfs.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/sysfs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -19,6 +19,7 @@ + + struct kobject; + struct module; ++struct sysfs_open_dirent; + + /* FIXME + * The *owner field is no longer used, but leave around +@@ -76,6 +77,66 @@ + ssize_t (*store)(struct kobject *,struct attribute *,const char *, size_t); + }; + ++/* type-specific structures for sysfs_dirent->s_* union members */ ++struct sysfs_elem_dir { ++ struct kobject *kobj; ++ /* children list starts here and goes through sd->s_sibling */ ++ struct sysfs_dirent *children; ++}; ++ ++struct sysfs_elem_symlink { ++ struct sysfs_dirent *target_sd; ++}; ++ ++struct sysfs_elem_attr { ++ struct attribute *attr; ++ struct sysfs_open_dirent *open; ++}; ++ ++struct sysfs_elem_bin_attr { ++ struct bin_attribute *bin_attr; ++}; ++ ++/* ++ * sysfs_dirent - the building block of sysfs hierarchy. Each and ++ * every sysfs node is represented by single sysfs_dirent. ++ * ++ * As long as s_count reference is held, the sysfs_dirent itself is ++ * accessible. Dereferencing s_elem or any other outer entity ++ * requires s_active reference. ++ */ ++struct sysfs_dirent { ++ atomic_t s_count; ++ atomic_t s_active; ++ struct sysfs_dirent *s_parent; ++ struct sysfs_dirent *s_sibling; ++ const char *s_name; ++ ++ union { ++ struct sysfs_elem_dir s_dir; ++ struct sysfs_elem_symlink s_symlink; ++ struct sysfs_elem_attr s_attr; ++ struct sysfs_elem_bin_attr s_bin_attr; ++ }; ++ ++ unsigned int s_flags; ++ ino_t s_ino; ++ umode_t s_mode; ++ struct iattr *s_iattr; ++}; ++ ++#define SD_DEACTIVATED_BIAS INT_MIN ++ ++#define SYSFS_TYPE_MASK 0x00ff ++#define SYSFS_DIR 0x0001 ++#define SYSFS_KOBJ_ATTR 0x0002 ++#define SYSFS_KOBJ_BIN_ATTR 0x0004 ++#define SYSFS_KOBJ_LINK 0x0008 ++#define SYSFS_COPY_NAME (SYSFS_DIR | SYSFS_KOBJ_LINK) ++ ++#define SYSFS_FLAG_MASK ~SYSFS_TYPE_MASK ++#define SYSFS_FLAG_REMOVED 0x0200 ++ + #ifdef CONFIG_SYSFS + + int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *), +@@ -114,6 +175,8 @@ + + extern int __must_check sysfs_init(void); + ++extern struct file_system_type sysfs_fs_type; ++ + #else /* CONFIG_SYSFS */ + + static inline int sysfs_schedule_callback(struct kobject *kobj, +Index: kernel/include/linux/task_io_accounting_ops.h +=================================================================== +--- kernel.orig/include/linux/task_io_accounting_ops.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/task_io_accounting_ops.h 2008-11-24 15:47:46.000000000 +0100 +@@ -5,10 +5,12 @@ + #define __TASK_IO_ACCOUNTING_OPS_INCLUDED + + #include ++#include + + #ifdef CONFIG_TASK_IO_ACCOUNTING + static inline void task_io_account_read(size_t bytes) + { ++ ub_io_account_read(bytes); + current->ioac.read_bytes += bytes; + } + +@@ -21,8 +23,14 @@ + return p->ioac.read_bytes >> 9; + } + +-static inline void task_io_account_write(size_t bytes) ++static inline void task_io_account_write(struct page *page, size_t bytes, ++ int sync) + { ++ if (sync) ++ ub_io_account_write(bytes); ++ else ++ ub_io_account_dirty(page, bytes); ++ + current->ioac.write_bytes += bytes; + } + +@@ -37,6 +45,7 @@ + + static inline void task_io_account_cancelled_write(size_t bytes) + { ++ ub_io_account_write_cancelled(bytes); + current->ioac.cancelled_write_bytes += bytes; + } + +@@ -56,7 +65,8 @@ + return 0; + } + +-static inline void task_io_account_write(size_t bytes) ++static inline void task_io_account_write(struct page *page, size_t bytes, ++ int sync) + { + } + +Index: kernel/include/linux/tty.h +=================================================================== +--- kernel.orig/include/linux/tty.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/tty.h 2008-11-24 15:47:46.000000000 +0100 +@@ -241,6 +241,7 @@ + spinlock_t read_lock; + /* If the tty has a pending do_SAK, queue it here - akpm */ + struct work_struct SAK_work; ++ struct ve_struct *owner_env; + }; + + /* tty magic number */ +@@ -270,6 +271,7 @@ + #define TTY_HUPPED 18 /* Post driver->hangup() */ + #define TTY_FLUSHING 19 /* Flushing to ldisc in progress */ + #define TTY_FLUSHPENDING 20 /* Queued buffer flush pending */ ++#define TTY_CHARGED 21 /* Charged as ub resource */ + + #define TTY_WRITE_FLUSH(tty) tty_write_flush((tty)) + +Index: kernel/include/linux/tty_driver.h +=================================================================== +--- kernel.orig/include/linux/tty_driver.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/tty_driver.h 2008-11-24 15:47:46.000000000 +0100 +@@ -222,8 +222,19 @@ + unsigned int set, unsigned int clear); + + struct list_head tty_drivers; ++ struct ve_struct *owner_env; + }; + ++#ifdef CONFIG_UNIX98_PTYS ++extern struct tty_driver *ptm_driver; /* Unix98 pty masters; for /dev/ptmx */ ++extern struct tty_driver *pts_driver; /* Unix98 pty slaves; for /dev/ptmx */ ++#endif ++ ++#ifdef CONFIG_LEGACY_PTYS ++extern struct tty_driver *pty_driver; ++extern struct tty_driver *pty_slave_driver; ++#endif ++ + extern struct list_head tty_drivers; + + struct tty_driver *alloc_tty_driver(int lines); +@@ -231,6 +242,9 @@ + void tty_set_operations(struct tty_driver *driver, + const struct tty_operations *op); + ++struct class *init_ve_tty_class(void); ++void fini_ve_tty_class(struct class *ve_tty_class); ++ + /* tty driver magic number */ + #define TTY_DRIVER_MAGIC 0x5402 + +Index: kernel/include/linux/types.h +=================================================================== +--- kernel.orig/include/linux/types.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/types.h 2008-11-24 15:47:46.000000000 +0100 +@@ -29,6 +29,11 @@ + typedef __kernel_clockid_t clockid_t; + typedef __kernel_mqd_t mqd_t; + ++#ifndef __ENVID_T_DEFINED__ ++typedef unsigned envid_t; ++#define __ENVID_T_DEFINED__ ++#endif ++ + #ifdef __KERNEL__ + typedef _Bool bool; + +Index: kernel/include/linux/utsname.h +=================================================================== +--- kernel.orig/include/linux/utsname.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/utsname.h 2008-11-24 15:47:46.000000000 +0100 +@@ -42,6 +42,7 @@ + struct new_utsname name; + }; + extern struct uts_namespace init_uts_ns; ++extern struct new_utsname virt_utsname; + + static inline void get_uts_ns(struct uts_namespace *ns) + { +Index: kernel/include/linux/ve.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/ve.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,407 @@ ++/* ++ * include/linux/ve.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _LINUX_VE_H ++#define _LINUX_VE_H ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef VZMON_DEBUG ++# define VZTRACE(fmt,args...) \ ++ printk(KERN_DEBUG fmt, ##args) ++#else ++# define VZTRACE(fmt,args...) ++#endif /* VZMON_DEBUG */ ++ ++struct tty_driver; ++struct devpts_config; ++struct task_struct; ++struct new_utsname; ++struct file_system_type; ++struct icmp_mib; ++struct ip_mib; ++struct tcp_mib; ++struct udp_mib; ++struct linux_mib; ++struct fib_info; ++struct fib_rule; ++struct veip_struct; ++struct ve_monitor; ++struct nsproxy; ++struct ve_sit_tunnels; ++ ++#if defined(CONFIG_VE) && defined(CONFIG_INET) ++struct fib_table; ++#ifdef CONFIG_VE_IPTABLES ++struct xt_table; ++struct nf_conn; ++ ++#define FRAG6Q_HASHSZ 64 ++ ++struct ve_nf_conntrack { ++ struct hlist_head *_bysource; ++ struct nf_nat_protocol **_nf_nat_protos; ++ int _nf_nat_vmalloced; ++ struct xt_table *_nf_nat_table; ++ struct nf_conntrack_l3proto *_nf_nat_l3proto; ++ atomic_t _nf_conntrack_count; ++ int _nf_conntrack_max; ++ struct hlist_head *_nf_conntrack_hash; ++ int _nf_conntrack_checksum; ++ int _nf_conntrack_vmalloc; ++ struct hlist_head _unconfirmed; ++ struct hlist_head *_nf_ct_expect_hash; ++ unsigned int _nf_ct_expect_vmalloc; ++ unsigned int _nf_ct_expect_max; ++ struct hlist_head *_nf_ct_helper_hash; ++ unsigned int _nf_ct_helper_vmalloc; ++ struct inet_frags _nf_frags6; ++ struct inet_frags_ctl _nf_frags6_ctl; ++#ifdef CONFIG_SYSCTL ++ /* l4 stuff: */ ++ unsigned long _nf_ct_icmp_timeout; ++ unsigned long _nf_ct_icmpv6_timeout; ++ unsigned int _nf_ct_udp_timeout; ++ unsigned int _nf_ct_udp_timeout_stream; ++ unsigned int _nf_ct_generic_timeout; ++ unsigned int _nf_ct_log_invalid; ++ unsigned int _nf_ct_tcp_timeout_max_retrans; ++ int _nf_ct_tcp_be_liberal; ++ int _nf_ct_tcp_loose; ++ int _nf_ct_tcp_max_retrans; ++ unsigned int _nf_ct_tcp_timeouts[10]; ++ struct ctl_table_header *_icmp_sysctl_header; ++ unsigned int _tcp_sysctl_table_users; ++ struct ctl_table_header *_tcp_sysctl_header; ++ unsigned int _udp_sysctl_table_users; ++ struct ctl_table_header *_udp_sysctl_header; ++ struct ctl_table_header *_icmpv6_sysctl_header; ++ struct ctl_table_header *_generic_sysctl_header; ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ struct ctl_table_header *_icmp_compat_sysctl_header; ++ struct ctl_table_header *_tcp_compat_sysctl_header; ++ struct ctl_table_header *_udp_compat_sysctl_header; ++ struct ctl_table_header *_generic_compat_sysctl_header; ++#endif ++ /* l4 protocols sysctl tables: */ ++ struct nf_conntrack_l4proto *_nf_conntrack_l4proto_icmp; ++ struct nf_conntrack_l4proto *_nf_conntrack_l4proto_tcp4; ++ struct nf_conntrack_l4proto *_nf_conntrack_l4proto_icmpv6; ++ struct nf_conntrack_l4proto *_nf_conntrack_l4proto_tcp6; ++ struct nf_conntrack_l4proto *_nf_conntrack_l4proto_udp4; ++ struct nf_conntrack_l4proto *_nf_conntrack_l4proto_udp6; ++ struct nf_conntrack_l4proto *_nf_conntrack_l4proto_generic; ++ struct nf_conntrack_l4proto **_nf_ct_protos[PF_MAX]; ++ /* l3 protocols sysctl tables: */ ++ struct nf_conntrack_l3proto *_nf_conntrack_l3proto_ipv4; ++ struct nf_conntrack_l3proto *_nf_conntrack_l3proto_ipv6; ++ struct nf_conntrack_l3proto *_nf_ct_l3protos[AF_MAX]; ++ /* sysctl standalone stuff: */ ++ struct ctl_table_header *_nf_ct_sysctl_header; ++ ctl_table *_nf_ct_sysctl_table; ++ ctl_table *_nf_ct_netfilter_table; ++ ctl_table *_nf_ct_net_table; ++ ctl_table *_ip_ct_net_table; ++ ctl_table *_ip_ct_netfilter_table; ++ struct ctl_table_header *_ip_ct_sysctl_header; ++ int _nf_ct_log_invalid_proto_min; ++ int _nf_ct_log_invalid_proto_max; ++#endif /* CONFIG_SYSCTL */ ++}; ++#endif ++#endif ++ ++struct ve_cpu_stats { ++ cycles_t idle_time; ++ cycles_t iowait_time; ++ cycles_t strt_idle_time; ++ cycles_t used_time; ++ seqcount_t stat_lock; ++ int nr_running; ++ int nr_unint; ++ int nr_iowait; ++ cputime64_t user; ++ cputime64_t nice; ++ cputime64_t system; ++} ____cacheline_aligned; ++ ++struct ve_ipt_recent; ++struct ve_xt_hashlimit; ++ ++struct ve_struct { ++ struct list_head ve_list; ++ ++ envid_t veid; ++ struct list_head vetask_lh; ++ /* capability bounding set */ ++ kernel_cap_t ve_cap_bset; ++ atomic_t pcounter; ++ /* ref counter to ve from ipc */ ++ atomic_t counter; ++ unsigned int class_id; ++ struct rw_semaphore op_sem; ++ int is_running; ++ int is_locked; ++ atomic_t suspend; ++ /* see vzcalluser.h for VE_FEATURE_XXX definitions */ ++ __u64 features; ++ ++/* VE's root */ ++ struct vfsmount *fs_rootmnt; ++ struct dentry *fs_root; ++ ++/* sysctl */ ++ struct list_head sysctl_lh; ++ struct ctl_table_header *uts_header; ++ struct file_system_type *proc_fstype; ++ struct vfsmount *proc_mnt; ++ struct proc_dir_entry *proc_root; ++ struct proc_dir_entry *proc_sys_root; ++ struct proc_dir_entry *_proc_net; ++ struct proc_dir_entry *_proc_net_stat; ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ struct proc_dir_entry *_proc_net_devsnmp6; ++#endif ++ ++/* BSD pty's */ ++#ifdef CONFIG_LEGACY_PTYS ++ struct tty_driver *pty_driver; ++ struct tty_driver *pty_slave_driver; ++#endif ++#ifdef CONFIG_UNIX98_PTYS ++ struct tty_driver *ptm_driver; ++ struct tty_driver *pts_driver; ++ struct idr *allocated_ptys; ++ struct file_system_type *devpts_fstype; ++ struct vfsmount *devpts_mnt; ++ struct dentry *devpts_root; ++ struct devpts_config *devpts_config; ++#endif ++ ++ struct ve_nfs_context *nfs_context; ++ ++ struct file_system_type *shmem_fstype; ++ struct vfsmount *shmem_mnt; ++#ifdef CONFIG_SYSFS ++ struct file_system_type *sysfs_fstype; ++ struct vfsmount *sysfs_mnt; ++ struct super_block *sysfs_sb; ++ struct sysfs_dirent *_sysfs_root; ++#endif ++#ifndef CONFIG_SYSFS_DEPRECATED ++ struct kobject *_virtual_dir; ++#endif ++ struct kset *class_subsys; ++ struct kset *class_obj_subsys; ++ struct kset *devices_subsys; ++ struct class *tty_class; ++ ++#ifdef CONFIG_NET ++ struct class *net_class; ++#ifdef CONFIG_INET ++ struct ipv4_devconf *_ipv4_devconf; ++ struct ipv4_devconf *_ipv4_devconf_dflt; ++ struct ctl_table_header *forward_header; ++ struct ctl_table *forward_table; ++ unsigned long rt_flush_required; ++ struct neigh_table *ve_arp_tbl; ++ struct ve_sit_tunnels *_sit_tunnels; ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ struct ipv6_devconf *_ipv6_devconf; ++ struct ipv6_devconf *_ipv6_devconf_dflt; ++ struct neigh_table *ve_nd_tbl; ++#endif ++#endif ++#endif ++#if defined(CONFIG_VE_NETDEV) || defined (CONFIG_VE_NETDEV_MODULE) ++ struct veip_struct *veip; ++ struct net_device *_venet_dev; ++#endif ++ ++/* per VE CPU stats*/ ++ struct timespec start_timespec; ++ u64 start_jiffies; /* Deprecated */ ++ cycles_t start_cycles; ++ unsigned long avenrun[3]; /* loadavg data */ ++ ++ cycles_t cpu_used_ve; ++ struct kstat_lat_pcpu_struct sched_lat_ve; ++ ++#ifdef CONFIG_INET ++ struct hlist_head *_fib_info_hash; ++ struct hlist_head *_fib_info_laddrhash; ++ int _fib_hash_size; ++ int _fib_info_cnt; ++ ++ struct fib_rule *_local_rule; ++ struct list_head _fib_rules; ++ /* XXX: why a magic constant? */ ++#ifdef CONFIG_IP_MULTIPLE_TABLES ++ struct hlist_head _fib_table_hash[256]; ++#else ++ struct hlist_head _fib_table_hash[1]; ++ struct fib_table *_main_table; ++ struct fib_table *_local_table; ++#endif ++ struct icmp_mib *_icmp_statistics[2]; ++ struct icmpmsg_mib *_icmpmsg_statistics[2]; ++ struct ipstats_mib *_ip_statistics[2]; ++ struct tcp_mib *_tcp_statistics[2]; ++ struct udp_mib *_udp_statistics[2]; ++ struct udp_mib *_udplite_statistics[2]; ++ struct linux_mib *_net_statistics[2]; ++ struct venet_stat *stat; ++#ifdef CONFIG_VE_IPTABLES ++/* core/netfilter.c virtualization */ ++ void *_nf_hooks; ++ struct xt_table *_ve_ipt_filter_pf; /* packet_filter struct */ ++ struct xt_table *_ve_ip6t_filter_pf; ++ struct xt_table *_ipt_mangle_table; ++ struct xt_table *_ip6t_mangle_table; ++ struct list_head _xt_tables[NPROTO]; ++ ++ __u64 _iptables_modules; ++ struct ve_nf_conntrack *_nf_conntrack; ++ struct ve_ipt_recent *_ipt_recent; ++ struct ve_xt_hashlimit *_xt_hashlimit; ++#endif /* CONFIG_VE_IPTABLES */ ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++#ifdef CONFIG_IPV6_MULTIPLE_TABLES ++ struct hlist_head _fib6_table_hash[256]; ++ struct fib6_table *_fib6_local_table; ++#else ++ struct hlist_head _fib6_table_hash[1]; ++#endif ++ struct fib6_table *_fib6_table; ++ struct ipstats_mib *_ipv6_statistics[2]; ++ struct icmpv6_mib *_icmpv6_statistics[2]; ++ struct icmpv6msg_mib *_icmpv6msg_statistics[2]; ++ struct udp_mib *_udp_stats_in6[2]; ++ struct udp_mib *_udplite_stats_in6[2]; ++#endif ++#endif ++ wait_queue_head_t *_log_wait; ++ unsigned long *_log_start; ++ unsigned long *_log_end; ++ unsigned long *_logged_chars; ++ char *log_buf; ++#define VE_DEFAULT_LOG_BUF_LEN 4096 ++ ++ struct ve_cpu_stats *cpu_stats; ++ unsigned long down_at; ++ struct list_head cleanup_list; ++#if defined(CONFIG_FUSE_FS) || defined(CONFIG_FUSE_FS_MODULE) ++ struct list_head _fuse_conn_list; ++ struct super_block *_fuse_control_sb; ++ ++ struct file_system_type *fuse_fs_type; ++ struct file_system_type *fuse_ctl_fs_type; ++#endif ++#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE) ++ struct proc_dir_entry *_proc_vlan_dir; ++ struct proc_dir_entry *_proc_vlan_conf; ++#endif ++ unsigned long jiffies_fixup; ++ unsigned char disable_net; ++ struct ve_monitor *monitor; ++ struct proc_dir_entry *monitor_proc; ++ unsigned long meminfo_val; ++ ++#if defined(CONFIG_NFS_FS) || defined(CONFIG_NFS_FS_MODULE) \ ++ || defined(CONFIG_NFSD) || defined(CONFIG_NFSD_MODULE) ++ unsigned int _nlmsvc_users; ++ pid_t _nlmsvc_pid; ++ int _nlmsvc_grace_period; ++ unsigned long _nlmsvc_timeout; ++#endif ++ ++ struct nsproxy *ve_ns; ++#ifdef CONFIG_GRKERNSEC ++ struct { ++ int lock; ++#ifdef CONFIG_GRKERNSEC_TPE ++ int enable_tpe; ++ int tpe_gid; ++#ifdef CONFIG_GRKERNSEC_TPE_ALL ++ int enable_tpe_all; ++#endif ++#endif /*CONFIG_GRKERNSEC_TPE */ ++ } grsec; ++#endif /* CONFIG_GRKERNSEC */ ++}; ++ ++#define VE_CPU_STATS(ve, cpu) (per_cpu_ptr((ve)->cpu_stats, cpu)) ++ ++extern int nr_ve; ++ ++#ifdef CONFIG_VE ++ ++void do_update_load_avg_ve(void); ++void do_env_free(struct ve_struct *ptr); ++ ++static inline struct ve_struct *get_ve(struct ve_struct *ptr) ++{ ++ if (ptr != NULL) ++ atomic_inc(&ptr->counter); ++ return ptr; ++} ++ ++static inline void put_ve(struct ve_struct *ptr) ++{ ++ if (ptr && atomic_dec_and_test(&ptr->counter)) { ++ if (atomic_read(&ptr->pcounter) > 0) ++ BUG(); ++ if (ptr->is_running) ++ BUG(); ++ do_env_free(ptr); ++ } ++} ++ ++static inline void pget_ve(struct ve_struct *ptr) ++{ ++ atomic_inc(&ptr->pcounter); ++} ++ ++void ve_cleanup_schedule(struct ve_struct *); ++static inline void pput_ve(struct ve_struct *ptr) ++{ ++ if (unlikely(atomic_dec_and_test(&ptr->pcounter))) ++ ve_cleanup_schedule(ptr); ++} ++ ++extern spinlock_t ve_cleanup_lock; ++extern struct list_head ve_cleanup_list; ++extern struct task_struct *ve_cleanup_thread; ++ ++extern unsigned long long ve_relative_clock(struct timespec * ts); ++ ++#ifdef CONFIG_FAIRSCHED ++#define ve_cpu_online_map(ve, mask) fairsched_cpu_online_map(ve->veid, mask) ++#else ++#define ve_cpu_online_map(ve, mask) do { *(mask) = cpu_online_map; } while (0) ++#endif ++#else /* CONFIG_VE */ ++#define ve_utsname system_utsname ++#define get_ve(ve) (NULL) ++#define put_ve(ve) do { } while (0) ++#define pget_ve(ve) do { } while (0) ++#define pput_ve(ve) do { } while (0) ++#endif /* CONFIG_VE */ ++ ++#endif /* _LINUX_VE_H */ +Index: kernel/include/linux/ve_nfs.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/ve_nfs.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,29 @@ ++/* ++ * linux/include/ve_nfs.h ++ * ++ * VE context for NFS ++ * ++ * Copyright (C) 2007 SWsoft ++ */ ++ ++#ifndef __VE_NFS_H__ ++#define __VE_NFS_H__ ++ ++#ifdef CONFIG_VE ++ ++#include ++ ++#define NFS_CTX_FIELD(arg) (get_exec_env()->_##arg) ++ ++#define nlmsvc_grace_period NFS_CTX_FIELD(nlmsvc_grace_period) ++#define nlmsvc_timeout NFS_CTX_FIELD(nlmsvc_timeout) ++#define nlmsvc_users NFS_CTX_FIELD(nlmsvc_users) ++#define nlmsvc_pid NFS_CTX_FIELD(nlmsvc_pid) ++#else ++#define nlmsvc_grace_period _nlmsvc_timeout ++#define nlmsvc_timeout _nlmsvc_grace_period ++#define nlmsvc_pid _nlmsvc_pid ++#define nlmsvc_timeout _nlmsvc_timeout ++#endif ++ ++#endif +Index: kernel/include/linux/ve_proto.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/ve_proto.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,89 @@ ++/* ++ * include/linux/ve_proto.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __VE_H__ ++#define __VE_H__ ++ ++#ifdef CONFIG_VE ++ ++struct ve_struct; ++ ++#ifdef CONFIG_INET ++void ip_fragment_cleanup(struct ve_struct *envid); ++void tcp_v4_kill_ve_sockets(struct ve_struct *envid); ++#ifdef CONFIG_VE_NETDEV ++int venet_init(void); ++#endif ++#else ++static inline void ip_fragment_cleanup(struct ve_struct *ve) { ; } ++#endif ++ ++extern struct list_head ve_list_head; ++#define for_each_ve(ve) list_for_each_entry((ve), &ve_list_head, ve_list) ++extern rwlock_t ve_list_lock; ++extern struct ve_struct *get_ve_by_id(envid_t); ++extern struct ve_struct *__find_ve_by_id(envid_t); ++ ++struct env_create_param3; ++extern int real_env_create(envid_t veid, unsigned flags, u32 class_id, ++ struct env_create_param3 *data, int datalen); ++extern void ve_move_task(struct task_struct *, struct ve_struct *); ++ ++int set_device_perms_ve(envid_t veid, unsigned type, dev_t dev, unsigned mask); ++int get_device_perms_ve(int dev_type, dev_t dev, int access_mode); ++void clean_device_perms_ve(envid_t veid); ++extern struct file_operations proc_devperms_ops; ++ ++enum { ++ VE_SS_CHAIN, ++ ++ VE_MAX_CHAINS ++}; ++ ++typedef int ve_hook_init_fn(void *data); ++typedef void ve_hook_fini_fn(void *data); ++ ++struct ve_hook ++{ ++ ve_hook_init_fn *init; ++ ve_hook_fini_fn *fini; ++ struct module *owner; ++ ++ /* Functions are called in ascending priority */ ++ int priority; ++ ++ /* Private part */ ++ struct list_head list; ++}; ++ ++enum { ++ HOOK_PRIO_DEFAULT = 0, ++ ++ HOOK_PRIO_FS = HOOK_PRIO_DEFAULT, ++ ++ HOOK_PRIO_NET_PRE, ++ HOOK_PRIO_NET, ++ HOOK_PRIO_NET_POST, ++ ++ HOOK_PRIO_AFTERALL = INT_MAX ++}; ++ ++extern int ve_hook_iterate_init(int chain, void *data); ++extern void ve_hook_iterate_fini(int chain, void *data); ++ ++extern void ve_hook_register(int chain, struct ve_hook *vh); ++extern void ve_hook_unregister(struct ve_hook *vh); ++#else /* CONFIG_VE */ ++#define ve_hook_register(ch, vh) do { } while (0) ++#define ve_hook_unregister(ve) do { } while (0) ++ ++#define get_device_perms_ve(t, d, a) (0) ++#endif /* CONFIG_VE */ ++#endif +Index: kernel/include/linux/ve_task.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/ve_task.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,68 @@ ++/* ++ * include/linux/ve_task.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __VE_TASK_H__ ++#define __VE_TASK_H__ ++ ++#include ++#include ++ ++struct ve_task_info { ++/* virtualization */ ++ struct ve_struct *owner_env; ++ struct ve_struct *exec_env; ++ struct ve_struct *saved_env; ++ struct list_head vetask_list; ++ struct dentry *glob_proc_dentry; ++/* statistics: scheduling latency */ ++ cycles_t sleep_time; ++ cycles_t sched_time; ++ cycles_t sleep_stamp; ++ cycles_t wakeup_stamp; ++ seqcount_t wakeup_lock; ++}; ++ ++#define VE_TASK_INFO(task) (&(task)->ve_task_info) ++#define VE_TASK_LIST_2_TASK(lh) \ ++ list_entry(lh, struct task_struct, ve_task_info.vetask_list) ++ ++#ifdef CONFIG_VE ++extern struct ve_struct ve0; ++#define get_ve0() (&ve0) ++ ++#define ve_save_context(t) do { \ ++ t->ve_task_info.saved_env = \ ++ t->ve_task_info.exec_env; \ ++ t->ve_task_info.exec_env = get_ve0(); \ ++ } while (0) ++#define ve_restore_context(t) do { \ ++ t->ve_task_info.exec_env = \ ++ t->ve_task_info.saved_env; \ ++ } while (0) ++ ++#define get_exec_env() (current->ve_task_info.exec_env) ++#define set_exec_env(ve) ({ \ ++ struct ve_task_info *vi; \ ++ struct ve_struct *old; \ ++ \ ++ vi = ¤t->ve_task_info; \ ++ old = vi->exec_env; \ ++ vi->exec_env = ve; \ ++ old; \ ++ }) ++#else ++#define get_ve0() (NULL) ++#define get_exec_env() (NULL) ++#define set_exec_env(new_env) (NULL) ++#define ve_save_context(t) do { } while (0) ++#define ve_restore_context(t) do { } while (0) ++#endif ++ ++#endif /* __VE_TASK_H__ */ +Index: kernel/include/linux/veip.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/veip.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,15 @@ ++#ifndef __VE_IP_H_ ++#define __VE_IP_H_ ++ ++struct ve_addr_struct { ++ int family; ++ __u32 key[4]; ++}; ++ ++struct sockaddr; ++ ++extern void veaddr_print(char *, int, struct ve_addr_struct *); ++extern int sockaddr_to_veaddr(struct sockaddr __user *uaddr, int addrlen, ++ struct ve_addr_struct *veaddr); ++ ++#endif +Index: kernel/include/linux/venet.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/venet.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,72 @@ ++/* ++ * include/linux/venet.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _VENET_H ++#define _VENET_H ++ ++#include ++#include ++#include ++#include ++ ++#define VEIP_HASH_SZ 512 ++ ++struct ve_struct; ++struct venet_stat; ++struct ip_entry_struct ++{ ++ struct ve_addr_struct addr; ++ struct ve_struct *active_env; ++ struct venet_stat *stat; ++ struct veip_struct *veip; ++ struct list_head ip_hash; ++ struct list_head ve_list; ++}; ++ ++struct veip_struct ++{ ++ struct list_head src_lh; ++ struct list_head dst_lh; ++ struct list_head ip_lh; ++ struct list_head list; ++ envid_t veid; ++}; ++ ++/* veip_hash_lock should be taken for write by caller */ ++void ip_entry_hash(struct ip_entry_struct *entry, struct veip_struct *veip); ++/* veip_hash_lock should be taken for write by caller */ ++void ip_entry_unhash(struct ip_entry_struct *entry); ++/* veip_hash_lock should be taken for read by caller */ ++struct ip_entry_struct *venet_entry_lookup(struct ve_addr_struct *); ++ ++/* veip_hash_lock should be taken for read by caller */ ++struct veip_struct *veip_find(envid_t veid); ++/* veip_hash_lock should be taken for write by caller */ ++struct veip_struct *veip_findcreate(envid_t veid); ++/* veip_hash_lock should be taken for write by caller */ ++void veip_put(struct veip_struct *veip); ++ ++extern struct list_head veip_lh; ++ ++int veip_start(struct ve_struct *ve); ++void veip_stop(struct ve_struct *ve); ++__exit void veip_cleanup(void); ++int veip_entry_add(struct ve_struct *ve, struct ve_addr_struct *addr); ++int veip_entry_del(envid_t veid, struct ve_addr_struct *addr); ++int venet_change_skb_owner(struct sk_buff *skb); ++ ++extern struct list_head ip_entry_hash_table[]; ++extern rwlock_t veip_hash_lock; ++ ++#ifdef CONFIG_PROC_FS ++int veip_seq_show(struct seq_file *m, void *v); ++#endif ++ ++#endif +Index: kernel/include/linux/veprintk.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/veprintk.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,38 @@ ++/* ++ * include/linux/veprintk.h ++ * ++ * Copyright (C) 2006 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __VE_PRINTK_H__ ++#define __VE_PRINTK_H__ ++ ++#ifdef CONFIG_VE ++ ++#define ve_log_wait (*(get_exec_env()->_log_wait)) ++#define ve_log_start (*(get_exec_env()->_log_start)) ++#define ve_log_end (*(get_exec_env()->_log_end)) ++#define ve_logged_chars (*(get_exec_env()->_logged_chars)) ++#define ve_log_buf (get_exec_env()->log_buf) ++#define ve_log_buf_len (ve_is_super(get_exec_env()) ? \ ++ log_buf_len : VE_DEFAULT_LOG_BUF_LEN) ++#define VE_LOG_BUF_MASK (ve_log_buf_len - 1) ++#define VE_LOG_BUF(idx) (ve_log_buf[(idx) & VE_LOG_BUF_MASK]) ++ ++#else ++ ++#define ve_log_wait log_wait ++#define ve_log_start log_start ++#define ve_log_end log_end ++#define ve_logged_chars logged_chars ++#define ve_log_buf log_buf ++#define ve_log_buf_len log_buf_len ++#define VE_LOG_BUF_MASK LOG_BUF_MASK ++#define VE_LOG_BUF(idx) LOG_BUF(idx) ++ ++#endif /* CONFIG_VE */ ++#endif /* __VE_PRINTK_H__ */ +Index: kernel/include/linux/virtinfo.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/virtinfo.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,99 @@ ++/* ++ * include/linux/virtinfo.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __LINUX_VIRTINFO_H ++#define __LINUX_VIRTINFO_H ++ ++#include ++#include ++#include ++ ++struct vnotifier_block ++{ ++ int (*notifier_call)(struct vnotifier_block *self, ++ unsigned long, void *, int); ++ struct vnotifier_block *next; ++ int priority; ++}; ++ ++extern struct semaphore virtinfo_sem; ++void __virtinfo_notifier_register(int type, struct vnotifier_block *nb); ++void virtinfo_notifier_register(int type, struct vnotifier_block *nb); ++void virtinfo_notifier_unregister(int type, struct vnotifier_block *nb); ++int virtinfo_notifier_call(int type, unsigned long n, void *data); ++ ++struct page_info { ++ unsigned long nr_file_dirty; ++ unsigned long nr_writeback; ++ unsigned long nr_anon_pages; ++ unsigned long nr_file_mapped; ++ unsigned long nr_slab_rec; ++ unsigned long nr_slab_unrec; ++ unsigned long nr_pagetable; ++ unsigned long nr_unstable_nfs; ++ unsigned long nr_bounce; ++}; ++ ++struct meminfo { ++ struct sysinfo si; ++ struct page_info pi; ++ unsigned long active, inactive; ++ unsigned long cache, swapcache; ++ unsigned long committed_space; ++ unsigned long allowed; ++ unsigned long vmalloc_total, vmalloc_used, vmalloc_largest; ++}; ++ ++#define VIRTINFO_MEMINFO 0 ++#define VIRTINFO_ENOUGHMEM 1 ++#define VIRTINFO_DOFORK 2 ++#define VIRTINFO_DOEXIT 3 ++#define VIRTINFO_DOEXECVE 4 ++#define VIRTINFO_DOFORKRET 5 ++#define VIRTINFO_DOFORKPOST 6 ++#define VIRTINFO_EXIT 7 ++#define VIRTINFO_EXITMMAP 8 ++#define VIRTINFO_EXECMMAP 9 ++#define VIRTINFO_OUTOFMEM 10 ++#define VIRTINFO_PAGEIN 11 ++#define VIRTINFO_SYSINFO 12 ++#define VIRTINFO_NEWUBC 13 ++#define VIRTINFO_VMSTAT 14 ++ ++enum virt_info_types { ++ VITYPE_GENERAL, ++ VITYPE_FAUDIT, ++ VITYPE_QUOTA, ++ VITYPE_SCP, ++ ++ VIRT_TYPES ++}; ++ ++#ifdef CONFIG_VZ_GENCALLS ++ ++static inline int virtinfo_gencall(unsigned long n, void *data) ++{ ++ int r; ++ ++ r = virtinfo_notifier_call(VITYPE_GENERAL, n, data); ++ if (r & NOTIFY_FAIL) ++ return -ENOBUFS; ++ if (r & NOTIFY_OK) ++ return -ERESTARTNOINTR; ++ return 0; ++} ++ ++#else ++ ++#define virtinfo_gencall(n, data) 0 ++ ++#endif ++ ++#endif /* __LINUX_VIRTINFO_H */ +Index: kernel/include/linux/virtinfoscp.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/virtinfoscp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,21 @@ ++#ifndef __VIRTINFO_SCP_H__ ++#define __VIRTINFO_SCP_H__ ++ ++/* ++ * Dump and restore operations are non-symmetric. ++ * With respect to finish/fail hooks, 2 dump hooks are called from ++ * different proc operations, but restore hooks are called from a single one. ++ */ ++#define VIRTINFO_SCP_COLLECT 0x10 ++#define VIRTINFO_SCP_DUMP 0x11 ++#define VIRTINFO_SCP_DMPFIN 0x12 ++#define VIRTINFO_SCP_RSTCHECK 0x13 ++#define VIRTINFO_SCP_RESTORE 0x14 ++#define VIRTINFO_SCP_RSTFAIL 0x15 ++ ++#define VIRTINFO_SCP_RSTTSK 0x20 ++#define VIRTINFO_SCP_RSTMM 0x21 ++ ++#define VIRTNOTIFY_CHANGE 0x100 ++ ++#endif /* __VIRTINFO_SCP_H__ */ +Index: kernel/include/linux/vmalloc.h +=================================================================== +--- kernel.orig/include/linux/vmalloc.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/vmalloc.h 2008-11-24 15:47:46.000000000 +0100 +@@ -22,6 +22,10 @@ + #define IOREMAP_MAX_ORDER (7 + PAGE_SHIFT) /* 128 pages */ + #endif + ++/* align size to 2^n page boundary */ ++#define POWER2_PAGE_ALIGN(size) \ ++ ((typeof(size))(1UL << (PAGE_SHIFT + get_order(size)))) ++ + struct vm_struct { + /* keep next,addr,size together to speedup lookups */ + struct vm_struct *next; +@@ -37,12 +41,16 @@ + * Highlevel APIs for driver use + */ + extern void *vmalloc(unsigned long size); ++extern void *ub_vmalloc(unsigned long size); + extern void *vmalloc_user(unsigned long size); + extern void *vmalloc_node(unsigned long size, int node); ++extern void *ub_vmalloc_node(unsigned long size, int node); + extern void *vmalloc_exec(unsigned long size); + extern void *vmalloc_32(unsigned long size); + extern void *vmalloc_32_user(unsigned long size); + extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot); ++extern void *vmalloc_best(unsigned long size); ++extern void *ub_vmalloc_best(unsigned long size); + extern void *__vmalloc_area(struct vm_struct *area, gfp_t gfp_mask, + pgprot_t prot); + extern void vfree(void *addr); +@@ -68,6 +76,9 @@ + extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags); + extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags, + unsigned long start, unsigned long end); ++extern struct vm_struct * get_vm_area_best(unsigned long size, ++ unsigned long flags); ++extern void vprintstat(void); + extern struct vm_struct *get_vm_area_node(unsigned long size, + unsigned long flags, int node, + gfp_t gfp_mask); +Index: kernel/include/linux/vmstat.h +=================================================================== +--- kernel.orig/include/linux/vmstat.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/linux/vmstat.h 2008-11-24 15:47:46.000000000 +0100 +@@ -79,6 +79,7 @@ + put_cpu(); + } + ++extern unsigned long vm_events(enum vm_event_item i); + extern void all_vm_events(unsigned long *); + #ifdef CONFIG_HOTPLUG + extern void vm_events_fold_cpu(int cpu); +Index: kernel/include/linux/vzcalluser.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzcalluser.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,242 @@ ++/* ++ * include/linux/vzcalluser.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _LINUX_VZCALLUSER_H ++#define _LINUX_VZCALLUSER_H ++ ++#include ++#include ++ ++#define KERN_VZ_PRIV_RANGE 51 ++ ++#ifndef __ENVID_T_DEFINED__ ++typedef unsigned envid_t; ++#define __ENVID_T_DEFINED__ ++#endif ++ ++#ifndef __KERNEL__ ++#define __user ++#endif ++ ++/* ++ * VE management ioctls ++ */ ++ ++struct vzctl_old_env_create { ++ envid_t veid; ++ unsigned flags; ++#define VE_CREATE 1 /* Create VE, VE_ENTER added automatically */ ++#define VE_EXCLUSIVE 2 /* Fail if exists */ ++#define VE_ENTER 4 /* Enter existing VE */ ++#define VE_TEST 8 /* Test if VE exists */ ++#define VE_LOCK 16 /* Do not allow entering created VE */ ++#define VE_SKIPLOCK 32 /* Allow entering embrion VE */ ++ __u32 addr; ++}; ++ ++struct vzctl_mark_env_to_down { ++ envid_t veid; ++}; ++ ++struct vzctl_setdevperms { ++ envid_t veid; ++ unsigned type; ++#define VE_USE_MAJOR 010 /* Test MAJOR supplied in rule */ ++#define VE_USE_MINOR 030 /* Test MINOR supplied in rule */ ++#define VE_USE_MASK 030 /* Testing mask, VE_USE_MAJOR|VE_USE_MINOR */ ++ unsigned dev; ++ unsigned mask; ++}; ++ ++struct vzctl_ve_netdev { ++ envid_t veid; ++ int op; ++#define VE_NETDEV_ADD 1 ++#define VE_NETDEV_DEL 2 ++ char __user *dev_name; ++}; ++ ++struct vzctl_ve_meminfo { ++ envid_t veid; ++ unsigned long val; ++}; ++ ++/* these masks represent modules */ ++#define VE_IP_IPTABLES_MOD (1U<<0) ++#define VE_IP_FILTER_MOD (1U<<1) ++#define VE_IP_MANGLE_MOD (1U<<2) ++#define VE_IP_CONNTRACK_MOD (1U<<14) ++#define VE_IP_CONNTRACK_FTP_MOD (1U<<15) ++#define VE_IP_CONNTRACK_IRC_MOD (1U<<16) ++#define VE_IP_NAT_MOD (1U<<20) ++#define VE_IP_NAT_FTP_MOD (1U<<21) ++#define VE_IP_NAT_IRC_MOD (1U<<22) ++#define VE_IP_IPTABLES6_MOD (1U<<26) ++#define VE_IP_FILTER6_MOD (1U<<27) ++#define VE_IP_MANGLE6_MOD (1U<<28) ++#define VE_IP_IPTABLE_NAT_MOD (1U<<29) ++#define VE_NF_CONNTRACK_MOD (1U<<30) ++ ++/* these masks represent modules with their dependences */ ++#define VE_IP_IPTABLES (VE_IP_IPTABLES_MOD) ++#define VE_IP_FILTER (VE_IP_FILTER_MOD \ ++ | VE_IP_IPTABLES) ++#define VE_IP_MANGLE (VE_IP_MANGLE_MOD \ ++ | VE_IP_IPTABLES) ++#define VE_IP_IPTABLES6 (VE_IP_IPTABLES6_MOD) ++#define VE_IP_FILTER6 (VE_IP_FILTER6_MOD | VE_IP_IPTABLES6) ++#define VE_IP_MANGLE6 (VE_IP_MANGLE6_MOD | VE_IP_IPTABLES6) ++#define VE_NF_CONNTRACK (VE_NF_CONNTRACK_MOD | VE_IP_IPTABLES) ++#define VE_IP_CONNTRACK (VE_IP_CONNTRACK_MOD \ ++ | VE_IP_IPTABLES) ++#define VE_IP_CONNTRACK_FTP (VE_IP_CONNTRACK_FTP_MOD \ ++ | VE_IP_CONNTRACK) ++#define VE_IP_CONNTRACK_IRC (VE_IP_CONNTRACK_IRC_MOD \ ++ | VE_IP_CONNTRACK) ++#define VE_IP_NAT (VE_IP_NAT_MOD \ ++ | VE_IP_CONNTRACK) ++#define VE_IP_NAT_FTP (VE_IP_NAT_FTP_MOD \ ++ | VE_IP_NAT | VE_IP_CONNTRACK_FTP) ++#define VE_IP_NAT_IRC (VE_IP_NAT_IRC_MOD \ ++ | VE_IP_NAT | VE_IP_CONNTRACK_IRC) ++#define VE_IP_IPTABLE_NAT (VE_IP_IPTABLE_NAT_MOD | VE_IP_CONNTRACK) ++ ++/* safe iptables mask to be used by default */ ++#define VE_IP_DEFAULT \ ++ (VE_IP_IPTABLES | \ ++ VE_IP_FILTER | VE_IP_MANGLE) ++ ++#define VE_IPT_CMP(x,y) (((x) & (y)) == (y)) ++ ++struct vzctl_env_create_cid { ++ envid_t veid; ++ unsigned flags; ++ __u32 class_id; ++}; ++ ++struct vzctl_env_create { ++ envid_t veid; ++ unsigned flags; ++ __u32 class_id; ++}; ++ ++struct env_create_param { ++ __u64 iptables_mask; ++}; ++ ++#define VZCTL_ENV_CREATE_DATA_MINLEN sizeof(struct env_create_param) ++ ++struct env_create_param2 { ++ __u64 iptables_mask; ++ __u64 feature_mask; ++ __u32 total_vcpus; /* 0 - don't care, same as in host */ ++}; ++ ++struct env_create_param3 { ++ __u64 iptables_mask; ++ __u64 feature_mask; ++ __u32 total_vcpus; ++ __u32 pad; ++ __u64 known_features; ++}; ++ ++#define VE_FEATURE_SYSFS (1ULL << 0) ++#define VE_FEATURE_NFS (1ULL << 1) ++#define VE_FEATURE_DEF_PERMS (1ULL << 2) ++ ++#define VE_FEATURES_OLD (VE_FEATURE_SYSFS) ++#define VE_FEATURES_DEF (VE_FEATURE_SYSFS | \ ++ VE_FEATURE_DEF_PERMS) ++ ++typedef struct env_create_param3 env_create_param_t; ++#define VZCTL_ENV_CREATE_DATA_MAXLEN sizeof(env_create_param_t) ++ ++struct vzctl_env_create_data { ++ envid_t veid; ++ unsigned flags; ++ __u32 class_id; ++ env_create_param_t __user *data; ++ int datalen; ++}; ++ ++struct vz_load_avg { ++ int val_int; ++ int val_frac; ++}; ++ ++struct vz_cpu_stat { ++ unsigned long user_jif; ++ unsigned long nice_jif; ++ unsigned long system_jif; ++ unsigned long uptime_jif; ++ __u64 idle_clk; ++ __u64 strv_clk; ++ __u64 uptime_clk; ++ struct vz_load_avg avenrun[3]; /* loadavg data */ ++}; ++ ++struct vzctl_cpustatctl { ++ envid_t veid; ++ struct vz_cpu_stat __user *cpustat; ++}; ++ ++#define VZCTLTYPE '.' ++#define VZCTL_OLD_ENV_CREATE _IOW(VZCTLTYPE, 0, \ ++ struct vzctl_old_env_create) ++#define VZCTL_MARK_ENV_TO_DOWN _IOW(VZCTLTYPE, 1, \ ++ struct vzctl_mark_env_to_down) ++#define VZCTL_SETDEVPERMS _IOW(VZCTLTYPE, 2, \ ++ struct vzctl_setdevperms) ++#define VZCTL_ENV_CREATE_CID _IOW(VZCTLTYPE, 4, \ ++ struct vzctl_env_create_cid) ++#define VZCTL_ENV_CREATE _IOW(VZCTLTYPE, 5, \ ++ struct vzctl_env_create) ++#define VZCTL_GET_CPU_STAT _IOW(VZCTLTYPE, 6, \ ++ struct vzctl_cpustatctl) ++#define VZCTL_ENV_CREATE_DATA _IOW(VZCTLTYPE, 10, \ ++ struct vzctl_env_create_data) ++#define VZCTL_VE_NETDEV _IOW(VZCTLTYPE, 11, \ ++ struct vzctl_ve_netdev) ++#define VZCTL_VE_MEMINFO _IOW(VZCTLTYPE, 13, \ ++ struct vzctl_ve_meminfo) ++ ++#ifdef __KERNEL__ ++#ifdef CONFIG_COMPAT ++#include ++ ++struct compat_vzctl_ve_netdev { ++ envid_t veid; ++ int op; ++ compat_uptr_t dev_name; ++}; ++ ++struct compat_vzctl_ve_meminfo { ++ envid_t veid; ++ compat_ulong_t val; ++}; ++ ++struct compat_vzctl_env_create_data { ++ envid_t veid; ++ unsigned flags; ++ __u32 class_id; ++ compat_uptr_t data; ++ int datalen; ++}; ++ ++#define VZCTL_COMPAT_ENV_CREATE_DATA _IOW(VZCTLTYPE, 10, \ ++ struct compat_vzctl_env_create_data) ++#define VZCTL_COMPAT_VE_NETDEV _IOW(VZCTLTYPE, 11, \ ++ struct compat_vzctl_ve_netdev) ++#define VZCTL_COMPAT_VE_MEMINFO _IOW(VZCTLTYPE, 13, \ ++ struct compat_vzctl_ve_meminfo) ++#endif ++#endif ++ ++#endif +Index: kernel/include/linux/vzctl.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzctl.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,30 @@ ++/* ++ * include/linux/vzctl.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _LINUX_VZCTL_H ++#define _LINUX_VZCTL_H ++ ++#include ++ ++struct module; ++struct inode; ++struct file; ++struct vzioctlinfo { ++ unsigned type; ++ int (*ioctl)(struct file *, unsigned int, unsigned long); ++ int (*compat_ioctl)(struct file *, unsigned int, unsigned long); ++ struct module *owner; ++ struct list_head list; ++}; ++ ++extern void vzioctl_register(struct vzioctlinfo *inf); ++extern void vzioctl_unregister(struct vzioctlinfo *inf); ++ ++#endif +Index: kernel/include/linux/vzctl_quota.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzctl_quota.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,74 @@ ++/* ++ * include/linux/vzctl_quota.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __LINUX_VZCTL_QUOTA_H__ ++#define __LINUX_VZCTL_QUOTA_H__ ++ ++#include ++ ++#ifndef __KERNEL__ ++#define __user ++#endif ++ ++/* ++ * Quota management ioctl ++ */ ++ ++struct vz_quota_stat; ++struct vzctl_quotactl { ++ int cmd; ++ unsigned int quota_id; ++ struct vz_quota_stat __user *qstat; ++ char __user *ve_root; ++}; ++ ++struct vzctl_quotaugidctl { ++ int cmd; /* subcommand */ ++ unsigned int quota_id; /* quota id where it applies to */ ++ unsigned int ugid_index;/* for reading statistic. index of first ++ uid/gid record to read */ ++ unsigned int ugid_size; /* size of ugid_buf array */ ++ void *addr; /* user-level buffer */ ++}; ++ ++#define VZDQCTLTYPE '+' ++#define VZCTL_QUOTA_DEPR_CTL _IOWR(VZDQCTLTYPE, 1, \ ++ struct vzctl_quotactl) ++#define VZCTL_QUOTA_NEW_CTL _IOWR(VZDQCTLTYPE, 2, \ ++ struct vzctl_quotactl) ++#define VZCTL_QUOTA_UGID_CTL _IOWR(VZDQCTLTYPE, 3, \ ++ struct vzctl_quotaugidctl) ++ ++#ifdef __KERNEL__ ++#ifdef CONFIG_COMPAT ++struct compat_vzctl_quotactl { ++ int cmd; ++ unsigned int quota_id; ++ compat_uptr_t qstat; ++ compat_uptr_t ve_root; ++}; ++ ++struct compat_vzctl_quotaugidctl { ++ int cmd; /* subcommand */ ++ unsigned int quota_id; /* quota id where it applies to */ ++ unsigned int ugid_index;/* for reading statistic. index of first ++ uid/gid record to read */ ++ unsigned int ugid_size; /* size of ugid_buf array */ ++ compat_uptr_t addr; /* user-level buffer */ ++}; ++ ++#define VZCTL_COMPAT_QUOTA_CTL _IOWR(VZDQCTLTYPE, 2, \ ++ struct compat_vzctl_quotactl) ++#define VZCTL_COMPAT_QUOTA_UGID_CTL _IOWR(VZDQCTLTYPE, 3, \ ++ struct compat_vzctl_quotaugidctl) ++#endif ++#endif ++ ++#endif /* __LINUX_VZCTL_QUOTA_H__ */ +Index: kernel/include/linux/vzctl_venet.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzctl_venet.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,51 @@ ++/* ++ * include/linux/vzctl_venet.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _VZCTL_VENET_H ++#define _VZCTL_VENET_H ++ ++#include ++#include ++#include ++ ++#ifndef __ENVID_T_DEFINED__ ++typedef unsigned envid_t; ++#define __ENVID_T_DEFINED__ ++#endif ++ ++struct vzctl_ve_ip_map { ++ envid_t veid; ++ int op; ++#define VE_IP_ADD 1 ++#define VE_IP_DEL 2 ++ struct sockaddr *addr; ++ int addrlen; ++}; ++ ++#define VENETCTLTYPE '(' ++ ++#define VENETCTL_VE_IP_MAP _IOW(VENETCTLTYPE, 3, \ ++ struct vzctl_ve_ip_map) ++ ++#ifdef __KERNEL__ ++#ifdef CONFIG_COMPAT ++struct compat_vzctl_ve_ip_map { ++ envid_t veid; ++ int op; ++ compat_uptr_t addr; ++ int addrlen; ++}; ++ ++#define VENETCTL_COMPAT_VE_IP_MAP _IOW(VENETCTLTYPE, 3, \ ++ struct compat_vzctl_ve_ip_map) ++#endif ++#endif ++ ++#endif +Index: kernel/include/linux/vzctl_veth.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzctl_veth.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,42 @@ ++/* ++ * include/linux/vzctl_veth.h ++ * ++ * Copyright (C) 2006 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _VZCTL_VETH_H ++#define _VZCTL_VETH_H ++ ++#include ++#include ++ ++#ifndef __ENVID_T_DEFINED__ ++typedef unsigned envid_t; ++#define __ENVID_T_DEFINED__ ++#endif ++ ++struct vzctl_ve_hwaddr { ++ envid_t veid; ++ int op; ++#define VE_ETH_ADD 1 ++#define VE_ETH_DEL 2 ++#define VE_ETH_ALLOW_MAC_CHANGE 3 ++#define VE_ETH_DENY_MAC_CHANGE 4 ++ unsigned char dev_addr[6]; ++ int addrlen; ++ char dev_name[16]; ++ unsigned char dev_addr_ve[6]; ++ int addrlen_ve; ++ char dev_name_ve[16]; ++}; ++ ++#define VETHCTLTYPE '[' ++ ++#define VETHCTL_VE_HWADDR _IOW(VETHCTLTYPE, 3, \ ++ struct vzctl_ve_hwaddr) ++ ++#endif +Index: kernel/include/linux/vzdq_tree.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzdq_tree.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,99 @@ ++/* ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * This file contains Virtuozzo disk quota tree definition ++ */ ++ ++#ifndef _VZDQ_TREE_H ++#define _VZDQ_TREE_H ++ ++#include ++#include ++ ++typedef unsigned int quotaid_t; ++#define QUOTAID_BITS 32 ++#define QUOTAID_BBITS 4 ++#define QUOTAID_EBITS 8 ++ ++#if QUOTAID_EBITS % QUOTAID_BBITS ++#error Quota bit assumption failure ++#endif ++ ++#define QUOTATREE_BSIZE (1 << QUOTAID_BBITS) ++#define QUOTATREE_BMASK (QUOTATREE_BSIZE - 1) ++#define QUOTATREE_DEPTH ((QUOTAID_BITS + QUOTAID_BBITS - 1) \ ++ / QUOTAID_BBITS) ++#define QUOTATREE_EDEPTH ((QUOTAID_BITS + QUOTAID_EBITS - 1) \ ++ / QUOTAID_EBITS) ++#define QUOTATREE_BSHIFT(lvl) ((QUOTATREE_DEPTH - (lvl) - 1) * QUOTAID_BBITS) ++ ++/* ++ * Depth of keeping unused node (not inclusive). ++ * 0 means release all nodes including root, ++ * QUOTATREE_DEPTH means never release nodes. ++ * Current value: release all nodes strictly after QUOTATREE_EDEPTH ++ * (measured in external shift units). ++ */ ++#define QUOTATREE_CDEPTH (QUOTATREE_DEPTH \ ++ - 2 * QUOTATREE_DEPTH / QUOTATREE_EDEPTH \ ++ + 1) ++ ++/* ++ * Levels 0..(QUOTATREE_DEPTH-1) are tree nodes. ++ * On level i the maximal number of nodes is 2^(i*QUOTAID_BBITS), ++ * and each node contains 2^QUOTAID_BBITS pointers. ++ * Level 0 is a (single) tree root node. ++ * ++ * Nodes of level (QUOTATREE_DEPTH-1) contain pointers to caller's data. ++ * Nodes of lower levels contain pointers to nodes. ++ * ++ * Double pointer in array of i-level node, pointing to a (i+1)-level node ++ * (such as inside quotatree_find_state) are marked by level (i+1), not i. ++ * Level 0 double pointer is a pointer to root inside tree struct. ++ * ++ * The tree is permanent, i.e. all index blocks allocated are keeped alive to ++ * preserve the blocks numbers in the quota file tree to keep its changes ++ * locally. ++ */ ++struct quotatree_node { ++ struct list_head list; ++ quotaid_t num; ++ void *blocks[QUOTATREE_BSIZE]; ++}; ++ ++struct quotatree_level { ++ struct list_head usedlh, freelh; ++ quotaid_t freenum; ++}; ++ ++struct quotatree_tree { ++ struct quotatree_level levels[QUOTATREE_DEPTH]; ++ struct quotatree_node *root; ++ unsigned int leaf_num; ++}; ++ ++struct quotatree_find_state { ++ void **block; ++ int level; ++}; ++ ++/* number of leafs (objects) and leaf level of the tree */ ++#define QTREE_LEAFNUM(tree) ((tree)->leaf_num) ++#define QTREE_LEAFLVL(tree) (&(tree)->levels[QUOTATREE_DEPTH - 1]) ++ ++struct quotatree_tree *quotatree_alloc(void); ++void *quotatree_find(struct quotatree_tree *tree, quotaid_t id, ++ struct quotatree_find_state *st); ++int quotatree_insert(struct quotatree_tree *tree, quotaid_t id, ++ struct quotatree_find_state *st, void *data); ++void quotatree_remove(struct quotatree_tree *tree, quotaid_t id); ++void quotatree_free(struct quotatree_tree *tree, void (*dtor)(void *)); ++void *quotatree_get_next(struct quotatree_tree *tree, quotaid_t id); ++void *quotatree_leaf_byindex(struct quotatree_tree *tree, unsigned int index); ++ ++#endif /* _VZDQ_TREE_H */ ++ +Index: kernel/include/linux/vzevent.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzevent.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,13 @@ ++#ifndef __LINUX_VZ_EVENT_H__ ++#define __LINUX_VZ_EVENT_H__ ++ ++#if defined(CONFIG_VZ_EVENT) || defined(CONFIG_VZ_EVENT_MODULE) ++extern int vzevent_send(int msg, const char *attrs_fmt, ...); ++#else ++static inline int vzevent_send(int msg, const char *attrs_fmt, ...) ++{ ++ return 0; ++} ++#endif ++ ++#endif /* __LINUX_VZ_EVENT_H__ */ +Index: kernel/include/linux/vzquota.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzquota.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,380 @@ ++/* ++ * ++ * Copyright (C) 2001-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * This file contains Virtuozzo disk quota implementation ++ */ ++ ++#ifndef _VZDQUOTA_H ++#define _VZDQUOTA_H ++ ++#include ++#include ++ ++/* vzquotactl syscall commands */ ++#define VZ_DQ_CREATE 5 /* create quota master block */ ++#define VZ_DQ_DESTROY 6 /* destroy qmblk */ ++#define VZ_DQ_ON 7 /* mark dentry with already created qmblk */ ++#define VZ_DQ_OFF 8 /* remove mark, don't destroy qmblk */ ++#define VZ_DQ_SETLIMIT 9 /* set new limits */ ++#define VZ_DQ_GETSTAT 10 /* get usage statistic */ ++#define VZ_DQ_OFF_FORCED 11 /* forced off */ ++/* set of syscalls to maintain UGID quotas */ ++#define VZ_DQ_UGID_GETSTAT 1 /* get usage/limits for ugid(s) */ ++#define VZ_DQ_UGID_ADDSTAT 2 /* set usage/limits statistic for ugid(s) */ ++#define VZ_DQ_UGID_GETGRACE 3 /* get expire times */ ++#define VZ_DQ_UGID_SETGRACE 4 /* set expire times */ ++#define VZ_DQ_UGID_GETCONFIG 5 /* get ugid_max limit, cnt, flags of qmblk */ ++#define VZ_DQ_UGID_SETCONFIG 6 /* set ugid_max limit, flags of qmblk */ ++#define VZ_DQ_UGID_SETLIMIT 7 /* set ugid B/I limits */ ++#define VZ_DQ_UGID_SETINFO 8 /* set ugid info */ ++ ++/* common structure for vz and ugid quota */ ++struct dq_stat { ++ /* blocks limits */ ++ __u64 bhardlimit; /* absolute limit in bytes */ ++ __u64 bsoftlimit; /* preferred limit in bytes */ ++ time_t btime; /* time limit for excessive disk use */ ++ __u64 bcurrent; /* current bytes count */ ++ /* inodes limits */ ++ __u32 ihardlimit; /* absolute limit on allocated inodes */ ++ __u32 isoftlimit; /* preferred inode limit */ ++ time_t itime; /* time limit for excessive inode use */ ++ __u32 icurrent; /* current # allocated inodes */ ++}; ++ ++/* One second resolution for grace times */ ++#define CURRENT_TIME_SECONDS (get_seconds()) ++ ++/* Values for dq_info->flags */ ++#define VZ_QUOTA_INODES 0x01 /* inodes limit warning printed */ ++#define VZ_QUOTA_SPACE 0x02 /* space limit warning printed */ ++ ++struct dq_info { ++ time_t bexpire; /* expire timeout for excessive disk use */ ++ time_t iexpire; /* expire timeout for excessive inode use */ ++ unsigned flags; /* see previos defines */ ++}; ++ ++struct vz_quota_stat { ++ struct dq_stat dq_stat; ++ struct dq_info dq_info; ++}; ++ ++/* UID/GID interface record - for user-kernel level exchange */ ++struct vz_quota_iface { ++ unsigned int qi_id; /* UID/GID this applies to */ ++ unsigned int qi_type; /* USRQUOTA|GRPQUOTA */ ++ struct dq_stat qi_stat; /* limits, options, usage stats */ ++}; ++ ++#ifdef CONFIG_COMPAT ++#include ++struct compat_dq_stat { ++ /* blocks limits */ ++ __u64 bhardlimit; /* absolute limit in bytes */ ++ __u64 bsoftlimit; /* preferred limit in bytes */ ++ compat_time_t btime; /* time limit for excessive disk use */ ++ __u64 bcurrent; /* current bytes count */ ++ /* inodes limits */ ++ __u32 ihardlimit; /* absolute limit on allocated inodes */ ++ __u32 isoftlimit; /* preferred inode limit */ ++ compat_time_t itime; /* time limit for excessive inode use */ ++ __u32 icurrent; /* current # allocated inodes */ ++}; ++ ++struct compat_dq_info { ++ compat_time_t bexpire; /* expire timeout for excessive disk use */ ++ compat_time_t iexpire; /* expire timeout for excessive inode use */ ++ unsigned flags; /* see previos defines */ ++}; ++ ++struct compat_vz_quota_stat { ++ struct compat_dq_stat dq_stat; ++ struct compat_dq_info dq_info; ++}; ++ ++struct compat_vz_quota_iface { ++ unsigned int qi_id; /* UID/GID this applies to */ ++ unsigned int qi_type; /* USRQUOTA|GRPQUOTA */ ++ struct compat_dq_stat qi_stat; /* limits, options, usage stats */ ++}; ++ ++static inline void compat_dqstat2dqstat(struct compat_dq_stat *odqs, ++ struct dq_stat *dqs) ++{ ++ dqs->bhardlimit = odqs->bhardlimit; ++ dqs->bsoftlimit = odqs->bsoftlimit; ++ dqs->bcurrent = odqs->bcurrent; ++ dqs->btime = odqs->btime; ++ ++ dqs->ihardlimit = odqs->ihardlimit; ++ dqs->isoftlimit = odqs->isoftlimit; ++ dqs->icurrent = odqs->icurrent; ++ dqs->itime = odqs->itime; ++} ++ ++static inline void compat_dqinfo2dqinfo(struct compat_dq_info *odqi, ++ struct dq_info *dqi) ++{ ++ dqi->bexpire = odqi->bexpire; ++ dqi->iexpire = odqi->iexpire; ++ dqi->flags = odqi->flags; ++} ++ ++static inline void dqstat2compat_dqstat(struct dq_stat *dqs, ++ struct compat_dq_stat *odqs) ++{ ++ odqs->bhardlimit = dqs->bhardlimit; ++ odqs->bsoftlimit = dqs->bsoftlimit; ++ odqs->bcurrent = dqs->bcurrent; ++ odqs->btime = (compat_time_t)dqs->btime; ++ ++ odqs->ihardlimit = dqs->ihardlimit; ++ odqs->isoftlimit = dqs->isoftlimit; ++ odqs->icurrent = dqs->icurrent; ++ odqs->itime = (compat_time_t)dqs->itime; ++} ++ ++static inline void dqinfo2compat_dqinfo(struct dq_info *dqi, ++ struct compat_dq_info *odqi) ++{ ++ odqi->bexpire = (compat_time_t)dqi->bexpire; ++ odqi->iexpire = (compat_time_t)dqi->iexpire; ++ odqi->flags = dqi->flags; ++} ++#endif ++ ++/* values for flags and dq_flags */ ++/* this flag is set if the userspace has been unable to provide usage ++ * information about all ugids ++ * if the flag is set, we don't allocate new UG quota blocks (their ++ * current usage is unknown) or free existing UG quota blocks (not to ++ * lose information that this block is ok) */ ++#define VZDQUG_FIXED_SET 0x01 ++/* permit to use ugid quota */ ++#define VZDQUG_ON 0x02 ++#define VZDQ_USRQUOTA 0x10 ++#define VZDQ_GRPQUOTA 0x20 ++#define VZDQ_NOACT 0x1000 /* not actual */ ++#define VZDQ_NOQUOT 0x2000 /* not under quota tree */ ++ ++struct vz_quota_ugid_stat { ++ unsigned int limit; /* max amount of ugid records */ ++ unsigned int count; /* amount of ugid records */ ++ unsigned int flags; ++}; ++ ++struct vz_quota_ugid_setlimit { ++ unsigned int type; /* quota type (USR/GRP) */ ++ unsigned int id; /* ugid */ ++ struct if_dqblk dqb; /* limits info */ ++}; ++ ++struct vz_quota_ugid_setinfo { ++ unsigned int type; /* quota type (USR/GRP) */ ++ struct if_dqinfo dqi; /* grace info */ ++}; ++ ++#ifdef __KERNEL__ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Values for dq_info flags */ ++#define VZ_QUOTA_INODES 0x01 /* inodes limit warning printed */ ++#define VZ_QUOTA_SPACE 0x02 /* space limit warning printed */ ++ ++/* values for dq_state */ ++#define VZDQ_STARTING 0 /* created, not turned on yet */ ++#define VZDQ_WORKING 1 /* quota created, turned on */ ++#define VZDQ_STOPING 2 /* created, turned on and off */ ++ ++/* master quota record - one per veid */ ++struct vz_quota_master { ++ struct list_head dq_hash; /* next quota in hash list */ ++ atomic_t dq_count; /* inode reference count */ ++ unsigned int dq_flags; /* see VZDQUG_FIXED_SET */ ++ unsigned int dq_state; /* see values above */ ++ unsigned int dq_id; /* VEID this applies to */ ++ struct dq_stat dq_stat; /* limits, grace, usage stats */ ++ struct dq_info dq_info; /* grace times and flags */ ++ spinlock_t dq_data_lock; /* for dq_stat */ ++ ++ struct semaphore dq_sem; /* semaphore to protect ++ ugid tree */ ++ ++ struct list_head dq_ilink_list; /* list of vz_quota_ilink */ ++ struct quotatree_tree *dq_uid_tree; /* vz_quota_ugid tree for UIDs */ ++ struct quotatree_tree *dq_gid_tree; /* vz_quota_ugid tree for GIDs */ ++ unsigned int dq_ugid_count; /* amount of ugid records */ ++ unsigned int dq_ugid_max; /* max amount of ugid records */ ++ struct dq_info dq_ugid_info[MAXQUOTAS]; /* ugid grace times */ ++ ++ struct dentry *dq_root_dentry;/* dentry of fs tree */ ++ struct vfsmount *dq_root_mnt; /* vfsmnt of this dentry */ ++ struct super_block *dq_sb; /* superblock of our quota root */ ++}; ++ ++/* UID/GID quota record - one per pair (quota_master, uid or gid) */ ++struct vz_quota_ugid { ++ unsigned int qugid_id; /* UID/GID this applies to */ ++ struct dq_stat qugid_stat; /* limits, options, usage stats */ ++ int qugid_type; /* USRQUOTA|GRPQUOTA */ ++ atomic_t qugid_count; /* reference count */ ++}; ++ ++#define VZ_QUOTA_UGBAD ((struct vz_quota_ugid *)0xfeafea11) ++ ++struct vz_quota_datast { ++ struct vz_quota_ilink qlnk; ++}; ++ ++#define VIRTINFO_QUOTA_GETSTAT 0 ++#define VIRTINFO_QUOTA_ON 1 ++#define VIRTINFO_QUOTA_OFF 2 ++#define VIRTINFO_QUOTA_DISABLE 3 ++ ++struct virt_info_quota { ++ struct super_block *super; ++ struct dq_stat *qstat; ++}; ++ ++/* ++ * Interface to VZ quota core ++ */ ++#define INODE_QLNK(inode) (&(inode)->i_qlnk) ++#define QLNK_INODE(qlnk) container_of((qlnk), struct inode, i_qlnk) ++ ++#define VZ_QUOTA_BAD ((struct vz_quota_master *)0xefefefef) ++ ++#define VZ_QUOTAO_SETE 1 ++#define VZ_QUOTAO_INIT 2 ++#define VZ_QUOTAO_DESTR 3 ++#define VZ_QUOTAO_SWAP 4 ++#define VZ_QUOTAO_INICAL 5 ++#define VZ_QUOTAO_DRCAL 6 ++#define VZ_QUOTAO_QSET 7 ++#define VZ_QUOTAO_TRANS 8 ++#define VZ_QUOTAO_ACT 9 ++#define VZ_QUOTAO_DTREE 10 ++#define VZ_QUOTAO_DET 11 ++#define VZ_QUOTAO_ON 12 ++#define VZ_QUOTAO_RE_LOCK 13 ++ ++#define DQUOT_CMD_ALLOC 0 ++#define DQUOT_CMD_PREALLOC 1 ++#define DQUOT_CMD_CHECK 12 ++#define DQUOT_CMD_FORCE 13 ++ ++extern struct semaphore vz_quota_sem; ++void inode_qmblk_lock(struct super_block *sb); ++void inode_qmblk_unlock(struct super_block *sb); ++void qmblk_data_read_lock(struct vz_quota_master *qmblk); ++void qmblk_data_read_unlock(struct vz_quota_master *qmblk); ++void qmblk_data_write_lock(struct vz_quota_master *qmblk); ++void qmblk_data_write_unlock(struct vz_quota_master *qmblk); ++ ++/* for quota operations */ ++void vzquota_inode_init_call(struct inode *inode); ++void vzquota_inode_drop_call(struct inode *inode); ++int vzquota_inode_transfer_call(struct inode *, struct iattr *); ++struct vz_quota_master *vzquota_inode_data(struct inode *inode, ++ struct vz_quota_datast *); ++void vzquota_data_unlock(struct inode *inode, struct vz_quota_datast *); ++int vzquota_rename_check(struct inode *inode, ++ struct inode *old_dir, struct inode *new_dir); ++struct vz_quota_master *vzquota_inode_qmblk(struct inode *inode); ++/* for second-level quota */ ++struct vz_quota_master *vzquota_find_qmblk(struct super_block *); ++/* for management operations */ ++struct vz_quota_master *vzquota_alloc_master(unsigned int quota_id, ++ struct vz_quota_stat *qstat); ++void vzquota_free_master(struct vz_quota_master *); ++struct vz_quota_master *vzquota_find_master(unsigned int quota_id); ++int vzquota_on_qmblk(struct super_block *sb, struct inode *inode, ++ struct vz_quota_master *qmblk, char __user *buf); ++int vzquota_off_qmblk(struct super_block *sb, struct vz_quota_master *qmblk, ++ char __user *buf, int force); ++int vzquota_get_super(struct super_block *sb); ++void vzquota_put_super(struct super_block *sb); ++ ++static inline struct vz_quota_master *qmblk_get(struct vz_quota_master *qmblk) ++{ ++ if (!atomic_read(&qmblk->dq_count)) ++ BUG(); ++ atomic_inc(&qmblk->dq_count); ++ return qmblk; ++} ++ ++static inline void __qmblk_put(struct vz_quota_master *qmblk) ++{ ++ atomic_dec(&qmblk->dq_count); ++} ++ ++static inline void qmblk_put(struct vz_quota_master *qmblk) ++{ ++ if (!atomic_dec_and_test(&qmblk->dq_count)) ++ return; ++ vzquota_free_master(qmblk); ++} ++ ++extern struct list_head vzquota_hash_table[]; ++extern int vzquota_hash_size; ++ ++/* ++ * Interface to VZ UGID quota ++ */ ++extern struct quotactl_ops vz_quotactl_operations; ++extern struct dquot_operations vz_quota_operations2; ++extern struct quota_format_type vz_quota_empty_v2_format; ++ ++#define QUGID_TREE(qmblk, type) (((type) == USRQUOTA) ? \ ++ qmblk->dq_uid_tree : \ ++ qmblk->dq_gid_tree) ++ ++#define VZDQUG_FIND_DONT_ALLOC 1 ++#define VZDQUG_FIND_FAKE 2 ++struct vz_quota_ugid *vzquota_find_ugid(struct vz_quota_master *qmblk, ++ unsigned int quota_id, int type, int flags); ++struct vz_quota_ugid *__vzquota_find_ugid(struct vz_quota_master *qmblk, ++ unsigned int quota_id, int type, int flags); ++struct vz_quota_ugid *vzquota_get_ugid(struct vz_quota_ugid *qugid); ++void vzquota_put_ugid(struct vz_quota_master *qmblk, ++ struct vz_quota_ugid *qugid); ++void vzquota_kill_ugid(struct vz_quota_master *qmblk); ++int vzquota_ugid_init(void); ++void vzquota_ugid_release(void); ++int vzquota_transfer_usage(struct inode *inode, int mask, ++ struct vz_quota_ilink *qlnk); ++void vzquota_inode_off(struct inode *inode); ++ ++long do_vzquotaugidctl(int cmd, unsigned int quota_id, ++ unsigned int ugid_index, unsigned int ugid_size, ++ void *addr, int compat); ++ ++/* ++ * Other VZ quota parts ++ */ ++extern struct dquot_operations vz_quota_operations; ++ ++long do_vzquotactl(int cmd, unsigned int quota_id, ++ struct vz_quota_stat __user *qstat, const char __user *ve_root, ++ int compat); ++int vzquota_proc_init(void); ++void vzquota_proc_release(void); ++struct vz_quota_master *vzquota_find_qmblk(struct super_block *); ++extern struct semaphore vz_quota_sem; ++ ++void vzaquota_init(void); ++void vzaquota_fini(void); ++ ++#endif /* __KERNEL__ */ ++ ++#endif /* _VZDQUOTA_H */ +Index: kernel/include/linux/vzquota_qlnk.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzquota_qlnk.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,25 @@ ++/* ++ * include/linux/vzquota_qlnk.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef _VZDQUOTA_QLNK_H ++#define _VZDQUOTA_QLNK_H ++ ++struct vz_quota_master; ++struct vz_quota_ugid; ++ ++/* inode link, used to track inodes using quota via dq_ilink_list */ ++struct vz_quota_ilink { ++ struct vz_quota_master *qmblk; ++ struct vz_quota_ugid *qugid[MAXQUOTAS]; ++ struct list_head list; ++ unsigned char origin[2]; ++}; ++ ++#endif /* _VZDQUOTA_QLNK_H */ +Index: kernel/include/linux/vzratelimit.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzratelimit.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,28 @@ ++/* ++ * include/linux/vzratelimit.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __VZ_RATELIMIT_H__ ++#define __VZ_RATELIMIT_H__ ++ ++/* ++ * Generic ratelimiting stuff. ++ */ ++ ++struct vz_rate_info { ++ int burst; ++ int interval; /* jiffy_t per event */ ++ int bucket; /* kind of leaky bucket */ ++ unsigned long last; /* last event */ ++}; ++ ++/* Return true if rate limit permits. */ ++int vz_ratelimit(struct vz_rate_info *p); ++ ++#endif /* __VZ_RATELIMIT_H__ */ +Index: kernel/include/linux/vzstat.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/vzstat.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,182 @@ ++/* ++ * include/linux/vzstat.h ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __VZSTAT_H__ ++#define __VZSTAT_H__ ++ ++struct swap_cache_info_struct { ++ unsigned long add_total; ++ unsigned long del_total; ++ unsigned long find_success; ++ unsigned long find_total; ++ unsigned long noent_race; ++ unsigned long exist_race; ++ unsigned long remove_race; ++}; ++ ++struct kstat_lat_snap_struct { ++ cycles_t maxlat, totlat; ++ unsigned long count; ++}; ++struct kstat_lat_pcpu_snap_struct { ++ cycles_t maxlat, totlat; ++ unsigned long count; ++ seqcount_t lock; ++} ____cacheline_aligned_in_smp; ++ ++struct kstat_lat_struct { ++ struct kstat_lat_snap_struct cur, last; ++ cycles_t avg[3]; ++}; ++struct kstat_lat_pcpu_struct { ++ struct kstat_lat_pcpu_snap_struct cur[NR_CPUS]; ++ cycles_t max_snap; ++ struct kstat_lat_snap_struct last; ++ cycles_t avg[3]; ++}; ++ ++struct kstat_perf_snap_struct { ++ cycles_t wall_tottime, cpu_tottime; ++ cycles_t wall_maxdur, cpu_maxdur; ++ unsigned long count; ++}; ++struct kstat_perf_struct { ++ struct kstat_perf_snap_struct cur, last; ++}; ++ ++struct kstat_zone_avg { ++ unsigned long free_pages_avg[3], ++ nr_active_avg[3], ++ nr_inactive_avg[3]; ++}; ++ ++#define KSTAT_ALLOCSTAT_NR 5 ++ ++struct kernel_stat_glob { ++ unsigned long nr_unint_avg[3]; ++ ++ unsigned long alloc_fails[KSTAT_ALLOCSTAT_NR]; ++ struct kstat_lat_struct alloc_lat[KSTAT_ALLOCSTAT_NR]; ++ struct kstat_lat_pcpu_struct sched_lat; ++ struct kstat_lat_struct swap_in; ++ ++ struct kstat_perf_struct ttfp, cache_reap, ++ refill_inact, shrink_icache, shrink_dcache; ++ ++ struct kstat_zone_avg zone_avg[3]; /* MAX_NR_ZONES */ ++} ____cacheline_aligned; ++ ++extern struct kernel_stat_glob kstat_glob ____cacheline_aligned; ++extern spinlock_t kstat_glb_lock; ++ ++#ifdef CONFIG_VE ++#define KSTAT_PERF_ENTER(name) \ ++ unsigned long flags; \ ++ cycles_t start, sleep_time; \ ++ \ ++ start = get_cycles(); \ ++ sleep_time = VE_TASK_INFO(current)->sleep_time; \ ++ ++#define KSTAT_PERF_LEAVE(name) \ ++ spin_lock_irqsave(&kstat_glb_lock, flags); \ ++ kstat_glob.name.cur.count++; \ ++ start = get_cycles() - start; \ ++ if (kstat_glob.name.cur.wall_maxdur < start) \ ++ kstat_glob.name.cur.wall_maxdur = start;\ ++ kstat_glob.name.cur.wall_tottime += start; \ ++ start -= VE_TASK_INFO(current)->sleep_time - \ ++ sleep_time; \ ++ if (kstat_glob.name.cur.cpu_maxdur < start) \ ++ kstat_glob.name.cur.cpu_maxdur = start; \ ++ kstat_glob.name.cur.cpu_tottime += start; \ ++ spin_unlock_irqrestore(&kstat_glb_lock, flags); \ ++ ++#else ++#define KSTAT_PERF_ENTER(name) ++#define KSTAT_PERF_LEAVE(name) ++#endif ++ ++/* ++ * Add another statistics reading. ++ * Serialization is the caller's due. ++ */ ++static inline void KSTAT_LAT_ADD(struct kstat_lat_struct *p, ++ cycles_t dur) ++{ ++ p->cur.count++; ++ if (p->cur.maxlat < dur) ++ p->cur.maxlat = dur; ++ p->cur.totlat += dur; ++} ++ ++static inline void KSTAT_LAT_PCPU_ADD(struct kstat_lat_pcpu_struct *p, int cpu, ++ cycles_t dur) ++{ ++ struct kstat_lat_pcpu_snap_struct *cur; ++ ++ cur = &p->cur[cpu]; ++ write_seqcount_begin(&cur->lock); ++ cur->count++; ++ if (cur->maxlat < dur) ++ cur->maxlat = dur; ++ cur->totlat += dur; ++ write_seqcount_end(&cur->lock); ++} ++ ++/* ++ * Move current statistics to last, clear last. ++ * Serialization is the caller's due. ++ */ ++static inline void KSTAT_LAT_UPDATE(struct kstat_lat_struct *p) ++{ ++ cycles_t m; ++ memcpy(&p->last, &p->cur, sizeof(p->last)); ++ p->cur.maxlat = 0; ++ m = p->last.maxlat; ++ CALC_LOAD(p->avg[0], EXP_1, m) ++ CALC_LOAD(p->avg[1], EXP_5, m) ++ CALC_LOAD(p->avg[2], EXP_15, m) ++} ++ ++static inline void KSTAT_LAT_PCPU_UPDATE(struct kstat_lat_pcpu_struct *p) ++{ ++ unsigned i, cpu; ++ struct kstat_lat_pcpu_snap_struct snap, *cur; ++ cycles_t m; ++ ++ memset(&p->last, 0, sizeof(p->last)); ++ for (cpu = 0; cpu < NR_CPUS; cpu++) { ++ cur = &p->cur[cpu]; ++ do { ++ i = read_seqcount_begin(&cur->lock); ++ memcpy(&snap, cur, sizeof(snap)); ++ } while (read_seqcount_retry(&cur->lock, i)); ++ /* ++ * read above and this update of maxlat is not atomic, ++ * but this is OK, since it happens rarely and losing ++ * a couple of peaks is not essential. xemul ++ */ ++ cur->maxlat = 0; ++ ++ p->last.count += snap.count; ++ p->last.totlat += snap.totlat; ++ if (p->last.maxlat < snap.maxlat) ++ p->last.maxlat = snap.maxlat; ++ } ++ ++ m = (p->last.maxlat > p->max_snap ? p->last.maxlat : p->max_snap); ++ CALC_LOAD(p->avg[0], EXP_1, m); ++ CALC_LOAD(p->avg[1], EXP_5, m); ++ CALC_LOAD(p->avg[2], EXP_15, m); ++ /* reset max_snap to calculate it correctly next time */ ++ p->max_snap = 0; ++} ++ ++#endif /* __VZSTAT_H__ */ +Index: kernel/include/net/addrconf.h +=================================================================== +--- kernel.orig/include/net/addrconf.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/addrconf.h 2008-11-24 15:47:46.000000000 +0100 +@@ -246,5 +246,19 @@ + extern void if6_proc_exit(void); + #endif + ++int addrconf_ifdown(struct net_device *dev, int how); ++int inet6_addr_add(int ifindex, struct in6_addr *pfx, int plen, ++ __u8 ifa_flags, __u32 prefered_lft, __u32 valid_lft); ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++int addrconf_sysctl_init(struct ve_struct *ve); ++void addrconf_sysctl_fini(struct ve_struct *ve); ++void addrconf_sysctl_free(struct ve_struct *ve); ++#else ++#define addrconf_sysctl_init(ve) (0) ++#define addrconf_sysctl_fini(ve) do { } while (0) ++#define addrconf_sysctl_free(ve) do { } while (0) ++#endif ++ + #endif + #endif +Index: kernel/include/net/af_unix.h +=================================================================== +--- kernel.orig/include/net/af_unix.h 2008-11-24 14:08:46.000000000 +0100 ++++ kernel/include/net/af_unix.h 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,7 @@ + extern void unix_notinflight(struct file *fp); + extern void unix_gc(void); + extern void wait_for_unix_gc(void); ++extern void unix_destruct_fds(struct sk_buff *skb); + + #define UNIX_HASH_SIZE 256 + +Index: kernel/include/net/arp.h +=================================================================== +--- kernel.orig/include/net/arp.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/arp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -7,7 +7,12 @@ + + #define HAVE_ARP_CREATE + +-extern struct neigh_table arp_tbl; ++#if defined(CONFIG_VE) && defined(CONFIG_INET) ++#define arp_tbl (*(get_exec_env()->ve_arp_tbl)) ++#else ++extern struct neigh_table global_arp_tbl; ++#define arp_tbl global_arp_tbl ++#endif + + extern void arp_init(void); + extern int arp_find(unsigned char *haddr, struct sk_buff *skb); +Index: kernel/include/net/flow.h +=================================================================== +--- kernel.orig/include/net/flow.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/flow.h 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,7 @@ + #include + #include + ++struct ve_struct; + struct flowi { + int oif; + int iif; +@@ -77,6 +78,9 @@ + #define fl_icmp_code uli_u.icmpt.code + #define fl_ipsec_spi uli_u.spi + #define fl_mh_type uli_u.mht.type ++#ifdef CONFIG_VE ++ struct ve_struct *owner_env; ++#endif + __u32 secid; /* used by xfrm; see secid.txt */ + } __attribute__((__aligned__(BITS_PER_LONG/8))); + +Index: kernel/include/net/icmp.h +=================================================================== +--- kernel.orig/include/net/icmp.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/icmp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -31,15 +31,24 @@ + extern struct icmp_err icmp_err_convert[]; + DECLARE_SNMP_STAT(struct icmp_mib, icmp_statistics); + DECLARE_SNMP_STAT(struct icmpmsg_mib, icmpmsg_statistics); +-#define ICMP_INC_STATS(field) SNMP_INC_STATS(icmp_statistics, field) +-#define ICMP_INC_STATS_BH(field) SNMP_INC_STATS_BH(icmp_statistics, field) +-#define ICMP_INC_STATS_USER(field) SNMP_INC_STATS_USER(icmp_statistics, field) +-#define ICMPMSGOUT_INC_STATS(field) SNMP_INC_STATS(icmpmsg_statistics, field+256) +-#define ICMPMSGOUT_INC_STATS_BH(field) SNMP_INC_STATS_BH(icmpmsg_statistics, field+256) +-#define ICMPMSGOUT_INC_STATS_USER(field) SNMP_INC_STATS_USER(icmpmsg_statistics, field+256) +-#define ICMPMSGIN_INC_STATS(field) SNMP_INC_STATS(icmpmsg_statistics, field) +-#define ICMPMSGIN_INC_STATS_BH(field) SNMP_INC_STATS_BH(icmpmsg_statistics, field) +-#define ICMPMSGIN_INC_STATS_USER(field) SNMP_INC_STATS_USER(icmpmsg_statistics, field) ++ ++#if defined(CONFIG_VE) && defined(CONFIG_INET) ++#define ve_icmp_statistics (get_exec_env()->_icmp_statistics) ++#define ve_icmpmsg_statistics (get_exec_env()->_icmpmsg_statistics) ++#else ++#define ve_icmp_statistics icmp_statistics ++#define ve_icmpmsg_statistics icmpmsg_statistics ++#endif ++ ++#define ICMP_INC_STATS(field) SNMP_INC_STATS(ve_icmp_statistics, field) ++#define ICMP_INC_STATS_BH(field) SNMP_INC_STATS_BH(ve_icmp_statistics, field) ++#define ICMP_INC_STATS_USER(field) SNMP_INC_STATS_USER(ve_icmp_statistics, field) ++#define ICMPMSGOUT_INC_STATS(field) SNMP_INC_STATS(ve_icmpmsg_statistics, field+256) ++#define ICMPMSGOUT_INC_STATS_BH(field) SNMP_INC_STATS_BH(ve_icmpmsg_statistics, field+256) ++#define ICMPMSGOUT_INC_STATS_USER(field) SNMP_INC_STATS_USER(ve_icmpmsg_statistics, field+256) ++#define ICMPMSGIN_INC_STATS(field) SNMP_INC_STATS(ve_icmpmsg_statistics, field) ++#define ICMPMSGIN_INC_STATS_BH(field) SNMP_INC_STATS_BH(ve_icmpmsg_statistics, field) ++#define ICMPMSGIN_INC_STATS_USER(field) SNMP_INC_STATS_USER(ve_icmpmsg_statistics, field) + + struct dst_entry; + struct net_proto_family; +Index: kernel/include/net/if_inet6.h +=================================================================== +--- kernel.orig/include/net/if_inet6.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/if_inet6.h 2008-11-24 15:47:46.000000000 +0100 +@@ -194,7 +194,14 @@ + struct rcu_head rcu; + }; + +-extern struct ipv6_devconf ipv6_devconf; ++extern struct ipv6_devconf global_ipv6_devconf; ++extern struct ipv6_devconf global_ipv6_devconf_dflt; ++ ++#ifdef CONFIG_VE ++#define ve_ipv6_devconf (*(get_exec_env()->_ipv6_devconf)) ++#else ++#define ve_ipv6_devconf global_ipv6_devconf ++#endif + + static inline void ipv6_eth_mc_map(struct in6_addr *addr, char *buf) + { +Index: kernel/include/net/inet6_hashtables.h +=================================================================== +--- kernel.orig/include/net/inet6_hashtables.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/inet6_hashtables.h 2008-11-24 15:47:46.000000000 +0100 +@@ -29,9 +29,10 @@ + + /* I have no idea if this is a good hash for v6 or not. -DaveM */ + static inline unsigned int inet6_ehashfn(const struct in6_addr *laddr, const u16 lport, +- const struct in6_addr *faddr, const __be16 fport) ++ const struct in6_addr *faddr, const __be16 fport, ++ const envid_t veid) + { +- u32 ports = (lport ^ (__force u16)fport); ++ u32 ports = (lport ^ (__force u16)fport) ^ (veid ^ (veid >> 16)); + + return jhash_3words((__force u32)laddr->s6_addr32[3], + (__force u32)faddr->s6_addr32[3], +@@ -46,7 +47,7 @@ + const struct in6_addr *faddr = &np->daddr; + const __u16 lport = inet->num; + const __be16 fport = inet->dport; +- return inet6_ehashfn(laddr, lport, faddr, fport); ++ return inet6_ehashfn(laddr, lport, faddr, fport, VEID(sk->owner_env)); + } + + extern void __inet6_hash(struct inet_hashinfo *hashinfo, struct sock *sk); +Index: kernel/include/net/inet_frag.h +=================================================================== +--- kernel.orig/include/net/inet_frag.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/inet_frag.h 2008-11-24 15:47:46.000000000 +0100 +@@ -16,6 +16,10 @@ + #define COMPLETE 4 + #define FIRST_IN 2 + #define LAST_IN 1 ++ ++#ifdef CONFIG_VE ++ struct ve_struct *owner_ve; ++#endif + }; + + #define INETFRAGS_HASHSZ 64 +Index: kernel/include/net/inet_hashtables.h +=================================================================== +--- kernel.orig/include/net/inet_hashtables.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/inet_hashtables.h 2008-11-24 15:47:46.000000000 +0100 +@@ -74,6 +74,7 @@ + * ports are created in O(1) time? I thought so. ;-) -DaveM + */ + struct inet_bind_bucket { ++ struct ve_struct *owner_env; + unsigned short port; + signed short fastreuse; + struct hlist_node node; +@@ -195,37 +196,43 @@ + extern struct inet_bind_bucket * + inet_bind_bucket_create(struct kmem_cache *cachep, + struct inet_bind_hashbucket *head, +- const unsigned short snum); ++ const unsigned short snum, ++ struct ve_struct *env); + extern void inet_bind_bucket_destroy(struct kmem_cache *cachep, + struct inet_bind_bucket *tb); + +-static inline int inet_bhashfn(const __u16 lport, const int bhash_size) ++static inline int inet_bhashfn(const __u16 lport, const int bhash_size, ++ unsigned veid) + { +- return lport & (bhash_size - 1); ++ return ((lport + (veid ^ (veid >> 16))) & (bhash_size - 1)); + } + + extern void inet_bind_hash(struct sock *sk, struct inet_bind_bucket *tb, + const unsigned short snum); + + /* These can have wildcards, don't try too hard. */ +-static inline int inet_lhashfn(const unsigned short num) ++static inline int inet_lhashfn(const unsigned short num, unsigned veid) + { +- return num & (INET_LHTABLE_SIZE - 1); ++ return ((num + (veid ^ (veid >> 16))) & (INET_LHTABLE_SIZE - 1)); + } + + static inline int inet_sk_listen_hashfn(const struct sock *sk) + { +- return inet_lhashfn(inet_sk(sk)->num); ++ return inet_lhashfn(inet_sk(sk)->num, VEID(sk->owner_env)); + } + + /* Caller must disable local BH processing. */ + static inline void __inet_inherit_port(struct inet_hashinfo *table, + struct sock *sk, struct sock *child) + { +- const int bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size); +- struct inet_bind_hashbucket *head = &table->bhash[bhash]; ++ int bhash; ++ struct inet_bind_hashbucket *head; + struct inet_bind_bucket *tb; + ++ bhash = inet_bhashfn(inet_sk(child)->num, table->bhash_size, ++ VEID(child->owner_env)); ++ head = &table->bhash[bhash]; ++ + spin_lock(&head->lock); + tb = inet_csk(sk)->icsk_bind_hash; + sk_add_bind_node(child, &tb->owners); +@@ -365,25 +372,25 @@ + (((__force __u64)(__be32)(__daddr)) << 32) | \ + ((__force __u64)(__be32)(__saddr))); + #endif /* __BIG_ENDIAN */ +-#define INET_MATCH(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif)\ ++#define INET_MATCH_ALLVE(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif)\ + (((__sk)->sk_hash == (__hash)) && \ + ((*((__addrpair *)&(inet_sk(__sk)->daddr))) == (__cookie)) && \ + ((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \ + (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) +-#define INET_TW_MATCH(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif)\ ++#define INET_TW_MATCH_ALLVE(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif)\ + (((__sk)->sk_hash == (__hash)) && \ + ((*((__addrpair *)&(inet_twsk(__sk)->tw_daddr))) == (__cookie)) && \ + ((*((__portpair *)&(inet_twsk(__sk)->tw_dport))) == (__ports)) && \ + (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) + #else /* 32-bit arch */ + #define INET_ADDR_COOKIE(__name, __saddr, __daddr) +-#define INET_MATCH(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif) \ ++#define INET_MATCH_ALLVE(__sk, __hash, __cookie, __saddr, __daddr, __ports, __dif) \ + (((__sk)->sk_hash == (__hash)) && \ + (inet_sk(__sk)->daddr == (__saddr)) && \ + (inet_sk(__sk)->rcv_saddr == (__daddr)) && \ + ((*((__portpair *)&(inet_sk(__sk)->dport))) == (__ports)) && \ + (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) +-#define INET_TW_MATCH(__sk, __hash,__cookie, __saddr, __daddr, __ports, __dif) \ ++#define INET_TW_MATCH_ALLVE(__sk, __hash,__cookie, __saddr, __daddr, __ports, __dif) \ + (((__sk)->sk_hash == (__hash)) && \ + (inet_twsk(__sk)->tw_daddr == (__saddr)) && \ + (inet_twsk(__sk)->tw_rcv_saddr == (__daddr)) && \ +@@ -391,6 +398,18 @@ + (!((__sk)->sk_bound_dev_if) || ((__sk)->sk_bound_dev_if == (__dif)))) + #endif /* 64-bit arch */ + ++#define INET_MATCH(__sk, __hash, __cookie, __saddr, \ ++ __daddr, __ports, __dif, __ve) \ ++ (INET_MATCH_ALLVE((__sk), (__hash), (__cookie), (__saddr), \ ++ (__daddr), (__ports), (__dif)) \ ++ && ve_accessible_strict((__sk)->owner_env, (__ve))) ++ ++#define INET_TW_MATCH(__sk, __hash, __cookie, __saddr, \ ++ __daddr, __ports, __dif, __ve) \ ++ (INET_TW_MATCH_ALLVE((__sk), (__hash), (__cookie), (__saddr), \ ++ (__daddr), (__ports), (__dif)) \ ++ && ve_accessible_strict(inet_twsk(__sk)->tw_owner_env, VEID(__ve))) ++ + /* + * Sockets in TCP_CLOSE state are _always_ taken out of the hash, so we need + * not check it for lookups anymore, thanks Alexey. -DaveM +@@ -410,20 +429,22 @@ + /* Optimize here for direct hit, only listening connections can + * have wildcards anyways. + */ +- unsigned int hash = inet_ehashfn(daddr, hnum, saddr, sport); ++ struct ve_struct *ve = get_exec_env(); ++ unsigned int hash = inet_ehashfn(daddr, hnum, saddr, sport, VEID(ve)); + struct inet_ehash_bucket *head = inet_ehash_bucket(hashinfo, hash); + rwlock_t *lock = inet_ehash_lockp(hashinfo, hash); + + prefetch(head->chain.first); + read_lock(lock); + sk_for_each(sk, node, &head->chain) { +- if (INET_MATCH(sk, hash, acookie, saddr, daddr, ports, dif)) ++ if (INET_MATCH(sk, hash, acookie, saddr, daddr, ++ ports, dif, ve)) + goto hit; /* You sunk my battleship! */ + } + + /* Must check for a TIME_WAIT'er before going to listener hash. */ + sk_for_each(sk, node, &head->twchain) { +- if (INET_TW_MATCH(sk, hash, acookie, saddr, daddr, ports, dif)) ++ if (INET_TW_MATCH(sk, hash, acookie, saddr, daddr, ports, dif, ve)) + goto hit; + } + sk = NULL; +Index: kernel/include/net/inet_sock.h +=================================================================== +--- kernel.orig/include/net/inet_sock.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/inet_sock.h 2008-11-24 15:47:46.000000000 +0100 +@@ -173,10 +173,11 @@ + extern void build_ehash_secret(void); + + static inline unsigned int inet_ehashfn(const __be32 laddr, const __u16 lport, +- const __be32 faddr, const __be16 fport) ++ const __be32 faddr, const __be16 fport, ++ const envid_t veid) + { + return jhash_3words((__force __u32) laddr, +- (__force __u32) faddr, ++ (__force __u32) faddr ^ (veid ^ (veid >> 16)), + ((__u32) lport) << 16 | (__force __u32)fport, + inet_ehash_secret); + } +@@ -187,8 +188,9 @@ + const __u16 lport = inet->num; + const __be32 faddr = inet->daddr; + const __be16 fport = inet->dport; ++ envid_t veid = VEID(sk->owner_env); + +- return inet_ehashfn(laddr, lport, faddr, fport); ++ return inet_ehashfn(laddr, lport, faddr, fport, veid); + } + + +Index: kernel/include/net/inet_timewait_sock.h +=================================================================== +--- kernel.orig/include/net/inet_timewait_sock.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/inet_timewait_sock.h 2008-11-24 15:47:46.000000000 +0100 +@@ -81,6 +81,7 @@ + struct inet_hashinfo *hashinfo; + int sysctl_tw_recycle; + int sysctl_max_tw_buckets; ++ int ub_managed; + }; + + extern void inet_twdr_hangman(unsigned long data); +@@ -134,6 +135,7 @@ + unsigned long tw_ttd; + struct inet_bind_bucket *tw_tb; + struct hlist_node tw_death_node; ++ envid_t tw_owner_env; + }; + + static inline void inet_twsk_add_node(struct inet_timewait_sock *tw, +Index: kernel/include/net/ip.h +=================================================================== +--- kernel.orig/include/net/ip.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/ip.h 2008-11-24 15:47:46.000000000 +0100 +@@ -157,16 +157,28 @@ + + extern struct ipv4_config ipv4_config; + DECLARE_SNMP_STAT(struct ipstats_mib, ip_statistics); +-#define IP_INC_STATS(field) SNMP_INC_STATS(ip_statistics, field) +-#define IP_INC_STATS_BH(field) SNMP_INC_STATS_BH(ip_statistics, field) +-#define IP_INC_STATS_USER(field) SNMP_INC_STATS_USER(ip_statistics, field) +-#define IP_ADD_STATS_BH(field, val) SNMP_ADD_STATS_BH(ip_statistics, field, val) ++ ++#ifdef CONFIG_VE ++#define ve_ip_statistics (get_exec_env()->_ip_statistics) ++#else ++#define ve_ip_statistics ip_statistics ++#endif ++#define IP_INC_STATS(field) SNMP_INC_STATS(ve_ip_statistics, field) ++#define IP_INC_STATS_BH(field) SNMP_INC_STATS_BH(ve_ip_statistics, field) ++#define IP_INC_STATS_USER(field) SNMP_INC_STATS_USER(ve_ip_statistics, field) ++#define IP_ADD_STATS_BH(field, val) SNMP_ADD_STATS_BH(ve_ip_statistics, field, val) ++ + DECLARE_SNMP_STAT(struct linux_mib, net_statistics); +-#define NET_INC_STATS(field) SNMP_INC_STATS(net_statistics, field) +-#define NET_INC_STATS_BH(field) SNMP_INC_STATS_BH(net_statistics, field) +-#define NET_INC_STATS_USER(field) SNMP_INC_STATS_USER(net_statistics, field) +-#define NET_ADD_STATS_BH(field, adnd) SNMP_ADD_STATS_BH(net_statistics, field, adnd) +-#define NET_ADD_STATS_USER(field, adnd) SNMP_ADD_STATS_USER(net_statistics, field, adnd) ++#if defined(CONFIG_VE) && defined(CONFIG_INET) ++#define ve_net_statistics (get_exec_env()->_net_statistics) ++#else ++#define ve_net_statistics net_statistics ++#endif ++#define NET_INC_STATS(field) SNMP_INC_STATS(ve_net_statistics, field) ++#define NET_INC_STATS_BH(field) SNMP_INC_STATS_BH(ve_net_statistics, field) ++#define NET_INC_STATS_USER(field) SNMP_INC_STATS_USER(ve_net_statistics, field) ++#define NET_ADD_STATS_BH(field, adnd) SNMP_ADD_STATS_BH(ve_net_statistics, field, adnd) ++#define NET_ADD_STATS_USER(field, adnd) SNMP_ADD_STATS_USER(ve_net_statistics, field, adnd) + + extern unsigned long snmp_fold_field(void *mib[], int offt); + extern int snmp_mib_init(void *ptr[2], size_t mibsize, size_t mibalign); +@@ -393,4 +405,11 @@ + + extern struct ctl_table ipv4_table[]; + ++#ifdef CONFIG_SYSCTL ++extern int ipv4_sysctl_forward(ctl_table *ctl, int write, struct file * filp, ++ void __user *buffer, size_t *lenp, loff_t *ppos); ++extern int ipv4_sysctl_forward_strategy(ctl_table *table, int __user *name, ++ int nlen, void __user *oldval, size_t __user *oldlenp, ++ void __user *newval, size_t newlen); ++#endif + #endif /* _IP_H */ +Index: kernel/include/net/ip6_fib.h +=================================================================== +--- kernel.orig/include/net/ip6_fib.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/ip6_fib.h 2008-11-24 15:47:46.000000000 +0100 +@@ -116,6 +116,8 @@ + return ((struct rt6_info *)dst)->rt6i_idev; + } + ++extern struct list_head fib6_table_list; ++ + struct fib6_walker_t + { + struct fib6_walker_t *prev, *next; +@@ -164,6 +166,7 @@ + u32 tb6_id; + rwlock_t tb6_lock; + struct fib6_node tb6_root; ++ struct ve_struct *owner_env; + }; + + #define RT6_TABLE_UNSPEC RT_TABLE_UNSPEC +@@ -220,6 +223,8 @@ + extern void fib6_gc_cleanup(void); + + extern void fib6_init(void); ++extern void fib6_tables_init(void); ++extern void fib6_tables_cleanup(void); + + extern void fib6_rules_init(void); + extern void fib6_rules_cleanup(void); +Index: kernel/include/net/ip6_route.h +=================================================================== +--- kernel.orig/include/net/ip6_route.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/ip6_route.h 2008-11-24 15:47:46.000000000 +0100 +@@ -162,5 +162,13 @@ + return rt->rt6i_flags & RTF_LOCAL; + } + ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++int init_ve_route6(struct ve_struct *ve); ++void fini_ve_route6(struct ve_struct *ve); ++#else ++#define init_ve_route6(ve) (0) ++#define fini_ve_route6(ve) do { } while (0) ++#endif ++ + #endif + #endif +Index: kernel/include/net/ip_fib.h +=================================================================== +--- kernel.orig/include/net/ip_fib.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/ip_fib.h 2008-11-24 15:47:46.000000000 +0100 +@@ -153,10 +153,23 @@ + unsigned char tb_data[0]; + }; + ++struct fn_zone; ++struct fn_hash { ++ struct fn_zone *fn_zones[33]; ++ struct fn_zone *fn_zone_list; ++}; ++ + #ifndef CONFIG_IP_MULTIPLE_TABLES + +-extern struct fib_table *ip_fib_local_table; +-extern struct fib_table *ip_fib_main_table; ++#ifdef CONFIG_VE ++#define ip_fib_local_table get_exec_env()->_local_table ++#define ip_fib_main_table get_exec_env()->_main_table ++#else ++extern struct fib_table *__ip_fib_local_table; ++extern struct fib_table *__ip_fib_main_table; ++#define ip_fib_local_table __ip_fib_local_table ++#define ip_fib_main_table __ip_fib_main_table ++#endif + + static inline struct fib_table *fib_get_table(u32 id) + { +@@ -200,6 +213,10 @@ + extern struct fib_table *fib_get_table(u32 id); + extern void fib_select_default(const struct flowi *flp, struct fib_result *res); + ++extern int fib_rules_create(void); ++extern void fib_rules_destroy(void); ++extern int fib4_rules_dump(struct sk_buff *skb, struct netlink_callback *cb); ++ + #endif /* CONFIG_IP_MULTIPLE_TABLES */ + + /* Exported by fib_frontend.c */ +@@ -220,6 +237,15 @@ + /* Exported by fib_hash.c */ + extern struct fib_table *fib_hash_init(u32 id); + ++#if defined(CONFIG_VE) && defined(CONFIG_INET) ++struct ve_struct; ++extern int init_ve_route(struct ve_struct *ve); ++extern void fini_ve_route(struct ve_struct *ve); ++#else ++#define init_ve_route(ve) 0 ++#define fini_ve_route(ve) do { } while (0) ++#endif ++ + static inline void fib_combine_itag(u32 *itag, struct fib_result *res) + { + #ifdef CONFIG_NET_CLS_ROUTE +Index: kernel/include/net/ipv6.h +=================================================================== +--- kernel.orig/include/net/ipv6.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/ipv6.h 2008-11-24 15:47:46.000000000 +0100 +@@ -117,7 +117,7 @@ + struct inet6_dev *_idev = (idev); \ + if (likely(_idev != NULL)) \ + SNMP_INC_STATS##modifier((_idev)->stats.statname, (field)); \ +- SNMP_INC_STATS##modifier(statname##_statistics, (field)); \ ++ SNMP_INC_STATS##modifier(ve_##statname##_statistics, (field)); \ + }) + + #define _DEVADD(statname, modifier, idev, field, val) \ +@@ -125,9 +125,22 @@ + struct inet6_dev *_idev = (idev); \ + if (likely(_idev != NULL)) \ + SNMP_ADD_STATS##modifier((_idev)->stats.statname, (field), (val)); \ +- SNMP_ADD_STATS##modifier(statname##_statistics, (field), (val));\ ++ SNMP_ADD_STATS##modifier(ve_##statname##_statistics, (field), (val));\ + }) + ++#ifdef CONFIG_VE ++#define ve_ipv6_statistics (get_exec_env()->_ipv6_statistics) ++#define ve_icmpv6_statistics (get_exec_env()->_icmpv6_statistics) ++#define ve_icmpv6msg_statistics (get_exec_env()->_icmpv6msg_statistics) ++#define ve_udp_stats_in6 (get_exec_env()->_udp_stats_in6) ++#define ve_udplite_stats_in6 (get_exec_env()->_udplite_stats_in6) ++#else ++#define ve_ipv6_statistics ipv6_statistics ++#define ve_icmpv6_statistics icmpv6_statistics ++#define ve_icmpv6msg_statistics icmpv6msg_statistics ++#define ve_udplite_stats_in6 udplite_stats_in6 ++#endif ++ + /* MIBs */ + DECLARE_SNMP_STAT(struct ipstats_mib, ipv6_statistics); + +@@ -167,11 +180,29 @@ + DECLARE_SNMP_STAT(struct udp_mib, udp_stats_in6); + DECLARE_SNMP_STAT(struct udp_mib, udplite_stats_in6); + #define UDP6_INC_STATS_BH(field, is_udplite) do { \ +- if (is_udplite) SNMP_INC_STATS_BH(udplite_stats_in6, field); \ +- else SNMP_INC_STATS_BH(udp_stats_in6, field); } while(0) ++ if (is_udplite) SNMP_INC_STATS_BH(ve_udplite_stats_in6, field); \ ++ else SNMP_INC_STATS_BH(ve_udp_stats_in6, field); } while(0) + #define UDP6_INC_STATS_USER(field, is_udplite) do { \ +- if (is_udplite) SNMP_INC_STATS_USER(udplite_stats_in6, field); \ +- else SNMP_INC_STATS_USER(udp_stats_in6, field); } while(0) ++ if (is_udplite) SNMP_INC_STATS_USER(ve_udplite_stats_in6, field); \ ++ else SNMP_INC_STATS_USER(ve_udp_stats_in6, field); } while(0) ++ ++int snmp6_register_dev(struct inet6_dev *idev); ++int snmp6_unregister_dev(struct inet6_dev *idev); ++int snmp6_mib_init(void *ptr[2], size_t mibsize, size_t mibalign); ++void snmp6_mib_free(void *ptr[2]); ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++int ve_snmp_proc_init(struct ve_struct *ve); ++void ve_snmp_proc_fini(struct ve_struct *ve); ++#else ++static inline int ve_snmp_proc_init(struct ve_struct *ve) ++{ ++ return 0; ++} ++static inline void ve_snmp_proc_fini(struct ve_struct *ve) ++{ ++} ++#endif + + struct ip6_ra_chain + { +Index: kernel/include/net/ndisc.h +=================================================================== +--- kernel.orig/include/net/ndisc.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/ndisc.h 2008-11-24 15:47:46.000000000 +0100 +@@ -52,7 +52,12 @@ + struct net_proto_family; + struct sk_buff; + +-extern struct neigh_table nd_tbl; ++#ifdef CONFIG_VE ++#define nd_tbl (*(get_exec_env()->ve_nd_tbl)) ++#else ++#define nd_tbl global_nd_tbl ++extern struct neigh_table global_nd_tbl; ++#endif + + struct nd_msg { + struct icmp6hdr icmph; +@@ -130,6 +135,7 @@ + extern void inet6_ifinfo_notify(int event, + struct inet6_dev *idev); + ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) + static inline struct neighbour * ndisc_get_neigh(struct net_device *dev, struct in6_addr *addr) + { + +@@ -138,6 +144,7 @@ + + return NULL; + } ++#endif + + + #endif /* __KERNEL__ */ +Index: kernel/include/net/neighbour.h +=================================================================== +--- kernel.orig/include/net/neighbour.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/neighbour.h 2008-11-24 15:47:46.000000000 +0100 +@@ -161,6 +161,8 @@ + atomic_t entries; + rwlock_t lock; + unsigned long last_rand; ++ struct ve_struct *owner_env; ++ struct user_beancounter *owner_ub; + struct kmem_cache *kmem_cachep; + struct neigh_statistics *stats; + struct neighbour **hash_buckets; +@@ -180,8 +182,8 @@ + #define NEIGH_UPDATE_F_ISROUTER 0x40000000 + #define NEIGH_UPDATE_F_ADMIN 0x80000000 + +-extern void neigh_table_init(struct neigh_table *tbl); +-extern void neigh_table_init_no_netlink(struct neigh_table *tbl); ++extern int neigh_table_init(struct neigh_table *tbl); ++extern int neigh_table_init_no_netlink(struct neigh_table *tbl); + extern int neigh_table_clear(struct neigh_table *tbl); + extern struct neighbour * neigh_lookup(struct neigh_table *tbl, + const void *pkey, +Index: kernel/include/net/net_namespace.h +=================================================================== +--- kernel.orig/include/net/net_namespace.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/net_namespace.h 2008-11-24 15:47:46.000000000 +0100 +@@ -29,6 +29,13 @@ + struct list_head dev_base_head; + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; ++ ++ int ifindex; ++ ++#ifdef CONFIG_VE ++ struct completion *sysfs_completion; ++ struct ve_struct *owner_ve; ++#endif + }; + + #ifdef CONFIG_NET +Index: kernel/include/net/netfilter/ipv4/nf_conntrack_ipv4.h +=================================================================== +--- kernel.orig/include/net/netfilter/ipv4/nf_conntrack_ipv4.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/ipv4/nf_conntrack_ipv4.h 2008-11-24 15:47:46.000000000 +0100 +@@ -18,8 +18,18 @@ + extern struct nf_conntrack_l4proto nf_conntrack_l4proto_udp4; + extern struct nf_conntrack_l4proto nf_conntrack_l4proto_icmp; + ++#if defined(CONFIG_PROC_FS) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) + extern int nf_conntrack_ipv4_compat_init(void); + extern void nf_conntrack_ipv4_compat_fini(void); ++#else ++static inline int nf_conntrack_ipv4_compat_init(void) ++{ ++ return 0; ++} ++static inline void nf_conntrack_ipv4_compat_fini(void) ++{ ++} ++#endif + + extern void need_ipv4_conntrack(void); + +Index: kernel/include/net/netfilter/nf_conntrack.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_conntrack.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_conntrack.h 2008-11-24 15:47:46.000000000 +0100 +@@ -27,6 +27,10 @@ + + #include + ++#ifdef CONFIG_VE_IPTABLES ++#include ++#endif ++ + /* per conntrack: protocol private data */ + union nf_conntrack_proto { + /* insert conntrack proto private data here */ +@@ -92,6 +96,10 @@ + #include + #include + ++#ifdef CONFIG_VE_IPTABLES ++#include ++#endif ++ + struct nf_conn + { + /* Usage count in here is 1 for hash table/destruct timer, 1 per skb, +@@ -129,6 +137,10 @@ + + /* Extensions */ + struct nf_ct_ext *ext; ++ ++#ifdef CONFIG_VE_IPTABLES ++ struct ve_struct *ct_owner_env; ++#endif + }; + + static inline struct nf_conn * +@@ -183,6 +195,11 @@ + + extern void nf_conntrack_flush(void); + ++struct nf_conntrack_helper * nf_ct_helper_find_get( const struct nf_conntrack_tuple *tuple); ++void nf_ct_helper_put(struct nf_conntrack_helper *helper); ++ ++struct nf_conntrack_helper * __nf_conntrack_helper_find_byname(const char *name); ++ + extern int nf_ct_get_tuplepr(const struct sk_buff *skb, + unsigned int nhoff, + u_int16_t l3num, +@@ -231,7 +248,8 @@ + extern void nf_conntrack_free(struct nf_conn *ct); + extern struct nf_conn * + nf_conntrack_alloc(const struct nf_conntrack_tuple *orig, +- const struct nf_conntrack_tuple *repl); ++ const struct nf_conntrack_tuple *repl, ++ struct user_beancounter *); + + /* It's confirmed if it is, or has been in the hash table. */ + static inline int nf_ct_is_confirmed(struct nf_conn *ct) +@@ -254,6 +272,8 @@ + extern int nf_conntrack_checksum; + extern atomic_t nf_conntrack_count; + extern int nf_conntrack_max; ++extern int nf_conntrack_disable_ve0; ++extern int ip_conntrack_disable_ve0; + + DECLARE_PER_CPU(struct ip_conntrack_stat, nf_conntrack_stat); + #define NF_CT_STAT_INC(count) (__get_cpu_var(nf_conntrack_stat).count++) +Index: kernel/include/net/netfilter/nf_conntrack_core.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_conntrack_core.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_conntrack_core.h 2008-11-24 15:47:46.000000000 +0100 +@@ -62,6 +62,47 @@ + + extern int __nf_conntrack_confirm(struct sk_buff *skb); + ++#if defined(CONFIG_VE_IPTABLES) ++#include ++#define ve_nf_conntrack_hash (get_exec_env()->_nf_conntrack->_nf_conntrack_hash) ++#define ve_nf_conntrack_vmalloc (get_exec_env()->_nf_conntrack->_nf_conntrack_vmalloc) ++#define ve_unconfirmed (get_exec_env()->_nf_conntrack->_unconfirmed) ++#else ++#define ve_nf_conntrack_hash nf_conntrack_hash ++#define ve_nf_conntrack_vmalloc nf_conntrack_vmalloc ++#define ve_unconfirmed unconfirmed ++#endif /* CONFIG_VE_IPTABLES */ ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++#define ve_nf_ct_sysctl_header \ ++ (get_exec_env()->_nf_conntrack->_nf_ct_sysctl_header) ++#define ve_nf_ct_sysctl_table \ ++ (get_exec_env()->_nf_conntrack->_nf_ct_sysctl_table) ++#define ve_nf_ct_netfilter_table \ ++ (get_exec_env()->_nf_conntrack->_nf_ct_netfilter_table) ++#define ve_nf_ct_net_table \ ++ (get_exec_env()->_nf_conntrack->_nf_ct_net_table) ++extern void nf_ct_proto_generic_sysctl_cleanup(void); ++extern int nf_ct_proto_generic_sysctl_init(void); ++#else ++#define ve_nf_ct_sysctl_header nf_ct_sysctl_header ++#define ve_nf_ct_sysctl_table nf_ct_sysctl_table ++#define ve_nf_ct_netfilter_table nf_ct_netfilter_table ++#define ve_nf_ct_net_table nf_ct_net_table ++static inline int nf_ct_proto_generic_sysctl_init(void) ++{ ++ return 0; ++} ++static inline void nf_ct_proto_generic_sysctl_cleanup(void) ++{ ++} ++#endif /* CONFIG_VE_IPTABLES */ ++ ++#if defined(CONFIG_VE_IPTABLES) ++extern int nf_conntrack_init_ve(void); ++extern void nf_conntrack_cleanup_ve(void); ++#endif /* CONFIG_VE_IPTABLES */ ++ + /* Confirm a connection: returns NF_DROP if packet must be dropped. */ + static inline int nf_conntrack_confirm(struct sk_buff *skb) + { +Index: kernel/include/net/netfilter/nf_conntrack_ecache.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_conntrack_ecache.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_conntrack_ecache.h 2008-11-24 15:47:46.000000000 +0100 +@@ -34,6 +34,9 @@ + struct nf_conn *ct = (struct nf_conn *)skb->nfct; + struct nf_conntrack_ecache *ecache; + ++ if (!ve_is_super(get_exec_env())) ++ return; ++ + local_bh_disable(); + ecache = &__get_cpu_var(nf_conntrack_ecache); + if (ct != ecache->ct) +@@ -45,7 +48,7 @@ + static inline void nf_conntrack_event(enum ip_conntrack_events event, + struct nf_conn *ct) + { +- if (nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct)) ++ if (nf_ct_is_confirmed(ct) && !nf_ct_is_dying(ct) && ve_is_super(get_exec_env())) + atomic_notifier_call_chain(&nf_conntrack_chain, event, ct); + } + +@@ -57,7 +60,8 @@ + nf_ct_expect_event(enum ip_conntrack_expect_events event, + struct nf_conntrack_expect *exp) + { +- atomic_notifier_call_chain(&nf_ct_expect_chain, event, exp); ++ if (ve_is_super(get_exec_env())) ++ atomic_notifier_call_chain(&nf_ct_expect_chain, event, exp); + } + + #else /* CONFIG_NF_CONNTRACK_EVENTS */ +Index: kernel/include/net/netfilter/nf_conntrack_expect.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_conntrack_expect.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_conntrack_expect.h 2008-11-24 15:47:46.000000000 +0100 +@@ -9,6 +9,14 @@ + extern struct hlist_head *nf_ct_expect_hash; + extern unsigned int nf_ct_expect_hsize; + extern unsigned int nf_ct_expect_max; ++#ifdef CONFIG_VE_IPTABLES ++#include ++#define ve_nf_ct_expect_hash (get_exec_env()->_nf_conntrack->_nf_ct_expect_hash) ++#define ve_nf_ct_expect_max (get_exec_env()->_nf_conntrack->_nf_ct_expect_max) ++#else ++#define ve_nf_ct_expect_hash nf_ct_expect_hash ++#define ve_nf_ct_expect_max nf_ct_expect_max ++#endif + + struct nf_conntrack_expect + { +Index: kernel/include/net/netfilter/nf_conntrack_l3proto.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_conntrack_l3proto.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_conntrack_l3proto.h 2008-11-24 15:47:46.000000000 +0100 +@@ -56,6 +56,9 @@ + */ + int (*new)(struct nf_conn *conntrack, const struct sk_buff *skb); + ++ /* Called when a conntrack entry is destroyed */ ++ void (*destroy)(struct nf_conn *conntrack); ++ + /* + * Called before tracking. + * *dataoff: offset of protocol header (TCP, UDP,...) in skb +@@ -81,6 +84,39 @@ + struct module *me; + }; + ++/* virtualization of l3 protocol's sysctl tables: */ ++#if defined(CONFIG_VE_IPTABLES) ++#include ++#define ve_nf_ct3 (get_exec_env()->_nf_conntrack) ++#endif ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++#define ve_nf_ct_l3protos ve_nf_ct3->_nf_ct_l3protos ++#define ve_nf_conntrack_l3proto_ipv4 (ve_nf_ct3->_nf_conntrack_l3proto_ipv4) ++#define ve_nf_conntrack_l3proto_ipv6 (ve_nf_ct3->_nf_conntrack_l3proto_ipv6) ++#define ve_nf_conntrack_max (ve_nf_ct3->_nf_conntrack_max) ++#define ve_nf_conntrack_count (ve_nf_ct3->_nf_conntrack_count) ++#define ve_nf_conntrack_checksum (ve_nf_ct3->_nf_conntrack_checksum) ++#define ve_nf_ct_frag6_timeout (ve_nf_ct3->_nf_frags6_ctl.timeout) ++#define ve_nf_ct_frag6_low_thresh (ve_nf_ct3->_nf_frags6_ctl.low_thresh) ++#define ve_nf_ct_frag6_high_thresh (ve_nf_ct3->_nf_frags6_ctl.high_thresh) ++#else /* !CONFIG_VE_IPTABLES || !CONFIG_SYSCTL: */ ++#define ve_nf_ct_l3protos nf_ct_l3protos ++#define ve_nf_conntrack_l3proto_ipv4 &nf_conntrack_l3proto_ipv4 ++#define ve_nf_conntrack_l3proto_ipv6 &nf_conntrack_l3proto_ipv6 ++#define ve_nf_conntrack_max nf_conntrack_max ++#define ve_nf_conntrack_count nf_conntrack_count ++#define ve_nf_conntrack_checksum nf_conntrack_checksum ++#define ve_nf_ct_frag6_timeout nf_ct_frag6_timeout ++#define ve_nf_ct_frag6_low_thresh nf_ct_frag6_low_thresh ++#define ve_nf_ct_frag6_high_thresh nf_ct_frag6_high_thresh ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ ++ ++extern int init_nf_ct_l3proto_ipv4(void); ++extern void fini_nf_ct_l3proto_ipv4(void); ++extern int init_nf_ct_l3proto_ipv6(void); ++extern void fini_nf_ct_l3proto_ipv6(void); ++ + extern struct nf_conntrack_l3proto *nf_ct_l3protos[AF_MAX]; + + /* Protocol registration. */ +@@ -97,7 +133,11 @@ + { + if (unlikely(l3proto >= AF_MAX)) + return &nf_conntrack_l3proto_generic; +- return rcu_dereference(nf_ct_l3protos[l3proto]); ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_nf_conntrack) ++ return &nf_conntrack_l3proto_generic; ++#endif ++ return rcu_dereference(ve_nf_ct_l3protos[l3proto]); + } + + #endif /*_NF_CONNTRACK_L3PROTO_H*/ +Index: kernel/include/net/netfilter/nf_conntrack_l4proto.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_conntrack_l4proto.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_conntrack_l4proto.h 2008-11-24 15:47:46.000000000 +0100 +@@ -99,6 +99,7 @@ + extern struct nf_conntrack_l4proto nf_conntrack_l4proto_generic; + + #define MAX_NF_CT_PROTO 256 ++extern struct nf_conntrack_l4proto **nf_ct_protos[PF_MAX]; + + extern struct nf_conntrack_l4proto * + __nf_ct_l4proto_find(u_int16_t l3proto, u_int8_t l4proto); +@@ -119,16 +120,142 @@ + struct nf_conntrack_tuple *t); + extern const struct nla_policy nf_ct_port_nla_policy[]; + ++#ifdef CONFIG_SYSCTL + /* Log invalid packets */ + extern unsigned int nf_ct_log_invalid; ++#endif ++ ++#ifdef CONFIG_VE_IPTABLES ++#include ++#define ve_nf_ct4 (get_exec_env()->_nf_conntrack) ++#endif ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++ ++#define ve_nf_ct_protos (ve_nf_ct4->_nf_ct_protos) ++#define ve_nf_conntrack_l4proto_icmp (ve_nf_ct4->_nf_conntrack_l4proto_icmp) ++#define ve_nf_conntrack_l4proto_icmpv6 \ ++ (ve_nf_ct4->_nf_conntrack_l4proto_icmpv6) ++#define ve_nf_conntrack_l4proto_tcp4 (ve_nf_ct4->_nf_conntrack_l4proto_tcp4) ++#define ve_nf_conntrack_l4proto_tcp6 (ve_nf_ct4->_nf_conntrack_l4proto_tcp6) ++#define ve_nf_conntrack_l4proto_udp4 (ve_nf_ct4->_nf_conntrack_l4proto_udp4) ++#define ve_nf_conntrack_l4proto_udp6 (ve_nf_ct4->_nf_conntrack_l4proto_udp6) ++#define ve_nf_conntrack_l4proto_generic \ ++ (ve_nf_ct4->_nf_conntrack_l4proto_generic) ++#define ve_nf_ct_log_invalid (ve_nf_ct4->_nf_ct_log_invalid) ++/* TCP: */ ++#define ve_nf_ct_tcp_timeouts (ve_nf_ct4->_nf_ct_tcp_timeouts) ++#define ve_nf_ct_tcp_timeout_max_retrans \ ++ (ve_nf_ct4->_nf_ct_tcp_timeout_max_retrans) ++#define ve_nf_ct_tcp_max_retrans (ve_nf_ct4->_nf_ct_tcp_max_retrans) ++#define ve_nf_ct_tcp_loose (ve_nf_ct4->_nf_ct_tcp_loose) ++#define ve_nf_ct_tcp_be_liberal (ve_nf_ct4->_nf_ct_tcp_be_liberal) ++#define ve_tcp_sysctl_table_users (ve_nf_ct4->_tcp_sysctl_table_users) ++#define ve_tcp_sysctl_header (ve_nf_ct4->_tcp_sysctl_header) ++#define ve_tcp_compat_sysctl_header (ve_nf_ct4->_tcp_compat_sysctl_header) ++/* UDP: */ ++#define ve_nf_ct_udp_timeout (ve_nf_ct4->_nf_ct_udp_timeout) ++#define ve_nf_ct_udp_timeout_stream (ve_nf_ct4->_nf_ct_udp_timeout_stream) ++#define ve_udp_sysctl_table_users (ve_nf_ct4->_udp_sysctl_table_users) ++#define ve_udp_sysctl_header (ve_nf_ct4->_udp_sysctl_header) ++#define ve_udp_compat_sysctl_header (ve_nf_ct4->_udp_compat_sysctl_header) ++/* ICMP: */ ++#define ve_nf_ct_icmp_timeout (ve_nf_ct4->_nf_ct_icmp_timeout) ++#define ve_icmp_sysctl_header (ve_nf_ct4->_icmp_sysctl_header) ++#define ve_icmp_compat_sysctl_header (ve_nf_ct4->_icmp_compat_sysctl_header) ++/* ICMPV6: */ ++#define ve_nf_ct_icmpv6_timeout (ve_nf_ct4->_nf_ct_icmpv6_timeout) ++#define ve_icmpv6_sysctl_header (ve_nf_ct4->_icmpv6_sysctl_header) ++/* GENERIC: */ ++#define ve_nf_ct_generic_timeout (ve_nf_ct4->_nf_ct_generic_timeout) ++#define ve_generic_sysctl_header (ve_nf_ct4->_generic_sysctl_header) ++#define ve_generic_compat_sysctl_header (ve_nf_ct4->_generic_compat_sysctl_header) ++ ++extern void nf_ct_proto_icmp_sysctl_cleanup(void); ++extern int nf_ct_proto_icmp_sysctl_init(void); ++extern void nf_ct_proto_icmpv6_sysctl_cleanup(void); ++extern int nf_ct_proto_icmpv6_sysctl_init(void); ++extern void nf_ct_proto_tcp_sysctl_cleanup(void); ++extern int nf_ct_proto_tcp_sysctl_init(void); ++extern void nf_ct_proto_udp_sysctl_cleanup(void); ++extern int nf_ct_proto_udp_sysctl_init(void); ++ ++#else /* !CONFIG_VE_IPTABLES || !CONFIG_SYSCTL: */ ++ ++#define ve_nf_ct_protos nf_ct_protos ++#define ve_nf_conntrack_l4proto_icmp &nf_conntrack_l4proto_icmp ++#define ve_nf_conntrack_l4proto_icmpv6 &nf_conntrack_l4proto_icmpv6 ++#define ve_nf_conntrack_l4proto_tcp4 &nf_conntrack_l4proto_tcp4 ++#define ve_nf_conntrack_l4proto_tcp6 &nf_conntrack_l4proto_tcp6 ++#define ve_nf_conntrack_l4proto_udp4 &nf_conntrack_l4proto_udp4 ++#define ve_nf_conntrack_l4proto_udp6 &nf_conntrack_l4proto_udp6 ++#define ve_nf_conntrack_l4proto_generic &nf_conntrack_l4proto_generic ++ ++#if defined(CONFIG_SYSCTL) ++ ++#define ve_nf_ct_log_invalid nf_ct_log_invalid ++/* TCP: */ ++#define ve_nf_ct_tcp_timeouts *tcp_timeouts ++#define ve_nf_ct_tcp_timeout_max_retrans \ ++ nf_ct_tcp_timeout_max_retrans ++#define ve_nf_ct_tcp_max_retrans nf_ct_tcp_max_retrans ++#define ve_nf_ct_tcp_loose nf_ct_tcp_loose ++#define ve_nf_ct_tcp_be_liberal nf_ct_tcp_be_liberal ++#define ve_tcp_sysctl_table_users tcp_sysctl_table_users ++#define ve_tcp_sysctl_header tcp_sysctl_header ++/* UDP:*/ ++#define ve_nf_ct_udp_timeout nf_ct_udp_timeout ++#define ve_nf_ct_udp_timeout_stream nf_ct_udp_timeout_stream ++#define ve_udp_sysctl_table_users udp_sysctl_table_users ++#define ve_udp_sysctl_header udp_sysctl_header ++/* ICMP: */ ++#define ve_nf_ct_icmp_timeout nf_ct_icmp_timeout ++#define ve_icmp_sysctl_header icmp_sysctl_header ++/* ICMPV6: */ ++#define ve_nf_ct_icmpv6_timeout nf_ct_icmpv6_timeout ++#define ve_icmpv6_sysctl_header icmpv6_sysctl_header ++/* GENERIC: */ ++#define ve_nf_ct_generic_timeout nf_ct_generic_timeout ++#define ve_generic_sysctl_header generic_sysctl_header ++#endif /* CONFIG_SYSCTL */ ++ ++static inline int nf_ct_proto_icmp_sysctl_init(void) ++{ ++ return 0; ++} ++static inline void nf_ct_proto_icmp_sysctl_cleanup(void) ++{ ++} ++static inline int nf_ct_proto_tcp_sysctl_init(void) ++{ ++ return 0; ++} ++static inline void nf_ct_proto_tcp_sysctl_cleanup(void) ++{ ++} ++static inline int nf_ct_proto_udp_sysctl_init(void) ++{ ++ return 0; ++} ++static inline void nf_ct_proto_udp_sysctl_cleanup(void) ++{ ++} ++static inline int nf_ct_proto_icmpv6_sysctl_init(void) ++{ ++ return 0; ++} ++static inline void nf_ct_proto_icmpv6_sysctl_cleanup(void) ++{ ++} ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ + + #ifdef CONFIG_SYSCTL + #ifdef DEBUG_INVALID_PACKETS + #define LOG_INVALID(proto) \ +- (nf_ct_log_invalid == (proto) || nf_ct_log_invalid == IPPROTO_RAW) ++ (ve_nf_ct_log_invalid == (proto) || ve_nf_ct_log_invalid == IPPROTO_RAW) + #else + #define LOG_INVALID(proto) \ +- ((nf_ct_log_invalid == (proto) || nf_ct_log_invalid == IPPROTO_RAW) \ ++ ((ve_nf_ct_log_invalid == (proto) || ve_nf_ct_log_invalid == IPPROTO_RAW) \ + && net_ratelimit()) + #endif + #else +Index: kernel/include/net/netfilter/nf_nat.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_nat.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_nat.h 2008-11-24 15:47:46.000000000 +0100 +@@ -84,6 +84,7 @@ + /* Is this tuple already taken? (not by us)*/ + extern int nf_nat_used_tuple(const struct nf_conntrack_tuple *tuple, + const struct nf_conn *ignored_conntrack); ++extern void ip_nat_hash_conntrack(struct nf_conn *ct); + + static inline struct nf_conn_nat *nfct_nat(const struct nf_conn *ct) + { +Index: kernel/include/net/netfilter/nf_nat_rule.h +=================================================================== +--- kernel.orig/include/net/netfilter/nf_nat_rule.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/netfilter/nf_nat_rule.h 2008-11-24 15:47:46.000000000 +0100 +@@ -4,7 +4,7 @@ + #include + #include + +-extern int nf_nat_rule_init(void) __init; ++extern int nf_nat_rule_init(void); + extern void nf_nat_rule_cleanup(void); + extern int nf_nat_rule_find(struct sk_buff *skb, + unsigned int hooknum, +Index: kernel/include/net/netlink_sock.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/net/netlink_sock.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,23 @@ ++#ifndef __NET_NETLINK_SOCK_H ++#define __NET_NETLINK_SOCK_H ++ ++struct netlink_sock { ++ /* struct sock has to be the first member of netlink_sock */ ++ struct sock sk; ++ u32 pid; ++ u32 dst_pid; ++ u32 dst_group; ++ u32 flags; ++ u32 subscriptions; ++ u32 ngroups; ++ unsigned long *groups; ++ unsigned long state; ++ wait_queue_head_t wait; ++ struct netlink_callback *cb; ++ struct mutex *cb_mutex; ++ struct mutex cb_def_mutex; ++ void (*netlink_rcv)(struct sk_buff *skb); ++ struct module *module; ++}; ++ ++#endif /* __NET_NETLINK_SOCK_H */ +Index: kernel/include/net/route.h +=================================================================== +--- kernel.orig/include/net/route.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/route.h 2008-11-24 15:47:46.000000000 +0100 +@@ -135,6 +135,7 @@ + #define IPTOS_RT_MASK (IPTOS_TOS_MASK & ~3) + + extern const __u8 ip_tos2prio[16]; ++extern int ip_rt_src_check; + + static inline char rt_tos2priority(u8 tos) + { +@@ -201,4 +202,14 @@ + + extern ctl_table ipv4_route_table[]; + ++#ifdef CONFIG_SYSCTL ++extern int ipv4_flush_delay; ++extern int ipv4_sysctl_rtcache_flush(ctl_table *ctl, int write, ++ struct file *filp, void __user *buffer, size_t *lenp, ++ loff_t *ppos); ++extern int ipv4_sysctl_rtcache_flush_strategy(ctl_table *table, ++ int __user *name, int nlen, void __user *oldval, ++ size_t __user *oldlenp, void __user *newval, ++ size_t newlen); ++#endif + #endif /* _ROUTE_H */ +Index: kernel/include/net/sock.h +=================================================================== +--- kernel.orig/include/net/sock.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/sock.h 2008-11-24 15:47:46.000000000 +0100 +@@ -58,6 +58,8 @@ + #include + #include + ++#include ++ + /* + * This structure really needs to be cleaned up. + * Most of it is for TCP, and not used by any of +@@ -263,6 +265,8 @@ + int (*sk_backlog_rcv)(struct sock *sk, + struct sk_buff *skb); + void (*sk_destruct)(struct sock *sk); ++ struct sock_beancounter sk_bc; ++ struct ve_struct *owner_env; + }; + + /* +@@ -498,6 +502,8 @@ + }) + + extern int sk_stream_wait_connect(struct sock *sk, long *timeo_p); ++extern int __sk_stream_wait_memory(struct sock *sk, long *timeo_p, ++ unsigned long amount); + extern int sk_stream_wait_memory(struct sock *sk, long *timeo_p); + extern void sk_stream_wait_close(struct sock *sk, long timeo_p); + extern int sk_stream_error(struct sock *sk, int flags, int err); +@@ -768,8 +774,11 @@ + + static inline int sk_stream_rmem_schedule(struct sock *sk, struct sk_buff *skb) + { +- return (int)skb->truesize <= sk->sk_forward_alloc || +- sk_stream_mem_schedule(sk, skb->truesize, 1); ++ if ((int)skb->truesize > sk->sk_forward_alloc && ++ !sk_stream_mem_schedule(sk, skb->truesize, 1)) ++ /* The situation is bad according to mainstream. Den */ ++ return 0; ++ return ub_tcprcvbuf_charge(sk, skb) == 0; + } + + static inline int sk_stream_wmem_schedule(struct sock *sk, int size) +@@ -855,6 +864,11 @@ + unsigned long size, + int noblock, + int *errcode); ++extern struct sk_buff *sock_alloc_send_skb2(struct sock *sk, ++ unsigned long size, ++ unsigned long size2, ++ int noblock, ++ int *errcode); + extern void *sock_kmalloc(struct sock *sk, int size, + gfp_t priority); + extern void sock_kfree_s(struct sock *sk, void *mem, int size); +@@ -1153,6 +1167,7 @@ + + static inline void skb_set_owner_w(struct sk_buff *skb, struct sock *sk) + { ++ WARN_ON(skb->destructor); + sock_hold(sk); + skb->sk = sk; + skb->destructor = sock_wfree; +@@ -1161,6 +1176,7 @@ + + static inline void skb_set_owner_r(struct sk_buff *skb, struct sock *sk) + { ++ WARN_ON(skb->destructor); + skb->sk = sk; + skb->destructor = sock_rfree; + atomic_add(skb->truesize, &sk->sk_rmem_alloc); +Index: kernel/include/net/tcp.h +=================================================================== +--- kernel.orig/include/net/tcp.h 2008-11-24 14:18:13.000000000 +0100 ++++ kernel/include/net/tcp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -42,6 +42,13 @@ + #include + + #include ++#include ++ ++#define TCP_PAGE(sk) (sk->sk_sndmsg_page) ++#define TCP_OFF(sk) (sk->sk_sndmsg_off) ++ ++#define TW_WSCALE_MASK 0x0f ++#define TW_WSCALE_SPEC 0x10 + + extern struct inet_hashinfo tcp_hashinfo; + +@@ -218,7 +225,9 @@ + extern int sysctl_tcp_wmem[3]; + extern int sysctl_tcp_rmem[3]; + extern int sysctl_tcp_app_win; ++#ifndef sysctl_tcp_adv_win_scale + extern int sysctl_tcp_adv_win_scale; ++#endif + extern int sysctl_tcp_tw_reuse; + extern int sysctl_tcp_frto; + extern int sysctl_tcp_frto_response; +@@ -233,6 +242,10 @@ + extern int sysctl_tcp_workaround_signed_windows; + extern int sysctl_tcp_slow_start_after_idle; + extern int sysctl_tcp_max_ssthresh; ++extern int sysctl_tcp_use_sg; ++extern int sysctl_tcp_max_tw_kmem_fraction; ++extern int sysctl_tcp_max_tw_buckets_ub; ++ + + extern atomic_t tcp_memory_allocated; + extern atomic_t tcp_sockets_allocated; +@@ -265,12 +278,17 @@ + extern struct proto tcp_prot; + + DECLARE_SNMP_STAT(struct tcp_mib, tcp_statistics); +-#define TCP_INC_STATS(field) SNMP_INC_STATS(tcp_statistics, field) +-#define TCP_INC_STATS_BH(field) SNMP_INC_STATS_BH(tcp_statistics, field) +-#define TCP_INC_STATS_USER(field) SNMP_INC_STATS_USER(tcp_statistics, field) +-#define TCP_DEC_STATS(field) SNMP_DEC_STATS(tcp_statistics, field) +-#define TCP_ADD_STATS_BH(field, val) SNMP_ADD_STATS_BH(tcp_statistics, field, val) +-#define TCP_ADD_STATS_USER(field, val) SNMP_ADD_STATS_USER(tcp_statistics, field, val) ++#if defined(CONFIG_VE) && defined(CONFIG_INET) ++#define ve_tcp_statistics (get_exec_env()->_tcp_statistics) ++#else ++#define ve_tcp_statistics tcp_statistics ++#endif ++#define TCP_INC_STATS(field) SNMP_INC_STATS(ve_tcp_statistics, field) ++#define TCP_INC_STATS_BH(field) SNMP_INC_STATS_BH(ve_tcp_statistics, field) ++#define TCP_INC_STATS_USER(field) SNMP_INC_STATS_USER(ve_tcp_statistics, field) ++#define TCP_DEC_STATS(field) SNMP_DEC_STATS(ve_tcp_statistics, field) ++#define TCP_ADD_STATS_BH(field, val) SNMP_ADD_STATS_BH(ve_tcp_statistics, field, val) ++#define TCP_ADD_STATS_USER(field, val) SNMP_ADD_STATS_USER(ve_tcp_statistics, field, val) + + extern void tcp_v4_err(struct sk_buff *skb, u32); + +@@ -533,7 +551,11 @@ + * to use only the low 32-bits of jiffies and hide the ugly + * casts with the following macro. + */ ++#ifdef CONFIG_VE ++#define tcp_time_stamp ((__u32)(jiffies + get_exec_env()->jiffies_fixup)) ++#else + #define tcp_time_stamp ((__u32)(jiffies)) ++#endif + + /* This is what the send packet queuing engine uses to pass + * TCP per-packet control information to the transmission +Index: kernel/include/net/udp.h +=================================================================== +--- kernel.orig/include/net/udp.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/include/net/udp.h 2008-11-24 15:47:46.000000000 +0100 +@@ -138,16 +138,29 @@ + char __user *optval, int optlen, + int (*push_pending_frames)(struct sock *)); + ++static inline int udp_hashfn(u16 num, unsigned veid) ++{ ++ return ((num + (veid ^ (veid >> 16))) & (UDP_HTABLE_SIZE - 1)); ++} ++ + DECLARE_SNMP_STAT(struct udp_mib, udp_statistics); + /* + * SNMP statistics for UDP and UDP-Lite + */ ++#ifdef CONFIG_VE ++#define ve_udp_statistics (get_exec_env()->_udp_statistics) ++#define ve_udplite_statistics (get_exec_env()->_udplite_statistics) ++#else ++#define ve_udp_statistics udp_statistics ++#define ve_udplite_statistics udplite_statistics ++#endif ++ + #define UDP_INC_STATS_USER(field, is_udplite) do { \ +- if (is_udplite) SNMP_INC_STATS_USER(udplite_statistics, field); \ +- else SNMP_INC_STATS_USER(udp_statistics, field); } while(0) ++ if (is_udplite) SNMP_INC_STATS_USER(ve_udplite_statistics, field); \ ++ else SNMP_INC_STATS_USER(ve_udp_statistics, field); } while(0) + #define UDP_INC_STATS_BH(field, is_udplite) do { \ +- if (is_udplite) SNMP_INC_STATS_BH(udplite_statistics, field); \ +- else SNMP_INC_STATS_BH(udp_statistics, field); } while(0) ++ if (is_udplite) SNMP_INC_STATS_BH(ve_udplite_statistics, field); \ ++ else SNMP_INC_STATS_BH(ve_udp_statistics, field); } while(0) + + /* /proc */ + struct udp_seq_afinfo { +Index: kernel/init/Kconfig +=================================================================== +--- kernel.orig/init/Kconfig 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/init/Kconfig 2008-11-24 15:47:46.000000000 +0100 +@@ -208,7 +208,7 @@ + + config TASK_IO_ACCOUNTING + bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" +- depends on TASK_XACCT ++ depends on TASK_XACCT && BEANCOUNTERS + help + Collect information on the number of bytes of storage I/O which this + task has caused. +@@ -347,6 +347,7 @@ + + config FAIR_USER_SCHED + bool "user id" ++ depends on !VE + help + This option will choose userid as the basis for grouping + tasks, thus providing equal CPU bandwidth to each user. +Index: kernel/init/calibrate.c +=================================================================== +--- kernel.orig/init/calibrate.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/init/calibrate.c 2008-11-24 15:47:46.000000000 +0100 +@@ -7,6 +7,7 @@ + #include + #include + #include ++#include + + #include + +@@ -105,6 +106,60 @@ + static unsigned long __devinit calibrate_delay_direct(void) {return 0;} + #endif + ++unsigned long cycles_per_jiffy, cycles_per_clock; ++ ++static __devinit void calibrate_cycles(void) ++{ ++ unsigned long ticks; ++ cycles_t time; ++ ++ ticks = jiffies; ++ while (ticks == jiffies) ++ /* nothing */; ++ time = get_cycles(); ++ ticks = jiffies; ++ while (ticks == jiffies) ++ /* nothing */; ++ ++ time = get_cycles() - time; ++ cycles_per_jiffy = time; ++ if ((time >> 32) != 0) { ++ printk("CPU too fast! timings are incorrect\n"); ++ cycles_per_jiffy = -1; ++ } ++} ++ ++EXPORT_SYMBOL(cycles_per_jiffy); ++EXPORT_SYMBOL(cycles_per_clock); ++ ++static __devinit void calc_cycles_per_jiffy(void) ++{ ++#if 0 ++ extern unsigned long fast_gettimeoffset_quotient; ++ unsigned long low, high; ++ ++ if (fast_gettimeoffset_quotient != 0) { ++ __asm__("divl %2" ++ :"=a" (low), "=d" (high) ++ :"r" (fast_gettimeoffset_quotient), ++ "0" (0), "1" (1000000/HZ)); ++ ++ cycles_per_jiffy = low; ++ } ++#endif ++ if (cycles_per_jiffy == 0) ++ calibrate_cycles(); ++ ++ if (cycles_per_jiffy == 0) { ++ printk(KERN_WARNING "Cycles are stuck! " ++ "Some statistics will not be available."); ++ /* to prevent division by zero in cycles_to_(clocks|jiffies) */ ++ cycles_per_jiffy = 1; ++ cycles_per_clock = 1; ++ } else ++ cycles_per_clock = cycles_per_jiffy * (HZ / CLOCKS_PER_SEC); ++} ++ + /* + * This is the number of bits of precision for the loops_per_jiffy. Each + * bit takes on average 1.5/HZ seconds. This (like the original) is a little +@@ -170,4 +225,5 @@ + loops_per_jiffy); + } + ++ calc_cycles_per_jiffy(); + } +Index: kernel/init/main.c +=================================================================== +--- kernel.orig/init/main.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/init/main.c 2008-11-24 15:47:46.000000000 +0100 +@@ -58,6 +58,8 @@ + #include + #include + ++#include ++ + #include + #include + #include +@@ -105,10 +107,25 @@ + #ifdef CONFIG_TC + extern void tc_init(void); + #endif ++extern void grsecurity_init(void); + + enum system_states system_state; + EXPORT_SYMBOL(system_state); + ++#ifdef CONFIG_VE ++extern void init_ve_system(void); ++extern void init_ve0(void); ++extern void prepare_ve0_process(struct task_struct *tsk); ++extern void prepare_ve0_proc_root(void); ++extern void prepare_ve0_sysctl(void); ++#else ++#define init_ve_system() do { } while (0) ++#define init_ve0() do { } while (0) ++#define prepare_ve0_process(tsk) do { } while (0) ++#define prepare_ve0_proc_root() do { } while (0) ++#define prepare_ve0_sysctl() do { } while (0) ++#endif ++ + /* + * Boot command-line arguments + */ +@@ -515,6 +532,9 @@ + + smp_setup_processor_id(); + ++ prepare_ve0_process(&init_task); ++ init_ve0(); ++ + /* + * Need to run as early as possible, to initialize the + * lockdep hash: +@@ -532,6 +552,7 @@ + * enable them + */ + lock_kernel(); ++ ub_init_early(); + tick_init(); + boot_cpu_init(); + page_address_init(); +@@ -627,6 +648,7 @@ + #endif + fork_init(num_physpages); + proc_caches_init(); ++ ub_init_late(); + buffer_init(); + unnamed_dev_init(); + key_init(); +@@ -637,6 +659,8 @@ + /* rootfs populating might need page-writeback */ + page_writeback_init(); + #ifdef CONFIG_PROC_FS ++ prepare_ve0_proc_root(); ++ prepare_ve0_sysctl(); + proc_root_init(); + #endif + cgroup_init(); +@@ -651,6 +675,10 @@ + #endif + acpi_early_init(); /* before LAPIC and SMP init */ + ++#ifdef CONFIG_BC_RSS_ACCOUNTING ++ ub_init_pbc(); ++#endif ++ + /* Do the rest non-__init'ed, we're now alive */ + rest_init(); + } +@@ -735,6 +763,8 @@ + */ + static void __init do_basic_setup(void) + { ++ init_ve_system(); ++ + /* drivers will send hotplug events */ + init_workqueues(); + usermodehelper_init(); +@@ -854,6 +884,8 @@ + prepare_namespace(); + } + ++ grsecurity_init(); ++ + /* + * Ok, we have completed the initial bootup, and + * we're essentially up and running. Get rid of the +Index: kernel/init/version.c +=================================================================== +--- kernel.orig/init/version.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/init/version.c 2008-11-24 15:47:46.000000000 +0100 +@@ -33,6 +33,12 @@ + }; + EXPORT_SYMBOL_GPL(init_uts_ns); + ++struct new_utsname virt_utsname = { ++ /* we need only this field */ ++ .release = UTS_RELEASE, ++}; ++EXPORT_SYMBOL(virt_utsname); ++ + /* FIXED STRINGS! Don't touch! */ + const char linux_banner[] = + "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@" +Index: kernel/ipc/ipc_sysctl.c +=================================================================== +--- kernel.orig/ipc/ipc_sysctl.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/ipc/ipc_sysctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -102,6 +102,7 @@ + .mode = 0644, + .proc_handler = proc_ipc_doulongvec_minmax, + .strategy = sysctl_ipc_data, ++ .virt_handler = 1, + }, + { + .ctl_name = KERN_SHMALL, +@@ -111,6 +112,7 @@ + .mode = 0644, + .proc_handler = proc_ipc_doulongvec_minmax, + .strategy = sysctl_ipc_data, ++ .virt_handler = 1, + }, + { + .ctl_name = KERN_SHMMNI, +@@ -120,6 +122,7 @@ + .mode = 0644, + .proc_handler = proc_ipc_dointvec, + .strategy = sysctl_ipc_data, ++ .virt_handler = 1, + }, + { + .ctl_name = KERN_MSGMAX, +@@ -129,6 +132,7 @@ + .mode = 0644, + .proc_handler = proc_ipc_dointvec, + .strategy = sysctl_ipc_data, ++ .virt_handler = 1, + }, + { + .ctl_name = KERN_MSGMNI, +@@ -138,6 +142,7 @@ + .mode = 0644, + .proc_handler = proc_ipc_dointvec, + .strategy = sysctl_ipc_data, ++ .virt_handler = 1, + }, + { + .ctl_name = KERN_MSGMNB, +@@ -147,6 +152,7 @@ + .mode = 0644, + .proc_handler = proc_ipc_dointvec, + .strategy = sysctl_ipc_data, ++ .virt_handler = 1, + }, + { + .ctl_name = KERN_SEM, +@@ -156,6 +162,7 @@ + .mode = 0644, + .proc_handler = proc_ipc_dointvec, + .strategy = sysctl_ipc_data, ++ .virt_handler = 1, + }, + {} + }; +@@ -172,7 +179,7 @@ + + static int __init ipc_sysctl_init(void) + { +- register_sysctl_table(ipc_root_table); ++ register_glob_sysctl_table(ipc_root_table); + return 0; + } + +Index: kernel/ipc/msg.c +=================================================================== +--- kernel.orig/ipc/msg.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/ipc/msg.c 2008-11-24 15:47:46.000000000 +0100 +@@ -184,6 +184,7 @@ + int id, retval; + key_t key = params->key; + int msgflg = params->flg; ++ int msqid = params->id; + + msq = ipc_rcu_alloc(sizeof(*msq)); + if (!msq) +@@ -202,7 +203,7 @@ + /* + * ipc_addid() locks msq + */ +- id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); ++ id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni, msqid); + if (id < 0) { + security_msg_queue_free(msq); + ipc_rcu_putref(msq); +@@ -324,6 +325,7 @@ + + msg_params.key = key; + msg_params.flg = msgflg; ++ msg_params.id = -1; + + return ipcget(ns, &msg_ids(ns), &msg_ops, &msg_params); + } +@@ -552,7 +554,7 @@ + + err = -EPERM; + if (current->euid != ipcp->cuid && +- current->euid != ipcp->uid && !capable(CAP_SYS_ADMIN)) ++ current->euid != ipcp->uid && !capable(CAP_VE_SYS_ADMIN)) + /* We _could_ check for CAP_CHOWN above, but we don't */ + goto out_unlock_up; + +@@ -968,3 +970,55 @@ + msq->q_ctime); + } + #endif ++ ++#ifdef CONFIG_VE ++#include ++ ++int sysvipc_setup_msg(key_t key, int msqid, int msgflg) ++{ ++ struct ipc_namespace *ns; ++ struct ipc_ops msg_ops; ++ struct ipc_params msg_params; ++ ++ ns = current->nsproxy->ipc_ns; ++ ++ msg_ops.getnew = newque; ++ msg_ops.associate = msg_security; ++ msg_ops.more_checks = NULL; ++ ++ msg_params.key = key; ++ msg_params.flg = msgflg | IPC_CREAT; ++ msg_params.id = msqid; ++ ++ return ipcget(ns, &msg_ids(ns), &msg_ops, &msg_params); ++} ++EXPORT_SYMBOL_GPL(sysvipc_setup_msg); ++ ++int sysvipc_walk_msg(int (*func)(int i, struct msg_queue*, void *), void *arg) ++{ ++ int err = 0; ++ struct msg_queue * msq; ++ struct ipc_namespace *ns; ++ int next_id; ++ int total, in_use; ++ ++ ns = current->nsproxy->ipc_ns; ++ ++ down_write(&msg_ids(ns).rw_mutex); ++ in_use = msg_ids(ns).in_use; ++ for (total = 0, next_id = 0; total < in_use; next_id++) { ++ msq = idr_find(&msg_ids(ns).ipcs_idr, next_id); ++ if (msq == NULL) ++ continue; ++ ipc_lock_by_ptr(&msq->q_perm); ++ err = func(msg_buildid(next_id, msq->q_perm.seq), msq, arg); ++ msg_unlock(msq); ++ if (err) ++ break; ++ total++; ++ } ++ up_write(&msg_ids(ns).rw_mutex); ++ return err; ++} ++EXPORT_SYMBOL_GPL(sysvipc_walk_msg); ++#endif +Index: kernel/ipc/msgutil.c +=================================================================== +--- kernel.orig/ipc/msgutil.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/ipc/msgutil.c 2008-11-24 15:47:46.000000000 +0100 +@@ -8,6 +8,7 @@ + * See the file COPYING for more details. + */ + ++#include + #include + #include + #include +@@ -17,6 +18,8 @@ + + #include "util.h" + ++#include ++ + struct msg_msgseg { + struct msg_msgseg* next; + /* the next part of the message follows immediately */ +@@ -25,52 +28,53 @@ + #define DATALEN_MSG (PAGE_SIZE-sizeof(struct msg_msg)) + #define DATALEN_SEG (PAGE_SIZE-sizeof(struct msg_msgseg)) + +-struct msg_msg *load_msg(const void __user *src, int len) ++struct msg_msg *sysv_msg_load(int (*load)(void * dst, int len, int offset, ++ void * data), int len, void * data) + { + struct msg_msg *msg; + struct msg_msgseg **pseg; + int err; + int alen; ++ int offset = 0; + + alen = len; + if (alen > DATALEN_MSG) + alen = DATALEN_MSG; + +- msg = kmalloc(sizeof(*msg) + alen, GFP_KERNEL); ++ msg = kmalloc(sizeof(*msg) + alen, GFP_KERNEL_UBC); + if (msg == NULL) + return ERR_PTR(-ENOMEM); + + msg->next = NULL; + msg->security = NULL; + +- if (copy_from_user(msg + 1, src, alen)) { ++ if (load(msg + 1, alen, offset, data)) { + err = -EFAULT; + goto out_err; + } + + len -= alen; +- src = ((char __user *)src) + alen; ++ offset += alen; + pseg = &msg->next; + while (len > 0) { + struct msg_msgseg *seg; + alen = len; + if (alen > DATALEN_SEG) + alen = DATALEN_SEG; +- seg = kmalloc(sizeof(*seg) + alen, +- GFP_KERNEL); ++ seg = kmalloc(sizeof(*seg) + alen, GFP_KERNEL_UBC); + if (seg == NULL) { + err = -ENOMEM; + goto out_err; + } + *pseg = seg; + seg->next = NULL; +- if (copy_from_user(seg + 1, src, alen)) { ++ if (load(seg + 1, alen, offset, data)) { + err = -EFAULT; + goto out_err; + } + pseg = &seg->next; + len -= alen; +- src = ((char __user *)src) + alen; ++ offset += alen; + } + + err = security_msg_msg_alloc(msg); +@@ -83,33 +87,58 @@ + free_msg(msg); + return ERR_PTR(err); + } ++EXPORT_SYMBOL_GPL(sysv_msg_load); + +-int store_msg(void __user *dest, struct msg_msg *msg, int len) ++static int do_load_msg(void * dst, int len, int offset, void * data) ++{ ++ return copy_from_user(dst, data + offset, len); ++} ++ ++struct msg_msg *load_msg(const void __user *src, int len) ++{ ++ return sysv_msg_load(do_load_msg, len, (void*)src); ++} ++ ++int sysv_msg_store(struct msg_msg *msg, ++ int (*store)(void * src, int len, int offset, void * data), ++ int len, void * data) + { + int alen; ++ int offset = 0; + struct msg_msgseg *seg; +- ++ + alen = len; + if (alen > DATALEN_MSG) + alen = DATALEN_MSG; +- if (copy_to_user(dest, msg + 1, alen)) ++ if (store(msg + 1, alen, offset, data)) + return -1; + + len -= alen; +- dest = ((char __user *)dest) + alen; ++ offset += alen; + seg = msg->next; + while (len > 0) { + alen = len; + if (alen > DATALEN_SEG) + alen = DATALEN_SEG; +- if (copy_to_user(dest, seg + 1, alen)) ++ if (store(seg + 1, alen, offset, data)) + return -1; + len -= alen; +- dest = ((char __user *)dest) + alen; ++ offset += alen; + seg = seg->next; + } + return 0; + } ++EXPORT_SYMBOL_GPL(sysv_msg_store); ++ ++static int do_store_msg(void * src, int len, int offset, void * data) ++{ ++ return copy_to_user(data + offset, src, len); ++} ++ ++int store_msg(void __user *dest, struct msg_msg *msg, int len) ++{ ++ return sysv_msg_store(msg, do_store_msg, len, dest); ++} + + void free_msg(struct msg_msg *msg) + { +Index: kernel/ipc/sem.c +=================================================================== +--- kernel.orig/ipc/sem.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/ipc/sem.c 2008-11-24 15:47:46.000000000 +0100 +@@ -86,6 +86,8 @@ + #include + #include "util.h" + ++#include ++ + #define sem_ids(ns) (*((ns)->ids[IPC_SEM_IDS])) + + #define sem_unlock(sma) ipc_unlock(&(sma)->sem_perm) +@@ -259,6 +261,7 @@ + key_t key = params->key; + int nsems = params->u.nsems; + int semflg = params->flg; ++ int semid = params->id; + + if (!nsems) + return -EINVAL; +@@ -282,7 +285,7 @@ + return retval; + } + +- id = ipc_addid(&sem_ids(ns), &sma->sem_perm, ns->sc_semmni); ++ id = ipc_addid(&sem_ids(ns), &sma->sem_perm, ns->sc_semmni, semid); + if (id < 0) { + security_sem_free(sma); + ipc_rcu_putref(sma); +@@ -347,6 +350,7 @@ + sem_params.key = key; + sem_params.flg = semflg; + sem_params.u.nsems = nsems; ++ sem_params.id = -1; + + return ipcget(ns, &sem_ids(ns), &sem_ops, &sem_params); + } +@@ -925,7 +929,7 @@ + goto out_unlock; + } + if (current->euid != ipcp->cuid && +- current->euid != ipcp->uid && !capable(CAP_SYS_ADMIN)) { ++ current->euid != ipcp->uid && !capable(CAP_VE_SYS_ADMIN)) { + err=-EPERM; + goto out_unlock; + } +@@ -1016,7 +1020,7 @@ + + undo_list = current->sysvsem.undo_list; + if (!undo_list) { +- undo_list = kzalloc(sizeof(*undo_list), GFP_KERNEL); ++ undo_list = kzalloc(sizeof(*undo_list), GFP_KERNEL_UBC); + if (undo_list == NULL) + return -ENOMEM; + spin_lock_init(&undo_list->lock); +@@ -1074,7 +1078,8 @@ + ipc_rcu_getref(sma); + sem_unlock(sma); + +- new = kzalloc(sizeof(struct sem_undo) + sizeof(short)*nsems, GFP_KERNEL); ++ new = kzalloc(sizeof(struct sem_undo) + sizeof(short)*nsems, ++ GFP_KERNEL_UBC); + if (!new) { + ipc_lock_by_ptr(&sma->sem_perm); + ipc_rcu_putref(sma); +@@ -1134,7 +1139,7 @@ + if (nsops > ns->sc_semopm) + return -E2BIG; + if(nsops > SEMOPM_FAST) { +- sops = kmalloc(sizeof(*sops)*nsops,GFP_KERNEL); ++ sops = kmalloc(sizeof(*sops)*nsops, GFP_KERNEL_UBC); + if(sops==NULL) + return -ENOMEM; + } +@@ -1415,3 +1420,57 @@ + sma->sem_ctime); + } + #endif ++ ++#ifdef CONFIG_VE ++#include ++ ++int sysvipc_setup_sem(key_t key, int semid, size_t size, int semflg) ++{ ++ struct ipc_namespace *ns; ++ struct ipc_ops sem_ops; ++ struct ipc_params sem_params; ++ ++ ns = current->nsproxy->ipc_ns; ++ ++ sem_ops.getnew = newary; ++ sem_ops.associate = sem_security; ++ sem_ops.more_checks = sem_more_checks; ++ ++ sem_params.key = key; ++ sem_params.flg = semflg | IPC_CREAT; ++ sem_params.u.nsems = size; ++ sem_params.id = semid; ++ ++ return ipcget(ns, &sem_ids(ns), &sem_ops, &sem_params); ++} ++EXPORT_SYMBOL_GPL(sysvipc_setup_sem); ++ ++int sysvipc_walk_sem(int (*func)(int i, struct sem_array*, void *), void *arg) ++{ ++ int err = 0; ++ struct sem_array *sma; ++ struct ipc_namespace *ns; ++ int next_id; ++ int total, in_use; ++ ++ ns = current->nsproxy->ipc_ns; ++ ++ down_write(&sem_ids(ns).rw_mutex); ++ in_use = sem_ids(ns).in_use; ++ for (total = 0, next_id = 0; total < in_use; next_id++) { ++ sma = idr_find(&sem_ids(ns).ipcs_idr, next_id); ++ if (sma == NULL) ++ continue; ++ ipc_lock_by_ptr(&sma->sem_perm); ++ err = func(sem_buildid(next_id, sma->sem_perm.seq), sma, arg); ++ sem_unlock(sma); ++ if (err) ++ break; ++ total++; ++ } ++ up_write(&sem_ids(ns).rw_mutex); ++ return err; ++} ++EXPORT_SYMBOL_GPL(sysvipc_walk_sem); ++EXPORT_SYMBOL_GPL(exit_sem); ++#endif +Index: kernel/ipc/shm.c +=================================================================== +--- kernel.orig/ipc/shm.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/ipc/shm.c 2008-11-24 15:47:46.000000000 +0100 +@@ -38,9 +38,13 @@ + #include + #include + #include ++#include + + #include + ++#include ++#include ++ + #include "util.h" + + struct shm_file_data { +@@ -185,9 +189,10 @@ + ipc_rmid(&shm_ids(ns), &s->shm_perm); + } + +-static inline int shm_addid(struct ipc_namespace *ns, struct shmid_kernel *shp) ++static inline int shm_addid(struct ipc_namespace *ns, struct shmid_kernel *shp, ++ int reqid) + { +- return ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni); ++ return ipc_addid(&shm_ids(ns), &shp->shm_perm, ns->shm_ctlmni, reqid); + } + + +@@ -207,6 +212,48 @@ + shm_unlock(shp); + } + ++static int shmem_lock(struct shmid_kernel *shp, int lock, ++ struct user_struct *user) ++{ ++ struct file *file = shp->shm_file; ++ struct inode *inode = file->f_path.dentry->d_inode; ++ struct shmem_inode_info *info = SHMEM_I(inode); ++ unsigned long size; ++ ++ size = shp->shm_segsz + PAGE_SIZE - 1; ++ ++#ifdef CONFIG_SHMEM ++ spin_lock(&info->lock); ++ if (lock && !(info->flags & VM_LOCKED)) { ++ if (ub_lockedshm_charge(info, size) < 0) ++ goto out_ch; ++ ++ if (!user_shm_lock(inode->i_size, user)) ++ goto out_user; ++ info->flags |= VM_LOCKED; ++ } ++ if (!lock && (info->flags & VM_LOCKED) && user) { ++ ub_lockedshm_uncharge(info, size); ++ user_shm_unlock(inode->i_size, user); ++ info->flags &= ~VM_LOCKED; ++ } ++ spin_unlock(&info->lock); ++ return 0; ++ ++out_user: ++ ub_lockedshm_uncharge(info, size); ++out_ch: ++ spin_unlock(&info->lock); ++ return -ENOMEM; ++#else ++ if (lock && ub_lockedshm_charge(info, size)) ++ return -ENOMEM; ++ if (!lock) ++ ub_lockedshm_uncharge(info, size); ++ return 0; ++#endif ++} ++ + /* + * shm_destroy - free the struct shmid_kernel + * +@@ -222,7 +269,7 @@ + shm_rmid(ns, shp); + shm_unlock(shp); + if (!is_file_hugepages(shp->shm_file)) +- shmem_lock(shp->shm_file, 0, shp->mlock_user); ++ shmem_lock(shp, 0, shp->mlock_user); + else + user_shm_unlock(shp->shm_file->f_path.dentry->d_inode->i_size, + shp->mlock_user); +@@ -385,11 +432,12 @@ + key_t key = params->key; + int shmflg = params->flg; + size_t size = params->u.size; ++ int shmid = params->id; + int error; + struct shmid_kernel *shp; + int numpages = (size + PAGE_SIZE -1) >> PAGE_SHIFT; + struct file * file; +- char name[13]; ++ char name[64]; + int id; + + if (size < SHMMIN || size > ns->shm_ctlmax) +@@ -413,7 +461,7 @@ + return error; + } + +- sprintf (name, "SYSV%08x", key); ++ snprintf (name, sizeof(name), "VE%d-SYSV%08x", VEID(get_exec_env()), key); + if (shmflg & SHM_HUGETLB) { + /* hugetlb_file_setup takes care of mlock user accounting */ + file = hugetlb_file_setup(name, size); +@@ -433,7 +481,7 @@ + if (IS_ERR(file)) + goto no_file; + +- id = shm_addid(ns, shp); ++ id = shm_addid(ns, shp, shmid); + if (id < 0) { + error = id; + goto no_id; +@@ -507,6 +555,7 @@ + shm_params.key = key; + shm_params.flg = shmflg; + shm_params.u.size = size; ++ shm_params.id = -1; + + return ipcget(ns, &shm_ids(ns), &shm_ops, &shm_params); + } +@@ -785,14 +834,14 @@ + if(cmd==SHM_LOCK) { + struct user_struct * user = current->user; + if (!is_file_hugepages(shp->shm_file)) { +- err = shmem_lock(shp->shm_file, 1, user); ++ err = shmem_lock(shp, 1, user); + if (!err && !(shp->shm_perm.mode & SHM_LOCKED)){ + shp->shm_perm.mode |= SHM_LOCKED; + shp->mlock_user = user; + } + } + } else if (!is_file_hugepages(shp->shm_file)) { +- shmem_lock(shp->shm_file, 0, shp->mlock_user); ++ shmem_lock(shp, 0, shp->mlock_user); + shp->shm_perm.mode &= ~SHM_LOCKED; + shp->mlock_user = NULL; + } +@@ -824,7 +873,7 @@ + + if (current->euid != shp->shm_perm.uid && + current->euid != shp->shm_perm.cuid && +- !capable(CAP_SYS_ADMIN)) { ++ !capable(CAP_VE_SYS_ADMIN)) { + err=-EPERM; + goto out_unlock_up; + } +@@ -864,7 +913,7 @@ + err=-EPERM; + if (current->euid != shp->shm_perm.uid && + current->euid != shp->shm_perm.cuid && +- !capable(CAP_SYS_ADMIN)) { ++ !capable(CAP_VE_SYS_ADMIN)) { + goto out_unlock_up; + } + +@@ -1177,3 +1226,67 @@ + shp->shm_ctim); + } + #endif ++ ++#ifdef CONFIG_VE ++#include ++ ++struct file * sysvipc_setup_shm(key_t key, int shmid, size_t size, int shmflg) ++{ ++ struct ipc_namespace *ns; ++ struct ipc_ops shm_ops; ++ struct ipc_params shm_params; ++ struct shmid_kernel *shp; ++ struct file *file; ++ int rv; ++ ++ ns = current->nsproxy->ipc_ns; ++ ++ shm_ops.getnew = newseg; ++ shm_ops.associate = shm_security; ++ shm_ops.more_checks = shm_more_checks; ++ ++ shm_params.key = key; ++ shm_params.flg = shmflg | IPC_CREAT; ++ shm_params.u.size = size; ++ shm_params.id = shmid; ++ ++ rv = ipcget(ns, &shm_ids(ns), &shm_ops, &shm_params); ++ if (rv < 0) ++ return ERR_PTR(rv); ++ shp = shm_lock(ns, rv); ++ BUG_ON(IS_ERR(shp)); ++ file = shp->shm_file; ++ get_file(file); ++ shm_unlock(shp); ++ return file; ++} ++EXPORT_SYMBOL_GPL(sysvipc_setup_shm); ++ ++int sysvipc_walk_shm(int (*func)(struct shmid_kernel*, void *), void *arg) ++{ ++ int err = 0; ++ struct shmid_kernel* shp; ++ struct ipc_namespace *ns; ++ int next_id; ++ int total, in_use; ++ ++ ns = current->nsproxy->ipc_ns; ++ ++ down_write(&shm_ids(ns).rw_mutex); ++ in_use = shm_ids(ns).in_use; ++ for (total = 0, next_id = 0; total < in_use; next_id++) { ++ shp = idr_find(&shm_ids(ns).ipcs_idr, next_id); ++ if (shp == NULL) ++ continue; ++ ipc_lock_by_ptr(&shp->shm_perm); ++ err = func(shp, arg); ++ shm_unlock(shp); ++ if (err) ++ break; ++ total++; ++ } ++ up_write(&shm_ids(ns).rw_mutex); ++ return err; ++} ++EXPORT_SYMBOL_GPL(sysvipc_walk_shm); ++#endif +Index: kernel/ipc/util.c +=================================================================== +--- kernel.orig/ipc/util.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/ipc/util.c 2008-11-24 15:47:46.000000000 +0100 +@@ -36,6 +36,8 @@ + + #include + ++#include ++ + #include "util.h" + + struct ipc_proc_iface { +@@ -258,6 +260,7 @@ + * @ids: IPC identifier set + * @new: new IPC permission set + * @size: limit for the number of used ids ++ * @reqid: if >= 0, get this id exactly. If -1 -- don't care. + * + * Add an entry 'new' to the IPC ids idr. The permissions object is + * initialised and the first free entry is set up and the id assigned +@@ -267,10 +270,18 @@ + * Called with ipc_ids.rw_mutex held as a writer. + */ + +-int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size) ++int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size, int reqid) + { + int id, err; + ++ if (reqid >= 0) { ++ id = reqid % SEQ_MULTIPLIER; ++ err = idr_get_new_above(&ids->ipcs_idr, new, id, &id); ++ if (err || id != (reqid % SEQ_MULTIPLIER)) ++ return -1; ++ goto found; ++ } ++ + if (size > IPCMNI) + size = IPCMNI; + +@@ -280,15 +291,19 @@ + err = idr_get_new(&ids->ipcs_idr, new, &id); + if (err) + return err; +- ++found: + ids->in_use++; + + new->cuid = new->uid = current->euid; + new->gid = new->cgid = current->egid; + +- new->seq = ids->seq++; +- if(ids->seq > ids->seq_max) +- ids->seq = 0; ++ if (reqid >= 0) { ++ new->seq = reqid/SEQ_MULTIPLIER; ++ } else { ++ new->seq = ids->seq++; ++ if(ids->seq > ids->seq_max) ++ ids->seq = 0; ++ } + + spin_lock_init(&new->lock); + new->deleted = 0; +@@ -455,9 +470,9 @@ + { + void* out; + if(size > PAGE_SIZE) +- out = vmalloc(size); ++ out = ub_vmalloc(size); + else +- out = kmalloc(size, GFP_KERNEL); ++ out = kmalloc(size, GFP_KERNEL_UBC); + return out; + } + +@@ -540,14 +555,14 @@ + * workqueue if necessary (for vmalloc). + */ + if (rcu_use_vmalloc(size)) { +- out = vmalloc(HDRLEN_VMALLOC + size); ++ out = ub_vmalloc(HDRLEN_VMALLOC + size); + if (out) { + out += HDRLEN_VMALLOC; + container_of(out, struct ipc_rcu_hdr, data)->is_vmalloc = 1; + container_of(out, struct ipc_rcu_hdr, data)->refcount = 1; + } + } else { +- out = kmalloc(HDRLEN_KMALLOC + size, GFP_KERNEL); ++ out = kmalloc(HDRLEN_KMALLOC + size, GFP_KERNEL_UBC); + if (out) { + out += HDRLEN_KMALLOC; + container_of(out, struct ipc_rcu_hdr, data)->is_vmalloc = 0; +Index: kernel/ipc/util.h +=================================================================== +--- kernel.orig/ipc/util.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/ipc/util.h 2008-11-24 15:47:46.000000000 +0100 +@@ -47,6 +47,7 @@ + size_t size; /* for shared memories */ + int nsems; /* for semaphores */ + } u; /* holds the getnew() specific param */ ++ int id; + }; + + /* +@@ -82,7 +83,7 @@ + #define ipcid_to_idx(id) ((id) % SEQ_MULTIPLIER) + + /* must be called with ids->rw_mutex acquired for writing */ +-int ipc_addid(struct ipc_ids *, struct kern_ipc_perm *, int); ++int ipc_addid(struct ipc_ids *, struct kern_ipc_perm *, int, int); + + /* must be called with ids->rw_mutex acquired for reading */ + int ipc_get_maxid(struct ipc_ids *); +Index: kernel/kernel/Kconfig.openvz +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/Kconfig.openvz 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,80 @@ ++# Copyright (C) 2005 SWsoft ++# All rights reserved. ++# Licensing governed by "linux/COPYING.SWsoft" file. ++ ++menu "OpenVZ" ++ ++config VE ++ bool "Virtual Environment support" ++ default y ++ select PID_NS ++ select NET_NS ++ select USER_NS ++ help ++ This option adds support of virtual Linux running on the original box ++ with fully supported virtual network driver, tty subsystem and ++ configurable access for hardware and other resources. ++ ++config VE_CALLS ++ tristate "VE calls interface" ++ depends on VE ++ select VZ_DEV ++ default m ++ help ++ This option controls how to build vzmon code containing VE calls. ++ By default it's build in module vzmon.o ++ ++config VZ_GENCALLS ++ bool ++ default y ++ ++config VE_NETDEV ++ tristate "VE network device" ++ depends on VE_CALLS && NET ++ select VZ_DEV ++ default m ++ help ++ This option controls whether to build venet device. This is a ++ common interface for networking in VE. ++ ++config VE_ETHDEV ++ tristate "Virtual ethernet device" ++ depends on VE_CALLS && NET ++ select VZ_DEV ++ default m ++ help ++ This option controls whether to build virtual ethernet device. ++ ++config VZ_DEV ++ tristate "VE device" ++ default m ++ help ++ This option adds support of vzdev device, which is used by ++ user-space applications to control Virtual Environments. ++ ++config VE_IPTABLES ++ bool "VE netfiltering" ++ depends on VE && VE_NETDEV && INET && NETFILTER ++ default y ++ help ++ This option controls whether to build VE netfiltering code. ++ ++config VZ_WDOG ++ tristate "VE watchdog module" ++ depends on VE_CALLS ++ default m ++ help ++ This option controls building of vzwdog module, which dumps ++ a lot of useful system info on console periodically. ++ ++config VZ_CHECKPOINT ++ tristate "Checkpointing & restoring Virtual Environments" ++ depends on VE_CALLS && INET ++ select PM_SLEEP ++ default m ++ help ++ This option adds two modules, "cpt" and "rst", which allow ++ to save a running Virtual Environment and restore it ++ on another host (live migration) or on the same host (checkpointing). ++ ++endmenu +Index: kernel/kernel/Makefile +=================================================================== +--- kernel.orig/kernel/Makefile 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/Makefile 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,10 @@ + obj-$(CONFIG_SYSCTL) += sysctl_check.o + obj-$(CONFIG_STACKTRACE) += stacktrace.o + obj-y += time/ ++obj-$(CONFIG_BEANCOUNTERS) += bc/ ++obj-y += ve/ ++obj-$(CONFIG_VZ_CHECKPOINT) += cpt/ ++ + obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o + obj-$(CONFIG_LOCKDEP) += lockdep.o + ifeq ($(CONFIG_PROC_FS),y) +Index: kernel/kernel/audit.c +=================================================================== +--- kernel.orig/kernel/audit.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/audit.c 2008-11-24 15:47:46.000000000 +0100 +@@ -586,6 +586,9 @@ + char *ctx; + u32 len; + ++ if (!ve_is_super(skb->owner_env)) ++ return -ECONNREFUSED; ++ + err = audit_netlink_ok(skb, msg_type); + if (err) + return err; +Index: kernel/kernel/auditfilter.c +=================================================================== +--- kernel.orig/kernel/auditfilter.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/auditfilter.c 2008-11-24 15:47:46.000000000 +0100 +@@ -167,7 +167,7 @@ + inotify_init_watch(&parent->wdata); + /* grab a ref so inotify watch hangs around until we take audit_filter_mutex */ + get_inotify_watch(&parent->wdata); +- wd = inotify_add_watch(audit_ih, &parent->wdata, ndp->dentry->d_inode, ++ wd = inotify_add_watch_dget(audit_ih, &parent->wdata, ndp->dentry, ndp->mnt, + AUDIT_IN_WATCH); + if (wd < 0) { + audit_free_parent(&parent->wdata); +Index: kernel/kernel/bc/Kconfig +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/Kconfig 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,111 @@ ++# ++# User resources part (UBC) ++# ++# Copyright (C) 2005 SWsoft ++# All rights reserved. ++# ++# Licensing governed by "linux/COPYING.SWsoft" file. ++ ++menu "User resources" ++ ++config BEANCOUNTERS ++ bool "Enable user resource accounting" ++ default y ++ help ++ This patch provides accounting and allows to configure ++ limits for user's consumption of exhaustible system resources. ++ The most important resource controlled by this patch is unswappable ++ memory (either mlock'ed or used by internal kernel structures and ++ buffers). The main goal of this patch is to protect processes ++ from running short of important resources because of an accidental ++ misbehavior of processes or malicious activity aiming to ``kill'' ++ the system. It's worth to mention that resource limits configured ++ by setrlimit(2) do not give an acceptable level of protection ++ because they cover only small fraction of resources and work on a ++ per-process basis. Per-process accounting doesn't prevent malicious ++ users from spawning a lot of resource-consuming processes. ++ ++config BC_RSS_ACCOUNTING ++ bool "Account physical memory usage" ++ default y ++ depends on BEANCOUNTERS ++ help ++ This allows to estimate per beancounter physical memory usage. ++ Implemented alghorithm accounts shared pages of memory as well, ++ dividing them by number of beancounter which use the page. ++ ++config BC_IO_ACCOUNTING ++ bool "Account disk IO" ++ default y ++ depends on BC_RSS_ACCOUNTING ++ help ++ When on this option allows seeing disk IO activity caused by ++ tasks from each UB ++ ++config BC_IO_SCHED ++ bool "UBC I/O priority" ++ default y ++ depends on BC_IO_ACCOUNTING && IOSCHED_CFQ ++ help ++ This option controls whether to build CFQ I/O scheduler ++ with support of UBC I/O priority. ++ ++config BC_SWAP_ACCOUNTING ++ bool "Account swap usage" ++ default y ++ depends on BEANCOUNTERS ++ help ++ This allows accounting of swap usage. ++ ++config BC_PROC ++ bool "Report resource usage in /proc" ++ default y ++ depends on BEANCOUNTERS ++ help ++ Allows a system administrator to inspect resource accounts and limits. ++ ++config BC_DEBUG ++ bool "User resources debug features" ++ default n ++ depends on BEANCOUNTERS ++ help ++ Enables to setup debug features for user resource accounting ++ ++config BC_DEBUG_IO ++ bool "Debug IO accounting" ++ default y ++ depends on BC_DEBUG && BC_IO_ACCOUNTING ++ help ++ Debugging for IO accointing. ++ ++config BC_DEBUG_KMEM ++ bool "Debug kmemsize with cache counters" ++ default n ++ depends on BC_DEBUG ++ help ++ Adds /proc/user_beancounters_debug entry to get statistics ++ about cache usage of each beancounter ++ ++config BC_KEEP_UNUSED ++ bool "Keep unused beancounter alive" ++ default y ++ depends on BC_DEBUG ++ help ++ If on, unused beancounters are kept on the hash and maxheld value ++ can be looked through. ++ ++config BC_DEBUG_ITEMS ++ bool "Account resources in items rather than in bytes" ++ default y ++ depends on BC_DEBUG ++ help ++ When true some of the resources (e.g. kmemsize) are accounted ++ in items instead of bytes. ++ ++config BC_UNLIMITED ++ bool "Use unlimited ubc settings" ++ default y ++ depends on BC_DEBUG ++ help ++ When ON all limits and barriers are set to max values. ++endmenu +Index: kernel/kernel/bc/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/Makefile 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,16 @@ ++# ++# User resources part (UBC) ++# ++# Copyright (C) 2005 SWsoft ++# All rights reserved. ++# ++# Licensing governed by "linux/COPYING.SWsoft" file. ++ ++obj-y := sys.o beancounter.o dcache.o kmem.o misc.o \ ++ vm_pages.o statd.o oom_kill.o ++ ++obj-$(CONFIG_NET) += net.o ++obj-$(CONFIG_BC_RSS_ACCOUNTING) += rss_pages.o ++obj-$(CONFIG_BC_PROC) += proc.o ++obj-$(CONFIG_BC_IO_ACCOUNTING) += io_acct.o ++obj-$(CONFIG_BC_IO_SCHED) += io_prio.o +Index: kernel/kernel/bc/beancounter.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/beancounter.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,676 @@ ++/* ++ * linux/kernel/bc/beancounter.c ++ * ++ * Copyright (C) 1998 Alan Cox ++ * 1998-2000 Andrey V. Savochkin ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * TODO: ++ * - more intelligent limit check in mremap(): currently the new size is ++ * charged and _then_ old size is uncharged ++ * (almost done: !move_vma case is completely done, ++ * move_vma in its current implementation requires too many conditions to ++ * do things right, because it may be not only expansion, but shrinking ++ * also, plus do_munmap will require an additional parameter...) ++ * - problem: bad pmd page handling ++ * - consider /proc redesign ++ * - TCP/UDP ports ++ * + consider whether __charge_beancounter_locked should be inline ++ * ++ * Changes: ++ * 1999/08/17 Marcelo Tosatti ++ * - Set "barrier" and "limit" parts of limits atomically. ++ * 1999/10/06 Marcelo Tosatti ++ * - setublimit system call. ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++static struct kmem_cache *ub_cachep; ++static struct user_beancounter default_beancounter; ++struct user_beancounter ub0; ++EXPORT_SYMBOL_GPL(ub0); ++ ++const char *ub_rnames[] = { ++ "kmemsize", /* 0 */ ++ "lockedpages", ++ "privvmpages", ++ "shmpages", ++ "dummy", ++ "numproc", /* 5 */ ++ "physpages", ++ "vmguarpages", ++ "oomguarpages", ++ "numtcpsock", ++ "numflock", /* 10 */ ++ "numpty", ++ "numsiginfo", ++ "tcpsndbuf", ++ "tcprcvbuf", ++ "othersockbuf", /* 15 */ ++ "dgramrcvbuf", ++ "numothersock", ++ "dcachesize", ++ "numfile", ++ "dummy", /* 20 */ ++ "dummy", ++ "dummy", ++ "numiptent", ++ "unused_privvmpages", /* UB_RESOURCES */ ++ "tmpfs_respages", ++ "swap_pages", ++ "held_pages", ++}; ++ ++static void init_beancounter_struct(struct user_beancounter *ub); ++static void init_beancounter_store(struct user_beancounter *ub); ++static void init_beancounter_nolimits(struct user_beancounter *ub); ++ ++int print_ub_uid(struct user_beancounter *ub, char *buf, int size) ++{ ++ if (ub->parent != NULL) ++ return snprintf(buf, size, "%u.%u", ++ ub->parent->ub_uid, ub->ub_uid); ++ else ++ return snprintf(buf, size, "%u", ub->ub_uid); ++} ++EXPORT_SYMBOL(print_ub_uid); ++ ++#define ub_hash_fun(x) ((((x) >> 8) ^ (x)) & (UB_HASH_SIZE - 1)) ++#define ub_subhash_fun(p, id) ub_hash_fun((p)->ub_uid + (id) * 17) ++struct hlist_head ub_hash[UB_HASH_SIZE]; ++DEFINE_SPINLOCK(ub_hash_lock); ++LIST_HEAD(ub_list_head); /* protected by ub_hash_lock */ ++EXPORT_SYMBOL(ub_hash); ++EXPORT_SYMBOL(ub_hash_lock); ++EXPORT_SYMBOL(ub_list_head); ++ ++/* ++ * Per user resource beancounting. Resources are tied to their luid. ++ * The resource structure itself is tagged both to the process and ++ * the charging resources (a socket doesn't want to have to search for ++ * things at irq time for example). Reference counters keep things in ++ * hand. ++ * ++ * The case where a user creates resource, kills all his processes and ++ * then starts new ones is correctly handled this way. The refcounters ++ * will mean the old entry is still around with resource tied to it. ++ */ ++ ++static inline void free_ub(struct user_beancounter *ub) ++{ ++ free_percpu(ub->ub_percpu); ++ kmem_cache_free(ub_cachep, ub); ++} ++ ++static inline struct user_beancounter *bc_lookup_hash(struct hlist_head *hash, ++ uid_t uid, struct user_beancounter *parent) ++{ ++ struct user_beancounter *ub; ++ struct hlist_node *ptr; ++ ++ hlist_for_each_entry (ub, ptr, hash, ub_hash) ++ if (ub->ub_uid == uid && ub->parent == parent) ++ return get_beancounter(ub); ++ ++ return NULL; ++} ++ ++struct user_beancounter *get_beancounter_byuid(uid_t uid, int create) ++{ ++ struct user_beancounter *new_ub, *ub; ++ unsigned long flags; ++ struct hlist_head *hash; ++ ++ hash = &ub_hash[ub_hash_fun(uid)]; ++ new_ub = NULL; ++retry: ++ spin_lock_irqsave(&ub_hash_lock, flags); ++ ub = bc_lookup_hash(hash, uid, NULL); ++ if (ub != NULL) { ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ ++ if (new_ub != NULL) ++ free_ub(new_ub); ++ return ub; ++ } ++ ++ if (!create) { ++ /* no ub found */ ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ return NULL; ++ } ++ ++ if (new_ub != NULL) { ++ list_add_rcu(&new_ub->ub_list, &ub_list_head); ++ hlist_add_head(&new_ub->ub_hash, hash); ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ return new_ub; ++ } ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ ++ /* alloc new ub */ ++ new_ub = (struct user_beancounter *)kmem_cache_alloc(ub_cachep, ++ GFP_KERNEL); ++ if (new_ub == NULL) ++ return NULL; ++ ++ ub_debug(UBD_ALLOC, "Creating ub %p\n", new_ub); ++ memcpy(new_ub, &default_beancounter, sizeof(*new_ub)); ++ init_beancounter_struct(new_ub); ++ new_ub->ub_percpu = alloc_percpu(struct ub_percpu_struct); ++ if (new_ub->ub_percpu == NULL) ++ goto fail_free; ++ new_ub->ub_uid = uid; ++ goto retry; ++ ++fail_free: ++ kmem_cache_free(ub_cachep, new_ub); ++ return NULL; ++} ++EXPORT_SYMBOL(get_beancounter_byuid); ++ ++struct user_beancounter *get_subbeancounter_byid(struct user_beancounter *p, ++ int id, int create) ++{ ++ struct user_beancounter *new_ub, *ub; ++ unsigned long flags; ++ struct hlist_head *hash; ++ ++ hash = &ub_hash[ub_subhash_fun(p, id)]; ++ new_ub = NULL; ++retry: ++ spin_lock_irqsave(&ub_hash_lock, flags); ++ ub = bc_lookup_hash(hash, id, p); ++ if (ub != NULL) { ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ ++ if (new_ub != NULL) { ++ put_beancounter(new_ub->parent); ++ free_ub(new_ub); ++ } ++ return ub; ++ } ++ ++ if (!create) { ++ /* no ub found */ ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ return NULL; ++ } ++ ++ if (new_ub != NULL) { ++ list_add_rcu(&new_ub->ub_list, &ub_list_head); ++ hlist_add_head(&new_ub->ub_hash, hash); ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ return new_ub; ++ } ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ ++ /* alloc new ub */ ++ new_ub = (struct user_beancounter *)kmem_cache_alloc(ub_cachep, ++ GFP_KERNEL); ++ if (new_ub == NULL) ++ return NULL; ++ ++ ub_debug(UBD_ALLOC, "Creating sub %p\n", new_ub); ++ memset(new_ub, 0, sizeof(*new_ub)); ++ init_beancounter_nolimits(new_ub); ++ init_beancounter_store(new_ub); ++ init_beancounter_struct(new_ub); ++ new_ub->ub_percpu = alloc_percpu(struct ub_percpu_struct); ++ if (new_ub->ub_percpu == NULL) ++ goto fail_free; ++ new_ub->ub_uid = id; ++ new_ub->parent = get_beancounter(p); ++ goto retry; ++ ++fail_free: ++ kmem_cache_free(ub_cachep, new_ub); ++ return NULL; ++} ++EXPORT_SYMBOL(get_subbeancounter_byid); ++ ++static void put_warn(struct user_beancounter *ub) ++{ ++ char id[64]; ++ ++ print_ub_uid(ub, id, sizeof(id)); ++ printk(KERN_ERR "UB: Bad refcount (%d) on put of %s (%p)\n", ++ atomic_read(&ub->ub_refcount), id, ub); ++} ++ ++#ifdef CONFIG_BC_KEEP_UNUSED ++#define release_beancounter(ub) do { } while (0) ++#else ++static int verify_res(struct user_beancounter *ub, int resource, ++ unsigned long held) ++{ ++ char id[64]; ++ ++ if (likely(held == 0)) ++ return 1; ++ ++ print_ub_uid(ub, id, sizeof(id)); ++ printk(KERN_WARNING "Ub %s helds %lu in %s on put\n", ++ id, held, ub_rnames[resource]); ++ return 0; ++} ++ ++static inline void bc_verify_held(struct user_beancounter *ub) ++{ ++ int i, clean; ++ ++ clean = 1; ++ for (i = 0; i < UB_RESOURCES; i++) ++ clean &= verify_res(ub, i, ub->ub_parms[i].held); ++ ++ clean &= verify_res(ub, UB_UNUSEDPRIVVM, ub->ub_unused_privvmpages); ++ clean &= verify_res(ub, UB_TMPFSPAGES, ub->ub_tmpfs_respages); ++ clean &= verify_res(ub, UB_SWAPPAGES, ub->ub_swap_pages); ++ clean &= verify_res(ub, UB_HELDPAGES, (unsigned long)ub->ub_held_pages); ++ ++ ub_debug_trace(!clean, 5, 60*HZ); ++} ++ ++static void bc_free_rcu(struct rcu_head *rcu) ++{ ++ struct user_beancounter *ub; ++ ++ ub = container_of(rcu, struct user_beancounter, rcu); ++ free_ub(ub); ++} ++ ++static void delayed_release_beancounter(struct work_struct *w) ++{ ++ struct user_beancounter *ub, *parent; ++ unsigned long flags; ++ ++ ub = container_of(w, struct user_beancounter, cleanup.work); ++again: ++ local_irq_save(flags); ++ if (!atomic_dec_and_lock(&ub->ub_refcount, &ub_hash_lock)) { ++ /* raced with get_beancounter_byuid */ ++ local_irq_restore(flags); ++ return; ++ } ++ ++ hlist_del(&ub->ub_hash); ++ list_del_rcu(&ub->ub_list); ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ ++ bc_verify_held(ub); ++ ub_free_counters(ub); ++ bc_fini_ioprio(&ub->iopriv); ++ parent = ub->parent; ++ ++ call_rcu(&ub->rcu, bc_free_rcu); ++ if (parent) { ++ ub = parent; ++ goto again; ++ } ++} ++ ++static inline void release_beancounter(struct user_beancounter *ub) ++{ ++ struct execute_work *ew; ++ ++ ew = &ub->cleanup; ++ INIT_WORK(&ew->work, delayed_release_beancounter); ++ schedule_work(&ew->work); ++} ++#endif ++ ++void __put_beancounter(struct user_beancounter *ub) ++{ ++ unsigned long flags; ++ ++ /* equevalent to atomic_dec_and_lock_irqsave() */ ++ local_irq_save(flags); ++ if (likely(!atomic_dec_and_lock(&ub->ub_refcount, &ub_hash_lock))) { ++ if (unlikely(atomic_read(&ub->ub_refcount) < 0)) ++ put_warn(ub); ++ local_irq_restore(flags); ++ return; ++ } ++ ++ if (unlikely(ub == get_ub0())) { ++ printk(KERN_ERR "Trying to put ub0\n"); ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ return; ++ } ++ ++ /* prevent get_beancounter_byuid + put_beancounter() reentrance */ ++ atomic_inc(&ub->ub_refcount); ++ spin_unlock_irqrestore(&ub_hash_lock, flags); ++ ++ release_beancounter(ub); ++} ++EXPORT_SYMBOL(__put_beancounter); ++ ++void put_beancounter_safe(struct user_beancounter *ub) ++{ ++ synchronize_rcu(); ++ __put_beancounter(ub); ++} ++EXPORT_SYMBOL(put_beancounter_safe); ++ ++/* ++ * Generic resource charging stuff ++ */ ++ ++int __charge_beancounter_locked(struct user_beancounter *ub, ++ int resource, unsigned long val, enum ub_severity strict) ++{ ++ ub_debug_resource(resource, "Charging %lu for %d of %p with %lu\n", ++ val, resource, ub, ub->ub_parms[resource].held); ++ /* ++ * ub_value <= UB_MAXVALUE, value <= UB_MAXVALUE, and only one addition ++ * at the moment is possible so an overflow is impossible. ++ */ ++ ub->ub_parms[resource].held += val; ++ ++ switch (strict) { ++ case UB_HARD: ++ if (ub->ub_parms[resource].held > ++ ub->ub_parms[resource].barrier) ++ break; ++ case UB_SOFT: ++ if (ub->ub_parms[resource].held > ++ ub->ub_parms[resource].limit) ++ break; ++ case UB_FORCE: ++ ub_adjust_maxheld(ub, resource); ++ return 0; ++ default: ++ BUG(); ++ } ++ ++ if (strict == UB_SOFT && ub_ratelimit(&ub->ub_limit_rl)) ++ printk(KERN_INFO "Fatal resource shortage: %s, UB %d.\n", ++ ub_rnames[resource], ub->ub_uid); ++ ub->ub_parms[resource].failcnt++; ++ ub->ub_parms[resource].held -= val; ++ return -ENOMEM; ++} ++ ++int charge_beancounter(struct user_beancounter *ub, ++ int resource, unsigned long val, enum ub_severity strict) ++{ ++ int retval; ++ struct user_beancounter *p, *q; ++ unsigned long flags; ++ ++ retval = -EINVAL; ++ if (val > UB_MAXVALUE) ++ goto out; ++ ++ local_irq_save(flags); ++ for (p = ub; p != NULL; p = p->parent) { ++ spin_lock(&p->ub_lock); ++ retval = __charge_beancounter_locked(p, resource, val, strict); ++ spin_unlock(&p->ub_lock); ++ if (retval) ++ goto unroll; ++ } ++out_restore: ++ local_irq_restore(flags); ++out: ++ return retval; ++ ++unroll: ++ for (q = ub; q != p; q = q->parent) { ++ spin_lock(&q->ub_lock); ++ __uncharge_beancounter_locked(q, resource, val); ++ spin_unlock(&q->ub_lock); ++ } ++ goto out_restore; ++} ++ ++EXPORT_SYMBOL(charge_beancounter); ++ ++void __charge_beancounter_notop(struct user_beancounter *ub, ++ int resource, unsigned long val) ++{ ++ struct user_beancounter *p; ++ unsigned long flags; ++ ++ local_irq_save(flags); ++ for (p = ub; p->parent != NULL; p = p->parent) { ++ spin_lock(&p->ub_lock); ++ __charge_beancounter_locked(p, resource, val, UB_FORCE); ++ spin_unlock(&p->ub_lock); ++ } ++ local_irq_restore(flags); ++} ++ ++EXPORT_SYMBOL(__charge_beancounter_notop); ++ ++void uncharge_warn(struct user_beancounter *ub, int resource, ++ unsigned long val, unsigned long held) ++{ ++ char id[64]; ++ ++ print_ub_uid(ub, id, sizeof(id)); ++ printk(KERN_ERR "Uncharging too much %lu h %lu, res %s ub %s\n", ++ val, held, ub_rnames[resource], id); ++ ub_debug_trace(1, 10, 10*HZ); ++} ++ ++void __uncharge_beancounter_locked(struct user_beancounter *ub, ++ int resource, unsigned long val) ++{ ++ ub_debug_resource(resource, "Uncharging %lu for %d of %p with %lu\n", ++ val, resource, ub, ub->ub_parms[resource].held); ++ if (ub->ub_parms[resource].held < val) { ++ uncharge_warn(ub, resource, ++ val, ub->ub_parms[resource].held); ++ val = ub->ub_parms[resource].held; ++ } ++ ub->ub_parms[resource].held -= val; ++} ++ ++void uncharge_beancounter(struct user_beancounter *ub, ++ int resource, unsigned long val) ++{ ++ unsigned long flags; ++ struct user_beancounter *p; ++ ++ for (p = ub; p != NULL; p = p->parent) { ++ spin_lock_irqsave(&p->ub_lock, flags); ++ __uncharge_beancounter_locked(p, resource, val); ++ spin_unlock_irqrestore(&p->ub_lock, flags); ++ } ++} ++ ++EXPORT_SYMBOL(uncharge_beancounter); ++ ++void __uncharge_beancounter_notop(struct user_beancounter *ub, ++ int resource, unsigned long val) ++{ ++ struct user_beancounter *p; ++ unsigned long flags; ++ ++ local_irq_save(flags); ++ for (p = ub; p->parent != NULL; p = p->parent) { ++ spin_lock(&p->ub_lock); ++ __uncharge_beancounter_locked(p, resource, val); ++ spin_unlock(&p->ub_lock); ++ } ++ local_irq_restore(flags); ++} ++ ++EXPORT_SYMBOL(__uncharge_beancounter_notop); ++ ++ ++/* ++ * Rate limiting stuff. ++ */ ++int ub_ratelimit(struct ub_rate_info *p) ++{ ++ unsigned long cjif, djif; ++ unsigned long flags; ++ static spinlock_t ratelimit_lock = SPIN_LOCK_UNLOCKED; ++ long new_bucket; ++ ++ spin_lock_irqsave(&ratelimit_lock, flags); ++ cjif = jiffies; ++ djif = cjif - p->last; ++ if (djif < p->interval) { ++ if (p->bucket >= p->burst) { ++ spin_unlock_irqrestore(&ratelimit_lock, flags); ++ return 0; ++ } ++ p->bucket++; ++ } else { ++ new_bucket = p->bucket - (djif / (unsigned)p->interval); ++ if (new_bucket < 0) ++ new_bucket = 0; ++ p->bucket = new_bucket + 1; ++ } ++ p->last = cjif; ++ spin_unlock_irqrestore(&ratelimit_lock, flags); ++ return 1; ++} ++EXPORT_SYMBOL(ub_ratelimit); ++ ++ ++/* ++ * Initialization ++ * ++ * struct user_beancounter contains ++ * - limits and other configuration settings, ++ * with a copy stored for accounting purposes, ++ * - structural fields: lists, spinlocks and so on. ++ * ++ * Before these parts are initialized, the structure should be memset ++ * to 0 or copied from a known clean structure. That takes care of a lot ++ * of fields not initialized explicitly. ++ */ ++ ++static void init_beancounter_struct(struct user_beancounter *ub) ++{ ++ ub->ub_magic = UB_MAGIC; ++ atomic_set(&ub->ub_refcount, 1); ++ spin_lock_init(&ub->ub_lock); ++ INIT_LIST_HEAD(&ub->ub_tcp_sk_list); ++ INIT_LIST_HEAD(&ub->ub_other_sk_list); ++#ifdef CONFIG_BC_DEBUG_KMEM ++ INIT_LIST_HEAD(&ub->ub_cclist); ++#endif ++ bc_init_ioprio(&ub->iopriv); ++} ++ ++static void init_beancounter_store(struct user_beancounter *ub) ++{ ++ int k; ++ ++ for (k = 0; k < UB_RESOURCES; k++) { ++ memcpy(&ub->ub_store[k], &ub->ub_parms[k], ++ sizeof(struct ubparm)); ++ } ++} ++ ++static void init_beancounter_nolimits(struct user_beancounter *ub) ++{ ++ int k; ++ ++ for (k = 0; k < UB_RESOURCES; k++) { ++ ub->ub_parms[k].limit = UB_MAXVALUE; ++ /* FIXME: whether this is right for physpages and guarantees? */ ++ ub->ub_parms[k].barrier = UB_MAXVALUE; ++ } ++ ++ /* FIXME: set unlimited rate? */ ++ ub->ub_limit_rl.burst = 4; ++ ub->ub_limit_rl.interval = 300*HZ; ++} ++ ++static void init_beancounter_syslimits(struct user_beancounter *ub) ++{ ++ unsigned long mp; ++ extern int max_threads; ++ int k; ++ ++ mp = num_physpages; ++ ub->ub_parms[UB_KMEMSIZE].limit = ++ mp > (192*1024*1024 >> PAGE_SHIFT) ? ++ 32*1024*1024 : (mp << PAGE_SHIFT) / 6; ++ ub->ub_parms[UB_LOCKEDPAGES].limit = 8; ++ ub->ub_parms[UB_PRIVVMPAGES].limit = UB_MAXVALUE; ++ ub->ub_parms[UB_SHMPAGES].limit = 64; ++ ub->ub_parms[UB_NUMPROC].limit = max_threads / 2; ++ ub->ub_parms[UB_NUMTCPSOCK].limit = 1024; ++ ub->ub_parms[UB_TCPSNDBUF].limit = 1024*4*1024; /* 4k per socket */ ++ ub->ub_parms[UB_TCPRCVBUF].limit = 1024*6*1024; /* 6k per socket */ ++ ub->ub_parms[UB_NUMOTHERSOCK].limit = 256; ++ ub->ub_parms[UB_DGRAMRCVBUF].limit = 256*4*1024; /* 4k per socket */ ++ ub->ub_parms[UB_OTHERSOCKBUF].limit = 256*8*1024; /* 8k per socket */ ++ ub->ub_parms[UB_NUMFLOCK].limit = 1024; ++ ub->ub_parms[UB_NUMPTY].limit = 16; ++ ub->ub_parms[UB_NUMSIGINFO].limit = 1024; ++ ub->ub_parms[UB_DCACHESIZE].limit = 1024*1024; ++ ub->ub_parms[UB_NUMFILE].limit = 1024; ++ ++ for (k = 0; k < UB_RESOURCES; k++) ++ ub->ub_parms[k].barrier = ub->ub_parms[k].limit; ++ ++ ub->ub_limit_rl.burst = 4; ++ ub->ub_limit_rl.interval = 300*HZ; ++} ++ ++#ifdef CONFIG_SMP ++static struct percpu_data ub0_percpu; ++#endif ++static struct ub_percpu_struct ub0_percpu_data[NR_CPUS]; ++ ++void __init ub_init_early(void) ++{ ++ struct user_beancounter *ub; ++ ++ init_cache_counters(); ++ ub = get_ub0(); ++ memset(ub, 0, sizeof(*ub)); ++ ub->ub_uid = 0; ++ init_beancounter_nolimits(ub); ++ init_beancounter_store(ub); ++ init_beancounter_struct(ub); ++ ub->ub_percpu = static_percpu_ptr(&ub0_percpu, ub0_percpu_data); ++ ++ memset(¤t->task_bc, 0, sizeof(struct task_beancounter)); ++ (void)set_exec_ub(ub); ++ current->task_bc.task_ub = get_beancounter(ub); ++ __charge_beancounter_locked(ub, UB_NUMPROC, 1, UB_FORCE); ++ current->task_bc.fork_sub = get_beancounter(ub); ++ ub_init_task_bc(¤t->task_bc); ++ init_mm.mm_ub = get_beancounter(ub); ++ ++ hlist_add_head(&ub->ub_hash, &ub_hash[ub->ub_uid]); ++ list_add(&ub->ub_list, &ub_list_head); ++} ++ ++void __init ub_init_late(void) ++{ ++ ub_cachep = kmem_cache_create("user_beancounters", ++ sizeof(struct user_beancounter), ++ 0, SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL); ++ ++ memset(&default_beancounter, 0, sizeof(default_beancounter)); ++#ifdef CONFIG_BC_UNLIMITED ++ init_beancounter_nolimits(&default_beancounter); ++#else ++ init_beancounter_syslimits(&default_beancounter); ++#endif ++ init_beancounter_store(&default_beancounter); ++ init_beancounter_struct(&default_beancounter); ++} +Index: kernel/kernel/bc/dcache.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/dcache.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,562 @@ ++/* ++ * kernel/bc/dcache.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* ++ * Locking ++ * traverse dcache_lock d_lock ++ * ub_dentry_charge + - + ++ * ub_dentry_uncharge + + - ++ * ub_dentry_charge_nofail + + - ++ * ++ * d_inuse changes are atomic, with special handling of "not in use" <-> ++ * "in use" (-1 <-> 0) transitions. We have two sources of non-atomicity ++ * here: (1) in many operations we need to change d_inuse of both dentry and ++ * its parent, and (2) on state transitions we need to adjust the account. ++ * ++ * Regarding (1): we do not have (and do not want) a single lock covering all ++ * operations, so in general it's impossible to get a consistent view of ++ * a tree with respect to d_inuse counters (except by swsuspend). It also ++ * means if a dentry with d_inuse of 0 gets one new in-use child and loses ++ * one, it's d_inuse counter will go either 0 -> 1 -> 0 path or 0 -> -1 -> 0, ++ * and we can't say which way. ++ * Note that path -1 -> 0 -> -1 can't turn into -1 -> -2 -> -1, since ++ * uncharge can be done only after return from charge (with d_genocide being ++ * the only apparent exception). ++ * Regarding (2): there is a similar uncertainty with the dcache account. ++ * If the account is equal to the limit, one more dentry is started to be ++ * used and one is put, the account will either hit the limit (and an error ++ * will be returned), or decrement will happen before increment. ++ * ++ * These races do not really matter. ++ * The only things we want are: ++ * - if a system is suspenede with no in-use dentries, all d_inuse counters ++ * should be correct (-1); ++ * - d_inuse counters should always be >= -1. ++ * This holds if ->parent references are accessed and maintained properly. ++ * In subtle moments (like d_move) dentries exchanging their parents should ++ * both be in-use. At d_genocide time, lookups and charges are assumed to be ++ * impossible. ++ */ ++ ++/* ++ * Hierarchical accounting ++ * UB argument must NOT be NULL ++ */ ++ ++static int do_charge_dcache(struct user_beancounter *ub, unsigned long size, ++ enum ub_severity sv) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ if (__charge_beancounter_locked(ub, UB_KMEMSIZE, CHARGE_SIZE(size), sv)) ++ goto out_mem; ++ if (__charge_beancounter_locked(ub, UB_DCACHESIZE, size, sv)) ++ goto out_dcache; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return 0; ++ ++out_dcache: ++ __uncharge_beancounter_locked(ub, UB_KMEMSIZE, CHARGE_SIZE(size)); ++out_mem: ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return -ENOMEM; ++} ++ ++static void do_uncharge_dcache(struct user_beancounter *ub, ++ unsigned long size) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ __uncharge_beancounter_locked(ub, UB_KMEMSIZE, CHARGE_SIZE(size)); ++ __uncharge_beancounter_locked(ub, UB_DCACHESIZE, size); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++static int charge_dcache(struct user_beancounter *ub, unsigned long size, ++ enum ub_severity sv) ++{ ++ struct user_beancounter *p, *q; ++ ++ for (p = ub; p != NULL; p = p->parent) { ++ if (do_charge_dcache(p, size, sv)) ++ goto unroll; ++ } ++ return 0; ++ ++unroll: ++ for (q = ub; q != p; q = q->parent) ++ do_uncharge_dcache(q, size); ++ return -ENOMEM; ++} ++ ++void uncharge_dcache(struct user_beancounter *ub, unsigned long size) ++{ ++ for (; ub != NULL; ub = ub->parent) ++ do_uncharge_dcache(ub, size); ++} ++ ++/* ++ * Simple helpers to do maintain account and d_ub field. ++ */ ++ ++static inline int d_charge(struct dentry_beancounter *d_bc) ++{ ++ struct user_beancounter *ub; ++ ++ ub = get_beancounter(get_exec_ub()); ++ if (charge_dcache(ub, d_bc->d_ubsize, UB_SOFT)) { ++ put_beancounter(ub); ++ return -1; ++ } ++ d_bc->d_ub = ub; ++ return 0; ++} ++ ++static inline void d_forced_charge(struct dentry_beancounter *d_bc) ++{ ++ struct user_beancounter *ub; ++ ++ ub = get_beancounter(get_exec_ub()); ++ charge_dcache(ub, d_bc->d_ubsize, UB_FORCE); ++ d_bc->d_ub = ub; ++} ++ ++/* ++ * Minor helpers ++ */ ++ ++extern struct kmem_cache *dentry_cache; ++extern struct kmem_cache *inode_cachep; ++static struct rw_semaphore ub_dentry_alloc_sem; ++ ++static inline unsigned long d_charge_size(struct dentry *dentry) ++{ ++ /* dentry's d_name is already set to appropriate value (see d_alloc) */ ++ return kmem_cache_objuse(inode_cachep) + kmem_cache_objuse(dentry_cache) + ++ (dname_external(dentry) ? ++ kmem_obj_objuse((void *)dentry->d_name.name) : 0); ++} ++ ++/* ++ * Entry points from dcache.c ++ */ ++ ++/* ++ * Set initial d_inuse on d_alloc. ++ * Called with no locks, preemption disabled. ++ */ ++int __ub_dentry_alloc(struct dentry *dentry) ++{ ++ struct dentry_beancounter *d_bc; ++ ++ d_bc = &dentry->dentry_bc; ++ d_bc->d_ub = get_beancounter(get_exec_ub()); ++ atomic_set(&d_bc->d_inuse, INUSE_INIT); /* see comment in dcache.h */ ++ d_bc->d_ubsize = d_charge_size(dentry); ++ ++ if (charge_dcache(d_bc->d_ub, d_bc->d_ubsize, UB_HARD)) ++ goto failure; ++ return 0; ++ ++failure: ++ put_beancounter(d_bc->d_ub); ++ d_bc->d_ub = NULL; ++ return -ENOMEM; ++} ++void __ub_dentry_alloc_start(void) ++{ ++ down_read(&ub_dentry_alloc_sem); ++ current->task_bc.dentry_alloc = 1; ++} ++ ++void __ub_dentry_alloc_end(void) ++{ ++ current->task_bc.dentry_alloc = 0; ++ up_read(&ub_dentry_alloc_sem); ++} ++ ++/* ++ * It is assumed that parent is already in use, so traverse upwards is ++ * limited to one ancestor only. ++ * Called under d_lock and rcu_read_lock. ++ */ ++int __ub_dentry_charge(struct dentry *dentry) ++{ ++ struct dentry_beancounter *d_bc; ++ struct dentry *parent; ++ int ret; ++ ++ if (ub_dget_testone(dentry)) { ++ d_bc = &dentry->dentry_bc; ++ /* state transition -1 => 0 */ ++ if (d_charge(d_bc)) ++ goto failure; ++ ++ if (dentry != dentry->d_parent) { ++ parent = dentry->d_parent; ++ if (ub_dget_testone(parent)) ++ BUG(); ++ } ++ } ++ return 0; ++ ++failure: ++ /* ++ * Here we would like to fail the lookup. ++ * It is not easy: if d_lookup fails, callers expect that a dentry ++ * with the given name doesn't exist, and create a new one. ++ * So, first we forcedly charge for this dentry. ++ * Then try to remove it from cache safely. If it turns out to be ++ * possible, we can return error. ++ */ ++ d_forced_charge(d_bc); ++ ++ if (dentry != dentry->d_parent) { ++ parent = dentry->d_parent; ++ if (ub_dget_testone(parent)) ++ BUG(); ++ } ++ ++ ret = 0; ++ if (spin_trylock(&dcache_lock)) { ++ if (!list_empty(&dentry->d_subdirs)) { ++ spin_unlock(&dentry->d_lock); ++ spin_unlock(&dcache_lock); ++ rcu_read_unlock(); ++ shrink_dcache_parent(dentry); ++ rcu_read_lock(); ++ spin_lock(&dcache_lock); ++ spin_lock(&dentry->d_lock); ++ } ++ if (atomic_read(&dentry->d_count) == 1) { ++ __d_drop(dentry); ++ ret = -1; ++ } ++ spin_unlock(&dcache_lock); ++ } ++ ++ return ret; ++} ++ ++/* ++ * Go up in the tree decreasing d_inuse. ++ * Called under dcache_lock. ++ */ ++void __ub_dentry_uncharge(struct dentry *dentry) ++{ ++ struct dentry *parent; ++ struct user_beancounter *ub; ++ unsigned long size; ++ ++ /* go up until state doesn't change or and root is reached */ ++ size = dentry->dentry_bc.d_ubsize; ++ ub = dentry->dentry_bc.d_ub; ++ while (ub_dput_testzero(dentry)) { ++ /* state transition 0 => -1 */ ++ uncharge_dcache(ub, size); ++ put_beancounter(ub); ++ ++ parent = dentry->d_parent; ++ if (dentry == parent) ++ break; ++ ++ dentry = parent; ++ size = dentry->dentry_bc.d_ubsize; ++ ub = dentry->dentry_bc.d_ub; ++ } ++} ++ ++/* ++ * Forced charge for __dget_locked, where API doesn't allow to return error. ++ * Called under dcache_lock. ++ */ ++void __ub_dentry_charge_nofail(struct dentry *dentry) ++{ ++ struct dentry *parent; ++ ++ while (ub_dget_testone(dentry)) { ++ /* state transition -1 => 0 */ ++ d_forced_charge(&dentry->dentry_bc); ++ ++ parent = dentry->d_parent; ++ if (dentry == parent) ++ break; ++ dentry = parent; ++ } ++} ++ ++/* ++ * Adaptive accounting ++ */ ++ ++int ub_dentry_on = 1; ++int ub_dentry_alloc_barrier; ++EXPORT_SYMBOL(ub_dentry_on); ++ ++static DEFINE_PER_CPU(int, checkcnt); ++static unsigned long checklowat = 0; ++static unsigned long checkhiwat = ULONG_MAX; ++ ++static int sysctl_ub_dentry_chk = 10; ++#define sysctl_ub_lowat sysctl_ub_watermark[0] ++#define sysctl_ub_hiwat sysctl_ub_watermark[1] ++static DECLARE_RWSEM(ub_dentry_alloc_sem); ++/* 1024th of lowmem size */ ++static unsigned int sysctl_ub_watermark[2] = {0, 100}; ++ ++ ++static int ub_dentry_acctinit(struct dentry *dentry) ++{ ++ struct dentry_beancounter *d_bc; ++ ++ d_bc = &dentry->dentry_bc; ++ d_bc->d_ub = NULL; ++ atomic_set(&d_bc->d_inuse, -1); ++#if 0 ++ if (dname_external(dentry)) { ++ struct page *page; ++ page = virt_to_page(dentry->d_name.name); ++ if (!PageSlab(page) || page_get_cache(page) == NULL) { ++ printk("Problem with name, dentry %p, parent %p, " ++ "name %p len %d\n", ++ dentry, dentry->d_parent, ++ dentry->d_name.name, ++ dentry->d_name.len); ++ printk(" de %p name %.10s\n", ++ dentry, dentry->d_name.name); ++ d_bc->d_ubsize = 0; ++ return 0; ++ } ++ } ++#endif ++ d_bc->d_ubsize = d_charge_size(dentry); ++ return 0; ++} ++ ++static int ub_dentry_acctcount(struct dentry *dentry) ++{ ++ struct dentry_beancounter *d_bc; ++ struct dentry *child; ++ int count; ++ ++ count = 0; ++ list_for_each_entry(child, &dentry->d_subdirs, d_u.d_child) ++ count++; ++ ++ d_bc = &dentry->dentry_bc; ++ count = atomic_read(&dentry->d_count) - count; ++ if (count) { ++ __ub_dentry_charge_nofail(dentry); ++ if (count > 1) ++ atomic_add(count - 1, &d_bc->d_inuse); ++ } ++ ++ return 0; ++} ++ ++static int ub_dentry_acctdrop(struct dentry *dentry) ++{ ++ struct dentry_beancounter *d_bc; ++ ++ d_bc = &dentry->dentry_bc; ++ if (atomic_read(&d_bc->d_inuse) < 0) ++ return 0; ++ atomic_set(&d_bc->d_inuse, -1); ++ uncharge_dcache(d_bc->d_ub, d_bc->d_ubsize); ++ put_beancounter(d_bc->d_ub); ++ return 0; ++} ++ ++static inline int ub_dentry_walk(int (*fun)(struct dentry *d)) ++{ ++ return kmem_cache_walk_objects(dentry_cache, ++ (int (*)(void *))fun); ++} ++ ++static int ub_dentry_accton(void *data) ++{ ++ struct user_beancounter *ub; ++ int err; ++ ++ ub = get_exec_ub(); ++ set_exec_ub(get_ub0()); ++ err = ub_dentry_walk(&ub_dentry_acctinit); ++ if (!err) ++ err = ub_dentry_walk(&ub_dentry_acctcount); ++ set_exec_ub(ub); ++ if (err == 0) ++ ub_dentry_on = 1; ++ return err; ++} ++ ++static int ub_dentry_acctoff(void *data) ++{ ++ int ret; ++ ret = ub_dentry_walk(&ub_dentry_acctdrop); ++ if (ret == 0) ++ ub_dentry_on = 0; ++ return ret; ++} ++ ++/* ++ * Main function turning dcache accounting on and off. ++ * Called with preemption disabled (for caller's convenience). ++ */ ++static void ub_dentry_switch(int onoff, unsigned long pages, int (*fun)(void *)) ++{ ++ static char *s[] = { "off", "on" }; ++ unsigned long start_jiffies; ++ int err, tm; ++ ++ start_jiffies = jiffies; ++ preempt_enable(); ++ ub_dentry_alloc_barrier = 1; ++ /* ensure ub_dentry_alloc_barrier is visible on all CPUs */ ++ mb(); ++ synchronize_rcu(); ++ down_write(&ub_dentry_alloc_sem); ++ if (ub_dentry_on == onoff) ++ goto done; ++ ++ printk("UBC: preparing to turn dcache accounting %s, " ++ "size %lu pages, watermarks %lu %lu\n", ++ s[onoff], pages, checklowat, checkhiwat); ++ err = stop_machine_run(fun, NULL, NR_CPUS); ++ if (err) { ++ printk(KERN_ERR "UBC: ERROR: dcache accounting switch %d\n", ++ err); ++ preempt_disable(); ++ checklowat = 0; ++ checkhiwat = ULONG_MAX; ++ sysctl_ub_dentry_chk = INT_MAX; ++ preempt_enable(); ++ } else { ++ tm = jiffies_to_msecs(jiffies - start_jiffies); ++ printk("UBC: turning dcache accounting %s succeeded, " ++ "usage %lu, time %u.%03u\n", ++ s[onoff], ++ get_ub0()->ub_parms[UB_DCACHESIZE].held, ++ tm / 1000, tm % 1000); ++ } ++ ++done: ++ ub_dentry_alloc_barrier = 0; ++ up_write(&ub_dentry_alloc_sem); ++ preempt_disable(); ++} ++ ++void ub_dentry_checkup(void) ++{ ++ int *p; ++ unsigned long pages; ++ ++ preempt_disable(); ++ p = &__get_cpu_var(checkcnt); ++ if (++*p > sysctl_ub_dentry_chk) { ++ *p = 0; ++ pages = ub_cache_growth(dentry_cache); ++ if (ub_dentry_on) { ++ if (pages < checklowat) ++ ub_dentry_switch(0, pages, &ub_dentry_acctoff); ++ } else { ++ if (pages >= checkhiwat) ++ ub_dentry_switch(1, pages, &ub_dentry_accton); ++ } ++ } ++ preempt_enable(); ++} ++ ++static void ub_dentry_set_limits(unsigned long pages, unsigned long cap) ++{ ++ down_write(&ub_dentry_alloc_sem); ++ preempt_disable(); ++ checklowat = (pages >> 10) * sysctl_ub_lowat; ++ checkhiwat = (pages >> 10) * sysctl_ub_hiwat; ++ if (checkhiwat > cap) { ++ checkhiwat = cap; ++ checklowat = cap / sysctl_ub_hiwat * sysctl_ub_lowat; ++ } ++ preempt_enable(); ++ up_write(&ub_dentry_alloc_sem); ++} ++ ++static int ub_dentry_proc_handler(ctl_table *ctl, int write, struct file *filp, ++ void __user *buffer, size_t *lenp, loff_t *ppos) ++{ ++ int r; ++ ++ r = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); ++ if (!r && write) ++ ub_dentry_set_limits(totalram_pages - totalhigh_pages, ++ ULONG_MAX); ++ return r; ++} ++ ++static ctl_table ub_dentry_sysctl_table[] = { ++ { ++ .procname = "dentry_check", ++ .data = &sysctl_ub_dentry_chk, ++ .maxlen = sizeof(sysctl_ub_dentry_chk), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++ { ++ .procname = "dentry_watermark", ++ .data = &sysctl_ub_lowat, ++ .maxlen = sizeof(sysctl_ub_lowat) * 2, ++ .mode = 0644, ++ .proc_handler = ub_dentry_proc_handler, ++ }, ++ { .ctl_name = 0 } ++}; ++static ctl_table ub_dentry_sysctl_root[] = { ++ { ++ .procname = "ubc", ++ .mode = 0555, ++ .child = ub_dentry_sysctl_table, ++ }, ++ { .ctl_name = 0 } ++}; ++ ++static int __init ub_dentry_init(void) ++{ ++ /* ++ * Initial watermarks are limited, to limit walk time. ++ * 384MB translates into 0.8 sec on PIII 866MHz. ++ */ ++ ub_dentry_set_limits(totalram_pages - totalhigh_pages, ++ 384 * 1024 * 1024 / PAGE_SIZE); ++ if (register_sysctl_table(ub_dentry_sysctl_root) == NULL) ++ return -ENOMEM; ++ return 0; ++} ++__initcall(ub_dentry_init); +Index: kernel/kernel/bc/io_acct.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/io_acct.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,514 @@ ++/* ++ * kernel/bc/io_acct.c ++ * ++ * Copyright (C) 2006 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * Pavel Emelianov ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++static struct mempool_s *pb_pool; ++ ++#define PB_MIN_IO (1024) ++ ++static inline struct page_beancounter *io_pb_alloc(void) ++{ ++ return mempool_alloc(pb_pool, GFP_ATOMIC); ++} ++ ++static inline void io_pb_free(struct page_beancounter *pb) ++{ ++ mempool_free(pb, pb_pool); ++} ++ ++struct page_beancounter **page_pblist(struct page *page) ++{ ++ struct page_beancounter **pb, *iopb; ++ ++ pb = &page_pbc(page); ++ iopb = iopb_to_pb(*pb); ++ ++ return iopb == NULL ? pb : &iopb->page_pb_list; ++} ++ ++/* ++ * We save the context page was set dirty to use it later ++ * when the real write starts. If the page is mapped then ++ * IO pb is stores like this: ++ * ++ * Before saving: ++ * ++ * +- page -------+ ++ * | ... | ++ * | page_pb +---+ ++ * +--------------+ | +-----+ +-----+ +-----+ ++ * +-> | pb1 | -> | pb2 | - ... -> | pbN | -+ ++ * +-----+ +-----+ +-----+ | ++ * ^ | ++ * +---------------------------------+ ++ * ++ * After saving: ++ * ++ * +- page -------+ +- io pb ------+ ++ * | ... | | ... | ++ * | page_pb +----> | page_pb_list +-+ ++ * +--------------+ +--------------+ | ++ * | ++ * +-------------------+ ++ * | ++ * | +-----+ +-----+ +-----+ ++ * +-> | pb1 | -> | pb2 | - ... -> | pbN | -+ ++ * +-----+ +-----+ +-----+ | ++ * ^ | ++ * +---------------------------------+ ++ * ++ * And the page_pblist(...) function returns pointer to the place that ++ * points to this pbX ring. ++ */ ++ ++#ifdef CONFIG_BC_DEBUG_IO ++static LIST_HEAD(pb_io_list); ++static unsigned long anon_pages, not_released; ++ ++static inline void io_debug_save(struct page_beancounter *pb, ++ struct page_beancounter *mpb) ++{ ++ pb->io_debug = (mpb == NULL); ++ list_add(&pb->io_list, &pb_io_list); ++} ++ ++static inline void io_debug_release(struct page_beancounter *pb) ++{ ++ list_del(&pb->io_list); ++} ++ ++void ub_io_release_debug(struct page *page) ++{ ++ struct page_beancounter *pb; ++ static int once = 0; ++ ++ pb = page_pbc(page); ++ if (likely(iopb_to_pb(pb) == NULL)) ++ return; ++ ++ if (!once) { ++ printk("BUG: Page has an IO bc but is not expectd to\n"); ++ dump_stack(); ++ once = 1; ++ } ++ ++ spin_lock(&pb_lock); ++ not_released++; ++ pb = iopb_to_pb(pb); ++ page_pbc(page) = NULL; ++ io_debug_release(pb); ++ pb->ub->io_pb_held--; ++ spin_unlock(&pb_lock); ++ ++ put_beancounter(pb->ub); ++ io_pb_free(pb); ++} ++ ++static inline int io_debug_precheck_save(struct page *page) ++{ ++ if (unlikely(PageAnon(page))) { ++ anon_pages++; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static inline int io_debug_precheck_release(struct page *page) ++{ ++ return 0; ++} ++#else ++#define io_debug_save(pb, mpb) do { } while (0) ++#define io_debug_release(pb) do { } while (0) ++#define io_debug_precheck_save(page) (0) ++#define io_debug_precheck_release(p) (0) ++#endif ++ ++static inline void set_page_io(struct page *page, struct page_beancounter *pb, ++ struct page_beancounter *mapped_pb) ++{ ++ unsigned long val; ++ ++ val = (unsigned long)pb | PAGE_IO_MARK; ++ pb->page = page; ++ ++ page_pbc(page) = (struct page_beancounter *)val; ++ io_debug_save(pb, mapped_pb); ++ pb->ub->io_pb_held++; ++} ++ ++static inline void put_page_io(struct page *page, struct page_beancounter *pb) ++{ ++ pb->ub->io_pb_held--; ++ io_debug_release(pb); ++ page_pbc(page) = pb->page_pb_list; ++} ++ ++void ub_io_save_context(struct page *page, size_t bytes_dirtied) ++{ ++ struct user_beancounter *ub; ++ struct page_beancounter *pb, *mapped_pb, *io_pb; ++ ++ if (unlikely(in_interrupt())) { ++ WARN_ON_ONCE(1); ++ return; ++ } ++ ++ /* ++ * FIXME - this can happen from atomic context and ++ * it's probably not that good to loose some requests ++ */ ++ ++ pb = io_pb_alloc(); ++ io_pb = NULL; ++ ++ spin_lock(&pb_lock); ++ if (io_debug_precheck_save(page)) ++ goto out_unlock; ++ ++ mapped_pb = page_pbc(page); ++ io_pb = iopb_to_pb(mapped_pb); ++ if (io_pb != NULL) { ++ /* ++ * this page has an IO - release it and force a new one ++ * We could also race with page cleaning - see below ++ */ ++ mapped_pb = io_pb->page_pb_list; ++ put_page_io(page, io_pb); ++ } ++ ++ /* ++ * If the page is mapped we must save the context ++ * it maps to. If the page isn't mapped we use current ++ * context as this is a regular write. ++ */ ++ ++ if (mapped_pb != NULL) ++ ub = top_beancounter(mapped_pb->ub); ++ else ++ ub = get_io_ub(); ++ ++ if (!PageDirty(page)) { ++ /* ++ * race with clear_page_dirty(_for_io) - account ++ * writes for ub_io_release_context() ++ */ ++ if (io_pb != NULL) ++ io_pb->ub->bytes_wrote += PAGE_CACHE_SIZE; ++ if (pb != NULL) ++ io_pb_free(pb); ++ goto out_unlock; ++ } ++ ++ if (pb == NULL) { ++ ub->bytes_dirty_missed += bytes_dirtied; ++ goto out_unlock; ++ } ++ ++ /* ++ * the page may become clean here, but the context will be seen ++ * in ub_io_release_context() ++ */ ++ ++ pb->ub = get_beancounter(ub); ++ pb->page_pb_list = mapped_pb; ++ ub->bytes_dirtied += bytes_dirtied; ++ ++ set_page_io(page, pb, mapped_pb); ++ ++out_unlock: ++ spin_unlock(&pb_lock); ++ ++ if (io_pb != NULL) { ++ put_beancounter(io_pb->ub); ++ io_pb_free(io_pb); ++ } ++} ++ ++void ub_io_release_context(struct page *page, size_t wrote) ++{ ++ struct page_beancounter *pb; ++ ++ if (io_debug_precheck_release(page)) ++ return; ++ ++ if (unlikely(in_interrupt())) { ++ WARN_ON_ONCE(1); ++ return; ++ } ++ ++ spin_lock(&pb_lock); ++ pb = iopb_to_pb(page_pbc(page)); ++ if (unlikely(pb == NULL)) ++ /* ++ * this may happen if we failed to allocate ++ * context in ub_io_save_context or raced with it ++ */ ++ goto out_unlock; ++ ++ if (wrote) ++ pb->ub->bytes_wrote += wrote; ++ ++ put_page_io(page, pb); ++out_unlock: ++ spin_unlock(&pb_lock); ++ ++ if (pb != NULL) { ++ put_beancounter(pb->ub); ++ io_pb_free(pb); ++ } ++} ++ ++void __init ub_init_io(struct kmem_cache *pb_cachep) ++{ ++ pb_pool = mempool_create_slab_pool(PB_MIN_IO, pb_cachep); ++ if (pb_pool == NULL) ++ panic("Can't create pb_pool"); ++} ++ ++#ifdef CONFIG_PROC_FS ++#define in_flight(var) (var > var##_done ? var - var##_done : 0) ++ ++static int bc_ioacct_show(struct seq_file *f, void *v) ++{ ++ int i; ++ unsigned long long read, write, cancel; ++ unsigned long sync, sync_done; ++ unsigned long fsync, fsync_done; ++ unsigned long fdsync, fdsync_done; ++ unsigned long frsync, frsync_done; ++ unsigned long reads, writes; ++ unsigned long long rchar, wchar; ++ struct user_beancounter *ub; ++ ++ ub = seq_beancounter(f); ++ ++ read = write = cancel = 0; ++ sync = sync_done = fsync = fsync_done = ++ fdsync = fdsync_done = frsync = frsync_done = 0; ++ reads = writes = 0; ++ rchar = wchar = 0; ++ for_each_online_cpu(i) { ++ struct ub_percpu_struct *ub_percpu; ++ ub_percpu = per_cpu_ptr(ub->ub_percpu, i); ++ ++ read += ub_percpu->bytes_read; ++ write += ub_percpu->bytes_wrote; ++ cancel += ub_percpu->bytes_cancelled; ++ ++ sync += ub_percpu->sync; ++ fsync += ub_percpu->fsync; ++ fdsync += ub_percpu->fdsync; ++ frsync += ub_percpu->frsync; ++ sync_done += ub_percpu->sync_done; ++ fsync_done += ub_percpu->fsync_done; ++ fdsync_done += ub_percpu->fdsync_done; ++ frsync_done += ub_percpu->frsync_done; ++ ++ reads += ub_percpu->read; ++ writes += ub_percpu->write; ++ rchar += ub_percpu->rchar; ++ wchar += ub_percpu->wchar; ++ } ++ ++ seq_printf(f, bc_proc_llu_fmt, "read", read); ++ seq_printf(f, bc_proc_llu_fmt, "write", ub->bytes_wrote + write); ++ seq_printf(f, bc_proc_llu_fmt, "dirty", ub->bytes_dirtied); ++ seq_printf(f, bc_proc_llu_fmt, "cancel", cancel); ++ seq_printf(f, bc_proc_llu_fmt, "missed", ub->bytes_dirty_missed); ++ ++ seq_printf(f, bc_proc_lu_lfmt, "syncs_total", sync); ++ seq_printf(f, bc_proc_lu_lfmt, "fsyncs_total", fsync); ++ seq_printf(f, bc_proc_lu_lfmt, "fdatasyncs_total", fdsync); ++ seq_printf(f, bc_proc_lu_lfmt, "range_syncs_total", frsync); ++ ++ seq_printf(f, bc_proc_lu_lfmt, "syncs_active", in_flight(sync)); ++ seq_printf(f, bc_proc_lu_lfmt, "fsyncs_active", in_flight(fsync)); ++ seq_printf(f, bc_proc_lu_lfmt, "fdatasyncs_active", in_flight(fsync)); ++ seq_printf(f, bc_proc_lu_lfmt, "range_syncs_active", in_flight(frsync)); ++ ++ seq_printf(f, bc_proc_lu_lfmt, "vfs_reads", reads); ++ seq_printf(f, bc_proc_llu_fmt, "vfs_read_chars", rchar); ++ seq_printf(f, bc_proc_lu_lfmt, "vfs_writes", writes); ++ seq_printf(f, bc_proc_llu_fmt, "vfs_write_chars", wchar); ++ ++ seq_printf(f, bc_proc_lu_lfmt, "io_pbs", ub->io_pb_held); ++ return 0; ++} ++ ++static struct bc_proc_entry bc_ioacct_entry = { ++ .name = "ioacct", ++ .u.show = bc_ioacct_show, ++}; ++ ++#ifdef CONFIG_BC_DEBUG_IO ++#define PTR_SIZE (int)(sizeof(void *) * 2) ++#define INT_SIZE (int)(sizeof(int) * 2) ++ ++static int bc_io_show(struct seq_file *f, void *v) ++{ ++ struct list_head *lh; ++ struct page_beancounter *pb; ++ struct page *pg; ++ ++ lh = (struct list_head *)v; ++ if (lh == &pb_io_list) { ++ seq_printf(f, "Races: anon %lu missed %lu\n", ++ anon_pages, not_released); ++ ++ seq_printf(f, "%-*s %-1s %-*s %-4s %*s %*s " ++ "%-*s %-*s %-1s %-*s %-*s\n", ++ PTR_SIZE, "pb", "", ++ PTR_SIZE, "page", "flg", ++ INT_SIZE, "cnt", INT_SIZE, "mcnt", ++ PTR_SIZE, "pb_list", ++ PTR_SIZE, "page_pb", "", ++ PTR_SIZE, "mapping", ++ INT_SIZE, "ub"); ++ return 0; ++ } ++ ++ pb = list_entry(lh, struct page_beancounter, io_list); ++ pg = pb->page; ++ seq_printf(f, "%p %c %p %c%c%c%c %*d %*d %p %p %c %p %d\n", ++ pb, pb->io_debug ? 'e' : 'm', pg, ++ PageDirty(pg) ? 'D' : 'd', ++ PageAnon(pg) ? 'A' : 'a', ++ PageWriteback(pg) ? 'W' : 'w', ++ PageLocked(pg) ? 'L' : 'l', ++ INT_SIZE, page_count(pg), ++ INT_SIZE, page_mapcount(pg), ++ pb->page_pb_list, page_pbc(pg), ++ iopb_to_pb(page_pbc(pg)) == pb ? ' ' : '!', ++ pg->mapping, pb->ub->ub_uid); ++ return 0; ++} ++ ++static void *bc_io_start(struct seq_file *f, loff_t *ppos) ++{ ++ loff_t pos; ++ struct list_head *lh; ++ ++ pos = *ppos; ++ spin_lock(&pb_lock); ++ if (pos == 0) ++ return &pb_io_list; ++ ++ list_for_each (lh, &pb_io_list) ++ if (pos-- == 1) ++ return lh; ++ return NULL; ++} ++ ++static void *bc_io_next(struct seq_file *f, void *v, loff_t *ppos) ++{ ++ struct list_head *lh; ++ ++ (*ppos)++; ++ lh = (struct list_head *)v; ++ return lh->next == &pb_io_list ? NULL : lh->next; ++} ++ ++static void bc_io_stop(struct seq_file *f, void *v) ++{ ++ spin_unlock(&pb_lock); ++} ++ ++static struct seq_operations bc_io_seq_ops = { ++ .start = bc_io_start, ++ .next = bc_io_next, ++ .stop = bc_io_stop, ++ .show = bc_io_show, ++}; ++ ++static int bc_io_open(struct inode *inode, struct file *filp) ++{ ++ if (!(capable(CAP_DAC_OVERRIDE) && capable(CAP_DAC_READ_SEARCH))) ++ return -EACCES; ++ ++ return seq_open(filp, &bc_io_seq_ops); ++} ++static struct file_operations bc_io_debug_ops = { ++ .open = bc_io_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++ ++static struct bc_proc_entry bc_ioacct_debug_entry = { ++ .name = "ioacct_debug", ++ .u.fops = &bc_io_debug_ops, ++}; ++#endif ++ ++static int bc_ioacct_notify(struct vnotifier_block *self, ++ unsigned long event, void *arg, int old_ret) ++{ ++ struct user_beancounter *ub; ++ unsigned long *vm_events; ++ unsigned long long bin, bout; ++ int i; ++ ++ if (event != VIRTINFO_VMSTAT) ++ return old_ret; ++ ++ ub = top_beancounter(get_exec_ub()); ++ if (ub == get_ub0()) ++ return old_ret; ++ ++ /* Think over: do we need to account here bytes_dirty_missed? */ ++ bout = ub->bytes_wrote; ++ bin = 0; ++ for_each_online_cpu(i) { ++ bout += per_cpu_ptr(ub->ub_percpu, i)->bytes_wrote; ++ bin += per_cpu_ptr(ub->ub_percpu, i)->bytes_read; ++ } ++ ++ /* convert to Kbytes */ ++ bout >>= 10; ++ bin >>= 10; ++ ++ vm_events = ((unsigned long *)arg) + NR_VM_ZONE_STAT_ITEMS; ++ vm_events[PGPGOUT] = (unsigned long)bout; ++ vm_events[PGPGIN] = (unsigned long)bin; ++ return NOTIFY_OK; ++} ++ ++static struct vnotifier_block bc_ioacct_nb = { ++ .notifier_call = bc_ioacct_notify, ++}; ++ ++static int __init bc_ioacct_init(void) ++{ ++#ifdef CONFIG_BC_DEBUG_IO ++ bc_register_proc_root_entry(&bc_ioacct_debug_entry); ++#endif ++ bc_register_proc_entry(&bc_ioacct_entry); ++ ++ virtinfo_notifier_register(VITYPE_GENERAL, &bc_ioacct_nb); ++ return 0; ++} ++ ++late_initcall(bc_ioacct_init); ++#endif +Index: kernel/kernel/bc/io_prio.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/io_prio.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,288 @@ ++/* ++ * kernel/bc/io_prio.c ++ * ++ * Copyright (C) 2007 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * Vasily Tarasov ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct cfq_bc_data *__find_cfq_bc(struct ub_iopriv *iopriv, ++ struct cfq_data *cfqd) ++{ ++ struct cfq_bc_data *cfq_bc; ++ ++ list_for_each_entry(cfq_bc, &iopriv->cfq_bc_head, cfq_bc_list) ++ if (cfq_bc->cfqd == cfqd) ++ return cfq_bc; ++ ++ return NULL; ++} ++ ++struct cfq_bc_data *bc_find_cfq_bc(struct ub_iopriv *iopriv, ++ struct cfq_data *cfqd) ++{ ++ struct cfq_bc_data *cfq_bc; ++ unsigned long flags; ++ ++ read_lock_irqsave(&iopriv->cfq_bc_list_lock, flags); ++ cfq_bc = __find_cfq_bc(iopriv, cfqd); ++ read_unlock_irqrestore(&iopriv->cfq_bc_list_lock, flags); ++ return cfq_bc; ++} ++struct cfq_bc_data *bc_findcreate_cfq_bc(struct ub_iopriv *iopriv, ++ struct cfq_data *cfqd, gfp_t gfp_mask) ++{ ++ struct cfq_bc_data *cfq_bc_new; ++ struct cfq_bc_data *cfq_bc; ++ unsigned long flags; ++ ++ cfq_bc = bc_find_cfq_bc(iopriv, cfqd); ++ if (cfq_bc) ++ return cfq_bc; ++ ++ cfq_bc_new = kzalloc(sizeof(*cfq_bc_new), gfp_mask); ++ if (!cfq_bc_new) ++ return NULL; ++ ++ cfq_init_cfq_bc(cfq_bc_new); ++ cfq_bc_new->cfqd = cfqd; ++ cfq_bc_new->ub_iopriv = iopriv; ++ ++ write_lock_irqsave(&iopriv->cfq_bc_list_lock, flags); ++ cfq_bc = __find_cfq_bc(iopriv, cfqd); ++ if (cfq_bc) ++ kfree(cfq_bc_new); ++ else { ++ list_add_tail(&cfq_bc_new->cfq_bc_list, ++ &iopriv->cfq_bc_head); ++ cfq_bc = cfq_bc_new; ++ } ++ write_unlock_irqrestore(&iopriv->cfq_bc_list_lock, flags); ++ ++ return cfq_bc; ++} ++ ++void bc_init_ioprio(struct ub_iopriv *iopriv) ++{ ++ INIT_LIST_HEAD(&iopriv->cfq_bc_head); ++ rwlock_init(&iopriv->cfq_bc_list_lock); ++ iopriv->ioprio = UB_IOPRIO_BASE; ++} ++ ++static void inline bc_cfq_bc_check_empty(struct cfq_bc_data *cfq_bc) ++{ ++ BUG_ON(!RB_EMPTY_ROOT(&cfq_bc->service_tree.rb)); ++} ++ ++static void bc_release_cfq_bc(struct cfq_bc_data *cfq_bc) ++{ ++ struct cfq_data *cfqd; ++ elevator_t *eq; ++ int i; ++ ++ cfqd = cfq_bc->cfqd; ++ eq = cfqd->queue->elevator; ++ ++ for (i = 0; i < CFQ_PRIO_LISTS; i++) { ++ if (cfq_bc->async_cfqq[0][i]) { ++ eq->ops->put_queue(cfq_bc->async_cfqq[0][i]); ++ cfq_bc->async_cfqq[0][i] = NULL; ++ } ++ if (cfq_bc->async_cfqq[1][i]) { ++ eq->ops->put_queue(cfq_bc->async_cfqq[1][i]); ++ cfq_bc->async_cfqq[1][i] = NULL; ++ } ++ } ++ if (cfq_bc->async_idle_cfqq) { ++ eq->ops->put_queue(cfq_bc->async_idle_cfqq); ++ cfq_bc->async_idle_cfqq = NULL; ++ } ++ /* ++ * Note: this cfq_bc is already not in active list, ++ * but can be still pointed from cfqd as active. ++ */ ++ cfqd->active_cfq_bc = NULL; ++ ++ bc_cfq_bc_check_empty(cfq_bc); ++ list_del(&cfq_bc->cfq_bc_list); ++ kfree(cfq_bc); ++} ++ ++void bc_fini_ioprio(struct ub_iopriv *iopriv) ++{ ++ struct cfq_bc_data *cfq_bc; ++ struct cfq_bc_data *cfq_bc_tmp; ++ unsigned long flags; ++ spinlock_t *queue_lock; ++ ++ /* ++ * Don't get cfq_bc_list_lock since ub is already dead, ++ * but async cfqqs are still in hash list, consequently ++ * queue_lock should be hold. ++ */ ++ list_for_each_entry_safe(cfq_bc, cfq_bc_tmp, ++ &iopriv->cfq_bc_head, cfq_bc_list) { ++ queue_lock = cfq_bc->cfqd->queue->queue_lock; ++ spin_lock_irqsave(queue_lock, flags); ++ bc_release_cfq_bc(cfq_bc); ++ spin_unlock_irqrestore(queue_lock, flags); ++ } ++} ++ ++void bc_cfq_exit_queue(struct cfq_data *cfqd) ++{ ++ struct cfq_bc_data *cfq_bc; ++ struct user_beancounter *ub; ++ ++ local_irq_disable(); ++ for_each_beancounter(ub) { ++ write_lock(&ub->iopriv.cfq_bc_list_lock); ++ cfq_bc = __find_cfq_bc(&ub->iopriv, cfqd); ++ if (!cfq_bc) { ++ write_unlock(&ub->iopriv.cfq_bc_list_lock); ++ continue; ++ } ++ bc_release_cfq_bc(cfq_bc); ++ write_unlock(&ub->iopriv.cfq_bc_list_lock); ++ } ++ local_irq_enable(); ++} ++ ++int bc_expired(struct cfq_data *cfqd) ++{ ++ return time_after(jiffies, cfqd->slice_end) ? 1 : 0; ++} ++ ++static inline int bc_empty(struct cfq_bc_data *cfq_bc) ++{ ++ /* ++ * consider BC as empty only if there is no requests ++ * in elevator _and_ in driver ++ */ ++ if (!cfq_bc->rqnum && !cfq_bc->on_dispatch) ++ return 1; ++ ++ return 0; ++} ++ ++static inline unsigned long bc_time_slice_by_ioprio(unsigned int ioprio, ++ unsigned int base_slice) ++{ ++ return base_slice + ++ (base_slice * (ioprio - UB_IOPRIO_MIN)) ++ / (UB_IOPRIO_MAX - UB_IOPRIO_MIN - 1); ++} ++ ++static inline void bc_set_active(struct cfq_data *cfqd) ++{ ++ if (list_empty(&cfqd->act_cfq_bc_head)) { ++ cfqd->active_cfq_bc = NULL; ++ return; ++ } ++ ++ cfqd->active_cfq_bc = list_first_entry(&cfqd->act_cfq_bc_head, ++ struct cfq_bc_data, act_cfq_bc_list); ++ list_move_tail(&cfqd->active_cfq_bc->act_cfq_bc_list, ++ &cfqd->act_cfq_bc_head); ++ cfqd->slice_end = jiffies + ++ bc_time_slice_by_ioprio(cfqd->active_cfq_bc->ub_iopriv->ioprio, ++ cfqd->cfq_ub_slice); ++} ++ ++void bc_schedule_active(struct cfq_data *cfqd) ++{ ++ if (bc_expired(cfqd) || !cfqd->active_cfq_bc || ++ !cfqd->active_cfq_bc->rqnum) ++ bc_set_active(cfqd); ++} ++ ++void bc_inc_rqnum(struct cfq_queue *cfqq) ++{ ++ struct cfq_bc_data *cfq_bc; ++ ++ cfq_bc = cfqq->cfq_bc; ++ ++ if (!cfq_bc->rqnum) ++ list_add_tail(&cfq_bc->act_cfq_bc_list, ++ &cfqq->cfqd->act_cfq_bc_head); ++ ++ cfq_bc->rqnum++; ++} ++ ++void bc_dec_rqnum(struct cfq_queue *cfqq) ++{ ++ struct cfq_bc_data *cfq_bc; ++ ++ cfq_bc = cfqq->cfq_bc; ++ ++ cfq_bc->rqnum--; ++ ++ if (!cfq_bc->rqnum) ++ list_del(&cfq_bc->act_cfq_bc_list); ++} ++ ++unsigned long bc_set_ioprio(int ubid, int ioprio) ++{ ++ struct user_beancounter *ub; ++ ++ if (ioprio < UB_IOPRIO_MIN || ioprio >= UB_IOPRIO_MAX) ++ return -ERANGE; ++ ++ ub = get_beancounter_byuid(ubid, 0); ++ if (!ub) ++ return -ESRCH; ++ ++ ub->iopriv.ioprio = ioprio; ++ put_beancounter(ub); ++ ++ return 0; ++} ++ ++struct user_beancounter *bc_io_switch_context(struct page *page) ++{ ++ struct page_beancounter *pb; ++ struct user_beancounter *old_ub = NULL; ++ ++ pb = page_iopb(page); ++ pb = iopb_to_pb(pb); ++ if (pb) { ++ get_beancounter(pb->ub); ++ old_ub = set_exec_ub(pb->ub); ++ } ++ ++ return old_ub; ++} ++ ++void bc_io_restore_context(struct user_beancounter *ub) ++{ ++ struct user_beancounter *old_ub; ++ ++ if (ub) { ++ old_ub = set_exec_ub(ub); ++ put_beancounter(old_ub); ++ } ++} ++ ++EXPORT_SYMBOL(bc_io_switch_context); ++EXPORT_SYMBOL(bc_io_restore_context); ++EXPORT_SYMBOL(__find_cfq_bc); ++EXPORT_SYMBOL(bc_fini_ioprio); ++EXPORT_SYMBOL(bc_init_ioprio); ++EXPORT_SYMBOL(bc_findcreate_cfq_bc); ++EXPORT_SYMBOL(bc_cfq_exit_queue); ++EXPORT_SYMBOL(bc_expired); ++EXPORT_SYMBOL(bc_schedule_active); ++EXPORT_SYMBOL(bc_inc_rqnum); ++EXPORT_SYMBOL(bc_dec_rqnum); +Index: kernel/kernel/bc/kmem.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/kmem.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,406 @@ ++/* ++ * kernel/bc/kmem.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * Initialization ++ */ ++ ++/* ++ * Slab accounting ++ */ ++ ++#ifdef CONFIG_BC_DEBUG_KMEM ++ ++#define CC_HASH_SIZE 1024 ++static struct ub_cache_counter *cc_hash[CC_HASH_SIZE]; ++spinlock_t cc_lock; ++ ++static void __free_cache_counters(struct user_beancounter *ub, ++ struct kmem_cache *cachep) ++{ ++ struct ub_cache_counter *cc, **pprev, *del; ++ int i; ++ unsigned long flags; ++ ++ del = NULL; ++ spin_lock_irqsave(&cc_lock, flags); ++ for (i = 0; i < CC_HASH_SIZE; i++) { ++ pprev = &cc_hash[i]; ++ cc = cc_hash[i]; ++ while (cc != NULL) { ++ if (cc->ub != ub && cc->cachep != cachep) { ++ pprev = &cc->next; ++ cc = cc->next; ++ continue; ++ } ++ ++ list_del(&cc->ulist); ++ *pprev = cc->next; ++ cc->next = del; ++ del = cc; ++ cc = *pprev; ++ } ++ } ++ spin_unlock_irqrestore(&cc_lock, flags); ++ ++ while (del != NULL) { ++ cc = del->next; ++ kfree(del); ++ del = cc; ++ } ++} ++ ++void ub_free_counters(struct user_beancounter *ub) ++{ ++ __free_cache_counters(ub, NULL); ++} ++ ++void ub_kmemcache_free(struct kmem_cache *cachep) ++{ ++ __free_cache_counters(NULL, cachep); ++} ++ ++void __init init_cache_counters(void) ++{ ++ memset(cc_hash, 0, CC_HASH_SIZE * sizeof(cc_hash[0])); ++ spin_lock_init(&cc_lock); ++} ++ ++#define cc_hash_fun(ub, cachep) ( \ ++ (((unsigned long)(ub) >> L1_CACHE_SHIFT) ^ \ ++ ((unsigned long)(ub) >> (BITS_PER_LONG / 2)) ^ \ ++ ((unsigned long)(cachep) >> L1_CACHE_SHIFT) ^ \ ++ ((unsigned long)(cachep) >> (BITS_PER_LONG / 2)) \ ++ ) & (CC_HASH_SIZE - 1)) ++ ++static int change_slab_charged(struct user_beancounter *ub, ++ struct kmem_cache *cachep, long val) ++{ ++ struct ub_cache_counter *cc, *new_cnt, **pprev; ++ unsigned long flags; ++ ++ new_cnt = NULL; ++again: ++ spin_lock_irqsave(&cc_lock, flags); ++ cc = cc_hash[cc_hash_fun(ub, cachep)]; ++ while (cc) { ++ if (cc->ub == ub && cc->cachep == cachep) ++ goto found; ++ cc = cc->next; ++ } ++ ++ if (new_cnt != NULL) ++ goto insert; ++ ++ spin_unlock_irqrestore(&cc_lock, flags); ++ ++ new_cnt = kmalloc(sizeof(*new_cnt), GFP_ATOMIC); ++ if (new_cnt == NULL) ++ return -ENOMEM; ++ ++ new_cnt->counter = 0; ++ new_cnt->ub = ub; ++ new_cnt->cachep = cachep; ++ goto again; ++ ++insert: ++ pprev = &cc_hash[cc_hash_fun(ub, cachep)]; ++ new_cnt->next = *pprev; ++ *pprev = new_cnt; ++ list_add(&new_cnt->ulist, &ub->ub_cclist); ++ cc = new_cnt; ++ new_cnt = NULL; ++ ++found: ++ cc->counter += val; ++ spin_unlock_irqrestore(&cc_lock, flags); ++ if (new_cnt) ++ kfree(new_cnt); ++ return 0; ++} ++ ++static inline int inc_slab_charged(struct user_beancounter *ub, ++ struct kmem_cache *cachep) ++{ ++ return change_slab_charged(ub, cachep, 1); ++} ++ ++static inline void dec_slab_charged(struct user_beancounter *ub, ++ struct kmem_cache *cachep) ++{ ++ if (change_slab_charged(ub, cachep, -1) < 0) ++ BUG(); ++} ++ ++#include ++ ++#define inc_pages_charged(ub, order) ub_percpu_add(ub, \ ++ pages_charged, 1 << order) ++#define dec_pages_charged(ub, order) ub_percpu_sub(ub, \ ++ pages_charged, 1 << order) ++ ++#ifdef CONFIG_PROC_FS ++static int bc_kmem_debug_show(struct seq_file *f, void *v) ++{ ++ struct user_beancounter *ub; ++ struct ub_cache_counter *cc; ++ long pages, vmpages, pbc; ++ int i; ++ ++ ub = seq_beancounter(f); ++ ++ pages = vmpages = pbc = 0; ++ for_each_online_cpu(i) { ++ pages += per_cpu_ptr(ub->ub_percpu, i)->pages_charged; ++ vmpages += per_cpu_ptr(ub->ub_percpu, i)->vmalloc_charged; ++ pbc += per_cpu_ptr(ub->ub_percpu, i)->pbcs; ++ } ++ if (pages < 0) ++ pages = 0; ++ if (vmpages < 0) ++ vmpages = 0; ++ ++ seq_printf(f, bc_proc_lu_lu_fmt, "pages", pages, PAGE_SIZE); ++ seq_printf(f, bc_proc_lu_lu_fmt, "vmalloced", vmpages, PAGE_SIZE); ++ seq_printf(f, bc_proc_lu_lu_fmt, "pbcs", pbc, ++ sizeof(struct page_beancounter)); ++ ++ spin_lock_irq(&cc_lock); ++ list_for_each_entry (cc, &ub->ub_cclist, ulist) { ++ struct kmem_cache *cachep; ++ ++ cachep = cc->cachep; ++ seq_printf(f, bc_proc_lu_lu_fmt, ++ kmem_cache_name(cachep), ++ cc->counter, ++ kmem_cache_objuse(cachep)); ++ } ++ spin_unlock_irq(&cc_lock); ++ return 0; ++} ++ ++static struct bc_proc_entry bc_kmem_debug_entry = { ++ .name = "kmem_debug", ++ .u.show = bc_kmem_debug_show, ++}; ++ ++static int __init bc_kmem_debug_init(void) ++{ ++ bc_register_proc_entry(&bc_kmem_debug_entry); ++ return 0; ++} ++ ++late_initcall(bc_kmem_debug_init); ++#endif ++ ++#else ++#define inc_slab_charged(ub, cache) (0) ++#define dec_slab_charged(ub, cache) do { } while (0) ++#define inc_pages_charged(ub, cache) do { } while (0) ++#define dec_pages_charged(ub, cache) do { } while (0) ++#endif ++ ++#define UB_KMEM_QUANT (PAGE_SIZE * 4) ++ ++/* called with IRQ disabled */ ++int ub_kmemsize_charge(struct user_beancounter *ub, ++ unsigned long size, ++ enum ub_severity strict) ++{ ++ struct task_beancounter *tbc; ++ ++ tbc = ¤t->task_bc; ++ if (ub != tbc->task_ub || size > UB_KMEM_QUANT) ++ goto just_charge; ++ if (tbc->kmem_precharged >= size) { ++ tbc->kmem_precharged -= size; ++ return 0; ++ } ++ ++ if (charge_beancounter(ub, UB_KMEMSIZE, UB_KMEM_QUANT, UB_HARD) == 0) { ++ tbc->kmem_precharged += UB_KMEM_QUANT - size; ++ return 0; ++ } ++ ++just_charge: ++ return charge_beancounter(ub, UB_KMEMSIZE, size, strict); ++} ++ ++/* called with IRQ disabled */ ++void ub_kmemsize_uncharge(struct user_beancounter *ub, ++ unsigned long size) ++{ ++ struct task_beancounter *tbc; ++ ++ if (size > UB_MAXVALUE) { ++ printk("ub_kmemsize_uncharge: size %lu\n", size); ++ dump_stack(); ++ } ++ ++ tbc = ¤t->task_bc; ++ if (ub != tbc->task_ub) ++ goto just_uncharge; ++ ++ tbc->kmem_precharged += size; ++ if (tbc->kmem_precharged < UB_KMEM_QUANT * 2) ++ return; ++ size = tbc->kmem_precharged - UB_KMEM_QUANT; ++ tbc->kmem_precharged -= size; ++ ++just_uncharge: ++ uncharge_beancounter(ub, UB_KMEMSIZE, size); ++} ++ ++/* called with IRQ disabled */ ++int ub_slab_charge(struct kmem_cache *cachep, void *objp, gfp_t flags) ++{ ++ unsigned int size; ++ struct user_beancounter *ub; ++ ++ ub = get_beancounter(get_exec_ub()); ++ if (ub == NULL) ++ return 0; ++ ++ size = CHARGE_SIZE(kmem_cache_objuse(cachep)); ++ if (ub_kmemsize_charge(ub, size, ++ (flags & __GFP_SOFT_UBC ? UB_SOFT : UB_HARD))) ++ goto out_err; ++ ++ if (inc_slab_charged(ub, cachep) < 0) { ++ ub_kmemsize_uncharge(ub, size); ++ goto out_err; ++ } ++ *ub_slab_ptr(cachep, objp) = ub; ++ return 0; ++ ++out_err: ++ put_beancounter(ub); ++ return -ENOMEM; ++} ++ ++/* called with IRQ disabled */ ++void ub_slab_uncharge(struct kmem_cache *cachep, void *objp) ++{ ++ unsigned int size; ++ struct user_beancounter **ub_ref; ++ ++ ub_ref = ub_slab_ptr(cachep, objp); ++ if (*ub_ref == NULL) ++ return; ++ ++ dec_slab_charged(*ub_ref, cachep); ++ size = CHARGE_SIZE(kmem_cache_objuse(cachep)); ++ ub_kmemsize_uncharge(*ub_ref, size); ++ put_beancounter(*ub_ref); ++ *ub_ref = NULL; ++} ++ ++/* ++ * Pages accounting ++ */ ++ ++int ub_page_charge(struct page *page, int order, gfp_t mask) ++{ ++ struct user_beancounter *ub; ++ unsigned long flags; ++ ++ ub = NULL; ++ if (!(mask & __GFP_UBC)) ++ goto out; ++ ++ ub = get_beancounter(get_exec_ub()); ++ if (ub == NULL) ++ goto out; ++ ++ local_irq_save(flags); ++ if (ub_kmemsize_charge(ub, CHARGE_ORDER(order), ++ (mask & __GFP_SOFT_UBC ? UB_SOFT : UB_HARD))) ++ goto err; ++ ++ inc_pages_charged(ub, order); ++ local_irq_restore(flags); ++out: ++ BUG_ON(page_ub(page) != NULL); ++ page_ub(page) = ub; ++ return 0; ++ ++err: ++ local_irq_restore(flags); ++ BUG_ON(page_ub(page) != NULL); ++ put_beancounter(ub); ++ return -ENOMEM; ++} ++ ++void ub_page_uncharge(struct page *page, int order) ++{ ++ struct user_beancounter *ub; ++ unsigned long flags; ++ ++ ub = page_ub(page); ++ if (ub == NULL) ++ return; ++ ++ BUG_ON(ub->ub_magic != UB_MAGIC); ++ dec_pages_charged(ub, order); ++ local_irq_save(flags); ++ ub_kmemsize_uncharge(ub, CHARGE_ORDER(order)); ++ local_irq_restore(flags); ++ put_beancounter(ub); ++ page_ub(page) = NULL; ++} ++ ++/* ++ * takes init_mm.page_table_lock ++ * some outer lock to protect pages from vmalloced area must be held ++ */ ++struct user_beancounter *vmalloc_ub(void *obj) ++{ ++ struct page *pg; ++ ++ pg = vmalloc_to_page(obj); ++ if (pg == NULL) ++ return NULL; ++ ++ return page_ub(pg); ++} ++ ++EXPORT_SYMBOL(vmalloc_ub); ++ ++struct user_beancounter *mem_ub(void *obj) ++{ ++ struct user_beancounter *ub; ++ ++ if ((unsigned long)obj >= VMALLOC_START && ++ (unsigned long)obj < VMALLOC_END) ++ ub = vmalloc_ub(obj); ++ else ++ ub = slab_ub(obj); ++ ++ return ub; ++} ++ ++EXPORT_SYMBOL(mem_ub); +Index: kernel/kernel/bc/misc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/misc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,455 @@ ++/* ++ * kernel/bc/misc.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define UB_FILE_MINQUANT 3 ++#define UB_FILE_MAXQUANT 10 ++#define UB_FILE_INIQUANT 4 ++ ++static unsigned long ub_file_precharge(struct task_beancounter *task_bc, ++ struct user_beancounter *ub, unsigned long *kmemsize); ++ ++extern struct kmem_cache *filp_cachep; ++ ++static inline unsigned long ub_file_kmemsize(unsigned long nr) ++{ ++ return CHARGE_SIZE(kmem_cache_objuse(filp_cachep)) * nr; ++} ++ ++/* ++ * Task staff ++ */ ++ ++static void init_task_sub(struct task_struct *parent, ++ struct task_struct *tsk, ++ struct task_beancounter *old_bc) ++{ ++ struct task_beancounter *new_bc; ++ struct user_beancounter *sub; ++ ++ new_bc = &tsk->task_bc; ++ sub = old_bc->fork_sub; ++ new_bc->fork_sub = get_beancounter(sub); ++ new_bc->task_fnode = NULL; ++ new_bc->task_freserv = old_bc->task_freserv; ++ old_bc->task_freserv = NULL; ++ memset(&new_bc->task_data, 0, sizeof(new_bc->task_data)); ++ new_bc->pgfault_handle = 0; ++ new_bc->pgfault_allot = 0; ++} ++ ++void ub_init_task_bc(struct task_beancounter *tbc) ++{ ++ tbc->file_precharged = 0; ++ tbc->file_quant = UB_FILE_INIQUANT; ++ tbc->file_count = 0; ++ ++ tbc->kmem_precharged = 0; ++ tbc->dentry_alloc = 0; ++} ++ ++int ub_task_charge(struct task_struct *parent, struct task_struct *task) ++{ ++ struct task_beancounter *old_bc; ++ struct task_beancounter *new_bc; ++ struct user_beancounter *ub, *pub; ++ unsigned long file_nr, kmemsize; ++ unsigned long flags; ++ ++ old_bc = &parent->task_bc; ++ ub = old_bc->fork_sub; ++ new_bc = &task->task_bc; ++ new_bc->task_ub = get_beancounter(ub); ++ new_bc->exec_ub = get_beancounter(ub); ++ ++ pub = top_beancounter(ub); ++ spin_lock_irqsave(&pub->ub_lock, flags); ++ if (unlikely(__charge_beancounter_locked(pub, UB_NUMPROC, ++ 1, UB_HARD) < 0)) ++ goto out_numproc; ++ ++ ub_init_task_bc(new_bc); ++ file_nr = ub_file_precharge(new_bc, pub, &kmemsize); ++ spin_unlock_irqrestore(&pub->ub_lock, flags); ++ ++ charge_beancounter_notop(ub, UB_NUMPROC, 1); ++ if (likely(file_nr)) { ++ charge_beancounter_notop(ub, UB_NUMFILE, file_nr); ++ charge_beancounter_notop(ub, UB_KMEMSIZE, kmemsize); ++ } ++ ++ init_task_sub(parent, task, old_bc); ++ return 0; ++ ++out_numproc: ++ spin_unlock_irqrestore(&pub->ub_lock, flags); ++ __put_beancounter_batch(ub, 2); ++ return -ENOMEM; ++} ++ ++extern atomic_t dbgpre; ++ ++void ub_task_uncharge(struct task_struct *task) ++{ ++ struct task_beancounter *task_bc; ++ struct user_beancounter *pub; ++ unsigned long file_nr, file_kmemsize; ++ unsigned long flags; ++ ++ task_bc = &task->task_bc; ++ pub = top_beancounter(task_bc->task_ub); ++ spin_lock_irqsave(&pub->ub_lock, flags); ++ __uncharge_beancounter_locked(pub, UB_NUMPROC, 1); ++ file_nr = task_bc->file_precharged; ++ if (likely(file_nr)) ++ __uncharge_beancounter_locked(pub, ++ UB_NUMFILE, file_nr); ++ ++ /* see comment in ub_file_charge */ ++ task_bc->file_precharged = 0; ++ file_kmemsize = ub_file_kmemsize(file_nr); ++ if (likely(file_kmemsize)) ++ __uncharge_beancounter_locked(pub, ++ UB_KMEMSIZE, file_kmemsize); ++ spin_unlock_irqrestore(&pub->ub_lock, flags); ++ ++ uncharge_beancounter_notop(task_bc->task_ub, UB_NUMPROC, 1); ++ if (likely(file_nr)) { ++ uncharge_beancounter_notop(task_bc->task_ub, ++ UB_NUMFILE, file_nr); ++ __put_beancounter_batch(task_bc->task_ub, file_nr); ++ } ++ if (likely(file_kmemsize)) ++ uncharge_beancounter_notop(task_bc->task_ub, ++ UB_KMEMSIZE, file_kmemsize); ++} ++ ++void ub_task_put(struct task_struct *task) ++{ ++ struct task_beancounter *task_bc; ++ struct user_beancounter *pub; ++ unsigned long kmemsize, flags; ++ ++ task_bc = &task->task_bc; ++ ++ pub = top_beancounter(task_bc->task_ub); ++ spin_lock_irqsave(&pub->ub_lock, flags); ++ kmemsize = task_bc->kmem_precharged; ++ task_bc->kmem_precharged = 0; ++ if (likely(kmemsize)) ++ __uncharge_beancounter_locked(pub, UB_KMEMSIZE, kmemsize); ++ spin_unlock_irqrestore(&pub->ub_lock, flags); ++ if (likely(kmemsize)) ++ uncharge_beancounter_notop(task_bc->task_ub, UB_KMEMSIZE, kmemsize); ++ ++ put_beancounter(task_bc->exec_ub); ++ put_beancounter(task_bc->task_ub); ++ put_beancounter(task_bc->fork_sub); ++ /* can't be freed elsewhere, failures possible in the middle of fork */ ++ if (task_bc->task_freserv != NULL) ++ kfree(task_bc->task_freserv); ++ ++ task_bc->exec_ub = (struct user_beancounter *)0xdeadbcbc; ++ task_bc->task_ub = (struct user_beancounter *)0xdead100c; ++ BUG_ON(task_bc->kmem_precharged != 0); ++} ++ ++/* ++ * Files and file locks. ++ */ ++/* ++ * For NUMFILE, we do not take a lock and call charge function ++ * for every file. We try to charge in batches, keeping local reserve on ++ * task. For experimental purposes, batch size is adaptive and depends ++ * on numfile barrier, number of processes, and the history of successes and ++ * failures of batch charges. ++ * ++ * Per-task fields have the following meaning ++ * file_precharged number of files charged to beancounter in advance, ++ * file_quant logarithm of batch size ++ * file_count counter of charge successes, to reduce batch size ++ * fluctuations. ++ */ ++static unsigned long ub_file_precharge(struct task_beancounter *task_bc, ++ struct user_beancounter *ub, unsigned long *kmemsize) ++{ ++ unsigned long n, kmem; ++ ++ n = 1UL << task_bc->file_quant; ++ if (ub->ub_parms[UB_NUMPROC].held > ++ (ub->ub_parms[UB_NUMFILE].barrier >> ++ task_bc->file_quant)) ++ goto nopre; ++ if (unlikely(__charge_beancounter_locked(ub, UB_NUMFILE, n, UB_HARD))) ++ goto nopre; ++ kmem = ub_file_kmemsize(n); ++ if (unlikely(__charge_beancounter_locked(ub, UB_KMEMSIZE, ++ kmem, UB_HARD))) ++ goto nopre_kmem; ++ ++ task_bc->file_precharged += n; ++ get_beancounter_batch(task_bc->task_ub, n); ++ task_bc->file_count++; ++ if (task_bc->file_quant < UB_FILE_MAXQUANT && ++ task_bc->file_count >= task_bc->file_quant) { ++ task_bc->file_quant++; ++ task_bc->file_count = 0; ++ } ++ *kmemsize = kmem; ++ return n; ++ ++nopre_kmem: ++ __uncharge_beancounter_locked(ub, UB_NUMFILE, n); ++nopre: ++ if (task_bc->file_quant > UB_FILE_MINQUANT) ++ task_bc->file_quant--; ++ task_bc->file_count = 0; ++ return 0; ++} ++ ++int ub_file_charge(struct file *f) ++{ ++ struct user_beancounter *ub, *pub; ++ struct task_beancounter *task_bc; ++ unsigned long file_nr, kmem; ++ unsigned long flags; ++ int err; ++ ++ task_bc = ¤t->task_bc; ++ ub = get_exec_ub(); ++ if (unlikely(ub != task_bc->task_ub)) ++ goto just_charge; ++ ++ if (likely(task_bc->file_precharged > 0)) { ++ /* ++ * files are put via RCU in 2.6.16 so during ++ * this decrement an IRQ can happen and called ++ * ub_files_uncharge() will mess file_precharged ++ * ++ * ub_task_uncharge() is called via RCU also so no ++ * protection is needed there ++ * ++ * Xemul ++ */ ++ ++ local_irq_save(flags); ++ task_bc->file_precharged--; ++ local_irq_restore(flags); ++ ++ f->f_ub = ub; ++ return 0; ++ } ++ ++ pub = top_beancounter(ub); ++ spin_lock_irqsave(&pub->ub_lock, flags); ++ file_nr = ub_file_precharge(task_bc, pub, &kmem); ++ if (unlikely(!file_nr)) ++ goto last_try; ++ spin_unlock(&pub->ub_lock); ++ task_bc->file_precharged--; ++ local_irq_restore(flags); ++ ++ charge_beancounter_notop(ub, UB_NUMFILE, file_nr); ++ charge_beancounter_notop(ub, UB_KMEMSIZE, kmem); ++ f->f_ub = ub; ++ return 0; ++ ++just_charge: ++ pub = top_beancounter(ub); ++ spin_lock_irqsave(&pub->ub_lock, flags); ++last_try: ++ kmem = ub_file_kmemsize(1); ++ err = __charge_beancounter_locked(pub, UB_NUMFILE, 1, UB_HARD); ++ if (likely(!err)) { ++ err = __charge_beancounter_locked(pub, UB_KMEMSIZE, ++ kmem, UB_HARD); ++ if (unlikely(err)) ++ __uncharge_beancounter_locked(pub, UB_NUMFILE, 1); ++ } ++ spin_unlock_irqrestore(&pub->ub_lock, flags); ++ if (likely(!err)) { ++ charge_beancounter_notop(ub, UB_NUMFILE, 1); ++ charge_beancounter_notop(ub, UB_KMEMSIZE, kmem); ++ f->f_ub = get_beancounter(ub); ++ } ++ return err; ++} ++ ++void ub_file_uncharge(struct file *f) ++{ ++ struct user_beancounter *ub, *pub; ++ struct task_beancounter *task_bc; ++ unsigned long nr; ++ ++ ub = f->f_ub; ++ task_bc = ¤t->task_bc; ++ if (likely(ub == task_bc->task_ub)) { ++ task_bc->file_precharged++; ++ pub = top_beancounter(ub); ++ if (ub_barrier_farnr(pub, UB_NUMFILE) && ++ ub_barrier_farsz(pub, UB_KMEMSIZE)) ++ return; ++ if (task_bc->file_precharged < (1UL << task_bc->file_quant)) ++ return; ++ nr = task_bc->file_precharged ++ - (1UL << (task_bc->file_quant - 1)); ++ task_bc->file_precharged -= nr; ++ __put_beancounter_batch(ub, nr); ++ uncharge_beancounter(ub, UB_NUMFILE, nr); ++ uncharge_beancounter(ub, UB_KMEMSIZE, ub_file_kmemsize(nr)); ++ } else { ++ uncharge_beancounter(ub, UB_NUMFILE, 1); ++ uncharge_beancounter(ub, UB_KMEMSIZE, ub_file_kmemsize(1)); ++ put_beancounter(ub); ++ } ++} ++ ++int ub_flock_charge(struct file_lock *fl, int hard) ++{ ++ struct user_beancounter *ub; ++ int err; ++ ++ /* No need to get_beancounter here since it's already got in slab */ ++ ub = slab_ub(fl); ++ if (ub == NULL) ++ return 0; ++ ++ err = charge_beancounter(ub, UB_NUMFLOCK, 1, hard ? UB_HARD : UB_SOFT); ++ if (!err) ++ fl->fl_charged = 1; ++ return err; ++} ++ ++void ub_flock_uncharge(struct file_lock *fl) ++{ ++ struct user_beancounter *ub; ++ ++ /* Ub will be put in slab */ ++ ub = slab_ub(fl); ++ if (ub == NULL || !fl->fl_charged) ++ return; ++ ++ uncharge_beancounter(ub, UB_NUMFLOCK, 1); ++ fl->fl_charged = 0; ++} ++ ++/* ++ * Signal handling ++ */ ++ ++static int do_ub_siginfo_charge(struct user_beancounter *ub, ++ unsigned long size) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ if (__charge_beancounter_locked(ub, UB_KMEMSIZE, size, UB_HARD)) ++ goto out_kmem; ++ ++ if (__charge_beancounter_locked(ub, UB_NUMSIGINFO, 1, UB_HARD)) ++ goto out_num; ++ ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return 0; ++ ++out_num: ++ __uncharge_beancounter_locked(ub, UB_KMEMSIZE, size); ++out_kmem: ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return -ENOMEM; ++} ++ ++static void do_ub_siginfo_uncharge(struct user_beancounter *ub, ++ unsigned long size) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ __uncharge_beancounter_locked(ub, UB_KMEMSIZE, size); ++ __uncharge_beancounter_locked(ub, UB_NUMSIGINFO, 1); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++int ub_siginfo_charge(struct sigqueue *sq, struct user_beancounter *ub) ++{ ++ unsigned long size; ++ struct user_beancounter *p, *q; ++ ++ size = CHARGE_SIZE(kmem_obj_objuse(sq)); ++ for (p = ub; p != NULL; p = p->parent) { ++ if (do_ub_siginfo_charge(p, size)) ++ goto unroll; ++ } ++ ++ sq->sig_ub = get_beancounter(ub); ++ return 0; ++ ++unroll: ++ for (q = ub; q != p; q = q->parent) ++ do_ub_siginfo_uncharge(q, size); ++ return -ENOMEM; ++} ++EXPORT_SYMBOL(ub_siginfo_charge); ++ ++void ub_siginfo_uncharge(struct sigqueue *sq) ++{ ++ unsigned long size; ++ struct user_beancounter *ub, *p; ++ ++ p = ub = sq->sig_ub; ++ sq->sig_ub = NULL; ++ size = CHARGE_SIZE(kmem_obj_objuse(sq)); ++ for (; ub != NULL; ub = ub->parent) ++ do_ub_siginfo_uncharge(ub, size); ++ put_beancounter(p); ++} ++ ++/* ++ * PTYs ++ */ ++ ++int ub_pty_charge(struct tty_struct *tty) ++{ ++ struct user_beancounter *ub; ++ int retval; ++ ++ ub = slab_ub(tty); ++ retval = 0; ++ if (ub && tty->driver->subtype == PTY_TYPE_MASTER && ++ !test_bit(TTY_CHARGED, &tty->flags)) { ++ retval = charge_beancounter(ub, UB_NUMPTY, 1, UB_HARD); ++ if (!retval) ++ set_bit(TTY_CHARGED, &tty->flags); ++ } ++ return retval; ++} ++ ++void ub_pty_uncharge(struct tty_struct *tty) ++{ ++ struct user_beancounter *ub; ++ ++ ub = slab_ub(tty); ++ if (ub && tty->driver->subtype == PTY_TYPE_MASTER && ++ test_bit(TTY_CHARGED, &tty->flags)) { ++ uncharge_beancounter(ub, UB_NUMPTY, 1); ++ clear_bit(TTY_CHARGED, &tty->flags); ++ } ++} +Index: kernel/kernel/bc/net.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/net.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1150 @@ ++/* ++ * linux/kernel/bc/net.c ++ * ++ * Copyright (C) 1998-2004 Andrey V. Savochkin ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * TODO: ++ * - sizeof(struct inode) charge ++ * = tcp_mem_schedule() feedback based on ub limits ++ * + measures so that one socket won't exhaust all send buffers, ++ * see bug in bugzilla ++ * = sk->socket check for NULL in snd_wakeups ++ * (tcp_write_space checks for NULL itself) ++ * + in tcp_close(), orphaned socket abortion should be based on ubc ++ * resources (same in tcp_out_of_resources) ++ * Beancounter should also have separate orphaned socket counter... ++ * + for rcv, in-order segment should be accepted ++ * if only barrier is exceeded ++ * = tcp_rmem_schedule() feedback based on ub limits ++ * - repair forward_alloc mechanism for receive buffers ++ * It's idea is that some buffer space is pre-charged so that receive fast ++ * path doesn't need to take spinlocks and do other heavy stuff ++ * + tcp_prune_queue actions based on ub limits ++ * + window adjustments depending on available buffers for receive ++ * - window adjustments depending on available buffers for send ++ * + race around usewreserv ++ * + avoid allocating new page for each tiny-gram, see letter from ANK ++ * + rename ub_sock_lock ++ * + sk->sleep wait queue probably can be used for all wakeups, and ++ * sk->ub_wait is unnecessary ++ * + for UNIX sockets, the current algorithm will lead to ++ * UB_UNIX_MINBUF-sized messages only for non-blocking case ++ * - charge for af_packet sockets ++ * + all datagram sockets should be charged to NUMUNIXSOCK ++ * - we do not charge for skb copies and clones staying in device queues ++ * + live-lock if number of sockets is big and buffer limits are small ++ * [diff-ubc-dbllim3] ++ * - check that multiple readers/writers on the same socket won't cause fatal ++ * consequences ++ * - check allocation/charge orders ++ * + There is potential problem with callback_lock. In *snd_wakeup we take ++ * beancounter first, in sock_def_error_report - callback_lock first. ++ * then beancounter. This is not a problem if callback_lock taken ++ * readonly, but anyway... ++ * - SKB_CHARGE_SIZE doesn't include the space wasted by slab allocator ++ * General kernel problems: ++ * - in tcp_sendmsg(), if allocation fails, non-blocking sockets with ASYNC ++ * notification won't get signals ++ * - datagram_poll looks racy ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* by some reason it is not used currently */ ++#define UB_SOCK_MAINTAIN_WMEMPRESSURE 0 ++ ++ ++/* Skb truesize definition. Bad place. Den */ ++ ++static inline int skb_chargesize_head(struct sk_buff *skb) ++{ ++ return skb_charge_size(skb_end_pointer(skb) - skb->head + ++ sizeof(struct skb_shared_info)); ++} ++ ++int skb_charge_fullsize(struct sk_buff *skb) ++{ ++ int chargesize; ++ struct sk_buff *skbfrag; ++ ++ chargesize = skb_chargesize_head(skb) + ++ PAGE_SIZE * skb_shinfo(skb)->nr_frags; ++ if (likely(skb_shinfo(skb)->frag_list == NULL)) ++ return chargesize; ++ for (skbfrag = skb_shinfo(skb)->frag_list; ++ skbfrag != NULL; ++ skbfrag = skbfrag->next) { ++ chargesize += skb_charge_fullsize(skbfrag); ++ } ++ return chargesize; ++} ++EXPORT_SYMBOL(skb_charge_fullsize); ++ ++static int ub_sock_makewreserv_locked(struct sock *sk, ++ int bufid, unsigned long size); ++ ++int __ub_too_many_orphans(struct sock *sk, int count) ++{ ++ struct user_beancounter *ub; ++ ++ if (sock_has_ubc(sk)) { ++ ub = top_beancounter(sock_bc(sk)->ub); ++ if (count >= ub->ub_parms[UB_NUMTCPSOCK].barrier >> 2) ++ return 1; ++ } ++ return 0; ++} ++ ++/* ++ * Queueing ++ */ ++ ++static void ub_sock_snd_wakeup(struct user_beancounter *ub) ++{ ++ struct list_head *p; ++ struct sock *sk; ++ struct sock_beancounter *skbc; ++ struct socket *sock; ++ unsigned long added; ++ ++ while (!list_empty(&ub->ub_other_sk_list)) { ++ p = ub->ub_other_sk_list.next; ++ skbc = list_entry(p, struct sock_beancounter, ub_sock_list); ++ sk = skbc_sock(skbc); ++ ++ added = 0; ++ sock = sk->sk_socket; ++ if (sock == NULL) { ++ /* sk being destroyed */ ++ list_del_init(&skbc->ub_sock_list); ++ continue; ++ } ++ ++ ub_debug(UBD_NET_SLEEP, ++ "Checking queue, waiting %lu, reserv %lu\n", ++ skbc->ub_waitspc, skbc->poll_reserv); ++ added = -skbc->poll_reserv; ++ if (ub_sock_makewreserv_locked(sk, UB_OTHERSOCKBUF, ++ skbc->ub_waitspc)) ++ break; ++ added += skbc->poll_reserv; ++ ++ list_del_init(&skbc->ub_sock_list); ++ ++ /* ++ * See comments in ub_tcp_snd_wakeup. ++ * Locking note: both unix_write_space and ++ * sock_def_write_space take callback_lock themselves. ++ * We take it here just to be on the safe side and to ++ * act the same way as ub_tcp_snd_wakeup does. ++ */ ++ sock_hold(sk); ++ read_lock(&sk->sk_callback_lock); ++ spin_unlock(&ub->ub_lock); ++ ++ sk->sk_write_space(sk); ++ read_unlock(&sk->sk_callback_lock); ++ ++ if (skbc->ub != ub && added) ++ charge_beancounter_notop(skbc->ub, ++ UB_OTHERSOCKBUF, added); ++ sock_put(sk); ++ ++ spin_lock(&ub->ub_lock); ++ } ++} ++ ++static void ub_tcp_snd_wakeup(struct user_beancounter *ub) ++{ ++ struct list_head *p; ++ struct sock *sk; ++ struct sock_beancounter *skbc; ++ struct socket *sock; ++ unsigned long added; ++ ++ while (!list_empty(&ub->ub_tcp_sk_list)) { ++ p = ub->ub_tcp_sk_list.next; ++ skbc = list_entry(p, struct sock_beancounter, ub_sock_list); ++ sk = skbc_sock(skbc); ++ ++ added = 0; ++ sock = sk->sk_socket; ++ if (sock == NULL) { ++ /* sk being destroyed */ ++ list_del_init(&skbc->ub_sock_list); ++ continue; ++ } ++ ++ ub_debug(UBD_NET_SLEEP, ++ "Checking queue, waiting %lu, reserv %lu\n", ++ skbc->ub_waitspc, skbc->poll_reserv); ++ added = -skbc->poll_reserv; ++ if (ub_sock_makewreserv_locked(sk, UB_TCPSNDBUF, ++ skbc->ub_waitspc)) ++ break; ++ added += skbc->poll_reserv; ++ ++ list_del_init(&skbc->ub_sock_list); ++ ++ /* ++ * Send async notifications and wake up. ++ * Locking note: we get callback_lock here because ++ * tcp_write_space is over-optimistic about calling context ++ * (socket lock is presumed). So we get the lock here although ++ * it belongs to the callback. ++ */ ++ sock_hold(sk); ++ read_lock(&sk->sk_callback_lock); ++ spin_unlock(&ub->ub_lock); ++ ++ sk->sk_write_space(sk); ++ read_unlock(&sk->sk_callback_lock); ++ ++ if (skbc->ub != ub && added) ++ charge_beancounter_notop(skbc->ub, UB_TCPSNDBUF, added); ++ sock_put(sk); ++ ++ spin_lock(&ub->ub_lock); ++ } ++} ++ ++void ub_sock_snd_queue_add(struct sock *sk, int res, unsigned long size) ++{ ++ unsigned long flags; ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ unsigned long added_reserv; ++ ++ if (!sock_has_ubc(sk)) ++ return; ++ ++ skbc = sock_bc(sk); ++ ub = top_beancounter(skbc->ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub_debug(UBD_NET_SLEEP, "attempt to charge for %lu\n", size); ++ added_reserv = -skbc->poll_reserv; ++ if (!ub_sock_makewreserv_locked(sk, res, size)) { ++ /* ++ * It looks a bit hackish, but it is compatible with both ++ * wait_for_xx_ubspace and poll. ++ * This __set_current_state is equivalent to a wakeup event ++ * right after spin_unlock_irqrestore. ++ */ ++ __set_current_state(TASK_RUNNING); ++ added_reserv += skbc->poll_reserv; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ if (added_reserv) ++ charge_beancounter_notop(skbc->ub, res, added_reserv); ++ return; ++ } ++ ++ ub_debug(UBD_NET_SLEEP, "Adding sk to queue\n"); ++ skbc->ub_waitspc = size; ++ if (!list_empty(&skbc->ub_sock_list)) { ++ ub_debug(UBD_NET_SOCKET, ++ "re-adding socket to beancounter %p.\n", ub); ++ goto out; ++ } ++ ++ switch (res) { ++ case UB_TCPSNDBUF: ++ list_add_tail(&skbc->ub_sock_list, ++ &ub->ub_tcp_sk_list); ++ break; ++ case UB_OTHERSOCKBUF: ++ list_add_tail(&skbc->ub_sock_list, ++ &ub->ub_other_sk_list); ++ break; ++ default: ++ BUG(); ++ } ++out: ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++EXPORT_SYMBOL(ub_sock_snd_queue_add); ++ ++long ub_sock_wait_for_space(struct sock *sk, long timeo, unsigned long size) ++{ ++ DECLARE_WAITQUEUE(wait, current); ++ ++ add_wait_queue(sk->sk_sleep, &wait); ++ for (;;) { ++ if (signal_pending(current)) ++ break; ++ set_current_state(TASK_INTERRUPTIBLE); ++ if (!ub_sock_make_wreserv(sk, UB_OTHERSOCKBUF, size)) ++ break; ++ ++ if (sk->sk_shutdown & SEND_SHUTDOWN) ++ break; ++ if (sk->sk_err) ++ break; ++ ub_sock_snd_queue_add(sk, UB_OTHERSOCKBUF, size); ++ timeo = schedule_timeout(timeo); ++ } ++ __set_current_state(TASK_RUNNING); ++ remove_wait_queue(sk->sk_sleep, &wait); ++ return timeo; ++} ++ ++void ub_sock_sndqueuedel(struct sock *sk) ++{ ++ struct user_beancounter *ub; ++ struct sock_beancounter *skbc; ++ unsigned long flags; ++ ++ if (!sock_has_ubc(sk)) ++ return; ++ skbc = sock_bc(sk); ++ ++ /* race with write_space callback of other socket */ ++ ub = top_beancounter(skbc->ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ list_del_init(&skbc->ub_sock_list); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++/* ++ * Helpers ++ */ ++ ++static inline void __ub_skb_set_charge(struct sk_buff *skb, struct sock *sk, ++ unsigned long size, int resource) ++{ ++ skb_bc(skb)->ub = sock_bc(sk)->ub; ++ skb_bc(skb)->charged = size; ++ skb_bc(skb)->resource = resource; ++} ++ ++void ub_skb_set_charge(struct sk_buff *skb, struct sock *sk, ++ unsigned long size, int resource) ++{ ++ if (!sock_has_ubc(sk)) ++ return; ++ ++ if (sock_bc(sk)->ub == NULL) ++ BUG(); ++ ++ __ub_skb_set_charge(skb, sk, size, resource); ++ ++ /* Ugly. Ugly. Skb in sk writequeue can live without ref to sk */ ++ if (skb->sk == NULL) ++ skb->sk = sk; ++} ++ ++EXPORT_SYMBOL(ub_skb_set_charge); ++ ++static inline void ub_skb_set_uncharge(struct sk_buff *skb) ++{ ++ skb_bc(skb)->ub = NULL; ++ skb_bc(skb)->charged = 0; ++ skb_bc(skb)->resource = 0; ++} ++ ++static void ub_update_rmem_thres(struct sock_beancounter *skub) ++{ ++ struct user_beancounter *ub; ++ ++ if (skub && skub->ub) { ++ ub = top_beancounter(skub->ub); ++ ub->ub_rmem_thres = ub->ub_parms[UB_TCPRCVBUF].barrier / ++ (ub->ub_parms[UB_NUMTCPSOCK].held + 1); ++ } ++} ++ ++static inline void ub_sock_wcharge_dec(struct sock *sk, ++ unsigned long chargesize) ++{ ++ /* The check sk->sk_family != PF_NETLINK is made as the skb is ++ * queued to the kernel end of socket while changed to the user one. ++ * Den */ ++ if (unlikely(sock_bc(sk)->ub_wcharged) && sk->sk_family != PF_NETLINK) { ++ if (sock_bc(sk)->ub_wcharged > chargesize) ++ sock_bc(sk)->ub_wcharged -= chargesize; ++ else ++ sock_bc(sk)->ub_wcharged = 0; ++ } ++} ++ ++/* ++ * Charge socket number ++ */ ++ ++static inline void sk_alloc_beancounter(struct sock *sk) ++{ ++ struct sock_beancounter *skbc; ++ ++ skbc = sock_bc(sk); ++ memset(skbc, 0, sizeof(struct sock_beancounter)); ++} ++ ++static inline void sk_free_beancounter(struct sock *sk) ++{ ++} ++ ++static int __sock_charge(struct sock *sk, int res) ++{ ++ struct sock_beancounter *skbc; ++ struct user_beancounter *cub, *ub; ++ unsigned long added_reserv, added_forw; ++ unsigned long flags; ++ ++ cub = get_exec_ub(); ++ if (unlikely(cub == NULL)) ++ return 0; ++ ++ sk_alloc_beancounter(sk); ++ skbc = sock_bc(sk); ++ INIT_LIST_HEAD(&skbc->ub_sock_list); ++ ++ ub = top_beancounter(cub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ if (unlikely(__charge_beancounter_locked(ub, res, 1, UB_HARD) < 0)) ++ goto out_limit; ++ ++ added_reserv = 0; ++ added_forw = 0; ++ if (res == UB_NUMTCPSOCK) { ++ added_reserv = skb_charge_size(MAX_TCP_HEADER + ++ 1500 - sizeof(struct iphdr) - ++ sizeof(struct tcphdr)); ++ added_reserv *= 4; ++ ub->ub_parms[UB_TCPSNDBUF].held += added_reserv; ++ if (!ub_barrier_farsz(ub, UB_TCPSNDBUF)) { ++ ub->ub_parms[UB_TCPSNDBUF].held -= added_reserv; ++ added_reserv = 0; ++ } ++ skbc->poll_reserv = added_reserv; ++ ++ added_forw = SK_STREAM_MEM_QUANTUM * 4; ++ ub->ub_parms[UB_TCPRCVBUF].held += added_forw; ++ if (!ub_barrier_farsz(ub, UB_TCPRCVBUF)) { ++ ub->ub_parms[UB_TCPRCVBUF].held -= added_forw; ++ added_forw = 0; ++ } ++ skbc->forw_space = added_forw; ++ } ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ charge_beancounter_notop(cub, res, 1); ++ if (added_reserv) ++ charge_beancounter_notop(cub, UB_TCPSNDBUF, added_reserv); ++ if (added_forw) ++ charge_beancounter_notop(cub, UB_TCPRCVBUF, added_forw); ++ ++ skbc->ub = get_beancounter(cub); ++ return 0; ++ ++out_limit: ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ sk_free_beancounter(sk); ++ return -ENOMEM; ++} ++ ++int ub_tcp_sock_charge(struct sock *sk) ++{ ++ int ret; ++ ++ ret = __sock_charge(sk, UB_NUMTCPSOCK); ++ ub_update_rmem_thres(sock_bc(sk)); ++ ++ return ret; ++} ++ ++int ub_other_sock_charge(struct sock *sk) ++{ ++ return __sock_charge(sk, UB_NUMOTHERSOCK); ++} ++ ++EXPORT_SYMBOL(ub_other_sock_charge); ++ ++int ub_sock_charge(struct sock *sk, int family, int type) ++{ ++ return (IS_TCP_SOCK(family, type) ? ++ ub_tcp_sock_charge(sk) : ub_other_sock_charge(sk)); ++} ++ ++EXPORT_SYMBOL(ub_sock_charge); ++ ++/* ++ * Uncharge socket number ++ */ ++ ++void ub_sock_uncharge(struct sock *sk) ++{ ++ int is_tcp_sock; ++ unsigned long flags; ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ unsigned long reserv, forw; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return; ++ ++ is_tcp_sock = IS_TCP_SOCK(sk->sk_family, sk->sk_type); ++ skbc = sock_bc(sk); ++ ub_debug(UBD_NET_SOCKET, "Calling ub_sock_uncharge on %p\n", sk); ++ ++ ub = top_beancounter(skbc->ub); ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ if (!list_empty(&skbc->ub_sock_list)) { ++ ub_debug(UBD_NET_SOCKET, ++ "ub_sock_uncharge: removing from ub(%p) queue.\n", ++ skbc); ++ list_del_init(&skbc->ub_sock_list); ++ } ++ ++ reserv = skbc->poll_reserv; ++ forw = skbc->forw_space; ++ __uncharge_beancounter_locked(ub, ++ (is_tcp_sock ? UB_TCPSNDBUF : UB_OTHERSOCKBUF), ++ reserv); ++ if (forw) ++ __uncharge_beancounter_locked(ub, ++ (is_tcp_sock ? UB_TCPRCVBUF : UB_DGRAMRCVBUF), ++ forw); ++ __uncharge_beancounter_locked(ub, ++ (is_tcp_sock ? UB_NUMTCPSOCK : UB_NUMOTHERSOCK), 1); ++ ++ ub_sock_wcharge_dec(sk, reserv); ++ if (unlikely(skbc->ub_wcharged)) ++ printk(KERN_WARNING ++ "ub_sock_uncharge: wch=%lu for ub %p (%d).\n", ++ skbc->ub_wcharged, skbc->ub, skbc->ub->ub_uid); ++ skbc->poll_reserv = 0; ++ skbc->forw_space = 0; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ uncharge_beancounter_notop(skbc->ub, ++ (is_tcp_sock ? UB_TCPSNDBUF : UB_OTHERSOCKBUF), ++ reserv); ++ if (forw) ++ uncharge_beancounter_notop(skbc->ub, ++ (is_tcp_sock ? UB_TCPRCVBUF : UB_DGRAMRCVBUF), ++ forw); ++ uncharge_beancounter_notop(skbc->ub, ++ (is_tcp_sock ? UB_NUMTCPSOCK : UB_NUMOTHERSOCK), 1); ++ ++ put_beancounter(skbc->ub); ++ sk_free_beancounter(sk); ++} ++ ++/* ++ * Special case for netlink_dump - (un)charges precalculated size ++ */ ++ ++int ub_nlrcvbuf_charge(struct sk_buff *skb, struct sock *sk) ++{ ++ int ret; ++ unsigned long chargesize; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return 0; ++ ++ chargesize = skb_charge_fullsize(skb); ++ ret = charge_beancounter(sock_bc(sk)->ub, ++ UB_DGRAMRCVBUF, chargesize, UB_HARD); ++ if (ret < 0) ++ return ret; ++ ub_skb_set_charge(skb, sk, chargesize, UB_DGRAMRCVBUF); ++ return ret; ++} ++ ++/* ++ * Poll reserve accounting ++ * ++ * This is the core of socket buffer management (along with queueing/wakeup ++ * functions. The rest of buffer accounting either call these functions, or ++ * repeat parts of their logic for some simpler cases. ++ */ ++ ++static int ub_sock_makewreserv_locked(struct sock *sk, ++ int bufid, unsigned long size) ++{ ++ unsigned long wcharge_added; ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ ++ skbc = sock_bc(sk); ++ if (skbc->poll_reserv >= size) /* no work to be done */ ++ goto out; ++ ++ ub = top_beancounter(skbc->ub); ++ ub->ub_parms[bufid].held += size - skbc->poll_reserv; ++ ++ wcharge_added = 0; ++ /* ++ * Logic: ++ * 1) when used memory hits barrier, we set wmem_pressure; ++ * wmem_pressure is reset under barrier/2; ++ * between barrier/2 and barrier we limit per-socket buffer growth; ++ * 2) each socket is guaranteed to get (limit-barrier)/maxsockets ++ * calculated on the base of memory eaten after the barrier is hit ++ */ ++ skbc = sock_bc(sk); ++#if UB_SOCK_MAINTAIN_WMEMPRESSURE ++ if (!ub_hfbarrier_hit(ub, bufid)) { ++ if (ub->ub_wmem_pressure) ++ ub_debug(UBD_NET_SEND, "makewres: pressure -> 0 " ++ "sk %p sz %lu pr %lu hd %lu wc %lu sb %d.\n", ++ sk, size, skbc->poll_reserv, ++ ub->ub_parms[bufid].held, ++ skbc->ub_wcharged, sk->sk_sndbuf); ++ ub->ub_wmem_pressure = 0; ++ } ++#endif ++ if (ub_barrier_hit(ub, bufid)) { ++#if UB_SOCK_MAINTAIN_WMEMPRESSURE ++ if (!ub->ub_wmem_pressure) ++ ub_debug(UBD_NET_SEND, "makewres: pressure -> 1 " ++ "sk %p sz %lu pr %lu hd %lu wc %lu sb %d.\n", ++ sk, size, skbc->poll_reserv, ++ ub->ub_parms[bufid].held, ++ skbc->ub_wcharged, sk->sk_sndbuf); ++ ub->ub_wmem_pressure = 1; ++#endif ++ if (sk->sk_family == PF_NETLINK) ++ goto unroll; ++ wcharge_added = size - skbc->poll_reserv; ++ skbc->ub_wcharged += wcharge_added; ++ if (skbc->ub_wcharged * ub->ub_parms[bid2sid(bufid)].limit + ++ ub->ub_parms[bufid].barrier > ++ ub->ub_parms[bufid].limit) ++ goto unroll_wch; ++ } ++ if (ub->ub_parms[bufid].held > ub->ub_parms[bufid].limit) ++ goto unroll; ++ ++ ub_adjust_maxheld(ub, bufid); ++ skbc->poll_reserv = size; ++out: ++ return 0; ++ ++unroll_wch: ++ skbc->ub_wcharged -= wcharge_added; ++unroll: ++ ub_debug(UBD_NET_SEND, ++ "makewres: deny " ++ "sk %p sz %lu pr %lu hd %lu wc %lu sb %d.\n", ++ sk, size, skbc->poll_reserv, ub->ub_parms[bufid].held, ++ skbc->ub_wcharged, sk->sk_sndbuf); ++ ub->ub_parms[bufid].failcnt++; ++ ub->ub_parms[bufid].held -= size - skbc->poll_reserv; ++ ++ if (sk->sk_socket != NULL) { ++ set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); ++ set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); ++ } ++ return -ENOMEM; ++} ++ ++int ub_sock_make_wreserv(struct sock *sk, int bufid, unsigned long size) ++{ ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ unsigned long flags; ++ unsigned long added_reserv; ++ int err; ++ ++ skbc = sock_bc(sk); ++ ++ /* ++ * This function provides that there is sufficient reserve upon return ++ * only if sk has only one user. We can check poll_reserv without ++ * serialization and avoid locking if the reserve already exists. ++ */ ++ if (unlikely(!sock_has_ubc(sk)) || likely(skbc->poll_reserv >= size)) ++ return 0; ++ ++ ub = top_beancounter(skbc->ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ added_reserv = -skbc->poll_reserv; ++ err = ub_sock_makewreserv_locked(sk, bufid, size); ++ added_reserv += skbc->poll_reserv; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ if (added_reserv) ++ charge_beancounter_notop(skbc->ub, bufid, added_reserv); ++ ++ return err; ++} ++ ++EXPORT_SYMBOL(ub_sock_make_wreserv); ++ ++int ub_sock_get_wreserv(struct sock *sk, int bufid, unsigned long size) ++{ ++ struct sock_beancounter *skbc; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return 0; ++ ++ /* optimize for the case if socket has sufficient reserve */ ++ ub_sock_make_wreserv(sk, bufid, size); ++ skbc = sock_bc(sk); ++ if (likely(skbc->poll_reserv >= size)) { ++ skbc->poll_reserv -= size; ++ return 0; ++ } ++ return -ENOMEM; ++} ++ ++EXPORT_SYMBOL(ub_sock_get_wreserv); ++ ++static void ub_sock_do_ret_wreserv(struct sock *sk, int bufid, ++ unsigned long size, unsigned long ressize) ++{ ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ unsigned long extra; ++ unsigned long flags; ++ ++ skbc = sock_bc(sk); ++ ub = top_beancounter(skbc->ub); ++ ++ extra = 0; ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ skbc->poll_reserv += size; ++ if (skbc->poll_reserv > ressize) { ++ extra = skbc->poll_reserv - ressize; ++ ub_sock_wcharge_dec(sk, extra); ++ skbc->poll_reserv = ressize; ++ ++ __uncharge_beancounter_locked(ub, bufid, extra); ++ if (bufid == UB_TCPSNDBUF) ++ ub_tcp_snd_wakeup(ub); ++ else ++ ub_sock_snd_wakeup(ub); ++ } ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ if (extra) ++ uncharge_beancounter_notop(skbc->ub, bufid, extra); ++} ++ ++void ub_sock_ret_wreserv(struct sock *sk, int bufid, ++ unsigned long size, unsigned long ressize) ++{ ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return; ++ ++ skbc = sock_bc(sk); ++ ub = top_beancounter(skbc->ub); ++ /* check if the reserve can be kept */ ++ if (ub_barrier_farsz(ub, bufid)) { ++ skbc->poll_reserv += size; ++ return; ++ } ++ ub_sock_do_ret_wreserv(sk, bufid, size, ressize); ++} ++ ++/* ++ * UB_DGRAMRCVBUF ++ */ ++ ++int ub_sockrcvbuf_charge(struct sock *sk, struct sk_buff *skb) ++{ ++ unsigned long chargesize; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return 0; ++ ++ chargesize = skb_charge_fullsize(skb); ++ if (charge_beancounter(sock_bc(sk)->ub, UB_DGRAMRCVBUF, ++ chargesize, UB_HARD)) ++ return -ENOMEM; ++ ++ ub_skb_set_charge(skb, sk, chargesize, UB_DGRAMRCVBUF); ++ return 0; ++} ++ ++EXPORT_SYMBOL(ub_sockrcvbuf_charge); ++ ++static void ub_sockrcvbuf_uncharge(struct sk_buff *skb) ++{ ++ uncharge_beancounter(skb_bc(skb)->ub, UB_DGRAMRCVBUF, ++ skb_bc(skb)->charged); ++ ub_skb_set_uncharge(skb); ++} ++ ++/* ++ * UB_TCPRCVBUF ++ */ ++ ++int ub_sock_tcp_chargerecv(struct sock *sk, struct sk_buff *skb, ++ enum ub_severity strict) ++{ ++ int retval; ++ unsigned long flags; ++ struct user_beancounter *ub; ++ struct sock_beancounter *skbc; ++ unsigned long chargesize; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return 0; ++ skbc = sock_bc(sk); ++ ++ chargesize = skb_charge_fullsize(skb); ++ if (likely(skbc->forw_space >= chargesize)) { ++ skbc->forw_space -= chargesize; ++ __ub_skb_set_charge(skb, sk, chargesize, UB_TCPRCVBUF); ++ return 0; ++ } ++ ++ /* ++ * Memory pressure reactions: ++ * 1) set UB_RMEM_KEEP (clearing UB_RMEM_EXPAND) ++ * 2) set UB_RMEM_SHRINK and tcp_clamp_window() ++ * tcp_collapse_queues() if rmem_alloc > rcvbuf ++ * 3) drop OFO, tcp_purge_ofo() ++ * 4) drop all. ++ * Currently, we do #2 and #3 at once (which means that current ++ * collapsing of OFO queue in tcp_collapse_queues() is a waste of time, ++ * for example...) ++ * On memory pressure we jump from #0 to #3, and when the pressure ++ * subsides, to #1. ++ */ ++ retval = 0; ++ ub = top_beancounter(sock_bc(sk)->ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub->ub_parms[UB_TCPRCVBUF].held += chargesize; ++ if (ub->ub_parms[UB_TCPRCVBUF].held > ++ ub->ub_parms[UB_TCPRCVBUF].barrier && ++ strict != UB_FORCE) ++ goto excess; ++ ub_adjust_maxheld(ub, UB_TCPRCVBUF); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++out: ++ if (retval == 0) { ++ charge_beancounter_notop(sock_bc(sk)->ub, UB_TCPRCVBUF, ++ chargesize); ++ ub_skb_set_charge(skb, sk, chargesize, UB_TCPRCVBUF); ++ } ++ return retval; ++ ++excess: ++ ub->ub_rmem_pressure = UB_RMEM_SHRINK; ++ if (strict == UB_HARD) ++ retval = -ENOMEM; ++ if (ub->ub_parms[UB_TCPRCVBUF].held > ub->ub_parms[UB_TCPRCVBUF].limit) ++ retval = -ENOMEM; ++ /* ++ * We try to leave numsock*maxadvmss as a reserve for sockets not ++ * queueing any data yet (if the difference between the barrier and the ++ * limit is enough for this reserve). ++ */ ++ if (ub->ub_parms[UB_TCPRCVBUF].held + ++ ub->ub_parms[UB_NUMTCPSOCK].limit * ub->ub_maxadvmss ++ > ub->ub_parms[UB_TCPRCVBUF].limit && ++ atomic_read(&sk->sk_rmem_alloc)) ++ retval = -ENOMEM; ++ if (retval) { ++ ub->ub_parms[UB_TCPRCVBUF].held -= chargesize; ++ ub->ub_parms[UB_TCPRCVBUF].failcnt++; ++ } ++ ub_adjust_maxheld(ub, UB_TCPRCVBUF); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ goto out; ++} ++EXPORT_SYMBOL(ub_sock_tcp_chargerecv); ++ ++static void ub_tcprcvbuf_uncharge(struct sk_buff *skb) ++{ ++ unsigned long flags; ++ unsigned long held, bar; ++ int prev_pres; ++ struct user_beancounter *ub; ++ ++ ub = top_beancounter(skb_bc(skb)->ub); ++ if (ub_barrier_farsz(ub, UB_TCPRCVBUF)) { ++ sock_bc(skb->sk)->forw_space += skb_bc(skb)->charged; ++ ub_skb_set_uncharge(skb); ++ return; ++ } ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ if (ub->ub_parms[UB_TCPRCVBUF].held < skb_bc(skb)->charged) { ++ printk(KERN_ERR "Uncharging %d for tcprcvbuf of %p with %lu\n", ++ skb_bc(skb)->charged, ++ ub, ub->ub_parms[UB_TCPRCVBUF].held); ++ /* ass-saving bung */ ++ skb_bc(skb)->charged = ub->ub_parms[UB_TCPRCVBUF].held; ++ } ++ ub->ub_parms[UB_TCPRCVBUF].held -= skb_bc(skb)->charged; ++ held = ub->ub_parms[UB_TCPRCVBUF].held; ++ bar = ub->ub_parms[UB_TCPRCVBUF].barrier; ++ prev_pres = ub->ub_rmem_pressure; ++ if (held <= bar - (bar >> 2)) ++ ub->ub_rmem_pressure = UB_RMEM_EXPAND; ++ else if (held <= bar) ++ ub->ub_rmem_pressure = UB_RMEM_KEEP; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ uncharge_beancounter_notop(skb_bc(skb)->ub, UB_TCPRCVBUF, ++ skb_bc(skb)->charged); ++ ub_skb_set_uncharge(skb); ++} ++ ++ ++/* ++ * UB_OTHERSOCKBUF and UB_TCPSNDBUF ++ */ ++ ++static void ub_socksndbuf_uncharge(struct sk_buff *skb) ++{ ++ unsigned long flags; ++ struct user_beancounter *ub, *cub; ++ unsigned long chargesize; ++ ++ cub = skb_bc(skb)->ub; ++ ub = top_beancounter(cub); ++ chargesize = skb_bc(skb)->charged; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ __uncharge_beancounter_locked(ub, UB_OTHERSOCKBUF, chargesize); ++ if (skb->sk != NULL && sock_has_ubc(skb->sk)) ++ ub_sock_wcharge_dec(skb->sk, chargesize); ++ ub_sock_snd_wakeup(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ uncharge_beancounter_notop(cub, UB_OTHERSOCKBUF, chargesize); ++ ub_skb_set_uncharge(skb); ++} ++ ++/* expected to be called under socket lock */ ++static void ub_tcpsndbuf_uncharge(struct sk_buff *skb) ++{ ++ /* ++ * ub_sock_ret_wreserv call is abused here, we just want to uncharge ++ * skb size. However, to reduce duplication of the code doing ++ * ub_hfbarrier_hit check, ub_wcharged reduction, and wakeup we call ++ * a function that already does all of this. 2006/04/27 SAW ++ */ ++ ub_sock_ret_wreserv(skb->sk, UB_TCPSNDBUF, skb_bc(skb)->charged, ++ sock_bc(skb->sk)->poll_reserv); ++ ub_skb_set_uncharge(skb); ++} ++ ++void ub_skb_uncharge(struct sk_buff *skb) ++{ ++ switch (skb_bc(skb)->resource) { ++ case UB_TCPSNDBUF: ++ ub_tcpsndbuf_uncharge(skb); ++ break; ++ case UB_TCPRCVBUF: ++ ub_tcprcvbuf_uncharge(skb); ++ break; ++ case UB_DGRAMRCVBUF: ++ ub_sockrcvbuf_uncharge(skb); ++ break; ++ case UB_OTHERSOCKBUF: ++ ub_socksndbuf_uncharge(skb); ++ break; ++ } ++} ++ ++EXPORT_SYMBOL(ub_skb_uncharge); /* due to skb_orphan()/conntracks */ ++ ++/* ++ * Other sock reserve managment ++ */ ++ ++int ub_sock_getwres_other(struct sock *sk, unsigned long size) ++{ ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ unsigned long flags; ++ unsigned long added_reserv; ++ int err; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return 0; ++ ++ /* ++ * Nothing except beancounter lock protects skbc->poll_reserv. ++ * So, take the lock and do the job. ++ * Dances with added_reserv repeat ub_sock_make_wreserv. ++ */ ++ skbc = sock_bc(sk); ++ ub = top_beancounter(skbc->ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ added_reserv = -skbc->poll_reserv; ++ err = ub_sock_makewreserv_locked(sk, UB_OTHERSOCKBUF, size); ++ added_reserv += skbc->poll_reserv; ++ if (!err) ++ skbc->poll_reserv -= size; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ if (added_reserv) ++ charge_beancounter_notop(skbc->ub, UB_OTHERSOCKBUF, added_reserv); ++ ++ return err; ++} ++EXPORT_SYMBOL(ub_sock_getwres_other); ++ ++void ub_sock_retwres_other(struct sock *sk, ++ unsigned long size, unsigned long ressize) ++{ ++ if (unlikely(!sock_has_ubc(sk))) ++ return; ++ ++ ub_sock_do_ret_wreserv(sk, UB_OTHERSOCKBUF, size, ressize); ++} ++ ++/* ++ * TCP send buffers accouting. Paged part ++ */ ++ ++int ub_sock_tcp_chargepage(struct sock *sk) ++{ ++ struct sock_beancounter *skbc; ++ unsigned long extra; ++ int err; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return 0; ++ ++ skbc = sock_bc(sk); ++ ub_sock_make_wreserv(sk, UB_TCPSNDBUF, PAGE_SIZE); ++ if (likely(skbc->poll_reserv >= PAGE_SIZE)) { ++ skbc->poll_reserv -= PAGE_SIZE; ++ return 0; ++ } ++ ++ /* ++ * Ok, full page is not available. ++ * However, this function must succeed if poll previously indicated ++ * that write is possible. We better make a forced charge here ++ * than reserve a whole page in poll. ++ */ ++ err = ub_sock_make_wreserv(sk, UB_TCPSNDBUF, SOCK_MIN_UBCSPACE); ++ if (unlikely(err < 0)) ++ goto out; ++ if (skbc->poll_reserv < PAGE_SIZE) { ++ extra = PAGE_SIZE - skbc->poll_reserv; ++ err = charge_beancounter(skbc->ub, UB_TCPSNDBUF, extra, ++ UB_FORCE); ++ if (err < 0) ++ goto out; ++ skbc->poll_reserv += extra; ++ } ++ skbc->poll_reserv -= PAGE_SIZE; ++ return 0; ++ ++out: ++ return err; ++} ++ ++void ub_sock_tcp_detachpage(struct sock *sk) ++{ ++ struct sk_buff *skb; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return; ++ ++ /* The page is just detached from socket. The last skb in queue ++ with paged part holds referrence to it */ ++ skb = skb_peek_tail(&sk->sk_write_queue); ++ if (skb == NULL) { ++ /* If the queue is empty - all data is sent and page is about ++ to be freed */ ++ ub_sock_ret_wreserv(sk, UB_TCPSNDBUF, PAGE_SIZE, ++ sock_bc(sk)->poll_reserv); ++ } else { ++ /* Last skb is a good aproximation for a last skb with ++ paged part */ ++ skb_bc(skb)->charged += PAGE_SIZE; ++ } ++} ++ ++/* ++ * TCPSNDBUF charge functions below are called in the following cases: ++ * - sending of SYN, SYN-ACK, FIN, the latter charge is forced by ++ * some technical reasons in TCP code; ++ * - fragmentation of TCP packets. ++ * These functions are allowed but not required to use poll_reserv. ++ * Originally, these functions didn't do that, since it didn't make ++ * any sense. Now, since poll_reserv now has a function of general reserve, ++ * they use it. ++ */ ++int ub_sock_tcp_chargesend(struct sock *sk, struct sk_buff *skb, ++ enum ub_severity strict) ++{ ++ int ret; ++ unsigned long chargesize; ++ struct sock_beancounter *skbc; ++ struct user_beancounter *ub; ++ unsigned long flags; ++ ++ if (unlikely(!sock_has_ubc(sk))) ++ return 0; ++ ++ skbc = sock_bc(sk); ++ chargesize = skb_charge_fullsize(skb); ++ if (likely(skbc->poll_reserv >= chargesize)) { ++ skbc->poll_reserv -= chargesize; ++ __ub_skb_set_charge(skb, sk, chargesize, UB_TCPSNDBUF); ++ /* XXX hack, see ub_skb_set_charge */ ++ skb->sk = sk; ++ return 0; ++ } ++ ++ ub = top_beancounter(skbc->ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ret = __charge_beancounter_locked(ub, UB_TCPSNDBUF, ++ chargesize, strict); ++ /* ++ * Note: this check is not equivalent of the corresponding check ++ * in makewreserv. It's similar in spirit, but an equivalent check ++ * would be too long and complicated here. ++ */ ++ if (!ret && ub_barrier_hit(ub, UB_TCPSNDBUF)) ++ skbc->ub_wcharged += chargesize; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ if (likely(!ret)) { ++ charge_beancounter_notop(skbc->ub, UB_TCPSNDBUF, chargesize); ++ ub_skb_set_charge(skb, sk, chargesize, UB_TCPSNDBUF); ++ } ++ return ret; ++} ++EXPORT_SYMBOL(ub_sock_tcp_chargesend); ++ ++void ub_sock_tcp_unchargesend(struct sock *sk, unsigned long size) ++{ ++ if (unlikely(!sock_has_ubc(sk))) ++ return; ++ /* see ub_tcpsndbuf_uncharge */ ++ ub_sock_ret_wreserv(sk, UB_TCPSNDBUF, size, sock_bc(sk)->poll_reserv); ++} ++ ++/* ++ * Initialization ++ */ ++ ++int __init skbc_cache_init(void) ++{ ++ return 0; ++} +Index: kernel/kernel/bc/oom_kill.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/oom_kill.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,200 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define UB_OOM_TIMEOUT (5 * HZ) ++ ++int oom_generation; ++int oom_kill_counter; ++static DEFINE_SPINLOCK(oom_lock); ++static DECLARE_WAIT_QUEUE_HEAD(oom_wq); ++ ++static inline int ub_oom_completed(struct task_struct *tsk) ++{ ++ if (test_tsk_thread_flag(tsk, TIF_MEMDIE)) ++ /* we were oom killed - just die */ ++ return 1; ++ if (tsk->task_bc.oom_generation != oom_generation) ++ /* some task was succesfully killed */ ++ return 1; ++ return 0; ++} ++ ++static void ub_clear_oom(void) ++{ ++ struct user_beancounter *ub; ++ ++ rcu_read_lock(); ++ for_each_beancounter(ub) ++ ub->ub_oom_noproc = 0; ++ rcu_read_unlock(); ++} ++ ++/* Called with cpuset_lock held */ ++int ub_oom_lock(void) ++{ ++ int timeout; ++ DEFINE_WAIT(oom_w); ++ struct task_struct *tsk; ++ ++ tsk = current; ++ ++ spin_lock(&oom_lock); ++ if (!oom_kill_counter) ++ goto out_do_oom; ++ ++ timeout = UB_OOM_TIMEOUT; ++ while (1) { ++ if (ub_oom_completed(tsk)) { ++ spin_unlock(&oom_lock); ++ return -EINVAL; ++ } ++ ++ if (timeout == 0) ++ break; ++ ++ __set_current_state(TASK_UNINTERRUPTIBLE); ++ add_wait_queue(&oom_wq, &oom_w); ++ spin_unlock(&oom_lock); ++ cpuset_unlock(); ++ ++ timeout = schedule_timeout(timeout); ++ ++ cpuset_lock(); ++ spin_lock(&oom_lock); ++ remove_wait_queue(&oom_wq, &oom_w); ++ } ++ ++out_do_oom: ++ ub_clear_oom(); ++ return 0; ++} ++ ++static inline long ub_current_overdraft(struct user_beancounter *ub) ++{ ++ return ub->ub_parms[UB_OOMGUARPAGES].held + ++ ((ub->ub_parms[UB_KMEMSIZE].held ++ + ub->ub_parms[UB_TCPSNDBUF].held ++ + ub->ub_parms[UB_TCPRCVBUF].held ++ + ub->ub_parms[UB_OTHERSOCKBUF].held ++ + ub->ub_parms[UB_DGRAMRCVBUF].held) ++ >> PAGE_SHIFT) - ub->ub_parms[UB_OOMGUARPAGES].barrier; ++} ++ ++int ub_oom_task_skip(struct user_beancounter *ub, struct task_struct *tsk) ++{ ++ struct user_beancounter *mm_ub; ++ ++ if (ub == NULL) ++ return 0; ++ ++ task_lock(tsk); ++ if (tsk->mm == NULL) ++ mm_ub = NULL; ++ else ++ mm_ub = tsk->mm->mm_ub; ++ ++ while (mm_ub != NULL && mm_ub != ub) ++ mm_ub = mm_ub->parent; ++ task_unlock(tsk); ++ ++ return mm_ub != ub; ++} ++ ++struct user_beancounter *ub_oom_select_worst(void) ++{ ++ struct user_beancounter *ub, *walkp; ++ long ub_maxover; ++ ++ ub_maxover = 0; ++ ub = NULL; ++ ++ rcu_read_lock(); ++ for_each_beancounter (walkp) { ++ long ub_overdraft; ++ ++ if (walkp->parent != NULL) ++ continue; ++ if (walkp->ub_oom_noproc) ++ continue; ++ ++ ub_overdraft = ub_current_overdraft(walkp); ++ if (ub_overdraft > ub_maxover && get_beancounter_rcu(walkp)) { ++ put_beancounter(ub); ++ ub = walkp; ++ ub_maxover = ub_overdraft; ++ } ++ } ++ ++ if (ub) ++ ub->ub_oom_noproc = 1; ++ rcu_read_unlock(); ++ ++ return ub; ++} ++ ++void ub_oom_mm_killed(struct user_beancounter *ub) ++{ ++ static struct ub_rate_info ri = { 5, 60*HZ }; ++ ++ /* increment is serialized with oom_lock */ ++ ub->ub_parms[UB_OOMGUARPAGES].failcnt++; ++ ++ if (ub_ratelimit(&ri)) ++ show_mem(); ++} ++ ++void ub_oom_unlock(void) ++{ ++ spin_unlock(&oom_lock); ++} ++ ++void ub_oom_task_dead(struct task_struct *tsk) ++{ ++ spin_lock(&oom_lock); ++ oom_kill_counter = 0; ++ oom_generation++; ++ ++ printk("OOM killed process %s (pid=%d, ve=%d) exited, " ++ "free=%lu gen=%d.\n", ++ tsk->comm, tsk->pid, VEID(tsk->ve_task_info.owner_env), ++ nr_free_pages(), oom_generation); ++ /* if there is time to sleep in ub_oom_lock -> sleep will continue */ ++ wake_up_all(&oom_wq); ++ spin_unlock(&oom_lock); ++} ++ ++void ub_out_of_memory(struct user_beancounter *scope) ++{ ++ struct user_beancounter *ub; ++ struct task_struct *p; ++ ++ cpuset_lock(); ++ spin_lock(&oom_lock); ++ ub_clear_oom(); ++ ub = get_beancounter(scope); ++ ++ read_lock(&tasklist_lock); ++retry: ++ p = oom_select_bad_process(ub); ++ if (p == NULL || PTR_ERR(p) == -1UL) ++ goto unlock; ++ ++ if (oom_kill_process(p, (gfp_t)-1, -1, "UB Out of memory")) ++ goto retry; ++ ++ put_beancounter(ub); ++ ++unlock: ++ read_unlock(&tasklist_lock); ++ spin_unlock(&oom_lock); ++ cpuset_unlock(); ++} ++EXPORT_SYMBOL(ub_out_of_memory); +Index: kernel/kernel/bc/proc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/proc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,680 @@ ++/* ++ * kernel/bc/proc.c ++ * ++ * Copyright (C) 2006 OpenVZ. SWsoft Inc. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++/* Generic output formats */ ++#if BITS_PER_LONG == 32 ++const char *bc_proc_lu_fmt = "\t%-20s %10lu\n"; ++const char *bc_proc_lu_lfmt = "\t%-20s %21lu\n"; ++const char *bc_proc_llu_fmt = "\t%-20s %21llu\n"; ++const char *bc_proc_lu_lu_fmt = "\t%-20s %10lu %10lu\n"; ++#else ++const char *bc_proc_lu_fmt = "\t%-20s %21lu\n"; ++const char *bc_proc_lu_lfmt = "\t%-20s %21lu\n"; ++const char *bc_proc_llu_fmt = "\t%-20s %21llu\n"; ++const char *bc_proc_lu_lu_fmt = "\t%-20s %21lu %21lu\n"; ++#endif ++ ++#if BITS_PER_LONG == 32 ++static const char *head_fmt = "%10s %-12s %10s %10s %10s %10s %10s\n"; ++static const char *res_fmt = "%10s %-12s %10lu %10lu %10lu %10lu %10lu\n"; ++#else ++static const char *head_fmt = "%10s %-12s %20s %20s %20s %20s %20s\n"; ++static const char *res_fmt = "%10s %-12s %20lu %20lu %20lu %20lu %20lu\n"; ++#endif ++ ++static void ub_show_res(struct seq_file *f, struct user_beancounter *ub, ++ int r, int show_uid) ++{ ++ int len; ++ char ub_uid[64]; ++ ++ if (show_uid && r == 0) { ++ len = print_ub_uid(ub, ub_uid, sizeof(ub_uid) - 2); ++ ub_uid[len] = ':'; ++ ub_uid[len + 1] = '\0'; ++ } else ++ strcpy(ub_uid, ""); ++ ++ seq_printf(f, res_fmt, ub_uid, ub_rnames[r], ++ ub->ub_parms[r].held, ++ ub->ub_parms[r].maxheld, ++ ub->ub_parms[r].barrier, ++ ub->ub_parms[r].limit, ++ ub->ub_parms[r].failcnt); ++} ++ ++static void __show_resources(struct seq_file *f, struct user_beancounter *ub, ++ int show_uid) ++{ ++ int i; ++ ++ for (i = 0; i < UB_RESOURCES_COMPAT; i++) ++ if (strcmp(ub_rnames[i], "dummy") != 0) ++ ub_show_res(f, ub, i, show_uid); ++ ++ for (i = UB_RESOURCES_COMPAT; i < UB_RESOURCES; i++) ++ ub_show_res(f, ub, i, show_uid); ++} ++ ++static int bc_resources_show(struct seq_file *f, void *v) ++{ ++ __show_resources(f, seq_beancounter(f), 0); ++ return 0; ++} ++ ++static struct bc_proc_entry bc_resources_entry = { ++ .name = "resources", ++ .u.show = bc_resources_show, ++}; ++ ++static int bc_debug_show(struct seq_file *f, void *v) ++{ ++ struct user_beancounter *ub; ++ char buf[64]; ++ ++ ub = seq_beancounter(f); ++ print_ub_uid(ub, buf, sizeof(buf)); ++ seq_printf(f, "uid: %s\n", buf); ++ seq_printf(f, "ref: %d\n", atomic_read(&ub->ub_refcount)); ++ ++ seq_printf(f, "bc: %p\n", ub); ++ seq_printf(f, "par: %p\n", ub->parent); ++ seq_printf(f, "priv: %p\n", ub->private_data); ++ return 0; ++} ++ ++static struct bc_proc_entry bc_debug_entry = { ++ .name = "debug", ++ .u.show = bc_debug_show, ++}; ++ ++static int ub_show(struct seq_file *f, void *v) ++{ ++ int i; ++ ++ for (i = 0; i < UB_RESOURCES_COMPAT; i++) ++ ub_show_res(f, (struct user_beancounter *)v, i, 1); ++ return 0; ++} ++ ++static int res_show(struct seq_file *f, void *v) ++{ ++ __show_resources(f, (struct user_beancounter *)v, 1); ++ return 0; ++} ++ ++static int ub_accessible(struct user_beancounter *exec, ++ struct user_beancounter *target) ++{ ++ struct user_beancounter *p, *q; ++ ++ p = top_beancounter(exec); ++ q = top_beancounter(target); ++ ++ return (p == get_ub0() || p == q); ++} ++ ++static void ub_show_header(struct seq_file *f) ++{ ++ seq_printf(f, "Version: 2.5\n"); ++ seq_printf(f, head_fmt, "uid", "resource", ++ "held", "maxheld", "barrier", "limit", "failcnt"); ++} ++ ++static void *ub_start(struct seq_file *f, loff_t *ppos) ++{ ++ struct user_beancounter *ub; ++ struct user_beancounter *exec_ub; ++ unsigned long pos; ++ ++ pos = *ppos; ++ if (pos == 0) ++ ub_show_header(f); ++ ++ exec_ub = get_exec_ub(); ++ ++ rcu_read_lock(); ++ for_each_beancounter(ub) { ++ if (ub->parent != NULL) ++ continue; ++ if (!ub_accessible(exec_ub, ub)) ++ continue; ++ if (pos-- == 0) ++ return ub; ++ } ++ return NULL; ++} ++ ++static void *ub_next(struct seq_file *f, void *v, loff_t *ppos) ++{ ++ struct user_beancounter *ub; ++ struct list_head *entry; ++ struct user_beancounter *exec_ub; ++ ++ exec_ub = get_exec_ub(); ++ ub = (struct user_beancounter *)v; ++ ++ entry = &ub->ub_list; ++ ++ list_for_each_continue_rcu(entry, &ub_list_head) { ++ ub = list_entry(entry, struct user_beancounter, ub_list); ++ if (ub->parent != NULL) ++ continue; ++ if (!ub_accessible(exec_ub, ub)) ++ continue; ++ ++ (*ppos)++; ++ return ub; ++ } ++ return NULL; ++} ++ ++static void ub_stop(struct seq_file *f, void *v) ++{ ++ rcu_read_unlock(); ++} ++ ++static struct seq_operations ub_seq_ops = { ++ .start = ub_start, ++ .next = ub_next, ++ .stop = ub_stop, ++ .show = ub_show, ++}; ++ ++static int ub_open(struct inode *inode, struct file *filp) ++{ ++ if (!(capable(CAP_DAC_OVERRIDE) && capable(CAP_DAC_READ_SEARCH))) ++ return -EACCES; ++ ++ return seq_open(filp, &ub_seq_ops); ++} ++ ++static struct file_operations ub_file_operations = { ++ .open = ub_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++ ++static struct seq_operations res_seq_ops = { ++ .start = ub_start, ++ .next = ub_next, ++ .stop = ub_stop, ++ .show = res_show, ++}; ++ ++static int res_open(struct inode *inode, struct file *filp) ++{ ++ if (!(capable(CAP_DAC_OVERRIDE) && capable(CAP_DAC_READ_SEARCH))) ++ return -EACCES; ++ ++ return seq_open(filp, &res_seq_ops); ++} ++ ++static struct file_operations resources_operations = { ++ .open = res_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++ ++static struct bc_proc_entry bc_all_resources_entry = { ++ .name = "resources", ++ .u.fops = &resources_operations, ++}; ++ ++/* ++ * Generic showing stuff ++ */ ++ ++static int cookies, num_entries; ++static struct bc_proc_entry *bc_entries __read_mostly; ++static struct bc_proc_entry *bc_root_entries __read_mostly; ++static DEFINE_SPINLOCK(bc_entries_lock); ++static struct proc_dir_entry *bc_proc_root; ++ ++void bc_register_proc_entry(struct bc_proc_entry *e) ++{ ++ spin_lock(&bc_entries_lock); ++ e->cookie = ++cookies; ++ e->next = bc_entries; ++ bc_entries = e; ++ num_entries++; ++ spin_unlock(&bc_entries_lock); ++} ++ ++EXPORT_SYMBOL(bc_register_proc_entry); ++ ++void bc_register_proc_root_entry(struct bc_proc_entry *e) ++{ ++ spin_lock(&bc_entries_lock); ++ e->cookie = ++cookies; ++ e->next = bc_root_entries; ++ bc_root_entries = e; ++ bc_proc_root->nlink++; ++ spin_unlock(&bc_entries_lock); ++} ++ ++EXPORT_SYMBOL(bc_register_proc_root_entry); ++ ++/* ++ * small helpers ++ */ ++ ++static inline unsigned long bc_make_ino(struct user_beancounter *ub) ++{ ++ unsigned long ret; ++ ++ ret = 0xbc000000; ++ if (ub->parent) ++ ret |= ((ub->parent->ub_uid) << 4); ++ ret |= (ub->ub_uid + 1); ++ return ret; ++} ++ ++static inline unsigned long bc_make_file_ino(struct bc_proc_entry *de) ++{ ++ return 0xbe000000 + de->cookie; ++} ++ ++static int bc_d_delete(struct dentry *d) ++{ ++ return 1; ++} ++ ++static void bc_d_release(struct dentry *d) ++{ ++ put_beancounter((struct user_beancounter *)d->d_fsdata); ++} ++ ++static struct inode_operations bc_entry_iops; ++static struct file_operations bc_entry_fops; ++static struct dentry_operations bc_dentry_ops = { ++ .d_delete = bc_d_delete, ++ .d_release = bc_d_release, ++}; ++ ++/* ++ * common directory operations' helpers ++ */ ++ ++static int bc_readdir(struct file *file, filldir_t filler, void *data, ++ struct user_beancounter *parent) ++{ ++ int err = 0; ++ loff_t pos, filled; ++ struct user_beancounter *ub, *prev; ++ struct bc_proc_entry *pde; ++ ++ if (!(capable(CAP_DAC_OVERRIDE) && capable(CAP_DAC_READ_SEARCH))) ++ return -EPERM; ++ ++ pos = file->f_pos; ++ if (pos == 0) { ++ err = (*filler)(data, ".", 1, pos, ++ file->f_dentry->d_inode->i_ino, DT_DIR); ++ if (err < 0) { ++ err = 0; ++ goto out; ++ } ++ pos++; ++ } ++ ++ if (pos == 1) { ++ err = (*filler)(data, "..", 2, pos, ++ parent_ino(file->f_dentry), DT_DIR); ++ if (err < 0) { ++ err = 0; ++ goto out; ++ } ++ pos++; ++ } ++ ++ filled = 2; ++ for (pde = (parent == NULL ? bc_root_entries : bc_entries); ++ pde != NULL; pde = pde->next) { ++ if (filled++ < pos) ++ continue; ++ ++ err = (*filler)(data, pde->name, strlen(pde->name), pos, ++ bc_make_file_ino(pde), DT_REG); ++ if (err < 0) { ++ err = 0; ++ goto out; ++ } ++ pos++; ++ } ++ ++ rcu_read_lock(); ++ prev = NULL; ++ ub = list_entry(&ub_list_head, struct user_beancounter, ub_list); ++ while (1) { ++ int len; ++ unsigned long ino; ++ char buf[64]; ++ ++ ub = list_entry(rcu_dereference(ub->ub_list.next), ++ struct user_beancounter, ub_list); ++ if (&ub->ub_list == &ub_list_head) ++ break; ++ ++ if (ub->parent != parent) ++ continue; ++ ++ if (filled++ < pos) ++ continue; ++ ++ if (!get_beancounter_rcu(ub)) ++ continue; ++ ++ rcu_read_unlock(); ++ put_beancounter(prev); ++ ++ len = print_ub_uid(ub, buf, sizeof(buf)); ++ ino = bc_make_ino(ub); ++ ++ err = (*filler)(data, buf, len, pos, ino, DT_DIR); ++ if (err < 0) { ++ err = 0; ++ put_beancounter(ub); ++ goto out; ++ } ++ ++ rcu_read_lock(); ++ prev = ub; ++ pos++; ++ } ++ rcu_read_unlock(); ++ put_beancounter(prev); ++out: ++ file->f_pos = pos; ++ return err; ++} ++ ++static int bc_looktest(struct inode *ino, void *data) ++{ ++ return ino->i_op == &bc_entry_iops && ino->i_private == data; ++} ++ ++static int bc_lookset(struct inode *ino, void *data) ++{ ++ struct user_beancounter *ub; ++ ++ ub = (struct user_beancounter *)data; ++ ino->i_private = data; ++ ino->i_ino = bc_make_ino(ub); ++ ino->i_fop = &bc_entry_fops; ++ ino->i_op = &bc_entry_iops; ++ ino->i_mode = S_IFDIR | S_IRUSR | S_IXUGO; ++ /* subbeancounters are not included, but who cares? */ ++ ino->i_nlink = num_entries + 2; ++ ino->i_gid = 0; ++ ino->i_uid = 0; ++ return 0; ++} ++ ++static struct dentry *bc_lookup(struct user_beancounter *ub, struct inode *dir, ++ struct dentry *dentry) ++{ ++ struct inode *ino; ++ ++ ino = iget5_locked(dir->i_sb, ub->ub_uid, bc_looktest, bc_lookset, ub); ++ if (ino == NULL) ++ goto out_put; ++ ++ unlock_new_inode(ino); ++ dentry->d_op = &bc_dentry_ops; ++ dentry->d_fsdata = ub; ++ d_add(dentry, ino); ++ return NULL; ++ ++out_put: ++ put_beancounter(ub); ++ return ERR_PTR(-ENOENT); ++} ++ ++/* ++ * files (bc_proc_entry) manipulations ++ */ ++ ++static struct dentry *bc_lookup_file(struct inode *dir, ++ struct dentry *dentry, struct bc_proc_entry *root, ++ int (*test)(struct inode *, void *), ++ int (*set)(struct inode *, void *)) ++{ ++ struct bc_proc_entry *pde; ++ struct inode *ino; ++ ++ for (pde = root; pde != NULL; pde = pde->next) ++ if (strcmp(pde->name, dentry->d_name.name) == 0) ++ break; ++ ++ if (pde == NULL) ++ return ERR_PTR(-ESRCH); ++ ++ ino = iget5_locked(dir->i_sb, pde->cookie, test, set, pde); ++ if (ino == NULL) ++ return ERR_PTR(-ENOENT); ++ ++ unlock_new_inode(ino); ++ dentry->d_op = &bc_dentry_ops; ++ d_add(dentry, ino); ++ return NULL; ++} ++ ++static int bc_file_open(struct inode *ino, struct file *filp) ++{ ++ struct bc_proc_entry *de; ++ struct user_beancounter *ub; ++ ++ de = (struct bc_proc_entry *)ino->i_private; ++ ub = (struct user_beancounter *)filp->f_dentry->d_parent->d_fsdata; ++ BUG_ON(ub->ub_magic != UB_MAGIC); ++ ++ /* ++ * ub can't disappear: we hold d_parent, he holds the beancounter ++ */ ++ return single_open(filp, de->u.show, ub); ++} ++ ++static struct file_operations bc_file_ops = { ++ .open = bc_file_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = single_release, ++}; ++ ++static int bc_looktest_entry(struct inode *ino, void *data) ++{ ++ return ino->i_fop == &bc_file_ops && ino->i_private == data; ++} ++ ++static int bc_lookset_entry(struct inode *ino, void *data) ++{ ++ struct bc_proc_entry *de; ++ ++ de = (struct bc_proc_entry *)data; ++ ino->i_private = data; ++ ino->i_ino = bc_make_file_ino(de); ++ ino->i_fop = &bc_file_ops, ++ ino->i_mode = S_IFREG | S_IRUSR; ++ ino->i_nlink = 1; ++ ino->i_gid = 0; ++ ino->i_uid = 0; ++ return 0; ++} ++ ++static inline struct dentry *bc_lookup_files(struct inode *dir, ++ struct dentry *de) ++{ ++ return bc_lookup_file(dir, de, bc_entries, ++ bc_looktest_entry, bc_lookset_entry); ++} ++ ++static int bc_looktest_root_entry(struct inode *ino, void *data) ++{ ++ struct bc_proc_entry *de; ++ ++ de = (struct bc_proc_entry *)data; ++ return ino->i_fop == de->u.fops && ino->i_private == data; ++} ++ ++static int bc_lookset_root_entry(struct inode *ino, void *data) ++{ ++ struct bc_proc_entry *de; ++ ++ de = (struct bc_proc_entry *)data; ++ ino->i_private = data; ++ ino->i_ino = bc_make_file_ino(de); ++ ino->i_fop = de->u.fops; ++ ino->i_mode = S_IFREG | S_IRUSR; ++ ino->i_nlink = 1; ++ ino->i_gid = 0; ++ ino->i_uid = 0; ++ return 0; ++} ++ ++static inline struct dentry *bc_lookup_root_files(struct inode *dir, ++ struct dentry *de) ++{ ++ return bc_lookup_file(dir, de, bc_root_entries, ++ bc_looktest_root_entry, bc_lookset_root_entry); ++} ++ ++/* ++ * /proc/bc/.../ directory operations ++ */ ++ ++static int bc_entry_readdir(struct file *file, void *data, filldir_t filler) ++{ ++ return bc_readdir(file, filler, data, ++ (struct user_beancounter *)file->f_dentry->d_fsdata); ++} ++ ++static struct dentry *bc_entry_lookup(struct inode *dir, struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ int id; ++ char *end; ++ struct user_beancounter *par, *ub; ++ struct dentry *de; ++ ++ if (!(capable(CAP_DAC_OVERRIDE) && capable(CAP_DAC_READ_SEARCH))) ++ return ERR_PTR(-EPERM); ++ ++ de = bc_lookup_files(dir, dentry); ++ if (de != ERR_PTR(-ESRCH)) ++ return de; ++ ++ id = simple_strtol(dentry->d_name.name, &end, 10); ++ if (*end != '.') ++ return ERR_PTR(-ENOENT); ++ ++ par = (struct user_beancounter *)dir->i_private; ++ if (par->ub_uid != id) ++ return ERR_PTR(-ENOENT); ++ ++ id = simple_strtol(end + 1, &end, 10); ++ if (*end != '\0') ++ return ERR_PTR(-ENOENT); ++ ++ ub = get_subbeancounter_byid(par, id, 0); ++ if (ub == NULL) ++ return ERR_PTR(-ENOENT); ++ ++ return bc_lookup(ub, dir, dentry); ++} ++ ++static struct file_operations bc_entry_fops = { ++ .read = generic_read_dir, ++ .readdir = bc_entry_readdir, ++}; ++ ++static struct inode_operations bc_entry_iops = { ++ .lookup = bc_entry_lookup, ++}; ++ ++/* ++ * /proc/bc directory operations ++ */ ++ ++static int bc_root_readdir(struct file *file, void *data, filldir_t filler) ++{ ++ return bc_readdir(file, filler, data, NULL); ++} ++ ++static struct dentry *bc_root_lookup(struct inode *dir, struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ int id; ++ char *end; ++ struct user_beancounter *ub; ++ struct dentry *de; ++ ++ if (!(capable(CAP_DAC_OVERRIDE) && capable(CAP_DAC_READ_SEARCH))) ++ return ERR_PTR(-EPERM); ++ ++ de = bc_lookup_root_files(dir, dentry); ++ if (de != ERR_PTR(-ESRCH)) ++ return de; ++ ++ id = simple_strtol(dentry->d_name.name, &end, 10); ++ if (*end != '\0') ++ return ERR_PTR(-ENOENT); ++ ++ ub = get_beancounter_byuid(id, 0); ++ if (ub == NULL) ++ return ERR_PTR(-ENOENT); ++ ++ return bc_lookup(ub, dir, dentry); ++} ++ ++static struct file_operations bc_root_fops = { ++ .read = generic_read_dir, ++ .readdir = bc_root_readdir, ++}; ++ ++static struct inode_operations bc_root_iops = { ++ .lookup = bc_root_lookup, ++}; ++ ++static int __init ub_init_proc(void) ++{ ++ struct proc_dir_entry *entry; ++ ++ bc_proc_root = create_proc_entry("bc", ++ S_IFDIR | S_IRUGO | S_IXUGO, NULL); ++ if (bc_proc_root == NULL) ++ panic("Can't create /proc/bc entry"); ++ ++ bc_proc_root->proc_fops = &bc_root_fops; ++ bc_proc_root->proc_iops = &bc_root_iops; ++ ++ bc_register_proc_entry(&bc_resources_entry); ++#ifdef CONFIG_UBC_DEBUG ++ bc_register_proc_entry(&bc_debug_entry); ++#endif ++ bc_register_proc_root_entry(&bc_all_resources_entry); ++ ++ entry = create_proc_glob_entry("user_beancounters", S_IRUGO, NULL); ++ entry->proc_fops = &ub_file_operations; ++ return 0; ++} ++ ++core_initcall(ub_init_proc); +Index: kernel/kernel/bc/rss_pages.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/rss_pages.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,437 @@ ++/* ++ * kernel/bc/rss_pages.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++static struct kmem_cache *pb_cachep; ++spinlock_t pb_lock = SPIN_LOCK_UNLOCKED; ++static struct page_beancounter **pb_hash_table; ++static unsigned int pb_hash_mask; ++ ++/* ++ * Auxiliary staff ++ */ ++ ++static inline struct page_beancounter *next_page_pb(struct page_beancounter *p) ++{ ++ return list_entry(p->page_list.next, struct page_beancounter, ++ page_list); ++} ++ ++static inline struct page_beancounter *prev_page_pb(struct page_beancounter *p) ++{ ++ return list_entry(p->page_list.prev, struct page_beancounter, ++ page_list); ++} ++ ++/* ++ * Held pages manipulation ++ */ ++static inline void set_held_pages(struct user_beancounter *bc) ++{ ++ /* all three depend on ub_held_pages */ ++ __ub_update_physpages(bc); ++ __ub_update_oomguarpages(bc); ++ __ub_update_privvm(bc); ++} ++ ++static inline void do_dec_held_pages(struct user_beancounter *ub, int value) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub->ub_held_pages -= value; ++ set_held_pages(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++static void dec_held_pages(struct user_beancounter *ub, int value) ++{ ++ for (; ub != NULL; ub = ub->parent) ++ do_dec_held_pages(ub, value); ++} ++ ++static inline void do_inc_held_pages(struct user_beancounter *ub, int value) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub->ub_held_pages += value; ++ set_held_pages(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++static void inc_held_pages(struct user_beancounter *ub, int value) ++{ ++ for (; ub != NULL; ub = ub->parent) ++ do_inc_held_pages(ub, value); ++} ++ ++/* ++ * Alloc - free ++ */ ++ ++inline int pb_alloc(struct page_beancounter **pbc) ++{ ++ *pbc = kmem_cache_alloc(pb_cachep, GFP_KERNEL); ++ if (*pbc != NULL) { ++ (*pbc)->next_hash = NULL; ++ (*pbc)->pb_magic = PB_MAGIC; ++ } ++ return (*pbc == NULL); ++} ++ ++inline void pb_free(struct page_beancounter **pb) ++{ ++ if (*pb != NULL) { ++ kmem_cache_free(pb_cachep, *pb); ++ *pb = NULL; ++ } ++} ++ ++void pb_free_list(struct page_beancounter **p_pb) ++{ ++ struct page_beancounter *list, *pb; ++ ++ list = *p_pb; ++ if (list == PBC_COPY_SAME) ++ return; ++ ++ while (list) { ++ pb = list; ++ list = list->next_hash; ++ pb_free(&pb); ++ } ++ *p_pb = NULL; ++} ++ ++/* ++ * head -> -> -> ... ++ */ ++static int __alloc_list(struct page_beancounter **head, int num) ++{ ++ struct page_beancounter *pb; ++ ++ while (num > 0) { ++ if (pb_alloc(&pb)) ++ return -1; ++ pb->next_hash = *head; ++ *head = pb; ++ num--; ++ } ++ ++ return num; ++} ++ ++/* ++ * Ensure that the list contains at least num elements. ++ * p_pb points to an initialized list, may be of the zero length. ++ * ++ * mm->page_table_lock should be held ++ */ ++int pb_alloc_list(struct page_beancounter **p_pb, int num) ++{ ++ struct page_beancounter *list; ++ ++ for (list = *p_pb; list != NULL && num; list = list->next_hash, num--); ++ if (!num) ++ return 0; ++ ++ /* ++ * *p_pb(after) *p_pb (before) ++ * \ \ ++ * -...-> -> ... ++ */ ++ if (__alloc_list(p_pb, num) < 0) ++ goto nomem; ++ return 0; ++ ++nomem: ++ pb_free_list(p_pb); ++ return -ENOMEM; ++} ++ ++/* ++ * Allocates a page_beancounter for each ++ * user_beancounter in a hash ++ */ ++int pb_alloc_all(struct page_beancounter **pbs) ++{ ++ int need_alloc; ++ struct user_beancounter *ub; ++ ++ need_alloc = 0; ++ rcu_read_lock(); ++ for_each_beancounter(ub) ++ need_alloc++; ++ rcu_read_unlock(); ++ ++ if (!__alloc_list(pbs, need_alloc)) ++ return 0; ++ ++ pb_free_list(pbs); ++ return -ENOMEM; ++} ++ ++/* ++ * Hash routines ++ */ ++ ++static inline int pb_hash(struct user_beancounter *ub, struct page *page) ++{ ++ return (page_to_pfn(page) + (ub->ub_uid << 10)) & pb_hash_mask; ++} ++ ++/* pb_lock should be held */ ++static inline void insert_pb(struct page_beancounter *p, struct page *page, ++ struct user_beancounter *ub, int hash) ++{ ++ p->page = page; ++ p->ub = get_beancounter(ub); ++ p->next_hash = pb_hash_table[hash]; ++ pb_hash_table[hash] = p; ++ inc_pbc_count(ub); ++} ++ ++/* ++ * Heart ++ */ ++ ++static int __pb_dup_ref(struct page *page, struct user_beancounter *bc, ++ int hash) ++{ ++ struct page_beancounter *p; ++ ++ for (p = pb_hash_table[hash]; ++ p != NULL && (p->page != page || p->ub != bc); ++ p = p->next_hash); ++ if (p == NULL) ++ return -1; ++ ++ PB_COUNT_INC(p->refcount); ++ return 0; ++} ++ ++static void __pb_add_ref(struct page *page, struct user_beancounter *bc, ++ struct page_beancounter **ppb, int hash) ++{ ++ struct page_beancounter *head, *p, **hp; ++ int shift; ++ ++ p = *ppb; ++ *ppb = p->next_hash; ++ ++ insert_pb(p, page, bc, hash); ++ hp = page_pblist(page); ++ head = *hp; ++ ++ if (head != NULL) { ++ /* ++ * Move the first element to the end of the list. ++ * List head (pb_head) is set to the next entry. ++ * Note that this code works even if head is the only element ++ * on the list (because it's cyclic). ++ */ ++ BUG_ON(head->pb_magic != PB_MAGIC); ++ *hp = next_page_pb(head); ++ PB_SHIFT_INC(head->refcount); ++ shift = PB_SHIFT_GET(head->refcount); ++ /* ++ * Update user beancounter, the share of head has been changed. ++ * Note that the shift counter is taken after increment. ++ */ ++ dec_held_pages(head->ub, UB_PAGE_WEIGHT >> shift); ++ /* add the new page beancounter to the end of the list */ ++ head = *hp; ++ list_add_tail(&p->page_list, &head->page_list); ++ } else { ++ *hp = p; ++ shift = 0; ++ INIT_LIST_HEAD(&p->page_list); ++ } ++ ++ p->refcount = PB_REFCOUNT_MAKE(shift, 1); ++ /* update user beancounter for the new page beancounter */ ++ inc_held_pages(bc, UB_PAGE_WEIGHT >> shift); ++} ++ ++void pb_add_ref(struct page *page, struct mm_struct *mm, ++ struct page_beancounter **p_pb) ++{ ++ int hash; ++ struct user_beancounter *bc; ++ ++ bc = mm->mm_ub; ++ if (bc == NULL) ++ return; ++ ++ if (!PageAnon(page) && is_shmem_mapping(page->mapping)) ++ return; ++ ++ hash = pb_hash(bc, page); ++ ++ spin_lock(&pb_lock); ++ if (__pb_dup_ref(page, bc, hash)) ++ __pb_add_ref(page, bc, p_pb, hash); ++ spin_unlock(&pb_lock); ++} ++ ++void pb_dup_ref(struct page *page, struct mm_struct *mm, ++ struct page_beancounter **p_pb) ++{ ++ int hash; ++ struct user_beancounter *bc; ++ ++ bc = mm->mm_ub; ++ if (bc == NULL) ++ return; ++ ++ if (!PageAnon(page) && is_shmem_mapping(page->mapping)) ++ return; ++ ++ hash = pb_hash(bc, page); ++ ++ spin_lock(&pb_lock); ++ if (*page_pblist(page) == NULL) ++ /* ++ * pages like ZERO_PAGE must not be accounted in pbc ++ * so on fork we just skip them ++ */ ++ goto out_unlock; ++ ++ if (unlikely(*p_pb != PBC_COPY_SAME)) ++ __pb_add_ref(page, bc, p_pb, hash); ++ else if (unlikely(__pb_dup_ref(page, bc, hash))) ++ WARN_ON(1); ++out_unlock: ++ spin_unlock(&pb_lock); ++} ++ ++void pb_remove_ref(struct page *page, struct mm_struct *mm) ++{ ++ int hash; ++ struct user_beancounter *bc; ++ struct page_beancounter *p, **q, *f; ++ int shift, shiftt; ++ ++ bc = mm->mm_ub; ++ if (bc == NULL) ++ return; ++ ++ if (!PageAnon(page) && is_shmem_mapping(page->mapping)) ++ return; ++ ++ hash = pb_hash(bc, page); ++ ++ spin_lock(&pb_lock); ++ for (q = pb_hash_table + hash, p = *q; ++ p != NULL && (p->page != page || p->ub != bc); ++ q = &p->next_hash, p = *q); ++ if (p == NULL) ++ goto out_unlock; ++ ++ PB_COUNT_DEC(p->refcount); ++ if (PB_COUNT_GET(p->refcount)) ++ /* ++ * More references from the same user beancounter exist. ++ * Nothing needs to be done. ++ */ ++ goto out_unlock; ++ ++ /* remove from the hash list */ ++ f = p; ++ *q = p->next_hash; ++ ++ shift = PB_SHIFT_GET(p->refcount); ++ ++ dec_held_pages(p->ub, UB_PAGE_WEIGHT >> shift); ++ ++ q = page_pblist(page); ++ if (*q == p) { ++ if (list_empty(&p->page_list)) { ++ *q = NULL; ++ goto out_free; ++ } ++ ++ *q = next_page_pb(p); ++ } ++ list_del(&p->page_list); ++ ++ /* Now balance the list. Move the tail and adjust its shift counter. */ ++ p = prev_page_pb(*q); ++ shiftt = PB_SHIFT_GET(p->refcount); ++ *q = p; ++ PB_SHIFT_DEC(p->refcount); ++ ++ inc_held_pages(p->ub, UB_PAGE_WEIGHT >> shiftt); ++ ++ /* ++ * If the shift counter of the moved beancounter is different from the ++ * removed one's, repeat the procedure for one more tail beancounter ++ */ ++ if (shiftt > shift) { ++ p = prev_page_pb(*q); ++ *q = p; ++ PB_SHIFT_DEC(p->refcount); ++ inc_held_pages(p->ub, UB_PAGE_WEIGHT >> shiftt); ++ } ++out_free: ++ dec_pbc_count(f->ub); ++ spin_unlock(&pb_lock); ++ ++ put_beancounter(f->ub); ++ pb_free(&f); ++ return; ++ ++out_unlock: ++ spin_unlock(&pb_lock); ++} ++ ++struct user_beancounter *pb_grab_page_ub(struct page *page) ++{ ++ struct page_beancounter *pb; ++ struct user_beancounter *ub; ++ ++ spin_lock(&pb_lock); ++ pb = *page_pblist(page); ++ ub = (pb == NULL ? ERR_PTR(-EINVAL) : ++ get_beancounter(pb->ub)); ++ spin_unlock(&pb_lock); ++ return ub; ++} ++ ++void __init ub_init_pbc(void) ++{ ++ unsigned long hash_size; ++ ++ pb_cachep = kmem_cache_create("page_beancounter", ++ sizeof(struct page_beancounter), 0, ++ SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL); ++ hash_size = num_physpages >> 2; ++ for (pb_hash_mask = 1; ++ (hash_size & pb_hash_mask) != hash_size; ++ pb_hash_mask = (pb_hash_mask << 1) + 1); ++ hash_size = pb_hash_mask + 1; ++ printk(KERN_INFO "Page beancounter hash is %lu entries.\n", hash_size); ++ pb_hash_table = vmalloc(hash_size * sizeof(struct page_beancounter *)); ++ memset(pb_hash_table, 0, hash_size * sizeof(struct page_beancounter *)); ++ ++ ub_init_io(pb_cachep); ++} +Index: kernel/kernel/bc/statd.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/statd.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,453 @@ ++/* ++ * kernel/bc/statd.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++static spinlock_t ubs_notify_lock = SPIN_LOCK_UNLOCKED; ++static LIST_HEAD(ubs_notify_list); ++static long ubs_min_interval; ++static ubstattime_t ubs_start_time, ubs_end_time; ++static struct timer_list ubs_timer; ++ ++static int ubstat_get_list(void __user *buf, long size) ++{ ++ int retval; ++ struct user_beancounter *ub, *ubp; ++ long *page, *ptr, *end; ++ int len; ++ ++ page = (long *)__get_free_page(GFP_KERNEL); ++ if (page == NULL) ++ return -ENOMEM; ++ ++ retval = 0; ++ ubp = NULL; ++ ptr = page; ++ end = page + PAGE_SIZE / sizeof(*ptr); ++ ++ spin_lock_irq(&ub_hash_lock); ++ for_each_beancounter(ub) { ++ if (ub->parent != NULL) ++ continue; ++ *ptr++ = ub->ub_uid; ++ if (ptr != end) ++ continue; ++ ++ get_beancounter(ub); ++ spin_unlock_irq(&ub_hash_lock); ++ ++ put_beancounter(ubp); ++ ubp = ub; ++ ++ len = min_t(long, (ptr - page) * sizeof(*ptr), size); ++ if (copy_to_user(buf, page, len)) { ++ retval = -EFAULT; ++ goto out_put; ++ } ++ retval += len; ++ if (len < PAGE_SIZE) ++ goto out_put; ++ buf += len; ++ size -= len; ++ ++ ptr = page; ++ end = page + PAGE_SIZE / sizeof(*ptr); ++ ++ spin_lock_irq(&ub_hash_lock); ++ } ++ spin_unlock_irq(&ub_hash_lock); ++ ++ put_beancounter(ubp); ++ size = min_t(long, (ptr - page) * sizeof(*ptr), size); ++ if (size > 0 && copy_to_user(buf, page, size)) { ++ retval = -EFAULT; ++ goto out_put; ++ } ++ retval += size; ++ ++out_put: ++ put_beancounter(ubp); ++ free_page((unsigned long)page); ++ return retval; ++} ++ ++static int ubstat_gettime(void __user *buf, long size) ++{ ++ ubgettime_t data; ++ int retval; ++ ++ spin_lock(&ubs_notify_lock); ++ data.start_time = ubs_start_time; ++ data.end_time = ubs_end_time; ++ data.cur_time = ubs_start_time + (jiffies - ubs_start_time * HZ) / HZ; ++ spin_unlock(&ubs_notify_lock); ++ ++ retval = min_t(long, sizeof(data), size); ++ if (copy_to_user(buf, &data, retval)) ++ retval = -EFAULT; ++ return retval; ++} ++ ++static int ubstat_do_read_one(struct user_beancounter *ub, int res, void *kbuf) ++{ ++ struct { ++ ubstattime_t start_time; ++ ubstattime_t end_time; ++ ubstatparm_t param[1]; ++ } *data; ++ ++ data = kbuf; ++ data->start_time = ubs_start_time; ++ data->end_time = ubs_end_time; ++ ++ data->param[0].maxheld = ub->ub_store[res].maxheld; ++ data->param[0].failcnt = ub->ub_store[res].failcnt; ++ ++ return sizeof(*data); ++} ++ ++static int ubstat_do_read_all(struct user_beancounter *ub, void *kbuf, int size) ++{ ++ int wrote; ++ struct { ++ ubstattime_t start_time; ++ ubstattime_t end_time; ++ ubstatparm_t param[UB_RESOURCES]; ++ } *data; ++ int resource; ++ ++ data = kbuf; ++ data->start_time = ubs_start_time; ++ data->end_time = ubs_end_time; ++ wrote = sizeof(data->start_time) + sizeof(data->end_time); ++ ++ for (resource = 0; resource < UB_RESOURCES; resource++) { ++ if (size < wrote + sizeof(data->param[resource])) ++ break; ++ data->param[resource].maxheld = ub->ub_store[resource].maxheld; ++ data->param[resource].failcnt = ub->ub_store[resource].failcnt; ++ wrote += sizeof(data->param[resource]); ++ } ++ ++ return wrote; ++} ++ ++static int ubstat_do_read_full(struct user_beancounter *ub, void *kbuf, ++ int size) ++{ ++ int wrote; ++ struct { ++ ubstattime_t start_time; ++ ubstattime_t end_time; ++ ubstatparmf_t param[UB_RESOURCES]; ++ } *data; ++ int resource; ++ ++ data = kbuf; ++ data->start_time = ubs_start_time; ++ data->end_time = ubs_end_time; ++ wrote = sizeof(data->start_time) + sizeof(data->end_time); ++ ++ for (resource = 0; resource < UB_RESOURCES; resource++) { ++ if (size < wrote + sizeof(data->param[resource])) ++ break; ++ /* The beginning of ubstatparmf_t matches struct ubparm. */ ++ memcpy(&data->param[resource], &ub->ub_store[resource], ++ sizeof(ub->ub_store[resource])); ++ data->param[resource].__unused1 = 0; ++ data->param[resource].__unused2 = 0; ++ wrote += sizeof(data->param[resource]); ++ } ++ return wrote; ++} ++ ++static int ubstat_get_stat(struct user_beancounter *ub, long cmd, ++ void __user *buf, long size) ++{ ++ void *kbuf; ++ int retval; ++ ++ kbuf = (void *)__get_free_page(GFP_KERNEL); ++ if (kbuf == NULL) ++ return -ENOMEM; ++ ++ spin_lock(&ubs_notify_lock); ++ switch (UBSTAT_CMD(cmd)) { ++ case UBSTAT_READ_ONE: ++ retval = -EINVAL; ++ if (UBSTAT_PARMID(cmd) >= UB_RESOURCES) ++ break; ++ retval = ubstat_do_read_one(ub, ++ UBSTAT_PARMID(cmd), kbuf); ++ break; ++ case UBSTAT_READ_ALL: ++ retval = ubstat_do_read_all(ub, kbuf, PAGE_SIZE); ++ break; ++ case UBSTAT_READ_FULL: ++ retval = ubstat_do_read_full(ub, kbuf, PAGE_SIZE); ++ break; ++ default: ++ retval = -EINVAL; ++ } ++ spin_unlock(&ubs_notify_lock); ++ ++ if (retval > 0) { ++ retval = min_t(long, retval, size); ++ if (copy_to_user(buf, kbuf, retval)) ++ retval = -EFAULT; ++ } ++ ++ free_page((unsigned long)kbuf); ++ return retval; ++} ++ ++static int ubstat_handle_notifrq(ubnotifrq_t *req) ++{ ++ int retval; ++ struct ub_stat_notify *new_notify; ++ struct list_head *entry; ++ struct task_struct *tsk_to_free; ++ ++ new_notify = kmalloc(sizeof(new_notify), GFP_KERNEL); ++ if (new_notify == NULL) ++ return -ENOMEM; ++ ++ tsk_to_free = NULL; ++ INIT_LIST_HEAD(&new_notify->list); ++ ++ spin_lock(&ubs_notify_lock); ++ list_for_each(entry, &ubs_notify_list) { ++ struct ub_stat_notify *notify; ++ ++ notify = list_entry(entry, struct ub_stat_notify, list); ++ if (notify->task == current) { ++ kfree(new_notify); ++ new_notify = notify; ++ break; ++ } ++ } ++ ++ retval = -EINVAL; ++ if (req->maxinterval < 1) ++ goto out_unlock; ++ if (req->maxinterval > TIME_MAX_SEC) ++ req->maxinterval = TIME_MAX_SEC; ++ if (req->maxinterval < ubs_min_interval) { ++ unsigned long dif; ++ ++ ubs_min_interval = req->maxinterval; ++ dif = (ubs_timer.expires - jiffies + HZ - 1) / HZ; ++ if (dif > req->maxinterval) ++ mod_timer(&ubs_timer, ++ ubs_timer.expires - ++ (dif - req->maxinterval) * HZ); ++ } ++ ++ if (entry != &ubs_notify_list) { ++ list_del(&new_notify->list); ++ tsk_to_free = new_notify->task; ++ } ++ if (req->signum) { ++ new_notify->task = current; ++ get_task_struct(new_notify->task); ++ new_notify->signum = req->signum; ++ list_add(&new_notify->list, &ubs_notify_list); ++ } else ++ kfree(new_notify); ++ retval = 0; ++out_unlock: ++ spin_unlock(&ubs_notify_lock); ++ if (tsk_to_free != NULL) ++ put_task_struct(tsk_to_free); ++ return retval; ++} ++ ++/* ++ * former sys_ubstat ++ */ ++long do_ubstat(int func, unsigned long arg1, unsigned long arg2, ++ void __user *buf, long size) ++{ ++ int retval; ++ struct user_beancounter *ub; ++ ++ if (func == UBSTAT_UBPARMNUM) ++ return UB_RESOURCES; ++ if (func == UBSTAT_UBLIST) ++ return ubstat_get_list(buf, size); ++ if (!(capable(CAP_DAC_OVERRIDE) || capable(CAP_DAC_READ_SEARCH))) ++ return -EPERM; ++ ++ if (func == UBSTAT_GETTIME) { ++ retval = ubstat_gettime(buf, size); ++ goto notify; ++ } ++ ++ ub = get_exec_ub(); ++ if (ub != NULL && ub->ub_uid == arg1) ++ get_beancounter(ub); ++ else /* FIXME must be if (ve_is_super) */ ++ ub = get_beancounter_byuid(arg1, 0); ++ ++ if (ub == NULL) ++ return -ESRCH; ++ ++ retval = ubstat_get_stat(ub, func, buf, size); ++ put_beancounter(ub); ++notify: ++ /* Handle request for notification */ ++ if (retval >= 0) { ++ ubnotifrq_t notifrq; ++ int err; ++ ++ err = -EFAULT; ++ if (!copy_from_user(¬ifrq, (void __user *)arg2, ++ sizeof(notifrq))) ++ err = ubstat_handle_notifrq(¬ifrq); ++ if (err) ++ retval = err; ++ } ++ ++ return retval; ++} ++ ++static void ubstat_save_onestat(struct user_beancounter *ub) ++{ ++ int resource; ++ ++ /* called with local irq disabled */ ++ spin_lock(&ub->ub_lock); ++ for (resource = 0; resource < UB_RESOURCES; resource++) { ++ memcpy(&ub->ub_store[resource], &ub->ub_parms[resource], ++ sizeof(struct ubparm)); ++ ub->ub_parms[resource].minheld = ++ ub->ub_parms[resource].maxheld = ++ ub->ub_parms[resource].held; ++ } ++ spin_unlock(&ub->ub_lock); ++} ++ ++static void ubstat_save_statistics(void) ++{ ++ unsigned long flags; ++ struct user_beancounter *ub; ++ ++ local_irq_save(flags); ++ for_each_beancounter (ub) ++ ubstat_save_onestat(ub); ++ local_irq_restore(flags); ++} ++ ++static void ubstatd_timeout(unsigned long __data) ++{ ++ struct task_struct *p; ++ ++ p = (struct task_struct *) __data; ++ wake_up_process(p); ++} ++ ++/* ++ * Safe wrapper for send_sig. It prevents a race with release_task ++ * for sighand. ++ * Should be called under tasklist_lock. ++ */ ++static void task_send_sig(struct ub_stat_notify *notify) ++{ ++ if (likely(notify->task->sighand != NULL)) ++ send_sig(notify->signum, notify->task, 1); ++} ++ ++static inline void do_notifies(void) ++{ ++ LIST_HEAD(notif_free_list); ++ struct ub_stat_notify *notify; ++ struct ub_stat_notify *tmp; ++ ++ spin_lock(&ubs_notify_lock); ++ ubs_start_time = ubs_end_time; ++ /* ++ * the expression below relies on time being unsigned long and ++ * arithmetic promotion rules ++ */ ++ ubs_end_time += (ubs_timer.expires - ubs_start_time * HZ) / HZ; ++ mod_timer(&ubs_timer, ubs_timer.expires + ubs_min_interval * HZ); ++ ubs_min_interval = TIME_MAX_SEC; ++ /* save statistics accumulated for the interval */ ++ ubstat_save_statistics(); ++ /* send signals */ ++ read_lock(&tasklist_lock); ++ while (!list_empty(&ubs_notify_list)) { ++ notify = list_entry(ubs_notify_list.next, ++ struct ub_stat_notify, list); ++ task_send_sig(notify); ++ list_del(¬ify->list); ++ list_add(¬ify->list, ¬if_free_list); ++ } ++ read_unlock(&tasklist_lock); ++ spin_unlock(&ubs_notify_lock); ++ ++ list_for_each_entry_safe(notify, tmp, ¬if_free_list, list) { ++ put_task_struct(notify->task); ++ kfree(notify); ++ } ++} ++ ++/* ++ * Kernel thread ++ */ ++static int ubstatd(void *unused) ++{ ++ /* daemonize call will take care of signals */ ++ daemonize("ubstatd"); ++ ++ ubs_timer.data = (unsigned long)current; ++ ubs_timer.function = ubstatd_timeout; ++ add_timer(&ubs_timer); ++ ++ while (1) { ++ set_task_state(current, TASK_INTERRUPTIBLE); ++ if (time_after(ubs_timer.expires, jiffies)) { ++ schedule(); ++ try_to_freeze(); ++ continue; ++ } ++ ++ __set_task_state(current, TASK_RUNNING); ++ do_notifies(); ++ } ++ return 0; ++} ++ ++static int __init ubstatd_init(void) ++{ ++ init_timer(&ubs_timer); ++ ubs_timer.expires = TIME_MAX_JIF; ++ ubs_min_interval = TIME_MAX_SEC; ++ ubs_start_time = ubs_end_time = 0; ++ ++ kernel_thread(ubstatd, NULL, 0); ++ return 0; ++} ++ ++module_init(ubstatd_init); +Index: kernel/kernel/bc/sys.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/sys.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,173 @@ ++/* ++ * kernel/bc/sys.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++ ++#include ++ ++/* ++ * The (rather boring) getluid syscall ++ */ ++asmlinkage long sys_getluid(void) ++{ ++ struct user_beancounter *ub; ++ ++ ub = get_exec_ub(); ++ if (ub == NULL) ++ return -EINVAL; ++ ++ return ub->ub_uid; ++} ++ ++/* ++ * The setluid syscall ++ */ ++asmlinkage long sys_setluid(uid_t uid) ++{ ++ struct user_beancounter *ub; ++ struct task_beancounter *task_bc; ++ int error; ++ ++ task_bc = ¤t->task_bc; ++ ++ /* You may not disown a setluid */ ++ error = -EINVAL; ++ if (uid == (uid_t)-1) ++ goto out; ++ ++ /* You may only set an ub as root */ ++ error = -EPERM; ++ if (!capable(CAP_SETUID)) ++ goto out; ++ /* ++ * The ub once set is irrevocable to all ++ * unless it's set from ve0. ++ */ ++ if (!ve_is_super(get_exec_env())) ++ goto out; ++ ++ /* Ok - set up a beancounter entry for this user */ ++ error = -ENOBUFS; ++ ub = get_beancounter_byuid(uid, 1); ++ if (ub == NULL) ++ goto out; ++ ++ ub_debug(UBD_ALLOC | UBD_LIMIT, "setluid, bean %p (count %d) " ++ "for %.20s pid %d\n", ++ ub, atomic_read(&ub->ub_refcount), ++ current->comm, current->pid); ++ /* install bc */ ++ error = virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_NEWUBC, ub); ++ if (!(error & NOTIFY_FAIL)) { ++ put_beancounter(task_bc->exec_ub); ++ task_bc->exec_ub = ub; ++ if (!(error & NOTIFY_OK)) { ++ put_beancounter(task_bc->fork_sub); ++ task_bc->fork_sub = get_beancounter(ub); ++ } ++ error = 0; ++ } else { ++ put_beancounter(ub); ++ error = -ENOBUFS; ++ } ++out: ++ return error; ++} ++ ++long do_setublimit(uid_t uid, unsigned long resource, ++ unsigned long *new_limits) ++{ ++ int error; ++ unsigned long flags; ++ struct user_beancounter *ub; ++ ++ error = -EPERM; ++ if(!capable(CAP_SYS_RESOURCE)) ++ goto out; ++ ++ if (!ve_is_super(get_exec_env())) ++ goto out; ++ ++ error = -EINVAL; ++ if (resource >= UB_RESOURCES) ++ goto out; ++ ++ error = -EINVAL; ++ if (new_limits[0] > UB_MAXVALUE || new_limits[1] > UB_MAXVALUE) ++ goto out; ++ ++ error = -ENOENT; ++ ub = get_beancounter_byuid(uid, 0); ++ if (ub == NULL) { ++ ub_debug(UBD_LIMIT, "No login bc for uid %d\n", uid); ++ goto out; ++ } ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub->ub_parms[resource].barrier = new_limits[0]; ++ ub->ub_parms[resource].limit = new_limits[1]; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ ++ put_beancounter(ub); ++ ++ error = 0; ++out: ++ return error; ++} ++ ++/* ++ * The setbeanlimit syscall ++ */ ++asmlinkage long sys_setublimit(uid_t uid, unsigned long resource, ++ unsigned long __user *limits) ++{ ++ unsigned long new_limits[2]; ++ ++ if (copy_from_user(&new_limits, limits, sizeof(new_limits))) ++ return -EFAULT; ++ ++ return do_setublimit(uid, resource, new_limits); ++} ++ ++extern long do_ubstat(int func, unsigned long arg1, unsigned long arg2, ++ void __user *buf, long size); ++asmlinkage long sys_ubstat(int func, unsigned long arg1, unsigned long arg2, ++ void __user *buf, long size) ++{ ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; ++ ++ return do_ubstat(func, arg1, arg2, buf, size); ++} ++ ++#ifdef CONFIG_COMPAT ++asmlinkage long compat_sys_setublimit(uid_t uid, int resource, ++ unsigned int __user *limits) ++{ ++ unsigned int u_new_limits[2]; ++ unsigned long new_limits[2]; ++ ++ if (copy_from_user(&u_new_limits, limits, sizeof(u_new_limits))) ++ return -EFAULT; ++ ++ new_limits[0] = u_new_limits[0]; ++ new_limits[1] = u_new_limits[1]; ++ ++ return do_setublimit(uid, resource, new_limits); ++} ++ ++asmlinkage long compat_sys_ubstat(int func, unsigned int arg1, ++ unsigned int arg2, compat_uptr_t *buf, long size) ++{ ++ return sys_ubstat(func, arg1, arg2, buf, size); ++} ++#endif +Index: kernel/kernel/bc/vm_pages.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/bc/vm_pages.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,549 @@ ++/* ++ * kernel/bc/vm_pages.c ++ * ++ * Copyright (C) 2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++static inline unsigned long pages_in_pte_range(struct vm_area_struct *vma, ++ pmd_t *pmd, unsigned long addr, unsigned long end, ++ unsigned long *ret) ++{ ++ pte_t *pte; ++ spinlock_t *ptl; ++ ++ pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); ++ do { ++ if (!pte_none(*pte) && pte_present(*pte)) ++ (*ret)++; ++ } while (pte++, addr += PAGE_SIZE, (addr != end)); ++ pte_unmap_unlock(pte - 1, ptl); ++ ++ return addr; ++} ++ ++static inline unsigned long pages_in_pmd_range(struct vm_area_struct *vma, ++ pud_t *pud, unsigned long addr, unsigned long end, ++ unsigned long *ret) ++{ ++ pmd_t *pmd; ++ unsigned long next; ++ ++ pmd = pmd_offset(pud, addr); ++ do { ++ next = pmd_addr_end(addr, end); ++ if (pmd_none_or_clear_bad(pmd)) ++ continue; ++ next = pages_in_pte_range(vma, pmd, addr, next, ret); ++ } while (pmd++, addr = next, (addr != end)); ++ ++ return addr; ++} ++ ++static inline unsigned long pages_in_pud_range(struct vm_area_struct *vma, ++ pgd_t *pgd, unsigned long addr, unsigned long end, ++ unsigned long *ret) ++{ ++ pud_t *pud; ++ unsigned long next; ++ ++ pud = pud_offset(pgd, addr); ++ do { ++ next = pud_addr_end(addr, end); ++ if (pud_none_or_clear_bad(pud)) ++ continue; ++ next = pages_in_pmd_range(vma, pud, addr, next, ret); ++ } while (pud++, addr = next, (addr != end)); ++ ++ return addr; ++} ++ ++unsigned long pages_in_vma_range(struct vm_area_struct *vma, ++ unsigned long addr, unsigned long end) ++{ ++ pgd_t *pgd; ++ unsigned long next; ++ unsigned long ret; ++ ++ ret = 0; ++ BUG_ON(addr >= end); ++ pgd = pgd_offset(vma->vm_mm, addr); ++ do { ++ next = pgd_addr_end(addr, end); ++ if (pgd_none_or_clear_bad(pgd)) ++ continue; ++ next = pages_in_pud_range(vma, pgd, addr, next, &ret); ++ } while (pgd++, addr = next, (addr != end)); ++ return ret; ++} ++ ++void fastcall __ub_update_physpages(struct user_beancounter *ub) ++{ ++ ub->ub_parms[UB_PHYSPAGES].held = ub->ub_tmpfs_respages ++ + (ub->ub_held_pages >> UB_PAGE_WEIGHT_SHIFT); ++ ub_adjust_maxheld(ub, UB_PHYSPAGES); ++} ++ ++void fastcall __ub_update_oomguarpages(struct user_beancounter *ub) ++{ ++ ub->ub_parms[UB_OOMGUARPAGES].held = ++ ub->ub_parms[UB_PHYSPAGES].held + ub->ub_swap_pages; ++ ub_adjust_maxheld(ub, UB_OOMGUARPAGES); ++} ++ ++void fastcall __ub_update_privvm(struct user_beancounter *ub) ++{ ++ ub->ub_parms[UB_PRIVVMPAGES].held = ++ (ub->ub_held_pages >> UB_PAGE_WEIGHT_SHIFT) ++ + ub->ub_unused_privvmpages ++ + ub->ub_parms[UB_SHMPAGES].held; ++ ub_adjust_maxheld(ub, UB_PRIVVMPAGES); ++} ++ ++static inline int __charge_privvm_locked(struct user_beancounter *ub, ++ unsigned long s, enum ub_severity strict) ++{ ++ if (__charge_beancounter_locked(ub, UB_PRIVVMPAGES, s, strict) < 0) ++ return -ENOMEM; ++ ++ ub->ub_unused_privvmpages += s; ++ return 0; ++} ++ ++static void __unused_privvm_dec_locked(struct user_beancounter *ub, ++ long size) ++{ ++ /* catch possible overflow */ ++ if (ub->ub_unused_privvmpages < size) { ++ uncharge_warn(ub, UB_UNUSEDPRIVVM, ++ size, ub->ub_unused_privvmpages); ++ size = ub->ub_unused_privvmpages; ++ } ++ ub->ub_unused_privvmpages -= size; ++ __ub_update_privvm(ub); ++} ++ ++void __ub_unused_privvm_dec(struct mm_struct *mm, long size) ++{ ++ unsigned long flags; ++ struct user_beancounter *ub; ++ ++ ub = mm->mm_ub; ++ if (ub == NULL) ++ return; ++ ++ ub = top_beancounter(ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ __unused_privvm_dec_locked(ub, size); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++void ub_unused_privvm_sub(struct mm_struct *mm, ++ struct vm_area_struct *vma, unsigned long count) ++{ ++ if (VM_UB_PRIVATE(vma->vm_flags, vma->vm_file)) ++ __ub_unused_privvm_dec(mm, count); ++} ++ ++void ub_unused_privvm_add(struct mm_struct *mm, ++ struct vm_area_struct *vma, unsigned long size) ++{ ++ unsigned long flags; ++ struct user_beancounter *ub; ++ ++ ub = mm->mm_ub; ++ if (ub == NULL || !VM_UB_PRIVATE(vma->vm_flags, vma->vm_file)) ++ return; ++ ++ ub = top_beancounter(ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub->ub_unused_privvmpages += size; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++int ub_protected_charge(struct mm_struct *mm, unsigned long size, ++ unsigned long newflags, struct vm_area_struct *vma) ++{ ++ unsigned long flags; ++ struct file *file; ++ struct user_beancounter *ub; ++ ++ ub = mm->mm_ub; ++ if (ub == NULL) ++ return PRIVVM_NO_CHARGE; ++ ++ flags = vma->vm_flags; ++ if (!((newflags ^ flags) & VM_WRITE)) ++ return PRIVVM_NO_CHARGE; ++ ++ file = vma->vm_file; ++ if (!VM_UB_PRIVATE(newflags | VM_WRITE, file)) ++ return PRIVVM_NO_CHARGE; ++ ++ if (flags & VM_WRITE) ++ return PRIVVM_TO_SHARED; ++ ++ ub = top_beancounter(ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ if (__charge_privvm_locked(ub, size, UB_SOFT) < 0) ++ goto err; ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return PRIVVM_TO_PRIVATE; ++ ++err: ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return PRIVVM_ERROR; ++} ++ ++int ub_memory_charge(struct mm_struct *mm, unsigned long size, ++ unsigned vm_flags, struct file *vm_file, int sv) ++{ ++ struct user_beancounter *ub, *ubl; ++ unsigned long flags; ++ ++ ub = mm->mm_ub; ++ if (ub == NULL) ++ return 0; ++ ++ size >>= PAGE_SHIFT; ++ if (size > UB_MAXVALUE) ++ return -EINVAL; ++ ++ BUG_ON(sv != UB_SOFT && sv != UB_HARD); ++ ++ if (vm_flags & VM_LOCKED) { ++ if (charge_beancounter(ub, UB_LOCKEDPAGES, size, sv)) ++ goto out_err; ++ } ++ if (VM_UB_PRIVATE(vm_flags, vm_file)) { ++ ubl = top_beancounter(ub); ++ spin_lock_irqsave(&ubl->ub_lock, flags); ++ if (__charge_privvm_locked(ubl, size, sv)) ++ goto out_private; ++ spin_unlock_irqrestore(&ubl->ub_lock, flags); ++ } ++ return 0; ++ ++out_private: ++ spin_unlock_irqrestore(&ubl->ub_lock, flags); ++ if (vm_flags & VM_LOCKED) ++ uncharge_beancounter(ub, UB_LOCKEDPAGES, size); ++out_err: ++ return -ENOMEM; ++} ++ ++void ub_memory_uncharge(struct mm_struct *mm, unsigned long size, ++ unsigned vm_flags, struct file *vm_file) ++{ ++ struct user_beancounter *ub; ++ unsigned long flags; ++ ++ ub = mm->mm_ub; ++ if (ub == NULL) ++ return; ++ ++ size >>= PAGE_SHIFT; ++ ++ if (vm_flags & VM_LOCKED) ++ uncharge_beancounter(ub, UB_LOCKEDPAGES, size); ++ if (VM_UB_PRIVATE(vm_flags, vm_file)) { ++ ub = top_beancounter(ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ __unused_privvm_dec_locked(ub, size); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ } ++} ++ ++int ub_locked_charge(struct mm_struct *mm, unsigned long size) ++{ ++ struct user_beancounter *ub; ++ ++ ub = mm->mm_ub; ++ if (ub == NULL) ++ return 0; ++ ++ return charge_beancounter(ub, UB_LOCKEDPAGES, ++ size >> PAGE_SHIFT, UB_HARD); ++} ++ ++void ub_locked_uncharge(struct mm_struct *mm, unsigned long size) ++{ ++ struct user_beancounter *ub; ++ ++ ub = mm->mm_ub; ++ if (ub == NULL) ++ return; ++ ++ uncharge_beancounter(ub, UB_LOCKEDPAGES, size >> PAGE_SHIFT); ++} ++ ++int ub_lockedshm_charge(struct shmem_inode_info *shi, unsigned long size) ++{ ++ struct user_beancounter *ub; ++ ++ ub = shi->shmi_ub; ++ if (ub == NULL) ++ return 0; ++ ++ return charge_beancounter(ub, UB_LOCKEDPAGES, ++ size >> PAGE_SHIFT, UB_HARD); ++} ++ ++void ub_lockedshm_uncharge(struct shmem_inode_info *shi, unsigned long size) ++{ ++ struct user_beancounter *ub; ++ ++ ub = shi->shmi_ub; ++ if (ub == NULL) ++ return; ++ ++ uncharge_beancounter(ub, UB_LOCKEDPAGES, size >> PAGE_SHIFT); ++} ++ ++ ++static inline void do_ub_tmpfs_respages_inc(struct user_beancounter *ub) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub->ub_tmpfs_respages++; ++ __ub_update_physpages(ub); ++ __ub_update_oomguarpages(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++void ub_tmpfs_respages_inc(struct shmem_inode_info *shi) ++{ ++ struct user_beancounter *ub; ++ ++ for (ub = shi->shmi_ub; ub != NULL; ub = ub->parent) ++ do_ub_tmpfs_respages_inc(ub); ++} ++ ++static inline void do_ub_tmpfs_respages_sub(struct user_beancounter *ub, ++ unsigned long size) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ /* catch possible overflow */ ++ if (ub->ub_tmpfs_respages < size) { ++ uncharge_warn(ub, UB_TMPFSPAGES, ++ size, ub->ub_tmpfs_respages); ++ size = ub->ub_tmpfs_respages; ++ } ++ ub->ub_tmpfs_respages -= size; ++ /* update values what is the most interesting */ ++ __ub_update_physpages(ub); ++ __ub_update_oomguarpages(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++void ub_tmpfs_respages_sub(struct shmem_inode_info *shi, ++ unsigned long size) ++{ ++ struct user_beancounter *ub; ++ ++ for (ub = shi->shmi_ub; ub != NULL; ub = ub->parent) ++ do_ub_tmpfs_respages_sub(ub, size); ++} ++ ++int ub_shmpages_charge(struct shmem_inode_info *shi, unsigned long size) ++{ ++ int ret; ++ unsigned long flags; ++ struct user_beancounter *ub; ++ ++ ub = shi->shmi_ub; ++ if (ub == NULL) ++ return 0; ++ ++ ub = top_beancounter(ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ret = __charge_beancounter_locked(ub, UB_SHMPAGES, size, UB_HARD); ++ if (ret == 0) ++ __ub_update_privvm(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++ return ret; ++} ++ ++void ub_shmpages_uncharge(struct shmem_inode_info *shi, unsigned long size) ++{ ++ unsigned long flags; ++ struct user_beancounter *ub; ++ ++ ub = shi->shmi_ub; ++ if (ub == NULL) ++ return; ++ ++ ub = top_beancounter(ub); ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ __uncharge_beancounter_locked(ub, UB_SHMPAGES, size); ++ __ub_update_privvm(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++#ifdef CONFIG_BC_SWAP_ACCOUNTING ++static inline void do_ub_swapentry_inc(struct user_beancounter *ub) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ ub->ub_swap_pages++; ++ __ub_update_oomguarpages(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++void ub_swapentry_inc(struct swap_info_struct *si, pgoff_t num, ++ struct user_beancounter *ub) ++{ ++ si->swap_ubs[num] = get_beancounter(ub); ++ for (; ub != NULL; ub = ub->parent) ++ do_ub_swapentry_inc(ub); ++} ++EXPORT_SYMBOL(ub_swapentry_inc); ++ ++static inline void do_ub_swapentry_dec(struct user_beancounter *ub) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ub->ub_lock, flags); ++ if (ub->ub_swap_pages <= 0) ++ uncharge_warn(ub, UB_SWAPPAGES, 1, ub->ub_swap_pages); ++ else ++ ub->ub_swap_pages--; ++ __ub_update_oomguarpages(ub); ++ spin_unlock_irqrestore(&ub->ub_lock, flags); ++} ++ ++void ub_swapentry_dec(struct swap_info_struct *si, pgoff_t num) ++{ ++ struct user_beancounter *ub, *ubp; ++ ++ ub = si->swap_ubs[num]; ++ si->swap_ubs[num] = NULL; ++ for (ubp = ub; ubp != NULL; ubp = ubp->parent) ++ do_ub_swapentry_dec(ubp); ++ put_beancounter(ub); ++} ++EXPORT_SYMBOL(ub_swapentry_dec); ++ ++int ub_swap_init(struct swap_info_struct *si, pgoff_t num) ++{ ++ struct user_beancounter **ubs; ++ ++ ubs = vmalloc(num * sizeof(struct user_beancounter *)); ++ if (ubs == NULL) ++ return -ENOMEM; ++ ++ memset(ubs, 0, num * sizeof(struct user_beancounter *)); ++ si->swap_ubs = ubs; ++ return 0; ++} ++ ++void ub_swap_fini(struct swap_info_struct *si) ++{ ++ if (si->swap_ubs) { ++ vfree(si->swap_ubs); ++ si->swap_ubs = NULL; ++ } ++} ++#endif ++ ++static int vmguar_enough_memory(struct vnotifier_block *self, ++ unsigned long event, void *arg, int old_ret) ++{ ++ struct user_beancounter *ub; ++ ++ if (event != VIRTINFO_ENOUGHMEM) ++ return old_ret; ++ /* ++ * If it's a kernel thread, don't care about it. ++ * Added in order aufsd to run smoothly over ramfs. ++ */ ++ if (!current->mm) ++ return NOTIFY_DONE; ++ ++ ub = top_beancounter(current->mm->mm_ub); ++ if (ub->ub_parms[UB_PRIVVMPAGES].held > ++ ub->ub_parms[UB_VMGUARPAGES].barrier) ++ return old_ret; ++ ++ return NOTIFY_OK; ++} ++ ++static struct vnotifier_block vmguar_notifier_block = { ++ .notifier_call = vmguar_enough_memory ++}; ++ ++static int __init init_vmguar_notifier(void) ++{ ++ virtinfo_notifier_register(VITYPE_GENERAL, &vmguar_notifier_block); ++ return 0; ++} ++ ++static void __exit fini_vmguar_notifier(void) ++{ ++ virtinfo_notifier_unregister(VITYPE_GENERAL, &vmguar_notifier_block); ++} ++ ++module_init(init_vmguar_notifier); ++module_exit(fini_vmguar_notifier); ++ ++#ifdef CONFIG_PROC_FS ++static int bc_vmaux_show(struct seq_file *f, void *v) ++{ ++ struct user_beancounter *ub; ++ unsigned long swap, unmap; ++ int i; ++ ++ ub = seq_beancounter(f); ++ ++ swap = unmap = 0; ++ for_each_online_cpu(i) { ++ swap += per_cpu_ptr(ub->ub_percpu, i)->swapin; ++ unmap += per_cpu_ptr(ub->ub_percpu, i)->unmap; ++ } ++ ++ seq_printf(f, bc_proc_lu_fmt, ub_rnames[UB_UNUSEDPRIVVM], ++ ub->ub_unused_privvmpages); ++ seq_printf(f, bc_proc_lu_fmt, ub_rnames[UB_TMPFSPAGES], ++ ub->ub_tmpfs_respages); ++ seq_printf(f, bc_proc_lu_fmt, ub_rnames[UB_SWAPPAGES], ++ ub->ub_swap_pages); ++ ++ seq_printf(f, bc_proc_lu_fmt, "swapin", swap); ++ seq_printf(f, bc_proc_lu_fmt, "unmap", unmap); ++ return 0; ++} ++static struct bc_proc_entry bc_vmaux_entry = { ++ .name = "vmaux", ++ .u.show = bc_vmaux_show, ++}; ++ ++static int __init bc_vmaux_init(void) ++{ ++ bc_register_proc_entry(&bc_vmaux_entry); ++ return 0; ++} ++ ++late_initcall(bc_vmaux_init); ++#endif +Index: kernel/kernel/capability.c +=================================================================== +--- kernel.orig/kernel/capability.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/capability.c 2008-11-24 15:47:46.000000000 +0100 +@@ -10,16 +10,23 @@ + #include + #include + #include ++#include + #include + #include + #include + #include + ++#ifndef CONFIG_VE ++kernel_cap_t cap_bset = CAP_INIT_EFF_SET; ++EXPORT_SYMBOL(cap_bset); ++#endif ++ + /* + * This lock protects task->cap_* for all tasks including current. + * Locking rule: acquire this prior to tasklist_lock. + */ +-static DEFINE_SPINLOCK(task_capability_lock); ++DEFINE_SPINLOCK(task_capability_lock); ++EXPORT_SYMBOL(task_capability_lock); + + /* + * For sys_getproccap() and sys_setproccap(), any of the three +@@ -99,7 +106,7 @@ + pgrp = find_vpid(pgrp_nr); + do_each_pid_task(pgrp, PIDTYPE_PGID, g) { + target = g; +- while_each_thread(g, target) { ++ while_each_thread_ve(g, target) { + if (!security_capset_check(target, effective, + inheritable, + permitted)) { +@@ -129,7 +136,7 @@ + int ret = -EPERM; + int found = 0; + +- do_each_thread(g, target) { ++ do_each_thread_ve(g, target) { + if (target == current || is_container_init(target->group_leader)) + continue; + found = 1; +@@ -138,7 +145,7 @@ + continue; + ret = 0; + security_capset_set(target, effective, inheritable, permitted); +- } while_each_thread(g, target); ++ } while_each_thread_ve(g, target); + + if (!found) + ret = 0; +Index: kernel/kernel/cgroup.c +=================================================================== +--- kernel.orig/kernel/cgroup.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/cgroup.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1686,12 +1686,12 @@ + struct task_struct *p, *g; + write_lock(&css_set_lock); + use_task_css_set_links = 1; +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + task_lock(p); + if (list_empty(&p->cg_list)) + list_add(&p->cg_list, &p->cgroups->tasks); + task_unlock(p); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + write_unlock(&css_set_lock); + } + read_lock(&css_set_lock); +@@ -2229,9 +2229,9 @@ + struct task_struct *g, *p; + + read_lock(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + ss->fork(ss, p); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + read_unlock(&tasklist_lock); + } + +@@ -2577,9 +2577,6 @@ + again: + root = subsys->root; + if (root == &rootnode) { +- printk(KERN_INFO +- "Not cloning cgroup for unused subsystem %s\n", +- subsys->name); + mutex_unlock(&cgroup_mutex); + return 0; + } +Index: kernel/kernel/compat.c +=================================================================== +--- kernel.orig/kernel/compat.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/compat.c 2008-11-24 15:47:46.000000000 +0100 +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -40,7 +41,7 @@ + __put_user(ts->tv_nsec, &cts->tv_nsec)) ? -EFAULT : 0; + } + +-static long compat_nanosleep_restart(struct restart_block *restart) ++long compat_nanosleep_restart(struct restart_block *restart) + { + struct compat_timespec __user *rmtp; + struct timespec rmt; +@@ -64,6 +65,7 @@ + + return ret; + } ++EXPORT_SYMBOL_GPL(compat_nanosleep_restart); + + asmlinkage long compat_sys_nanosleep(struct compat_timespec __user *rqtp, + struct compat_timespec __user *rmtp) +Index: kernel/kernel/configs.c +=================================================================== +--- kernel.orig/kernel/configs.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/configs.c 2008-11-24 15:47:46.000000000 +0100 +@@ -79,8 +79,7 @@ + struct proc_dir_entry *entry; + + /* create the current config file */ +- entry = create_proc_entry("config.gz", S_IFREG | S_IRUGO, +- &proc_root); ++ entry = create_proc_entry("config.gz", S_IFREG | S_IRUGO, NULL); + if (!entry) + return -ENOMEM; + +Index: kernel/kernel/cpt/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/Makefile 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,53 @@ ++# ++# ++# kernel/cpt/Makefile ++# ++# Copyright (C) 2000-2005 SWsoft ++# All rights reserved. ++# ++# Licensing governed by "linux/COPYING.SWsoft" file. ++ ++obj-$(CONFIG_VZ_CHECKPOINT) += vzcpt.o vzrst.o ++ ++vzcpt-objs := cpt_proc.o cpt_dump.o cpt_obj.o cpt_context.o cpt_process.o \ ++ cpt_mm.o cpt_files.o cpt_kernel.o \ ++ cpt_socket.o cpt_socket_in.o cpt_tty.o cpt_sysvipc.o cpt_net.o \ ++ cpt_conntrack.o cpt_epoll.o ++ ++vzrst-objs := rst_proc.o rst_undump.o rst_context.o rst_process.o \ ++ rst_mm.o rst_files.o \ ++ rst_socket.o rst_socket_in.o rst_tty.o rst_sysvipc.o rst_net.o \ ++ rst_conntrack.o rst_epoll.o ++ ++ifeq ($(CONFIG_BEANCOUNTERS), y) ++vzcpt-objs += cpt_ubc.o ++vzrst-objs += rst_ubc.o ++endif ++ ++ifeq ($(CONFIG_INOTIFY_USER), y) ++vzcpt-objs += cpt_inotify.o ++vzrst-objs += rst_inotify.o ++endif ++ ++vzrst-objs += cpt_exports.o ++ ++ifeq ($(CONFIG_VZ_CHECKPOINT), m) ++vzrst-objs += cpt_obj.o cpt_kernel.o ++endif ++ ++ifeq ($(CONFIG_VZ_CHECKPOINT_ITER), y) ++vzcpt-objs += cpt_iterative.o ++vzrst-objs += rst_iterative.o ++endif ++ ++ifeq ($(CONFIG_VZ_CHECKPOINT_LAZY), y) ++vzcpt-objs += cpt_pagein.o ++vzrst-objs += rst_pagein.o ++endif ++ ++ifeq ($(CONFIG_X86_64), y) ++vzcpt-objs += cpt_x8664.o ++ifeq ($(CONFIG_VZ_CHECKPOINT), m) ++vzrst-objs += cpt_x8664.o ++endif ++endif +Index: kernel/kernel/cpt/cpt_conntrack.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_conntrack.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,365 @@ ++/* ++ * ++ * kernel/cpt/cpt_conntrack.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#if defined(CONFIG_VE_IPTABLES) && \ ++ (defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE)) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++ ++/* How does it work? ++ * ++ * Network is disabled, so new conntrack entries will not appear. ++ * However, some of them can disappear because of timeouts. ++ * ++ * So, we take read_lock, collect all required information atomically, ++ * essentially, creating parallel "refcount" structures holding pointers. ++ * We delete conntrack timers as well, so the structures cannot disappear ++ * after releasing the lock. Now, after releasing lock we can dump everything ++ * safely. And on exit we restore timers to their original values. ++ * ++ * Note, this approach is not going to work in VE0. ++ */ ++ ++struct ct_holder ++{ ++ struct ct_holder *next; ++ struct ip_conntrack_tuple_hash *cth; ++ int index; ++}; ++ ++static void encode_tuple(struct cpt_ipct_tuple *v, struct ip_conntrack_tuple *tuple) ++{ ++ v->cpt_dst = tuple->dst.ip; ++ v->cpt_dstport = tuple->dst.u.all; ++ v->cpt_protonum = tuple->dst.protonum; ++ v->cpt_dir = tuple->dst.dir; ++ ++ v->cpt_src = tuple->src.ip; ++ v->cpt_srcport = tuple->src.u.all; ++} ++ ++static int dump_one_expect(struct cpt_ip_connexpect_image *v, ++ struct ip_conntrack_expect *exp, ++ int sibling, cpt_context_t *ctx) ++{ ++ int err = 0; ++ ++ v->cpt_next = sizeof(*v); ++ v->cpt_object = CPT_OBJ_NET_CONNTRACK_EXPECT; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_VOID; ++ ++ encode_tuple(&v->cpt_tuple, &exp->tuple); ++ encode_tuple(&v->cpt_mask, &exp->mask); ++ v->cpt_sibling_conntrack = sibling; ++ v->cpt_flags = exp->flags; ++ v->cpt_seq = exp->id; ++ v->cpt_dir = 0; ++ v->cpt_manip_proto = 0; ++#ifdef CONFIG_IP_NF_NAT_NEEDED ++ v->cpt_manip_proto = exp->saved_proto.all; ++ v->cpt_dir = exp->dir; ++#endif ++ v->cpt_timeout = 0; ++ if (exp->master->helper->timeout) ++ v->cpt_timeout = exp->timeout.expires - jiffies; ++ return err; ++} ++ ++/* NOTE. We use one page to dump list of expectations. This may be not enough ++ * in theory. In practice there is only one expectation per conntrack record. ++ * Moreover, taking into account that _ALL_ of expecations are saved in one ++ * global list, which is looked up each incoming/outpging packet, the system ++ * would be severely dead when even one conntrack would have so much of ++ * expectations. Shortly, I am not going to repair this. ++ */ ++ ++static int dump_expect_list(struct ip_conntrack *ct, struct ct_holder *list, ++ cpt_context_t *ctx) ++{ ++ int err = 0; ++ unsigned long pg; ++ struct cpt_ip_connexpect_image *v; ++ struct ip_conntrack_expect *exp; ++ ++ if (ct->expecting == 0) ++ return err; ++ if (ct->expecting*sizeof(struct cpt_ip_connexpect_image) > PAGE_SIZE) ++ return -ENOBUFS; ++ ++ pg = __get_free_page(GFP_KERNEL); ++ if (!pg) ++ return -ENOMEM; ++ v = (struct cpt_ip_connexpect_image *)pg; ++ ++ read_lock_bh(&ip_conntrack_lock); ++ list_for_each_entry(exp, &ve_ip_conntrack_expect_list, list) { ++ int sibling; ++ ++ if (exp->master != ct) ++ continue; ++ ++ if (ct->helper == NULL) { ++ eprintk_ctx("conntrack: no helper and non-trivial expectation\n"); ++ err = -EINVAL; ++ break; ++ } ++ ++ sibling = 0; ++#if 0 ++ /* That's all? No need to calculate sibling? */ ++ if (exp->sibling) { ++ struct ct_holder *c; ++ for (c = list; c; c = c->next) { ++ if (tuplehash_to_ctrack(c->cth) == exp->sibling) { ++ sibling = c->index; ++ break; ++ } ++ } ++ /* NOTE: exp->sibling could be not "confirmed" and, hence, ++ * out of hash table. We should just ignore such a sibling, ++ * the connection is going to be retried, the packet ++ * apparently was lost somewhere. ++ */ ++ if (sibling == 0) ++ dprintk_ctx("sibling conntrack is not found\n"); ++ } ++#endif ++ ++ /* If the expectation still does not have exp->sibling ++ * and timer is not running, it is about to die on another ++ * cpu. Skip it. */ ++ if (!sibling && ++ ct->helper->timeout && ++ !timer_pending(&exp->timeout)) { ++ dprintk_ctx("conntrack: expectation: no timer\n"); ++ continue; ++ } ++ ++ err = dump_one_expect(v, exp, sibling, ctx); ++ if (err) ++ break; ++ ++ v++; ++ } ++ read_unlock_bh(&ip_conntrack_lock); ++ ++ if (err == 0 && (unsigned long)v != pg) ++ ctx->write((void*)pg, (unsigned long)v - pg, ctx); ++ ++ free_page(pg); ++ return err; ++} ++ ++static int dump_one_ct(struct ct_holder *c, struct ct_holder *list, ++ cpt_context_t *ctx) ++{ ++ struct ip_conntrack_tuple_hash *h = c->cth; ++ struct ip_conntrack *ct = tuplehash_to_ctrack(h); ++ struct cpt_ip_conntrack_image v; ++ int err = 0; ++ ++ if (sizeof(v.cpt_proto_data) != sizeof(ct->proto)) { ++ eprintk_ctx("conntrack module ct->proto version mismatch\n"); ++ return -EINVAL; ++ } ++ ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NET_CONNTRACK; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_ARRAY; ++ ++ read_lock_bh(&ip_conntrack_lock); ++ v.cpt_status = ct->status; ++ v.cpt_timeout = ct->timeout.expires - jiffies; ++ v.cpt_ct_helper = (ct->helper != NULL); ++ v.cpt_index = c->index; ++ v.cpt_id = ct->id; ++ v.cpt_mark = 0; ++#if defined(CONFIG_IP_NF_CONNTRACK_MARK) ++ v.cpt_mark = ct->mark; ++#endif ++ encode_tuple(&v.cpt_tuple[0], &ct->tuplehash[0].tuple); ++ encode_tuple(&v.cpt_tuple[1], &ct->tuplehash[1].tuple); ++ memcpy(&v.cpt_proto_data, &ct->proto, sizeof(v.cpt_proto_data)); ++ memcpy(&v.cpt_help_data, &ct->help, sizeof(v.cpt_help_data)); ++ ++ v.cpt_masq_index = 0; ++ v.cpt_initialized = 0; ++ v.cpt_num_manips = 0; ++ v.cpt_nat_helper = 0; ++#ifdef CONFIG_IP_NF_NAT_NEEDED ++#if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \ ++ defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE) ++ v.cpt_masq_index = ct->nat.masq_index; ++#endif ++ /* "help" data is used by pptp, difficult to support */ ++ v.cpt_nat_seq[0].cpt_correction_pos = ct->nat.info.seq[0].correction_pos; ++ v.cpt_nat_seq[0].cpt_offset_before = ct->nat.info.seq[0].offset_before; ++ v.cpt_nat_seq[0].cpt_offset_after = ct->nat.info.seq[0].offset_after; ++ v.cpt_nat_seq[1].cpt_correction_pos = ct->nat.info.seq[1].correction_pos; ++ v.cpt_nat_seq[1].cpt_offset_before = ct->nat.info.seq[1].offset_before; ++ v.cpt_nat_seq[1].cpt_offset_after = ct->nat.info.seq[1].offset_after; ++#endif ++ read_unlock_bh(&ip_conntrack_lock); ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++ err = dump_expect_list(ct, list, ctx); ++ ++ cpt_close_object(ctx); ++ return err; ++} ++ ++int cpt_dump_ip_conntrack(cpt_context_t * ctx) ++{ ++ struct ct_holder *ct_list = NULL; ++ struct ct_holder *c, **cp; ++ int err = 0; ++ int index = 0; ++ int idx; ++ ++ if (get_exec_env()->_ip_conntrack == NULL) ++ return 0; ++ ++ for (idx = atomic_read(&(get_exec_env()->_ip_conntrack->_ip_conntrack_count)); idx >= 0; idx--) { ++ c = kmalloc(sizeof(struct ct_holder), GFP_KERNEL); ++ if (c == NULL) { ++ err = -ENOMEM; ++ goto done; ++ } ++ memset(c, 0, sizeof(struct ct_holder)); ++ c->next = ct_list; ++ ct_list = c; ++ } ++ ++ c = ct_list; ++ ++ read_lock_bh(&ip_conntrack_lock); ++ for (idx = 0; idx < ip_conntrack_htable_size; idx++) { ++ struct ip_conntrack_tuple_hash *h; ++ list_for_each_entry(h, &ve_ip_conntrack_hash[idx], list) { ++ /* Skip reply tuples, they are covered by original ++ * direction. */ ++ if (DIRECTION(h)) ++ continue; ++ ++ /* Oops, we have not enough of holders... ++ * It is impossible. */ ++ if (unlikely(c == NULL)) { ++ read_unlock_bh(&ip_conntrack_lock); ++ eprintk_ctx("unexpected conntrack appeared\n"); ++ err = -ENOMEM; ++ goto done; ++ } ++ ++ /* If timer is not running, it means that it ++ * has just been scheduled on another cpu. ++ * We should skip this conntrack, it is about to be ++ * destroyed. */ ++ if (!del_timer(&tuplehash_to_ctrack(h)->timeout)) { ++ dprintk_ctx("conntrack: no timer\n"); ++ continue; ++ } ++ ++ /* Timer is deleted. refcnt is _not_ decreased. ++ * We are going to restore the timer on exit ++ * from this function. */ ++ c->cth = h; ++ c->index = ++index; ++ c = c->next; ++ } ++ } ++ read_unlock_bh(&ip_conntrack_lock); ++ ++ /* No conntracks? Good. */ ++ if (index == 0) ++ goto done; ++ ++ /* Comb the list a little. */ ++ cp = &ct_list; ++ while ((c = *cp) != NULL) { ++ /* Discard unused entries; they can appear, if some ++ * entries were timed out since we preallocated the list. ++ */ ++ if (c->cth == NULL) { ++ *cp = c->next; ++ kfree(c); ++ continue; ++ } ++ ++ /* Move conntracks attached to expectations to the beginning ++ * of the list. */ ++ if (tuplehash_to_ctrack(c->cth)->master && c != ct_list) { ++ *cp = c->next; ++ c->next = ct_list; ++ ct_list = c; ++ dprintk_ctx("conntrack: %d moved in list\n", c->index); ++ continue; ++ } ++ cp = &c->next; ++ } ++ ++ cpt_open_section(ctx, CPT_SECT_NET_CONNTRACK); ++ ++ for (c = ct_list; c; c = c->next) { ++ err = dump_one_ct(c, ct_list, ctx); ++ if (err) ++ goto done; ++ } ++ ++ cpt_close_section(ctx); ++ ++done: ++ while ((c = ct_list) != NULL) { ++ ct_list = c->next; ++ if (c->cth) { ++ /* Restore timer. refcnt is preserved. */ ++ add_timer(&tuplehash_to_ctrack(c->cth)->timeout); ++ } ++ kfree(c); ++ } ++ return err; ++} ++ ++#endif +Index: kernel/kernel/cpt/cpt_context.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_context.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,257 @@ ++/* ++ * ++ * kernel/cpt/cpt_context.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++ ++static void file_write(const void *addr, size_t count, struct cpt_context *ctx) ++{ ++ mm_segment_t oldfs; ++ ssize_t err = -EBADF; ++ struct file *file = ctx->file; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if (file) ++ err = file->f_op->write(file, addr, count, &file->f_pos); ++ set_fs(oldfs); ++ if (err != count && !ctx->write_error) ++ ctx->write_error = err < 0 ? err : -EIO; ++} ++ ++static void file_pwrite(void *addr, size_t count, struct cpt_context *ctx, loff_t pos) ++{ ++ mm_segment_t oldfs; ++ ssize_t err = -EBADF; ++ struct file *file = ctx->file; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if (file) ++ err = file->f_op->write(file, addr, count, &pos); ++ set_fs(oldfs); ++ if (err != count && !ctx->write_error) ++ ctx->write_error = err < 0 ? err : -EIO; ++} ++ ++static void file_align(struct cpt_context *ctx) ++{ ++ struct file *file = ctx->file; ++ ++ if (file) ++ file->f_pos = CPT_ALIGN(file->f_pos); ++} ++ ++void cpt_context_init(struct cpt_context *ctx) ++{ ++ int i; ++ ++ memset(ctx, 0, sizeof(*ctx)); ++ ++ init_MUTEX(&ctx->main_sem); ++ ctx->refcount = 1; ++ ++ ctx->current_section = -1; ++ ctx->current_object = -1; ++ ctx->pagesize = PAGE_SIZE; ++ ctx->write = file_write; ++ ctx->pwrite = file_pwrite; ++ ctx->align = file_align; ++ for (i=0; i < CPT_SECT_MAX; i++) ++ ctx->sections[i] = CPT_NULL; ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ init_completion(&ctx->pgin_notify); ++#endif ++ cpt_object_init(ctx); ++} ++ ++int cpt_open_dumpfile(struct cpt_context *ctx) ++{ ++ ctx->tmpbuf = (char*)__get_free_page(GFP_KERNEL); ++ if (ctx->tmpbuf == NULL) ++ return -ENOMEM; ++ __cpt_release_buf(ctx); ++ return 0; ++} ++ ++int cpt_close_dumpfile(struct cpt_context *ctx) ++{ ++ if (ctx->file) { ++ fput(ctx->file); ++ ctx->file = NULL; ++ } ++ if (ctx->tmpbuf) { ++ free_page((unsigned long)ctx->tmpbuf); ++ ctx->tmpbuf = NULL; ++ } ++ if (ctx->write_error) ++ eprintk_ctx("error while writing dump file: %d\n", ctx->write_error); ++ return ctx->write_error; ++} ++ ++int cpt_major_hdr_out(struct cpt_context *ctx) ++{ ++ struct cpt_major_hdr hdr; ++ ++ if (ctx->file == NULL) ++ return 0; ++ ++ memset(&hdr, 0, sizeof(hdr)); ++ hdr.cpt_signature[0] = CPT_SIGNATURE0; ++ hdr.cpt_signature[1] = CPT_SIGNATURE1; ++ hdr.cpt_signature[2] = CPT_SIGNATURE2; ++ hdr.cpt_signature[3] = CPT_SIGNATURE3; ++ hdr.cpt_hdrlen = sizeof(hdr); ++ hdr.cpt_image_version = CPT_VERSION_20; ++#ifdef CONFIG_X86_64 ++ hdr.cpt_os_arch = CPT_OS_ARCH_EMT64; ++#elif defined(CONFIG_X86_32) ++ hdr.cpt_os_arch = CPT_OS_ARCH_I386; ++#elif defined(CONFIG_IA64) ++ hdr.cpt_os_arch = CPT_OS_ARCH_IA64; ++#else ++#error Arch is not supported ++#endif ++ hdr.cpt_ve_features = (__u32)ctx->features; ++ hdr.cpt_ve_features2 = (__u32)(ctx->features>>32); ++ hdr.cpt_pagesize = (__u16)PAGE_SIZE; ++ hdr.cpt_hz = HZ; ++ hdr.cpt_start_jiffies64 = ctx->virt_jiffies64; ++ hdr.cpt_start_sec = ctx->start_time.tv_sec; ++ hdr.cpt_start_nsec = ctx->start_time.tv_nsec; ++ hdr.cpt_cpu_caps[0] = ctx->src_cpu_flags; ++ hdr.cpt_kernel_config[0] = ctx->kernel_config_flags; ++ hdr.cpt_iptables_mask = ctx->iptables_mask; ++ ++ ctx->write(&hdr, sizeof(hdr), ctx); ++ return 0; ++} ++ ++int cpt_close_section(struct cpt_context *ctx) ++{ ++ if (ctx->file && ctx->current_section >= 0) { ++ __u64 next = ctx->file->f_pos - ctx->current_section; ++ ctx->pwrite(&next, 8, ctx, ctx->current_section); ++ ctx->current_section = -1; ++ } ++ return 0; ++} ++EXPORT_SYMBOL(cpt_close_section); ++ ++int cpt_open_section(struct cpt_context *ctx, __u32 type) ++{ ++ struct cpt_section_hdr hdr; ++ ++ if (ctx->file == NULL) ++ return 0; ++ ++ cpt_close_section(ctx); ++ ++ ctx->current_section = ctx->file->f_pos; ++ ctx->sections[type] = ctx->current_section; ++ ++ hdr.cpt_next = 0; ++ hdr.cpt_section = type; ++ hdr.cpt_hdrlen = sizeof(hdr); ++ hdr.cpt_align = 0; ++ ctx->write(&hdr, sizeof(hdr), ctx); ++ ++ return 0; ++} ++EXPORT_SYMBOL(cpt_open_section); ++ ++ ++int cpt_close_object(struct cpt_context *ctx) ++{ ++ if (ctx->file && ctx->current_object >= 0) { ++ __u64 next = ctx->file->f_pos - ctx->current_object; ++ ctx->pwrite(&next, 8, ctx, ctx->current_object); ++ ctx->current_object = -1; ++ } ++ return 0; ++} ++EXPORT_SYMBOL(cpt_close_object); ++ ++int cpt_open_object(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ if (ctx->file == NULL) ++ return 0; ++ ++ cpt_close_object(ctx); ++ ++ ctx->current_object = ctx->file->f_pos; ++ if (obj) ++ cpt_obj_setpos(obj, ctx->current_object, ctx); ++ ++ return 0; ++} ++EXPORT_SYMBOL(cpt_open_object); ++ ++int cpt_push_object(loff_t *saved, struct cpt_context *ctx) ++{ ++ if (ctx->file) { ++ *saved = ctx->current_object; ++ ctx->current_object = ctx->file->f_pos; ++ } ++ return 0; ++} ++EXPORT_SYMBOL(cpt_push_object); ++ ++int cpt_pop_object(loff_t *saved, struct cpt_context *ctx) ++{ ++ ctx->current_object = *saved; ++ return 0; ++} ++EXPORT_SYMBOL(cpt_pop_object); ++ ++int cpt_dump_tail(struct cpt_context *ctx) ++{ ++ struct cpt_major_tail hdr; ++ int i; ++ ++ if (ctx->file == NULL) ++ return 0; ++ ++ cpt_open_section(ctx, CPT_SECT_TRAILER); ++ memset(&hdr, 0, sizeof(hdr)); ++ hdr.cpt_next = sizeof(hdr); ++ hdr.cpt_object = CPT_OBJ_TRAILER; ++ hdr.cpt_hdrlen = sizeof(hdr); ++ hdr.cpt_content = CPT_CONTENT_VOID; ++ hdr.cpt_lazypages = 0; ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ hdr.cpt_lazypages = ctx->lazypages; ++#endif ++ hdr.cpt_64bit = ctx->tasks64; ++ hdr.cpt_signature[0] = CPT_SIGNATURE0; ++ hdr.cpt_signature[1] = CPT_SIGNATURE1; ++ hdr.cpt_signature[2] = CPT_SIGNATURE2; ++ hdr.cpt_signature[3] = CPT_SIGNATURE3; ++ hdr.cpt_nsect = CPT_SECT_MAX_INDEX; ++ for (i = 0; i < CPT_SECT_MAX_INDEX; i++) ++ hdr.cpt_sections[i] = ctx->sections[i]; ++ ++ ctx->write(&hdr, sizeof(hdr), ctx); ++ cpt_close_section(ctx); ++ return 0; ++} +Index: kernel/kernel/cpt/cpt_context.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_context.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,215 @@ ++#include ++#include ++#include ++ ++#define CPT_CTX_ERROR -1 ++#define CPT_CTX_IDLE 0 ++#define CPT_CTX_SUSPENDING 1 ++#define CPT_CTX_SUSPENDED 2 ++#define CPT_CTX_DUMPING 3 ++#define CPT_CTX_UNDUMPING 4 ++#define CPT_CTX_UNDUMPED 5 ++ ++#define CPT_TID(tsk) task_pid_nr(tsk), task_pid_vnr(tsk), (tsk)->comm ++#define CPT_FID "%d,%d(%s)" ++ ++ ++typedef struct cpt_context ++{ ++ struct list_head ctx_list; ++ int refcount; ++ int ctx_state; ++ int objcount; ++ int sticky; ++ struct semaphore main_sem; ++ ++ struct file *errorfile; ++ struct file *statusfile; ++ struct file *lockfile; ++ ++ int errno; ++ char *error_msg; ++ loff_t err_offset; ++ ++ struct file *file; ++ char *tmpbuf; ++ int pagesize; ++#ifdef CONFIG_VZ_CHECKPOINT_ITER ++ int iter_done; ++ void *iter_dir; ++ struct user_beancounter *iter_ub; ++#endif ++ loff_t current_section; ++ loff_t current_object; ++ ++ loff_t sections[CPT_SECT_MAX]; ++ ++ __u32 errormask; ++ __u32 write_error; ++ ++ struct list_head object_array[CPT_OBJ_MAX]; ++ ++ void (*write)(const void *addr, size_t count, struct cpt_context *ctx); ++ void (*pwrite)(void *addr, size_t count, struct cpt_context *ctx, loff_t pos); ++ ssize_t (*read)(void *addr, size_t count, struct cpt_context *ctx); ++ ssize_t (*pread)(void *addr, size_t count, struct cpt_context *ctx, loff_t pos); ++ void (*align)(struct cpt_context *ctx); ++ int ve_id; ++ int contextid; ++ struct timespec cpt_monotonic_time; /* Host monotonic time at the moment of cpt/rst ++ * corresponging to start_time */ ++ __u64 virt_jiffies64; /* Virtual jiffies64. It is == cpt_jiffies64 when ++ * VE did not migrate. */ ++ struct timespec start_time; ++ struct timespec delta_time; ++ __s64 delta_nsec; ++ int image_version; ++ __u16 image_arch; ++ __u64 iptables_mask; ++ __u64 features; ++ ++#define CPT_ANONVMA_HBITS (sizeof(void*) == 4 ? 10 : 9) ++#define CPT_ANONVMA_HSIZE (1<ve_id, ##arg) ++ ++#define wprintk(a...) cpt_printk(2, "CPT WRN: " a) ++#define wprintk_ctx(f, arg...) wprintk("%p,%u: " f, ctx, ctx->ve_id, ##arg) ++ ++#define eprintk(a...) cpt_printk(1, "CPT ERR: " a) ++#define eprintk_ctx(f, arg...) \ ++do { \ ++ eprintk("%p,%u :" f, ctx, ctx->ve_id, ##arg); \ ++ if (ctx->error_msg && ctx->err_offset < PAGE_SIZE) \ ++ ctx->err_offset += snprintf((char*)(ctx->error_msg + \ ++ ctx->err_offset), \ ++ PAGE_SIZE - ctx->err_offset, \ ++ "Error: " f, ##arg); \ ++} while(0) ++ ++#define CPT_TMPBUF_FREE 0x789adf12 ++#define CPT_TMPBUF_BUSY 0xabcd9876 ++ ++static inline void *cpt_get_buf(cpt_context_t *ctx) ++{ ++ void *buf = ctx->tmpbuf; ++ ++ BUG_ON(*(u32*)(buf + PAGE_SIZE - 4) != CPT_TMPBUF_FREE); ++ *(u32*)(buf + PAGE_SIZE - 4) = CPT_TMPBUF_BUSY; ++ return buf; ++} ++ ++static inline void __cpt_release_buf(cpt_context_t *ctx) ++{ ++ void *buf = ctx->tmpbuf; ++ ++ *(u32*)(buf + PAGE_SIZE - 4) = CPT_TMPBUF_FREE; ++} ++ ++static inline void cpt_release_buf(cpt_context_t *ctx) ++{ ++ void *buf = ctx->tmpbuf; ++ ++ BUG_ON(*(u32*)(buf + PAGE_SIZE - 4) != CPT_TMPBUF_BUSY); ++ *(u32*)(buf + PAGE_SIZE - 4) = CPT_TMPBUF_FREE; ++} ++ ++static inline void cpt_flush_error(cpt_context_t *ctx) ++{ ++ mm_segment_t oldfs; ++ ++ if (ctx->errorfile && ctx->error_msg && ctx->err_offset) { ++ if (ctx->errorfile->f_op && ctx->errorfile->f_op->write) { ++ oldfs = get_fs(); ++ set_fs(KERNEL_DS); ++ ctx->errorfile->f_op->write(ctx->errorfile, ++ ctx->error_msg, ctx->err_offset, ++ &ctx->errorfile->f_pos); ++ set_fs(oldfs); ++ } ++ ctx->error_msg[0] = 0; ++ ctx->err_offset = 0; ++ } ++} +Index: kernel/kernel/cpt/cpt_dump.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_dump.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1238 @@ ++/* ++ * ++ * kernel/cpt/cpt_dump.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_dump.h" ++#include "cpt_files.h" ++#include "cpt_mm.h" ++#include "cpt_process.h" ++#include "cpt_net.h" ++#include "cpt_socket.h" ++#include "cpt_ubc.h" ++#include "cpt_kernel.h" ++ ++ ++static int vps_child_level(struct task_struct *root, struct task_struct *c) ++{ ++ int level = 0; ++ int veid = VE_TASK_INFO(c)->owner_env->veid; ++ ++ while (VE_TASK_INFO(c)->owner_env->veid == veid) { ++ if (c->pid != c->tgid) ++ c = c->group_leader; ++ if (c == root) ++ return level; ++ ++ c = c->parent; ++ level++; ++ } ++ return -1; ++} ++ ++static inline int freezable(struct task_struct * p) ++{ ++ if (p->exit_state) ++ return 0; ++ ++ switch (p->state) { ++ case EXIT_ZOMBIE: ++ case EXIT_DEAD: ++ case TASK_STOPPED: ++#if TASK_TRACED != TASK_STOPPED ++ case TASK_TRACED: ++#endif ++ return 0; ++ default: ++ return 1; ++ } ++} ++ ++static void wake_ve(cpt_context_t *ctx) ++{ ++ struct task_struct *p, *g; ++ ++ do_each_thread_ve(g, p) { ++ spin_lock_irq(&p->sighand->siglock); ++ if (p->flags & PF_FROZEN) { ++ p->flags &= ~PF_FROZEN; ++ wake_up_process(p); ++ } ++ spin_unlock_irq(&p->sighand->siglock); ++ } while_each_thread_ve(g, p); ++} ++ ++/* ++ * Some comment is necessary about PF_FREEZE,PF_FROZEN,TIF_FREEZE... ++ * ++ * SWSUSP uses PF_FREEZE flag in tsk->flags raising it in context ++ * of another process. Apparently, it is unacceptable on SMP. ++ * Let's take freeze_processes() in kernel/power/process.c as an example. ++ * Unserialized modifications tsk->flags easily ++ * (believe or not, but it happens with probability of almost 100% :-)) ++ * creates the situation when setting PF_FREEZE in freeze_processes(), ++ * which quickly spins raising PF_FREEZE of all the processes, ++ * _clears_ PF_FROZEN just set in refrigerator(), so that suspend deadlocks. ++ * ++ * So, to make things clean, we require that those flags may be modified ++ * only under tsk->sighand->siglock, which is quite natural because PF_FREEZE ++ * is just a kind of signal. ++ * ++ * It is not enough, because we are still not allowed to change tsk->flags ++ * in context of another process, we can corrupt another flags, when the process ++ * running on another cpu modifies them. So, we use TIF_FREEZE in thread flags, ++ * which can be changed atomically. ++ * ++ * PF_FROZEN also changes in context of another process, but this happens ++ * only when the process is already in refrigerator() which does not modify ++ * tsk->flags. ++ */ ++ ++static int check_process_external(struct task_struct *p) ++{ ++ if (pid_alive(p)) { ++ if (p->pids[PIDTYPE_PID].pid->level == 0) ++ return PIDTYPE_PID; ++ if (p->pids[PIDTYPE_PGID].pid->level == 0) ++ return PIDTYPE_PGID; ++ if (p->pids[PIDTYPE_SID].pid->level == 0) ++ return PIDTYPE_SID; ++ } ++ ++ return PIDTYPE_MAX; ++} ++ ++enum ++{ ++ OBSTACLE_NOGO = -1, ++ OBSTACLE_TIMEOUT = -2, ++ OBSTACLE_TRYAGAIN = -3, ++}; ++ ++#define SUSPEND_TIMEOUT (10UL*HZ) ++ ++static int vps_stop_tasks(struct cpt_context *ctx) ++{ ++ unsigned long start_time = jiffies; ++ unsigned long target, timeout; ++ struct task_struct *p, *g; ++ int todo; ++ int round = 0; ++ ++ do_gettimespec(&ctx->start_time); ++ do_posix_clock_monotonic_gettime(&ctx->cpt_monotonic_time); ++ ctx->virt_jiffies64 = get_jiffies_64() + get_exec_env()->jiffies_fixup; ++ ++ read_lock(&tasklist_lock); ++ ++ atomic_inc(&get_exec_env()->suspend); ++ timeout = HZ/5; ++ target = jiffies + timeout; ++ ++ for(;;) { ++ struct task_struct *root; ++ todo = 0; ++ ++ root = find_task_by_vpid(1); ++ if (!root) { ++ read_unlock(&tasklist_lock); ++ eprintk_ctx("cannot find ve init\n"); ++ atomic_dec(&get_exec_env()->suspend); ++ return -ESRCH; ++ } ++ ++ do_each_thread_ve(g, p) { ++ if (vps_child_level(root, p) >= 0) { ++ switch (check_process_external(p)) { ++ case PIDTYPE_PID: ++ eprintk_ctx("external process %d/%d(%s) inside CT (e.g. vzctl enter or vzctl exec).\n", ++ task_pid_vnr(p), p->pid, p->comm); ++ todo = OBSTACLE_NOGO; ++ goto out; ++ case PIDTYPE_PGID: ++ eprintk_ctx("external process group %d/%d(%s) inside CT " ++ "(e.g. vzctl enter or vzctl exec).\n", ++ task_pgrp_vnr(p), p->pid, p->comm); ++ todo = OBSTACLE_NOGO; ++ goto out; ++ case PIDTYPE_SID: ++ eprintk_ctx("external process session %d/%d(%s) inside CT " ++ "(e.g. vzctl enter or vzctl exec).\n", ++ task_session_vnr(p), p->pid, p->comm); ++ todo = OBSTACLE_NOGO; ++ goto out; ++ } ++ if (p->vfork_done) { ++ /* Task between vfork()...exec() ++ * cannot be frozen, because parent ++ * wait in uninterruptible state. ++ * So, we do nothing, waiting for ++ * exec(), unless: ++ */ ++ if (p->state == TASK_STOPPED || ++ p->state == TASK_TRACED) { ++ eprintk_ctx("task " CPT_FID " is stopped while vfork(). " ++ "Checkpointing is impossible.\n", ++ CPT_TID(p)); ++ todo = OBSTACLE_NOGO; ++ /* It is fatal, _user_ stopped ++ * vfork()ing task, so that we ++ * cannot suspend now. ++ */ ++ } else { ++ todo = OBSTACLE_TRYAGAIN; ++ } ++ goto out; ++ } ++ if (p->signal->group_exit_task && ++ p->signal->notify_count) { ++ /* exec() waits for threads' death */ ++ wprintk_ctx("task " CPT_FID " waits for threads' death\n", CPT_TID(p)); ++ todo = OBSTACLE_TRYAGAIN; ++ goto out; ++ } ++ if (p->state == TASK_TRACED ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) ++ && !p->stopped_state ++#endif ++ ) { ++ int ptrace_id = p->pn_state; ++ /* Debugger waits for signal. */ ++ switch (ptrace_id) { ++ case PN_STOP_TF: ++ case PN_STOP_TF_RT: ++ case PN_STOP_ENTRY: ++ case PN_STOP_FORK: ++ case PN_STOP_VFORK: ++ case PN_STOP_SIGNAL: ++ case PN_STOP_EXIT: ++ case PN_STOP_LEAVE: ++ break; ++ default: ++ eprintk_ctx("task " CPT_FID " is stopped by debugger while %d.\n", CPT_TID(p), ptrace_id); ++ todo = OBSTACLE_NOGO; ++ goto out; ++ } ++ } ++#ifdef CONFIG_UTRACE ++ if (check_utrace(p, root, ctx)) { ++ eprintk_ctx("task " CPT_FID " is utraced. Checkpointing is impossible.\n", CPT_TID(p)); ++ todo = OBSTACLE_NOGO; ++ goto out; ++ } ++#endif ++ if (p->flags & PF_NOFREEZE) { ++ eprintk_ctx("task " CPT_FID " is unfreezable. Checkpointing is impossible.\n", CPT_TID(p)); ++ todo = OBSTACLE_NOGO; ++ goto out; ++ } ++ ++ if (!freezable(p)) ++ continue; ++ ++ spin_lock_irq(&p->sighand->siglock); ++ if (!(p->flags & PF_FROZEN)) { ++ set_tsk_thread_flag(p, TIF_FREEZE); ++ signal_wake_up(p, 0); ++ } ++ spin_unlock_irq(&p->sighand->siglock); ++ ++ if (p->flags & PF_FROZEN) { ++ if (p->state != TASK_UNINTERRUPTIBLE) ++ printk("Holy Crap 1 %ld " CPT_FID "\n", p->state, CPT_TID(p)); ++ continue; ++ } ++ ++ if (round == 10) ++ wprintk_ctx(CPT_FID " is running\n", CPT_TID(p)); ++ ++ todo++; ++ } else { ++ if (p != current) { ++ eprintk_ctx("foreign process %d/%d(%s) inside CT (e.g. vzctl enter or vzctl exec).\n", ++ task_pid_vnr(p), task_pid_nr(p), p->comm); ++ todo = OBSTACLE_NOGO; ++ goto out; ++ } ++ } ++ } while_each_thread_ve(g, p); ++ ++ if (todo > 0) { ++ /* No visible obstacles, but VE did not freeze ++ * for timeout. Interrupt suspend, if it is major ++ * timeout or signal; if it is minor timeout ++ * we will wake VE and restart suspend. ++ */ ++ if (time_after(jiffies, start_time + SUSPEND_TIMEOUT) ++ || signal_pending(current)) ++ todo = OBSTACLE_TIMEOUT; ++ else if (time_after(jiffies, target)) ++ todo = OBSTACLE_TRYAGAIN; ++ } ++ ++out: ++ if (todo < 0) { ++ atomic_dec(&get_exec_env()->suspend); ++ ++ wake_ve(ctx); ++ ++#if 0 ++ /* This is sign of failure of printk(), which is not ++ * ours. So, no prefixes. */ ++ printk(">\n"); ++#endif ++ } ++ ++ read_unlock(&tasklist_lock); ++ ++ if (!todo) { ++ atomic_dec(&get_exec_env()->suspend); ++ return 0; ++ } ++ ++ switch (todo) { ++ case OBSTACLE_NOGO: ++ eprintk_ctx("suspend is impossible now.\n"); ++ return -EAGAIN; ++ ++ case OBSTACLE_TIMEOUT: ++ eprintk_ctx("interrupted or timed out.\n"); ++ return -EINTR; ++ ++ case OBSTACLE_TRYAGAIN: ++ if (time_after(jiffies, start_time + SUSPEND_TIMEOUT) || ++ signal_pending(current)) { ++ wprintk_ctx("suspend timed out\n"); ++ return -EAGAIN; ++ } ++ ++ wprintk_ctx("minor suspend timeout (%lu) expired, " ++ "trying again\n", timeout); ++ ++ /* Try again. VE is awake, give it some time to run. */ ++ current->state = TASK_INTERRUPTIBLE; ++ schedule_timeout(HZ); ++ ++ /* After a short wait restart suspend ++ * with longer timeout */ ++ atomic_inc(&get_exec_env()->suspend); ++ timeout = min(timeout<<1, SUSPEND_TIMEOUT); ++ target = jiffies + timeout; ++ break; ++ ++ default: ++ if (round > 0) { ++ /* VE is partially frozen, give processes ++ * a chance to enter to refrigerator(). */ ++ current->state = TASK_INTERRUPTIBLE; ++ schedule_timeout(HZ/20); ++ } else { ++ yield(); ++ } ++ } ++ ++ read_lock(&tasklist_lock); ++ round++; ++ } ++} ++ ++static int cpt_unlock_ve(struct cpt_context *ctx) ++{ ++ struct ve_struct *env; ++ ++ env = get_ve_by_id(ctx->ve_id); ++ if (!env) ++ return -ESRCH; ++ down_write(&env->op_sem); ++ env->is_locked = 0; ++ up_write(&env->op_sem); ++ put_ve(env); ++ return 0; ++} ++ ++int cpt_resume(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ virtinfo_notifier_call(VITYPE_SCP, VIRTINFO_SCP_DMPFIN, ctx); ++ ++ cpt_unlock_sockets(ctx); ++ ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ if (ctx->pgin_task) { ++ wait_for_completion(&ctx->pgin_notify); ++ put_task_struct(ctx->pgin_task); ++ ctx->pgin_task = NULL; ++ } ++#endif ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ ++ spin_lock_irq(&tsk->sighand->siglock); ++ if (tsk->flags & PF_FROZEN) { ++ tsk->flags &= ~PF_FROZEN; ++ wake_up_process(tsk); ++ } else if (freezable(tsk)) { ++ eprintk_ctx("strange, %s not frozen\n", tsk->comm ); ++ } ++ spin_unlock_irq(&tsk->sighand->siglock); ++ put_task_struct(tsk); ++ } ++ ++ cpt_resume_network(ctx); ++ ++ cpt_unlock_ve(ctx); ++ ++ cpt_finish_ubc(ctx); ++ cpt_object_destroy(ctx); ++ return 0; ++} ++ ++int cpt_kill(struct cpt_context *ctx) ++{ ++ int err = 0; ++ struct ve_struct *env; ++ cpt_object_t *obj; ++ struct task_struct *root_task = NULL; ++ long delay; ++ ++ if (!ctx->ve_id) ++ return -EINVAL; ++ ++ env = get_ve_by_id(ctx->ve_id); ++ if (!env) ++ return -ESRCH; ++ ++ /* from here cpt_kill succeeds */ ++ virtinfo_notifier_call(VITYPE_SCP, VIRTINFO_SCP_DMPFIN, ctx); ++ ++ if (current->ve_task_info.owner_env == env) { ++ wprintk_ctx("attempt to kill ve from inside, escaping...\n"); ++ ve_move_task(current, get_ve0()); ++ } ++ ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ if (ctx->pgin_task) { ++ wait_for_completion(&ctx->pgin_notify); ++ put_task_struct(ctx->pgin_task); ++ ctx->pgin_task = NULL; ++ } ++#endif ++ ++ cpt_kill_sockets(ctx); ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ ++ if (tsk->exit_state) { ++ put_task_struct(tsk); ++ continue; ++ } ++ ++ if (task_pid_vnr(tsk) == 1) { ++ root_task = tsk; ++ continue; ++ } ++ ++ tsk->robust_list = NULL; ++#ifdef CONFIG_COMPAT ++ tsk->compat_robust_list = NULL; ++#endif ++ tsk->clear_child_tid = NULL; ++ ++ if (tsk->ptrace) { ++ write_lock_irq(&tasklist_lock); ++ tsk->ptrace = 0; ++ if (!list_empty(&tsk->ptrace_list)) { ++ list_del_init(&tsk->ptrace_list); ++ remove_parent(tsk); ++ tsk->parent = tsk->parent; ++ add_parent(tsk); ++ } ++ write_unlock_irq(&tasklist_lock); ++ } ++ ++ send_sig(SIGKILL, tsk, 1); ++ ++ spin_lock_irq(&tsk->sighand->siglock); ++ sigfillset(&tsk->blocked); ++ sigdelsetmask(&tsk->blocked, sigmask(SIGKILL)); ++ set_tsk_thread_flag(tsk, TIF_SIGPENDING); ++ if (tsk->flags & PF_FROZEN) ++ tsk->flags &= ~PF_FROZEN; ++ spin_unlock_irq(&tsk->sighand->siglock); ++ ++ wake_up_process(tsk); ++ put_task_struct(tsk); ++ } ++ ++ yield(); ++ ++ if (root_task != NULL) { ++ send_sig(SIGKILL, root_task, 1); ++ ++ spin_lock_irq(&root_task->sighand->siglock); ++ sigfillset(&root_task->blocked); ++ sigdelsetmask(&root_task->blocked, sigmask(SIGKILL)); ++ set_tsk_thread_flag(root_task, TIF_SIGPENDING); ++ clear_tsk_thread_flag(root_task, TIF_FREEZE); ++ if (root_task->flags & PF_FROZEN) ++ root_task->flags &= ~PF_FROZEN; ++ spin_unlock_irq(&root_task->sighand->siglock); ++ ++ wake_up_process(root_task); ++ put_task_struct(root_task); ++ } ++ ++ cpt_finish_ubc(ctx); ++ cpt_object_destroy(ctx); ++ ++ delay = 1; ++ while (atomic_read(&env->counter) != 1) { ++ if (signal_pending(current)) ++ break; ++ current->state = TASK_INTERRUPTIBLE; ++ delay = (delay < HZ) ? (delay << 1) : HZ; ++ schedule_timeout(delay); ++ } ++ put_ve(env); ++ ++ return err; ++} ++ ++#ifdef CONFIG_BEANCOUNTERS ++static void collect_task_ubc(struct task_struct *t, struct cpt_context *ctx) ++{ ++ struct task_beancounter *tbc; ++ ++ tbc = &(t->task_bc); ++ cpt_add_ubc(tbc->exec_ub, ctx); ++ cpt_add_ubc(tbc->task_ub, ctx); ++ cpt_add_ubc(tbc->fork_sub, ctx); ++} ++#else ++static void inline collect_task_ubc(struct task_struct *t, ++ struct cpt_context *ctx) ++{ return; } ++#endif ++ ++static cpt_object_t * remember_task(struct task_struct * child, ++ cpt_object_t * head, cpt_context_t * ctx) ++{ ++ cpt_object_t *cobj; ++ ++ if (freezable(child) && !(child->flags&PF_FROZEN)) { ++ eprintk_ctx("process " CPT_FID " is not frozen\n", CPT_TID(child)); ++ put_task_struct(child); ++ return NULL; ++ } ++ ++ if (lookup_cpt_object(CPT_OBJ_TASK, child, ctx)) BUG(); ++ if ((cobj = alloc_cpt_object(GFP_KERNEL, ctx)) == NULL) { ++ put_task_struct(child); ++ return NULL; ++ } ++ cobj->o_count = 1; ++ cpt_obj_setobj(cobj, child, ctx); ++ insert_cpt_object(CPT_OBJ_TASK, cobj, head, ctx); ++ collect_task_ubc(child, ctx); ++ return cobj; ++} ++ ++static int vps_collect_tasks(struct cpt_context *ctx) ++{ ++ int err = -ESRCH; ++ cpt_object_t *obj; ++ struct task_struct *root; ++ read_lock(&tasklist_lock); ++ root = find_task_by_vpid(1); ++ if (root) ++ get_task_struct(root); ++ read_unlock(&tasklist_lock); ++ ++ if (!root) { ++ err = -ESRCH; ++ eprintk_ctx("vps_collect_tasks: cannot find root\n"); ++ goto out; ++ } ++ ++ if ((obj = alloc_cpt_object(GFP_KERNEL, ctx)) == NULL) { ++ put_task_struct(root); ++ return -ENOMEM; ++ } ++ obj->o_count = 1; ++ cpt_obj_setobj(obj, root, ctx); ++ intern_cpt_object(CPT_OBJ_TASK, obj, ctx); ++ collect_task_ubc(root, ctx); ++ ++ /* Collect process subtree recursively */ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ cpt_object_t *head = obj; ++ struct task_struct *tsk = obj->o_obj; ++ struct task_struct *child; ++ ++ if (freezable(tsk) && !(tsk->flags&PF_FROZEN)) { ++ eprintk_ctx("process " CPT_FID " is not frozen\n", CPT_TID(tsk)); ++ err = -EINVAL; ++ goto out; ++ } ++ ++ if (tsk->state == TASK_RUNNING) ++ printk("Holy Crap 2 %ld " CPT_FID "\n", tsk->state, CPT_TID(tsk)); ++ ++ wait_task_inactive(tsk); ++ ++ err = check_task_state(tsk, ctx); ++ if (err) ++ goto out; ++ ++ if (tsk->pid == tsk->tgid) { ++ child = tsk; ++ for (;;) { ++ read_lock(&tasklist_lock); ++ child = next_thread(child); ++ if (child != tsk) ++ get_task_struct(child); ++ read_unlock(&tasklist_lock); ++ ++ if (child == tsk) ++ break; ++ ++ if (child->parent != tsk->parent) { ++ put_task_struct(child); ++ eprintk_ctx("illegal thread structure, kernel bug\n"); ++ err = -EINVAL; ++ goto out; ++ } ++ ++ if ((head = remember_task(child, head, ctx)) == NULL) { ++ eprintk_ctx("task obj allocation failure\n"); ++ err = -ENOMEM; ++ goto out; ++ } ++ } ++ } ++ ++ /* About locking. VE is frozen. But lists of children ++ * may change at least for init, when entered task reparents ++ * to init and when reparented task exits. If we take care ++ * of this case, we still can unlock while scanning ++ * tasklists. ++ */ ++ read_lock(&tasklist_lock); ++ list_for_each_entry(child, &tsk->children, sibling) { ++ if (child->parent != tsk) ++ continue; ++ if (child->pid != child->tgid) ++ continue; ++ get_task_struct(child); ++ read_unlock(&tasklist_lock); ++ ++ if ((head = remember_task(child, head, ctx)) == NULL) { ++ eprintk_ctx("task obj allocation failure\n"); ++ err = -ENOMEM; ++ goto out; ++ } ++ ++ read_lock(&tasklist_lock); ++ } ++ ++ list_for_each_entry(child, &tsk->ptrace_children, ptrace_list) { ++ if (child->parent != tsk) ++ continue; ++ if (child->pid != child->tgid) ++ continue; ++ get_task_struct(child); ++ read_unlock(&tasklist_lock); ++ ++ if ((head = remember_task(child, head, ctx)) == NULL) { ++ eprintk_ctx("task obj allocation failure\n"); ++ err = -ENOMEM; ++ goto out; ++ } ++ ++ read_lock(&tasklist_lock); ++ } ++ read_unlock(&tasklist_lock); ++ } ++ ++ return 0; ++ ++out: ++ while (!list_empty(&ctx->object_array[CPT_OBJ_TASK])) { ++ struct list_head *head = ctx->object_array[CPT_OBJ_TASK].next; ++ cpt_object_t *obj = list_entry(head, cpt_object_t, o_list); ++ struct task_struct *tsk; ++ ++ list_del(head); ++ tsk = obj->o_obj; ++ put_task_struct(tsk); ++ free_cpt_object(obj, ctx); ++ } ++ return err; ++} ++ ++static int cpt_collect(struct cpt_context *ctx) ++{ ++ int err; ++ ++ if ((err = cpt_collect_mm(ctx)) != 0) ++ return err; ++ ++ if ((err = cpt_collect_sysv(ctx)) != 0) ++ return err; ++ ++ if ((err = cpt_collect_files(ctx)) != 0) ++ return err; ++ ++ if ((err = cpt_collect_fs(ctx)) != 0) ++ return err; ++ ++ if ((err = cpt_collect_namespace(ctx)) != 0) ++ return err; ++ ++ if ((err = cpt_collect_signals(ctx)) != 0) ++ return err; ++ ++ if (virtinfo_notifier_call(VITYPE_SCP, ++ VIRTINFO_SCP_COLLECT, ctx) & NOTIFY_FAIL) ++ return -ECHRNG; ++ ++ return 0; ++} ++ ++static int cpt_dump_veinfo(cpt_context_t *ctx) ++{ ++ struct cpt_veinfo_image *i = cpt_get_buf(ctx); ++ struct ve_struct *ve; ++ struct timespec delta; ++ struct ipc_namespace *ns; ++ ++ cpt_open_section(ctx, CPT_SECT_VEINFO); ++ cpt_open_object(NULL, ctx); ++ ++ memset(i, 0, sizeof(*i)); ++ ++ i->cpt_next = CPT_NULL; ++ i->cpt_object = CPT_OBJ_VEINFO; ++ i->cpt_hdrlen = sizeof(*i); ++ i->cpt_content = CPT_CONTENT_VOID; ++ ++ ve = get_exec_env(); ++ ns = ve->ve_ns->ipc_ns; ++ ++ if (ns->shm_ctlall > 0xFFFFFFFFU) ++ i->shm_ctl_all = 0xFFFFFFFFU; ++ if (ns->shm_ctlmax > 0xFFFFFFFFU) ++ i->shm_ctl_max = 0xFFFFFFFFU; ++ i->shm_ctl_mni = ns->shm_ctlmni; ++ ++ i->msg_ctl_max = ns->msg_ctlmax; ++ i->msg_ctl_mni = ns->msg_ctlmni; ++ i->msg_ctl_mnb = ns->msg_ctlmnb; ++ ++ BUILD_BUG_ON(sizeof(ns->sem_ctls) != sizeof(i->sem_ctl_arr)); ++ i->sem_ctl_arr[0] = ns->sem_ctls[0]; ++ i->sem_ctl_arr[1] = ns->sem_ctls[1]; ++ i->sem_ctl_arr[2] = ns->sem_ctls[2]; ++ i->sem_ctl_arr[3] = ns->sem_ctls[3]; ++ ++ do_posix_clock_monotonic_gettime(&delta); ++ _set_normalized_timespec(&delta, ++ delta.tv_sec - ve->start_timespec.tv_sec, ++ delta.tv_nsec - ve->start_timespec.tv_nsec); ++ i->start_timespec_delta = cpt_timespec_export(&delta); ++ i->start_jiffies_delta = get_jiffies_64() - ve->start_jiffies; ++ ++ i->last_pid = ve->ve_ns->pid_ns->last_pid; ++ ++ ctx->write(i, sizeof(*i), ctx); ++ cpt_release_buf(ctx); ++ cpt_close_object(ctx); ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++static int cpt_dump_utsname(cpt_context_t *ctx) ++{ ++ int len; ++ struct cpt_object_hdr o; ++ struct ve_struct *ve; ++ struct uts_namespace *ns; ++ ++ cpt_open_section(ctx, CPT_SECT_UTSNAME); ++ ++ ve = get_exec_env(); ++ ns = ve->ve_ns->uts_ns; ++ ++ cpt_open_object(NULL, ctx); ++ len = strlen(ns->name.nodename); ++ o.cpt_next = CPT_NULL; ++ o.cpt_object = CPT_OBJ_NAME; ++ o.cpt_hdrlen = sizeof(o); ++ o.cpt_content = CPT_CONTENT_NAME; ++ ++ ctx->write(&o, sizeof(o), ctx); ++ ctx->write(ns->name.nodename, len+1, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ ++ cpt_open_object(NULL, ctx); ++ len = strlen(ns->name.domainname); ++ o.cpt_next = CPT_NULL; ++ o.cpt_object = CPT_OBJ_NAME; ++ o.cpt_hdrlen = sizeof(o); ++ o.cpt_content = CPT_CONTENT_NAME; ++ ++ ctx->write(&o, sizeof(o), ctx); ++ ctx->write(ns->name.domainname, len+1, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++#ifndef CONFIG_IA64 ++static int cpt_dump_vsyscall(cpt_context_t *ctx) ++{ ++ struct cpt_page_block *pgb = cpt_get_buf(ctx); ++ ++ cpt_open_section(ctx, CPT_SECT_VSYSCALL); ++ cpt_open_object(NULL, ctx); ++ ++ pgb->cpt_next = CPT_NULL; ++ pgb->cpt_object = CPT_OBJ_VSYSCALL; ++ pgb->cpt_hdrlen = sizeof(*pgb); ++ pgb->cpt_content = CPT_CONTENT_DATA; ++ pgb->cpt_start = cpt_ptr_export(vsyscall_addr); ++ pgb->cpt_end = pgb->cpt_start + PAGE_SIZE; ++ ++ ctx->write(pgb, sizeof(*pgb), ctx); ++ cpt_release_buf(ctx); ++ ++ ctx->write(vsyscall_addr, PAGE_SIZE, ctx); ++ ++ cpt_close_object(ctx); ++ cpt_close_section(ctx); ++ return 0; ++} ++#endif ++ ++int cpt_dump(struct cpt_context *ctx) ++{ ++ struct ve_struct *oldenv, *env; ++ struct nsproxy *old_ns; ++ int err, err2 = 0; ++ ++ if (!ctx->ve_id) ++ return -EINVAL; ++ ++ env = get_ve_by_id(ctx->ve_id); ++ if (!env) ++ return -ESRCH; ++ ++ down_read(&env->op_sem); ++ err = -ESRCH; ++ if (!env->is_running) ++ goto out_noenv; ++ if (!env->is_locked) ++ goto out_noenv; ++ ++ oldenv = set_exec_env(env); ++ old_ns = current->nsproxy; ++ current->nsproxy = env->ve_ns; ++ ++ /* Phase 2: real checkpointing */ ++ err = cpt_open_dumpfile(ctx); ++ if (err) ++ goto out; ++ ++ cpt_major_hdr_out(ctx); ++ ++ if (!err) ++ err = cpt_dump_veinfo(ctx); ++ if (!err) ++ err = cpt_dump_ubc(ctx); ++ if (!err) ++ err = cpt_dump_files(ctx); ++ if (!err) ++ err = cpt_dump_files_struct(ctx); ++ if (!err) ++ err = cpt_dump_fs_struct(ctx); ++ /* netdevices should be dumped after dumping open files ++ as we need to restore netdevice binding to /dev/net/tun file */ ++ if (!err) ++ err = cpt_dump_ifinfo(ctx); ++ if (!err) ++ err = cpt_dump_namespace(ctx); ++ if (!err) ++ err = cpt_dump_sighand(ctx); ++ if (!err) ++ err = cpt_dump_vm(ctx); ++ if (!err) ++ err = cpt_dump_sysvsem(ctx); ++ if (!err) ++ err = cpt_dump_sysvmsg(ctx); ++ if (!err) ++ err = cpt_dump_tasks(ctx); ++ if (!err) ++ err = cpt_dump_orphaned_sockets(ctx); ++#if defined(CONFIG_VE_IPTABLES) && \ ++ (defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE)) ++ if (!err) ++ err = cpt_dump_ip_conntrack(ctx); ++#endif ++ if (!err) { ++ if (virtinfo_notifier_call(VITYPE_SCP, ++ VIRTINFO_SCP_DUMP, ctx) & NOTIFY_FAIL) ++ err = -ECHRNG; ++ } ++ if (!err) ++ err = cpt_dump_utsname(ctx); ++ ++#ifndef CONFIG_IA64 ++ if (!err) ++ err = cpt_dump_vsyscall(ctx); ++#endif ++ ++ if (!err) ++ err = cpt_dump_tail(ctx); ++ ++ err2 = cpt_close_dumpfile(ctx); ++ ++out: ++ current->nsproxy = old_ns; ++ set_exec_env(oldenv); ++out_noenv: ++ up_read(&env->op_sem); ++ put_ve(env); ++ return err ? : err2; ++} ++ ++int cpt_vps_suspend(struct cpt_context *ctx) ++{ ++ struct ve_struct *oldenv, *env; ++ struct nsproxy *old_ns; ++ int err = 0; ++ ++ ctx->kernel_config_flags = test_kernel_config(); ++ cpt_object_init(ctx); ++ ++ if (!ctx->ve_id) { ++ env = get_exec_env(); ++ if (env == get_ve0()) ++ return -EINVAL; ++ wprintk("undefined ve_id\n"); ++ ctx->ve_id = env->veid; ++ get_ve(env); ++ } else { ++ env = get_ve_by_id(ctx->ve_id); ++ if (!env) ++ return -ESRCH; ++ } ++ ++#ifdef CONFIG_VE_IPTABLES ++ ctx->iptables_mask = env->_iptables_modules; ++#endif ++ ctx->features = env->features; ++ ++ down_write(&env->op_sem); ++ err = -ESRCH; ++ if (!env->is_running) ++ goto out_noenv; ++ ++ err = -EBUSY; ++ if (env->is_locked) ++ goto out_noenv; ++ env->is_locked = 1; ++ downgrade_write(&env->op_sem); ++ ++ oldenv = set_exec_env(env); ++ old_ns = current->nsproxy; ++ current->nsproxy = env->ve_ns; ++ ++ /* Phase 0: find and stop all the tasks */ ++ if ((err = vps_stop_tasks(ctx)) != 0) ++ goto out; ++ ++ if ((err = cpt_suspend_network(ctx)) != 0) ++ goto out_wake; ++ ++ /* At the moment all the state is frozen. We do not need to lock ++ * the state, which can be changed only if the tasks are running. ++ */ ++ ++ /* Phase 1: collect task tree */ ++ if ((err = vps_collect_tasks(ctx)) != 0) ++ goto out_wake; ++ ++ /* Phase 1': collect all the resources */ ++ if ((err = cpt_collect(ctx)) != 0) ++ goto out; ++ ++out: ++ current->nsproxy = old_ns; ++ set_exec_env(oldenv); ++ up_read(&env->op_sem); ++ put_ve(env); ++ return err; ++ ++out_noenv: ++ up_write(&env->op_sem); ++ put_ve(env); ++ return err; ++ ++out_wake: ++ read_lock(&tasklist_lock); ++ wake_ve(ctx); ++ read_unlock(&tasklist_lock); ++ goto out; ++} ++ ++static void check_unsupported_netdevices(struct cpt_context *ctx, __u32 *caps) ++{ ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net_device *dev; ++ ++ read_lock(&dev_base_lock); ++ for_each_netdev(net, dev) { ++ if (dev != net->loopback_dev ++#if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) ++ && !(KSYMREF(veth_open) && dev->open == KSYMREF(veth_open)) ++#endif ++#if defined(CONFIG_VE_NETDEV) || defined(CONFIG_VE_NETDEV_MODULE) ++ && dev != get_exec_env()->_venet_dev ++#endif ++#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) ++ && dev->open != tun_net_open ++#endif ++ ) { ++ eprintk_ctx("unsupported netdevice %s\n", dev->name); ++ *caps |= (1<flags & _TIF_IA32)) ++ *caps |= flags & ((1<mm && p->mm->context.vdso) { ++ if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) ++ *caps |= flags & (1<mm && p->mm->context.vdso) ++ *caps |= flags & (1<= 0) { ++ switch (check_process_external(p)) { ++ case PIDTYPE_PID: ++ eprintk_ctx("external process %d/%d(%s) inside CT (e.g. vzctl enter or vzctl exec).\n", task_pid_vnr(p), p->pid, p->comm); ++ *caps |= (1<pid, p->comm); ++ *caps |= (1<pid, p->comm); ++ *caps |= (1<pid, p->comm); ++ *caps |= (1<nsproxy) { ++ ns = p->nsproxy->mnt_ns; ++ if (ns) ++ get_mnt_ns(ns); ++ } ++ task_unlock(p); ++ if (ns) { ++ if (ns != current->nsproxy->mnt_ns) { ++ eprintk_ctx("namespaces are not supported: process %d/%d(%s)\n", task_pid_vnr(p), p->pid, p->comm); ++ *caps |= (1<policy != SCHED_NORMAL) { ++ eprintk_ctx("scheduler policy is not supported %d/%d(%s)\n", task_pid_vnr(p), p->pid, p->comm); ++ *caps |= (1<pid, virt_pid(p), p->comm); ++ *caps |= (1<list) { ++ struct vfsmount *mnt = list_entry(p, struct vfsmount, mnt_list); ++ ++ path = __d_path(mnt->mnt_root, mnt, ++ env->fs_root, env->fs_rootmnt, ++ path_buf, PAGE_SIZE); ++ if (IS_ERR(path)) ++ continue; ++ ++ if (check_one_vfsmount(mnt)) { ++ eprintk_ctx("Unsupported filesystem %s\n", mnt->mnt_sb->s_type->name); ++ *caps |= (1<ve_id) ++ return -EINVAL; ++ ++ env = get_ve_by_id(ctx->ve_id); ++ if (env == NULL) ++ return -ESRCH; ++ ++ *caps = flags & (1<nsproxy; ++ current->nsproxy = env->ve_ns; ++ ++ check_unsupported_netdevices(ctx, caps); ++ ++ read_lock(&tasklist_lock); ++ root = find_task_by_vpid(1); ++ if (!root) { ++ read_unlock(&tasklist_lock); ++ eprintk_ctx("cannot find ve init\n"); ++ err = -ESRCH; ++ goto out; ++ } ++ get_task_struct(root); ++ for (p = __first_task_ve(env); p != NULL ; p = __next_task_ve(env, p)) ++ check_one_process(ctx, caps, flags, env, root, p); ++ read_unlock(&tasklist_lock); ++ ++ task_lock(root); ++ n = NULL; ++ if (root->nsproxy) { ++ n = root->nsproxy->mnt_ns; ++ if (n) ++ get_mnt_ns(n); ++ } ++ task_unlock(root); ++ if (n) { ++ char *path_buf; ++ ++ path_buf = (char *) __get_free_page(GFP_KERNEL); ++ if (!path_buf) { ++ put_mnt_ns(n); ++ err = -ENOMEM; ++ goto out_root; ++ } ++ ++ check_unsupported_mounts(ctx, caps, env, n, path_buf); ++ ++ free_page((unsigned long) path_buf); ++ put_mnt_ns(n); ++ } ++ ++ err = 0; ++ ++out_root: ++ put_task_struct(root); ++out: ++ current->nsproxy = old_ns; ++ set_exec_env(old_env); ++ put_ve(env); ++ ++ return err; ++} +Index: kernel/kernel/cpt/cpt_dump.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_dump.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,16 @@ ++int cpt_dump(struct cpt_context *cpt); ++int rst_undump(struct cpt_context *cpt); ++int cpt_suspend(struct cpt_context *cpt); ++int cpt_resume(struct cpt_context *cpt); ++int cpt_kill(struct cpt_context *cpt); ++int rst_clean(struct cpt_context *cpt); ++int rst_resume(struct cpt_context *cpt); ++int rst_kill(struct cpt_context *cpt); ++ ++int cpt_freeze_one(pid_t pid, int freeze); ++int cpt_vps_suspend(struct cpt_context *ctx); ++int vps_rst_undump(struct cpt_context *ctx); ++ ++int cpt_vps_caps(struct cpt_context *ctx, __u32 *caps); ++ ++int cpt_check_unsupported(struct task_struct *tsk, struct cpt_context *ctx); +Index: kernel/kernel/cpt/cpt_epoll.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_epoll.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,115 @@ ++/* ++ * ++ * kernel/cpt/cpt_epoll.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_files.h" ++#include "cpt_kernel.h" ++#include "cpt_fsmagic.h" ++#include "cpt_syscalls.h" ++ ++extern struct file_operations eventpoll_fops; ++ ++int cpt_dump_epolldev(cpt_object_t *obj, cpt_context_t *ctx) ++{ ++ int err = 0; ++ struct file *file = obj->o_obj; ++ struct eventpoll *ep; ++ struct rb_node *rbp; ++ struct cpt_epoll_image ei; ++ ++ if (file->f_op != &eventpoll_fops) { ++ eprintk_ctx("bad epoll file\n"); ++ return -EINVAL; ++ } ++ ++ ep = file->private_data; ++ ++ /* eventpoll.c does not protect open /proc/N/fd, silly. ++ * Opener will get an invalid file with uninitialized private_data ++ */ ++ if (unlikely(ep == NULL)) { ++ eprintk_ctx("bad epoll device\n"); ++ return -EINVAL; ++ } ++ ++ cpt_open_object(NULL, ctx); ++ ++ ei.cpt_next = CPT_NULL; ++ ei.cpt_object = CPT_OBJ_EPOLL; ++ ei.cpt_hdrlen = sizeof(ei); ++ ei.cpt_content = CPT_CONTENT_ARRAY; ++ ei.cpt_file = obj->o_pos; ++ ++ ctx->write(&ei, sizeof(ei), ctx); ++ ++ mutex_lock(&epmutex); ++ for (rbp = rb_first(&ep->rbr); rbp; rbp = rb_next(rbp)) { ++ loff_t saved_obj; ++ cpt_object_t *tobj; ++ struct cpt_epoll_file_image efi; ++ struct epitem *epi; ++ epi = rb_entry(rbp, struct epitem, rbn); ++ tobj = lookup_cpt_object(CPT_OBJ_FILE, epi->ffd.file, ctx); ++ if (tobj == NULL) { ++ eprintk_ctx("epoll device refers to an external file\n"); ++ err = -EBUSY; ++ break; ++ } ++ cpt_push_object(&saved_obj, ctx); ++ cpt_open_object(NULL, ctx); ++ ++ efi.cpt_next = CPT_NULL; ++ efi.cpt_object = CPT_OBJ_EPOLL_FILE; ++ efi.cpt_hdrlen = sizeof(efi); ++ efi.cpt_content = CPT_CONTENT_VOID; ++ efi.cpt_file = tobj->o_pos; ++ efi.cpt_fd = epi->ffd.fd; ++ efi.cpt_events = epi->event.events; ++ efi.cpt_data = epi->event.data; ++ efi.cpt_revents = 0; ++ efi.cpt_ready = 0; ++ if (!list_empty(&epi->rdllink)) ++ efi.cpt_ready = 1; ++ ++ ctx->write(&efi, sizeof(efi), ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ mutex_unlock(&epmutex); ++ ++ cpt_close_object(ctx); ++ ++ return err; ++} ++ +Index: kernel/kernel/cpt/cpt_exports.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_exports.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,13 @@ ++#include ++#include ++ ++#include "cpt_obj.h" ++ ++EXPORT_SYMBOL(alloc_cpt_object); ++EXPORT_SYMBOL(intern_cpt_object); ++EXPORT_SYMBOL(insert_cpt_object); ++EXPORT_SYMBOL(__cpt_object_add); ++EXPORT_SYMBOL(cpt_object_add); ++EXPORT_SYMBOL(cpt_object_get); ++EXPORT_SYMBOL(lookup_cpt_object); ++EXPORT_SYMBOL(lookup_cpt_obj_bypos); +Index: kernel/kernel/cpt/cpt_files.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_files.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1614 @@ ++/* ++ * ++ * kernel/cpt/cpt_files.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_files.h" ++#include "cpt_socket.h" ++#include "cpt_kernel.h" ++#include "cpt_fsmagic.h" ++#include "cpt_syscalls.h" ++ ++void cpt_printk_dentry(struct dentry *d, struct vfsmount *mnt) ++{ ++ char *path; ++ unsigned long pg = __get_free_page(GFP_KERNEL); ++ ++ if (!pg) ++ return; ++ ++ path = d_path(d, mnt, (char *)pg, PAGE_SIZE); ++ ++ if (!IS_ERR(path)) ++ eprintk("<%s>", path); ++ free_page(pg); ++} ++ ++int cpt_verify_overmount(char *path, struct dentry *d, struct vfsmount *mnt, ++ cpt_context_t *ctx) ++{ ++ if (path[0] == '/' && !(!IS_ROOT(d) && d_unhashed(d))) { ++ struct nameidata nd; ++ if (path_lookup(path, 0, &nd)) { ++ eprintk_ctx("d_path cannot be looked up %s\n", path); ++ return -EINVAL; ++ } ++ if (nd.dentry != d || nd.mnt != mnt) { ++ eprintk_ctx("d_path is invisible %s\n", path); ++ path_release(&nd); ++ return -EINVAL; ++ } ++ path_release(&nd); ++ } ++ return 0; ++} ++ ++static int ++cpt_replaced(struct dentry * de, struct vfsmount *mnt, cpt_context_t * ctx) ++{ ++ int result = 0; ++ ++#if defined(CONFIG_VZFS_FS) || defined(CONFIG_VZFS_FS_MODULE) ++ char *path; ++ unsigned long pg; ++ struct dentry * renamed_dentry; ++ ++ if (de->d_sb->s_magic != FSMAGIC_VEFS) ++ return 0; ++ if (de->d_inode->i_nlink != 0 || ++ atomic_read(&de->d_inode->i_writecount) > 0) ++ return 0; ++ ++ renamed_dentry = vefs_replaced_dentry(de); ++ if (renamed_dentry == NULL) ++ return 0; ++ ++ pg = __get_free_page(GFP_KERNEL); ++ if (!pg) ++ return 0; ++ ++ path = d_path(de, mnt, (char *)pg, PAGE_SIZE); ++ if (!IS_ERR(path)) { ++ int len; ++ struct nameidata nd; ++ ++ len = pg + PAGE_SIZE - 1 - (unsigned long)path; ++ if (len >= sizeof("(deleted) ") - 1 && ++ !memcmp(path, "(deleted) ", sizeof("(deleted) ") - 1)) { ++ len -= sizeof("(deleted) ") - 1; ++ path += sizeof("(deleted) ") - 1; ++ } ++ ++ if (path_lookup(path, 0, &nd) == 0) { ++ if (mnt == nd.mnt && ++ vefs_is_renamed_dentry(nd.dentry, renamed_dentry)) ++ result = 1; ++ path_release(&nd); ++ } ++ } ++ free_page(pg); ++#endif ++ return result; ++} ++ ++static int cpt_dump_dentry(struct dentry *d, struct vfsmount *mnt, ++ int replaced, cpt_context_t *ctx) ++{ ++ int len; ++ char *path; ++ char *pg = cpt_get_buf(ctx); ++ loff_t saved; ++ ++ path = d_path(d, mnt, pg, PAGE_SIZE); ++ len = PTR_ERR(path); ++ ++ if (IS_ERR(path)) { ++ struct cpt_object_hdr o; ++ char tmp[1]; ++ ++ /* VZ changes d_path() to return EINVAL, when path ++ * is not supposed to be visible inside VE. ++ * This changes behaviour of d_path() comparing ++ * to mainstream kernel, f.e. d_path() fails ++ * on any kind of shared memory. Maybe, there are ++ * another cases, but I am aware only about this one. ++ * So, we just ignore error on shmem mounts and proceed. ++ * Otherwise, checkpointing is prohibited because ++ * of reference to an invisible file. ++ */ ++ if (len != -EINVAL || ++ mnt != get_exec_env()->shmem_mnt) ++ eprintk_ctx("d_path err=%d\n", len); ++ else ++ len = 0; ++ ++ cpt_push_object(&saved, ctx); ++ cpt_open_object(NULL, ctx); ++ o.cpt_next = CPT_NULL; ++ o.cpt_object = CPT_OBJ_NAME; ++ o.cpt_hdrlen = sizeof(o); ++ o.cpt_content = CPT_CONTENT_NAME; ++ tmp[0] = 0; ++ ++ ctx->write(&o, sizeof(o), ctx); ++ ctx->write(tmp, 1, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved, ctx); ++ ++ __cpt_release_buf(ctx); ++ return len; ++ } else { ++ struct cpt_object_hdr o; ++ ++ len = pg + PAGE_SIZE - 1 - path; ++ if (replaced && ++ len >= sizeof("(deleted) ") - 1 && ++ !memcmp(path, "(deleted) ", sizeof("(deleted) ") - 1)) { ++ len -= sizeof("(deleted) ") - 1; ++ path += sizeof("(deleted) ") - 1; ++ } ++ o.cpt_next = CPT_NULL; ++ o.cpt_object = CPT_OBJ_NAME; ++ o.cpt_hdrlen = sizeof(o); ++ o.cpt_content = CPT_CONTENT_NAME; ++ path[len] = 0; ++ ++ if (cpt_verify_overmount(path, d, mnt, ctx)) { ++ __cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ ++ cpt_push_object(&saved, ctx); ++ cpt_open_object(NULL, ctx); ++ ctx->write(&o, sizeof(o), ctx); ++ ctx->write(path, len+1, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved, ctx); ++ __cpt_release_buf(ctx); ++ } ++ return 0; ++} ++ ++int cpt_dump_string(const char *s, struct cpt_context *ctx) ++{ ++ int len; ++ struct cpt_object_hdr o; ++ ++ cpt_open_object(NULL, ctx); ++ len = strlen(s); ++ o.cpt_next = CPT_NULL; ++ o.cpt_object = CPT_OBJ_NAME; ++ o.cpt_hdrlen = sizeof(o); ++ o.cpt_content = CPT_CONTENT_NAME; ++ ++ ctx->write(&o, sizeof(o), ctx); ++ ctx->write(s, len+1, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ return 0; ++} ++ ++static int ++cpt_dump_filename(struct file *file, int replaced, cpt_context_t *ctx) ++{ ++ return cpt_dump_dentry(file->f_dentry, file->f_vfsmnt, replaced, ctx); ++} ++ ++int cpt_dump_inode(struct dentry *d, struct vfsmount *mnt, struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_inode_image *v = cpt_get_buf(ctx); ++ struct kstat sbuf; ++ ++ v->cpt_next = sizeof(*v); ++ v->cpt_object = CPT_OBJ_INODE; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ if ((err = vfs_getattr(mnt, d, &sbuf)) != 0) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ ++ v->cpt_dev = d->d_inode->i_sb->s_dev; ++ v->cpt_ino = d->d_inode->i_ino; ++ v->cpt_mode = sbuf.mode; ++ v->cpt_nlink = sbuf.nlink; ++ v->cpt_uid = sbuf.uid; ++ v->cpt_gid = sbuf.gid; ++ v->cpt_rdev = d->d_inode->i_rdev; ++ v->cpt_size = sbuf.size; ++ v->cpt_atime = cpt_timespec_export(&sbuf.atime); ++ v->cpt_mtime = cpt_timespec_export(&sbuf.mtime); ++ v->cpt_ctime = cpt_timespec_export(&sbuf.ctime); ++ v->cpt_blksize = sbuf.blksize; ++ v->cpt_blocks = sbuf.blocks; ++ v->cpt_sb = d->d_inode->i_sb->s_magic; ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ return 0; ++} ++ ++int cpt_collect_files(cpt_context_t * ctx) ++{ ++ int err; ++ cpt_object_t *obj; ++ int index = 0; ++ ++ /* Collect process fd sets */ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ if (tsk->files && cpt_object_add(CPT_OBJ_FILES, tsk->files, ctx) == NULL) ++ return -ENOMEM; ++ } ++ ++ /* Collect files from fd sets */ ++ for_each_object(obj, CPT_OBJ_FILES) { ++ int fd; ++ struct files_struct *f = obj->o_obj; ++ ++ cpt_obj_setindex(obj, index++, ctx); ++ ++ if (obj->o_count != atomic_read(&f->count)) { ++ eprintk_ctx("files_struct is referenced outside %d %d\n", obj->o_count, atomic_read(&f->count)); ++ return -EBUSY; ++ } ++ ++ for (fd = 0; fd < f->fdt->max_fds; fd++) { ++ struct file *file = fcheck_files(f, fd); ++ if (file && cpt_object_add(CPT_OBJ_FILE, file, ctx) == NULL) ++ return -ENOMEM; ++ } ++ } ++ ++ /* Collect files queued by AF_UNIX sockets. */ ++ if ((err = cpt_collect_passedfds(ctx)) < 0) ++ return err; ++ ++ /* OK. At this point we should count all the references. */ ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ struct file *parent; ++ cpt_object_t *ino_obj; ++ ++ if (obj->o_count != atomic_read(&file->f_count)) { ++ eprintk_ctx("file struct is referenced outside %d %d\n", obj->o_count, atomic_read(&file->f_count)); ++ cpt_printk_dentry(file->f_dentry, file->f_vfsmnt); ++ return -EBUSY; ++ } ++ ++ switch (file->f_dentry->d_inode->i_sb->s_magic) { ++ case FSMAGIC_FUTEX: ++ case FSMAGIC_MQUEUE: ++ case FSMAGIC_BDEV: ++#ifndef CONFIG_INOTIFY_USER ++ case FSMAGIC_INOTIFY: ++#endif ++ eprintk_ctx("file on unsupported FS: magic %08lx\n", file->f_dentry->d_inode->i_sb->s_magic); ++ return -EBUSY; ++ } ++ ++ /* Collect inode. It is necessary mostly to resolve deleted ++ * hard links. */ ++ ino_obj = cpt_object_add(CPT_OBJ_INODE, file->f_dentry->d_inode, ctx); ++ if (ino_obj == NULL) ++ return -ENOMEM; ++ ++ parent = ino_obj->o_parent; ++ if (!parent || (!IS_ROOT(parent->f_dentry) && d_unhashed(parent->f_dentry))) ++ ino_obj->o_parent = file; ++ ++ if (S_ISCHR(file->f_dentry->d_inode->i_mode)) { ++ int maj = imajor(file->f_dentry->d_inode); ++ if (maj == PTY_MASTER_MAJOR || ++ (maj >= UNIX98_PTY_MASTER_MAJOR && ++ maj < UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT) || ++ maj == PTY_SLAVE_MAJOR || ++ maj == UNIX98_PTY_SLAVE_MAJOR || ++ maj == TTYAUX_MAJOR) { ++ err = cpt_collect_tty(file, ctx); ++ if (err) ++ return err; ++ } ++ } ++ ++ if (S_ISSOCK(file->f_dentry->d_inode->i_mode)) { ++ err = cpt_collect_socket(file, ctx); ++ if (err) ++ return err; ++ } ++ } ++ ++ err = cpt_index_sockets(ctx); ++ ++ return err; ++} ++ ++/* /dev/ptmx is special, all the files share one inode, but real tty backend ++ * is attached via file->private_data. ++ */ ++ ++static inline int is_cloning_inode(struct inode *ino) ++{ ++ return S_ISCHR(ino->i_mode) && ++ ino->i_rdev == MKDEV(TTYAUX_MAJOR,2); ++} ++ ++static int dump_one_flock(struct file_lock *fl, int owner, struct cpt_context *ctx) ++{ ++ pid_t pid; ++ struct cpt_flock_image *v = cpt_get_buf(ctx); ++ ++ v->cpt_next = sizeof(*v); ++ v->cpt_object = CPT_OBJ_FLOCK; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_VOID; ++ ++ v->cpt_owner = owner; ++ ++ pid = fl->fl_pid; ++ if (pid) { ++ pid = pid_to_vpid(fl->fl_pid); ++ if (pid == -1) { ++ if (!(fl->fl_flags&FL_FLOCK)) { ++ eprintk_ctx("posix lock from another container?\n"); ++ cpt_release_buf(ctx); ++ return -EBUSY; ++ } ++ pid = 0; ++ } ++ } ++ ++ v->cpt_pid = pid; ++ v->cpt_start = fl->fl_start; ++ v->cpt_end = fl->fl_end; ++ v->cpt_flags = fl->fl_flags; ++ v->cpt_type = fl->fl_type; ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ return 0; ++} ++ ++ ++int cpt_dump_flock(struct file *file, struct cpt_context *ctx) ++{ ++ int err = 0; ++ struct file_lock *fl; ++ ++ lock_kernel(); ++ for (fl = file->f_dentry->d_inode->i_flock; ++ fl; fl = fl->fl_next) { ++ if (file != fl->fl_file) ++ continue; ++ if (fl->fl_flags & FL_LEASE) { ++ eprintk_ctx("lease lock is not supported\n"); ++ err = -EINVAL; ++ break; ++ } ++ if (fl->fl_flags & FL_POSIX) { ++ cpt_object_t *obj; ++ obj = lookup_cpt_object(CPT_OBJ_FILES, fl->fl_owner, ctx); ++ if (obj) { ++ dump_one_flock(fl, obj->o_index, ctx); ++ continue; ++ } else { ++ eprintk_ctx("unknown lock owner %p\n", fl->fl_owner); ++ err = -EINVAL; ++ } ++ } ++ if (fl->fl_flags & FL_FLOCK) { ++ dump_one_flock(fl, -1, ctx); ++ continue; ++ } ++ } ++ unlock_kernel(); ++ return err; ++} ++ ++static int dump_one_file(cpt_object_t *obj, struct file *file, cpt_context_t *ctx) ++{ ++ int err = 0; ++ cpt_object_t *iobj; ++ struct cpt_file_image *v = cpt_get_buf(ctx); ++ struct kstat sbuf; ++ int replaced = 0; ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_FILE; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_flags = file->f_flags; ++ v->cpt_mode = file->f_mode; ++ v->cpt_pos = file->f_pos; ++ v->cpt_uid = file->f_uid; ++ v->cpt_gid = file->f_gid; ++ ++ vfs_getattr(file->f_vfsmnt, file->f_dentry, &sbuf); ++ ++ v->cpt_i_mode = sbuf.mode; ++ v->cpt_lflags = 0; ++ if (IS_ROOT(file->f_dentry)) ++ v->cpt_lflags |= CPT_DENTRY_ROOT; ++ else if (d_unhashed(file->f_dentry)) { ++ if (cpt_replaced(file->f_dentry, file->f_vfsmnt, ctx)) { ++ v->cpt_lflags |= CPT_DENTRY_REPLACED; ++ replaced = 1; ++ } else { ++ v->cpt_lflags |= CPT_DENTRY_DELETED; ++ } ++ } ++ if (is_cloning_inode(file->f_dentry->d_inode)) ++ v->cpt_lflags |= CPT_DENTRY_CLONING; ++ if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_PROC) ++ v->cpt_lflags |= CPT_DENTRY_PROC; ++ v->cpt_inode = CPT_NULL; ++ if (!(v->cpt_lflags & CPT_DENTRY_REPLACED)) { ++ iobj = lookup_cpt_object(CPT_OBJ_INODE, file->f_dentry->d_inode, ctx); ++ if (iobj) ++ v->cpt_inode = iobj->o_pos; ++ } ++ v->cpt_priv = CPT_NULL; ++ v->cpt_fown_fd = -1; ++ if (S_ISCHR(v->cpt_i_mode)) { ++ iobj = lookup_cpt_object(CPT_OBJ_TTY, file->private_data, ctx); ++ if (iobj) { ++ v->cpt_priv = iobj->o_pos; ++ if (file->f_flags&FASYNC) ++ v->cpt_fown_fd = cpt_tty_fasync(file, ctx); ++ } ++#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) ++ if (file->f_op && file->f_op->open == tun_chr_open) ++ v->cpt_lflags |= CPT_DENTRY_TUNTAP; ++#endif ++ } ++ if (S_ISSOCK(v->cpt_i_mode)) { ++ if (obj->o_index < 0) { ++ eprintk_ctx("BUG: no socket index\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ v->cpt_priv = obj->o_index; ++ if (file->f_flags&FASYNC) ++ v->cpt_fown_fd = cpt_socket_fasync(file, ctx); ++ } ++ if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_EPOLL) { ++ v->cpt_priv = file->f_dentry->d_inode->i_ino; ++ v->cpt_lflags |= CPT_DENTRY_EPOLL; ++ } ++ if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_INOTIFY) { ++ v->cpt_priv = file->f_dentry->d_inode->i_ino; ++ v->cpt_lflags |= CPT_DENTRY_INOTIFY; ++ } ++ ++ v->cpt_fown_pid = (file->f_owner.pid == NULL ? ++ CPT_FOWN_STRAY_PID : pid_vnr(file->f_owner.pid)); ++ v->cpt_fown_uid = file->f_owner.uid; ++ v->cpt_fown_euid = file->f_owner.euid; ++ v->cpt_fown_signo = file->f_owner.signum; ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ if (!S_ISSOCK(v->cpt_i_mode)) { ++ err = cpt_dump_filename(file, replaced, ctx); ++ if (err) ++ return err; ++ if ((file->f_mode & FMODE_WRITE) && ++ file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_VEFS) ++ vefs_track_notify(file->f_dentry, 1); ++ } ++ ++ if (file->f_dentry->d_inode->i_flock) ++ err = cpt_dump_flock(file, ctx); ++ ++ cpt_close_object(ctx); ++ ++ return err; ++} ++ ++/* About this weird function... Crappy code dealing with SYSV shared memory ++ * defines TMPFS inode and file with f_op doing only mmap. So... ++ * Maybe, this is wrong and leaks something. It is clear access to ++ * SYSV shmem via mmap is quite unusual and impossible from user space. ++ */ ++static int dump_content_shm(struct file *file, struct cpt_context *ctx) ++{ ++ struct cpt_obj_bits *v; ++ loff_t saved_pos; ++ unsigned long addr; ++ ++ addr = do_mmap_pgoff(file, 0, file->f_dentry->d_inode->i_size, ++ PROT_READ, MAP_SHARED, 0); ++ if (IS_ERR((void*)addr)) ++ return PTR_ERR((void*)addr); ++ ++ cpt_push_object(&saved_pos, ctx); ++ cpt_open_object(NULL, ctx); ++ v = cpt_get_buf(ctx); ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_BITS; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_DATA; ++ v->cpt_size = file->f_dentry->d_inode->i_size; ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ctx->write((void*)addr, file->f_dentry->d_inode->i_size, ctx); ++ ctx->align(ctx); ++ do_munmap(current->mm, addr, file->f_dentry->d_inode->i_size); ++ ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_pos, ctx); ++ return 0; ++} ++ ++static int data_is_zero(char *addr, int len) ++{ ++ int i; ++ unsigned long zerolong = 0; ++ ++ for (i=0; if_op == NULL) ++ return -EINVAL; ++ ++ do_read = file->f_op->read; ++ if (file->f_op == &shmem_file_operations) { ++ do_read = file->f_dentry->d_inode->i_fop->read; ++ cpt_dump_content_sysvshm(file, ctx); ++ if (!do_read) { ++ wprintk_ctx("TMPFS is not configured?\n"); ++ return dump_content_shm(file, ctx); ++ } ++ } ++ ++ if (!(file->f_mode & FMODE_READ) || ++ (file->f_flags & O_DIRECT)) { ++ file = dentry_open(dget(file->f_dentry), ++ mntget(file->f_vfsmnt), O_RDONLY); ++ if (IS_ERR(file)) { ++ cpt_printk_dentry(file->f_dentry, file->f_vfsmnt); ++ eprintk_ctx("cannot reopen file for read %ld\n", PTR_ERR(file)); ++ return PTR_ERR(file); ++ } ++ } else { ++ atomic_inc(&file->f_count); ++ } ++ ++ for (;;) { ++ mm_segment_t oldfs; ++ int err; ++ ++ (void)cpt_get_buf(ctx); ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = do_read(file, ctx->tmpbuf, PAGE_SIZE, &pos); ++ set_fs(oldfs); ++ if (err < 0) { ++ eprintk_ctx("dump_content_regular: do_read: %d", err); ++ fput(file); ++ __cpt_release_buf(ctx); ++ return err; ++ } ++ if (err == 0) { ++ __cpt_release_buf(ctx); ++ break; ++ } ++ if (data_is_zero(ctx->tmpbuf, err)) { ++ if (obj_opened != CPT_NULL) { ++ ctx->pwrite(&pgb.cpt_end, 8, ctx, obj_opened + offsetof(struct cpt_page_block, cpt_end)); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_pos, ctx); ++ obj_opened = CPT_NULL; ++ } ++ } else { ++ if (obj_opened == CPT_NULL) { ++ cpt_push_object(&saved_pos, ctx); ++ cpt_open_object(NULL, ctx); ++ obj_opened = ctx->file->f_pos; ++ pgb.cpt_next = CPT_NULL; ++ pgb.cpt_object = CPT_OBJ_PAGES; ++ pgb.cpt_hdrlen = sizeof(pgb); ++ pgb.cpt_content = CPT_CONTENT_DATA; ++ pgb.cpt_start = pos - err; ++ pgb.cpt_end = pgb.cpt_start; ++ ctx->write(&pgb, sizeof(pgb), ctx); ++ } ++ ctx->write(ctx->tmpbuf, err, ctx); ++ pgb.cpt_end += err; ++ } ++ __cpt_release_buf(ctx); ++ } ++ ++ fput(file); ++ ++ if (obj_opened != CPT_NULL) { ++ ctx->pwrite(&pgb.cpt_end, 8, ctx, obj_opened + offsetof(struct cpt_page_block, cpt_end)); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_pos, ctx); ++ obj_opened = CPT_NULL; ++ } ++ return 0; ++} ++ ++ ++static int dump_content_chrdev(struct file *file, struct cpt_context *ctx) ++{ ++ struct inode *ino = file->f_dentry->d_inode; ++ int maj; ++ ++ maj = imajor(ino); ++ if (maj == MEM_MAJOR) { ++ /* Well, OK. */ ++ return 0; ++ } ++ if (maj == PTY_MASTER_MAJOR || ++ (maj >= UNIX98_PTY_MASTER_MAJOR && ++ maj < UNIX98_PTY_MASTER_MAJOR+UNIX98_PTY_MAJOR_COUNT) || ++ maj == PTY_SLAVE_MAJOR || ++ maj == UNIX98_PTY_SLAVE_MAJOR || ++ maj == TTYAUX_MAJOR) { ++ return cpt_dump_content_tty(file, ctx); ++ } ++#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) ++ if (file->f_op && file->f_op->open == tun_chr_open) ++ return 0; ++#endif ++ eprintk_ctx("unsupported chrdev %d/%d\n", maj, iminor(ino)); ++ return -EINVAL; ++} ++ ++static int dump_content_blkdev(struct file *file, struct cpt_context *ctx) ++{ ++ struct inode *ino = file->f_dentry->d_inode; ++ ++ /* We are not going to transfer them. */ ++ eprintk_ctx("unsupported blkdev %d/%d\n", imajor(ino), iminor(ino)); ++ return -EINVAL; ++} ++ ++static int dump_content_fifo(struct file *file, struct cpt_context *ctx) ++{ ++ struct inode *ino = file->f_dentry->d_inode; ++ cpt_object_t *obj; ++ loff_t saved_pos; ++ int readers; ++ int writers; ++ int anon = 0; ++ ++ mutex_lock(&ino->i_mutex); ++ readers = ino->i_pipe->readers; ++ writers = ino->i_pipe->writers; ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file1 = obj->o_obj; ++ if (file1->f_dentry->d_inode == ino) { ++ if (file1->f_mode & FMODE_READ) ++ readers--; ++ if (file1->f_mode & FMODE_WRITE) ++ writers--; ++ } ++ } ++ mutex_unlock(&ino->i_mutex); ++ if (readers || writers) { ++ struct dentry *dr = file->f_dentry->d_sb->s_root; ++ if (dr->d_name.len == 7 && memcmp(dr->d_name.name,"pipefs:",7) == 0) ++ anon = 1; ++ ++ if (anon) { ++ eprintk_ctx("pipe has %d/%d external readers/writers\n", readers, writers); ++ return -EBUSY; ++ } ++ /* If fifo has external readers/writers, we are in troubles. ++ * If the buffer is not empty, we must move its content. ++ * But if the fifo is owned by a service, we cannot do ++ * this. See? ++ * ++ * For now we assume, that if fifo is opened by another ++ * process, we do not own it and, hence, migrate without ++ * data. ++ */ ++ return 0; ++ } ++ ++ /* OK, we must save fifo state. No semaphores required. */ ++ ++ if (ino->i_pipe->nrbufs) { ++ struct cpt_obj_bits *v = cpt_get_buf(ctx); ++ struct pipe_inode_info *info; ++ int count, buf, nrbufs; ++ ++ mutex_lock(&ino->i_mutex); ++ info = ino->i_pipe; ++ count = 0; ++ buf = info->curbuf; ++ nrbufs = info->nrbufs; ++ while (--nrbufs >= 0) { ++ if (!info->bufs[buf].ops->can_merge) { ++ mutex_unlock(&ino->i_mutex); ++ eprintk_ctx("unknown format of pipe buffer\n"); ++ return -EINVAL; ++ } ++ count += info->bufs[buf].len; ++ buf = (buf+1) & (PIPE_BUFFERS-1); ++ } ++ ++ if (!count) { ++ mutex_unlock(&ino->i_mutex); ++ return 0; ++ } ++ ++ cpt_push_object(&saved_pos, ctx); ++ cpt_open_object(NULL, ctx); ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_BITS; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_DATA; ++ v->cpt_size = count; ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ count = 0; ++ buf = info->curbuf; ++ nrbufs = info->nrbufs; ++ while (--nrbufs >= 0) { ++ struct pipe_buffer *b = info->bufs + buf; ++ /* need to ->pin first? */ ++ void * addr = b->ops->map(info, b, 0); ++ ctx->write(addr + b->offset, b->len, ctx); ++ b->ops->unmap(info, b, addr); ++ buf = (buf+1) & (PIPE_BUFFERS-1); ++ } ++ ++ mutex_unlock(&ino->i_mutex); ++ ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_pos, ctx); ++ } ++ ++ return 0; ++} ++ ++static int dump_content_socket(struct file *file, struct cpt_context *ctx) ++{ ++ return 0; ++} ++ ++struct cpt_dirent { ++ unsigned long ino; ++ char *name; ++ int namelen; ++ int found; ++}; ++ ++static int cpt_filldir(void * __buf, const char * name, int namelen, ++ loff_t offset, u64 ino, unsigned int d_type) ++{ ++ struct cpt_dirent * dirent = __buf; ++ ++ if ((ino == dirent->ino) && (namelen < PAGE_SIZE - 1)) { ++ memcpy(dirent->name, name, namelen); ++ dirent->name[namelen] = '\0'; ++ dirent->namelen = namelen; ++ dirent->found = 1; ++ return 1; ++ } ++ return 0; ++} ++ ++static int find_linked_dentry(struct dentry *d, struct vfsmount *mnt, ++ struct inode *ino, struct cpt_context *ctx) ++{ ++ int err = -EBUSY; ++ struct file *f = NULL; ++ struct cpt_dirent entry; ++ struct dentry *de, *found = NULL; ++ ++ dprintk_ctx("deleted reference to existing inode, try to find file\n"); ++ /* 1. Try to find not deleted dentry in ino->i_dentry list */ ++ spin_lock(&dcache_lock); ++ list_for_each_entry(de, &ino->i_dentry, d_alias) { ++ if (!IS_ROOT(de) && d_unhashed(de)) ++ continue; ++ found = de; ++ dget_locked(found); ++ break; ++ } ++ spin_unlock(&dcache_lock); ++ if (found) { ++ err = cpt_dump_dentry(found, mnt, 0, ctx); ++ dput(found); ++ if (!err) { ++ dprintk_ctx("dentry found in aliases\n"); ++ return 0; ++ } ++ } ++ ++ /* 2. Try to find file in current dir */ ++ de = dget_parent(d); ++ if (!de) ++ return -EINVAL; ++ ++ mntget(mnt); ++ f = dentry_open(de, mnt, O_RDONLY); ++ if (IS_ERR(f)) ++ return PTR_ERR(f); ++ ++ entry.ino = ino->i_ino; ++ entry.name = cpt_get_buf(ctx); ++ entry.found = 0; ++ err = vfs_readdir(f, cpt_filldir, &entry); ++ if (err || !entry.found) { ++ err = err ? err : -ENOENT; ++ goto err_readdir; ++ } ++ ++ found = lookup_one_len(entry.name, de, entry.namelen); ++ if (IS_ERR(found)) { ++ err = PTR_ERR(found); ++ goto err_readdir; ++ } ++ ++ err = -ENOENT; ++ if (found->d_inode != ino) ++ goto err_lookup; ++ ++ dprintk_ctx("dentry found in dir\n"); ++ __cpt_release_buf(ctx); ++ err = cpt_dump_dentry(found, mnt, 0, ctx); ++ ++err_lookup: ++ dput(found); ++err_readdir: ++ fput(f); ++ __cpt_release_buf(ctx); ++ return err; ++} ++ ++static int dump_one_inode(struct file *file, struct dentry *d, ++ struct vfsmount *mnt, struct cpt_context *ctx) ++{ ++ int err = 0; ++ struct inode *ino = d->d_inode; ++ cpt_object_t *iobj; ++ int dump_it = 0; ++ ++ iobj = lookup_cpt_object(CPT_OBJ_INODE, ino, ctx); ++ if (!iobj) ++ return -EINVAL; ++ ++ if (iobj->o_pos >= 0) ++ return 0; ++ ++ if ((!IS_ROOT(d) && d_unhashed(d)) && ++ !cpt_replaced(d, mnt, ctx)) ++ dump_it = 1; ++ if (!S_ISREG(ino->i_mode) && !S_ISDIR(ino->i_mode)) { ++ /* One more bug in epoll: invalid inode mode. ++ * What a load of crap... ++ */ ++ if (ino->i_sb->s_magic == FSMAGIC_EPOLL && ++ (ino->i_mode & S_IFMT) == 0) ++ return 0; ++ dump_it = 1; ++ } ++ ++ if (!dump_it) ++ return 0; ++ ++ cpt_open_object(iobj, ctx); ++ cpt_dump_inode(d, mnt, ctx); ++ ++ if (!IS_ROOT(d) && d_unhashed(d)) { ++ struct file *parent; ++ parent = iobj->o_parent; ++ if (!parent || ++ (!IS_ROOT(parent->f_dentry) && d_unhashed(parent->f_dentry))) { ++ /* Inode is not deleted, but it does not ++ * have references from inside checkpointed ++ * process group. */ ++ if (ino->i_nlink != 0) { ++ err = find_linked_dentry(d, mnt, ino, ctx); ++ if (err) { ++ eprintk_ctx("deleted reference to existing inode, checkpointing is impossible: %d\n", err); ++ return -EBUSY; ++ } ++ if (S_ISREG(ino->i_mode) || S_ISDIR(ino->i_mode)) ++ dump_it = 0; ++ } ++ } else { ++ /* Refer to _another_ file name. */ ++ err = cpt_dump_filename(parent, 0, ctx); ++ if (err) ++ return err; ++ if (S_ISREG(ino->i_mode) || S_ISDIR(ino->i_mode)) ++ dump_it = 0; ++ } ++ } ++ if (dump_it) { ++ if (S_ISREG(ino->i_mode)) { ++ if ((err = dump_content_regular(file, ctx)) != 0) { ++ eprintk_ctx("dump_content_regular "); ++ cpt_printk_dentry(d, mnt); ++ } ++ } else if (S_ISDIR(ino->i_mode)) { ++ /* We cannot do anything. The directory should be ++ * empty, so it is not a big deal. ++ */ ++ } else if (S_ISCHR(ino->i_mode)) { ++ err = dump_content_chrdev(file, ctx); ++ } else if (S_ISBLK(ino->i_mode)) { ++ err = dump_content_blkdev(file, ctx); ++ } else if (S_ISFIFO(ino->i_mode)) { ++ err = dump_content_fifo(file, ctx); ++ } else if (S_ISSOCK(ino->i_mode)) { ++ err = dump_content_socket(file, ctx); ++ } else { ++ eprintk_ctx("unknown inode mode %o, magic 0x%lx\n", ino->i_mode & S_IFMT, ino->i_sb->s_magic); ++ err = -EINVAL; ++ } ++ } ++ cpt_close_object(ctx); ++ ++ return err; ++} ++ ++int cpt_dump_files(struct cpt_context *ctx) ++{ ++ int epoll_nr, inotify_nr; ++ cpt_object_t *obj; ++ ++ cpt_open_section(ctx, CPT_SECT_TTY); ++ for_each_object(obj, CPT_OBJ_TTY) { ++ int err; ++ ++ if ((err = cpt_dump_tty(obj, ctx)) != 0) ++ return err; ++ } ++ cpt_close_section(ctx); ++ ++ cpt_open_section(ctx, CPT_SECT_INODE); ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ int err; ++ ++ if ((err = dump_one_inode(file, file->f_dentry, ++ file->f_vfsmnt, ctx)) != 0) ++ return err; ++ } ++ for_each_object(obj, CPT_OBJ_FS) { ++ struct fs_struct *fs = obj->o_obj; ++ int err; ++ ++ if (fs->root && ++ (err = dump_one_inode(NULL, fs->root, fs->rootmnt, ctx)) != 0) ++ return err; ++ if (fs->pwd && ++ (err = dump_one_inode(NULL, fs->pwd, fs->pwdmnt, ctx)) != 0) ++ return err; ++ if (fs->altroot && ++ (err = dump_one_inode(NULL, fs->altroot, fs->altrootmnt, ctx)) != 0) ++ return err; ++ } ++ cpt_close_section(ctx); ++ ++ epoll_nr = 0; ++ inotify_nr = 0; ++ cpt_open_section(ctx, CPT_SECT_FILES); ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ int err; ++ ++ if ((err = dump_one_file(obj, file, ctx)) != 0) ++ return err; ++ if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_EPOLL) ++ epoll_nr++; ++ if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_INOTIFY) ++ inotify_nr++; ++ } ++ cpt_close_section(ctx); ++ ++ if (epoll_nr) { ++ cpt_open_section(ctx, CPT_SECT_EPOLL); ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_EPOLL) { ++ int err; ++ if ((err = cpt_dump_epolldev(obj, ctx)) != 0) ++ return err; ++ } ++ } ++ cpt_close_section(ctx); ++ } ++ ++ if (inotify_nr) { ++ cpt_open_section(ctx, CPT_SECT_INOTIFY); ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ if (file->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_INOTIFY) { ++ int err = -EINVAL; ++#ifdef CONFIG_INOTIFY_USER ++ if ((err = cpt_dump_inotify(obj, ctx)) != 0) ++#endif ++ return err; ++ } ++ } ++ cpt_close_section(ctx); ++ } ++ ++ cpt_open_section(ctx, CPT_SECT_SOCKET); ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ int err; ++ ++ if ((err = cpt_dump_socket(obj, obj->o_obj, obj->o_index, -1, ctx)) != 0) ++ return err; ++ } ++ cpt_close_section(ctx); ++ ++ return 0; ++} ++ ++static int dump_filedesc(int fd, struct file *file, ++ struct files_struct *f, struct cpt_context *ctx) ++{ ++ struct cpt_fd_image *v = cpt_get_buf(ctx); ++ cpt_object_t *obj; ++ ++ cpt_open_object(NULL, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_FILEDESC; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_VOID; ++ ++ v->cpt_fd = fd; ++ obj = lookup_cpt_object(CPT_OBJ_FILE, file, ctx); ++ if (!obj) BUG(); ++ v->cpt_file = obj->o_pos; ++ v->cpt_flags = 0; ++ if (FD_ISSET(fd, f->fdt->close_on_exec)) ++ v->cpt_flags = CPT_FD_FLAG_CLOSEEXEC; ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ cpt_close_object(ctx); ++ ++ return 0; ++} ++ ++static int dump_one_file_struct(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct files_struct *f = obj->o_obj; ++ struct cpt_files_struct_image *v = cpt_get_buf(ctx); ++ int fd; ++ loff_t saved_obj; ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_FILES; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_index = obj->o_index; ++ v->cpt_max_fds = f->fdt->max_fds; ++ v->cpt_next_fd = f->next_fd; ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ for (fd = 0; fd < f->fdt->max_fds; fd++) { ++ struct file *file = fcheck_files(f, fd); ++ if (file) ++ dump_filedesc(fd, file, f, ctx); ++ } ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ ++ return 0; ++} ++ ++int cpt_dump_files_struct(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ cpt_open_section(ctx, CPT_SECT_FILES_STRUCT); ++ ++ for_each_object(obj, CPT_OBJ_FILES) { ++ int err; ++ ++ if ((err = dump_one_file_struct(obj, ctx)) != 0) ++ return err; ++ } ++ ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++int cpt_collect_fs(cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ if (tsk->fs) { ++ if (cpt_object_add(CPT_OBJ_FS, tsk->fs, ctx) == NULL) ++ return -ENOMEM; ++ if (tsk->fs->pwd && ++ cpt_object_add(CPT_OBJ_INODE, tsk->fs->pwd->d_inode, ctx) == NULL) ++ return -ENOMEM; ++ if (tsk->fs->root && ++ cpt_object_add(CPT_OBJ_INODE, tsk->fs->root->d_inode, ctx) == NULL) ++ return -ENOMEM; ++ if (tsk->fs->altroot && ++ cpt_object_add(CPT_OBJ_INODE, tsk->fs->altroot->d_inode, ctx) == NULL) ++ return -ENOMEM; ++ } ++ } ++ return 0; ++} ++ ++int cpt_dump_dir(struct dentry *d, struct vfsmount *mnt, struct cpt_context *ctx) ++{ ++ struct file file; ++ ++ memset(&file, 0, sizeof(file)); ++ ++ file.f_dentry = d; ++ file.f_vfsmnt = mnt; ++ file.f_mode = FMODE_READ|FMODE_PREAD|FMODE_LSEEK; ++ return dump_one_file(NULL, &file, ctx); ++} ++ ++static int dump_one_fs(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct fs_struct *fs = obj->o_obj; ++ struct cpt_fs_struct_image *v = cpt_get_buf(ctx); ++ loff_t saved_obj; ++ int err; ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_FS; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_umask = fs->umask; ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ err = cpt_dump_dir(fs->root, fs->rootmnt, ctx); ++ if (!err) ++ err = cpt_dump_dir(fs->pwd, fs->pwdmnt, ctx); ++ if (!err && fs->altroot) ++ err = cpt_dump_dir(fs->altroot, fs->altrootmnt, ctx); ++ ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ ++ return err; ++} ++ ++int cpt_dump_fs_struct(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ cpt_open_section(ctx, CPT_SECT_FS); ++ ++ for_each_object(obj, CPT_OBJ_FS) { ++ int err; ++ ++ if ((err = dump_one_fs(obj, ctx)) != 0) ++ return err; ++ } ++ ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++static int check_one_namespace(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ int err = 0; ++ struct mnt_namespace *n = obj->o_obj; ++ struct list_head *p; ++ char *path_buf, *path; ++ ++ path_buf = (char *) __get_free_page(GFP_KERNEL); ++ if (!path_buf) ++ return -ENOMEM; ++ ++ down_read(&namespace_sem); ++ list_for_each(p, &n->list) { ++ struct vfsmount *mnt = list_entry(p, struct vfsmount, mnt_list); ++ ++ path = d_path(mnt->mnt_root, mnt, path_buf, PAGE_SIZE); ++ if (IS_ERR(path)) ++ continue; ++ ++ if (check_one_vfsmount(mnt)) { ++ eprintk_ctx("unsupported fs type %s\n", mnt->mnt_sb->s_type->name); ++ err = -EINVAL; ++ break; ++ } ++ } ++ up_read(&namespace_sem); ++ ++ free_page((unsigned long) path_buf); ++ ++ return err; ++} ++ ++int cpt_collect_namespace(cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ if (tsk->nsproxy && tsk->nsproxy->mnt_ns && ++ cpt_object_add(CPT_OBJ_NAMESPACE, ++ tsk->nsproxy->mnt_ns, ctx) == NULL) ++ return -ENOMEM; ++ } ++ ++ for_each_object(obj, CPT_OBJ_NAMESPACE) { ++ int err; ++ if ((err = check_one_namespace(obj, ctx)) != 0) ++ return err; ++ } ++ ++ return 0; ++} ++ ++struct args_t ++{ ++ int* pfd; ++ char* path; ++}; ++ ++static int dumptmpfs(void *arg) ++{ ++ int i; ++ struct args_t *args = arg; ++ int *pfd = args->pfd; ++ int fd0, fd2; ++ char *path = args->path; ++ char *argv[] = { "tar", "-c", "-S", "--numeric-owner", path, NULL }; ++ ++ i = real_env_create(VEID(get_exec_env()), VE_ENTER|VE_SKIPLOCK, 2, NULL, 0); ++ if (i < 0) { ++ eprintk("cannot enter ve to dump tmpfs\n"); ++ module_put(THIS_MODULE); ++ return 255 << 8; ++ } ++ ++ if (pfd[1] != 1) ++ sc_dup2(pfd[1], 1); ++ set_fs(KERNEL_DS); ++ fd0 = sc_open("/dev/null", O_RDONLY, 0); ++ fd2 = sc_open("/dev/null", O_WRONLY, 0); ++ if (fd0 < 0 || fd2 < 0) { ++ eprintk("can not open /dev/null for tar: %d %d\n", fd0, fd2); ++ module_put(THIS_MODULE); ++ return 255 << 8; ++ } ++ if (fd0 != 0) ++ sc_dup2(fd0, 0); ++ if (fd2 != 2) ++ sc_dup2(fd2, 2); ++ ++ for (i = 3; i < current->files->fdt->max_fds; i++) { ++ sc_close(i); ++ } ++ ++ module_put(THIS_MODULE); ++ ++ i = sc_execve("/bin/tar", argv, NULL); ++ eprintk("failed to exec /bin/tar: %d\n", i); ++ return 255 << 8; ++} ++ ++static int cpt_dump_tmpfs(char *path, struct cpt_context *ctx) ++{ ++ int err; ++ int pid; ++ int pfd[2]; ++ struct file *f; ++ struct cpt_object_hdr v; ++ char buf[16]; ++ int n; ++ loff_t saved_obj; ++ struct args_t args; ++ int status; ++ mm_segment_t oldfs; ++ sigset_t ignore, blocked; ++ ++ err = sc_pipe(pfd); ++ if (err < 0) ++ return err; ++ args.pfd = pfd; ++ args.path = path; ++ ignore.sig[0] = CPT_SIG_IGNORE_MASK; ++ sigprocmask(SIG_BLOCK, &ignore, &blocked); ++ err = pid = local_kernel_thread(dumptmpfs, (void*)&args, ++ SIGCHLD | CLONE_VFORK, 0); ++ if (err < 0) { ++ eprintk_ctx("tmpfs local_kernel_thread: %d\n", err); ++ goto out; ++ } ++ f = fget(pfd[0]); ++ sc_close(pfd[1]); ++ sc_close(pfd[0]); ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_open_object(NULL, ctx); ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NAME; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_NAME; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++ do { ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ n = f->f_op->read(f, buf, sizeof(buf), &f->f_pos); ++ set_fs(oldfs); ++ if (n > 0) ++ ctx->write(buf, n, ctx); ++ } while (n > 0); ++ ++ fput(f); ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if ((err = sc_waitx(pid, 0, &status)) < 0) ++ eprintk_ctx("wait4: %d\n", err); ++ else if ((status & 0x7f) == 0) { ++ err = (status & 0xff00) >> 8; ++ if (err != 0) { ++ eprintk_ctx("tar exited with %d\n", err); ++ err = -EINVAL; ++ } ++ } else { ++ eprintk_ctx("tar terminated\n"); ++ err = -EINVAL; ++ } ++ set_fs(oldfs); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++ ++ buf[0] = 0; ++ ctx->write(buf, 1, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ return n ? : err; ++ ++out: ++ if (pfd[1] >= 0) ++ sc_close(pfd[1]); ++ if (pfd[0] >= 0) ++ sc_close(pfd[0]); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++ return err; ++} ++ ++static int loopy_root(struct vfsmount *mnt) ++{ ++ struct list_head *p; ++ ++ list_for_each(p, &mnt->mnt_ns->list) { ++ struct vfsmount * m = list_entry(p, struct vfsmount, mnt_list); ++ if (m == mnt) ++ return 0; ++ if (m->mnt_sb == mnt->mnt_sb) ++ return 1; ++ } ++ /* Cannot happen */ ++ return 0; ++} ++ ++static int cpt_dump_bind_mnt(struct vfsmount * mnt, cpt_context_t * ctx) ++{ ++ struct list_head *p; ++ int err = -EINVAL; ++ ++ /* One special case: mount --bind /a /a */ ++ if (mnt->mnt_root == mnt->mnt_mountpoint) ++ return cpt_dump_dentry(mnt->mnt_root, mnt, 0, ctx); ++ ++ list_for_each_prev(p, &mnt->mnt_list) { ++ struct vfsmount * m; ++ ++ if (p == &mnt->mnt_ns->list) ++ break; ++ ++ m = list_entry(p, struct vfsmount, mnt_list); ++ ++ if (m->mnt_sb != mnt->mnt_sb) ++ continue; ++ ++ err = cpt_dump_dentry(mnt->mnt_root, m, 0, ctx); ++ if (err == 0) ++ break; ++ } ++ return err; ++} ++ ++static int dump_vfsmount(struct vfsmount *mnt, struct cpt_context *ctx) ++{ ++ int err = 0; ++ struct cpt_vfsmount_image v; ++ loff_t saved_obj; ++ char *path_buf, *path; ++ ++ path_buf = (char *) __get_free_page(GFP_KERNEL); ++ if (!path_buf) ++ return -ENOMEM; ++ ++ path = d_path(mnt->mnt_root, mnt, path_buf, PAGE_SIZE); ++ if (IS_ERR(path)) { ++ free_page((unsigned long) path_buf); ++ return PTR_ERR(path) == -EINVAL ? 0 : PTR_ERR(path); ++ } ++ ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_VFSMOUNT; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_ARRAY; ++ ++ v.cpt_mntflags = mnt->mnt_flags; ++ if (top_beancounter(slab_ub(mnt)) != top_beancounter(get_exec_ub())) { ++ v.cpt_mntflags |= CPT_MNT_EXT; ++ } else { ++ if (mnt->mnt_root != mnt->mnt_sb->s_root || loopy_root(mnt)) ++ v.cpt_mntflags |= CPT_MNT_BIND; ++ } ++ v.cpt_flags = mnt->mnt_sb->s_flags; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_dump_string(mnt->mnt_devname ? : "none", ctx); ++ cpt_dump_string(path, ctx); ++ cpt_dump_string(mnt->mnt_sb->s_type->name, ctx); ++ ++ if (v.cpt_mntflags & CPT_MNT_BIND) ++ err = cpt_dump_bind_mnt(mnt, ctx); ++ else if (!(v.cpt_mntflags & CPT_MNT_EXT) && ++ strcmp(mnt->mnt_sb->s_type->name, "tmpfs") == 0) { ++ mntget(mnt); ++ up_read(&namespace_sem); ++ err = cpt_dump_tmpfs(path, ctx); ++ down_read(&namespace_sem); ++ if (!err) { ++ if (list_empty(&mnt->mnt_list)) ++ err = -EBUSY; ++ } ++ mntput(mnt); ++ } ++ ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ if (!err && mnt->mnt_sb->s_magic == FSMAGIC_VEFS) ++ vefs_track_force_stop(mnt->mnt_sb); ++ ++ free_page((unsigned long) path_buf); ++ ++ return err; ++} ++ ++static int dump_one_namespace(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct mnt_namespace *n = obj->o_obj; ++ struct cpt_object_hdr v; ++ struct list_head *p; ++ loff_t saved_obj; ++ int err = 0; ++ ++ cpt_open_object(obj, ctx); ++ ++ v.cpt_next = -1; ++ v.cpt_object = CPT_OBJ_NAMESPACE; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_ARRAY; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ ++ down_read(&namespace_sem); ++ list_for_each(p, &n->list) { ++ err = dump_vfsmount(list_entry(p, struct vfsmount, mnt_list), ctx); ++ if (err) ++ break; ++ } ++ up_read(&namespace_sem); ++ ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ ++ return err; ++} ++ ++int cpt_dump_namespace(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ cpt_open_section(ctx, CPT_SECT_NAMESPACE); ++ ++ for_each_object(obj, CPT_OBJ_NAMESPACE) { ++ int err; ++ ++ if ((err = dump_one_namespace(obj, ctx)) != 0) ++ return err; ++ } ++ ++ cpt_close_section(ctx); ++ return 0; ++} +Index: kernel/kernel/cpt/cpt_files.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_files.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,71 @@ ++int cpt_collect_files(cpt_context_t *); ++int cpt_collect_fs(cpt_context_t *); ++int cpt_collect_namespace(cpt_context_t *); ++int cpt_collect_sysvsem_undo(cpt_context_t *); ++int cpt_collect_tty(struct file *, cpt_context_t *); ++int cpt_dump_files(struct cpt_context *ctx); ++int cpt_dump_files_struct(struct cpt_context *ctx); ++int cpt_dump_fs_struct(struct cpt_context *ctx); ++int cpt_dump_content_sysvshm(struct file *file, struct cpt_context *ctx); ++int cpt_dump_content_tty(struct file *file, struct cpt_context *ctx); ++int cpt_dump_tty(cpt_object_t *, struct cpt_context *ctx); ++struct file * rst_sysv_shm(loff_t pos, struct cpt_context *ctx); ++struct file * rst_open_tty(struct cpt_file_image *fi, struct cpt_inode_image *ii, unsigned flags, struct cpt_context *ctx); ++__u32 cpt_tty_fasync(struct file *file, struct cpt_context *ctx); ++ ++int rst_posix_locks(struct cpt_context *ctx); ++ ++struct file *rst_file(loff_t pos, int fd, struct cpt_context *ctx); ++int rst_files_complete(struct cpt_task_image *ti, struct cpt_context *ctx); ++__u32 rst_files_flag(struct cpt_task_image *ti, struct cpt_context *ctx); ++int rst_fs_complete(struct cpt_task_image *ti, struct cpt_context *ctx); ++int rst_restore_fs(struct cpt_context *ctx); ++ ++int cpt_collect_sysv(cpt_context_t *); ++int cpt_dump_sysvsem(struct cpt_context *ctx); ++int cpt_dump_sysvmsg(struct cpt_context *ctx); ++int rst_sysv_ipc(struct cpt_context *ctx); ++int rst_semundo_complete(struct cpt_task_image *ti, struct cpt_context *ctx); ++__u32 rst_semundo_flag(struct cpt_task_image *ti, struct cpt_context *ctx); ++ ++int cpt_dump_namespace(struct cpt_context *ctx); ++int rst_root_namespace(struct cpt_context *ctx); ++ ++int rst_stray_files(struct cpt_context *ctx); ++int rst_tty_jobcontrol(struct cpt_context *ctx); ++ ++void rst_flush_filejobs(struct cpt_context *); ++int rst_do_filejobs(struct cpt_context *); ++ ++int rst_eventpoll(struct cpt_context *); ++struct file *cpt_open_epolldev(struct cpt_file_image *fi, ++ unsigned flags, ++ struct cpt_context *ctx); ++int cpt_dump_epolldev(cpt_object_t *obj, struct cpt_context *); ++ ++int cpt_dump_dir(struct dentry *d, struct vfsmount *mnt, struct cpt_context *ctx); ++int cpt_get_dentry(struct dentry **dp, struct vfsmount **mp, ++ loff_t *pos, struct cpt_context *ctx); ++ ++int cpt_dump_inotify(cpt_object_t *obj, cpt_context_t *ctx); ++int rst_inotify(cpt_context_t *ctx); ++struct file *rst_open_inotify(struct cpt_file_image *fi, ++ unsigned flags, ++ struct cpt_context *ctx); ++ ++ ++int cpt_verify_overmount(char *path, struct dentry *d, struct vfsmount *mnt, ++ cpt_context_t *ctx); ++ ++#define check_one_vfsmount(mnt) \ ++ (strcmp(mnt->mnt_sb->s_type->name, "rootfs") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "ext3") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "ext2") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "simfs") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "unionfs") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "tmpfs") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "devpts") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "proc") != 0 && \ ++ strcmp(mnt->mnt_sb->s_type->name, "sysfs") != 0) ++ ++extern const struct file_operations shmem_file_operations; +Index: kernel/kernel/cpt/cpt_fsmagic.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_fsmagic.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,17 @@ ++/* Collected from kernel sources. */ ++ ++#define FSMAGIC_TMPFS 0x01021994 ++#define FSMAGIC_PIPEFS 0x50495045 ++#define FSMAGIC_SOCKFS 0x534F434B ++#define FSMAGIC_PFMFS 0xa0b4d889 ++#define FSMAGIC_BDEV 0x62646576 ++#define FSMAGIC_EPOLL 0x03111965 ++#define FSMAGIC_FUTEX 0x0BAD1DEA ++#define FSMAGIC_INOTIFY 0x2BAD1DEA ++#define FSMAGIC_MQUEUE 0x19800202 ++#define FSMAGIC_PROC 0x9fa0 ++#define FSMAGIC_DEVPTS 0x1CD1 ++#define FSMAGIC_AUTOFS 0x0187 ++#define FSMAGIC_EXT2 0xEF53 ++#define FSMAGIC_REISER 0x52654973 ++#define FSMAGIC_VEFS 0x565a4653 +Index: kernel/kernel/cpt/cpt_inotify.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_inotify.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,144 @@ ++/* ++ * ++ * kernel/cpt/cpt_inotify.c ++ * ++ * Copyright (C) 2000-2007 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_files.h" ++#include "cpt_kernel.h" ++#include "cpt_fsmagic.h" ++#include "cpt_syscalls.h" ++ ++extern struct file_operations inotify_fops; ++ ++int cpt_dump_inotify(cpt_object_t *obj, cpt_context_t *ctx) ++{ ++ int err = 0; ++ struct file *file = obj->o_obj; ++ struct inotify_device *dev; ++ struct inotify_watch *watch; ++ struct inotify_kernel_event *kev; ++ struct cpt_inotify_image ii; ++ ++ if (file->f_op != &inotify_fops) { ++ eprintk_ctx("bad inotify file\n"); ++ return -EINVAL; ++ } ++ ++ dev = file->private_data; ++ ++ /* inotify_user.c does not protect open /proc/N/fd, silly. ++ * Opener will get an invalid file with uninitialized private_data ++ */ ++ if (unlikely(dev == NULL)) { ++ eprintk_ctx("bad inotify dev\n"); ++ return -EINVAL; ++ } ++ ++ cpt_open_object(NULL, ctx); ++ ++ ii.cpt_next = CPT_NULL; ++ ii.cpt_object = CPT_OBJ_INOTIFY; ++ ii.cpt_hdrlen = sizeof(ii); ++ ii.cpt_content = CPT_CONTENT_ARRAY; ++ ii.cpt_file = obj->o_pos; ++ ii.cpt_user = dev->user->uid; ++ ii.cpt_max_events = dev->max_events; ++ ii.cpt_last_wd = dev->ih->last_wd; ++ ++ ctx->write(&ii, sizeof(ii), ctx); ++ ++ mutex_lock(&dev->ih->mutex); ++ list_for_each_entry(watch, &dev->ih->watches, h_list) { ++ loff_t saved_obj; ++ loff_t saved_obj2; ++ struct cpt_inotify_wd_image wi; ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_open_object(NULL, ctx); ++ ++ wi.cpt_next = CPT_NULL; ++ wi.cpt_object = CPT_OBJ_INOTIFY_WATCH; ++ wi.cpt_hdrlen = sizeof(wi); ++ wi.cpt_content = CPT_CONTENT_ARRAY; ++ wi.cpt_wd = watch->wd; ++ wi.cpt_mask = watch->mask; ++ ++ ctx->write(&wi, sizeof(wi), ctx); ++ ++ cpt_push_object(&saved_obj2, ctx); ++ err = cpt_dump_dir(watch->dentry, watch->mnt, ctx); ++ cpt_pop_object(&saved_obj2, ctx); ++ if (err) ++ break; ++ ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ mutex_unlock(&dev->ih->mutex); ++ ++ if (err) ++ return err; ++ ++ mutex_lock(&dev->ev_mutex); ++ list_for_each_entry(kev, &dev->events, list) { ++ loff_t saved_obj; ++ struct cpt_inotify_ev_image ei; ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_open_object(NULL, ctx); ++ ++ ei.cpt_next = CPT_NULL; ++ ei.cpt_object = CPT_OBJ_INOTIFY_EVENT; ++ ei.cpt_hdrlen = sizeof(ei); ++ ei.cpt_content = CPT_CONTENT_NAME; ++ ei.cpt_wd = kev->event.wd; ++ ei.cpt_mask = kev->event.mask; ++ ei.cpt_cookie = kev->event.cookie; ++ ei.cpt_namelen = kev->name ? strlen(kev->name) : 0; ++ ++ ctx->write(&ei, sizeof(ei), ctx); ++ ++ if (kev->name) { ++ ctx->write(kev->name, ei.cpt_namelen+1, ctx); ++ ctx->align(ctx); ++ } ++ ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ mutex_unlock(&dev->ev_mutex); ++ ++ cpt_close_object(ctx); ++ ++ return err; ++} +Index: kernel/kernel/cpt/cpt_kernel.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_kernel.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,177 @@ ++/* ++ * ++ * kernel/cpt/cpt_kernel.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#define __KERNEL_SYSCALLS__ 1 ++ ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_X86 ++#include ++#endif ++#include ++ ++#include "cpt_kernel.h" ++#include "cpt_syscalls.h" ++ ++int debug_level = 1; ++ ++#ifdef CONFIG_X86_32 ++ ++/* ++ * Create a kernel thread ++ */ ++extern void kernel_thread_helper(void); ++int asm_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags, pid_t pid) ++{ ++ struct pt_regs regs; ++ ++ memset(®s, 0, sizeof(regs)); ++ ++ regs.ebx = (unsigned long) fn; ++ regs.edx = (unsigned long) arg; ++ ++ regs.xds = __USER_DS; ++ regs.xes = __USER_DS; ++ regs.xfs = __KERNEL_PERCPU; ++ regs.orig_eax = -1; ++ regs.eip = (unsigned long) kernel_thread_helper; ++ regs.xcs = __KERNEL_CS | get_kernel_rpl(); ++ regs.eflags = X86_EFLAGS_IF | X86_EFLAGS_SF | X86_EFLAGS_PF | 0x2; ++ ++ /* Ok, create the new process.. */ ++ return do_fork_pid(flags | CLONE_UNTRACED, 0, ®s, 0, NULL, NULL, pid); ++} ++#endif ++ ++#ifdef CONFIG_IA64 ++pid_t ++asm_kernel_thread (int (*fn)(void *), void *arg, unsigned long flags, pid_t pid) ++{ ++ extern void start_kernel_thread (void); ++ unsigned long *helper_fptr = (unsigned long *) &start_kernel_thread; ++ struct { ++ struct switch_stack sw; ++ struct pt_regs pt; ++ } regs; ++ ++ memset(®s, 0, sizeof(regs)); ++ regs.pt.cr_iip = helper_fptr[0]; /* set entry point (IP) */ ++ regs.pt.r1 = helper_fptr[1]; /* set GP */ ++ regs.pt.r9 = (unsigned long) fn; /* 1st argument */ ++ regs.pt.r11 = (unsigned long) arg; /* 2nd argument */ ++ /* Preserve PSR bits, except for bits 32-34 and 37-45, which we can't read. */ ++ regs.pt.cr_ipsr = ia64_getreg(_IA64_REG_PSR) | IA64_PSR_BN; ++ regs.pt.cr_ifs = 1UL << 63; /* mark as valid, empty frame */ ++ regs.sw.ar_fpsr = regs.pt.ar_fpsr = ia64_getreg(_IA64_REG_AR_FPSR); ++ regs.sw.ar_bspstore = (unsigned long) current + IA64_RBS_OFFSET; ++ regs.sw.pr = (1 << 2 /*PRED_KERNEL_STACK*/); ++ return do_fork_pid(flags | CLONE_UNTRACED, 0, ®s.pt, 0, NULL, NULL, pid); ++} ++#endif ++ ++int local_kernel_thread(int (*fn)(void *), void * arg, unsigned long flags, pid_t pid) ++{ ++ pid_t ret; ++ ++ if (current->fs == NULL) { ++ /* do_fork_pid() hates processes without fs, oopses. */ ++ printk("CPT BUG: local_kernel_thread: current->fs==NULL\n"); ++ return -EINVAL; ++ } ++ if (!try_module_get(THIS_MODULE)) ++ return -EBUSY; ++ ret = asm_kernel_thread(fn, arg, flags, pid); ++ if (ret < 0) ++ module_put(THIS_MODULE); ++ return ret; ++} ++ ++#ifdef __i386__ ++int __execve(const char *file, char **argv, char **envp) ++{ ++ long res; ++ __asm__ volatile ("int $0x80" ++ : "=a" (res) ++ : "0" (__NR_execve),"b" ((long)(file)),"c" ((long)(argv)), ++ "d" ((long)(envp)) : "memory"); ++ return (int)res; ++} ++#endif ++ ++int sc_execve(char *cmd, char **argv, char **env) ++{ ++ int ret; ++#ifndef __i386__ ++ ret = kernel_execve(cmd, argv, env); ++#else ++ ret = __execve(cmd, argv, env); ++#endif ++ return ret; ++} ++ ++unsigned int test_cpu_caps(void) ++{ ++ unsigned int flags = 0; ++ ++#ifdef CONFIG_X86 ++ if (boot_cpu_has(X86_FEATURE_CMOV)) ++ flags |= 1 << CPT_CPU_X86_CMOV; ++ if (cpu_has_fxsr) ++ flags |= 1 << CPT_CPU_X86_FXSR; ++ if (cpu_has_xmm) ++ flags |= 1 << CPT_CPU_X86_SSE; ++#ifndef CONFIG_X86_64 ++ if (cpu_has_xmm2) ++#endif ++ flags |= 1 << CPT_CPU_X86_SSE2; ++ if (cpu_has_mmx) ++ flags |= 1 << CPT_CPU_X86_MMX; ++ if (boot_cpu_has(X86_FEATURE_3DNOW)) ++ flags |= 1 << CPT_CPU_X86_3DNOW; ++ if (boot_cpu_has(X86_FEATURE_3DNOWEXT)) ++ flags |= 1 << CPT_CPU_X86_3DNOW2; ++ if (boot_cpu_has(X86_FEATURE_SYSCALL)) ++ flags |= 1 << CPT_CPU_X86_SYSCALL; ++#ifdef CONFIG_X86_64 ++ if (boot_cpu_has(X86_FEATURE_SYSCALL) && ++ boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) ++ flags |= 1 << CPT_CPU_X86_SYSCALL32; ++#endif ++ if (boot_cpu_has(X86_FEATURE_SEP) ++#ifdef CONFIG_X86_64 ++ && boot_cpu_data.x86_vendor == X86_VENDOR_INTEL ++#endif ++ ) ++ flags |= ((1 << CPT_CPU_X86_SEP) | (1 << CPT_CPU_X86_SEP32)); ++#ifdef CONFIG_X86_64 ++ flags |= 1 << CPT_CPU_X86_EMT64; ++#endif ++#endif ++#ifdef CONFIG_IA64 ++ flags |= 1 << CPT_CPU_X86_IA64; ++ flags |= 1 << CPT_CPU_X86_FXSR; ++#endif ++ return flags; ++} ++ ++unsigned int test_kernel_config(void) ++{ ++ unsigned int flags = 0; ++#ifdef CONFIG_X86 ++#if defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64) ++ flags |= 1 << CPT_KERNEL_CONFIG_PAE; ++#endif ++#endif ++ return flags; ++} +Index: kernel/kernel/cpt/cpt_kernel.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_kernel.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,95 @@ ++/* Interface to kernel vars which we had to _add_. */ ++ ++#define PRIO_TO_NICE(prio) ((prio) - MAX_RT_PRIO - 20) ++ ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) ++#define TASK_TRACED TASK_STOPPED ++#define unix_peer(sk) ((sk)->sk_pair) ++#define page_mapcount(pg) ((pg)->mapcount) ++#else ++#define unix_peer(sk) (unix_sk(sk)->peer) ++#endif ++ ++#ifdef CONFIG_IA64 ++#define cpu_has_fxsr 1 ++#endif ++ ++#define CPT_SIG_IGNORE_MASK (\ ++ (1 << (SIGCONT - 1)) | (1 << (SIGCHLD - 1)) | \ ++ (1 << (SIGWINCH - 1)) | (1 << (SIGURG - 1))) ++ ++static inline void do_gettimespec(struct timespec *ts) ++{ ++ struct timeval tv; ++ do_gettimeofday(&tv); ++ ts->tv_sec = tv.tv_sec; ++ ts->tv_nsec = tv.tv_usec*1000; ++} ++ ++int local_kernel_thread(int (*fn)(void *), ++ void * arg, ++ unsigned long flags, ++ pid_t pid); ++int asm_kernel_thread(int (*fn)(void *), ++ void * arg, ++ unsigned long flags, ++ pid_t pid); ++ ++#if defined(CONFIG_VZFS_FS) || defined(CONFIG_VZFS_FS_MODULE) ++void vefs_track_force_stop(struct super_block *super); ++ ++void vefs_track_notify(struct dentry *vdentry, int track_cow); ++ ++struct dentry * vefs_replaced_dentry(struct dentry *de); ++int vefs_is_renamed_dentry(struct dentry *vde, struct dentry *pde); ++#else ++static inline void vefs_track_force_stop(struct super_block *super) { }; ++ ++static inline void vefs_track_notify(struct dentry *vdentry, int track_cow) { }; ++#endif ++ ++unsigned int test_cpu_caps(void); ++unsigned int test_kernel_config(void); ++ ++#define test_one_flag_old(src, dst, flag, message, ret) \ ++if (src & (1 << flag)) \ ++ if (!(dst & (1 << flag))) { \ ++ wprintk("Destination cpu does not have " message "\n"); \ ++ ret = 1; \ ++ } ++#define test_one_flag(src, dst, flag, message, ret) \ ++if (src & (1 << flag)) \ ++ if (!(dst & (1 << flag))) { \ ++ eprintk_ctx("Destination cpu does not have " message "\n"); \ ++ ret = 1; \ ++ } ++ ++static inline void ++_set_normalized_timespec(struct timespec *ts, time_t sec, long nsec) ++{ ++ while (nsec >= NSEC_PER_SEC) { ++ nsec -= NSEC_PER_SEC; ++ ++sec; ++ } ++ while (nsec < 0) { ++ nsec += NSEC_PER_SEC; ++ --sec; ++ } ++ ts->tv_sec = sec; ++ ts->tv_nsec = nsec; ++} ++ ++static inline struct timespec ++_ns_to_timespec(const s64 nsec) ++{ ++ struct timespec ts; ++ ++ if (!nsec) ++ return (struct timespec) {0, 0}; ++ ++ ts.tv_sec = div_long_long_rem_signed(nsec, NSEC_PER_SEC, &ts.tv_nsec); ++ if (unlikely(nsec < 0)) ++ _set_normalized_timespec(&ts, ts.tv_sec, ts.tv_nsec); ++ ++ return ts; ++} +Index: kernel/kernel/cpt/cpt_mm.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_mm.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,915 @@ ++/* ++ * ++ * kernel/cpt/cpt_mm.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_X86 ++#include ++#endif ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_kernel.h" ++#include "cpt_fsmagic.h" ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++#include "cpt_pagein.h" ++#endif ++#include "cpt_ubc.h" ++ ++static int collect_one_aio_ctx(struct mm_struct *mm, struct kioctx *aio_ctx, ++ cpt_context_t *ctx) ++{ ++ if (!list_empty(&aio_ctx->run_list)) { ++ /* This is impossible at least with kernel 2.6.8.1 or 2.6.16 */ ++ eprintk_ctx("run list is not empty, cannot suspend AIO\n"); ++ return -EBUSY; ++ } ++ ++ /* Wait for pending IOCBs. Linux AIO is mostly _fake_. ++ * It is actually synchronous, except for direct IO and ++ * some funny raw USB things, which cannot happen inside VE. ++ * However, we do this for future. ++ * ++ * Later note: in 2.6.16 we may allow O_DIRECT, so that ++ * it is not meaningless code. ++ */ ++ wait_for_all_aios(aio_ctx); ++ ++ if (!list_empty(&aio_ctx->run_list) || ++ !list_empty(&aio_ctx->active_reqs) || ++ aio_ctx->reqs_active) { ++ eprintk_ctx("were not able to suspend AIO\n"); ++ return -EBUSY; ++ } ++ ++ return 0; ++} ++ ++static int collect_one_mm(struct mm_struct *mm, cpt_context_t * ctx) ++{ ++ struct vm_area_struct *vma; ++ ++ for (vma = mm->mmap; vma; vma = vma->vm_next) { ++ if (vma->vm_file) { ++ if (cpt_object_add(CPT_OBJ_FILE, vma->vm_file, ctx) == NULL) ++ return -ENOMEM; ++ } ++ } ++#ifdef CONFIG_BEANCOUNTERS ++ if (cpt_add_ubc(mm->mm_ub, ctx) == NULL) ++ return -ENOMEM; ++#endif ++ ++ if (mm->ioctx_list) { ++ struct kioctx *aio_ctx; ++ int err; ++ ++ for (aio_ctx = mm->ioctx_list; aio_ctx; aio_ctx = aio_ctx->next) ++ if ((err = collect_one_aio_ctx(mm, aio_ctx, ctx)) != 0) ++ return err; ++ } ++ ++ return 0; ++} ++ ++int cpt_collect_mm(cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ int err; ++ int index; ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ if (tsk->mm && cpt_object_add(CPT_OBJ_MM, tsk->mm, ctx) == NULL) ++ return -ENOMEM; ++ } ++ ++ index = 1; ++ for_each_object(obj, CPT_OBJ_MM) { ++ struct mm_struct *mm = obj->o_obj; ++ if (obj->o_count != atomic_read(&mm->mm_users)) { ++ eprintk_ctx("mm_struct is referenced outside %d %d\n", obj->o_count, atomic_read(&mm->mm_users)); ++ return -EAGAIN; ++ } ++ cpt_obj_setindex(obj, index++, ctx); ++ ++ if ((err = collect_one_mm(mm, ctx)) != 0) ++ return err; ++ } ++ ++ return 0; ++} ++ ++static int zcnt, scnt, scnt0, ucnt; ++ ++/* Function where_is_anon_page() returns address of a anonymous page in mm ++ * of already dumped process. This happens f.e. after fork(). We do not use ++ * this right now, just keep statistics, it is diffucult to restore such state, ++ * but the most direct use is to save space in dumped image. */ ++ ++ ++static inline unsigned long ++vma_address0(struct page *page, struct vm_area_struct *vma) ++{ ++ pgoff_t pgoff = page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT); ++ unsigned long address; ++ ++ address = vma->vm_start + ((pgoff - vma->vm_pgoff) << PAGE_SHIFT); ++ if (unlikely(address < vma->vm_start || address >= vma->vm_end)) ++ address |= 1; ++ return address; ++} ++ ++static int really_this_one(struct vm_area_struct *vma, unsigned long address, ++ struct page *page) ++{ ++ struct mm_struct *mm = vma->vm_mm; ++ pgd_t *pgd; ++ pud_t *pud; ++ pmd_t *pmd; ++ pte_t *pte; ++ spinlock_t *ptl; ++ int result; ++ ++ pgd = pgd_offset(mm, address); ++ if (unlikely(!pgd_present(*pgd))) ++ return 0; ++ ++ pud = pud_offset(pgd, address); ++ if (!pud_present(*pud)) ++ return 0; ++ ++ pmd = pmd_offset(pud, address); ++ if (unlikely(!pmd_present(*pmd))) ++ return 0; ++ ++ result = 0; ++ pte = pte_offset_map(pmd, address); ++ if (!pte_present(*pte)) { ++ pte_unmap(pte); ++ return 0; ++ } ++ ++ ptl = pte_lockptr(mm, pmd); ++ spin_lock(ptl); ++ if (pte_present(*pte) && page_to_pfn(page) == pte_pfn(*pte)) ++ result = 1; ++ pte_unmap_unlock(pte, ptl); ++ return result; ++} ++ ++static loff_t where_is_anon_page(cpt_object_t *mmobj, unsigned long mapaddr, ++ struct page *page, cpt_context_t * ctx) ++{ ++ loff_t mmptr = CPT_NULL; ++ struct anon_vma *anon_vma; ++ struct vm_area_struct *vma; ++ int idx = mmobj->o_index; ++ ++ if (!PageAnon(page)) ++ return CPT_NULL; ++ ++ anon_vma = page_lock_anon_vma(page); ++ if (!anon_vma) ++ return CPT_NULL; ++ ++ list_for_each_entry(vma, &anon_vma->head, anon_vma_node) { ++ unsigned long addr = vma_address0(page, vma); ++ cpt_object_t *obj; ++ ++ /* We do not try to support mremapped regions (addr != mapaddr), ++ * only mmaps directly inherited via fork(). ++ * With this limitation we may check self-consistency of ++ * vmas (vm_start, vm_pgoff, anon_vma) before ++ * doing __copy_page_range() in rst_mm. ++ */ ++ if (mmobj->o_obj != vma->vm_mm && addr == mapaddr) { ++ obj = lookup_cpt_object(CPT_OBJ_MM, vma->vm_mm, ctx); ++ if (obj && obj->o_pos != CPT_NULL && obj->o_index < idx) { ++ if (really_this_one(vma, addr, page)) { ++ mmptr = obj->o_pos; ++ idx = obj->o_index; ++ } ++ } ++ } ++ } ++ page_unlock_anon_vma(anon_vma); ++ ++ return mmptr; ++} ++ ++struct page_area ++{ ++ int type; ++ unsigned long start; ++ unsigned long end; ++ pgoff_t pgoff; ++ loff_t mm; ++ __u64 list[16]; ++}; ++ ++struct page_desc ++{ ++ int type; ++ pgoff_t index; ++ loff_t mm; ++ int shared; ++}; ++ ++enum { ++ PD_ABSENT, ++ PD_COPY, ++ PD_ZERO, ++ PD_CLONE, ++ PD_FUNKEY, ++ PD_LAZY, ++ PD_ITER, ++ PD_ITERYOUNG, ++}; ++ ++/* 0: page can be obtained from backstore, or still not mapped anonymous page, ++ or something else, which does not requre copy. ++ 1: page requires copy ++ 2: page requres copy but its content is zero. Quite useless. ++ 3: wp page is shared after fork(). It is to be COWed when modified. ++ 4: page is something unsupported... We copy it right now. ++ */ ++ ++ ++ ++static void page_get_desc(cpt_object_t *mmobj, ++ struct vm_area_struct *vma, unsigned long addr, ++ struct page_desc *pdesc, cpt_context_t * ctx) ++{ ++ struct mm_struct *mm = vma->vm_mm; ++ pgd_t *pgd; ++ pud_t *pud; ++ pmd_t *pmd; ++ pte_t *ptep, pte; ++ spinlock_t *ptl; ++ struct page *pg = NULL; ++ pgoff_t linear_index = (addr - vma->vm_start)/PAGE_SIZE + vma->vm_pgoff; ++ ++ pdesc->index = linear_index; ++ pdesc->shared = 0; ++ pdesc->mm = CPT_NULL; ++ ++ if (vma->vm_flags & VM_IO) { ++ pdesc->type = PD_ABSENT; ++ return; ++ } ++ ++ pgd = pgd_offset(mm, addr); ++ if (pgd_none(*pgd) || unlikely(pgd_bad(*pgd))) ++ goto out_absent; ++ pud = pud_offset(pgd, addr); ++ if (pud_none(*pud) || unlikely(pud_bad(*pud))) ++ goto out_absent; ++ pmd = pmd_offset(pud, addr); ++ if (pmd_none(*pmd) || unlikely(pmd_bad(*pmd))) ++ goto out_absent; ++#ifdef CONFIG_X86 ++ if (pmd_huge(*pmd)) { ++ eprintk_ctx("page_huge\n"); ++ goto out_unsupported; ++ } ++#endif ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++retry: ++#endif ++ ptep = pte_offset_map_lock(mm, pmd, addr, &ptl); ++ pte = *ptep; ++ pte_unmap(ptep); ++ ++ if (pte_none(pte)) ++ goto out_absent_unlock; ++ ++ if (!pte_present(pte)) { ++ if (pte_file(pte)) { ++ pdesc->index = pte_to_pgoff(pte); ++ goto out_absent_unlock; ++ } ++ if (vma->vm_flags & VM_SHARED) { ++ /* It is impossible: shared mappings cannot be in swap */ ++ eprintk_ctx("shared mapping is not present: %08lx@%Ld\n", addr, mmobj->o_pos); ++ goto out_unsupported_unlock; ++ } ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ /* Otherwise it is in swap. */ ++ if (!ctx->lazy_vm) { ++ int err; ++ /* If lazy transfer is not enabled, ++ * raise it from swap now, so that we ++ * save at least when the page is shared. ++ */ ++ spin_unlock(ptl); ++ err = handle_mm_fault(mm, vma, addr, 0); ++ if (err == VM_FAULT_SIGBUS) ++ goto out_absent; ++ if (err == VM_FAULT_OOM) ++ goto out_absent; ++ err = 0; ++ goto retry; ++ } ++#endif ++ pdesc->type = PD_LAZY; ++ goto out_unlock; ++ } ++ ++ if ((pg = vm_normal_page(vma, addr, pte)) == NULL) { ++ pdesc->type = PD_COPY; ++ goto out_unlock; ++ } ++ ++ get_page(pg); ++ spin_unlock(ptl); ++ ++ if (pg->mapping && !PageAnon(pg)) { ++ if (vma->vm_file == NULL) { ++ eprintk_ctx("pg->mapping!=NULL for fileless vma: %08lx\n", addr); ++ goto out_unsupported; ++ } ++ if (vma->vm_file->f_mapping != pg->mapping) { ++ eprintk_ctx("pg->mapping!=f_mapping: %08lx %p %p %Ld\n", ++ addr, vma->vm_file->f_mapping, pg->mapping, ++ mmobj->o_pos); ++ goto out_unsupported; ++ } ++ pdesc->index = (pg->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT)); ++ /* Page is in backstore. For us it is like ++ * it is not present. ++ */ ++ goto out_absent; ++ } ++ ++ if (PageReserved(pg)) { ++ /* Special case: ZERO_PAGE is used, when an ++ * anonymous page is accessed but not written. */ ++ if (pg == ZERO_PAGE(addr)) { ++ if (pte_write(pte)) { ++ eprintk_ctx("not funny already, writable ZERO_PAGE\n"); ++ goto out_unsupported; ++ } ++ zcnt++; ++ goto out_absent; ++ } ++ eprintk_ctx("reserved page %lu at %08lx@%Ld\n", pg->index, ++ addr, mmobj->o_pos); ++ goto out_unsupported; ++ } ++ ++ if (pg == ZERO_PAGE(addr)) { ++ wprintk_ctx("that's how it works now\n"); ++ } ++ ++ if (!pg->mapping) { ++ eprintk_ctx("page without mapping at %08lx@%Ld\n", addr, ++ mmobj->o_pos); ++ goto out_unsupported; ++ } ++ ++ if (pg->mapping && page_mapcount(pg) > 1) { ++ pdesc->shared = 1; ++ pdesc->mm = where_is_anon_page(mmobj, addr, pg, ctx); ++ if (pdesc->mm != CPT_NULL) { ++ scnt0++; ++ pdesc->type = PD_CLONE; ++ goto out_put; ++ } else { ++ scnt++; ++ } ++ } ++#ifdef CONFIG_VZ_CHECKPOINT_ITER ++ if (ctx->iter_done && ++ test_bit(PG_checkpointed, &pg->flags)) { ++ if (pte_write(pte)) { ++ wprintk_ctx("writable PG_checkpointed page\n"); ++ } ++ pdesc->index = page_to_pfn(pg); ++ pdesc->type = pte_young(pte) ? PD_ITERYOUNG : PD_ITER; ++ goto out_put; ++ } ++#endif ++ pdesc->type = pte_young(pte) ? PD_COPY : PD_LAZY; ++ ++out_put: ++ if (pg) ++ put_page(pg); ++ return; ++ ++out_unlock: ++ spin_unlock(ptl); ++ goto out_put; ++ ++out_absent_unlock: ++ spin_unlock(ptl); ++out_absent: ++ pdesc->type = PD_ABSENT; ++ goto out_put; ++ ++out_unsupported_unlock: ++ spin_unlock(ptl); ++out_unsupported: ++ ucnt++; ++ pdesc->type = PD_FUNKEY; ++ goto out_put; ++} ++ ++/* ATTN: We give "current" to get_user_pages(). This is wrong, but get_user_pages() ++ * does not really need this thing. It just stores some page fault stats there. ++ * ++ * BUG: some archs (f.e. sparc64, but not Intel*) require flush cache pages ++ * before accessing vma. ++ */ ++void dump_pages(struct vm_area_struct *vma, unsigned long start, ++ unsigned long end, struct cpt_context *ctx) ++{ ++#define MAX_PAGE_BATCH 16 ++ struct page *pg[MAX_PAGE_BATCH]; ++ int npages = (end - start)/PAGE_SIZE; ++ int count = 0; ++ ++ while (count < npages) { ++ int copy = npages - count; ++ int n; ++ ++ if (copy > MAX_PAGE_BATCH) ++ copy = MAX_PAGE_BATCH; ++ n = get_user_pages(current, vma->vm_mm, start, copy, ++ 0, 1, pg, NULL); ++ if (n == copy) { ++ int i; ++ for (i=0; iwrite(maddr, PAGE_SIZE, ctx); ++ kunmap(pg[i]); ++ } ++ } else { ++ eprintk_ctx("get_user_pages fault"); ++ for ( ; n > 0; n--) ++ page_cache_release(pg[n-1]); ++ return; ++ } ++ start += n*PAGE_SIZE; ++ count += n; ++ for ( ; n > 0; n--) ++ page_cache_release(pg[n-1]); ++ } ++ return; ++} ++ ++int dump_page_block(struct vm_area_struct *vma, struct cpt_page_block *pgb, ++ int copy, ++ struct cpt_context *ctx) ++{ ++ loff_t saved_object; ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ pgb->cpt_object = (copy != PD_LAZY) ? CPT_OBJ_PAGES : CPT_OBJ_LAZYPAGES; ++ pgb->cpt_hdrlen = sizeof(*pgb); ++ pgb->cpt_content = (copy == PD_COPY || copy == PD_LAZY) ? CPT_CONTENT_DATA : CPT_CONTENT_VOID; ++ ++ ctx->write(pgb, sizeof(*pgb), ctx); ++ if (copy == PD_COPY || copy == PD_LAZY) ++ dump_pages(vma, pgb->cpt_start, pgb->cpt_end, ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_object, ctx); ++ return 0; ++} ++ ++int dump_remappage_block(struct vm_area_struct *vma, struct page_area *pa, ++ struct cpt_context *ctx) ++{ ++ struct cpt_remappage_block pgb; ++ loff_t saved_object; ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ pgb.cpt_object = CPT_OBJ_REMAPPAGES; ++ pgb.cpt_hdrlen = sizeof(pgb); ++ pgb.cpt_content = CPT_CONTENT_VOID; ++ pgb.cpt_start = pa->start; ++ pgb.cpt_end = pa->end; ++ pgb.cpt_pgoff = pa->pgoff - (pa->end-pa->start)/PAGE_SIZE + 1; ++ ++ ctx->write(&pgb, sizeof(pgb), ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_object, ctx); ++ return 0; ++} ++ ++int dump_copypage_block(struct vm_area_struct *vma, struct page_area *pa, ++ struct cpt_context *ctx) ++{ ++ struct cpt_copypage_block pgb; ++ loff_t saved_object; ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ pgb.cpt_object = CPT_OBJ_COPYPAGES; ++ pgb.cpt_hdrlen = sizeof(pgb); ++ pgb.cpt_content = CPT_CONTENT_VOID; ++ pgb.cpt_start = pa->start; ++ pgb.cpt_end = pa->end; ++ pgb.cpt_source = pa->mm; ++ ++ ctx->write(&pgb, sizeof(pgb), ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_object, ctx); ++ return 0; ++} ++ ++int dump_lazypage_block(struct vm_area_struct *vma, struct page_area *pa, ++ cpt_context_t *ctx) ++{ ++ struct cpt_lazypage_block pgb; ++ loff_t saved_object; ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ pgb.cpt_object = CPT_OBJ_LAZYPAGES; ++ pgb.cpt_hdrlen = sizeof(pgb); ++ pgb.cpt_content = CPT_CONTENT_VOID; ++ pgb.cpt_start = pa->start; ++ pgb.cpt_end = pa->end; ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ pgb.cpt_index = cpt_alloc_pgin_index(vma, pa->start, ++ (pa->end-pa->start)/PAGE_SIZE, ctx); ++#endif ++ ctx->write(&pgb, sizeof(pgb), ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_object, ctx); ++ return 0; ++} ++ ++int dump_iterpage_block(struct vm_area_struct *vma, struct page_area *pa, ++ cpt_context_t *ctx) ++{ ++ struct cpt_iterpage_block pgb; ++ loff_t saved_object; ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ pgb.cpt_object = pa->type == PD_ITER ? CPT_OBJ_ITERPAGES : ++ CPT_OBJ_ITERYOUNGPAGES; ++ pgb.cpt_hdrlen = sizeof(pgb); ++ pgb.cpt_content = CPT_CONTENT_VOID; ++ pgb.cpt_start = pa->start; ++ pgb.cpt_end = pa->end; ++ ctx->write(&pgb, sizeof(pgb), ctx); ++ ++ ctx->write(pa->list, 8*((pa->end-pa->start)/PAGE_SIZE), ctx); ++ ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_object, ctx); ++ return 0; ++} ++ ++ ++static int can_expand(struct page_area *pa, struct page_desc *pd) ++{ ++ if (pa->start == pa->end) ++ return 1; ++ if (pa->type != pd->type) ++ return 0; ++ if (pa->type == PD_ITER || pa->type == PD_ITERYOUNG) { ++ if (pa->end - pa->start >= PAGE_SIZE*16) ++ return 0; ++ pa->list[(pa->end - pa->start)/PAGE_SIZE] = pd->index; ++ } ++ if (pa->type == PD_ABSENT) ++ return pd->index == pa->pgoff + 1; ++ if (pa->type == PD_CLONE) ++ return pd->mm == pa->mm; ++ return 1; ++} ++ ++static int dump_one_vma(cpt_object_t *mmobj, ++ struct vm_area_struct *vma, struct cpt_context *ctx) ++{ ++ struct cpt_vma_image *v = cpt_get_buf(ctx); ++ unsigned long addr; ++ loff_t saved_object; ++ struct cpt_page_block pgb; ++ struct page_area pa; ++ int cloned_pages = 0; ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ v->cpt_object = CPT_OBJ_VMA; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_start = vma->vm_start; ++ v->cpt_end = vma->vm_end; ++ v->cpt_flags = vma->vm_flags; ++ if (vma->vm_flags&VM_HUGETLB) { ++ eprintk_ctx("huge TLB VMAs are still not supported\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ v->cpt_pgprot = vma->vm_page_prot.pgprot; ++ v->cpt_pgoff = vma->vm_pgoff; ++ v->cpt_file = CPT_NULL; ++#ifndef CONFIG_IA64 ++ if ((void *)vma->vm_start == vma->vm_mm->context.vdso && ++ vma->vm_ops == &special_mapping_vmops) ++ v->cpt_type = CPT_VMA_VDSO; ++ else ++#endif ++ v->cpt_type = CPT_VMA_TYPE_0; ++ v->cpt_anonvma = 0; ++ ++ /* We have to remember what VMAs are bound to one anon_vma. ++ * So, we store an identifier of group of VMAs. It is handy ++ * to use absolute address of anon_vma as this identifier. */ ++ v->cpt_anonvmaid = (unsigned long)vma->anon_vma; ++ ++ if (vma->vm_file) { ++ struct file *filp; ++ cpt_object_t *obj = lookup_cpt_object(CPT_OBJ_FILE, vma->vm_file, ctx); ++ if (obj == NULL) BUG(); ++ filp = obj->o_obj; ++ if (filp->f_op && ++ filp->f_op->read == NULL && ++ filp->f_dentry->d_inode->i_sb->s_magic == FSMAGIC_TMPFS) ++ v->cpt_type = CPT_VMA_TYPE_SHM; ++ v->cpt_file = obj->o_pos; ++ } ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ if (v->cpt_type == CPT_VMA_VDSO) ++ goto out; ++ ++ pa.type = PD_ABSENT; ++ pa.pgoff = vma->vm_pgoff; ++ pa.mm = CPT_NULL; ++ pa.start = vma->vm_start; ++ pa.end = vma->vm_start; ++ ++ for (addr = vma->vm_start; addr < vma->vm_end; addr += PAGE_SIZE) { ++ struct page_desc pd; ++ ++ page_get_desc(mmobj, vma, addr, &pd, ctx); ++ cloned_pages += pd.shared; ++ ++ if (pd.type == PD_FUNKEY) { ++ eprintk_ctx("dump_one_vma: funkey page\n"); ++ return -EINVAL; ++ } ++ ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ if (pd.type == PD_LAZY && ++ (ctx->lazy_vm == 0 || (vma->vm_flags&VM_LOCKED))) ++ pd.type = PD_COPY; ++#else ++ if (pd.type == PD_LAZY) ++ pd.type = PD_COPY; ++#endif ++ ++ if (!can_expand(&pa, &pd)) { ++ if (pa.type == PD_COPY || ++ pa.type == PD_ZERO) { ++ pgb.cpt_start = pa.start; ++ pgb.cpt_end = pa.end; ++ dump_page_block(vma, &pgb, pa.type, ctx); ++ } else if (pa.type == PD_CLONE) { ++ dump_copypage_block(vma, &pa, ctx); ++ cloned_pages++; ++ } else if (pa.type == PD_LAZY) { ++ dump_lazypage_block(vma, &pa, ctx); ++ } else if (pa.type == PD_ITER || pa.type == PD_ITERYOUNG) { ++ dump_iterpage_block(vma, &pa, ctx); ++ cloned_pages++; ++ } else if (pa.type == PD_ABSENT && ++ pa.pgoff != (pa.end - vma->vm_start)/PAGE_SIZE + vma->vm_pgoff - 1) { ++ dump_remappage_block(vma, &pa, ctx); ++ } ++ pa.start = addr; ++ } ++ pa.type = pd.type; ++ pa.end = addr + PAGE_SIZE; ++ pa.pgoff = pd.index; ++ if (addr == pa.start) ++ pa.list[0] = pd.index; ++ pa.mm = pd.mm; ++ } ++ ++ if (pa.end > pa.start) { ++ if (pa.type == PD_COPY || ++ pa.type == PD_ZERO) { ++ pgb.cpt_start = pa.start; ++ pgb.cpt_end = pa.end; ++ dump_page_block(vma, &pgb, pa.type, ctx); ++ } else if (pa.type == PD_CLONE) { ++ dump_copypage_block(vma, &pa, ctx); ++ cloned_pages++; ++ } else if (pa.type == PD_LAZY) { ++ dump_lazypage_block(vma, &pa, ctx); ++ } else if (pa.type == PD_ITER || pa.type == PD_ITERYOUNG) { ++ dump_iterpage_block(vma, &pa, ctx); ++ cloned_pages++; ++ } else if (pa.type == PD_ABSENT && ++ pa.pgoff != (pa.end - vma->vm_start)/PAGE_SIZE + vma->vm_pgoff - 1) { ++ dump_remappage_block(vma, &pa, ctx); ++ } ++ } ++ ++ if (cloned_pages) { ++ __u32 anonvma = 1; ++ loff_t anonpos = ctx->current_object + offsetof(struct cpt_vma_image, cpt_anonvma); ++ ctx->pwrite(&anonvma, 4, ctx, anonpos); ++ } ++ ++out: ++ cpt_close_object(ctx); ++ ++ cpt_pop_object(&saved_object, ctx); ++ ++ return 0; ++} ++ ++static int dump_one_aio_ctx(struct mm_struct *mm, struct kioctx *aio_ctx, ++ cpt_context_t *ctx) ++{ ++ loff_t saved_object; ++ struct cpt_aio_ctx_image aimg; ++ ++ if (!list_empty(&aio_ctx->run_list) || ++ !list_empty(&aio_ctx->active_reqs) || ++ aio_ctx->reqs_active) { ++ eprintk_ctx("AIO is active after suspend\n"); ++ return -EBUSY; ++ } ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ aimg.cpt_next = CPT_ALIGN(sizeof(aimg)); ++ aimg.cpt_object = CPT_OBJ_AIO_CONTEXT; ++ aimg.cpt_hdrlen = sizeof(aimg); ++ aimg.cpt_content = CPT_CONTENT_ARRAY; ++ ++ aimg.cpt_max_reqs = aio_ctx->max_reqs; ++ aimg.cpt_ring_pages = aio_ctx->ring_info.nr_pages; ++ aimg.cpt_nr = aio_ctx->ring_info.nr; ++ aimg.cpt_tail = aio_ctx->ring_info.tail; ++ aimg.cpt_mmap_base = aio_ctx->ring_info.mmap_base; ++ ++ ctx->write(&aimg, sizeof(aimg), ctx); ++ ++ cpt_pop_object(&saved_object, ctx); ++ return 0; ++} ++ ++static int dump_one_mm(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct mm_struct *mm = obj->o_obj; ++ struct vm_area_struct *vma; ++ struct cpt_mm_image *v = cpt_get_buf(ctx); ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_next = -1; ++ v->cpt_object = CPT_OBJ_MM; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_start_code = mm->start_code; ++ v->cpt_end_code = mm->end_code; ++ v->cpt_start_data = mm->start_data; ++ v->cpt_end_data = mm->end_data; ++ v->cpt_start_brk = mm->start_brk; ++ v->cpt_brk = mm->brk; ++ v->cpt_start_stack = mm->start_stack; ++ v->cpt_start_arg = mm->arg_start; ++ v->cpt_end_arg = mm->arg_end; ++ v->cpt_start_env = mm->env_start; ++ v->cpt_end_env = mm->env_end; ++ v->cpt_def_flags = mm->def_flags; ++#ifdef CONFIG_BEANCOUNTERS ++ v->cpt_mmub = cpt_lookup_ubc(mm->mm_ub, ctx); ++#endif ++ /* FIXME when coredump mask exceeds 8 bits */ ++ WARN_ON(mm->flags >> 8); ++ v->cpt_dumpable = mm->flags; ++ v->cpt_vps_dumpable = mm->vps_dumpable; ++ v->cpt_used_hugetlb = 0; /* not used */ ++#ifndef CONFIG_IA64 ++ v->cpt_vdso = (__u32)(unsigned long)mm->context.vdso; ++#endif ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++#ifdef CONFIG_X86 ++ if (mm->context.size) { ++ loff_t saved_object; ++ struct cpt_obj_bits b; ++ int size; ++ ++ dprintk_ctx("nontrivial LDT\n"); ++ ++ cpt_push_object(&saved_object, ctx); ++ ++ cpt_open_object(NULL, ctx); ++ b.cpt_next = CPT_NULL; ++ b.cpt_object = CPT_OBJ_BITS; ++ b.cpt_hdrlen = sizeof(b); ++ b.cpt_content = CPT_CONTENT_MM_CONTEXT; ++ b.cpt_size = mm->context.size*LDT_ENTRY_SIZE; ++ ++ ctx->write(&b, sizeof(b), ctx); ++ ++ size = mm->context.size*LDT_ENTRY_SIZE; ++ ++#if defined(CONFIG_X86_64) || defined(CONFIG_XEN) || \ ++ LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19) ++ ctx->write(mm->context.ldt, size, ctx); ++#else ++ for (i = 0; i < size; i += PAGE_SIZE) { ++ int nr = i / PAGE_SIZE, bytes; ++ char *kaddr = kmap(mm->context.ldt_pages[nr]); ++ ++ bytes = size - i; ++ if (bytes > PAGE_SIZE) ++ bytes = PAGE_SIZE; ++ ctx->write(kaddr, bytes, ctx); ++ kunmap(mm->context.ldt_pages[nr]); ++ } ++#endif ++ ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_object, ctx); ++ } ++#endif ++ ++ for (vma = mm->mmap; vma; vma = vma->vm_next) { ++ int err; ++ ++ if ((err = dump_one_vma(obj, vma, ctx)) != 0) ++ return err; ++ } ++ ++ if (mm->ioctx_list) { ++ struct kioctx *aio_ctx; ++ int err; ++ ++ for (aio_ctx = mm->ioctx_list; aio_ctx; aio_ctx = aio_ctx->next) ++ if ((err = dump_one_aio_ctx(mm, aio_ctx, ctx)) != 0) ++ return err; ++ } ++ ++ cpt_close_object(ctx); ++ ++ return 0; ++} ++ ++int cpt_dump_vm(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ scnt = scnt0 = zcnt = 0; ++ ++ cpt_open_section(ctx, CPT_SECT_MM); ++ ++ for_each_object(obj, CPT_OBJ_MM) { ++ int err; ++ ++ if ((err = dump_one_mm(obj, ctx)) != 0) ++ return err; ++ } ++ ++ cpt_close_section(ctx); ++ ++ if (scnt) ++ dprintk_ctx("cpt_dump_vm: %d shared private anon pages\n", scnt); ++ if (scnt0) ++ dprintk_ctx("cpt_dump_vm: %d anon pages are cloned\n", scnt0); ++ if (zcnt) ++ dprintk_ctx("cpt_dump_vm: %d silly pages canceled\n", zcnt); ++ return 0; ++} +Index: kernel/kernel/cpt/cpt_mm.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_mm.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,43 @@ ++int cpt_collect_mm(cpt_context_t *); ++ ++int cpt_dump_vm(struct cpt_context *ctx); ++ ++__u32 rst_mm_flag(struct cpt_task_image *ti, struct cpt_context *ctx); ++int rst_mm_basic(cpt_object_t *obj, struct cpt_task_image *ti, struct cpt_context *ctx); ++int rst_mm_complete(struct cpt_task_image *ti, struct cpt_context *ctx); ++ ++int cpt_mm_prepare(unsigned long veid); ++ ++int cpt_free_pgin_dir(struct cpt_context *); ++int cpt_start_pagein(struct cpt_context *); ++int rst_setup_pagein(struct cpt_context *); ++int rst_complete_pagein(struct cpt_context *, int); ++int rst_pageind(struct cpt_context *); ++int cpt_iteration(cpt_context_t *ctx); ++int rst_iteration(cpt_context_t *ctx); ++void rst_drop_iter_dir(cpt_context_t *ctx); ++int rst_iter(struct vm_area_struct *vma, u64 pfn, ++ unsigned long addr, cpt_context_t * ctx); ++ ++int rst_swapoff(struct cpt_context *); ++ ++#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES ++struct linux_binprm; ++extern int arch_setup_additional_pages(struct linux_binprm *bprm, int exstack, ++ unsigned long map_address); ++#endif ++ ++#ifdef CONFIG_X86_64 ++extern char *syscall32_page; ++#define vsyscall_addr syscall32_page ++#define CPT_SYSENTER_RETURN VSYSCALL32_SYSEXIT ++#elif defined(CONFIG_X86_32) ++extern void *syscall_page; ++extern struct vm_operations_struct syscall_vm_ops; ++extern void SYSENTER_RETURN; ++#define vsyscall_addr syscall_page ++#define CPT_SYSENTER_RETURN (current->mm->context.vdso + \ ++ (unsigned long)&SYSENTER_RETURN) ++#endif ++ ++extern struct vm_operations_struct special_mapping_vmops; +Index: kernel/kernel/cpt/cpt_net.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_net.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,518 @@ ++/* ++ * ++ * kernel/cpt/cpt_net.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_kernel.h" ++#include "cpt_syscalls.h" ++ ++static void cpt_dump_tuntap(struct net_device *dev, struct cpt_context * ctx) ++{ ++#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) ++ struct cpt_tuntap_image v; ++ struct tun_struct *tun; ++ cpt_object_t *obj; ++ ++ if (dev->open != tun_net_open) ++ return; ++ ++ tun = netdev_priv(dev); ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NET_TUNTAP; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_VOID; ++ ++ v.cpt_owner = tun->owner; ++ v.cpt_flags = tun->flags; ++ v.cpt_attached = tun->attached; ++ ++ if (tun->bind_file) { ++ obj = lookup_cpt_object(CPT_OBJ_FILE, tun->bind_file, ctx); ++ BUG_ON(!obj); ++ v.cpt_bindfile = obj->o_pos; ++ } ++ ++ v.cpt_if_flags = tun->if_flags; ++ BUG_ON(sizeof(v.cpt_dev_addr) != sizeof(tun->dev_addr)); ++ memcpy(v.cpt_dev_addr, tun->dev_addr, sizeof(v.cpt_dev_addr)); ++ BUG_ON(sizeof(v.cpt_chr_filter) != sizeof(tun->chr_filter)); ++ memcpy(v.cpt_chr_filter, tun->chr_filter, sizeof(v.cpt_chr_filter)); ++ BUG_ON(sizeof(v.cpt_net_filter) != sizeof(tun->net_filter)); ++ memcpy(v.cpt_net_filter, tun->net_filter, sizeof(v.cpt_net_filter)); ++ ctx->write(&v, sizeof(v), ctx); ++ cpt_close_object(ctx); ++#endif ++ return; ++} ++ ++int cpt_dump_link(struct cpt_context * ctx) ++{ ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net_device *dev; ++ ++ cpt_open_section(ctx, CPT_SECT_NET_DEVICE); ++ for_each_netdev(net, dev) { ++ struct cpt_netdev_image v; ++ loff_t saved_obj; ++ ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NET_DEVICE; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_ARRAY; ++ ++ v.cpt_index = dev->ifindex; ++ v.cpt_flags = dev->flags; ++ memcpy(v.cpt_name, dev->name, IFNAMSIZ); ++ ctx->write(&v, sizeof(v), ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_dump_tuntap(dev, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ ++ if (dev != net->loopback_dev ++#if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) ++ && !(KSYMREF(veth_open) && dev->open == KSYMREF(veth_open)) ++#endif ++#if defined(CONFIG_VE_NETDEV) || defined(CONFIG_VE_NETDEV_MODULE) ++ && dev != get_exec_env()->_venet_dev ++#endif ++#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) ++ && dev->open != tun_net_open ++#endif ++ ) { ++ eprintk_ctx("unsupported netdevice %s\n", dev->name); ++ cpt_close_section(ctx); ++ return -EBUSY; ++ } ++ } ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++int cpt_suspend_network(struct cpt_context *ctx) ++{ ++ get_exec_env()->disable_net = 1; ++ synchronize_net(); ++ return 0; ++} ++ ++int cpt_resume_network(struct cpt_context *ctx) ++{ ++ struct ve_struct *env; ++ env = get_ve_by_id(ctx->ve_id); ++ if (!env) ++ return -ESRCH; ++ env->disable_net = 0; ++ put_ve(env); ++ return 0; ++} ++ ++int cpt_dump_ifaddr(struct cpt_context * ctx) ++{ ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net_device *dev; ++ ++ cpt_open_section(ctx, CPT_SECT_NET_IFADDR); ++ for_each_netdev(net, dev) { ++ struct in_device *idev = in_dev_get(dev); ++ struct in_ifaddr *ifa; ++ ++ if (!idev) ++ continue; ++ ++ for (ifa = idev->ifa_list; ifa; ifa = ifa->ifa_next) { ++ struct cpt_ifaddr_image v; ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NET_IFADDR; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_VOID; ++ ++ v.cpt_index = dev->ifindex; ++ v.cpt_family = AF_INET; ++ v.cpt_masklen = ifa->ifa_prefixlen; ++ v.cpt_flags = ifa->ifa_flags; ++ v.cpt_scope = ifa->ifa_scope; ++ memset(&v.cpt_address, 0, sizeof(v.cpt_address)); ++ memset(&v.cpt_peer, 0, sizeof(v.cpt_peer)); ++ memset(&v.cpt_broadcast, 0, sizeof(v.cpt_broadcast)); ++ v.cpt_address[0] = ifa->ifa_local; ++ v.cpt_peer[0] = ifa->ifa_address; ++ v.cpt_broadcast[0] = ifa->ifa_broadcast; ++ memcpy(v.cpt_label, ifa->ifa_label, IFNAMSIZ); ++ ctx->write(&v, sizeof(v), ctx); ++ cpt_close_object(ctx); ++ } ++ in_dev_put(idev); ++ } ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ for_each_netdev(net, dev) { ++ struct inet6_dev *idev = in6_dev_get(dev); ++ struct inet6_ifaddr *ifa; ++ ++ if (!idev) ++ continue; ++ ++ for (ifa = idev->addr_list; ifa; ifa = ifa->if_next) { ++ struct cpt_ifaddr_image v; ++ ++ if (dev == net->loopback_dev && ++ ifa->prefix_len == 128 && ++ ifa->addr.s6_addr32[0] == 0 && ++ ifa->addr.s6_addr32[1] == 0 && ++ ifa->addr.s6_addr32[2] == 0 && ++ ifa->addr.s6_addr32[3] == htonl(1)) ++ continue; ++ ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NET_IFADDR; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_VOID; ++ ++ v.cpt_index = dev->ifindex; ++ v.cpt_family = AF_INET6; ++ v.cpt_masklen = ifa->prefix_len; ++ v.cpt_flags = ifa->flags; ++ v.cpt_scope = ifa->scope; ++ v.cpt_valid_lft = ifa->valid_lft; ++ v.cpt_prefered_lft = ifa->prefered_lft; ++ memcpy(&v.cpt_address, &ifa->addr, 16); ++ memcpy(&v.cpt_peer, &ifa->addr, 16); ++ memset(&v.cpt_broadcast, 0, sizeof(v.cpt_broadcast)); ++ memcpy(v.cpt_label, dev->name, IFNAMSIZ); ++ ctx->write(&v, sizeof(v), ctx); ++ cpt_close_object(ctx); ++ } ++ in6_dev_put(idev); ++ } ++#endif ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++static int cpt_dump_route(struct cpt_context * ctx) ++{ ++ int err; ++ struct socket *sock; ++ struct msghdr msg; ++ struct iovec iov; ++ struct { ++ struct nlmsghdr nlh; ++ struct rtgenmsg g; ++ } req; ++ struct sockaddr_nl nladdr; ++ struct cpt_object_hdr v; ++ mm_segment_t oldfs; ++ char *pg; ++ ++ err = sock_create_kern(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE, &sock); ++ if (err) ++ return err; ++ ++ memset(&nladdr, 0, sizeof(nladdr)); ++ nladdr.nl_family = AF_NETLINK; ++ ++ req.nlh.nlmsg_len = sizeof(req); ++ req.nlh.nlmsg_type = RTM_GETROUTE; ++ req.nlh.nlmsg_flags = NLM_F_ROOT|NLM_F_MATCH|NLM_F_REQUEST; ++ req.nlh.nlmsg_pid = 0; ++ req.g.rtgen_family = AF_INET; ++ ++ iov.iov_base=&req; ++ iov.iov_len=sizeof(req); ++ msg.msg_name=&nladdr; ++ msg.msg_namelen=sizeof(nladdr); ++ msg.msg_iov=&iov; ++ msg.msg_iovlen=1; ++ msg.msg_control=NULL; ++ msg.msg_controllen=0; ++ msg.msg_flags=MSG_DONTWAIT; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = sock_sendmsg(sock, &msg, sizeof(req)); ++ set_fs(oldfs); ++ ++ if (err < 0) ++ goto out_sock; ++ ++ pg = (char*)__get_free_page(GFP_KERNEL); ++ if (pg == NULL) { ++ err = -ENOMEM; ++ goto out_sock; ++ } ++ ++ cpt_open_section(ctx, CPT_SECT_NET_ROUTE); ++ cpt_open_object(NULL, ctx); ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NET_ROUTE; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_NLMARRAY; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++restart: ++#endif ++ for (;;) { ++ struct nlmsghdr *h; ++ ++ iov.iov_base = pg; ++ iov.iov_len = PAGE_SIZE; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = sock_recvmsg(sock, &msg, PAGE_SIZE, MSG_DONTWAIT); ++ set_fs(oldfs); ++ ++ if (err < 0) ++ goto out_sock_pg; ++ if (msg.msg_flags & MSG_TRUNC) { ++ err = -ENOBUFS; ++ goto out_sock_pg; ++ } ++ ++ h = (struct nlmsghdr*)pg; ++ while (NLMSG_OK(h, err)) { ++ if (h->nlmsg_type == NLMSG_DONE) { ++ err = 0; ++ goto done; ++ } ++ if (h->nlmsg_type == NLMSG_ERROR) { ++ struct nlmsgerr *errm = (struct nlmsgerr*)NLMSG_DATA(h); ++ err = errm->error; ++ eprintk_ctx("NLMSG error: %d\n", errm->error); ++ goto done; ++ } ++ if (h->nlmsg_type != RTM_NEWROUTE) { ++ eprintk_ctx("NLMSG: %d\n", h->nlmsg_type); ++ err = -EINVAL; ++ goto done; ++ } ++ ctx->write(h, NLMSG_ALIGN(h->nlmsg_len), ctx); ++ h = NLMSG_NEXT(h, err); ++ } ++ if (err) { ++ eprintk_ctx("!!!Remnant of size %d %d %d\n", err, h->nlmsg_len, h->nlmsg_type); ++ err = -EINVAL; ++ break; ++ } ++ } ++done: ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ if (!err && req.g.rtgen_family == AF_INET) { ++ req.g.rtgen_family = AF_INET6; ++ iov.iov_base=&req; ++ iov.iov_len=sizeof(req); ++ msg.msg_name=&nladdr; ++ msg.msg_namelen=sizeof(nladdr); ++ msg.msg_iov=&iov; ++ msg.msg_iovlen=1; ++ msg.msg_control=NULL; ++ msg.msg_controllen=0; ++ msg.msg_flags=MSG_DONTWAIT; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = sock_sendmsg(sock, &msg, sizeof(req)); ++ set_fs(oldfs); ++ ++ if (err > 0) ++ goto restart; ++ } ++#endif ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_close_section(ctx); ++ ++out_sock_pg: ++ free_page((unsigned long)pg); ++out_sock: ++ sock_release(sock); ++ return err; ++} ++ ++static int dumpfn(void *arg) ++{ ++ int i; ++ int *pfd = arg; ++ char *argv[] = { "iptables-save", "-c", NULL }; ++ ++ i = real_env_create(VEID(get_exec_env()), VE_ENTER|VE_SKIPLOCK, 2, NULL, 0); ++ if (i < 0) { ++ eprintk("cannot enter ve to dump iptables\n"); ++ module_put(THIS_MODULE); ++ return 255 << 8; ++ } ++ ++ if (pfd[1] != 1) ++ sc_dup2(pfd[1], 1); ++ ++ for (i=0; ifiles->fdt->max_fds; i++) { ++ if (i != 1) ++ sc_close(i); ++ } ++ ++ module_put(THIS_MODULE); ++ ++ set_fs(KERNEL_DS); ++ i = sc_execve("/sbin/iptables-save", argv, NULL); ++ if (i == -ENOENT) ++ i = sc_execve("/usr/sbin/iptables-save", argv, NULL); ++ eprintk("failed to exec iptables-save: %d\n", i); ++ return 255 << 8; ++} ++ ++ ++static int cpt_dump_iptables(struct cpt_context * ctx) ++{ ++ int err = 0; ++#ifdef CONFIG_VE_IPTABLES ++ int pid; ++ int pfd[2]; ++ struct file *f; ++ struct cpt_object_hdr v; ++ char buf[16]; ++ loff_t pos; ++ int n; ++ int status; ++ mm_segment_t oldfs; ++ sigset_t ignore, blocked; ++ ++ if (!(get_exec_env()->_iptables_modules & VE_IP_IPTABLES_MOD)) ++ return 0; ++ ++ err = sc_pipe(pfd); ++ if (err < 0) { ++ eprintk_ctx("sc_pipe: %d\n", err); ++ return err; ++ } ++ ignore.sig[0] = CPT_SIG_IGNORE_MASK; ++ sigprocmask(SIG_BLOCK, &ignore, &blocked); ++ err = pid = local_kernel_thread(dumpfn, (void*)pfd, SIGCHLD, 0); ++ if (err < 0) { ++ eprintk_ctx("local_kernel_thread: %d\n", err); ++ goto out; ++ } ++ ++ f = fget(pfd[0]); ++ sc_close(pfd[1]); ++ sc_close(pfd[0]); ++ ++ cpt_open_section(ctx, CPT_SECT_NET_IPTABLES); ++ ++ cpt_open_object(NULL, ctx); ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_NAME; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_NAME; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++ pos = ctx->file->f_pos; ++ do { ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ n = f->f_op->read(f, buf, sizeof(buf), &f->f_pos); ++ set_fs(oldfs); ++ if (n > 0) ++ ctx->write(buf, n, ctx); ++ } while (n > 0); ++ ++ if (n < 0) ++ eprintk_ctx("read: %d\n", n); ++ ++ fput(f); ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if ((err = sc_waitx(pid, 0, &status)) < 0) ++ eprintk_ctx("wait4: %d\n", err); ++ else if ((status & 0x7f) == 0) { ++ err = (status & 0xff00) >> 8; ++ if (err != 0) { ++ eprintk_ctx("iptables-save exited with %d\n", err); ++ err = -EINVAL; ++ } ++ } else { ++ eprintk_ctx("iptables-save terminated\n"); ++ err = -EINVAL; ++ } ++ set_fs(oldfs); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++ ++ if (ctx->file->f_pos != pos) { ++ buf[0] = 0; ++ ctx->write(buf, 1, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_close_section(ctx); ++ } else { ++ pos = ctx->current_section; ++ cpt_close_object(ctx); ++ cpt_close_section(ctx); ++ ctx->sections[CPT_SECT_NET_IPTABLES] = CPT_NULL; ++ ctx->file->f_pos = pos; ++ } ++ return n ? : err; ++ ++out: ++ if (pfd[1] >= 0) ++ sc_close(pfd[1]); ++ if (pfd[0] >= 0) ++ sc_close(pfd[0]); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++#endif ++ return err; ++} ++ ++int cpt_dump_ifinfo(struct cpt_context * ctx) ++{ ++ int err; ++ ++ rtnl_lock(); ++ err = cpt_dump_link(ctx); ++ if (!err) ++ err = cpt_dump_ifaddr(ctx); ++ rtnl_unlock(); ++ if (!err) ++ err = cpt_dump_route(ctx); ++ if (!err) ++ err = cpt_dump_iptables(ctx); ++ return err; ++} +Index: kernel/kernel/cpt/cpt_net.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_net.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,7 @@ ++int cpt_dump_ifinfo(struct cpt_context *ctx); ++int rst_restore_net(struct cpt_context *ctx); ++int cpt_suspend_network(struct cpt_context *ctx); ++int cpt_resume_network(struct cpt_context *ctx); ++int rst_resume_network(struct cpt_context *ctx); ++int cpt_dump_ip_conntrack(struct cpt_context *ctx); ++int rst_restore_ip_conntrack(struct cpt_context * ctx); +Index: kernel/kernel/cpt/cpt_obj.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_obj.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,162 @@ ++/* ++ * ++ * kernel/cpt/cpt_obj.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++cpt_object_t *alloc_cpt_object(int gfp, struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ obj = kmalloc(sizeof(cpt_object_t), gfp); ++ if (obj) { ++ INIT_LIST_HEAD(&obj->o_list); ++ INIT_LIST_HEAD(&obj->o_hash); ++ INIT_LIST_HEAD(&obj->o_alist); ++ obj->o_count = 1; ++ obj->o_pos = CPT_NULL; ++ obj->o_lock = 0; ++ obj->o_parent = NULL; ++ obj->o_index = CPT_NOINDEX; ++ obj->o_obj = NULL; ++ obj->o_image = NULL; ++ ctx->objcount++; ++ } ++ return obj; ++} ++ ++void free_cpt_object(cpt_object_t *obj, cpt_context_t *ctx) ++{ ++ list_del(&obj->o_alist); ++ kfree(obj); ++ ctx->objcount--; ++} ++ ++void intern_cpt_object(enum _cpt_object_type type, cpt_object_t *obj, cpt_context_t *ctx) ++{ ++ list_add_tail(&obj->o_list, &ctx->object_array[type]); ++} ++ ++void insert_cpt_object(enum _cpt_object_type type, cpt_object_t *obj, ++ cpt_object_t *head, cpt_context_t *ctx) ++{ ++ list_add(&obj->o_list, &head->o_list); ++} ++ ++cpt_object_t * __cpt_object_add(enum _cpt_object_type type, void *p, ++ unsigned gfp_mask, cpt_context_t *ctx) ++{ ++ cpt_object_t *obj; ++ ++ obj = lookup_cpt_object(type, p, ctx); ++ ++ if (obj) { ++ obj->o_count++; ++ return obj; ++ } ++ ++ if ((obj = alloc_cpt_object(gfp_mask, ctx)) != NULL) { ++ if (p) ++ cpt_obj_setobj(obj, p, ctx); ++ intern_cpt_object(type, obj, ctx); ++ return obj; ++ } ++ return NULL; ++} ++ ++cpt_object_t * cpt_object_add(enum _cpt_object_type type, void *p, cpt_context_t *ctx) ++{ ++ return __cpt_object_add(type, p, GFP_KERNEL, ctx); ++} ++ ++cpt_object_t * cpt_object_get(enum _cpt_object_type type, void *p, cpt_context_t *ctx) ++{ ++ cpt_object_t *obj; ++ ++ obj = lookup_cpt_object(type, p, ctx); ++ ++ if (obj) ++ obj->o_count++; ++ ++ return obj; ++} ++ ++int cpt_object_init(cpt_context_t *ctx) ++{ ++ int i; ++ ++ for (i=0; iobject_array[i]); ++ } ++ return 0; ++} ++ ++int cpt_object_destroy(cpt_context_t *ctx) ++{ ++ int i; ++ ++ for (i=0; iobject_array[i])) { ++ struct list_head *head = ctx->object_array[i].next; ++ cpt_object_t *obj = list_entry(head, cpt_object_t, o_list); ++ list_del(head); ++ if (obj->o_image) ++ kfree(obj->o_image); ++ free_cpt_object(obj, ctx); ++ } ++ } ++ if (ctx->objcount != 0) ++ eprintk_ctx("BUG: ctx->objcount=%d\n", ctx->objcount); ++ return 0; ++} ++ ++cpt_object_t *lookup_cpt_object(enum _cpt_object_type type, void *p, struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, type) { ++ if (obj->o_obj == p) ++ return obj; ++ } ++ return NULL; ++} ++ ++cpt_object_t *lookup_cpt_obj_bypos(enum _cpt_object_type type, loff_t pos, struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, type) { ++ if (obj->o_pos == pos) ++ return obj; ++ } ++ return NULL; ++} ++ ++cpt_object_t *lookup_cpt_obj_byindex(enum _cpt_object_type type, __u32 index, struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, type) { ++ if (obj->o_index == index) ++ return obj; ++ } ++ return NULL; ++} +Index: kernel/kernel/cpt/cpt_obj.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_obj.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,62 @@ ++#ifndef __CPT_OBJ_H_ ++#define __CPT_OBJ_H_ 1 ++ ++#include ++#include ++ ++typedef struct _cpt_object ++{ ++ struct list_head o_list; ++ struct list_head o_hash; ++ int o_count; ++ int o_index; ++ int o_lock; ++ loff_t o_pos; ++ loff_t o_ppos; ++ void *o_obj; ++ void *o_image; ++ void *o_parent; ++ struct list_head o_alist; ++} cpt_object_t; ++ ++struct cpt_context; ++ ++#define for_each_object(obj, type) list_for_each_entry(obj, &ctx->object_array[type], o_list) ++ ++ ++extern cpt_object_t *alloc_cpt_object(int gfp, struct cpt_context *ctx); ++extern void free_cpt_object(cpt_object_t *obj, struct cpt_context *ctx); ++ ++cpt_object_t *lookup_cpt_object(enum _cpt_object_type type, void *p, struct cpt_context *ctx); ++cpt_object_t *lookup_cpt_obj_bypos(enum _cpt_object_type type, loff_t pos, struct cpt_context *ctx); ++cpt_object_t *lookup_cpt_obj_byindex(enum _cpt_object_type type, __u32 index, struct cpt_context *ctx); ++ ++static inline void cpt_obj_setpos(cpt_object_t *cpt, loff_t pos, struct cpt_context *ctx) ++{ ++ cpt->o_pos = pos; ++ /* Add to pos hash table */ ++} ++ ++static inline void cpt_obj_setobj(cpt_object_t *cpt, void *ptr, struct cpt_context *ctx) ++{ ++ cpt->o_obj = ptr; ++ /* Add to hash table */ ++} ++ ++static inline void cpt_obj_setindex(cpt_object_t *cpt, __u32 index, struct cpt_context *ctx) ++{ ++ cpt->o_index = index; ++ /* Add to index hash table */ ++} ++ ++ ++extern void intern_cpt_object(enum _cpt_object_type type, cpt_object_t *obj, struct cpt_context *ctx); ++extern void insert_cpt_object(enum _cpt_object_type type, cpt_object_t *obj, cpt_object_t *head, struct cpt_context *ctx); ++extern cpt_object_t *cpt_object_add(enum _cpt_object_type type, void *p, struct cpt_context *ctx); ++extern cpt_object_t *__cpt_object_add(enum _cpt_object_type type, void *p, unsigned int gfp_mask, struct cpt_context *ctx); ++extern cpt_object_t *cpt_object_get(enum _cpt_object_type type, void *p, struct cpt_context *ctx); ++ ++extern int cpt_object_init(struct cpt_context *ctx); ++extern int cpt_object_destroy(struct cpt_context *ctx); ++ ++#endif /* __CPT_OBJ_H_ */ +Index: kernel/kernel/cpt/cpt_proc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_proc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,596 @@ ++/* ++ * ++ * kernel/cpt/cpt_proc.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_dump.h" ++#include "cpt_mm.h" ++#include "cpt_kernel.h" ++ ++MODULE_AUTHOR("Alexey Kuznetsov "); ++MODULE_LICENSE("GPL"); ++ ++/* List of contexts and lock protecting the list */ ++static struct list_head cpt_context_list; ++static spinlock_t cpt_context_lock; ++ ++static int proc_read(char *buffer, char **start, off_t offset, ++ int length, int *eof, void *data) ++{ ++ off_t pos = 0; ++ off_t begin = 0; ++ int len = 0; ++ cpt_context_t *ctx; ++ ++ len += sprintf(buffer, "Ctx Id VE State\n"); ++ ++ spin_lock(&cpt_context_lock); ++ ++ list_for_each_entry(ctx, &cpt_context_list, ctx_list) { ++ len += sprintf(buffer+len,"%p %08x %-8u %d", ++ ctx, ++ ctx->contextid, ++ ctx->ve_id, ++ ctx->ctx_state ++ ); ++ ++ buffer[len++] = '\n'; ++ ++ pos = begin+len; ++ if (pos < offset) { ++ len = 0; ++ begin = pos; ++ } ++ if (pos > offset+length) ++ goto done; ++ } ++ *eof = 1; ++ ++done: ++ spin_unlock(&cpt_context_lock); ++ *start = buffer + (offset - begin); ++ len -= (offset - begin); ++ if(len > length) ++ len = length; ++ if(len < 0) ++ len = 0; ++ return len; ++} ++ ++void cpt_context_release(cpt_context_t *ctx) ++{ ++ list_del(&ctx->ctx_list); ++ spin_unlock(&cpt_context_lock); ++ ++ if (ctx->ctx_state > 0) ++ cpt_resume(ctx); ++ ctx->ctx_state = CPT_CTX_ERROR; ++ ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ if (ctx->pgin_task) ++ put_task_struct(ctx->pgin_task); ++ if (ctx->pgin_dir) ++ cpt_free_pgin_dir(ctx); ++ if (ctx->pagein_file_out) ++ fput(ctx->pagein_file_out); ++ if (ctx->pagein_file_in) ++ fput(ctx->pagein_file_in); ++#endif ++ if (ctx->objcount) ++ eprintk_ctx("%d objects leaked\n", ctx->objcount); ++ if (ctx->file) ++ fput(ctx->file); ++ cpt_flush_error(ctx); ++ if (ctx->errorfile) { ++ fput(ctx->errorfile); ++ ctx->errorfile = NULL; ++ } ++ if (ctx->error_msg) { ++ free_page((unsigned long)ctx->error_msg); ++ ctx->error_msg = NULL; ++ } ++ if (ctx->statusfile) ++ fput(ctx->statusfile); ++ if (ctx->lockfile) ++ fput(ctx->lockfile); ++ kfree(ctx); ++ ++ spin_lock(&cpt_context_lock); ++} ++ ++static void __cpt_context_put(cpt_context_t *ctx) ++{ ++ if (!--ctx->refcount) ++ cpt_context_release(ctx); ++} ++ ++static void cpt_context_put(cpt_context_t *ctx) ++{ ++ spin_lock(&cpt_context_lock); ++ __cpt_context_put(ctx); ++ spin_unlock(&cpt_context_lock); ++} ++ ++cpt_context_t * cpt_context_open(void) ++{ ++ cpt_context_t *ctx; ++ ++ if ((ctx = kmalloc(sizeof(*ctx), GFP_KERNEL)) != NULL) { ++ cpt_context_init(ctx); ++ spin_lock(&cpt_context_lock); ++ list_add_tail(&ctx->ctx_list, &cpt_context_list); ++ spin_unlock(&cpt_context_lock); ++ ctx->error_msg = (char*)__get_free_page(GFP_KERNEL); ++ if (ctx->error_msg != NULL) ++ ctx->error_msg[0] = 0; ++ } ++ return ctx; ++} ++ ++static cpt_context_t * cpt_context_lookup(unsigned int contextid) ++{ ++ cpt_context_t *ctx; ++ ++ spin_lock(&cpt_context_lock); ++ list_for_each_entry(ctx, &cpt_context_list, ctx_list) { ++ if (ctx->contextid == contextid) { ++ ctx->refcount++; ++ spin_unlock(&cpt_context_lock); ++ return ctx; ++ } ++ } ++ spin_unlock(&cpt_context_lock); ++ return NULL; ++} ++ ++int cpt_context_lookup_veid(unsigned int veid) ++{ ++ cpt_context_t *ctx; ++ ++ spin_lock(&cpt_context_lock); ++ list_for_each_entry(ctx, &cpt_context_list, ctx_list) { ++ if (ctx->ve_id == veid && ctx->ctx_state > 0) { ++ spin_unlock(&cpt_context_lock); ++ return 1; ++ } ++ } ++ spin_unlock(&cpt_context_lock); ++ return 0; ++} ++ ++static int cpt_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg) ++{ ++ int err = 0; ++ cpt_context_t *ctx; ++ struct file *dfile = NULL; ++ int try; ++ ++ unlock_kernel(); ++ ++ if (cmd == CPT_VMPREP) { ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ err = cpt_mm_prepare(arg); ++#else ++ err = -EINVAL; ++#endif ++ goto out_lock; ++ } ++ ++ if (cmd == CPT_TEST_CAPS) { ++ unsigned int src_flags, dst_flags = arg; ++ ++ err = 0; ++ src_flags = test_cpu_caps(); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_CMOV, "cmov", err); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_FXSR, "fxsr", err); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_SSE, "sse", err); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_SSE2, "sse2", err); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_MMX, "mmx", err); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_3DNOW, "3dnow", err); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_3DNOW2, "3dnowext", err); ++ test_one_flag_old(src_flags, dst_flags, CPT_CPU_X86_SEP, "sysenter", err); ++ goto out_lock; ++ } ++ ++ if (cmd == CPT_JOIN_CONTEXT || cmd == CPT_PUT_CONTEXT) { ++ cpt_context_t *old_ctx; ++ ++ ctx = NULL; ++ if (cmd == CPT_JOIN_CONTEXT) { ++ err = -ENOENT; ++ ctx = cpt_context_lookup(arg); ++ if (!ctx) ++ goto out_lock; ++ } ++ ++ spin_lock(&cpt_context_lock); ++ old_ctx = (cpt_context_t*)file->private_data; ++ file->private_data = ctx; ++ ++ if (old_ctx) { ++ if (cmd == CPT_PUT_CONTEXT && old_ctx->sticky) { ++ old_ctx->sticky = 0; ++ old_ctx->refcount--; ++ } ++ __cpt_context_put(old_ctx); ++ } ++ spin_unlock(&cpt_context_lock); ++ err = 0; ++ goto out_lock; ++ } ++ ++ spin_lock(&cpt_context_lock); ++ ctx = (cpt_context_t*)file->private_data; ++ if (ctx) ++ ctx->refcount++; ++ spin_unlock(&cpt_context_lock); ++ ++ if (!ctx) { ++ cpt_context_t *old_ctx; ++ ++ err = -ENOMEM; ++ ctx = cpt_context_open(); ++ if (!ctx) ++ goto out_lock; ++ ++ spin_lock(&cpt_context_lock); ++ old_ctx = (cpt_context_t*)file->private_data; ++ if (!old_ctx) { ++ ctx->refcount++; ++ file->private_data = ctx; ++ } else { ++ old_ctx->refcount++; ++ } ++ if (old_ctx) { ++ __cpt_context_put(ctx); ++ ctx = old_ctx; ++ } ++ spin_unlock(&cpt_context_lock); ++ } ++ ++ if (cmd == CPT_GET_CONTEXT) { ++ unsigned int contextid = (unsigned int)arg; ++ ++ if (ctx->contextid && ctx->contextid != contextid) { ++ err = -EINVAL; ++ goto out_nosem; ++ } ++ if (!ctx->contextid) { ++ cpt_context_t *c1 = cpt_context_lookup(contextid); ++ if (c1) { ++ cpt_context_put(c1); ++ err = -EEXIST; ++ goto out_nosem; ++ } ++ ctx->contextid = contextid; ++ } ++ spin_lock(&cpt_context_lock); ++ if (!ctx->sticky) { ++ ctx->sticky = 1; ++ ctx->refcount++; ++ } ++ spin_unlock(&cpt_context_lock); ++ goto out_nosem; ++ } ++ ++ down(&ctx->main_sem); ++ ++ err = -EBUSY; ++ if (ctx->ctx_state < 0) ++ goto out; ++ ++ err = 0; ++ switch (cmd) { ++ case CPT_SET_DUMPFD: ++ if (ctx->ctx_state == CPT_CTX_DUMPING) { ++ err = -EBUSY; ++ break; ++ } ++ if (arg >= 0) { ++ err = -EBADF; ++ dfile = fget(arg); ++ if (dfile == NULL) ++ break; ++ if (dfile->f_op == NULL || ++ dfile->f_op->write == NULL) { ++ fput(dfile); ++ break; ++ } ++ err = 0; ++ } ++ if (ctx->file) ++ fput(ctx->file); ++ ctx->file = dfile; ++ break; ++ case CPT_SET_ERRORFD: ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->errorfile) ++ fput(ctx->errorfile); ++ ctx->errorfile = dfile; ++ break; ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ case CPT_SET_PAGEINFDIN: ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->pagein_file_in) ++ fput(ctx->pagein_file_in); ++ ctx->pagein_file_in = dfile; ++ break; ++ case CPT_SET_PAGEINFDOUT: ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->pagein_file_out) ++ fput(ctx->pagein_file_out); ++ ctx->pagein_file_out = dfile; ++ break; ++ case CPT_SET_LAZY: ++ ctx->lazy_vm = arg; ++ break; ++ case CPT_ITER: ++ err = cpt_iteration(ctx); ++ break; ++ case CPT_PAGEIND: ++ err = cpt_start_pagein(ctx); ++ break; ++#endif ++ case CPT_SET_VEID: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ ctx->ve_id = arg; ++ break; ++ case CPT_SET_CPU_FLAGS: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ ctx->dst_cpu_flags = arg; ++ ctx->src_cpu_flags = test_cpu_caps(); ++ break; ++ case CPT_SUSPEND: ++ if (cpt_context_lookup_veid(ctx->ve_id) || ++ ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ ctx->ctx_state = CPT_CTX_SUSPENDING; ++ try = 0; ++ do { ++ err = cpt_vps_suspend(ctx); ++ if (err) ++ cpt_resume(ctx); ++ if (err == -EAGAIN) ++ msleep(1000); ++ try++; ++ } while (err == -EAGAIN && try < 3); ++ if (err) { ++ ctx->ctx_state = CPT_CTX_IDLE; ++ } else { ++ ctx->ctx_state = CPT_CTX_SUSPENDED; ++ } ++ break; ++ case CPT_DUMP: ++ if (!ctx->ctx_state) { ++ err = -ENOENT; ++ break; ++ } ++ if (!ctx->file) { ++ err = -EBADF; ++ break; ++ } ++ err = cpt_dump(ctx); ++ break; ++ case CPT_RESUME: ++ if (ctx->ctx_state == CPT_CTX_IDLE) { ++ err = -ENOENT; ++ break; ++ } ++ err = cpt_resume(ctx); ++ if (!err) ++ ctx->ctx_state = CPT_CTX_IDLE; ++ break; ++ case CPT_KILL: ++ if (ctx->ctx_state == CPT_CTX_IDLE) { ++ err = -ENOENT; ++ break; ++ } ++ err = cpt_kill(ctx); ++ if (!err) ++ ctx->ctx_state = CPT_CTX_IDLE; ++ break; ++ case CPT_TEST_VECAPS: ++ { ++ __u32 dst_flags = arg; ++ __u32 src_flags; ++ ++ err = cpt_vps_caps(ctx, &src_flags); ++ if (err) ++ break; ++ ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_CMOV, "cmov", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_FXSR, "fxsr", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_SSE, "sse", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_SSE2, "sse2", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_MMX, "mmx", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_3DNOW, "3dnow", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_3DNOW2, "3dnowext", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_SEP, "sysenter", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_EMT64, "emt64", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_IA64, "ia64", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_SYSCALL, "syscall", err); ++ test_one_flag(src_flags, dst_flags, CPT_CPU_X86_SYSCALL32, "syscall32", err); ++ if (src_flags & CPT_UNSUPPORTED_MASK) ++ err = 2; ++ break; ++ } ++ default: ++ err = -EINVAL; ++ break; ++ } ++ ++out: ++ cpt_flush_error(ctx); ++ up(&ctx->main_sem); ++out_nosem: ++ cpt_context_put(ctx); ++out_lock: ++ lock_kernel(); ++ if (err == -ERESTARTSYS || err == -ERESTARTNOINTR || ++ err == -ERESTARTNOHAND || err == -ERESTART_RESTARTBLOCK) ++ err = -EINTR; ++ return err; ++} ++ ++static int cpt_open(struct inode *inode, struct file *file) ++{ ++ if (!try_module_get(THIS_MODULE)) ++ return -EBUSY; ++ ++ return 0; ++} ++ ++static int cpt_release(struct inode * inode, struct file * file) ++{ ++ cpt_context_t *ctx; ++ ++ spin_lock(&cpt_context_lock); ++ ctx = (cpt_context_t*)file->private_data; ++ file->private_data = NULL; ++ ++ if (ctx) ++ __cpt_context_put(ctx); ++ spin_unlock(&cpt_context_lock); ++ ++ module_put(THIS_MODULE); ++ return 0; ++} ++ ++ ++static struct file_operations cpt_fops = { ++ .owner = THIS_MODULE, ++ .open = cpt_open, ++ .release = cpt_release, ++ .ioctl = cpt_ioctl, ++}; ++ ++static struct proc_dir_entry *proc_ent; ++ ++static struct ctl_table_header *ctl_header; ++ ++static ctl_table debug_table[] = { ++ { ++ .ctl_name = 9475, ++ .procname = "cpt", ++ .data = &debug_level, ++ .maxlen = sizeof(debug_level), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++ { .ctl_name = 0 } ++}; ++static ctl_table root_table[] = { ++ { ++ .ctl_name = CTL_DEBUG, ++ .procname = "debug", ++ .mode = 0555, ++ .child = debug_table, ++ }, ++ { .ctl_name = 0 } ++}; ++ ++static int __init init_cpt(void) ++{ ++ int err; ++ ++ err = -ENOMEM; ++ ctl_header = register_sysctl_table(root_table); ++ if (!ctl_header) ++ goto err_mon; ++ ++ spin_lock_init(&cpt_context_lock); ++ INIT_LIST_HEAD(&cpt_context_list); ++ ++ err = -EINVAL; ++ proc_ent = create_proc_entry_mod("cpt", 0600, NULL, THIS_MODULE); ++ if (!proc_ent) ++ goto err_out; ++ ++ cpt_fops.read = proc_ent->proc_fops->read; ++ cpt_fops.write = proc_ent->proc_fops->write; ++ cpt_fops.llseek = proc_ent->proc_fops->llseek; ++ proc_ent->proc_fops = &cpt_fops; ++ ++ proc_ent->read_proc = proc_read; ++ proc_ent->data = NULL; ++ proc_ent->owner = THIS_MODULE; ++ return 0; ++ ++err_out: ++ unregister_sysctl_table(ctl_header); ++err_mon: ++ return err; ++} ++module_init(init_cpt); ++ ++static void __exit exit_cpt(void) ++{ ++ remove_proc_entry("cpt", NULL); ++ unregister_sysctl_table(ctl_header); ++ ++ spin_lock(&cpt_context_lock); ++ while (!list_empty(&cpt_context_list)) { ++ cpt_context_t *ctx; ++ ctx = list_entry(cpt_context_list.next, cpt_context_t, ctx_list); ++ ++ if (!ctx->sticky) ++ ctx->refcount++; ++ ctx->sticky = 0; ++ ++ BUG_ON(ctx->refcount != 1); ++ ++ __cpt_context_put(ctx); ++ } ++ spin_unlock(&cpt_context_lock); ++} ++module_exit(exit_cpt); +Index: kernel/kernel/cpt/cpt_process.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_process.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1371 @@ ++/* ++ * ++ * kernel/cpt/cpt_process.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_ubc.h" ++#include "cpt_process.h" ++#include "cpt_kernel.h" ++ ++#ifdef CONFIG_X86_32 ++#undef task_pt_regs ++#define task_pt_regs(t) ((struct pt_regs *)((t)->thread.esp0) - 1) ++#endif ++ ++int check_task_state(struct task_struct *tsk, struct cpt_context *ctx) ++{ ++#ifdef CONFIG_X86_64 ++ if (!(task_thread_info(tsk)->flags&_TIF_IA32)) { ++ if (task_pt_regs(tsk)->rip >= VSYSCALL_START && ++ task_pt_regs(tsk)->rip < VSYSCALL_END) { ++ eprintk_ctx(CPT_FID "cannot be checkpointied while vsyscall, try later\n", CPT_TID(tsk)); ++ return -EAGAIN; ++ } ++ } ++#endif ++ return 0; ++} ++ ++#ifdef CONFIG_X86 ++ ++static u32 encode_segment(u32 segreg) ++{ ++ segreg &= 0xFFFF; ++ ++ if (segreg == 0) ++ return CPT_SEG_ZERO; ++ if ((segreg & 3) != 3) { ++ wprintk("Invalid RPL of a segment reg %x\n", segreg); ++ return CPT_SEG_ZERO; ++ } ++ ++ /* LDT descriptor, it is just an index to LDT array */ ++ if (segreg & 4) ++ return CPT_SEG_LDT + (segreg >> 3); ++ ++ /* TLS descriptor. */ ++ if ((segreg >> 3) >= GDT_ENTRY_TLS_MIN && ++ (segreg >> 3) <= GDT_ENTRY_TLS_MAX) ++ return CPT_SEG_TLS1 + ((segreg>>3) - GDT_ENTRY_TLS_MIN); ++ ++ /* One of standard desriptors */ ++#ifdef CONFIG_X86_64 ++ if (segreg == __USER32_DS) ++ return CPT_SEG_USER32_DS; ++ if (segreg == __USER32_CS) ++ return CPT_SEG_USER32_CS; ++ if (segreg == __USER_DS) ++ return CPT_SEG_USER64_DS; ++ if (segreg == __USER_CS) ++ return CPT_SEG_USER64_CS; ++#else ++ if (segreg == __USER_DS) ++ return CPT_SEG_USER32_DS; ++ if (segreg == __USER_CS) ++ return CPT_SEG_USER32_CS; ++#endif ++ wprintk("Invalid segment reg %x\n", segreg); ++ return CPT_SEG_ZERO; ++} ++ ++#ifdef CONFIG_X86_64 ++static void xlate_ptregs_64_to_32(struct cpt_x86_regs *d, struct pt_regs *s, ++ struct task_struct *tsk) ++{ ++ d->cpt_ebp = s->rbp; ++ d->cpt_ebx = s->rbx; ++ d->cpt_eax = s->rax; ++ d->cpt_ecx = s->rcx; ++ d->cpt_edx = s->rdx; ++ d->cpt_esi = s->rsi; ++ d->cpt_edi = s->rdi; ++ d->cpt_orig_eax = s->orig_rax; ++ d->cpt_eip = s->rip; ++ d->cpt_xcs = encode_segment(s->cs); ++ d->cpt_eflags = s->eflags; ++ d->cpt_esp = s->rsp; ++ d->cpt_xss = encode_segment(s->ss); ++ d->cpt_xds = encode_segment(tsk->thread.ds); ++ d->cpt_xes = encode_segment(tsk->thread.es); ++} ++ ++static int dump_registers(struct task_struct *tsk, struct cpt_context *ctx) ++{ ++ cpt_open_object(NULL, ctx); ++ ++ if (task_thread_info(tsk)->flags & _TIF_IA32) { ++ struct cpt_x86_regs ri; ++ ri.cpt_next = sizeof(ri); ++ ri.cpt_object = CPT_OBJ_X86_REGS; ++ ri.cpt_hdrlen = sizeof(ri); ++ ri.cpt_content = CPT_CONTENT_VOID; ++ ++ ri.cpt_debugreg[0] = tsk->thread.debugreg0; ++ ri.cpt_debugreg[1] = tsk->thread.debugreg1; ++ ri.cpt_debugreg[2] = tsk->thread.debugreg2; ++ ri.cpt_debugreg[3] = tsk->thread.debugreg3; ++ ri.cpt_debugreg[4] = 0; ++ ri.cpt_debugreg[5] = 0; ++ ri.cpt_debugreg[6] = tsk->thread.debugreg6; ++ ri.cpt_debugreg[7] = tsk->thread.debugreg7; ++ ri.cpt_fs = encode_segment(tsk->thread.fsindex); ++ ri.cpt_gs = encode_segment(tsk->thread.gsindex); ++ ++ xlate_ptregs_64_to_32(&ri, task_pt_regs(tsk), tsk); ++ ++ ctx->write(&ri, sizeof(ri), ctx); ++ } else { ++ struct cpt_x86_64_regs ri; ++ ri.cpt_next = sizeof(ri); ++ ri.cpt_object = CPT_OBJ_X86_64_REGS; ++ ri.cpt_hdrlen = sizeof(ri); ++ ri.cpt_content = CPT_CONTENT_VOID; ++ ++ ri.cpt_fsbase = tsk->thread.fs; ++ ri.cpt_gsbase = tsk->thread.gs; ++ ri.cpt_fsindex = encode_segment(tsk->thread.fsindex); ++ ri.cpt_gsindex = encode_segment(tsk->thread.gsindex); ++ ri.cpt_ds = encode_segment(tsk->thread.ds); ++ ri.cpt_es = encode_segment(tsk->thread.es); ++ ri.cpt_debugreg[0] = tsk->thread.debugreg0; ++ ri.cpt_debugreg[1] = tsk->thread.debugreg1; ++ ri.cpt_debugreg[2] = tsk->thread.debugreg2; ++ ri.cpt_debugreg[3] = tsk->thread.debugreg3; ++ ri.cpt_debugreg[4] = 0; ++ ri.cpt_debugreg[5] = 0; ++ ri.cpt_debugreg[6] = tsk->thread.debugreg6; ++ ri.cpt_debugreg[7] = tsk->thread.debugreg7; ++ ++ memcpy(&ri.cpt_r15, task_pt_regs(tsk), sizeof(struct pt_regs)); ++ ++ ri.cpt_cs = encode_segment(task_pt_regs(tsk)->cs); ++ ri.cpt_ss = encode_segment(task_pt_regs(tsk)->ss); ++ ++ ctx->write(&ri, sizeof(ri), ctx); ++ ++ } ++ cpt_close_object(ctx); ++ ++ return 0; ++} ++ ++#else ++ ++static int dump_registers(struct task_struct *tsk, struct cpt_context *ctx) ++{ ++ struct cpt_x86_regs ri; ++ struct pt_regs *pt_regs; ++ ++ cpt_open_object(NULL, ctx); ++ ++ ri.cpt_next = sizeof(ri); ++ ri.cpt_object = CPT_OBJ_X86_REGS; ++ ri.cpt_hdrlen = sizeof(ri); ++ ri.cpt_content = CPT_CONTENT_VOID; ++ ++ ri.cpt_debugreg[0] = tsk->thread.debugreg[0]; ++ ri.cpt_debugreg[1] = tsk->thread.debugreg[1]; ++ ri.cpt_debugreg[2] = tsk->thread.debugreg[2]; ++ ri.cpt_debugreg[3] = tsk->thread.debugreg[3]; ++ ri.cpt_debugreg[4] = tsk->thread.debugreg[4]; ++ ri.cpt_debugreg[5] = tsk->thread.debugreg[5]; ++ ri.cpt_debugreg[6] = tsk->thread.debugreg[6]; ++ ri.cpt_debugreg[7] = tsk->thread.debugreg[7]; ++ ++ pt_regs = task_pt_regs(tsk); ++ ++ ri.cpt_fs = encode_segment(pt_regs->xfs); ++ ri.cpt_gs = encode_segment(tsk->thread.gs); ++ ++ ri.cpt_ebx = pt_regs->ebx; ++ ri.cpt_ecx = pt_regs->ecx; ++ ri.cpt_edx = pt_regs->edx; ++ ri.cpt_esi = pt_regs->esi; ++ ri.cpt_edi = pt_regs->edi; ++ ri.cpt_ebp = pt_regs->ebp; ++ ri.cpt_eax = pt_regs->eax; ++ ri.cpt_xds = pt_regs->xds; ++ ri.cpt_xes = pt_regs->xes; ++ ri.cpt_orig_eax = pt_regs->orig_eax; ++ ri.cpt_eip = pt_regs->eip; ++ ri.cpt_xcs = pt_regs->xcs; ++ ri.cpt_eflags = pt_regs->eflags; ++ ri.cpt_esp = pt_regs->esp; ++ ri.cpt_xss = pt_regs->xss; ++ ++ ri.cpt_xcs = encode_segment(pt_regs->xcs); ++ ri.cpt_xss = encode_segment(pt_regs->xss); ++ ri.cpt_xds = encode_segment(pt_regs->xds); ++ ri.cpt_xes = encode_segment(pt_regs->xes); ++ ++ ctx->write(&ri, sizeof(ri), ctx); ++ cpt_close_object(ctx); ++ ++ return 0; ++} ++#endif ++#endif ++ ++#ifdef CONFIG_IA64 ++ ++/* ++ PMD? ++ */ ++ ++#define _C(x) do { if ((err = (x)) < 0) { printk("atm:" CPT_FID #x " %d\n", \ ++ CPT_TID(tsk), err); return -EINVAL; } } while (0) ++ ++static int ass_to_mouth(struct cpt_ia64_regs *r, struct task_struct *tsk, ++ struct cpt_context *ctx) ++{ ++ int err; ++ struct unw_frame_info info; ++ struct ia64_fpreg fpval; ++ int i; ++ ++ unw_init_from_blocked_task(&info, tsk); ++ _C(unw_unwind_to_user(&info)); ++ ++ /* NAT_BITS */ ++ do { ++ unsigned long scratch_unat; ++ ++ scratch_unat = info.sw->caller_unat; ++ if (info.pri_unat_loc) ++ scratch_unat = *info.pri_unat_loc; ++ ++ r->nat[0] = ia64_get_scratch_nat_bits(task_pt_regs(tsk), scratch_unat); ++ /* Just to be on safe side. */ ++ r->nat[0] &= 0xFFFFFFFFUL; ++ } while (0); ++ ++ /* R4-R7 */ ++ for (i = 4; i <= 7; i++) { ++ char nat = 0; ++ _C(unw_access_gr(&info, i, &r->gr[i], &nat, 0)); ++ r->nat[0] |= (nat != 0) << i; ++ } ++ ++ /* B1-B5 */ ++ for (i = 1; i <= 5; i++) { ++ _C(unw_access_br(&info, i, &r->br[i], 0)); ++ } ++ ++ /* AR_EC, AR_LC */ ++ _C(unw_access_ar(&info, UNW_AR_EC, &r->ar_ec, 0)); ++ _C(unw_access_ar(&info, UNW_AR_LC, &r->ar_lc, 0)); ++ ++ /* F2..F5, F16..F31 */ ++ for (i = 2; i <= 5; i++) { ++ _C(unw_get_fr(&info, i, &fpval)); ++ memcpy(&r->fr[i*2], &fpval, 16); ++ } ++ for (i = 16; i <= 31; i++) { ++ _C(unw_get_fr(&info, i, &fpval)); ++ memcpy(&r->fr[i*2], &fpval, 16); ++ } ++ return 0; ++} ++ ++#undef _C ++ ++static int dump_registers(struct task_struct *tsk, struct cpt_context *ctx) ++{ ++ int err; ++ unsigned long pg; ++ struct cpt_ia64_regs *r; ++ struct ia64_psr *psr; ++ struct switch_stack *sw; ++ struct pt_regs *pt; ++ void *krbs = (void *)tsk + IA64_RBS_OFFSET; ++ unsigned long reg; ++ ++ if (tsk->exit_state) ++ return 0; ++ ++ pt = task_pt_regs(tsk); ++ ++ sw = (struct switch_stack *) (tsk->thread.ksp + 16); ++ ++ if ((pg = __get_free_page(GFP_KERNEL)) == 0) ++ return -ENOMEM; ++ ++ r = (void*)pg; ++ /* To catch if we forgot some register */ ++ memset(r, 0xA5, sizeof(*r)); ++ ++ r->gr[0] = 0; ++ r->fr[0] = r->fr[1] = 0; ++ r->fr[2] = 0x8000000000000000UL; ++ r->fr[3] = 0xffff; ++ ++ r->nat[0] = r->nat[1] = 0; ++ ++ err = ass_to_mouth(r, tsk, ctx); ++ if (err) { ++ printk("ass_to_mouth error %d\n", err); ++ goto out; ++ } ++ ++ /* gr 1,2-3,8-11,12-13,14,15,16-31 are on pt_regs */ ++ memcpy(&r->gr[1], &pt->r1, 8*(2-1)); ++ memcpy(&r->gr[2], &pt->r2, 8*(4-2)); ++ memcpy(&r->gr[8], &pt->r8, 8*(12-8)); ++ memcpy(&r->gr[12], &pt->r12, 8*(14-12)); ++ memcpy(&r->gr[14], &pt->r14, 8*(15-14)); ++ memcpy(&r->gr[15], &pt->r15, 8*(16-15)); ++ memcpy(&r->gr[16], &pt->r16, 8*(32-16)); ++ ++ r->br[0] = pt->b0; ++ r->br[6] = pt->b6; ++ r->br[7] = pt->b7; ++ ++ r->ar_bspstore = pt->ar_bspstore; ++ r->ar_unat = pt->ar_unat; ++ r->ar_pfs = pt->ar_pfs; ++ r->ar_ccv = pt->ar_ccv; ++ r->ar_fpsr = pt->ar_fpsr; ++ r->ar_csd = pt->ar_csd; ++ r->ar_ssd = pt->ar_ssd; ++ r->ar_rsc = pt->ar_rsc; ++ ++ r->cr_iip = pt->cr_iip; ++ r->cr_ipsr = pt->cr_ipsr; ++ ++ r->pr = pt->pr; ++ ++ r->cfm = pt->cr_ifs; ++ r->ar_rnat = pt->ar_rnat; ++ ++ /* fpregs 6..9,10..11 are in pt_regs */ ++ memcpy(&r->fr[2*6], &pt->f6, 16*(10-6)); ++ memcpy(&r->fr[2*10], &pt->f10, 16*(12-10)); ++ /* fpreg 12..15 are on switch stack */ ++ memcpy(&r->fr[2*12], &sw->f12, 16*(16-12)); ++ /* fpregs 32...127 */ ++ psr = ia64_psr(task_pt_regs(tsk)); ++ preempt_disable(); ++ if (ia64_is_local_fpu_owner(tsk) && psr->mfh) { ++ psr->mfh = 0; ++ tsk->thread.flags |= IA64_THREAD_FPH_VALID; ++ ia64_save_fpu(&tsk->thread.fph[0]); ++ } ++ preempt_enable(); ++ memcpy(&r->fr[32*2], tsk->thread.fph, 16*(128-32)); ++ ++ if (tsk->thread.flags & IA64_THREAD_DBG_VALID) { ++ memcpy(r->ibr, tsk->thread.ibr, sizeof(r->ibr)); ++ memcpy(r->dbr, tsk->thread.dbr, sizeof(r->ibr)); ++ } else { ++ memset(r->ibr, 0, sizeof(r->ibr)); ++ memset(r->dbr, 0, sizeof(r->dbr)); ++ } ++ ++ r->loadrs = pt->loadrs; ++ r->num_regs = ia64_rse_num_regs(krbs, krbs + 8*(pt->loadrs >> 19)); ++ if ((long)pt->cr_ifs > 0) ++ r->num_regs += (pt->cr_ifs & 0x7f); ++ ++ if (r->num_regs > 96) { ++ eprintk_ctx(CPT_FID " too much RSE regs %lu\n", ++ CPT_TID(tsk), r->num_regs); ++ return -EINVAL; ++ } ++ ++ for (reg = 0; reg < r->num_regs; reg++) { ++ unsigned long *ptr = ia64_rse_skip_regs(krbs, reg); ++ unsigned long *rnatp = ia64_rse_rnat_addr(ptr); ++ ++ r->gr[32+reg] = *ptr; ++ ++ if ((unsigned long)rnatp >= sw->ar_bspstore) ++ rnatp = &sw->ar_rnat; ++ if (*rnatp & (1UL<nat[0] |= (1UL<<(reg+32)); ++ else ++ r->nat[1] |= (1UL<<(reg-32)); ++ } ++ } ++ if (r->nat[0] | r->nat[1]) ++ wprintk_ctx(CPT_FID " nat bits %lx%016lx\n", CPT_TID(tsk), ++ r->nat[1], r->nat[0]); ++ ++ cpt_open_object(NULL, ctx); ++ r->cpt_next = sizeof(*r); ++ r->cpt_object = CPT_OBJ_IA64_REGS; ++ r->cpt_hdrlen = sizeof(*r); ++ r->cpt_content = CPT_CONTENT_VOID; ++ ctx->write(r, sizeof(*r), ctx); ++ cpt_close_object(ctx); ++ err = 0; ++ ++out: ++ free_page(pg); ++ return err; ++} ++#endif ++ ++static int dump_kstack(struct task_struct *tsk, struct cpt_context *ctx) ++{ ++ struct cpt_obj_bits hdr; ++ unsigned long size; ++ void *start; ++ ++ cpt_open_object(NULL, ctx); ++ ++#ifdef CONFIG_X86_64 ++ size = tsk->thread.rsp0 - tsk->thread.rsp; ++ start = (void*)tsk->thread.rsp; ++#elif defined(CONFIG_X86_32) ++ size = tsk->thread.esp0 - tsk->thread.esp; ++ start = (void*)tsk->thread.esp; ++#elif defined(CONFIG_IA64) ++ size = (unsigned long)(task_pt_regs(tsk)+1) - tsk->thread.ksp; ++ start = (void*)tsk->thread.ksp; ++#else ++#error Arch is not supported ++#endif ++ ++ hdr.cpt_next = sizeof(hdr) + CPT_ALIGN(size); ++ hdr.cpt_object = CPT_OBJ_BITS; ++ hdr.cpt_hdrlen = sizeof(hdr); ++ hdr.cpt_content = CPT_CONTENT_STACK; ++ hdr.cpt_size = size; ++ ++ ctx->write(&hdr, sizeof(hdr), ctx); ++ ctx->write(start, size, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ return 0; ++} ++ ++#ifdef CONFIG_X86 ++/* Formats of i387_fxsave_struct are the same for x86_64 ++ * and i386. Plain luck. */ ++ ++static int dump_fpustate(struct task_struct *tsk, struct cpt_context *ctx) ++{ ++ struct cpt_obj_bits hdr; ++ unsigned long size; ++ int type; ++ ++ cpt_open_object(NULL, ctx); ++ ++ type = CPT_CONTENT_X86_FPUSTATE; ++ size = sizeof(struct i387_fxsave_struct); ++#ifndef CONFIG_X86_64 ++ if (!cpu_has_fxsr) { ++ size = sizeof(struct i387_fsave_struct); ++ type = CPT_CONTENT_X86_FPUSTATE_OLD; ++ } ++#endif ++ ++ hdr.cpt_next = sizeof(hdr) + CPT_ALIGN(size); ++ hdr.cpt_object = CPT_OBJ_BITS; ++ hdr.cpt_hdrlen = sizeof(hdr); ++ hdr.cpt_content = type; ++ hdr.cpt_size = size; ++ ++ ctx->write(&hdr, sizeof(hdr), ctx); ++ ctx->write(&tsk->thread.i387, size, ctx); ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ return 0; ++} ++#endif ++ ++#ifdef CONFIG_IA64 ++ ++static int dump_fpustate(struct task_struct *tsk, struct cpt_context *ctx) ++{ ++ return 0; ++} ++#endif ++ ++static int encode_siginfo(struct cpt_siginfo_image *si, siginfo_t *info) ++{ ++ si->cpt_signo = info->si_signo; ++ si->cpt_errno = info->si_errno; ++ si->cpt_code = info->si_code; ++ ++ switch(si->cpt_code & __SI_MASK) { ++ case __SI_TIMER: ++ si->cpt_pid = info->si_tid; ++ si->cpt_uid = info->si_overrun; ++ si->cpt_sigval = cpt_ptr_export(info->_sifields._timer._sigval.sival_ptr); ++ si->cpt_utime = info->si_sys_private; ++ break; ++ case __SI_POLL: ++ si->cpt_pid = info->si_band; ++ si->cpt_uid = info->si_fd; ++ break; ++ case __SI_FAULT: ++ si->cpt_sigval = cpt_ptr_export(info->si_addr); ++#ifdef __ARCH_SI_TRAPNO ++ si->cpt_pid = info->si_trapno; ++#endif ++ break; ++ case __SI_CHLD: ++ si->cpt_pid = info->si_pid; ++ si->cpt_uid = info->si_uid; ++ si->cpt_sigval = info->si_status; ++ si->cpt_stime = info->si_stime; ++ si->cpt_utime = info->si_utime; ++ break; ++ case __SI_KILL: ++ case __SI_RT: ++ case __SI_MESGQ: ++ default: ++ si->cpt_pid = info->si_pid; ++ si->cpt_uid = info->si_uid; ++ si->cpt_sigval = cpt_ptr_export(info->si_ptr); ++ break; ++ } ++ return 0; ++} ++ ++static int dump_sigqueue(struct sigpending *list, struct cpt_context *ctx) ++{ ++ struct sigqueue *q; ++ loff_t saved_obj; ++ ++ if (list_empty(&list->list)) ++ return 0; ++ ++ cpt_push_object(&saved_obj, ctx); ++ list_for_each_entry(q, &list->list, list) { ++ struct cpt_siginfo_image si; ++ ++ si.cpt_next = sizeof(si); ++ si.cpt_object = CPT_OBJ_SIGINFO; ++ si.cpt_hdrlen = sizeof(si); ++ si.cpt_content = CPT_CONTENT_VOID; ++ ++ si.cpt_qflags = q->flags; ++ si.cpt_user = q->user->uid; ++ ++ if (encode_siginfo(&si, &q->info)) ++ return -EINVAL; ++ ++ ctx->write(&si, sizeof(si), ctx); ++ } ++ cpt_pop_object(&saved_obj, ctx); ++ return 0; ++} ++ ++ ++ ++static int dump_one_signal_struct(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct signal_struct *sig = obj->o_obj; ++ struct cpt_signal_image *v = cpt_get_buf(ctx); ++ struct task_struct *tsk; ++ int i; ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_SIGNAL_STRUCT; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ if (sig->__pgrp <= 0) { ++ eprintk_ctx("bad pgid\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ v->cpt_pgrp_type = CPT_PGRP_NORMAL; ++ read_lock(&tasklist_lock); ++ tsk = find_task_by_pid(sig->__pgrp); ++ if (tsk == NULL) ++ v->cpt_pgrp_type = CPT_PGRP_ORPHAN; ++ read_unlock(&tasklist_lock); ++ v->cpt_pgrp = pid_to_vpid(sig->__pgrp); ++ ++ v->cpt_old_pgrp = 0; ++/* if (!sig->tty_old_pgrp) { ++ eprintk_ctx("bad tty_old_pgrp\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ }*/ ++ if (sig->tty_old_pgrp) { ++ v->cpt_old_pgrp_type = CPT_PGRP_NORMAL; ++ read_lock(&tasklist_lock); ++ tsk = pid_task(sig->tty_old_pgrp, PIDTYPE_PID); ++ if (tsk == NULL) { ++ v->cpt_old_pgrp_type = CPT_PGRP_ORPHAN; ++ tsk = pid_task(sig->tty_old_pgrp, PIDTYPE_PGID); ++ } ++ read_unlock(&tasklist_lock); ++ if (tsk == NULL) { ++ eprintk_ctx("tty_old_pgrp does not exist anymore\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ v->cpt_old_pgrp = pid_vnr(sig->tty_old_pgrp); ++ if ((int)v->cpt_old_pgrp < 0) { ++ dprintk_ctx("stray tty_old_pgrp %d\n", pid_nr(sig->tty_old_pgrp)); ++ v->cpt_old_pgrp = -1; ++ v->cpt_old_pgrp_type = CPT_PGRP_STRAY; ++ } ++ } ++ ++ if (sig->__session <= 0) { ++ eprintk_ctx("bad session\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ v->cpt_session_type = CPT_PGRP_NORMAL; ++ read_lock(&tasklist_lock); ++ tsk = find_task_by_pid(sig->__session); ++ if (tsk == NULL) ++ v->cpt_session_type = CPT_PGRP_ORPHAN; ++ read_unlock(&tasklist_lock); ++ v->cpt_session = pid_to_vpid(sig->__session); ++ ++ v->cpt_leader = sig->leader; ++ v->cpt_ctty = CPT_NULL; ++ if (sig->tty) { ++ cpt_object_t *cobj = lookup_cpt_object(CPT_OBJ_TTY, sig->tty, ctx); ++ if (cobj) ++ v->cpt_ctty = cobj->o_pos; ++ else { ++ eprintk_ctx("controlling tty is not found\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ } ++ memcpy(&v->cpt_sigpending, &sig->shared_pending.signal, 8); ++ ++ v->cpt_curr_target = 0; ++ if (sig->curr_target) ++ v->cpt_curr_target = task_pid_vnr(sig->curr_target); ++ v->cpt_group_exit = ((sig->flags & SIGNAL_GROUP_EXIT) != 0); ++ v->cpt_group_exit_code = sig->group_exit_code; ++ v->cpt_group_exit_task = 0; ++ if (sig->group_exit_task) ++ v->cpt_group_exit_task = task_pid_vnr(sig->group_exit_task); ++ v->cpt_notify_count = sig->notify_count; ++ v->cpt_group_stop_count = sig->group_stop_count; ++ ++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,8) ++ v->cpt_utime = sig->utime; ++ v->cpt_stime = sig->stime; ++ v->cpt_cutime = sig->cutime; ++ v->cpt_cstime = sig->cstime; ++ v->cpt_nvcsw = sig->nvcsw; ++ v->cpt_nivcsw = sig->nivcsw; ++ v->cpt_cnvcsw = sig->cnvcsw; ++ v->cpt_cnivcsw = sig->cnivcsw; ++ v->cpt_min_flt = sig->min_flt; ++ v->cpt_maj_flt = sig->maj_flt; ++ v->cpt_cmin_flt = sig->cmin_flt; ++ v->cpt_cmaj_flt = sig->cmaj_flt; ++ ++ if (RLIM_NLIMITS > CPT_RLIM_NLIMITS) ++ __asm__("undefined\n"); ++ ++ for (i=0; icpt_rlim_cur[i] = sig->rlim[i].rlim_cur; ++ v->cpt_rlim_max[i] = sig->rlim[i].rlim_max; ++ } else { ++ v->cpt_rlim_cur[i] = CPT_NULL; ++ v->cpt_rlim_max[i] = CPT_NULL; ++ } ++ } ++#endif ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ dump_sigqueue(&sig->shared_pending, ctx); ++ ++ cpt_close_object(ctx); ++ return 0; ++} ++ ++int cpt_check_unsupported(struct task_struct *tsk, cpt_context_t *ctx) ++{ ++ if (tsk->splice_pipe) { ++ eprintk_ctx("splice is used by " CPT_FID "\n", CPT_TID(tsk)); ++ return -EBUSY; ++ } ++#ifdef CONFIG_KEYS ++ if (tsk->request_key_auth || tsk->thread_keyring) { ++ eprintk_ctx("keys are used by " CPT_FID "\n", CPT_TID(tsk)); ++ return -EBUSY; ++ } ++#endif ++#ifdef CONFIG_NUMA ++ if (tsk->mempolicy) { ++ eprintk_ctx("NUMA mempolicy is used by " CPT_FID "\n", CPT_TID(tsk)); ++ return -EBUSY; ++ } ++#endif ++#ifdef CONFIG_TUX ++ if (tsk->tux_info) { ++ eprintk_ctx("TUX is used by " CPT_FID "\n", CPT_TID(tsk)); ++ return -EBUSY; ++ } ++#endif ++ return 0; ++} ++ ++static int dump_one_process(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct task_struct *tsk = obj->o_obj; ++ int last_thread; ++ struct cpt_task_image *v = cpt_get_buf(ctx); ++ cpt_object_t *tobj; ++ cpt_object_t *tg_obj; ++ loff_t saved_obj; ++ int i; ++ int err; ++ struct timespec delta; ++ struct mm_struct * tsk_mm; ++ struct files_struct * tsk_files; ++ struct fs_struct * tsk_fs; ++ struct mnt_namespace * tsk_ns; ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_signal = CPT_NULL; ++ tg_obj = lookup_cpt_object(CPT_OBJ_SIGNAL_STRUCT, tsk->signal, ctx); ++ if (!tg_obj) BUG(); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_TASK; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_state = tsk->state; ++ if (tsk->state == EXIT_ZOMBIE) { ++ eprintk_ctx("invalid zombie state on" CPT_FID "\n", CPT_TID(tsk)); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } else if (tsk->state == EXIT_DEAD) { ++ if (tsk->exit_state != EXIT_DEAD && ++ tsk->exit_state != EXIT_ZOMBIE) { ++ eprintk_ctx("invalid exit_state %d on" CPT_FID "\n", tsk->exit_state, CPT_TID(tsk)); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ } ++ if (tsk->exit_state) { ++ v->cpt_state = tsk->exit_state; ++ if (tsk->state != EXIT_DEAD) { ++ eprintk_ctx("invalid tsk->state %ld/%d on" CPT_FID "\n", ++ tsk->state, tsk->exit_state, CPT_TID(tsk)); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ } ++ if (cpt_check_unsupported(tsk, ctx)) { ++ cpt_release_buf(ctx); ++ return -EBUSY; ++ } ++ ++ v->cpt_flags = tsk->flags&~(PF_FROZEN|PF_EXIT_RESTART); ++ v->cpt_ptrace = tsk->ptrace; ++ v->cpt_prio = tsk->prio; ++ v->cpt_exit_code = tsk->exit_code; ++ v->cpt_exit_signal = tsk->exit_signal; ++ v->cpt_pdeath_signal = tsk->pdeath_signal; ++ v->cpt_static_prio = tsk->static_prio; ++ v->cpt_rt_priority = tsk->rt_priority; ++ v->cpt_policy = tsk->policy; ++ if (v->cpt_policy != SCHED_NORMAL) { ++ eprintk_ctx("scheduler policy is not supported %d/%d(%s)\n", task_pid_vnr(tsk), tsk->pid, tsk->comm); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ ++ /* Unpleasant moment. When leader of thread group exits, ++ * it remains in zombie state until all the group exits. ++ * We save not-NULL pointers to process mm/files/fs, so ++ * that we can restore this thread group. ++ */ ++ tsk_mm = tsk->mm; ++ tsk_files = tsk->files; ++ tsk_fs = tsk->fs; ++ tsk_ns = tsk->nsproxy ? tsk->nsproxy->mnt_ns : NULL; ++ ++ if (tsk->exit_state && !thread_group_empty(tsk) && ++ thread_group_leader(tsk)) { ++ struct task_struct * p = tsk; ++ ++ read_lock(&tasklist_lock); ++ do { ++ if (p->mm) ++ tsk_mm = p->mm; ++ if (p->files) ++ tsk_files = p->files; ++ if (p->fs) ++ tsk_fs = p->fs; ++ if (p->nsproxy && p->nsproxy->mnt_ns) ++ tsk_ns = p->nsproxy->mnt_ns; ++ p = next_thread(p); ++ } while (p != tsk); ++ read_unlock(&tasklist_lock); ++ } ++ ++ v->cpt_mm = CPT_NULL; ++ if (tsk_mm) { ++ tobj = lookup_cpt_object(CPT_OBJ_MM, tsk_mm, ctx); ++ if (!tobj) BUG(); ++ v->cpt_mm = tobj->o_pos; ++ } ++ v->cpt_files = CPT_NULL; ++ if (tsk_files) { ++ tobj = lookup_cpt_object(CPT_OBJ_FILES, tsk_files, ctx); ++ if (!tobj) BUG(); ++ v->cpt_files = tobj->o_pos; ++ } ++ v->cpt_fs = CPT_NULL; ++ if (tsk_fs) { ++ tobj = lookup_cpt_object(CPT_OBJ_FS, tsk_fs, ctx); ++ if (!tobj) BUG(); ++ v->cpt_fs = tobj->o_pos; ++ } ++ v->cpt_namespace = CPT_NULL; ++ if (tsk_ns) { ++ tobj = lookup_cpt_object(CPT_OBJ_NAMESPACE, tsk_ns, ctx); ++ if (!tobj) BUG(); ++ v->cpt_namespace = tobj->o_pos; ++ ++ if (tsk_ns != current->nsproxy->mnt_ns) ++ eprintk_ctx("namespaces are not supported:" ++ "process " CPT_FID "\n", CPT_TID(tsk)); ++ } ++ v->cpt_sysvsem_undo = CPT_NULL; ++ if (tsk->sysvsem.undo_list && !tsk->exit_state) { ++ tobj = lookup_cpt_object(CPT_OBJ_SYSVSEM_UNDO, tsk->sysvsem.undo_list, ctx); ++ if (!tobj) BUG(); ++ v->cpt_sysvsem_undo = tobj->o_pos; ++ } ++ v->cpt_sighand = CPT_NULL; ++ if (tsk->sighand) { ++ tobj = lookup_cpt_object(CPT_OBJ_SIGHAND_STRUCT, tsk->sighand, ctx); ++ if (!tobj) BUG(); ++ v->cpt_sighand = tobj->o_pos; ++ } ++ v->cpt_sigblocked = cpt_sigset_export(&tsk->blocked); ++ v->cpt_sigrblocked = cpt_sigset_export(&tsk->real_blocked); ++ v->cpt_sigsuspend_blocked = cpt_sigset_export(&tsk->saved_sigmask); ++ ++ v->cpt_pid = task_pid_vnr(tsk); ++ v->cpt_tgid = task_tgid_vnr(tsk); ++ v->cpt_ppid = 0; ++ if (tsk->parent) { ++ if (tsk->parent != tsk->real_parent && ++ !lookup_cpt_object(CPT_OBJ_TASK, tsk->parent, ctx)) { ++ eprintk_ctx("task %d/%d(%s) is ptraced from ve0\n", tsk->pid, task_pid_vnr(tsk), tsk->comm); ++ cpt_release_buf(ctx); ++ return -EBUSY; ++ } ++ v->cpt_ppid = task_pid_vnr(tsk->parent); ++ } ++ v->cpt_rppid = tsk->real_parent ? task_pid_vnr(tsk->real_parent) : 0; ++ v->cpt_pgrp = task_pgrp_vnr(tsk); ++ v->cpt_session = task_session_vnr(tsk); ++ v->cpt_old_pgrp = 0; ++ if (tsk->signal->tty_old_pgrp) ++ v->cpt_old_pgrp = pid_vnr(tsk->signal->tty_old_pgrp); ++ v->cpt_leader = tsk->group_leader ? task_pid_vnr(tsk->group_leader) : 0; ++ v->cpt_set_tid = (unsigned long)tsk->set_child_tid; ++ v->cpt_clear_tid = (unsigned long)tsk->clear_child_tid; ++ memcpy(v->cpt_comm, tsk->comm, 16); ++ v->cpt_user = tsk->user->uid; ++ v->cpt_uid = tsk->uid; ++ v->cpt_euid = tsk->euid; ++ v->cpt_suid = tsk->suid; ++ v->cpt_fsuid = tsk->fsuid; ++ v->cpt_gid = tsk->gid; ++ v->cpt_egid = tsk->egid; ++ v->cpt_sgid = tsk->sgid; ++ v->cpt_fsgid = tsk->fsgid; ++ v->cpt_ngids = 0; ++ if (tsk->group_info && tsk->group_info->ngroups != 0) { ++ int i = tsk->group_info->ngroups; ++ if (i > 32) { ++ /* Shame... I did a simplified version and _forgot_ ++ * about this. Later, later. */ ++ eprintk_ctx("too many of groups " CPT_FID "\n", CPT_TID(tsk)); ++ return -EINVAL; ++ } ++ v->cpt_ngids = i; ++ for (i--; i>=0; i--) ++ v->cpt_gids[i] = tsk->group_info->small_block[i]; ++ } ++ v->cpt_prctl_uac = 0; ++ v->cpt_prctl_fpemu = 0; ++ v->__cpt_pad1 = 0; ++#ifdef CONFIG_IA64 ++ v->cpt_prctl_uac = (tsk->thread.flags & IA64_THREAD_UAC_MASK) >> IA64_THREAD_UAC_SHIFT; ++ v->cpt_prctl_fpemu = (tsk->thread.flags & IA64_THREAD_FPEMU_MASK) >> IA64_THREAD_FPEMU_SHIFT; ++#endif ++ memcpy(&v->cpt_ecap, &tsk->cap_effective, 8); ++ memcpy(&v->cpt_icap, &tsk->cap_inheritable, 8); ++ memcpy(&v->cpt_pcap, &tsk->cap_permitted, 8); ++ v->cpt_keepcap = tsk->keep_capabilities; ++ ++ v->cpt_did_exec = tsk->did_exec; ++ v->cpt_exec_domain = -1; ++ v->cpt_thrflags = task_thread_info(tsk)->flags & ~(1<cpt_64bit = 0; ++#ifdef CONFIG_X86_64 ++ /* Clear x86_64 specific flags */ ++ v->cpt_thrflags &= ~(_TIF_FORK|_TIF_ABI_PENDING|_TIF_IA32); ++ if (!(task_thread_info(tsk)->flags & _TIF_IA32)) { ++ ctx->tasks64++; ++ v->cpt_64bit = 1; ++ } ++#endif ++#ifdef CONFIG_IA64 ++ /* Clear ia64 specific flags */ ++ //// v->cpt_thrflags &= ~(_TIF_FORK|_TIF_ABI_PENDING|_TIF_IA32); ++ if (!IS_IA32_PROCESS(task_pt_regs(tsk))) { ++ ctx->tasks64++; ++ v->cpt_64bit = 1; ++ } ++#endif ++ v->cpt_thrstatus = task_thread_info(tsk)->status; ++ v->cpt_addr_limit = -1; ++ ++ v->cpt_personality = tsk->personality; ++ ++#ifdef CONFIG_X86 ++ for (i=0; i=3) { ++ eprintk_ctx("too many tls descs\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++#ifndef CONFIG_X86_64 ++ v->cpt_tls[i] = (((u64)tsk->thread.tls_array[i].b)<<32) + tsk->thread.tls_array[i].a; ++#else ++ v->cpt_tls[i] = tsk->thread.tls_array[i]; ++#endif ++ } ++#endif ++ ++ v->cpt_restart.fn = CPT_RBL_0; ++ if (task_thread_info(tsk)->restart_block.fn != task_thread_info(current)->restart_block.fn) { ++ struct restart_block *rb = &task_thread_info(tsk)->restart_block; ++ ktime_t e; ++ ++ if (rb->fn == hrtimer_nanosleep_restart) { ++ v->cpt_restart.fn = CPT_RBL_NANOSLEEP; ++ ++ e.tv64 = ((u64)rb->arg3 << 32) | (u64)rb->arg2; ++ e = ktime_sub(e, timespec_to_ktime(ctx->cpt_monotonic_time)); ++ v->cpt_restart.arg0 = rb->arg0; ++ v->cpt_restart.arg1 = rb->arg1; ++ v->cpt_restart.arg2 = ktime_to_ns(e); ++ v->cpt_restart.arg3 = 0; ++ dprintk_ctx(CPT_FID " %Lu\n", CPT_TID(tsk), (unsigned long long)v->cpt_restart.arg0); ++ goto continue_dump; ++ } ++#if defined(CONFIG_X86_64) && defined(CONFIG_COMPAT) ++ if (rb->fn == compat_nanosleep_restart) { ++ v->cpt_restart.fn = CPT_RBL_COMPAT_NANOSLEEP; ++ ++ e.tv64 = ((u64)rb->arg3 << 32) | (u64)rb->arg2; ++ e = ktime_sub(e, timespec_to_ktime(ctx->cpt_monotonic_time)); ++ v->cpt_restart.arg0 = rb->arg0; ++ v->cpt_restart.arg1 = rb->arg1; ++ v->cpt_restart.arg2 = ktime_to_ns(e); ++ v->cpt_restart.arg3 = 0; ++ dprintk_ctx(CPT_FID " %Lu\n", CPT_TID(tsk), (unsigned long long)v->cpt_restart.arg0); ++ goto continue_dump; ++ } ++#endif ++ if (rb->fn == do_restart_poll) { ++ u64 timeout_jiffies; ++ ++ timeout_jiffies = ((u64)rb->arg3 << 32)|(u64)rb->arg2; ++ e.tv64 = timeout_jiffies * TICK_NSEC; ++ ++ v->cpt_restart.fn = CPT_RBL_POLL; ++ v->cpt_restart.arg0 = rb->arg0; ++ v->cpt_restart.arg1 = rb->arg1; ++ v->cpt_restart.arg2 = ktime_to_ns(e); ++ v->cpt_restart.arg3 = 0; ++ dprintk_ctx(CPT_FID " %Lu\n", CPT_TID(tsk), (unsigned long long)v->cpt_restart.arg0); ++ goto continue_dump; ++ } ++ if (rb->fn == futex_wait_restart) { ++ v->cpt_restart.fn = CPT_RBL_FUTEX_WAIT; ++ ++ e.tv64 = rb->futex.time; ++ e = ktime_sub(e, timespec_to_ktime(ctx->cpt_monotonic_time)); ++ v->cpt_restart.arg0 = (unsigned long)rb->futex.uaddr; ++ v->cpt_restart.arg1 = rb->futex.val; ++ v->cpt_restart.arg2 = ktime_to_ns(e); ++ v->cpt_restart.arg3 = rb->futex.flags; ++ goto continue_dump; ++ } ++ eprintk_ctx("unknown restart block %p\n", rb->fn); ++ return -EINVAL; ++ } ++ ++continue_dump: ++ v->cpt_it_real_incr = 0; ++ v->cpt_it_prof_incr = 0; ++ v->cpt_it_virt_incr = 0; ++ v->cpt_it_real_value = 0; ++ v->cpt_it_prof_value = 0; ++ v->cpt_it_virt_value = 0; ++ if (thread_group_leader(tsk) && tsk->exit_state == 0) { ++ ktime_t rem; ++ ++ v->cpt_it_real_incr = ktime_to_ns(tsk->signal->it_real_incr); ++ v->cpt_it_prof_incr = tsk->signal->it_prof_incr; ++ v->cpt_it_virt_incr = tsk->signal->it_virt_incr; ++ ++ rem = hrtimer_get_remaining(&tsk->signal->real_timer); ++ ++ if (hrtimer_active(&tsk->signal->real_timer)) { ++ if (rem.tv64 <= 0) ++ rem.tv64 = NSEC_PER_USEC; ++ v->cpt_it_real_value = ktime_to_ns(rem); ++ dprintk("cpt itimer " CPT_FID " %Lu\n", CPT_TID(tsk), (unsigned long long)v->cpt_it_real_value); ++ } ++ v->cpt_it_prof_value = tsk->signal->it_prof_expires; ++ v->cpt_it_virt_value = tsk->signal->it_virt_expires; ++ } ++ v->cpt_used_math = (tsk_used_math(tsk) != 0); ++ ++ if (tsk->notifier) { ++ eprintk_ctx("task notifier is in use: process %d/%d(%s)\n", task_pid_vnr(tsk), tsk->pid, tsk->comm); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ ++ v->cpt_utime = tsk->utime; ++ v->cpt_stime = tsk->stime; ++ delta = tsk->start_time; ++ _set_normalized_timespec(&delta, ++ delta.tv_sec - get_exec_env()->start_timespec.tv_sec, ++ delta.tv_nsec - get_exec_env()->start_timespec.tv_nsec); ++ v->cpt_starttime = cpt_timespec_export(&delta); ++ v->cpt_nvcsw = tsk->nvcsw; ++ v->cpt_nivcsw = tsk->nivcsw; ++ v->cpt_min_flt = tsk->min_flt; ++ v->cpt_maj_flt = tsk->maj_flt; ++ ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,8) ++ v->cpt_cutime = tsk->cutime; ++ v->cpt_cstime = tsk->cstime; ++ v->cpt_cnvcsw = tsk->cnvcsw; ++ v->cpt_cnivcsw = tsk->cnivcsw; ++ v->cpt_cmin_flt = tsk->cmin_flt; ++ v->cpt_cmaj_flt = tsk->cmaj_flt; ++ ++ if (RLIM_NLIMITS > CPT_RLIM_NLIMITS) ++ __asm__("undefined\n"); ++ ++ for (i=0; icpt_rlim_cur[i] = tsk->rlim[i].rlim_cur; ++ v->cpt_rlim_max[i] = tsk->rlim[i].rlim_max; ++ } else { ++ v->cpt_rlim_cur[i] = CPT_NULL; ++ v->cpt_rlim_max[i] = CPT_NULL; ++ } ++ } ++#else ++ v->cpt_cutime = tsk->signal->cutime; ++ v->cpt_cstime = tsk->signal->cstime; ++ v->cpt_cnvcsw = tsk->signal->cnvcsw; ++ v->cpt_cnivcsw = tsk->signal->cnivcsw; ++ v->cpt_cmin_flt = tsk->signal->cmin_flt; ++ v->cpt_cmaj_flt = tsk->signal->cmaj_flt; ++ ++ if (RLIM_NLIMITS > CPT_RLIM_NLIMITS) ++ __asm__("undefined\n"); ++ ++ for (i=0; icpt_rlim_cur[i] = tsk->signal->rlim[i].rlim_cur; ++ v->cpt_rlim_max[i] = tsk->signal->rlim[i].rlim_max; ++ } else { ++ v->cpt_rlim_cur[i] = CPT_NULL; ++ v->cpt_rlim_max[i] = CPT_NULL; ++ } ++ } ++#endif ++ ++#ifdef CONFIG_BEANCOUNTERS ++ if (tsk->mm) ++ v->cpt_mm_ub = cpt_lookup_ubc(tsk->mm->mm_ub, ctx); ++ else ++ v->cpt_mm_ub = CPT_NULL; ++ v->cpt_task_ub = cpt_lookup_ubc(tsk->task_bc.task_ub, ctx); ++ v->cpt_exec_ub = cpt_lookup_ubc(tsk->task_bc.exec_ub, ctx); ++ v->cpt_fork_sub = cpt_lookup_ubc(tsk->task_bc.fork_sub, ctx); ++#endif ++ ++ v->cpt_ptrace_message = tsk->ptrace_message; ++ v->cpt_pn_state = tsk->pn_state; ++ v->cpt_stopped_state = tsk->stopped_state; ++ v->cpt_sigsuspend_state = 0; ++ ++#ifdef CONFIG_X86_32 ++ if (tsk->thread.vm86_info) { ++ eprintk_ctx("vm86 task is running\n"); ++ cpt_release_buf(ctx); ++ return -EBUSY; ++ } ++#endif ++ ++ v->cpt_sigpending = cpt_sigset_export(&tsk->pending.signal); ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ dump_kstack(tsk, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ err = dump_registers(tsk, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ if (err) ++ return err; ++ ++ if (tsk_used_math(tsk)) { ++ cpt_push_object(&saved_obj, ctx); ++ dump_fpustate(tsk, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ ++ if (tsk->last_siginfo) { ++ struct cpt_siginfo_image si; ++ cpt_push_object(&saved_obj, ctx); ++ ++ si.cpt_next = sizeof(si); ++ si.cpt_object = CPT_OBJ_LASTSIGINFO; ++ si.cpt_hdrlen = sizeof(si); ++ si.cpt_content = CPT_CONTENT_VOID; ++ ++ if (encode_siginfo(&si, tsk->last_siginfo)) ++ return -EINVAL; ++ ++ ctx->write(&si, sizeof(si), ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ ++ if (tsk->sas_ss_size) { ++ struct cpt_sigaltstack_image si; ++ cpt_push_object(&saved_obj, ctx); ++ ++ si.cpt_next = sizeof(si); ++ si.cpt_object = CPT_OBJ_SIGALTSTACK; ++ si.cpt_hdrlen = sizeof(si); ++ si.cpt_content = CPT_CONTENT_VOID; ++ ++ si.cpt_stack = tsk->sas_ss_sp; ++ si.cpt_stacksize = tsk->sas_ss_size; ++ ++ ctx->write(&si, sizeof(si), ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ ++ if (tsk->robust_list ++#ifdef CONFIG_COMPAT ++ || tsk->compat_robust_list ++#endif ++ ) { ++ struct cpt_task_aux_image ai; ++ cpt_push_object(&saved_obj, ctx); ++ ++ ai.cpt_next = sizeof(ai); ++ ai.cpt_object = CPT_OBJ_TASK_AUX; ++ ai.cpt_hdrlen = sizeof(ai); ++ ai.cpt_content = CPT_CONTENT_VOID; ++ ++ ai.cpt_robust_list = (unsigned long)tsk->robust_list; ++#ifdef CONFIG_X86_64 ++#ifdef CONFIG_COMPAT ++ if (task_thread_info(tsk)->flags & _TIF_IA32) ++ ai.cpt_robust_list = (unsigned long)tsk->compat_robust_list; ++#endif ++#endif ++ ctx->write(&ai, sizeof(ai), ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ ++ dump_sigqueue(&tsk->pending, ctx); ++ ++ last_thread = 1; ++ read_lock(&tasklist_lock); ++ do { ++ struct task_struct * next = next_thread(tsk); ++ if (next != tsk && !thread_group_leader(next)) ++ last_thread = 0; ++ } while (0); ++ read_unlock(&tasklist_lock); ++ ++ if (last_thread) { ++ struct task_struct *prev_tsk; ++ int err; ++ loff_t pos = ctx->file->f_pos; ++ ++ cpt_push_object(&saved_obj, ctx); ++ err = dump_one_signal_struct(tg_obj, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ if (err) ++ return err; ++ ++ prev_tsk = tsk; ++ for (;;) { ++ if (prev_tsk->tgid == tsk->tgid) { ++ loff_t tg_pos; ++ ++ tg_pos = obj->o_pos + offsetof(struct cpt_task_image, cpt_signal); ++ ctx->pwrite(&pos, sizeof(pos), ctx, tg_pos); ++ if (thread_group_leader(prev_tsk)) ++ break; ++ } ++ ++ if (obj->o_list.prev == &ctx->object_array[CPT_OBJ_TASK]) { ++ eprintk_ctx("bug: thread group leader is lost\n"); ++ return -EINVAL; ++ } ++ ++ obj = list_entry(obj->o_list.prev, cpt_object_t, o_list); ++ prev_tsk = obj->o_obj; ++ } ++ } ++ ++ cpt_close_object(ctx); ++ return 0; ++} ++ ++int cpt_dump_tasks(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ cpt_open_section(ctx, CPT_SECT_TASKS); ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ int err; ++ ++ if ((err = dump_one_process(obj, ctx)) != 0) ++ return err; ++ } ++ ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++int cpt_collect_signals(cpt_context_t *ctx) ++{ ++ cpt_object_t *obj; ++ ++ /* Collect process fd sets */ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ if (tsk->signal && !list_empty(&tsk->signal->posix_timers)) { ++ eprintk_ctx("task %d/%d(%s) uses posix timers\n", tsk->pid, task_pid_vnr(tsk), tsk->comm); ++ return -EBUSY; ++ } ++ if (tsk->signal && cpt_object_add(CPT_OBJ_SIGNAL_STRUCT, tsk->signal, ctx) == NULL) ++ return -ENOMEM; ++ if (tsk->sighand && cpt_object_add(CPT_OBJ_SIGHAND_STRUCT, tsk->sighand, ctx) == NULL) ++ return -ENOMEM; ++ } ++ return 0; ++} ++ ++ ++static int dump_one_sighand_struct(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct sighand_struct *sig = obj->o_obj; ++ struct cpt_sighand_image *v = cpt_get_buf(ctx); ++ int i; ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_SIGHAND_STRUCT; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ for (i=0; i< _NSIG; i++) { ++ if (sig->action[i].sa.sa_handler != SIG_DFL || ++ sig->action[i].sa.sa_flags) { ++ loff_t saved_obj; ++ struct cpt_sighandler_image *o = cpt_get_buf(ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_open_object(NULL, ctx); ++ ++ o->cpt_next = CPT_NULL; ++ o->cpt_object = CPT_OBJ_SIGHANDLER; ++ o->cpt_hdrlen = sizeof(*o); ++ o->cpt_content = CPT_CONTENT_VOID; ++ ++ o->cpt_signo = i; ++ o->cpt_handler = (unsigned long)sig->action[i].sa.sa_handler; ++ o->cpt_restorer = 0; ++#ifdef CONFIG_X86 ++ o->cpt_restorer = (unsigned long)sig->action[i].sa.sa_restorer; ++#endif ++ o->cpt_flags = sig->action[i].sa.sa_flags; ++ memcpy(&o->cpt_mask, &sig->action[i].sa.sa_mask, 8); ++ ctx->write(o, sizeof(*o), ctx); ++ cpt_release_buf(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ } ++ ++ cpt_close_object(ctx); ++ return 0; ++} ++ ++int cpt_dump_sighand(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ cpt_open_section(ctx, CPT_SECT_SIGHAND_STRUCT); ++ ++ for_each_object(obj, CPT_OBJ_SIGHAND_STRUCT) { ++ int err; ++ ++ if ((err = dump_one_sighand_struct(obj, ctx)) != 0) ++ return err; ++ } ++ ++ cpt_close_section(ctx); ++ return 0; ++} +Index: kernel/kernel/cpt/cpt_process.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_process.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,13 @@ ++int cpt_collect_signals(cpt_context_t *); ++int cpt_dump_signal(struct cpt_context *); ++int cpt_dump_sighand(struct cpt_context *); ++int cpt_dump_tasks(struct cpt_context *); ++ ++int rst_signal_complete(struct cpt_task_image *ti, int *exiting, struct cpt_context *ctx); ++__u32 rst_signal_flag(struct cpt_task_image *ti, struct cpt_context *ctx); ++ ++int rst_restore_process(struct cpt_context *ctx); ++int rst_process_linkage(struct cpt_context *ctx); ++ ++int check_task_state(struct task_struct *tsk, struct cpt_context *ctx); ++struct pid *alloc_vpid_safe(pid_t vnr); +Index: kernel/kernel/cpt/cpt_socket.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_socket.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,787 @@ ++/* ++ * ++ * kernel/cpt/cpt_socket.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_socket.h" ++#include "cpt_files.h" ++#include "cpt_kernel.h" ++ ++static int dump_rqueue(int owner, struct sock *sk, struct cpt_context *ctx); ++ ++ ++/* Sockets are quite different of another kinds of files. ++ * There is one simplification: only one struct file can refer to a socket, ++ * so we could store information about socket directly in section FILES as ++ * a description of a file and append f.e. array of not-yet-accepted ++ * connections of listening socket as array of auxiliary data. ++ * ++ * Complications are: ++ * 1. TCP sockets can be orphans. We have to relocate orphans as well, ++ * so we have to create special section for orphans. ++ * 2. AF_UNIX sockets are distinguished objects: set of links between ++ * AF_UNIX sockets is quite arbitrary. ++ * A. Each socket can refers to many of files due to FD passing. ++ * B. Each socket except for connected ones can have in queue skbs ++ * sent by any of sockets. ++ * ++ * 2A is relatively easy: after our tasks are frozen we make an additional ++ * recursive pass throgh set of collected files and get referenced to ++ * FD passed files. After end of recursion, all the files are treated ++ * in the same way. All they will be stored in section FILES. ++ * ++ * 2B. We have to resolve all those references at some point. ++ * It is the place where pipe-like approach to image fails. ++ * ++ * All this makes socket checkpointing quite chumbersome. ++ * Right now we collect all the sockets and assign some numeric index value ++ * to each of them. The socket section is separate and put after section FILES, ++ * so section FILES refers to sockets by index, section SOCKET refers to FILES ++ * as usual by position in image. All the refs inside socket section are ++ * by index. When restoring we read socket section, create objects to hold ++ * mappings index <-> pos. At the second pass we open sockets (simultaneosly ++ * with their pairs) and create FILE objects. ++ */ ++ ++ ++/* ====== FD passing ====== */ ++ ++/* Almost nobody does FD passing via AF_UNIX sockets, nevertheless we ++ * have to implement this. A problem is that in general case we receive ++ * skbs from an unknown context, so new files can arrive to checkpointed ++ * set of processes even after they are stopped. Well, we are going just ++ * to ignore unknown fds while doing real checkpointing. It is fair because ++ * links outside checkpointed set are going to fail anyway. ++ * ++ * ATTN: the procedure is recursive. We linearize the recursion adding ++ * newly found files to the end of file list, so they will be analyzed ++ * in the same loop. ++ */ ++ ++static int collect_one_passedfd(struct file *file, cpt_context_t * ctx) ++{ ++ struct inode *inode = file->f_dentry->d_inode; ++ struct socket *sock; ++ struct sock *sk; ++ struct sk_buff *skb; ++ ++ if (!S_ISSOCK(inode->i_mode)) ++ return -ENOTSOCK; ++ ++ sock = &container_of(inode, struct socket_alloc, vfs_inode)->socket; ++ ++ if (sock->ops->family != AF_UNIX) ++ return 0; ++ ++ sk = sock->sk; ++ ++ /* Subtle locking issue. skbs cannot be removed while ++ * we are scanning, because all the processes are stopped. ++ * They still can be added to tail of queue. Locking while ++ * we dereference skb->next is enough to resolve this. ++ * See above about collision with skbs added after we started ++ * checkpointing. ++ */ ++ ++ skb = skb_peek(&sk->sk_receive_queue); ++ while (skb && skb != (struct sk_buff*)&sk->sk_receive_queue) { ++ if (UNIXCB(skb).fp && skb->sk && ++ (!sock_flag(skb->sk, SOCK_DEAD) || unix_peer(sk) == skb->sk)) { ++ struct scm_fp_list *fpl = UNIXCB(skb).fp; ++ int i; ++ ++ for (i = fpl->count-1; i >= 0; i--) { ++ if (cpt_object_add(CPT_OBJ_FILE, fpl->fp[i], ctx) == NULL) ++ return -ENOMEM; ++ } ++ } ++ ++ spin_lock_irq(&sk->sk_receive_queue.lock); ++ skb = skb->next; ++ spin_unlock_irq(&sk->sk_receive_queue.lock); ++ } ++ ++ return 0; ++} ++ ++int cpt_collect_passedfds(cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ ++ if (S_ISSOCK(file->f_dentry->d_inode->i_mode)) { ++ int err; ++ ++ if ((err = collect_one_passedfd(file, ctx)) < 0) ++ return err; ++ } ++ } ++ ++ return 0; ++} ++ ++/* ====== End of FD passing ====== */ ++ ++/* Must be called under bh_lock_sock() */ ++ ++void clear_backlog(struct sock *sk) ++{ ++ struct sk_buff *skb = sk->sk_backlog.head; ++ ++ sk->sk_backlog.head = sk->sk_backlog.tail = NULL; ++ while (skb) { ++ struct sk_buff *next = skb->next; ++ ++ skb->next = NULL; ++ kfree_skb(skb); ++ skb = next; ++ } ++} ++ ++void release_sock_nobacklog(struct sock *sk) ++{ ++ spin_lock_bh(&(sk->sk_lock.slock)); ++ clear_backlog(sk); ++ sk->sk_lock.owned = 0; ++ if (waitqueue_active(&(sk->sk_lock.wq))) ++ wake_up(&(sk->sk_lock.wq)); ++ spin_unlock_bh(&(sk->sk_lock.slock)); ++} ++ ++int cpt_dump_skb(int type, int owner, struct sk_buff *skb, ++ struct cpt_context *ctx) ++{ ++ struct cpt_skb_image *v = cpt_get_buf(ctx); ++ loff_t saved_obj; ++ struct timeval tmptv; ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_open_object(NULL, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_SKB; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_owner = owner; ++ v->cpt_queue = type; ++ skb_get_timestamp(skb, &tmptv); ++ v->cpt_stamp = cpt_timeval_export(&tmptv); ++ v->cpt_hspace = skb->data - skb->head; ++ v->cpt_tspace = skb->end - skb->tail; ++ v->cpt_h = skb_transport_header(skb) - skb->head; ++ v->cpt_nh = skb_network_header(skb) - skb->head; ++ v->cpt_mac = skb_mac_header(skb) - skb->head; ++ BUILD_BUG_ON(sizeof(skb->cb) < sizeof(v->cpt_cb)); ++ memcpy(v->cpt_cb, skb->cb, sizeof(v->cpt_cb)); ++ if (sizeof(skb->cb) > sizeof(v->cpt_cb)) { ++ int i; ++ for (i=sizeof(v->cpt_cb); icb); i++) { ++ if (skb->cb[i]) { ++ wprintk_ctx("dirty skb cb"); ++ break; ++ } ++ } ++ } ++ v->cpt_len = skb->len; ++ v->cpt_mac_len = skb->mac_len; ++ v->cpt_csum = skb->csum; ++ v->cpt_local_df = skb->local_df; ++ v->cpt_pkt_type = skb->pkt_type; ++ v->cpt_ip_summed = skb->ip_summed; ++ v->cpt_priority = skb->priority; ++ v->cpt_protocol = skb->protocol; ++ v->cpt_security = 0; ++ v->cpt_gso_segs = skb_shinfo(skb)->gso_segs; ++ v->cpt_gso_size = skb_shinfo(skb)->gso_size; ++ if (skb_shinfo(skb)->gso_type) { ++ eprintk_ctx("skb ufo is not supported\n"); ++ return -EINVAL; ++ } ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ if (skb->len + (skb->data - skb->head) > 0) { ++ struct cpt_obj_bits ob; ++ loff_t saved_obj2; ++ ++ cpt_push_object(&saved_obj2, ctx); ++ cpt_open_object(NULL, ctx); ++ ob.cpt_next = CPT_NULL; ++ ob.cpt_object = CPT_OBJ_BITS; ++ ob.cpt_hdrlen = sizeof(ob); ++ ob.cpt_content = CPT_CONTENT_DATA; ++ ob.cpt_size = skb->len + v->cpt_hspace; ++ ++ ctx->write(&ob, sizeof(ob), ctx); ++ ++ ctx->write(skb->head, (skb->data-skb->head) + (skb->len-skb->data_len), ctx); ++ if (skb->data_len) { ++ int offset = skb->len - skb->data_len; ++ while (offset < skb->len) { ++ int copy = skb->len - offset; ++ if (copy > PAGE_SIZE) ++ copy = PAGE_SIZE; ++ (void)cpt_get_buf(ctx); ++ if (skb_copy_bits(skb, offset, ctx->tmpbuf, copy)) ++ BUG(); ++ ctx->write(ctx->tmpbuf, copy, ctx); ++ __cpt_release_buf(ctx); ++ offset += copy; ++ } ++ } ++ ++ ctx->align(ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj2, ctx); ++ } ++ ++ if (skb->sk && skb->sk->sk_family == AF_UNIX) { ++ struct scm_fp_list *fpl = UNIXCB(skb).fp; ++ ++ if (fpl) { ++ int i; ++ ++ for (i = 0; i < fpl->count; i++) { ++ struct cpt_fd_image v; ++ cpt_object_t *obj; ++ loff_t saved_obj2; ++ ++ obj = lookup_cpt_object(CPT_OBJ_FILE, fpl->fp[i], ctx); ++ ++ if (!obj) { ++ eprintk_ctx("lost passed FD\n"); ++ return -EINVAL; ++ } ++ ++ cpt_push_object(&saved_obj2, ctx); ++ cpt_open_object(NULL, ctx); ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_FILEDESC; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_VOID; ++ ++ v.cpt_fd = i; ++ v.cpt_file = obj->o_pos; ++ v.cpt_flags = 0; ++ ctx->write(&v, sizeof(v), ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj2, ctx); ++ } ++ } ++ } ++ ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ return 0; ++} ++ ++static int dump_rqueue(int idx, struct sock *sk, struct cpt_context *ctx) ++{ ++ struct sk_buff *skb; ++ struct sock *sk_cache = NULL; ++ ++ skb = skb_peek(&sk->sk_receive_queue); ++ while (skb && skb != (struct sk_buff*)&sk->sk_receive_queue) { ++ int err; ++ ++ if (sk->sk_family == AF_UNIX) { ++ cpt_object_t *obj; ++ if (skb->sk != sk_cache) { ++ idx = -1; ++ sk_cache = NULL; ++ obj = lookup_cpt_object(CPT_OBJ_SOCKET, skb->sk, ctx); ++ if (obj) { ++ idx = obj->o_index; ++ sk_cache = skb->sk; ++ } else if (unix_peer(sk) != skb->sk) ++ goto next_skb; ++ } ++ } ++ ++ err = cpt_dump_skb(CPT_SKB_RQ, idx, skb, ctx); ++ if (err) ++ return err; ++ ++next_skb: ++ spin_lock_irq(&sk->sk_receive_queue.lock); ++ skb = skb->next; ++ spin_unlock_irq(&sk->sk_receive_queue.lock); ++ } ++ return 0; ++} ++ ++static int dump_wqueue(int idx, struct sock *sk, struct cpt_context *ctx) ++{ ++ struct sk_buff *skb; ++ ++ skb = skb_peek(&sk->sk_write_queue); ++ while (skb && skb != (struct sk_buff*)&sk->sk_write_queue) { ++ int err = cpt_dump_skb(CPT_SKB_WQ, idx, skb, ctx); ++ if (err) ++ return err; ++ ++ spin_lock_irq(&sk->sk_write_queue.lock); ++ skb = skb->next; ++ spin_unlock_irq(&sk->sk_write_queue.lock); ++ } ++ return 0; ++} ++ ++void cpt_dump_sock_attr(struct sock *sk, cpt_context_t *ctx) ++{ ++ loff_t saved_obj; ++ if (sk->sk_filter) { ++ struct cpt_obj_bits v; ++ ++ cpt_push_object(&saved_obj, ctx); ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_SKFILTER; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_DATA; ++ v.cpt_size = sk->sk_filter->len*sizeof(struct sock_filter); ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ctx->write(sk->sk_filter->insns, v.cpt_size, ctx); ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ if (sk->sk_family == AF_INET || sk->sk_family == AF_INET6) { ++ cpt_push_object(&saved_obj, ctx); ++ cpt_dump_mcfilter(sk, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++} ++ ++/* Dump socket content */ ++ ++int cpt_dump_socket(cpt_object_t *obj, struct sock *sk, int index, int parent, struct cpt_context *ctx) ++{ ++ struct cpt_sock_image *v = cpt_get_buf(ctx); ++ struct socket *sock; ++ struct timeval tmptv; ++ ++ cpt_open_object(obj, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_SOCKET; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_file = CPT_NULL; ++ sock = sk->sk_socket; ++ if (sock && sock->file) { ++ cpt_object_t *tobj; ++ tobj = lookup_cpt_object(CPT_OBJ_FILE, sock->file, ctx); ++ if (tobj) ++ v->cpt_file = tobj->o_pos; ++ } ++ v->cpt_index = index; ++ v->cpt_parent = parent; ++ ++ if (sk->sk_family == AF_INET || sk->sk_family == AF_INET6) { ++ if (sock && !obj->o_lock) { ++ lockdep_off(); ++ lock_sock(sk); ++ lockdep_on(); ++ obj->o_lock = 1; ++ } ++ } ++ ++ /* Some bits stored in inode */ ++ v->cpt_ssflags = sock ? sock->flags : 0; ++ v->cpt_sstate = sock ? sock->state : 0; ++ v->cpt_passcred = sock ? test_bit(SOCK_PASSCRED, &sock->flags) : 0; ++ ++ /* Common data */ ++ v->cpt_family = sk->sk_family; ++ v->cpt_type = sk->sk_type; ++ v->cpt_state = sk->sk_state; ++ v->cpt_reuse = sk->sk_reuse; ++ v->cpt_zapped = sock_flag(sk, SOCK_ZAPPED); ++ v->cpt_shutdown = sk->sk_shutdown; ++ v->cpt_userlocks = sk->sk_userlocks; ++ v->cpt_no_check = sk->sk_no_check; ++ v->cpt_zapped = sock_flag(sk, SOCK_DBG); ++ v->cpt_rcvtstamp = sock_flag(sk, SOCK_RCVTSTAMP); ++ v->cpt_localroute = sock_flag(sk, SOCK_LOCALROUTE); ++ v->cpt_protocol = sk->sk_protocol; ++ v->cpt_err = sk->sk_err; ++ v->cpt_err_soft = sk->sk_err_soft; ++ v->cpt_max_ack_backlog = sk->sk_max_ack_backlog; ++ v->cpt_priority = sk->sk_priority; ++ v->cpt_rcvlowat = sk->sk_rcvlowat; ++ v->cpt_rcvtimeo = CPT_NULL; ++ if (sk->sk_rcvtimeo != MAX_SCHEDULE_TIMEOUT) ++ v->cpt_rcvtimeo = sk->sk_rcvtimeo > INT_MAX ? INT_MAX : sk->sk_rcvtimeo; ++ v->cpt_sndtimeo = CPT_NULL; ++ if (sk->sk_sndtimeo != MAX_SCHEDULE_TIMEOUT) ++ v->cpt_sndtimeo = sk->sk_sndtimeo > INT_MAX ? INT_MAX : sk->sk_sndtimeo; ++ v->cpt_rcvbuf = sk->sk_rcvbuf; ++ v->cpt_sndbuf = sk->sk_sndbuf; ++ v->cpt_bound_dev_if = sk->sk_bound_dev_if; ++ v->cpt_flags = sk->sk_flags; ++ v->cpt_lingertime = CPT_NULL; ++ if (sk->sk_lingertime != MAX_SCHEDULE_TIMEOUT) ++ v->cpt_lingertime = sk->sk_lingertime > INT_MAX ? INT_MAX : sk->sk_lingertime; ++ v->cpt_peer_pid = sk->sk_peercred.pid; ++ v->cpt_peer_uid = sk->sk_peercred.uid; ++ v->cpt_peer_gid = sk->sk_peercred.gid; ++ tmptv = ktime_to_timeval(sk->sk_stamp); ++ v->cpt_stamp = cpt_timeval_export(&tmptv); ++ ++ v->cpt_peer = -1; ++ v->cpt_socketpair = 0; ++ v->cpt_deleted = 0; ++ ++ v->cpt_laddrlen = 0; ++ if (sock) { ++ int alen = sizeof(v->cpt_laddr); ++ int err = sock->ops->getname(sock, (struct sockaddr*)&v->cpt_laddr, &alen, 0); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ v->cpt_laddrlen = alen; ++ } ++ v->cpt_raddrlen = 0; ++ if (sock) { ++ int alen = sizeof(v->cpt_raddr); ++ int err = sock->ops->getname(sock, (struct sockaddr*)&v->cpt_raddr, &alen, 2); ++ if (!err) ++ v->cpt_raddrlen = alen; ++ } ++ ++ if (sk->sk_family == AF_UNIX) { ++ if (unix_sk(sk)->dentry) { ++ struct dentry *d = unix_sk(sk)->dentry; ++ v->cpt_deleted = !IS_ROOT(d) && d_unhashed(d); ++ if (!v->cpt_deleted) { ++ int err = 0; ++ char *path; ++ unsigned long pg = __get_free_page(GFP_KERNEL); ++ ++ if (!pg) { ++ cpt_release_buf(ctx); ++ return -ENOMEM; ++ } ++ ++ path = d_path(d, unix_sk(sk)->mnt, (char *)pg, PAGE_SIZE); ++ ++ if (!IS_ERR(path)) { ++ int len = strlen(path); ++ if (len < 126) { ++ strcpy(((char*)v->cpt_laddr)+2, path); ++ v->cpt_laddrlen = len + 2; ++ } else { ++ wprintk_ctx("af_unix path is too long: %s (%s)\n", path, ((char*)v->cpt_laddr)+2); ++ } ++ err = cpt_verify_overmount(path, d, unix_sk(sk)->mnt, ctx); ++ } else { ++ eprintk_ctx("cannot get path of an af_unix socket\n"); ++ err = PTR_ERR(path); ++ } ++ free_page(pg); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ } ++ } ++ ++ /* If the socket is connected, find its peer. If peer is not ++ * in our table, the socket is connected to external process ++ * and we consider it disconnected. ++ */ ++ if (unix_peer(sk)) { ++ cpt_object_t *pobj; ++ pobj = lookup_cpt_object(CPT_OBJ_SOCKET, unix_peer(sk), ctx); ++ if (pobj) ++ v->cpt_peer = pobj->o_index; ++ else ++ v->cpt_shutdown = SHUTDOWN_MASK; ++ ++ if (unix_peer(unix_peer(sk)) == sk) ++ v->cpt_socketpair = 1; ++ } ++ ++ /* If the socket shares address with another socket it is ++ * child of some listening socket. Find and record it. */ ++ if (unix_sk(sk)->addr && ++ atomic_read(&unix_sk(sk)->addr->refcnt) > 1 && ++ sk->sk_state != TCP_LISTEN) { ++ cpt_object_t *pobj; ++ for_each_object(pobj, CPT_OBJ_SOCKET) { ++ struct sock *psk = pobj->o_obj; ++ if (psk->sk_family == AF_UNIX && ++ psk->sk_state == TCP_LISTEN && ++ unix_sk(psk)->addr == unix_sk(sk)->addr) { ++ v->cpt_parent = pobj->o_index; ++ break; ++ } ++ } ++ } ++ } ++ ++ if (sk->sk_family == AF_INET || sk->sk_family == AF_INET6) ++ cpt_dump_socket_in(v, sk, ctx); ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ cpt_dump_sock_attr(sk, ctx); ++ ++ dump_rqueue(index, sk, ctx); ++ if (sk->sk_family == AF_INET || sk->sk_family == AF_INET6) { ++ dump_wqueue(index, sk, ctx); ++ cpt_dump_ofo_queue(index, sk, ctx); ++ } ++ ++ if ((sk->sk_family == AF_INET || sk->sk_family == AF_INET6) ++ && sk->sk_state == TCP_LISTEN) ++ cpt_dump_synwait_queue(sk, index, ctx); ++ ++ cpt_close_object(ctx); ++ ++ if ((sk->sk_family == AF_INET || sk->sk_family == AF_INET6) ++ && sk->sk_state == TCP_LISTEN) ++ cpt_dump_accept_queue(sk, index, ctx); ++ ++ return 0; ++} ++ ++int cpt_dump_orphaned_sockets(struct cpt_context *ctx) ++{ ++ int i; ++ ++ cpt_open_section(ctx, CPT_SECT_ORPHANS); ++ ++ for (i = 0; i < tcp_hashinfo.ehash_size; i++) { ++ struct sock *sk; ++ struct hlist_node *node; ++ rwlock_t *lock = inet_ehash_lockp(&tcp_hashinfo, i); ++retry: ++ read_lock_bh(lock); ++ sk_for_each(sk, node, &tcp_hashinfo.ehash[i].chain) { ++ ++ if (sk->owner_env != get_exec_env()) ++ continue; ++ if (sk->sk_socket) ++ continue; ++ if (!sock_flag(sk, SOCK_DEAD)) ++ continue; ++ if (lookup_cpt_object(CPT_OBJ_SOCKET, sk, ctx)) ++ continue; ++ sock_hold(sk); ++ read_unlock_bh(lock); ++ ++ local_bh_disable(); ++ bh_lock_sock(sk); ++ if (sock_owned_by_user(sk)) ++ eprintk_ctx("BUG: sk locked by whom?\n"); ++ sk->sk_lock.owned = 1; ++ bh_unlock_sock(sk); ++ local_bh_enable(); ++ ++ cpt_dump_socket(NULL, sk, -1, -1, ctx); ++ ++ local_bh_disable(); ++ bh_lock_sock(sk); ++ sk->sk_lock.owned = 0; ++ clear_backlog(sk); ++ tcp_done(sk); ++ bh_unlock_sock(sk); ++ local_bh_enable(); ++ sock_put(sk); ++ ++ goto retry; ++ } ++ read_unlock_bh(lock); ++ } ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++static int can_dump(struct sock *sk, cpt_context_t *ctx) ++{ ++ switch (sk->sk_family) { ++ case AF_NETLINK: ++ if (((struct netlink_sock *)sk)->cb) { ++ eprintk_ctx("netlink socket has active callback\n"); ++ return 0; ++ } ++ break; ++ } ++ return 1; ++} ++ ++/* We are not going to block suspend when we have external AF_UNIX connections. ++ * But we cannot stop feed of new packets/connections to our environment ++ * from outside. Taking into account that it is intrincically unreliable, ++ * we collect some amount of data, but when checkpointing/restoring we ++ * are going to drop everything, which does not make sense: skbs sent ++ * by outside processes, connections from outside etc. etc. ++ */ ++ ++/* The first pass. When we see socket referenced by a file, we just ++ * add it to socket table */ ++int cpt_collect_socket(struct file *file, cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ struct socket *sock; ++ struct sock *sk; ++ ++ if (!S_ISSOCK(file->f_dentry->d_inode->i_mode)) ++ return -ENOTSOCK; ++ sock = &container_of(file->f_dentry->d_inode, struct socket_alloc, vfs_inode)->socket; ++ sk = sock->sk; ++ if (!can_dump(sk, ctx)) ++ return -EAGAIN; ++ if ((obj = cpt_object_add(CPT_OBJ_SOCKET, sk, ctx)) == NULL) ++ return -ENOMEM; ++ obj->o_parent = file; ++ ++ return 0; ++} ++ ++/* ++ * We should end with table containing: ++ * * all sockets opened by our processes in the table. ++ * * all the sockets queued in listening queues on _our_ listening sockets, ++ * which are connected to our opened sockets. ++ */ ++ ++static int collect_one_unix_listening_sock(cpt_object_t *obj, cpt_context_t * ctx) ++{ ++ struct sock *sk = obj->o_obj; ++ cpt_object_t *cobj; ++ struct sk_buff *skb; ++ ++ skb = skb_peek(&sk->sk_receive_queue); ++ while (skb && skb != (struct sk_buff*)&sk->sk_receive_queue) { ++ struct sock *lsk = skb->sk; ++ if (unix_peer(lsk) && ++ lookup_cpt_object(CPT_OBJ_SOCKET, unix_peer(lsk), ctx)) { ++ if ((cobj = cpt_object_add(CPT_OBJ_SOCKET, lsk, ctx)) == NULL) ++ return -ENOMEM; ++ cobj->o_parent = obj->o_parent; ++ } ++ spin_lock_irq(&sk->sk_receive_queue.lock); ++ skb = skb->next; ++ spin_unlock_irq(&sk->sk_receive_queue.lock); ++ } ++ ++ return 0; ++} ++ ++int cpt_index_sockets(cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ unsigned long index = 0; ++ ++ /* Collect not-yet-accepted children of listening sockets. */ ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ struct sock *sk = obj->o_obj; ++ ++ if (sk->sk_state != TCP_LISTEN) ++ continue; ++ ++ if (sk->sk_family == AF_UNIX) ++ collect_one_unix_listening_sock(obj, ctx); ++ } ++ ++ /* Assign indices to all the sockets. */ ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ struct sock *sk = obj->o_obj; ++ cpt_obj_setindex(obj, index++, ctx); ++ ++ if (sk->sk_socket && sk->sk_socket->file) { ++ cpt_object_t *tobj; ++ tobj = lookup_cpt_object(CPT_OBJ_FILE, sk->sk_socket->file, ctx); ++ if (tobj) ++ cpt_obj_setindex(tobj, obj->o_index, ctx); ++ } ++ } ++ ++ return 0; ++} ++ ++void cpt_unlock_sockets(cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ ++ lockdep_off(); ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ struct sock *sk = obj->o_obj; ++ if (sk && obj->o_lock) { ++ if (sk->sk_socket) ++ release_sock(sk); ++ } ++ } ++ lockdep_on(); ++} ++ ++void cpt_kill_sockets(cpt_context_t * ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ struct sock *sk = obj->o_obj; ++ if (sk && obj->o_lock) { ++ struct ve_struct *old_env; ++ old_env = set_exec_env(sk->owner_env); ++ cpt_kill_socket(sk, ctx); ++ if (sk->sk_socket) ++ release_sock_nobacklog(sk); ++ set_exec_env(old_env); ++ } ++ } ++} ++ ++__u32 cpt_socket_fasync(struct file *file, struct cpt_context *ctx) ++{ ++ struct fasync_struct *fa; ++ struct inode *inode = file->f_dentry->d_inode; ++ struct socket *sock; ++ ++ sock = &container_of(inode, struct socket_alloc, vfs_inode)->socket; ++ ++ for (fa = sock->fasync_list; fa; fa = fa->fa_next) { ++ if (fa->fa_file == file) ++ return fa->fa_fd; ++ } ++ return -1; ++} +Index: kernel/kernel/cpt/cpt_socket.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_socket.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,33 @@ ++struct sock; ++ ++int cpt_collect_passedfds(cpt_context_t *); ++int cpt_index_sockets(cpt_context_t *); ++int cpt_collect_socket(struct file *, cpt_context_t *); ++int cpt_dump_socket(cpt_object_t *obj, struct sock *sk, int index, int parent, struct cpt_context *ctx); ++int cpt_dump_accept_queue(struct sock *sk, int index, struct cpt_context *ctx); ++int cpt_dump_synwait_queue(struct sock *sk, int index, struct cpt_context *ctx); ++int rst_sockets(struct cpt_context *ctx); ++int rst_sockets_complete(struct cpt_context *ctx); ++int cpt_dump_orphaned_sockets(struct cpt_context *ctx); ++ ++int rst_sock_attr(loff_t *pos_p, struct sock *sk, cpt_context_t *ctx); ++struct sk_buff * rst_skb(loff_t *pos_p, __u32 *owner, __u32 *queue, struct cpt_context *ctx); ++ ++void cpt_unlock_sockets(cpt_context_t *); ++void cpt_kill_sockets(cpt_context_t *); ++ ++ ++int cpt_kill_socket(struct sock *, cpt_context_t *); ++int cpt_dump_socket_in(struct cpt_sock_image *, struct sock *, struct cpt_context*); ++int rst_socket_in(struct cpt_sock_image *si, loff_t pos, struct sock *, struct cpt_context *ctx); ++__u32 cpt_socket_fasync(struct file *file, struct cpt_context *ctx); ++int cpt_attach_accept(struct sock *lsk, struct sock *sk, cpt_context_t *); ++int rst_restore_synwait_queue(struct sock *sk, struct cpt_sock_image *si, loff_t pos, struct cpt_context *ctx); ++int cpt_dump_ofo_queue(int idx, struct sock *sk, struct cpt_context *ctx); ++int cpt_dump_skb(int type, int owner, struct sk_buff *skb, struct cpt_context *ctx); ++int cpt_dump_mcfilter(struct sock *sk, struct cpt_context *ctx); ++ ++int rst_sk_mcfilter_in(struct sock *sk, struct cpt_sockmc_image *v, ++ loff_t pos, cpt_context_t *ctx); ++int rst_sk_mcfilter_in6(struct sock *sk, struct cpt_sockmc_image *v, ++ loff_t pos, cpt_context_t *ctx); +Index: kernel/kernel/cpt/cpt_socket_in.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_socket_in.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,449 @@ ++/* ++ * ++ * kernel/cpt/cpt_socket_in.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_socket.h" ++#include "cpt_kernel.h" ++ ++static inline __u32 jiffies_export(unsigned long tmo) ++{ ++ __s32 delta = (long)(tmo - jiffies); ++ return delta; ++} ++ ++static inline __u32 tcp_jiffies_export(__u32 tmo) ++{ ++ __s32 delta = tmo - tcp_time_stamp; ++ return delta; ++} ++ ++int cpt_dump_ofo_queue(int idx, struct sock *sk, struct cpt_context *ctx) ++{ ++ struct sk_buff *skb; ++ struct tcp_sock *tp; ++ ++ if (sk->sk_type != SOCK_STREAM || sk->sk_protocol != IPPROTO_TCP) ++ return 0; ++ ++ tp = tcp_sk(sk); ++ ++ skb = skb_peek(&tp->out_of_order_queue); ++ while (skb && skb != (struct sk_buff*)&tp->out_of_order_queue) { ++ int err; ++ ++ err = cpt_dump_skb(CPT_SKB_OFOQ, idx, skb, ctx); ++ if (err) ++ return err; ++ ++ spin_lock_irq(&tp->out_of_order_queue.lock); ++ skb = skb->next; ++ spin_unlock_irq(&tp->out_of_order_queue.lock); ++ } ++ return 0; ++} ++ ++static int cpt_dump_socket_tcp(struct cpt_sock_image *si, struct sock *sk, ++ struct cpt_context *ctx) ++{ ++ struct tcp_sock *tp = tcp_sk(sk); ++ ++ si->cpt_pred_flags = tp->pred_flags; ++ si->cpt_rcv_nxt = tp->rcv_nxt; ++ si->cpt_snd_nxt = tp->snd_nxt; ++ si->cpt_snd_una = tp->snd_una; ++ si->cpt_snd_sml = tp->snd_sml; ++ si->cpt_rcv_tstamp = tcp_jiffies_export(tp->rcv_tstamp); ++ si->cpt_lsndtime = tcp_jiffies_export(tp->lsndtime); ++ si->cpt_tcp_header_len = tp->tcp_header_len; ++ si->cpt_ack_pending = inet_csk(sk)->icsk_ack.pending; ++ si->cpt_quick = inet_csk(sk)->icsk_ack.quick; ++ si->cpt_pingpong = inet_csk(sk)->icsk_ack.pingpong; ++ si->cpt_blocked = inet_csk(sk)->icsk_ack.blocked; ++ si->cpt_ato = inet_csk(sk)->icsk_ack.ato; ++ si->cpt_ack_timeout = jiffies_export(inet_csk(sk)->icsk_ack.timeout); ++ si->cpt_lrcvtime = tcp_jiffies_export(inet_csk(sk)->icsk_ack.lrcvtime); ++ si->cpt_last_seg_size = inet_csk(sk)->icsk_ack.last_seg_size; ++ si->cpt_rcv_mss = inet_csk(sk)->icsk_ack.rcv_mss; ++ si->cpt_snd_wl1 = tp->snd_wl1; ++ si->cpt_snd_wnd = tp->snd_wnd; ++ si->cpt_max_window = tp->max_window; ++ si->cpt_pmtu_cookie = inet_csk(sk)->icsk_pmtu_cookie; ++ si->cpt_mss_cache = tp->mss_cache; ++ si->cpt_mss_cache_std = tp->mss_cache; /* FIXMW was tp->mss_cache_std */ ++ si->cpt_mss_clamp = tp->rx_opt.mss_clamp; ++ si->cpt_ext_header_len = inet_csk(sk)->icsk_ext_hdr_len; ++ si->cpt_ext2_header_len = 0; ++ si->cpt_ca_state = inet_csk(sk)->icsk_ca_state; ++ si->cpt_retransmits = inet_csk(sk)->icsk_retransmits; ++ si->cpt_reordering = tp->reordering; ++ si->cpt_frto_counter = tp->frto_counter; ++ si->cpt_frto_highmark = tp->frto_highmark; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9) ++ // // si->cpt_adv_cong = tp->adv_cong; ++#endif ++ si->cpt_defer_accept = inet_csk(sk)->icsk_accept_queue.rskq_defer_accept; ++ si->cpt_backoff = inet_csk(sk)->icsk_backoff; ++ si->cpt_srtt = tp->srtt; ++ si->cpt_mdev = tp->mdev; ++ si->cpt_mdev_max = tp->mdev_max; ++ si->cpt_rttvar = tp->rttvar; ++ si->cpt_rtt_seq = tp->rtt_seq; ++ si->cpt_rto = inet_csk(sk)->icsk_rto; ++ si->cpt_packets_out = tp->packets_out; ++ si->cpt_left_out = tp->sacked_out + tp->lost_out; ++ si->cpt_retrans_out = tp->retrans_out; ++ si->cpt_lost_out = tp->lost_out; ++ si->cpt_sacked_out = tp->sacked_out; ++ si->cpt_fackets_out = tp->fackets_out; ++ si->cpt_snd_ssthresh = tp->snd_ssthresh; ++ si->cpt_snd_cwnd = tp->snd_cwnd; ++ si->cpt_snd_cwnd_cnt = tp->snd_cwnd_cnt; ++ si->cpt_snd_cwnd_clamp = tp->snd_cwnd_clamp; ++ si->cpt_snd_cwnd_used = tp->snd_cwnd_used; ++ si->cpt_snd_cwnd_stamp = tcp_jiffies_export(tp->snd_cwnd_stamp); ++ si->cpt_timeout = jiffies_export(inet_csk(sk)->icsk_timeout); ++ si->cpt_ka_timeout = 0; ++ si->cpt_rcv_wnd = tp->rcv_wnd; ++ si->cpt_rcv_wup = tp->rcv_wup; ++ si->cpt_write_seq = tp->write_seq; ++ si->cpt_pushed_seq = tp->pushed_seq; ++ si->cpt_copied_seq = tp->copied_seq; ++ si->cpt_tstamp_ok = tp->rx_opt.tstamp_ok; ++ si->cpt_wscale_ok = tp->rx_opt.wscale_ok; ++ si->cpt_sack_ok = tp->rx_opt.sack_ok; ++ si->cpt_saw_tstamp = tp->rx_opt.saw_tstamp; ++ si->cpt_snd_wscale = tp->rx_opt.snd_wscale; ++ si->cpt_rcv_wscale = tp->rx_opt.rcv_wscale; ++ si->cpt_nonagle = tp->nonagle; ++ si->cpt_keepalive_probes = tp->keepalive_probes; ++ si->cpt_rcv_tsval = tp->rx_opt.rcv_tsval; ++ si->cpt_rcv_tsecr = tp->rx_opt.rcv_tsecr; ++ si->cpt_ts_recent = tp->rx_opt.ts_recent; ++ si->cpt_ts_recent_stamp = tp->rx_opt.ts_recent_stamp; ++ si->cpt_user_mss = tp->rx_opt.user_mss; ++ si->cpt_dsack = tp->rx_opt.dsack; ++ si->cpt_eff_sacks = tp->rx_opt.eff_sacks; ++ si->cpt_sack_array[0] = tp->duplicate_sack[0].start_seq; ++ si->cpt_sack_array[1] = tp->duplicate_sack[0].end_seq; ++ si->cpt_sack_array[2] = tp->selective_acks[0].start_seq; ++ si->cpt_sack_array[3] = tp->selective_acks[0].end_seq; ++ si->cpt_sack_array[4] = tp->selective_acks[1].start_seq; ++ si->cpt_sack_array[5] = tp->selective_acks[1].end_seq; ++ si->cpt_sack_array[6] = tp->selective_acks[2].start_seq; ++ si->cpt_sack_array[7] = tp->selective_acks[2].end_seq; ++ si->cpt_sack_array[8] = tp->selective_acks[3].start_seq; ++ si->cpt_sack_array[9] = tp->selective_acks[3].end_seq; ++ si->cpt_window_clamp = tp->window_clamp; ++ si->cpt_rcv_ssthresh = tp->rcv_ssthresh; ++ si->cpt_probes_out = inet_csk(sk)->icsk_probes_out; ++ si->cpt_num_sacks = tp->rx_opt.num_sacks; ++ si->cpt_advmss = tp->advmss; ++ si->cpt_syn_retries = inet_csk(sk)->icsk_syn_retries; ++ si->cpt_ecn_flags = tp->ecn_flags; ++ si->cpt_prior_ssthresh = tp->prior_ssthresh; ++ si->cpt_high_seq = tp->high_seq; ++ si->cpt_retrans_stamp = tp->retrans_stamp; ++ si->cpt_undo_marker = tp->undo_marker; ++ si->cpt_undo_retrans = tp->undo_retrans; ++ si->cpt_urg_seq = tp->urg_seq; ++ si->cpt_urg_data = tp->urg_data; ++ si->cpt_pending = inet_csk(sk)->icsk_pending; ++ si->cpt_urg_mode = tp->urg_mode; ++ si->cpt_snd_up = tp->snd_up; ++ si->cpt_keepalive_time = tp->keepalive_time; ++ si->cpt_keepalive_intvl = tp->keepalive_intvl; ++ si->cpt_linger2 = tp->linger2; ++ ++ if (sk->sk_state != TCP_LISTEN && ++ sk->sk_state != TCP_CLOSE && ++ sock_flag(sk, SOCK_KEEPOPEN)) { ++ si->cpt_ka_timeout = jiffies_export(sk->sk_timer.expires); ++ } ++ ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ { ++ extern struct inet_connection_sock_af_ops ipv6_mapped; ++ if (sk->sk_family == AF_INET6 && ++ inet_csk(sk)->icsk_af_ops == &ipv6_mapped) ++ si->cpt_mapped = 1; ++ } ++#endif ++ ++ return 0; ++} ++ ++ ++int cpt_dump_socket_in(struct cpt_sock_image *si, struct sock *sk, ++ struct cpt_context *ctx) ++{ ++ struct inet_sock *inet = inet_sk(sk); ++ struct ipv6_pinfo *np = inet6_sk(sk); ++ ++ if (sk->sk_family == AF_INET) { ++ struct sockaddr_in *sin = ((struct sockaddr_in*)si->cpt_laddr); ++ sin->sin_family = AF_INET; ++ sin->sin_port = inet->sport; ++ sin->sin_addr.s_addr = inet->rcv_saddr; ++ si->cpt_laddrlen = sizeof(*sin); ++ } else if (sk->sk_family == AF_INET6) { ++ struct sockaddr_in6 *sin6 = ((struct sockaddr_in6*)si->cpt_laddr); ++ sin6->sin6_family = AF_INET6; ++ sin6->sin6_port = inet->sport; ++ memcpy(&sin6->sin6_addr, &np->rcv_saddr, 16); ++ si->cpt_laddrlen = sizeof(*sin6); ++ } ++ if (!inet->num) ++ si->cpt_laddrlen = 0; ++ ++ si->cpt_daddr = inet->daddr; ++ si->cpt_dport = inet->dport; ++ si->cpt_saddr = inet->saddr; ++ si->cpt_rcv_saddr = inet->rcv_saddr; ++ si->cpt_sport = inet->sport; ++ si->cpt_uc_ttl = inet->uc_ttl; ++ si->cpt_tos = inet->tos; ++ si->cpt_cmsg_flags = inet->cmsg_flags; ++ si->cpt_mc_index = inet->mc_index; ++ si->cpt_mc_addr = inet->mc_addr; ++ si->cpt_hdrincl = inet->hdrincl; ++ si->cpt_mc_ttl = inet->mc_ttl; ++ si->cpt_mc_loop = inet->mc_loop; ++ si->cpt_pmtudisc = inet->pmtudisc; ++ si->cpt_recverr = inet->recverr; ++ si->cpt_freebind = inet->freebind; ++ si->cpt_idcounter = inet->id; ++ ++ si->cpt_cork_flags = inet->cork.flags; ++ si->cpt_cork_fragsize = 0; ++ si->cpt_cork_length = inet->cork.length; ++ si->cpt_cork_addr = inet->cork.addr; ++ si->cpt_cork_saddr = inet->cork.fl.fl4_src; ++ si->cpt_cork_daddr = inet->cork.fl.fl4_dst; ++ si->cpt_cork_oif = inet->cork.fl.oif; ++ if (inet->cork.rt) { ++ si->cpt_cork_fragsize = inet->cork.fragsize; ++ si->cpt_cork_saddr = inet->cork.rt->fl.fl4_src; ++ si->cpt_cork_daddr = inet->cork.rt->fl.fl4_dst; ++ si->cpt_cork_oif = inet->cork.rt->fl.oif; ++ } ++ ++ if (sk->sk_type == SOCK_DGRAM && sk->sk_protocol == IPPROTO_UDP) { ++ struct udp_sock *up = udp_sk(sk); ++ si->cpt_udp_pending = up->pending; ++ si->cpt_udp_corkflag = up->corkflag; ++ si->cpt_udp_encap = up->encap_type; ++ si->cpt_udp_len = up->len; ++ } ++ ++ if (sk->sk_family == AF_INET6) { ++ memcpy(si->cpt_saddr6, &np->saddr, 16); ++ memcpy(si->cpt_rcv_saddr6, &np->rcv_saddr, 16); ++ memcpy(si->cpt_daddr6, &np->daddr, 16); ++ si->cpt_flow_label6 = np->flow_label; ++ si->cpt_frag_size6 = np->frag_size; ++ si->cpt_hop_limit6 = np->hop_limit; ++ si->cpt_mcast_hops6 = np->mcast_hops; ++ si->cpt_mcast_oif6 = np->mcast_oif; ++ si->cpt_rxopt6 = np->rxopt.all; ++ si->cpt_mc_loop6 = np->mc_loop; ++ si->cpt_recverr6 = np->recverr; ++ si->cpt_sndflow6 = np->sndflow; ++ si->cpt_pmtudisc6 = np->pmtudisc; ++ si->cpt_ipv6only6 = np->ipv6only; ++ si->cpt_mapped = 0; ++ } ++ ++ if (sk->sk_type == SOCK_STREAM && sk->sk_protocol == IPPROTO_TCP) ++ cpt_dump_socket_tcp(si, sk, ctx); ++ ++ return 0; ++} ++ ++int cpt_dump_accept_queue(struct sock *sk, int index, struct cpt_context *ctx) ++{ ++ struct request_sock *req; ++ ++ for (req=inet_csk(sk)->icsk_accept_queue.rskq_accept_head; req; req=req->dl_next) ++ cpt_dump_socket(NULL, req->sk, -1, index, ctx); ++ return 0; ++} ++ ++ ++static int dump_openreq(struct request_sock *req, struct sock *sk, int index, ++ struct cpt_context *ctx) ++{ ++ struct cpt_openreq_image *v = cpt_get_buf(ctx); ++ ++ cpt_open_object(NULL, ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_OPENREQ; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_VOID; ++ ++ v->cpt_rcv_isn = tcp_rsk(req)->rcv_isn; ++ v->cpt_snt_isn = tcp_rsk(req)->snt_isn; ++ v->cpt_rmt_port = inet_rsk(req)->rmt_port; ++ v->cpt_mss = req->mss; ++ // // v->cpt_family = (req->class == &or_ipv4 ? AF_INET : AF_INET6); ++ v->cpt_retrans = req->retrans; ++ v->cpt_snd_wscale = inet_rsk(req)->snd_wscale; ++ v->cpt_rcv_wscale = inet_rsk(req)->rcv_wscale; ++ v->cpt_tstamp_ok = inet_rsk(req)->tstamp_ok; ++ v->cpt_sack_ok = inet_rsk(req)->sack_ok; ++ v->cpt_wscale_ok = inet_rsk(req)->wscale_ok; ++ v->cpt_ecn_ok = inet_rsk(req)->ecn_ok; ++ v->cpt_acked = inet_rsk(req)->acked; ++ v->cpt_window_clamp = req->window_clamp; ++ v->cpt_rcv_wnd = req->rcv_wnd; ++ v->cpt_ts_recent = req->ts_recent; ++ v->cpt_expires = jiffies_export(req->expires); ++ ++ if (v->cpt_family == AF_INET) { ++ memcpy(v->cpt_loc_addr, &inet_rsk(req)->loc_addr, 4); ++ memcpy(v->cpt_rmt_addr, &inet_rsk(req)->rmt_addr, 4); ++ } else { ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ memcpy(v->cpt_loc_addr, &inet6_rsk(req)->loc_addr, 16); ++ memcpy(v->cpt_rmt_addr, &inet6_rsk(req)->rmt_addr, 16); ++ v->cpt_iif = inet6_rsk(req)->iif; ++#endif ++ } ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ cpt_close_object(ctx); ++ return 0; ++} ++ ++int cpt_dump_synwait_queue(struct sock *sk, int index, struct cpt_context *ctx) ++{ ++ struct inet_connection_sock *icsk; ++ struct listen_sock *lopt; ++ struct request_sock *req; ++ int nr_entries; ++ int i; ++ ++ icsk = inet_csk(sk); ++ lopt = icsk->icsk_accept_queue.listen_opt; ++ nr_entries = icsk->icsk_accept_queue.listen_opt->nr_table_entries; ++ ++ for (i=0; i < nr_entries; i++) { ++ for (req=lopt->syn_table[i]; req; req=req->dl_next) { ++ loff_t saved_obj; ++ cpt_push_object(&saved_obj, ctx); ++ dump_openreq(req, sk, index, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ } ++ } ++ return 0; ++} ++ ++ ++int cpt_kill_socket(struct sock *sk, cpt_context_t * ctx) ++{ ++ if (sk->sk_state != TCP_CLOSE && ++ (sk->sk_family == AF_INET || sk->sk_family == AF_INET6) && ++ sk->sk_protocol == IPPROTO_TCP) { ++ if (sk->sk_state != TCP_LISTEN) ++ tcp_set_state(sk, TCP_CLOSE); ++ else ++ sk->sk_prot->disconnect(sk, 0); ++ } ++ return 0; ++} ++ ++int cpt_dump_mcfilter(struct sock *sk, cpt_context_t *ctx) ++{ ++ struct inet_sock *inet = inet_sk(sk); ++ struct ip_mc_socklist *iml; ++ ++ for (iml = inet->mc_list; iml; iml = iml->next) { ++ struct cpt_sockmc_image smi; ++ int scnt = 0; ++ int i; ++ ++ if (iml->sflist) ++ scnt = iml->sflist->sl_count*16; ++ ++ smi.cpt_next = sizeof(smi) + scnt; ++ smi.cpt_object = CPT_OBJ_SOCK_MCADDR; ++ smi.cpt_hdrlen = sizeof(smi); ++ smi.cpt_content = CPT_CONTENT_DATA; ++ ++ smi.cpt_family = AF_INET; ++ smi.cpt_mode = iml->sfmode; ++ smi.cpt_ifindex = iml->multi.imr_ifindex; ++ memset(&smi.cpt_mcaddr, 0, sizeof(smi.cpt_mcaddr)); ++ smi.cpt_mcaddr[0] = iml->multi.imr_multiaddr.s_addr; ++ ++ ctx->write(&smi, sizeof(smi), ctx); ++ ++ for (i = 0; i < scnt; i++) { ++ u32 addr[4]; ++ memset(&addr, 0, sizeof(addr)); ++ addr[0] = iml->sflist->sl_addr[i]; ++ ctx->write(&addr, sizeof(addr), ctx); ++ } ++ } ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ if (sk->sk_family == AF_INET6) { ++ struct ipv6_mc_socklist *mcl; ++ struct ipv6_pinfo *np = inet6_sk(sk); ++ ++ for (mcl = np->ipv6_mc_list; mcl; mcl = mcl->next) { ++ struct cpt_sockmc_image smi; ++ int scnt = 0; ++ int i; ++ ++ if (mcl->sflist) ++ scnt = mcl->sflist->sl_count*16; ++ ++ smi.cpt_next = sizeof(smi) + scnt; ++ smi.cpt_object = CPT_OBJ_SOCK_MCADDR; ++ smi.cpt_hdrlen = sizeof(smi); ++ smi.cpt_content = CPT_CONTENT_DATA; ++ ++ smi.cpt_family = AF_INET6; ++ smi.cpt_mode = mcl->sfmode; ++ smi.cpt_ifindex = mcl->ifindex; ++ memcpy(&smi.cpt_mcaddr, &mcl->addr, sizeof(smi.cpt_mcaddr)); ++ ++ ctx->write(&smi, sizeof(smi), ctx); ++ for (i = 0; i < scnt; i++) ++ ctx->write(&mcl->sflist->sl_addr[i], 16, ctx); ++ } ++ } ++#endif ++ return 0; ++} +Index: kernel/kernel/cpt/cpt_syscalls.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_syscalls.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,100 @@ ++#include ++#include ++#include ++ ++#define WRAP(c, args) return sys_##c args ++#define WRAP2(c, args) int err; mm_segment_t oldfs; \ ++ oldfs = get_fs(); set_fs(KERNEL_DS); \ ++ err = sys_##c args ;\ ++ set_fs(oldfs); \ ++ return err ++ ++static inline int sc_close(int fd) ++{ ++ WRAP(close, (fd)); ++} ++ ++static inline int sc_dup2(int fd1, int fd2) ++{ ++ WRAP(dup2, (fd1, fd2)); ++} ++ ++static inline int sc_unlink(char *name) ++{ ++ WRAP2(unlink, (name)); ++} ++ ++static inline int sc_pipe(int *pfd) ++{ ++ return do_pipe(pfd); ++} ++ ++static inline int sc_mknod(char *name, int mode, int dev) ++{ ++ WRAP2(mknod, (name, mode, dev)); ++} ++ ++static inline int sc_chmod(char *name, int mode) ++{ ++ WRAP2(mkdir, (name, mode)); ++} ++ ++static inline int sc_chown(char *name, int uid, int gid) ++{ ++ WRAP2(chown, (name, uid, gid)); ++} ++ ++static inline int sc_mkdir(char *name, int mode) ++{ ++ WRAP2(mkdir, (name, mode)); ++} ++ ++static inline int sc_rmdir(char *name) ++{ ++ WRAP2(rmdir, (name)); ++} ++ ++static inline int sc_mount(char *mntdev, char *mntpnt, char *type, unsigned long flags) ++{ ++ WRAP2(mount, (mntdev ? : "none", mntpnt, type, flags, NULL)); ++} ++ ++static inline int sc_mprotect(unsigned long start, size_t len, ++ unsigned long prot) ++{ ++ WRAP(mprotect, (start, len, prot)); ++} ++ ++static inline int sc_mlock(unsigned long start, size_t len) ++{ ++ WRAP(mlock, (start, len)); ++} ++ ++static inline int sc_munlock(unsigned long start, size_t len) ++{ ++ WRAP(munlock, (start, len)); ++} ++ ++static inline int sc_remap_file_pages(unsigned long start, size_t len, ++ unsigned long prot, unsigned long pgoff, ++ unsigned long flags) ++{ ++ WRAP(remap_file_pages, (start, len, prot, pgoff, flags)); ++} ++ ++static inline int sc_waitx(int pid, int opt, int *stat_addr) ++{ ++ WRAP(wait4, (pid, stat_addr, opt, NULL)); ++} ++ ++static inline int sc_flock(int fd, int flags) ++{ ++ WRAP(flock, (fd, flags)); ++} ++ ++static inline int sc_open(char* path, int flags, int mode) ++{ ++ WRAP(open, (path, flags, mode)); ++} ++ ++extern int sc_execve(char *cms, char **argv, char **env); +Index: kernel/kernel/cpt/cpt_sysvipc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_sysvipc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,403 @@ ++/* ++ * ++ * kernel/cpt/cpt_sysvipc.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_kernel.h" ++ ++struct _warg { ++ struct file *file; ++ struct cpt_sysvshm_image *v; ++}; ++ ++static int dump_one_shm(struct shmid_kernel *shp, void *arg) ++{ ++ struct _warg *warg = arg; ++ struct cpt_sysvshm_image *v = (struct cpt_sysvshm_image *)warg->v; ++ ++ if (shp->shm_file != warg->file) ++ return 0; ++ ++ v->cpt_key = shp->shm_perm.key; ++ v->cpt_uid = shp->shm_perm.uid; ++ v->cpt_gid = shp->shm_perm.gid; ++ v->cpt_cuid = shp->shm_perm.cuid; ++ v->cpt_cgid = shp->shm_perm.cgid; ++ v->cpt_mode = shp->shm_perm.mode; ++ v->cpt_seq = shp->shm_perm.seq; ++ ++ v->cpt_id = shp->shm_perm.id; ++ v->cpt_segsz = shp->shm_segsz; ++ v->cpt_atime = shp->shm_atim; ++ v->cpt_ctime = shp->shm_ctim; ++ v->cpt_dtime = shp->shm_dtim; ++ v->cpt_creator = shp->shm_cprid; ++ v->cpt_last = shp->shm_lprid; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9) ++ v->cpt_mlockuser = shp->mlock_user ? shp->mlock_user->uid : -1; ++#else ++ v->cpt_mlockuser = -1; ++#endif ++ return 1; ++} ++ ++int cpt_dump_content_sysvshm(struct file *file, struct cpt_context *ctx) ++{ ++ struct cpt_sysvshm_image *v = cpt_get_buf(ctx); ++ struct _warg warg; ++ ++ v->cpt_next = sizeof(*v); ++ v->cpt_object = CPT_OBJ_SYSV_SHM; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_VOID; ++ ++ warg.file = file; ++ warg.v = v; ++ if (sysvipc_walk_shm(dump_one_shm, &warg) == 0) { ++ cpt_release_buf(ctx); ++ return -ESRCH; ++ } ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ return 0; ++} ++ ++ ++int match_sem(int id, struct sem_array *sema, void *arg) ++{ ++ if (id != (unsigned long)arg) ++ return 0; ++ return sema->sem_nsems + 1; ++} ++ ++static int get_sem_nsem(int id, cpt_context_t *ctx) ++{ ++ int res; ++ res = sysvipc_walk_sem(match_sem, (void*)(unsigned long)id); ++ if (res > 0) ++ return res - 1; ++ eprintk_ctx("get_sem_nsem: SYSV semaphore %d not found\n", id); ++ return -ESRCH; ++} ++ ++static int dump_one_semundo(struct sem_undo *su, struct cpt_context *ctx) ++{ ++ struct cpt_sysvsem_undo_image v; ++ loff_t saved_obj; ++ ++ cpt_open_object(NULL, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_SYSVSEM_UNDO_REC; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_SEMUNDO; ++ v.cpt_id = su->semid; ++ v.cpt_nsem = get_sem_nsem(su->semid, ctx); ++ if ((int)v.cpt_nsem < 0) ++ return -ESRCH; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ ctx->write(su->semadj, v.cpt_nsem*sizeof(short), ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ return 0; ++} ++ ++struct sem_warg { ++ int last_id; ++ struct cpt_sysvsem_image *v; ++}; ++ ++static int dump_one_sem(int id, struct sem_array *sma, void *arg) ++{ ++ struct sem_warg * warg = (struct sem_warg *)arg; ++ struct cpt_sysvsem_image *v = warg->v; ++ int i; ++ ++ if (warg->last_id != -1) { ++ if ((id % IPCMNI) <= warg->last_id) ++ return 0; ++ } ++ ++ v->cpt_next = sizeof(*v); ++ v->cpt_object = CPT_OBJ_SYSV_SEM; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_SEMARRAY; ++ ++ v->cpt_key = sma->sem_perm.key; ++ v->cpt_uid = sma->sem_perm.uid; ++ v->cpt_gid = sma->sem_perm.gid; ++ v->cpt_cuid = sma->sem_perm.cuid; ++ v->cpt_cgid = sma->sem_perm.cgid; ++ v->cpt_mode = sma->sem_perm.mode; ++ v->cpt_seq = sma->sem_perm.seq; ++ ++ v->cpt_id = id; ++ v->cpt_ctime = sma->sem_ctime; ++ v->cpt_otime = sma->sem_otime; ++ ++ for (i=0; isem_nsems; i++) { ++ struct { ++ __u32 semval; ++ __u32 sempid; ++ } *s = (void*)v + v->cpt_next; ++ if (v->cpt_next >= PAGE_SIZE - sizeof(*s)) ++ return -EINVAL; ++ s->semval = sma->sem_base[i].semval; ++ s->sempid = sma->sem_base[i].sempid; ++ v->cpt_next += sizeof(*s); ++ } ++ ++ warg->last_id = id % IPCMNI; ++ return 1; ++} ++ ++ ++int cpt_dump_sysvsem(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ struct sem_warg warg; ++ ++ /* Dumping semaphores is quite tricky because we cannot ++ * write to dump file under lock inside sysvipc_walk_sem(). ++ */ ++ cpt_open_section(ctx, CPT_SECT_SYSV_SEM); ++ warg.last_id = -1; ++ warg.v = cpt_get_buf(ctx); ++ for (;;) { ++ if (sysvipc_walk_sem(dump_one_sem, &warg) <= 0) ++ break; ++ ctx->write(warg.v, warg.v->cpt_next, ctx); ++ } ++ cpt_release_buf(ctx); ++ cpt_close_section(ctx); ++ ++ cpt_open_section(ctx, CPT_SECT_SYSVSEM_UNDO); ++ for_each_object(obj, CPT_OBJ_SYSVSEM_UNDO) { ++ struct sem_undo_list *semu = obj->o_obj; ++ struct sem_undo *su; ++ struct cpt_object_hdr v; ++ loff_t saved_obj; ++ ++ cpt_open_object(obj, ctx); ++ ++ v.cpt_next = CPT_NULL; ++ v.cpt_object = CPT_OBJ_SYSVSEM_UNDO; ++ v.cpt_hdrlen = sizeof(v); ++ v.cpt_content = CPT_CONTENT_ARRAY; ++ ++ ctx->write(&v, sizeof(v), ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ for (su = semu->proc_list; su; su = su->proc_next) { ++ if (su->semid != -1) { ++ int err; ++ err = dump_one_semundo(su, ctx); ++ if (err < 0) ++ return err; ++ } ++ } ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ } ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++struct msg_warg { ++ int last_id; ++ struct msg_queue *msq; ++ struct cpt_sysvmsg_image *v; ++}; ++ ++static int dump_one_msg(int id, struct msg_queue *msq, void *arg) ++{ ++ struct msg_warg * warg = (struct msg_warg *)arg; ++ struct cpt_sysvmsg_image *v = warg->v; ++ ++ if (warg->last_id != -1) { ++ if ((id % IPCMNI) <= warg->last_id) ++ return 0; ++ } ++ ++ v->cpt_next = sizeof(*v); ++ v->cpt_object = CPT_OBJ_SYSVMSG; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_key = msq->q_perm.key; ++ v->cpt_uid = msq->q_perm.uid; ++ v->cpt_gid = msq->q_perm.gid; ++ v->cpt_cuid = msq->q_perm.cuid; ++ v->cpt_cgid = msq->q_perm.cgid; ++ v->cpt_mode = msq->q_perm.mode; ++ v->cpt_seq = msq->q_perm.seq; ++ ++ v->cpt_id = id; ++ v->cpt_stime = msq->q_stime; ++ v->cpt_rtime = msq->q_rtime; ++ v->cpt_ctime = msq->q_ctime; ++ v->cpt_last_sender = msq->q_lspid; ++ v->cpt_last_receiver = msq->q_lrpid; ++ v->cpt_qbytes = msq->q_qbytes; ++ ++ warg->msq = msq; ++ warg->last_id = id % IPCMNI; ++ return 1; ++} ++ ++static int do_store(void * src, int len, int offset, void * data) ++{ ++ cpt_context_t * ctx = data; ++ ctx->write(src, len, ctx); ++ return 0; ++} ++ ++static void cpt_dump_one_sysvmsg(struct msg_msg *m, cpt_context_t * ctx) ++{ ++ loff_t saved_obj; ++ struct cpt_sysvmsg_msg_image mv; ++ ++ cpt_open_object(NULL, ctx); ++ mv.cpt_next = CPT_NULL; ++ mv.cpt_object = CPT_OBJ_SYSVMSG_MSG; ++ mv.cpt_hdrlen = sizeof(mv); ++ mv.cpt_content = CPT_CONTENT_DATA; ++ ++ mv.cpt_type = m->m_type; ++ mv.cpt_size = m->m_ts; ++ ++ ctx->write(&mv, sizeof(mv), ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ sysv_msg_store(m, do_store, m->m_ts, ctx); ++ cpt_pop_object(&saved_obj, ctx); ++ cpt_close_object(ctx); ++} ++ ++int cpt_dump_sysvmsg(struct cpt_context *ctx) ++{ ++ struct msg_warg warg; ++ ++ /* Dumping msg queues is tricky because we cannot ++ * write to dump file under lock inside sysvipc_walk_msg(). ++ * ++ * And even worse, we have to access msg list in an unserialized ++ * context. It is fragile. But VE is still frozen, remember? ++ */ ++ cpt_open_section(ctx, CPT_SECT_SYSV_MSG); ++ warg.last_id = -1; ++ warg.v = cpt_get_buf(ctx); ++ for (;;) { ++ loff_t saved_obj; ++ struct msg_msg * m; ++ ++ if (sysvipc_walk_msg(dump_one_msg, &warg) <= 0) ++ break; ++ ++ cpt_open_object(NULL, ctx); ++ ++ ctx->write(warg.v, warg.v->cpt_next, ctx); ++ ++ cpt_push_object(&saved_obj, ctx); ++ list_for_each_entry(m, &warg.msq->q_messages, m_list) { ++ cpt_dump_one_sysvmsg(m, ctx); ++ } ++ cpt_pop_object(&saved_obj, ctx); ++ ++ cpt_close_object(ctx); ++ } ++ cpt_release_buf(ctx); ++ cpt_close_section(ctx); ++ return 0; ++} ++ ++static int cpt_collect_sysvsem_undo(cpt_context_t *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ if (tsk->exit_state) { ++ /* ipc/sem.c forgets to clear tsk->sysvsem.undo_list ++ * on exit. Grrr... */ ++ continue; ++ } ++ if (tsk->sysvsem.undo_list && ++ cpt_object_add(CPT_OBJ_SYSVSEM_UNDO, tsk->sysvsem.undo_list, ctx) == NULL) ++ return -ENOMEM; ++ } ++ ++ for_each_object(obj, CPT_OBJ_SYSVSEM_UNDO) { ++ struct sem_undo_list *semu = obj->o_obj; ++ ++ if (atomic_read(&semu->refcnt) != obj->o_count) { ++ eprintk_ctx("sem_undo_list is referenced outside %d %d\n", obj->o_count, atomic_read(&semu->refcnt)); ++ return -EBUSY; ++ } ++ } ++ return 0; ++} ++ ++static int collect_one_shm(struct shmid_kernel *shp, void *arg) ++{ ++ cpt_context_t *ctx = arg; ++ ++ if (__cpt_object_add(CPT_OBJ_FILE, shp->shm_file, GFP_ATOMIC, ctx) == NULL) ++ return -ENOMEM; ++ return 0; ++} ++ ++int cpt_collect_sysvshm(cpt_context_t * ctx) ++{ ++ int err; ++ ++ err = sysvipc_walk_shm(collect_one_shm, ctx); ++ ++ return err < 0 ? err : 0; ++} ++ ++int cpt_collect_sysv(cpt_context_t * ctx) ++{ ++ int err; ++ ++ err = cpt_collect_sysvsem_undo(ctx); ++ if (err) ++ return err; ++ err = cpt_collect_sysvshm(ctx); ++ if (err) ++ return err; ++ ++ return 0; ++} +Index: kernel/kernel/cpt/cpt_tty.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_tty.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,215 @@ ++/* ++ * ++ * kernel/cpt/cpt_tty.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++/* We must support at least N_TTY. */ ++ ++int cpt_dump_content_tty(struct file *file, struct cpt_context *ctx) ++{ ++ struct tty_struct *tty = file->private_data; ++ cpt_object_t *obj; ++ struct cpt_obj_ref o; ++ loff_t saved_pos; ++ ++ obj = lookup_cpt_object(CPT_OBJ_TTY, tty, ctx); ++ if (!obj) ++ return -EINVAL; ++ ++ cpt_push_object(&saved_pos, ctx); ++ ++ o.cpt_next = sizeof(o); ++ o.cpt_object = CPT_OBJ_REF; ++ o.cpt_hdrlen = sizeof(o); ++ o.cpt_content = CPT_CONTENT_VOID; ++ o.cpt_pos = obj->o_pos; ++ ctx->write(&o, sizeof(o), ctx); ++ ++ cpt_pop_object(&saved_pos, ctx); ++ ++ return 0; ++} ++ ++int cpt_collect_tty(struct file *file, cpt_context_t * ctx) ++{ ++ struct tty_struct *tty = file->private_data; ++ ++ if (tty) { ++ if (cpt_object_add(CPT_OBJ_TTY, tty, ctx) == NULL) ++ return -ENOMEM; ++ if (tty->link) { ++ cpt_object_t *obj; ++ ++ obj = cpt_object_add(CPT_OBJ_TTY, tty->link, ctx); ++ if (obj == NULL) ++ return -ENOMEM; ++ /* Undo o_count, tty->link is not a reference */ ++ obj->o_count--; ++ } ++ } ++ return 0; ++} ++ ++int cpt_dump_tty(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct tty_struct *tty = obj->o_obj; ++ struct cpt_tty_image *v; ++ ++ if (tty->link) { ++ if (lookup_cpt_object(CPT_OBJ_TTY, tty->link, ctx) == NULL) { ++ eprintk_ctx("orphan pty %s %d\n", tty->name, tty->driver->subtype == PTY_TYPE_SLAVE); ++ return -EINVAL; ++ } ++ if (tty->link->link != tty) { ++ eprintk_ctx("bad pty pair\n"); ++ return -EINVAL; ++ } ++ if (tty->driver->type == TTY_DRIVER_TYPE_PTY && ++ tty->driver->subtype == PTY_TYPE_SLAVE && ++ tty->link->count) ++ obj->o_count++; ++ } ++ if (obj->o_count != tty->count) { ++ eprintk_ctx("tty %s is referenced outside %d %d\n", tty->name, obj->o_count, tty->count); ++ return -EBUSY; ++ } ++ ++ cpt_open_object(obj, ctx); ++ ++ v = cpt_get_buf(ctx); ++ v->cpt_next = -1; ++ v->cpt_object = CPT_OBJ_TTY; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_ARRAY; ++ ++ v->cpt_index = tty->index; ++ v->cpt_link = -1; ++ if (tty->link) ++ v->cpt_link = tty->link->index; ++ v->cpt_drv_type = tty->driver->type; ++ v->cpt_drv_subtype = tty->driver->subtype; ++ v->cpt_drv_flags = tty->driver->flags; ++ v->cpt_packet = tty->packet; ++ v->cpt_stopped = tty->stopped; ++ v->cpt_hw_stopped = tty->hw_stopped; ++ v->cpt_flow_stopped = tty->flow_stopped; ++ v->cpt_flags = tty->flags; ++ v->cpt_ctrl_status = tty->ctrl_status; ++ v->cpt_canon_data = tty->canon_data; ++ v->cpt_canon_head = tty->canon_head - tty->read_tail; ++ v->cpt_canon_column = tty->canon_column; ++ v->cpt_column = tty->column; ++ v->cpt_erasing = tty->erasing; ++ v->cpt_lnext = tty->lnext; ++ v->cpt_icanon = tty->icanon; ++ v->cpt_raw = tty->raw; ++ v->cpt_real_raw = tty->real_raw; ++ v->cpt_closing = tty->closing; ++ v->cpt_minimum_to_wake = tty->minimum_to_wake; ++ v->cpt_pgrp = 0; ++ if (tty->pgrp) { ++ v->cpt_pgrp = pid_vnr(tty->pgrp); ++ if ((int)v->cpt_pgrp < 0) { ++ dprintk_ctx("cannot map tty->pgrp %d -> %d\n", pid_vnr(tty->pgrp), (int)v->cpt_pgrp); ++ v->cpt_pgrp = -1; ++ } ++ } ++ v->cpt_session = 0; ++ if (tty->session) { ++ v->cpt_session = pid_vnr(tty->session); ++ if ((int)v->cpt_session < 0) { ++ eprintk_ctx("cannot map tty->session %d -> %d\n", pid_nr(tty->session), (int)v->cpt_session); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ } ++ memcpy(v->cpt_name, tty->name, 64); ++ v->cpt_ws_row = tty->winsize.ws_row; ++ v->cpt_ws_col = tty->winsize.ws_col; ++ v->cpt_ws_prow = tty->winsize.ws_ypixel; ++ v->cpt_ws_pcol = tty->winsize.ws_xpixel; ++ if (tty->termios == NULL) { ++ eprintk_ctx("NULL termios"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ v->cpt_c_line = tty->termios->c_line; ++ v->cpt_c_iflag = tty->termios->c_iflag; ++ v->cpt_c_oflag = tty->termios->c_oflag; ++ v->cpt_c_cflag = tty->termios->c_cflag; ++ v->cpt_c_lflag = tty->termios->c_lflag; ++ memcpy(v->cpt_c_cc, tty->termios->c_cc, NCCS); ++ if (NCCS < 32) ++ memset(v->cpt_c_cc + NCCS, 255, 32 - NCCS); ++ memcpy(v->cpt_read_flags, tty->read_flags, sizeof(v->cpt_read_flags)); ++ ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ if (tty->read_buf && tty->read_cnt) { ++ struct cpt_obj_bits *v = cpt_get_buf(ctx); ++ loff_t saved_pos; ++ ++ cpt_push_object(&saved_pos, ctx); ++ cpt_open_object(NULL, ctx); ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_BITS; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_DATA; ++ v->cpt_size = tty->read_cnt; ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_release_buf(ctx); ++ ++ if (tty->read_cnt) { ++ int n = min(tty->read_cnt, N_TTY_BUF_SIZE - tty->read_tail); ++ ctx->write(tty->read_buf + tty->read_tail, n, ctx); ++ if (tty->read_cnt > n) ++ ctx->write(tty->read_buf, tty->read_cnt-n, ctx); ++ ctx->align(ctx); ++ } ++ ++ cpt_close_object(ctx); ++ cpt_pop_object(&saved_pos, ctx); ++ } ++ ++ cpt_close_object(ctx); ++ ++ return 0; ++} ++ ++__u32 cpt_tty_fasync(struct file *file, struct cpt_context *ctx) ++{ ++ struct tty_struct * tty; ++ struct fasync_struct *fa; ++ ++ tty = (struct tty_struct *)file->private_data; ++ ++ for (fa = tty->fasync; fa; fa = fa->fa_next) { ++ if (fa->fa_file == file) ++ return fa->fa_fd; ++ } ++ return -1; ++} +Index: kernel/kernel/cpt/cpt_ubc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_ubc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,132 @@ ++/* ++ * ++ * kernel/cpt/cpt_ubc.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++cpt_object_t *cpt_add_ubc(struct user_beancounter *bc, struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ obj = cpt_object_add(CPT_OBJ_UBC, bc, ctx); ++ if (obj != NULL) { ++ if (obj->o_count == 1) ++ get_beancounter(bc); ++ if (bc->parent != NULL && obj->o_parent == NULL) ++ obj->o_parent = cpt_add_ubc(bc->parent, ctx); ++ } ++ return obj; ++} ++ ++__u64 cpt_lookup_ubc(struct user_beancounter *bc, struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ obj = lookup_cpt_object(CPT_OBJ_UBC, bc, ctx); ++ if (obj == NULL) { ++ char buf[48]; ++ print_ub_uid(bc, buf, sizeof(buf)); ++ eprintk("CPT: unknown ub %s (%p)\n", buf, bc); ++ dump_stack(); ++ return CPT_NULL; ++ } ++ return obj->o_pos; ++} ++ ++static void dump_one_bc_parm(struct cpt_ubparm *dmp, struct ubparm *prm, ++ int held) ++{ ++ dmp->barrier = (prm->barrier < UB_MAXVALUE ? prm->barrier : CPT_NULL); ++ dmp->limit = (prm->limit < UB_MAXVALUE ? prm->limit : CPT_NULL); ++ dmp->held = (held ? prm->held : CPT_NULL); ++ dmp->maxheld = prm->maxheld; ++ dmp->minheld = prm->minheld; ++ dmp->failcnt = prm->failcnt; ++} ++ ++static int dump_one_bc(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct user_beancounter *bc; ++ struct cpt_beancounter_image *v; ++ int i; ++ ++ bc = obj->o_obj; ++ v = cpt_get_buf(ctx); ++ ++ v->cpt_next = CPT_NULL; ++ v->cpt_object = CPT_OBJ_UBC; ++ v->cpt_hdrlen = sizeof(*v); ++ v->cpt_content = CPT_CONTENT_VOID; ++ ++ if (obj->o_parent != NULL) ++ v->cpt_parent = ((cpt_object_t *)obj->o_parent)->o_pos; ++ else ++ v->cpt_parent = CPT_NULL; ++ v->cpt_id = (obj->o_parent != NULL) ? bc->ub_uid : 0; ++ for (i = 0; i < UB_RESOURCES; i++) { ++ dump_one_bc_parm(v->cpt_parms + i * 2, bc->ub_parms + i, 0); ++ dump_one_bc_parm(v->cpt_parms + i * 2 + 1, bc->ub_store + i, 1); ++ } ++ memset(v->cpt_parms + UB_RESOURCES * 2, 0, ++ sizeof(v->cpt_parms) ++ - UB_RESOURCES * 2 * sizeof(v->cpt_parms[0])); ++ ++ cpt_open_object(obj, ctx); ++ ctx->write(v, sizeof(*v), ctx); ++ cpt_close_object(ctx); ++ ++ cpt_release_buf(ctx); ++ return 0; ++} ++ ++int cpt_dump_ubc(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ int skipped; ++ int top; ++ ++ cpt_open_section(ctx, CPT_SECT_UBC); ++ ++ do { ++ skipped = 0; ++ top = 0; ++ for_each_object(obj, CPT_OBJ_UBC) { ++ if (obj->o_parent == NULL) ++ top++; ++ if (obj->o_pos != CPT_NULL) ++ continue; ++ if (obj->o_parent != NULL && ++ ((cpt_object_t *)obj->o_parent)->o_pos == CPT_NULL) ++ skipped++; ++ else ++ dump_one_bc(obj, ctx); ++ } ++ } while (skipped && (top < 2)); ++ ++ cpt_close_section(ctx); ++ if (top > 1) { ++ eprintk_ctx("More than one top level ub exist"); ++ return -EINVAL; ++ } ++ ++ return 0; ++} ++ ++void cpt_finish_ubc(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_UBC) ++ put_beancounter(obj->o_obj); ++} +Index: kernel/kernel/cpt/cpt_ubc.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_ubc.h 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,23 @@ ++#ifdef CONFIG_BEANCOUNTERS ++cpt_object_t *cpt_add_ubc(struct user_beancounter *bc, struct cpt_context *ctx); ++__u64 cpt_lookup_ubc(struct user_beancounter *bc, struct cpt_context *ctx); ++int cpt_dump_ubc(struct cpt_context *ctx); ++ ++struct user_beancounter *rst_lookup_ubc(__u64 pos, struct cpt_context *ctx); ++int rst_undump_ubc(struct cpt_context *ctx); ++ ++void cpt_finish_ubc(struct cpt_context *ctx); ++void rst_finish_ubc(struct cpt_context *ctx); ++void copy_one_ubparm(struct ubparm *from, struct ubparm *to, int bc_parm_id); ++void set_one_ubparm_to_max(struct ubparm *ubprm, int bc_parm_id); ++#else ++static int inline cpt_dump_ubc(struct cpt_context *ctx) ++{ return 0; } ++static int inline rst_undump_ubc(struct cpt_context *ctx) ++{ return 0; } ++static void inline cpt_finish_ubc(struct cpt_context *ctx) ++{ return; } ++static void inline rst_finish_ubc(struct cpt_context *ctx) ++{ return; } ++#endif ++ +Index: kernel/kernel/cpt/cpt_x8664.S +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/cpt_x8664.S 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,67 @@ ++#define ASSEMBLY 1 ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ .code64 ++ ++ .macro FAKE_STACK_FRAME child_rip ++ /* push in order ss, rsp, eflags, cs, rip */ ++ xorq %rax, %rax ++ pushq %rax /* ss */ ++ pushq %rax /* rsp */ ++ pushq $(1<<9) /* eflags - interrupts on */ ++ pushq $__KERNEL_CS /* cs */ ++ pushq \child_rip /* rip */ ++ pushq %rax /* orig rax */ ++ .endm ++ ++ .macro UNFAKE_STACK_FRAME ++ addq $8*6, %rsp ++ .endm ++ ++ENTRY(asm_kernel_thread) ++ CFI_STARTPROC ++ FAKE_STACK_FRAME $child_rip ++ SAVE_ALL ++ ++ # rdi: flags, rsi: usp, rdx: will be &pt_regs ++ movq %rdx,%rdi ++ orq $0x00800000,%rdi ++ movq $-1, %rsi ++ movq %rsp, %rdx ++ ++ xorl %r8d,%r8d ++ xorl %r9d,%r9d ++ pushq %rcx ++ call do_fork_pid ++ addq $8, %rsp ++ /* call do_fork */ ++ movq %rax,RAX(%rsp) ++ xorl %edi,%edi ++ RESTORE_ALL ++ UNFAKE_STACK_FRAME ++ ret ++ CFI_ENDPROC ++ENDPROC(asm_kernel_thread) ++ ++child_rip: ++ pushq $0 # fake return address ++ CFI_STARTPROC ++ movq %rdi, %rax ++ movq %rsi, %rdi ++ call *%rax ++ movq %rax, %rdi ++ call do_exit ++ CFI_ENDPROC ++ENDPROC(child_rip) ++ +Index: kernel/kernel/cpt/rst_conntrack.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_conntrack.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,283 @@ ++/* ++ * ++ * kernel/cpt/rst_conntrack.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#if defined(CONFIG_VE_IPTABLES) && \ ++ (defined(CONFIG_IP_NF_CONNTRACK) || defined(CONFIG_IP_NF_CONNTRACK_MODULE)) ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define ASSERT_READ_LOCK(x) do { } while (0) ++#define ASSERT_WRITE_LOCK(x) do { } while (0) ++ ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++struct ct_holder ++{ ++ struct ct_holder *next; ++ struct ip_conntrack *ct; ++ int index; ++}; ++ ++static void decode_tuple(struct cpt_ipct_tuple *v, struct ip_conntrack_tuple *tuple, int dir) ++{ ++ tuple->dst.ip = v->cpt_dst; ++ tuple->dst.u.all = v->cpt_dstport; ++ tuple->dst.protonum = v->cpt_protonum; ++ tuple->dst.dir = v->cpt_dir; ++ if (dir != tuple->dst.dir) ++ wprintk("dir != tuple->dst.dir\n"); ++ ++ tuple->src.ip = v->cpt_src; ++ tuple->src.u.all = v->cpt_srcport; ++} ++ ++ ++static int undump_expect_list(struct ip_conntrack *ct, ++ struct cpt_ip_conntrack_image *ci, ++ loff_t pos, struct ct_holder *ct_list, ++ cpt_context_t *ctx) ++{ ++ loff_t end; ++ int err; ++ ++ end = pos + ci->cpt_next; ++ pos += ci->cpt_hdrlen; ++ while (pos < end) { ++ struct cpt_ip_connexpect_image v; ++ struct ip_conntrack_expect *exp; ++ struct ip_conntrack *sibling; ++ ++ err = rst_get_object(CPT_OBJ_NET_CONNTRACK_EXPECT, pos, &v, ctx); ++ if (err) ++ return err; ++ ++ sibling = NULL; ++ if (v.cpt_sibling_conntrack) { ++ struct ct_holder *c; ++ ++ for (c = ct_list; c; c = c->next) { ++ if (c->index == v.cpt_sibling_conntrack) { ++ sibling = c->ct; ++ break; ++ } ++ } ++ if (!sibling) { ++ eprintk_ctx("lost sibling of expectation\n"); ++ return -EINVAL; ++ } ++ } ++ ++ write_lock_bh(&ip_conntrack_lock); ++ ++ /* It is possible. Helper module could be just unregistered, ++ * if expectation were on the list, it would be destroyed. */ ++ if (ct->helper == NULL) { ++ write_unlock_bh(&ip_conntrack_lock); ++ dprintk_ctx("conntrack: no helper and non-trivial expectation\n"); ++ continue; ++ } ++ ++ exp = ip_conntrack_expect_alloc(NULL); ++ if (exp == NULL) { ++ write_unlock_bh(&ip_conntrack_lock); ++ return -ENOMEM; ++ } ++ ++ if (ct->helper->timeout && !del_timer(&exp->timeout)) { ++ /* Dying already. We can do nothing. */ ++ write_unlock_bh(&ip_conntrack_lock); ++ dprintk_ctx("conntrack expectation is dying\n"); ++ continue; ++ } ++ ++ decode_tuple(&v.cpt_tuple, &exp->tuple, 0); ++ decode_tuple(&v.cpt_mask, &exp->mask, 0); ++ ++ exp->master = ct; ++ nf_conntrack_get(&ct->ct_general); ++ ip_conntrack_expect_insert(exp); ++#if 0 ++ if (sibling) { ++ exp->sibling = sibling; ++ sibling->master = exp; ++ LIST_DELETE(&ve_ip_conntrack_expect_list, exp); ++ ct->expecting--; ++ nf_conntrack_get(&master_ct(sibling)->infos[0]); ++ } else ++#endif ++ if (ct->helper->timeout) { ++ exp->timeout.expires = jiffies + v.cpt_timeout; ++ add_timer(&exp->timeout); ++ } ++ write_unlock_bh(&ip_conntrack_lock); ++ ++ pos += v.cpt_next; ++ } ++ return 0; ++} ++ ++static int undump_one_ct(struct cpt_ip_conntrack_image *ci, loff_t pos, ++ struct ct_holder **ct_list, cpt_context_t *ctx) ++{ ++ int err = 0; ++ struct ip_conntrack *conntrack; ++ struct ct_holder *c; ++ struct ip_conntrack_tuple orig, repl; ++ ++ c = kmalloc(sizeof(struct ct_holder), GFP_KERNEL); ++ if (c == NULL) ++ return -ENOMEM; ++ ++ decode_tuple(&ci->cpt_tuple[0], &orig, 0); ++ decode_tuple(&ci->cpt_tuple[1], &repl, 1); ++ ++ conntrack = ip_conntrack_alloc(&orig, &repl, get_exec_env()->_ip_conntrack->ub); ++ if (!conntrack || IS_ERR(conntrack)) { ++ kfree(c); ++ return -ENOMEM; ++ } ++ ++ c->ct = conntrack; ++ c->next = *ct_list; ++ *ct_list = c; ++ c->index = ci->cpt_index; ++ ++ decode_tuple(&ci->cpt_tuple[0], &conntrack->tuplehash[0].tuple, 0); ++ decode_tuple(&ci->cpt_tuple[1], &conntrack->tuplehash[1].tuple, 1); ++ ++ conntrack->status = ci->cpt_status; ++ ++ memcpy(&conntrack->proto, ci->cpt_proto_data, sizeof(conntrack->proto)); ++ memcpy(&conntrack->help, ci->cpt_help_data, sizeof(conntrack->help)); ++ ++#ifdef CONFIG_IP_NF_NAT_NEEDED ++#if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \ ++ defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE) ++ conntrack->nat.masq_index = ci->cpt_masq_index; ++#endif ++ if (ci->cpt_initialized) { ++ conntrack->nat.info.seq[0].correction_pos = ci->cpt_nat_seq[0].cpt_correction_pos; ++ conntrack->nat.info.seq[0].offset_before = ci->cpt_nat_seq[0].cpt_offset_before; ++ conntrack->nat.info.seq[0].offset_after = ci->cpt_nat_seq[0].cpt_offset_after; ++ conntrack->nat.info.seq[1].correction_pos = ci->cpt_nat_seq[1].cpt_correction_pos; ++ conntrack->nat.info.seq[1].offset_before = ci->cpt_nat_seq[1].cpt_offset_before; ++ conntrack->nat.info.seq[1].offset_after = ci->cpt_nat_seq[1].cpt_offset_after; ++ } ++ if (conntrack->status & IPS_NAT_DONE_MASK) ++ ip_nat_hash_conntrack(conntrack); ++#endif ++ ++ if (ci->cpt_ct_helper) { ++ conntrack->helper = ip_conntrack_helper_find_get(&conntrack->tuplehash[1].tuple); ++ if (conntrack->helper == NULL) { ++ eprintk_ctx("conntrack: cannot find helper, some module is not loaded\n"); ++ err = -EINVAL; ++ } ++ } ++ ++ ip_conntrack_hash_insert(conntrack); ++ conntrack->timeout.expires = jiffies + ci->cpt_timeout; ++ ++ if (err == 0 && ci->cpt_next > ci->cpt_hdrlen) ++ err = undump_expect_list(conntrack, ci, pos, *ct_list, ctx); ++ ++ return err; ++} ++ ++int rst_restore_ip_conntrack(struct cpt_context * ctx) ++{ ++ int err = 0; ++ loff_t sec = ctx->sections[CPT_SECT_NET_CONNTRACK]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_ip_conntrack_image ci; ++ struct ct_holder *c; ++ struct ct_holder *ct_list = NULL; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ if (sizeof(ci.cpt_proto_data) != sizeof(union ip_conntrack_proto)) { ++ eprintk_ctx("conntrack module ct->proto version mismatch\n"); ++ return -EINVAL; ++ } ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_NET_CONNTRACK || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ err = rst_get_object(CPT_OBJ_NET_CONNTRACK, sec, &ci, ctx); ++ if (err) ++ break; ++ err = undump_one_ct(&ci, sec, &ct_list, ctx); ++ if (err) ++ break; ++ sec += ci.cpt_next; ++ } ++ ++ while ((c = ct_list) != NULL) { ++ ct_list = c->next; ++ if (c->ct) ++ add_timer(&c->ct->timeout); ++ kfree(c); ++ } ++ ++ return err; ++} ++ ++#else ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++int rst_restore_ip_conntrack(struct cpt_context * ctx) ++{ ++ if (ctx->sections[CPT_SECT_NET_CONNTRACK] != CPT_NULL) ++ return -EINVAL; ++ return 0; ++} ++ ++#endif +Index: kernel/kernel/cpt/rst_context.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_context.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,323 @@ ++/* ++ * ++ * kernel/cpt/rst_context.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++static ssize_t file_read(void *addr, size_t count, struct cpt_context *ctx) ++{ ++ mm_segment_t oldfs; ++ ssize_t err = -EBADF; ++ struct file *file = ctx->file; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if (file) ++ err = file->f_op->read(file, addr, count, &file->f_pos); ++ set_fs(oldfs); ++ if (err != count) ++ return err >= 0 ? -EIO : err; ++ return 0; ++} ++ ++static ssize_t file_pread(void *addr, size_t count, struct cpt_context *ctx, loff_t pos) ++{ ++ mm_segment_t oldfs; ++ ssize_t err = -EBADF; ++ struct file *file = ctx->file; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if (file) ++ err = file->f_op->read(file, addr, count, &pos); ++ set_fs(oldfs); ++ if (err != count) ++ return err >= 0 ? -EIO : err; ++ return 0; ++} ++ ++static void file_align(struct cpt_context *ctx) ++{ ++ struct file *file = ctx->file; ++ ++ if (file) ++ file->f_pos = CPT_ALIGN(file->f_pos); ++} ++ ++int rst_get_section(int type, struct cpt_context *ctx, loff_t *start, loff_t *end) ++{ ++ struct cpt_section_hdr hdr; ++ int err; ++ loff_t pos; ++ ++ pos = ctx->sections[type]; ++ *start = *end = pos; ++ ++ if (pos != CPT_NULL) { ++ if ((err = ctx->pread(&hdr, sizeof(hdr), ctx, pos)) != 0) ++ return err; ++ if (hdr.cpt_section != type || hdr.cpt_hdrlen < sizeof(hdr)) ++ return -EINVAL; ++ *start = pos + hdr.cpt_hdrlen; ++ *end = pos + hdr.cpt_next; ++ } ++ return 0; ++} ++EXPORT_SYMBOL(rst_get_section); ++ ++void rst_context_init(struct cpt_context *ctx) ++{ ++ int i; ++ ++ memset(ctx, 0, sizeof(*ctx)); ++ ++ init_MUTEX(&ctx->main_sem); ++ ctx->refcount = 1; ++ ++ ctx->current_section = -1; ++ ctx->current_object = -1; ++ ctx->pagesize = PAGE_SIZE; ++ ctx->read = file_read; ++ ctx->pread = file_pread; ++ ctx->align = file_align; ++ for (i=0; i < CPT_SECT_MAX; i++) ++ ctx->sections[i] = CPT_NULL; ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ init_completion(&ctx->pgin_notify); ++#endif ++ cpt_object_init(ctx); ++} ++ ++static int parse_sections(loff_t start, loff_t end, cpt_context_t *ctx) ++{ ++ struct cpt_section_hdr h; ++ ++ while (start < end) { ++ int err; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, start); ++ if (err) ++ return err; ++ if (h.cpt_hdrlen < sizeof(h) || ++ h.cpt_next < h.cpt_hdrlen || ++ start + h.cpt_next > end) ++ return -EINVAL; ++ if (h.cpt_section >= CPT_SECT_MAX) ++ return -EINVAL; ++ ctx->sections[h.cpt_section] = start; ++ start += h.cpt_next; ++ } ++ return 0; ++} ++ ++int rst_open_dumpfile(struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_major_tail *v; ++ struct cpt_major_hdr h; ++ unsigned long size; ++ ++ err = -EBADF; ++ if (!ctx->file) ++ goto err_out; ++ ++ err = -ENOMEM; ++ ctx->tmpbuf = (char*)__get_free_page(GFP_KERNEL); ++ if (ctx->tmpbuf == NULL) ++ goto err_out; ++ __cpt_release_buf(ctx); ++ ++ size = ctx->file->f_dentry->d_inode->i_size; ++ ++ if (size & 7) { ++ err = -EINVAL; ++ goto err_out; ++ } ++ if (size < sizeof(struct cpt_major_hdr) + ++ sizeof(struct cpt_major_tail)) { ++ err = -EINVAL; ++ goto err_out; ++ } ++ err = ctx->pread(&h, sizeof(h), ctx, 0); ++ if (err) { ++ eprintk_ctx("too short image 1 %d\n", err); ++ goto err_out; ++ } ++ if (h.cpt_signature[0] != CPT_SIGNATURE0 || ++ h.cpt_signature[1] != CPT_SIGNATURE1 || ++ h.cpt_signature[2] != CPT_SIGNATURE2 || ++ h.cpt_signature[3] != CPT_SIGNATURE3) { ++ err = -EINVAL; ++ goto err_out; ++ } ++ if (h.cpt_hz != HZ) { ++ err = -EINVAL; ++ eprintk_ctx("HZ mismatch: %d != %d\n", h.cpt_hz, HZ); ++ goto err_out; ++ } ++ ctx->virt_jiffies64 = h.cpt_start_jiffies64; ++ ctx->start_time.tv_sec = h.cpt_start_sec; ++ ctx->start_time.tv_nsec = h.cpt_start_nsec; ++ ctx->kernel_config_flags = h.cpt_kernel_config[0]; ++ ctx->iptables_mask = h.cpt_iptables_mask; ++ if (h.cpt_image_version > CPT_VERSION_20 || ++ CPT_VERSION_MINOR(h.cpt_image_version) > 1) { ++ eprintk_ctx("Unknown image version: %x. Can't restore.\n", ++ h.cpt_image_version); ++ err = -EINVAL; ++ goto err_out; ++ } ++ ctx->image_version = h.cpt_image_version; ++ ctx->features = (__u64)((__u64)h.cpt_ve_features2<<32 | h.cpt_ve_features); ++ ctx->image_arch = h.cpt_os_arch; ++ ++ v = cpt_get_buf(ctx); ++ err = ctx->pread(v, sizeof(*v), ctx, size - sizeof(*v)); ++ if (err) { ++ eprintk_ctx("too short image 2 %d\n", err); ++ cpt_release_buf(ctx); ++ goto err_out; ++ } ++ if (v->cpt_signature[0] != CPT_SIGNATURE0 || ++ v->cpt_signature[1] != CPT_SIGNATURE1 || ++ v->cpt_signature[2] != CPT_SIGNATURE2 || ++ v->cpt_signature[3] != CPT_SIGNATURE3 || ++ v->cpt_nsect != CPT_SECT_MAX_INDEX) { ++ err = -EINVAL; ++ cpt_release_buf(ctx); ++ goto err_out; ++ } ++ if ((err = parse_sections(h.cpt_hdrlen, size - sizeof(*v) - sizeof(struct cpt_section_hdr), ctx)) < 0) { ++ cpt_release_buf(ctx); ++ goto err_out; ++ } ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ ctx->lazypages = v->cpt_lazypages; ++#endif ++ ctx->tasks64 = v->cpt_64bit; ++ cpt_release_buf(ctx); ++ return 0; ++ ++err_out: ++ if (ctx->tmpbuf) { ++ free_page((unsigned long)ctx->tmpbuf); ++ ctx->tmpbuf = NULL; ++ } ++ return err; ++} ++ ++void rst_close_dumpfile(struct cpt_context *ctx) ++{ ++ if (ctx->file) { ++ fput(ctx->file); ++ ctx->file = NULL; ++ } ++ if (ctx->tmpbuf) { ++ free_page((unsigned long)ctx->tmpbuf); ++ ctx->tmpbuf = NULL; ++ } ++} ++ ++int _rst_get_object(int type, loff_t pos, void *tmp, int size, struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_object_hdr *hdr = tmp; ++ err = ctx->pread(hdr, sizeof(struct cpt_object_hdr), ctx, pos); ++ if (err) ++ return err; ++ if (type > 0 && type != hdr->cpt_object) ++ return -EINVAL; ++ if (hdr->cpt_hdrlen > hdr->cpt_next) ++ return -EINVAL; ++ if (hdr->cpt_hdrlen < sizeof(struct cpt_object_hdr)) ++ return -EINVAL; ++ if (size < sizeof(*hdr)) ++ return -EINVAL; ++ if (size > hdr->cpt_hdrlen) ++ size = hdr->cpt_hdrlen; ++ if (size > sizeof(*hdr)) ++ err = ctx->pread(hdr+1, size - sizeof(*hdr), ++ ctx, pos + sizeof(*hdr)); ++ return err; ++} ++EXPORT_SYMBOL(_rst_get_object); ++ ++void * __rst_get_object(int type, loff_t pos, struct cpt_context *ctx) ++{ ++ int err; ++ void *tmp; ++ struct cpt_object_hdr hdr; ++ err = ctx->pread(&hdr, sizeof(hdr), ctx, pos); ++ if (err) ++ return NULL; ++ if (type > 0 && type != hdr.cpt_object) ++ return NULL; ++ if (hdr.cpt_hdrlen > hdr.cpt_next) ++ return NULL; ++ if (hdr.cpt_hdrlen < sizeof(struct cpt_object_hdr)) ++ return NULL; ++ tmp = kmalloc(hdr.cpt_hdrlen, GFP_KERNEL); ++ if (!tmp) ++ return NULL; ++ err = ctx->pread(tmp, hdr.cpt_hdrlen, ctx, pos); ++ if (!err) ++ return tmp; ++ kfree(tmp); ++ return NULL; ++} ++EXPORT_SYMBOL(__rst_get_object); ++ ++__u8 *__rst_get_name(loff_t *pos_p, struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_object_hdr hdr; ++ __u8 *name; ++ ++ err = rst_get_object(CPT_OBJ_NAME, *pos_p, &hdr, ctx); ++ if (err) ++ return NULL; ++ if (hdr.cpt_next - hdr.cpt_hdrlen > PAGE_SIZE) ++ return NULL; ++ name = (void*)__get_free_page(GFP_KERNEL); ++ if (!name) ++ return NULL; ++ err = ctx->pread(name, hdr.cpt_next - hdr.cpt_hdrlen, ++ ctx, *pos_p + hdr.cpt_hdrlen); ++ if (err) { ++ free_page((unsigned long)name); ++ return NULL; ++ } ++ *pos_p += hdr.cpt_next; ++ return name; ++} ++ ++__u8 *rst_get_name(loff_t pos, struct cpt_context *ctx) ++{ ++ return __rst_get_name(&pos, ctx); ++} ++ ++void rst_put_name(__u8 *name, struct cpt_context *ctx) ++{ ++ unsigned long addr = (unsigned long)name; ++ ++ if (addr) ++ free_page(addr&~(PAGE_SIZE-1)); ++} +Index: kernel/kernel/cpt/rst_epoll.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_epoll.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,170 @@ ++/* ++ * ++ * kernel/cpt/rst_epoll.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_files.h" ++#include "cpt_kernel.h" ++#include "cpt_fsmagic.h" ++#include "cpt_syscalls.h" ++ ++/* Those funcations are static in fs/eventpoll.c */ ++extern struct file_operations eventpoll_fops; ++extern int ep_insert(struct eventpoll *ep, struct epoll_event *event, ++ struct file *tfile, int fd); ++extern struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd); ++extern void ep_release_epitem(struct epitem *epi); ++ ++ ++struct file *cpt_open_epolldev(struct cpt_file_image *fi, ++ unsigned flags, ++ struct cpt_context *ctx) ++{ ++ struct file *file; ++ int efd; ++ ++ /* Argument "size" is ignored, use just 1 */ ++ efd = sys_epoll_create(1); ++ if (efd < 0) ++ return ERR_PTR(efd); ++ ++ file = fget(efd); ++ sys_close(efd); ++ return file; ++} ++ ++static int restore_one_epoll(cpt_object_t *obj, ++ loff_t pos, ++ struct cpt_epoll_image *ebuf, ++ cpt_context_t *ctx) ++{ ++ int err = 0; ++ loff_t endpos; ++ struct file *file = obj->o_obj; ++ struct eventpoll *ep; ++ ++ if (file->f_op != &eventpoll_fops) { ++ eprintk_ctx("bad epoll file\n"); ++ return -EINVAL; ++ } ++ ++ ep = file->private_data; ++ ++ if (unlikely(ep == NULL)) { ++ eprintk_ctx("bad epoll device\n"); ++ return -EINVAL; ++ } ++ ++ endpos = pos + ebuf->cpt_next; ++ pos += ebuf->cpt_hdrlen; ++ while (pos < endpos) { ++ struct cpt_epoll_file_image efi; ++ struct epoll_event epds; ++ ++ cpt_object_t *tobj; ++ ++ err = rst_get_object(CPT_OBJ_EPOLL_FILE, pos, &efi, ctx); ++ if (err) ++ return err; ++ tobj = lookup_cpt_obj_bypos(CPT_OBJ_FILE, efi.cpt_file, ctx); ++ if (!tobj) { ++ eprintk_ctx("epoll file not found\n"); ++ return -EINVAL; ++ } ++ epds.events = efi.cpt_events; ++ epds.data = efi.cpt_data; ++ mutex_lock(&ep->mtx); ++ err = ep_insert(ep, &epds, tobj->o_obj, efi.cpt_fd); ++ if (!err) { ++ struct epitem *epi; ++ epi = ep_find(ep, tobj->o_obj, efi.cpt_fd); ++ if (epi) { ++ if (efi.cpt_ready) { ++ unsigned long flags; ++ spin_lock_irqsave(&ep->lock, flags); ++ if (list_empty(&epi->rdllink)) ++ list_add_tail(&epi->rdllink, &ep->rdllist); ++ spin_unlock_irqrestore(&ep->lock, flags); ++ } ++ } ++ } ++ mutex_unlock(&ep->mtx); ++ if (err) ++ break; ++ pos += efi.cpt_next; ++ } ++ return err; ++} ++ ++int rst_eventpoll(cpt_context_t *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_EPOLL]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_EPOLL || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ cpt_object_t *obj; ++ struct cpt_epoll_image *ebuf = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_EPOLL, sec, ebuf, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_FILE, ebuf->cpt_file, ctx); ++ if (obj == NULL) { ++ eprintk_ctx("cannot find epoll file object\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ err = restore_one_epoll(obj, sec, ebuf, ctx); ++ cpt_release_buf(ctx); ++ if (err) ++ return err; ++ sec += ebuf->cpt_next; ++ } ++ ++ return 0; ++ ++} +Index: kernel/kernel/cpt/rst_files.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_files.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1656 @@ ++/* ++ * ++ * kernel/cpt/rst_files.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_files.h" ++#include "cpt_kernel.h" ++#include "cpt_fsmagic.h" ++ ++#include "cpt_syscalls.h" ++ ++ ++struct filejob { ++ struct filejob *next; ++ int pid; ++ loff_t fdi; ++}; ++ ++static int rst_filejob_queue(loff_t pos, cpt_context_t *ctx) ++{ ++ struct filejob *j; ++ ++ j = kmalloc(sizeof(*j), GFP_KERNEL); ++ if (j == NULL) ++ return -ENOMEM; ++ j->pid = current->pid; ++ j->fdi = pos; ++ j->next = ctx->filejob_queue; ++ ctx->filejob_queue = j; ++ return 0; ++} ++ ++static void _anon_pipe_buf_release(struct pipe_inode_info *pipe, ++ struct pipe_buffer *buf) ++{ ++ struct page *page = buf->page; ++ ++ /* ++ * If nobody else uses this page, and we don't already have a ++ * temporary page, let's keep track of it as a one-deep ++ * allocation cache. (Otherwise just release our reference to it) ++ */ ++ if (page_count(page) == 1 && !pipe->tmp_page) ++ pipe->tmp_page = page; ++ else ++ page_cache_release(page); ++ ++ module_put(THIS_MODULE); ++} ++ ++static void *_anon_pipe_buf_map(struct pipe_inode_info *pipe, ++ struct pipe_buffer *buf, int atomic) ++{ ++ if (atomic) { ++ buf->flags |= PIPE_BUF_FLAG_ATOMIC; ++ return kmap_atomic(buf->page, KM_USER0); ++ } ++ ++ return kmap(buf->page); ++} ++ ++static void _anon_pipe_buf_unmap(struct pipe_inode_info *pipe, ++ struct pipe_buffer *buf, void *map_data) ++{ ++ if (buf->flags & PIPE_BUF_FLAG_ATOMIC) { ++ buf->flags &= ~PIPE_BUF_FLAG_ATOMIC; ++ kunmap_atomic(map_data, KM_USER0); ++ } else ++ kunmap(buf->page); ++} ++ ++static int _anon_pipe_buf_steal(struct pipe_inode_info *pipe, ++ struct pipe_buffer *buf) ++{ ++ struct page *page = buf->page; ++ ++ if (page_count(page) == 1) { ++ lock_page(page); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++static void _anon_pipe_buf_get(struct pipe_inode_info *info, struct pipe_buffer *buf) ++{ ++ page_cache_get(buf->page); ++} ++ ++static int _anon_pipe_buf_confirm(struct pipe_inode_info *info, struct pipe_buffer *buf) ++{ ++ return 0; ++} ++ ++static struct pipe_buf_operations _anon_pipe_buf_ops = { ++ .can_merge = 1, ++ .map = _anon_pipe_buf_map, ++ .unmap = _anon_pipe_buf_unmap, ++ .release = _anon_pipe_buf_release, ++ .confirm = _anon_pipe_buf_confirm, ++ .get = _anon_pipe_buf_get, ++ .steal = _anon_pipe_buf_steal, ++}; ++ ++/* Sorta ugly... Multiple readers/writers of named pipe rewrite buffer ++ * many times. We need to mark it in CPT_OBJ_INODE table in some way. ++ */ ++static int fixup_pipe_data(struct file *file, struct cpt_file_image *fi, ++ struct cpt_context *ctx) ++{ ++ struct inode *ino = file->f_dentry->d_inode; ++ struct cpt_inode_image ii; ++ struct cpt_obj_bits b; ++ struct pipe_inode_info *info; ++ int err; ++ int count; ++ ++ if (!S_ISFIFO(ino->i_mode)) { ++ eprintk_ctx("fixup_pipe_data: not a pipe %Ld\n", (long long)fi->cpt_inode); ++ return -EINVAL; ++ } ++ if (fi->cpt_inode == CPT_NULL) ++ return 0; ++ ++ err = rst_get_object(CPT_OBJ_INODE, fi->cpt_inode, &ii, ctx); ++ if (err) ++ return err; ++ ++ if (ii.cpt_next <= ii.cpt_hdrlen) ++ return 0; ++ ++ err = rst_get_object(CPT_OBJ_BITS, fi->cpt_inode + ii.cpt_hdrlen, &b, ctx); ++ if (err) ++ return err; ++ ++ if (b.cpt_size == 0) ++ return 0; ++ ++ mutex_lock(&ino->i_mutex); ++ info = ino->i_pipe; ++ if (info->nrbufs) { ++ mutex_unlock(&ino->i_mutex); ++ eprintk("pipe buffer is restored already\n"); ++ return -EINVAL; ++ } ++ info->curbuf = 0; ++ count = 0; ++ while (count < b.cpt_size) { ++ struct pipe_buffer *buf = info->bufs + info->nrbufs; ++ void * addr; ++ int chars; ++ ++ chars = b.cpt_size - count; ++ if (chars > PAGE_SIZE) ++ chars = PAGE_SIZE; ++ if (!try_module_get(THIS_MODULE)) { ++ err = -EBUSY; ++ break; ++ } ++ ++ buf->page = alloc_page(GFP_HIGHUSER); ++ if (buf->page == NULL) { ++ err = -ENOMEM; ++ break; ++ } ++ buf->ops = &_anon_pipe_buf_ops; ++ buf->offset = 0; ++ buf->len = chars; ++ info->nrbufs++; ++ addr = kmap(buf->page); ++ err = ctx->pread(addr, chars, ctx, ++ fi->cpt_inode + ii.cpt_hdrlen + b.cpt_hdrlen + count); ++ if (err) ++ break; ++ count += chars; ++ } ++ mutex_unlock(&ino->i_mutex); ++ ++ return err; ++} ++ ++static int make_flags(struct cpt_file_image *fi) ++{ ++ int flags = O_NOFOLLOW; ++ switch (fi->cpt_mode&(FMODE_READ|FMODE_WRITE)) { ++ case FMODE_READ|FMODE_WRITE: ++ flags |= O_RDWR; break; ++ case FMODE_WRITE: ++ flags |= O_WRONLY; break; ++ case FMODE_READ: ++ flags |= O_RDONLY; break; ++ default: break; ++ } ++ flags |= fi->cpt_flags&~(O_ACCMODE|O_CREAT|O_TRUNC|O_EXCL|FASYNC); ++ flags |= O_NONBLOCK|O_NOCTTY; ++ return flags; ++} ++ ++static struct file *open_pipe(char *name, ++ struct cpt_file_image *fi, ++ unsigned flags, ++ struct cpt_context *ctx) ++{ ++ int err; ++ cpt_object_t *obj; ++ struct cpt_inode_image ii; ++ struct file *rf, *wf; ++ ++ err = rst_get_object(CPT_OBJ_INODE, fi->cpt_inode, &ii, ctx); ++ if (err) ++ return ERR_PTR(err); ++ ++ if (ii.cpt_sb == FSMAGIC_PIPEFS) { ++ int pfd[2]; ++ ++ if ((err = sc_pipe(pfd)) < 0) ++ return ERR_PTR(err); ++ ++ rf = fcheck(pfd[0]); ++ wf = fcheck(pfd[1]); ++ get_file(rf); ++ get_file(wf); ++ sc_close(pfd[0]); ++ sc_close(pfd[1]); ++ ++ if (fi->cpt_mode&FMODE_READ) { ++ struct file *tf; ++ tf = wf; wf = rf; rf = tf; ++ } ++ } else { ++ if (fi->cpt_mode&FMODE_READ) { ++ rf = filp_open(name, flags, 0); ++ if (IS_ERR(rf)) { ++ dprintk_ctx("filp_open\n"); ++ return rf; ++ } ++ dprintk_ctx(CPT_FID "open RDONLY fifo ino %Ld %p %x\n", CPT_TID(current), ++ (long long)fi->cpt_inode, rf, rf->f_dentry->d_inode->i_mode); ++ return rf; ++ } ++ ++ dprintk_ctx(CPT_FID "open WRONLY fifo ino %Ld\n", CPT_TID(current), (long long)fi->cpt_inode); ++ ++ rf = filp_open(name, O_RDWR|O_NONBLOCK, 0); ++ if (IS_ERR(rf)) ++ return rf; ++ wf = dentry_open(dget(rf->f_dentry), ++ mntget(rf->f_vfsmnt), flags); ++ } ++ ++ /* Add pipe inode to obj table. */ ++ obj = cpt_object_add(CPT_OBJ_INODE, wf->f_dentry->d_inode, ctx); ++ if (obj == NULL) { ++ fput(rf); fput(wf); ++ return ERR_PTR(-ENOMEM); ++ } ++ cpt_obj_setpos(obj, fi->cpt_inode, ctx); ++ obj->o_parent = rf; ++ ++ /* Add another side of pipe to obj table, it will not be used ++ * (o_pos = PT_NULL), another processes opeining pipe will find ++ * inode and open it with dentry_open(). */ ++ obj = cpt_object_add(CPT_OBJ_FILE, rf, ctx); ++ if (obj == NULL) { ++ fput(wf); ++ return ERR_PTR(-ENOMEM); ++ } ++ return wf; ++} ++ ++static struct file *open_special(struct cpt_file_image *fi, ++ unsigned flags, ++ int deleted, ++ struct cpt_context *ctx) ++{ ++ struct cpt_inode_image *ii; ++ struct file *file; ++ ++ /* Directories and named pipes are not special actually */ ++ if (S_ISDIR(fi->cpt_i_mode) || S_ISFIFO(fi->cpt_i_mode)) ++ return NULL; ++ ++ /* No support for block devices at the moment. */ ++ if (S_ISBLK(fi->cpt_i_mode)) ++ return ERR_PTR(-EINVAL); ++ ++ if (S_ISSOCK(fi->cpt_i_mode)) { ++ eprintk_ctx("bug: socket is not open\n"); ++ return ERR_PTR(-EINVAL); ++ } ++ ++ /* Support only (some) character devices at the moment. */ ++ if (!S_ISCHR(fi->cpt_i_mode)) ++ return ERR_PTR(-EINVAL); ++ ++ ii = __rst_get_object(CPT_OBJ_INODE, fi->cpt_inode, ctx); ++ if (ii == NULL) ++ return ERR_PTR(-ENOMEM); ++ ++ /* Do not worry about this right now. /dev/null,zero,*random are here. ++ * To prohibit at least /dev/mem? ++ */ ++ if (MAJOR(ii->cpt_rdev) == MEM_MAJOR) { ++ kfree(ii); ++ return NULL; ++ } ++ ++ /* /dev/net/tun will be opened by caller */ ++ if (fi->cpt_lflags & CPT_DENTRY_TUNTAP) { ++ kfree(ii); ++ return NULL; ++ } ++ ++ file = rst_open_tty(fi, ii, flags, ctx); ++ kfree(ii); ++ return file; ++} ++ ++static int restore_posix_lock(struct file *file, struct cpt_flock_image *fli, cpt_context_t *ctx) ++{ ++ struct file_lock lock; ++ cpt_object_t *obj; ++ ++ memset(&lock, 0, sizeof(lock)); ++ lock.fl_type = fli->cpt_type; ++ lock.fl_flags = fli->cpt_flags & ~FL_SLEEP; ++ lock.fl_start = fli->cpt_start; ++ lock.fl_end = fli->cpt_end; ++ obj = lookup_cpt_obj_byindex(CPT_OBJ_FILES, fli->cpt_owner, ctx); ++ if (!obj) { ++ eprintk_ctx("unknown lock owner %d\n", (int)fli->cpt_owner); ++ return -EINVAL; ++ } ++ lock.fl_owner = obj->o_obj; ++ lock.fl_pid = vpid_to_pid(fli->cpt_pid); ++ if (lock.fl_pid < 0) { ++ eprintk_ctx("unknown lock pid %d\n", lock.fl_pid); ++ return -EINVAL; ++ } ++ lock.fl_file = file; ++ ++ if (lock.fl_owner == NULL) ++ eprintk_ctx("no lock owner\n"); ++ return posix_lock_file(file, &lock, NULL); ++} ++ ++static int restore_flock(struct file *file, struct cpt_flock_image *fli, ++ cpt_context_t *ctx) ++{ ++ int cmd, err, fd; ++ fd = get_unused_fd(); ++ if (fd < 0) { ++ eprintk_ctx("BSD flock cannot be restored\n"); ++ return fd; ++ } ++ get_file(file); ++ fd_install(fd, file); ++ if (fli->cpt_type == F_RDLCK) { ++ cmd = LOCK_SH; ++ } else if (fli->cpt_type == F_WRLCK) { ++ cmd = LOCK_EX; ++ } else { ++ eprintk_ctx("flock flavor is unknown: %u\n", fli->cpt_type); ++ sc_close(fd); ++ return -EINVAL; ++ } ++ ++ err = sc_flock(fd, LOCK_NB | cmd); ++ sc_close(fd); ++ return err; ++} ++ ++ ++static int fixup_posix_locks(struct file *file, ++ struct cpt_file_image *fi, ++ loff_t pos, struct cpt_context *ctx) ++{ ++ int err; ++ loff_t end; ++ struct cpt_flock_image fli; ++ ++ end = pos + fi->cpt_next; ++ pos += fi->cpt_hdrlen; ++ while (pos < end) { ++ err = rst_get_object(-1, pos, &fli, ctx); ++ if (err) ++ return err; ++ if (fli.cpt_object == CPT_OBJ_FLOCK && ++ (fli.cpt_flags&FL_POSIX)) { ++ err = restore_posix_lock(file, &fli, ctx); ++ if (err) ++ return err; ++ dprintk_ctx("posix lock restored\n"); ++ } ++ pos += fli.cpt_next; ++ } ++ return 0; ++} ++ ++int rst_posix_locks(struct cpt_context *ctx) ++{ ++ int err; ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ struct cpt_file_image fi; ++ ++ if (obj->o_pos == CPT_NULL) ++ continue; ++ ++ err = rst_get_object(CPT_OBJ_FILE, obj->o_pos, &fi, ctx); ++ if (err < 0) ++ return err; ++ if (fi.cpt_next > fi.cpt_hdrlen) ++ fixup_posix_locks(file, &fi, obj->o_pos, ctx); ++ } ++ return 0; ++} ++ ++static int fixup_flocks(struct file *file, ++ struct cpt_file_image *fi, ++ loff_t pos, struct cpt_context *ctx) ++{ ++ int err; ++ loff_t end; ++ struct cpt_flock_image fli; ++ ++ end = pos + fi->cpt_next; ++ pos += fi->cpt_hdrlen; ++ while (pos < end) { ++ err = rst_get_object(-1, pos, &fli, ctx); ++ if (err) ++ return err; ++ if (fli.cpt_object == CPT_OBJ_FLOCK && ++ (fli.cpt_flags&FL_FLOCK)) { ++ err = restore_flock(file, &fli, ctx); ++ if (err) ++ return err; ++ dprintk_ctx("bsd lock restored\n"); ++ } ++ pos += fli.cpt_next; ++ } ++ return 0; ++} ++ ++ ++static int fixup_reg_data(struct file *file, loff_t pos, loff_t end, ++ struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_page_block pgb; ++ ssize_t (*do_write)(struct file *, const char __user *, size_t, loff_t *ppos); ++ ++ do_write = file->f_op->write; ++ if (do_write == NULL) { ++ eprintk_ctx("no write method. Cannot restore contents of the file.\n"); ++ return -EINVAL; ++ } ++ ++ atomic_inc(&file->f_count); ++ ++ while (pos < end) { ++ loff_t opos; ++ loff_t ipos; ++ int count; ++ ++ err = rst_get_object(CPT_OBJ_PAGES, pos, &pgb, ctx); ++ if (err) ++ goto out; ++ dprintk_ctx("restoring file data block: %08x-%08x\n", ++ (__u32)pgb.cpt_start, (__u32)pgb.cpt_end); ++ ipos = pos + pgb.cpt_hdrlen; ++ opos = pgb.cpt_start; ++ count = pgb.cpt_end-pgb.cpt_start; ++ while (count > 0) { ++ mm_segment_t oldfs; ++ int copy = count; ++ ++ if (copy > PAGE_SIZE) ++ copy = PAGE_SIZE; ++ (void)cpt_get_buf(ctx); ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = ctx->pread(ctx->tmpbuf, copy, ctx, ipos); ++ set_fs(oldfs); ++ if (err) { ++ __cpt_release_buf(ctx); ++ goto out; ++ } ++ if (!(file->f_mode & FMODE_WRITE) || ++ (file->f_flags&O_DIRECT)) { ++ fput(file); ++ file = dentry_open(dget(file->f_dentry), ++ mntget(file->f_vfsmnt), O_WRONLY); ++ if (IS_ERR(file)) { ++ __cpt_release_buf(ctx); ++ return PTR_ERR(file); ++ } ++ } ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ ipos += copy; ++ err = do_write(file, ctx->tmpbuf, copy, &opos); ++ set_fs(oldfs); ++ __cpt_release_buf(ctx); ++ if (err != copy) { ++ if (err >= 0) ++ err = -EIO; ++ goto out; ++ } ++ count -= copy; ++ } ++ pos += pgb.cpt_next; ++ } ++ err = 0; ++ ++out: ++ fput(file); ++ return err; ++} ++ ++ ++static int fixup_file_content(struct file **file_p, struct cpt_file_image *fi, ++ struct cpt_inode_image *ii, ++ struct cpt_context *ctx) ++{ ++ int err; ++ struct file *file = *file_p; ++ struct iattr newattrs; ++ ++ if (!S_ISREG(fi->cpt_i_mode)) ++ return 0; ++ ++ if (file == NULL) { ++ file = shmem_file_setup("dev/zero", ii->cpt_size, 0); ++ if (IS_ERR(file)) ++ return PTR_ERR(file); ++ *file_p = file; ++ } ++ ++ if (ii->cpt_next > ii->cpt_hdrlen) { ++ struct cpt_object_hdr hdr; ++ err = ctx->pread(&hdr, sizeof(struct cpt_object_hdr), ctx, fi->cpt_inode+ii->cpt_hdrlen); ++ if (err) ++ return err; ++ if (hdr.cpt_object == CPT_OBJ_PAGES) { ++ err = fixup_reg_data(file, fi->cpt_inode+ii->cpt_hdrlen, ++ fi->cpt_inode+ii->cpt_next, ctx); ++ if (err) ++ return err; ++ } ++ } ++ ++ mutex_lock(&file->f_dentry->d_inode->i_mutex); ++ /* stage 1 - update size like do_truncate does */ ++ newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME; ++ newattrs.ia_size = ii->cpt_size; ++ cpt_timespec_import(&newattrs.ia_ctime, ii->cpt_ctime); ++ err = notify_change(file->f_dentry, NULL, &newattrs); ++ if (err) ++ goto out; ++ ++ /* stage 2 - update times, owner and mode */ ++ newattrs.ia_valid = ATTR_MTIME | ATTR_ATIME | ++ ATTR_ATIME_SET | ATTR_MTIME_SET | ++ ATTR_MODE | ATTR_UID | ATTR_GID; ++ newattrs.ia_uid = ii->cpt_uid; ++ newattrs.ia_gid = ii->cpt_gid; ++ newattrs.ia_mode = file->f_dentry->d_inode->i_mode & S_IFMT; ++ newattrs.ia_mode |= (ii->cpt_mode & ~S_IFMT); ++ cpt_timespec_import(&newattrs.ia_atime, ii->cpt_atime); ++ cpt_timespec_import(&newattrs.ia_mtime, ii->cpt_mtime); ++ err = notify_change(file->f_dentry, NULL, &newattrs); ++ ++out: ++ mutex_unlock(&file->f_dentry->d_inode->i_mutex); ++ return err; ++} ++ ++static int fixup_file_flags(struct file *file, struct cpt_file_image *fi, ++ int was_dentry_open, loff_t pos, ++ cpt_context_t *ctx) ++{ ++ if (fi->cpt_pos != file->f_pos) { ++ int err = -ESPIPE; ++ if (file->f_op->llseek) ++ err = file->f_op->llseek(file, fi->cpt_pos, 0); ++ if (err < 0) { ++ dprintk_ctx("file %Ld lseek %Ld - %Ld\n", ++ (long long)pos, ++ (long long)file->f_pos, ++ (long long)fi->cpt_pos); ++ file->f_pos = fi->cpt_pos; ++ } ++ } ++ file->f_uid = fi->cpt_uid; ++ file->f_gid = fi->cpt_gid; ++ file->f_owner.pid = 0; ++ if (fi->cpt_fown_pid != CPT_FOWN_STRAY_PID) { ++ file->f_owner.pid = find_get_pid(fi->cpt_fown_pid); ++ if (file->f_owner.pid == NULL) { ++ wprintk_ctx("fixup_file_flags: owner %d does not exist anymore\n", ++ fi->cpt_fown_pid); ++ return -EINVAL; ++ } ++ } ++ file->f_owner.uid = fi->cpt_fown_uid; ++ file->f_owner.euid = fi->cpt_fown_euid; ++ file->f_owner.signum = fi->cpt_fown_signo; ++ ++ if (file->f_mode != fi->cpt_mode) { ++ if (was_dentry_open && ++ ((file->f_mode^fi->cpt_mode)&(FMODE_PREAD|FMODE_LSEEK))) { ++ file->f_mode &= ~(FMODE_PREAD|FMODE_LSEEK); ++ file->f_mode |= fi->cpt_mode&(FMODE_PREAD|FMODE_LSEEK); ++ } ++ if (file->f_mode != fi->cpt_mode) ++ wprintk_ctx("file %ld mode mismatch %08x %08x\n", (long)pos, file->f_mode, fi->cpt_mode); ++ } ++ if (file->f_flags != fi->cpt_flags) { ++ if (!(fi->cpt_flags&O_NOFOLLOW)) ++ file->f_flags &= ~O_NOFOLLOW; ++ if ((file->f_flags^fi->cpt_flags)&O_NONBLOCK) { ++ file->f_flags &= ~O_NONBLOCK; ++ file->f_flags |= fi->cpt_flags&O_NONBLOCK; ++ } ++ if (fi->cpt_flags&FASYNC) { ++ if (fi->cpt_fown_fd == -1) { ++ wprintk_ctx("No fd for FASYNC\n"); ++ return -EINVAL; ++ } else if (file->f_op && file->f_op->fasync) { ++ if (file->f_op->fasync(fi->cpt_fown_fd, file, 1) < 0) { ++ wprintk_ctx("FASYNC problem\n"); ++ return -EINVAL; ++ } else { ++ file->f_flags |= FASYNC; ++ } ++ } ++ } ++ if (file->f_flags != fi->cpt_flags) { ++ eprintk_ctx("file %ld flags mismatch %08x %08x\n", (long)pos, file->f_flags, fi->cpt_flags); ++ return -EINVAL; ++ } ++ } ++ return 0; ++} ++ ++static struct file * ++open_deleted(char *name, unsigned flags, struct cpt_file_image *fi, ++ struct cpt_inode_image *ii, cpt_context_t *ctx) ++{ ++ struct file * file; ++ char *suffix = NULL; ++ int attempt = 0; ++ int tmp_pass = 0; ++ mode_t mode = fi->cpt_i_mode; ++ ++ /* Strip (deleted) part... */ ++ if (strlen(name) > strlen(" (deleted)")) { ++ if (strcmp(name + strlen(name) - strlen(" (deleted)"), " (deleted)") == 0) { ++ suffix = &name[strlen(name) - strlen(" (deleted)")]; ++ *suffix = 0; ++ } else if (memcmp(name, "(deleted) ", strlen("(deleted) ")) == 0) { ++ memmove(name, name + strlen("(deleted) "), strlen(name) - strlen(" (deleted)") + 1); ++ suffix = name + strlen(name); ++ } ++ } ++ ++try_again: ++ for (;;) { ++ if (attempt) { ++ if (attempt > 1000) { ++ eprintk_ctx("open_deleted: failed after %d attempts\n", attempt); ++ return ERR_PTR(-EEXIST); ++ } ++ if (suffix == NULL) { ++ eprintk_ctx("open_deleted: no suffix\n"); ++ return ERR_PTR(-EEXIST); ++ } ++ sprintf(suffix, ".%08x", (unsigned)((xtime.tv_nsec>>10)+attempt)); ++ } ++ attempt++; ++ ++ if (S_ISFIFO(mode)) { ++ int err; ++ err = sc_mknod(name, S_IFIFO|(mode&017777), 0); ++ if (err == -EEXIST) ++ continue; ++ if (err < 0 && !tmp_pass) ++ goto change_dir; ++ if (err < 0) ++ return ERR_PTR(err); ++ file = open_pipe(name, fi, flags, ctx); ++ sc_unlink(name); ++ } else if (S_ISCHR(mode)) { ++ int err; ++ err = sc_mknod(name, S_IFCHR|(mode&017777), new_encode_dev(ii->cpt_rdev)); ++ if (err == -EEXIST) ++ continue; ++ if (err < 0 && !tmp_pass) ++ goto change_dir; ++ if (err < 0) ++ return ERR_PTR(err); ++ file = filp_open(name, flags, mode&017777); ++ sc_unlink(name); ++ } else if (S_ISDIR(mode)) { ++ int err; ++ err = sc_mkdir(name, mode&017777); ++ if (err == -EEXIST) ++ continue; ++ if (err < 0 && !tmp_pass) ++ goto change_dir; ++ if (err < 0) ++ return ERR_PTR(err); ++ file = filp_open(name, flags, mode&017777); ++ sc_rmdir(name); ++ } else { ++ file = filp_open(name, O_CREAT|O_EXCL|flags, mode&017777); ++ if (IS_ERR(file)) { ++ if (PTR_ERR(file) == -EEXIST) ++ continue; ++ if (!tmp_pass) ++ goto change_dir; ++ } else { ++ sc_unlink(name); ++ } ++ } ++ break; ++ } ++ ++ if (IS_ERR(file)) { ++ eprintk_ctx("filp_open %s: %ld\n", name, PTR_ERR(file)); ++ return file; ++ } else { ++ dprintk_ctx("deleted file created as %s, %p, %x\n", name, file, file->f_dentry->d_inode->i_mode); ++ } ++ return file; ++ ++change_dir: ++ sprintf(name, "/tmp/rst%u", current->pid); ++ suffix = name + strlen(name); ++ attempt = 1; ++ tmp_pass = 1; ++ goto try_again; ++} ++ ++struct file *rst_file(loff_t pos, int fd, struct cpt_context *ctx) ++{ ++ int err; ++ int was_dentry_open = 0; ++ cpt_object_t *obj; ++ cpt_object_t *iobj; ++ struct cpt_file_image fi; ++ __u8 *name = NULL; ++ struct file *file; ++ int flags; ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_FILE, pos, ctx); ++ if (obj) { ++ file = obj->o_obj; ++ if (obj->o_index >= 0) { ++ dprintk_ctx("file is attached to a socket\n"); ++ err = rst_get_object(CPT_OBJ_FILE, pos, &fi, ctx); ++ if (err < 0) ++ goto err_out; ++ fixup_file_flags(file, &fi, 0, pos, ctx); ++ } ++ get_file(file); ++ return file; ++ } ++ ++ err = rst_get_object(CPT_OBJ_FILE, pos, &fi, ctx); ++ if (err < 0) ++ goto err_out; ++ ++ flags = make_flags(&fi); ++ ++ /* Easy way, inode has been already open. */ ++ if (fi.cpt_inode != CPT_NULL && ++ !(fi.cpt_lflags & CPT_DENTRY_CLONING) && ++ (iobj = lookup_cpt_obj_bypos(CPT_OBJ_INODE, fi.cpt_inode, ctx)) != NULL && ++ iobj->o_parent) { ++ struct file *filp = iobj->o_parent; ++ file = dentry_open(dget(filp->f_dentry), ++ mntget(filp->f_vfsmnt), flags); ++ dprintk_ctx("rst_file: file obtained by dentry_open\n"); ++ was_dentry_open = 1; ++ goto map_file; ++ } ++ ++ if (fi.cpt_next > fi.cpt_hdrlen) ++ name = rst_get_name(pos + sizeof(fi), ctx); ++ ++ if (!name) { ++ eprintk_ctx("no name for file?\n"); ++ err = -EINVAL; ++ goto err_out; ++ } ++ ++ if (fi.cpt_lflags & CPT_DENTRY_DELETED) { ++ struct cpt_inode_image ii; ++ if (fi.cpt_inode == CPT_NULL) { ++ eprintk_ctx("deleted file and no inode.\n"); ++ err = -EINVAL; ++ goto err_out; ++ } ++ ++ err = rst_get_object(CPT_OBJ_INODE, fi.cpt_inode, &ii, ctx); ++ if (err) ++ goto err_out; ++ ++ if (ii.cpt_next > ii.cpt_hdrlen) { ++ struct cpt_object_hdr hdr; ++ err = ctx->pread(&hdr, sizeof(hdr), ctx, ++ fi.cpt_inode + ii.cpt_hdrlen); ++ if (err) ++ goto err_out; ++ if (hdr.cpt_object == CPT_OBJ_NAME) { ++ rst_put_name(name, ctx); ++ name = rst_get_name(fi.cpt_inode+ii.cpt_hdrlen, ++ ctx); ++ if (!name) { ++ eprintk_ctx("no name for link?\n"); ++ err = -EINVAL; ++ goto err_out; ++ } ++ goto open_file; ++ } ++ } ++ ++ /* One very special case... */ ++ if (S_ISREG(fi.cpt_i_mode) && ++ (!name[0] || strcmp(name, "/dev/zero (deleted)") == 0)) { ++ /* MAP_ANON|MAP_SHARED mapping. ++ * kernel makes this damn ugly way, when file which ++ * is passed to mmap by user does not match ++ * file finally attached to VMA. Ok, rst_mm ++ * has to take care of this. Otherwise, it will fail. ++ */ ++ file = NULL; ++ } else if (S_ISREG(fi.cpt_i_mode) || ++ S_ISCHR(fi.cpt_i_mode) || ++ S_ISFIFO(fi.cpt_i_mode) || ++ S_ISDIR(fi.cpt_i_mode)) { ++ if (S_ISCHR(fi.cpt_i_mode)) { ++ file = open_special(&fi, flags, 1, ctx); ++ if (file != NULL) ++ goto map_file; ++ } ++ file = open_deleted(name, flags, &fi, &ii, ctx); ++ if (IS_ERR(file)) ++ goto out; ++ } else { ++ eprintk_ctx("not a regular deleted file.\n"); ++ err = -EINVAL; ++ goto err_out; ++ } ++ ++ err = fixup_file_content(&file, &fi, &ii, ctx); ++ if (err) ++ goto err_put; ++ goto map_file; ++ } else { ++open_file: ++ if (!name[0]) { ++ eprintk_ctx("empty name for file?\n"); ++ err = -EINVAL; ++ goto err_out; ++ } ++ if ((fi.cpt_lflags & CPT_DENTRY_EPOLL) && ++ (file = cpt_open_epolldev(&fi, flags, ctx)) != NULL) ++ goto map_file; ++#ifdef CONFIG_INOTIFY_USER ++ if ((fi.cpt_lflags & CPT_DENTRY_INOTIFY) && ++ (file = rst_open_inotify(&fi, flags, ctx)) != NULL) ++ goto map_file; ++#else ++ if (fi.cpt_lflags & CPT_DENTRY_INOTIFY) { ++ err = -EINVAL; ++ goto err_out; ++ } ++#endif ++ if (S_ISFIFO(fi.cpt_i_mode) && ++ (file = open_pipe(name, &fi, flags, ctx)) != NULL) ++ goto map_file; ++ if (!S_ISREG(fi.cpt_i_mode) && ++ (file = open_special(&fi, flags, 0, ctx)) != NULL) ++ goto map_file; ++ } ++ ++ file = filp_open(name, flags, 0); ++ ++map_file: ++ if (!IS_ERR(file)) { ++ fixup_file_flags(file, &fi, was_dentry_open, pos, ctx); ++ ++ if (S_ISFIFO(fi.cpt_i_mode) && !was_dentry_open) { ++ err = fixup_pipe_data(file, &fi, ctx); ++ if (err) ++ goto err_put; ++ } ++ ++ /* This is very special hack. Logically, cwd/root are ++ * nothing but open directories. Nevertheless, this causes ++ * failures of restores, when number of open files in VE ++ * is close to limit. So, if it is rst_file() of cwd/root ++ * (fd = -2) and the directory is not deleted, we skip ++ * adding files to object table. If the directory is ++ * not unlinked, this cannot cause any problems. ++ */ ++ if (fd != -2 || ++ !S_ISDIR(file->f_dentry->d_inode->i_mode) || ++ (fi.cpt_lflags & CPT_DENTRY_DELETED)) { ++ obj = cpt_object_get(CPT_OBJ_FILE, file, ctx); ++ if (!obj) { ++ obj = cpt_object_add(CPT_OBJ_FILE, file, ctx); ++ if (obj) ++ get_file(file); ++ } ++ if (obj) ++ cpt_obj_setpos(obj, pos, ctx); ++ ++ obj = cpt_object_add(CPT_OBJ_INODE, file->f_dentry->d_inode, ctx); ++ if (obj) { ++ cpt_obj_setpos(obj, fi.cpt_inode, ctx); ++ if (!obj->o_parent || !(fi.cpt_lflags & CPT_DENTRY_DELETED)) ++ obj->o_parent = file; ++ } ++ } ++ ++ if (fi.cpt_next > fi.cpt_hdrlen) { ++ err = fixup_flocks(file, &fi, pos, ctx); ++ if (err) ++ goto err_put; ++ } ++ } else { ++ if (fi.cpt_lflags & CPT_DENTRY_PROC) { ++ dprintk_ctx("rst_file /proc delayed\n"); ++ file = NULL; ++ } else if (name) ++ eprintk_ctx("can't open file %s\n", name); ++ } ++ ++out: ++ if (name) ++ rst_put_name(name, ctx); ++ return file; ++ ++err_put: ++ if (file) ++ fput(file); ++err_out: ++ if (name) ++ rst_put_name(name, ctx); ++ return ERR_PTR(err); ++} ++ ++ ++__u32 rst_files_flag(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ __u32 flag = 0; ++ ++ if (ti->cpt_files == CPT_NULL || ++ lookup_cpt_obj_bypos(CPT_OBJ_FILES, ti->cpt_files, ctx)) ++ flag |= CLONE_FILES; ++ if (ti->cpt_fs == CPT_NULL || ++ lookup_cpt_obj_bypos(CPT_OBJ_FS, ti->cpt_fs, ctx)) ++ flag |= CLONE_FS; ++ return flag; ++} ++ ++static void local_close_files(struct files_struct * files) ++{ ++ int i, j; ++ ++ j = 0; ++ for (;;) { ++ unsigned long set; ++ i = j * __NFDBITS; ++ if (i >= files->fdt->max_fds) ++ break; ++ set = files->fdt->open_fds->fds_bits[j]; ++ while (set) { ++ if (set & 1) { ++ struct file * file = xchg(&files->fdt->fd[i], NULL); ++ if (file) ++ filp_close(file, files); ++ } ++ i++; ++ set >>= 1; ++ } ++ files->fdt->open_fds->fds_bits[j] = 0; ++ files->fdt->close_on_exec->fds_bits[j] = 0; ++ j++; ++ } ++} ++ ++extern int expand_fdtable(struct files_struct *files, int nr); ++ ++ ++int rst_files_complete(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ struct cpt_files_struct_image fi; ++ struct files_struct *f = current->files; ++ cpt_object_t *obj; ++ loff_t pos, endpos; ++ int err; ++ ++ if (ti->cpt_files == CPT_NULL) { ++ current->files = NULL; ++ if (f) ++ put_files_struct(f); ++ return 0; ++ } ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_FILES, ti->cpt_files, ctx); ++ if (obj) { ++ if (obj->o_obj != f) { ++ put_files_struct(f); ++ f = obj->o_obj; ++ atomic_inc(&f->count); ++ current->files = f; ++ } ++ return 0; ++ } ++ ++ err = rst_get_object(CPT_OBJ_FILES, ti->cpt_files, &fi, ctx); ++ if (err) ++ return err; ++ ++ local_close_files(f); ++ ++ if (fi.cpt_max_fds > f->fdt->max_fds) { ++ spin_lock(&f->file_lock); ++ err = expand_fdtable(f, fi.cpt_max_fds-1); ++ spin_unlock(&f->file_lock); ++ if (err < 0) ++ return err; ++ } ++ ++ pos = ti->cpt_files + fi.cpt_hdrlen; ++ endpos = ti->cpt_files + fi.cpt_next; ++ while (pos < endpos) { ++ struct cpt_fd_image fdi; ++ struct file *filp; ++ ++ err = rst_get_object(CPT_OBJ_FILEDESC, pos, &fdi, ctx); ++ if (err) ++ return err; ++ filp = rst_file(fdi.cpt_file, fdi.cpt_fd, ctx); ++ if (IS_ERR(filp)) { ++ eprintk_ctx("rst_file: %ld %Lu\n", PTR_ERR(filp), ++ (long long)fdi.cpt_file); ++ return PTR_ERR(filp); ++ } ++ if (filp == NULL) { ++ int err = rst_filejob_queue(pos, ctx); ++ if (err) ++ return err; ++ } else { ++ if (fdi.cpt_fd >= f->fdt->max_fds) BUG(); ++ f->fdt->fd[fdi.cpt_fd] = filp; ++ FD_SET(fdi.cpt_fd, f->fdt->open_fds); ++ if (fdi.cpt_flags&CPT_FD_FLAG_CLOSEEXEC) ++ FD_SET(fdi.cpt_fd, f->fdt->close_on_exec); ++ } ++ pos += fdi.cpt_next; ++ } ++ f->next_fd = fi.cpt_next_fd; ++ ++ obj = cpt_object_add(CPT_OBJ_FILES, f, ctx); ++ if (obj) { ++ cpt_obj_setpos(obj, ti->cpt_files, ctx); ++ cpt_obj_setindex(obj, fi.cpt_index, ctx); ++ } ++ return 0; ++} ++ ++int rst_do_filejobs(cpt_context_t *ctx) ++{ ++ struct filejob *j; ++ ++ while ((j = ctx->filejob_queue) != NULL) { ++ int err; ++ struct task_struct *tsk; ++ struct cpt_fd_image fdi; ++ struct file *filp; ++ ++ read_lock(&tasklist_lock); ++ tsk = find_task_by_vpid(j->pid); ++ if (tsk) ++ get_task_struct(tsk); ++ read_unlock(&tasklist_lock); ++ if (!tsk) ++ return -EINVAL; ++ ++ err = rst_get_object(CPT_OBJ_FILEDESC, j->fdi, &fdi, ctx); ++ if (err) { ++ put_task_struct(tsk); ++ return err; ++ } ++ ++ if (fdi.cpt_fd >= tsk->files->fdt->max_fds) BUG(); ++ if (tsk->files->fdt->fd[fdi.cpt_fd] || ++ FD_ISSET(fdi.cpt_fd, tsk->files->fdt->open_fds)) { ++ eprintk_ctx("doing filejob %Ld: fd is busy\n", j->fdi); ++ put_task_struct(tsk); ++ return -EBUSY; ++ } ++ ++ filp = rst_file(fdi.cpt_file, fdi.cpt_fd, ctx); ++ if (IS_ERR(filp)) { ++ eprintk_ctx("rst_do_filejobs: 1: %ld %Lu\n", PTR_ERR(filp), (unsigned long long)fdi.cpt_file); ++ put_task_struct(tsk); ++ return PTR_ERR(filp); ++ } ++ if (fdi.cpt_fd >= tsk->files->fdt->max_fds) BUG(); ++ tsk->files->fdt->fd[fdi.cpt_fd] = filp; ++ FD_SET(fdi.cpt_fd, tsk->files->fdt->open_fds); ++ if (fdi.cpt_flags&CPT_FD_FLAG_CLOSEEXEC) ++ FD_SET(fdi.cpt_fd, tsk->files->fdt->close_on_exec); ++ ++ dprintk_ctx("filejob %Ld done\n", j->fdi); ++ ++ put_task_struct(tsk); ++ ctx->filejob_queue = j->next; ++ kfree(j); ++ } ++ return 0; ++} ++ ++void rst_flush_filejobs(cpt_context_t *ctx) ++{ ++ struct filejob *j; ++ ++ while ((j = ctx->filejob_queue) != NULL) { ++ ctx->filejob_queue = j->next; ++ kfree(j); ++ } ++} ++ ++int rst_fs_complete(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ struct fs_struct *f = current->fs; ++ cpt_object_t *obj; ++ ++ if (ti->cpt_fs == CPT_NULL) { ++ exit_fs(current); ++ return 0; ++ } ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_FS, ti->cpt_fs, ctx); ++ if (obj) { ++ if (obj->o_obj != f) { ++ exit_fs(current); ++ f = obj->o_obj; ++ atomic_inc(&f->count); ++ current->fs = f; ++ } ++ return 0; ++ } ++ ++ /* Do _not_ restore root. Image contains absolute pathnames. ++ * So, we fix it in context of rst process. ++ */ ++ ++ obj = cpt_object_add(CPT_OBJ_FS, f, ctx); ++ if (obj) ++ cpt_obj_setpos(obj, ti->cpt_fs, ctx); ++ ++ return 0; ++} ++ ++int cpt_get_dentry(struct dentry **dp, struct vfsmount **mp, ++ loff_t *pos, struct cpt_context *ctx) ++{ ++ struct cpt_file_image fi; ++ struct file * file; ++ int err; ++ ++ err = rst_get_object(CPT_OBJ_FILE, *pos, &fi, ctx); ++ if (err) ++ return err; ++ ++ file = rst_file(*pos, -2, ctx); ++ if (IS_ERR(file)) ++ return PTR_ERR(file); ++ ++ *dp = dget(file->f_dentry); ++ *mp = mntget(file->f_vfsmnt); ++ *pos += fi.cpt_next; ++ fput(file); ++ return 0; ++} ++ ++static void __set_fs_root(struct fs_struct *fs, struct vfsmount *mnt, ++ struct dentry *dentry) ++{ ++ struct dentry *old_root; ++ struct vfsmount *old_rootmnt; ++ write_lock(&fs->lock); ++ old_root = fs->root; ++ old_rootmnt = fs->rootmnt; ++ fs->rootmnt = mnt; ++ fs->root = dentry; ++ write_unlock(&fs->lock); ++ if (old_root) { ++ dput(old_root); ++ mntput(old_rootmnt); ++ } ++} ++ ++static void __set_fs_pwd(struct fs_struct *fs, struct vfsmount *mnt, ++ struct dentry *dentry) ++{ ++ struct dentry *old_pwd; ++ struct vfsmount *old_pwdmnt; ++ ++ write_lock(&fs->lock); ++ old_pwd = fs->pwd; ++ old_pwdmnt = fs->pwdmnt; ++ fs->pwdmnt = mnt; ++ fs->pwd = dentry; ++ write_unlock(&fs->lock); ++ ++ if (old_pwd) { ++ dput(old_pwd); ++ mntput(old_pwdmnt); ++ } ++} ++ ++ ++int rst_restore_fs(struct cpt_context *ctx) ++{ ++ loff_t pos; ++ cpt_object_t *obj; ++ int err = 0; ++ ++ for_each_object(obj, CPT_OBJ_FS) { ++ struct cpt_fs_struct_image fi; ++ struct fs_struct *fs = obj->o_obj; ++ int i; ++ struct dentry *d[3]; ++ struct vfsmount *m[3]; ++ ++ err = rst_get_object(CPT_OBJ_FS, obj->o_pos, &fi, ctx); ++ if (err) ++ return err; ++ ++ fs->umask = fi.cpt_umask; ++ ++ pos = obj->o_pos + fi.cpt_hdrlen; ++ d[0] = d[1] = d[2] = NULL; ++ m[0] = m[1] = m[2] = NULL; ++ i = 0; ++ while (pos < obj->o_pos + fi.cpt_next && i<3) { ++ err = cpt_get_dentry(d+i, m+i, &pos, ctx); ++ if (err) { ++ eprintk_ctx("cannot get_dir: %d", err); ++ for (--i; i >= 0; i--) { ++ if (d[i]) ++ dput(d[i]); ++ if (m[i]) ++ mntput(m[i]); ++ } ++ return err; ++ } ++ i++; ++ } ++ if (d[0]) ++ __set_fs_root(fs, m[0], d[0]); ++ if (d[1]) ++ __set_fs_pwd(fs, m[1], d[1]); ++ if (d[2]) { ++ struct dentry *olddentry; ++ struct vfsmount *oldmnt; ++ write_lock(&fs->lock); ++ oldmnt = fs->altrootmnt; ++ olddentry = fs->altroot; ++ fs->altrootmnt = m[2]; ++ fs->altroot = d[2]; ++ write_unlock(&fs->lock); ++ ++ if (olddentry) { ++ dput(olddentry); ++ mntput(oldmnt); ++ } ++ } ++ } ++ return err; ++} ++ ++int do_one_mount(char *mntpnt, char *mnttype, char *mntbind, ++ unsigned long flags, unsigned long mnt_flags, ++ struct cpt_context *ctx) ++{ ++ int err; ++ ++ if (mntbind && (strcmp(mntbind, "/") == 0 || strcmp(mntbind, "") == 0)) ++ mntbind = NULL; ++ ++ if (mntbind) ++ flags |= MS_BIND; ++ /* Join per-mountpoint flags with global flags */ ++ if (mnt_flags & MNT_NOSUID) ++ flags |= MS_NOSUID; ++ if (mnt_flags & MNT_NODEV) ++ flags |= MS_NODEV; ++ if (mnt_flags & MNT_NOEXEC) ++ flags |= MS_NOEXEC; ++ ++ err = sc_mount(mntbind, mntpnt, mnttype, flags); ++ if (err < 0) { ++ eprintk_ctx("%d mounting %s %s %08lx\n", err, mntpnt, mnttype, flags); ++ return err; ++ } ++ return 0; ++} ++ ++static int undumptmpfs(void *arg) ++{ ++ int i; ++ int *pfd = arg; ++ int fd1, fd2, err; ++ char *argv[] = { "tar", "x", "-C", "/", "-S", NULL }; ++ ++ if (pfd[0] != 0) ++ sc_dup2(pfd[0], 0); ++ ++ set_fs(KERNEL_DS); ++ fd1 = sc_open("/dev/null", O_WRONLY, 0); ++ fd2 = sc_open("/dev/null", O_WRONLY, 0); ++try: ++ if (fd1 < 0 || fd2 < 0) { ++ if (fd1 == -ENOENT && fd2 == -ENOENT) { ++ err = sc_mknod("/dev/null", S_IFCHR|0666, ++ new_encode_dev((MEM_MAJOR<files->fdt->max_fds; i++) ++ sc_close(i); ++ ++ module_put(THIS_MODULE); ++ ++ i = sc_execve("/bin/tar", argv, NULL); ++ eprintk("failed to exec /bin/tar: %d\n", i); ++ return 255 << 8; ++} ++ ++static int rst_restore_tmpfs(loff_t *pos, struct cpt_context * ctx) ++{ ++ int err; ++ int pfd[2]; ++ struct file *f; ++ struct cpt_object_hdr v; ++ int n; ++ loff_t end; ++ int pid; ++ int status; ++ mm_segment_t oldfs; ++ sigset_t ignore, blocked; ++ ++ err = rst_get_object(CPT_OBJ_NAME, *pos, &v, ctx); ++ if (err < 0) ++ return err; ++ ++ err = sc_pipe(pfd); ++ if (err < 0) ++ return err; ++ ignore.sig[0] = CPT_SIG_IGNORE_MASK; ++ sigprocmask(SIG_BLOCK, &ignore, &blocked); ++ pid = err = local_kernel_thread(undumptmpfs, (void*)pfd, SIGCHLD, 0); ++ if (err < 0) { ++ eprintk_ctx("tmpfs local_kernel_thread: %d\n", err); ++ goto out; ++ } ++ f = fget(pfd[1]); ++ sc_close(pfd[1]); ++ sc_close(pfd[0]); ++ ++ ctx->file->f_pos = *pos + v.cpt_hdrlen; ++ end = *pos + v.cpt_next; ++ *pos += v.cpt_next; ++ do { ++ char buf[16]; ++ ++ n = end - ctx->file->f_pos; ++ if (n > sizeof(buf)) ++ n = sizeof(buf); ++ ++ if (ctx->read(buf, n, ctx)) ++ break; ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ f->f_op->write(f, buf, n, &f->f_pos); ++ set_fs(oldfs); ++ } while (ctx->file->f_pos < end); ++ ++ fput(f); ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if ((err = sc_waitx(pid, 0, &status)) < 0) ++ eprintk_ctx("wait4: %d\n", err); ++ else if ((status & 0x7f) == 0) { ++ err = (status & 0xff00) >> 8; ++ if (err != 0) { ++ eprintk_ctx("tar exited with %d\n", err); ++ err = -EINVAL; ++ } ++ } else { ++ eprintk_ctx("tar terminated\n"); ++ err = -EINVAL; ++ } ++ set_fs(oldfs); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++ ++ return err; ++ ++out: ++ if (pfd[1] >= 0) ++ sc_close(pfd[1]); ++ if (pfd[0] >= 0) ++ sc_close(pfd[0]); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++ return err; ++} ++ ++int check_ext_mount(char *mntpnt, char *mnttype, struct cpt_context *ctx) ++{ ++ struct mnt_namespace *n; ++ struct list_head *p; ++ struct vfsmount *t; ++ char *path, *path_buf; ++ int ret; ++ ++ n = current->nsproxy->mnt_ns; ++ ret = -ENOENT; ++ path_buf = cpt_get_buf(ctx); ++ down_read(&namespace_sem); ++ list_for_each(p, &n->list) { ++ t = list_entry(p, struct vfsmount, mnt_list); ++ path = d_path(t->mnt_root, t, path_buf, PAGE_SIZE); ++ if (IS_ERR(path)) ++ continue; ++ if (!strcmp(path, mntpnt) && ++ !strcmp(t->mnt_sb->s_type->name, mnttype)) { ++ ret = 0; ++ break; ++ } ++ } ++ up_read(&namespace_sem); ++ __cpt_release_buf(ctx); ++ return ret; ++} ++ ++int restore_one_vfsmount(struct cpt_vfsmount_image *mi, loff_t pos, struct cpt_context *ctx) ++{ ++ int err; ++ loff_t endpos; ++ ++ endpos = pos + mi->cpt_next; ++ pos += mi->cpt_hdrlen; ++ ++ while (pos < endpos) { ++ char *mntdev; ++ char *mntpnt; ++ char *mnttype; ++ char *mntbind; ++ ++ mntdev = __rst_get_name(&pos, ctx); ++ mntpnt = __rst_get_name(&pos, ctx); ++ mnttype = __rst_get_name(&pos, ctx); ++ mntbind = NULL; ++ if (mi->cpt_mntflags & CPT_MNT_BIND) ++ mntbind = __rst_get_name(&pos, ctx); ++ err = -EINVAL; ++ if (mnttype && mntpnt) { ++ err = 0; ++ if (!(mi->cpt_mntflags & CPT_MNT_EXT) && ++ strcmp(mntpnt, "/")) { ++ err = do_one_mount(mntpnt, mnttype, mntbind, ++ mi->cpt_flags, ++ mi->cpt_mntflags, ctx); ++ if (!err && ++ strcmp(mnttype, "tmpfs") == 0 && ++ !(mi->cpt_mntflags & (CPT_MNT_BIND))) ++ err = rst_restore_tmpfs(&pos, ctx); ++ } else if (mi->cpt_mntflags & CPT_MNT_EXT) { ++ err = check_ext_mount(mntpnt, mnttype, ctx); ++ if (err) ++ eprintk_ctx("mount point is missing: %s\n", mntpnt); ++ } ++ } ++ if (mntdev) ++ rst_put_name(mntdev, ctx); ++ if (mntpnt) ++ rst_put_name(mntpnt, ctx); ++ if (mnttype) ++ rst_put_name(mnttype, ctx); ++ if (mntbind) ++ rst_put_name(mntbind, ctx); ++ if (err) ++ return err; ++ } ++ return 0; ++} ++ ++int restore_one_namespace(loff_t pos, loff_t endpos, struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_vfsmount_image mi; ++ ++ while (pos < endpos) { ++ err = rst_get_object(CPT_OBJ_VFSMOUNT, pos, &mi, ctx); ++ if (err) ++ return err; ++ err = restore_one_vfsmount(&mi, pos, ctx); ++ if (err) ++ return err; ++ pos += mi.cpt_next; ++ } ++ return 0; ++} ++ ++int rst_root_namespace(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_NAMESPACE]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_object_hdr sbuf; ++ int done = 0; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_NAMESPACE || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ err = rst_get_object(CPT_OBJ_NAMESPACE, sec, &sbuf, ctx); ++ if (err) ++ return err; ++ if (done) { ++ eprintk_ctx("multiple namespaces are not supported\n"); ++ break; ++ } ++ done++; ++ err = restore_one_namespace(sec+sbuf.cpt_hdrlen, sec+sbuf.cpt_next, ctx); ++ if (err) ++ return err; ++ sec += sbuf.cpt_next; ++ } ++ ++ return 0; ++} ++ ++int rst_stray_files(struct cpt_context *ctx) ++{ ++ int err = 0; ++ loff_t sec = ctx->sections[CPT_SECT_FILES]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_FILES || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ struct cpt_object_hdr sbuf; ++ cpt_object_t *obj; ++ ++ err = _rst_get_object(CPT_OBJ_FILE, sec, &sbuf, sizeof(sbuf), ctx); ++ if (err) ++ break; ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_FILE, sec, ctx); ++ if (!obj) { ++ struct file *file; ++ ++ dprintk_ctx("stray file %Ld\n", sec); ++ ++ file = rst_sysv_shm(sec, ctx); ++ ++ if (IS_ERR(file)) { ++ eprintk_ctx("rst_stray_files: %ld\n", PTR_ERR(file)); ++ return PTR_ERR(file); ++ } else { ++ fput(file); ++ } ++ } ++ sec += sbuf.cpt_next; ++ } ++ ++ return err; ++} +Index: kernel/kernel/cpt/rst_inotify.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_inotify.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,198 @@ ++/* ++ * ++ * kernel/cpt/rst_inotify.c ++ * ++ * Copyright (C) 2000-2007 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_files.h" ++#include "cpt_kernel.h" ++#include "cpt_fsmagic.h" ++#include "cpt_syscalls.h" ++ ++extern struct file_operations inotify_fops; ++ ++struct file *rst_open_inotify(struct cpt_file_image *fi, ++ unsigned flags, ++ struct cpt_context *ctx) ++{ ++ struct file *file; ++ int fd; ++ ++ fd = sys_inotify_init(); ++ if (fd < 0) ++ return ERR_PTR(fd); ++ ++ file = fget(fd); ++ sys_close(fd); ++ return file; ++} ++ ++static int restore_one_inotify(cpt_object_t *obj, ++ loff_t pos, ++ struct cpt_inotify_image *ibuf, ++ cpt_context_t *ctx) ++{ ++ int err = 0; ++ loff_t endpos; ++ struct file *file = obj->o_obj; ++ struct inotify_device *dev; ++ ++ if (file->f_op != &inotify_fops) { ++ eprintk_ctx("bad inotify file\n"); ++ return -EINVAL; ++ } ++ ++ dev = file->private_data; ++ ++ if (unlikely(dev == NULL)) { ++ eprintk_ctx("bad inotify device\n"); ++ return -EINVAL; ++ } ++ ++ endpos = pos + ibuf->cpt_next; ++ pos += ibuf->cpt_hdrlen; ++ while (pos < endpos) { ++ union { ++ struct cpt_inotify_wd_image wi; ++ struct cpt_inotify_ev_image ei; ++ } u; ++ ++ err = rst_get_object(-1, pos, &u, ctx); ++ if (err) { ++ eprintk_ctx("rst_get_object: %d\n", err); ++ return err; ++ } ++ if (u.wi.cpt_object == CPT_OBJ_INOTIFY_WATCH) { ++ struct dentry *d; ++ struct vfsmount *mnt; ++ loff_t fpos = pos + u.wi.cpt_hdrlen; ++ ++ err = cpt_get_dentry(&d, &mnt, &fpos, ctx); ++ if (err) { ++ eprintk_ctx("cpt_get_dentry: %d\n", err); ++ return err; ++ } ++ ++ mutex_lock(&dev->up_mutex); ++ dev->ih->last_wd = u.wi.cpt_wd - 1; ++ err = inotify_create_watch(dev, d, mnt, u.wi.cpt_mask); ++ dev->ih->last_wd = ibuf->cpt_last_wd; ++ if (err != u.wi.cpt_wd) { ++ eprintk_ctx("wrong inotify descriptor %u %u\n", err, u.wi.cpt_wd); ++ if (err >= 0) ++ err = -EINVAL; ++ } else ++ err = 0; ++ mutex_unlock(&dev->up_mutex); ++ dput(d); ++ mntput(mnt); ++ if (err) ++ break; ++ } else if (u.wi.cpt_object == CPT_OBJ_INOTIFY_EVENT) { ++ struct inotify_user_watch dummy_watch; ++ struct inotify_watch *w; ++ char *name = NULL; ++ ++ if (u.ei.cpt_namelen) { ++ name = kmalloc(u.ei.cpt_namelen+1, GFP_KERNEL); ++ if (name == NULL) { ++ err = -ENOMEM; ++ break; ++ } ++ name[u.ei.cpt_namelen] = 0; ++ err = ctx->pread(name, u.ei.cpt_namelen, ctx, pos + u.ei.cpt_hdrlen); ++ if (err) { ++ kfree(name); ++ break; ++ } ++ } ++ ++ w = &dummy_watch.wdata; ++ dummy_watch.dev = dev; ++ atomic_set(&w->count, 2); ++ ++ /* Trick to avoid destruction due to exit event */ ++ if (u.ei.cpt_mask & (IN_IGNORED | IN_ONESHOT)) ++ atomic_inc(&w->count); ++ dev->ih->in_ops->handle_event(w, u.ei.cpt_wd, u.ei.cpt_mask, ++ u.ei.cpt_cookie, name, NULL); ++ if (name) ++ kfree(name); ++ } else { ++ eprintk_ctx("bad object: %u\n", u.wi.cpt_object); ++ err = -EINVAL; ++ break; ++ } ++ pos += u.wi.cpt_next; ++ } ++ return err; ++} ++ ++int rst_inotify(cpt_context_t *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_INOTIFY]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_INOTIFY || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ cpt_object_t *obj; ++ struct cpt_inotify_image ibuf; ++ ++ err = rst_get_object(CPT_OBJ_INOTIFY, sec, &ibuf, ctx); ++ if (err) ++ return err; ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_FILE, ibuf.cpt_file, ctx); ++ if (obj == NULL) { ++ eprintk_ctx("cannot find inotify file object\n"); ++ return -EINVAL; ++ } ++ err = restore_one_inotify(obj, sec, &ibuf, ctx); ++ if (err) ++ return err; ++ sec += ibuf.cpt_next; ++ } ++ ++ return 0; ++ ++} +Index: kernel/kernel/cpt/rst_mm.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_mm.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1144 @@ ++/* ++ * ++ * kernel/cpt/rst_mm.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_X86 ++#include ++#include ++#endif ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_VE ++#include ++#include ++#endif ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_files.h" ++#include "cpt_ubc.h" ++#include "cpt_mm.h" ++#include "cpt_kernel.h" ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++#include "cpt_pagein.h" ++#endif ++ ++#include "cpt_syscalls.h" ++ ++#define __PAGE_NX (1ULL<<63) ++ ++static unsigned long make_prot(struct cpt_vma_image *vmai) ++{ ++ unsigned long prot = 0; ++ ++ if (vmai->cpt_flags&VM_READ) ++ prot |= PROT_READ; ++ if (vmai->cpt_flags&VM_WRITE) ++ prot |= PROT_WRITE; ++ if (vmai->cpt_flags&VM_EXEC) ++ prot |= PROT_EXEC; ++ if (vmai->cpt_flags&VM_GROWSDOWN) ++ prot |= PROT_GROWSDOWN; ++ if (vmai->cpt_flags&VM_GROWSUP) ++ prot |= PROT_GROWSUP; ++ return prot; ++} ++ ++static unsigned long make_flags(struct cpt_vma_image *vmai) ++{ ++ unsigned long flags = MAP_FIXED; ++ ++ if (vmai->cpt_flags&(VM_SHARED|VM_MAYSHARE)) ++ flags |= MAP_SHARED; ++ else ++ flags |= MAP_PRIVATE; ++ ++ if (vmai->cpt_file == CPT_NULL) ++ flags |= MAP_ANONYMOUS; ++ if (vmai->cpt_flags&VM_GROWSDOWN) ++ flags |= MAP_GROWSDOWN; ++#ifdef MAP_GROWSUP ++ if (vmai->cpt_flags&VM_GROWSUP) ++ flags |= MAP_GROWSUP; ++#endif ++ if (vmai->cpt_flags&VM_DENYWRITE) ++ flags |= MAP_DENYWRITE; ++ if (vmai->cpt_flags&VM_EXECUTABLE) ++ flags |= MAP_EXECUTABLE; ++ if (!(vmai->cpt_flags&VM_ACCOUNT)) ++ flags |= MAP_NORESERVE; ++ return flags; ++} ++ ++#ifdef CONFIG_X86 ++#if !defined(CONFIG_X86_64) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) \ ++ && !defined(CONFIG_XEN) ++static int __alloc_ldt(mm_context_t *pc, int mincount) ++{ ++ int oldsize, newsize, nr; ++ ++ if (mincount <= pc->size) ++ return 0; ++ /* ++ * LDT got larger - reallocate if necessary. ++ */ ++ oldsize = pc->size; ++ mincount = (mincount+511)&(~511); ++ newsize = mincount*LDT_ENTRY_SIZE; ++ for (nr = 0; nr * PAGE_SIZE < newsize; nr++) { ++ BUG_ON(nr * PAGE_SIZE >= 64*1024); ++ if (!pc->ldt_pages[nr]) { ++ pc->ldt_pages[nr] = alloc_page(GFP_HIGHUSER|__GFP_UBC); ++ if (!pc->ldt_pages[nr]) ++ goto nomem; ++ clear_highpage(pc->ldt_pages[nr]); ++ } ++ } ++ pc->size = mincount; ++ return 0; ++ ++nomem: ++ while (--nr >= 0) ++ __free_page(pc->ldt_pages[nr]); ++ pc->size = 0; ++ return -ENOMEM; ++} ++ ++static int do_rst_ldt(struct cpt_obj_bits *li, loff_t pos, struct cpt_context *ctx) ++{ ++ struct mm_struct *mm = current->mm; ++ int i; ++ int err; ++ int size; ++ ++ err = __alloc_ldt(&mm->context, li->cpt_size/LDT_ENTRY_SIZE); ++ if (err) ++ return err; ++ ++ size = mm->context.size*LDT_ENTRY_SIZE; ++ ++ for (i = 0; i < size; i += PAGE_SIZE) { ++ int nr = i / PAGE_SIZE, bytes; ++ char *kaddr = kmap(mm->context.ldt_pages[nr]); ++ ++ bytes = size - i; ++ if (bytes > PAGE_SIZE) ++ bytes = PAGE_SIZE; ++ err = ctx->pread(kaddr, bytes, ctx, pos + li->cpt_hdrlen + i); ++ kunmap(mm->context.ldt_pages[nr]); ++ if (err) ++ return err; ++ } ++ ++ load_LDT(&mm->context); ++ return 0; ++} ++ ++#else ++ ++static int do_rst_ldt(struct cpt_obj_bits *li, loff_t pos, struct cpt_context *ctx) ++{ ++ struct mm_struct *mm = current->mm; ++ int oldsize = mm->context.size; ++ void *oldldt; ++ void *newldt; ++ int err; ++ ++ if (li->cpt_size > PAGE_SIZE) ++ newldt = vmalloc(li->cpt_size); ++ else ++ newldt = kmalloc(li->cpt_size, GFP_KERNEL); ++ ++ if (!newldt) ++ return -ENOMEM; ++ ++ err = ctx->pread(newldt, li->cpt_size, ctx, pos + li->cpt_hdrlen); ++ if (err) ++ return err; ++ ++ oldldt = mm->context.ldt; ++ mm->context.ldt = newldt; ++ mm->context.size = li->cpt_size/LDT_ENTRY_SIZE; ++ ++ load_LDT(&mm->context); ++ ++ if (oldsize) { ++ if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE) ++ vfree(oldldt); ++ else ++ kfree(oldldt); ++ } ++ return 0; ++} ++#endif ++#endif ++ ++static int ++restore_aio_ring(struct kioctx *aio_ctx, struct cpt_aio_ctx_image *aimg) ++{ ++ struct aio_ring_info *info = &aio_ctx->ring_info; ++ unsigned nr_events = aio_ctx->max_reqs; ++ unsigned long size; ++ int nr_pages; ++ ++ /* We recalculate parameters of the ring exactly like ++ * fs/aio.c does and then compare calculated values ++ * with ones, stored in dump. They must be the same. */ ++ ++ nr_events += 2; ++ ++ size = sizeof(struct aio_ring); ++ size += sizeof(struct io_event) * nr_events; ++ nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; ++ ++ if (nr_pages != aimg->cpt_ring_pages) ++ return -EINVAL; ++ ++ info->nr_pages = nr_pages; ++ ++ nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); ++ ++ if (nr_events != aimg->cpt_nr) ++ return -EINVAL; ++ ++ info->nr = 0; ++ info->ring_pages = info->internal_pages; ++ if (nr_pages > AIO_RING_PAGES) { ++ info->ring_pages = kmalloc(sizeof(struct page *) * nr_pages, GFP_KERNEL); ++ if (!info->ring_pages) ++ return -ENOMEM; ++ memset(info->ring_pages, 0, sizeof(struct page *) * nr_pages); ++ } ++ ++ info->mmap_size = nr_pages * PAGE_SIZE; ++ ++ /* This piece of shit is not entirely my fault. Kernel aio.c makes ++ * something odd mmap()ping some pages and then pinning them. ++ * I guess it is just some mud remained of failed attempt to show ring ++ * to user space. The result is odd. :-) Immediately after ++ * creation of AIO context, kernel shares those pages with user ++ * and user can read and even write there. But after the first ++ * fork, pages are marked COW with evident consequences. ++ * I remember, I did the same mistake in the first version ++ * of mmapped packet socket, luckily that crap never reached ++ * mainstream. ++ * ++ * So, what are we going to do? I can simulate this odd behaviour ++ * exactly, but I am not insane yet. For now just take the pages ++ * from user space. Alternatively, we could keep kernel copy ++ * in AIO context image, which would be more correct. ++ * ++ * What is wrong now? If the pages are COWed, ring is transferred ++ * incorrectly. ++ */ ++ down_read(¤t->mm->mmap_sem); ++ info->mmap_base = aimg->cpt_mmap_base; ++ info->nr_pages = get_user_pages(current, current->mm, ++ info->mmap_base, nr_pages, ++ 1, 0, info->ring_pages, NULL); ++ up_read(¤t->mm->mmap_sem); ++ ++ if (unlikely(info->nr_pages != nr_pages)) { ++ int i; ++ ++ for (i=0; inr_pages; i++) ++ put_page(info->ring_pages[i]); ++ if (info->ring_pages && info->ring_pages != info->internal_pages) ++ kfree(info->ring_pages); ++ return -EFAULT; ++ } ++ ++ aio_ctx->user_id = info->mmap_base; ++ ++ info->nr = nr_events; ++ info->tail = aimg->cpt_tail; ++ ++ return 0; ++} ++ ++static int do_rst_aio(struct cpt_aio_ctx_image *aimg, loff_t pos, cpt_context_t *ctx) ++{ ++ int err; ++ struct kioctx *aio_ctx; ++ extern spinlock_t aio_nr_lock; ++ ++ aio_ctx = kmem_cache_alloc(kioctx_cachep, GFP_KERNEL); ++ if (!aio_ctx) ++ return -ENOMEM; ++ ++ memset(aio_ctx, 0, sizeof(*aio_ctx)); ++ aio_ctx->max_reqs = aimg->cpt_max_reqs; ++ ++ if ((err = restore_aio_ring(aio_ctx, aimg)) < 0) { ++ kmem_cache_free(kioctx_cachep, aio_ctx); ++ eprintk_ctx("AIO %Ld restore_aio_ring: %d\n", pos, err); ++ return err; ++ } ++ ++ aio_ctx->mm = current->mm; ++ atomic_inc(&aio_ctx->mm->mm_count); ++ atomic_set(&aio_ctx->users, 1); ++ spin_lock_init(&aio_ctx->ctx_lock); ++ spin_lock_init(&aio_ctx->ring_info.ring_lock); ++ init_waitqueue_head(&aio_ctx->wait); ++ INIT_LIST_HEAD(&aio_ctx->active_reqs); ++ INIT_LIST_HEAD(&aio_ctx->run_list); ++ INIT_WORK(&aio_ctx->wq.work, aio_kick_handler); ++ ++ spin_lock(&aio_nr_lock); ++ aio_nr += aio_ctx->max_reqs; ++ spin_unlock(&aio_nr_lock); ++ ++ write_lock(&aio_ctx->mm->ioctx_list_lock); ++ aio_ctx->next = aio_ctx->mm->ioctx_list; ++ aio_ctx->mm->ioctx_list = aio_ctx; ++ write_unlock(&aio_ctx->mm->ioctx_list_lock); ++ ++ return 0; ++} ++ ++struct anonvma_map ++{ ++ struct hlist_node list; ++ struct anon_vma *avma; ++ __u64 id; ++}; ++ ++static int verify_create_anonvma(struct mm_struct *mm, ++ struct cpt_vma_image *vmai, ++ cpt_context_t *ctx) ++{ ++ struct anon_vma *avma = NULL; ++ struct anon_vma *new_avma; ++ struct vm_area_struct *vma; ++ int h; ++ ++ if (!ctx->anonvmas) { ++ if (CPT_ANONVMA_HSIZE*sizeof(struct hlist_head) > PAGE_SIZE) ++ return -EINVAL; ++ if ((ctx->anonvmas = (void*)__get_free_page(GFP_KERNEL)) == NULL) ++ return -ENOMEM; ++ for (h = 0; h < CPT_ANONVMA_HSIZE; h++) ++ INIT_HLIST_HEAD(&ctx->anonvmas[h]); ++ } else { ++ struct anonvma_map *map; ++ struct hlist_node *elem; ++ ++ h = hash_long((unsigned long)vmai->cpt_anonvmaid, CPT_ANONVMA_HBITS); ++ hlist_for_each_entry(map, elem, &ctx->anonvmas[h], list) { ++ if (map->id == vmai->cpt_anonvmaid) { ++ avma = map->avma; ++ break; ++ } ++ } ++ } ++ ++ down_read(&mm->mmap_sem); ++ if ((vma = find_vma(mm, vmai->cpt_start)) == NULL) { ++ up_read(&mm->mmap_sem); ++ return -ESRCH; ++ } ++ if (vma->vm_start != vmai->cpt_start) { ++ up_read(&mm->mmap_sem); ++ eprintk_ctx("vma start mismatch\n"); ++ return -EINVAL; ++ } ++ if (vma->vm_pgoff != vmai->cpt_pgoff) { ++ dprintk_ctx("vma pgoff mismatch, fixing\n"); ++ if (vma->vm_file || (vma->vm_flags&(VM_SHARED|VM_MAYSHARE))) { ++ eprintk_ctx("cannot fixup vma pgoff\n"); ++ up_read(&mm->mmap_sem); ++ return -EINVAL; ++ } ++ vma->vm_pgoff = vmai->cpt_pgoff; ++ } ++ ++ if (!vma->anon_vma) { ++ if (avma) { ++ vma->anon_vma = avma; ++ anon_vma_link(vma); ++ } else { ++ int err; ++ ++ err = anon_vma_prepare(vma); ++ ++ if (err) { ++ up_read(&mm->mmap_sem); ++ return err; ++ } ++ } ++ } else { ++ /* Note, we _can_ arrive to the situation, when two ++ * different anonvmaid's point to one anon_vma, this happens ++ * f.e. when mmap() merged new area to previous one and ++ * they will share one anon_vma even if they did not on ++ * original host. ++ * ++ * IT IS OK. To all that I understand, we may merge all ++ * the anon_vma's and rmap can scan all the huge list of vmas ++ * searching for page. It is just "suboptimal". ++ * ++ * Real disaster would happen, if vma already got an anon_vma ++ * with different id. It is very rare case, kernel does the ++ * best efforts to merge anon_vmas when some attributes are ++ * different. In this case we will fall to copying memory. ++ */ ++ if (avma && vma->anon_vma != avma) { ++ up_read(&mm->mmap_sem); ++ wprintk_ctx("anon_vma mismatch\n"); ++ return 0; ++ } ++ } ++ ++ new_avma = vma->anon_vma; ++ up_read(&mm->mmap_sem); ++ ++ if (!avma) { ++ struct anonvma_map *map; ++ ++ if (!new_avma) ++ return -EINVAL; ++ ++ if ((map = kmalloc(sizeof(*map), GFP_KERNEL)) == NULL) ++ return -ENOMEM; ++ ++ map->id = vmai->cpt_anonvmaid; ++ map->avma = new_avma; ++ h = hash_long((unsigned long)vmai->cpt_anonvmaid, CPT_ANONVMA_HBITS); ++ hlist_add_head(&map->list, &ctx->anonvmas[h]); ++ } ++ return 0; ++} ++ ++static int copy_mm_pages(struct mm_struct *src, unsigned long start, ++ unsigned long end) ++{ ++ int err; ++ ++ for (; start < end; start += PAGE_SIZE) { ++ struct page *page; ++ struct page *spage; ++ void *maddr, *srcaddr; ++ ++ err = get_user_pages(current, current->mm, ++ start, 1, 1, 1, &page, NULL); ++ if (err == 0) ++ err = -EFAULT; ++ if (err < 0) ++ return err; ++ ++ err = get_user_pages(current, src, ++ start, 1, 0, 1, &spage, NULL); ++ ++ if (err == 0) ++ err = -EFAULT; ++ if (err < 0) { ++ page_cache_release(page); ++ return err; ++ } ++ ++ srcaddr = kmap(spage); ++ maddr = kmap(page); ++ memcpy(maddr, srcaddr, PAGE_SIZE); ++ set_page_dirty_lock(page); ++ kunmap(page); ++ kunmap(spage); ++ page_cache_release(page); ++ page_cache_release(spage); ++ } ++ return 0; ++} ++ ++static int do_rst_vma(struct cpt_vma_image *vmai, loff_t vmapos, loff_t mmpos, struct cpt_context *ctx) ++{ ++ int err = 0; ++ unsigned long addr; ++ struct mm_struct *mm = current->mm; ++ struct vm_area_struct *vma; ++ struct file *file = NULL; ++ unsigned long prot; ++ int checked = 0; ++ ++ if (vmai->cpt_type == CPT_VMA_VDSO) { ++ if (ctx->vdso == NULL) { ++#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES ++ err = arch_setup_additional_pages(NULL, 0, ++ vmai->cpt_start); ++#endif ++ goto out; ++ } ++ } ++ ++ prot = make_prot(vmai); ++ ++ if (vmai->cpt_file != CPT_NULL) { ++ if (vmai->cpt_type == CPT_VMA_TYPE_0) { ++ file = rst_file(vmai->cpt_file, -1, ctx); ++ if (IS_ERR(file)) { ++ eprintk_ctx("do_rst_vma: rst_file: %Ld\n", (unsigned long long)vmai->cpt_file); ++ return PTR_ERR(file); ++ } ++ } else if (vmai->cpt_type == CPT_VMA_TYPE_SHM) { ++ file = rst_sysv_shm(vmai->cpt_file, ctx); ++ if (IS_ERR(file)) ++ return PTR_ERR(file); ++ } ++ } ++ ++ down_write(&mm->mmap_sem); ++ addr = do_mmap_pgoff(file, vmai->cpt_start, ++ vmai->cpt_end-vmai->cpt_start, ++ prot, make_flags(vmai), ++ vmai->cpt_pgoff); ++ ++ if (addr != vmai->cpt_start) { ++ up_write(&mm->mmap_sem); ++ ++ err = -EINVAL; ++ if (IS_ERR((void*)addr)) ++ err = addr; ++ goto out; ++ } ++ ++ vma = find_vma(mm, vmai->cpt_start); ++ if (vma == NULL) { ++ up_write(&mm->mmap_sem); ++ eprintk_ctx("cannot find mmapped vma\n"); ++ err = -ESRCH; ++ goto out; ++ } ++ ++ /* do_mmap_pgoff() can merge new area to previous one (not to the next, ++ * we mmap in order, the rest of mm is still unmapped). This can happen ++ * f.e. if flags are to be adjusted later, or if we had different ++ * anon_vma on two adjacent regions. Split it by brute force. */ ++ if (vma->vm_start != vmai->cpt_start) { ++ dprintk_ctx("vma %Ld merged, split\n", vmapos); ++ err = split_vma(mm, vma, (unsigned long)vmai->cpt_start, 0); ++ if (err) { ++ up_write(&mm->mmap_sem); ++ eprintk_ctx("cannot split vma\n"); ++ goto out; ++ } ++ } ++ up_write(&mm->mmap_sem); ++ ++ if (vmai->cpt_anonvma && vmai->cpt_anonvmaid) { ++ err = verify_create_anonvma(mm, vmai, ctx); ++ if (err) { ++ eprintk_ctx("cannot verify_create_anonvma %Ld\n", vmapos); ++ goto out; ++ } ++ } ++ ++ if (vmai->cpt_type == CPT_VMA_VDSO) { ++ struct page *page; ++ void *maddr; ++ ++ err = get_user_pages(current, current->mm, ++ (unsigned long)vmai->cpt_start, ++ 1, 1, 1, &page, NULL); ++ if (err == 0) ++ err = -EFAULT; ++ if (err < 0) { ++ eprintk_ctx("can't get vdso: get_user_pages: %d\n", err); ++ goto out; ++ } ++ err = 0; ++ maddr = kmap(page); ++ memcpy(maddr, ctx->vdso, PAGE_SIZE); ++ set_page_dirty_lock(page); ++ kunmap(page); ++ page_cache_release(page); ++ goto out; ++ } ++ ++ if (vmai->cpt_next > vmai->cpt_hdrlen) { ++ loff_t offset = vmapos + vmai->cpt_hdrlen; ++ ++ do { ++ union { ++ struct cpt_page_block pb; ++ struct cpt_remappage_block rpb; ++ struct cpt_copypage_block cpb; ++ struct cpt_lazypage_block lpb; ++ struct cpt_iterpage_block ipb; ++ } u; ++ loff_t pos; ++ ++ err = rst_get_object(-1, offset, &u, ctx); ++ if (err) { ++ eprintk_ctx("vma fix object: %d\n", err); ++ goto out; ++ } ++ if (u.rpb.cpt_object == CPT_OBJ_REMAPPAGES) { ++ err = sc_remap_file_pages(u.rpb.cpt_start, ++ u.rpb.cpt_end-u.rpb.cpt_start, ++ 0, u.rpb.cpt_pgoff, 0); ++ if (err < 0) { ++ eprintk_ctx("remap_file_pages: %d (%08x,%u,%u)\n", err, ++ (__u32)u.rpb.cpt_start, (__u32)(u.rpb.cpt_end-u.rpb.cpt_start), ++ (__u32)u.rpb.cpt_pgoff); ++ goto out; ++ } ++ offset += u.rpb.cpt_next; ++ continue; ++ } else if (u.cpb.cpt_object == CPT_OBJ_LAZYPAGES) { ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ unsigned long ptr = u.lpb.cpt_start; ++ ++ down_read(&mm->mmap_sem); ++ if ((vma = find_vma(mm, u.lpb.cpt_start)) == NULL) { ++ up_read(&mm->mmap_sem); ++ eprintk_ctx("lost vm_area_struct\n"); ++ err = -ESRCH; ++ goto out; ++ } ++ err = anon_vma_prepare(vma); ++ if (err) { ++ up_read(&mm->mmap_sem); ++ goto out; ++ } ++ while (ptr < u.lpb.cpt_end) { ++ err = rst_pagein(vma, u.lpb.cpt_index + (ptr-u.lpb.cpt_start)/PAGE_SIZE, ++ ptr, ctx); ++ if (err) ++ break; ++ ptr += PAGE_SIZE; ++ } ++ up_read(&mm->mmap_sem); ++#else ++ err = -EINVAL; ++#endif ++ if (err) ++ goto out; ++ offset += u.cpb.cpt_next; ++ continue; ++ } else if (u.cpb.cpt_object == CPT_OBJ_COPYPAGES) { ++ struct vm_area_struct *vma, *vma1; ++ struct mm_struct *src; ++ struct anon_vma *src_anon; ++ cpt_object_t *mobj; ++ ++ if (!vmai->cpt_anonvmaid) { ++ err = -EINVAL; ++ eprintk_ctx("CPT_OBJ_COPYPAGES in !anonvma\n"); ++ goto out; ++ } ++ ++ mobj = lookup_cpt_obj_bypos(CPT_OBJ_MM, u.cpb.cpt_source, ctx); ++ if (!mobj) { ++ eprintk_ctx("lost mm_struct to clone pages from\n"); ++ err = -ESRCH; ++ goto out; ++ } ++ src = mobj->o_obj; ++ ++ down_read(&src->mmap_sem); ++ src_anon = NULL; ++ vma1 = find_vma(src, u.cpb.cpt_start); ++ if (vma1) ++ src_anon = vma1->anon_vma; ++ up_read(&src->mmap_sem); ++ ++ if (!vma1) { ++ eprintk_ctx("lost src vm_area_struct\n"); ++ err = -ESRCH; ++ goto out; ++ } ++ ++ down_read(&mm->mmap_sem); ++ if ((vma = find_vma(mm, u.cpb.cpt_start)) == NULL) { ++ up_read(&mm->mmap_sem); ++ eprintk_ctx("lost vm_area_struct\n"); ++ err = -ESRCH; ++ goto out; ++ } ++ ++ if (!src_anon || ++ !vma->anon_vma || ++ vma->anon_vma != src_anon || ++ vma->vm_start - vma1->vm_start != ++ (vma->vm_pgoff - vma1->vm_pgoff) << PAGE_SHIFT) { ++ up_read(&mm->mmap_sem); ++ wprintk_ctx("anon_vma mismatch in vm_area_struct %Ld\n", vmapos); ++ err = copy_mm_pages(mobj->o_obj, ++ u.cpb.cpt_start, ++ u.cpb.cpt_end); ++ } else { ++ err = __copy_page_range(vma, vma1, ++ u.cpb.cpt_start, ++ u.cpb.cpt_end-u.cpb.cpt_start); ++ up_read(&mm->mmap_sem); ++ } ++ if (err) { ++ eprintk_ctx("clone_page_range: %d (%08x,%u,%ld)\n", err, ++ (__u32)u.cpb.cpt_start, (__u32)(u.cpb.cpt_end-u.cpb.cpt_start), ++ (long)u.cpb.cpt_source); ++ goto out; ++ } ++ ++ offset += u.cpb.cpt_next; ++ continue; ++ } else if (u.pb.cpt_object == CPT_OBJ_ITERPAGES || ++ u.pb.cpt_object == CPT_OBJ_ITERYOUNGPAGES ++ ) { ++#ifdef CONFIG_VZ_CHECKPOINT_ITER ++ unsigned long ptr = u.lpb.cpt_start; ++ u64 page_pos[16]; ++ pos = offset + sizeof(u.pb); ++ ++ err = ctx->pread(&page_pos, ++ 8*(u.lpb.cpt_end-ptr)/PAGE_SIZE, ++ ctx, ++ pos); ++ if (err) { ++ eprintk_ctx("Oops\n"); ++ goto out; ++ } ++ ++ down_read(&mm->mmap_sem); ++ if ((vma = find_vma(mm, u.lpb.cpt_start)) == NULL) { ++ up_read(&mm->mmap_sem); ++ eprintk_ctx("lost vm_area_struct\n"); ++ err = -ESRCH; ++ goto out; ++ } ++ err = anon_vma_prepare(vma); ++ if (err) { ++ up_read(&mm->mmap_sem); ++ goto out; ++ } ++ while (ptr < u.lpb.cpt_end) { ++ err = rst_iter(vma, ++ page_pos[(ptr-u.lpb.cpt_start)/PAGE_SIZE], ++ ptr, ++ ctx); ++ if (err) ++ break; ++ ptr += PAGE_SIZE; ++ } ++ if (u.pb.cpt_object == CPT_OBJ_ITERYOUNGPAGES) { ++ make_pages_present((unsigned long)u.lpb.cpt_start, ++ (unsigned long)u.lpb.cpt_end); ++ } ++ up_read(&mm->mmap_sem); ++#else ++ err = -EINVAL; ++#endif ++ if (err) ++ goto out; ++ offset += u.cpb.cpt_next; ++ continue; ++ } ++ if (u.pb.cpt_object != CPT_OBJ_PAGES) { ++ eprintk_ctx("unknown vma fix object %d\n", u.pb.cpt_object); ++ err = -EINVAL; ++ goto out; ++ } ++ pos = offset + sizeof(u.pb); ++ if (!(vmai->cpt_flags&VM_ACCOUNT) && !(prot&PROT_WRITE)) { ++ /* I guess this is get_user_pages() messed things, ++ * this happens f.e. when gdb inserts breakpoints. ++ */ ++ int i; ++ for (i=0; i<(u.pb.cpt_end-u.pb.cpt_start)/PAGE_SIZE; i++) { ++ struct page *page; ++ void *maddr; ++ err = get_user_pages(current, current->mm, ++ (unsigned long)u.pb.cpt_start + i*PAGE_SIZE, ++ 1, 1, 1, &page, NULL); ++ if (err == 0) ++ err = -EFAULT; ++ if (err < 0) { ++ eprintk_ctx("get_user_pages: %d\n", err); ++ goto out; ++ } ++ err = 0; ++ maddr = kmap(page); ++ if (u.pb.cpt_content == CPT_CONTENT_VOID) { ++ memset(maddr, 0, PAGE_SIZE); ++ } else if (u.pb.cpt_content == CPT_CONTENT_DATA) { ++ err = ctx->pread(maddr, PAGE_SIZE, ++ ctx, pos + i*PAGE_SIZE); ++ if (err) { ++ kunmap(page); ++ goto out; ++ } ++ } else { ++ err = -EINVAL; ++ kunmap(page); ++ goto out; ++ } ++ set_page_dirty_lock(page); ++ kunmap(page); ++ page_cache_release(page); ++ } ++ } else { ++ if (!(prot&PROT_WRITE)) ++ sc_mprotect(vmai->cpt_start, vmai->cpt_end-vmai->cpt_start, prot | PROT_WRITE); ++ if (u.pb.cpt_content == CPT_CONTENT_VOID) { ++ int i; ++ for (i=0; i<(u.pb.cpt_end-u.pb.cpt_start)/sizeof(unsigned long); i++) { ++ err = __put_user(0UL, ((unsigned long __user*)(unsigned long)u.pb.cpt_start) + i); ++ if (err) { ++ eprintk_ctx("__put_user 2 %d\n", err); ++ goto out; ++ } ++ } ++ } else if (u.pb.cpt_content == CPT_CONTENT_DATA) { ++ loff_t tpos = pos; ++ err = ctx->file->f_op->read(ctx->file, cpt_ptr_import(u.pb.cpt_start), ++ u.pb.cpt_end-u.pb.cpt_start, ++ &tpos); ++ if (err != u.pb.cpt_end-u.pb.cpt_start) { ++ if (err >= 0) ++ err = -EIO; ++ goto out; ++ } ++ } else { ++ err = -EINVAL; ++ goto out; ++ } ++ if (!(prot&PROT_WRITE)) ++ sc_mprotect(vmai->cpt_start, vmai->cpt_end-vmai->cpt_start, prot); ++ } ++ err = 0; ++ offset += u.pb.cpt_next; ++ } while (offset < vmapos + vmai->cpt_next); ++ } ++ ++check: ++ do { ++ struct vm_area_struct *vma; ++ down_read(&mm->mmap_sem); ++ vma = find_vma(mm, addr); ++ if (vma) { ++ if ((vma->vm_flags^vmai->cpt_flags)&VM_READHINTMASK) { ++ VM_ClearReadHint(vma); ++ vma->vm_flags |= vmai->cpt_flags&VM_READHINTMASK; ++ } ++ if ((vma->vm_flags^vmai->cpt_flags)&VM_LOCKED) { ++ dprintk_ctx("fixing up VM_LOCKED %Ld\n", vmapos); ++ up_read(&mm->mmap_sem); ++ if (vma->vm_flags&VM_LOCKED) ++ err = sc_munlock(vmai->cpt_start, vmai->cpt_end-vmai->cpt_start); ++ else ++ err = sc_mlock(vmai->cpt_start, vmai->cpt_end-vmai->cpt_start); ++ /* When mlock fails with EFAULT, it means ++ * that it could not bring in pages. ++ * It can happen after mlock() on unreadable ++ * VMAs. But VMA is correctly locked, ++ * so that this error can be ignored. */ ++ if (err == -EFAULT) ++ err = 0; ++ if (err) ++ goto out; ++ goto check; ++ } ++ if ((vma->vm_page_prot.pgprot^vmai->cpt_pgprot)&~__PAGE_NX) ++ wprintk_ctx("VMA %08lx@%ld pgprot mismatch %08Lx %08Lx\n", addr, (long)vmapos, ++ (unsigned long long)vma->vm_page_prot.pgprot, ++ (unsigned long long)vmai->cpt_pgprot); ++#if defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64) ++ if (((vma->vm_page_prot.pgprot^vmai->cpt_pgprot)&__PAGE_NX) && ++ (ctx->kernel_config_flags&CPT_KERNEL_CONFIG_PAE)) ++ wprintk_ctx("VMA %08lx@%ld pgprot mismatch %08Lx %08Lx\n", addr, (long)vmapos, ++ (__u64)vma->vm_page_prot.pgprot, (__u64)vmai->cpt_pgprot); ++#endif ++ if (vma->vm_flags != vmai->cpt_flags) { ++ unsigned long x = vma->vm_flags ^ vmai->cpt_flags; ++ if (x & VM_EXEC) { ++ /* Crap. On i386 this is OK. ++ * It is impossible to make via mmap/mprotect ++ * exec.c clears VM_EXEC on stack. */ ++ vma->vm_flags &= ~VM_EXEC; ++ } else if ((x & VM_ACCOUNT) && !checked) { ++ checked = 1; ++ if (!(prot&PROT_WRITE)) { ++ up_read(&mm->mmap_sem); ++ sc_mprotect(vmai->cpt_start, vmai->cpt_end-vmai->cpt_start, prot | PROT_WRITE); ++ sc_mprotect(vmai->cpt_start, vmai->cpt_end-vmai->cpt_start, prot); ++ goto check; ++ } ++ wprintk_ctx("VMA %08lx@%ld flag mismatch %08x %08x\n", addr, (long)vmapos, ++ (__u32)vma->vm_flags, (__u32)vmai->cpt_flags); ++ } else { ++ wprintk_ctx("VMA %08lx@%ld flag mismatch %08x %08x\n", addr, (long)vmapos, ++ (__u32)vma->vm_flags, (__u32)vmai->cpt_flags); ++ } ++ } ++ } else { ++ wprintk_ctx("no VMA for %08lx@%ld\n", addr, (long)vmapos); ++ } ++ up_read(&mm->mmap_sem); ++ } while (0); ++ ++out: ++ if (file) ++ fput(file); ++ return err; ++} ++ ++#ifndef CONFIG_IA64 ++#define TASK_UNMAP_START 0 ++#else ++/* On IA64 the first page is a special VM_IO|VM_RESERVED mapping ++ * used to accelerate speculative dereferences of NULL pointer. */ ++#define TASK_UNMAP_START PAGE_SIZE ++#endif ++ ++static int do_rst_mm(struct cpt_mm_image *vmi, loff_t pos, struct cpt_context *ctx) ++{ ++ int err = 0; ++ unsigned int def_flags; ++ struct mm_struct *mm = current->mm; ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *bc; ++#endif ++ ++ down_write(&mm->mmap_sem); ++ do_munmap(mm, TASK_UNMAP_START, TASK_SIZE-TASK_UNMAP_START); ++ ++#ifdef CONFIG_BEANCOUNTERS ++ /* ++ * MM beancounter is usually correct from the fork time, ++ * but not for init, for example. ++ * Luckily, mm_ub can be changed for a completely empty MM. ++ */ ++ bc = rst_lookup_ubc(vmi->cpt_mmub, ctx); ++ err = virtinfo_notifier_call(VITYPE_SCP, VIRTINFO_SCP_RSTMM, bc); ++ if (err & NOTIFY_FAIL) { ++ up_write(&mm->mmap_sem); ++ return -ECHRNG; ++ } ++ if ((err & VIRTNOTIFY_CHANGE) && bc != mm->mm_ub) { ++ struct user_beancounter *old_bc; ++ ++ old_bc = mm->mm_ub; ++ mm->mm_ub = bc; ++ bc = old_bc; ++ } ++ err = 0; ++ put_beancounter(bc); ++#endif ++ ++ mm->start_code = vmi->cpt_start_code; ++ mm->end_code = vmi->cpt_end_code; ++ mm->start_data = vmi->cpt_start_data; ++ mm->end_data = vmi->cpt_end_data; ++ mm->start_brk = vmi->cpt_start_brk; ++ mm->brk = vmi->cpt_brk; ++ mm->start_stack = vmi->cpt_start_stack; ++ mm->arg_start = vmi->cpt_start_arg; ++ mm->arg_end = vmi->cpt_end_arg; ++ mm->env_start = vmi->cpt_start_env; ++ mm->env_end = vmi->cpt_end_env; ++ mm->def_flags = 0; ++ def_flags = vmi->cpt_def_flags; ++ ++ mm->flags = vmi->cpt_dumpable; ++ if (ctx->image_version < CPT_VERSION_24) ++ mm->flags |= MMF_DUMP_FILTER_DEFAULT << MMF_DUMPABLE_BITS; ++ ++ mm->vps_dumpable = vmi->cpt_vps_dumpable; ++#ifndef CONFIG_IA64 ++ if (ctx->image_version >= CPT_VERSION_9) { ++ mm->context.vdso = cpt_ptr_import(vmi->cpt_vdso); ++ current_thread_info()->sysenter_return = CPT_SYSENTER_RETURN; ++ } ++#endif ++ ++#if 0 /* def CONFIG_HUGETLB_PAGE*/ ++/* NB: ? */ ++ int used_hugetlb; ++#endif ++ up_write(&mm->mmap_sem); ++ ++ if (vmi->cpt_next > vmi->cpt_hdrlen) { ++ loff_t offset = pos + vmi->cpt_hdrlen; ++ do { ++ union { ++ struct cpt_vma_image vmai; ++ struct cpt_aio_ctx_image aioi; ++ struct cpt_obj_bits bits; ++ } u; ++ err = rst_get_object(-1, offset, &u, ctx); ++ if (err) ++ goto out; ++ if (u.vmai.cpt_object == CPT_OBJ_VMA) { ++#ifdef CONFIG_IA64 ++ //// Later... ++ if (u.vmai.cpt_start) ++#endif ++ err = do_rst_vma(&u.vmai, offset, pos, ctx); ++ if (err) ++ goto out; ++#ifdef CONFIG_X86 ++ } else if (u.bits.cpt_object == CPT_OBJ_BITS && ++ u.bits.cpt_content == CPT_CONTENT_MM_CONTEXT) { ++ err = do_rst_ldt(&u.bits, offset, ctx); ++ if (err) ++ goto out; ++#endif ++ } else if (u.aioi.cpt_object == CPT_OBJ_AIO_CONTEXT) { ++ err = do_rst_aio(&u.aioi, offset, ctx); ++ if (err) ++ goto out; ++ } else { ++ eprintk_ctx("unknown object %u in mm image\n", u.vmai.cpt_object); ++ err = -EINVAL; ++ goto out; ++ } ++ offset += u.vmai.cpt_next; ++ } while (offset < pos + vmi->cpt_next); ++ } ++ ++ down_write(&mm->mmap_sem); ++ mm->def_flags = def_flags; ++ up_write(&mm->mmap_sem); ++ ++ ++out: ++ return err; ++} ++ ++extern void exit_mm(struct task_struct * tsk); ++ ++int rst_mm_complete(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ int err = 0; ++ cpt_object_t *mobj; ++ void *tmp = (void*)__get_free_page(GFP_KERNEL); ++ struct cpt_mm_image *vmi = (struct cpt_mm_image *)tmp; ++ ++ if (!tmp) ++ return -ENOMEM; ++ ++ if (ti->cpt_mm == CPT_NULL) { ++ if (current->mm) { ++ virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_EXIT, ++ current); ++ exit_mm(current); ++ } ++ goto out; ++ } ++ ++ mobj = lookup_cpt_obj_bypos(CPT_OBJ_MM, ti->cpt_mm, ctx); ++ if (mobj) { ++ if (current->mm != mobj->o_obj) BUG(); ++ goto out; ++ } ++ ++ if (current->mm == NULL) { ++ struct mm_struct *mm = mm_alloc(); ++ if (mm == NULL) { ++ err = -ENOMEM; ++ goto out; ++ } ++ err = init_new_context(current, mm); ++ if (err) { ++ mmdrop(mm); ++ goto out; ++ } ++ current->mm = mm; ++ } ++ ++ if ((err = rst_get_object(CPT_OBJ_MM, ti->cpt_mm, vmi, ctx)) != 0) ++ goto out; ++ if ((err = do_rst_mm(vmi, ti->cpt_mm, ctx)) != 0) { ++ eprintk_ctx("do_rst_mm %Ld\n", (unsigned long long)ti->cpt_mm); ++ goto out; ++ } ++ err = -ENOMEM; ++ mobj = cpt_object_add(CPT_OBJ_MM, current->mm, ctx); ++ if (mobj != NULL) { ++ err = 0; ++ cpt_obj_setpos(mobj, ti->cpt_mm, ctx); ++ } ++ ++out: ++ if (tmp) ++ free_page((unsigned long)tmp); ++ return err; ++} ++ ++/* This is part of mm setup, made in parent context. Mostly, it is the place, ++ * where we graft mm of another process to child. ++ */ ++ ++int rst_mm_basic(cpt_object_t *obj, struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ struct task_struct *tsk = obj->o_obj; ++ cpt_object_t *mobj; ++ ++ /* Task without mm. Just get rid of this. */ ++ if (ti->cpt_mm == CPT_NULL) { ++ if (tsk->mm) { ++ virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_EXIT, ++ tsk); ++ mmput(tsk->mm); ++ tsk->mm = NULL; ++ } ++ return 0; ++ } ++ ++ mobj = lookup_cpt_obj_bypos(CPT_OBJ_MM, ti->cpt_mm, ctx); ++ if (mobj) { ++ struct mm_struct *newmm = mobj->o_obj; ++ /* Good, the MM is already created. */ ++ if (newmm == tsk->mm) { ++ /* Already done by clone(). */ ++ return 0; ++ } ++ mmput(tsk->mm); ++ atomic_inc(&newmm->mm_users); ++ tsk->mm = newmm; ++ tsk->active_mm = newmm; ++ } ++ return 0; ++} ++ ++/* We use CLONE_VM when mm of child is going to be shared with parent. ++ * Otherwise mm is copied. ++ */ ++ ++__u32 rst_mm_flag(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ if (ti->cpt_mm == CPT_NULL || ++ lookup_cpt_obj_bypos(CPT_OBJ_MM, ti->cpt_mm, ctx)) ++ return CLONE_VM; ++ return 0; ++} +Index: kernel/kernel/cpt/rst_net.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_net.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,580 @@ ++/* ++ * ++ * kernel/cpt/rst_net.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_kernel.h" ++#include "cpt_net.h" ++#include "cpt_files.h" ++ ++#include "cpt_syscalls.h" ++ ++extern struct in_ifaddr *inet_alloc_ifa(void); ++extern int inet_insert_ifa(struct in_ifaddr *ifa); ++extern struct in_device *inetdev_init(struct net_device *dev); ++ ++int rst_restore_ifaddr(struct cpt_context *ctx) ++{ ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_NET_IFADDR]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_ifaddr_image di; ++ struct net_device *dev; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_NET_IFADDR || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ int cindex = -1; ++ int err; ++ err = rst_get_object(CPT_OBJ_NET_IFADDR, sec, &di, ctx); ++ if (err) ++ return err; ++ cindex = di.cpt_index; ++ rtnl_lock(); ++ dev = __dev_get_by_index(net, cindex); ++ if (dev && di.cpt_family == AF_INET) { ++ struct in_device *in_dev; ++ struct in_ifaddr *ifa; ++ if ((in_dev = __in_dev_get_rtnl(dev)) == NULL) ++ in_dev = inetdev_init(dev); ++ ifa = inet_alloc_ifa(); ++ if (ifa) { ++ ifa->ifa_local = di.cpt_address[0]; ++ ifa->ifa_address = di.cpt_peer[0]; ++ ifa->ifa_broadcast = di.cpt_broadcast[0]; ++ ifa->ifa_prefixlen = di.cpt_masklen; ++ ifa->ifa_mask = inet_make_mask(ifa->ifa_prefixlen); ++ ifa->ifa_flags = di.cpt_flags; ++ ifa->ifa_scope = di.cpt_scope; ++ memcpy(ifa->ifa_label, di.cpt_label, IFNAMSIZ); ++ in_dev_hold(in_dev); ++ ifa->ifa_dev = in_dev; ++ err = inet_insert_ifa(ifa); ++ if (err && err != -EEXIST) { ++ rtnl_unlock(); ++ eprintk_ctx("add ifaddr err %d for %d %s\n", err, di.cpt_index, di.cpt_label); ++ return err; ++ } ++ } ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ } else if (dev && di.cpt_family == AF_INET6) { ++ __u32 prefered_lft; ++ __u32 valid_lft; ++ prefered_lft = (di.cpt_flags & IFA_F_DEPRECATED) ? ++ 0 : di.cpt_prefered_lft; ++ valid_lft = (di.cpt_flags & IFA_F_PERMANENT) ? ++ 0xFFFFFFFF : di.cpt_valid_lft; ++ err = inet6_addr_add(dev->ifindex, ++ (struct in6_addr *)di.cpt_address, ++ di.cpt_masklen, 0, ++ prefered_lft, ++ valid_lft); ++ if (err && err != -EEXIST) { ++ rtnl_unlock(); ++ eprintk_ctx("add ifaddr err %d for %d %s\n", err, di.cpt_index, di.cpt_label); ++ return err; ++ } ++#endif ++ } else { ++ rtnl_unlock(); ++ eprintk_ctx("unknown ifaddr 2 for %d\n", di.cpt_index); ++ return -EINVAL; ++ } ++ rtnl_unlock(); ++ sec += di.cpt_next; ++ } ++ return 0; ++} ++ ++static int rewrite_rtmsg(struct nlmsghdr *nlh, struct cpt_context *ctx) ++{ ++ int min_len = NLMSG_LENGTH(sizeof(struct rtmsg)); ++ struct rtmsg *rtm = NLMSG_DATA(nlh); ++ __u32 prefix0 = 0; ++ ++ if (nlh->nlmsg_len > min_len) { ++ int attrlen = nlh->nlmsg_len - NLMSG_ALIGN(min_len); ++ struct rtattr *rta = (void*)nlh + NLMSG_ALIGN(min_len); ++ ++ while (RTA_OK(rta, attrlen)) { ++ if (rta->rta_type == RTA_DST) { ++ prefix0 = *(__u32*)RTA_DATA(rta); ++ } ++ rta = RTA_NEXT(rta, attrlen); ++ } ++ } ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ if (rtm->rtm_family == AF_INET6) { ++ if (rtm->rtm_type == RTN_LOCAL) ++ return 2; ++ if (rtm->rtm_flags & RTM_F_CLONED) ++ return 2; ++ if (rtm->rtm_protocol == RTPROT_UNSPEC || ++ rtm->rtm_protocol == RTPROT_RA || ++ rtm->rtm_protocol == RTPROT_REDIRECT || ++ rtm->rtm_protocol == RTPROT_KERNEL) ++ return 2; ++ if (rtm->rtm_protocol == RTPROT_BOOT && ++ ((rtm->rtm_dst_len == 8 && prefix0 == htonl(0xFF000000)) || ++ (rtm->rtm_dst_len == 64 && prefix0 == htonl(0xFE800000)))) ++ return 2; ++ } ++#endif ++ return rtm->rtm_protocol == RTPROT_KERNEL; ++} ++ ++int rst_restore_route(struct cpt_context *ctx) ++{ ++ int err; ++ struct socket *sock; ++ struct msghdr msg; ++ struct iovec iov; ++ struct sockaddr_nl nladdr; ++ mm_segment_t oldfs; ++ loff_t sec = ctx->sections[CPT_SECT_NET_ROUTE]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_object_hdr v; ++ char *pg; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_NET_ROUTE || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ if (h.cpt_hdrlen >= h.cpt_next) ++ return 0; ++ ++ sec += h.cpt_hdrlen; ++ err = rst_get_object(CPT_OBJ_NET_ROUTE, sec, &v, ctx); ++ if (err < 0) ++ return err; ++ ++ err = sock_create_kern(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE, &sock); ++ if (err) ++ return err; ++ ++ pg = (char*)__get_free_page(GFP_KERNEL); ++ if (pg == NULL) { ++ err = -ENOMEM; ++ goto out_sock; ++ } ++ ++ memset(&nladdr, 0, sizeof(nladdr)); ++ nladdr.nl_family = AF_NETLINK; ++ ++ endsec = sec + v.cpt_next; ++ sec += v.cpt_hdrlen; ++ ++ while (sec < endsec) { ++ struct nlmsghdr *n; ++ struct nlmsghdr nh; ++ int kernel_flag; ++ ++ if (endsec - sec < sizeof(nh)) ++ break; ++ ++ err = ctx->pread(&nh, sizeof(nh), ctx, sec); ++ if (err) ++ goto out_sock_pg; ++ if (nh.nlmsg_len < sizeof(nh) || nh.nlmsg_len > PAGE_SIZE || ++ endsec - sec < nh.nlmsg_len) { ++ err = -EINVAL; ++ goto out_sock_pg; ++ } ++ err = ctx->pread(pg, nh.nlmsg_len, ctx, sec); ++ if (err) ++ goto out_sock_pg; ++ ++ n = (struct nlmsghdr*)pg; ++ n->nlmsg_flags = NLM_F_REQUEST|NLM_F_APPEND|NLM_F_CREATE; ++ ++ err = rewrite_rtmsg(n, ctx); ++ if (err < 0) ++ goto out_sock_pg; ++ kernel_flag = err; ++ ++ if (kernel_flag == 2) ++ goto do_next; ++ ++ iov.iov_base=n; ++ iov.iov_len=nh.nlmsg_len; ++ msg.msg_name=&nladdr; ++ msg.msg_namelen=sizeof(nladdr); ++ msg.msg_iov=&iov; ++ msg.msg_iovlen=1; ++ msg.msg_control=NULL; ++ msg.msg_controllen=0; ++ msg.msg_flags=MSG_DONTWAIT; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = sock_sendmsg(sock, &msg, nh.nlmsg_len); ++ set_fs(oldfs); ++ ++ if (err < 0) ++ goto out_sock_pg; ++ err = 0; ++ ++ iov.iov_base=pg; ++ iov.iov_len=PAGE_SIZE; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = sock_recvmsg(sock, &msg, PAGE_SIZE, MSG_DONTWAIT); ++ set_fs(oldfs); ++ if (err != -EAGAIN) { ++ if (err == NLMSG_LENGTH(sizeof(struct nlmsgerr)) && ++ n->nlmsg_type == NLMSG_ERROR) { ++ struct nlmsgerr *e = NLMSG_DATA(n); ++ if (e->error != -EEXIST || !kernel_flag) ++ eprintk_ctx("NLMERR: %d\n", e->error); ++ } else { ++ eprintk_ctx("Res: %d %d\n", err, n->nlmsg_type); ++ } ++ } ++do_next: ++ err = 0; ++ sec += NLMSG_ALIGN(nh.nlmsg_len); ++ } ++ ++out_sock_pg: ++ free_page((unsigned long)pg); ++out_sock: ++ sock_release(sock); ++ return err; ++} ++ ++int rst_resume_network(struct cpt_context *ctx) ++{ ++ struct ve_struct *env; ++ ++ env = get_ve_by_id(ctx->ve_id); ++ if (!env) ++ return -ESRCH; ++ env->disable_net = 0; ++ put_ve(env); ++ return 0; ++} ++ ++/* We do not restore skb queue, just reinit it */ ++static int rst_restore_tuntap(loff_t pos, struct cpt_netdev_image *di, ++ struct cpt_context *ctx) ++{ ++ int err = -ENODEV; ++#if defined(CONFIG_TUN) || defined(CONFIG_TUN_MODULE) ++ struct cpt_tuntap_image ti; ++ struct net_device *dev; ++ struct file *bind_file = NULL; ++ struct tun_struct *tun; ++ ++ pos += di->cpt_hdrlen; ++ err = rst_get_object(CPT_OBJ_NET_TUNTAP, pos, &ti, ctx); ++ if (err) ++ return err; ++ ++ if (ti.cpt_bindfile) { ++ bind_file = rst_file(ti.cpt_bindfile, -1, ctx); ++ if (IS_ERR(bind_file)) { ++ eprintk_ctx("rst_restore_tuntap:" ++ "rst_file: %Ld\n", ++ (unsigned long long)ti.cpt_bindfile); ++ return PTR_ERR(bind_file); ++ } ++ } ++ ++ rtnl_lock(); ++ err = -ENOMEM; ++ dev = alloc_netdev(sizeof(struct tun_struct), di->cpt_name, tun_setup); ++ if (!dev) ++ goto out; ++ ++ tun = netdev_priv(dev); ++ ++ tun->dev = dev; ++ tun->owner = ti.cpt_owner; ++ tun->flags = ti.cpt_flags; ++ tun->attached = ti.cpt_attached; ++ tun->if_flags = ti.cpt_if_flags; ++ tun_net_init(dev); ++ BUG_ON(sizeof(ti.cpt_dev_addr) != sizeof(tun->dev_addr)); ++ memcpy(tun->dev_addr, ti.cpt_dev_addr, sizeof(ti.cpt_dev_addr)); ++ BUG_ON(sizeof(ti.cpt_chr_filter) != sizeof(tun->chr_filter)); ++ memcpy(tun->chr_filter, ti.cpt_chr_filter, sizeof(ti.cpt_chr_filter)); ++ BUG_ON(sizeof(ti.cpt_net_filter) != sizeof(tun->net_filter)); ++ memcpy(tun->net_filter, ti.cpt_net_filter, sizeof(ti.cpt_net_filter)); ++ ++ err = register_netdevice(dev); ++ if (err < 0) { ++ free_netdev(dev); ++ eprintk_ctx("failed to register tun/tap net device\n"); ++ goto out; ++ } ++ list_add(&tun->list, &tun_dev_list); ++ ++ bind_file->private_data = tun; ++ tun->bind_file = bind_file; ++ ++out: ++ fput(bind_file); ++ rtnl_unlock(); ++#endif ++ return err; ++} ++ ++int rst_restore_netdev(struct cpt_context *ctx) ++{ ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_NET_DEVICE]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_netdev_image di; ++ struct net_device *dev; ++ ++ get_exec_env()->disable_net = 1; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_NET_DEVICE || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ int err; ++ struct net_device *dev_new; ++ err = rst_get_object(CPT_OBJ_NET_DEVICE, sec, &di, ctx); ++ if (err) ++ return err; ++ ++ if (di.cpt_next > sizeof(di)) { ++ err = rst_restore_tuntap(sec, &di, ctx); ++ if (err) ++ return err; ++ } ++ ++ rtnl_lock(); ++ dev = __dev_get_by_name(net, di.cpt_name); ++ if (dev) { ++ if (dev->ifindex != di.cpt_index) { ++ dev_new = __dev_get_by_index(net, di.cpt_index); ++ if (!dev_new) { ++ write_lock_bh(&dev_base_lock); ++ hlist_del(&dev->index_hlist); ++ if (dev->iflink == dev->ifindex) ++ dev->iflink = di.cpt_index; ++ dev->ifindex = di.cpt_index; ++ hlist_add_head(&dev->index_hlist, ++ dev_index_hash(net, dev->ifindex)); ++ write_unlock_bh(&dev_base_lock); ++ } else { ++ write_lock_bh(&dev_base_lock); ++ hlist_del(&dev->index_hlist); ++ hlist_del(&dev_new->index_hlist); ++ if (dev_new->iflink == dev_new->ifindex) ++ dev_new->iflink = dev->ifindex; ++ dev_new->ifindex = dev->ifindex; ++ if (dev->iflink == dev->ifindex) ++ dev->iflink = di.cpt_index; ++ dev->ifindex = di.cpt_index; ++ hlist_add_head(&dev->index_hlist, ++ dev_index_hash(net, dev->ifindex)); ++ hlist_add_head(&dev_new->index_hlist, ++ dev_index_hash(net, dev_new->ifindex)); ++ write_unlock_bh(&dev_base_lock); ++ } ++ } ++ if (di.cpt_flags^dev->flags) { ++ err = dev_change_flags(dev, di.cpt_flags); ++ if (err) ++ eprintk_ctx("dev_change_flags err: %d\n", err); ++ } ++ } else { ++ eprintk_ctx("unknown interface 2 %s\n", di.cpt_name); ++ } ++ rtnl_unlock(); ++ sec += di.cpt_next; ++ } ++ return 0; ++} ++ ++static int dumpfn(void *arg) ++{ ++ int i; ++ int *pfd = arg; ++ char *argv[] = { "iptables-restore", "-c", NULL }; ++ ++ if (pfd[0] != 0) ++ sc_dup2(pfd[0], 0); ++ ++ for (i=1; ifiles->fdt->max_fds; i++) ++ sc_close(i); ++ ++ module_put(THIS_MODULE); ++ ++ set_fs(KERNEL_DS); ++ i = sc_execve("/sbin/iptables-restore", argv, NULL); ++ if (i == -ENOENT) ++ i = sc_execve("/usr/sbin/iptables-restore", argv, NULL); ++ eprintk("failed to exec iptables-restore: %d\n", i); ++ return 255 << 8; ++} ++ ++static int rst_restore_iptables(struct cpt_context * ctx) ++{ ++ int err; ++ int pfd[2]; ++ struct file *f; ++ struct cpt_object_hdr v; ++ int n; ++ struct cpt_section_hdr h; ++ loff_t sec = ctx->sections[CPT_SECT_NET_IPTABLES]; ++ loff_t end; ++ int pid; ++ int status; ++ mm_segment_t oldfs; ++ sigset_t ignore, blocked; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_NET_IPTABLES || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ if (h.cpt_hdrlen == h.cpt_next) ++ return 0; ++ if (h.cpt_hdrlen > h.cpt_next) ++ return -EINVAL; ++ sec += h.cpt_hdrlen; ++ err = rst_get_object(CPT_OBJ_NAME, sec, &v, ctx); ++ if (err < 0) ++ return err; ++ ++ err = sc_pipe(pfd); ++ if (err < 0) ++ return err; ++ ignore.sig[0] = CPT_SIG_IGNORE_MASK; ++ sigprocmask(SIG_BLOCK, &ignore, &blocked); ++ pid = err = local_kernel_thread(dumpfn, (void*)pfd, SIGCHLD, 0); ++ if (err < 0) { ++ eprintk_ctx("iptables local_kernel_thread: %d\n", err); ++ goto out; ++ } ++ f = fget(pfd[1]); ++ sc_close(pfd[1]); ++ sc_close(pfd[0]); ++ ++ ctx->file->f_pos = sec + v.cpt_hdrlen; ++ end = sec + v.cpt_next; ++ do { ++ char *p; ++ char buf[16]; ++ ++ n = end - ctx->file->f_pos; ++ if (n > sizeof(buf)) ++ n = sizeof(buf); ++ ++ if (ctx->read(buf, n, ctx)) ++ break; ++ if ((p = memchr(buf, 0, n)) != NULL) ++ n = p - buf; ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ f->f_op->write(f, buf, n, &f->f_pos); ++ set_fs(oldfs); ++ } while (ctx->file->f_pos < end); ++ ++ fput(f); ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if ((err = sc_waitx(pid, 0, &status)) < 0) ++ eprintk_ctx("wait4: %d\n", err); ++ else if ((status & 0x7f) == 0) { ++ err = (status & 0xff00) >> 8; ++ if (err != 0) { ++ eprintk_ctx("iptables-restore exited with %d\n", err); ++ err = -EINVAL; ++ } ++ } else { ++ eprintk_ctx("iptables-restore terminated\n"); ++ err = -EINVAL; ++ } ++ set_fs(oldfs); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++ ++ return err; ++ ++out: ++ if (pfd[1] >= 0) ++ sc_close(pfd[1]); ++ if (pfd[0] >= 0) ++ sc_close(pfd[0]); ++ sigprocmask(SIG_SETMASK, &blocked, NULL); ++ return err; ++} ++ ++int rst_restore_net(struct cpt_context *ctx) ++{ ++ int err; ++ ++ err = rst_restore_netdev(ctx); ++ if (!err) ++ err = rst_restore_ifaddr(ctx); ++ if (!err) ++ err = rst_restore_route(ctx); ++ if (!err) ++ err = rst_restore_iptables(ctx); ++ if (!err) ++ err = rst_restore_ip_conntrack(ctx); ++ return err; ++} +Index: kernel/kernel/cpt/rst_proc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_proc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,581 @@ ++/* ++ * ++ * kernel/cpt/rst_proc.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_dump.h" ++#include "cpt_files.h" ++#include "cpt_mm.h" ++#include "cpt_kernel.h" ++ ++MODULE_AUTHOR("Alexey Kuznetsov "); ++MODULE_LICENSE("GPL"); ++ ++/* List of contexts and lock protecting the list */ ++static struct list_head cpt_context_list; ++static spinlock_t cpt_context_lock; ++ ++static int proc_read(char *buffer, char **start, off_t offset, ++ int length, int *eof, void *data) ++{ ++ off_t pos = 0; ++ off_t begin = 0; ++ int len = 0; ++ cpt_context_t *ctx; ++ ++ len += sprintf(buffer, "Ctx Id VE State\n"); ++ ++ spin_lock(&cpt_context_lock); ++ ++ list_for_each_entry(ctx, &cpt_context_list, ctx_list) { ++ len += sprintf(buffer+len,"%p %08x %-8u %d", ++ ctx, ++ ctx->contextid, ++ ctx->ve_id, ++ ctx->ctx_state ++ ); ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ len += pagein_info_printf(buffer+len, ctx); ++#endif ++ ++ buffer[len++] = '\n'; ++ ++ pos = begin+len; ++ if (pos < offset) { ++ len = 0; ++ begin = pos; ++ } ++ if (pos > offset+length) ++ goto done; ++ } ++ *eof = 1; ++ ++done: ++ spin_unlock(&cpt_context_lock); ++ *start = buffer + (offset - begin); ++ len -= (offset - begin); ++ if(len > length) ++ len = length; ++ if(len < 0) ++ len = 0; ++ return len; ++} ++ ++void rst_context_release(cpt_context_t *ctx) ++{ ++ list_del(&ctx->ctx_list); ++ spin_unlock(&cpt_context_lock); ++ ++ if (ctx->ctx_state > 0) ++ rst_resume(ctx); ++ ctx->ctx_state = CPT_CTX_ERROR; ++ ++ rst_close_dumpfile(ctx); ++ ++ if (ctx->anonvmas) { ++ int h; ++ for (h = 0; h < CPT_ANONVMA_HSIZE; h++) { ++ while (!hlist_empty(&ctx->anonvmas[h])) { ++ struct hlist_node *elem = ctx->anonvmas[h].first; ++ hlist_del(elem); ++ kfree(elem); ++ } ++ } ++ free_page((unsigned long)ctx->anonvmas); ++ } ++ cpt_flush_error(ctx); ++ if (ctx->errorfile) { ++ fput(ctx->errorfile); ++ ctx->errorfile = NULL; ++ } ++ if (ctx->error_msg) { ++ free_page((unsigned long)ctx->error_msg); ++ ctx->error_msg = NULL; ++ } ++#ifdef CONFIG_VZ_CHECKPOINT_ITER ++ rst_drop_iter_dir(ctx); ++#endif ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ if (ctx->pagein_file_out) ++ fput(ctx->pagein_file_out); ++ if (ctx->pagein_file_in) ++ fput(ctx->pagein_file_in); ++ if (ctx->pgin_task) ++ put_task_struct(ctx->pgin_task); ++#endif ++ if (ctx->filejob_queue) ++ rst_flush_filejobs(ctx); ++ if (ctx->vdso) ++ free_page((unsigned long)ctx->vdso); ++ if (ctx->objcount) ++ eprintk_ctx("%d objects leaked\n", ctx->objcount); ++ kfree(ctx); ++ ++ spin_lock(&cpt_context_lock); ++} ++ ++static void __cpt_context_put(cpt_context_t *ctx) ++{ ++ if (!--ctx->refcount) ++ rst_context_release(ctx); ++} ++ ++static void cpt_context_put(cpt_context_t *ctx) ++{ ++ spin_lock(&cpt_context_lock); ++ __cpt_context_put(ctx); ++ spin_unlock(&cpt_context_lock); ++} ++ ++cpt_context_t * rst_context_open(void) ++{ ++ cpt_context_t *ctx; ++ ++ if ((ctx = kmalloc(sizeof(*ctx), GFP_KERNEL)) != NULL) { ++ rst_context_init(ctx); ++ spin_lock(&cpt_context_lock); ++ list_add_tail(&ctx->ctx_list, &cpt_context_list); ++ spin_unlock(&cpt_context_lock); ++ ctx->error_msg = (char*)__get_free_page(GFP_KERNEL); ++ if (ctx->error_msg != NULL) ++ ctx->error_msg[0] = 0; ++ } ++ return ctx; ++} ++ ++void rst_report_error(int err, cpt_context_t *ctx) ++{ ++ if (ctx->statusfile) { ++ mm_segment_t oldfs; ++ int status = 7 /* VZ_ENVCREATE_ERROR */; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if (ctx->statusfile->f_op && ctx->statusfile->f_op->write) ++ ctx->statusfile->f_op->write(ctx->statusfile, (char*)&status, sizeof(status), &ctx->statusfile->f_pos); ++ set_fs(oldfs); ++ fput(ctx->statusfile); ++ ctx->statusfile = NULL; ++ } ++} ++ ++ ++static cpt_context_t * cpt_context_lookup(unsigned int ctxid) ++{ ++ cpt_context_t *ctx; ++ ++ spin_lock(&cpt_context_lock); ++ list_for_each_entry(ctx, &cpt_context_list, ctx_list) { ++ if (ctx->contextid == ctxid) { ++ ctx->refcount++; ++ spin_unlock(&cpt_context_lock); ++ return ctx; ++ } ++ } ++ spin_unlock(&cpt_context_lock); ++ return NULL; ++} ++ ++static int rst_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg) ++{ ++ int err = 0; ++ cpt_context_t *ctx; ++ struct file *dfile = NULL; ++ ++ unlock_kernel(); ++ ++ if (cmd == CPT_TEST_CAPS) { ++ err = test_cpu_caps(); ++ goto out_lock; ++ } ++ ++ if (cmd == CPT_JOIN_CONTEXT || cmd == CPT_PUT_CONTEXT) { ++ cpt_context_t *old_ctx; ++ ++ ctx = NULL; ++ if (cmd == CPT_JOIN_CONTEXT) { ++ err = -ENOENT; ++ ctx = cpt_context_lookup(arg); ++ if (!ctx) ++ goto out_lock; ++ } ++ ++ spin_lock(&cpt_context_lock); ++ old_ctx = (cpt_context_t*)file->private_data; ++ file->private_data = ctx; ++ ++ if (old_ctx) { ++ if (cmd == CPT_PUT_CONTEXT && old_ctx->sticky) { ++ old_ctx->sticky = 0; ++ old_ctx->refcount--; ++ } ++ __cpt_context_put(old_ctx); ++ } ++ spin_unlock(&cpt_context_lock); ++ err = 0; ++ goto out_lock; ++ } ++ ++ spin_lock(&cpt_context_lock); ++ ctx = (cpt_context_t*)file->private_data; ++ if (ctx) ++ ctx->refcount++; ++ spin_unlock(&cpt_context_lock); ++ ++ if (!ctx) { ++ cpt_context_t *old_ctx; ++ ++ err = -ENOMEM; ++ ctx = rst_context_open(); ++ if (!ctx) ++ goto out_lock; ++ ++ spin_lock(&cpt_context_lock); ++ old_ctx = (cpt_context_t*)file->private_data; ++ if (!old_ctx) { ++ ctx->refcount++; ++ file->private_data = ctx; ++ } else { ++ old_ctx->refcount++; ++ } ++ if (old_ctx) { ++ __cpt_context_put(ctx); ++ ctx = old_ctx; ++ } ++ spin_unlock(&cpt_context_lock); ++ } ++ ++ if (cmd == CPT_GET_CONTEXT) { ++ unsigned int contextid = (unsigned int)arg; ++ ++ err = -EINVAL; ++ if (ctx->contextid && ctx->contextid != contextid) ++ goto out_nosem; ++ if (!ctx->contextid) { ++ cpt_context_t *c1 = cpt_context_lookup(contextid); ++ if (c1) { ++ cpt_context_put(c1); ++ err = -EEXIST; ++ goto out_nosem; ++ } ++ ctx->contextid = contextid; ++ } ++ spin_lock(&cpt_context_lock); ++ if (!ctx->sticky) { ++ ctx->sticky = 1; ++ ctx->refcount++; ++ } ++ spin_unlock(&cpt_context_lock); ++ err = 0; ++ goto out_nosem; ++ } ++ ++ down(&ctx->main_sem); ++ ++ err = -EBUSY; ++ if (ctx->ctx_state < 0) ++ goto out; ++ ++ err = 0; ++ switch (cmd) { ++ case CPT_SET_DUMPFD: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ if (arg >= 0) { ++ err = -EBADF; ++ dfile = fget(arg); ++ if (dfile == NULL) ++ break; ++ if (dfile->f_op == NULL || ++ dfile->f_op->read == NULL) { ++ fput(dfile); ++ break; ++ } ++ err = 0; ++ } ++ if (ctx->file) ++ fput(ctx->file); ++ ctx->file = dfile; ++ break; ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ case CPT_SET_PAGEINFDIN: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->pagein_file_in) ++ fput(ctx->pagein_file_in); ++ ctx->pagein_file_in = dfile; ++ break; ++ case CPT_SET_PAGEINFDOUT: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->pagein_file_out) ++ fput(ctx->pagein_file_out); ++ ctx->pagein_file_out = dfile; ++ break; ++ case CPT_PAGEIND: ++ err = rst_pageind(ctx); ++ break; ++#endif ++#ifdef CONFIG_VZ_CHECKPOINT_ITER ++ case CPT_ITER: ++ err = rst_iteration(ctx); ++ break; ++#endif ++ case CPT_SET_LOCKFD: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->lockfile) ++ fput(ctx->lockfile); ++ ctx->lockfile = dfile; ++ break; ++ case CPT_SET_STATUSFD: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->statusfile) ++ fput(ctx->statusfile); ++ ctx->statusfile = dfile; ++ break; ++ case CPT_SET_ERRORFD: ++ if (arg >= 0) { ++ dfile = fget(arg); ++ if (dfile == NULL) { ++ err = -EBADF; ++ break; ++ } ++ } ++ if (ctx->errorfile) ++ fput(ctx->errorfile); ++ ctx->errorfile = dfile; ++ break; ++ case CPT_SET_VEID: ++ if (ctx->ctx_state > 0) { ++ err = -EBUSY; ++ break; ++ } ++ ctx->ve_id = arg; ++ break; ++ case CPT_UNDUMP: ++ if (ctx->ctx_state > 0) { ++ err = -ENOENT; ++ break; ++ } ++ ctx->ctx_state = CPT_CTX_UNDUMPING; ++ err = vps_rst_undump(ctx); ++ if (err) { ++ rst_report_error(err, ctx); ++ if (rst_kill(ctx) == 0) ++ ctx->ctx_state = CPT_CTX_IDLE; ++ } else { ++ ctx->ctx_state = CPT_CTX_UNDUMPED; ++ } ++ break; ++ case CPT_RESUME: ++ if (!ctx->ctx_state) { ++ err = -ENOENT; ++ break; ++ } ++ err = rst_resume(ctx); ++ if (!err) ++ ctx->ctx_state = CPT_CTX_IDLE; ++ break; ++ case CPT_KILL: ++ if (!ctx->ctx_state) { ++ err = -ENOENT; ++ break; ++ } ++ err = rst_kill(ctx); ++ if (!err) ++ ctx->ctx_state = CPT_CTX_IDLE; ++ break; ++ default: ++ err = -EINVAL; ++ break; ++ } ++ ++out: ++ cpt_flush_error(ctx); ++ up(&ctx->main_sem); ++out_nosem: ++ cpt_context_put(ctx); ++out_lock: ++ lock_kernel(); ++ if (err == -ERESTARTSYS || err == -ERESTARTNOINTR || ++ err == -ERESTARTNOHAND || err == -ERESTART_RESTARTBLOCK) ++ err = -EINTR; ++ return err; ++} ++ ++static int rst_open(struct inode * inode, struct file * file) ++{ ++ if (!try_module_get(THIS_MODULE)) ++ return -EBUSY; ++ ++ return 0; ++} ++ ++static int rst_release(struct inode * inode, struct file * file) ++{ ++ cpt_context_t *ctx; ++ ++ spin_lock(&cpt_context_lock); ++ ctx = (cpt_context_t*)file->private_data; ++ file->private_data = NULL; ++ if (ctx) ++ __cpt_context_put(ctx); ++ spin_unlock(&cpt_context_lock); ++ ++ ++ module_put(THIS_MODULE); ++ return 0; ++} ++ ++static struct file_operations rst_fops = ++{ ++ .owner = THIS_MODULE, ++ .ioctl = rst_ioctl, ++ .open = rst_open, ++ .release = rst_release, ++}; ++ ++ ++static struct proc_dir_entry *proc_ent; ++extern void *schedule_tail_p; ++extern void schedule_tail_hook(void); ++ ++static struct ctl_table_header *ctl_header; ++ ++static ctl_table debug_table[] = { ++ { ++ .ctl_name = 9476, ++ .procname = "rst", ++ .data = &debug_level, ++ .maxlen = sizeof(debug_level), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++ { .ctl_name = 0 } ++}; ++static ctl_table root_table[] = { ++ { ++ .ctl_name = CTL_DEBUG, ++ .procname = "debug", ++ .mode = 0555, ++ .child = debug_table, ++ }, ++ { .ctl_name = 0 } ++}; ++ ++static int __init init_rst(void) ++{ ++ int err; ++ ++ err = -ENOMEM; ++ ctl_header = register_sysctl_table(root_table); ++ if (!ctl_header) ++ goto err_mon; ++ ++ spin_lock_init(&cpt_context_lock); ++ INIT_LIST_HEAD(&cpt_context_list); ++ ++ err = -EINVAL; ++ proc_ent = create_proc_entry_mod("rst", 0600, NULL, THIS_MODULE); ++ if (!proc_ent) ++ goto err_out; ++ ++ rst_fops.read = proc_ent->proc_fops->read; ++ rst_fops.write = proc_ent->proc_fops->write; ++ rst_fops.llseek = proc_ent->proc_fops->llseek; ++ proc_ent->proc_fops = &rst_fops; ++ ++ proc_ent->read_proc = proc_read; ++ proc_ent->data = NULL; ++ proc_ent->owner = THIS_MODULE; ++ return 0; ++ ++err_out: ++ unregister_sysctl_table(ctl_header); ++err_mon: ++ return err; ++} ++module_init(init_rst); ++ ++static void __exit exit_rst(void) ++{ ++ remove_proc_entry("rst", NULL); ++ unregister_sysctl_table(ctl_header); ++ ++ spin_lock(&cpt_context_lock); ++ while (!list_empty(&cpt_context_list)) { ++ cpt_context_t *ctx; ++ ctx = list_entry(cpt_context_list.next, cpt_context_t, ctx_list); ++ ++ if (!ctx->sticky) ++ ctx->refcount++; ++ ctx->sticky = 0; ++ ++ BUG_ON(ctx->refcount != 1); ++ ++ __cpt_context_put(ctx); ++ } ++ spin_unlock(&cpt_context_lock); ++} ++module_exit(exit_rst); +Index: kernel/kernel/cpt/rst_process.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_process.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1627 @@ ++/* ++ * ++ * kernel/cpt/rst_process.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_X86 ++#include ++#endif ++#include ++ ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_files.h" ++#include "cpt_mm.h" ++#include "cpt_ubc.h" ++#include "cpt_process.h" ++#include "cpt_kernel.h" ++ ++ ++#define HOOK_RESERVE 256 ++ ++struct resume_info ++{ ++ asmlinkage void (*hook)(struct resume_info *); ++ unsigned long hooks; ++#define HOOK_TID 0 ++#define HOOK_CONT 1 ++#define HOOK_LSI 2 ++#define HOOK_RESTART 3 ++ unsigned long tid_ptrs[2]; ++ siginfo_t last_siginfo; ++}; ++ ++#ifdef CONFIG_X86_32 ++ ++#define IN_SYSCALL(regs) ((long)(regs)->orig_eax >= 0) ++#define IN_ERROR(regs) ((long)(regs)->eax < 0) ++#define SYSCALL_ERRNO(regs) (-(long)((regs)->eax)) ++#define SYSCALL_RETVAL(regs) ((regs)->eax) ++#define SYSCALL_NR(regs) ((regs)->orig_eax) ++ ++#define SYSCALL_SETRET(regs,val) do { (regs)->eax = (val); } while (0) ++ ++#define SYSCALL_RESTART2(regs,new) do { (regs)->eax = (new); \ ++ (regs)->eip -= 2; } while (0) ++ ++#define syscall_is(tsk,regs,name) (SYSCALL_NR(regs) == __NR_##name) ++ ++/* In new kernels task_pt_regs() is define to something inappropriate */ ++#undef task_pt_regs ++#define task_pt_regs(t) ((struct pt_regs *)((t)->thread.esp0) - 1) ++ ++#elif defined(CONFIG_X86_64) ++ ++#define IN_SYSCALL(regs) ((long)(regs)->orig_rax >= 0) ++#define IN_ERROR(regs) ((long)(regs)->rax < 0) ++#define SYSCALL_ERRNO(regs) (-(long)((regs)->rax)) ++#define SYSCALL_RETVAL(regs) ((regs)->rax) ++#define SYSCALL_NR(regs) ((regs)->orig_rax) ++ ++#define SYSCALL_SETRET(regs,val) do { (regs)->rax = (val); } while (0) ++ ++#define SYSCALL_RESTART2(regs,new) do { (regs)->rax = (new); \ ++ (regs)->rip -= 2; } while (0) ++ ++#define __NR32_restart_syscall 0 ++#define __NR32_rt_sigtimedwait 177 ++#define __NR32_pause 29 ++#define __NR32_futex 240 ++ ++#define syscall_is(tsk,regs,name) ((!(task_thread_info(tsk)->flags&_TIF_IA32) && \ ++ SYSCALL_NR(regs) == __NR_##name) || \ ++ ((task_thread_info(tsk)->flags&_TIF_IA32) && \ ++ SYSCALL_NR(regs) == __NR32_##name)) ++ ++#elif defined (CONFIG_IA64) ++ ++#define IN_SYSCALL(regs) ((long)(regs)->cr_ifs >= 0) ++#define IN_ERROR(regs) ((long)(regs)->r10 == -1) ++#define SYSCALL_ERRNO(regs) ((regs)->r10 == -1 ? (long)((regs)->r8) : 0) ++#define SYSCALL_RETVAL(regs) ((regs)->r8) ++#define SYSCALL_NR(regs) ((regs)->cr_ifs >= 0 ? (regs)->r15 : -1) ++ ++#define SYSCALL_SETRET(regs,val) do { (regs)->r8 = (val); } while (0) ++ ++#define SYSCALL_RESTART2(regs,new) do { (regs)->r15 = (new); \ ++ (regs)->r10 = 0; \ ++ ia64_decrement_ip(regs); } while (0) ++ ++#define syscall_is(tsk,regs,name) (SYSCALL_NR(regs) == __NR_##name) ++ ++#else ++ ++#error This arch is not supported ++ ++#endif ++ ++#define SYSCALL_RESTART(regs) SYSCALL_RESTART2(regs, SYSCALL_NR(regs)) ++ ++pid_t vpid_to_pid(pid_t nr) ++{ ++ pid_t vnr; ++ struct pid *pid; ++ ++ rcu_read_lock(); ++ pid = find_vpid(nr); ++ vnr = (pid == NULL ? -1 : pid->numbers[0].nr); ++ rcu_read_unlock(); ++ return vnr; ++} ++ ++static void decode_siginfo(siginfo_t *info, struct cpt_siginfo_image *si) ++{ ++ memset(info, 0, sizeof(*info)); ++ switch(si->cpt_code & __SI_MASK) { ++ case __SI_TIMER: ++ info->si_tid = si->cpt_pid; ++ info->si_overrun = si->cpt_uid; ++ info->_sifields._timer._sigval.sival_ptr = cpt_ptr_import(si->cpt_sigval); ++ info->si_sys_private = si->cpt_utime; ++ break; ++ case __SI_POLL: ++ info->si_band = si->cpt_pid; ++ info->si_fd = si->cpt_uid; ++ break; ++ case __SI_FAULT: ++ info->si_addr = cpt_ptr_import(si->cpt_sigval); ++#ifdef __ARCH_SI_TRAPNO ++ info->si_trapno = si->cpt_pid; ++#endif ++ break; ++ case __SI_CHLD: ++ info->si_pid = si->cpt_pid; ++ info->si_uid = si->cpt_uid; ++ info->si_status = si->cpt_sigval; ++ info->si_stime = si->cpt_stime; ++ info->si_utime = si->cpt_utime; ++ break; ++ case __SI_KILL: ++ case __SI_RT: ++ case __SI_MESGQ: ++ default: ++ info->si_pid = si->cpt_pid; ++ info->si_uid = si->cpt_uid; ++ info->si_ptr = cpt_ptr_import(si->cpt_sigval); ++ break; ++ } ++ info->si_signo = si->cpt_signo; ++ info->si_errno = si->cpt_errno; ++ info->si_code = si->cpt_code; ++} ++ ++static int restore_sigqueue(struct task_struct *tsk, ++ struct sigpending *queue, unsigned long start, ++ unsigned long end) ++{ ++ while (start < end) { ++ struct cpt_siginfo_image *si = (struct cpt_siginfo_image *)start; ++ if (si->cpt_object == CPT_OBJ_SIGINFO) { ++ struct sigqueue *q = NULL; ++ struct user_struct *up; ++ ++ up = alloc_uid(get_exec_env()->ve_ns->user_ns, si->cpt_user); ++ if (!up) ++ return -ENOMEM; ++ q = kmem_cache_alloc(sigqueue_cachep, GFP_ATOMIC); ++ if (!q) { ++ free_uid(up); ++ return -ENOMEM; ++ } ++ if (ub_siginfo_charge(q, get_exec_ub())) { ++ kmem_cache_free(sigqueue_cachep, q); ++ free_uid(up); ++ return -ENOMEM; ++ } ++ ++ INIT_LIST_HEAD(&q->list); ++ /* Preallocated elements (posix timers) are not ++ * supported yet. It is safe to replace them with ++ * a private one. */ ++ q->flags = 0; ++ q->user = up; ++ atomic_inc(&q->user->sigpending); ++ ++ decode_siginfo(&q->info, si); ++ list_add_tail(&q->list, &queue->list); ++ } ++ start += si->cpt_next; ++ } ++ return 0; ++} ++ ++int rst_process_linkage(cpt_context_t *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ struct cpt_task_image *ti = obj->o_image; ++ ++ if (tsk == NULL) { ++ eprintk_ctx("task %u(%s) is missing\n", ti->cpt_pid, ti->cpt_comm); ++ return -EINVAL; ++ } ++ ++ if (task_pgrp_vnr(tsk) != ti->cpt_pgrp) { ++ struct pid *pid; ++ ++ pid = get_pid(find_vpid(ti->cpt_pgrp)); ++ if (!pid) { ++ eprintk_ctx("illegal PGRP " CPT_FID "\n", CPT_TID(tsk)); ++ return -EINVAL; ++ } ++ ++ write_lock_irq(&tasklist_lock); ++ if (task_pgrp_nr(tsk) != pid_nr(pid)) { ++ detach_pid(tsk, PIDTYPE_PGID); ++ set_task_pgrp(tsk, pid_nr(pid)); ++ if (thread_group_leader(tsk)) { ++ get_pid(pid); ++ attach_pid(tsk, PIDTYPE_PGID, pid); ++ } ++ } ++ write_unlock_irq(&tasklist_lock); ++ if (task_pgrp_nr(tsk) != pid_nr(pid)) { ++ put_pid(pid); ++ eprintk_ctx("cannot set PGRP " CPT_FID "\n", CPT_TID(tsk)); ++ return -EINVAL; ++ } ++ put_pid(pid); ++ } ++ if (task_session_vnr(tsk) != ti->cpt_session) { ++ struct pid *pid; ++ ++ pid = get_pid(find_vpid(ti->cpt_session)); ++ if (!pid) { ++ eprintk_ctx("illegal SID " CPT_FID "\n", CPT_TID(tsk)); ++ return -EINVAL; ++ } ++ ++ write_lock_irq(&tasklist_lock); ++ if (task_session_nr(tsk) != pid_nr(pid)) { ++ detach_pid(tsk, PIDTYPE_SID); ++ set_task_session(tsk, pid_nr(pid)); ++ if (thread_group_leader(tsk)) { ++ get_pid(pid); ++ attach_pid(tsk, PIDTYPE_SID, pid); ++ } ++ } ++ write_unlock_irq(&tasklist_lock); ++ if (task_session_nr(tsk) != pid_nr(pid)) { ++ put_pid(pid); ++ eprintk_ctx("cannot set SID " CPT_FID "\n", CPT_TID(tsk)); ++ return -EINVAL; ++ } ++ put_pid(pid); ++ } ++ if (ti->cpt_old_pgrp > 0 && !tsk->signal->tty_old_pgrp) { ++ struct pid *pid; ++ ++ pid = get_pid(find_vpid(ti->cpt_old_pgrp)); ++ if (!pid) { ++ eprintk_ctx("illegal OLD_PGRP " CPT_FID "\n", CPT_TID(tsk)); ++ return -EINVAL; ++ } ++ tsk->signal->tty_old_pgrp = pid; ++ } ++ } ++ ++ return 0; ++} ++ ++struct pid *alloc_vpid_safe(pid_t vnr) ++{ ++ struct pid *pid; ++ ++ pid = alloc_pid(current->nsproxy->pid_ns, vnr); ++ if (!pid) ++ pid = get_pid(find_vpid(vnr)); ++ return pid; ++} ++ ++static int ++restore_one_signal_struct(struct cpt_task_image *ti, int *exiting, cpt_context_t *ctx) ++{ ++ int err; ++ struct cpt_signal_image *si = cpt_get_buf(ctx); ++ ++ current->signal->tty = NULL; ++ ++ err = rst_get_object(CPT_OBJ_SIGNAL_STRUCT, ti->cpt_signal, si, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ ++ if (task_pgrp_vnr(current) != si->cpt_pgrp) { ++ struct pid * pid = NULL, *free = NULL; ++ ++ if (si->cpt_pgrp_type == CPT_PGRP_ORPHAN) { ++#if 0 ++ if (!is_virtual_pid(si->cpt_pgrp)) { ++ eprintk_ctx("external process group " CPT_FID, CPT_TID(current)); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++#endif ++ pid = alloc_vpid_safe(si->cpt_pgrp); ++ free = pid; ++ } ++ write_lock_irq(&tasklist_lock); ++ if (pid != NULL) { ++ if (task_pgrp_nr(current) != pid_nr(pid)) { ++ detach_pid(current, PIDTYPE_PGID); ++ set_task_pgrp(current, pid_nr(pid)); ++ if (thread_group_leader(current)) { ++ attach_pid(current, PIDTYPE_PGID, pid); ++ free = NULL; ++ } ++ } ++ } ++ write_unlock_irq(&tasklist_lock); ++ if (free != NULL) ++ free_pid(free); ++ } ++ ++ current->signal->tty_old_pgrp = NULL; ++ if ((int)si->cpt_old_pgrp > 0) { ++ if (si->cpt_old_pgrp_type == CPT_PGRP_STRAY) { ++ current->signal->tty_old_pgrp = ++ alloc_pid(current->nsproxy->pid_ns, 0); ++ if (!current->signal->tty_old_pgrp) { ++ eprintk_ctx("failed to allocate stray tty_old_pgrp\n"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ } else { ++ current->signal->tty_old_pgrp = ++ alloc_vpid_safe(si->cpt_old_pgrp); ++ if (!current->signal->tty_old_pgrp) { ++ dprintk_ctx("forward old tty PGID\n"); ++ current->signal->tty_old_pgrp = NULL; ++ } ++ } ++ } ++ ++ if (task_session_vnr(current) != si->cpt_session) { ++ struct pid * pid = NULL, *free = NULL; ++ ++ if (si->cpt_session_type == CPT_PGRP_ORPHAN) { ++#if 0 ++ if (!is_virtual_pid(si->cpt_session)) { ++ eprintk_ctx("external process session " CPT_FID, CPT_TID(current)); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++#endif ++ pid = alloc_vpid_safe(si->cpt_session); ++ free = pid; ++ } ++ write_lock_irq(&tasklist_lock); ++ if (pid == NULL) ++ pid = find_vpid(si->cpt_session); ++ if (pid != NULL) { ++ if (task_session_nr(current) != pid_nr(pid)) { ++ detach_pid(current, PIDTYPE_SID); ++ set_task_session(current, pid_nr(pid)); ++ if (thread_group_leader(current)) { ++ attach_pid(current, PIDTYPE_SID, pid); ++ free = NULL; ++ } ++ } ++ } ++ write_unlock_irq(&tasklist_lock); ++ if (free != NULL) ++ free_pid(free); ++ } ++ ++ cpt_sigset_import(¤t->signal->shared_pending.signal, si->cpt_sigpending); ++ current->signal->leader = si->cpt_leader; ++ if (si->cpt_ctty != CPT_NULL) { ++ cpt_object_t *obj = lookup_cpt_obj_bypos(CPT_OBJ_TTY, si->cpt_ctty, ctx); ++ if (obj) { ++ struct tty_struct *tty = obj->o_obj; ++ if (!tty->session || tty->session == ++ task_session(current)) { ++ tty->session = task_session(current); ++ current->signal->tty = tty; ++ } else { ++ wprintk_ctx("tty session mismatch\n"); ++ } ++ } ++ } ++ ++ if (si->cpt_curr_target) ++ current->signal->curr_target = find_task_by_vpid(si->cpt_curr_target); ++ current->signal->flags = 0; ++ *exiting = si->cpt_group_exit; ++ current->signal->group_exit_code = si->cpt_group_exit_code; ++ if (si->cpt_group_exit_task) { ++ current->signal->group_exit_task = find_task_by_vpid(si->cpt_group_exit_task); ++ if (current->signal->group_exit_task == NULL) { ++ eprintk_ctx("oops, group_exit_task=NULL, pid=%u\n", si->cpt_group_exit_task); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ } ++ current->signal->notify_count = si->cpt_notify_count; ++ current->signal->group_stop_count = si->cpt_group_stop_count; ++ ++ if (si->cpt_next > si->cpt_hdrlen) { ++ char *buf = kmalloc(si->cpt_next - si->cpt_hdrlen, GFP_KERNEL); ++ if (buf == NULL) { ++ cpt_release_buf(ctx); ++ return -ENOMEM; ++ } ++ err = ctx->pread(buf, si->cpt_next - si->cpt_hdrlen, ctx, ++ ti->cpt_signal + si->cpt_hdrlen); ++ if (err) { ++ kfree(buf); ++ cpt_release_buf(ctx); ++ return err; ++ } ++ restore_sigqueue(current, ++ ¤t->signal->shared_pending, (unsigned long)buf, ++ (unsigned long)buf + si->cpt_next - si->cpt_hdrlen); ++ kfree(buf); ++ } ++ cpt_release_buf(ctx); ++ return 0; ++} ++ ++int restore_one_sighand_struct(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_sighand_image si; ++ int i; ++ loff_t pos, endpos; ++ ++ err = rst_get_object(CPT_OBJ_SIGHAND_STRUCT, ti->cpt_sighand, &si, ctx); ++ if (err) ++ return err; ++ ++ for (i=0; i<_NSIG; i++) { ++ current->sighand->action[i].sa.sa_handler = SIG_DFL; ++#ifndef CONFIG_IA64 ++ current->sighand->action[i].sa.sa_restorer = 0; ++#endif ++ current->sighand->action[i].sa.sa_flags = 0; ++ memset(¤t->sighand->action[i].sa.sa_mask, 0, sizeof(sigset_t)); ++ } ++ ++ pos = ti->cpt_sighand + si.cpt_hdrlen; ++ endpos = ti->cpt_sighand + si.cpt_next; ++ while (pos < endpos) { ++ struct cpt_sighandler_image shi; ++ ++ err = rst_get_object(CPT_OBJ_SIGHANDLER, pos, &shi, ctx); ++ if (err) ++ return err; ++ current->sighand->action[shi.cpt_signo].sa.sa_handler = (void*)(unsigned long)shi.cpt_handler; ++#ifndef CONFIG_IA64 ++ current->sighand->action[shi.cpt_signo].sa.sa_restorer = (void*)(unsigned long)shi.cpt_restorer; ++#endif ++ current->sighand->action[shi.cpt_signo].sa.sa_flags = shi.cpt_flags; ++ cpt_sigset_import(¤t->sighand->action[shi.cpt_signo].sa.sa_mask, shi.cpt_mask); ++ pos += shi.cpt_next; ++ } ++ ++ return 0; ++} ++ ++ ++__u32 rst_signal_flag(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ __u32 flag = 0; ++ ++ if (lookup_cpt_obj_bypos(CPT_OBJ_SIGNAL_STRUCT, ti->cpt_signal, ctx)) ++ flag |= CLONE_THREAD; ++ if (ti->cpt_sighand == CPT_NULL || ++ lookup_cpt_obj_bypos(CPT_OBJ_SIGHAND_STRUCT, ti->cpt_sighand, ctx)) ++ flag |= CLONE_SIGHAND; ++ return flag; ++} ++ ++int ++rst_signal_complete(struct cpt_task_image *ti, int * exiting, cpt_context_t *ctx) ++{ ++ int err; ++ cpt_object_t *obj; ++ ++ if (ti->cpt_signal == CPT_NULL || ti->cpt_sighand == CPT_NULL) { ++ return -EINVAL; ++ } ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_SIGHAND_STRUCT, ti->cpt_sighand, ctx); ++ if (obj) { ++ struct sighand_struct *sig = current->sighand; ++ if (obj->o_obj != sig) { ++ return -EINVAL; ++ } ++ } else { ++ obj = cpt_object_add(CPT_OBJ_SIGHAND_STRUCT, current->sighand, ctx); ++ if (obj == NULL) ++ return -ENOMEM; ++ cpt_obj_setpos(obj, ti->cpt_sighand, ctx); ++ err = restore_one_sighand_struct(ti, ctx); ++ if (err) ++ return err; ++ } ++ ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_SIGNAL_STRUCT, ti->cpt_signal, ctx); ++ if (obj) { ++ struct signal_struct *sig = current->signal; ++ if (obj->o_obj != sig) { ++ return -EINVAL; ++ } ++/* if (current->signal) { ++ pid_t session; ++ ++ session = process_session(current); ++ set_process_vgroup(current, session); ++ set_signal_vsession(current->signal, session); ++ }*/ ++ } else { ++ obj = cpt_object_add(CPT_OBJ_SIGNAL_STRUCT, current->signal, ctx); ++ if (obj == NULL) ++ return -ENOMEM; ++ cpt_obj_setpos(obj, ti->cpt_signal, ctx); ++ err = restore_one_signal_struct(ti, exiting, ctx); ++ if (err) ++ return err; ++ } ++ ++ return 0; ++} ++ ++#ifdef CONFIG_X86 ++static u32 decode_segment(u32 segid) ++{ ++ if (segid == CPT_SEG_ZERO) ++ return 0; ++ ++ /* TLS descriptors */ ++ if (segid <= CPT_SEG_TLS3) ++ return ((GDT_ENTRY_TLS_MIN + segid-CPT_SEG_TLS1)<<3) + 3; ++ ++ /* LDT descriptor, it is just an index to LDT array */ ++ if (segid >= CPT_SEG_LDT) ++ return ((segid - CPT_SEG_LDT) << 3) | 7; ++ ++ /* Check for one of standard descriptors */ ++#ifdef CONFIG_X86_64 ++ if (segid == CPT_SEG_USER32_DS) ++ return __USER32_DS; ++ if (segid == CPT_SEG_USER32_CS) ++ return __USER32_CS; ++ if (segid == CPT_SEG_USER64_DS) ++ return __USER_DS; ++ if (segid == CPT_SEG_USER64_CS) ++ return __USER_CS; ++#else ++ if (segid == CPT_SEG_USER32_DS) ++ return __USER_DS; ++ if (segid == CPT_SEG_USER32_CS) ++ return __USER_CS; ++#endif ++ wprintk("Invalid segment reg %d\n", segid); ++ return 0; ++} ++#endif ++ ++#if defined (CONFIG_IA64) ++void ia64_decrement_ip (struct pt_regs *regs) ++{ ++ unsigned long w0, ri = ia64_psr(regs)->ri - 1; ++ ++ if (ia64_psr(regs)->ri == 0) { ++ regs->cr_iip -= 16; ++ ri = 2; ++ get_user(w0, (char __user *) regs->cr_iip + 0); ++ if (((w0 >> 1) & 0xf) == 2) { ++ /* ++ * rfi'ing to slot 2 of an MLX bundle causes ++ * an illegal operation fault. We don't want ++ * that to happen... ++ */ ++ ri = 1; ++ } ++ } ++ ia64_psr(regs)->ri = ri; ++} ++#endif ++ ++static void rst_child_tid(unsigned long *child_tids) ++{ ++ dprintk("rct: " CPT_FID "\n", CPT_TID(current)); ++ current->clear_child_tid = (void*)child_tids[0]; ++ current->set_child_tid = (void*)child_tids[1]; ++} ++ ++static void rst_last_siginfo(void) ++{ ++ int signr; ++ siginfo_t *info = current->last_siginfo; ++ struct pt_regs *regs = task_pt_regs(current); ++ struct k_sigaction *ka; ++ int ptrace_id; ++ ++ dprintk("rlsi: " CPT_FID "\n", CPT_TID(current)); ++ ++ spin_lock_irq(¤t->sighand->siglock); ++ current->last_siginfo = NULL; ++ recalc_sigpending(); ++ ++ ptrace_id = current->pn_state; ++ clear_pn_state(current); ++ ++ switch (ptrace_id) { ++ case PN_STOP_TF: ++ case PN_STOP_TF_RT: ++ /* frame_*signal */ ++ dprintk("SIGTRAP %u/%u(%s) %u/%u %u %ld %u %lu\n", ++ task_pid_vnr(current), current->pid, current->comm, ++ info->si_signo, info->si_code, ++ current->exit_code, SYSCALL_NR(regs), ++ current->ptrace, current->ptrace_message); ++ goto out; ++ case PN_STOP_ENTRY: ++ case PN_STOP_LEAVE: ++ /* do_syscall_trace */ ++ spin_unlock_irq(¤t->sighand->siglock); ++ dprintk("ptrace do_syscall_trace: %d %d\n", ptrace_id, current->exit_code); ++ if (current->exit_code) { ++ send_sig(current->exit_code, current, 1); ++ current->exit_code = 0; ++ } ++ if (IN_SYSCALL(regs)) { ++ if (ptrace_id == PN_STOP_ENTRY ++#ifdef CONFIG_X86 ++ && SYSCALL_ERRNO(regs) == ENOSYS ++#endif ++ ) ++ SYSCALL_RESTART(regs); ++ else if (IN_ERROR(regs) && ++ syscall_is(current, regs, rt_sigtimedwait) && ++ (SYSCALL_ERRNO(regs) == EAGAIN || ++ SYSCALL_ERRNO(regs) == EINTR)) ++ SYSCALL_RESTART(regs); ++ } ++ return; ++ case PN_STOP_FORK: ++ /* fork */ ++ SYSCALL_SETRET(regs, current->ptrace_message); ++ dprintk("ptrace fork returns pid %ld\n", SYSCALL_RETVAL(regs)); ++ goto out; ++ case PN_STOP_VFORK: ++ /* after vfork */ ++ SYSCALL_SETRET(regs, current->ptrace_message); ++ dprintk("ptrace after vfork returns pid %ld\n", SYSCALL_RETVAL(regs)); ++ goto out; ++ case PN_STOP_SIGNAL: ++ /* normal case : dequeue signal */ ++ break; ++ case PN_STOP_EXIT: ++ dprintk("ptrace exit caught\n"); ++ current->ptrace &= ~PT_TRACE_EXIT; ++ spin_unlock_irq(¤t->sighand->siglock); ++ module_put(THIS_MODULE); ++ complete_and_exit(NULL, current->ptrace_message); ++ BUG(); ++ case PN_STOP_EXEC: ++ eprintk("ptrace after exec caught: must not happen\n"); ++ BUG(); ++ default: ++ eprintk("ptrace with unknown identity %d\n", ptrace_id); ++ BUG(); ++ } ++ ++ signr = current->exit_code; ++ if (signr == 0) { ++ dprintk("rlsi: canceled signal %d\n", info->si_signo); ++ goto out; ++ } ++ current->exit_code = 0; ++ ++ if (signr != info->si_signo) { ++ info->si_signo = signr; ++ info->si_errno = 0; ++ info->si_code = SI_USER; ++ info->si_pid = task_pid_vnr(current->parent); ++ info->si_uid = current->parent->uid; ++ } ++ ++ /* If the (new) signal is now blocked, requeue it. */ ++ if (sigismember(¤t->blocked, signr)) { ++ dprintk("going to requeue signal %d\n", signr); ++ goto out_resend_sig; ++ } ++ ++ ka = ¤t->sighand->action[signr-1]; ++ if (ka->sa.sa_handler == SIG_IGN) { ++ dprintk("going to resend signal %d (ignored)\n", signr); ++ goto out; ++ } ++ if (ka->sa.sa_handler != SIG_DFL) { ++ dprintk("going to resend signal %d (not SIG_DFL)\n", signr); ++ goto out_resend_sig; ++ } ++ if (signr == SIGCONT || ++ signr == SIGCHLD || ++ signr == SIGWINCH || ++ signr == SIGURG || ++ current->pid == 1) ++ goto out; ++ ++ /* All the rest, which we cannot handle are requeued. */ ++ dprintk("going to resend signal %d (sigh)\n", signr); ++out_resend_sig: ++ spin_unlock_irq(¤t->sighand->siglock); ++ send_sig_info(signr, info, current); ++ return; ++ ++out: ++ spin_unlock_irq(¤t->sighand->siglock); ++} ++ ++static void rst_finish_stop(void) ++{ ++ /* ... ++ * do_signal() -> ++ * get_signal_to_deliver() -> ++ * do_signal_stop() -> ++ * finish_stop() ++ * ++ * Normally after SIGCONT it will dequeue the next signal. If no signal ++ * is found, do_signal restarts syscall unconditionally. ++ * Otherwise signal handler is pushed on user stack. ++ */ ++ ++ dprintk("rfs: " CPT_FID "\n", CPT_TID(current)); ++ ++ clear_stop_state(current); ++ current->exit_code = 0; ++} ++ ++static void rst_restart_sys(void) ++{ ++ struct pt_regs *regs = task_pt_regs(current); ++ ++ /* This hook is supposed to be executed, when we have ++ * to complete some interrupted syscall. ++ */ ++ dprintk("rrs: " CPT_FID "\n", CPT_TID(current)); ++ ++ if (!IN_SYSCALL(regs) || !IN_ERROR(regs)) ++ return; ++ ++#ifdef __NR_pause ++ if (syscall_is(current,regs,pause)) { ++ if (SYSCALL_ERRNO(regs) == ERESTARTNOHAND) { ++ current->state = TASK_INTERRUPTIBLE; ++ schedule(); ++ } ++ } else ++#else ++ /* On this arch pause() is simulated with sigsuspend(). */ ++ if (syscall_is(current,regs,rt_sigsuspend)) { ++ if (SYSCALL_ERRNO(regs) == ERESTARTNOHAND) { ++ current->state = TASK_INTERRUPTIBLE; ++ schedule(); ++ } ++ } else ++#endif ++ if (syscall_is(current,regs,rt_sigtimedwait)) { ++ if (SYSCALL_ERRNO(regs) == EAGAIN || ++ SYSCALL_ERRNO(regs) == EINTR) { ++ SYSCALL_RESTART(regs); ++ } ++ } else if (syscall_is(current,regs,futex)) { ++ if (SYSCALL_ERRNO(regs) == EINTR && ++ !signal_pending(current)) { ++ SYSCALL_RESTART(regs); ++ } ++ } ++ ++ if (!signal_pending(current) && ++ !test_thread_flag(TIF_RESTORE_SIGMASK)) { ++ if (SYSCALL_ERRNO(regs) == ERESTARTSYS || ++ SYSCALL_ERRNO(regs) == ERESTARTNOINTR || ++ SYSCALL_ERRNO(regs) == ERESTARTNOHAND) { ++ SYSCALL_RESTART(regs); ++ } else if (SYSCALL_ERRNO(regs) == ERESTART_RESTARTBLOCK) { ++ int new = __NR_restart_syscall; ++#ifdef CONFIG_X86_64 ++ if (task_thread_info(current)->flags&_TIF_IA32) ++ new = __NR32_restart_syscall; ++#endif ++ SYSCALL_RESTART2(regs, new); ++ } ++ } ++} ++ ++#ifdef CONFIG_X86_32 ++ ++static int restore_registers(struct task_struct *tsk, struct pt_regs *regs, ++ struct cpt_task_image *ti, struct cpt_x86_regs *b, ++ struct resume_info **rip, struct cpt_context *ctx) ++{ ++ extern char i386_ret_from_resume; ++ ++ if (b->cpt_object != CPT_OBJ_X86_REGS) ++ return -EINVAL; ++ ++ tsk->thread.esp = (unsigned long) regs; ++ tsk->thread.esp0 = (unsigned long) (regs+1); ++ tsk->thread.eip = (unsigned long) &i386_ret_from_resume; ++ ++ tsk->thread.gs = decode_segment(b->cpt_gs); ++ tsk->thread.debugreg[0] = b->cpt_debugreg[0]; ++ tsk->thread.debugreg[1] = b->cpt_debugreg[1]; ++ tsk->thread.debugreg[2] = b->cpt_debugreg[2]; ++ tsk->thread.debugreg[3] = b->cpt_debugreg[3]; ++ tsk->thread.debugreg[4] = b->cpt_debugreg[4]; ++ tsk->thread.debugreg[5] = b->cpt_debugreg[5]; ++ tsk->thread.debugreg[6] = b->cpt_debugreg[6]; ++ tsk->thread.debugreg[7] = b->cpt_debugreg[7]; ++ ++ regs->ebx = b->cpt_ebx; ++ regs->ecx = b->cpt_ecx; ++ regs->edx = b->cpt_edx; ++ regs->esi = b->cpt_esi; ++ regs->edi = b->cpt_edi; ++ regs->ebp = b->cpt_ebp; ++ regs->eax = b->cpt_eax; ++ regs->xds = b->cpt_xds; ++ regs->xes = b->cpt_xes; ++ regs->orig_eax = b->cpt_orig_eax; ++ regs->eip = b->cpt_eip; ++ regs->xcs = b->cpt_xcs; ++ regs->eflags = b->cpt_eflags; ++ regs->esp = b->cpt_esp; ++ regs->xss = b->cpt_xss; ++ ++ regs->xcs = decode_segment(b->cpt_xcs); ++ regs->xss = decode_segment(b->cpt_xss); ++ regs->xds = decode_segment(b->cpt_xds); ++ regs->xes = decode_segment(b->cpt_xes); ++ regs->xfs = decode_segment(b->cpt_fs); ++ ++ tsk->thread.esp -= HOOK_RESERVE; ++ memset((void*)tsk->thread.esp, 0, HOOK_RESERVE); ++ *rip = (void*)tsk->thread.esp; ++ ++ return 0; ++} ++ ++#elif defined(CONFIG_X86_64) ++ ++static void xlate_ptregs_32_to_64(struct pt_regs *d, struct cpt_x86_regs *s) ++{ ++ memset(d, 0, sizeof(struct pt_regs)); ++ d->rbp = s->cpt_ebp; ++ d->rbx = s->cpt_ebx; ++ d->rax = (s32)s->cpt_eax; ++ d->rcx = s->cpt_ecx; ++ d->rdx = s->cpt_edx; ++ d->rsi = s->cpt_esi; ++ d->rdi = s->cpt_edi; ++ d->orig_rax = (s32)s->cpt_orig_eax; ++ d->rip = s->cpt_eip; ++ d->cs = s->cpt_xcs; ++ d->eflags = s->cpt_eflags; ++ d->rsp = s->cpt_esp; ++ d->ss = s->cpt_xss; ++} ++ ++static int restore_registers(struct task_struct *tsk, struct pt_regs *regs, ++ struct cpt_task_image *ti, struct cpt_obj_bits *hdr, ++ struct resume_info **rip, struct cpt_context *ctx) ++{ ++ if (hdr->cpt_object == CPT_OBJ_X86_64_REGS) { ++ struct cpt_x86_64_regs *b = (void*)hdr; ++ ++ tsk->thread.rsp = (unsigned long) regs; ++ tsk->thread.rsp0 = (unsigned long) (regs+1); ++ ++ tsk->thread.fs = b->cpt_fsbase; ++ tsk->thread.gs = b->cpt_gsbase; ++ tsk->thread.fsindex = decode_segment(b->cpt_fsindex); ++ tsk->thread.gsindex = decode_segment(b->cpt_gsindex); ++ tsk->thread.ds = decode_segment(b->cpt_ds); ++ tsk->thread.es = decode_segment(b->cpt_es); ++ tsk->thread.debugreg0 = b->cpt_debugreg[0]; ++ tsk->thread.debugreg1 = b->cpt_debugreg[1]; ++ tsk->thread.debugreg2 = b->cpt_debugreg[2]; ++ tsk->thread.debugreg3 = b->cpt_debugreg[3]; ++ tsk->thread.debugreg6 = b->cpt_debugreg[6]; ++ tsk->thread.debugreg7 = b->cpt_debugreg[7]; ++ ++ memcpy(regs, &b->cpt_r15, sizeof(struct pt_regs)); ++ ++ tsk->thread.userrsp = regs->rsp; ++ regs->cs = decode_segment(b->cpt_cs); ++ regs->ss = decode_segment(b->cpt_ss); ++ } else if (hdr->cpt_object == CPT_OBJ_X86_REGS) { ++ struct cpt_x86_regs *b = (void*)hdr; ++ ++ tsk->thread.rsp = (unsigned long) regs; ++ tsk->thread.rsp0 = (unsigned long) (regs+1); ++ ++ tsk->thread.fs = 0; ++ tsk->thread.gs = 0; ++ tsk->thread.fsindex = decode_segment(b->cpt_fs); ++ tsk->thread.gsindex = decode_segment(b->cpt_gs); ++ tsk->thread.debugreg0 = b->cpt_debugreg[0]; ++ tsk->thread.debugreg1 = b->cpt_debugreg[1]; ++ tsk->thread.debugreg2 = b->cpt_debugreg[2]; ++ tsk->thread.debugreg3 = b->cpt_debugreg[3]; ++ tsk->thread.debugreg6 = b->cpt_debugreg[6]; ++ tsk->thread.debugreg7 = b->cpt_debugreg[7]; ++ ++ xlate_ptregs_32_to_64(regs, b); ++ ++ tsk->thread.userrsp = regs->rsp; ++ regs->cs = decode_segment(b->cpt_xcs); ++ regs->ss = decode_segment(b->cpt_xss); ++ tsk->thread.ds = decode_segment(b->cpt_xds); ++ tsk->thread.es = decode_segment(b->cpt_xes); ++ } else { ++ return -EINVAL; ++ } ++ ++ tsk->thread.rsp -= HOOK_RESERVE; ++ memset((void*)tsk->thread.rsp, 0, HOOK_RESERVE); ++ *rip = (void*)tsk->thread.rsp; ++ return 0; ++} ++ ++#elif defined(CONFIG_IA64) ++ ++#define MASK(nbits) ((1UL << (nbits)) - 1) /* mask with NBITS bits set */ ++ ++#define PUT_BITS(first, last, nat) \ ++ ({ \ ++ unsigned long bit = ia64_unat_pos(&pt->r##first); \ ++ unsigned long nbits = (last - first + 1); \ ++ unsigned long mask = MASK(nbits) << first; \ ++ long dist; \ ++ if (bit < first) \ ++ dist = 64 + bit - first; \ ++ else \ ++ dist = bit - first; \ ++ ia64_rotl(nat & mask, dist); \ ++ }) ++ ++unsigned long ++ia64_put_scratch_nat_bits (struct pt_regs *pt, unsigned long nat) ++{ ++ unsigned long scratch_unat; ++ ++ /* ++ * Registers that are stored consecutively in struct pt_regs ++ * can be handled in parallel. If the register order in ++ * struct_pt_regs changes, this code MUST be updated. ++ */ ++ scratch_unat = PUT_BITS( 1, 1, nat); ++ scratch_unat |= PUT_BITS( 2, 3, nat); ++ scratch_unat |= PUT_BITS(12, 13, nat); ++ scratch_unat |= PUT_BITS(14, 14, nat); ++ scratch_unat |= PUT_BITS(15, 15, nat); ++ scratch_unat |= PUT_BITS( 8, 11, nat); ++ scratch_unat |= PUT_BITS(16, 31, nat); ++ ++ return scratch_unat; ++ ++} ++ ++static unsigned long ++ia64_put_saved_nat_bits (struct switch_stack *pt, unsigned long nat) ++{ ++ unsigned long scratch_unat; ++ ++ scratch_unat = PUT_BITS( 4, 7, nat); ++ ++ return scratch_unat; ++ ++} ++ ++#undef PUT_BITS ++ ++ ++static int restore_registers(struct task_struct *tsk, struct pt_regs *pt, ++ struct cpt_task_image *ti, ++ struct cpt_ia64_regs *r, ++ struct resume_info **rip, ++ struct cpt_context *ctx) ++{ ++ extern char ia64_ret_from_resume; ++ struct switch_stack *sw; ++ struct resume_info *ri; ++ struct ia64_psr *psr = ia64_psr(pt); ++ void *krbs = (void *)tsk + IA64_RBS_OFFSET; ++ unsigned long reg; ++ ++ if (r->cpt_object != CPT_OBJ_IA64_REGS) ++ return -EINVAL; ++ ++ if (r->num_regs > 96) { ++ eprintk(CPT_FID " too much RSE regs %lu\n", ++ CPT_TID(tsk), r->num_regs); ++ return -EINVAL; ++ } ++ ++ *rip = ri = ((void*)pt) - HOOK_RESERVE; ++ sw = ((struct switch_stack *) ri) - 1; ++ ++ memmove(sw, (void*)tsk->thread.ksp + 16, sizeof(struct switch_stack)); ++ memset(ri, 0, HOOK_RESERVE); ++ ++ /* gr 1,2-3,8-11,12-13,14,15,16-31 are on pt_regs */ ++ memcpy(&pt->r1, &r->gr[1], 8*(2-1)); ++ memcpy(&pt->r2, &r->gr[2], 8*(4-2)); ++ memcpy(&pt->r8, &r->gr[8], 8*(12-8)); ++ memcpy(&pt->r12, &r->gr[12], 8*(14-12)); ++ memcpy(&pt->r14, &r->gr[14], 8*(15-14)); ++ memcpy(&pt->r15, &r->gr[15], 8*(16-15)); ++ memcpy(&pt->r16, &r->gr[16], 8*(32-16)); ++ ++ pt->b0 = r->br[0]; ++ pt->b6 = r->br[6]; ++ pt->b7 = r->br[7]; ++ ++ pt->ar_bspstore = r->ar_bspstore; ++ pt->ar_unat = r->ar_unat; ++ pt->ar_pfs = r->ar_pfs; ++ pt->ar_ccv = r->ar_ccv; ++ pt->ar_fpsr = r->ar_fpsr; ++ pt->ar_csd = r->ar_csd; ++ pt->ar_ssd = r->ar_ssd; ++ pt->ar_rsc = r->ar_rsc; ++ ++ pt->cr_iip = r->cr_iip; ++ pt->cr_ipsr = r->cr_ipsr; ++ ++ pt->pr = r->pr; ++ ++ pt->cr_ifs = r->cfm; ++ ++ /* fpregs 6..9,10..11 are in pt_regs */ ++ memcpy(&pt->f6, &r->fr[2*6], 16*(10-6)); ++ memcpy(&pt->f10, &r->fr[2*10], 16*(12-10)); ++ /* fpreg 12..15 are on switch stack */ ++ memcpy(&sw->f12, &r->fr[2*12], 16*(16-12)); ++ /* fpregs 32...127 */ ++ tsk->thread.flags |= IA64_THREAD_FPH_VALID; ++ memcpy(tsk->thread.fph, &r->fr[32*2], 16*(128-32)); ++ ia64_drop_fpu(tsk); ++ psr->dfh = 1; ++ ++ memcpy(&sw->r4, &r->gr[4], 8*(8-4)); ++ memcpy(&sw->b1, &r->br[1], 8*(6-1)); ++ sw->ar_lc = r->ar_lc; ++ ++ memcpy(&sw->f2, &r->fr[2*2], 16*(6-2)); ++ memcpy(&sw->f16, &r->fr[2*16], 16*(32-16)); ++ ++ sw->caller_unat = 0; ++ sw->ar_fpsr = pt->ar_fpsr; ++ sw->ar_unat = 0; ++ if (r->nat[0] & 0xFFFFFF0FUL) ++ sw->caller_unat = ia64_put_scratch_nat_bits(pt, r->nat[0]); ++ if (r->nat[0] & 0xF0) ++ sw->ar_unat = ia64_put_saved_nat_bits(sw, r->nat[0]); ++ ++ sw->ar_bspstore = (unsigned long)ia64_rse_skip_regs(krbs, r->num_regs); ++ memset(krbs, 0, (void*)sw->ar_bspstore - krbs); ++ sw->ar_rnat = 0; ++ sw->ar_pfs = 0; ++ ++ /* This is tricky. When we are in syscall, we have frame ++ * of output register (sometimes, plus one input reg sometimes). ++ * It is not so easy to restore such frame, RSE optimizes ++ * and does not fetch those regs from backstore. So, we restore ++ * the whole frame as local registers, and then repartition it ++ * in ia64_ret_from_resume(). ++ */ ++ if ((long)pt->cr_ifs >= 0) { ++ unsigned long out = (r->cfm&0x7F) - ((r->cfm>>7)&0x7F); ++ sw->ar_pfs = out | (out<<7); ++ } ++ if (r->ar_ec) ++ sw->ar_pfs |= (r->ar_ec & 0x3F) << 52; ++ ++ for (reg = 0; reg < r->num_regs; reg++) { ++ unsigned long *ptr = ia64_rse_skip_regs(krbs, reg); ++ unsigned long *rnatp; ++ unsigned long set_rnat = 0; ++ ++ *ptr = r->gr[32+reg]; ++ ++ if (reg < 32) ++ set_rnat = (r->nat[0] & (1UL<<(reg+32))); ++ else ++ set_rnat = (r->nat[1] & (1UL<<(reg-32))); ++ ++ if (set_rnat) { ++ rnatp = ia64_rse_rnat_addr(ptr); ++ if ((unsigned long)rnatp >= sw->ar_bspstore) ++ rnatp = &sw->ar_rnat; ++ *rnatp |= (1UL<b0 = (unsigned long) &ia64_ret_from_resume; ++ tsk->thread.ksp = (unsigned long) sw - 16; ++ ++#define PRED_LEAVE_SYSCALL 1 /* TRUE iff leave from syscall */ ++#define PRED_KERNEL_STACK 2 /* returning to kernel-stacks? */ ++#define PRED_USER_STACK 3 /* returning to user-stacks? */ ++#define PRED_SYSCALL 4 /* inside a system call? */ ++#define PRED_NON_SYSCALL 5 /* complement of PRED_SYSCALL */ ++ ++ pt->loadrs = r->loadrs; ++ sw->pr = 0; ++ sw->pr &= ~(1UL << PRED_LEAVE_SYSCALL); ++ sw->pr &= ~((1UL << PRED_SYSCALL) | (1UL << PRED_NON_SYSCALL)); ++ sw->pr &= ~(1UL << PRED_KERNEL_STACK); ++ sw->pr |= (1UL << PRED_USER_STACK); ++ if ((long)pt->cr_ifs < 0) { ++ sw->pr |= (1UL << PRED_NON_SYSCALL); ++ } else { ++ sw->pr |= ((1UL << PRED_SYSCALL) | (1UL << PRED_LEAVE_SYSCALL)); ++ } ++ ++ return 0; ++} ++#endif ++ ++asmlinkage void rst_resume_work(struct resume_info *ri) ++{ ++ if (ri->hooks & (1<tid_ptrs); ++ if (ri->hooks & (1<hooks & (1<hooks & (1<thread.i387.fxsave.mxcsr &= 0x0000ffbf; ++#endif ++} ++ ++int rst_restore_process(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ struct cpt_task_image *ti = obj->o_image; ++ struct pt_regs * regs; ++ struct cpt_object_hdr *b; ++ struct cpt_siginfo_image *lsi = NULL; ++ struct group_info *gids, *ogids; ++ struct resume_info *ri = NULL; ++ int i; ++ int err = 0; ++#ifdef CONFIG_BEANCOUNTERS ++ struct task_beancounter *tbc; ++ struct user_beancounter *new_bc, *old_bc; ++#endif ++ ++ if (tsk == NULL) { ++ eprintk_ctx("oops, task %d/%s is missing\n", ti->cpt_pid, ti->cpt_comm); ++ return -EFAULT; ++ } ++ ++ wait_task_inactive(tsk); ++#ifdef CONFIG_BEANCOUNTERS ++ tbc = &tsk->task_bc; ++ new_bc = rst_lookup_ubc(ti->cpt_exec_ub, ctx); ++ err = virtinfo_notifier_call(VITYPE_SCP, ++ VIRTINFO_SCP_RSTTSK, new_bc); ++ if (err & NOTIFY_FAIL) { ++ put_beancounter(new_bc); ++ return -ECHRNG; ++ } ++ old_bc = tbc->exec_ub; ++ if ((err & VIRTNOTIFY_CHANGE) && old_bc != new_bc) { ++ dprintk(" *** replacing ub %p by %p for %p (%d %s)\n", ++ old_bc, new_bc, tsk, ++ tsk->pid, tsk->comm); ++ tbc->exec_ub = new_bc; ++ new_bc = old_bc; ++ } ++ put_beancounter(new_bc); ++#endif ++ regs = task_pt_regs(tsk); ++ ++ if (!tsk->exit_state) { ++ tsk->lock_depth = -1; ++#ifdef CONFIG_PREEMPT ++ task_thread_info(tsk)->preempt_count--; ++#endif ++ } ++ ++ if (tsk->static_prio != ti->cpt_static_prio) ++ set_user_nice(tsk, PRIO_TO_NICE((s32)ti->cpt_static_prio)); ++ ++ cpt_sigset_import(&tsk->blocked, ti->cpt_sigblocked); ++ cpt_sigset_import(&tsk->real_blocked, ti->cpt_sigrblocked); ++ cpt_sigset_import(&tsk->saved_sigmask, ti->cpt_sigsuspend_blocked); ++ cpt_sigset_import(&tsk->pending.signal, ti->cpt_sigpending); ++ ++ tsk->uid = ti->cpt_uid; ++ tsk->euid = ti->cpt_euid; ++ tsk->suid = ti->cpt_suid; ++ tsk->fsuid = ti->cpt_fsuid; ++ tsk->gid = ti->cpt_gid; ++ tsk->egid = ti->cpt_egid; ++ tsk->sgid = ti->cpt_sgid; ++ tsk->fsgid = ti->cpt_fsgid; ++#ifdef CONFIG_IA64 ++ SET_UNALIGN_CTL(tsk, ti->cpt_prctl_uac); ++ SET_FPEMU_CTL(tsk, ti->cpt_prctl_fpemu); ++#endif ++ memcpy(&tsk->cap_effective, &ti->cpt_ecap, sizeof(tsk->cap_effective)); ++ memcpy(&tsk->cap_inheritable, &ti->cpt_icap, sizeof(tsk->cap_inheritable)); ++ memcpy(&tsk->cap_permitted, &ti->cpt_pcap, sizeof(tsk->cap_permitted)); ++ tsk->keep_capabilities = (ti->cpt_keepcap != 0); ++ tsk->did_exec = (ti->cpt_did_exec != 0); ++ gids = groups_alloc(ti->cpt_ngids); ++ ogids = tsk->group_info; ++ if (gids) { ++ int i; ++ for (i=0; i<32; i++) ++ gids->small_block[i] = ti->cpt_gids[i]; ++ tsk->group_info = gids; ++ } ++ if (ogids) ++ put_group_info(ogids); ++ tsk->utime = ti->cpt_utime; ++ tsk->stime = ti->cpt_stime; ++ if (ctx->image_version == CPT_VERSION_8) ++ tsk->start_time = _ns_to_timespec(ti->cpt_starttime*TICK_NSEC); ++ else ++ cpt_timespec_import(&tsk->start_time, ti->cpt_starttime); ++ _set_normalized_timespec(&tsk->start_time, ++ tsk->start_time.tv_sec + ++ VE_TASK_INFO(tsk)->owner_env->start_timespec.tv_sec, ++ tsk->start_time.tv_nsec + ++ VE_TASK_INFO(tsk)->owner_env->start_timespec.tv_nsec); ++ ++ tsk->nvcsw = ti->cpt_nvcsw; ++ tsk->nivcsw = ti->cpt_nivcsw; ++ tsk->min_flt = ti->cpt_min_flt; ++ tsk->maj_flt = ti->cpt_maj_flt; ++ ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,8) ++ tsk->cutime = ti->cpt_cutime; ++ tsk->cstime = ti->cpt_cstime; ++ tsk->cnvcsw = ti->cpt_cnvcsw; ++ tsk->cnivcsw = ti->cpt_cnivcsw; ++ tsk->cmin_flt = ti->cpt_cmin_flt; ++ tsk->cmaj_flt = ti->cpt_cmaj_flt; ++ ++ BUILD_BUG_ON(RLIM_NLIMITS > CPT_RLIM_NLIMITS); ++ ++ for (i=0; irlim[i].rlim_cur = ti->cpt_rlim_cur[i]; ++ tsk->rlim[i].rlim_max = ti->cpt_rlim_max[i]; ++ } ++#else ++ if (thread_group_leader(tsk) && tsk->signal) { ++ tsk->signal->utime = ti->cpt_utime; ++ tsk->signal->stime = ti->cpt_stime; ++ tsk->signal->cutime = ti->cpt_cutime; ++ tsk->signal->cstime = ti->cpt_cstime; ++ tsk->signal->nvcsw = ti->cpt_nvcsw; ++ tsk->signal->nivcsw = ti->cpt_nivcsw; ++ tsk->signal->cnvcsw = ti->cpt_cnvcsw; ++ tsk->signal->cnivcsw = ti->cpt_cnivcsw; ++ tsk->signal->min_flt = ti->cpt_min_flt; ++ tsk->signal->maj_flt = ti->cpt_maj_flt; ++ tsk->signal->cmin_flt = ti->cpt_cmin_flt; ++ tsk->signal->cmaj_flt = ti->cpt_cmaj_flt; ++ ++ for (i=0; isignal->rlim[i].rlim_cur = ti->cpt_rlim_cur[i]; ++ tsk->signal->rlim[i].rlim_max = ti->cpt_rlim_max[i]; ++ } ++ } ++#endif ++ ++#ifdef CONFIG_X86 ++ for (i=0; i<3; i++) { ++ if (i >= GDT_ENTRY_TLS_ENTRIES) { ++ eprintk_ctx("too many tls descs\n"); ++ } else { ++#ifndef CONFIG_X86_64 ++ tsk->thread.tls_array[i].a = ti->cpt_tls[i]&0xFFFFFFFF; ++ tsk->thread.tls_array[i].b = ti->cpt_tls[i]>>32; ++#else ++ tsk->thread.tls_array[i] = ti->cpt_tls[i]; ++#endif ++ } ++ } ++#endif ++ ++ clear_stopped_child_used_math(tsk); ++ ++ b = (void *)(ti+1); ++ while ((void*)b < ((void*)ti) + ti->cpt_next) { ++ /* Siginfo objects are at the end of obj array */ ++ if (b->cpt_object == CPT_OBJ_SIGINFO) { ++ struct ve_struct *env = set_exec_env(VE_TASK_INFO(tsk)->owner_env); ++ restore_sigqueue(tsk, &tsk->pending, (unsigned long)b, (unsigned long)ti + ti->cpt_next); ++ set_exec_env(env); ++ break; ++ } ++ ++ switch (b->cpt_object) { ++#ifdef CONFIG_X86 ++ case CPT_OBJ_BITS: ++ if (b->cpt_content == CPT_CONTENT_X86_FPUSTATE && ++ cpu_has_fxsr) { ++ memcpy(&tsk->thread.i387, ++ (void*)b + b->cpt_hdrlen, ++ sizeof(struct i387_fxsave_struct)); ++ rst_apply_mxcsr_mask(tsk); ++ if (ti->cpt_used_math) ++ set_stopped_child_used_math(tsk); ++ } ++#ifndef CONFIG_X86_64 ++ else if (b->cpt_content == CPT_CONTENT_X86_FPUSTATE_OLD && ++ !cpu_has_fxsr) { ++ memcpy(&tsk->thread.i387, ++ (void*)b + b->cpt_hdrlen, ++ sizeof(struct i387_fsave_struct)); ++ if (ti->cpt_used_math) ++ set_stopped_child_used_math(tsk); ++ } ++#endif ++ break; ++#endif ++ case CPT_OBJ_LASTSIGINFO: ++ lsi = (void*)b; ++ break; ++ case CPT_OBJ_X86_REGS: ++ case CPT_OBJ_X86_64_REGS: ++ case CPT_OBJ_IA64_REGS: ++ if (restore_registers(tsk, regs, ti, (void*)b, &ri, ctx)) { ++ eprintk_ctx("cannot restore registers: image is corrupted\n"); ++ return -EINVAL; ++ } ++ break; ++ case CPT_OBJ_SIGALTSTACK: { ++ struct cpt_sigaltstack_image *sas; ++ sas = (struct cpt_sigaltstack_image *)b; ++ tsk->sas_ss_sp = sas->cpt_stack; ++ tsk->sas_ss_size = sas->cpt_stacksize; ++ break; ++ } ++ case CPT_OBJ_TASK_AUX: { ++ struct cpt_task_aux_image *ai; ++ ai = (struct cpt_task_aux_image *)b; ++ tsk->robust_list = cpt_ptr_import(ai->cpt_robust_list); ++#ifdef CONFIG_X86_64 ++#ifdef CONFIG_COMPAT ++ if (task_thread_info(tsk)->flags&_TIF_IA32) { ++ tsk->robust_list = (void __user *)NULL; ++ tsk->compat_robust_list = cpt_ptr_import(ai->cpt_robust_list); ++ } ++#endif ++#endif ++ break; ++ } ++ } ++ b = ((void*)b) + b->cpt_next; ++ } ++ ++ if (ri == NULL && !(ti->cpt_state & (EXIT_ZOMBIE|EXIT_DEAD))) { ++ eprintk_ctx("missing register info\n"); ++ return -EINVAL; ++ } ++ ++ if (ti->cpt_ppid != ti->cpt_rppid) { ++ struct task_struct *parent; ++ struct ve_struct *env = set_exec_env(VE_TASK_INFO(tsk)->owner_env); ++ write_lock_irq(&tasklist_lock); ++ parent = find_task_by_vpid(ti->cpt_ppid); ++ if (parent && parent != tsk->parent) { ++ list_add(&tsk->ptrace_list, &tsk->parent->ptrace_children); ++ remove_parent(tsk); ++ tsk->parent = parent; ++ add_parent(tsk); ++ } ++ write_unlock_irq(&tasklist_lock); ++ set_exec_env(env); ++ } ++ ++ tsk->ptrace_message = ti->cpt_ptrace_message; ++ tsk->pn_state = ti->cpt_pn_state; ++ tsk->stopped_state = ti->cpt_stopped_state; ++ task_thread_info(tsk)->flags = ti->cpt_thrflags; ++ ++ /* The image was created with kernel < 2.6.16, while ++ * task hanged in sigsuspend -> do_signal. ++ * ++ * FIXME! This needs more brain efforts... ++ */ ++ if (ti->cpt_sigsuspend_state) { ++ task_thread_info(tsk)->flags |= _TIF_RESTORE_SIGMASK; ++ } ++ ++#ifdef CONFIG_X86_64 ++ task_thread_info(tsk)->flags |= _TIF_FORK | _TIF_RESUME; ++ if (!ti->cpt_64bit) ++ task_thread_info(tsk)->flags |= _TIF_IA32; ++#endif ++ ++#ifdef CONFIG_X86_32 ++ do { ++ if (regs->orig_eax == __NR__newselect && regs->edi) { ++ struct timeval tv; ++ if (access_process_vm(tsk, regs->edi, &tv, ++ sizeof(tv), 0) != sizeof(tv)) { ++ wprintk_ctx("task %d/%d(%s): Error 1 in access_process_vm: edi %ld\n", ++ task_pid_vnr(tsk), tsk->pid, tsk->comm, ++ regs->edi); ++ break; ++ } ++ dprintk_ctx("task %d/%d(%s): Old timeval in newselect: %ld.%ld\n", ++ task_pid_vnr(tsk), tsk->pid, tsk->comm, ++ tv.tv_sec, tv.tv_usec); ++ tv.tv_sec -= ctx->delta_time.tv_sec; ++ if (tv.tv_usec < ctx->delta_time.tv_nsec / 1000) { ++ tv.tv_usec += 1000000 - ctx->delta_time.tv_nsec / 1000; ++ tv.tv_sec--; ++ } else { ++ tv.tv_usec -= ctx->delta_time.tv_nsec / 1000; ++ } ++ if (tv.tv_sec < 0) { ++ tv.tv_sec = 0; ++ tv.tv_usec = 0; ++ } ++ dprintk_ctx("task %d/%d(%s): New timeval in newselect: %ld.%ld\n", ++ task_pid_vnr(tsk), tsk->pid, tsk->comm, ++ tv.tv_sec, tv.tv_usec); ++ if (access_process_vm(tsk, regs->edi, &tv, ++ sizeof(tv), 1) != sizeof(tv)) { ++ wprintk_ctx("task %d/%d(%s): Error 1 in access_process_vm write: edi %ld\n", ++ task_pid_vnr(tsk), tsk->pid, tsk->comm, regs->edi); ++ } ++ ++ } else if (regs->orig_eax == __NR_select && regs->edi) { ++ struct { ++ unsigned long n; ++ fd_set __user *inp, *outp, *exp; ++ struct timeval __user *tvp; ++ } a; ++ struct timeval tv; ++ if (access_process_vm(tsk, regs->ebx, &a, ++ sizeof(a), 0) != sizeof(a)) { ++ wprintk_ctx("task %d: Error 2 in access_process_vm\n", tsk->pid); ++ break; ++ } ++ if (access_process_vm(tsk, (unsigned long)a.tvp, ++ &tv, sizeof(tv), 0) != sizeof(tv)) { ++ wprintk_ctx("task %d: Error 3 in access_process_vm\n", tsk->pid); ++ break; ++ } ++ dprintk_ctx("task %d: Old timeval in select: %ld.%ld\n", ++ tsk->pid, tv.tv_sec, tv.tv_usec); ++ tv.tv_sec -= ctx->delta_time.tv_sec; ++ if (tv.tv_usec < ctx->delta_time.tv_nsec / 1000) { ++ tv.tv_usec += 1000000 - ctx->delta_time.tv_nsec / 1000; ++ tv.tv_sec--; ++ } else { ++ tv.tv_usec -= ctx->delta_time.tv_nsec / 1000; ++ } ++ if (tv.tv_sec < 0) { ++ tv.tv_sec = 0; ++ tv.tv_usec = 0; ++ } ++ dprintk_ctx("task %d: New timeval in select: %ld.%ld\n", ++ tsk->pid, tv.tv_sec, tv.tv_usec); ++ if (access_process_vm(tsk, (unsigned long)a.tvp, ++ &tv, sizeof(tv), 1) != sizeof(tv)) { ++ wprintk_ctx("task %d: Error 3 in access_process_vm write\n", tsk->pid); ++ } ++ } ++ } while (0); ++#endif ++ ++ if (ri && IN_SYSCALL(regs) && IN_ERROR(regs)) { ++ switch (SYSCALL_ERRNO(regs)) { ++ case ERESTARTSYS: ++ case ERESTARTNOINTR: ++ case ERESTARTNOHAND: ++ case ERESTART_RESTARTBLOCK: ++ case EAGAIN: ++ case EINTR: ++ ri->hooks |= (1<pn_state)) { ++ /* ... -> ptrace_notify() ++ * or ++ * ... -> do_signal() -> get_signal_to_deliver() -> ++ * ptrace stop ++ */ ++ tsk->last_siginfo = &ri->last_siginfo; ++ ri->hooks |= (1<last_siginfo, lsi); ++ } ++ ++ tsk->ptrace = ti->cpt_ptrace; ++ tsk->flags = ti->cpt_flags & ~PF_FROZEN; ++ clear_tsk_thread_flag(tsk, TIF_FREEZE); ++ tsk->exit_signal = ti->cpt_exit_signal; ++ ++ if (ri && tsk->stopped_state) { ++ dprintk_ctx("finish_stop\n"); ++ if (ti->cpt_state != TASK_STOPPED) ++ eprintk_ctx("Hellooo, state is %u\n", (unsigned)ti->cpt_state); ++ ri->hooks |= (1<cpt_set_tid || ti->cpt_clear_tid)) { ++ ri->hooks |= (1<tid_ptrs[0] = ti->cpt_clear_tid; ++ ri->tid_ptrs[1] = ti->cpt_set_tid; ++ dprintk_ctx("settids\n"); ++ } ++ ++ if (ri && ri->hooks && ++ !(ti->cpt_state & (EXIT_ZOMBIE|EXIT_DEAD))) { ++ if (try_module_get(THIS_MODULE)) ++ ri->hook = rst_resume_work; ++ } ++ ++ if (ti->cpt_state == TASK_TRACED) ++ tsk->state = TASK_TRACED; ++ else if (ti->cpt_state & (EXIT_ZOMBIE|EXIT_DEAD)) { ++ tsk->signal->it_virt_expires = 0; ++ tsk->signal->it_prof_expires = 0; ++ if (tsk->state != EXIT_DEAD) ++ eprintk_ctx("oops, schedule() did not make us dead\n"); ++ } ++ ++ if (thread_group_leader(tsk) && ++ ti->cpt_it_real_value && ++ !(ti->cpt_state & (EXIT_ZOMBIE|EXIT_DEAD))) { ++ ktime_t val; ++ s64 nsec; ++ ++ nsec = ti->cpt_it_real_value; ++ val.tv64 = 0; ++ ++ if (ctx->image_version < CPT_VERSION_9) ++ nsec *= TICK_NSEC; ++ ++ val = ktime_add_ns(val, nsec - ctx->delta_nsec); ++ if (val.tv64 <= 0) ++ val.tv64 = NSEC_PER_USEC; ++ dprintk("rst itimer " CPT_FID " +%Ld %Lu\n", CPT_TID(tsk), ++ (long long)val.tv64, ++ (unsigned long long)ti->cpt_it_real_value); ++ ++ spin_lock_irq(&tsk->sighand->siglock); ++ if (hrtimer_try_to_cancel(&tsk->signal->real_timer) >= 0) { ++ /* FIXME. Check!!!! */ ++ hrtimer_start(&tsk->signal->real_timer, val, HRTIMER_MODE_REL); ++ } else { ++ wprintk_ctx("Timer clash. Impossible?\n"); ++ } ++ spin_unlock_irq(&tsk->sighand->siglock); ++ ++ dprintk_ctx("itimer " CPT_FID " +%Lu\n", CPT_TID(tsk), ++ (unsigned long long)val.tv64); ++ } ++ ++ module_put(THIS_MODULE); ++ } ++ return 0; ++} +Index: kernel/kernel/cpt/rst_socket.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_socket.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,918 @@ ++/* ++ * ++ * kernel/cpt/rst_socket.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_files.h" ++#include "cpt_socket.h" ++#include "cpt_kernel.h" ++ ++#include "cpt_syscalls.h" ++ ++ ++static int setup_sock_common(struct sock *sk, struct cpt_sock_image *si, ++ loff_t pos, struct cpt_context *ctx) ++{ ++ struct timeval tmptv; ++ ++ if (sk->sk_socket) { ++ sk->sk_socket->flags = si->cpt_ssflags; ++ sk->sk_socket->state = si->cpt_sstate; ++ } ++ sk->sk_reuse = si->cpt_reuse; ++ sk->sk_shutdown = si->cpt_shutdown; ++ sk->sk_userlocks = si->cpt_userlocks; ++ sk->sk_no_check = si->cpt_no_check; ++ sock_reset_flag(sk, SOCK_DBG); ++ if (si->cpt_debug) ++ sock_set_flag(sk, SOCK_DBG); ++ sock_reset_flag(sk, SOCK_RCVTSTAMP); ++ if (si->cpt_rcvtstamp) ++ sock_set_flag(sk, SOCK_RCVTSTAMP); ++ sock_reset_flag(sk, SOCK_LOCALROUTE); ++ if (si->cpt_localroute) ++ sock_set_flag(sk, SOCK_LOCALROUTE); ++ sk->sk_protocol = si->cpt_protocol; ++ sk->sk_err = si->cpt_err; ++ sk->sk_err_soft = si->cpt_err_soft; ++ sk->sk_priority = si->cpt_priority; ++ sk->sk_rcvlowat = si->cpt_rcvlowat; ++ sk->sk_rcvtimeo = si->cpt_rcvtimeo; ++ if (si->cpt_rcvtimeo == CPT_NULL) ++ sk->sk_rcvtimeo = MAX_SCHEDULE_TIMEOUT; ++ sk->sk_sndtimeo = si->cpt_sndtimeo; ++ if (si->cpt_sndtimeo == CPT_NULL) ++ sk->sk_sndtimeo = MAX_SCHEDULE_TIMEOUT; ++ sk->sk_rcvbuf = si->cpt_rcvbuf; ++ sk->sk_sndbuf = si->cpt_sndbuf; ++ sk->sk_bound_dev_if = si->cpt_bound_dev_if; ++ sk->sk_flags = si->cpt_flags; ++ sk->sk_lingertime = si->cpt_lingertime; ++ if (si->cpt_lingertime == CPT_NULL) ++ sk->sk_lingertime = MAX_SCHEDULE_TIMEOUT; ++ sk->sk_peercred.pid = si->cpt_peer_pid; ++ sk->sk_peercred.uid = si->cpt_peer_uid; ++ sk->sk_peercred.gid = si->cpt_peer_gid; ++ cpt_timeval_import(&tmptv, si->cpt_stamp); ++ sk->sk_stamp = timeval_to_ktime(tmptv); ++ return 0; ++} ++ ++static struct file *sock_mapfile(struct socket *sock) ++{ ++ int fd = sock_map_fd(sock); ++ ++ if (fd >= 0) { ++ struct file *file = sock->file; ++ get_file(file); ++ sc_close(fd); ++ return file; ++ } ++ return ERR_PTR(fd); ++} ++ ++/* Assumption is that /tmp exists and writable. ++ * In previous versions we assumed that listen() will autobind ++ * the socket. It does not do this for AF_UNIX by evident reason: ++ * socket in abstract namespace is accessible, unlike socket bound ++ * to deleted FS object. ++ */ ++ ++static int ++select_deleted_name(char * name, cpt_context_t *ctx) ++{ ++ int i; ++ ++ for (i=0; i<100; i++) { ++ struct nameidata nd; ++ unsigned int rnd = net_random(); ++ ++ sprintf(name, "/tmp/SOCK.%08x", rnd); ++ ++ if (path_lookup(name, 0, &nd) != 0) ++ return 0; ++ ++ path_release(&nd); ++ } ++ ++ eprintk_ctx("failed to allocate deleted socket inode\n"); ++ return -ELOOP; ++} ++ ++static int ++bind_unix_socket(struct socket *sock, struct cpt_sock_image *si, ++ cpt_context_t *ctx) ++{ ++ int err; ++ char *name; ++ struct sockaddr* addr; ++ int addrlen; ++ struct sockaddr_un sun; ++ struct nameidata nd; ++ ++ if ((addrlen = si->cpt_laddrlen) <= 2) ++ return 0; ++ ++ nd.dentry = NULL; ++ name = ((char*)si->cpt_laddr) + 2; ++ addr = (struct sockaddr *)si->cpt_laddr; ++ ++ if (name[0]) { ++ if (path_lookup(name, 0, &nd)) ++ nd.dentry = NULL; ++ ++ if (si->cpt_deleted) { ++ if (nd.dentry == NULL && ++ sock->ops->bind(sock, addr, addrlen) == 0) { ++ sc_unlink(name); ++ return 0; ++ } ++ ++ addr = (struct sockaddr*)&sun; ++ addr->sa_family = AF_UNIX; ++ name = ((char*)addr) + 2; ++ err = select_deleted_name(name, ctx); ++ if (err) ++ goto out; ++ addrlen = 2 + strlen(name); ++ } else if (nd.dentry) { ++ if (!S_ISSOCK(nd.dentry->d_inode->i_mode)) { ++ eprintk_ctx("bind_unix_socket: not a socket dentry\n"); ++ err = -EINVAL; ++ goto out; ++ } ++ sc_unlink(name); ++ } ++ } ++ ++ err = sock->ops->bind(sock, addr, addrlen); ++ ++ if (!err && name[0]) { ++ if (nd.dentry) { ++ sc_chown(name, nd.dentry->d_inode->i_uid, ++ nd.dentry->d_inode->i_gid); ++ sc_chmod(name, nd.dentry->d_inode->i_mode); ++ } ++ if (si->cpt_deleted) ++ sc_unlink(name); ++ } ++ ++out: ++ if (nd.dentry) ++ path_release(&nd); ++ return err; ++} ++ ++static int fixup_unix_address(struct socket *sock, struct cpt_sock_image *si, ++ struct cpt_context *ctx) ++{ ++ struct sock *sk = sock->sk; ++ cpt_object_t *obj; ++ struct sock *parent; ++ ++ if (sk->sk_family != AF_UNIX || sk->sk_state == TCP_LISTEN) ++ return 0; ++ ++ if (si->cpt_parent == -1) ++ return bind_unix_socket(sock, si, ctx); ++ ++ obj = lookup_cpt_obj_byindex(CPT_OBJ_SOCKET, si->cpt_parent, ctx); ++ if (!obj) ++ return 0; ++ ++ parent = obj->o_obj; ++ if (unix_sk(parent)->addr) { ++ if (unix_sk(sk)->addr && ++ atomic_dec_and_test(&unix_sk(sk)->addr->refcnt)) ++ kfree(unix_sk(sk)->addr); ++ atomic_inc(&unix_sk(parent)->addr->refcnt); ++ unix_sk(sk)->addr = unix_sk(parent)->addr; ++ } ++ return 0; ++} ++ ++static int generic_restore_queues(struct sock *sk, struct cpt_sock_image *si, ++ loff_t pos, struct cpt_context *ctx) ++{ ++ loff_t endpos; ++ ++ pos = pos + si->cpt_hdrlen; ++ endpos = pos + si->cpt_next; ++ while (pos < endpos) { ++ struct sk_buff *skb; ++ __u32 type; ++ ++ skb = rst_skb(&pos, NULL, &type, ctx); ++ if (IS_ERR(skb)) { ++ if (PTR_ERR(skb) == -EINVAL) { ++ int err; ++ ++ err = rst_sock_attr(&pos, sk, ctx); ++ if (err) ++ return err; ++ } ++ return PTR_ERR(skb); ++ } ++ ++ if (type == CPT_SKB_RQ) { ++ skb_set_owner_r(skb, sk); ++ skb_queue_tail(&sk->sk_receive_queue, skb); ++ } else { ++ wprintk_ctx("strange socket queue type %u\n", type); ++ kfree_skb(skb); ++ } ++ } ++ return 0; ++} ++ ++static int open_socket(cpt_object_t *obj, struct cpt_sock_image *si, ++ struct cpt_context *ctx) ++{ ++ int err; ++ struct socket *sock; ++ struct socket *sock2 = NULL; ++ struct file *file; ++ cpt_object_t *fobj; ++ cpt_object_t *pobj = NULL; ++ ++ err = sock_create_kern(si->cpt_family, si->cpt_type, si->cpt_protocol, ++ &sock); ++ if (err) ++ return err; ++ ++ if (si->cpt_socketpair) { ++ err = sock_create_kern(si->cpt_family, si->cpt_type, ++ si->cpt_protocol, &sock2); ++ if (err) ++ goto err_out; ++ ++ err = sock->ops->socketpair(sock, sock2); ++ if (err < 0) ++ goto err_out; ++ ++ /* Socketpair with a peer outside our environment. ++ * So, we create real half-open pipe and do not worry ++ * about dead end anymore. */ ++ if (si->cpt_peer == -1) { ++ sock_release(sock2); ++ sock2 = NULL; ++ } ++ } ++ ++ cpt_obj_setobj(obj, sock->sk, ctx); ++ ++ if (si->cpt_file != CPT_NULL) { ++ file = sock_mapfile(sock); ++ err = PTR_ERR(file); ++ if (IS_ERR(file)) ++ goto err_out; ++ ++ err = -ENOMEM; ++ ++ obj->o_parent = file; ++ ++ if ((fobj = cpt_object_add(CPT_OBJ_FILE, file, ctx)) == NULL) ++ goto err_out; ++ cpt_obj_setpos(fobj, si->cpt_file, ctx); ++ cpt_obj_setindex(fobj, si->cpt_index, ctx); ++ } ++ ++ if (sock2) { ++ struct file *file2; ++ ++ pobj = lookup_cpt_obj_byindex(CPT_OBJ_SOCKET, si->cpt_peer, ctx); ++ if (!pobj) BUG(); ++ if (pobj->o_obj) BUG(); ++ cpt_obj_setobj(pobj, sock2->sk, ctx); ++ ++ if (pobj->o_ppos != CPT_NULL) { ++ file2 = sock_mapfile(sock2); ++ err = PTR_ERR(file2); ++ if (IS_ERR(file2)) ++ goto err_out; ++ ++ err = -ENOMEM; ++ if ((fobj = cpt_object_add(CPT_OBJ_FILE, file2, ctx)) == NULL) ++ goto err_out; ++ cpt_obj_setpos(fobj, pobj->o_ppos, ctx); ++ cpt_obj_setindex(fobj, si->cpt_peer, ctx); ++ ++ pobj->o_parent = file2; ++ } ++ } ++ ++ setup_sock_common(sock->sk, si, obj->o_pos, ctx); ++ if (sock->sk->sk_family == AF_INET || sock->sk->sk_family == AF_INET6) { ++ int saved_reuse = sock->sk->sk_reuse; ++ ++ inet_sk(sock->sk)->freebind = 1; ++ sock->sk->sk_reuse = 2; ++ if (si->cpt_laddrlen) { ++ err = sock->ops->bind(sock, (struct sockaddr *)&si->cpt_laddr, si->cpt_laddrlen); ++ if (err) { ++ dprintk_ctx("binding failed: %d, do not worry\n", err); ++ } ++ } ++ sock->sk->sk_reuse = saved_reuse; ++ rst_socket_in(si, obj->o_pos, sock->sk, ctx); ++ } else if (sock->sk->sk_family == AF_NETLINK) { ++ struct sockaddr_nl *nl = (struct sockaddr_nl *)&si->cpt_laddr; ++ if (nl->nl_pid) { ++ err = sock->ops->bind(sock, (struct sockaddr *)&si->cpt_laddr, si->cpt_laddrlen); ++ if (err) { ++ eprintk_ctx("AF_NETLINK binding failed: %d\n", err); ++ } ++ } ++ if (si->cpt_raddrlen && nl->nl_pid) { ++ err = sock->ops->connect(sock, (struct sockaddr *)&si->cpt_raddr, si->cpt_raddrlen, O_NONBLOCK); ++ if (err) { ++ eprintk_ctx("oops, AF_NETLINK connect failed: %d\n", err); ++ } ++ } ++ generic_restore_queues(sock->sk, si, obj->o_pos, ctx); ++ } else if (sock->sk->sk_family == PF_PACKET) { ++ struct sockaddr_ll *ll = (struct sockaddr_ll *)&si->cpt_laddr; ++ if (ll->sll_protocol || ll->sll_ifindex) { ++ int alen = si->cpt_laddrlen; ++ if (alen < sizeof(struct sockaddr_ll)) ++ alen = sizeof(struct sockaddr_ll); ++ err = sock->ops->bind(sock, (struct sockaddr *)&si->cpt_laddr, alen); ++ if (err) { ++ eprintk_ctx("AF_PACKET binding failed: %d\n", err); ++ } ++ } ++ generic_restore_queues(sock->sk, si, obj->o_pos, ctx); ++ } ++ fixup_unix_address(sock, si, ctx); ++ ++ if (sock2) { ++ err = rst_get_object(CPT_OBJ_SOCKET, pobj->o_pos, si, ctx); ++ if (err) ++ return err; ++ setup_sock_common(sock2->sk, si, pobj->o_pos, ctx); ++ fixup_unix_address(sock2, si, ctx); ++ } ++ ++ if ((sock->sk->sk_family == AF_INET || sock->sk->sk_family == AF_INET6) ++ && (int)si->cpt_parent != -1) { ++ cpt_object_t *lobj = lookup_cpt_obj_byindex(CPT_OBJ_SOCKET, si->cpt_parent, ctx); ++ if (lobj && cpt_attach_accept(lobj->o_obj, sock->sk, ctx) == 0) ++ sock->sk = NULL; ++ } ++ ++ ++ if (si->cpt_file == CPT_NULL && sock->sk && ++ sock->sk->sk_family == AF_INET) { ++ struct sock *sk = sock->sk; ++ ++ if (sk) { ++ sock->sk = NULL; ++ ++ local_bh_disable(); ++ bh_lock_sock(sk); ++ if (sock_owned_by_user(sk)) ++ eprintk_ctx("oops, sock is locked by user\n"); ++ ++ sock_hold(sk); ++ sock_orphan(sk); ++ ub_inc_orphan_count(sk); ++ bh_unlock_sock(sk); ++ local_bh_enable(); ++ sock_put(sk); ++ dprintk_ctx("orphaning socket %p\n", sk); ++ } ++ } ++ ++ if (si->cpt_file == CPT_NULL && sock->sk == NULL) ++ sock_release(sock); ++ ++ return 0; ++ ++err_out: ++ if (sock2) ++ sock_release(sock2); ++ sock_release(sock); ++ return err; ++} ++ ++static int open_listening_socket(loff_t pos, struct cpt_sock_image *si, ++ struct cpt_context *ctx) ++{ ++ int err; ++ struct socket *sock; ++ struct file *file; ++ cpt_object_t *obj, *fobj; ++ ++ err = sock_create_kern(si->cpt_family, si->cpt_type, si->cpt_protocol, ++ &sock); ++ if (err) { ++ eprintk_ctx("open_listening_socket: sock_create_kern: %d\n", err); ++ return err; ++ } ++ ++ sock->sk->sk_reuse = 2; ++ sock->sk->sk_bound_dev_if = si->cpt_bound_dev_if; ++ ++ if (sock->sk->sk_family == AF_UNIX) { ++ err = bind_unix_socket(sock, si, ctx); ++ } else if (si->cpt_laddrlen) { ++ if (sock->sk->sk_family == AF_INET || sock->sk->sk_family == AF_INET6) ++ inet_sk(sock->sk)->freebind = 1; ++ ++ err = sock->ops->bind(sock, (struct sockaddr *)&si->cpt_laddr, si->cpt_laddrlen); ++ ++ if (err) { ++ eprintk_ctx("open_listening_socket: bind: %d\n", err); ++ goto err_out; ++ } ++ } ++ ++ err = sock->ops->listen(sock, si->cpt_max_ack_backlog); ++ if (err) { ++ eprintk_ctx("open_listening_socket: listen: %d, %Ld, %d\n", err, pos, si->cpt_deleted); ++ goto err_out; ++ } ++ ++ /* Now we may access socket body directly and fixup all the things. */ ++ ++ file = sock_mapfile(sock); ++ err = PTR_ERR(file); ++ if (IS_ERR(file)) { ++ eprintk_ctx("open_listening_socket: map: %d\n", err); ++ goto err_out; ++ } ++ ++ err = -ENOMEM; ++ if ((fobj = cpt_object_add(CPT_OBJ_FILE, file, ctx)) == NULL) ++ goto err_out; ++ if ((obj = cpt_object_add(CPT_OBJ_SOCKET, sock->sk, ctx)) == NULL) ++ goto err_out; ++ cpt_obj_setpos(obj, pos, ctx); ++ cpt_obj_setindex(obj, si->cpt_index, ctx); ++ obj->o_parent = file; ++ cpt_obj_setpos(fobj, si->cpt_file, ctx); ++ cpt_obj_setindex(fobj, si->cpt_index, ctx); ++ ++ setup_sock_common(sock->sk, si, pos, ctx); ++ ++ if (si->cpt_family == AF_INET || si->cpt_family == AF_INET6) ++ rst_restore_synwait_queue(sock->sk, si, pos, ctx); ++ ++ return 0; ++ ++err_out: ++ sock_release(sock); ++ return err; ++} ++ ++static int ++rst_sock_attr_mcfilter(loff_t *pos_p, struct sock *sk, cpt_context_t *ctx) ++{ ++ int err; ++ loff_t pos = *pos_p; ++ struct cpt_sockmc_image v; ++ ++ err = rst_get_object(CPT_OBJ_SOCK_MCADDR, pos, &v, ctx); ++ if (err) ++ return err; ++ ++ *pos_p += v.cpt_next; ++ ++ if (v.cpt_family == AF_INET) ++ return rst_sk_mcfilter_in(sk, &v, pos, ctx); ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ else if (v.cpt_family == AF_INET6) ++ return rst_sk_mcfilter_in6(sk, &v, pos, ctx); ++#endif ++ else ++ return -EAFNOSUPPORT; ++} ++ ++ ++static int ++rst_sock_attr_skfilter(loff_t *pos_p, struct sock *sk, cpt_context_t *ctx) ++{ ++ int err; ++ struct sk_filter *fp, *old_fp; ++ loff_t pos = *pos_p; ++ struct cpt_obj_bits v; ++ ++ err = rst_get_object(CPT_OBJ_SKFILTER, pos, &v, ctx); ++ if (err) ++ return err; ++ ++ *pos_p += v.cpt_next; ++ ++ if (v.cpt_size % sizeof(struct sock_filter)) ++ return -EINVAL; ++ ++ fp = sock_kmalloc(sk, v.cpt_size+sizeof(*fp), GFP_KERNEL_UBC); ++ if (fp == NULL) ++ return -ENOMEM; ++ atomic_set(&fp->refcnt, 1); ++ fp->len = v.cpt_size/sizeof(struct sock_filter); ++ ++ err = ctx->pread(fp->insns, v.cpt_size, ctx, pos+v.cpt_hdrlen); ++ if (err) { ++ sk_filter_uncharge(sk, fp); ++ return err; ++ } ++ ++ old_fp = sk->sk_filter; ++ sk->sk_filter = fp; ++ if (old_fp) ++ sk_filter_uncharge(sk, old_fp); ++ return 0; ++} ++ ++ ++int rst_sock_attr(loff_t *pos_p, struct sock *sk, cpt_context_t *ctx) ++{ ++ int err; ++ loff_t pos = *pos_p; ++ ++ err = rst_sock_attr_skfilter(pos_p, sk, ctx); ++ if (err && pos == *pos_p) ++ err = rst_sock_attr_mcfilter(pos_p, sk, ctx); ++ return err; ++} ++ ++struct sk_buff * rst_skb(loff_t *pos_p, __u32 *owner, __u32 *queue, struct cpt_context *ctx) ++{ ++ int err; ++ struct sk_buff *skb; ++ struct cpt_skb_image v; ++ loff_t pos = *pos_p; ++ struct scm_fp_list *fpl = NULL; ++ struct timeval tmptv; ++ ++ err = rst_get_object(CPT_OBJ_SKB, pos, &v, ctx); ++ if (err) ++ return ERR_PTR(err); ++ *pos_p = pos + v.cpt_next; ++ ++ if (owner) ++ *owner = v.cpt_owner; ++ if (queue) ++ *queue = v.cpt_queue; ++ ++ skb = alloc_skb(v.cpt_len + v.cpt_hspace + v.cpt_tspace, GFP_KERNEL); ++ if (skb == NULL) ++ return ERR_PTR(-ENOMEM); ++ skb_reserve(skb, v.cpt_hspace); ++ skb_put(skb, v.cpt_len); ++#ifdef NET_SKBUFF_DATA_USES_OFFSET ++ skb->transport_header = v.cpt_h; ++ skb->network_header = v.cpt_nh; ++ skb->mac_header = v.cpt_mac; ++#else ++ skb->transport_header = skb->head + v.cpt_h; ++ skb->network_header = skb->head + v.cpt_nh; ++ skb->mac_header = skb->head + v.cpt_mac; ++#endif ++ BUILD_BUG_ON(sizeof(skb->cb) < sizeof(v.cpt_cb)); ++ memcpy(skb->cb, v.cpt_cb, sizeof(v.cpt_cb)); ++ skb->mac_len = v.cpt_mac_len; ++ ++ skb->csum = v.cpt_csum; ++ skb->local_df = v.cpt_local_df; ++ skb->pkt_type = v.cpt_pkt_type; ++ skb->ip_summed = v.cpt_ip_summed; ++ skb->priority = v.cpt_priority; ++ skb->protocol = v.cpt_protocol; ++ cpt_timeval_import(&tmptv, v.cpt_stamp); ++ skb->tstamp = timeval_to_ktime(tmptv); ++ ++ skb_shinfo(skb)->gso_segs = v.cpt_gso_segs; ++ skb_shinfo(skb)->gso_size = v.cpt_gso_size; ++ if (ctx->image_version == 0) { ++ skb_shinfo(skb)->gso_segs = 1; ++ skb_shinfo(skb)->gso_size = 0; ++ } ++ ++ if (v.cpt_next > v.cpt_hdrlen) { ++ pos = pos + v.cpt_hdrlen; ++ while (pos < *pos_p) { ++ union { ++ struct cpt_obj_bits b; ++ struct cpt_fd_image f; ++ } u; ++ ++ err = rst_get_object(-1, pos, &u, ctx); ++ if (err) { ++ kfree_skb(skb); ++ return ERR_PTR(err); ++ } ++ if (u.b.cpt_object == CPT_OBJ_BITS) { ++ if (u.b.cpt_size != v.cpt_hspace + skb->len) { ++ eprintk_ctx("invalid skb image %u != %u + %u\n", u.b.cpt_size, v.cpt_hspace, skb->len); ++ kfree_skb(skb); ++ return ERR_PTR(-EINVAL); ++ } ++ ++ err = ctx->pread(skb->head, u.b.cpt_size, ctx, pos+u.b.cpt_hdrlen); ++ if (err) { ++ kfree_skb(skb); ++ return ERR_PTR(err); ++ } ++ } else if (u.f.cpt_object == CPT_OBJ_FILEDESC) { ++ if (!fpl) { ++ fpl = kmalloc(sizeof(struct scm_fp_list), ++ GFP_KERNEL_UBC); ++ if (!fpl) { ++ kfree_skb(skb); ++ return ERR_PTR(-ENOMEM); ++ } ++ fpl->count = 0; ++ UNIXCB(skb).fp = fpl; ++ } ++ fpl->fp[fpl->count] = rst_file(u.f.cpt_file, -1, ctx); ++ if (!IS_ERR(fpl->fp[fpl->count])) ++ fpl->count++; ++ } ++ pos += u.b.cpt_next; ++ } ++ } ++ ++ return skb; ++} ++ ++static int restore_unix_rqueue(struct sock *sk, struct cpt_sock_image *si, ++ loff_t pos, struct cpt_context *ctx) ++{ ++ loff_t endpos; ++ ++ pos = pos + si->cpt_hdrlen; ++ endpos = pos + si->cpt_next; ++ while (pos < endpos) { ++ struct sk_buff *skb; ++ struct sock *owner_sk; ++ __u32 owner; ++ ++ skb = rst_skb(&pos, &owner, NULL, ctx); ++ if (IS_ERR(skb)) { ++ if (PTR_ERR(skb) == -EINVAL) { ++ int err; ++ ++ err = rst_sock_attr(&pos, sk, ctx); ++ if (err) ++ return err; ++ } ++ return PTR_ERR(skb); ++ } ++ ++ owner_sk = unix_peer(sk); ++ if (owner != -1) { ++ cpt_object_t *pobj; ++ pobj = lookup_cpt_obj_byindex(CPT_OBJ_SOCKET, owner, ctx); ++ if (pobj == NULL) { ++ eprintk_ctx("orphan af_unix skb?\n"); ++ kfree_skb(skb); ++ continue; ++ } ++ owner_sk = pobj->o_obj; ++ } ++ if (owner_sk == NULL) { ++ dprintk_ctx("orphan af_unix skb 2?\n"); ++ kfree_skb(skb); ++ continue; ++ } ++ skb_set_owner_w(skb, owner_sk); ++ if (UNIXCB(skb).fp) ++ skb->destructor = unix_destruct_fds; ++ skb_queue_tail(&sk->sk_receive_queue, skb); ++ if (sk->sk_state == TCP_LISTEN) { ++ struct socket *sock = skb->sk->sk_socket; ++ if (sock == NULL) BUG(); ++ if (sock->file) BUG(); ++ skb->sk->sk_socket = NULL; ++ skb->sk->sk_sleep = NULL; ++ sock->sk = NULL; ++ sock_release(sock); ++ } ++ } ++ return 0; ++} ++ ++ ++/* All the sockets are created before we start to open files */ ++ ++int rst_sockets(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_SOCKET]; ++ loff_t endsec; ++ cpt_object_t *obj; ++ struct cpt_section_hdr h; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) { ++ eprintk_ctx("rst_sockets: ctx->pread: %d\n", err); ++ return err; ++ } ++ if (h.cpt_section != CPT_SECT_SOCKET || h.cpt_hdrlen < sizeof(h)) { ++ eprintk_ctx("rst_sockets: hdr err\n"); ++ return -EINVAL; ++ } ++ ++ /* The first pass: we create socket index and open listening sockets. */ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ struct cpt_sock_image *sbuf = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_SOCKET, sec, sbuf, ctx); ++ if (err) { ++ eprintk_ctx("rst_sockets: rst_get_object: %d\n", err); ++ cpt_release_buf(ctx); ++ return err; ++ } ++ if (sbuf->cpt_state == TCP_LISTEN) { ++ err = open_listening_socket(sec, sbuf, ctx); ++ cpt_release_buf(ctx); ++ if (err) { ++ eprintk_ctx("rst_sockets: open_listening_socket: %d\n", err); ++ return err; ++ } ++ } else { ++ cpt_release_buf(ctx); ++ obj = alloc_cpt_object(GFP_KERNEL, ctx); ++ if (obj == NULL) ++ return -ENOMEM; ++ cpt_obj_setindex(obj, sbuf->cpt_index, ctx); ++ cpt_obj_setpos(obj, sec, ctx); ++ obj->o_ppos = sbuf->cpt_file; ++ intern_cpt_object(CPT_OBJ_SOCKET, obj, ctx); ++ } ++ sec += sbuf->cpt_next; ++ } ++ ++ /* Pass 2: really restore sockets */ ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ struct cpt_sock_image *sbuf; ++ if (obj->o_obj != NULL) ++ continue; ++ sbuf = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_SOCKET, obj->o_pos, sbuf, ctx); ++ if (err) { ++ eprintk_ctx("rst_sockets: rst_get_object: %d\n", err); ++ cpt_release_buf(ctx); ++ return err; ++ } ++ if (sbuf->cpt_state == TCP_LISTEN) BUG(); ++ err = open_socket(obj, sbuf, ctx); ++ cpt_release_buf(ctx); ++ if (err) { ++ eprintk_ctx("rst_sockets: open_socket: %d\n", err); ++ return err; ++ } ++ } ++ ++ return 0; ++} ++ ++int rst_orphans(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_ORPHANS]; ++ loff_t endsec; ++ cpt_object_t *obj; ++ struct cpt_section_hdr h; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_ORPHANS || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ struct cpt_sock_image *sbuf = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_SOCKET, sec, sbuf, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ obj = alloc_cpt_object(GFP_KERNEL, ctx); ++ if (obj == NULL) { ++ cpt_release_buf(ctx); ++ return -ENOMEM; ++ } ++ obj->o_pos = sec; ++ obj->o_ppos = sbuf->cpt_file; ++ err = open_socket(obj, sbuf, ctx); ++ dprintk_ctx("Restoring orphan: %d\n", err); ++ free_cpt_object(obj, ctx); ++ cpt_release_buf(ctx); ++ if (err) ++ return err; ++ sec += sbuf->cpt_next; ++ } ++ ++ return 0; ++} ++ ++ ++/* Pass 3: I understand, this is not funny already :-), ++ * but we have to do another pass to establish links between ++ * not-paired AF_UNIX SOCK_DGRAM sockets and to restore AF_UNIX ++ * skb queues with proper skb->sk links. ++ * ++ * This could be made at the end of rst_sockets(), but we defer ++ * restoring af_unix queues up to the end of restoring files to ++ * make restoring passed FDs cleaner. ++ */ ++ ++int rst_sockets_complete(struct cpt_context *ctx) ++{ ++ int err; ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ struct cpt_sock_image *sbuf; ++ struct sock *sk = obj->o_obj; ++ struct sock *peer; ++ ++ if (!sk) BUG(); ++ ++ if (sk->sk_family != AF_UNIX) ++ continue; ++ ++ sbuf = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_SOCKET, obj->o_pos, sbuf, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ ++ if (sbuf->cpt_next > sbuf->cpt_hdrlen) ++ restore_unix_rqueue(sk, sbuf, obj->o_pos, ctx); ++ ++ cpt_release_buf(ctx); ++ ++ if (sk->sk_type == SOCK_DGRAM && unix_peer(sk) == NULL) { ++ cpt_object_t *pobj; ++ ++ sbuf = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_SOCKET, obj->o_pos, sbuf, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ ++ if (sbuf->cpt_peer != -1) { ++ pobj = lookup_cpt_obj_byindex(CPT_OBJ_SOCKET, sbuf->cpt_peer, ctx); ++ if (pobj) { ++ peer = pobj->o_obj; ++ sock_hold(peer); ++ unix_peer(sk) = peer; ++ } ++ } ++ cpt_release_buf(ctx); ++ } ++ } ++ ++ rst_orphans(ctx); ++ ++ return 0; ++} ++ +Index: kernel/kernel/cpt/rst_socket_in.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_socket_in.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,487 @@ ++/* ++ * ++ * kernel/cpt/rst_socket_in.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_socket.h" ++#include "cpt_kernel.h" ++ ++static inline unsigned long jiffies_import(__u32 tmo) ++{ ++ __s32 delta = tmo; ++ return jiffies + (long)delta; ++} ++ ++static inline __u32 tcp_jiffies_import(__u32 tmo) ++{ ++ return ((__u32)jiffies) + tmo; ++} ++ ++ ++static int restore_queues(struct sock *sk, struct cpt_sock_image *si, ++ loff_t pos, struct cpt_context *ctx) ++{ ++ loff_t endpos; ++ ++ pos = pos + si->cpt_hdrlen; ++ endpos = pos + si->cpt_next; ++ while (pos < endpos) { ++ struct sk_buff *skb; ++ __u32 type; ++ ++ skb = rst_skb(&pos, NULL, &type, ctx); ++ if (IS_ERR(skb)) { ++ if (PTR_ERR(skb) == -EINVAL) { ++ int err; ++ ++ err = rst_sock_attr(&pos, sk, ctx); ++ if (err) ++ return err; ++ } ++ return PTR_ERR(skb); ++ } ++ ++ if (sk->sk_type == SOCK_STREAM) { ++ if (type == CPT_SKB_RQ) { ++ sk_stream_set_owner_r(skb, sk); ++ ub_tcprcvbuf_charge_forced(sk, skb); ++ skb_queue_tail(&sk->sk_receive_queue, skb); ++ } else if (type == CPT_SKB_OFOQ) { ++ struct tcp_sock *tp = tcp_sk(sk); ++ sk_stream_set_owner_r(skb, sk); ++ ub_tcprcvbuf_charge_forced(sk, skb); ++ skb_queue_tail(&tp->out_of_order_queue, skb); ++ } else if (type == CPT_SKB_WQ) { ++ sk->sk_wmem_queued += skb->truesize; ++ sk->sk_forward_alloc -= skb->truesize; ++ ub_tcpsndbuf_charge_forced(sk, skb); ++ skb_queue_tail(&sk->sk_write_queue, skb); ++ } else { ++ wprintk_ctx("strange stream queue type %u\n", type); ++ kfree_skb(skb); ++ } ++ } else { ++ if (type == CPT_SKB_RQ) { ++ skb_set_owner_r(skb, sk); ++ skb_queue_tail(&sk->sk_receive_queue, skb); ++ } else if (type == CPT_SKB_WQ) { ++ struct inet_sock *inet = inet_sk(sk); ++ if (inet->cork.fragsize) { ++ skb_set_owner_w(skb, sk); ++ skb_queue_tail(&sk->sk_write_queue, skb); ++ } else { ++ eprintk_ctx("cork skb is dropped\n"); ++ kfree_skb(skb); ++ } ++ } else { ++ wprintk_ctx("strange dgram queue type %u\n", type); ++ kfree_skb(skb); ++ } ++ } ++ } ++ return 0; ++} ++ ++static struct sock *find_parent(__u16 sport, cpt_context_t *ctx) ++{ ++ cpt_object_t *obj; ++ for_each_object(obj, CPT_OBJ_SOCKET) { ++ struct sock *sk = obj->o_obj; ++ if (sk && ++ sk->sk_state == TCP_LISTEN && ++ (sk->sk_family == AF_INET || sk->sk_family == AF_INET6) && ++ inet_sk(sk)->sport == sport) ++ return sk; ++ } ++ return NULL; ++} ++ ++static int rst_socket_tcp(struct cpt_sock_image *si, loff_t pos, struct sock *sk, ++ struct cpt_context *ctx) ++{ ++ struct tcp_sock *tp = tcp_sk(sk); ++ struct sk_buff *skb; ++ tp->pred_flags = si->cpt_pred_flags; ++ tp->rcv_nxt = si->cpt_rcv_nxt; ++ tp->snd_nxt = si->cpt_snd_nxt; ++ tp->snd_una = si->cpt_snd_una; ++ tp->snd_sml = si->cpt_snd_sml; ++ tp->rcv_tstamp = tcp_jiffies_import(si->cpt_rcv_tstamp); ++ tp->lsndtime = tcp_jiffies_import(si->cpt_lsndtime); ++ tp->tcp_header_len = si->cpt_tcp_header_len; ++ inet_csk(sk)->icsk_ack.pending = si->cpt_ack_pending; ++ inet_csk(sk)->icsk_ack.quick = si->cpt_quick; ++ inet_csk(sk)->icsk_ack.pingpong = si->cpt_pingpong; ++ inet_csk(sk)->icsk_ack.blocked = si->cpt_blocked; ++ inet_csk(sk)->icsk_ack.ato = si->cpt_ato; ++ inet_csk(sk)->icsk_ack.timeout = jiffies_import(si->cpt_ack_timeout); ++ inet_csk(sk)->icsk_ack.lrcvtime = tcp_jiffies_import(si->cpt_lrcvtime); ++ inet_csk(sk)->icsk_ack.last_seg_size = si->cpt_last_seg_size; ++ inet_csk(sk)->icsk_ack.rcv_mss = si->cpt_rcv_mss; ++ tp->snd_wl1 = si->cpt_snd_wl1; ++ tp->snd_wnd = si->cpt_snd_wnd; ++ tp->max_window = si->cpt_max_window; ++ inet_csk(sk)->icsk_pmtu_cookie = si->cpt_pmtu_cookie; ++ tp->mss_cache = si->cpt_mss_cache; ++ tp->rx_opt.mss_clamp = si->cpt_mss_clamp; ++ inet_csk(sk)->icsk_ext_hdr_len = si->cpt_ext_header_len; ++ inet_csk(sk)->icsk_ca_state = si->cpt_ca_state; ++ inet_csk(sk)->icsk_retransmits = si->cpt_retransmits; ++ tp->reordering = si->cpt_reordering; ++ tp->frto_counter = si->cpt_frto_counter; ++ tp->frto_highmark = si->cpt_frto_highmark; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10) ++ // // tp->adv_cong = si->cpt_adv_cong; ++#endif ++ inet_csk(sk)->icsk_accept_queue.rskq_defer_accept = si->cpt_defer_accept; ++ inet_csk(sk)->icsk_backoff = si->cpt_backoff; ++ tp->srtt = si->cpt_srtt; ++ tp->mdev = si->cpt_mdev; ++ tp->mdev_max = si->cpt_mdev_max; ++ tp->rttvar = si->cpt_rttvar; ++ tp->rtt_seq = si->cpt_rtt_seq; ++ inet_csk(sk)->icsk_rto = si->cpt_rto; ++ tp->packets_out = si->cpt_packets_out; ++ tp->retrans_out = si->cpt_retrans_out; ++ tp->lost_out = si->cpt_lost_out; ++ tp->sacked_out = si->cpt_sacked_out; ++ tp->fackets_out = si->cpt_fackets_out; ++ tp->snd_ssthresh = si->cpt_snd_ssthresh; ++ tp->snd_cwnd = si->cpt_snd_cwnd; ++ tp->snd_cwnd_cnt = si->cpt_snd_cwnd_cnt; ++ tp->snd_cwnd_clamp = si->cpt_snd_cwnd_clamp; ++ tp->snd_cwnd_used = si->cpt_snd_cwnd_used; ++ tp->snd_cwnd_stamp = tcp_jiffies_import(si->cpt_snd_cwnd_stamp); ++ inet_csk(sk)->icsk_timeout = tcp_jiffies_import(si->cpt_timeout); ++ tp->rcv_wnd = si->cpt_rcv_wnd; ++ tp->rcv_wup = si->cpt_rcv_wup; ++ tp->write_seq = si->cpt_write_seq; ++ tp->pushed_seq = si->cpt_pushed_seq; ++ tp->copied_seq = si->cpt_copied_seq; ++ tp->rx_opt.tstamp_ok = si->cpt_tstamp_ok; ++ tp->rx_opt.wscale_ok = si->cpt_wscale_ok; ++ tp->rx_opt.sack_ok = si->cpt_sack_ok; ++ tp->rx_opt.saw_tstamp = si->cpt_saw_tstamp; ++ tp->rx_opt.snd_wscale = si->cpt_snd_wscale; ++ tp->rx_opt.rcv_wscale = si->cpt_rcv_wscale; ++ tp->nonagle = si->cpt_nonagle; ++ tp->keepalive_probes = si->cpt_keepalive_probes; ++ tp->rx_opt.rcv_tsval = si->cpt_rcv_tsval; ++ tp->rx_opt.rcv_tsecr = si->cpt_rcv_tsecr; ++ tp->rx_opt.ts_recent = si->cpt_ts_recent; ++ tp->rx_opt.ts_recent_stamp = si->cpt_ts_recent_stamp; ++ tp->rx_opt.user_mss = si->cpt_user_mss; ++ tp->rx_opt.dsack = si->cpt_dsack; ++ tp->rx_opt.eff_sacks = si->cpt_num_sacks; ++ tp->duplicate_sack[0].start_seq = si->cpt_sack_array[0]; ++ tp->duplicate_sack[0].end_seq = si->cpt_sack_array[1]; ++ tp->selective_acks[0].start_seq = si->cpt_sack_array[2]; ++ tp->selective_acks[0].end_seq = si->cpt_sack_array[3]; ++ tp->selective_acks[1].start_seq = si->cpt_sack_array[4]; ++ tp->selective_acks[1].end_seq = si->cpt_sack_array[5]; ++ tp->selective_acks[2].start_seq = si->cpt_sack_array[6]; ++ tp->selective_acks[2].end_seq = si->cpt_sack_array[7]; ++ tp->selective_acks[3].start_seq = si->cpt_sack_array[8]; ++ tp->selective_acks[3].end_seq = si->cpt_sack_array[9]; ++ ++ tp->window_clamp = si->cpt_window_clamp; ++ tp->rcv_ssthresh = si->cpt_rcv_ssthresh; ++ inet_csk(sk)->icsk_probes_out = si->cpt_probes_out; ++ tp->rx_opt.num_sacks = si->cpt_num_sacks; ++ tp->advmss = si->cpt_advmss; ++ inet_csk(sk)->icsk_syn_retries = si->cpt_syn_retries; ++ tp->ecn_flags = si->cpt_ecn_flags; ++ tp->prior_ssthresh = si->cpt_prior_ssthresh; ++ tp->high_seq = si->cpt_high_seq; ++ tp->retrans_stamp = si->cpt_retrans_stamp; ++ tp->undo_marker = si->cpt_undo_marker; ++ tp->undo_retrans = si->cpt_undo_retrans; ++ tp->urg_seq = si->cpt_urg_seq; ++ tp->urg_data = si->cpt_urg_data; ++ inet_csk(sk)->icsk_pending = si->cpt_pending; ++ tp->urg_mode = si->cpt_urg_mode; ++ tp->snd_up = si->cpt_snd_up; ++ tp->keepalive_time = si->cpt_keepalive_time; ++ tp->keepalive_intvl = si->cpt_keepalive_intvl; ++ tp->linger2 = si->cpt_linger2; ++ ++ sk->sk_send_head = NULL; ++ for (skb = skb_peek(&sk->sk_write_queue); ++ skb && skb != (struct sk_buff*)&sk->sk_write_queue; ++ skb = skb->next) { ++ if (!after(tp->snd_nxt, TCP_SKB_CB(skb)->seq)) { ++ sk->sk_send_head = skb; ++ break; ++ } ++ } ++ ++ if (sk->sk_state != TCP_CLOSE && sk->sk_state != TCP_LISTEN) { ++ struct inet_sock *inet = inet_sk(sk); ++ if (inet->num == 0) { ++ cpt_object_t *lobj = NULL; ++ ++ if ((int)si->cpt_parent != -1) ++ lobj = lookup_cpt_obj_byindex(CPT_OBJ_SOCKET, si->cpt_parent, ctx); ++ ++ if (lobj && lobj->o_obj) { ++ inet->num = ntohs(inet->sport); ++ local_bh_disable(); ++ __inet_inherit_port(&tcp_hashinfo, lobj->o_obj, sk); ++ local_bh_enable(); ++ dprintk_ctx("port inherited from parent\n"); ++ } else { ++ struct sock *lsk = find_parent(inet->sport, ctx); ++ if (lsk) { ++ inet->num = ntohs(inet->sport); ++ local_bh_disable(); ++ __inet_inherit_port(&tcp_hashinfo, lsk, sk); ++ local_bh_enable(); ++ dprintk_ctx("port inherited\n"); ++ } else { ++ eprintk_ctx("we are kinda lost...\n"); ++ } ++ } ++ } ++ ++ sk->sk_prot->hash(sk); ++ ++ if (inet_csk(sk)->icsk_ack.pending&ICSK_ACK_TIMER) ++ sk_reset_timer(sk, &inet_csk(sk)->icsk_delack_timer, inet_csk(sk)->icsk_ack.timeout); ++ if (inet_csk(sk)->icsk_pending) ++ sk_reset_timer(sk, &inet_csk(sk)->icsk_retransmit_timer, ++ inet_csk(sk)->icsk_timeout); ++ if (sock_flag(sk, SOCK_KEEPOPEN)) { ++ unsigned long expires = jiffies_import(si->cpt_ka_timeout); ++ if (time_after(jiffies, expires)) ++ expires = jiffies + HZ; ++ sk_reset_timer(sk, &sk->sk_timer, expires); ++ } ++ } ++ ++ return 0; ++} ++ ++ ++int rst_socket_in(struct cpt_sock_image *si, loff_t pos, struct sock *sk, ++ struct cpt_context *ctx) ++{ ++ struct inet_sock *inet = inet_sk(sk); ++ ++ lock_sock(sk); ++ ++ sk->sk_state = si->cpt_state; ++ ++ inet->daddr = si->cpt_daddr; ++ inet->dport = si->cpt_dport; ++ inet->saddr = si->cpt_saddr; ++ inet->rcv_saddr = si->cpt_rcv_saddr; ++ inet->sport = si->cpt_sport; ++ inet->uc_ttl = si->cpt_uc_ttl; ++ inet->tos = si->cpt_tos; ++ inet->cmsg_flags = si->cpt_cmsg_flags; ++ inet->mc_index = si->cpt_mc_index; ++ inet->mc_addr = si->cpt_mc_addr; ++ inet->hdrincl = si->cpt_hdrincl; ++ inet->mc_ttl = si->cpt_mc_ttl; ++ inet->mc_loop = si->cpt_mc_loop; ++ inet->pmtudisc = si->cpt_pmtudisc; ++ inet->recverr = si->cpt_recverr; ++ inet->freebind = si->cpt_freebind; ++ inet->id = si->cpt_idcounter; ++ ++ inet->cork.flags = si->cpt_cork_flags; ++ inet->cork.fragsize = si->cpt_cork_fragsize; ++ inet->cork.length = si->cpt_cork_length; ++ inet->cork.addr = si->cpt_cork_addr; ++ inet->cork.fl.fl4_src = si->cpt_cork_saddr; ++ inet->cork.fl.fl4_dst = si->cpt_cork_daddr; ++ inet->cork.fl.oif = si->cpt_cork_oif; ++ if (inet->cork.fragsize) { ++ if (ip_route_output_key(&inet->cork.rt, &inet->cork.fl)) { ++ eprintk_ctx("failed to restore cork route\n"); ++ inet->cork.fragsize = 0; ++ } ++ } ++ ++ if (sk->sk_type == SOCK_DGRAM && sk->sk_protocol == IPPROTO_UDP) { ++ struct udp_sock *up = udp_sk(sk); ++ up->pending = si->cpt_udp_pending; ++ up->corkflag = si->cpt_udp_corkflag; ++ up->encap_type = si->cpt_udp_encap; ++ up->len = si->cpt_udp_len; ++ } ++ ++ if (sk->sk_family == AF_INET6) { ++ struct ipv6_pinfo *np = inet6_sk(sk); ++ ++ memcpy(&np->saddr, si->cpt_saddr6, 16); ++ memcpy(&np->rcv_saddr, si->cpt_rcv_saddr6, 16); ++ memcpy(&np->daddr, si->cpt_daddr6, 16); ++ np->flow_label = si->cpt_flow_label6; ++ np->frag_size = si->cpt_frag_size6; ++ np->hop_limit = si->cpt_hop_limit6; ++ np->mcast_hops = si->cpt_mcast_hops6; ++ np->mcast_oif = si->cpt_mcast_oif6; ++ np->rxopt.all = si->cpt_rxopt6; ++ np->mc_loop = si->cpt_mc_loop6; ++ np->recverr = si->cpt_recverr6; ++ np->sndflow = si->cpt_sndflow6; ++ np->pmtudisc = si->cpt_pmtudisc6; ++ np->ipv6only = si->cpt_ipv6only6; ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++ if (si->cpt_mapped) { ++ extern struct inet_connection_sock_af_ops ipv6_mapped; ++ if (sk->sk_type == SOCK_STREAM && ++ sk->sk_protocol == IPPROTO_TCP) { ++ inet_csk(sk)->icsk_af_ops = &ipv6_mapped; ++ sk->sk_backlog_rcv = tcp_v4_do_rcv; ++ } ++ } ++#endif ++ } ++ ++ restore_queues(sk, si, pos, ctx); ++ ++ if (sk->sk_type == SOCK_STREAM && sk->sk_protocol == IPPROTO_TCP) ++ rst_socket_tcp(si, pos, sk, ctx); ++ ++ release_sock(sk); ++ return 0; ++} ++ ++int cpt_attach_accept(struct sock *lsk, struct sock *sk, cpt_context_t *ctx) ++{ ++ struct request_sock *req; ++ ++ if (lsk->sk_state != TCP_LISTEN) ++ return -EINVAL; ++ ++ req = reqsk_alloc(&tcp_request_sock_ops); ++ if (!req) ++ return -ENOMEM; ++ ++ sk->sk_socket = NULL; ++ sk->sk_sleep = NULL; ++ inet_csk_reqsk_queue_add(lsk, req, sk); ++ return 0; ++} ++ ++int rst_restore_synwait_queue(struct sock *sk, struct cpt_sock_image *si, ++ loff_t pos, struct cpt_context *ctx) ++{ ++ int err; ++ loff_t end = si->cpt_next; ++ ++ pos += si->cpt_hdrlen; ++ while (pos < end) { ++ struct cpt_openreq_image oi; ++ ++ err = rst_get_object(CPT_OBJ_OPENREQ, pos, &oi, ctx); ++ if (err) { ++ err = rst_sock_attr(&pos, sk, ctx); ++ if (err) ++ return err; ++ continue; ++ } ++ ++ if (oi.cpt_object == CPT_OBJ_OPENREQ) { ++ struct request_sock *req = reqsk_alloc(&tcp_request_sock_ops); ++ if (req == NULL) ++ return -ENOMEM; ++ ++ memset(req, 0, sizeof(*req)); ++ tcp_rsk(req)->rcv_isn = oi.cpt_rcv_isn; ++ tcp_rsk(req)->snt_isn = oi.cpt_snt_isn; ++ inet_rsk(req)->rmt_port = oi.cpt_rmt_port; ++ req->mss = oi.cpt_mss; ++ req->retrans = oi.cpt_retrans; ++ inet_rsk(req)->snd_wscale = oi.cpt_snd_wscale; ++ inet_rsk(req)->rcv_wscale = oi.cpt_rcv_wscale; ++ inet_rsk(req)->tstamp_ok = oi.cpt_tstamp_ok; ++ inet_rsk(req)->sack_ok = oi.cpt_sack_ok; ++ inet_rsk(req)->wscale_ok = oi.cpt_wscale_ok; ++ inet_rsk(req)->ecn_ok = oi.cpt_ecn_ok; ++ inet_rsk(req)->acked = oi.cpt_acked; ++ req->window_clamp = oi.cpt_window_clamp; ++ req->rcv_wnd = oi.cpt_rcv_wnd; ++ req->ts_recent = oi.cpt_ts_recent; ++ req->expires = jiffies_import(oi.cpt_expires); ++ ++ if (oi.cpt_family == AF_INET) { ++ memcpy(&inet_rsk(req)->loc_addr, oi.cpt_loc_addr, 4); ++ memcpy(&inet_rsk(req)->rmt_addr, oi.cpt_rmt_addr, 4); ++ inet_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT); ++ } else { ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++ memcpy(&inet6_rsk(req)->loc_addr, oi.cpt_loc_addr, 16); ++ memcpy(&inet6_rsk(req)->rmt_addr, oi.cpt_rmt_addr, 16); ++ inet6_rsk(req)->iif = oi.cpt_iif; ++ inet6_csk_reqsk_queue_hash_add(sk, req, TCP_TIMEOUT_INIT); ++#endif ++ } ++ } ++ pos += oi.cpt_next; ++ } ++ return 0; ++} ++ ++int rst_sk_mcfilter_in(struct sock *sk, struct cpt_sockmc_image *v, ++ loff_t pos, cpt_context_t *ctx) ++{ ++ struct ip_mreqn imr; ++ ++ if (v->cpt_mode || v->cpt_next != v->cpt_hdrlen) { ++ eprintk_ctx("IGMPv3 is still not supported\n"); ++ return -EINVAL; ++ } ++ ++ memset(&imr, 0, sizeof(imr)); ++ imr.imr_ifindex = v->cpt_ifindex; ++ imr.imr_multiaddr.s_addr = v->cpt_mcaddr[0]; ++ return ip_mc_join_group(sk, &imr); ++} ++ ++#if defined(CONFIG_IPV6) || defined (CONFIG_IPV6_MODULE) ++int rst_sk_mcfilter_in6(struct sock *sk, struct cpt_sockmc_image *v, ++ loff_t pos, cpt_context_t *ctx) ++{ ++ ++ if (v->cpt_mode || v->cpt_next != v->cpt_hdrlen) { ++ eprintk_ctx("IGMPv3 is still not supported\n"); ++ return -EINVAL; ++ } ++ ++ return ipv6_sock_mc_join(sk, v->cpt_ifindex, ++ (struct in6_addr*)v->cpt_mcaddr); ++} ++#endif +Index: kernel/kernel/cpt/rst_sysvipc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_sysvipc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,554 @@ ++/* ++ * ++ * kernel/cpt/rst_sysvipc.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_kernel.h" ++ ++struct _warg { ++ struct file *file; ++ struct cpt_sysvshm_image *v; ++}; ++ ++static int fixup_one_shm(struct shmid_kernel *shp, void *arg) ++{ ++ struct _warg *warg = arg; ++ ++ if (shp->shm_file != warg->file) ++ return 0; ++ if (shp->shm_nattch) ++ return -EEXIST; ++ ++ shp->shm_perm.uid = warg->v->cpt_uid; ++ shp->shm_perm.gid = warg->v->cpt_gid; ++ shp->shm_perm.cuid = warg->v->cpt_cuid; ++ shp->shm_perm.cgid = warg->v->cpt_cgid; ++ shp->shm_perm.mode = warg->v->cpt_mode; ++ ++ shp->shm_atim = warg->v->cpt_atime; ++ shp->shm_dtim = warg->v->cpt_dtime; ++ shp->shm_ctim = warg->v->cpt_ctime; ++ shp->shm_cprid = warg->v->cpt_creator; ++ shp->shm_lprid = warg->v->cpt_last; ++ ++ /* TODO: fix shp->mlock_user? */ ++ return 1; ++} ++ ++static int fixup_shm(struct file *file, struct cpt_sysvshm_image *v) ++{ ++ struct _warg warg; ++ ++ warg.file = file; ++ warg.v = v; ++ ++ return sysvipc_walk_shm(fixup_one_shm, &warg); ++} ++ ++static int fixup_shm_data(struct file *file, loff_t pos, loff_t end, ++ struct cpt_context *ctx) ++{ ++ struct cpt_page_block pgb; ++ ssize_t (*do_write)(struct file *, const char __user *, size_t, loff_t *ppos); ++ ++ do_write = file->f_dentry->d_inode->i_fop->write; ++ if (do_write == NULL) { ++ eprintk_ctx("No TMPFS? Cannot restore content of SYSV SHM\n"); ++ return -EINVAL; ++ } ++ ++ while (pos < end) { ++ loff_t opos; ++ loff_t ipos; ++ int count; ++ int err; ++ ++ err = rst_get_object(CPT_OBJ_PAGES, pos, &pgb, ctx); ++ if (err) ++ return err; ++ dprintk_ctx("restoring SHM block: %08x-%08x\n", ++ (__u32)pgb.cpt_start, (__u32)pgb.cpt_end); ++ ipos = pos + pgb.cpt_hdrlen; ++ opos = pgb.cpt_start; ++ count = pgb.cpt_end-pgb.cpt_start; ++ while (count > 0) { ++ mm_segment_t oldfs; ++ int copy = count; ++ ++ if (copy > PAGE_SIZE) ++ copy = PAGE_SIZE; ++ (void)cpt_get_buf(ctx); ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ err = ctx->pread(ctx->tmpbuf, copy, ctx, ipos); ++ set_fs(oldfs); ++ if (err) { ++ __cpt_release_buf(ctx); ++ return err; ++ } ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ ipos += copy; ++ err = do_write(file, ctx->tmpbuf, copy, &opos); ++ set_fs(oldfs); ++ __cpt_release_buf(ctx); ++ if (err != copy) { ++ eprintk_ctx("write() failure\n"); ++ if (err >= 0) ++ err = -EIO; ++ return err; ++ } ++ count -= copy; ++ } ++ pos += pgb.cpt_next; ++ } ++ return 0; ++} ++ ++struct file * rst_sysv_shm(loff_t pos, struct cpt_context *ctx) ++{ ++ struct file *file; ++ int err; ++ loff_t dpos, epos; ++ union { ++ struct cpt_file_image fi; ++ struct cpt_sysvshm_image shmi; ++ struct cpt_inode_image ii; ++ } u; ++ ++ err = rst_get_object(CPT_OBJ_FILE, pos, &u.fi, ctx); ++ if (err < 0) ++ goto err_out; ++ pos = u.fi.cpt_inode; ++ err = rst_get_object(CPT_OBJ_INODE, pos, &u.ii, ctx); ++ if (err < 0) ++ goto err_out; ++ dpos = pos + u.ii.cpt_hdrlen; ++ epos = pos + u.ii.cpt_next; ++ err = rst_get_object(CPT_OBJ_SYSV_SHM, pos + u.ii.cpt_hdrlen, &u.shmi, ctx); ++ if (err < 0) ++ goto err_out; ++ dpos += u.shmi.cpt_next; ++ ++ file = sysvipc_setup_shm(u.shmi.cpt_key, u.shmi.cpt_id, ++ u.shmi.cpt_segsz, u.shmi.cpt_mode); ++ if (!IS_ERR(file)) { ++ err = fixup_shm(file, &u.shmi); ++ if (err != -EEXIST && dpos < epos) ++ err = fixup_shm_data(file, dpos, epos, ctx); ++ } ++ ++ return file; ++ ++err_out: ++ return ERR_PTR(err); ++} ++ ++static int attach_one_undo(int semid, struct sem_array *sma, void *arg) ++{ ++ struct sem_undo *su = arg; ++ struct sem_undo_list *undo_list = current->sysvsem.undo_list; ++ ++ if (semid != su->semid) ++ return 0; ++ ++ su->proc_next = undo_list->proc_list; ++ undo_list->proc_list = su; ++ ++ su->id_next = sma->undo; ++ sma->undo = su; ++ ++ return 1; ++} ++ ++static int attach_undo(struct sem_undo *su) ++{ ++ return sysvipc_walk_sem(attach_one_undo, su); ++} ++ ++static int do_rst_semundo(struct cpt_object_hdr *sui, loff_t pos, struct cpt_context *ctx) ++{ ++ int err; ++ struct sem_undo_list *undo_list; ++ ++ if (current->sysvsem.undo_list) { ++ eprintk_ctx("Funny undo_list\n"); ++ return 0; ++ } ++ ++ undo_list = kzalloc(sizeof(struct sem_undo_list), GFP_KERNEL_UBC); ++ if (undo_list == NULL) ++ return -ENOMEM; ++ ++ atomic_set(&undo_list->refcnt, 1); ++ spin_lock_init(&undo_list->lock); ++ current->sysvsem.undo_list = undo_list; ++ ++ if (sui->cpt_next > sui->cpt_hdrlen) { ++ loff_t offset = pos + sui->cpt_hdrlen; ++ do { ++ struct sem_undo *new; ++ struct cpt_sysvsem_undo_image spi; ++ err = rst_get_object(CPT_OBJ_SYSVSEM_UNDO_REC, offset, &spi, ctx); ++ if (err) ++ goto out; ++ new = kmalloc(sizeof(struct sem_undo) + ++ sizeof(short)*spi.cpt_nsem, ++ GFP_KERNEL_UBC); ++ if (!new) { ++ err = -ENOMEM; ++ goto out; ++ } ++ ++ memset(new, 0, sizeof(struct sem_undo) + sizeof(short)*spi.cpt_nsem); ++ new->semadj = (short *) &new[1]; ++ new->semid = spi.cpt_id; ++ err = ctx->pread(new->semadj, spi.cpt_nsem*sizeof(short), ctx, offset + spi.cpt_hdrlen); ++ if (err) { ++ kfree(new); ++ goto out; ++ } ++ err = attach_undo(new); ++ if (err <= 0) { ++ if (err == 0) ++ err = -ENOENT; ++ kfree(new); ++ goto out; ++ } ++ offset += spi.cpt_next; ++ } while (offset < pos + sui->cpt_next); ++ } ++ err = 0; ++ ++out: ++ return err; ++} ++ ++__u32 rst_semundo_flag(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ __u32 flag = 0; ++ ++#if 0 ++ if (ti->cpt_sysvsem_undo == CPT_NULL || ++ lookup_cpt_obj_bypos(CPT_OBJ_SYSVSEM_UNDO, ti->cpt_sysvsem_undo)) ++ flag |= CLONE_SYSVSEM; ++#endif ++ return flag; ++} ++ ++int rst_semundo_complete(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ int err; ++ struct sem_undo_list *f = current->sysvsem.undo_list; ++ cpt_object_t *obj; ++ struct cpt_object_hdr sui; ++ ++ if (ti->cpt_sysvsem_undo == CPT_NULL) { ++ exit_sem(current); ++ return 0; ++ } ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_SYSVSEM_UNDO, ti->cpt_sysvsem_undo, ctx); ++ if (obj) { ++ if (obj->o_obj != f) { ++ exit_sem(current); ++ f = obj->o_obj; ++ atomic_inc(&f->refcnt); ++ current->sysvsem.undo_list = f; ++ } ++ return 0; ++ } ++ ++ if ((err = rst_get_object(CPT_OBJ_SYSVSEM_UNDO, ti->cpt_sysvsem_undo, &sui, ctx)) != 0) ++ goto out; ++ ++ if ((err = do_rst_semundo(&sui, ti->cpt_sysvsem_undo, ctx)) != 0) ++ goto out; ++ ++ err = -ENOMEM; ++ obj = cpt_object_add(CPT_OBJ_SYSVSEM_UNDO, f, ctx); ++ if (obj) { ++ err = 0; ++ cpt_obj_setpos(obj, ti->cpt_sysvsem_undo, ctx); ++ } ++ ++ return 0; ++ ++out: ++ return err; ++} ++ ++struct _sarg { ++ int semid; ++ struct cpt_sysvsem_image *v; ++ __u32 *arr; ++}; ++ ++static int fixup_one_sem(int semid, struct sem_array *sma, void *arg) ++{ ++ struct _sarg *warg = arg; ++ ++ if (semid != warg->semid) ++ return 0; ++ ++ sma->sem_perm.uid = warg->v->cpt_uid; ++ sma->sem_perm.gid = warg->v->cpt_gid; ++ sma->sem_perm.cuid = warg->v->cpt_cuid; ++ sma->sem_perm.cgid = warg->v->cpt_cgid; ++ sma->sem_perm.mode = warg->v->cpt_mode; ++ sma->sem_perm.seq = warg->v->cpt_seq; ++ ++ sma->sem_ctime = warg->v->cpt_ctime; ++ sma->sem_otime = warg->v->cpt_otime; ++ memcpy(sma->sem_base, warg->arr, sma->sem_nsems*8); ++ return 1; ++} ++ ++static int fixup_sem(int semid, struct cpt_sysvsem_image *v, __u32 *arr) ++{ ++ struct _sarg warg; ++ ++ warg.semid = semid; ++ warg.v = v; ++ warg.arr = arr; ++ ++ return sysvipc_walk_sem(fixup_one_sem, &warg); ++} ++ ++ ++static int restore_sem(loff_t pos, struct cpt_sysvsem_image *si, ++ struct cpt_context *ctx) ++{ ++ int err; ++ __u32 *arr; ++ int nsems = (si->cpt_next - si->cpt_hdrlen)/8; ++ ++ arr = kmalloc(nsems*8, GFP_KERNEL); ++ if (!arr) ++ return -ENOMEM; ++ ++ err = ctx->pread(arr, nsems*8, ctx, pos+si->cpt_hdrlen); ++ if (err) ++ goto out; ++ err = sysvipc_setup_sem(si->cpt_key, si->cpt_id, nsems, si->cpt_mode); ++ if (err < 0) { ++ eprintk_ctx("SEM 3\n"); ++ goto out; ++ } ++ err = fixup_sem(si->cpt_id, si, arr); ++ if (err == 0) ++ err = -ESRCH; ++ if (err > 0) ++ err = 0; ++out: ++ kfree(arr); ++ return err; ++} ++ ++static int rst_sysv_sem(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_SYSV_SEM]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_sysvsem_image sbuf; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_SYSV_SEM || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ int err; ++ err = rst_get_object(CPT_OBJ_SYSV_SEM, sec, &sbuf, ctx); ++ if (err) ++ return err; ++ err = restore_sem(sec, &sbuf, ctx); ++ if (err) ++ return err; ++ sec += sbuf.cpt_next; ++ } ++ return 0; ++} ++ ++struct _marg { ++ int msqid; ++ struct cpt_sysvmsg_image *v; ++ struct msg_queue *m; ++}; ++ ++static int fixup_one_msg(int msqid, struct msg_queue *msq, void *arg) ++{ ++ struct _marg *warg = arg; ++ ++ if (msqid != warg->msqid) ++ return 0; ++ ++ msq->q_perm.uid = warg->v->cpt_uid; ++ msq->q_perm.gid = warg->v->cpt_gid; ++ msq->q_perm.cuid = warg->v->cpt_cuid; ++ msq->q_perm.cgid = warg->v->cpt_cgid; ++ msq->q_perm.mode = warg->v->cpt_mode; ++ msq->q_perm.seq = warg->v->cpt_seq; ++ ++ msq->q_stime = warg->v->cpt_stime; ++ msq->q_rtime = warg->v->cpt_rtime; ++ msq->q_ctime = warg->v->cpt_ctime; ++ msq->q_lspid = warg->v->cpt_last_sender; ++ msq->q_lrpid = warg->v->cpt_last_receiver; ++ msq->q_qbytes = warg->v->cpt_qbytes; ++ ++ warg->m = msq; ++ return 1; ++} ++ ++struct _larg ++{ ++ cpt_context_t * ctx; ++ loff_t pos; ++}; ++ ++static int do_load_msg(void * dst, int len, int offset, void * data) ++{ ++ struct _larg * arg = data; ++ return arg->ctx->pread(dst, len, arg->ctx, arg->pos + offset); ++} ++ ++static int fixup_msg(int msqid, struct cpt_sysvmsg_image *v, loff_t pos, ++ cpt_context_t * ctx) ++{ ++ int err; ++ struct _marg warg; ++ loff_t endpos = pos + v->cpt_next; ++ struct ipc_namespace *ns = current->nsproxy->ipc_ns; ++ ++ pos += v->cpt_hdrlen; ++ ++ warg.msqid = msqid; ++ warg.v = v; ++ ++ err = sysvipc_walk_msg(fixup_one_msg, &warg); ++ if (err <= 0) ++ return err; ++ ++ while (pos < endpos) { ++ struct cpt_sysvmsg_msg_image mi; ++ struct msg_msg *m; ++ struct _larg data = { ++ .ctx = ctx ++ }; ++ ++ err = rst_get_object(CPT_OBJ_SYSVMSG_MSG, pos, &mi, ctx); ++ if (err) ++ return err; ++ data.pos = pos + mi.cpt_hdrlen; ++ m = sysv_msg_load(do_load_msg, mi.cpt_size, &data); ++ if (IS_ERR(m)) ++ return PTR_ERR(m); ++ m->m_type = mi.cpt_type; ++ m->m_ts = mi.cpt_size; ++ list_add_tail(&m->m_list, &warg.m->q_messages); ++ warg.m->q_cbytes += m->m_ts; ++ warg.m->q_qnum++; ++ atomic_add(m->m_ts, &ns->msg_bytes); ++ atomic_inc(&ns->msg_hdrs); ++ ++ pos += mi.cpt_next; ++ } ++ return 1; ++} ++ ++static int restore_msg(loff_t pos, struct cpt_sysvmsg_image *si, ++ struct cpt_context *ctx) ++{ ++ int err; ++ ++ err = sysvipc_setup_msg(si->cpt_key, si->cpt_id, si->cpt_mode); ++ if (err < 0) { ++ eprintk_ctx("MSG 3\n"); ++ goto out; ++ } ++ err = fixup_msg(si->cpt_id, si, pos, ctx); ++ if (err == 0) ++ err = -ESRCH; ++ if (err > 0) ++ err = 0; ++out: ++ return err; ++} ++ ++static int rst_sysv_msg(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_SYSV_MSG]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_sysvmsg_image sbuf; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_SYSV_MSG || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ int err; ++ err = rst_get_object(CPT_OBJ_SYSVMSG, sec, &sbuf, ctx); ++ if (err) ++ return err; ++ err = restore_msg(sec, &sbuf, ctx); ++ if (err) ++ return err; ++ sec += sbuf.cpt_next; ++ } ++ return 0; ++} ++ ++ ++int rst_sysv_ipc(struct cpt_context *ctx) ++{ ++ int err; ++ ++ err = rst_sysv_sem(ctx); ++ if (!err) ++ err = rst_sysv_msg(ctx); ++ ++ return err; ++} +Index: kernel/kernel/cpt/rst_tty.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_tty.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,379 @@ ++/* ++ * ++ * kernel/cpt/rst_tty.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_mm.h" ++#include "cpt_process.h" ++#include "cpt_files.h" ++#include "cpt_kernel.h" ++ ++static int pty_setup(struct tty_struct *stty, loff_t pos, ++ struct cpt_tty_image *pi, struct cpt_context *ctx) ++{ ++ unsigned long flags; ++ ++ stty->pgrp = NULL; ++ stty->session = NULL; ++ stty->packet = pi->cpt_packet; ++ stty->stopped = pi->cpt_stopped; ++ stty->hw_stopped = pi->cpt_hw_stopped; ++ stty->flow_stopped = pi->cpt_flow_stopped; ++#define DONOT_CHANGE ((1<flags & DONOT_CHANGE; ++ stty->flags = flags | (pi->cpt_flags & ~DONOT_CHANGE); ++ stty->ctrl_status = pi->cpt_ctrl_status; ++ stty->winsize.ws_row = pi->cpt_ws_row; ++ stty->winsize.ws_col = pi->cpt_ws_col; ++ stty->winsize.ws_ypixel = pi->cpt_ws_prow; ++ stty->winsize.ws_xpixel = pi->cpt_ws_pcol; ++ stty->canon_column = pi->cpt_canon_column; ++ stty->column = pi->cpt_column; ++ stty->raw = pi->cpt_raw; ++ stty->real_raw = pi->cpt_real_raw; ++ stty->erasing = pi->cpt_erasing; ++ stty->lnext = pi->cpt_lnext; ++ stty->icanon = pi->cpt_icanon; ++ stty->closing = pi->cpt_closing; ++ stty->minimum_to_wake = pi->cpt_minimum_to_wake; ++ ++ stty->termios->c_iflag = pi->cpt_c_iflag; ++ stty->termios->c_oflag = pi->cpt_c_oflag; ++ stty->termios->c_lflag = pi->cpt_c_lflag; ++ stty->termios->c_cflag = pi->cpt_c_cflag; ++ memcpy(&stty->termios->c_cc, &pi->cpt_c_cc, NCCS); ++ memcpy(stty->read_flags, pi->cpt_read_flags, sizeof(stty->read_flags)); ++ ++ if (pi->cpt_next > pi->cpt_hdrlen) { ++ int err; ++ struct cpt_obj_bits b; ++ err = rst_get_object(CPT_OBJ_BITS, pos + pi->cpt_hdrlen, &b, ctx); ++ if (err) ++ return err; ++ if (b.cpt_size == 0) ++ return 0; ++ err = ctx->pread(stty->read_buf, b.cpt_size, ctx, pos + pi->cpt_hdrlen + b.cpt_hdrlen); ++ if (err) ++ return err; ++ ++ spin_lock_irq(&stty->read_lock); ++ stty->read_tail = 0; ++ stty->read_cnt = b.cpt_size; ++ stty->read_head = b.cpt_size; ++ stty->canon_head = stty->read_tail + pi->cpt_canon_head; ++ stty->canon_data = pi->cpt_canon_data; ++ spin_unlock_irq(&stty->read_lock); ++ } ++ ++ return 0; ++} ++ ++/* Find slave/master tty in image, when we already know master/slave. ++ * It might be optimized, of course. */ ++static loff_t find_pty_pair(struct tty_struct *stty, loff_t pos, struct cpt_tty_image *pi, struct cpt_context *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_TTY]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_tty_image *pibuf; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return CPT_NULL; ++ if (h.cpt_section != CPT_SECT_TTY || h.cpt_hdrlen < sizeof(h)) ++ return CPT_NULL; ++ pibuf = kmalloc(sizeof(*pibuf), GFP_KERNEL); ++ if (pibuf == NULL) { ++ eprintk_ctx("cannot allocate buffer\n"); ++ return CPT_NULL; ++ } ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ if (rst_get_object(CPT_OBJ_TTY, sec, pibuf, ctx)) ++ return CPT_NULL; ++ if (pibuf->cpt_index == pi->cpt_index && ++ !((pi->cpt_drv_flags^pibuf->cpt_drv_flags)&TTY_DRIVER_DEVPTS_MEM) && ++ pos != sec) { ++ pty_setup(stty, sec, pibuf, ctx); ++ return sec; ++ } ++ sec += pibuf->cpt_next; ++ } ++ kfree(pibuf); ++ return CPT_NULL; ++} ++ ++static int fixup_tty_attrs(struct cpt_inode_image *ii, struct file *master, ++ struct cpt_context *ctx) ++{ ++ int err; ++ struct iattr newattrs; ++ struct dentry *d = master->f_dentry; ++ ++ newattrs.ia_valid = ATTR_UID|ATTR_GID|ATTR_MODE; ++ newattrs.ia_uid = ii->cpt_uid; ++ newattrs.ia_gid = ii->cpt_gid; ++ newattrs.ia_mode = ii->cpt_mode; ++ ++ mutex_lock(&d->d_inode->i_mutex); ++ err = notify_change(d, NULL, &newattrs); ++ mutex_unlock(&d->d_inode->i_mutex); ++ ++ return err; ++} ++ ++/* NOTE: "portable", but ugly thing. To allocate /dev/pts/N, we open ++ * /dev/ptmx until we get pty with desired index. ++ */ ++ ++struct file *ptmx_open(int index, unsigned int flags) ++{ ++ struct file *file; ++ struct file **stack = NULL; ++ int depth = 0; ++ ++ for (;;) { ++ struct tty_struct *tty; ++ ++ file = filp_open("/dev/ptmx", flags|O_NONBLOCK|O_NOCTTY|O_RDWR, 0); ++ if (IS_ERR(file)) ++ break; ++ tty = file->private_data; ++ if (tty->index == index) ++ break; ++ ++ if (depth == PAGE_SIZE/sizeof(struct file *)) { ++ fput(file); ++ file = ERR_PTR(-EBUSY); ++ break; ++ } ++ if (stack == NULL) { ++ stack = (struct file **)__get_free_page(GFP_KERNEL); ++ if (!stack) { ++ fput(file); ++ file = ERR_PTR(-ENOMEM); ++ break; ++ } ++ } ++ stack[depth] = file; ++ depth++; ++ } ++ while (depth > 0) { ++ depth--; ++ fput(stack[depth]); ++ } ++ if (stack) ++ free_page((unsigned long)stack); ++ return file; ++} ++ ++ ++struct file * rst_open_tty(struct cpt_file_image *fi, struct cpt_inode_image *ii, ++ unsigned flags, struct cpt_context *ctx) ++{ ++ int err; ++ cpt_object_t *obj; ++ struct file *master, *slave; ++ struct tty_struct *stty; ++ struct cpt_tty_image *pi; ++ static char *a = "pqrstuvwxyzabcde"; ++ static char *b = "0123456789abcdef"; ++ char pairname[16]; ++ unsigned master_flags, slave_flags; ++ ++ if (fi->cpt_priv == CPT_NULL) ++ return ERR_PTR(-EINVAL); ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_TTY, fi->cpt_priv, ctx); ++ if (obj && obj->o_parent) { ++ dprintk_ctx("obtained pty as pair to existing\n"); ++ master = obj->o_parent; ++ stty = master->private_data; ++ ++ if (stty->driver->subtype == PTY_TYPE_MASTER && ++ (stty->driver->flags&TTY_DRIVER_DEVPTS_MEM)) { ++ wprintk_ctx("cloning ptmx\n"); ++ get_file(master); ++ return master; ++ } ++ ++ master = dentry_open(dget(master->f_dentry), ++ mntget(master->f_vfsmnt), flags); ++ if (!IS_ERR(master)) { ++ stty = master->private_data; ++ if (stty->driver->subtype != PTY_TYPE_MASTER) ++ fixup_tty_attrs(ii, master, ctx); ++ } ++ return master; ++ } ++ ++ pi = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_TTY, fi->cpt_priv, pi, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return ERR_PTR(err); ++ } ++ ++ master_flags = slave_flags = 0; ++ if (pi->cpt_drv_subtype == PTY_TYPE_MASTER) ++ master_flags = flags; ++ else ++ slave_flags = flags; ++ ++ /* ++ * Open pair master/slave. ++ */ ++ if (pi->cpt_drv_flags&TTY_DRIVER_DEVPTS_MEM) { ++ master = ptmx_open(pi->cpt_index, master_flags); ++ } else { ++ sprintf(pairname, "/dev/pty%c%c", a[pi->cpt_index/16], b[pi->cpt_index%16]); ++ master = filp_open(pairname, master_flags|O_NONBLOCK|O_NOCTTY|O_RDWR, 0); ++ } ++ if (IS_ERR(master)) { ++ eprintk_ctx("filp_open master: %Ld %ld\n", (long long)fi->cpt_priv, PTR_ERR(master)); ++ cpt_release_buf(ctx); ++ return master; ++ } ++ stty = master->private_data; ++ clear_bit(TTY_PTY_LOCK, &stty->flags); ++ if (pi->cpt_drv_flags&TTY_DRIVER_DEVPTS_MEM) ++ sprintf(pairname, "/dev/pts/%d", stty->index); ++ else ++ sprintf(pairname, "/dev/tty%c%c", a[stty->index/16], b[stty->index%16]); ++ slave = filp_open(pairname, slave_flags|O_NONBLOCK|O_NOCTTY|O_RDWR, 0); ++ if (IS_ERR(slave)) { ++ eprintk_ctx("filp_open slave %s: %ld\n", pairname, PTR_ERR(slave)); ++ fput(master); ++ cpt_release_buf(ctx); ++ return slave; ++ } ++ ++ if (pi->cpt_drv_subtype != PTY_TYPE_MASTER) ++ fixup_tty_attrs(ii, slave, ctx); ++ ++ cpt_object_add(CPT_OBJ_TTY, master->private_data, ctx); ++ cpt_object_add(CPT_OBJ_TTY, slave->private_data, ctx); ++ cpt_object_add(CPT_OBJ_FILE, master, ctx); ++ cpt_object_add(CPT_OBJ_FILE, slave, ctx); ++ ++ if (pi->cpt_drv_subtype == PTY_TYPE_MASTER) { ++ loff_t pos; ++ obj = lookup_cpt_object(CPT_OBJ_TTY, master->private_data, ctx); ++ obj->o_parent = master; ++ cpt_obj_setpos(obj, fi->cpt_priv, ctx); ++ pty_setup(stty, fi->cpt_priv, pi, ctx); ++ ++ obj = lookup_cpt_object(CPT_OBJ_TTY, slave->private_data, ctx); ++ obj->o_parent = slave; ++ pos = find_pty_pair(stty->link, fi->cpt_priv, pi, ctx); ++ cpt_obj_setpos(obj, pos, ctx); ++ ++ obj = lookup_cpt_object(CPT_OBJ_FILE, slave, ctx); ++ cpt_obj_setpos(obj, CPT_NULL, ctx); ++ get_file(master); ++ cpt_release_buf(ctx); ++ return master; ++ } else { ++ loff_t pos; ++ obj = lookup_cpt_object(CPT_OBJ_TTY, slave->private_data, ctx); ++ obj->o_parent = slave; ++ cpt_obj_setpos(obj, fi->cpt_priv, ctx); ++ pty_setup(stty->link, fi->cpt_priv, pi, ctx); ++ ++ obj = lookup_cpt_object(CPT_OBJ_TTY, master->private_data, ctx); ++ obj->o_parent = master; ++ pos = find_pty_pair(stty, fi->cpt_priv, pi, ctx); ++ cpt_obj_setpos(obj, pos, ctx); ++ ++ obj = lookup_cpt_object(CPT_OBJ_FILE, master, ctx); ++ cpt_obj_setpos(obj, CPT_NULL, ctx); ++ get_file(slave); ++ cpt_release_buf(ctx); ++ return slave; ++ } ++} ++ ++int rst_tty_jobcontrol(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_TTY]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_TTY || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ cpt_object_t *obj; ++ struct cpt_tty_image *pibuf = cpt_get_buf(ctx); ++ ++ if (rst_get_object(CPT_OBJ_TTY, sec, pibuf, ctx)) { ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_TTY, sec, ctx); ++ if (obj) { ++ struct tty_struct *stty = obj->o_obj; ++ if ((int)pibuf->cpt_pgrp > 0) { ++ stty->pgrp = alloc_vpid_safe(pibuf->cpt_pgrp); ++ if (!stty->pgrp) ++ dprintk_ctx("unknown tty pgrp %d\n", pibuf->cpt_pgrp); ++ } else if (pibuf->cpt_pgrp) { ++ stty->pgrp = alloc_pid(current->nsproxy->pid_ns, ++ 0); ++ if (!stty->pgrp) { ++ eprintk_ctx("cannot allocate stray tty->pgrp"); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++ } ++ if ((int)pibuf->cpt_session > 0) { ++ struct pid *sess; ++ sess = alloc_vpid_safe(pibuf->cpt_session); ++ if (!sess) { ++ dprintk_ctx("unknown tty session %d\n", pibuf->cpt_session); ++ } else if (!stty->session) { ++ stty->session = sess; ++ } ++ } ++ } ++ sec += pibuf->cpt_next; ++ cpt_release_buf(ctx); ++ } ++ return 0; ++} +Index: kernel/kernel/cpt/rst_ubc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_ubc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,131 @@ ++/* ++ * ++ * kernel/cpt/rst_ubc.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++ ++struct user_beancounter *rst_lookup_ubc(__u64 pos, struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ obj = lookup_cpt_obj_bypos(CPT_OBJ_UBC, pos, ctx); ++ if (obj == NULL) { ++ eprintk("RST: unknown ub @%Ld\n", (long long)pos); ++ return get_beancounter(get_exec_ub()); ++ } ++ return get_beancounter(obj->o_obj); ++} ++ ++void copy_one_ubparm(struct ubparm *from, struct ubparm *to, int bc_parm_id) ++{ ++ to[bc_parm_id].barrier = from[bc_parm_id].barrier; ++ to[bc_parm_id].limit = from[bc_parm_id].limit; ++} ++ ++void set_one_ubparm_to_max(struct ubparm *ubprm, int bc_parm_id) ++{ ++ ubprm[bc_parm_id].barrier = UB_MAXVALUE; ++ ubprm[bc_parm_id].limit = UB_MAXVALUE; ++} ++ ++static void restore_one_bc_parm(struct cpt_ubparm *dmp, struct ubparm *prm, ++ int held) ++{ ++ prm->barrier = (dmp->barrier == CPT_NULL ? UB_MAXVALUE : dmp->barrier); ++ prm->limit = (dmp->limit == CPT_NULL ? UB_MAXVALUE : dmp->limit); ++ if (held) ++ prm->held = dmp->held; ++ prm->maxheld = dmp->maxheld; ++ prm->minheld = dmp->minheld; ++ prm->failcnt = dmp->failcnt; ++} ++ ++static int restore_one_bc(struct cpt_beancounter_image *v, ++ cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct user_beancounter *bc; ++ cpt_object_t *pobj; ++ int i; ++ ++ if (v->cpt_parent != CPT_NULL) { ++ pobj = lookup_cpt_obj_bypos(CPT_OBJ_UBC, v->cpt_parent, ctx); ++ if (pobj == NULL) ++ return -ESRCH; ++ bc = get_subbeancounter_byid(pobj->o_obj, v->cpt_id, 1); ++ } else { ++ bc = get_exec_ub(); ++ while (bc->parent) ++ bc = bc->parent; ++ get_beancounter(bc); ++ } ++ if (bc == NULL) ++ return -ENOMEM; ++ obj->o_obj = bc; ++ ++ if (ctx->image_version < CPT_VERSION_18 && ++ CPT_VERSION_MINOR(ctx->image_version) < 1) ++ goto out; ++ ++ for (i = 0; i < UB_RESOURCES; i++) { ++ restore_one_bc_parm(v->cpt_parms + i * 2, bc->ub_parms + i, 0); ++ restore_one_bc_parm(v->cpt_parms + i * 2 + 1, ++ bc->ub_store + i, 1); ++ } ++ ++out: ++ if (!bc->parent) ++ for (i = 0; i < UB_RESOURCES; i++) ++ copy_one_ubparm(bc->ub_parms, ctx->saved_ubc, i); ++ ++ return 0; ++} ++ ++int rst_undump_ubc(struct cpt_context *ctx) ++{ ++ loff_t start, end; ++ struct cpt_beancounter_image *v; ++ cpt_object_t *obj; ++ int err; ++ ++ err = rst_get_section(CPT_SECT_UBC, ctx, &start, &end); ++ if (err) ++ return err; ++ ++ while (start < end) { ++ v = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_UBC, start, v, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++ ++ obj = alloc_cpt_object(GFP_KERNEL, ctx); ++ cpt_obj_setpos(obj, start, ctx); ++ intern_cpt_object(CPT_OBJ_UBC, obj, ctx); ++ ++ restore_one_bc(v, obj, ctx); ++ ++ cpt_release_buf(ctx); ++ start += v->cpt_next; ++ } ++ return 0; ++} ++ ++void rst_finish_ubc(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ ++ for_each_object(obj, CPT_OBJ_UBC) ++ put_beancounter(obj->o_obj); ++} +Index: kernel/kernel/cpt/rst_undump.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/cpt/rst_undump.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,1005 @@ ++/* ++ * ++ * kernel/cpt/rst_undump.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_X86 ++#include ++#endif ++#include ++#include ++#include ++#include ++ ++#include "cpt_obj.h" ++#include "cpt_context.h" ++#include "cpt_files.h" ++#include "cpt_mm.h" ++#include "cpt_process.h" ++#include "cpt_socket.h" ++#include "cpt_net.h" ++#include "cpt_ubc.h" ++#include "cpt_kernel.h" ++ ++static int rst_utsname(cpt_context_t *ctx); ++ ++ ++struct thr_context { ++ struct completion init_complete; ++ struct completion task_done; ++ int error; ++ struct cpt_context *ctx; ++ cpt_object_t *tobj; ++}; ++ ++static int rst_clone_children(cpt_object_t *obj, struct cpt_context *ctx); ++ ++static int vps_rst_veinfo(struct cpt_context *ctx) ++{ ++ int err; ++ struct cpt_veinfo_image *i; ++ struct ve_struct *ve; ++ struct timespec delta; ++ loff_t start, end; ++ struct ipc_namespace *ns; ++ ++ err = rst_get_section(CPT_SECT_VEINFO, ctx, &start, &end); ++ if (err) ++ goto out; ++ ++ i = cpt_get_buf(ctx); ++ memset(i, 0, sizeof(*i)); ++ err = rst_get_object(CPT_OBJ_VEINFO, start, i, ctx); ++ if (err) ++ goto out_rel; ++ ++ ve = get_exec_env(); ++ ns = ve->ve_ns->ipc_ns; ++ ++ /* Damn. Fatal mistake, these two values are size_t! */ ++ ns->shm_ctlall = i->shm_ctl_all ? : 0xFFFFFFFFU; ++ ns->shm_ctlmax = i->shm_ctl_max ? : 0xFFFFFFFFU; ++ ns->shm_ctlmni = i->shm_ctl_mni; ++ ++ ns->msg_ctlmax = i->msg_ctl_max; ++ ns->msg_ctlmni = i->msg_ctl_mni; ++ ns->msg_ctlmnb = i->msg_ctl_mnb; ++ ++ BUILD_BUG_ON(sizeof(ns->sem_ctls) != sizeof(i->sem_ctl_arr)); ++ ns->sem_ctls[0] = i->sem_ctl_arr[0]; ++ ns->sem_ctls[1] = i->sem_ctl_arr[1]; ++ ns->sem_ctls[2] = i->sem_ctl_arr[2]; ++ ns->sem_ctls[3] = i->sem_ctl_arr[3]; ++ ++ cpt_timespec_import(&delta, i->start_timespec_delta); ++ _set_normalized_timespec(&ve->start_timespec, ++ ve->start_timespec.tv_sec - delta.tv_sec, ++ ve->start_timespec.tv_nsec - delta.tv_nsec); ++ ve->start_jiffies -= i->start_jiffies_delta; ++ // // FIXME: what??? ++ // // ve->start_cycles -= (s64)i->start_jiffies_delta * cycles_per_jiffy; ++ ++ ctx->last_vpid = i->last_pid; ++ ++ err = 0; ++out_rel: ++ cpt_release_buf(ctx); ++out: ++ return err; ++} ++ ++static int vps_rst_reparent_root(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ int err; ++ struct env_create_param3 param; ++ ++ do_posix_clock_monotonic_gettime(&ctx->cpt_monotonic_time); ++ do_gettimespec(&ctx->delta_time); ++ ++ _set_normalized_timespec(&ctx->delta_time, ++ ctx->delta_time.tv_sec - ctx->start_time.tv_sec, ++ ctx->delta_time.tv_nsec - ctx->start_time.tv_nsec); ++ ctx->delta_nsec = (s64)ctx->delta_time.tv_sec*NSEC_PER_SEC + ctx->delta_time.tv_nsec; ++ if (ctx->delta_nsec < 0) { ++ wprintk_ctx("Wall time is behind source by %Ld ns, " ++ "time sensitive applications can misbehave\n", (long long)-ctx->delta_nsec); ++ } ++ ++ _set_normalized_timespec(&ctx->cpt_monotonic_time, ++ ctx->cpt_monotonic_time.tv_sec - ctx->delta_time.tv_sec, ++ ctx->cpt_monotonic_time.tv_nsec - ctx->delta_time.tv_nsec); ++ ++ memset(¶m, 0, sizeof(param)); ++ param.iptables_mask = ctx->iptables_mask; ++ param.feature_mask = ctx->features; ++ ++ /* feature_mask is set as required - pretend we know everything */ ++ param.known_features = (ctx->image_version < CPT_VERSION_18) ? ++ VE_FEATURES_OLD : ~(__u64)0; ++ ++ err = real_env_create(ctx->ve_id, VE_CREATE|VE_LOCK, 2, ++ ¶m, sizeof(param)); ++ if (err < 0) ++ eprintk_ctx("real_env_create: %d\n", err); ++ ++ get_exec_env()->jiffies_fixup = ++ (ctx->delta_time.tv_sec < 0 ? ++ 0 : timespec_to_jiffies(&ctx->delta_time)) - ++ (unsigned long)(get_jiffies_64() - ctx->virt_jiffies64); ++ dprintk_ctx("JFixup %ld %Ld\n", get_exec_env()->jiffies_fixup, ++ (long long)ctx->delta_nsec); ++ return err < 0 ? err : 0; ++} ++ ++static int hook(void *arg) ++{ ++ struct thr_context *thr_ctx = arg; ++ struct cpt_context *ctx; ++ cpt_object_t *tobj; ++ struct cpt_task_image *ti; ++ int err = 0; ++ int exiting = 0; ++ ++ current->state = TASK_UNINTERRUPTIBLE; ++ complete(&thr_ctx->init_complete); ++ schedule(); ++ ++ ctx = thr_ctx->ctx; ++ tobj = thr_ctx->tobj; ++ ti = tobj->o_image; ++ ++ current->fs->umask = 0; ++ ++ if (ti->cpt_pid == 1) { ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *bc; ++#endif ++ ++ err = vps_rst_reparent_root(tobj, ctx); ++ ++ if (err) { ++ rst_report_error(err, ctx); ++ goto out; ++ } ++ ++ memcpy(&cap_bset, &ti->cpt_ecap, sizeof(kernel_cap_t)); ++ ++ if (ctx->statusfile) { ++ fput(ctx->statusfile); ++ ctx->statusfile = NULL; ++ } ++ ++ if (ctx->lockfile) { ++ char b; ++ mm_segment_t oldfs; ++ err = -EINVAL; ++ ++ oldfs = get_fs(); set_fs(KERNEL_DS); ++ if (ctx->lockfile->f_op && ctx->lockfile->f_op->read) ++ err = ctx->lockfile->f_op->read(ctx->lockfile, &b, 1, &ctx->lockfile->f_pos); ++ set_fs(oldfs); ++ fput(ctx->lockfile); ++ ctx->lockfile = NULL; ++ } ++ ++ if (err) { ++ eprintk_ctx("CPT: lock fd is closed incorrectly: %d\n", err); ++ goto out; ++ } ++ err = vps_rst_veinfo(ctx); ++ if (err) { ++ eprintk_ctx("rst_veinfo: %d\n", err); ++ goto out; ++ } ++ ++ err = rst_utsname(ctx); ++ if (err) { ++ eprintk_ctx("rst_utsname: %d\n", err); ++ goto out; ++ } ++ ++ err = rst_root_namespace(ctx); ++ if (err) { ++ eprintk_ctx("rst_namespace: %d\n", err); ++ goto out; ++ } ++ ++ if ((err = rst_restore_net(ctx)) != 0) { ++ eprintk_ctx("rst_restore_net: %d\n", err); ++ goto out; ++ } ++ ++ err = rst_sockets(ctx); ++ if (err) { ++ eprintk_ctx("rst_sockets: %d\n", err); ++ goto out; ++ } ++ err = rst_sysv_ipc(ctx); ++ if (err) { ++ eprintk_ctx("rst_sysv_ipc: %d\n", err); ++ goto out; ++ } ++#ifdef CONFIG_BEANCOUNTERS ++ bc = get_exec_ub(); ++ set_one_ubparm_to_max(bc->ub_parms, UB_KMEMSIZE); ++ set_one_ubparm_to_max(bc->ub_parms, UB_NUMPROC); ++ set_one_ubparm_to_max(bc->ub_parms, UB_NUMFILE); ++ set_one_ubparm_to_max(bc->ub_parms, UB_DCACHESIZE); ++#endif ++ } ++ ++ do { ++ if (current->user->uid != ti->cpt_user) { ++ struct user_struct *u; ++ ++ u = alloc_uid(get_exec_env()->ve_ns->user_ns, ti->cpt_user); ++ if (!u) { ++ eprintk_ctx("alloc_user\n"); ++ } else { ++ switch_uid(u); ++ } ++ } ++ } while (0); ++ ++ if ((err = rst_mm_complete(ti, ctx)) != 0) { ++ eprintk_ctx("rst_mm: %d\n", err); ++ goto out; ++ } ++ ++ if ((err = rst_files_complete(ti, ctx)) != 0) { ++ eprintk_ctx("rst_files: %d\n", err); ++ goto out; ++ } ++ ++ if ((err = rst_fs_complete(ti, ctx)) != 0) { ++ eprintk_ctx("rst_fs: %d\n", err); ++ goto out; ++ } ++ ++ if ((err = rst_semundo_complete(ti, ctx)) != 0) { ++ eprintk_ctx("rst_semundo: %d\n", err); ++ goto out; ++ } ++ ++ if ((err = rst_signal_complete(ti, &exiting, ctx)) != 0) { ++ eprintk_ctx("rst_signal: %d\n", err); ++ goto out; ++ } ++ ++ if (ti->cpt_personality != 0) ++ __set_personality(ti->cpt_personality); ++ ++#ifdef CONFIG_X86_64 ++ /* 32bit app from 32bit OS, won't have PER_LINUX32 set... :/ */ ++ if (!ti->cpt_64bit) ++ __set_personality(PER_LINUX32); ++#endif ++ ++ current->set_child_tid = NULL; ++ current->clear_child_tid = NULL; ++ current->flags &= ~(PF_FORKNOEXEC|PF_SUPERPRIV); ++ current->flags |= ti->cpt_flags&(PF_FORKNOEXEC|PF_SUPERPRIV); ++ current->exit_code = ti->cpt_exit_code; ++ current->pdeath_signal = ti->cpt_pdeath_signal; ++ ++ if (ti->cpt_restart.fn != CPT_RBL_0) { ++ if (ti->cpt_restart.fn == CPT_RBL_NANOSLEEP ++#ifdef CONFIG_COMPAT ++ || ti->cpt_restart.fn == CPT_RBL_COMPAT_NANOSLEEP ++#endif ++ ) { ++ struct restart_block *rb; ++ ktime_t e; ++ ++ e.tv64 = 0; ++ ++ if (ctx->image_version >= CPT_VERSION_20) ++ e = ktime_add_ns(e, ti->cpt_restart.arg2); ++ else if (ctx->image_version >= CPT_VERSION_9) ++ e = ktime_add_ns(e, ti->cpt_restart.arg0); ++ else ++ e = ktime_add_ns(e, ti->cpt_restart.arg0*TICK_NSEC); ++ if (e.tv64 < 0) ++ e.tv64 = TICK_NSEC; ++ e = ktime_add(e, timespec_to_ktime(ctx->cpt_monotonic_time)); ++ ++ rb = &task_thread_info(current)->restart_block; ++ if (ti->cpt_restart.fn == CPT_RBL_NANOSLEEP) ++ rb->fn = hrtimer_nanosleep_restart; ++#ifdef CONFIG_COMPAT ++ else ++ rb->fn = compat_nanosleep_restart; ++#endif ++ if (ctx->image_version >= CPT_VERSION_20) { ++ rb->arg0 = ti->cpt_restart.arg0; ++ rb->arg1 = ti->cpt_restart.arg1; ++ rb->arg2 = e.tv64 & 0xFFFFFFFF; ++ rb->arg3 = e.tv64 >> 32; ++ } else if (ctx->image_version >= CPT_VERSION_9) { ++ rb->arg0 = ti->cpt_restart.arg2; ++ rb->arg1 = ti->cpt_restart.arg3; ++ rb->arg2 = e.tv64 & 0xFFFFFFFF; ++ rb->arg3 = e.tv64 >> 32; ++ } else { ++ rb->arg0 = ti->cpt_restart.arg1; ++ rb->arg1 = CLOCK_MONOTONIC; ++ rb->arg2 = e.tv64 & 0xFFFFFFFF; ++ rb->arg3 = e.tv64 >> 32; ++ } ++ } else if (ti->cpt_restart.fn == CPT_RBL_POLL) { ++ struct restart_block *rb; ++ ktime_t e; ++ struct timespec ts; ++ unsigned long timeout_jiffies; ++ ++ e.tv64 = 0; ++ e = ktime_add_ns(e, ti->cpt_restart.arg2); ++ e = ktime_sub(e, timespec_to_ktime(ctx->delta_time)); ++ ts = ns_to_timespec(ktime_to_ns(e)); ++ timeout_jiffies = timespec_to_jiffies(&ts); ++ ++ rb = &task_thread_info(current)->restart_block; ++ rb->fn = do_restart_poll; ++ rb->arg0 = ti->cpt_restart.arg0; ++ rb->arg1 = ti->cpt_restart.arg1; ++ rb->arg2 = timeout_jiffies & 0xFFFFFFFF; ++ rb->arg3 = (u64)timeout_jiffies >> 32; ++ } else if (ti->cpt_restart.fn == CPT_RBL_FUTEX_WAIT) { ++ struct restart_block *rb; ++ ktime_t e; ++ ++ e.tv64 = 0; ++ e = ktime_add_ns(e, ti->cpt_restart.arg2); ++ e = ktime_add(e, timespec_to_ktime(ctx->cpt_monotonic_time)); ++ ++ rb = &task_thread_info(current)->restart_block; ++ rb->fn = futex_wait_restart; ++ rb->futex.uaddr = (void *)(unsigned long)ti->cpt_restart.arg0; ++ rb->futex.val = ti->cpt_restart.arg1; ++ rb->futex.time = e.tv64; ++ rb->futex.flags = ti->cpt_restart.arg3; ++ } else ++ eprintk_ctx("unknown restart block\n"); ++ } ++ ++ if (thread_group_leader(current)) { ++ current->signal->it_real_incr.tv64 = 0; ++ if (ctx->image_version >= CPT_VERSION_9) { ++ current->signal->it_real_incr = ++ ktime_add_ns(current->signal->it_real_incr, ti->cpt_it_real_incr); ++ } else { ++ current->signal->it_real_incr = ++ ktime_add_ns(current->signal->it_real_incr, ti->cpt_it_real_incr*TICK_NSEC); ++ } ++ current->signal->it_prof_incr = ti->cpt_it_prof_incr; ++ current->signal->it_virt_incr = ti->cpt_it_virt_incr; ++ current->signal->it_prof_expires = ti->cpt_it_prof_value; ++ current->signal->it_virt_expires = ti->cpt_it_virt_value; ++ } ++ ++ err = rst_clone_children(tobj, ctx); ++ if (err) { ++ eprintk_ctx("rst_clone_children\n"); ++ goto out; ++ } ++ ++ if (exiting) ++ current->signal->flags |= SIGNAL_GROUP_EXIT; ++ ++ if (ti->cpt_pid == 1) { ++ if ((err = rst_process_linkage(ctx)) != 0) { ++ eprintk_ctx("rst_process_linkage: %d\n", err); ++ goto out; ++ } ++ if ((err = rst_do_filejobs(ctx)) != 0) { ++ eprintk_ctx("rst_do_filejobs: %d\n", err); ++ goto out; ++ } ++ if ((err = rst_eventpoll(ctx)) != 0) { ++ eprintk_ctx("rst_eventpoll: %d\n", err); ++ goto out; ++ } ++#ifdef CONFIG_INOTIFY_USER ++ if ((err = rst_inotify(ctx)) != 0) { ++ eprintk_ctx("rst_inotify: %d\n", err); ++ goto out; ++ } ++#endif ++ if ((err = rst_sockets_complete(ctx)) != 0) { ++ eprintk_ctx("rst_sockets_complete: %d\n", err); ++ goto out; ++ } ++ if ((err = rst_stray_files(ctx)) != 0) { ++ eprintk_ctx("rst_stray_files: %d\n", err); ++ goto out; ++ } ++ if ((err = rst_posix_locks(ctx)) != 0) { ++ eprintk_ctx("rst_posix_locks: %d\n", err); ++ goto out; ++ } ++ if ((err = rst_tty_jobcontrol(ctx)) != 0) { ++ eprintk_ctx("rst_tty_jobcontrol: %d\n", err); ++ goto out; ++ } ++ if ((err = rst_restore_fs(ctx)) != 0) { ++ eprintk_ctx("rst_restore_fs: %d\n", err); ++ goto out; ++ } ++ if (virtinfo_notifier_call(VITYPE_SCP, ++ VIRTINFO_SCP_RESTORE, ctx) & NOTIFY_FAIL) { ++ err = -ECHRNG; ++ eprintk_ctx("scp_restore failed\n"); ++ goto out; ++ } ++ if (ctx->last_vpid) ++ get_exec_env()->ve_ns->pid_ns->last_pid = ++ ctx->last_vpid; ++ } ++ ++out: ++ thr_ctx->error = err; ++ complete(&thr_ctx->task_done); ++ ++ if (!err && (ti->cpt_state & (EXIT_ZOMBIE|EXIT_DEAD))) { ++ current->flags |= PF_EXIT_RESTART; ++ do_exit(ti->cpt_exit_code); ++ } else { ++ __set_current_state(TASK_UNINTERRUPTIBLE); ++ } ++ ++ schedule(); ++ ++ dprintk_ctx("leaked through %d/%d %p\n", task_pid_nr(current), task_pid_vnr(current), current->mm); ++ ++ module_put(THIS_MODULE); ++ complete_and_exit(NULL, 0); ++ return 0; ++} ++ ++#if 0 ++static void set_task_ubs(struct cpt_task_image *ti, struct cpt_context *ctx) ++{ ++ struct task_beancounter *tbc; ++ ++ tbc = task_bc(current); ++ ++ put_beancounter(tbc->fork_sub); ++ tbc->fork_sub = rst_lookup_ubc(ti->cpt_task_ub, ctx); ++ if (ti->cpt_mm_ub != CPT_NULL) { ++ put_beancounter(tbc->exec_ub); ++ tbc->exec_ub = rst_lookup_ubc(ti->cpt_mm_ub, ctx); ++ } ++} ++#endif ++ ++static int create_root_task(cpt_object_t *obj, struct cpt_context *ctx, ++ struct thr_context *thr_ctx) ++{ ++ struct task_struct *tsk; ++ int pid; ++ ++ thr_ctx->ctx = ctx; ++ thr_ctx->error = 0; ++ init_completion(&thr_ctx->init_complete); ++ init_completion(&thr_ctx->task_done); ++#if 0 ++ set_task_ubs(obj->o_image, ctx); ++#endif ++ ++ pid = local_kernel_thread(hook, thr_ctx, 0, 0); ++ if (pid < 0) ++ return pid; ++ read_lock(&tasklist_lock); ++ tsk = find_task_by_vpid(pid); ++ if (tsk) ++ get_task_struct(tsk); ++ read_unlock(&tasklist_lock); ++ if (tsk == NULL) ++ return -ESRCH; ++ cpt_obj_setobj(obj, tsk, ctx); ++ thr_ctx->tobj = obj; ++ return 0; ++} ++ ++static int rst_basic_init_task(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ struct task_struct *tsk = obj->o_obj; ++ struct cpt_task_image *ti = obj->o_image; ++ ++ memcpy(tsk->comm, ti->cpt_comm, sizeof(tsk->comm)); ++ rst_mm_basic(obj, ti, ctx); ++ return 0; ++} ++ ++static int make_baby(cpt_object_t *cobj, ++ struct cpt_task_image *pi, ++ struct cpt_context *ctx) ++{ ++ unsigned long flags; ++ struct cpt_task_image *ci = cobj->o_image; ++ struct thr_context thr_ctx; ++ struct task_struct *tsk; ++ pid_t pid; ++ struct fs_struct *tfs = NULL; ++ ++ flags = rst_mm_flag(ci, ctx) | rst_files_flag(ci, ctx) ++ | rst_signal_flag(ci, ctx) | rst_semundo_flag(ci, ctx); ++ if (ci->cpt_rppid != pi->cpt_pid) { ++ flags |= CLONE_THREAD|CLONE_PARENT; ++ if (ci->cpt_signal != pi->cpt_signal || ++ !(flags&CLONE_SIGHAND) || ++ (!(flags&CLONE_VM) && pi->cpt_mm != CPT_NULL)) { ++ eprintk_ctx("something is wrong with threads: %d %d %d %Ld %Ld %08lx\n", ++ (int)ci->cpt_pid, (int)ci->cpt_rppid, (int)pi->cpt_pid, ++ (long long)ci->cpt_signal, (long long)pi->cpt_signal, flags ++ ); ++ return -EINVAL; ++ } ++ } ++ ++ thr_ctx.ctx = ctx; ++ thr_ctx.error = 0; ++ init_completion(&thr_ctx.init_complete); ++ init_completion(&thr_ctx.task_done); ++ thr_ctx.tobj = cobj; ++ ++#if 0 ++ set_task_ubs(ci, ctx); ++#endif ++ ++ if (current->fs == NULL) { ++ tfs = get_exec_env()->ve_ns->pid_ns->child_reaper->fs; ++ if (tfs == NULL) ++ return -EINVAL; ++ atomic_inc(&tfs->count); ++ current->fs = tfs; ++ } ++ pid = local_kernel_thread(hook, &thr_ctx, flags, ci->cpt_pid); ++ if (tfs) { ++ current->fs = NULL; ++ atomic_dec(&tfs->count); ++ } ++ if (pid < 0) ++ return pid; ++ ++ read_lock(&tasklist_lock); ++ tsk = find_task_by_vpid(pid); ++ if (tsk) ++ get_task_struct(tsk); ++ read_unlock(&tasklist_lock); ++ if (tsk == NULL) ++ return -ESRCH; ++ cpt_obj_setobj(cobj, tsk, ctx); ++ thr_ctx.tobj = cobj; ++ wait_for_completion(&thr_ctx.init_complete); ++ wait_task_inactive(cobj->o_obj); ++ rst_basic_init_task(cobj, ctx); ++ ++ /* clone() increases group_stop_count if it was not zero and ++ * CLONE_THREAD was asked. Undo. ++ */ ++ if (current->signal->group_stop_count && (flags & CLONE_THREAD)) { ++ if (tsk->signal != current->signal) BUG(); ++ current->signal->group_stop_count--; ++ } ++ ++ wake_up_process(tsk); ++ wait_for_completion(&thr_ctx.task_done); ++ wait_task_inactive(tsk); ++ ++ return thr_ctx.error; ++} ++ ++static int rst_clone_children(cpt_object_t *obj, struct cpt_context *ctx) ++{ ++ int err = 0; ++ struct cpt_task_image *ti = obj->o_image; ++ cpt_object_t *cobj; ++ ++ for_each_object(cobj, CPT_OBJ_TASK) { ++ struct cpt_task_image *ci = cobj->o_image; ++ if (cobj == obj) ++ continue; ++ if ((ci->cpt_rppid == ti->cpt_pid && ci->cpt_tgid == ci->cpt_pid) || ++ (ci->cpt_leader == ti->cpt_pid && ++ ci->cpt_tgid != ci->cpt_pid && ci->cpt_pid != 1)) { ++ err = make_baby(cobj, ti, ctx); ++ if (err) { ++ eprintk_ctx("make_baby: %d\n", err); ++ return err; ++ } ++ } ++ } ++ return 0; ++} ++ ++static int read_task_images(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t start, end; ++ ++ err = rst_get_section(CPT_SECT_TASKS, ctx, &start, &end); ++ if (err) ++ return err; ++ ++ while (start < end) { ++ cpt_object_t *obj; ++ struct cpt_task_image *ti = cpt_get_buf(ctx); ++ ++ err = rst_get_object(CPT_OBJ_TASK, start, ti, ctx); ++ if (err) { ++ cpt_release_buf(ctx); ++ return err; ++ } ++#if 0 ++ if (ti->cpt_pid != 1 && !__is_virtual_pid(ti->cpt_pid)) { ++ eprintk_ctx("BUG: pid %d is not virtual\n", ti->cpt_pid); ++ cpt_release_buf(ctx); ++ return -EINVAL; ++ } ++#endif ++ obj = alloc_cpt_object(GFP_KERNEL, ctx); ++ cpt_obj_setpos(obj, start, ctx); ++ intern_cpt_object(CPT_OBJ_TASK, obj, ctx); ++ obj->o_image = kmalloc(ti->cpt_next, GFP_KERNEL); ++ if (obj->o_image == NULL) { ++ cpt_release_buf(ctx); ++ return -ENOMEM; ++ } ++ memcpy(obj->o_image, ti, sizeof(*ti)); ++ err = ctx->pread(obj->o_image + sizeof(*ti), ++ ti->cpt_next - sizeof(*ti), ctx, start + sizeof(*ti)); ++ cpt_release_buf(ctx); ++ if (err) ++ return err; ++ start += ti->cpt_next; ++ } ++ return 0; ++} ++ ++ ++static int vps_rst_restore_tree(struct cpt_context *ctx) ++{ ++ int err; ++ cpt_object_t *obj; ++ struct thr_context thr_ctx_root; ++ ++ err = read_task_images(ctx); ++ if (err) ++ return err; ++ ++ err = rst_undump_ubc(ctx); ++ if (err) ++ return err; ++ ++ if (virtinfo_notifier_call(VITYPE_SCP, ++ VIRTINFO_SCP_RSTCHECK, ctx) & NOTIFY_FAIL) ++ return -ECHRNG; ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ err = rst_setup_pagein(ctx); ++ if (err) ++ return err; ++#endif ++ for_each_object(obj, CPT_OBJ_TASK) { ++ err = create_root_task(obj, ctx, &thr_ctx_root); ++ if (err) ++ return err; ++ ++ wait_for_completion(&thr_ctx_root.init_complete); ++ wait_task_inactive(obj->o_obj); ++ rst_basic_init_task(obj, ctx); ++ ++ wake_up_process(obj->o_obj); ++ wait_for_completion(&thr_ctx_root.task_done); ++ wait_task_inactive(obj->o_obj); ++ err = thr_ctx_root.error; ++ if (err) ++ return err; ++ break; ++ } ++ ++ return err; ++} ++ ++#ifndef CONFIG_IA64 ++int rst_read_vdso(struct cpt_context *ctx) ++{ ++ int err; ++ loff_t start, end; ++ struct cpt_page_block *pgb; ++ ++ ctx->vdso = NULL; ++ err = rst_get_section(CPT_SECT_VSYSCALL, ctx, &start, &end); ++ if (err) ++ return err; ++ if (start == CPT_NULL) ++ return 0; ++ if (end < start + sizeof(*pgb) + PAGE_SIZE) ++ return -EINVAL; ++ ++ pgb = cpt_get_buf(ctx); ++ err = rst_get_object(CPT_OBJ_VSYSCALL, start, pgb, ctx); ++ if (err) { ++ goto err_buf; ++ } ++ ctx->vdso = (char*)__get_free_page(GFP_KERNEL); ++ if (ctx->vdso == NULL) { ++ err = -ENOMEM; ++ goto err_buf; ++ } ++ err = ctx->pread(ctx->vdso, PAGE_SIZE, ctx, start + sizeof(*pgb)); ++ if (err) ++ goto err_page; ++ if (!memcmp(ctx->vdso, vsyscall_addr, PAGE_SIZE)) { ++ free_page((unsigned long)ctx->vdso); ++ ctx->vdso = NULL; ++ } ++ ++ cpt_release_buf(ctx); ++ return 0; ++err_page: ++ free_page((unsigned long)ctx->vdso); ++ ctx->vdso = NULL; ++err_buf: ++ cpt_release_buf(ctx); ++ return err; ++} ++#endif ++ ++int vps_rst_undump(struct cpt_context *ctx) ++{ ++ int err; ++ unsigned long umask; ++ ++ err = rst_open_dumpfile(ctx); ++ if (err) ++ return err; ++ ++ if (ctx->tasks64) { ++#if defined(CONFIG_IA64) ++ if (ctx->image_arch != CPT_OS_ARCH_IA64) ++#elif defined(CONFIG_X86_64) ++ if (ctx->image_arch != CPT_OS_ARCH_EMT64) ++#else ++ if (1) ++#endif ++ { ++ eprintk_ctx("Cannot restore 64 bit container on this architecture\n"); ++ return -EINVAL; ++ } ++ } ++ ++ umask = current->fs->umask; ++ current->fs->umask = 0; ++ ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ err = rst_setup_pagein(ctx); ++#endif ++#ifndef CONFIG_IA64 ++ if (err == 0) ++ err = rst_read_vdso(ctx); ++#endif ++ if (err == 0) ++ err = vps_rst_restore_tree(ctx); ++ ++ if (err == 0) ++ err = rst_restore_process(ctx); ++ ++ if (err) ++ virtinfo_notifier_call(VITYPE_SCP, ++ VIRTINFO_SCP_RSTFAIL, ctx); ++ ++ current->fs->umask = umask; ++ ++ return err; ++} ++ ++static int rst_unlock_ve(struct cpt_context *ctx) ++{ ++ struct ve_struct *env; ++ ++ env = get_ve_by_id(ctx->ve_id); ++ if (!env) ++ return -ESRCH; ++ down_write(&env->op_sem); ++ env->is_locked = 0; ++ up_write(&env->op_sem); ++ put_ve(env); ++ return 0; ++} ++ ++int recalc_sigpending_tsk(struct task_struct *t); ++ ++int rst_resume(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ int err = 0; ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *bc; ++#endif ++ ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ ++ fput(file); ++ } ++ ++#ifdef CONFIG_BEANCOUNTERS ++ bc = get_beancounter_byuid(ctx->ve_id, 0); ++ BUG_ON(!bc); ++ copy_one_ubparm(ctx->saved_ubc, bc->ub_parms, UB_KMEMSIZE); ++ copy_one_ubparm(ctx->saved_ubc, bc->ub_parms, UB_NUMPROC); ++ copy_one_ubparm(ctx->saved_ubc, bc->ub_parms, UB_NUMFILE); ++ copy_one_ubparm(ctx->saved_ubc, bc->ub_parms, UB_DCACHESIZE); ++ put_beancounter(bc); ++#endif ++ ++ rst_resume_network(ctx); ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ struct cpt_task_image *ti = obj->o_image; ++ ++ if (!tsk) ++ continue; ++ ++ if (ti->cpt_state == TASK_UNINTERRUPTIBLE) { ++ dprintk_ctx("task %d/%d(%s) is started\n", task_pid_vnr(tsk), tsk->pid, tsk->comm); ++ ++ /* Weird... If a signal is sent to stopped task, ++ * nobody makes recalc_sigpending(). We have to do ++ * this by hands after wake_up_process(). ++ * if we did this before a signal could arrive before ++ * wake_up_process() and stall. ++ */ ++ spin_lock_irq(&tsk->sighand->siglock); ++ if (!signal_pending(tsk)) ++ recalc_sigpending_tsk(tsk); ++ spin_unlock_irq(&tsk->sighand->siglock); ++ ++ wake_up_process(tsk); ++ } else { ++ if (ti->cpt_state == TASK_STOPPED || ++ ti->cpt_state == TASK_TRACED) { ++ set_task_state(tsk, ti->cpt_state); ++ } ++ } ++ put_task_struct(tsk); ++ } ++ ++ rst_unlock_ve(ctx); ++ ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ rst_complete_pagein(ctx, 0); ++#endif ++ ++ rst_finish_ubc(ctx); ++ cpt_object_destroy(ctx); ++ ++ return err; ++} ++ ++int rst_kill(struct cpt_context *ctx) ++{ ++ cpt_object_t *obj; ++ int err = 0; ++ ++ for_each_object(obj, CPT_OBJ_FILE) { ++ struct file *file = obj->o_obj; ++ ++ fput(file); ++ } ++ ++ for_each_object(obj, CPT_OBJ_TASK) { ++ struct task_struct *tsk = obj->o_obj; ++ ++ if (tsk == NULL) ++ continue; ++ ++ if (tsk->exit_state == 0) { ++ send_sig(SIGKILL, tsk, 1); ++ ++ spin_lock_irq(&tsk->sighand->siglock); ++ sigfillset(&tsk->blocked); ++ sigdelsetmask(&tsk->blocked, sigmask(SIGKILL)); ++ set_tsk_thread_flag(tsk, TIF_SIGPENDING); ++ clear_tsk_thread_flag(tsk, TIF_FREEZE); ++ if (tsk->flags & PF_FROZEN) ++ tsk->flags &= ~PF_FROZEN; ++ spin_unlock_irq(&tsk->sighand->siglock); ++ ++ wake_up_process(tsk); ++ } ++ ++ put_task_struct(tsk); ++ } ++ ++#ifdef CONFIG_VZ_CHECKPOINT_LAZY ++ rst_complete_pagein(ctx, 1); ++#endif ++ ++ rst_finish_ubc(ctx); ++ cpt_object_destroy(ctx); ++ ++ return err; ++} ++ ++static int rst_utsname(cpt_context_t *ctx) ++{ ++ int err; ++ loff_t sec = ctx->sections[CPT_SECT_UTSNAME]; ++ loff_t endsec; ++ struct cpt_section_hdr h; ++ struct cpt_object_hdr o; ++ struct ve_struct *ve; ++ struct uts_namespace *ns; ++ int i; ++ ++ if (sec == CPT_NULL) ++ return 0; ++ ++ err = ctx->pread(&h, sizeof(h), ctx, sec); ++ if (err) ++ return err; ++ if (h.cpt_section != CPT_SECT_UTSNAME || h.cpt_hdrlen < sizeof(h)) ++ return -EINVAL; ++ ++ ve = get_exec_env(); ++ ns = ve->ve_ns->uts_ns; ++ ++ i = 0; ++ endsec = sec + h.cpt_next; ++ sec += h.cpt_hdrlen; ++ while (sec < endsec) { ++ int len; ++ char *ptr; ++ err = rst_get_object(CPT_OBJ_NAME, sec, &o, ctx); ++ if (err) ++ return err; ++ len = o.cpt_next - o.cpt_hdrlen; ++ if (len > __NEW_UTS_LEN + 1) ++ return -ENAMETOOLONG; ++ switch (i) { ++ case 0: ++ ptr = ns->name.nodename; break; ++ case 1: ++ ptr = ns->name.domainname; break; ++ default: ++ return -EINVAL; ++ } ++ err = ctx->pread(ptr, len, ctx, sec+o.cpt_hdrlen); ++ if (err) ++ return err; ++ i++; ++ sec += o.cpt_next; ++ } ++ ++ return 0; ++} +Index: kernel/kernel/cpu.c +=================================================================== +--- kernel.orig/kernel/cpu.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/cpu.c 2008-11-24 15:47:46.000000000 +0100 +@@ -92,7 +92,7 @@ + struct task_struct *p; + + write_lock_irq(&tasklist_lock); +- for_each_process(p) { ++ for_each_process_all(p) { + if (task_cpu(p) == cpu && + (!cputime_eq(p->utime, cputime_zero) || + !cputime_eq(p->stime, cputime_zero))) +Index: kernel/kernel/exit.c +=================================================================== +--- kernel.orig/kernel/exit.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/exit.c 2008-11-24 15:47:46.000000000 +0100 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -42,8 +43,13 @@ + #include + #include /* for audit_free() */ + #include ++#include + #include + #include ++#include ++ ++#include ++#include + + #include + #include +@@ -52,7 +58,7 @@ + + extern void sem_exit (void); + +-static void exit_mm(struct task_struct * tsk); ++void exit_mm(struct task_struct * tsk); + + static void __unhash_process(struct task_struct *p) + { +@@ -63,6 +69,9 @@ + detach_pid(p, PIDTYPE_SID); + + list_del_rcu(&p->tasks); ++#ifdef CONFIG_VE ++ list_del_rcu(&p->ve_task_info.vetask_list); ++#endif + __get_cpu_var(process_counts)--; + } + list_del_rcu(&p->thread_group); +@@ -153,6 +162,8 @@ + ptrace_unlink(p); + BUG_ON(!list_empty(&p->ptrace_list) || !list_empty(&p->ptrace_children)); + __exit_signal(p); ++ nr_zombie--; ++ atomic_inc(&nr_dead); + + /* + * If we are the last non-leader member of the thread +@@ -177,6 +188,8 @@ + + write_unlock_irq(&tasklist_lock); + release_thread(p); ++ ub_task_uncharge(p); ++ pput_ve(p->ve_task_info.owner_env); + call_rcu(&p->rcu, delayed_put_task_struct); + + p = leader; +@@ -307,16 +320,17 @@ + if (task_pgrp_nr(curr) != pgrp) { + detach_pid(curr, PIDTYPE_PGID); + set_task_pgrp(curr, pgrp); +- attach_pid(curr, PIDTYPE_PGID, find_pid(pgrp)); ++ attach_pid(curr, PIDTYPE_PGID, find_pid_ns(pgrp, &init_pid_ns)); + } + } + +-static void set_special_pids(pid_t session, pid_t pgrp) ++void set_special_pids(pid_t session, pid_t pgrp) + { + write_lock_irq(&tasklist_lock); + __set_special_pids(session, pgrp); + write_unlock_irq(&tasklist_lock); + } ++EXPORT_SYMBOL(set_special_pids); + + /* + * Let kernel threads use this to say that they +@@ -554,13 +568,17 @@ + * Turn us into a lazy TLB process if we + * aren't already.. + */ +-static void exit_mm(struct task_struct * tsk) ++void exit_mm(struct task_struct * tsk) + { + struct mm_struct *mm = tsk->mm; + + mm_release(tsk, mm); + if (!mm) + return; ++ ++ if (test_tsk_thread_flag(tsk, TIF_MEMDIE)) ++ mm->oom_killed = 1; ++ + /* + * Serialize with any possible pending coredump. + * We must hold mmap_sem around checking core_waiters +@@ -591,6 +609,7 @@ + task_unlock(tsk); + mmput(mm); + } ++EXPORT_SYMBOL_GPL(exit_mm); + + static void + reparent_thread(struct task_struct *p, struct task_struct *father, int traced) +@@ -817,6 +836,9 @@ + && !capable(CAP_KILL)) + tsk->exit_signal = SIGCHLD; + ++ if (tsk->exit_signal != -1 && t == init_pid_ns.child_reaper) ++ /* We dont want people slaying init. */ ++ tsk->exit_signal = SIGCHLD; + + /* If something other than our normal parent is ptracing us, then + * send it a SIGCHLD instead of honoring exit_signal. exit_signal +@@ -833,6 +855,7 @@ + if (tsk->exit_signal == -1 && likely(!tsk->ptrace)) + state = EXIT_DEAD; + tsk->exit_state = state; ++ nr_zombie++; + + if (thread_group_leader(tsk) && + tsk->signal->notify_count < 0 && +@@ -881,7 +904,6 @@ + + if (tsk->nsproxy->pid_ns == &init_pid_ns) + panic("Attempted to kill init!"); +- + /* + * @tsk is the last thread in the 'cgroup-init' and is exiting. + * Terminate all remaining processes in the namespace and reap them +@@ -905,6 +927,7 @@ + * perform the role of the child_reaper. + */ + zap_pid_ns_processes(tsk->nsproxy->pid_ns); ++ (void)virtinfo_gencall(VIRTINFO_DOEXIT, NULL); + } + + fastcall NORET_TYPE void do_exit(long code) +@@ -975,12 +998,14 @@ + } + acct_collect(code, group_dead); + #ifdef CONFIG_FUTEX +- if (unlikely(tsk->robust_list)) +- exit_robust_list(tsk); ++ if (!(tsk->flags & PF_EXIT_RESTART)) { ++ if (unlikely(tsk->robust_list)) ++ exit_robust_list(tsk); + #ifdef CONFIG_COMPAT +- if (unlikely(tsk->compat_robust_list)) +- compat_exit_robust_list(tsk); ++ if (unlikely(tsk->compat_robust_list)) ++ compat_exit_robust_list(tsk); + #endif ++ } + #endif + if (group_dead) + tty_audit_exit(); +@@ -1009,8 +1034,16 @@ + if (tsk->binfmt) + module_put(tsk->binfmt->module); + +- proc_exit_connector(tsk); +- exit_notify(tsk); ++ if (!(tsk->flags & PF_EXIT_RESTART)) { ++ proc_exit_connector(tsk); ++ exit_notify(tsk); ++ } else { ++ write_lock_irq(&tasklist_lock); ++ tsk->exit_state = EXIT_ZOMBIE; ++ nr_zombie++; ++ write_unlock_irq(&tasklist_lock); ++ exit_task_namespaces(tsk); ++ } + #ifdef CONFIG_NUMA + mpol_free(tsk->mempolicy); + tsk->mempolicy = NULL; +@@ -1740,6 +1773,7 @@ + prevent_tail_call(ret); + return ret; + } ++EXPORT_SYMBOL_GPL(sys_wait4); + + #ifdef __ARCH_WANT_SYS_WAITPID + +Index: kernel/kernel/fork.c +=================================================================== +--- kernel.orig/kernel/fork.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/fork.c 2008-11-24 15:47:46.000000000 +0100 +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -25,6 +26,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -51,6 +53,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -59,11 +62,16 @@ + #include + #include + ++#include ++#include ++#include ++ + /* + * Protected counters by write_lock_irq(&tasklist_lock) + */ + unsigned long total_forks; /* Handle normal Linux uptimes. */ + int nr_threads; /* The idle threads do not count.. */ ++EXPORT_SYMBOL(nr_threads); + + int max_threads; /* tunable limit on nr_threads */ + +@@ -71,6 +79,8 @@ + + __cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */ + ++EXPORT_SYMBOL(tasklist_lock); ++ + int nr_processes(void) + { + int cpu; +@@ -121,15 +131,22 @@ + WARN_ON(atomic_read(&tsk->usage)); + WARN_ON(tsk == current); + ++ ub_task_put(tsk); + security_task_free(tsk); + free_uid(tsk->user); + put_group_info(tsk->group_info); + delayacct_tsk_free(tsk); + ++#ifdef CONFIG_VE ++ put_ve(VE_TASK_INFO(tsk)->owner_env); ++ atomic_dec(&nr_dead); ++#endif + if (!profile_handoff_task(tsk)) + free_task(tsk); + } + ++EXPORT_SYMBOL_GPL(__put_task_struct); ++ + void __init fork_init(unsigned long mempages) + { + #ifndef __HAVE_ARCH_TASK_STRUCT_ALLOCATOR +@@ -139,7 +156,7 @@ + /* create a slab on which task_structs can be allocated */ + task_struct_cachep = + kmem_cache_create("task_struct", sizeof(struct task_struct), +- ARCH_MIN_TASKALIGN, SLAB_PANIC, NULL); ++ ARCH_MIN_TASKALIGN, SLAB_PANIC|SLAB_UBC, NULL); + #endif + + /* +@@ -243,7 +260,12 @@ + -pages); + continue; + } ++ + charge = 0; ++ if (ub_memory_charge(mm, mpnt->vm_end - mpnt->vm_start, ++ mpnt->vm_flags & ~VM_LOCKED, ++ mpnt->vm_file, UB_HARD)) ++ goto fail_noch; + if (mpnt->vm_flags & VM_ACCOUNT) { + unsigned int len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; + if (security_vm_enough_memory(len)) +@@ -290,7 +312,7 @@ + rb_parent = &tmp->vm_rb; + + mm->map_count++; +- retval = copy_page_range(mm, oldmm, mpnt); ++ retval = copy_page_range(mm, oldmm, tmp, mpnt); + + if (tmp->vm_ops && tmp->vm_ops->open) + tmp->vm_ops->open(tmp); +@@ -309,6 +331,9 @@ + fail_nomem_policy: + kmem_cache_free(vm_area_cachep, tmp); + fail_nomem: ++ ub_memory_uncharge(mm, mpnt->vm_end - mpnt->vm_start, ++ mpnt->vm_flags & ~VM_LOCKED, mpnt->vm_file); ++fail_noch: + retval = -ENOMEM; + vm_unacct_memory(charge); + goto out; +@@ -339,7 +364,8 @@ + + #include + +-static struct mm_struct * mm_init(struct mm_struct * mm) ++static struct mm_struct * mm_init(struct mm_struct * mm, ++ struct task_struct *tsk) + { + atomic_set(&mm->mm_users, 1); + atomic_set(&mm->mm_count, 1); +@@ -356,11 +382,14 @@ + mm->ioctx_list = NULL; + mm->free_area_cache = TASK_UNMAPPED_BASE; + mm->cached_hole_size = ~0UL; ++ set_mm_ub(mm, tsk); + + if (likely(!mm_alloc_pgd(mm))) { + mm->def_flags = 0; + return mm; + } ++ ++ put_mm_ub(mm); + free_mm(mm); + return NULL; + } +@@ -375,10 +404,11 @@ + mm = allocate_mm(); + if (mm) { + memset(mm, 0, sizeof(*mm)); +- mm = mm_init(mm); ++ mm = mm_init(mm, NULL); + } + return mm; + } ++EXPORT_SYMBOL_GPL(mm_alloc); + + /* + * Called when the last reference to the mm +@@ -390,6 +420,7 @@ + BUG_ON(mm == &init_mm); + mm_free_pgd(mm); + destroy_context(mm); ++ put_mm_ub(mm); + free_mm(mm); + } + EXPORT_SYMBOL_GPL(__mmdrop); +@@ -410,6 +441,9 @@ + spin_unlock(&mmlist_lock); + } + put_swap_token(mm); ++ (void) virtinfo_gencall(VIRTINFO_EXITMMAP, mm); ++ if (mm->oom_killed) ++ ub_oom_task_dead(current); + mmdrop(mm); + } + } +@@ -510,7 +544,7 @@ + mm->token_priority = 0; + mm->last_interval = 0; + +- if (!mm_init(mm)) ++ if (!mm_init(mm, tsk)) + goto fail_nomem; + + if (init_new_context(tsk, mm)) +@@ -537,6 +571,7 @@ + * because it calls destroy_context() + */ + mm_free_pgd(mm); ++ put_mm_ub(mm); + free_mm(mm); + return NULL; + } +@@ -976,14 +1011,19 @@ + struct pt_regs *regs, + unsigned long stack_size, + int __user *child_tidptr, +- struct pid *pid) ++ struct pid *pid, pid_t vpid) + { + int retval; + struct task_struct *p; + int cgroup_callbacks_done = 0; + ++#ifdef CONFIG_VE ++ if (clone_flags & CLONE_NAMESPACES_MASK) ++ return ERR_PTR(-EINVAL); ++#else + if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS)) + return ERR_PTR(-EINVAL); ++#endif + + /* + * Thread groups must share signals as well, and detached threads +@@ -1011,6 +1051,9 @@ + + rt_mutex_init_task(p); + ++ if (ub_task_charge(current, p)) ++ goto bad_fork_charge; ++ + #ifdef CONFIG_TRACE_IRQFLAGS + DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled); + DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); +@@ -1154,7 +1197,7 @@ + + if (pid != &init_struct_pid) { + retval = -ENOMEM; +- pid = alloc_pid(task_active_pid_ns(p)); ++ pid = alloc_pid(task_active_pid_ns(p), vpid); + if (!pid) + goto bad_fork_cleanup_namespaces; + +@@ -1261,7 +1304,7 @@ + * thread can't slip out of an OOM kill (or normal SIGKILL). + */ + recalc_sigpending(); +- if (signal_pending(current)) { ++ if (signal_pending(current) && !vpid) { + spin_unlock(¤t->sighand->siglock); + write_unlock_irq(&tasklist_lock); + retval = -ERESTARTNOINTR; +@@ -1302,13 +1345,23 @@ + set_task_session(p, task_session_nr(current)); + attach_pid(p, PIDTYPE_PGID, task_pgrp(current)); + attach_pid(p, PIDTYPE_SID, task_session(current)); ++ + list_add_tail_rcu(&p->tasks, &init_task.tasks); ++#ifdef CONFIG_VE ++ list_add_tail_rcu(&p->ve_task_info.vetask_list, ++ &p->ve_task_info.owner_env->vetask_lh); ++#endif + __get_cpu_var(process_counts)++; + } + attach_pid(p, PIDTYPE_PID, pid); + nr_threads++; + } ++ (void)get_ve(p->ve_task_info.owner_env); ++ pget_ve(p->ve_task_info.owner_env); + ++#ifdef CONFIG_VE ++ seqcount_init(&p->ve_task_info.wakeup_lock); ++#endif + total_forks++; + spin_unlock(¤t->sighand->siglock); + write_unlock_irq(&tasklist_lock); +@@ -1356,6 +1409,9 @@ + atomic_dec(&p->user->processes); + free_uid(p->user); + bad_fork_free: ++ ub_task_uncharge(p); ++ ub_task_put(p); ++bad_fork_charge: + free_task(p); + fork_out: + return ERR_PTR(retval); +@@ -1373,7 +1429,7 @@ + struct pt_regs regs; + + task = copy_process(CLONE_VM, 0, idle_regs(®s), 0, NULL, +- &init_struct_pid); ++ &init_struct_pid, 0); + if (!IS_ERR(task)) + init_idle(task, cpu); + +@@ -1402,17 +1458,22 @@ + * It copies the process, and if successful kick-starts + * it and waits for it to finish using the VM if required. + */ +-long do_fork(unsigned long clone_flags, ++long do_fork_pid(unsigned long clone_flags, + unsigned long stack_start, + struct pt_regs *regs, + unsigned long stack_size, + int __user *parent_tidptr, +- int __user *child_tidptr) ++ int __user *child_tidptr, ++ long vpid) + { + struct task_struct *p; + int trace = 0; + long nr; + ++ nr = virtinfo_gencall(VIRTINFO_DOFORK, (void *)clone_flags); ++ if (nr) ++ return nr; ++ + if (unlikely(current->ptrace)) { + trace = fork_traceflag (clone_flags); + if (trace) +@@ -1420,7 +1481,7 @@ + } + + p = copy_process(clone_flags, stack_start, regs, stack_size, +- child_tidptr, NULL); ++ child_tidptr, NULL, vpid); + /* + * Do this prior waking up the new thread - the thread pointer + * might get invalid after that point, if the thread exits quickly. +@@ -1452,6 +1513,8 @@ + set_tsk_thread_flag(p, TIF_SIGPENDING); + } + ++ (void)virtinfo_gencall(VIRTINFO_DOFORKRET, p); ++ + if (!(clone_flags & CLONE_STOPPED)) + wake_up_new_task(p, clone_flags); + else +@@ -1474,6 +1537,8 @@ + } else { + nr = PTR_ERR(p); + } ++ ++ (void)virtinfo_gencall(VIRTINFO_DOFORKPOST, (void *)(long)nr); + return nr; + } + +@@ -1489,27 +1554,40 @@ + init_waitqueue_head(&sighand->signalfd_wqh); + } + ++EXPORT_SYMBOL(do_fork_pid); ++ ++long do_fork(unsigned long clone_flags, ++ unsigned long stack_start, ++ struct pt_regs *regs, ++ unsigned long stack_size, ++ int __user *parent_tidptr, ++ int __user *child_tidptr) ++{ ++ return do_fork_pid(clone_flags, stack_start, regs, stack_size, ++ parent_tidptr, child_tidptr, 0); ++} ++ + void __init proc_caches_init(void) + { + sighand_cachep = kmem_cache_create("sighand_cache", + sizeof(struct sighand_struct), 0, +- SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_DESTROY_BY_RCU, ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_DESTROY_BY_RCU|SLAB_UBC, + sighand_ctor); + signal_cachep = kmem_cache_create("signal_cache", + sizeof(struct signal_struct), 0, +- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_UBC, NULL); + files_cachep = kmem_cache_create("files_cache", + sizeof(struct files_struct), 0, +- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_UBC, NULL); + fs_cachep = kmem_cache_create("fs_cache", + sizeof(struct fs_struct), 0, +- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_UBC, NULL); + vm_area_cachep = kmem_cache_create("vm_area_struct", + sizeof(struct vm_area_struct), 0, +- SLAB_PANIC, NULL); ++ SLAB_PANIC|SLAB_UBC, NULL); + mm_cachep = kmem_cache_create("mm_struct", + sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN, +- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_UBC, NULL); + } + + /* +@@ -1659,6 +1737,10 @@ + CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER| + CLONE_NEWNET)) + goto bad_unshare_out; ++#ifdef CONFIG_VE ++ if (unshare_flags & CLONE_NAMESPACES_MASK) ++ goto bad_unshare_out; ++#endif + + if ((err = unshare_thread(unshare_flags))) + goto bad_unshare_out; +@@ -1672,9 +1754,11 @@ + goto bad_unshare_cleanup_vm; + if ((err = unshare_semundo(unshare_flags, &new_ulist))) + goto bad_unshare_cleanup_fd; ++#ifndef CONFIG_VE + if ((err = unshare_nsproxy_namespaces(unshare_flags, &new_nsproxy, + new_fs))) + goto bad_unshare_cleanup_semundo; ++#endif + + if (new_fs || new_mm || new_fd || new_ulist || new_nsproxy) { + +@@ -1712,7 +1796,9 @@ + if (new_nsproxy) + put_nsproxy(new_nsproxy); + ++#ifndef CONFIG_VE + bad_unshare_cleanup_semundo: ++#endif + bad_unshare_cleanup_fd: + if (new_fd) + put_files_struct(new_fd); +Index: kernel/kernel/futex.c +=================================================================== +--- kernel.orig/kernel/futex.c 2008-11-24 14:14:38.000000000 +0100 ++++ kernel/kernel/futex.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1157,8 +1157,6 @@ + */ + #define FLAGS_SHARED 1 + +-static long futex_wait_restart(struct restart_block *restart); +- + static int futex_wait(u32 __user *uaddr, struct rw_semaphore *fshared, + u32 val, ktime_t *abs_time) + { +@@ -1313,7 +1311,7 @@ + } + + +-static long futex_wait_restart(struct restart_block *restart) ++long futex_wait_restart(struct restart_block *restart) + { + u32 __user *uaddr = (u32 __user *)restart->futex.uaddr; + struct rw_semaphore *fshared = NULL; +@@ -1325,6 +1323,7 @@ + fshared = ¤t->mm->mmap_sem; + return (long)futex_wait(uaddr, fshared, restart->futex.val, &t); + } ++EXPORT_SYMBOL_GPL(futex_wait_restart); + + + /* +Index: kernel/kernel/futex_compat.c +=================================================================== +--- kernel.orig/kernel/futex_compat.c 2008-11-24 14:14:38.000000000 +0100 ++++ kernel/kernel/futex_compat.c 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include + +Index: kernel/kernel/hrtimer.c +=================================================================== +--- kernel.orig/kernel/hrtimer.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/hrtimer.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1347,6 +1347,7 @@ + /* The other values in restart are already filled in */ + return -ERESTART_RESTARTBLOCK; + } ++EXPORT_SYMBOL_GPL(hrtimer_nanosleep_restart); + + long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp, + const enum hrtimer_mode mode, const clockid_t clockid) +Index: kernel/kernel/kmod.c +=================================================================== +--- kernel.orig/kernel/kmod.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/kmod.c 2008-11-24 15:47:46.000000000 +0100 +@@ -77,6 +77,10 @@ + #define MAX_KMOD_CONCURRENT 50 /* Completely arbitrary value - KAO */ + static int kmod_loop_msg; + ++ /* Don't allow request_module() inside VE. */ ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; ++ + va_start(args, fmt); + ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args); + va_end(args); +@@ -453,6 +457,9 @@ + DECLARE_COMPLETION_ONSTACK(done); + int retval = 0; + ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; ++ + helper_lock(); + if (sub_info->path[0] == '\0') + goto out; +Index: kernel/kernel/kprobes.c +=================================================================== +--- kernel.orig/kernel/kprobes.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/kprobes.c 2008-11-24 15:47:46.000000000 +0100 +@@ -106,14 +106,14 @@ + ret = freeze_processes(); + if (ret == 0) { + struct task_struct *p, *q; +- do_each_thread(p, q) { ++ do_each_thread_all(p, q) { + if (p != current && p->state == TASK_RUNNING && + p->pid != 0) { + printk("Check failed: %s is running\n",p->comm); + ret = -1; + goto loop_end; + } +- } while_each_thread(p, q); ++ } while_each_thread_all(p, q); + } + loop_end: + thaw_processes(); +Index: kernel/kernel/lockdep.c +=================================================================== +--- kernel.orig/kernel/lockdep.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/lockdep.c 2008-11-24 15:47:46.000000000 +0100 +@@ -3182,7 +3182,7 @@ + if (count != 10) + printk(" locked it.\n"); + +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + /* + * It's not reliable to print a task's held locks + * if it's not sleeping (or if it's not the current +@@ -3195,7 +3195,7 @@ + if (!unlock) + if (read_trylock(&tasklist_lock)) + unlock = 1; +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + + printk("\n"); + printk("=============================================\n\n"); +Index: kernel/kernel/module.c +=================================================================== +--- kernel.orig/kernel/module.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/module.c 2008-11-24 15:47:46.000000000 +0100 +@@ -2349,6 +2349,8 @@ + static void *m_start(struct seq_file *m, loff_t *pos) + { + mutex_lock(&module_mutex); ++ if (!ve_is_super(get_exec_env())) ++ return NULL; + return seq_list_start(&modules, *pos); + } + +Index: kernel/kernel/nsproxy.c +=================================================================== +--- kernel.orig/kernel/nsproxy.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/nsproxy.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,14 @@ + + struct nsproxy init_nsproxy = INIT_NSPROXY(init_nsproxy); + ++void get_task_namespaces(struct task_struct *tsk) ++{ ++ struct nsproxy *ns = tsk->nsproxy; ++ if (ns) { ++ get_nsproxy(ns); ++ } ++} ++ + /* + * creates a copy of "orig" with refcount 1. + */ +@@ -132,12 +140,12 @@ + if (!(flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC | + CLONE_NEWUSER | CLONE_NEWPID | CLONE_NEWNET))) + return 0; +- ++#ifndef CONFIG_VE + if (!capable(CAP_SYS_ADMIN)) { + err = -EPERM; + goto out; + } +- ++#endif + new_ns = create_new_namespaces(flags, tsk, tsk->fs); + if (IS_ERR(new_ns)) { + err = PTR_ERR(new_ns); +@@ -156,6 +164,7 @@ + put_nsproxy(old_ns); + return err; + } ++EXPORT_SYMBOL_GPL(copy_namespaces); + + void free_nsproxy(struct nsproxy *ns) + { +@@ -172,6 +181,22 @@ + put_net(ns->net_ns); + kmem_cache_free(nsproxy_cachep, ns); + } ++EXPORT_SYMBOL_GPL(free_nsproxy); ++ ++struct mnt_namespace * get_task_mnt_ns(struct task_struct *tsk) ++{ ++ struct mnt_namespace *mnt_ns = NULL; ++ ++ task_lock(tsk); ++ if (tsk->nsproxy) ++ mnt_ns = tsk->nsproxy->mnt_ns; ++ if (mnt_ns) ++ get_mnt_ns(mnt_ns); ++ task_unlock(tsk); ++ ++ return mnt_ns; ++} ++EXPORT_SYMBOL(get_task_mnt_ns); + + /* + * Called from unshare. Unshare all the namespaces part of nsproxy. +Index: kernel/kernel/panic.c +=================================================================== +--- kernel.orig/kernel/panic.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/panic.c 2008-11-24 15:47:46.000000000 +0100 +@@ -28,6 +28,8 @@ + static DEFINE_SPINLOCK(pause_on_oops_lock); + + int panic_timeout; ++int kernel_text_csum_broken; ++EXPORT_SYMBOL(kernel_text_csum_broken); + + ATOMIC_NOTIFIER_HEAD(panic_notifier_list); + +@@ -160,7 +162,8 @@ + { + static char buf[20]; + if (tainted) { +- snprintf(buf, sizeof(buf), "Tainted: %c%c%c%c%c%c%c%c", ++ snprintf(buf, sizeof(buf), "Tainted: %c%c%c%c%c%c%c%c%c", ++ kernel_text_csum_broken ? 'B' : ' ', + tainted & TAINT_PROPRIETARY_MODULE ? 'P' : 'G', + tainted & TAINT_FORCED_MODULE ? 'F' : ' ', + tainted & TAINT_UNSAFE_SMP ? 'S' : ' ', +Index: kernel/kernel/pid.c +=================================================================== +--- kernel.orig/kernel/pid.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/pid.c 2008-11-24 15:47:46.000000000 +0100 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -39,6 +40,7 @@ + #define pid_hashfn(nr, ns) \ + hash_long((unsigned long)nr + (unsigned long)ns, pidhash_shift) + static struct hlist_head *pid_hash; ++ + static int pidhash_shift; + struct pid init_struct_pid = INIT_STRUCT_PID; + static struct kmem_cache *pid_ns_cachep; +@@ -120,6 +122,7 @@ + clear_bit(offset, map->page); + atomic_inc(&map->nr_free); + } ++EXPORT_SYMBOL_GPL(free_pidmap); + + static int alloc_pidmap(struct pid_namespace *pid_ns) + { +@@ -181,6 +184,36 @@ + return -1; + } + ++static int set_pidmap(struct pid_namespace *pid_ns, pid_t pid) ++{ ++ int offset; ++ struct pidmap *map; ++ ++ offset = pid & BITS_PER_PAGE_MASK; ++ map = &pid_ns->pidmap[pid/BITS_PER_PAGE]; ++ if (unlikely(!map->page)) { ++ void *page = kzalloc(PAGE_SIZE, GFP_KERNEL); ++ /* ++ * Free the page if someone raced with us ++ * installing it: ++ */ ++ spin_lock_irq(&pidmap_lock); ++ if (map->page) ++ kfree(page); ++ else ++ map->page = page; ++ spin_unlock_irq(&pidmap_lock); ++ if (unlikely(!map->page)) ++ return -ENOMEM; ++ } ++ ++ if (test_and_set_bit(offset, map->page)) ++ return -EBUSY; ++ ++ atomic_dec(&map->nr_free); ++ return pid; ++} ++ + static int next_pidmap(struct pid_namespace *pid_ns, int last) + { + int offset; +@@ -198,6 +231,7 @@ + } + return -1; + } ++EXPORT_SYMBOL_GPL(alloc_pidmap); + + fastcall void put_pid(struct pid *pid) + { +@@ -230,21 +264,25 @@ + spin_lock_irqsave(&pidmap_lock, flags); + for (i = 0; i <= pid->level; i++) + hlist_del_rcu(&pid->numbers[i].pid_chain); +- spin_unlock_irqrestore(&pidmap_lock, flags); ++ spin_unlock(&pidmap_lock); ++ ub_kmemsize_uncharge(pid->ub, pid->numbers[pid->level].ns->pid_cachep->objuse); ++ local_irq_restore(flags); + + for (i = 0; i <= pid->level; i++) + free_pidmap(pid->numbers[i].ns, pid->numbers[i].nr); +- ++ put_beancounter(pid->ub); + call_rcu(&pid->rcu, delayed_put_pid); + } ++EXPORT_SYMBOL_GPL(free_pid); + +-struct pid *alloc_pid(struct pid_namespace *ns) ++struct pid *alloc_pid(struct pid_namespace *ns, pid_t vpid) + { + struct pid *pid; + enum pid_type type; + int i, nr; + struct pid_namespace *tmp; + struct upid *upid; ++ struct user_beancounter *ub; + + pid = kmem_cache_alloc(ns->pid_cachep, GFP_KERNEL); + if (!pid) +@@ -252,7 +290,10 @@ + + tmp = ns; + for (i = ns->level; i >= 0; i--) { +- nr = alloc_pidmap(tmp); ++ if (vpid != 0 && i == ns->level) ++ nr = set_pidmap(tmp, vpid); ++ else ++ nr = alloc_pidmap(tmp); + if (nr < 0) + goto out_free; + +@@ -267,7 +308,16 @@ + for (type = 0; type < PIDTYPE_MAX; ++type) + INIT_HLIST_HEAD(&pid->tasks[type]); + ++#ifdef CONFIG_BEANCOUNTERS ++ ub = get_exec_ub(); ++ local_irq_disable(); ++ if (ub_kmemsize_charge(ub, ns->pid_cachep->objuse, UB_HARD)) ++ goto out_enable; ++ pid->ub = get_beancounter(ub); ++ spin_lock(&pidmap_lock); ++#else + spin_lock_irq(&pidmap_lock); ++#endif + for (i = ns->level; i >= 0; i--) { + upid = &pid->numbers[i]; + hlist_add_head_rcu(&upid->pid_chain, +@@ -278,6 +328,9 @@ + out: + return pid; + ++out_enable: ++ local_irq_enable(); ++ put_pid_ns(ns); + out_free: + for (i++; i <= ns->level; i++) + free_pidmap(pid->numbers[i].ns, pid->numbers[i].nr); +@@ -286,6 +339,7 @@ + pid = NULL; + goto out; + } ++EXPORT_SYMBOL_GPL(alloc_pid); + + struct pid * fastcall find_pid_ns(int nr, struct pid_namespace *ns) + { +@@ -328,6 +382,7 @@ + + return 0; + } ++EXPORT_SYMBOL_GPL(attach_pid); + + void fastcall detach_pid(struct task_struct *task, enum pid_type type) + { +@@ -347,6 +402,7 @@ + + free_pid(pid); + } ++EXPORT_SYMBOL_GPL(detach_pid); + + /* transfer_pid is an optimization of attach_pid(new), detach_pid(old) */ + void fastcall transfer_pid(struct task_struct *old, struct task_struct *new, +@@ -368,6 +424,7 @@ + } + return result; + } ++EXPORT_SYMBOL_GPL(pid_task); + + /* + * Must be called under rcu_read_lock() or with tasklist_lock read-held. +@@ -624,6 +681,197 @@ + } + #endif /* CONFIG_PID_NS */ + ++/* ++ * this is a dirty ugly hack. ++ */ ++ ++static void reattach_pid(struct task_struct *tsk, enum pid_type type, ++ struct pid *pid) ++{ ++ int i; ++ struct pid *old_pid; ++ struct pid_link *link; ++ struct upid *upid; ++ ++ link = &tsk->pids[type]; ++ old_pid = link->pid; ++ ++ hlist_del_rcu(&link->node); ++ link->pid = pid; ++ hlist_add_head_rcu(&link->node, &pid->tasks[type]); ++ ++ if (type != PIDTYPE_PID) { ++ for (i = PIDTYPE_MAX; --i >= 0; ) ++ if (!hlist_empty(&old_pid->tasks[i])) ++ return; ++ ++ for (i = 0; i < pid->level; i++) ++ hlist_del_rcu(&old_pid->numbers[i].pid_chain); ++ } else { ++ for (i = PIDTYPE_MAX; --i >= 0; ) ++ if (!hlist_empty(&old_pid->tasks[i])) ++ BUG(); ++ ++ for (i = 0; i < pid->level; i++) ++ hlist_replace_rcu(&old_pid->numbers[i].pid_chain, ++ &pid->numbers[i].pid_chain); ++ ++ upid = &pid->numbers[pid->level]; ++ hlist_add_head_rcu(&upid->pid_chain, ++ &pid_hash[pid_hashfn(upid->nr, upid->ns)]); ++ } ++ ++ call_rcu(&old_pid->rcu, delayed_put_pid); ++} ++ ++static int __pid_ns_attach_task(struct pid_namespace *ns, ++ struct task_struct *tsk, pid_t nr) ++{ ++ struct pid *pid; ++ enum pid_type type; ++ unsigned long old_size, new_size; ++ ++ pid = kmem_cache_alloc(ns->pid_cachep, GFP_KERNEL); ++ if (!pid) ++ goto out; ++ ++ if (nr == 0) ++ nr = alloc_pidmap(ns); ++ else ++ nr = set_pidmap(ns, nr); ++ ++ if (nr < 0) ++ goto out_free; ++ ++ memcpy(pid, task_pid(tsk), ++ sizeof(struct pid) + (ns->level - 1) * sizeof(struct upid)); ++ get_pid_ns(ns); ++ pid->level++; ++ BUG_ON(pid->level != ns->level); ++ pid->numbers[pid->level].nr = nr; ++ pid->numbers[pid->level].ns = ns; ++ atomic_set(&pid->count, 1); ++ for (type = 0; type < PIDTYPE_MAX; ++type) ++ INIT_HLIST_HEAD(&pid->tasks[type]); ++ ++ old_size = pid->numbers[pid->level - 1].ns->pid_cachep->objuse; ++ new_size = pid->numbers[pid->level].ns->pid_cachep->objuse; ++ local_irq_disable(); ++ /* ++ * Depending on sizeof(struct foo), cache flags (redzoning, etc) ++ * and actual CPU (cacheline_size() jump from 64 to 128 bytes after ++ * CPU detection) new size can very well be smaller than old size. ++ */ ++ if (new_size > old_size) { ++ if (ub_kmemsize_charge(pid->ub, new_size - old_size, UB_HARD) < 0) ++ goto out_enable; ++ } else ++ ub_kmemsize_uncharge(pid->ub, old_size - new_size); ++ ++ write_lock(&tasklist_lock); ++ ++ spin_lock(&pidmap_lock); ++ reattach_pid(tsk, PIDTYPE_SID, pid); ++ set_task_session(tsk, pid_nr(pid)); ++ reattach_pid(tsk, PIDTYPE_PGID, pid); ++ tsk->signal->__pgrp = pid_nr(pid); ++ current->signal->tty_old_pgrp = NULL; ++ ++ reattach_pid(tsk, PIDTYPE_PID, pid); ++ spin_unlock(&pidmap_lock); ++ ++ write_unlock_irq(&tasklist_lock); ++ ++ return 0; ++ ++out_enable: ++ local_irq_enable(); ++ put_pid_ns(ns); ++out_free: ++ kmem_cache_free(ns->pid_cachep, pid); ++out: ++ return -ENOMEM; ++} ++ ++int pid_ns_attach_task(struct pid_namespace *ns, struct task_struct *tsk) ++{ ++ return __pid_ns_attach_task(ns, tsk, 0); ++} ++EXPORT_SYMBOL_GPL(pid_ns_attach_task); ++ ++int pid_ns_attach_init(struct pid_namespace *ns, struct task_struct *tsk) ++{ ++ int err; ++ ++ err = __pid_ns_attach_task(ns, tsk, 1); ++ if (err < 0) ++ return err; ++ ++ ns->child_reaper = tsk; ++ return 0; ++} ++EXPORT_SYMBOL_GPL(pid_ns_attach_init); ++ ++#ifdef CONFIG_VE ++static noinline void show_lost_task(struct task_struct *p) ++{ ++ extern char * task_sig(struct task_struct *p, char *buffer); ++ char buf[512]; ++ ++ task_sig(p, buf); ++ printk("Lost task: %d/%s/%p\nSignals:%s\n", p->pid, p->comm, p, buf); ++} ++ ++static void zap_ve_processes(struct ve_struct *env) ++{ ++ /* ++ * Here the VE changes its state into "not running". ++ * op_sem taken for write is a barrier to all VE manipulations from ++ * ioctl: it waits for operations currently in progress and blocks all ++ * subsequent operations until is_running is set to 0 and op_sem is ++ * released. ++ */ ++ down_write(&env->op_sem); ++ env->is_running = 0; ++ up_write(&env->op_sem); ++ ++ /* wait for all init childs exit */ ++ while (atomic_read(&env->pcounter) > 1) { ++ struct task_struct *g, *p; ++ long delay = 1; ++ ++ if (sys_wait4(-1, NULL, __WALL | WNOHANG, NULL) > 0) ++ continue; ++ /* it was ENOCHLD or no more children somehow */ ++ if (atomic_read(&env->pcounter) == 1) ++ break; ++ ++ /* clear all signals to avoid wakeups */ ++ if (signal_pending(current)) ++ flush_signals(current); ++ /* we have child without signal sent */ ++ __set_current_state(TASK_INTERRUPTIBLE); ++ schedule_timeout(delay); ++ delay = (delay < HZ) ? (delay << 1) : HZ; ++ read_lock(&tasklist_lock); ++ do_each_thread_ve(g, p) { ++ if (p != current) { ++ /* ++ * by that time no processes other then entered ++ * may exist in the VE. if some were missed by ++ * zap_pid_ns_processes() this was a BUG ++ */ ++ if (!p->did_ve_enter) ++ show_lost_task(p); ++ ++ force_sig_specific(SIGKILL, p); ++ } ++ } while_each_thread_ve(g, p); ++ read_unlock(&tasklist_lock); ++ } ++} ++#endif ++ + void zap_pid_ns_processes(struct pid_namespace *pid_ns) + { + int nr; +@@ -655,12 +903,25 @@ + rc = sys_wait4(-1, NULL, __WALL, NULL); + } while (rc != -ECHILD); + +- ++#ifdef CONFIG_VE ++ zap_ve_processes(get_exec_env()); ++#endif + /* Child reaper for the pid namespace is going away */ + pid_ns->child_reaper = NULL; + return; + } + ++pid_t pid_to_vpid(pid_t nr) ++{ ++ struct pid *pid; ++ ++ pid = find_pid(nr); ++ if (pid) ++ return pid->numbers[pid->level].nr; ++ return -1; ++} ++EXPORT_SYMBOL_GPL(pid_to_vpid); ++ + /* + * The pid hash table is scaled according to the amount of memory in the + * machine. From a minimum of 16 slots up to 4096 slots at one gigabyte or +Index: kernel/kernel/posix-cpu-timers.c +=================================================================== +--- kernel.orig/kernel/posix-cpu-timers.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/posix-cpu-timers.c 2008-11-24 15:47:46.000000000 +0100 +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + static int check_clock(const clockid_t which_clock) + { +Index: kernel/kernel/posix-timers.c +=================================================================== +--- kernel.orig/kernel/posix-timers.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/posix-timers.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,6 +31,8 @@ + * POSIX clocks & timers + */ + #include ++#include ++#include + #include + #include + #include +@@ -47,6 +49,9 @@ + #include + #include + #include ++#include ++ ++#include + + /* + * Management arrays for POSIX timers. Timers are kept in slab memory +@@ -241,8 +246,8 @@ + register_posix_clock(CLOCK_MONOTONIC, &clock_monotonic); + + posix_timers_cache = kmem_cache_create("posix_timers_cache", +- sizeof (struct k_itimer), 0, SLAB_PANIC, +- NULL); ++ sizeof (struct k_itimer), 0, ++ SLAB_PANIC|SLAB_UBC, NULL); + idr_init(&posix_timers_id); + return 0; + } +@@ -298,6 +303,13 @@ + + int posix_timer_event(struct k_itimer *timr,int si_private) + { ++ int ret; ++ struct ve_struct *ve; ++ struct user_beancounter *ub; ++ ++ ve = set_exec_env(timr->it_process->ve_task_info.owner_env); ++ ub = set_exec_ub(timr->it_process->task_bc.task_ub); ++ + memset(&timr->sigq->info, 0, sizeof(siginfo_t)); + timr->sigq->info.si_sys_private = si_private; + /* Send signal to the process that owns this timer.*/ +@@ -310,11 +322,11 @@ + + if (timr->it_sigev_notify & SIGEV_THREAD_ID) { + struct task_struct *leader; +- int ret = send_sigqueue(timr->it_sigev_signo, timr->sigq, ++ ret = send_sigqueue(timr->it_sigev_signo, timr->sigq, + timr->it_process); + + if (likely(ret >= 0)) +- return ret; ++ goto out; + + timr->it_sigev_notify = SIGEV_SIGNAL; + leader = timr->it_process->group_leader; +@@ -322,8 +334,12 @@ + timr->it_process = leader; + } + +- return send_group_sigqueue(timr->it_sigev_signo, timr->sigq, ++ ret = send_group_sigqueue(timr->it_sigev_signo, timr->sigq, + timr->it_process); ++out: ++ (void)set_exec_ub(ub); ++ (void)set_exec_env(ve); ++ return ret; + } + EXPORT_SYMBOL_GPL(posix_timer_event); + +Index: kernel/kernel/power/process.c +=================================================================== +--- kernel.orig/kernel/power/process.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/power/process.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,8 @@ + #include + #include + ++static atomic_t global_suspend = ATOMIC_INIT(0); ++ + /* + * Timeout for stopping processes + */ +@@ -26,7 +28,9 @@ + { + if ((p == current) || + (p->flags & PF_NOFREEZE) || +- (p->exit_state != 0)) ++ (p->exit_state != 0) || ++ (p->state == TASK_STOPPED) || ++ (p->state == TASK_TRACED)) + return 0; + return 1; + } +@@ -50,6 +54,24 @@ + processes around? */ + long save; + ++#if defined(CONFIG_VZ_CHECKPOINT) || defined(CONFIG_VZ_CHECKPOINT_MODULE) ++ save = current->state; ++ current->state = TASK_UNINTERRUPTIBLE; ++ ++ spin_lock_irq(¤t->sighand->siglock); ++ if (test_and_clear_thread_flag(TIF_FREEZE)) { ++ recalc_sigpending(); /* We sent fake signal, clean it up */ ++ current->flags |= PF_FROZEN; ++ } else { ++ /* Freeze request could be canceled before we entered ++ * refrigerator(). In this case we do nothing. */ ++ current->state = save; ++ } ++ spin_unlock_irq(¤t->sighand->siglock); ++ ++ while (current->flags & PF_FROZEN) ++ schedule(); ++#else + task_lock(current); + if (freezing(current)) { + frozen_process(); +@@ -71,6 +93,7 @@ + break; + schedule(); + } ++#endif + pr_debug("%s left refrigerator\n", current->comm); + __set_current_state(save); + } +@@ -178,7 +201,7 @@ + do { + todo = 0; + read_lock(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + if (frozen(p) || !freezeable(p)) + continue; + +@@ -192,7 +215,7 @@ + + if (!freezer_should_skip(p)) + todo++; +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + read_unlock(&tasklist_lock); + yield(); /* Yield is okay here */ + if (time_after(jiffies, end_time)) +@@ -216,13 +239,13 @@ + elapsed_csecs / 100, elapsed_csecs % 100, todo); + show_state(); + read_lock(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + task_lock(p); + if (freezing(p) && !freezer_should_skip(p)) + printk(KERN_ERR " %s\n", p->comm); + cancel_freezing(p); + task_unlock(p); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + read_unlock(&tasklist_lock); + } else { + printk("(elapsed %d.%02d seconds) ", elapsed_csecs / 100, +@@ -239,6 +262,7 @@ + { + int error; + ++ atomic_inc(&global_suspend); + printk("Freezing user space processes ... "); + error = try_to_freeze_tasks(FREEZER_USER_SPACE); + if (error) +@@ -253,6 +277,7 @@ + Exit: + BUG_ON(in_atomic()); + printk("\n"); ++ atomic_dec(&global_suspend); + return error; + } + +@@ -261,15 +286,17 @@ + struct task_struct *g, *p; + + read_lock(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + if (!freezeable(p)) + continue; + + if (!p->mm == thaw_user_space) + continue; + +- thaw_process(p); +- } while_each_thread(g, p); ++ if (!thaw_process(p)) ++ printk(KERN_WARNING " Strange, %s not stopped\n", ++ p->comm ); ++ } while_each_thread_all(g, p); + read_unlock(&tasklist_lock); + } + +Index: kernel/kernel/printk.c +=================================================================== +--- kernel.orig/kernel/printk.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/printk.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,7 +31,9 @@ + #include + #include + #include ++#include + #include ++#include + #include + + #include +@@ -54,6 +56,9 @@ + DEFAULT_CONSOLE_LOGLEVEL, /* default_console_loglevel */ + }; + ++struct printk_aligned printk_no_wake_var[NR_CPUS]; ++EXPORT_SYMBOL(printk_no_wake_var); ++ + /* + * Low level drivers may need that to know if they can schedule in + * their unblank() callback or not. So let's export it. +@@ -84,7 +89,7 @@ + * It is also used in interesting ways to provide interlocking in + * release_console_sem(). + */ +-static DEFINE_SPINLOCK(logbuf_lock); ++DEFINE_SPINLOCK(logbuf_lock); + + #define LOG_BUF_MASK (log_buf_len-1) + #define LOG_BUF(idx) (log_buf[(idx) & LOG_BUF_MASK]) +@@ -115,6 +120,7 @@ + + /* Flag: console code may call schedule() */ + static int console_may_schedule; ++int console_silence_loglevel; + + #ifdef CONFIG_PRINTK + +@@ -123,6 +129,19 @@ + static int log_buf_len = __LOG_BUF_LEN; + static unsigned long logged_chars; /* Number of chars produced since last read+clear operation */ + ++static int __init setup_console_silencelevel(char *str) ++{ ++ int level; ++ ++ if (get_option(&str, &level) != 1) ++ return 0; ++ ++ console_silence_loglevel = level; ++ return 1; ++} ++ ++__setup("silencelevel=", setup_console_silencelevel); ++ + static int __init log_buf_len_setup(char *str) + { + unsigned long size = memparse(str, &str); +@@ -293,6 +312,9 @@ + char c; + int error = 0; + ++ if (!ve_is_super(get_exec_env()) && (type == 6 || type == 7)) ++ goto out; ++ + error = security_syslog(type); + if (error) + return error; +@@ -313,15 +335,15 @@ + error = -EFAULT; + goto out; + } +- error = wait_event_interruptible(log_wait, +- (log_start - log_end)); ++ error = wait_event_interruptible(ve_log_wait, ++ (ve_log_start - ve_log_end)); + if (error) + goto out; + i = 0; + spin_lock_irq(&logbuf_lock); +- while (!error && (log_start != log_end) && i < len) { +- c = LOG_BUF(log_start); +- log_start++; ++ while (!error && (ve_log_start != ve_log_end) && i < len) { ++ c = VE_LOG_BUF(ve_log_start); ++ ve_log_start++; + spin_unlock_irq(&logbuf_lock); + error = __put_user(c,buf); + buf++; +@@ -347,15 +369,17 @@ + error = -EFAULT; + goto out; + } ++ if (ve_log_buf == NULL) ++ goto out; + count = len; +- if (count > log_buf_len) +- count = log_buf_len; ++ if (count > ve_log_buf_len) ++ count = ve_log_buf_len; + spin_lock_irq(&logbuf_lock); +- if (count > logged_chars) +- count = logged_chars; ++ if (count > ve_logged_chars) ++ count = ve_logged_chars; + if (do_clear) +- logged_chars = 0; +- limit = log_end; ++ ve_logged_chars = 0; ++ limit = ve_log_end; + /* + * __put_user() could sleep, and while we sleep + * printk() could overwrite the messages +@@ -364,9 +388,9 @@ + */ + for (i = 0; i < count && !error; i++) { + j = limit-1-i; +- if (j + log_buf_len < log_end) ++ if (j + ve_log_buf_len < ve_log_end) + break; +- c = LOG_BUF(j); ++ c = VE_LOG_BUF(j); + spin_unlock_irq(&logbuf_lock); + error = __put_user(c,&buf[count-1-i]); + cond_resched(); +@@ -390,7 +414,7 @@ + } + break; + case 5: /* Clear ring buffer */ +- logged_chars = 0; ++ ve_logged_chars = 0; + break; + case 6: /* Disable logging to console */ + console_loglevel = minimum_console_loglevel; +@@ -402,16 +426,19 @@ + error = -EINVAL; + if (len < 1 || len > 8) + goto out; ++ error = 0; ++ /* VE has no console, so return success */ ++ if (!ve_is_super(get_exec_env())) ++ goto out; + if (len < minimum_console_loglevel) + len = minimum_console_loglevel; + console_loglevel = len; +- error = 0; + break; + case 9: /* Number of chars in the log buffer */ +- error = log_end - log_start; ++ error = ve_log_end - ve_log_start; + break; + case 10: /* Size of the log buffer */ +- error = log_buf_len; ++ error = ve_log_buf_len; + break; + default: + error = -EINVAL; +@@ -522,16 +549,18 @@ + + static void emit_log_char(char c) + { +- LOG_BUF(log_end) = c; +- log_end++; +- if (log_end - log_start > log_buf_len) +- log_start = log_end - log_buf_len; +- if (log_end - con_start > log_buf_len) +- con_start = log_end - log_buf_len; +- if (logged_chars < log_buf_len) +- logged_chars++; ++ VE_LOG_BUF(ve_log_end) = c; ++ ve_log_end++; ++ if (ve_log_end - ve_log_start > ve_log_buf_len) ++ ve_log_start = ve_log_end - ve_log_buf_len; ++ if (ve_is_super(get_exec_env()) && ve_log_end - con_start > ve_log_buf_len) ++ con_start = ve_log_end - ve_log_buf_len; ++ if (ve_logged_chars < ve_log_buf_len) ++ ve_logged_chars++; + } + ++static unsigned long do_release_console_sem(unsigned long *flags); ++ + /* + * Zap console related locks when oopsing. Only zap at most once + * every 10 seconds, to leave time for slow consoles to print a +@@ -613,6 +642,30 @@ + * printf(3) + */ + ++static inline int ve_log_init(void) ++{ ++#ifdef CONFIG_VE ++ if (ve_log_buf != NULL) ++ return 0; ++ ++ if (ve_is_super(get_exec_env())) { ++ ve0._log_wait = &log_wait; ++ ve0._log_start = &log_start; ++ ve0._log_end = &log_end; ++ ve0._logged_chars = &logged_chars; ++ ve0.log_buf = log_buf; ++ return 0; ++ } ++ ++ ve_log_buf = kmalloc(ve_log_buf_len, GFP_ATOMIC); ++ if (!ve_log_buf) ++ return -ENOMEM; ++ ++ memset(ve_log_buf, 0, ve_log_buf_len); ++#endif ++ return 0; ++} ++ + asmlinkage int printk(const char *fmt, ...) + { + va_list args; +@@ -628,13 +681,14 @@ + /* cpu currently holding logbuf_lock */ + static volatile unsigned int printk_cpu = UINT_MAX; + +-asmlinkage int vprintk(const char *fmt, va_list args) ++asmlinkage int __vprintk(const char *fmt, va_list args) + { + unsigned long flags; + int printed_len; + char *p; + static char printk_buf[1024]; + static int log_level_unknown = 1; ++ int err, need_wake; + + boot_delay_msec(); + +@@ -650,6 +704,12 @@ + spin_lock(&logbuf_lock); + printk_cpu = smp_processor_id(); + ++ err = ve_log_init(); ++ if (err) { ++ spin_unlock_irqrestore(&logbuf_lock, flags); ++ return err; ++ } ++ + /* Emit the output into the temporary buffer */ + printed_len = vscnprintf(printk_buf, sizeof(printk_buf), fmt, args); + +@@ -710,7 +770,26 @@ + log_level_unknown = 1; + } + +- if (!down_trylock(&console_sem)) { ++ if (!ve_is_super(get_exec_env())) { ++ need_wake = (ve_log_start != ve_log_end); ++ spin_unlock_irqrestore(&logbuf_lock, flags); ++ if (!oops_in_progress && need_wake) ++ wake_up_interruptible(&ve_log_wait); ++ } else if (__printk_no_wake) { ++ /* ++ * A difficult case, created by the console semaphore mess... ++ * All wakeups are omitted. ++ */ ++ if (!atomic_add_negative(-1, &console_sem.count)) { ++ console_locked = 1; ++ console_may_schedule = 0; ++ do_release_console_sem(&flags); ++ console_locked = 0; ++ console_may_schedule = 0; ++ } ++ atomic_inc(&console_sem.count); ++ spin_unlock_irqrestore(&logbuf_lock, flags); ++ } else if (!down_trylock(&console_sem)) { + /* + * We own the drivers. We can drop the spinlock and + * let release_console_sem() print the text, maybe ... +@@ -753,6 +832,63 @@ + EXPORT_SYMBOL(printk); + EXPORT_SYMBOL(vprintk); + ++static struct timer_list conswakeup_timer; ++static void conswakeup_timer_call(unsigned long dumy) ++{ ++ if (!down_trylock(&console_sem)) { ++ console_locked = 1; ++ console_may_schedule = 0; ++ release_console_sem(); ++ } ++ mod_timer(&conswakeup_timer, jiffies + 5 * HZ); ++} ++ ++static int __init conswakeup_init(void) ++{ ++ init_timer(&conswakeup_timer); ++ conswakeup_timer.function = &conswakeup_timer_call; ++ conswakeup_timer.expires = jiffies + 5 * HZ; ++ add_timer(&conswakeup_timer); ++ return 0; ++} ++console_initcall(conswakeup_init); ++ ++asmlinkage int vprintk(const char *fmt, va_list args) ++{ ++ int i; ++ struct ve_struct *env; ++ ++ env = set_exec_env(get_ve0()); ++ i = __vprintk(fmt, args); ++ (void)set_exec_env(env); ++ return i; ++} ++ ++asmlinkage int ve_vprintk(int dst, const char *fmt, va_list args) ++{ ++ int printed_len; ++ ++ printed_len = 0; ++ if (ve_is_super(get_exec_env()) || (dst & VE0_LOG)) ++ printed_len = vprintk(fmt, args); ++ if (!ve_is_super(get_exec_env()) && (dst & VE_LOG)) ++ printed_len = __vprintk(fmt, args); ++ return printed_len; ++} ++ ++asmlinkage int ve_printk(int dst, const char *fmt, ...) ++{ ++ va_list args; ++ int printed_len; ++ ++ va_start(args, fmt); ++ printed_len = ve_vprintk(dst, fmt, args); ++ va_end(args); ++ return printed_len; ++} ++EXPORT_SYMBOL(ve_printk); ++ ++ + #else + + asmlinkage long sys_syslog(int type, char __user *buf, int len) +@@ -950,31 +1086,40 @@ + * + * release_console_sem() may be called from any context. + */ +-void release_console_sem(void) ++static unsigned long do_release_console_sem(unsigned long *flags) + { +- unsigned long flags; + unsigned long _con_start, _log_end; + unsigned long wake_klogd = 0; + + if (console_suspended) { + up(&secondary_console_sem); +- return; ++ goto out; + } + + console_may_schedule = 0; + + for ( ; ; ) { +- spin_lock_irqsave(&logbuf_lock, flags); + wake_klogd |= log_start - log_end; + if (con_start == log_end) + break; /* Nothing to print */ + _con_start = con_start; + _log_end = log_end; + con_start = log_end; /* Flush */ +- spin_unlock(&logbuf_lock); ++ spin_unlock_irqrestore(&logbuf_lock, *flags); + call_console_drivers(_con_start, _log_end); +- local_irq_restore(flags); ++ spin_lock_irqsave(&logbuf_lock, *flags); + } ++out: ++ return wake_klogd; ++} ++ ++void release_console_sem(void) ++{ ++ unsigned long flags; ++ unsigned long wake_klogd; ++ ++ spin_lock_irqsave(&logbuf_lock, flags); ++ wake_klogd = do_release_console_sem(&flags); + console_locked = 0; + up(&console_sem); + spin_unlock_irqrestore(&logbuf_lock, flags); +@@ -1285,6 +1430,36 @@ + } + EXPORT_SYMBOL(printk_ratelimit); + ++/* ++ * Rate limiting stuff. ++ */ ++int vz_ratelimit(struct vz_rate_info *p) ++{ ++ unsigned long cjif, djif; ++ unsigned long flags; ++ static spinlock_t ratelimit_lock = SPIN_LOCK_UNLOCKED; ++ long new_bucket; ++ ++ spin_lock_irqsave(&ratelimit_lock, flags); ++ cjif = jiffies; ++ djif = cjif - p->last; ++ if (djif < p->interval) { ++ if (p->bucket >= p->burst) { ++ spin_unlock_irqrestore(&ratelimit_lock, flags); ++ return 0; ++ } ++ p->bucket++; ++ } else { ++ new_bucket = p->bucket - (djif / (unsigned)p->interval); ++ if (new_bucket < 0) ++ new_bucket = 0; ++ p->bucket = new_bucket + 1; ++ } ++ p->last = cjif; ++ spin_unlock_irqrestore(&ratelimit_lock, flags); ++ return 1; ++} ++ + /** + * printk_timed_ratelimit - caller-controlled printk ratelimiting + * @caller_jiffies: pointer to caller's state +Index: kernel/kernel/ptrace.c +=================================================================== +--- kernel.orig/kernel/ptrace.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/ptrace.c 2008-11-24 15:47:46.000000000 +0100 +@@ -131,6 +131,8 @@ + * or halting the specified task is impossible. + */ + int dumpable = 0; ++ int vps_dumpable = 0; ++ + /* Don't let security modules deny introspection */ + if (task == current) + return 0; +@@ -142,11 +144,17 @@ + (current->gid != task->gid)) && !capable(CAP_SYS_PTRACE)) + return -EPERM; + smp_rmb(); +- if (task->mm) ++ if (task->mm) { + dumpable = get_dumpable(task->mm); ++ vps_dumpable = (task->mm->vps_dumpable == 1); ++ } ++ + if (!dumpable && !capable(CAP_SYS_PTRACE)) + return -EPERM; +- ++ if (!vps_dumpable && !ve_is_super(get_exec_env())) ++ return -EPERM; ++ if (!ve_accessible(VE_TASK_INFO(task)->owner_env, get_exec_env())) ++ return -EPERM; + return security_ptrace(current, task); + } + +@@ -199,6 +207,8 @@ + retval = __ptrace_may_attach(task); + if (retval) + goto bad; ++ if (task->mm->vps_dumpable == 2) ++ goto bad; + + /* Go */ + task->ptrace |= PT_PTRACED | ((task->real_parent != current) +@@ -294,6 +304,7 @@ + } + return copied; + } ++EXPORT_SYMBOL_GPL(access_process_vm); + + static int ptrace_setoptions(struct task_struct *child, long data) + { +Index: kernel/kernel/sched.c +=================================================================== +--- kernel.orig/kernel/sched.c 2008-11-24 14:17:45.000000000 +0100 ++++ kernel/kernel/sched.c 2008-11-24 15:47:46.000000000 +0100 +@@ -310,6 +310,9 @@ + */ + unsigned long nr_uninterruptible; + ++ unsigned long nr_sleeping; ++ unsigned long nr_stopped; ++ + struct task_struct *curr, *idle; + unsigned long next_balance; + struct mm_struct *prev_mm; +@@ -379,6 +382,11 @@ + #endif + } + ++struct kernel_stat_glob kstat_glob; ++DEFINE_SPINLOCK(kstat_glb_lock); ++EXPORT_SYMBOL(kstat_glob); ++EXPORT_SYMBOL(kstat_glb_lock); ++ + /* + * Update the per-runqueue clock, as finegrained as the platform can give + * us, but without assuming monotonicity, etc.: +@@ -631,6 +639,217 @@ + spin_unlock_irqrestore(&rq->lock, *flags); + } + ++#ifdef CONFIG_VE ++static inline void ve_nr_iowait_inc(struct ve_struct *ve, int cpu) ++{ ++ VE_CPU_STATS(ve, cpu)->nr_iowait++; ++} ++ ++static inline void ve_nr_iowait_dec(struct ve_struct *ve, int cpu) ++{ ++ VE_CPU_STATS(ve, cpu)->nr_iowait--; ++} ++ ++static inline void ve_nr_unint_inc(struct ve_struct *ve, int cpu) ++{ ++ VE_CPU_STATS(ve, cpu)->nr_unint++; ++} ++ ++static inline void ve_nr_unint_dec(struct ve_struct *ve, int cpu) ++{ ++ VE_CPU_STATS(ve, cpu)->nr_unint--; ++} ++ ++#define cycles_after(a, b) ((long long)(b) - (long long)(a) < 0) ++ ++cycles_t ve_sched_get_idle_time(struct ve_struct *ve, int cpu) ++{ ++ struct ve_cpu_stats *ve_stat; ++ unsigned v; ++ cycles_t strt, ret, cycles; ++ ++ ve_stat = VE_CPU_STATS(ve, cpu); ++ do { ++ v = read_seqcount_begin(&ve_stat->stat_lock); ++ ret = ve_stat->idle_time; ++ strt = ve_stat->strt_idle_time; ++ if (strt && nr_uninterruptible_ve(ve) == 0) { ++ cycles = get_cycles(); ++ if (cycles_after(cycles, strt)) ++ ret += cycles - strt; ++ } ++ } while (read_seqcount_retry(&ve_stat->stat_lock, v)); ++ return ret; ++} ++EXPORT_SYMBOL(ve_sched_get_idle_time); ++ ++cycles_t ve_sched_get_iowait_time(struct ve_struct *ve, int cpu) ++{ ++ struct ve_cpu_stats *ve_stat; ++ unsigned v; ++ cycles_t strt, ret, cycles; ++ ++ ve_stat = VE_CPU_STATS(ve, cpu); ++ do { ++ v = read_seqcount_begin(&ve_stat->stat_lock); ++ ret = ve_stat->iowait_time; ++ strt = ve_stat->strt_idle_time; ++ if (strt && nr_iowait_ve(ve) > 0) { ++ cycles = get_cycles(); ++ if (cycles_after(cycles, strt)) ++ ret += cycles - strt; ++ } ++ } while (read_seqcount_retry(&ve_stat->stat_lock, v)); ++ return ret; ++} ++EXPORT_SYMBOL(ve_sched_get_iowait_time); ++ ++static void ve_stop_idle(struct ve_struct *ve, unsigned int cpu, cycles_t cycles) ++{ ++ struct ve_cpu_stats *ve_stat; ++ ++ ve_stat = VE_CPU_STATS(ve, cpu); ++ ++ write_seqcount_begin(&ve_stat->stat_lock); ++ if (ve_stat->strt_idle_time) { ++ if (cycles_after(cycles, ve_stat->strt_idle_time)) { ++ if (nr_iowait_ve(ve) == 0) ++ ve_stat->idle_time += ++ cycles - ve_stat->strt_idle_time; ++ else ++ ve_stat->iowait_time += ++ cycles - ve_stat->strt_idle_time; ++ } ++ ve_stat->strt_idle_time = 0; ++ } ++ write_seqcount_end(&ve_stat->stat_lock); ++} ++ ++static void ve_strt_idle(struct ve_struct *ve, unsigned int cpu, cycles_t cycles) ++{ ++ struct ve_cpu_stats *ve_stat; ++ ++ ve_stat = VE_CPU_STATS(ve, cpu); ++ ++ write_seqcount_begin(&ve_stat->stat_lock); ++ ve_stat->strt_idle_time = cycles; ++ write_seqcount_end(&ve_stat->stat_lock); ++} ++ ++static inline void ve_nr_running_inc(struct ve_struct *ve, int cpu, cycles_t cycles) ++{ ++ if (++VE_CPU_STATS(ve, cpu)->nr_running == 1) ++ ve_stop_idle(ve, cpu, cycles); ++} ++ ++static inline void ve_nr_running_dec(struct ve_struct *ve, int cpu, cycles_t cycles) ++{ ++ if (--VE_CPU_STATS(ve, cpu)->nr_running == 0) ++ ve_strt_idle(ve, cpu, cycles); ++} ++ ++void ve_sched_attach(struct ve_struct *target_ve) ++{ ++ struct task_struct *tsk; ++ unsigned int cpu; ++ cycles_t cycles; ++ ++ tsk = current; ++ preempt_disable(); ++ cycles = get_cycles(); ++ cpu = task_cpu(tsk); ++ ve_nr_running_dec(VE_TASK_INFO(tsk)->owner_env, cpu, cycles); ++ ve_nr_running_inc(target_ve, cpu, cycles); ++ preempt_enable(); ++} ++EXPORT_SYMBOL(ve_sched_attach); ++ ++static inline void write_wakeup_stamp(struct task_struct *p, cycles_t cyc) ++{ ++ struct ve_task_info *ti; ++ ++ ti = VE_TASK_INFO(p); ++ write_seqcount_begin(&ti->wakeup_lock); ++ ti->wakeup_stamp = cyc; ++ write_seqcount_end(&ti->wakeup_lock); ++} ++ ++static inline void update_sched_lat(struct task_struct *t, cycles_t cycles) ++{ ++ int cpu; ++ cycles_t ve_wstamp; ++ ++ /* safe due to runqueue lock */ ++ cpu = smp_processor_id(); ++ ve_wstamp = t->ve_task_info.wakeup_stamp; ++ ++ if (ve_wstamp && cycles > ve_wstamp) { ++ KSTAT_LAT_PCPU_ADD(&kstat_glob.sched_lat, ++ cpu, cycles - ve_wstamp); ++ KSTAT_LAT_PCPU_ADD(&t->ve_task_info.exec_env->sched_lat_ve, ++ cpu, cycles - ve_wstamp); ++ } ++} ++ ++static inline void update_ve_task_info(struct task_struct *prev, cycles_t cycles) ++{ ++#ifdef CONFIG_FAIRSCHED ++ if (prev != this_pcpu()->idle) { ++#else ++ if (prev != this_rq()->idle) { ++#endif ++ VE_CPU_STATS(prev->ve_task_info.owner_env, ++ smp_processor_id())->used_time += ++ cycles - prev->ve_task_info.sched_time; ++ ++ prev->ve_task_info.sched_time = cycles; ++ } ++} ++#else ++static inline void ve_nr_running_inc(struct ve_struct, int cpu, cycles_t cycles) ++{ ++} ++ ++static inline void ve_nr_running_dec(struct ve_struct, int cpu, cycles_t cycles) ++{ ++} ++ ++static inline void ve_nr_iowait_inc(struct ve_struct *ve, int cpu) ++{ ++} ++ ++static inline void ve_nr_iowait_dec(struct ve_struct *ve, int cpu) ++{ ++} ++ ++static inline void ve_nr_unint_inc(struct ve_struct *ve, int cpu) ++{ ++} ++ ++static inline void ve_nr_unint_dec(struct ve_struct *ve, int cpu) ++{ ++} ++ ++static inline void update_ve_task_info(struct task_struct *prev, cycles_t cycles) ++{ ++} ++#endif ++ ++struct task_nrs_struct { ++ long nr_running; ++ long nr_unint; ++ long nr_stopped; ++ long nr_sleeping; ++ long nr_iowait; ++ long long nr_switches; ++} ____cacheline_aligned_in_smp; ++ ++unsigned long nr_zombie = 0; /* protected by tasklist_lock */ ++EXPORT_SYMBOL(nr_zombie); ++ ++atomic_t nr_dead = ATOMIC_INIT(0); ++EXPORT_SYMBOL(nr_dead); ++ + /* + * this_rq_lock - lock this runqueue and disable interrupts. + */ +@@ -1046,11 +1265,21 @@ + */ + static void activate_task(struct rq *rq, struct task_struct *p, int wakeup) + { +- if (p->state == TASK_UNINTERRUPTIBLE) ++ cycles_t cycles; ++ ++#ifdef CONFIG_VE ++ cycles = get_cycles(); ++ write_wakeup_stamp(p, cycles); ++ p->ve_task_info.sleep_time += cycles; ++#endif ++ if (p->state == TASK_UNINTERRUPTIBLE) { + rq->nr_uninterruptible--; ++ ve_nr_unint_dec(VE_TASK_INFO(p)->owner_env, task_cpu(p)); ++ } + + enqueue_task(rq, p, wakeup); + inc_nr_running(p, rq); ++ ve_nr_running_inc(VE_TASK_INFO(p)->owner_env, task_cpu(p), cycles); + } + + /* +@@ -1058,6 +1287,30 @@ + */ + static void deactivate_task(struct rq *rq, struct task_struct *p, int sleep) + { ++ cycles_t cycles; ++#ifdef CONFIG_VE ++ unsigned int cpu, pcpu; ++ struct ve_struct *ve; ++ ++ cycles = get_cycles(); ++ cpu = task_cpu(p); ++ pcpu = smp_processor_id(); ++ ve = p->ve_task_info.owner_env; ++ ++ p->ve_task_info.sleep_time -= cycles; ++#endif ++ if (p->state == TASK_UNINTERRUPTIBLE) { ++ ve_nr_unint_inc(ve, cpu); ++ } ++ if (p->state == TASK_INTERRUPTIBLE) { ++ rq->nr_sleeping++; ++ } ++ if (p->state == TASK_STOPPED) { ++ rq->nr_stopped++; ++ } ++ ++ ve_nr_running_dec(VE_TASK_INFO(p)->owner_env, cpu, cycles); ++ + if (p->state == TASK_UNINTERRUPTIBLE) + rq->nr_uninterruptible++; + +@@ -1263,6 +1516,7 @@ + break; + } + } ++EXPORT_SYMBOL_GPL(wait_task_inactive); + + /*** + * kick_process - kick a running thread to enter/exit the kernel +@@ -1782,6 +2036,10 @@ + /* Want to start with kernel preemption disabled. */ + task_thread_info(p)->preempt_count = 1; + #endif ++#ifdef CONFIG_VE ++ /* cosmetic: sleep till wakeup below */ ++ p->ve_task_info.sleep_time -= get_cycles(); ++#endif + put_cpu(); + } + +@@ -1812,6 +2070,8 @@ + */ + p->sched_class->task_new(rq, p); + inc_nr_running(p, rq); ++ ve_nr_running_inc(VE_TASK_INFO(p)->owner_env, task_cpu(p), ++ get_cycles()); + } + check_preempt_curr(rq, p); + task_rq_unlock(rq, &flags); +@@ -1964,6 +2224,7 @@ + if (current->set_child_tid) + put_user(task_pid_vnr(current), current->set_child_tid); + } ++EXPORT_SYMBOL_GPL(schedule_tail); + + /* + * context_switch - switch to the new MM and the new +@@ -2034,6 +2295,7 @@ + + return sum; + } ++EXPORT_SYMBOL(nr_running); + + unsigned long nr_uninterruptible(void) + { +@@ -2051,6 +2313,7 @@ + + return sum; + } ++EXPORT_SYMBOL(nr_uninterruptible); + + unsigned long long nr_context_switches(void) + { +@@ -2062,6 +2325,7 @@ + + return sum; + } ++EXPORT_SYMBOL(nr_context_switches); + + unsigned long nr_iowait(void) + { +@@ -2072,6 +2336,7 @@ + + return sum; + } ++EXPORT_SYMBOL(nr_iowait); + + unsigned long nr_active(void) + { +@@ -2088,6 +2353,72 @@ + return running + uninterruptible; + } + ++unsigned long nr_stopped(void) ++{ ++ unsigned long i, sum = 0; ++ ++ for_each_online_cpu(i) ++ sum += cpu_rq(i)->nr_stopped; ++ if (unlikely((long)sum < 0)) ++ sum = 0; ++ return sum; ++} ++EXPORT_SYMBOL(nr_stopped); ++ ++unsigned long nr_sleeping(void) ++{ ++ unsigned long i, sum = 0; ++ ++ for_each_online_cpu(i) ++ sum += cpu_rq(i)->nr_sleeping; ++ if (unlikely((long)sum < 0)) ++ sum = 0; ++ return sum; ++} ++EXPORT_SYMBOL(nr_sleeping); ++ ++#ifdef CONFIG_VE ++unsigned long nr_running_ve(struct ve_struct *ve) ++{ ++ int i; ++ long sum = 0; ++ cpumask_t ve_cpus; ++ ++ ve_cpu_online_map(ve, &ve_cpus); ++ for_each_cpu_mask(i, ve_cpus) ++ sum += VE_CPU_STATS(ve, i)->nr_running; ++ return (unsigned long)(sum < 0 ? 0 : sum); ++} ++EXPORT_SYMBOL(nr_running_ve); ++ ++unsigned long nr_uninterruptible_ve(struct ve_struct *ve) ++{ ++ int i; ++ long sum = 0; ++ cpumask_t ve_cpus; ++ ++ sum = 0; ++ ve_cpu_online_map(ve, &ve_cpus); ++ for_each_cpu_mask(i, ve_cpus) ++ sum += VE_CPU_STATS(ve, i)->nr_unint; ++ return (unsigned long)(sum < 0 ? 0 : sum); ++} ++EXPORT_SYMBOL(nr_uninterruptible_ve); ++ ++unsigned long nr_iowait_ve(struct ve_struct *ve) ++{ ++ int i; ++ long sum = 0; ++ cpumask_t ve_cpus; ++ ++ ve_cpu_online_map(ve, &ve_cpus); ++ for_each_cpu_mask(i, ve_cpus) ++ sum += VE_CPU_STATS(ve, i)->nr_iowait; ++ return (unsigned long)(sum < 0 ? 0 : sum); ++} ++EXPORT_SYMBOL(nr_iowait_ve); ++#endif ++ + /* + * Update rq->cpu_load[] statistics. This function is usually called every + * scheduler tick (TICK_NSEC). +@@ -2118,6 +2449,16 @@ + } + } + ++#ifdef CONFIG_VE ++#define update_ve_cpu_time(p, time, tick) \ ++ do { \ ++ VE_CPU_STATS((p)->ve_task_info.owner_env, \ ++ task_cpu(p))->time += tick; \ ++ } while (0) ++#else ++#define update_ve_cpu_time(p, time, tick) do { } while (0) ++#endif ++ + #ifdef CONFIG_SMP + + /* +@@ -2241,8 +2582,15 @@ + static void pull_task(struct rq *src_rq, struct task_struct *p, + struct rq *this_rq, int this_cpu) + { ++ struct ve_struct *ve; ++ cycles_t cycles = get_cycles(); ++ ++ ve = VE_TASK_INFO(p)->owner_env; ++ + deactivate_task(src_rq, p, 0); ++ ve_nr_running_dec(ve, task_cpu(p), cycles); + set_task_cpu(p, this_cpu); ++ ve_nr_running_inc(ve, task_cpu(p), cycles); + activate_task(this_rq, p, 0); + /* + * Note that idle threads have a prio of MAX_PRIO, for this test +@@ -3408,10 +3756,13 @@ + + /* Add user time to cpustat. */ + tmp = cputime_to_cputime64(cputime); +- if (TASK_NICE(p) > 0) ++ if (TASK_NICE(p) > 0) { + cpustat->nice = cputime64_add(cpustat->nice, tmp); +- else ++ update_ve_cpu_time(p, nice, tmp); ++ } else { + cpustat->user = cputime64_add(cpustat->user, tmp); ++ update_ve_cpu_time(p, user, tmp); ++ } + } + + /* +@@ -3463,6 +3814,7 @@ + + /* Add system time to cpustat. */ + tmp = cputime_to_cputime64(cputime); ++ update_ve_cpu_time(p, system, tmp); + if (hardirq_count() - hardirq_offset) + cpustat->irq = cputime64_add(cpustat->irq, tmp); + else if (softirq_count()) +@@ -3706,13 +4058,33 @@ + sched_info_switch(prev, next); + + if (likely(prev != next)) { ++ cycles_t cycles = get_cycles(); ++ + rq->nr_switches++; + rq->curr = next; + ++*switch_count; + ++#ifdef CONFIG_VE ++ prev->ve_task_info.sleep_stamp = cycles; ++ if (prev->state == TASK_RUNNING && prev != this_rq()->idle) ++ write_wakeup_stamp(prev, cycles); ++ update_sched_lat(next, cycles); ++ ++ /* because next & prev are protected with ++ * runqueue lock we may not worry about ++ * wakeup_stamp and sched_time protection ++ * (same thing in 'else' branch below) ++ */ ++ update_ve_task_info(prev, cycles); ++ next->ve_task_info.sched_time = cycles; ++ write_wakeup_stamp(next, 0); ++#endif ++ + context_switch(rq, prev, next); /* unlocks the rq */ +- } else ++ } else { ++ update_ve_task_info(prev, get_cycles()); + spin_unlock_irq(&rq->lock); ++ } + + if (unlikely(reacquire_kernel_lock(current) < 0)) { + cpu = smp_processor_id(); +@@ -4327,7 +4699,7 @@ + /* + * Allow unprivileged RT tasks to decrease priority: + */ +- if (!capable(CAP_SYS_NICE)) { ++ if (!capable(CAP_SYS_ADMIN)) { + if (rt_policy(policy)) { + unsigned long rlim_rtprio; + +@@ -4802,10 +5174,15 @@ + void __sched io_schedule(void) + { + struct rq *rq = &__raw_get_cpu_var(runqueues); ++#ifdef CONFIG_VE ++ struct ve_struct *ve = current->ve_task_info.owner_env; ++#endif + + delayacct_blkio_start(); + atomic_inc(&rq->nr_iowait); ++ ve_nr_iowait_inc(ve, task_cpu(current)); + schedule(); ++ ve_nr_iowait_dec(ve, task_cpu(current)); + atomic_dec(&rq->nr_iowait); + delayacct_blkio_end(); + } +@@ -4815,10 +5192,15 @@ + { + struct rq *rq = &__raw_get_cpu_var(runqueues); + long ret; ++#ifdef CONFIG_VE ++ struct ve_struct *ve = current->ve_task_info.owner_env; ++#endif + + delayacct_blkio_start(); + atomic_inc(&rq->nr_iowait); ++ ve_nr_iowait_inc(ve, task_cpu(current)); + ret = schedule_timeout(timeout); ++ ve_nr_iowait_dec(ve, task_cpu(current)); + atomic_dec(&rq->nr_iowait); + delayacct_blkio_end(); + return ret; +@@ -4939,17 +5321,7 @@ + state = p->state ? __ffs(p->state) + 1 : 0; + printk(KERN_INFO "%-13.13s %c", p->comm, + state < sizeof(stat_nam) - 1 ? stat_nam[state] : '?'); +-#if BITS_PER_LONG == 32 +- if (state == TASK_RUNNING) +- printk(KERN_CONT " running "); +- else +- printk(KERN_CONT " %08lx ", thread_saved_pc(p)); +-#else +- if (state == TASK_RUNNING) +- printk(KERN_CONT " running task "); +- else +- printk(KERN_CONT " %016lx ", thread_saved_pc(p)); +-#endif ++ printk(KERN_CONT " %p ", p); + #ifdef CONFIG_DEBUG_STACK_USAGE + { + unsigned long *n = end_of_stack(p); +@@ -4971,13 +5343,13 @@ + + #if BITS_PER_LONG == 32 + printk(KERN_INFO +- " task PC stack pid father\n"); ++ " task taskaddr stack pid father\n"); + #else + printk(KERN_INFO +- " task PC stack pid father\n"); ++ " task taskaddr stack pid father\n"); + #endif + read_lock(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + /* + * reset the NMI-timeout, listing all files on a slow + * console might take alot of time: +@@ -4985,7 +5357,7 @@ + touch_nmi_watchdog(); + if (!state_filter || (p->state & state_filter)) + show_task(p); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + + touch_all_softlockup_watchdogs(); + +@@ -5333,13 +5705,13 @@ + + read_lock(&tasklist_lock); + +- do_each_thread(t, p) { ++ do_each_thread_all(t, p) { + if (p == current) + continue; + + if (task_cpu(p) == src_cpu) + move_task_off_dead_cpu(src_cpu, p); +- } while_each_thread(t, p); ++ } while_each_thread_all(t, p); + + read_unlock(&tasklist_lock); + } +@@ -6931,7 +7303,7 @@ + struct rq *rq; + + read_lock_irq(&tasklist_lock); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + /* + * Only normalize user tasks: + */ +@@ -6963,7 +7335,7 @@ + + __task_rq_unlock(rq); + spin_unlock_irqrestore(&p->pi_lock, flags); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + + read_unlock_irq(&tasklist_lock); + } +Index: kernel/kernel/sched_debug.c +=================================================================== +--- kernel.orig/kernel/sched_debug.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/sched_debug.c 2008-11-24 15:47:46.000000000 +0100 +@@ -91,12 +91,12 @@ + + read_lock_irqsave(&tasklist_lock, flags); + +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + if (!p->se.on_rq || task_cpu(p) != rq_cpu) + continue; + + print_task(m, rq, p); +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + + read_unlock_irqrestore(&tasklist_lock, flags); + } +Index: kernel/kernel/signal.c +=================================================================== +--- kernel.orig/kernel/signal.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/signal.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,15 +31,34 @@ + #include + #include + #include ++#include + #include "audit.h" /* audit_signal_info() */ + + /* + * SLAB caches for signal bits. + */ + +-static struct kmem_cache *sigqueue_cachep; ++struct kmem_cache *sigqueue_cachep; ++EXPORT_SYMBOL(sigqueue_cachep); + + ++static int sig_ve_ignored(int sig, struct siginfo *info, struct task_struct *t) ++{ ++ struct ve_struct *ve; ++ ++ /* always allow signals from the kernel */ ++ if (info == SEND_SIG_FORCED || ++ (!is_si_special(info) && SI_FROMKERNEL(info))) ++ return 0; ++ ++ ve = current->ve_task_info.owner_env; ++ if (ve->ve_ns->pid_ns->child_reaper != t) ++ return 0; ++ if (ve_is_super(get_exec_env())) ++ return 0; ++ return !sig_user_defined(t, sig) || sig_kernel_only(sig); ++} ++ + static int sig_ignored(struct task_struct *t, int sig) + { + void __user * handler; +@@ -96,7 +115,7 @@ + + #define PENDING(p,b) has_pending_signals(&(p)->signal, (b)) + +-static int recalc_sigpending_tsk(struct task_struct *t) ++int recalc_sigpending_tsk(struct task_struct *t) + { + if (t->signal->group_stop_count > 0 || + PENDING(&t->pending, &t->blocked) || +@@ -121,6 +140,7 @@ + if (recalc_sigpending_tsk(t)) + signal_wake_up(t, 0); + } ++EXPORT_SYMBOL_GPL(recalc_sigpending_tsk); + + void recalc_sigpending(void) + { +@@ -179,8 +199,13 @@ + atomic_inc(&user->sigpending); + if (override_rlimit || + atomic_read(&user->sigpending) <= +- t->signal->rlim[RLIMIT_SIGPENDING].rlim_cur) ++ t->signal->rlim[RLIMIT_SIGPENDING].rlim_cur) { + q = kmem_cache_alloc(sigqueue_cachep, flags); ++ if (q && ub_siginfo_charge(q, get_task_ub(t))) { ++ kmem_cache_free(sigqueue_cachep, q); ++ q = NULL; ++ } ++ } + if (unlikely(q == NULL)) { + atomic_dec(&user->sigpending); + } else { +@@ -197,6 +222,7 @@ + return; + atomic_dec(&q->user->sigpending); + free_uid(q->user); ++ ub_siginfo_uncharge(q); + kmem_cache_free(sigqueue_cachep, q); + } + +@@ -345,7 +371,18 @@ + static int __dequeue_signal(struct sigpending *pending, sigset_t *mask, + siginfo_t *info) + { +- int sig = next_signal(pending, mask); ++ int sig = 0; ++ ++ /* SIGKILL must have priority, otherwise it is quite easy ++ * to create an unkillable process, sending sig < SIGKILL ++ * to self */ ++ if (unlikely(sigismember(&pending->signal, SIGKILL))) { ++ if (!sigismember(mask, SIGKILL)) ++ sig = SIGKILL; ++ } ++ ++ if (likely(!sig)) ++ sig = next_signal(pending, mask); + + if (sig) { + if (current->notifier) { +@@ -468,6 +505,7 @@ + if (!wake_up_state(t, mask)) + kick_process(t); + } ++EXPORT_SYMBOL_GPL(signal_wake_up); + + /* + * Remove signals in mask from the pending set and queue. +@@ -908,7 +946,7 @@ + do { + sigaddset(&t->pending.signal, SIGKILL); + signal_wake_up(t, 1); +- } while_each_thread(p, t); ++ } while_each_thread_all(p, t); + return; + } + +@@ -930,7 +968,7 @@ + do { + p->signal->group_stop_count++; + signal_wake_up(t, t == p); +- } while_each_thread(p, t); ++ } while_each_thread_all(p, t); + return; + } + +@@ -1025,7 +1063,8 @@ + if (!ret && sig) { + ret = -ESRCH; + if (lock_task_sighand(p, &flags)) { +- ret = __group_send_sig_info(sig, info, p); ++ ret = sig_ve_ignored(sig, info, p) ? 0 : ++ __group_send_sig_info(sig, info, p); + unlock_task_sighand(p, &flags); + } + } +@@ -1149,7 +1188,7 @@ + struct task_struct * p; + + read_lock(&tasklist_lock); +- for_each_process(p) { ++ for_each_process_ve(p) { + if (task_pid_vnr(p) > 1 && + !same_thread_group(p, current)) { + int err = group_send_sig_info(sig, info, p); +@@ -1446,6 +1485,14 @@ + BUG_ON(!tsk->ptrace && + (tsk->group_leader != tsk || !thread_group_empty(tsk))); + ++#ifdef CONFIG_VE ++ /* Allow to send only SIGCHLD from VE */ ++ if (sig != SIGCHLD && ++ tsk->ve_task_info.owner_env != ++ tsk->parent->ve_task_info.owner_env) ++ sig = SIGCHLD; ++#endif ++ + info.si_signo = sig; + info.si_errno = 0; + /* +@@ -1684,7 +1731,9 @@ + } + + do { ++ set_stop_state(current); + schedule(); ++ clear_stop_state(current); + } while (try_to_freeze()); + /* + * Now we don't run again until continued. +@@ -1793,8 +1842,6 @@ + sigset_t *mask = ¤t->blocked; + int signr = 0; + +- try_to_freeze(); +- + relock: + spin_lock_irq(¤t->sighand->siglock); + for (;;) { +@@ -2246,8 +2293,10 @@ + */ + if (!error && sig && p->sighand) { + spin_lock_irq(&p->sighand->siglock); +- handle_stop_signal(sig, p); +- error = specific_send_sig_info(sig, &info, p); ++ if (!sig_ve_ignored(sig, &info, p)) { ++ handle_stop_signal(sig, p); ++ error = specific_send_sig_info(sig, &info, p); ++ } + spin_unlock_irq(&p->sighand->siglock); + } + } +@@ -2604,5 +2653,5 @@ + + void __init signals_init(void) + { +- sigqueue_cachep = KMEM_CACHE(sigqueue, SLAB_PANIC); ++ sigqueue_cachep = KMEM_CACHE(sigqueue, SLAB_PANIC|SLAB_UBC); + } +Index: kernel/kernel/softirq.c +=================================================================== +--- kernel.orig/kernel/softirq.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/softirq.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,6 +20,8 @@ + #include + #include + ++#include ++ + #include + /* + - No shared variables, all the data are CPU local. +@@ -207,10 +209,14 @@ + + asmlinkage void __do_softirq(void) + { ++ struct user_beancounter *ub; + struct softirq_action *h; + __u32 pending; + int max_restart = MAX_SOFTIRQ_RESTART; + int cpu; ++ struct ve_struct *envid; ++ ++ envid = set_exec_env(get_ve0()); + + pending = local_softirq_pending(); + account_system_vtime(current); +@@ -227,6 +233,7 @@ + + h = softirq_vec; + ++ ub = set_exec_ub(get_ub0()); + do { + if (pending & 1) { + h->action(h); +@@ -235,6 +242,7 @@ + h++; + pending >>= 1; + } while (pending); ++ (void)set_exec_ub(ub); + + local_irq_disable(); + +@@ -248,6 +256,7 @@ + trace_softirq_exit(); + + account_system_vtime(current); ++ (void)set_exec_env(envid); + _local_bh_enable(); + } + +@@ -298,6 +307,7 @@ + { + account_system_vtime(current); + trace_hardirq_exit(); ++ restore_context(); + sub_preempt_count(IRQ_EXIT_OFFSET); + if (!in_interrupt() && local_softirq_pending()) + invoke_softirq(); +Index: kernel/kernel/stop_machine.c +=================================================================== +--- kernel.orig/kernel/stop_machine.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/stop_machine.c 2008-11-24 15:47:46.000000000 +0100 +@@ -9,7 +9,7 @@ + #include + #include + #include +- ++#include + #include + #include + #include +@@ -63,7 +63,7 @@ + /* Yield in first stage: migration threads need to + * help our sisters onto their CPUs. */ + if (!prepared && !irqs_disabled) +- yield(); ++ msleep(10); + else + cpu_relax(); + } +@@ -109,7 +109,7 @@ + + /* Wait for them all to come to life. */ + while (atomic_read(&stopmachine_thread_ack) != stopmachine_num_threads) +- yield(); ++ msleep(10); + + /* If some failed, kill them all. */ + if (ret < 0) { +Index: kernel/kernel/sys.c +=================================================================== +--- kernel.orig/kernel/sys.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/sys.c 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -33,6 +34,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -106,6 +108,102 @@ + + void (*pm_power_off_prepare)(void); + ++DECLARE_MUTEX(virtinfo_sem); ++EXPORT_SYMBOL(virtinfo_sem); ++static struct vnotifier_block *virtinfo_chain[VIRT_TYPES]; ++ ++void __virtinfo_notifier_register(int type, struct vnotifier_block *nb) ++{ ++ struct vnotifier_block **p; ++ ++ for (p = &virtinfo_chain[type]; ++ *p != NULL && nb->priority < (*p)->priority; ++ p = &(*p)->next); ++ nb->next = *p; ++ smp_wmb(); ++ *p = nb; ++} ++ ++EXPORT_SYMBOL(__virtinfo_notifier_register); ++ ++void virtinfo_notifier_register(int type, struct vnotifier_block *nb) ++{ ++ down(&virtinfo_sem); ++ __virtinfo_notifier_register(type, nb); ++ up(&virtinfo_sem); ++} ++ ++EXPORT_SYMBOL(virtinfo_notifier_register); ++ ++struct virtinfo_cnt_struct { ++ volatile unsigned long exit[NR_CPUS]; ++ volatile unsigned long entry; ++}; ++static DEFINE_PER_CPU(struct virtinfo_cnt_struct, virtcnt); ++ ++void virtinfo_notifier_unregister(int type, struct vnotifier_block *nb) ++{ ++ struct vnotifier_block **p; ++ int entry_cpu, exit_cpu; ++ unsigned long cnt, ent; ++ ++ down(&virtinfo_sem); ++ for (p = &virtinfo_chain[type]; *p != nb; p = &(*p)->next); ++ *p = nb->next; ++ smp_mb(); ++ ++ for_each_cpu_mask(entry_cpu, cpu_possible_map) { ++ while (1) { ++ cnt = 0; ++ for_each_cpu_mask(exit_cpu, cpu_possible_map) ++ cnt += ++ per_cpu(virtcnt, entry_cpu).exit[exit_cpu]; ++ smp_rmb(); ++ ent = per_cpu(virtcnt, entry_cpu).entry; ++ if (cnt == ent) ++ break; ++ __set_current_state(TASK_UNINTERRUPTIBLE); ++ schedule_timeout(HZ / 100); ++ } ++ } ++ up(&virtinfo_sem); ++} ++ ++EXPORT_SYMBOL(virtinfo_notifier_unregister); ++ ++int virtinfo_notifier_call(int type, unsigned long n, void *data) ++{ ++ int ret; ++ int entry_cpu, exit_cpu; ++ struct vnotifier_block *nb; ++ ++ entry_cpu = get_cpu(); ++ per_cpu(virtcnt, entry_cpu).entry++; ++ smp_wmb(); ++ put_cpu(); ++ ++ nb = virtinfo_chain[type]; ++ ret = NOTIFY_DONE; ++ while (nb) ++ { ++ ret = nb->notifier_call(nb, n, data, ret); ++ if(ret & NOTIFY_STOP_MASK) { ++ ret &= ~NOTIFY_STOP_MASK; ++ break; ++ } ++ nb = nb->next; ++ } ++ ++ exit_cpu = get_cpu(); ++ smp_wmb(); ++ per_cpu(virtcnt, entry_cpu).exit[exit_cpu]++; ++ put_cpu(); ++ ++ return ret; ++} ++ ++EXPORT_SYMBOL(virtinfo_notifier_call); ++ + static int set_one_prio(struct task_struct *p, int niceval, int error) + { + int no_nice; +@@ -165,7 +263,7 @@ + pgrp = task_pgrp(current); + do_each_pid_task(pgrp, PIDTYPE_PGID, p) { + error = set_one_prio(p, niceval, error); +- } while_each_pid_task(pgrp, PIDTYPE_PGID, p); ++ } while_each_pid_task(who, PIDTYPE_PGID, p); + break; + case PRIO_USER: + user = current->user; +@@ -175,10 +273,10 @@ + if ((who != current->uid) && !(user = find_user(who))) + goto out_unlock; /* No processes for this user */ + +- do_each_thread(g, p) ++ do_each_thread_ve(g, p) + if (p->uid == who) + error = set_one_prio(p, niceval, error); +- while_each_thread(g, p); ++ while_each_thread_ve(g, p); + if (who != current->uid) + free_uid(user); /* For find_user() */ + break; +@@ -227,7 +325,7 @@ + niceval = 20 - task_nice(p); + if (niceval > retval) + retval = niceval; +- } while_each_pid_task(pgrp, PIDTYPE_PGID, p); ++ } while_each_pid_task(who, PIDTYPE_PGID, p); + break; + case PRIO_USER: + user = current->user; +@@ -237,13 +335,13 @@ + if ((who != current->uid) && !(user = find_user(who))) + goto out_unlock; /* No processes for this user */ + +- do_each_thread(g, p) ++ do_each_thread_ve(g, p) + if (p->uid == who) { + niceval = 20 - task_nice(p); + if (niceval > retval) + retval = niceval; + } +- while_each_thread(g, p); ++ while_each_thread_ve(g, p); + if (who != current->uid) + free_uid(user); /* for find_user() */ + break; +@@ -377,6 +475,25 @@ + magic2 != LINUX_REBOOT_MAGIC2C)) + return -EINVAL; + ++#ifdef CONFIG_VE ++ if (!ve_is_super(get_exec_env())) ++ switch (cmd) { ++ case LINUX_REBOOT_CMD_RESTART: ++ case LINUX_REBOOT_CMD_HALT: ++ case LINUX_REBOOT_CMD_POWER_OFF: ++ case LINUX_REBOOT_CMD_RESTART2: ++ force_sig(SIGKILL, ++ get_exec_env()->ve_ns->pid_ns->child_reaper); ++ ++ case LINUX_REBOOT_CMD_CAD_ON: ++ case LINUX_REBOOT_CMD_CAD_OFF: ++ return 0; ++ ++ default: ++ return -EINVAL; ++ } ++#endif ++ + /* Instead of trying to make the power_off code look like + * halt when pm_power_off is not set do it the easy way. + */ +@@ -558,7 +675,7 @@ + return 0; + } + +-static int set_user(uid_t new_ruid, int dumpclear) ++int set_user(uid_t new_ruid, int dumpclear) + { + struct user_struct *new_user; + +@@ -582,6 +699,7 @@ + current->uid = new_ruid; + return 0; + } ++EXPORT_SYMBOL(set_user); + + /* + * Unprivileged users may change the real uid to the effective uid +@@ -862,8 +980,27 @@ + return old_fsgid; + } + ++#ifdef CONFIG_VE ++unsigned long long ve_relative_clock(struct timespec * ts) ++{ ++ unsigned long long offset = 0; ++ ++ if (ts->tv_sec > get_exec_env()->start_timespec.tv_sec || ++ (ts->tv_sec == get_exec_env()->start_timespec.tv_sec && ++ ts->tv_nsec >= get_exec_env()->start_timespec.tv_nsec)) ++ offset = (unsigned long long)(ts->tv_sec - ++ get_exec_env()->start_timespec.tv_sec) * NSEC_PER_SEC ++ + ts->tv_nsec - get_exec_env()->start_timespec.tv_nsec; ++ return nsec_to_clock_t(offset); ++} ++#endif ++ + asmlinkage long sys_times(struct tms __user * tbuf) + { ++#ifdef CONFIG_VE ++ struct timespec now; ++#endif ++ + /* + * In the SMP world we might just be unlucky and have one of + * the times increment as we use it. Since the value is an +@@ -897,7 +1034,13 @@ + if (copy_to_user(tbuf, &tmp, sizeof(struct tms))) + return -EFAULT; + } ++#ifndef CONFIG_VE + return (long) jiffies_64_to_clock_t(get_jiffies_64()); ++#else ++ /* Compare to calculation in fs/proc/array.c */ ++ do_posix_clock_monotonic_gettime(&now); ++ return ve_relative_clock(&now); ++#endif + } + + /* +@@ -1074,6 +1217,7 @@ + + spin_lock(&group_leader->sighand->siglock); + group_leader->signal->tty = NULL; ++ group_leader->signal->tty_old_pgrp = 0; + spin_unlock(&group_leader->sighand->siglock); + + err = task_pgrp_vnr(group_leader); +@@ -1358,7 +1502,7 @@ + int errno; + char tmp[__NEW_UTS_LEN]; + +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + if (len < 0 || len > __NEW_UTS_LEN) + return -EINVAL; +@@ -1403,7 +1547,7 @@ + int errno; + char tmp[__NEW_UTS_LEN]; + +- if (!capable(CAP_SYS_ADMIN)) ++ if (!capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + if (len < 0 || len > __NEW_UTS_LEN) + return -EINVAL; +Index: kernel/kernel/sys_ni.c +=================================================================== +--- kernel.orig/kernel/sys_ni.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/sys_ni.c 2008-11-24 15:47:46.000000000 +0100 +@@ -157,3 +157,7 @@ + cond_syscall(compat_sys_signalfd); + cond_syscall(compat_sys_timerfd); + cond_syscall(sys_eventfd); ++cond_syscall(sys_getluid); ++cond_syscall(sys_setluid); ++cond_syscall(sys_setublimit); ++cond_syscall(sys_ubstat); +Index: kernel/kernel/sysctl.c +=================================================================== +--- kernel.orig/kernel/sysctl.c 2008-11-24 14:14:49.000000000 +0100 ++++ kernel/kernel/sysctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -25,6 +25,9 @@ + #include + #include + #include ++#include ++#include ++#include + #include + #include + #include +@@ -60,6 +63,8 @@ + static int deprecated_sysctl_warning(struct __sysctl_args *args); + + #if defined(CONFIG_SYSCTL) ++extern int gr_handle_sysctl_mod(const char *dirname, const char *name, ++ const int op); + + /* External variables not in a header file. */ + extern int C_A_D; +@@ -71,6 +76,7 @@ + extern int max_threads; + extern int core_uses_pid; + extern int suid_dumpable; ++extern int sysctl_at_vsyscall; + extern char core_pattern[]; + extern int pid_max; + extern int min_free_kbytes; +@@ -82,6 +88,7 @@ + extern int compat_log; + extern int maps_protect; + extern int sysctl_stat_interval; ++extern int ve_area_access_check; /* fs/namei.c */ + extern int audit_argv_kb; + extern int latencytop_enabled; + +@@ -105,6 +112,8 @@ + + static int ngroups_max = NGROUPS_MAX; + ++int ve_allow_kthreads = 1; ++EXPORT_SYMBOL(ve_allow_kthreads); + #ifdef CONFIG_KMOD + extern char modprobe_path[]; + #endif +@@ -118,6 +127,8 @@ + extern int scons_pwroff; + #endif + ++extern int alloc_fail_warn; ++ + #ifdef __hppa__ + extern int pwrsw_enabled; + extern int unaligned_enabled; +@@ -132,6 +143,7 @@ + #endif + + extern int sysctl_hz_timer; ++int decode_call_traces = 1; + + #ifdef CONFIG_BSD_PROCESS_ACCT + extern int acct_parm[]; +@@ -140,6 +152,10 @@ + #ifdef CONFIG_IA64 + extern int no_unaligned_warning; + #endif ++#ifdef CONFIG_VE ++int glob_ve_meminfo = 0; ++EXPORT_SYMBOL(glob_ve_meminfo); ++#endif + + #ifdef CONFIG_RT_MUTEXES + extern int max_lock_depth; +@@ -175,6 +191,7 @@ + #ifdef HAVE_ARCH_PICK_MMAP_LAYOUT + int sysctl_legacy_va_layout; + #endif ++extern ctl_table grsecurity_table[]; + + extern int prove_locking; + extern int lock_stat; +@@ -397,7 +414,7 @@ + #ifdef CONFIG_SECURITY_CAPABILITIES + { + .procname = "cap-bound", +- .data = &cap_bset, ++ .data = NULL, + .maxlen = sizeof(kernel_cap_t), + .mode = 0600, + .proc_handler = &proc_dointvec_bset, +@@ -448,6 +465,20 @@ + .proc_handler = &proc_dointvec, + }, + #endif ++ { ++ .procname = "silence-level", ++ .data = &console_silence_loglevel, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++ { ++ .procname = "alloc_fail_warn", ++ .data = &alloc_fail_warn, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, + #ifdef __hppa__ + { + .ctl_name = KERN_HPPA_PWRSW, +@@ -620,6 +651,15 @@ + .extra1 = &pid_max_min, + .extra2 = &pid_max_max, + }, ++#ifdef CONFIG_VE ++ { ++ .procname = "ve_meminfo", ++ .data = &glob_ve_meminfo, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++#endif + { + .ctl_name = KERN_PANIC_ON_OOPS, + .procname = "panic_on_oops", +@@ -795,6 +835,14 @@ + .proc_handler = &proc_dostring, + .strategy = &sysctl_string, + }, ++#ifdef CONFIG_GRKERNSEC_SYSCTL ++ { ++ .ctl_name = KERN_GRSECURITY, ++ .procname = "grsecurity", ++ .mode = 0500, ++ .child = grsecurity_table, ++ }, ++#endif + /* + * NOTE: do not add new entries to this table unless you have read + * Documentation/sysctl/ctl_unnumbered.txt +@@ -1261,6 +1309,20 @@ + .child = binfmt_misc_table, + }, + #endif ++ { ++ .procname = "vsyscall", ++ .data = &sysctl_at_vsyscall, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++ { ++ .procname = "odirect_enable", ++ .data = &odirect_enable, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, + /* + * NOTE: do not add new entries to this table unless you have read + * Documentation/sysctl/ctl_unnumbered.txt +@@ -1269,6 +1331,13 @@ + }; + + static struct ctl_table debug_table[] = { ++ { ++ .procname = "decode_call_traces", ++ .data = &decode_call_traces, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, + #if defined(CONFIG_X86) || defined(CONFIG_PPC) + { + .ctl_name = CTL_UNNUMBERED, +@@ -1340,14 +1409,26 @@ + { + struct ctl_table_header *head; + struct list_head *tmp; ++ struct ve_struct *ve; ++ ++ ve = get_exec_env(); + spin_lock(&sysctl_lock); + if (prev) { + tmp = &prev->ctl_entry; + unuse_table(prev); + goto next; + } ++#ifdef CONFIG_VE ++ tmp = ve->sysctl_lh.next; ++#else + tmp = &root_table_header.ctl_entry; ++#endif + for (;;) { ++#ifdef CONFIG_VE ++ if (tmp == &ve->sysctl_lh) ++ /* second pass over global variables */ ++ tmp = &root_table_header.ctl_entry; ++#endif + head = list_entry(tmp, struct ctl_table_header, ctl_entry); + + if (!use_table(head)) +@@ -1457,10 +1538,17 @@ + int sysctl_perm(struct ctl_table *table, int op) + { + int error; ++ int mode = table->mode; ++ ++ if (table->procname && table->parent && gr_handle_sysctl_mod(table->parent->procname, table->procname, op)) ++ return -EACCES; + error = security_sysctl(table, op); + if (error) + return error; +- return test_perm(table->mode, op); ++ if (!ve_accessible(table->owner_env, get_exec_env()) && ++ !table->virt_handler) ++ mode &= ~0222; /* disable write access */ ++ return test_perm(mode, op); + } + + #ifdef CONFIG_SYSCTL_SYSCALL +@@ -1497,6 +1585,36 @@ + return -ENOTDIR; + } + ++int __do_sysctl_strategy (void *data, ctl_table *table, ++ int __user *name, int nlen, ++ void __user *oldval, size_t __user *oldlenp, ++ void __user *newval, size_t newlen) { ++ size_t len; ++ ++ if (oldval && oldlenp) { ++ if (get_user(len, oldlenp)) ++ return -EFAULT; ++ if (len) { ++ if (len > table->maxlen) ++ len = table->maxlen; ++ if (copy_to_user(oldval, data, len)) ++ return -EFAULT; ++ if (put_user(len, oldlenp)) ++ return -EFAULT; ++ } ++ } ++ ++ if (newval && newlen) { ++ len = newlen; ++ if (len > table->maxlen) ++ len = table->maxlen; ++ if (copy_from_user(data, newval, len)) ++ return -EFAULT; ++ } ++ ++ return 0; ++} ++ + /* Perform the actual read/write of a sysctl table entry. */ + int do_sysctl_strategy (struct ctl_table *table, + int __user *name, int nlen, +@@ -1620,9 +1738,11 @@ + * This routine returns %NULL on a failure to register, and a pointer + * to the table header on success. + */ +-struct ctl_table_header *register_sysctl_table(struct ctl_table * table) ++static struct ctl_table_header *__register_sysctl_table(struct list_head *lh, ++ struct ctl_table * table) + { + struct ctl_table_header *tmp; ++ + tmp = kmalloc(sizeof(struct ctl_table_header), GFP_KERNEL); + if (!tmp) + return NULL; +@@ -1636,11 +1756,76 @@ + return NULL; + } + spin_lock(&sysctl_lock); +- list_add_tail(&tmp->ctl_entry, &root_table_header.ctl_entry); ++ list_add_tail(&tmp->ctl_entry, lh); + spin_unlock(&sysctl_lock); + return tmp; + } + ++struct ctl_table_header *register_sysctl_table(struct ctl_table * table) ++{ ++ struct list_head *lh; ++ ++#ifdef CONFIG_VE ++ lh = &get_exec_env()->sysctl_lh; ++#else ++ lh = &root_table_header.ctl_entry; ++#endif ++ return __register_sysctl_table(lh, table); ++} ++ ++#ifdef CONFIG_VE ++struct ctl_table_header *register_glob_sysctl_table(struct ctl_table *table) ++{ ++ return __register_sysctl_table(&root_table_header.ctl_entry, table); ++} ++EXPORT_SYMBOL(register_glob_sysctl_table); ++#endif ++ ++void free_sysctl_clone(ctl_table *clone) ++{ ++ int i; ++ ++ for (i = 0; clone[i].ctl_name != 0; i++) ++ if (clone[i].child != NULL) ++ free_sysctl_clone(clone[i].child); ++ ++ kfree(clone); ++} ++ ++ctl_table *clone_sysctl_template(ctl_table *tmpl) ++{ ++ int i, nr; ++ ctl_table *clone; ++ ++ nr = 0; ++ while (tmpl[nr].ctl_name != 0 || tmpl[nr].procname) ++ nr++; ++ nr++; ++ ++ clone = kmemdup(tmpl, nr * sizeof(ctl_table), GFP_KERNEL); ++ if (clone == NULL) ++ return NULL; ++ ++ for (i = 0; i < nr; i++) { ++ clone[i].owner_env = get_exec_env(); ++ if (tmpl[i].child == NULL) ++ continue; ++ ++ clone[i].child = clone_sysctl_template(tmpl[i].child); ++ if (clone[i].child == NULL) ++ goto unroll; ++ } ++ return clone; ++ ++unroll: ++ for (i--; i >= 0; i--) ++ if (clone[i].child != NULL) ++ free_sysctl_clone(clone[i].child); ++ ++ kfree(clone); ++ return NULL; ++} ++ + /** + * unregister_sysctl_table - unregister a sysctl table hierarchy + * @header: the header returned from register_sysctl_table +@@ -1671,6 +1856,14 @@ + { + } + ++ctl_table * clone_sysctl_template(ctl_table *tmpl, int nr) ++{ ++ return NULL; ++} ++ ++void free_sysctl_clone(ctl_table *tmpl) ++{ ++} + #endif /* CONFIG_SYSCTL */ + + /* +@@ -1962,13 +2155,19 @@ + { + int op; + +- if (write && !capable(CAP_SYS_MODULE)) { ++ struct ve_struct *ve; ++ ++ ve = get_exec_env(); ++ ++ /* For VE's root writing to VE's cap-bound is prohibited */ ++ if ((ve_is_super(ve) && write && !capable(CAP_SYS_MODULE)) || ++ (!ve_is_super(ve) && (!capable(CAP_VE_ADMIN) || write))) { + return -EPERM; + } + + op = is_global_init(current) ? OP_SET : OP_AND; +- return do_proc_dointvec(table,write,filp,buffer,lenp,ppos, +- do_proc_dointvec_bset_conv,&op); ++ return __do_proc_dointvec(&cap_bset, table, write, filp, ++ buffer, lenp, ppos, do_proc_dointvec_bset_conv, &op); + } + #endif /* def CONFIG_SECURITY_CAPABILITIES */ + +@@ -2731,3 +2930,5 @@ + EXPORT_SYMBOL(sysctl_string); + EXPORT_SYMBOL(sysctl_data); + EXPORT_SYMBOL(unregister_sysctl_table); ++EXPORT_SYMBOL(clone_sysctl_template); ++EXPORT_SYMBOL(free_sysctl_clone); +Index: kernel/kernel/sysctl_check.c +=================================================================== +--- kernel.orig/kernel/sysctl_check.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/sysctl_check.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1459,6 +1459,7 @@ + int sysctl_check_table(struct ctl_table *table) + { + int error = 0; ++ return 0; + for (; table->ctl_name || table->procname; table++) { + const char *fail = NULL; + +Index: kernel/kernel/taskstats.c +=================================================================== +--- kernel.orig/kernel/taskstats.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/taskstats.c 2008-11-24 15:47:46.000000000 +0100 +@@ -183,7 +183,7 @@ + + if (!tsk) { + rcu_read_lock(); +- tsk = find_task_by_pid(pid); ++ tsk = find_task_by_vpid(pid); + if (tsk) + get_task_struct(tsk); + rcu_read_unlock(); +@@ -230,7 +230,7 @@ + */ + rcu_read_lock(); + if (!first) +- first = find_task_by_pid(tgid); ++ first = find_task_by_vpid(tgid); + + if (!first || !lock_task_sighand(first, &flags)) + goto out; +@@ -254,7 +254,7 @@ + + stats->nvcsw += tsk->nvcsw; + stats->nivcsw += tsk->nivcsw; +- } while_each_thread(first, tsk); ++ } while_each_thread_all(first, tsk); + + unlock_task_sighand(first, &flags); + rc = 0; +Index: kernel/kernel/time.c +=================================================================== +--- kernel.orig/kernel/time.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/time.c 2008-11-24 15:47:46.000000000 +0100 +@@ -577,12 +577,14 @@ + unsigned long clock_t_to_jiffies(unsigned long x) + { + #if (HZ % USER_HZ)==0 ++ WARN_ON((long)x < 0); + if (x >= ~0UL / (HZ / USER_HZ)) + return ~0UL; + return x * (HZ / USER_HZ); + #else + u64 jif; + ++ WARN_ON((long)x < 0); + /* Don't worry about loss of precision here .. */ + if (x >= ~0UL / HZ * USER_HZ) + return ~0UL; +@@ -597,6 +599,7 @@ + + u64 jiffies_64_to_clock_t(u64 x) + { ++ WARN_ON((s64)x < 0); + #if (TICK_NSEC % (NSEC_PER_SEC / USER_HZ)) == 0 + do_div(x, HZ / USER_HZ); + #else +@@ -615,6 +618,7 @@ + + u64 nsec_to_clock_t(u64 x) + { ++ WARN_ON((s64)x < 0); + #if (NSEC_PER_SEC % USER_HZ) == 0 + do_div(x, (NSEC_PER_SEC / USER_HZ)); + #elif (USER_HZ % 512) == 0 +Index: kernel/kernel/time/timekeeping.c +=================================================================== +--- kernel.orig/kernel/time/timekeeping.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/time/timekeeping.c 2008-11-24 15:47:46.000000000 +0100 +@@ -43,6 +43,7 @@ + * used instead. + */ + struct timespec xtime __attribute__ ((aligned (16))); ++EXPORT_SYMBOL_GPL(xtime); + struct timespec wall_to_monotonic __attribute__ ((aligned (16))); + static unsigned long total_sleep_time; /* seconds */ + +Index: kernel/kernel/timer.c +=================================================================== +--- kernel.orig/kernel/timer.c 2008-11-24 14:17:45.000000000 +0100 ++++ kernel/kernel/timer.c 2008-11-24 15:47:46.000000000 +0100 +@@ -37,6 +37,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -663,7 +665,11 @@ + spin_unlock_irq(&base->lock); + { + int preempt_count = preempt_count(); ++ struct ve_struct *ve; ++ ++ ve = set_exec_env(get_ve0()); + fn(data); ++ (void)set_exec_env(ve); + if (preempt_count != preempt_count()) { + printk(KERN_WARNING "huh, entered %p " + "with preempt_count %08x, exited" +@@ -880,6 +886,37 @@ + * calc_load - given tick count, update the avenrun load estimates. + * This is called while holding a write_lock on xtime_lock. + */ ++ ++ ++#ifdef CONFIG_VE ++static void calc_load_ve(void) ++{ ++ unsigned long flags, nr_unint, nr_active; ++ struct ve_struct *ve; ++ ++ read_lock(&ve_list_lock); ++ for_each_ve(ve) { ++ nr_active = nr_running_ve(ve) + nr_uninterruptible_ve(ve); ++ nr_active *= FIXED_1; ++ ++ CALC_LOAD(ve->avenrun[0], EXP_1, nr_active); ++ CALC_LOAD(ve->avenrun[1], EXP_5, nr_active); ++ CALC_LOAD(ve->avenrun[2], EXP_15, nr_active); ++ } ++ read_unlock(&ve_list_lock); ++ ++ nr_unint = nr_uninterruptible() * FIXED_1; ++ spin_lock_irqsave(&kstat_glb_lock, flags); ++ CALC_LOAD(kstat_glob.nr_unint_avg[0], EXP_1, nr_unint); ++ CALC_LOAD(kstat_glob.nr_unint_avg[1], EXP_5, nr_unint); ++ CALC_LOAD(kstat_glob.nr_unint_avg[2], EXP_15, nr_unint); ++ spin_unlock_irqrestore(&kstat_glb_lock, flags); ++ ++} ++#else ++#define calc_load_ve() do { } while (0) ++#endif ++ + static inline void calc_load(unsigned long ticks) + { + unsigned long active_tasks; /* fixed-point */ +@@ -892,6 +929,7 @@ + CALC_LOAD(avenrun[0], EXP_1, active_tasks); + CALC_LOAD(avenrun[1], EXP_5, active_tasks); + CALC_LOAD(avenrun[2], EXP_15, active_tasks); ++ calc_load_ve(); + count += LOAD_FREQ; + } while (count < 0); + } +@@ -1130,11 +1168,12 @@ + unsigned long mem_total, sav_total; + unsigned int mem_unit, bitcount; + unsigned long seq; ++ unsigned long *__avenrun; ++ struct timespec tp; + + memset(info, 0, sizeof(struct sysinfo)); + + do { +- struct timespec tp; + seq = read_seqbegin(&xtime_lock); + + /* +@@ -1152,18 +1191,34 @@ + tp.tv_nsec = tp.tv_nsec - NSEC_PER_SEC; + tp.tv_sec++; + } +- info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0); +- +- info->loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT); +- info->loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT); +- info->loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT); ++ } while (read_seqretry(&xtime_lock, seq)); + ++ if (ve_is_super(get_exec_env())) { ++ info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0); ++ __avenrun = &avenrun[0]; + info->procs = nr_threads; +- } while (read_seqretry(&xtime_lock, seq)); ++ } ++#ifdef CONFIG_VE ++ else { ++ struct ve_struct *ve; ++ ve = get_exec_env(); ++ __avenrun = &ve->avenrun[0]; ++ info->procs = atomic_read(&ve->pcounter); ++ info->uptime = tp.tv_sec - ve->start_timespec.tv_sec; ++ } ++#endif ++ info->loads[0] = __avenrun[0] << (SI_LOAD_SHIFT - FSHIFT); ++ info->loads[1] = __avenrun[1] << (SI_LOAD_SHIFT - FSHIFT); ++ info->loads[2] = __avenrun[2] << (SI_LOAD_SHIFT - FSHIFT); + + si_meminfo(info); + si_swapinfo(info); + ++#ifdef CONFIG_BEANCOUNTERS ++ if (virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_SYSINFO, info) ++ & NOTIFY_FAIL) ++ return -ENOMSG; ++#endif + /* + * If the sum of all the available memory (i.e. ram + swap) + * is less than can be stored in a 32 bit unsigned long then +Index: kernel/kernel/user.c +=================================================================== +--- kernel.orig/kernel/user.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/user.c 2008-11-24 15:47:46.000000000 +0100 +@@ -318,6 +318,7 @@ + else + local_irq_restore(flags); + } ++EXPORT_SYMBOL_GPL(free_uid); + + struct user_struct * alloc_uid(struct user_namespace *ns, uid_t uid) + { +@@ -406,6 +407,7 @@ + + return up; + } ++EXPORT_SYMBOL_GPL(alloc_uid); + + void switch_uid(struct user_struct *new_user) + { +@@ -436,6 +438,7 @@ + free_uid(old_user); + suid_keys(current); + } ++EXPORT_SYMBOL_GPL(switch_uid); + + void release_uids(struct user_namespace *ns) + { +@@ -467,7 +470,7 @@ + int n; + + uid_cachep = kmem_cache_create("uid_cache", sizeof(struct user_struct), +- 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); ++ 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_UBC, NULL); + + for(n = 0; n < UIDHASH_SZ; ++n) + INIT_HLIST_HEAD(init_user_ns.uidhash_table + n); +Index: kernel/kernel/utsname_sysctl.c +=================================================================== +--- kernel.orig/kernel/utsname_sysctl.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/kernel/utsname_sysctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -27,6 +27,10 @@ + down_read(&uts_sem); + else + down_write(&uts_sem); ++ ++ if (strcmp(table->procname, "virt_osrelease") == 0) ++ return virt_utsname.release; ++ + return which; + } + +@@ -115,6 +119,7 @@ + .mode = 0644, + .proc_handler = proc_do_uts_string, + .strategy = sysctl_uts_string, ++ .virt_handler = 1, + }, + { + .ctl_name = KERN_DOMAINNAME, +@@ -124,6 +129,14 @@ + .mode = 0644, + .proc_handler = proc_do_uts_string, + .strategy = sysctl_uts_string, ++ .virt_handler = 1, ++ }, { ++ .procname = "virt_osrelease", ++ .data = virt_utsname.release, ++ .maxlen = sizeof(virt_utsname.release), ++ .mode = 0644, ++ .proc_handler = &proc_do_uts_string, ++ .strategy = sysctl_uts_string, + }, + {} + }; +@@ -140,7 +153,7 @@ + + static int __init utsname_sysctl_init(void) + { +- register_sysctl_table(uts_root_table); ++ register_glob_sysctl_table(uts_root_table); + return 0; + } + +Index: kernel/kernel/ve/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/Makefile 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,16 @@ ++# ++# ++# kernel/ve/Makefile ++# ++# Copyright (C) 2000-2005 SWsoft ++# All rights reserved. ++# ++# Licensing governed by "linux/COPYING.SWsoft" file. ++ ++obj-$(CONFIG_VE) = ve.o veowner.o hooks.o devperms.o ++obj-$(CONFIG_VZ_WDOG) += vzwdog.o ++obj-$(CONFIG_VE_CALLS) += vzmon.o ++ ++vzmon-objs = vecalls.o ++ ++obj-$(CONFIG_VZ_DEV) += vzdev.o +Index: kernel/kernel/ve/devperms.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/devperms.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,418 @@ ++/* ++ * linux/kernel/ve/devperms.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ * Devices permissions routines, ++ * character and block devices separately ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * Rules applied in the following order: ++ * MAJOR!=0, MINOR!=0 ++ * MAJOR!=0, MINOR==0 ++ * MAJOR==0, MINOR==0 ++ */ ++ ++struct devperms_struct { ++ dev_t dev; /* device id */ ++ unsigned char mask; ++ unsigned type; ++ envid_t veid; ++ ++ struct hlist_node hash; ++ struct rcu_head rcu; ++}; ++ ++static struct devperms_struct default_major_perms[] = { ++ { ++ MKDEV(UNIX98_PTY_MASTER_MAJOR, 0), ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(UNIX98_PTY_SLAVE_MAJOR, 0), ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(PTY_MASTER_MAJOR, 0), ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(PTY_SLAVE_MAJOR, 0), ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++}; ++ ++static struct devperms_struct default_minor_perms[] = { ++ { ++ MKDEV(MEM_MAJOR, 3), /* null */ ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(MEM_MAJOR, 5), /* zero */ ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(MEM_MAJOR, 7), /* full */ ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(TTYAUX_MAJOR, 0), /* tty */ ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(TTYAUX_MAJOR, 2), /* ptmx */ ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(MEM_MAJOR, 8), /* random */ ++ S_IROTH, ++ S_IFCHR, ++ }, ++ { ++ MKDEV(MEM_MAJOR, 9), /* urandom */ ++ S_IROTH, ++ S_IFCHR ++ }, ++}; ++ ++static struct devperms_struct default_deny_perms = { ++ MKDEV(0, 0), ++ 0, ++ S_IFCHR, ++}; ++ ++static inline struct devperms_struct *find_default_devperms(int type, dev_t dev) ++{ ++ int i; ++ ++ /* XXX all defaults perms are S_IFCHR */ ++ if (type != S_IFCHR) ++ return &default_deny_perms; ++ ++ for (i = 0; i < ARRAY_SIZE(default_minor_perms); i++) ++ if (MAJOR(dev) == MAJOR(default_minor_perms[i].dev) && ++ MINOR(dev) == MINOR(default_minor_perms[i].dev)) ++ return &default_minor_perms[i]; ++ ++ for (i = 0; i < ARRAY_SIZE(default_major_perms); i++) ++ if (MAJOR(dev) == MAJOR(default_major_perms[i].dev)) ++ return &default_major_perms[i]; ++ ++ return &default_deny_perms; ++} ++ ++#define DEVPERMS_HASH_SZ 512 ++#define devperms_hashfn(id, dev) \ ++ ( (id << 5) ^ (id >> 5) ^ (MAJOR(dev)) ^ MINOR(dev) ) & \ ++ (DEVPERMS_HASH_SZ - 1) ++ ++static DEFINE_SPINLOCK(devperms_hash_lock); ++static struct hlist_head devperms_hash[DEVPERMS_HASH_SZ]; ++ ++static inline struct devperms_struct *find_devperms(envid_t veid, ++ int type, ++ dev_t dev) ++{ ++ struct hlist_head *table; ++ struct devperms_struct *perms; ++ struct hlist_node *h; ++ ++ table = &devperms_hash[devperms_hashfn(veid, dev)]; ++ hlist_for_each_entry_rcu (perms, h, table, hash) ++ if (perms->type == type && perms->veid == veid && ++ MAJOR(perms->dev) == MAJOR(dev) && ++ MINOR(perms->dev) == MINOR(dev)) ++ return perms; ++ ++ return NULL; ++} ++ ++static void free_devperms(struct rcu_head *rcu) ++{ ++ struct devperms_struct *perms; ++ ++ perms = container_of(rcu, struct devperms_struct, rcu); ++ kfree(perms); ++} ++ ++/* API calls */ ++ ++void clean_device_perms_ve(envid_t veid) ++{ ++ int i; ++ struct devperms_struct *p; ++ struct hlist_node *n, *tmp; ++ ++ spin_lock(&devperms_hash_lock); ++ for (i = 0; i < DEVPERMS_HASH_SZ; i++) ++ hlist_for_each_entry_safe (p, n, tmp, &devperms_hash[i], hash) ++ if (p->veid == veid) { ++ hlist_del_rcu(&p->hash); ++ call_rcu(&p->rcu, free_devperms); ++ } ++ spin_unlock(&devperms_hash_lock); ++} ++ ++EXPORT_SYMBOL(clean_device_perms_ve); ++ ++/* ++ * Mode is a mask of ++ * FMODE_READ for read access (configurable by S_IROTH) ++ * FMODE_WRITE for write access (configurable by S_IWOTH) ++ * FMODE_QUOTACTL for quotactl access (configurable by S_IXGRP) ++ */ ++ ++int get_device_perms_ve(int dev_type, dev_t dev, int access_mode) ++{ ++ struct devperms_struct *p; ++ struct ve_struct *ve; ++ envid_t veid; ++ char mask; ++ ++ ve = get_exec_env(); ++ veid = ve->veid; ++ rcu_read_lock(); ++ ++ p = find_devperms(veid, dev_type | VE_USE_MINOR, dev); ++ if (p != NULL) ++ goto end; ++ ++ p = find_devperms(veid, dev_type | VE_USE_MAJOR, MKDEV(MAJOR(dev),0)); ++ if (p != NULL) ++ goto end; ++ ++ p = find_devperms(veid, dev_type, MKDEV(0,0)); ++ if (p != NULL) ++ goto end; ++ ++ if (ve->features & VE_FEATURE_DEF_PERMS) { ++ p = find_default_devperms(dev_type, dev); ++ if (p != NULL) ++ goto end; ++ } ++ ++ rcu_read_unlock(); ++ return -ENODEV; ++ ++end: ++ mask = p->mask; ++ rcu_read_unlock(); ++ ++ access_mode = "\000\004\002\006\010\014\012\016"[access_mode]; ++ return ((mask & access_mode) == access_mode) ? 0 : -EACCES; ++} ++ ++EXPORT_SYMBOL(get_device_perms_ve); ++ ++int set_device_perms_ve(envid_t veid, unsigned type, dev_t dev, unsigned mask) ++{ ++ struct devperms_struct *perms, *new_perms; ++ struct hlist_head *htable; ++ ++ new_perms = kmalloc(sizeof(struct devperms_struct), GFP_KERNEL); ++ ++ spin_lock(&devperms_hash_lock); ++ perms = find_devperms(veid, type, dev); ++ if (perms != NULL) { ++ kfree(new_perms); ++ perms->mask = mask & S_IALLUGO; ++ } else { ++ switch (type & VE_USE_MASK) { ++ case 0: ++ dev = 0; ++ break; ++ case VE_USE_MAJOR: ++ dev = MKDEV(MAJOR(dev),0); ++ break; ++ } ++ ++ new_perms->veid = veid; ++ new_perms->dev = dev; ++ new_perms->type = type; ++ new_perms->mask = mask & S_IALLUGO; ++ ++ htable = &devperms_hash[devperms_hashfn(new_perms->veid, ++ new_perms->dev)]; ++ hlist_add_head_rcu(&new_perms->hash, htable); ++ } ++ spin_unlock(&devperms_hash_lock); ++ return 0; ++} ++ ++EXPORT_SYMBOL(set_device_perms_ve); ++ ++#ifdef CONFIG_PROC_FS ++static int devperms_seq_show(struct seq_file *m, void *v) ++{ ++ struct devperms_struct *dp; ++ char dev_s[32], type_c; ++ unsigned use, type; ++ dev_t dev; ++ ++ dp = (struct devperms_struct *)v; ++ if (dp == (struct devperms_struct *)1L) { ++ seq_printf(m, "Version: 2.7\n"); ++ return 0; ++ } ++ ++ use = dp->type & VE_USE_MASK; ++ type = dp->type & S_IFMT; ++ dev = dp->dev; ++ ++ if ((use | VE_USE_MINOR) == use) ++ snprintf(dev_s, sizeof(dev_s), "%d:%d", MAJOR(dev), MINOR(dev)); ++ else if ((use | VE_USE_MAJOR) == use) ++ snprintf(dev_s, sizeof(dev_s), "%d:*", MAJOR(dp->dev)); ++ else ++ snprintf(dev_s, sizeof(dev_s), "*:*"); ++ ++ if (type == S_IFCHR) ++ type_c = 'c'; ++ else if (type == S_IFBLK) ++ type_c = 'b'; ++ else ++ type_c = '?'; ++ ++ seq_printf(m, "%10u %c %03o %s\n", dp->veid, type_c, dp->mask, dev_s); ++ return 0; ++} ++ ++static void *devperms_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ loff_t cpos; ++ long slot; ++ struct devperms_struct *dp; ++ struct hlist_node *h; ++ ++ cpos = *pos; ++ rcu_read_lock(); ++ ++ if (cpos-- == 0) ++ return (void *)1L; ++ ++ for (slot = 0; slot < DEVPERMS_HASH_SZ; slot++) ++ hlist_for_each_entry_rcu (dp, h, &devperms_hash[slot], hash) ++ if (cpos-- == 0) { ++ m->private = (void *)slot; ++ return dp; ++ } ++ return NULL; ++} ++ ++static void *devperms_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ long slot; ++ struct hlist_node *next; ++ struct devperms_struct *dp; ++ ++ dp = (struct devperms_struct *)v; ++ ++ if (unlikely(dp == (struct devperms_struct *)1L)) ++ slot = 0; ++ else { ++ next = rcu_dereference(dp->hash.next); ++ if (next != NULL) ++ goto out; ++ ++ slot = (long)m->private + 1; ++ } ++ ++ for (; slot < DEVPERMS_HASH_SZ; slot++) { ++ next = rcu_dereference(devperms_hash[slot].first); ++ if (next == NULL) ++ continue; ++ ++ m->private = (void *)slot; ++ goto out; ++ } ++ return NULL; ++ ++out: ++ (*pos)++; ++ return hlist_entry(next, struct devperms_struct, hash); ++} ++ ++static void devperms_seq_stop(struct seq_file *m, void *v) ++{ ++ rcu_read_unlock(); ++} ++ ++static struct seq_operations devperms_seq_op = { ++ .start = devperms_seq_start, ++ .next = devperms_seq_next, ++ .stop = devperms_seq_stop, ++ .show = devperms_seq_show, ++}; ++ ++static int devperms_open(struct inode *inode, struct file *file) ++{ ++ return seq_open(file, &devperms_seq_op); ++} ++ ++struct file_operations proc_devperms_ops = { ++ .open = devperms_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++ ++EXPORT_SYMBOL(proc_devperms_ops); ++#endif ++ ++/* Initialisation */ ++ ++static struct devperms_struct original_perms[] = ++{ ++ { ++ MKDEV(0,0), ++ S_IROTH | S_IWOTH, ++ S_IFCHR, ++ 0, ++ }, ++ { ++ MKDEV(0,0), ++ S_IXGRP | S_IROTH | S_IWOTH, ++ S_IFBLK, ++ 0, ++ }, ++}; ++ ++static int __init init_devperms_hash(void) ++{ ++ hlist_add_head(&original_perms[0].hash, ++ &devperms_hash[devperms_hashfn(0, ++ original_perms[0].dev)]); ++ hlist_add_head(&original_perms[1].hash, ++ &devperms_hash[devperms_hashfn(0, ++ original_perms[1].dev)]); ++ return 0; ++} ++ ++core_initcall(init_devperms_hash); +Index: kernel/kernel/ve/hooks.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/hooks.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,114 @@ ++/* ++ * linux/kernel/ve/hooks.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static struct list_head ve_hooks[VE_MAX_CHAINS]; ++static DECLARE_RWSEM(ve_hook_sem); ++ ++void ve_hook_register(int chain, struct ve_hook *vh) ++{ ++ struct list_head *lh; ++ struct ve_hook *tmp; ++ ++ BUG_ON(chain > VE_MAX_CHAINS); ++ ++ down_write(&ve_hook_sem); ++ list_for_each(lh, &ve_hooks[chain]) { ++ tmp = list_entry(lh, struct ve_hook, list); ++ if (vh->priority < tmp->priority) ++ break; ++ } ++ ++ list_add_tail(&vh->list, lh); ++ up_write(&ve_hook_sem); ++} ++ ++EXPORT_SYMBOL(ve_hook_register); ++ ++void ve_hook_unregister(struct ve_hook *vh) ++{ ++ down_write(&ve_hook_sem); ++ list_del(&vh->list); ++ up_write(&ve_hook_sem); ++} ++ ++EXPORT_SYMBOL(ve_hook_unregister); ++ ++static inline int ve_hook_init(struct ve_hook *vh, struct ve_struct *ve) ++{ ++ int err; ++ ++ err = 0; ++ if (try_module_get(vh->owner)) { ++ err = vh->init(ve); ++ module_put(vh->owner); ++ } ++ return err; ++} ++ ++static inline void ve_hook_fini(struct ve_hook *vh, struct ve_struct *ve) ++{ ++ if (vh->fini != NULL && try_module_get(vh->owner)) { ++ vh->fini(ve); ++ module_put(vh->owner); ++ } ++} ++ ++int ve_hook_iterate_init(int chain, void *ve) ++{ ++ struct ve_hook *vh; ++ int err; ++ ++ err = 0; ++ ++ down_read(&ve_hook_sem); ++ list_for_each_entry(vh, &ve_hooks[chain], list) ++ if ((err = ve_hook_init(vh, ve)) < 0) ++ break; ++ ++ if (err) ++ list_for_each_entry_continue_reverse(vh, &ve_hooks[chain], list) ++ ve_hook_fini(vh, ve); ++ ++ up_read(&ve_hook_sem); ++ return err; ++} ++ ++EXPORT_SYMBOL(ve_hook_iterate_init); ++ ++void ve_hook_iterate_fini(int chain, void *ve) ++{ ++ struct ve_hook *vh; ++ ++ down_read(&ve_hook_sem); ++ list_for_each_entry_reverse(vh, &ve_hooks[chain], list) ++ ve_hook_fini(vh, ve); ++ up_read(&ve_hook_sem); ++} ++ ++EXPORT_SYMBOL(ve_hook_iterate_fini); ++ ++static int __init ve_hooks_init(void) ++{ ++ int i; ++ ++ for (i = 0; i < VE_MAX_CHAINS; i++) ++ INIT_LIST_HEAD(&ve_hooks[i]); ++ return 0; ++} ++ ++core_initcall(ve_hooks_init); ++ +Index: kernel/kernel/ve/ve.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/ve.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,161 @@ ++/* ++ * linux/kernel/ve/ve.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++/* ++ * 've.c' helper file performing VE sub-system initialization ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++unsigned long vz_rstamp = 0x37e0f59d; ++ ++#ifdef CONFIG_MODULES ++struct module no_module = { .state = MODULE_STATE_GOING }; ++EXPORT_SYMBOL(no_module); ++#endif ++ ++INIT_KSYM_MODULE(ip_tables); ++INIT_KSYM_MODULE(ip6_tables); ++INIT_KSYM_MODULE(iptable_filter); ++INIT_KSYM_MODULE(ip6table_filter); ++INIT_KSYM_MODULE(iptable_mangle); ++INIT_KSYM_MODULE(ip6table_mangle); ++INIT_KSYM_MODULE(ip_conntrack); ++INIT_KSYM_MODULE(nf_conntrack); ++INIT_KSYM_MODULE(nf_conntrack_ipv4); ++INIT_KSYM_MODULE(nf_conntrack_ipv6); ++INIT_KSYM_MODULE(ip_nat); ++INIT_KSYM_MODULE(nf_nat); ++INIT_KSYM_MODULE(iptable_nat); ++ ++INIT_KSYM_CALL(int, init_netfilter, (void)); ++INIT_KSYM_CALL(int, init_iptables, (void)); ++INIT_KSYM_CALL(int, init_ip6tables, (void)); ++INIT_KSYM_CALL(int, init_iptable_filter, (void)); ++INIT_KSYM_CALL(int, init_ip6table_filter, (void)); ++INIT_KSYM_CALL(int, init_iptable_mangle, (void)); ++INIT_KSYM_CALL(int, init_ip6table_mangle, (void)); ++INIT_KSYM_CALL(int, init_iptable_conntrack, (void)); ++INIT_KSYM_CALL(int, nf_conntrack_init_ve, (void)); ++INIT_KSYM_CALL(int, init_nf_ct_l3proto_ipv4, (void)); ++INIT_KSYM_CALL(int, init_nf_ct_l3proto_ipv6, (void)); ++INIT_KSYM_CALL(int, nf_nat_init, (void)); ++INIT_KSYM_CALL(int, init_iptable_nat, (void)); ++INIT_KSYM_CALL(void, fini_iptable_nat, (void)); ++INIT_KSYM_CALL(int, init_nftable_nat, (void)); ++INIT_KSYM_CALL(void, fini_nftable_nat, (void)); ++INIT_KSYM_CALL(void, nf_nat_cleanup, (void)); ++INIT_KSYM_CALL(void, fini_iptable_conntrack, (void)); ++INIT_KSYM_CALL(void, nf_conntrack_cleanup_ve, (void)); ++INIT_KSYM_CALL(void, fini_nf_ct_l3proto_ipv4, (void)); ++INIT_KSYM_CALL(void, fini_nf_ct_l3proto_ipv6, (void)); ++INIT_KSYM_CALL(void, fini_ip6table_filter, (void)); ++INIT_KSYM_CALL(void, fini_iptable_filter, (void)); ++INIT_KSYM_CALL(void, fini_ip6table_mangle, (void)); ++INIT_KSYM_CALL(void, fini_iptable_mangle, (void)); ++INIT_KSYM_CALL(void, fini_ip6tables, (void)); ++INIT_KSYM_CALL(void, fini_iptables, (void)); ++INIT_KSYM_CALL(void, fini_netfilter, (void)); ++ ++#if defined(CONFIG_VE_CALLS_MODULE) || defined(CONFIG_VE_CALLS) ++INIT_KSYM_MODULE(vzmon); ++INIT_KSYM_CALL(void, real_do_env_free, (struct ve_struct *env)); ++ ++void do_env_free(struct ve_struct *env) ++{ ++ KSYMSAFECALL_VOID(vzmon, real_do_env_free, (env)); ++} ++EXPORT_SYMBOL(do_env_free); ++#endif ++ ++#if defined(CONFIG_VE_ETHDEV) || defined(CONFIG_VE_ETHDEV_MODULE) ++INIT_KSYM_MODULE(vzethdev); ++INIT_KSYM_CALL(int, veth_open, (struct net_device *dev)); ++#endif ++ ++struct ve_struct ve0 = { ++ .ve_list = LIST_HEAD_INIT(ve0.ve_list), ++ .vetask_lh = LIST_HEAD_INIT(ve0.vetask_lh), ++ .start_jiffies = INITIAL_JIFFIES, ++#ifdef CONFIG_UNIX98_PTYS ++ .devpts_config = &devpts_config, ++#endif ++ .ve_ns = &init_nsproxy, ++ .is_running = 1, ++ .op_sem = __RWSEM_INITIALIZER(ve0.op_sem), ++}; ++ ++EXPORT_SYMBOL(ve0); ++ ++#ifdef CONFIG_SMP ++static struct percpu_data ve0_cpu_stats; ++#endif ++static struct ve_cpu_stats ve0_cpu_stats_data[NR_CPUS]; ++ ++LIST_HEAD(ve_list_head); ++rwlock_t ve_list_lock = RW_LOCK_UNLOCKED; ++ ++LIST_HEAD(ve_cleanup_list); ++DEFINE_SPINLOCK(ve_cleanup_lock); ++struct task_struct *ve_cleanup_thread; ++ ++EXPORT_SYMBOL(ve_list_lock); ++EXPORT_SYMBOL(ve_list_head); ++EXPORT_SYMBOL(ve_cleanup_lock); ++EXPORT_SYMBOL(ve_cleanup_list); ++EXPORT_SYMBOL(ve_cleanup_thread); ++ ++void init_ve0(void) ++{ ++ struct ve_struct *ve; ++ ++ ve = get_ve0(); ++ (void)get_ve(ve); ++ atomic_set(&ve->pcounter, 1); ++ ++ ve->cpu_stats = static_percpu_ptr(&ve0_cpu_stats, ++ ve0_cpu_stats_data); ++ ++ list_add(&ve->ve_list, &ve_list_head); ++} ++ ++void ve_cleanup_schedule(struct ve_struct *ve) ++{ ++ BUG_ON(ve_cleanup_thread == NULL); ++ ++ spin_lock(&ve_cleanup_lock); ++ list_add_tail(&ve->cleanup_list, &ve_cleanup_list); ++ spin_unlock(&ve_cleanup_lock); ++ ++ wake_up_process(ve_cleanup_thread); ++} +Index: kernel/kernel/ve/vecalls.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/vecalls.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,2742 @@ ++/* ++ * linux/kernel/ve/vecalls.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ */ ++ ++/* ++ * 'vecalls.c' is file with basic VE support. It provides basic primities ++ * along with initialization script ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#ifdef CONFIG_FAIRSCHED ++#include ++#endif ++ ++#include ++#include ++#include ++ ++int nr_ve = 1; /* One VE always exists. Compatibility with vestat */ ++EXPORT_SYMBOL(nr_ve); ++ ++static int do_env_enter(struct ve_struct *ve, unsigned int flags); ++static int alloc_ve_tty_drivers(struct ve_struct* ve); ++static void free_ve_tty_drivers(struct ve_struct* ve); ++static int register_ve_tty_drivers(struct ve_struct* ve); ++static void unregister_ve_tty_drivers(struct ve_struct* ve); ++static int init_ve_tty_drivers(struct ve_struct *); ++static void fini_ve_tty_drivers(struct ve_struct *); ++static void clear_termios(struct tty_driver* driver ); ++#ifdef CONFIG_INET ++static void ve_mapped_devs_cleanup(struct ve_struct *ve); ++#endif ++ ++static void vecalls_exit(void); ++extern void grsecurity_setup(void); ++ ++struct ve_struct *__find_ve_by_id(envid_t veid) ++{ ++ struct ve_struct *ve; ++ ++ for_each_ve(ve) { ++ if (ve->veid == veid) ++ return ve; ++ } ++ return NULL; ++} ++EXPORT_SYMBOL(__find_ve_by_id); ++ ++struct ve_struct *get_ve_by_id(envid_t veid) ++{ ++ struct ve_struct *ve; ++ read_lock(&ve_list_lock); ++ ve = __find_ve_by_id(veid); ++ get_ve(ve); ++ read_unlock(&ve_list_lock); ++ return ve; ++} ++EXPORT_SYMBOL(get_ve_by_id); ++ ++/* ++ * real_put_ve() MUST be used instead of put_ve() inside vecalls. ++ */ ++void real_do_env_free(struct ve_struct *ve); ++static inline void real_put_ve(struct ve_struct *ve) ++{ ++ if (ve && atomic_dec_and_test(&ve->counter)) { ++ if (atomic_read(&ve->pcounter) > 0) ++ BUG(); ++ if (ve->is_running) ++ BUG(); ++ real_do_env_free(ve); ++ } ++} ++ ++static int ve_get_cpu_stat(envid_t veid, struct vz_cpu_stat __user *buf) ++{ ++ struct ve_struct *ve; ++ struct vz_cpu_stat *vstat; ++ int retval; ++ int i, cpu; ++ unsigned long tmp; ++ ++ if (!ve_is_super(get_exec_env()) && (veid != get_exec_env()->veid)) ++ return -EPERM; ++ if (veid == 0) ++ return -ESRCH; ++ ++ vstat = kzalloc(sizeof(*vstat), GFP_KERNEL); ++ if (!vstat) ++ return -ENOMEM; ++ ++ retval = -ESRCH; ++ read_lock(&ve_list_lock); ++ ve = __find_ve_by_id(veid); ++ if (ve == NULL) ++ goto out_unlock; ++ for_each_online_cpu(cpu) { ++ struct ve_cpu_stats *st; ++ ++ st = VE_CPU_STATS(ve, cpu); ++ vstat->user_jif += (unsigned long)cputime64_to_clock_t(st->user); ++ vstat->nice_jif += (unsigned long)cputime64_to_clock_t(st->nice); ++ vstat->system_jif += (unsigned long)cputime64_to_clock_t(st->system); ++ vstat->idle_clk += ve_sched_get_idle_time(ve, cpu); ++ } ++ vstat->uptime_clk = get_cycles() - ve->start_cycles; ++ vstat->uptime_jif = (unsigned long)cputime64_to_clock_t( ++ get_jiffies_64() - ve->start_jiffies); ++ for (i = 0; i < 3; i++) { ++ tmp = ve->avenrun[i] + (FIXED_1/200); ++ vstat->avenrun[i].val_int = LOAD_INT(tmp); ++ vstat->avenrun[i].val_frac = LOAD_FRAC(tmp); ++ } ++ read_unlock(&ve_list_lock); ++ ++ retval = 0; ++ if (copy_to_user(buf, vstat, sizeof(*vstat))) ++ retval = -EFAULT; ++out_free: ++ kfree(vstat); ++ return retval; ++ ++out_unlock: ++ read_unlock(&ve_list_lock); ++ goto out_free; ++} ++ ++static int real_setdevperms(envid_t veid, unsigned type, ++ dev_t dev, unsigned mask) ++{ ++ struct ve_struct *ve; ++ int err; ++ ++ if (!capable(CAP_SETVEID) || veid == 0) ++ return -EPERM; ++ ++ if ((ve = get_ve_by_id(veid)) == NULL) ++ return -ESRCH; ++ ++ down_read(&ve->op_sem); ++ err = -ESRCH; ++ if (ve->is_running) ++ err = set_device_perms_ve(veid, type, dev, mask); ++ up_read(&ve->op_sem); ++ real_put_ve(ve); ++ return err; ++} ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * VE start: subsystems ++ * ++ ********************************************************************** ++ **********************************************************************/ ++ ++#ifdef CONFIG_INET ++#include ++#include ++#include ++#include ++ ++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) ++static int init_fini_ve_mibs6(struct ve_struct *ve, int fini) ++{ ++ if (fini) ++ goto fini; ++ ++ if (!(ve->_ipv6_statistics[0] = alloc_percpu(struct ipstats_mib))) ++ goto out1; ++ if (!(ve->_ipv6_statistics[1] = alloc_percpu(struct ipstats_mib))) ++ goto out2; ++ if (!(ve->_icmpv6_statistics[0] = alloc_percpu(struct icmpv6_mib))) ++ goto out3; ++ if (!(ve->_icmpv6_statistics[1] = alloc_percpu(struct icmpv6_mib))) ++ goto out4; ++ if (!(ve->_icmpv6msg_statistics[0] = alloc_percpu(struct icmpv6msg_mib))) ++ goto out5; ++ if (!(ve->_icmpv6msg_statistics[1] = alloc_percpu(struct icmpv6msg_mib))) ++ goto out6; ++ if (!(ve->_udp_stats_in6[0] = alloc_percpu(struct udp_mib))) ++ goto out7; ++ if (!(ve->_udp_stats_in6[1] = alloc_percpu(struct udp_mib))) ++ goto out8; ++ if (!(ve->_udplite_stats_in6[0] = alloc_percpu(struct udp_mib))) ++ goto out9; ++ if (!(ve->_udplite_stats_in6[1] = alloc_percpu(struct udp_mib))) ++ goto out10; ++ return 0; ++ ++fini: ++ free_percpu(ve->_udplite_stats_in6[1]); ++out10: ++ free_percpu(ve->_udplite_stats_in6[0]); ++out9: ++ free_percpu(ve->_udp_stats_in6[1]); ++out8: ++ free_percpu(ve->_udp_stats_in6[0]); ++out7: ++ free_percpu(ve->_icmpv6msg_statistics[1]); ++out6: ++ free_percpu(ve->_icmpv6msg_statistics[0]); ++out5: ++ free_percpu(ve->_icmpv6_statistics[1]); ++out4: ++ free_percpu(ve->_icmpv6_statistics[0]); ++out3: ++ free_percpu(ve->_ipv6_statistics[1]); ++out2: ++ free_percpu(ve->_ipv6_statistics[0]); ++out1: ++ return -ENOMEM; ++} ++#else ++static int init_fini_ve_mibs6(struct ve_struct *ve, int fini) { return 0; } ++#endif ++ ++static int init_fini_ve_mibs(struct ve_struct *ve, int fini) ++{ ++ if (fini) ++ goto fini; ++ if (!(ve->_net_statistics[0] = alloc_percpu(struct linux_mib))) ++ goto out1; ++ if (!(ve->_net_statistics[1] = alloc_percpu(struct linux_mib))) ++ goto out2; ++ if (!(ve->_ip_statistics[0] = alloc_percpu(struct ipstats_mib))) ++ goto out3; ++ if (!(ve->_ip_statistics[1] = alloc_percpu(struct ipstats_mib))) ++ goto out4; ++ if (!(ve->_icmp_statistics[0] = alloc_percpu(struct icmp_mib))) ++ goto out5; ++ if (!(ve->_icmp_statistics[1] = alloc_percpu(struct icmp_mib))) ++ goto out6; ++ if (!(ve->_icmpmsg_statistics[0] = alloc_percpu(struct icmpmsg_mib))) ++ goto out7; ++ if (!(ve->_icmpmsg_statistics[1] = alloc_percpu(struct icmpmsg_mib))) ++ goto out8; ++ if (!(ve->_tcp_statistics[0] = alloc_percpu(struct tcp_mib))) ++ goto out9; ++ if (!(ve->_tcp_statistics[1] = alloc_percpu(struct tcp_mib))) ++ goto out10; ++ if (!(ve->_udp_statistics[0] = alloc_percpu(struct udp_mib))) ++ goto out11; ++ if (!(ve->_udp_statistics[1] = alloc_percpu(struct udp_mib))) ++ goto out12; ++ if (!(ve->_udplite_statistics[0] = alloc_percpu(struct udp_mib))) ++ goto out13; ++ if (!(ve->_udplite_statistics[1] = alloc_percpu(struct udp_mib))) ++ goto out14; ++ if (init_fini_ve_mibs6(ve, fini)) ++ goto out15; ++ return 0; ++ ++fini: ++ init_fini_ve_mibs6(ve, fini); ++out15: ++ free_percpu(ve->_udplite_statistics[1]); ++out14: ++ free_percpu(ve->_udplite_statistics[0]); ++out13: ++ free_percpu(ve->_udp_statistics[1]); ++out12: ++ free_percpu(ve->_udp_statistics[0]); ++out11: ++ free_percpu(ve->_tcp_statistics[1]); ++out10: ++ free_percpu(ve->_tcp_statistics[0]); ++out9: ++ free_percpu(ve->_icmpmsg_statistics[1]); ++out8: ++ free_percpu(ve->_icmpmsg_statistics[0]); ++out7: ++ free_percpu(ve->_icmp_statistics[1]); ++out6: ++ free_percpu(ve->_icmp_statistics[0]); ++out5: ++ free_percpu(ve->_ip_statistics[1]); ++out4: ++ free_percpu(ve->_ip_statistics[0]); ++out3: ++ free_percpu(ve->_net_statistics[1]); ++out2: ++ free_percpu(ve->_net_statistics[0]); ++out1: ++ return -ENOMEM; ++} ++ ++static inline int init_ve_mibs(struct ve_struct *ve) ++{ ++ return init_fini_ve_mibs(ve, 0); ++} ++ ++static inline void fini_ve_mibs(struct ve_struct *ve) ++{ ++ (void)init_fini_ve_mibs(ve, 1); ++} ++#else ++#define init_ve_mibs(ve) (0) ++#define fini_ve_mibs(ve) do { } while (0) ++#endif ++ ++static int prepare_proc_root(struct ve_struct *ve) ++{ ++ struct proc_dir_entry *de; ++ ++ de = kzalloc(sizeof(struct proc_dir_entry) + 6, GFP_KERNEL); ++ if (de == NULL) ++ return -ENOMEM; ++ ++ memcpy(de + 1, "/proc", 6); ++ de->name = (char *)(de + 1); ++ de->namelen = 5; ++ de->mode = S_IFDIR | S_IRUGO | S_IXUGO; ++ de->nlink = 2; ++ atomic_set(&de->count, 1); ++ ++ ve->proc_root = de; ++ return 0; ++} ++ ++#ifdef CONFIG_PROC_FS ++static int init_ve_proc(struct ve_struct *ve) ++{ ++ int err; ++ struct proc_dir_entry *de; ++ ++ err = prepare_proc_root(ve); ++ if (err) ++ goto out_root; ++ ++ err = register_ve_fs_type(ve, &proc_fs_type, ++ &ve->proc_fstype, &ve->proc_mnt); ++ if (err) ++ goto out_reg; ++ ++ err = -ENOMEM; ++ de = create_proc_entry("kmsg", S_IRUSR, NULL); ++ if (!de) ++ goto out_kmsg; ++ de->proc_fops = &proc_kmsg_operations; ++ ++ /* create necessary /proc subdirs in VE local proc tree */ ++ err = -ENOMEM; ++ de = create_proc_entry("vz", S_IFDIR|S_IRUGO|S_IXUGO, NULL); ++ if (!de) ++ goto out_vz; ++ ++ ve->_proc_net = proc_mkdir("net", NULL); ++ if (!ve->_proc_net) ++ goto out_net; ++ ve->_proc_net_stat = proc_mkdir("stat", ve->_proc_net); ++ if (!ve->_proc_net_stat) ++ goto out_net_stat; ++ ++ if (ve_snmp_proc_init(ve)) ++ goto out_snmp; ++ ++ ve->ve_ns->pid_ns->proc_mnt = mntget(ve->proc_mnt); ++ return 0; ++ ++out_snmp: ++ remove_proc_entry("stat", ve->_proc_net); ++out_net_stat: ++ remove_proc_entry("net", NULL); ++out_net: ++ remove_proc_entry("vz", NULL); ++out_vz: ++ remove_proc_entry("kmsg", NULL); ++out_kmsg: ++ unregister_ve_fs_type(ve->proc_fstype, ve->proc_mnt); ++ ve->proc_mnt = NULL; ++out_reg: ++ /* proc_fstype and proc_root are freed in real_put_ve -> free_ve_proc */ ++ ; ++out_root: ++ return err; ++} ++ ++static void fini_ve_proc(struct ve_struct *ve) ++{ ++ ve_snmp_proc_fini(ve); ++ remove_proc_entry("stat", ve->_proc_net); ++ remove_proc_entry("net", NULL); ++ remove_proc_entry("vz", NULL); ++ remove_proc_entry("kmsg", NULL); ++ unregister_ve_fs_type(ve->proc_fstype, ve->proc_mnt); ++ ve->proc_mnt = NULL; ++} ++ ++static void free_ve_proc(struct ve_struct *ve) ++{ ++ /* proc filesystem frees proc_dir_entries on remove_proc_entry() only, ++ so we check that everything was removed and not lost */ ++ if (ve->proc_root && ve->proc_root->subdir) { ++ struct proc_dir_entry *p = ve->proc_root; ++ printk(KERN_WARNING "CT: %d: proc entry /proc", ve->veid); ++ while ((p = p->subdir) != NULL) ++ printk("/%s", p->name); ++ printk(" is not removed!\n"); ++ } ++ ++ kfree(ve->proc_root); ++ kfree(ve->proc_fstype); ++ ++ ve->proc_fstype = NULL; ++ ve->proc_root = NULL; ++} ++#else ++#define init_ve_proc(ve) (0) ++#define fini_ve_proc(ve) do { } while (0) ++#define free_ve_proc(ve) do { } while (0) ++#endif ++ ++extern const struct file_operations proc_sys_file_operations; ++extern struct inode_operations proc_sys_inode_operations; ++ ++#ifdef CONFIG_SYSCTL ++static int init_ve_sysctl(struct ve_struct *ve) ++{ ++ int err; ++ ++#ifdef CONFIG_PROC_FS ++ err = -ENOMEM; ++ ve->proc_sys_root = proc_mkdir("sys", NULL); ++ if (ve->proc_sys_root == NULL) ++ goto out_proc; ++ ve->proc_sys_root->proc_iops = &proc_sys_inode_operations; ++ ve->proc_sys_root->proc_fops = &proc_sys_file_operations; ++ ve->proc_sys_root->nlink = 0; ++#endif ++ INIT_LIST_HEAD(&ve->sysctl_lh); ++ ++ err = devinet_sysctl_init(ve); ++ if (err) ++ goto out_dev; ++ ++ err = addrconf_sysctl_init(ve); ++ if (err) ++ goto out_dev6; ++ ++ return 0; ++ ++out_dev6: ++ devinet_sysctl_fini(ve); ++out_dev: ++#ifdef CONFIG_PROC_FS ++ remove_proc_entry("sys", NULL); ++out_proc: ++#endif ++ return err; ++} ++ ++static void fini_ve_sysctl(struct ve_struct *ve) ++{ ++ addrconf_sysctl_fini(ve); ++ devinet_sysctl_fini(ve); ++ remove_proc_entry("sys", NULL); ++} ++ ++static void free_ve_sysctl(struct ve_struct *ve) ++{ ++ addrconf_sysctl_free(ve); ++ devinet_sysctl_free(ve); ++} ++#else ++#define init_ve_sysctl(ve) (0) ++#define fini_ve_sysctl(ve) do { } while (0) ++#define free_ve_sysctl(ve) do { } while (0) ++#endif ++ ++#ifdef CONFIG_UNIX98_PTYS ++#include ++ ++/* ++ * DEVPTS needs a virtualization: each environment should see each own list of ++ * pseudo-terminals. ++ * To implement it we need to have separate devpts superblocks for each ++ * VE, and each VE should mount its own one. ++ * Thus, separate vfsmount structures are required. ++ * To minimize intrusion into vfsmount lookup code, separate file_system_type ++ * structures are created. ++ * ++ * In addition to this, patch fo character device itself is required, as file ++ * system itself is used only for MINOR/MAJOR lookup. ++ */ ++ ++static int init_ve_devpts(struct ve_struct *ve) ++{ ++ int err; ++ ++ err = -ENOMEM; ++ ve->devpts_config = kzalloc(sizeof(struct devpts_config), GFP_KERNEL); ++ if (ve->devpts_config == NULL) ++ goto out; ++ ++ ve->devpts_config->mode = 0600; ++ err = register_ve_fs_type(ve, &devpts_fs_type, ++ &ve->devpts_fstype, &ve->devpts_mnt); ++ if (err) { ++ kfree(ve->devpts_config); ++ ve->devpts_config = NULL; ++ } ++out: ++ return err; ++} ++ ++static void fini_ve_devpts(struct ve_struct *ve) ++{ ++ unregister_ve_fs_type(ve->devpts_fstype, ve->devpts_mnt); ++ /* devpts_fstype is freed in real_put_ve -> free_ve_filesystems */ ++ ve->devpts_mnt = NULL; ++ kfree(ve->devpts_config); ++ ve->devpts_config = NULL; ++} ++#else ++#define init_ve_devpts(ve) (0) ++#define fini_ve_devpts(ve) do { } while (0) ++#endif ++ ++static int init_ve_shmem(struct ve_struct *ve) ++{ ++ return register_ve_fs_type(ve, ++ &tmpfs_fs_type, ++ &ve->shmem_fstype, ++ &ve->shmem_mnt); ++} ++ ++static void fini_ve_shmem(struct ve_struct *ve) ++{ ++ unregister_ve_fs_type(ve->shmem_fstype, ve->shmem_mnt); ++ /* shmem_fstype is freed in real_put_ve -> free_ve_filesystems */ ++ ve->shmem_mnt = NULL; ++} ++ ++static inline int init_ve_sysfs_root(struct ve_struct *ve) ++{ ++ struct sysfs_dirent *sysfs_root; ++ ++ sysfs_root = kzalloc(sizeof(struct sysfs_dirent), GFP_KERNEL); ++ if (sysfs_root == NULL) ++ return -ENOMEM; ++ sysfs_root->s_name = ""; ++ atomic_set(&sysfs_root->s_count, 1); ++ sysfs_root->s_flags = SYSFS_DIR; ++ sysfs_root->s_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO; ++ sysfs_root->s_ino = 1; ++ ++ ve->_sysfs_root = sysfs_root; ++ return 0; ++} ++ ++#if defined(CONFIG_NET) && defined(CONFIG_SYSFS) ++extern struct device_attribute ve_net_class_attributes[]; ++static inline int init_ve_netclass(struct ve_struct *ve) ++{ ++ struct class *nc; ++ int err; ++ ++ nc = kzalloc(sizeof(*nc), GFP_KERNEL); ++ if (!nc) ++ return -ENOMEM; ++ ++ nc->name = net_class.name; ++ nc->dev_release = net_class.dev_release; ++ nc->uevent = net_class.uevent; ++ nc->dev_attrs = ve_net_class_attributes; ++ ++ err = class_register(nc); ++ if (!err) { ++ ve->net_class = nc; ++ return 0; ++ } ++ kfree(nc); ++ return err; ++} ++ ++static inline void fini_ve_netclass(struct ve_struct *ve) ++{ ++ class_unregister(ve->net_class); ++ kfree(ve->net_class); ++ ve->net_class = NULL; ++} ++#else ++static inline int init_ve_netclass(struct ve_struct *ve) { return 0; } ++static inline void fini_ve_netclass(struct ve_struct *ve) { ; } ++#endif ++ ++extern struct kset devices_subsys; ++ ++static int init_ve_sysfs(struct ve_struct *ve) ++{ ++ struct kset *subsys; ++ int err; ++ ++#ifdef CONFIG_SYSFS ++ err = 0; ++ if (ve->features & VE_FEATURE_SYSFS) { ++ err = init_ve_sysfs_root(ve); ++ if (err != 0) ++ goto out; ++ err = register_ve_fs_type(ve, ++ &sysfs_fs_type, ++ &ve->sysfs_fstype, ++ &ve->sysfs_mnt); ++ } ++ if (err != 0) ++ goto out_fs_type; ++#endif ++ err = -ENOMEM; ++ subsys = kzalloc(sizeof(*subsys), GFP_KERNEL); ++ ve->class_obj_subsys = subsys; ++ if (subsys == NULL) ++ goto out_class_obj; ++ /* ick, this is ugly, the things we go through to keep from showing up ++ * in sysfs... */ ++ subsys->kobj.k_name = kstrdup(class_obj_subsys.kobj.k_name, GFP_KERNEL); ++ if (!subsys->kobj.k_name) ++ goto out_subsys1; ++ subsys->ktype = class_obj_subsys.ktype; ++ subsys->uevent_ops = class_obj_subsys.uevent_ops; ++ kset_init(subsys); ++ if (!subsys->kobj.parent) ++ subsys->kobj.parent = &subsys->kobj; ++ ++ subsys = kzalloc(sizeof(*subsys), GFP_KERNEL); ++ ve->class_subsys = subsys; ++ if (subsys == NULL) ++ goto out_class_subsys; ++ /* ick, this is ugly, the things we go through to keep from showing up ++ * in sysfs... */ ++ subsys->kobj.k_name = kstrdup(class_subsys.kobj.k_name, GFP_KERNEL); ++ if (!subsys->kobj.k_name) ++ goto out_subsys2; ++ subsys->ktype = class_subsys.ktype; ++ subsys->uevent_ops = class_subsys.uevent_ops; ++ ++ err = subsystem_register(subsys); ++ if (err != 0) ++ goto out_register; ++ ++ subsys = kzalloc(sizeof(*subsys), GFP_KERNEL); ++ ve->devices_subsys = subsys; ++ if (!subsys) ++ goto out_subsys3; ++ subsys->kobj.k_name = kstrdup(devices_subsys.kobj.k_name, GFP_KERNEL); ++ if (!subsys->kobj.k_name) ++ goto out_subsys4; ++ subsys->ktype = devices_subsys.ktype; ++ subsys->uevent_ops = devices_subsys.uevent_ops; ++ ++ err = subsystem_register(subsys); ++ if (err < 0) ++ goto out_register2; ++ ++ err = init_ve_netclass(ve); ++ if (err) ++ goto out_nc; ++ ++ ve->tty_class = init_ve_tty_class(); ++ if (IS_ERR(ve->tty_class)) { ++ err = PTR_ERR(ve->tty_class); ++ ve->tty_class = NULL; ++ goto out_tty_class_register; ++ } ++ ++ return err; ++ ++out_tty_class_register: ++ fini_ve_netclass(ve); ++out_nc: ++ subsystem_unregister(ve->devices_subsys); ++out_register2: ++ kfree(ve->devices_subsys->kobj.k_name); ++out_subsys4: ++ kfree(ve->devices_subsys); ++out_subsys3: ++ subsystem_unregister(ve->class_subsys); ++out_register: ++ kfree(ve->class_subsys->kobj.k_name); ++out_subsys2: ++ kfree(ve->class_subsys); ++out_class_subsys: ++ kfree(ve->class_obj_subsys->kobj.k_name); ++out_subsys1: ++ kfree(ve->class_obj_subsys); ++out_class_obj: ++#ifdef CONFIG_SYSFS ++ unregister_ve_fs_type(ve->sysfs_fstype, ve->sysfs_mnt); ++ /* sysfs_fstype is freed in real_put_ve -> free_ve_filesystems */ ++out_fs_type: ++ kfree(ve->_sysfs_root); ++ ve->_sysfs_root = NULL; ++#endif ++ ve->class_subsys = NULL; ++ ve->class_obj_subsys = NULL; ++out: ++ return err; ++} ++ ++static void fini_ve_sysfs(struct ve_struct *ve) ++{ ++ fini_ve_tty_class(ve->tty_class); ++ fini_ve_netclass(ve); ++ subsystem_unregister(ve->devices_subsys); ++ subsystem_unregister(ve->class_subsys); ++ kfree(ve->devices_subsys->kobj.k_name); ++ kfree(ve->class_subsys->kobj.k_name); ++ kfree(ve->class_obj_subsys->kobj.k_name); ++ kfree(ve->devices_subsys); ++ kfree(ve->class_subsys); ++ kfree(ve->class_obj_subsys); ++ ++ ve->class_subsys = NULL; ++ ve->class_obj_subsys = NULL; ++#ifdef CONFIG_SYSFS ++ unregister_ve_fs_type(ve->sysfs_fstype, ve->sysfs_mnt); ++ ve->sysfs_mnt = NULL; ++ kfree(ve->_sysfs_root); ++ ve->_sysfs_root = NULL; ++ /* sysfs_fstype is freed in real_put_ve -> free_ve_filesystems */ ++#endif ++} ++ ++static void free_ve_filesystems(struct ve_struct *ve) ++{ ++#ifdef CONFIG_SYSFS ++ kfree(ve->sysfs_fstype); ++ ve->sysfs_fstype = NULL; ++#endif ++ kfree(ve->shmem_fstype); ++ ve->shmem_fstype = NULL; ++ ++ kfree(ve->devpts_fstype); ++ ve->devpts_fstype = NULL; ++ ++ free_ve_proc(ve); ++} ++ ++static int init_printk(struct ve_struct *ve) ++{ ++ struct ve_prep_printk { ++ wait_queue_head_t log_wait; ++ unsigned long log_start; ++ unsigned long log_end; ++ unsigned long logged_chars; ++ } *tmp; ++ ++ tmp = kzalloc(sizeof(struct ve_prep_printk), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ ++ init_waitqueue_head(&tmp->log_wait); ++ ve->_log_wait = &tmp->log_wait; ++ ve->_log_start = &tmp->log_start; ++ ve->_log_end = &tmp->log_end; ++ ve->_logged_chars = &tmp->logged_chars; ++ /* ve->log_buf will be initialized later by ve_log_init() */ ++ return 0; ++} ++ ++static void fini_printk(struct ve_struct *ve) ++{ ++ /* ++ * there is no spinlock protection here because nobody can use ++ * log_buf at the moments when this code is called. ++ */ ++ kfree(ve->log_buf); ++ kfree(ve->_log_wait); ++} ++ ++static void fini_venet(struct ve_struct *ve) ++{ ++#ifdef CONFIG_INET ++ tcp_v4_kill_ve_sockets(ve); ++ ve_mapped_devs_cleanup(ve); ++ synchronize_net(); ++#endif ++} ++ ++static int init_ve_sched(struct ve_struct *ve) ++{ ++#ifdef CONFIG_FAIRSCHED ++ int err; ++ ++ /* ++ * We refuse to switch to an already existing node since nodes ++ * keep a pointer to their ve_struct... ++ */ ++ err = sys_fairsched_mknod(0, 1, ve->veid); ++ if (err < 0) { ++ printk(KERN_WARNING "Can't create fairsched node %d\n", ++ ve->veid); ++ return err; ++ } ++ err = sys_fairsched_mvpr(current->pid, ve->veid); ++ if (err) { ++ printk(KERN_WARNING "Can't switch to fairsched node %d\n", ++ ve->veid); ++ if (sys_fairsched_rmnod(ve->veid)) ++ printk(KERN_ERR "Can't clean fairsched node %d\n", ++ ve->veid); ++ return err; ++ } ++#endif ++ ve_sched_attach(ve); ++ return 0; ++} ++ ++static void fini_ve_sched(struct ve_struct *ve) ++{ ++#ifdef CONFIG_FAIRSCHED ++ if (task_vsched_id(current) == ve->veid) ++ if (sys_fairsched_mvpr(current->pid, fairsched_init_node.id)) ++ printk(KERN_WARNING "Can't leave fairsched node %d\n", ++ ve->veid); ++ if (sys_fairsched_rmnod(ve->veid)) ++ printk(KERN_ERR "Can't remove fairsched node %d\n", ++ ve->veid); ++#endif ++} ++ ++/* ++ * Namespaces ++ */ ++ ++static inline int init_ve_namespaces(struct ve_struct *ve, ++ struct nsproxy **old) ++{ ++ int err; ++ struct task_struct *tsk; ++ struct nsproxy *cur; ++ ++ tsk = current; ++ cur = tsk->nsproxy; ++ ++ err = copy_namespaces(CLONE_NAMESPACES_MASK & ~CLONE_NEWNET, tsk); ++ if (err < 0) ++ return err; ++ ++ ve->ve_ns = get_nsproxy(tsk->nsproxy); ++ memcpy(ve->ve_ns->uts_ns->name.release, virt_utsname.release, ++ sizeof(virt_utsname.release)); ++ *old = cur; ++ return 0; ++} ++ ++static inline void fini_ve_namespaces(struct ve_struct *ve, ++ struct nsproxy *old) ++{ ++ struct task_struct *tsk = current; ++ struct nsproxy *tmp; ++ ++ if (old) { ++ tmp = tsk->nsproxy; ++ tsk->nsproxy = get_nsproxy(old); ++ put_nsproxy(tmp); ++ tmp = ve->ve_ns; ++ ve->ve_ns = get_nsproxy(old); ++ put_nsproxy(tmp); ++ } else { ++ put_nsproxy(ve->ve_ns); ++ ve->ve_ns = NULL; ++ } ++} ++ ++static int init_ve_netns(struct ve_struct *ve, struct nsproxy **old) ++{ ++ int err; ++ struct task_struct *tsk; ++ struct nsproxy *cur; ++ ++ tsk = current; ++ cur = tsk->nsproxy; ++ ++ err = copy_namespaces(CLONE_NEWNET, tsk); ++ if (err < 0) ++ return err; ++ ++ put_nsproxy(ve->ve_ns); ++ ve->ve_ns = get_nsproxy(tsk->nsproxy); ++ *old = cur; ++ return 0; ++} ++ ++static inline void switch_ve_namespaces(struct ve_struct *ve, ++ struct task_struct *tsk) ++{ ++ struct nsproxy *old_ns; ++ struct nsproxy *new_ns; ++ ++ BUG_ON(tsk != current); ++ old_ns = tsk->nsproxy; ++ new_ns = ve->ve_ns; ++ ++ if (old_ns != new_ns) { ++ tsk->nsproxy = get_nsproxy(new_ns); ++ put_nsproxy(old_ns); ++ } ++} ++ ++static __u64 get_ve_features(env_create_param_t *data, int datalen) ++{ ++ __u64 known_features; ++ ++ if (datalen < sizeof(struct env_create_param3)) ++ /* this version of vzctl is aware of VE_FEATURES_OLD only */ ++ known_features = VE_FEATURES_OLD; ++ else ++ known_features = data->known_features; ++ ++ /* ++ * known features are set as required ++ * yet unknown features are set as in VE_FEATURES_DEF ++ */ ++ return (data->feature_mask & known_features) | ++ (VE_FEATURES_DEF & ~known_features); ++} ++ ++static int init_ve_struct(struct ve_struct *ve, envid_t veid, ++ u32 class_id, env_create_param_t *data, int datalen) ++{ ++ (void)get_ve(ve); ++ ve->veid = veid; ++ ve->class_id = class_id; ++ ve->features = get_ve_features(data, datalen); ++ INIT_LIST_HEAD(&ve->vetask_lh); ++ init_rwsem(&ve->op_sem); ++ ++ ve->start_timespec = current->start_time; ++ /* The value is wrong, but it is never compared to process ++ * start times */ ++ ve->start_jiffies = get_jiffies_64(); ++ ve->start_cycles = get_cycles(); ++ ++ return 0; ++} ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * /proc/meminfo virtualization ++ * ++ ********************************************************************** ++ **********************************************************************/ ++static int ve_set_meminfo(envid_t veid, unsigned long val) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ struct ve_struct *ve; ++ ++ ve = get_ve_by_id(veid); ++ if (!ve) ++ return -EINVAL; ++ ++ ve->meminfo_val = val; ++ real_put_ve(ve); ++ return 0; ++#else ++ return -ENOTTY; ++#endif ++} ++ ++static int init_ve_meminfo(struct ve_struct *ve) ++{ ++ ve->meminfo_val = 0; ++ return 0; ++} ++ ++static inline void fini_ve_meminfo(struct ve_struct *ve) ++{ ++} ++ ++static void set_ve_root(struct ve_struct *ve, struct task_struct *tsk) ++{ ++ read_lock(&tsk->fs->lock); ++ ve->fs_rootmnt = tsk->fs->rootmnt; ++ ve->fs_root = tsk->fs->root; ++ read_unlock(&tsk->fs->lock); ++ mark_tree_virtual(ve->fs_rootmnt, ve->fs_root); ++} ++ ++static void set_ve_caps(struct ve_struct *ve, struct task_struct *tsk) ++{ ++ /* required for real_setdevperms from register_ve_ above */ ++ memcpy(&ve->ve_cap_bset, &tsk->cap_effective, sizeof(kernel_cap_t)); ++ cap_lower(ve->ve_cap_bset, CAP_SETVEID); ++} ++ ++static int ve_list_add(struct ve_struct *ve) ++{ ++ write_lock_irq(&ve_list_lock); ++ if (__find_ve_by_id(ve->veid) != NULL) ++ goto err_exists; ++ ++ list_add(&ve->ve_list, &ve_list_head); ++ nr_ve++; ++ write_unlock_irq(&ve_list_lock); ++ return 0; ++ ++err_exists: ++ write_unlock_irq(&ve_list_lock); ++ return -EEXIST; ++} ++ ++static void ve_list_del(struct ve_struct *ve) ++{ ++ write_lock_irq(&ve_list_lock); ++ list_del(&ve->ve_list); ++ nr_ve--; ++ write_unlock_irq(&ve_list_lock); ++} ++ ++static void set_task_ve_caps(struct task_struct *tsk, struct ve_struct *ve) ++{ ++ spin_lock(&task_capability_lock); ++ cap_mask(tsk->cap_effective, ve->ve_cap_bset); ++ cap_mask(tsk->cap_inheritable, ve->ve_cap_bset); ++ cap_mask(tsk->cap_permitted, ve->ve_cap_bset); ++ spin_unlock(&task_capability_lock); ++} ++ ++void ve_move_task(struct task_struct *tsk, struct ve_struct *new) ++{ ++ struct ve_struct *old; ++ ++ might_sleep(); ++ BUG_ON(tsk != current); ++ BUG_ON(!(thread_group_leader(tsk) && thread_group_empty(tsk))); ++ ++ /* this probihibts ptracing of task entered to VE from host system */ ++ tsk->mm->vps_dumpable = 0; ++ /* setup capabilities before enter */ ++ set_task_ve_caps(tsk, new); ++ ++ old = tsk->ve_task_info.owner_env; ++ tsk->ve_task_info.owner_env = new; ++ tsk->ve_task_info.exec_env = new; ++ ++ write_lock_irq(&tasklist_lock); ++ list_del_rcu(&tsk->ve_task_info.vetask_list); ++ write_unlock_irq(&tasklist_lock); ++ ++ synchronize_rcu(); ++ ++ write_lock_irq(&tasklist_lock); ++ list_add_tail_rcu(&tsk->ve_task_info.vetask_list, ++ &new->vetask_lh); ++ write_unlock_irq(&tasklist_lock); ++ ++ atomic_dec(&old->pcounter); ++ real_put_ve(old); ++ ++ atomic_inc(&new->pcounter); ++ get_ve(new); ++} ++ ++EXPORT_SYMBOL(ve_move_task); ++ ++#ifdef CONFIG_VE_IPTABLES ++extern int init_netfilter(void); ++extern void fini_netfilter(void); ++#define init_ve_netfilter() init_netfilter() ++#define fini_ve_netfilter() fini_netfilter() ++ ++#define KSYMIPTINIT(mask, ve, full_mask, mod, name, args) \ ++({ \ ++ int ret = 0; \ ++ if (VE_IPT_CMP(mask, full_mask) && \ ++ VE_IPT_CMP((ve)->_iptables_modules, \ ++ full_mask & ~(full_mask##_MOD))) { \ ++ ret = KSYMERRCALL(1, mod, name, args); \ ++ if (ret == 0) \ ++ (ve)->_iptables_modules |= \ ++ full_mask##_MOD; \ ++ if (ret == 1) \ ++ ret = 0; \ ++ } \ ++ ret; \ ++}) ++ ++#define KSYMIPTFINI(mask, full_mask, mod, name, args) \ ++({ \ ++ if (VE_IPT_CMP(mask, full_mask##_MOD)) \ ++ KSYMSAFECALL_VOID(mod, name, args); \ ++}) ++ ++ ++static int do_ve_iptables(struct ve_struct *ve, __u64 init_mask, ++ int init_or_cleanup) ++{ ++ int err; ++ ++ /* Remove when userspace will start supplying IPv6-related bits. */ ++ init_mask &= ~VE_IP_IPTABLES6; ++ init_mask &= ~VE_IP_FILTER6; ++ init_mask &= ~VE_IP_MANGLE6; ++ init_mask &= ~VE_IP_IPTABLE_NAT_MOD; ++ init_mask &= ~VE_NF_CONNTRACK_MOD; ++ if ((init_mask & VE_IP_IPTABLES) == VE_IP_IPTABLES) ++ init_mask |= VE_IP_IPTABLES6; ++ if ((init_mask & VE_IP_FILTER) == VE_IP_FILTER) ++ init_mask |= VE_IP_FILTER6; ++ if ((init_mask & VE_IP_MANGLE) == VE_IP_MANGLE) ++ init_mask |= VE_IP_MANGLE6; ++ if ((init_mask & VE_IP_NAT) == VE_IP_NAT) ++ init_mask |= VE_IP_IPTABLE_NAT; ++ ++ if ((init_mask & VE_IP_CONNTRACK) == VE_IP_CONNTRACK) ++ init_mask |= VE_NF_CONNTRACK; ++ ++ err = 0; ++ if (!init_or_cleanup) ++ goto cleanup; ++ ++ /* init part */ ++#if defined(CONFIG_IP_NF_IPTABLES) || \ ++ defined(CONFIG_IP_NF_IPTABLES_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_IPTABLES, ++ ip_tables, init_iptables, ()); ++ if (err < 0) ++ goto err_iptables; ++#endif ++#if defined(CONFIG_IP6_NF_IPTABLES) || \ ++ defined(CONFIG_IP6_NF_IPTABLES_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_IPTABLES6, ++ ip6_tables, init_ip6tables, ()); ++ if (err < 0) ++ goto err_ip6tables; ++#endif ++#if defined(CONFIG_NF_CONNTRACK_IPV4) || \ ++ defined(CONFIG_NF_CONNTRACK_IPV4_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_NF_CONNTRACK, ++ nf_conntrack, nf_conntrack_init_ve, ()); ++ if (err < 0) ++ goto err_nf_conntrack; ++ ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_CONNTRACK, ++ nf_conntrack_ipv4, init_nf_ct_l3proto_ipv4, ()); ++ if (err < 0) ++ goto err_nf_conntrack_ipv4; ++#endif ++#if defined(CONFIG_NF_NAT) || \ ++ defined(CONFIG_NF_NAT_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_NAT, ++ nf_nat, nf_nat_init, ()); ++ if (err < 0) ++ goto err_nftable_nat; ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_IPTABLE_NAT, ++ iptable_nat, init_nftable_nat, ()); ++ if (err < 0) ++ goto err_nftable_nat2; ++#endif ++#if defined(CONFIG_IP_NF_FILTER) || \ ++ defined(CONFIG_IP_NF_FILTER_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_FILTER, ++ iptable_filter, init_iptable_filter, ()); ++ if (err < 0) ++ goto err_iptable_filter; ++#endif ++#if defined(CONFIG_IP6_NF_FILTER) || \ ++ defined(CONFIG_IP6_NF_FILTER_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_FILTER6, ++ ip6table_filter, init_ip6table_filter, ()); ++ if (err < 0) ++ goto err_ip6table_filter; ++#endif ++#if defined(CONFIG_IP_NF_MANGLE) || \ ++ defined(CONFIG_IP_NF_MANGLE_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_MANGLE, ++ iptable_mangle, init_iptable_mangle, ()); ++ if (err < 0) ++ goto err_iptable_mangle; ++#endif ++#if defined(CONFIG_IP6_NF_MANGLE) || \ ++ defined(CONFIG_IP6_NF_MANGLE_MODULE) ++ err = KSYMIPTINIT(init_mask, ve, VE_IP_MANGLE6, ++ ip6table_mangle, init_ip6table_mangle, ()); ++ if (err < 0) ++ goto err_ip6table_mangle; ++#endif ++ return 0; ++ ++/* ------------------------------------------------------------------------- */ ++ ++cleanup: ++#if defined(CONFIG_IP6_NF_MANGLE) || \ ++ defined(CONFIG_IP6_NF_MANGLE_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_MANGLE6, ++ ip6table_mangle, fini_ip6table_mangle, ()); ++err_ip6table_mangle: ++#endif ++#if defined(CONFIG_IP_NF_MANGLE) || \ ++ defined(CONFIG_IP_NF_MANGLE_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_MANGLE, ++ iptable_mangle, fini_iptable_mangle, ()); ++err_iptable_mangle: ++#endif ++#if defined(CONFIG_IP6_NF_FILTER) || \ ++ defined(CONFIG_IP6_NF_FILTER_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_FILTER6, ++ ip6table_filter, fini_ip6table_filter, ()); ++err_ip6table_filter: ++#endif ++#if defined(CONFIG_IP_NF_FILTER) || \ ++ defined(CONFIG_IP_NF_FILTER_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_FILTER, ++ iptable_filter, fini_iptable_filter, ()); ++err_iptable_filter: ++#endif ++#if defined(CONFIG_NF_NAT) || \ ++ defined(CONFIG_NF_NAT_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_IPTABLE_NAT, ++ iptable_nat, fini_nftable_nat, ()); ++err_nftable_nat2: ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_NAT, ++ nf_nat, nf_nat_cleanup, ()); ++err_nftable_nat: ++#endif ++#if defined(CONFIG_NF_CONNTRACK_IPV4) || \ ++ defined(CONFIG_NF_CONNTRACK_IPV4_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_CONNTRACK, ++ nf_conntrack_ipv4, fini_nf_ct_l3proto_ipv4, ()); ++err_nf_conntrack_ipv4: ++ KSYMIPTFINI(ve->_iptables_modules, VE_NF_CONNTRACK, ++ nf_conntrack, nf_conntrack_cleanup_ve, ()); ++err_nf_conntrack: ++#endif ++#if defined(CONFIG_IP6_NF_IPTABLES) || \ ++ defined(CONFIG_IP6_NF_IPTABLES_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_IPTABLES6, ++ ip6_tables, fini_ip6tables, ()); ++err_ip6tables: ++#endif ++#if defined(CONFIG_IP_NF_IPTABLES) || \ ++ defined(CONFIG_IP_NF_IPTABLES_MODULE) ++ KSYMIPTFINI(ve->_iptables_modules, VE_IP_IPTABLES, ++ ip_tables, fini_iptables, ()); ++err_iptables: ++#endif ++ ve->_iptables_modules = 0; ++ ++ return err; ++} ++ ++static inline int init_ve_iptables(struct ve_struct *ve, __u64 init_mask) ++{ ++ return do_ve_iptables(ve, init_mask, 1); ++} ++ ++static inline void fini_ve_iptables(struct ve_struct *ve, __u64 init_mask) ++{ ++ (void)do_ve_iptables(ve, init_mask, 0); ++} ++ ++#else ++#define init_ve_iptables(x, y) (0) ++#define fini_ve_iptables(x, y) do { } while (0) ++#define init_ve_netfilter() (0) ++#define fini_ve_netfilter() do { } while (0) ++#endif ++ ++static inline int init_ve_cpustats(struct ve_struct *ve) ++{ ++ ve->cpu_stats = alloc_percpu(struct ve_cpu_stats); ++ return ve->cpu_stats == NULL ? -ENOMEM : 0; ++} ++ ++static inline void free_ve_cpustats(struct ve_struct *ve) ++{ ++ free_percpu(ve->cpu_stats); ++ ve->cpu_stats = NULL; ++} ++ ++static int alone_in_pgrp(struct task_struct *tsk) ++{ ++ struct task_struct *p; ++ int alone = 0; ++ ++ read_lock(&tasklist_lock); ++ do_each_pid_task(task_pid(tsk), PIDTYPE_PGID, p) { ++ if (p != tsk) ++ goto out; ++ } while_each_pid_task(task_pid(tsk), PIDTYPE_PGID, p); ++ do_each_pid_task(task_pid(tsk), PIDTYPE_SID, p) { ++ if (p != tsk) ++ goto out; ++ } while_each_pid_task(task_pid(tsk), PIDTYPE_SID, p); ++ alone = 1; ++out: ++ read_unlock(&tasklist_lock); ++ return alone; ++} ++ ++static int do_env_create(envid_t veid, unsigned int flags, u32 class_id, ++ env_create_param_t *data, int datalen) ++{ ++ struct task_struct *tsk; ++ struct ve_struct *old; ++ struct ve_struct *old_exec; ++ struct ve_struct *ve; ++ __u64 init_mask; ++ int err; ++ struct nsproxy *old_ns, *old_ns_net; ++ DECLARE_COMPLETION_ONSTACK(sysfs_completion); ++ ++ tsk = current; ++ old = VE_TASK_INFO(tsk)->owner_env; ++ ++ if (!thread_group_leader(tsk) || !thread_group_empty(tsk)) ++ return -EINVAL; ++ ++ if (tsk->signal->tty) { ++ printk("ERR: CT init has controlling terminal\n"); ++ return -EINVAL; ++ } ++ if (task_pgrp(tsk) != task_pid(tsk) || ++ task_session(tsk) != task_pid(tsk)) { ++ int may_setsid; ++ ++ read_lock(&tasklist_lock); ++ may_setsid = !tsk->signal->leader && ++ !find_task_by_pid_type_ns(PIDTYPE_PGID, task_pid_nr(tsk), &init_pid_ns); ++ read_unlock(&tasklist_lock); ++ ++ if (!may_setsid) { ++ printk("ERR: CT init is process group leader\n"); ++ return -EINVAL; ++ } ++ } ++ /* Check that the process is not a leader of non-empty group/session. ++ * If it is, we cannot virtualize its PID and must fail. */ ++ if (!alone_in_pgrp(tsk)) { ++ printk("ERR: CT init is not alone in process group\n"); ++ return -EINVAL; ++ } ++ ++ ++ VZTRACE("%s: veid=%d classid=%d pid=%d\n", ++ __FUNCTION__, veid, class_id, current->pid); ++ ++ err = -ENOMEM; ++ ve = kzalloc(sizeof(struct ve_struct), GFP_KERNEL); ++ if (ve == NULL) ++ goto err_struct; ++ ++ init_ve_struct(ve, veid, class_id, data, datalen); ++ __module_get(THIS_MODULE); ++ down_write(&ve->op_sem); ++ if (flags & VE_LOCK) ++ ve->is_locked = 1; ++ ++ /* ++ * this should be done before adding to list ++ * because if calc_load_ve finds this ve in ++ * list it will be very surprised ++ */ ++ if ((err = init_ve_cpustats(ve)) < 0) ++ goto err_cpu_stats; ++ ++ if ((err = ve_list_add(ve)) < 0) ++ goto err_exist; ++ ++ /* this should be done before context switching */ ++ if ((err = init_printk(ve)) < 0) ++ goto err_log_wait; ++ ++ old_exec = set_exec_env(ve); ++ ++ if ((err = init_ve_sched(ve)) < 0) ++ goto err_sched; ++ ++ set_ve_root(ve, tsk); ++ ++ if ((err = init_ve_sysfs(ve))) ++ goto err_sysfs; ++ ++ if ((err = init_ve_mibs(ve))) ++ goto err_mibs; ++ ++ if ((err = init_ve_namespaces(ve, &old_ns))) ++ goto err_ns; ++ ++ if ((err = init_ve_proc(ve))) ++ goto err_proc; ++ ++ if ((err = init_ve_sysctl(ve))) ++ goto err_sysctl; ++ ++ if ((err = init_ve_route(ve)) < 0) ++ goto err_route; ++ ++ if ((err = init_ve_route6(ve)) < 0) ++ goto err_route6; ++ ++ if ((err = init_ve_netns(ve, &old_ns_net))) ++ goto err_netns; ++ ++ if ((err = init_ve_tty_drivers(ve)) < 0) ++ goto err_tty; ++ ++ if ((err = init_ve_shmem(ve))) ++ goto err_shmem; ++ ++ if ((err = init_ve_devpts(ve))) ++ goto err_devpts; ++ ++ if((err = init_ve_meminfo(ve))) ++ goto err_meminf; ++ ++ set_ve_caps(ve, tsk); ++ ++ /* It is safe to initialize netfilter here as routing initialization and ++ interface setup will be done below. This means that NO skb can be ++ passed inside. Den */ ++ /* iptables ve initialization for non ve0; ++ ve0 init is in module_init */ ++ if ((err = init_ve_netfilter()) < 0) ++ goto err_netfilter; ++ ++ init_mask = data ? data->iptables_mask : VE_IP_DEFAULT; ++ if ((err = init_ve_iptables(ve, init_mask)) < 0) ++ goto err_iptables; ++ ++ if ((err = pid_ns_attach_init(ve->ve_ns->pid_ns, tsk)) < 0) ++ goto err_vpid; ++ ++ if ((err = ve_hook_iterate_init(VE_SS_CHAIN, ve)) < 0) ++ goto err_ve_hook; ++ ++ put_nsproxy(old_ns); ++ put_nsproxy(old_ns_net); ++ ++ /* finally: set vpids and move inside */ ++ ve_move_task(tsk, ve); ++ grsecurity_setup(); ++ ++ ve->is_running = 1; ++ up_write(&ve->op_sem); ++ ++ printk(KERN_INFO "CT: %d: started\n", veid); ++ return veid; ++ ++err_ve_hook: ++ mntget(ve->proc_mnt); ++err_vpid: ++ fini_venet(ve); ++ fini_ve_iptables(ve, init_mask); ++err_iptables: ++ fini_ve_netfilter(); ++err_netfilter: ++ fini_ve_meminfo(ve); ++err_meminf: ++ fini_ve_devpts(ve); ++err_devpts: ++ fini_ve_shmem(ve); ++err_shmem: ++ fini_ve_tty_drivers(ve); ++err_tty: ++ ve->ve_ns->net_ns->sysfs_completion = &sysfs_completion; ++ fini_ve_namespaces(ve, old_ns_net); ++ put_nsproxy(old_ns_net); ++ wait_for_completion(&sysfs_completion); ++err_netns: ++ fini_ve_route6(ve); ++err_route6: ++ fini_ve_route(ve); ++err_route: ++ fini_ve_sysctl(ve); ++err_sysctl: ++ /* ++ * If process hasn't become VE's init, proc_mnt won't be put during ++ * pidns death, so this mntput by hand is needed. If it has, we ++ * compensate with mntget above. ++ */ ++ mntput(ve->proc_mnt); ++ fini_ve_proc(ve); ++err_proc: ++ /* free_ve_utsname() is called inside real_put_ve() */ ++ fini_ve_namespaces(ve, old_ns); ++ put_nsproxy(old_ns); ++ /* ++ * We need to compensate, because fini_ve_namespaces() assumes ++ * ve->ve_ns will continue to be used after, but VE will be freed soon ++ * (in kfree() sense). ++ */ ++ put_nsproxy(ve->ve_ns); ++err_ns: ++ clean_device_perms_ve(ve->veid); ++ fini_ve_mibs(ve); ++err_mibs: ++ fini_ve_sysfs(ve); ++err_sysfs: ++ /* It is safe to restore current->envid here because ++ * ve_fairsched_detach does not use current->envid. */ ++ /* Really fairsched code uses current->envid in sys_fairsched_mknod ++ * only. It is correct if sys_fairsched_mknod is called from ++ * userspace. If sys_fairsched_mknod is called from ++ * ve_fairsched_attach, then node->envid and node->parent_node->envid ++ * are explicitly set to valid value after the call. */ ++ /* FIXME */ ++ VE_TASK_INFO(tsk)->owner_env = old; ++ VE_TASK_INFO(tsk)->exec_env = old_exec; ++ ++ fini_ve_sched(ve); ++err_sched: ++ (void)set_exec_env(old_exec); ++ ++ /* we can jump here having incorrect envid */ ++ VE_TASK_INFO(tsk)->owner_env = old; ++ fini_printk(ve); ++err_log_wait: ++ /* cpustats will be freed in do_env_free */ ++ ve_list_del(ve); ++ up_write(&ve->op_sem); ++ ++ real_put_ve(ve); ++err_struct: ++ printk(KERN_INFO "CT: %d: failed to start with err=%d\n", veid, err); ++ return err; ++ ++err_exist: ++ free_ve_cpustats(ve); ++err_cpu_stats: ++ kfree(ve); ++ goto err_struct; ++} ++ ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * VE start/stop callbacks ++ * ++ ********************************************************************** ++ **********************************************************************/ ++ ++int real_env_create(envid_t veid, unsigned flags, u32 class_id, ++ env_create_param_t *data, int datalen) ++{ ++ int status; ++ struct ve_struct *ve; ++ ++ if (!flags) { ++ status = get_exec_env()->veid; ++ goto out; ++ } ++ ++ status = -EPERM; ++ if (!capable(CAP_SETVEID)) ++ goto out; ++ ++ status = -EINVAL; ++ if ((flags & VE_TEST) && (flags & (VE_ENTER|VE_CREATE))) ++ goto out; ++ ++ status = -EINVAL; ++ ve = get_ve_by_id(veid); ++ if (ve) { ++ if (flags & VE_TEST) { ++ status = 0; ++ goto out_put; ++ } ++ if (flags & VE_EXCLUSIVE) { ++ status = -EACCES; ++ goto out_put; ++ } ++ if (flags & VE_CREATE) { ++ flags &= ~VE_CREATE; ++ flags |= VE_ENTER; ++ } ++ } else { ++ if (flags & (VE_TEST|VE_ENTER)) { ++ status = -ESRCH; ++ goto out; ++ } ++ } ++ ++ if (flags & VE_CREATE) { ++ status = do_env_create(veid, flags, class_id, data, datalen); ++ goto out; ++ } else if (flags & VE_ENTER) ++ status = do_env_enter(ve, flags); ++ ++ /* else: returning EINVAL */ ++ ++out_put: ++ real_put_ve(ve); ++out: ++ return status; ++} ++EXPORT_SYMBOL(real_env_create); ++ ++static int do_env_enter(struct ve_struct *ve, unsigned int flags) ++{ ++ struct task_struct *tsk = current; ++ int err; ++ ++ VZTRACE("%s: veid=%d\n", __FUNCTION__, ve->veid); ++ ++ err = -EBUSY; ++ down_read(&ve->op_sem); ++ if (!ve->is_running) ++ goto out_up; ++ if (ve->is_locked && !(flags & VE_SKIPLOCK)) ++ goto out_up; ++ err = -EINVAL; ++ if (!thread_group_leader(tsk) || !thread_group_empty(tsk)) ++ goto out_up; ++ ++#ifdef CONFIG_FAIRSCHED ++ err = sys_fairsched_mvpr(current->pid, ve->veid); ++ if (err) ++ goto out_up; ++#endif ++ ve_sched_attach(ve); ++ switch_ve_namespaces(ve, tsk); ++ ve_move_task(current, ve); ++ ++ /* Check that the process is not a leader of non-empty group/session. ++ * If it is, we cannot virtualize its PID. Do not fail, just leave ++ * it non-virtual. ++ */ ++ if (alone_in_pgrp(tsk) && !(flags & VE_SKIPLOCK)) ++ pid_ns_attach_task(ve->ve_ns->pid_ns, tsk); ++ ++ /* Unlike VE_CREATE, we do not setsid() in VE_ENTER. ++ * Process is allowed to be in an external group/session. ++ * If user space callers wants, it will do setsid() after ++ * VE_ENTER. ++ */ ++ err = VE_TASK_INFO(tsk)->owner_env->veid; ++ tsk->did_ve_enter = 1; ++ ++out_up: ++ up_read(&ve->op_sem); ++ return err; ++} ++ ++static void env_cleanup(struct ve_struct *ve) ++{ ++ struct ve_struct *old_ve; ++ DECLARE_COMPLETION_ONSTACK(sysfs_completion); ++ ++ VZTRACE("real_do_env_cleanup\n"); ++ ++ down_read(&ve->op_sem); ++ old_ve = set_exec_env(ve); ++ ++ ve_hook_iterate_fini(VE_SS_CHAIN, ve); ++ ++ fini_venet(ve); ++ ++ /* no new packets in flight beyond this point */ ++ /* skb hold dst_entry, and in turn lies in the ip fragment queue */ ++ ip_fragment_cleanup(ve); ++ ++ /* kill iptables */ ++ /* No skb belonging to VE can exist at this point as unregister_netdev ++ is an operation awaiting until ALL skb's gone */ ++ fini_ve_iptables(ve, ve->_iptables_modules); ++ fini_ve_netfilter(); ++ ++ fini_ve_sched(ve); ++ clean_device_perms_ve(ve->veid); ++ ++ fini_ve_devpts(ve); ++ fini_ve_shmem(ve); ++ unregister_ve_tty_drivers(ve); ++ fini_ve_meminfo(ve); ++ ++ ve->ve_ns->net_ns->sysfs_completion = &sysfs_completion; ++ fini_ve_namespaces(ve, NULL); ++ wait_for_completion(&sysfs_completion); ++ fini_ve_route(ve); ++ fini_ve_route6(ve); ++ fini_ve_mibs(ve); ++ fini_ve_sysctl(ve); ++ fini_ve_proc(ve); ++ fini_ve_sysfs(ve); ++ ++ (void)set_exec_env(old_ve); ++ fini_printk(ve); /* no printk can happen in ve context anymore */ ++ ++ ve_list_del(ve); ++ up_read(&ve->op_sem); ++ ++ real_put_ve(ve); ++} ++ ++static DECLARE_COMPLETION(vzmond_complete); ++static volatile int stop_vzmond; ++ ++static int vzmond_helper(void *arg) ++{ ++ char name[18]; ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)arg; ++ snprintf(name, sizeof(name), "vzmond/%d", ve->veid); ++ daemonize(name); ++ env_cleanup(ve); ++ module_put_and_exit(0); ++} ++ ++static void do_pending_env_cleanups(void) ++{ ++ int err; ++ struct ve_struct *ve; ++ ++ spin_lock(&ve_cleanup_lock); ++ while (1) { ++ if (list_empty(&ve_cleanup_list) || need_resched()) ++ break; ++ ++ ve = list_first_entry(&ve_cleanup_list, ++ struct ve_struct, cleanup_list); ++ list_del(&ve->cleanup_list); ++ spin_unlock(&ve_cleanup_lock); ++ ++ __module_get(THIS_MODULE); ++ err = kernel_thread(vzmond_helper, (void *)ve, 0); ++ if (err < 0) { ++ env_cleanup(ve); ++ module_put(THIS_MODULE); ++ } ++ ++ spin_lock(&ve_cleanup_lock); ++ } ++ spin_unlock(&ve_cleanup_lock); ++} ++ ++static inline int have_pending_cleanups(void) ++{ ++ return !list_empty(&ve_cleanup_list); ++} ++ ++static int vzmond(void *arg) ++{ ++ daemonize("vzmond"); ++ set_current_state(TASK_INTERRUPTIBLE); ++ ++ while (!stop_vzmond || have_pending_cleanups()) { ++ schedule(); ++ try_to_freeze(); ++ if (signal_pending(current)) ++ flush_signals(current); ++ ++ do_pending_env_cleanups(); ++ set_current_state(TASK_INTERRUPTIBLE); ++ if (have_pending_cleanups()) ++ __set_current_state(TASK_RUNNING); ++ } ++ ++ __set_task_state(current, TASK_RUNNING); ++ complete_and_exit(&vzmond_complete, 0); ++} ++ ++static int __init init_vzmond(void) ++{ ++ int pid; ++ struct task_struct *tsk; ++ ++ pid = kernel_thread(vzmond, NULL, 0); ++ if (pid > 0) { ++ tsk = find_task_by_pid(pid); ++ BUG_ON(tsk == NULL); ++ ve_cleanup_thread = tsk; ++ } ++ return pid; ++} ++ ++static void fini_vzmond(void) ++{ ++ stop_vzmond = 1; ++ wake_up_process(ve_cleanup_thread); ++ wait_for_completion(&vzmond_complete); ++ ve_cleanup_thread = NULL; ++ WARN_ON(!list_empty(&ve_cleanup_list)); ++} ++ ++void real_do_env_free(struct ve_struct *ve) ++{ ++ VZTRACE("real_do_env_free\n"); ++ ++ free_ve_tty_drivers(ve); ++ free_ve_sysctl(ve); /* free per ve sysctl data */ ++ free_ve_filesystems(ve); ++ free_ve_cpustats(ve); ++ printk(KERN_INFO "CT: %d: stopped\n", VEID(ve)); ++ kfree(ve); ++ ++ module_put(THIS_MODULE); ++} ++EXPORT_SYMBOL(real_do_env_free); ++ ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * VE TTY handling ++ * ++ ********************************************************************** ++ **********************************************************************/ ++ ++static struct tty_driver *alloc_ve_tty_driver(struct tty_driver *base, ++ struct ve_struct *ve) ++{ ++ size_t size; ++ struct tty_driver *driver; ++ ++ driver = kmalloc(sizeof(struct tty_driver), GFP_KERNEL_UBC); ++ if (!driver) ++ goto out; ++ ++ memcpy(driver, base, sizeof(struct tty_driver)); ++ ++ driver->driver_state = NULL; ++ ++ size = base->num * 3 * sizeof(void *); ++ if (!(driver->flags & TTY_DRIVER_DEVPTS_MEM)) { ++ void **p; ++ p = kzalloc(size, GFP_KERNEL_UBC); ++ if (!p) ++ goto out_free; ++ ++ driver->ttys = (struct tty_struct **)p; ++ driver->termios = (struct ktermios **)(p + driver->num); ++ driver->termios_locked = (struct ktermios **) ++ (p + driver->num * 2); ++ } else { ++ driver->ttys = NULL; ++ driver->termios = NULL; ++ driver->termios_locked = NULL; ++ } ++ ++ driver->owner_env = ve; ++ driver->flags |= TTY_DRIVER_INSTALLED; ++ driver->refcount = 0; ++ ++ return driver; ++ ++out_free: ++ kfree(driver); ++out: ++ return NULL; ++} ++ ++static void free_ve_tty_driver(struct tty_driver *driver) ++{ ++ if (!driver) ++ return; ++ ++ clear_termios(driver); ++ kfree(driver->ttys); ++ kfree(driver); ++} ++ ++static int alloc_ve_tty_drivers(struct ve_struct* ve) ++{ ++#ifdef CONFIG_LEGACY_PTYS ++ /* Traditional BSD devices */ ++ ve->pty_driver = alloc_ve_tty_driver(pty_driver, ve); ++ if (!ve->pty_driver) ++ goto out_mem; ++ ++ ve->pty_slave_driver = alloc_ve_tty_driver(pty_slave_driver, ve); ++ if (!ve->pty_slave_driver) ++ goto out_mem; ++ ++ ve->pty_driver->other = ve->pty_slave_driver; ++ ve->pty_slave_driver->other = ve->pty_driver; ++#endif ++ ++#ifdef CONFIG_UNIX98_PTYS ++ ve->ptm_driver = alloc_ve_tty_driver(ptm_driver, ve); ++ if (!ve->ptm_driver) ++ goto out_mem; ++ ++ ve->pts_driver = alloc_ve_tty_driver(pts_driver, ve); ++ if (!ve->pts_driver) ++ goto out_mem; ++ ++ ve->ptm_driver->other = ve->pts_driver; ++ ve->pts_driver->other = ve->ptm_driver; ++ ++ ve->allocated_ptys = kmalloc(sizeof(*ve->allocated_ptys), ++ GFP_KERNEL_UBC); ++ if (!ve->allocated_ptys) ++ goto out_mem; ++ idr_init(ve->allocated_ptys); ++#endif ++ return 0; ++ ++out_mem: ++ free_ve_tty_drivers(ve); ++ return -ENOMEM; ++} ++ ++static void free_ve_tty_drivers(struct ve_struct* ve) ++{ ++#ifdef CONFIG_LEGACY_PTYS ++ free_ve_tty_driver(ve->pty_driver); ++ free_ve_tty_driver(ve->pty_slave_driver); ++ ve->pty_driver = ve->pty_slave_driver = NULL; ++#endif ++#ifdef CONFIG_UNIX98_PTYS ++ free_ve_tty_driver(ve->ptm_driver); ++ free_ve_tty_driver(ve->pts_driver); ++ kfree(ve->allocated_ptys); ++ ve->ptm_driver = ve->pts_driver = NULL; ++ ve->allocated_ptys = NULL; ++#endif ++} ++ ++static inline void __register_tty_driver(struct tty_driver *driver) ++{ ++ list_add(&driver->tty_drivers, &tty_drivers); ++} ++ ++static inline void __unregister_tty_driver(struct tty_driver *driver) ++{ ++ if (!driver) ++ return; ++ list_del(&driver->tty_drivers); ++} ++ ++static int register_ve_tty_drivers(struct ve_struct* ve) ++{ ++ mutex_lock(&tty_mutex); ++#ifdef CONFIG_UNIX98_PTYS ++ __register_tty_driver(ve->ptm_driver); ++ __register_tty_driver(ve->pts_driver); ++#endif ++#ifdef CONFIG_LEGACY_PTYS ++ __register_tty_driver(ve->pty_driver); ++ __register_tty_driver(ve->pty_slave_driver); ++#endif ++ mutex_unlock(&tty_mutex); ++ ++ return 0; ++} ++ ++static void unregister_ve_tty_drivers(struct ve_struct* ve) ++{ ++ VZTRACE("unregister_ve_tty_drivers\n"); ++ ++ mutex_lock(&tty_mutex); ++#ifdef CONFIG_LEGACY_PTYS ++ __unregister_tty_driver(ve->pty_driver); ++ __unregister_tty_driver(ve->pty_slave_driver); ++#endif ++#ifdef CONFIG_UNIX98_PTYS ++ __unregister_tty_driver(ve->ptm_driver); ++ __unregister_tty_driver(ve->pts_driver); ++#endif ++ mutex_unlock(&tty_mutex); ++} ++ ++static int init_ve_tty_drivers(struct ve_struct *ve) ++{ ++ int err; ++ ++ if ((err = alloc_ve_tty_drivers(ve))) ++ goto err_ttyalloc; ++ if ((err = register_ve_tty_drivers(ve))) ++ goto err_ttyreg; ++ return 0; ++ ++err_ttyreg: ++ free_ve_tty_drivers(ve); ++err_ttyalloc: ++ return err; ++} ++ ++static void fini_ve_tty_drivers(struct ve_struct *ve) ++{ ++ unregister_ve_tty_drivers(ve); ++ free_ve_tty_drivers(ve); ++} ++ ++/* ++ * Free the termios and termios_locked structures because ++ * we don't want to get memory leaks when modular tty ++ * drivers are removed from the kernel. ++ */ ++static void clear_termios(struct tty_driver *driver) ++{ ++ int i; ++ struct ktermios *tp; ++ ++ if (driver->termios == NULL) ++ return; ++ for (i = 0; i < driver->num; i++) { ++ tp = driver->termios[i]; ++ if (tp) { ++ driver->termios[i] = NULL; ++ kfree(tp); ++ } ++ tp = driver->termios_locked[i]; ++ if (tp) { ++ driver->termios_locked[i] = NULL; ++ kfree(tp); ++ } ++ } ++} ++ ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * Pieces of VE network ++ * ++ ********************************************************************** ++ **********************************************************************/ ++ ++#ifdef CONFIG_NET ++#include ++#include ++#include ++#include ++#include ++#include ++#endif ++ ++static int ve_dev_add(envid_t veid, char *dev_name) ++{ ++ struct net_device *dev; ++ struct ve_struct *dst_ve; ++ struct net *dst_net; ++ int err = -ESRCH; ++ ++ dst_ve = get_ve_by_id(veid); ++ if (dst_ve == NULL) ++ goto out; ++ ++ dst_net = dst_ve->ve_ns->net_ns; ++ ++ rtnl_lock(); ++ read_lock(&dev_base_lock); ++ dev = __dev_get_by_name(&init_net, dev_name); ++ read_unlock(&dev_base_lock); ++ if (dev == NULL) ++ goto out_unlock; ++ ++ err = __dev_change_net_namespace(dev, dst_net, dev_name, ++ get_ve0(), dst_ve, get_exec_ub()); ++out_unlock: ++ rtnl_unlock(); ++ real_put_ve(dst_ve); ++ ++ if (dev == NULL) ++ printk(KERN_WARNING "%s: device %s not found\n", ++ __func__, dev_name); ++out: ++ return err; ++} ++ ++static int ve_dev_del(envid_t veid, char *dev_name) ++{ ++ struct net_device *dev; ++ struct ve_struct *src_ve; ++ struct net *src_net; ++ int err = -ESRCH; ++ ++ src_ve = get_ve_by_id(veid); ++ if (src_ve == NULL) ++ goto out; ++ ++ src_net = src_ve->ve_ns->net_ns; ++ ++ rtnl_lock(); ++ ++ read_lock(&dev_base_lock); ++ dev = __dev_get_by_name(src_net, dev_name); ++ read_unlock(&dev_base_lock); ++ if (dev == NULL) ++ goto out_unlock; ++ ++ err = __dev_change_net_namespace(dev, &init_net, dev_name, ++ src_ve, get_ve0(), netdev_bc(dev)->owner_ub); ++out_unlock: ++ rtnl_unlock(); ++ real_put_ve(src_ve); ++ ++ if (dev == NULL) ++ printk(KERN_WARNING "%s: device %s not found\n", ++ __func__, dev_name); ++out: ++ return err; ++} ++ ++int real_ve_dev_map(envid_t veid, int op, char *dev_name) ++{ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ switch (op) { ++ case VE_NETDEV_ADD: ++ return ve_dev_add(veid, dev_name); ++ case VE_NETDEV_DEL: ++ return ve_dev_del(veid, dev_name); ++ default: ++ return -EINVAL; ++ } ++} ++ ++static void ve_mapped_devs_cleanup(struct ve_struct *ve) ++{ ++ struct net *net = ve->ve_ns->net_ns; ++ struct net_device *dev, *next; ++ int rv; ++ ++ rtnl_lock(); ++ for_each_netdev_safe(net, dev, next) { ++ /* Ignore unmoveable devices (i.e. loopback) */ ++ if (dev->features & NETIF_F_NETNS_LOCAL) ++ continue; ++ ++ rv = __dev_change_net_namespace(dev, &init_net, dev->name, ++ ve, get_ve0(), netdev_bc(dev)->owner_ub); ++ if (rv < 0) ++ unregister_netdevice(dev); ++ } ++ rtnl_unlock(); ++} ++ ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * VE information via /proc ++ * ++ ********************************************************************** ++ **********************************************************************/ ++#ifdef CONFIG_PROC_FS ++#if BITS_PER_LONG == 32 ++#define VESTAT_LINE_WIDTH (6 * 11 + 6 * 21) ++#define VESTAT_LINE_FMT "%10u %10lu %10lu %10lu %10Lu %20Lu %20Lu %20Lu %20Lu %20Lu %20Lu %10lu\n" ++#define VESTAT_HEAD_FMT "%10s %10s %10s %10s %10s %20s %20s %20s %20s %20s %20s %10s\n" ++#else ++#define VESTAT_LINE_WIDTH (12 * 21) ++#define VESTAT_LINE_FMT "%20u %20lu %20lu %20lu %20Lu %20Lu %20Lu %20Lu %20Lu %20Lu %20Lu %20lu\n" ++#define VESTAT_HEAD_FMT "%20s %20s %20s %20s %20s %20s %20s %20s %20s %20s %20s %20s\n" ++#endif ++ ++static int vestat_seq_show(struct seq_file *m, void *v) ++{ ++ struct list_head *entry; ++ struct ve_struct *ve; ++ struct ve_struct *curve; ++ int cpu; ++ unsigned long user_ve, nice_ve, system_ve; ++ unsigned long long uptime; ++ cycles_t uptime_cycles, idle_time, strv_time, used; ++ ++ entry = (struct list_head *)v; ++ ve = list_entry(entry, struct ve_struct, ve_list); ++ ++ curve = get_exec_env(); ++ if (entry == ve_list_head.next || ++ (!ve_is_super(curve) && ve == curve)) { ++ /* print header */ ++ seq_printf(m, "%-*s\n", ++ VESTAT_LINE_WIDTH - 1, ++ "Version: 2.2"); ++ seq_printf(m, VESTAT_HEAD_FMT, "VEID", ++ "user", "nice", "system", ++ "uptime", "idle", ++ "strv", "uptime", "used", ++ "maxlat", "totlat", "numsched"); ++ } ++ ++ if (ve == get_ve0()) ++ return 0; ++ ++ user_ve = nice_ve = system_ve = 0; ++ idle_time = strv_time = used = 0; ++ ++ for_each_online_cpu(cpu) { ++ struct ve_cpu_stats *st; ++ ++ st = VE_CPU_STATS(ve, cpu); ++ user_ve += st->user; ++ nice_ve += st->nice; ++ system_ve += st->system; ++ used += st->used_time; ++ idle_time += ve_sched_get_idle_time(ve, cpu); ++ } ++ uptime_cycles = get_cycles() - ve->start_cycles; ++ uptime = get_jiffies_64() - ve->start_jiffies; ++ ++ seq_printf(m, VESTAT_LINE_FMT, ve->veid, ++ user_ve, nice_ve, system_ve, ++ (unsigned long long)uptime, ++ (unsigned long long)idle_time, ++ (unsigned long long)strv_time, ++ (unsigned long long)uptime_cycles, ++ (unsigned long long)used, ++ (unsigned long long)ve->sched_lat_ve.last.maxlat, ++ (unsigned long long)ve->sched_lat_ve.last.totlat, ++ ve->sched_lat_ve.last.count); ++ return 0; ++} ++ ++static void *ve_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ struct ve_struct *curve; ++ struct list_head *entry; ++ loff_t l; ++ ++ curve = get_exec_env(); ++ read_lock(&ve_list_lock); ++ if (!ve_is_super(curve)) { ++ if (*pos != 0) ++ return NULL; ++ return curve; ++ } ++ ++ l = *pos; ++ list_for_each(entry, &ve_list_head) { ++ if (l == 0) ++ return entry; ++ l--; ++ } ++ return NULL; ++} ++ ++static void *ve_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ struct list_head *entry; ++ ++ entry = (struct list_head *)v; ++ if (!ve_is_super(get_exec_env())) ++ return NULL; ++ (*pos)++; ++ return entry->next == &ve_list_head ? NULL : entry->next; ++} ++ ++static void ve_seq_stop(struct seq_file *m, void *v) ++{ ++ read_unlock(&ve_list_lock); ++} ++ ++static struct seq_operations vestat_seq_op = { ++ .start = ve_seq_start, ++ .next = ve_seq_next, ++ .stop = ve_seq_stop, ++ .show = vestat_seq_show ++}; ++ ++static int vestat_open(struct inode *inode, struct file *file) ++{ ++ return seq_open(file, &vestat_seq_op); ++} ++ ++static struct file_operations proc_vestat_operations = { ++ .open = vestat_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release ++}; ++ ++static int vz_version_show(struct seq_file *file, void* v) ++{ ++ static const char ver[] = VZVERSION "\n"; ++ ++ return seq_puts(file, ver); ++} ++ ++static int vz_version_open(struct inode *inode, struct file *file) ++{ ++ return single_open(file, vz_version_show, NULL); ++} ++ ++static struct file_operations proc_vz_version_oparations = { ++ .open = vz_version_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = single_release, ++}; ++ ++static inline unsigned long ve_used_mem(struct user_beancounter *ub) ++{ ++ extern int glob_ve_meminfo; ++ return glob_ve_meminfo ? ub->ub_parms[UB_OOMGUARPAGES].held : ++ ub->ub_parms[UB_PRIVVMPAGES].held ; ++} ++ ++static inline void ve_mi_replace(struct meminfo *mi) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ struct user_beancounter *ub; ++ unsigned long meminfo_val; ++ unsigned long nodettram; ++ unsigned long usedmem; ++ ++ meminfo_val = get_exec_env()->meminfo_val; ++ ++ if(!meminfo_val) ++ return; /* No virtualization */ ++ ++ nodettram = mi->si.totalram; ++ ub = current->mm->mm_ub; ++ usedmem = ve_used_mem(ub); ++ ++ memset(mi, 0, sizeof(*mi)); ++ ++ mi->si.totalram = (meminfo_val > nodettram) ? ++ nodettram : meminfo_val; ++ mi->si.freeram = (mi->si.totalram > usedmem) ? ++ (mi->si.totalram - usedmem) : 0; ++#else ++ return; ++#endif ++} ++ ++static int meminfo_call(struct vnotifier_block *self, ++ unsigned long event, void *arg, int old_ret) ++{ ++ if (event != VIRTINFO_MEMINFO) ++ return old_ret; ++ ++ ve_mi_replace((struct meminfo *)arg); ++ ++ return NOTIFY_OK; ++} ++ ++ ++static struct vnotifier_block meminfo_notifier_block = { ++ .notifier_call = meminfo_call ++}; ++ ++static int __init init_vecalls_proc(void) ++{ ++ struct proc_dir_entry *de; ++ ++ de = create_proc_glob_entry_mod("vz/vestat", ++ S_IFREG|S_IRUSR, NULL, THIS_MODULE); ++ if (de == NULL) { ++ /* create "vz" subdirectory, if not exist */ ++ (void) create_proc_glob_entry("vz", ++ S_IFDIR|S_IRUGO|S_IXUGO, NULL); ++ de = create_proc_glob_entry_mod("vz/vestat", ++ S_IFREG|S_IRUSR, NULL, THIS_MODULE); ++ } ++ if (de) ++ de->proc_fops = &proc_vestat_operations; ++ else ++ printk(KERN_WARNING ++ "VZMON: can't make vestat proc entry\n"); ++ ++ de = create_proc_entry_mod("vz/devperms", S_IFREG | S_IRUSR, NULL, ++ THIS_MODULE); ++ if (de) ++ de->proc_fops = &proc_devperms_ops; ++ else ++ printk(KERN_WARNING ++ "VZMON: can't make devperms proc entry\n"); ++ ++ ++ de = create_proc_entry_mod("vz/version", S_IFREG | 0444, NULL, ++ THIS_MODULE); ++ if (de) ++ de->proc_fops = &proc_vz_version_oparations; ++ else ++ printk(KERN_WARNING ++ "VZMON: can't make version proc entry\n"); ++ ++ virtinfo_notifier_register(VITYPE_GENERAL, &meminfo_notifier_block); ++ ++ return 0; ++} ++ ++static void fini_vecalls_proc(void) ++{ ++ remove_proc_entry("vz/version", NULL); ++ remove_proc_entry("vz/devperms", NULL); ++ remove_proc_entry("vz/vestat", NULL); ++ virtinfo_notifier_unregister(VITYPE_GENERAL, &meminfo_notifier_block); ++} ++#else ++#define init_vecalls_proc() (0) ++#define fini_vecalls_proc() do { } while (0) ++#endif /* CONFIG_PROC_FS */ ++ ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * User ctl ++ * ++ ********************************************************************** ++ **********************************************************************/ ++ ++int vzcalls_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ int err; ++ ++ err = -ENOTTY; ++ switch(cmd) { ++ case VZCTL_MARK_ENV_TO_DOWN: { ++ /* Compatibility issue */ ++ err = 0; ++ } ++ break; ++ case VZCTL_SETDEVPERMS: { ++ /* Device type was mistakenly declared as dev_t ++ * in the old user-kernel interface. ++ * That's wrong, dev_t is a kernel internal type. ++ * I use `unsigned' not having anything better in mind. ++ * 2001/08/11 SAW */ ++ struct vzctl_setdevperms s; ++ err = -EFAULT; ++ if (copy_from_user(&s, (void __user *)arg, sizeof(s))) ++ break; ++ err = real_setdevperms(s.veid, s.type, ++ new_decode_dev(s.dev), s.mask); ++ } ++ break; ++#ifdef CONFIG_INET ++ case VZCTL_VE_NETDEV: { ++ struct vzctl_ve_netdev d; ++ char *s; ++ err = -EFAULT; ++ if (copy_from_user(&d, (void __user *)arg, sizeof(d))) ++ break; ++ err = -ENOMEM; ++ s = kmalloc(IFNAMSIZ+1, GFP_KERNEL); ++ if (s == NULL) ++ break; ++ err = -EFAULT; ++ if (strncpy_from_user(s, d.dev_name, IFNAMSIZ) > 0) { ++ s[IFNAMSIZ] = 0; ++ err = real_ve_dev_map(d.veid, d.op, s); ++ } ++ kfree(s); ++ } ++ break; ++#endif ++ case VZCTL_ENV_CREATE: { ++ struct vzctl_env_create s; ++ err = -EFAULT; ++ if (copy_from_user(&s, (void __user *)arg, sizeof(s))) ++ break; ++ err = real_env_create(s.veid, s.flags, s.class_id, ++ NULL, 0); ++ } ++ break; ++ case VZCTL_ENV_CREATE_DATA: { ++ struct vzctl_env_create_data s; ++ env_create_param_t *data; ++ err = -EFAULT; ++ if (copy_from_user(&s, (void __user *)arg, sizeof(s))) ++ break; ++ err=-EINVAL; ++ if (s.datalen < VZCTL_ENV_CREATE_DATA_MINLEN || ++ s.datalen > VZCTL_ENV_CREATE_DATA_MAXLEN || ++ s.data == 0) ++ break; ++ err = -ENOMEM; ++ data = kzalloc(sizeof(*data), GFP_KERNEL); ++ if (!data) ++ break; ++ ++ err = -EFAULT; ++ if (copy_from_user(data, (void __user *)s.data, ++ s.datalen)) ++ goto free_data; ++ err = real_env_create(s.veid, s.flags, s.class_id, ++ data, s.datalen); ++free_data: ++ kfree(data); ++ } ++ break; ++ case VZCTL_GET_CPU_STAT: { ++ struct vzctl_cpustatctl s; ++ err = -EFAULT; ++ if (copy_from_user(&s, (void __user *)arg, sizeof(s))) ++ break; ++ err = ve_get_cpu_stat(s.veid, s.cpustat); ++ } ++ break; ++ case VZCTL_VE_MEMINFO: { ++ struct vzctl_ve_meminfo s; ++ err = -EFAULT; ++ if (copy_from_user(&s, (void __user *)arg, sizeof(s))) ++ break; ++ err = ve_set_meminfo(s.veid, s.val); ++ } ++ break; ++ } ++ return err; ++} ++ ++#ifdef CONFIG_COMPAT ++int compat_vzcalls_ioctl(struct file *file, unsigned int cmd, ++ unsigned long arg) ++{ ++ int err; ++ ++ switch(cmd) { ++ case VZCTL_GET_CPU_STAT: { ++ /* FIXME */ ++ } ++ case VZCTL_COMPAT_ENV_CREATE_DATA: { ++ struct compat_vzctl_env_create_data cs; ++ struct vzctl_env_create_data __user *s; ++ ++ s = compat_alloc_user_space(sizeof(*s)); ++ err = -EFAULT; ++ if (copy_from_user(&cs, (void *)arg, sizeof(cs))) ++ break; ++ ++ if (put_user(cs.veid, &s->veid) || ++ put_user(cs.flags, &s->flags) || ++ put_user(cs.class_id, &s->class_id) || ++ put_user(compat_ptr(cs.data), &s->data) || ++ put_user(cs.datalen, &s->datalen)) ++ break; ++ err = vzcalls_ioctl(file, VZCTL_ENV_CREATE_DATA, ++ (unsigned long)s); ++ break; ++ } ++#ifdef CONFIG_NET ++ case VZCTL_COMPAT_VE_NETDEV: { ++ struct compat_vzctl_ve_netdev cs; ++ struct vzctl_ve_netdev __user *s; ++ ++ s = compat_alloc_user_space(sizeof(*s)); ++ err = -EFAULT; ++ if (copy_from_user(&cs, (void *)arg, sizeof(cs))) ++ break; ++ ++ if (put_user(cs.veid, &s->veid) || ++ put_user(cs.op, &s->op) || ++ put_user(compat_ptr(cs.dev_name), &s->dev_name)) ++ break; ++ err = vzcalls_ioctl(file, VZCTL_VE_NETDEV, (unsigned long)s); ++ break; ++ } ++#endif ++ case VZCTL_COMPAT_VE_MEMINFO: { ++ struct compat_vzctl_ve_meminfo cs; ++ err = -EFAULT; ++ if (copy_from_user(&cs, (void *)arg, sizeof(cs))) ++ break; ++ err = ve_set_meminfo(cs.veid, cs.val); ++ break; ++ } ++ default: ++ err = vzcalls_ioctl(file, cmd, arg); ++ break; ++ } ++ return err; ++} ++#endif ++ ++static struct vzioctlinfo vzcalls = { ++ .type = VZCTLTYPE, ++ .ioctl = vzcalls_ioctl, ++#ifdef CONFIG_COMPAT ++ .compat_ioctl = compat_vzcalls_ioctl, ++#endif ++ .owner = THIS_MODULE, ++}; ++ ++ ++/********************************************************************** ++ ********************************************************************** ++ * ++ * Init/exit stuff ++ * ++ ********************************************************************** ++ **********************************************************************/ ++ ++static int __init init_vecalls_symbols(void) ++{ ++ KSYMRESOLVE(real_do_env_free); ++ KSYMMODRESOLVE(vzmon); ++ return 0; ++} ++ ++static void fini_vecalls_symbols(void) ++{ ++ KSYMMODUNRESOLVE(vzmon); ++ KSYMUNRESOLVE(real_do_env_free); ++} ++ ++static inline __init int init_vecalls_ioctls(void) ++{ ++ vzioctl_register(&vzcalls); ++ return 0; ++} ++ ++static inline void fini_vecalls_ioctls(void) ++{ ++ vzioctl_unregister(&vzcalls); ++} ++ ++#ifdef CONFIG_SYSCTL ++static struct ctl_table_header *table_header; ++ ++static ctl_table kernel_table[] = { ++ { ++ .procname = "ve_allow_kthreads", ++ .data = &ve_allow_kthreads, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec, ++ }, ++ { 0 } ++}; ++ ++static ctl_table root_table[] = { ++ {CTL_KERN, "kernel", NULL, 0, 0555, kernel_table}, ++ { 0 } ++}; ++ ++static int init_vecalls_sysctl(void) ++{ ++ table_header = register_sysctl_table(root_table); ++ if (!table_header) ++ return -ENOMEM ; ++ return 0; ++} ++ ++static void fini_vecalls_sysctl(void) ++{ ++ unregister_sysctl_table(table_header); ++} ++#else ++static int init_vecalls_sysctl(void) { return 0; } ++static void fini_vecalls_sysctl(void) { ; } ++#endif ++ ++static int __init vecalls_init(void) ++{ ++ int err; ++ ++ err = init_vecalls_sysctl(); ++ if (err) ++ goto out_vzmond; ++ ++ err = init_vzmond(); ++ if (err < 0) ++ goto out_sysctl; ++ ++ err = init_vecalls_symbols(); ++ if (err < 0) ++ goto out_sym; ++ ++ err = init_vecalls_proc(); ++ if (err < 0) ++ goto out_proc; ++ ++ err = init_vecalls_ioctls(); ++ if (err < 0) ++ goto out_ioctls; ++ ++ return 0; ++ ++out_ioctls: ++ fini_vecalls_proc(); ++out_proc: ++ fini_vecalls_symbols(); ++out_sym: ++ fini_vzmond(); ++out_sysctl: ++ fini_vecalls_sysctl(); ++out_vzmond: ++ return err; ++} ++ ++static void vecalls_exit(void) ++{ ++ fini_vecalls_ioctls(); ++ fini_vecalls_proc(); ++ fini_vecalls_symbols(); ++ fini_vzmond(); ++ fini_vecalls_sysctl(); ++} ++ ++MODULE_AUTHOR("SWsoft "); ++MODULE_DESCRIPTION("Virtuozzo Control"); ++MODULE_LICENSE("GPL v2"); ++ ++module_init(vecalls_init) ++module_exit(vecalls_exit) +Index: kernel/kernel/ve/veowner.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/veowner.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,237 @@ ++/* ++ * kernel/ve/veowner.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++void prepare_ve0_process(struct task_struct *tsk) ++{ ++ VE_TASK_INFO(tsk)->exec_env = get_ve0(); ++ VE_TASK_INFO(tsk)->owner_env = get_ve0(); ++ VE_TASK_INFO(tsk)->sleep_time = 0; ++ VE_TASK_INFO(tsk)->wakeup_stamp = 0; ++ VE_TASK_INFO(tsk)->sched_time = 0; ++ seqcount_init(&VE_TASK_INFO(tsk)->wakeup_lock); ++ ++ if (tsk->pid) { ++ list_add_rcu(&tsk->ve_task_info.vetask_list, ++ &get_ve0()->vetask_lh); ++ atomic_inc(&get_ve0()->pcounter); ++ } ++} ++ ++/* ++ * ------------------------------------------------------------------------ ++ * proc entries ++ * ------------------------------------------------------------------------ ++ */ ++ ++#ifdef CONFIG_PROC_FS ++static void proc_move(struct proc_dir_entry *ddir, ++ struct proc_dir_entry *sdir, ++ const char *name) ++{ ++ struct proc_dir_entry **p, *q; ++ int len; ++ ++ len = strlen(name); ++ for (p = &sdir->subdir, q = *p; q != NULL; p = &q->next, q = *p) ++ if (proc_match(len, name, q)) ++ break; ++ if (q == NULL) ++ return; ++ *p = q->next; ++ q->parent = ddir; ++ q->next = ddir->subdir; ++ ddir->subdir = q; ++} ++static void prepare_proc_misc(void) ++{ ++ static char *table[] = { ++ "loadavg", ++ "uptime", ++ "meminfo", ++ "version", ++ "stat", ++ "filesystems", ++ "locks", ++ "swaps", ++ "mounts", ++ "net", ++ "cpuinfo", ++ "sysvipc", ++ "sys", ++ "fs", ++ "vz", ++ "cmdline", ++ "vmstat", ++ "modules", ++ NULL, ++ }; ++ char **p; ++ ++ for (p = table; *p != NULL; p++) ++ proc_move(&proc_root, ve0.proc_root, *p); ++} ++int prepare_proc(void) ++{ ++ struct ve_struct *envid; ++ struct proc_dir_entry *de; ++ struct proc_dir_entry *ve_root; ++ ++ envid = set_exec_env(&ve0); ++ ve_root = ve0.proc_root->subdir; ++ /* move the whole tree to be visible in VE0 only */ ++ ve0.proc_root->subdir = proc_root.subdir; ++ for (de = ve0.proc_root->subdir; de->next != NULL; de = de->next) ++ de->parent = ve0.proc_root; ++ de->parent = ve0.proc_root; ++ de->next = ve_root; ++ ++ /* move back into the global scope some specific entries */ ++ proc_root.subdir = NULL; ++ prepare_proc_misc(); ++ proc_mkdir("vz", NULL); ++#ifdef CONFIG_SYSVIPC ++ proc_mkdir("sysvipc", NULL); ++#endif ++ proc_root_fs = proc_mkdir("fs", NULL); ++ /* XXX proc_tty_init(); */ ++ ++ /* XXX process inodes */ ++ ++ (void)set_exec_env(envid); ++ ++ (void)create_proc_glob_entry("vz", S_IFDIR|S_IRUGO|S_IXUGO, NULL); ++ return 0; ++} ++ ++static struct proc_dir_entry ve0_proc_root = { ++ .name = "/proc", ++ .namelen = 5, ++ .mode = S_IFDIR | S_IRUGO | S_IXUGO, ++ .nlink = 2 ++}; ++ ++void prepare_ve0_proc_root(void) ++{ ++ ve0.proc_root = &ve0_proc_root; ++} ++#endif ++ ++/* ++ * ------------------------------------------------------------------------ ++ * Virtualized sysctl ++ * ------------------------------------------------------------------------ ++ */ ++extern int ve_area_access_check; ++#ifdef CONFIG_INET ++static ctl_table vz_ipv4_route_table[] = { ++ { ++ .procname = "src_check", ++ .data = &ip_rt_src_check, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++ { 0 } ++}; ++static ctl_table vz_ipv4_table[] = { ++ {NET_IPV4_ROUTE, "route", NULL, 0, 0555, vz_ipv4_route_table}, ++ { 0 } ++}; ++static ctl_table vz_net_table[] = { ++ {NET_IPV4, "ipv4", NULL, 0, 0555, vz_ipv4_table}, ++ { 0 } ++}; ++#endif ++static ctl_table vz_fs_table[] = { ++ { ++ .procname = "ve-area-access-check", ++ .data = &ve_area_access_check, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++ { 0 } ++}; ++static ctl_table root_table2[] = { ++#ifdef CONFIG_INET ++ {CTL_NET, "net", NULL, 0, 0555, vz_net_table}, ++#endif ++ {CTL_FS, "fs", NULL, 0, 0555, vz_fs_table}, ++ { 0 } ++}; ++int prepare_sysctl(void) ++{ ++ struct ve_struct *envid; ++ ++ envid = set_exec_env(&ve0); ++ register_sysctl_table(root_table2); ++ (void)set_exec_env(envid); ++ return 0; ++} ++ ++void prepare_ve0_sysctl(void) ++{ ++ INIT_LIST_HEAD(&ve0.sysctl_lh); ++} ++ ++/* ++ * ------------------------------------------------------------------------ ++ * XXX init_ve_system ++ * ------------------------------------------------------------------------ ++ */ ++ ++void init_ve_system(void) ++{ ++ struct task_struct *init_entry; ++ struct ve_struct *ve; ++ ++ ve = get_ve0(); ++ ++ init_entry = init_pid_ns.child_reaper; ++ /* if ve_move_task to VE0 (e.g. in cpt code) * ++ * occurs, ve_cap_bset on VE0 is required */ ++ ve->ve_cap_bset = CAP_INIT_EFF_SET; ++ ++#ifdef CONFIG_INET ++ ve->_ipv4_devconf = &ipv4_devconf; ++ ve->_ipv4_devconf_dflt = &ipv4_devconf_dflt; ++#endif ++ ++ read_lock(&init_entry->fs->lock); ++ ve->fs_rootmnt = init_entry->fs->rootmnt; ++ ve->fs_root = init_entry->fs->root; ++ read_unlock(&init_entry->fs->lock); ++ ++ /* common prepares */ ++#ifdef CONFIG_PROC_FS ++ prepare_proc(); ++#endif ++ prepare_sysctl(); ++} +Index: kernel/kernel/ve/vzdev.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/vzdev.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,154 @@ ++/* ++ * kernel/ve/vzdev.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define VZCTL_MAJOR 126 ++#define VZCTL_NAME "vzctl" ++ ++MODULE_AUTHOR("SWsoft "); ++MODULE_DESCRIPTION("Virtuozzo Interface"); ++MODULE_LICENSE("GPL v2"); ++ ++static LIST_HEAD(ioctls); ++static spinlock_t ioctl_lock = SPIN_LOCK_UNLOCKED; ++ ++static struct vzioctlinfo *vzctl_get_handler(unsigned int cmd) ++{ ++ struct vzioctlinfo *h; ++ ++ spin_lock(&ioctl_lock); ++ list_for_each_entry(h, &ioctls, list) { ++ if (h->type == _IOC_TYPE(cmd)) ++ goto found; ++ } ++ h = NULL; ++found: ++ if (h && !try_module_get(h->owner)) ++ h = NULL; ++ spin_unlock(&ioctl_lock); ++ return h; ++} ++ ++static void vzctl_put_handler(struct vzioctlinfo *h) ++{ ++ if (!h) ++ return; ++ ++ module_put(h->owner); ++} ++ ++long vzctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ struct vzioctlinfo *h; ++ int err; ++ ++ err = -ENOTTY; ++ h = vzctl_get_handler(cmd); ++ if (h && h->ioctl) ++ err = (*h->ioctl)(file, cmd, arg); ++ vzctl_put_handler(h); ++ ++ return err; ++} ++ ++long compat_vzctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ++{ ++ struct vzioctlinfo *h; ++ int err; ++ ++ err = -ENOIOCTLCMD; ++ h = vzctl_get_handler(cmd); ++ if (h && h->compat_ioctl) ++ err = (*h->compat_ioctl)(file, cmd, arg); ++ vzctl_put_handler(h); ++ ++ return err; ++} ++ ++void vzioctl_register(struct vzioctlinfo *inf) ++{ ++ spin_lock(&ioctl_lock); ++ list_add(&inf->list, &ioctls); ++ spin_unlock(&ioctl_lock); ++} ++EXPORT_SYMBOL(vzioctl_register); ++ ++void vzioctl_unregister(struct vzioctlinfo *inf) ++{ ++ spin_lock(&ioctl_lock); ++ list_del_init(&inf->list); ++ spin_unlock(&ioctl_lock); ++} ++EXPORT_SYMBOL(vzioctl_unregister); ++ ++/* ++ * Init/exit stuff. ++ */ ++static struct file_operations vzctl_fops = { ++ .owner = THIS_MODULE, ++ .unlocked_ioctl = vzctl_ioctl, ++ .compat_ioctl = compat_vzctl_ioctl, ++}; ++ ++static struct class *vzctl_class; ++ ++static void __exit vzctl_exit(void) ++{ ++ class_device_destroy(vzctl_class, MKDEV(VZCTL_MAJOR, 0)); ++ class_destroy(vzctl_class); ++ unregister_chrdev(VZCTL_MAJOR, VZCTL_NAME); ++} ++ ++static int __init vzctl_init(void) ++{ ++ int ret; ++ struct class_device *class_err; ++ ++ ret = register_chrdev(VZCTL_MAJOR, VZCTL_NAME, &vzctl_fops); ++ if (ret < 0) ++ goto out; ++ ++ vzctl_class = class_create(THIS_MODULE, "vzctl"); ++ if (IS_ERR(vzctl_class)) { ++ ret = PTR_ERR(vzctl_class); ++ goto out_cleandev; ++ } ++ ++ class_err = class_device_create(vzctl_class, NULL, MKDEV(VZCTL_MAJOR, 0), ++ NULL, VZCTL_NAME); ++ if (IS_ERR(class_err)) { ++ ret = PTR_ERR(class_err); ++ goto out_rmclass; ++ } ++ ++ goto out; ++ ++out_rmclass: ++ class_destroy(vzctl_class); ++out_cleandev: ++ unregister_chrdev(VZCTL_MAJOR, VZCTL_NAME); ++out: ++ return ret; ++} ++ ++module_init(vzctl_init) ++module_exit(vzctl_exit); +Index: kernel/kernel/ve/vzevent.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/vzevent.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,125 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define NETLINK_UEVENT 31 ++#define VZ_EVGRP_ALL 0x01 ++ ++/* ++ * NOTE: the original idea was to send events via kobject_uevent(), ++ * however, it turns out that it has negative consequences like ++ * start of /sbin/hotplug which tries to react on our events in inadequate manner. ++ */ ++ ++static struct sock *vzev_sock; ++ ++static char *action_to_string(int action) ++{ ++ switch (action) { ++ case KOBJ_MOUNT: ++ return "ve-mount"; ++ case KOBJ_UMOUNT: ++ return "ve-umount"; ++ case KOBJ_START: ++ return "ve-start"; ++ case KOBJ_STOP: ++ return "ve-stop"; ++ default: ++ return NULL; ++ } ++} ++ ++static int do_vzevent_send(int event, char *msg, int len) ++{ ++ struct sk_buff *skb; ++ char *buf, *action; ++ int alen; ++ ++ action = action_to_string(event); ++ alen = strlen(action); ++ ++ skb = alloc_skb(len + 1 + alen, GFP_KERNEL); ++ if (!skb) ++ return -ENOMEM; ++ ++ buf = skb_put(skb, len + 1 + alen); ++ memcpy(buf, action, alen); ++ buf[alen] = '@'; ++ memcpy(buf + alen + 1, msg, len); ++ (void)netlink_broadcast(vzev_sock, skb, 0, VZ_EVGRP_ALL, GFP_KERNEL); ++ return 0; ++} ++ ++int vzevent_send(int event, const char *attrs_fmt, ...) ++{ ++ va_list args; ++ int len, err; ++ struct ve_struct *ve; ++ char *page; ++ ++ err = -ENOMEM; ++ page = (char *)__get_free_page(GFP_KERNEL); ++ if (!page) ++ goto out; ++ ++ va_start(args, attrs_fmt); ++ len = vscnprintf(page, PAGE_SIZE, attrs_fmt, args); ++ va_end(args); ++ ++ ve = set_exec_env(get_ve0()); ++ err = do_vzevent_send(event, page, len); ++ (void)set_exec_env(ve); ++ free_page((unsigned long)page); ++out: ++ return err; ++} ++EXPORT_SYMBOL(vzevent_send); ++ ++static int ve_start(void *data) ++{ ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)data; ++ vzevent_send(KOBJ_START, "%d", ve->veid); ++ return 0; ++} ++ ++static void ve_stop(void *data) ++{ ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)data; ++ vzevent_send(KOBJ_STOP, "%d", ve->veid); ++} ++ ++static struct ve_hook ve_start_stop_hook = { ++ .init = ve_start, ++ .fini = ve_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_AFTERALL, ++}; ++ ++static int __init init_vzevent(void) ++{ ++ vzev_sock = netlink_kernel_create(NETLINK_UEVENT, 0, NULL, THIS_MODULE); ++ if (vzev_sock == NULL) ++ return -ENOMEM; ++ ve_hook_register(VE_SS_CHAIN, &ve_start_stop_hook); ++ return 0; ++} ++ ++static void __exit exit_vzevent(void) ++{ ++ ve_hook_unregister(&ve_start_stop_hook); ++ sock_release(vzev_sock->sk_socket); ++} ++ ++MODULE_LICENSE("GPL"); ++ ++module_init(init_vzevent); ++module_exit(exit_vzevent); +Index: kernel/kernel/ve/vzwdog.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/ve/vzwdog.c 2008-11-24 15:47:46.000000000 +0100 +@@ -0,0 +1,281 @@ ++/* ++ * kernel/ve/vzwdog.c ++ * ++ * Copyright (C) 2000-2005 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Staff regading kernel thread polling VE validity */ ++static int sleep_timeout = 60; ++static struct task_struct *wdog_thread_tsk; ++ ++extern void show_mem(void); ++ ++static struct file *intr_file; ++static char page[PAGE_SIZE]; ++ ++static void parse_irq_list(int len) ++{ ++ int i, k, skip; ++ for (i = 0; i < len; ) { ++ k = i; ++ while (i < len && page[i] != '\n' && page[i] != ':') ++ i++; ++ skip = 0; ++ if (i < len && page[i] != '\n') { ++ i++; /* skip ':' */ ++ while (i < len && (page[i] == ' ' || page[i] == '0')) ++ i++; ++ skip = (i < len && (page[i] < '0' || page[i] > '9')); ++ while (i < len && page[i] != '\n') ++ i++; ++ } ++ if (!skip) ++ printk("%.*s\n", i - k, page + k); ++ if (i < len) ++ i++; /* skip '\n' */ ++ } ++} ++ ++extern loff_t vfs_llseek(struct file *file, loff_t, int); ++extern ssize_t vfs_read(struct file *file, char __user *, size_t, loff_t *); ++extern struct file *filp_open(const char *filename, int flags, int mode); ++extern int filp_close(struct file *filp, fl_owner_t id); ++static void show_irq_list(void) ++{ ++ mm_segment_t fs; ++ int r; ++ ++ fs = get_fs(); ++ set_fs(KERNEL_DS); ++ vfs_llseek(intr_file, 0, 0); ++ r = vfs_read(intr_file, (void __user *)page, sizeof(page), ++ &intr_file->f_pos); ++ set_fs(fs); ++ ++ if (r > 0) ++ parse_irq_list(r); ++} ++ ++static void show_alloc_latency(void) ++{ ++ static const char *alloc_descr[KSTAT_ALLOCSTAT_NR] = { ++ "A0", ++ "L0", ++ "H0", ++ "L1", ++ "H1" ++ }; ++ int i; ++ ++ printk("lat: "); ++ for (i = 0; i < KSTAT_ALLOCSTAT_NR; i++) { ++ struct kstat_lat_struct *p; ++ cycles_t maxlat, avg0, avg1, avg2; ++ ++ p = &kstat_glob.alloc_lat[i]; ++ spin_lock_irq(&kstat_glb_lock); ++ maxlat = p->last.maxlat; ++ avg0 = p->avg[0]; ++ avg1 = p->avg[1]; ++ avg2 = p->avg[2]; ++ spin_unlock_irq(&kstat_glb_lock); ++ ++ printk("%s %Lu (%Lu %Lu %Lu)", ++ alloc_descr[i], ++ (unsigned long long)maxlat, ++ (unsigned long long)avg0, ++ (unsigned long long)avg1, ++ (unsigned long long)avg2); ++ } ++ printk("\n"); ++} ++ ++static void show_schedule_latency(void) ++{ ++ struct kstat_lat_pcpu_struct *p; ++ cycles_t maxlat, totlat, avg0, avg1, avg2; ++ unsigned long count; ++ ++ p = &kstat_glob.sched_lat; ++ spin_lock_irq(&kstat_glb_lock); ++ maxlat = p->last.maxlat; ++ totlat = p->last.totlat; ++ count = p->last.count; ++ avg0 = p->avg[0]; ++ avg1 = p->avg[1]; ++ avg2 = p->avg[2]; ++ spin_unlock_irq(&kstat_glb_lock); ++ ++ printk("sched lat: %Lu/%Lu/%lu (%Lu %Lu %Lu)\n", ++ (unsigned long long)maxlat, ++ (unsigned long long)totlat, ++ count, ++ (unsigned long long)avg0, ++ (unsigned long long)avg1, ++ (unsigned long long)avg2); ++} ++ ++static void show_header(void) ++{ ++ struct timeval tv; ++ ++ do_gettimeofday(&tv); ++ preempt_disable(); ++ printk("*** VZWDOG 1.14: time %lu.%06lu uptime %Lu CPU %d ***\n", ++ tv.tv_sec, (long)tv.tv_usec, ++ (unsigned long long)get_jiffies_64(), ++ smp_processor_id()); ++#ifdef CONFIG_FAIRSCHED ++ printk("*** cycles_per_jiffy %lu jiffies_per_second %u ***\n", ++ cycles_per_jiffy, HZ); ++#else ++ printk("*** jiffies_per_second %u ***\n", HZ); ++#endif ++ preempt_enable(); ++} ++ ++static void show_pgdatinfo(void) ++{ ++ pg_data_t *pgdat; ++ ++ printk("pgdat:"); ++ for_each_online_pgdat(pgdat) { ++ printk(" %d: %lu,%lu,%lu", ++ pgdat->node_id, ++ pgdat->node_start_pfn, ++ pgdat->node_present_pages, ++ pgdat->node_spanned_pages); ++#ifdef CONFIG_FLAT_NODE_MEM_MAP ++ printk(",%p", pgdat->node_mem_map); ++#endif ++ } ++ printk("\n"); ++} ++ ++static void show_diskio(void) ++{ ++ struct gendisk *gd; ++ char buf[BDEVNAME_SIZE]; ++ ++ printk("disk_io: "); ++ ++ list_for_each_entry(gd, &block_subsys.list, kobj.entry) { ++ char *name; ++ name = disk_name(gd, 0, buf); ++ if ((strlen(name) > 4) && (strncmp(name, "loop", 4) == 0) && ++ isdigit(name[4])) ++ continue; ++ if ((strlen(name) > 3) && (strncmp(name, "ram", 3) == 0) && ++ isdigit(name[3])) ++ continue; ++ printk("(%u,%u) %s r(%lu %lu %lu) w(%lu %lu %lu)\n", ++ gd->major, gd->first_minor, ++ name, ++ disk_stat_read(gd, ios[READ]), ++ disk_stat_read(gd, sectors[READ]), ++ disk_stat_read(gd, merges[READ]), ++ disk_stat_read(gd, ios[WRITE]), ++ disk_stat_read(gd, sectors[WRITE]), ++ disk_stat_read(gd, merges[WRITE])); ++ } ++ ++ printk("\n"); ++} ++ ++static void show_nrprocs(void) ++{ ++ unsigned long _nr_running, _nr_sleeping, ++ _nr_unint, _nr_zombie, _nr_dead, _nr_stopped; ++ ++ _nr_running = nr_running(); ++ _nr_unint = nr_uninterruptible(); ++ _nr_sleeping = nr_sleeping(); ++ _nr_zombie = nr_zombie; ++ _nr_dead = atomic_read(&nr_dead); ++ _nr_stopped = nr_stopped(); ++ ++ printk("VEnum: %d, proc R %lu, S %lu, D %lu, " ++ "Z %lu, X %lu, T %lu (tot %d)\n", ++ nr_ve, _nr_running, _nr_sleeping, _nr_unint, ++ _nr_zombie, _nr_dead, _nr_stopped, nr_threads); ++} ++ ++static void wdog_print(void) ++{ ++ show_header(); ++ show_irq_list(); ++ show_pgdatinfo(); ++ show_mem(); ++ show_diskio(); ++ show_schedule_latency(); ++ show_alloc_latency(); ++ show_nrprocs(); ++} ++ ++static int wdog_loop(void* data) ++{ ++ while (1) { ++ wdog_print(); ++ try_to_freeze(); ++ ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ if (kthread_should_stop()) ++ break; ++ schedule_timeout(sleep_timeout*HZ); ++ } ++ return 0; ++} ++ ++static int __init wdog_init(void) ++{ ++ struct file *file; ++ ++ file = filp_open("/proc/interrupts", 0, 0); ++ if (IS_ERR(file)) ++ return PTR_ERR(file); ++ intr_file = file; ++ ++ wdog_thread_tsk = kthread_run(wdog_loop, NULL, "vzwdog"); ++ if (IS_ERR(wdog_thread_tsk)) { ++ filp_close(intr_file, NULL); ++ return -EBUSY; ++ } ++ return 0; ++} ++ ++static void __exit wdog_exit(void) ++{ ++ kthread_stop(wdog_thread_tsk); ++ filp_close(intr_file, NULL); ++} ++ ++module_param(sleep_timeout, int, 0660); ++MODULE_AUTHOR("SWsoft "); ++MODULE_DESCRIPTION("Virtuozzo WDOG"); ++MODULE_LICENSE("GPL v2"); ++ ++module_init(wdog_init) ++module_exit(wdog_exit) +Index: kernel/lib/Kconfig.debug +=================================================================== +--- kernel.orig/lib/Kconfig.debug 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/lib/Kconfig.debug 2008-11-24 15:47:46.000000000 +0100 +@@ -79,6 +79,14 @@ + exported to $(INSTALL_HDR_PATH) (usually 'usr/include' in + your build tree), to make sure they're suitable. + ++config SYSRQ_DEBUG ++ bool "Debugging via sysrq keys" ++ depends on MAGIC_SYSRQ ++ help ++ Say Y if you want to extend functionality of magic key. It will ++ provide you with some debugging facilities such as dumping and ++ writing memory, resolving symbols and some other. ++ + config DEBUG_KERNEL + bool "Kernel debugging" + help +Index: kernel/lib/bust_spinlocks.c +=================================================================== +--- kernel.orig/lib/bust_spinlocks.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/lib/bust_spinlocks.c 2008-11-24 15:47:46.000000000 +0100 +@@ -12,10 +12,13 @@ + #include + #include + #include +- ++#include + + void __attribute__((weak)) bust_spinlocks(int yes) + { ++ if (printk_no_wake) ++ return; ++ + if (yes) { + ++oops_in_progress; + } else { +Index: kernel/lib/kobject.c +=================================================================== +--- kernel.orig/lib/kobject.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/lib/kobject.c 2008-11-24 15:47:46.000000000 +0100 +@@ -558,7 +558,7 @@ + INIT_LIST_HEAD(&k->list); + spin_lock_init(&k->list_lock); + } +- ++EXPORT_SYMBOL(kset_init); + + /** + * kset_add - add a kset object to the hierarchy. +@@ -632,6 +632,14 @@ + return ret; + } + ++/** ++ * subsystem_register - register a subsystem. ++ * @s: the subsystem we're registering. ++ * ++ * Once we register the subsystem, we want to make sure that ++ * the kset points back to this subsystem for correct usage of ++ * the rwsem. ++ */ + int subsystem_register(struct kset *s) + { + return kset_register(s); +Index: kernel/lib/kobject_uevent.c +=================================================================== +--- kernel.orig/lib/kobject_uevent.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/lib/kobject_uevent.c 2008-11-24 15:47:46.000000000 +0100 +@@ -36,6 +36,8 @@ + [KOBJ_REMOVE] = "remove", + [KOBJ_CHANGE] = "change", + [KOBJ_MOVE] = "move", ++ [KOBJ_START] = "start", ++ [KOBJ_STOP] = "stop", + [KOBJ_ONLINE] = "online", + [KOBJ_OFFLINE] = "offline", + }; +Index: kernel/mm/filemap.c +=================================================================== +--- kernel.orig/mm/filemap.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/filemap.c 2008-11-24 15:47:46.000000000 +0100 +@@ -42,6 +42,8 @@ + + #include + ++#include ++ + static ssize_t + generic_file_direct_IO(int rw, struct kiocb *iocb, const struct iovec *iov, + loff_t offset, unsigned long nr_segs); +@@ -121,6 +123,7 @@ + + radix_tree_delete(&mapping->page_tree, page->index); + page->mapping = NULL; ++ ub_io_release_debug(page); + mapping->nrpages--; + __dec_zone_page_state(page, NR_FILE_PAGES); + BUG_ON(page_mapped(page)); +Index: kernel/mm/filemap_xip.c +=================================================================== +--- kernel.orig/mm/filemap_xip.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/filemap_xip.c 2008-11-24 15:47:46.000000000 +0100 +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + /* + * We do use our own empty page to avoid interference with other users +@@ -195,6 +196,8 @@ + flush_cache_page(vma, address, pte_pfn(*pte)); + pteval = ptep_clear_flush(vma, address, pte); + page_remove_rmap(page, vma); ++ pb_remove_ref(page, mm); ++ ub_unused_privvm_inc(mm, vma); + dec_mm_counter(mm, file_rss); + BUG_ON(pte_dirty(pteval)); + pte_unmap_unlock(pte, ptl); +Index: kernel/mm/fremap.c +=================================================================== +--- kernel.orig/mm/fremap.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/fremap.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,6 +20,8 @@ + #include + #include + ++#include ++ + static void zap_pte(struct mm_struct *mm, struct vm_area_struct *vma, + unsigned long addr, pte_t *ptep) + { +@@ -35,6 +37,7 @@ + if (pte_dirty(pte)) + set_page_dirty(page); + page_remove_rmap(page, vma); ++ pb_remove_ref(page, mm); + page_cache_release(page); + update_hiwater_rss(mm); + dec_mm_counter(mm, file_rss); +@@ -61,8 +64,10 @@ + if (!pte) + goto out; + +- if (!pte_none(*pte)) ++ if (!pte_none(*pte)) { + zap_pte(mm, vma, addr, pte); ++ ub_unused_privvm_inc(mm, vma); ++ } + + set_pte_at(mm, addr, pte, pgoff_to_pte(pgoff)); + /* +@@ -237,4 +242,5 @@ + + return err; + } ++EXPORT_SYMBOL_GPL(sys_remap_file_pages); + +Index: kernel/mm/memory.c +=================================================================== +--- kernel.orig/mm/memory.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/memory.c 2008-11-24 15:47:46.000000000 +0100 +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -50,6 +51,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -60,6 +62,11 @@ + #include + #include + ++#include ++#include ++#include ++#include ++ + #ifndef CONFIG_NEED_MULTIPLE_NODES + /* use the per-pgdat data instead for discontigmem - mbligh */ + unsigned long max_mapnr; +@@ -103,18 +110,21 @@ + pgd_ERROR(*pgd); + pgd_clear(pgd); + } ++EXPORT_SYMBOL_GPL(pgd_clear_bad); + + void pud_clear_bad(pud_t *pud) + { + pud_ERROR(*pud); + pud_clear(pud); + } ++EXPORT_SYMBOL_GPL(pud_clear_bad); + + void pmd_clear_bad(pmd_t *pmd) + { + pmd_ERROR(*pmd); + pmd_clear(pmd); + } ++EXPORT_SYMBOL_GPL(pmd_clear_bad); + + /* + * Note: this doesn't free the actual pages themselves. That +@@ -314,6 +324,7 @@ + spin_unlock(&mm->page_table_lock); + return 0; + } ++EXPORT_SYMBOL_GPL(__pte_alloc); + + int __pte_alloc_kernel(pmd_t *pmd, unsigned long address) + { +@@ -414,6 +425,7 @@ + */ + return pfn_to_page(pfn); + } ++EXPORT_SYMBOL_GPL(vm_normal_page); + + /* + * copy one vm_area from one task to the other. Assumes the page tables +@@ -424,7 +436,7 @@ + static inline void + copy_one_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm, + pte_t *dst_pte, pte_t *src_pte, struct vm_area_struct *vma, +- unsigned long addr, int *rss) ++ unsigned long addr, int *rss, struct page_beancounter **pbc) + { + unsigned long vm_flags = vma->vm_flags; + pte_t pte = *src_pte; +@@ -479,6 +491,7 @@ + if (page) { + get_page(page); + page_dup_rmap(page, vma, addr); ++ pb_dup_ref(page, dst_mm, pbc); + rss[!!PageAnon(page)]++; + } + +@@ -486,20 +499,35 @@ + set_pte_at(dst_mm, addr, dst_pte, pte); + } + ++#define pte_ptrs(a) (PTRS_PER_PTE - ((a >> PAGE_SHIFT)&(PTRS_PER_PTE - 1))) ++#ifdef CONFIG_BEANCOUNTERS ++#define same_ub(mm1, mm2) ((mm1)->mm_ub == (mm2)->mm_ub) ++#else ++#define same_ub(mm1, mm2) 1 ++#endif ++ + static int copy_pte_range(struct mm_struct *dst_mm, struct mm_struct *src_mm, +- pmd_t *dst_pmd, pmd_t *src_pmd, struct vm_area_struct *vma, ++ pmd_t *dst_pmd, pmd_t *src_pmd, ++ struct vm_area_struct *dst_vma, ++ struct vm_area_struct *vma, + unsigned long addr, unsigned long end) + { + pte_t *src_pte, *dst_pte; + spinlock_t *src_ptl, *dst_ptl; + int progress = 0; +- int rss[2]; ++ int rss[2], rss_tot; ++ struct page_beancounter *pbc; ++ int err; + ++ err = -ENOMEM; ++ pbc = same_ub(src_mm, dst_mm) ? PBC_COPY_SAME : NULL; + again: ++ if (pbc != PBC_COPY_SAME && pb_alloc_list(&pbc, pte_ptrs(addr))) ++ goto out; + rss[1] = rss[0] = 0; + dst_pte = pte_alloc_map_lock(dst_mm, dst_pmd, addr, &dst_ptl); + if (!dst_pte) +- return -ENOMEM; ++ goto out; + src_pte = pte_offset_map_nested(src_pmd, addr); + src_ptl = pte_lockptr(src_mm, src_pmd); + spin_lock_nested(src_ptl, SINGLE_DEPTH_NESTING); +@@ -521,23 +549,32 @@ + progress++; + continue; + } +- copy_one_pte(dst_mm, src_mm, dst_pte, src_pte, vma, addr, rss); ++ copy_one_pte(dst_mm, src_mm, dst_pte, src_pte, vma, addr, rss, ++ &pbc); + progress += 8; + } while (dst_pte++, src_pte++, addr += PAGE_SIZE, addr != end); + + arch_leave_lazy_mmu_mode(); + spin_unlock(src_ptl); + pte_unmap_nested(src_pte - 1); ++ rss_tot = rss[0] + rss[1]; ++ ub_unused_privvm_sub(dst_mm, dst_vma, rss_tot); + add_mm_rss(dst_mm, rss[0], rss[1]); + pte_unmap_unlock(dst_pte - 1, dst_ptl); + cond_resched(); + if (addr != end) + goto again; +- return 0; ++ ++ err = 0; ++out: ++ pb_free_list(&pbc); ++ return err; + } + + static inline int copy_pmd_range(struct mm_struct *dst_mm, struct mm_struct *src_mm, +- pud_t *dst_pud, pud_t *src_pud, struct vm_area_struct *vma, ++ pud_t *dst_pud, pud_t *src_pud, ++ struct vm_area_struct *dst_vma, ++ struct vm_area_struct *vma, + unsigned long addr, unsigned long end) + { + pmd_t *src_pmd, *dst_pmd; +@@ -552,14 +589,16 @@ + if (pmd_none_or_clear_bad(src_pmd)) + continue; + if (copy_pte_range(dst_mm, src_mm, dst_pmd, src_pmd, +- vma, addr, next)) ++ dst_vma, vma, addr, next)) + return -ENOMEM; + } while (dst_pmd++, src_pmd++, addr = next, addr != end); + return 0; + } + + static inline int copy_pud_range(struct mm_struct *dst_mm, struct mm_struct *src_mm, +- pgd_t *dst_pgd, pgd_t *src_pgd, struct vm_area_struct *vma, ++ pgd_t *dst_pgd, pgd_t *src_pgd, ++ struct vm_area_struct *dst_vma, ++ struct vm_area_struct *vma, + unsigned long addr, unsigned long end) + { + pud_t *src_pud, *dst_pud; +@@ -574,19 +613,21 @@ + if (pud_none_or_clear_bad(src_pud)) + continue; + if (copy_pmd_range(dst_mm, src_mm, dst_pud, src_pud, +- vma, addr, next)) ++ dst_vma, vma, addr, next)) + return -ENOMEM; + } while (dst_pud++, src_pud++, addr = next, addr != end); + return 0; + } + +-int copy_page_range(struct mm_struct *dst_mm, struct mm_struct *src_mm, +- struct vm_area_struct *vma) ++int __copy_page_range(struct vm_area_struct *dst_vma, ++ struct vm_area_struct *vma, ++ unsigned long addr, size_t size) + { ++ struct mm_struct *dst_mm = dst_vma->vm_mm; ++ struct mm_struct *src_mm = vma->vm_mm; + pgd_t *src_pgd, *dst_pgd; + unsigned long next; +- unsigned long addr = vma->vm_start; +- unsigned long end = vma->vm_end; ++ unsigned long end = addr + size; + + /* + * Don't copy ptes where a page fault will fill them correctly. +@@ -609,11 +650,22 @@ + if (pgd_none_or_clear_bad(src_pgd)) + continue; + if (copy_pud_range(dst_mm, src_mm, dst_pgd, src_pgd, +- vma, addr, next)) ++ dst_vma, vma, addr, next)) + return -ENOMEM; + } while (dst_pgd++, src_pgd++, addr = next, addr != end); + return 0; + } ++EXPORT_SYMBOL_GPL(__copy_page_range); ++ ++int copy_page_range(struct mm_struct *dst, struct mm_struct *src, ++ struct vm_area_struct *dst_vma, struct vm_area_struct *vma) ++{ ++ if (dst_vma->vm_mm != dst) ++ BUG(); ++ if (vma->vm_mm != src) ++ BUG(); ++ return __copy_page_range(dst_vma, vma, vma->vm_start, vma->vm_end-vma->vm_start); ++} + + static unsigned long zap_pte_range(struct mmu_gather *tlb, + struct vm_area_struct *vma, pmd_t *pmd, +@@ -625,6 +677,7 @@ + spinlock_t *ptl; + int file_rss = 0; + int anon_rss = 0; ++ int rss; + + pte = pte_offset_map_lock(mm, pmd, addr, &ptl); + arch_enter_lazy_mmu_mode(); +@@ -679,6 +732,7 @@ + file_rss--; + } + page_remove_rmap(page, vma); ++ pb_remove_ref(page, mm); + tlb_remove_page(tlb, page); + continue; + } +@@ -693,6 +747,8 @@ + pte_clear_not_present_full(mm, addr, pte, tlb->fullmm); + } while (pte++, addr += PAGE_SIZE, (addr != end && *zap_work > 0)); + ++ rss = -(file_rss + anon_rss); ++ ub_unused_privvm_add(mm, vma, rss); + add_mm_rss(mm, file_rss, anon_rss); + arch_leave_lazy_mmu_mode(); + pte_unmap_unlock(pte - 1, ptl); +@@ -1581,6 +1637,7 @@ + int reuse = 0, ret = 0; + int page_mkwrite = 0; + struct page *dirty_page = NULL; ++ struct page_beancounter *pbc; + + old_page = vm_normal_page(vma, address, orig_pte); + if (!old_page) +@@ -1640,6 +1697,7 @@ + flush_cache_page(vma, address, pte_pfn(orig_pte)); + entry = pte_mkyoung(orig_pte); + entry = maybe_mkwrite(pte_mkdirty(entry), vma); ++ ClearPageCheckpointed(old_page); + if (ptep_set_access_flags(vma, address, page_table, entry,1)) + update_mmu_cache(vma, address, entry); + ret |= VM_FAULT_WRITE; +@@ -1653,6 +1711,9 @@ + gotten: + pte_unmap_unlock(page_table, ptl); + ++ if (unlikely(pb_alloc(&pbc))) ++ goto oom_nopb; ++ + if (unlikely(anon_vma_prepare(vma))) + goto oom; + VM_BUG_ON(old_page == ZERO_PAGE(0)); +@@ -1668,12 +1729,15 @@ + if (likely(pte_same(*page_table, orig_pte))) { + if (old_page) { + page_remove_rmap(old_page, vma); ++ pb_remove_ref(old_page, mm); + if (!PageAnon(old_page)) { + dec_mm_counter(mm, file_rss); + inc_mm_counter(mm, anon_rss); + } +- } else ++ } else { ++ ub_unused_privvm_dec(mm, vma); + inc_mm_counter(mm, anon_rss); ++ } + flush_cache_page(vma, address, pte_pfn(orig_pte)); + entry = mk_pte(new_page, vma->vm_page_prot); + entry = maybe_mkwrite(pte_mkdirty(entry), vma); +@@ -1688,6 +1752,7 @@ + update_mmu_cache(vma, address, entry); + lru_cache_add_active(new_page); + page_add_new_anon_rmap(new_page, vma, address); ++ pb_add_ref(new_page, mm, &pbc); + + /* Free the old page.. */ + new_page = old_page; +@@ -1697,6 +1762,7 @@ + page_cache_release(new_page); + if (old_page) + page_cache_release(old_page); ++ pb_free(&pbc); + unlock: + pte_unmap_unlock(page_table, ptl); + if (dirty_page) { +@@ -1717,6 +1783,8 @@ + } + return ret; + oom: ++ pb_free(&pbc); ++oom_nopb: + if (old_page) + page_cache_release(old_page); + return VM_FAULT_OOM; +@@ -2087,10 +2155,16 @@ + swp_entry_t entry; + pte_t pte; + int ret = 0; ++ struct page_beancounter *pbc; ++ cycles_t start; + + if (!pte_unmap_same(mm, pmd, page_table, orig_pte)) +- goto out; ++ goto out_nostat; ++ ++ if (unlikely(pb_alloc(&pbc))) ++ return VM_FAULT_OOM; + ++ start = get_cycles(); + entry = pte_to_swp_entry(orig_pte); + if (is_migration_entry(entry)) { + migration_entry_wait(mm, pmd, address); +@@ -2138,6 +2212,7 @@ + /* The page isn't present yet, go ahead with the fault. */ + + inc_mm_counter(mm, anon_rss); ++ ub_percpu_inc(mm->mm_ub, swapin); + pte = mk_pte(page, vma->vm_page_prot); + if (write_access && can_share_swap_page(page)) { + pte = maybe_mkwrite(pte_mkdirty(pte), vma); +@@ -2147,10 +2222,11 @@ + flush_icache_page(vma, page); + set_pte_at(mm, address, page_table, pte); + page_add_anon_rmap(page, vma, address); ++ pb_add_ref(page, mm, &pbc); ++ ub_unused_privvm_dec(mm, vma); + + swap_free(entry); +- if (vm_swap_full()) +- remove_exclusive_swap_page(page); ++ try_to_remove_exclusive_swap_page(page); + unlock_page(page); + + if (write_access) { +@@ -2166,9 +2242,15 @@ + unlock: + pte_unmap_unlock(page_table, ptl); + out: ++ pb_free(&pbc); ++ spin_lock_irq(&kstat_glb_lock); ++ KSTAT_LAT_ADD(&kstat_glob.swap_in, get_cycles() - start); ++ spin_unlock_irq(&kstat_glb_lock); ++out_nostat: + return ret; + out_nomap: + pte_unmap_unlock(page_table, ptl); ++ pb_free(&pbc); + unlock_page(page); + page_cache_release(page); + return ret; +@@ -2186,10 +2268,14 @@ + struct page *page; + spinlock_t *ptl; + pte_t entry; ++ struct page_beancounter *pbc; + + /* Allocate our own private page. */ + pte_unmap(page_table); + ++ if (unlikely(pb_alloc(&pbc))) ++ goto oom_nopb; ++ + if (unlikely(anon_vma_prepare(vma))) + goto oom; + page = alloc_zeroed_user_highpage_movable(vma, address); +@@ -2205,17 +2291,22 @@ + inc_mm_counter(mm, anon_rss); + lru_cache_add_active(page); + page_add_new_anon_rmap(page, vma, address); ++ pb_add_ref(page, mm, &pbc); ++ ub_unused_privvm_dec(mm, vma); + set_pte_at(mm, address, page_table, entry); + + /* No need to invalidate - it was non-present before */ + update_mmu_cache(vma, address, entry); + unlock: ++ pb_free(&pbc); + pte_unmap_unlock(page_table, ptl); + return 0; + release: + page_cache_release(page); + goto unlock; + oom: ++ pb_free(&pbc); ++oom_nopb: + return VM_FAULT_OOM; + } + +@@ -2242,6 +2333,7 @@ + pte_t entry; + int anon = 0; + struct page *dirty_page = NULL; ++ struct page_beancounter *pbc; + struct vm_fault vmf; + int ret; + int page_mkwrite = 0; +@@ -2253,6 +2345,9 @@ + + BUG_ON(vma->vm_flags & VM_PFNMAP); + ++ if (unlikely(pb_alloc(&pbc))) ++ goto oom_nopb; ++ + if (likely(vma->vm_ops->fault)) { + ret = vma->vm_ops->fault(vma, &vmf); + if (unlikely(ret & (VM_FAULT_ERROR | VM_FAULT_NOPAGE))) +@@ -2263,9 +2358,9 @@ + vmf.page = vma->vm_ops->nopage(vma, address & PAGE_MASK, &ret); + /* no page was available -- either SIGBUS or OOM */ + if (unlikely(vmf.page == NOPAGE_SIGBUS)) +- return VM_FAULT_SIGBUS; ++ goto bus_nopg; + else if (unlikely(vmf.page == NOPAGE_OOM)) +- return VM_FAULT_OOM; ++ goto oom_nopg; + } + + /* +@@ -2341,6 +2436,8 @@ + */ + /* Only go through if we didn't race with anybody else... */ + if (likely(pte_same(*page_table, orig_pte))) { ++ struct user_beancounter *ub; ++ + flush_icache_page(vma, page); + entry = mk_pte(page, vma->vm_page_prot); + if (flags & FAULT_FLAG_WRITE) +@@ -2358,6 +2455,25 @@ + get_page(dirty_page); + } + } ++ ub = page_ub(page); ++ if (ub != NULL && ++#ifdef CONFIG_BC_IO_ACCOUNTING ++ !((unsigned long)ub & PAGE_IO_MARK) && ++#endif ++ ub->ub_magic == UB_MAGIC) { ++ /* ++ * WOW: Page was already charged as page_ub. This may ++ * happens for example then some driver export its low ++ * memory pages to user space. We can't account page as ++ * page_ub and page_bp at the same time. So uncharge ++ * page from UB counter. ++ */ ++ WARN_ON_ONCE(1); ++ ub_page_uncharge(page, 0); ++ } ++ ++ pb_add_ref(page, mm, &pbc); ++ ub_unused_privvm_dec(mm, vma); + + /* no need to invalidate: a not-present page won't be cached */ + update_mmu_cache(vma, address, entry); +@@ -2382,8 +2498,15 @@ + set_page_dirty_balance(dirty_page, page_mkwrite); + put_page(dirty_page); + } +- ++ pb_free(&pbc); + return ret; ++bus_nopg: ++ pb_free(&pbc); ++ return VM_FAULT_SIGBUS; ++oom_nopg: ++ pb_free(&pbc); ++oom_nopb: ++ return VM_FAULT_OOM; + } + + static int do_linear_fault(struct mm_struct *mm, struct vm_area_struct *vma, +@@ -2561,6 +2684,27 @@ + pmd_t *pmd; + pte_t *pte; + ++#ifdef CONFIG_VZ_GENCALLS ++ do { ++ int ret; ++#ifdef CONFIG_BEANCOUNTERS ++ struct task_beancounter *tbc; ++ ++ tbc = ¤t->task_bc; ++ if (!test_bit(UB_AFLAG_NOTIF_PAGEIN, &mm->mm_ub->ub_aflags) && ++ tbc->pgfault_allot) { ++ tbc->pgfault_allot--; ++ break; /* skip notifier */ ++ } ++#endif ++ ret = virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_PAGEIN, ++ (void *)1); ++ if (ret & NOTIFY_FAIL) ++ return VM_FAULT_SIGBUS; ++ if (ret & NOTIFY_OK) ++ return VM_FAULT_MINOR; /* retry */ ++ } while (0); ++#endif + __set_current_state(TASK_RUNNING); + + count_vm_event(PGFAULT); +@@ -2603,6 +2747,8 @@ + } + #endif /* __PAGETABLE_PUD_FOLDED */ + ++EXPORT_SYMBOL_GPL(__pud_alloc); ++ + #ifndef __PAGETABLE_PMD_FOLDED + /* + * Allocate page middle directory. +@@ -2631,6 +2777,8 @@ + } + #endif /* __PAGETABLE_PMD_FOLDED */ + ++EXPORT_SYMBOL_GPL(__pmd_alloc); ++ + int make_pages_present(unsigned long addr, unsigned long end) + { + int ret, len, write; +@@ -2650,6 +2798,8 @@ + return ret == len ? 0 : -1; + } + ++EXPORT_SYMBOL(make_pages_present); ++ + /* + * Map a vmalloc()-space virtual address to the physical page. + */ +Index: kernel/mm/mempolicy.c +=================================================================== +--- kernel.orig/mm/mempolicy.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/mempolicy.c 2008-11-24 15:47:46.000000000 +0100 +@@ -89,6 +89,7 @@ + #include + #include + #include ++#include + + #include + #include +Index: kernel/mm/mempool.c +=================================================================== +--- kernel.orig/mm/mempool.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/mempool.c 2008-11-24 15:47:46.000000000 +0100 +@@ -77,6 +77,8 @@ + init_waitqueue_head(&pool->wait); + pool->alloc = alloc_fn; + pool->free = free_fn; ++ if (alloc_fn == mempool_alloc_slab) ++ kmem_mark_nocharge((struct kmem_cache *)pool_data); + + /* + * First pre-allocate the guaranteed number of buffers. +@@ -118,6 +120,7 @@ + unsigned long flags; + + BUG_ON(new_min_nr <= 0); ++ gfp_mask &= ~__GFP_UBC; + + spin_lock_irqsave(&pool->lock, flags); + if (new_min_nr <= pool->min_nr) { +@@ -211,6 +214,7 @@ + gfp_mask |= __GFP_NOMEMALLOC; /* don't allocate emergency reserves */ + gfp_mask |= __GFP_NORETRY; /* don't loop in __alloc_pages */ + gfp_mask |= __GFP_NOWARN; /* failures are OK */ ++ gfp_mask &= ~__GFP_UBC; + + gfp_temp = gfp_mask & ~(__GFP_WAIT|__GFP_IO); + +Index: kernel/mm/mlock.c +=================================================================== +--- kernel.orig/mm/mlock.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/mlock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -8,10 +8,12 @@ + #include + #include + #include ++#include + #include + #include + #include + #include ++#include + + int can_do_mlock(void) + { +@@ -36,6 +38,14 @@ + goto out; + } + ++ if (newflags & VM_LOCKED) { ++ ret = ub_locked_charge(mm, end - start); ++ if (ret < 0) { ++ *prev = vma; ++ goto out; ++ } ++ } ++ + pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT); + *prev = vma_merge(mm, *prev, start, end, newflags, vma->anon_vma, + vma->vm_file, pgoff, vma_policy(vma)); +@@ -49,13 +59,13 @@ + if (start != vma->vm_start) { + ret = split_vma(mm, vma, start, 1); + if (ret) +- goto out; ++ goto out_uncharge; + } + + if (end != vma->vm_end) { + ret = split_vma(mm, vma, end, 0); + if (ret) +- goto out; ++ goto out_uncharge; + } + + success: +@@ -74,13 +84,19 @@ + pages = -pages; + if (!(newflags & VM_IO)) + ret = make_pages_present(start, end); +- } ++ } else ++ ub_locked_uncharge(mm, end - start); + + mm->locked_vm -= pages; + out: + if (ret == -ENOMEM) + ret = -EAGAIN; + return ret; ++ ++out_uncharge: ++ if (newflags & VM_LOCKED) ++ ub_locked_uncharge(mm, end - start); ++ goto out; + } + + static int do_mlock(unsigned long start, size_t len, int on) +@@ -157,6 +173,7 @@ + up_write(¤t->mm->mmap_sem); + return error; + } ++EXPORT_SYMBOL_GPL(sys_mlock); + + asmlinkage long sys_munlock(unsigned long start, size_t len) + { +@@ -169,6 +186,7 @@ + up_write(¤t->mm->mmap_sem); + return ret; + } ++EXPORT_SYMBOL_GPL(sys_munlock); + + static int do_mlockall(int flags) + { +Index: kernel/mm/mmap.c +=================================================================== +--- kernel.orig/mm/mmap.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/mmap.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -36,9 +38,12 @@ + #define arch_mmap_check(addr, len, flags) (0) + #endif + ++#include ++ + static void unmap_region(struct mm_struct *mm, + struct vm_area_struct *vma, struct vm_area_struct *prev, + unsigned long start, unsigned long end); ++static unsigned long __do_brk(unsigned long addr, unsigned long len, int soft); + + /* + * WARNING: the debugging will use recursive algorithms so never enable this +@@ -100,6 +105,18 @@ + + vm_acct_memory(pages); + ++#ifdef CONFIG_BEANCOUNTERS ++ switch (virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_ENOUGHMEM, ++ (void *)pages) ++ & (NOTIFY_OK | NOTIFY_FAIL)) { ++ case NOTIFY_OK: ++ return 0; ++ case NOTIFY_FAIL: ++ vm_unacct_memory(pages); ++ return -ENOMEM; ++ } ++#endif ++ + /* + * Sometimes we want to use more memory than we have + */ +@@ -224,6 +241,9 @@ + struct vm_area_struct *next = vma->vm_next; + + might_sleep(); ++ ++ ub_memory_uncharge(vma->vm_mm, vma->vm_end - vma->vm_start, ++ vma->vm_flags, vma->vm_file); + if (vma->vm_ops && vma->vm_ops->close) + vma->vm_ops->close(vma); + if (vma->vm_file) +@@ -271,7 +291,7 @@ + goto out; + + /* Ok, looks good - let it rip. */ +- if (do_brk(oldbrk, newbrk-oldbrk) != oldbrk) ++ if (__do_brk(oldbrk, newbrk-oldbrk, UB_HARD) != oldbrk) + goto out; + set_brk: + mm->brk = brk; +@@ -910,7 +930,7 @@ + prot |= PROT_EXEC; + + if (!len) +- return -EINVAL; ++ return addr; + + if (!(flags & MAP_FIXED)) + addr = round_hint_to_min(addr); +@@ -1026,6 +1046,9 @@ + if (error) + return error; + ++ if (!gr_acl_handle_mmap(file, prot)) ++ return -EACCES; ++ + return mmap_region(file, addr, len, flags, vm_flags, pgoff, + accountable); + } +@@ -1076,6 +1099,7 @@ + struct rb_node **rb_link, *rb_parent; + unsigned long charged = 0; + struct inode *inode = file ? file->f_path.dentry->d_inode : NULL; ++ unsigned long ub_charged = 0; + + /* Clear old maps */ + error = -ENOMEM; +@@ -1107,6 +1131,11 @@ + } + } + ++ if (ub_memory_charge(mm, len, vm_flags, file, ++ (flags & MAP_EXECPRIO ? UB_SOFT : UB_HARD))) ++ goto charge_error; ++ ub_charged = 1; ++ + /* + * Can we just expand an old private anonymous mapping? + * The VM_SHARED test is necessary because shmem_zero_setup +@@ -1122,7 +1151,8 @@ + * specific mapper. the address has already been validated, but + * not unmapped, but the maps are removed from the list. + */ +- vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); ++ vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL | ++ (flags & MAP_EXECPRIO ? __GFP_SOFT_UBC : 0)); + if (!vma) { + error = -ENOMEM; + goto unacct_error; +@@ -1150,6 +1180,19 @@ + error = file->f_op->mmap(file, vma); + if (error) + goto unmap_and_free_vma; ++ if (vm_flags != vma->vm_flags) { ++ /* ++ * ->vm_flags has been changed in f_op->mmap method. ++ * We have to recharge ub memory. ++ */ ++ ub_memory_uncharge(mm, len, vm_flags, file); ++ if (ub_memory_charge(mm, len, vma->vm_flags, file, ++ (flags & MAP_EXECPRIO ? UB_SOFT : UB_HARD))) { ++ ub_charged = 0; ++ error = -ENOMEM; ++ goto unmap_and_free_vma; ++ } ++ } + } else if (vm_flags & VM_SHARED) { + error = shmem_zero_setup(vma); + if (error) +@@ -1214,6 +1257,9 @@ + free_vma: + kmem_cache_free(vm_area_cachep, vma); + unacct_error: ++ if (ub_charged) ++ ub_memory_uncharge(mm, len, vm_flags, file); ++charge_error: + if (charged) + vm_unacct_memory(charged); + return error; +@@ -1536,12 +1582,16 @@ + if (is_hugepage_only_range(vma->vm_mm, new_start, size)) + return -EFAULT; + ++ if (ub_memory_charge(mm, grow << PAGE_SHIFT, vma->vm_flags, ++ vma->vm_file, UB_SOFT)) ++ goto fail_charge; ++ + /* + * Overcommit.. This must be the final test, as it will + * update security statistics. + */ + if (security_vm_enough_memory(grow)) +- return -ENOMEM; ++ goto fail_sec; + + /* Ok, everything looks good - let it rip */ + mm->total_vm += grow; +@@ -1549,6 +1599,11 @@ + mm->locked_vm += grow; + vm_stat_account(mm, vma->vm_flags, vma->vm_file, grow); + return 0; ++ ++fail_sec: ++ ub_memory_uncharge(mm, grow << PAGE_SHIFT, vma->vm_flags, vma->vm_file); ++fail_charge: ++ return -ENOMEM; + } + + #if defined(CONFIG_STACK_GROWSUP) || defined(CONFIG_IA64) +@@ -1829,6 +1884,7 @@ + + return 0; + } ++EXPORT_SYMBOL_GPL(split_vma); + + /* Munmap is split into 2 main parts -- this part which finds + * what needs doing, and the areas themselves, which do the +@@ -1922,7 +1978,7 @@ + * anonymous maps. eventually we may be able to do some + * brk-specific accounting here. + */ +-unsigned long do_brk(unsigned long addr, unsigned long len) ++static unsigned long __do_brk(unsigned long addr, unsigned long len, int soft) + { + struct mm_struct * mm = current->mm; + struct vm_area_struct * vma, * prev; +@@ -1988,8 +2044,11 @@ + if (mm->map_count > sysctl_max_map_count) + return -ENOMEM; + ++ if (ub_memory_charge(mm, len, flags, NULL, soft)) ++ goto fail_charge; ++ + if (security_vm_enough_memory(len >> PAGE_SHIFT)) +- return -ENOMEM; ++ goto fail_sec; + + /* Can we just expand an old private anonymous mapping? */ + if (vma_merge(mm, prev, addr, addr + len, flags, +@@ -1999,11 +2058,10 @@ + /* + * create a vma struct for an anonymous mapping + */ +- vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); +- if (!vma) { +- vm_unacct_memory(len >> PAGE_SHIFT); +- return -ENOMEM; +- } ++ vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL | ++ (soft == UB_SOFT ? __GFP_SOFT_UBC : 0)); ++ if (!vma) ++ goto fail_alloc; + + vma->vm_mm = mm; + vma->vm_start = addr; +@@ -2019,8 +2077,19 @@ + make_pages_present(addr, addr + len); + } + return addr; ++ ++fail_alloc: ++ vm_unacct_memory(len >> PAGE_SHIFT); ++fail_sec: ++ ub_memory_uncharge(mm, len, flags, NULL); ++fail_charge: ++ return -ENOMEM; + } + ++unsigned long do_brk(unsigned long addr, unsigned long len) ++{ ++ return __do_brk(addr, len, UB_SOFT); ++} + EXPORT_SYMBOL(do_brk); + + /* Release all mmaps. */ +@@ -2187,10 +2256,11 @@ + { + } + +-static struct vm_operations_struct special_mapping_vmops = { ++struct vm_operations_struct special_mapping_vmops = { + .close = special_mapping_close, + .nopage = special_mapping_nopage, + }; ++EXPORT_SYMBOL_GPL(special_mapping_vmops); + + /* + * Called with mm->mmap_sem held for writing. +Index: kernel/mm/mmzone.c +=================================================================== +--- kernel.orig/mm/mmzone.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/mmzone.c 2008-11-24 15:47:46.000000000 +0100 +@@ -13,6 +13,7 @@ + { + return NODE_DATA(first_online_node); + } ++EXPORT_SYMBOL(first_online_pgdat); /* June 2006 */ + + struct pglist_data *next_online_pgdat(struct pglist_data *pgdat) + { +@@ -22,6 +23,7 @@ + return NULL; + return NODE_DATA(nid); + } ++EXPORT_SYMBOL(next_online_pgdat); /* June 2006 */ + + /* + * next_zone - helper magic for for_each_zone() +Index: kernel/mm/mprotect.c +=================================================================== +--- kernel.orig/mm/mprotect.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/mprotect.c 2008-11-24 15:47:46.000000000 +0100 +@@ -9,6 +9,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -21,11 +22,14 @@ + #include + #include + #include ++#include + #include + #include + #include + #include + ++#include ++ + static void change_pte_range(struct mm_struct *mm, pmd_t *pmd, + unsigned long addr, unsigned long end, pgprot_t newprot, + int dirty_accountable) +@@ -137,6 +141,8 @@ + unsigned long charged = 0; + pgoff_t pgoff; + int error; ++ unsigned long ch_size; ++ int ch_dir; + int dirty_accountable = 0; + + if (newflags == oldflags) { +@@ -144,6 +150,12 @@ + return 0; + } + ++ error = -ENOMEM; ++ ch_size = nrpages - pages_in_vma_range(vma, start, end); ++ ch_dir = ub_protected_charge(mm, ch_size, newflags, vma); ++ if (ch_dir == PRIVVM_ERROR) ++ goto fail_ch; ++ + /* + * If we make a private mapping writable we increase our commit; + * but (without finer accounting) cannot reduce our commit if we +@@ -156,7 +168,7 @@ + if (!(oldflags & (VM_ACCOUNT|VM_WRITE|VM_SHARED))) { + charged = nrpages; + if (security_vm_enough_memory(charged)) +- return -ENOMEM; ++ goto fail_sec; + newflags |= VM_ACCOUNT; + } + } +@@ -204,10 +216,16 @@ + change_protection(vma, start, end, vma->vm_page_prot, dirty_accountable); + vm_stat_account(mm, oldflags, vma->vm_file, -nrpages); + vm_stat_account(mm, newflags, vma->vm_file, nrpages); ++ if (ch_dir == PRIVVM_TO_SHARED) ++ __ub_unused_privvm_dec(mm, ch_size); + return 0; + + fail: + vm_unacct_memory(charged); ++fail_sec: ++ if (ch_dir == PRIVVM_TO_PRIVATE) ++ __ub_unused_privvm_dec(mm, ch_size); ++fail_ch: + return error; + } + +@@ -269,6 +287,11 @@ + if (start > vma->vm_start) + prev = vma; + ++ if (!gr_acl_handle_mprotect(vma->vm_file, prot)) { ++ error = -EACCES; ++ goto out; ++ } ++ + for (nstart = start ; ; ) { + unsigned long newflags; + +@@ -309,3 +332,4 @@ + up_write(¤t->mm->mmap_sem); + return error; + } ++EXPORT_SYMBOL_GPL(sys_mprotect); +Index: kernel/mm/mremap.c +=================================================================== +--- kernel.orig/mm/mremap.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/mremap.c 2008-11-24 15:47:46.000000000 +0100 +@@ -23,6 +23,8 @@ + #include + #include + ++#include ++ + static pmd_t *get_old_pmd(struct mm_struct *mm, unsigned long addr) + { + pgd_t *pgd; +@@ -167,17 +169,21 @@ + unsigned long hiwater_vm; + int split = 0; + ++ if (ub_memory_charge(mm, new_len, vm_flags, ++ vma->vm_file, UB_HARD)) ++ goto err; ++ + /* + * We'd prefer to avoid failure later on in do_munmap: + * which may split one vma into three before unmapping. + */ + if (mm->map_count >= sysctl_max_map_count - 3) +- return -ENOMEM; ++ goto err_nomem; + + new_pgoff = vma->vm_pgoff + ((old_addr - vma->vm_start) >> PAGE_SHIFT); + new_vma = copy_vma(&vma, new_addr, new_len, new_pgoff); + if (!new_vma) +- return -ENOMEM; ++ goto err_nomem; + + moved_len = move_page_tables(vma, old_addr, new_vma, new_addr, old_len); + if (moved_len < old_len) { +@@ -236,7 +242,13 @@ + new_addr + new_len); + } + +- return new_addr; ++ if (new_addr != -ENOMEM) ++ return new_addr; ++ ++err_nomem: ++ ub_memory_uncharge(mm, new_len, vm_flags, vma->vm_file); ++err: ++ return -ENOMEM; + } + + /* +@@ -364,7 +376,15 @@ + max_addr = vma->vm_next->vm_start; + /* can we just expand the current mapping? */ + if (max_addr - addr >= new_len) { +- int pages = (new_len - old_len) >> PAGE_SHIFT; ++ unsigned long len; ++ int pages; ++ ++ len = new_len - old_len; ++ pages = len >> PAGE_SHIFT; ++ ret = -ENOMEM; ++ if (ub_memory_charge(mm, len, vma->vm_flags, ++ vma->vm_file, UB_HARD)) ++ goto out; + + vma_adjust(vma, vma->vm_start, + addr + new_len, vma->vm_pgoff, NULL); +Index: kernel/mm/oom_kill.c +=================================================================== +--- kernel.orig/mm/oom_kill.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/oom_kill.c 2008-11-24 15:47:46.000000000 +0100 +@@ -19,6 +19,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -26,6 +28,9 @@ + #include + #include + ++#include ++#include ++ + int sysctl_panic_on_oom; + int sysctl_oom_kill_allocating_task; + static DEFINE_SPINLOCK(zone_scan_mutex); +@@ -194,15 +199,15 @@ + * + * (not docbooked, we don't want this one cluttering up the manual) + */ +-static struct task_struct *select_bad_process(unsigned long *ppoints) ++struct task_struct *oom_select_bad_process(struct user_beancounter *ub) + { + struct task_struct *g, *p; + struct task_struct *chosen = NULL; + struct timespec uptime; +- *ppoints = 0; ++ unsigned long chosen_points = 0; + + do_posix_clock_monotonic_gettime(&uptime); +- do_each_thread(g, p) { ++ do_each_thread_all(g, p) { + unsigned long points; + + /* +@@ -214,6 +219,8 @@ + /* skip the init task */ + if (is_global_init(p)) + continue; ++ if (ub_oom_task_skip(ub, p)) ++ continue; + + /* + * This task already has access to memory reserves and is +@@ -242,18 +249,18 @@ + return ERR_PTR(-1UL); + + chosen = p; +- *ppoints = ULONG_MAX; ++ chosen_points = ULONG_MAX; + } + + if (p->oomkilladj == OOM_DISABLE) + continue; + + points = badness(p, uptime.tv_sec); +- if (points > *ppoints || !chosen) { ++ if (points > chosen_points || !chosen) { + chosen = p; +- *ppoints = points; ++ chosen_points = points; + } +- } while_each_thread(g, p); ++ } while_each_thread_all(g, p); + + return chosen; + } +@@ -290,13 +297,16 @@ + set_tsk_thread_flag(p, TIF_MEMDIE); + + force_sig(SIGKILL, p); ++ ub_oom_task_killed(p); + } + + static int oom_kill_task(struct task_struct *p) + { + struct mm_struct *mm; ++ struct user_beancounter *ub; + struct task_struct *g, *q; + ++ task_lock(p); + mm = p->mm; + + /* WARNING: mm may not be dereferenced since we did not obtain its +@@ -308,16 +318,21 @@ + * However, this is of no concern to us. + */ + +- if (mm == NULL) ++ if (mm == NULL) { ++ task_unlock(p); + return 1; ++ } ++ ++ ub = get_beancounter(mm_ub(mm)); ++ task_unlock(p); + + /* + * Don't kill the process if any threads are set to OOM_DISABLE + */ +- do_each_thread(g, q) { ++ do_each_thread_all(g, q) { + if (q->mm == mm && q->oomkilladj == OOM_DISABLE) + return 1; +- } while_each_thread(g, q); ++ } while_each_thread_all(g, q); + + __oom_kill_task(p, 1); + +@@ -326,16 +341,18 @@ + * but are in a different thread group. Don't let them have access + * to memory reserves though, otherwise we might deplete all memory. + */ +- do_each_thread(g, q) { ++ do_each_thread_all(g, q) { + if (q->mm == mm && !same_thread_group(q, p)) + force_sig(SIGKILL, q); +- } while_each_thread(g, q); ++ } while_each_thread_all(g, q); + ++ ub_oom_mm_killed(ub); ++ put_beancounter(ub); + return 0; + } + +-static int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, +- unsigned long points, const char *message) ++int oom_kill_process(struct task_struct *p, gfp_t gfp_mask, int order, ++ const char *message) + { + struct task_struct *c; + +@@ -356,8 +373,8 @@ + return 0; + } + +- printk(KERN_ERR "%s: kill process %d (%s) score %li or a child\n", +- message, task_pid_nr(p), p->comm, points); ++ printk(KERN_ERR "%s: kill process %d (%s) or a child\n", ++ message, task_pid_nr(p), p->comm); + + /* Try to kill a child first */ + list_for_each_entry(c, &p->children, sibling) { +@@ -445,9 +462,9 @@ + void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order) + { + struct task_struct *p; +- unsigned long points = 0; + unsigned long freed = 0; + enum oom_constraint constraint; ++ struct user_beancounter *ub; + + blocking_notifier_call_chain(&oom_notify_list, 0, &freed); + if (freed > 0) +@@ -457,16 +474,34 @@ + if (sysctl_panic_on_oom == 2) + panic("out of memory. Compulsory panic_on_oom is selected.\n"); + ++ if (virtinfo_notifier_call(VITYPE_GENERAL, VIRTINFO_OUTOFMEM, NULL) ++ & (NOTIFY_OK | NOTIFY_FAIL)) ++ return; ++ ++ ub = NULL; ++ if (ub_oom_lock()) ++ goto out_oom_lock; ++ ++ read_lock(&tasklist_lock); ++ ++ if (printk_ratelimit()) { ++ printk(KERN_WARNING "%s invoked oom-killer: " ++ "gfp_mask=0x%x, order=%d, oomkilladj=%d\n", ++ current->comm, gfp_mask, order, current->oomkilladj); ++ dump_stack(); ++ show_mem(); ++ show_slab_info(); ++ } ++ + /* + * Check if there were limitations on the allocation (only relevant for + * NUMA) that may require different handling. + */ + constraint = constrained_alloc(zonelist, gfp_mask); +- read_lock(&tasklist_lock); + + switch (constraint) { + case CONSTRAINT_MEMORY_POLICY: +- oom_kill_process(current, gfp_mask, order, points, ++ oom_kill_process(current, gfp_mask, order, + "No available memory (MPOL_BIND)"); + break; + +@@ -476,27 +511,33 @@ + /* Fall-through */ + case CONSTRAINT_CPUSET: + if (sysctl_oom_kill_allocating_task) { +- oom_kill_process(current, gfp_mask, order, points, ++ oom_kill_process(current, gfp_mask, order, + "Out of memory (oom_kill_allocating_task)"); + break; + } + retry: ++ put_beancounter(ub); ++ + /* + * Rambo mode: Shoot down a process and hope it solves whatever + * issues we may have. + */ +- p = select_bad_process(&points); ++ ub = ub_oom_select_worst(); ++ p = oom_select_bad_process(ub); + + if (PTR_ERR(p) == -1UL) + goto out; + + /* Found nothing?!?! Either we hang forever, or we panic. */ + if (!p) { ++ if (ub != NULL) ++ goto retry; + read_unlock(&tasklist_lock); ++ ub_oom_unlock(); + panic("Out of memory and no killable processes...\n"); + } + +- if (oom_kill_process(p, gfp_mask, order, points, ++ if (oom_kill_process(p, gfp_mask, order, + "Out of memory")) + goto retry; + +@@ -505,7 +546,10 @@ + + out: + read_unlock(&tasklist_lock); ++ ub_oom_unlock(); ++ put_beancounter(ub); + ++out_oom_lock: + /* + * Give "p" a good chance of killing itself before we + * retry to allocate memory unless "p" is current +Index: kernel/mm/page-writeback.c +=================================================================== +--- kernel.orig/mm/page-writeback.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/page-writeback.c 2008-11-24 15:47:46.000000000 +0100 +@@ -35,6 +35,9 @@ + #include + #include + ++#include ++#include ++ + /* + * The maximum number of pages to writeout in a single bdflush/kupdate + * operation. We do this so we don't hold I_SYNC against an inode for +@@ -822,6 +825,7 @@ + scanned = 1; + for (i = 0; i < nr_pages; i++) { + struct page *page = pvec.pages[i]; ++ struct user_beancounter *old_ub; + + /* + * At this point we hold neither mapping->tree_lock nor +@@ -852,7 +856,9 @@ + continue; + } + ++ old_ub = bc_io_switch_context(page); + ret = (*writepage)(page, wbc, data); ++ bc_io_restore_context(old_ub); + + if (unlikely(ret == AOP_WRITEPAGE_ACTIVATE)) { + unlock_page(page); +@@ -948,12 +954,15 @@ + .sync_mode = WB_SYNC_ALL, + .nr_to_write = 1, + }; ++ struct user_beancounter *old_ub; + + BUG_ON(!PageLocked(page)); + + if (wait) + wait_on_page_writeback(page); + ++ old_ub = bc_io_switch_context(page); ++ + if (clear_page_dirty_for_io(page)) { + page_cache_get(page); + ret = mapping->a_ops->writepage(page, &wbc); +@@ -966,6 +975,9 @@ + } else { + unlock_page(page); + } ++ ++ bc_io_restore_context(old_ub); ++ + return ret; + } + EXPORT_SYMBOL(write_one_page); +@@ -997,6 +1009,9 @@ + */ + int __set_page_dirty_nobuffers(struct page *page) + { ++ int acct; ++ ++ acct = 0; + if (!TestSetPageDirty(page)) { + struct address_space *mapping = page_mapping(page); + struct address_space *mapping2; +@@ -1004,6 +1019,7 @@ + if (!mapping) + return 1; + ++ acct = 0; + write_lock_irq(&mapping->tree_lock); + mapping2 = page_mapping(page); + if (mapping2) { /* Race with truncate? */ +@@ -1013,12 +1029,14 @@ + __inc_zone_page_state(page, NR_FILE_DIRTY); + __inc_bdi_stat(mapping->backing_dev_info, + BDI_RECLAIMABLE); +- task_io_account_write(PAGE_CACHE_SIZE); ++ acct = 1; + } + radix_tree_tag_set(&mapping->page_tree, + page_index(page), PAGECACHE_TAG_DIRTY); + } + write_unlock_irq(&mapping->tree_lock); ++ if (acct) ++ task_io_account_write(page, PAGE_CACHE_SIZE, 0); + if (mapping->host) { + /* !PageAnon && !swapper_space */ + __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); +@@ -1157,6 +1175,7 @@ + dec_zone_page_state(page, NR_FILE_DIRTY); + dec_bdi_stat(mapping->backing_dev_info, + BDI_RECLAIMABLE); ++ ub_io_release_context(page, PAGE_CACHE_SIZE); + return 1; + } + return 0; +Index: kernel/mm/page_alloc.c +=================================================================== +--- kernel.orig/mm/page_alloc.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/page_alloc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -48,6 +48,9 @@ + #include + #include "internal.h" + ++#include ++#include ++ + /* + * Array of node states. + */ +@@ -99,6 +102,7 @@ + 32, + }; + ++EXPORT_SYMBOL(nr_swap_pages); + EXPORT_SYMBOL(totalram_pages); + + static char * const zone_names[MAX_NR_ZONES] = { +@@ -464,8 +468,11 @@ + 1 << PG_reserved | + 1 << PG_buddy )))) + bad_page(page); +- if (PageDirty(page)) ++ if (PageDirty(page)) { ++ ub_io_release_context(page, 0); + __ClearPageDirty(page); ++ } else ++ ub_io_release_debug(page); + /* + * For now, we report if PG_reserved was found set, but do not + * clear it, and do not free the page. But we shall soon need +@@ -528,6 +535,7 @@ + arch_free_page(page, order); + kernel_map_pages(page, 1 << order, 0); + ++ ub_page_uncharge(page, order); + local_irq_save(flags); + __count_vm_events(PGFREE, 1 << order); + free_one_page(page_zone(page), page, order); +@@ -624,7 +632,8 @@ + + page->flags &= ~(1 << PG_uptodate | 1 << PG_error | 1 << PG_readahead | + 1 << PG_referenced | 1 << PG_arch_1 | +- 1 << PG_owner_priv_1 | 1 << PG_mappedtodisk); ++ 1 << PG_owner_priv_1 | 1 << PG_mappedtodisk | ++ 1 << PG_checkpointed); + set_page_private(page, 0); + set_page_refcounted(page); + +@@ -1002,6 +1011,7 @@ + kernel_map_pages(page, 1, 0); + + pcp = &zone_pcp(zone, get_cpu())->pcp[cold]; ++ ub_page_uncharge(page, 0); + local_irq_save(flags); + __count_vm_event(PGFREE); + list_add(&page->lru, &pcp->list); +@@ -1448,6 +1458,31 @@ + return page; + } + ++extern unsigned long cycles_per_jiffy; ++static void __alloc_collect_stats(gfp_t gfp_mask, unsigned int order, ++ struct page *page, cycles_t time) ++{ ++#ifdef CONFIG_VE ++ int ind; ++ unsigned long flags; ++ ++ time = (jiffies - time) * cycles_per_jiffy; ++ if (!(gfp_mask & __GFP_WAIT)) ++ ind = 0; ++ else if (!(gfp_mask & __GFP_HIGHMEM)) ++ ind = (order > 0 ? 2 : 1); ++ else ++ ind = (order > 0 ? 4 : 3); ++ spin_lock_irqsave(&kstat_glb_lock, flags); ++ KSTAT_LAT_ADD(&kstat_glob.alloc_lat[ind], time); ++ if (!page) ++ kstat_glob.alloc_fails[ind]++; ++ spin_unlock_irqrestore(&kstat_glb_lock, flags); ++#endif ++} ++ ++int alloc_fail_warn; ++ + /* + * This is the 'heart' of the zoned buddy allocator. + */ +@@ -1463,6 +1498,7 @@ + int do_retry; + int alloc_flags; + int did_some_progress; ++ cycles_t start; + + might_sleep_if(wait); + +@@ -1480,6 +1516,7 @@ + return NULL; + } + ++ start = jiffies; + page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, order, + zonelist, ALLOC_WMARK_LOW|ALLOC_CPUSET); + if (page) +@@ -1622,19 +1659,32 @@ + do_retry = 1; + } + if (do_retry) { ++ if (total_swap_pages > 0 && nr_swap_pages == 0) { ++ out_of_memory(zonelist, gfp_mask, order); ++ goto restart; ++ } + congestion_wait(WRITE, HZ/50); + goto rebalance; + } + + nopage: +- if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit()) { ++ __alloc_collect_stats(gfp_mask, order, NULL, start); ++ if (alloc_fail_warn && !(gfp_mask & __GFP_NOWARN) && ++ printk_ratelimit()) { + printk(KERN_WARNING "%s: page allocation failure." + " order:%d, mode:0x%x\n", + p->comm, order, gfp_mask); + dump_stack(); + show_mem(); + } ++ return NULL; ++ + got_pg: ++ __alloc_collect_stats(gfp_mask, order, page, start); ++ if (ub_page_charge(page, order, gfp_mask)) { ++ __free_pages(page, order); ++ page = NULL; ++ } + return page; + } + +@@ -1702,6 +1752,18 @@ + + EXPORT_SYMBOL(free_pages); + ++unsigned int nr_free_lowpages (void) ++{ ++ pg_data_t *pgdat; ++ unsigned int pages = 0; ++ ++ for_each_online_pgdat(pgdat) ++ pages += zone_page_state(&pgdat->node_zones[ZONE_NORMAL], NR_FREE_PAGES); ++ ++ return pages; ++} ++EXPORT_SYMBOL(nr_free_lowpages); ++ + static unsigned int nr_free_zone_pages(int offset) + { + /* Just pick one node, since fallback list is circular */ +Index: kernel/mm/rmap.c +=================================================================== +--- kernel.orig/mm/rmap.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/rmap.c 2008-11-24 15:47:46.000000000 +0100 +@@ -50,6 +50,9 @@ + #include + #include + ++#include ++#include ++ + #include + + struct kmem_cache *anon_vma_cachep; +@@ -93,6 +96,7 @@ + } + return 0; + } ++EXPORT_SYMBOL_GPL(anon_vma_prepare); + + void __anon_vma_merge(struct vm_area_struct *vma, struct vm_area_struct *next) + { +@@ -118,6 +122,7 @@ + spin_unlock(&anon_vma->lock); + } + } ++EXPORT_SYMBOL_GPL(anon_vma_link); + + void anon_vma_unlink(struct vm_area_struct *vma) + { +@@ -149,14 +154,14 @@ + void __init anon_vma_init(void) + { + anon_vma_cachep = kmem_cache_create("anon_vma", sizeof(struct anon_vma), +- 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC, anon_vma_ctor); ++ 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_UBC, anon_vma_ctor); + } + + /* + * Getting a lock on a stable anon_vma from a page off the LRU is + * tricky: page_lock_anon_vma rely on RCU to guard against the races. + */ +-static struct anon_vma *page_lock_anon_vma(struct page *page) ++struct anon_vma *page_lock_anon_vma(struct page *page) + { + struct anon_vma *anon_vma; + unsigned long anon_mapping; +@@ -175,12 +180,14 @@ + rcu_read_unlock(); + return NULL; + } ++EXPORT_SYMBOL_GPL(page_lock_anon_vma); + +-static void page_unlock_anon_vma(struct anon_vma *anon_vma) ++void page_unlock_anon_vma(struct anon_vma *anon_vma) + { + spin_unlock(&anon_vma->lock); + rcu_read_unlock(); + } ++EXPORT_SYMBOL_GPL(page_unlock_anon_vma); + + /* + * At what user virtual address is page expected in @vma? +@@ -644,6 +651,13 @@ + page_clear_dirty(page); + set_page_dirty(page); + } ++ ++ /* ++ * Well, when a page is unmapped, we cannot keep PG_checkpointed ++ * flag, it is not accessible via process VM and we have no way ++ * to reset its state ++ */ ++ ClearPageCheckpointed(page); + __dec_zone_page_state(page, + PageAnon(page) ? NR_ANON_PAGES : NR_FILE_MAPPED); + } +@@ -735,6 +749,9 @@ + + + page_remove_rmap(page, vma); ++ ub_unused_privvm_inc(mm, vma); ++ ub_percpu_inc(mm->mm_ub, unmap); ++ pb_remove_ref(page, mm); + page_cache_release(page); + + out_unmap: +@@ -825,6 +842,9 @@ + set_page_dirty(page); + + page_remove_rmap(page, vma); ++ ub_percpu_inc(mm->mm_ub, unmap); ++ pb_remove_ref(page, mm); ++ ub_unused_privvm_inc(mm, vma); + page_cache_release(page); + dec_mm_counter(mm, file_rss); + (*mapcount)--; +Index: kernel/mm/shmem.c +=================================================================== +--- kernel.orig/mm/shmem.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/shmem.c 2008-11-24 15:47:46.000000000 +0100 +@@ -54,6 +54,8 @@ + #include + #include + ++#include ++ + /* This magic number is used in glibc for posix shared memory */ + #define TMPFS_MAGIC 0x01021994 + +@@ -181,7 +183,7 @@ + + static const struct super_operations shmem_ops; + static const struct address_space_operations shmem_aops; +-static const struct file_operations shmem_file_operations; ++const struct file_operations shmem_file_operations; + static const struct inode_operations shmem_inode_operations; + static const struct inode_operations shmem_dir_inode_operations; + static const struct inode_operations shmem_special_inode_operations; +@@ -220,7 +222,7 @@ + * + * It has to be called with the spinlock held. + */ +-static void shmem_recalc_inode(struct inode *inode) ++static void shmem_recalc_inode(struct inode *inode, long swp_freed) + { + struct shmem_inode_info *info = SHMEM_I(inode); + long freed; +@@ -230,6 +232,8 @@ + info->alloced -= freed; + shmem_unacct_blocks(info->flags, freed); + shmem_free_blocks(inode, freed); ++ if (freed > swp_freed) ++ ub_tmpfs_respages_sub(info, freed - swp_freed); + } + } + +@@ -335,6 +339,11 @@ + struct page *page = kmap_atomic_to_page(entry); + set_page_private(page, page_private(page) + incdec); + } ++ ++ if (incdec == 1) ++ ub_tmpfs_respages_dec(info); ++ else ++ ub_tmpfs_respages_inc(info); + } + + /* +@@ -351,14 +360,24 @@ + struct shmem_sb_info *sbinfo = SHMEM_SB(inode->i_sb); + struct page *page = NULL; + swp_entry_t *entry; ++ unsigned long ub_val; + + if (sgp != SGP_WRITE && + ((loff_t) index << PAGE_CACHE_SHIFT) >= i_size_read(inode)) + return ERR_PTR(-EINVAL); + ++ ub_val = 0; ++ if (info->next_index <= index) { ++ ub_val = index + 1 - info->next_index; ++ if (ub_shmpages_charge(info, ub_val)) ++ return ERR_PTR(-ENOSPC); ++ } ++ + while (!(entry = shmem_swp_entry(info, index, &page))) { +- if (sgp == SGP_READ) +- return shmem_swp_map(ZERO_PAGE(0)); ++ if (sgp == SGP_READ) { ++ entry = shmem_swp_map(ZERO_PAGE(0)); ++ goto out; ++ } + /* + * Test free_blocks against 1 not 0, since we have 1 data + * page (and perhaps indirect index pages) yet to allocate: +@@ -368,7 +387,8 @@ + spin_lock(&sbinfo->stat_lock); + if (sbinfo->free_blocks <= 1) { + spin_unlock(&sbinfo->stat_lock); +- return ERR_PTR(-ENOSPC); ++ entry = ERR_PTR(-ENOSPC); ++ goto out; + } + sbinfo->free_blocks--; + inode->i_blocks += BLOCKS_PER_PAGE; +@@ -376,31 +396,43 @@ + } + + spin_unlock(&info->lock); +- page = shmem_dir_alloc(mapping_gfp_mask(inode->i_mapping)); ++ page = shmem_dir_alloc(mapping_gfp_mask(inode->i_mapping) | ++ __GFP_UBC); + if (page) + set_page_private(page, 0); + spin_lock(&info->lock); + + if (!page) { +- shmem_free_blocks(inode, 1); +- return ERR_PTR(-ENOMEM); ++ entry = ERR_PTR(-ENOMEM); ++ goto out_block; + } + if (sgp != SGP_WRITE && + ((loff_t) index << PAGE_CACHE_SHIFT) >= i_size_read(inode)) { + entry = ERR_PTR(-EINVAL); +- break; ++ goto out_dir; + } +- if (info->next_index <= index) ++ if (info->next_index <= index) { ++ ub_val = 0; + info->next_index = index + 1; ++ } + } + if (page) { + /* another task gave its page, or truncated the file */ + shmem_free_blocks(inode, 1); + shmem_dir_free(page); + } +- if (info->next_index <= index && !IS_ERR(entry)) ++ if (info->next_index <= index) + info->next_index = index + 1; + return entry; ++ ++out_dir: ++ shmem_dir_free(page); ++out_block: ++ shmem_free_blocks(inode, 1); ++out: ++ if (ub_val) ++ ub_shmpages_uncharge(info, ub_val); ++ return entry; + } + + /* +@@ -509,6 +541,7 @@ + return; + + spin_lock(&info->lock); ++ ub_shmpages_uncharge(info, info->next_index - idx); + info->flags |= SHMEM_TRUNCATE; + if (likely(end == (loff_t) -1)) { + limit = info->next_index; +@@ -695,7 +728,7 @@ + info->swapped -= nr_swaps_freed; + if (nr_pages_to_free) + shmem_free_blocks(inode, nr_pages_to_free); +- shmem_recalc_inode(inode); ++ shmem_recalc_inode(inode, nr_swaps_freed); + spin_unlock(&info->lock); + + /* +@@ -782,6 +815,7 @@ + sbinfo->free_inodes++; + spin_unlock(&sbinfo->stat_lock); + } ++ shmi_ub_put(info); + clear_inode(inode); + } + +@@ -903,6 +937,12 @@ + return found; + } + ++#ifdef CONFIG_BEANCOUNTERS ++#define shm_get_swap_page(info) (get_swap_page((info)->shmi_ub)) ++#else ++#define shm_get_swap_page(info) (get_swap_page(NULL)) ++#endif ++ + /* + * Move the page from the page cache to the swap cache. + */ +@@ -938,12 +978,12 @@ + info = SHMEM_I(inode); + if (info->flags & VM_LOCKED) + goto redirty; +- swap = get_swap_page(); ++ swap = shm_get_swap_page(info); + if (!swap.val) + goto redirty; + + spin_lock(&info->lock); +- shmem_recalc_inode(inode); ++ shmem_recalc_inode(inode, 0); + if (index >= info->next_index) { + BUG_ON(!(info->flags & SHMEM_TRUNCATE)); + goto unlock; +@@ -1140,7 +1180,7 @@ + goto failed; + + spin_lock(&info->lock); +- shmem_recalc_inode(inode); ++ shmem_recalc_inode(inode, 0); + entry = shmem_swp_alloc(info, idx, sgp); + if (IS_ERR(entry)) { + spin_unlock(&info->lock); +@@ -1309,6 +1349,7 @@ + clear_highpage(filepage); + flush_dcache_page(filepage); + SetPageUptodate(filepage); ++ ub_tmpfs_respages_inc(info); + } + done: + if (*pagep != filepage) { +@@ -1420,6 +1461,7 @@ + inode->i_generation = get_seconds(); + info = SHMEM_I(inode); + memset(info, 0, (char *)inode - (char *)info); ++ shmi_ub_set(info, get_exec_ub()); + spin_lock_init(&info->lock); + INIT_LIST_HEAD(&info->swaplist); + +@@ -2371,7 +2413,7 @@ + .migratepage = migrate_page, + }; + +-static const struct file_operations shmem_file_operations = { ++const struct file_operations shmem_file_operations = { + .mmap = shmem_mmap, + #ifdef CONFIG_TMPFS + .llseek = generic_file_llseek, +@@ -2382,6 +2424,7 @@ + .splice_write = generic_file_splice_write, + #endif + }; ++EXPORT_SYMBOL_GPL(shmem_file_operations); + + static const struct inode_operations shmem_inode_operations = { + .truncate = shmem_truncate, +@@ -2450,6 +2493,10 @@ + #endif + }; + ++int is_shmem_mapping(struct address_space *map) ++{ ++ return (map != NULL && map->a_ops == &shmem_aops); ++} + + static int shmem_get_sb(struct file_system_type *fs_type, + int flags, const char *dev_name, void *data, struct vfsmount *mnt) +@@ -2457,13 +2504,19 @@ + return get_sb_nodev(fs_type, flags, data, shmem_fill_super, mnt); + } + +-static struct file_system_type tmpfs_fs_type = { ++struct file_system_type tmpfs_fs_type = { + .owner = THIS_MODULE, + .name = "tmpfs", + .get_sb = shmem_get_sb, + .kill_sb = kill_litter_super, + }; ++EXPORT_SYMBOL(tmpfs_fs_type); ++ ++#ifdef CONFIG_VE ++#define shm_mnt (get_exec_env()->shmem_mnt) ++#else + static struct vfsmount *shm_mnt; ++#endif + + static int __init init_tmpfs(void) + { +@@ -2504,6 +2557,36 @@ + } + module_init(init_tmpfs) + ++static inline int shm_charge_ahead(struct inode *inode) ++{ ++#ifdef CONFIG_BEANCOUNTERS ++ struct shmem_inode_info *info = SHMEM_I(inode); ++ unsigned long idx; ++ swp_entry_t *entry; ++ ++ if (!inode->i_size) ++ return 0; ++ idx = (inode->i_size - 1) >> PAGE_CACHE_SHIFT; ++ /* ++ * Just touch info to allocate space for entry and ++ * make all UBC checks ++ */ ++ spin_lock(&info->lock); ++ entry = shmem_swp_alloc(info, idx, SGP_CACHE); ++ if (IS_ERR(entry)) ++ goto err; ++ shmem_swp_unmap(entry); ++ spin_unlock(&info->lock); ++ return 0; ++ ++err: ++ spin_unlock(&info->lock); ++ return PTR_ERR(entry); ++#else ++ return 0; ++#endif ++} ++ + /* + * shmem_file_setup - get an unlinked file living in tmpfs + * +@@ -2551,6 +2634,9 @@ + d_instantiate(dentry, inode); + inode->i_size = size; + inode->i_nlink = 0; /* It is unlinked */ ++ error = shm_charge_ahead(inode); ++ if (error) ++ goto close_file; + init_file(file, shm_mnt, dentry, FMODE_WRITE | FMODE_READ, + &shmem_file_operations); + return file; +@@ -2563,6 +2649,7 @@ + shmem_unacct_size(flags, size); + return ERR_PTR(error); + } ++EXPORT_SYMBOL_GPL(shmem_file_setup); + + /* + * shmem_zero_setup - setup a shared anonymous mapping +@@ -2580,6 +2667,8 @@ + + if (vma->vm_file) + fput(vma->vm_file); ++ else if (vma->vm_flags & VM_WRITE) ++ __ub_unused_privvm_dec(vma->vm_mm, size >> PAGE_SHIFT); + vma->vm_file = file; + vma->vm_ops = &shmem_vm_ops; + return 0; +Index: kernel/mm/slab.c +=================================================================== +--- kernel.orig/mm/slab.c 2008-11-24 14:17:45.000000000 +0100 ++++ kernel/mm/slab.c 2008-11-24 15:47:46.000000000 +0100 +@@ -110,30 +110,14 @@ + #include + #include + #include ++#include ++#include + + #include + #include + #include + +-/* +- * DEBUG - 1 for kmem_cache_create() to honour; SLAB_RED_ZONE & SLAB_POISON. +- * 0 for faster, smaller code (especially in the critical paths). +- * +- * STATS - 1 to collect stats for /proc/slabinfo. +- * 0 for faster, smaller code (especially in the critical paths). +- * +- * FORCED_DEBUG - 1 enables SLAB_RED_ZONE and SLAB_POISON (if possible) +- */ +- +-#ifdef CONFIG_DEBUG_SLAB +-#define DEBUG 1 +-#define STATS 1 +-#define FORCED_DEBUG 1 +-#else +-#define DEBUG 0 +-#define STATS 0 +-#define FORCED_DEBUG 0 +-#endif ++#include + + /* Shouldn't this be in a header file somewhere? */ + #define BYTES_PER_WORD sizeof(void *) +@@ -172,18 +156,20 @@ + #endif + + /* Legal flag mask for kmem_cache_create(). */ +-#if DEBUG ++#if SLAB_DEBUG + # define CREATE_MASK (SLAB_RED_ZONE | \ + SLAB_POISON | SLAB_HWCACHE_ALIGN | \ + SLAB_CACHE_DMA | \ + SLAB_STORE_USER | \ + SLAB_RECLAIM_ACCOUNT | SLAB_PANIC | \ +- SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD) ++ SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \ ++ SLAB_UBC | SLAB_NO_CHARGE) + #else + # define CREATE_MASK (SLAB_HWCACHE_ALIGN | \ + SLAB_CACHE_DMA | \ + SLAB_RECLAIM_ACCOUNT | SLAB_PANIC | \ +- SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD) ++ SLAB_DESTROY_BY_RCU | SLAB_MEM_SPREAD | \ ++ SLAB_UBC | SLAB_NO_CHARGE) + #endif + + /* +@@ -372,87 +358,6 @@ + MAKE_LIST((cachep), (&(ptr)->slabs_free), slabs_free, nodeid); \ + } while (0) + +-/* +- * struct kmem_cache +- * +- * manages a cache. +- */ +- +-struct kmem_cache { +-/* 1) per-cpu data, touched during every alloc/free */ +- struct array_cache *array[NR_CPUS]; +-/* 2) Cache tunables. Protected by cache_chain_mutex */ +- unsigned int batchcount; +- unsigned int limit; +- unsigned int shared; +- +- unsigned int buffer_size; +- u32 reciprocal_buffer_size; +-/* 3) touched by every alloc & free from the backend */ +- +- unsigned int flags; /* constant flags */ +- unsigned int num; /* # of objs per slab */ +- +-/* 4) cache_grow/shrink */ +- /* order of pgs per slab (2^n) */ +- unsigned int gfporder; +- +- /* force GFP flags, e.g. GFP_DMA */ +- gfp_t gfpflags; +- +- size_t colour; /* cache colouring range */ +- unsigned int colour_off; /* colour offset */ +- struct kmem_cache *slabp_cache; +- unsigned int slab_size; +- unsigned int dflags; /* dynamic flags */ +- +- /* constructor func */ +- void (*ctor)(struct kmem_cache *, void *); +- +-/* 5) cache creation/removal */ +- const char *name; +- struct list_head next; +- +-/* 6) statistics */ +-#if STATS +- unsigned long num_active; +- unsigned long num_allocations; +- unsigned long high_mark; +- unsigned long grown; +- unsigned long reaped; +- unsigned long errors; +- unsigned long max_freeable; +- unsigned long node_allocs; +- unsigned long node_frees; +- unsigned long node_overflow; +- atomic_t allochit; +- atomic_t allocmiss; +- atomic_t freehit; +- atomic_t freemiss; +-#endif +-#if DEBUG +- /* +- * If debugging is enabled, then the allocator can add additional +- * fields and/or padding to every object. buffer_size contains the total +- * object size including these internal fields, the following two +- * variables contain the offset to the user object and its size. +- */ +- int obj_offset; +- int obj_size; +-#endif +- /* +- * We put nodelists[] at the end of kmem_cache, because we want to size +- * this array to nr_node_ids slots instead of MAX_NUMNODES +- * (see kmem_cache_init()) +- * We still use [MAX_NUMNODES] and not [1] or [0] because cache_cache +- * is statically defined, so we reserve the max number of nodes. +- */ +- struct kmem_list3 *nodelists[MAX_NUMNODES]; +- /* +- * Do not add fields after nodelists[] +- */ +-}; +- + #define CFLGS_OFF_SLAB (0x80000000UL) + #define OFF_SLAB(x) ((x)->flags & CFLGS_OFF_SLAB) + +@@ -467,12 +372,14 @@ + #define REAPTIMEOUT_CPUC (2*HZ) + #define REAPTIMEOUT_LIST3 (4*HZ) + +-#if STATS ++#define STATS_INC_GROWN(x) ((x)->grown++) ++#define STATS_ADD_REAPED(x,y) ((x)->reaped += (y)) ++#define STATS_INC_SHRUNK(x) ((x)->shrunk++) ++ ++#if SLAB_STATS + #define STATS_INC_ACTIVE(x) ((x)->num_active++) + #define STATS_DEC_ACTIVE(x) ((x)->num_active--) + #define STATS_INC_ALLOCED(x) ((x)->num_allocations++) +-#define STATS_INC_GROWN(x) ((x)->grown++) +-#define STATS_ADD_REAPED(x,y) ((x)->reaped += (y)) + #define STATS_SET_HIGH(x) \ + do { \ + if ((x)->num_active > (x)->high_mark) \ +@@ -495,8 +402,6 @@ + #define STATS_INC_ACTIVE(x) do { } while (0) + #define STATS_DEC_ACTIVE(x) do { } while (0) + #define STATS_INC_ALLOCED(x) do { } while (0) +-#define STATS_INC_GROWN(x) do { } while (0) +-#define STATS_ADD_REAPED(x,y) do { } while (0) + #define STATS_SET_HIGH(x) do { } while (0) + #define STATS_INC_ERR(x) do { } while (0) + #define STATS_INC_NODEALLOCS(x) do { } while (0) +@@ -509,7 +414,7 @@ + #define STATS_INC_FREEMISS(x) do { } while (0) + #endif + +-#if DEBUG ++#if SLAB_DEBUG + + /* + * memory layout of objects: +@@ -641,6 +546,8 @@ + #define CACHE(x) { .cs_size = (x) }, + #include + CACHE(ULONG_MAX) ++#include ++ CACHE(ULONG_MAX) + #undef CACHE + }; + EXPORT_SYMBOL(malloc_sizes); +@@ -654,10 +561,17 @@ + static struct cache_names __initdata cache_names[] = { + #define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)" }, + #include ++ {NULL,}, ++#undef CACHE ++#define CACHE(x) { .name = "size-" #x "(UBC)", .name_dma = "size-" #x "(DMA,UBC)" }, ++#include + {NULL,} + #undef CACHE + }; + ++int malloc_cache_num; ++EXPORT_SYMBOL(malloc_cache_num); ++ + static struct arraycache_init initarray_cache __initdata = + { {0, BOOT_CPUCACHE_ENTRIES, 1, 0} }; + static struct arraycache_init initarray_generic = +@@ -735,6 +649,7 @@ + */ + static DEFINE_MUTEX(cache_chain_mutex); + static struct list_head cache_chain; ++static spinlock_t cache_chain_lock; + + /* + * chicken and egg problem: delay the per-cpu array allocation +@@ -767,7 +682,9 @@ + { + struct cache_sizes *csizep = malloc_sizes; + +-#if DEBUG ++ if (gfpflags & __GFP_UBC) ++ csizep += malloc_cache_num; ++#if SLAB_DEBUG + /* This happens if someone tries to call + * kmem_cache_create(), or __kmalloc(), before + * the generic caches are initialized. +@@ -797,9 +714,192 @@ + return __find_general_cachep(size, gfpflags); + } + +-static size_t slab_mgmt_size(size_t nr_objs, size_t align) ++static inline kmem_bufctl_t *slab_bufctl(struct slab *slabp) ++{ ++ return (kmem_bufctl_t *) (slabp + 1); ++} ++ ++#ifdef CONFIG_BEANCOUNTERS ++#define init_slab_ubps(cachep, slabp) do { \ ++ if (!((cachep)->flags & SLAB_UBC)) \ ++ break; \ ++ memset(slab_ubcs(cachep, slabp), 0, \ ++ (cachep)->num * sizeof(void *)); \ ++ } while (0) ++ ++#define UB_ALIGN(flags) (flags & SLAB_UBC ? sizeof(void *) : 1) ++#define UB_EXTRA(flags) (flags & SLAB_UBC ? sizeof(void *) : 0) ++#define set_cache_objuse(cachep) do { \ ++ (cachep)->objuse = ((PAGE_SIZE << (cachep)->gfporder) + \ ++ (cachep)->num - 1) / (cachep)->num; \ ++ if (!OFF_SLAB(cachep)) \ ++ break; \ ++ (cachep)->objuse += ((cachep)->slabp_cache->objuse + \ ++ (cachep)->num - 1) / (cachep)->num; \ ++ } while (0) ++ ++void kmem_mark_nocharge(struct kmem_cache *cachep) ++{ ++ cachep->flags |= SLAB_NO_CHARGE; ++} ++ ++int kmem_cache_objuse(struct kmem_cache *cachep) ++{ ++ return cachep->objuse; ++} ++ ++EXPORT_SYMBOL(kmem_cache_objuse); ++ ++int kmem_obj_objuse(void *obj) ++{ ++ return virt_to_cache(obj)->objuse; ++} ++ ++static void kmem_cache_free_block(struct kmem_cache *cachep, ++ struct kmem_list3 *l3, void **objpp, ++ int nr_objects, int node); ++ ++static int kmem_cache_walk_node(struct kmem_cache *cachep, int node, ++ int (*fun)(void *)) ++{ ++ struct array_cache *ac; ++ struct slab *slabp; ++ char *objp; ++ int cpu, i, sz, r, n; ++ struct kmem_list3 *l3; ++ unsigned long map[PAGE_SIZE / sizeof(struct dentry) ++ / BITS_PER_LONG + 1]; ++ ++ if (cachep->num >= sizeof(map) * 8) ++ return -E2BIG; ++ ++ l3 = cachep->nodelists[node]; ++ /* drain all CPU caches to have up-to-date free map */ ++ ++#ifdef CONFIG_NUMA ++ /* walk through all nodes and drain alien caches */ ++ for_each_online_node (n) { ++ if (!cachep->nodelists[n]->alien) ++ continue; ++ ac = cachep->nodelists[n]->alien[node]; ++ if (!ac) ++ continue; ++ kmem_cache_free_block(cachep, cachep->nodelists[node], ++ ac->entry, ac->avail, node); ++ ac->avail = 0; ++ } ++#endif ++ ++ ac = l3->shared; ++ kmem_cache_free_block(cachep, l3, ac->entry, ac->avail, node); ++ ac->avail = 0; ++ for_each_online_cpu(cpu) { ++ ac = cachep->array[cpu]; ++ n = cpu_to_node(cpu); ++ kmem_cache_free_block(cachep, cachep->nodelists[n], ++ ac->entry, ac->avail, n); ++ ac->avail = 0; ++ } ++ ++ list_for_each_entry(slabp, &l3->slabs_full, list) { ++ touch_nmi_watchdog(); ++ for (i = 0, objp = slabp->s_mem; ++ i < cachep->num; ++ i++, objp += cachep->buffer_size) { ++#if SLAB_DEBUG ++ objp += cachep->obj_offset; ++#endif ++ r = (*fun)(objp); ++ if (r) ++ return r; ++ } ++ } ++ ++ list_for_each_entry(slabp, &l3->slabs_partial, list) { ++ touch_nmi_watchdog(); ++ memset(map, 0xff, sizeof(map)); ++ for (i = slabp->free, r = 0; ++ i != BUFCTL_END; ++ i = slab_bufctl(slabp)[i], r++) { ++ if (r > cachep->num) ++ return -1; ++ __clear_bit(i, map); ++ } ++ sz = sizeof(map) * BITS_PER_LONG; ++ for (i = find_first_bit(map, sz); ++ i < cachep->num; ++ i = find_next_bit(map, sz, i + 1)) { ++ objp = slabp->s_mem + i * cachep->buffer_size; ++#if SLAB_DEBUG ++ objp += cachep->obj_offset; ++#endif ++ r = (*fun)(objp); ++ if (r) ++ return r; ++ } ++ } ++ ++ return 0; ++} ++ ++int kmem_cache_walk_objects(struct kmem_cache *cachep, int (*fun)(void *)) ++{ ++ int node; ++ int err; ++ ++ for_each_online_node (node) ++ if ((err = kmem_cache_walk_node(cachep, node, fun)) != 0) ++ return err; ++ ++ return 0; ++} ++ ++unsigned long ub_cache_growth(struct kmem_cache *cachep) ++{ ++ return (cachep->grown - cachep->reaped - cachep->shrunk) ++ << cachep->gfporder; ++} ++ ++#define slab_ubcs(cachep, slabp) ((struct user_beancounter **)\ ++ (ALIGN((unsigned long)(slab_bufctl(slabp) + (cachep)->num),\ ++ sizeof(void *)))) ++ ++struct user_beancounter **ub_slab_ptr(struct kmem_cache *cachep, void *obj) ++{ ++ struct slab *slabp; ++ int objnr; ++ ++ BUG_ON(!(cachep->flags & SLAB_UBC)); ++ slabp = virt_to_slab(obj); ++ objnr = (obj - slabp->s_mem) / cachep->buffer_size; ++ return slab_ubcs(cachep, slabp) + objnr; ++} ++ ++struct user_beancounter *slab_ub(void *obj) + { +- return ALIGN(sizeof(struct slab)+nr_objs*sizeof(kmem_bufctl_t), align); ++ return *ub_slab_ptr(virt_to_cache(obj), obj); ++} ++ ++EXPORT_SYMBOL(slab_ub); ++ ++#else ++#define UB_ALIGN(flags) 1 ++#define UB_EXTRA(flags) 0 ++#define set_cache_objuse(c) do { } while (0) ++#define init_slab_ubps(c, s) do { } while (0) ++#endif ++ ++static size_t slab_mgmt_size_noalign(size_t nr_objs, int flags) ++{ ++ size_t size_noub; ++ ++ size_noub = sizeof(struct slab) + nr_objs * sizeof(kmem_bufctl_t); ++ return ALIGN(size_noub, UB_ALIGN(flags)) + nr_objs * UB_EXTRA(flags); ++} ++ ++static size_t slab_mgmt_size(size_t nr_objs, size_t align, int flags) ++{ ++ return ALIGN(slab_mgmt_size_noalign(nr_objs, flags), align); + } + + /* +@@ -844,20 +944,23 @@ + * into account. + */ + nr_objs = (slab_size - sizeof(struct slab)) / +- (buffer_size + sizeof(kmem_bufctl_t)); ++ (buffer_size + sizeof(kmem_bufctl_t) + ++ UB_EXTRA(flags)); + + /* + * This calculated number will be either the right + * amount, or one greater than what we want. + */ +- if (slab_mgmt_size(nr_objs, align) + nr_objs*buffer_size +- > slab_size) ++ if (slab_mgmt_size(nr_objs, align, flags) + ++ nr_objs * buffer_size > slab_size) + nr_objs--; ++ BUG_ON(slab_mgmt_size(nr_objs, align, flags) + ++ nr_objs * buffer_size > slab_size); + + if (nr_objs > SLAB_LIMIT) + nr_objs = SLAB_LIMIT; + +- mgmt_size = slab_mgmt_size(nr_objs, align); ++ mgmt_size = slab_mgmt_size(nr_objs, align, flags); + } + *num = nr_objs; + *left_over = slab_size - nr_objs*buffer_size - mgmt_size; +@@ -1408,6 +1511,7 @@ + cachep->nodelists[nodeid] = ptr; + local_irq_enable(); + } ++static int offslab_limit; + + /* + * For setting up all the kmem_list3s for cache whose buffer_size is same as +@@ -1481,6 +1585,7 @@ + + /* 1) create the cache_cache */ + INIT_LIST_HEAD(&cache_chain); ++ spin_lock_init(&cache_chain_lock); + list_add(&cache_cache.next, &cache_chain); + cache_cache.colour_off = cache_line_size(); + cache_cache.array[smp_processor_id()] = &initarray_cache.cache; +@@ -1492,7 +1597,7 @@ + */ + cache_cache.buffer_size = offsetof(struct kmem_cache, nodelists) + + nr_node_ids * sizeof(struct kmem_list3 *); +-#if DEBUG ++#if SLAB_DEBUG + cache_cache.obj_size = cache_cache.buffer_size; + #endif + cache_cache.buffer_size = ALIGN(cache_cache.buffer_size, +@@ -1539,6 +1644,7 @@ + + slab_early_init = 0; + ++ for (i = 0; i < 2; i++) { + while (sizes->cs_size != ULONG_MAX) { + /* + * For performance, all the general caches are L1 aligned. +@@ -1551,21 +1657,30 @@ + sizes->cs_cachep = kmem_cache_create(names->name, + sizes->cs_size, + ARCH_KMALLOC_MINALIGN, +- ARCH_KMALLOC_FLAGS|SLAB_PANIC, ++ ARCH_KMALLOC_FLAGS|SLAB_PANIC| ++ (i ? SLAB_UBC : 0)|SLAB_NO_CHARGE, + NULL); + } ++ if (!(OFF_SLAB(sizes->cs_cachep))) ++ offslab_limit = sizes->cs_size; + #ifdef CONFIG_ZONE_DMA +- sizes->cs_dmacachep = kmem_cache_create( +- names->name_dma, ++ sizes->cs_dmacachep = kmem_cache_create(names->name_dma, + sizes->cs_size, + ARCH_KMALLOC_MINALIGN, + ARCH_KMALLOC_FLAGS|SLAB_CACHE_DMA| ++ (i ? SLAB_UBC : 0) | SLAB_NO_CHARGE| + SLAB_PANIC, + NULL); + #endif + sizes++; + names++; + } ++ ++ sizes++; ++ names++; ++ if (!i) ++ malloc_cache_num = sizes - malloc_sizes; ++ } + /* 4) Replace the bootstrap head arrays */ + { + struct array_cache *ptr; +@@ -1735,7 +1850,7 @@ + kmem_cache_free(cachep->slabp_cache, slab_rcu); + } + +-#if DEBUG ++#if SLAB_DEBUG + + #ifdef CONFIG_DEBUG_PAGEALLOC + static void store_stackinfo(struct kmem_cache *cachep, unsigned long *addr, +@@ -1812,7 +1927,7 @@ + } + #endif + +-#if DEBUG ++#if SLAB_DEBUG + + static void print_objinfo(struct kmem_cache *cachep, void *objp, int lines) + { +@@ -1905,7 +2020,7 @@ + } + #endif + +-#if DEBUG ++#if SLAB_DEBUG + /** + * slab_destroy_objs - destroy a slab and its objects + * @cachep: cache pointer being destroyed +@@ -2013,7 +2128,6 @@ + static size_t calculate_slab_order(struct kmem_cache *cachep, + size_t size, size_t align, unsigned long flags) + { +- unsigned long offslab_limit; + size_t left_over = 0; + int gfporder; + +@@ -2026,15 +2140,10 @@ + continue; + + if (flags & CFLGS_OFF_SLAB) { +- /* +- * Max number of objs-per-slab for caches which +- * use off-slab slabs. Needed to avoid a possible +- * looping condition in cache_grow(). +- */ +- offslab_limit = size - sizeof(struct slab); +- offslab_limit /= sizeof(kmem_bufctl_t); ++ int slab_size; + +- if (num > offslab_limit) ++ slab_size = slab_mgmt_size_noalign(num, flags); ++ if (slab_size > offslab_limit) + break; + } + +@@ -2197,9 +2306,9 @@ + } + } + +-#if DEBUG ++#if SLAB_DEBUG + WARN_ON(strchr(name, ' ')); /* It confuses parsers */ +-#if FORCED_DEBUG ++#if SLAB_FORCED_DEBUG + /* + * Enable redzoning and last user accounting, except for caches with + * large objects, if the increased size would increase the object size +@@ -2284,7 +2393,7 @@ + if (!cachep) + goto oops; + +-#if DEBUG ++#if SLAB_DEBUG + cachep->obj_size = size; + + /* +@@ -2306,7 +2415,7 @@ + else + size += BYTES_PER_WORD; + } +-#if FORCED_DEBUG && defined(CONFIG_DEBUG_PAGEALLOC) ++#if SLAB_FORCED_DEBUG && defined(CONFIG_DEBUG_PAGEALLOC) + if (size >= malloc_sizes[INDEX_L3 + 1].cs_size + && cachep->obj_size > cache_line_size() && size < PAGE_SIZE) { + cachep->obj_offset += PAGE_SIZE - size; +@@ -2338,8 +2447,7 @@ + cachep = NULL; + goto oops; + } +- slab_size = ALIGN(cachep->num * sizeof(kmem_bufctl_t) +- + sizeof(struct slab), align); ++ slab_size = slab_mgmt_size(cachep->num, align, flags); + + /* + * If the slab has been placed off-slab, and we have enough space then +@@ -2352,8 +2460,7 @@ + + if (flags & CFLGS_OFF_SLAB) { + /* really off slab. No need for manual alignment */ +- slab_size = +- cachep->num * sizeof(kmem_bufctl_t) + sizeof(struct slab); ++ slab_size = slab_mgmt_size_noalign(cachep->num, flags); + } + + cachep->colour_off = cache_line_size(); +@@ -2390,7 +2497,10 @@ + } + + /* cache setup completed, link it into the list */ ++ spin_lock(&cache_chain_lock); + list_add(&cachep->next, &cache_chain); ++ spin_unlock(&cache_chain_lock); ++ set_cache_objuse(cachep); + oops: + if (!cachep && (flags & SLAB_PANIC)) + panic("kmem_cache_create(): failed to create slab `%s'\n", +@@ -2400,7 +2510,7 @@ + } + EXPORT_SYMBOL(kmem_cache_create); + +-#if DEBUG ++#if SLAB_DEBUG + static void check_irq_off(void) + { + BUG_ON(!irqs_disabled()); +@@ -2496,10 +2606,11 @@ + } + + slabp = list_entry(p, struct slab, list); +-#if DEBUG ++#if SLAB_DEBUG + BUG_ON(slabp->inuse); + #endif + list_del(&slabp->list); ++ STATS_INC_SHRUNK(cache); + /* + * Safe to drop the lock. The slab is no longer linked + * to the cache. +@@ -2579,10 +2690,14 @@ + /* + * the chain is never empty, cache_cache is never destroyed + */ ++ spin_lock(&cache_chain_lock); + list_del(&cachep->next); ++ spin_unlock(&cache_chain_lock); + if (__cache_shrink(cachep)) { + slab_error(cachep, "Can't free all objects"); ++ spin_lock(&cache_chain_lock); + list_add(&cachep->next, &cache_chain); ++ spin_unlock(&cache_chain_lock); + mutex_unlock(&cache_chain_mutex); + return; + } +@@ -2590,6 +2705,8 @@ + if (unlikely(cachep->flags & SLAB_DESTROY_BY_RCU)) + synchronize_rcu(); + ++ ++ ub_kmemcache_free(cachep); + __kmem_cache_destroy(cachep); + mutex_unlock(&cache_chain_mutex); + } +@@ -2615,7 +2732,8 @@ + if (OFF_SLAB(cachep)) { + /* Slab management obj is off-slab. */ + slabp = kmem_cache_alloc_node(cachep->slabp_cache, +- local_flags & ~GFP_THISNODE, nodeid); ++ local_flags & (~(__GFP_UBC | GFP_THISNODE)), ++ nodeid); + if (!slabp) + return NULL; + } else { +@@ -2626,14 +2744,10 @@ + slabp->colouroff = colour_off; + slabp->s_mem = objp + colour_off; + slabp->nodeid = nodeid; ++ init_slab_ubps(cachep, slabp); + return slabp; + } + +-static inline kmem_bufctl_t *slab_bufctl(struct slab *slabp) +-{ +- return (kmem_bufctl_t *) (slabp + 1); +-} +- + static void cache_init_objs(struct kmem_cache *cachep, + struct slab *slabp) + { +@@ -2641,7 +2755,7 @@ + + for (i = 0; i < cachep->num; i++) { + void *objp = index_to_obj(cachep, slabp, i); +-#if DEBUG ++#if SLAB_DEBUG + /* need to poison the objs? */ + if (cachep->flags & SLAB_POISON) + poison_obj(cachep, objp, POISON_FREE); +@@ -2700,7 +2814,7 @@ + + slabp->inuse++; + next = slab_bufctl(slabp)[slabp->free]; +-#if DEBUG ++#if SLAB_DEBUG + slab_bufctl(slabp)[slabp->free] = BUFCTL_FREE; + WARN_ON(slabp->nodeid != nodeid); + #endif +@@ -2714,7 +2828,7 @@ + { + unsigned int objnr = obj_to_index(cachep, slabp, objp); + +-#if DEBUG ++#if SLAB_DEBUG + /* Verify that the slab belongs to the intended node */ + WARN_ON(slabp->nodeid != nodeid); + +@@ -2802,7 +2916,7 @@ + * 'nodeid'. + */ + if (!objp) +- objp = kmem_getpages(cachep, local_flags, nodeid); ++ objp = kmem_getpages(cachep, local_flags & ~__GFP_UBC, nodeid); + if (!objp) + goto failed; + +@@ -2836,7 +2950,7 @@ + return 0; + } + +-#if DEBUG ++#if SLAB_DEBUG + + /* + * Perform extra freeing checks: +@@ -3049,12 +3163,12 @@ + gfp_t flags) + { + might_sleep_if(flags & __GFP_WAIT); +-#if DEBUG ++#if SLAB_DEBUG + kmem_flagcheck(cachep, flags); + #endif + } + +-#if DEBUG ++#if SLAB_DEBUG + static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep, + gfp_t flags, void *objp, void *caller) + { +@@ -3466,9 +3580,14 @@ + cache_alloc_debugcheck_before(cachep, flags); + local_irq_save(save_flags); + objp = __do_cache_alloc(cachep, flags); +- local_irq_restore(save_flags); + objp = cache_alloc_debugcheck_after(cachep, flags, objp, caller); + prefetchw(objp); ++ if (objp && should_charge(cachep, flags) && ++ ub_slab_charge(cachep, objp, flags)) { ++ kmem_cache_free(cachep, objp); ++ objp = NULL; ++ } ++ local_irq_restore(save_flags); + + if (unlikely((flags & __GFP_ZERO) && objp)) + memset(objp, 0, obj_size(cachep)); +@@ -3502,6 +3621,7 @@ + /* fixup slab chains */ + if (slabp->inuse == 0) { + if (l3->free_objects > l3->free_limit) { ++ STATS_INC_SHRUNK(cachep); + l3->free_objects -= cachep->num; + /* No need to drop any previously held + * lock here, even if we have a off-slab slab +@@ -3523,6 +3643,19 @@ + } + } + ++static void kmem_cache_free_block(struct kmem_cache *cachep, struct kmem_list3 *l3, ++ void **objpp, int nr_objects, int node) ++{ ++ unsigned long flags; ++ ++ if (!nr_objects) ++ return; ++ ++ spin_lock_irqsave(&l3->list_lock, flags); ++ free_block(cachep, objpp, nr_objects, node); ++ spin_unlock_irqrestore(&l3->list_lock, flags); ++} ++ + static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) + { + int batchcount; +@@ -3530,7 +3663,7 @@ + int node = numa_node_id(); + + batchcount = ac->batchcount; +-#if DEBUG ++#if SLAB_DEBUG + BUG_ON(!batchcount || batchcount > ac->avail); + #endif + check_irq_off(); +@@ -3551,7 +3684,7 @@ + + free_block(cachep, ac->entry, batchcount, node); + free_done: +-#if STATS ++#if SLAB_STATS + { + int i = 0; + struct list_head *p; +@@ -3585,6 +3718,9 @@ + check_irq_off(); + objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0)); + ++ if (should_uncharge(cachep)) ++ ub_slab_uncharge(cachep, objp); ++ + /* + * Skip calling cache_free_alien() when the platform is not numa. + * This will avoid cache misses that happen while accessing slabp (which +@@ -3991,7 +4127,7 @@ + if (cachep->buffer_size <= PAGE_SIZE && num_possible_cpus() > 1) + shared = 8; + +-#if DEBUG ++#if SLAB_DEBUG + /* + * With debugging enabled, large batchcount lead to excessively long + * periods with disabled local interrupts. Limit the batchcount +@@ -4059,6 +4195,7 @@ + /* Give up. Setup the next iteration. */ + goto out; + ++ {KSTAT_PERF_ENTER(cache_reap) + list_for_each_entry(searchp, &cache_chain, next) { + check_irq_on(); + +@@ -4099,6 +4236,7 @@ + check_irq_on(); + mutex_unlock(&cache_chain_mutex); + next_reap_node(); ++ KSTAT_PERF_LEAVE(cache_reap)} + out: + /* Set up the next iteration */ + schedule_delayed_work(work, round_jiffies_relative(REAPTIMEOUT_CPUC)); +@@ -4112,7 +4250,7 @@ + * Output format version, so at least we can change it + * without _too_ many complaints. + */ +-#if STATS ++#if SLAB_STATS + seq_puts(m, "slabinfo - version: 2.1 (statistics)\n"); + #else + seq_puts(m, "slabinfo - version: 2.1\n"); +@@ -4121,14 +4259,82 @@ + " "); + seq_puts(m, " : tunables "); + seq_puts(m, " : slabdata "); +-#if STATS ++#if SLAB_STATS + seq_puts(m, " : globalstat " +- " "); ++ " "); + seq_puts(m, " : cpustat "); + #endif + seq_putc(m, '\n'); + } + ++#define SHOW_TOP_SLABS 10 ++ ++static unsigned long get_cache_size(struct kmem_cache *cachep) ++{ ++ unsigned long flags; ++ unsigned long slabs; ++ struct kmem_list3 *l3; ++ struct list_head *lh; ++ int node; ++ ++ slabs = 0; ++ ++ for_each_online_node (node) { ++ l3 = cachep->nodelists[node]; ++ if (l3 == NULL) ++ continue; ++ ++ spin_lock_irqsave(&l3->list_lock, flags); ++ list_for_each (lh, &l3->slabs_full) ++ slabs++; ++ list_for_each (lh, &l3->slabs_partial) ++ slabs++; ++ list_for_each (lh, &l3->slabs_free) ++ slabs++; ++ spin_unlock_irqrestore(&l3->list_lock, flags); ++ } ++ ++ return slabs * (PAGE_SIZE << cachep->gfporder) + ++ (OFF_SLAB(cachep) ? ++ cachep->slabp_cache->buffer_size * slabs : 0); ++} ++ ++void show_slab_info(void) ++{ ++ int i, j; ++ unsigned long size; ++ struct kmem_cache *ptr; ++ unsigned long sizes[SHOW_TOP_SLABS]; ++ struct kmem_cache *top[SHOW_TOP_SLABS]; ++ ++ memset(top, 0, sizeof(top)); ++ memset(sizes, 0, sizeof(sizes)); ++ ++ printk("Top %d caches:\n", SHOW_TOP_SLABS); ++ ++ spin_lock(&cache_chain_lock); ++ list_for_each_entry (ptr, &cache_chain, next) { ++ size = get_cache_size(ptr); ++ ++ j = 0; ++ for (i = 1; i < SHOW_TOP_SLABS; i++) ++ if (sizes[i] < sizes[j]) ++ j = i; ++ ++ if (size > sizes[j]) { ++ sizes[j] = size; ++ top[j] = ptr; ++ } ++ } ++ ++ for (i = 0; i < SHOW_TOP_SLABS; i++) ++ if (top[i]) ++ printk("%-21s: size %10lu objsize %10u\n", ++ top[i]->name, sizes[i], ++ top[i]->buffer_size); ++ spin_unlock(&cache_chain_lock); ++} ++ + static void *s_start(struct seq_file *m, loff_t *pos) + { + loff_t n = *pos; +@@ -4207,19 +4413,20 @@ + if (error) + printk(KERN_ERR "slab: cache %s error: %s\n", name, error); + +- seq_printf(m, "%-17s %6lu %6lu %6u %4u %4d", ++ seq_printf(m, "%-21s %6lu %6lu %6u %4u %4d", + name, active_objs, num_objs, cachep->buffer_size, + cachep->num, (1 << cachep->gfporder)); + seq_printf(m, " : tunables %4u %4u %4u", + cachep->limit, cachep->batchcount, cachep->shared); + seq_printf(m, " : slabdata %6lu %6lu %6lu", + active_slabs, num_slabs, shared_avail); +-#if STATS ++#if SLAB_STATS + { /* list3 stats */ + unsigned long high = cachep->high_mark; + unsigned long allocs = cachep->num_allocations; + unsigned long grown = cachep->grown; + unsigned long reaped = cachep->reaped; ++ unsigned long shrunk = cachep->shrunk; + unsigned long errors = cachep->errors; + unsigned long max_freeable = cachep->max_freeable; + unsigned long node_allocs = cachep->node_allocs; +@@ -4227,9 +4434,10 @@ + unsigned long overflows = cachep->node_overflow; + + seq_printf(m, " : globalstat %7lu %6lu %5lu %4lu \ +- %4lu %4lu %4lu %4lu %4lu", allocs, high, grown, ++ %4lu %4lu %4lu %4lu %4lu %4lu", ++ allocs, high, grown, + reaped, errors, max_freeable, node_allocs, +- node_frees, overflows); ++ node_frees, overflows, shrunk); + } + /* cpu stats */ + { +Index: kernel/mm/slub.c +=================================================================== +--- kernel.orig/mm/slub.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/slub.c 2008-11-24 15:47:46.000000000 +0100 +@@ -22,6 +22,8 @@ + #include + #include + ++#include ++ + /* + * Lock order: + * 1. slab_lock(page) +@@ -186,9 +188,11 @@ + + /* + * Set of flags that will prevent slab merging ++ * ++ * FIXME - think over how to allow merging accountable slubs + */ + #define SLUB_NEVER_MERGE (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER | \ +- SLAB_TRACE | SLAB_DESTROY_BY_RCU) ++ SLAB_TRACE | SLAB_DESTROY_BY_RCU | SLAB_UBC) + + #define SLUB_MERGE_SAME (SLAB_DEBUG_FREE | SLAB_RECLAIM_ACCOUNT | \ + SLAB_CACHE_DMA) +@@ -326,6 +330,136 @@ + return (p - addr) / s->size; + } + ++#ifdef CONFIG_BEANCOUNTERS ++static inline void inc_cache_grown(struct kmem_cache *s) ++{ ++ atomic_inc(&s->grown); ++} ++ ++static inline void dec_cache_grown(struct kmem_cache *s) ++{ ++ atomic_dec(&s->grown); ++} ++ ++unsigned long ub_cache_growth(struct kmem_cache *cachep) ++{ ++ return atomic_read(&cachep->grown) << cachep->order; ++} ++ ++static inline void __flush_cpu_slab(struct kmem_cache *s, int cpu); ++ ++static int kmem_cache_walk_page(struct page *pg, struct kmem_cache *s, ++ int (*fun)(void *)) ++{ ++ int r; ++ void *p, *start; ++ DECLARE_BITMAP(map, s->objects); ++ ++ start = page_address(pg); ++ ++ bitmap_zero(map, s->objects); ++ for_each_free_object(p, s, pg->freelist) ++ set_bit(slab_index(p, s, start), map); ++ ++ for_each_object(p, s, start) ++ if (!test_bit(slab_index(p, s, start), map)) { ++ r = fun(p); ++ if (r) ++ return r; ++ } ++ ++ return 0; ++} ++ ++int kmem_cache_walk_objects(struct kmem_cache *s, int (*fun)(void *)) ++{ ++ int i; ++ ++ /* run under stopachine only, so no locks at all */ ++ ++ for_each_online_cpu(i) ++ __flush_cpu_slab(s, i); ++ ++ for_each_online_node(i) { ++ int r; ++ struct page *page; ++ struct kmem_cache_node *n; ++ ++ n = get_node(s, i); ++ ++ list_for_each_entry(page, &n->partial, lru) { ++ r = kmem_cache_walk_page(page, s, fun); ++ if (r) ++ return r; ++ } ++ ++ list_for_each_entry(page, &n->full, lru) { ++ r = kmem_cache_walk_page(page, s, fun); ++ if (r) ++ return r; ++ } ++ } ++ ++ return 0; ++} ++ ++int kmem_cache_objuse(struct kmem_cache *cachep) ++{ ++ return cachep->objuse; ++} ++ ++EXPORT_SYMBOL(kmem_cache_objuse); ++ ++int kmem_obj_objuse(void *obj) ++{ ++ return kmem_cache_objuse(virt_to_head_page(obj)->slab); ++} ++ ++EXPORT_SYMBOL(kmem_obj_objuse); ++ ++#define page_ubs(pg) (pg->bc.slub_ubs) ++ ++struct user_beancounter **ub_slab_ptr(struct kmem_cache *s, void *obj) ++{ ++ struct page *pg; ++ ++ BUG_ON(!(s->flags & SLAB_UBC)); ++ pg = virt_to_head_page(obj); ++ return page_ubs(pg) + slab_index(obj, s, page_address(pg)); ++} ++ ++EXPORT_SYMBOL(ub_slab_ptr); ++ ++struct user_beancounter *slab_ub(void *obj) ++{ ++ struct page *pg; ++ ++ pg = virt_to_head_page(obj); ++ BUG_ON(!(pg->slab->flags & SLAB_UBC)); ++ return page_ubs(pg)[slab_index(obj, pg->slab, page_address(pg))]; ++} ++ ++EXPORT_SYMBOL(slab_ub); ++ ++void kmem_mark_nocharge(struct kmem_cache *cachep) ++{ ++ cachep->flags |= SLAB_NO_CHARGE; ++} ++#else ++static inline void inc_cache_grown(struct kmem_cache *s) ++{ ++} ++ ++static inline void dec_cache_grown(struct kmem_cache *s) ++{ ++} ++#endif ++ ++void show_slab_info(void) ++{ ++ /* FIXME - show it */ ++} ++ + #ifdef CONFIG_SLUB_DEBUG + /* + * Debug settings: +@@ -1042,6 +1176,8 @@ + struct page * page; + int pages = 1 << s->order; + ++ flags &= ~__GFP_UBC; ++ + if (s->order) + flags |= __GFP_COMP; + +@@ -1064,9 +1200,12 @@ + NR_SLAB_RECLAIMABLE : NR_SLAB_UNRECLAIMABLE, + pages); + ++ inc_cache_grown(s); + return page; + } + ++static void __free_slab(struct kmem_cache *s, struct page *page); ++ + static void setup_object(struct kmem_cache *s, struct page *page, + void *object) + { +@@ -1090,6 +1229,18 @@ + if (!page) + goto out; + ++#ifdef CONFIG_BEANCOUNTERS ++ if (s->flags & SLAB_UBC) { ++ BUG_ON(page_ubs(page) != NULL); ++ page_ubs(page) = kzalloc(s->objects * sizeof(void *), ++ flags & ~__GFP_UBC); ++ if (page_ubs(page) == NULL) { ++ __free_slab(s, page); ++ page = NULL; ++ goto out; ++ } ++ } ++#endif + n = get_node(s, page_to_nid(page)); + if (n) + atomic_long_inc(&n->nr_slabs); +@@ -1137,6 +1288,13 @@ + NR_SLAB_RECLAIMABLE : NR_SLAB_UNRECLAIMABLE, + - pages); + ++#ifdef CONFIG_BEANCOUNTERS ++ if (page_ubs(page) != NULL) { ++ BUG_ON(!(s->flags & SLAB_UBC)); ++ kfree(page_ubs(page)); ++ page_ubs(page) = NULL; ++ } ++#endif + __free_pages(page, s->order); + } + +@@ -1159,6 +1317,8 @@ + call_rcu(head, rcu_free_slab); + } else + __free_slab(s, page); ++ ++ dec_cache_grown(s); + } + + static void discard_slab(struct kmem_cache *s, struct page *page) +@@ -1556,6 +1716,13 @@ + object = c->freelist; + c->freelist = object[c->offset]; + } ++ ++ if (object && should_charge(s, gfpflags) && ++ ub_slab_charge(s, object, gfpflags)) { ++ kmem_cache_free(s, object); ++ object = NULL; ++ } ++ + local_irq_restore(flags); + + if (unlikely((gfpflags & __GFP_ZERO) && object)) +@@ -1656,6 +1823,10 @@ + + local_irq_save(flags); + debug_check_no_locks_freed(object, s->objsize); ++ ++ if (should_uncharge(s)) ++ ub_slab_uncharge(s, x); ++ + c = get_cpu_slab(s, smp_processor_id()); + if (likely(page == c->page && c->node >= 0)) { + object[c->offset] = c->freelist; +@@ -2208,6 +2379,9 @@ + #ifdef CONFIG_NUMA + s->defrag_ratio = 100; + #endif ++#ifdef CONFIG_BEANCOUNTERS ++ s->objuse = s->size + (sizeof(struct page) / s->objects); ++#endif + if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA)) + goto error; + +@@ -2334,6 +2508,10 @@ + + struct kmem_cache kmalloc_caches[PAGE_SHIFT] __cacheline_aligned; + EXPORT_SYMBOL(kmalloc_caches); ++#ifdef CONFIG_BEANCOUNTERS ++struct kmem_cache ub_kmalloc_caches[KMALLOC_SHIFT_HIGH + 1] __cacheline_aligned; ++EXPORT_SYMBOL(ub_kmalloc_caches); ++#endif + + #ifdef CONFIG_ZONE_DMA + static struct kmem_cache *kmalloc_caches_dma[PAGE_SHIFT]; +@@ -2379,6 +2557,11 @@ + { + unsigned int flags = 0; + ++ if (gfp_flags & __GFP_UBC) { ++ flags = SLAB_UBC | SLAB_NO_CHARGE; ++ gfp_flags &= ~__GFP_UBC; ++ } ++ + if (gfp_flags & SLUB_DMA) + flags = SLAB_CACHE_DMA; + +@@ -2506,11 +2689,14 @@ + index = fls(size - 1); + + #ifdef CONFIG_ZONE_DMA +- if (unlikely((flags & SLUB_DMA))) ++ if (unlikely((flags & SLUB_DMA))) { ++ BUG_ON(flags & __GFP_UBC); + return dma_kmalloc_cache(index, flags); ++ } + + #endif +- return &kmalloc_caches[index]; ++ ++ return __kmalloc_cache(flags, index); + } + + void *__kmalloc(size_t size, gfp_t flags) +@@ -2815,6 +3001,11 @@ + create_kmalloc_cache(&kmalloc_caches[0], "kmem_cache_node", + sizeof(struct kmem_cache_node), GFP_KERNEL); + kmalloc_caches[0].refcount = -1; ++#ifdef CONFIG_BEANCOUNTERS ++ create_kmalloc_cache(&ub_kmalloc_caches[0], "kmem_cache_node_ubc", ++ sizeof(struct kmem_cache_node), GFP_KERNEL_UBC); ++ ub_kmalloc_caches[0].refcount = -1; ++#endif + caches++; + + hotplug_memory_notifier(slab_memory_callback, 1); +@@ -2827,17 +3018,29 @@ + if (KMALLOC_MIN_SIZE <= 64) { + create_kmalloc_cache(&kmalloc_caches[1], + "kmalloc-96", 96, GFP_KERNEL); ++#ifdef CONFIG_BEANCOUNTERS ++ create_kmalloc_cache(&ub_kmalloc_caches[1], ++ "kmalloc-96-ubc", 96, GFP_KERNEL_UBC); ++#endif + caches++; + } + if (KMALLOC_MIN_SIZE <= 128) { + create_kmalloc_cache(&kmalloc_caches[2], + "kmalloc-192", 192, GFP_KERNEL); ++#ifdef CONFIG_BEANCOUNTERS ++ create_kmalloc_cache(&ub_kmalloc_caches[2], ++ "kmalloc-192-ubc", 192, GFP_KERNEL_UBC); ++#endif + caches++; + } + + for (i = KMALLOC_SHIFT_LOW; i < PAGE_SHIFT; i++) { + create_kmalloc_cache(&kmalloc_caches[i], + "kmalloc", 1 << i, GFP_KERNEL); ++#ifdef CONFIG_BEANCOUNTERS ++ create_kmalloc_cache(&ub_kmalloc_caches[i], ++ "kmalloc-ubc", 1 << i, GFP_KERNEL_UBC); ++#endif + caches++; + } + +@@ -2862,9 +3065,14 @@ + slab_state = UP; + + /* Provide the correct kmalloc names now that the caches are up */ +- for (i = KMALLOC_SHIFT_LOW; i < PAGE_SHIFT; i++) ++ for (i = KMALLOC_SHIFT_LOW; i < PAGE_SHIFT; i++) { + kmalloc_caches[i]. name = + kasprintf(GFP_KERNEL, "kmalloc-%d", 1 << i); ++#ifdef CONFIG_BEANCOUNTERS ++ ub_kmalloc_caches[i].name = ++ kasprintf(GFP_KERNEL, "kmalloc-%d-ubc", 1 << i); ++#endif ++ } + + #ifdef CONFIG_SMP + register_cpu_notifier(&slab_notifier); +@@ -3992,6 +4200,8 @@ + *p++ = 'a'; + if (s->flags & SLAB_DEBUG_FREE) + *p++ = 'F'; ++ if (s->flags & SLAB_UBC) ++ *p++ = 'b'; + if (p != name + 1) + *p++ = '-'; + p += sprintf(p, "%07d", s->size); +Index: kernel/mm/swap.c +=================================================================== +--- kernel.orig/mm/swap.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/swap.c 2008-11-24 15:47:46.000000000 +0100 +@@ -221,6 +221,7 @@ + __pagevec_lru_add_active(pvec); + put_cpu_var(lru_add_active_pvecs); + } ++EXPORT_SYMBOL(lru_cache_add_active); + + /* + * Drain pages out of the cpu's pagevecs. +@@ -256,6 +257,8 @@ + put_cpu(); + } + ++EXPORT_SYMBOL(lru_add_drain); ++ + #ifdef CONFIG_NUMA + static void lru_add_drain_per_cpu(struct work_struct *dummy) + { +Index: kernel/mm/swap_state.c +=================================================================== +--- kernel.orig/mm/swap_state.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/swap_state.c 2008-11-24 15:47:46.000000000 +0100 +@@ -19,6 +19,9 @@ + + #include + ++#include ++#include ++ + /* + * swapper_space is a fiction, retained to simplify the path through + * vmscan's shrink_page_list, to make sync_page look nicer, and to allow +@@ -43,6 +46,7 @@ + .i_mmap_nonlinear = LIST_HEAD_INIT(swapper_space.i_mmap_nonlinear), + .backing_dev_info = &swap_backing_dev_info, + }; ++EXPORT_SYMBOL(swapper_space); + + #define INC_CACHE_INFO(x) do { swap_cache_info.x++; } while (0) + +@@ -53,14 +57,18 @@ + unsigned long find_total; + unsigned long noent_race; + unsigned long exist_race; ++ unsigned long remove_race; + } swap_cache_info; ++EXPORT_SYMBOL(swap_cache_info); + + void show_swap_cache_info(void) + { +- printk("Swap cache: add %lu, delete %lu, find %lu/%lu, race %lu+%lu\n", ++ printk("Swap cache: add %lu, delete %lu, find %lu/%lu, " ++ "race %lu+%lu+%lu\n", + swap_cache_info.add_total, swap_cache_info.del_total, + swap_cache_info.find_success, swap_cache_info.find_total, +- swap_cache_info.noent_race, swap_cache_info.exist_race); ++ swap_cache_info.noent_race, swap_cache_info.exist_race, ++ swap_cache_info.remove_race); + printk("Free swap = %lukB\n", nr_swap_pages << (PAGE_SHIFT - 10)); + printk("Total swap = %lukB\n", total_swap_pages << (PAGE_SHIFT - 10)); + } +@@ -69,8 +77,7 @@ + * __add_to_swap_cache resembles add_to_page_cache on swapper_space, + * but sets SwapCache flag and private instead of mapping and index. + */ +-static int __add_to_swap_cache(struct page *page, swp_entry_t entry, +- gfp_t gfp_mask) ++int __add_to_swap_cache(struct page *page, swp_entry_t entry, gfp_t gfp_mask) + { + int error; + +@@ -95,7 +102,9 @@ + return error; + } + +-static int add_to_swap_cache(struct page *page, swp_entry_t entry) ++EXPORT_SYMBOL(__add_to_swap_cache); ++ ++int add_to_swap_cache(struct page *page, swp_entry_t entry) + { + int error; + +@@ -120,6 +129,8 @@ + return 0; + } + ++EXPORT_SYMBOL(add_to_swap_cache); ++ + /* + * This must be called only on pages that have + * been verified to be in the swap cache. +@@ -154,7 +165,14 @@ + BUG_ON(!PageLocked(page)); + + for (;;) { +- entry = get_swap_page(); ++ struct user_beancounter *ub; ++ ++ ub = pb_grab_page_ub(page); ++ if (IS_ERR(ub)) ++ return 0; ++ ++ entry = get_swap_page(ub); ++ put_beancounter(ub); + if (!entry.val) + return 0; + +@@ -240,6 +258,7 @@ + delete_from_swap_cache(page); + /* shift page from clean_pages to dirty_pages list */ + ClearPageDirty(page); ++ ub_io_release_debug(page); + set_page_dirty(page); + } + return err; +@@ -255,10 +274,13 @@ + */ + static inline void free_swap_cache(struct page *page) + { +- if (PageSwapCache(page) && !TestSetPageLocked(page)) { ++ if (!PageSwapCache(page)) ++ return; ++ if (!TestSetPageLocked(page)) { + remove_exclusive_swap_page(page); + unlock_page(page); +- } ++ } else ++ INC_CACHE_INFO(remove_race); + } + + /* +@@ -368,3 +390,5 @@ + page_cache_release(new_page); + return found_page; + } ++ ++EXPORT_SYMBOL(read_swap_cache_async); +Index: kernel/mm/swapfile.c +=================================================================== +--- kernel.orig/mm/swapfile.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/swapfile.c 2008-11-24 15:47:46.000000000 +0100 +@@ -32,6 +32,8 @@ + #include + #include + ++#include ++ + DEFINE_SPINLOCK(swap_lock); + unsigned int nr_swapfiles; + long total_swap_pages; +@@ -43,8 +45,12 @@ + static const char Unused_offset[] = "Unused swap offset entry "; + + struct swap_list_t swap_list = {-1, -1}; ++struct swap_info_struct swap_info[MAX_SWAPFILES]; + +-static struct swap_info_struct swap_info[MAX_SWAPFILES]; ++EXPORT_SYMBOL(total_swap_pages); ++EXPORT_SYMBOL(swap_lock); ++EXPORT_SYMBOL(swap_list); ++EXPORT_SYMBOL(swap_info); + + static DEFINE_MUTEX(swapon_mutex); + +@@ -171,7 +177,7 @@ + return 0; + } + +-swp_entry_t get_swap_page(void) ++swp_entry_t get_swap_page(struct user_beancounter *ub) + { + struct swap_info_struct *si; + pgoff_t offset; +@@ -192,6 +198,8 @@ + wrapped++; + } + ++ if (si->flags & SWP_READONLY) ++ continue; + if (!si->highest_bit) + continue; + if (!(si->flags & SWP_WRITEOK)) +@@ -201,6 +209,7 @@ + offset = scan_swap_map(si); + if (offset) { + spin_unlock(&swap_lock); ++ ub_swapentry_inc(si, offset, ub); + return swp_entry(type, offset); + } + next = swap_list.next; +@@ -212,6 +221,8 @@ + return (swp_entry_t) {0}; + } + ++EXPORT_SYMBOL(get_swap_page); ++ + swp_entry_t get_swap_page_of_type(int type) + { + struct swap_info_struct *si; +@@ -219,7 +230,7 @@ + + spin_lock(&swap_lock); + si = swap_info + type; +- if (si->flags & SWP_WRITEOK) { ++ if (si->flags & SWP_WRITEOK && !(si->flags & SWP_READONLY)) { + nr_swap_pages--; + offset = scan_swap_map(si); + if (offset) { +@@ -276,6 +287,7 @@ + count--; + p->swap_map[offset] = count; + if (!count) { ++ ub_swapentry_dec(p, offset); + if (offset < p->lowest_bit) + p->lowest_bit = offset; + if (offset > p->highest_bit) +@@ -304,6 +316,8 @@ + } + } + ++EXPORT_SYMBOL(swap_free); ++ + /* + * How many references to page are currently swapped out? + */ +@@ -385,6 +399,55 @@ + return retval; + } + ++int try_to_remove_exclusive_swap_page(struct page *page) ++{ ++ int retval; ++ struct swap_info_struct * p; ++ swp_entry_t entry; ++ ++ BUG_ON(PagePrivate(page)); ++ BUG_ON(!PageLocked(page)); ++ ++ if (!PageSwapCache(page)) ++ return 0; ++ if (PageWriteback(page)) ++ return 0; ++ if (page_count(page) != 2) /* 2: us + cache */ ++ return 0; ++ ++ entry.val = page->private; ++ p = swap_info_get(entry); ++ if (!p) ++ return 0; ++ ++ if (!vm_swap_full() && ++ (p->flags & (SWP_ACTIVE|SWP_READONLY)) == SWP_ACTIVE) { ++ spin_unlock(&swap_lock); ++ return 0; ++ } ++ ++ /* Is the only swap cache user the cache itself? */ ++ retval = 0; ++ if (p->swap_map[swp_offset(entry)] == 1) { ++ /* Recheck the page count with the swapcache lock held.. */ ++ write_lock_irq(&swapper_space.tree_lock); ++ if ((page_count(page) == 2) && !PageWriteback(page)) { ++ __delete_from_swap_cache(page); ++ SetPageDirty(page); ++ retval = 1; ++ } ++ write_unlock_irq(&swapper_space.tree_lock); ++ } ++ spin_unlock(&swap_lock); ++ ++ if (retval) { ++ swap_free(entry); ++ page_cache_release(page); ++ } ++ ++ return retval; ++} ++ + /* + * Free the swap entry like above, but also try to + * free the page cache entry if it is the last user. +@@ -424,6 +487,7 @@ + page_cache_release(page); + } + } ++EXPORT_SYMBOL(free_swap_and_cache); + + #ifdef CONFIG_HIBERNATION + /* +@@ -507,11 +571,17 @@ + * force COW, vm_page_prot omits write permission from any private vma. + */ + static void unuse_pte(struct vm_area_struct *vma, pte_t *pte, +- unsigned long addr, swp_entry_t entry, struct page *page) ++ unsigned long addr, swp_entry_t entry, struct page *page, ++ struct page_beancounter **pb) + { +- inc_mm_counter(vma->vm_mm, anon_rss); ++ struct mm_struct *mm; ++ ++ mm = vma->vm_mm; ++ inc_mm_counter(mm, anon_rss); ++ ub_unused_privvm_dec(mm, vma); ++ pb_add_ref(page, mm, pb); + get_page(page); +- set_pte_at(vma->vm_mm, addr, pte, ++ set_pte_at(mm, addr, pte, + pte_mkold(mk_pte(page, vma->vm_page_prot))); + page_add_anon_rmap(page, vma, addr); + swap_free(entry); +@@ -524,7 +594,8 @@ + + static int unuse_pte_range(struct vm_area_struct *vma, pmd_t *pmd, + unsigned long addr, unsigned long end, +- swp_entry_t entry, struct page *page) ++ swp_entry_t entry, struct page *page, ++ struct page_beancounter **pb) + { + pte_t swp_pte = swp_entry_to_pte(entry); + pte_t *pte; +@@ -538,7 +609,7 @@ + * Test inline before going to call unuse_pte. + */ + if (unlikely(pte_same(*pte, swp_pte))) { +- unuse_pte(vma, pte++, addr, entry, page); ++ unuse_pte(vma, pte++, addr, entry, page, pb); + found = 1; + break; + } +@@ -549,7 +620,8 @@ + + static inline int unuse_pmd_range(struct vm_area_struct *vma, pud_t *pud, + unsigned long addr, unsigned long end, +- swp_entry_t entry, struct page *page) ++ swp_entry_t entry, struct page *page, ++ struct page_beancounter **pb) + { + pmd_t *pmd; + unsigned long next; +@@ -559,7 +631,7 @@ + next = pmd_addr_end(addr, end); + if (pmd_none_or_clear_bad(pmd)) + continue; +- if (unuse_pte_range(vma, pmd, addr, next, entry, page)) ++ if (unuse_pte_range(vma, pmd, addr, next, entry, page, pb)) + return 1; + } while (pmd++, addr = next, addr != end); + return 0; +@@ -567,7 +639,8 @@ + + static inline int unuse_pud_range(struct vm_area_struct *vma, pgd_t *pgd, + unsigned long addr, unsigned long end, +- swp_entry_t entry, struct page *page) ++ swp_entry_t entry, struct page *page, ++ struct page_beancounter **pb) + { + pud_t *pud; + unsigned long next; +@@ -577,14 +650,15 @@ + next = pud_addr_end(addr, end); + if (pud_none_or_clear_bad(pud)) + continue; +- if (unuse_pmd_range(vma, pud, addr, next, entry, page)) ++ if (unuse_pmd_range(vma, pud, addr, next, entry, page, pb)) + return 1; + } while (pud++, addr = next, addr != end); + return 0; + } + + static int unuse_vma(struct vm_area_struct *vma, +- swp_entry_t entry, struct page *page) ++ swp_entry_t entry, struct page *page, ++ struct page_beancounter **pb) + { + pgd_t *pgd; + unsigned long addr, end, next; +@@ -605,14 +679,15 @@ + next = pgd_addr_end(addr, end); + if (pgd_none_or_clear_bad(pgd)) + continue; +- if (unuse_pud_range(vma, pgd, addr, next, entry, page)) ++ if (unuse_pud_range(vma, pgd, addr, next, entry, page, pb)) + return 1; + } while (pgd++, addr = next, addr != end); + return 0; + } + + static int unuse_mm(struct mm_struct *mm, +- swp_entry_t entry, struct page *page) ++ swp_entry_t entry, struct page *page, ++ struct page_beancounter **pb) + { + struct vm_area_struct *vma; + +@@ -627,7 +702,7 @@ + lock_page(page); + } + for (vma = mm->mmap; vma; vma = vma->vm_next) { +- if (vma->anon_vma && unuse_vma(vma, entry, page)) ++ if (vma->anon_vma && unuse_vma(vma, entry, page, pb)) + break; + } + up_read(&mm->mmap_sem); +@@ -693,6 +768,7 @@ + int retval = 0; + int reset_overflow = 0; + int shmem; ++ struct page_beancounter *pb; + + /* + * When searching mms for an entry, a good strategy is to +@@ -744,6 +820,13 @@ + break; + } + ++ pb = NULL; ++ if (pb_alloc_all(&pb)) { ++ page_cache_release(page); ++ retval = -ENOMEM; ++ break; ++ } ++ + /* + * Don't hold on to start_mm if it looks like exiting. + */ +@@ -766,6 +849,20 @@ + lock_page(page); + wait_on_page_writeback(page); + ++ /* If read failed we cannot map not-uptodate page to ++ * user space. Actually, we are in serious troubles, ++ * we do not even know what process to kill. So, the only ++ * variant remains: to stop swapoff() and allow someone ++ * to kill processes to zap invalid pages. ++ */ ++ if (unlikely(!PageUptodate(page))) { ++ pb_free_list(&pb); ++ unlock_page(page); ++ page_cache_release(page); ++ retval = -EIO; ++ break; ++ } ++ + /* + * Remove all references to entry. + * Whenever we reach init_mm, there's no address space +@@ -777,7 +874,7 @@ + if (start_mm == &init_mm) + shmem = shmem_unuse(entry, page); + else +- retval = unuse_mm(start_mm, entry, page); ++ retval = unuse_mm(start_mm, entry, page, &pb); + } + if (*swap_map > 1) { + int set_start_mm = (*swap_map >= swcount); +@@ -807,7 +904,7 @@ + set_start_mm = 1; + shmem = shmem_unuse(entry, page); + } else +- retval = unuse_mm(mm, entry, page); ++ retval = unuse_mm(mm, entry, page, &pb); + if (set_start_mm && *swap_map < swcount) { + mmput(new_start_mm); + atomic_inc(&mm->mm_users); +@@ -821,6 +918,8 @@ + mmput(start_mm); + start_mm = new_start_mm; + } ++ ++ pb_free_list(&pb); + if (retval) { + unlock_page(page); + page_cache_release(page); +@@ -1183,6 +1282,10 @@ + int i, type, prev; + int err; + ++ /* VE admin check is just to be on the safe side, the admin may affect ++ * swaps only if he has access to special, i.e. if he has been granted ++ * access to the block device or if the swap file is in the area ++ * visible to him. */ + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + +@@ -1282,6 +1385,7 @@ + spin_unlock(&swap_lock); + mutex_unlock(&swapon_mutex); + vfree(swap_map); ++ ub_swap_fini(p); + inode = mapping->host; + if (S_ISBLK(inode->i_mode)) { + struct block_device *bdev = I_BDEV(inode); +@@ -1301,6 +1405,8 @@ + return err; + } + ++EXPORT_SYMBOL(sys_swapoff); ++ + #ifdef CONFIG_PROC_FS + /* iterator */ + static void *swap_start(struct seq_file *swap, loff_t *pos) +@@ -1635,9 +1741,16 @@ + goto bad_swap; + } + ++ if (ub_swap_init(p, maxpages)) { ++ error = -ENOMEM; ++ goto bad_swap; ++ } ++ + mutex_lock(&swapon_mutex); + spin_lock(&swap_lock); + p->flags = SWP_ACTIVE; ++ if (swap_flags & SWAP_FLAG_READONLY) ++ p->flags |= SWP_READONLY; + nr_swap_pages += nr_good_pages; + total_swap_pages += nr_good_pages; + +@@ -1697,6 +1810,8 @@ + return error; + } + ++EXPORT_SYMBOL(sys_swapon); ++ + void si_swapinfo(struct sysinfo *val) + { + unsigned int i; +@@ -1756,6 +1871,8 @@ + goto out; + } + ++EXPORT_SYMBOL(swap_duplicate); ++ + struct swap_info_struct * + get_swap_info_struct(unsigned type) + { +Index: kernel/mm/truncate.c +=================================================================== +--- kernel.orig/mm/truncate.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/truncate.c 2008-11-24 15:47:46.000000000 +0100 +@@ -77,6 +77,7 @@ + BDI_RECLAIMABLE); + if (account_size) + task_io_account_cancelled_write(account_size); ++ ub_io_release_context(page, account_size); + } + } + } +Index: kernel/mm/vmalloc.c +=================================================================== +--- kernel.orig/mm/vmalloc.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/vmalloc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,6 +20,9 @@ + #include + #include + ++#include ++#include ++ + + DEFINE_RWLOCK(vmlist_lock); + struct vm_struct *vmlist; +@@ -280,6 +283,70 @@ + return tmp; + } + ++struct vm_struct * get_vm_area_best(unsigned long size, unsigned long flags) ++{ ++ unsigned long addr, best_addr, delta, best_delta; ++ struct vm_struct **p, **best_p, *tmp, *area; ++ ++ area = kmalloc(sizeof(*area), GFP_KERNEL); ++ if (!area) ++ return NULL; ++ ++ size += PAGE_SIZE; /* one-page gap at the end */ ++ addr = VMALLOC_START; ++ best_addr = 0UL; ++ best_p = NULL; ++ best_delta = PAGE_ALIGN(VMALLOC_END) - VMALLOC_START; ++ ++ write_lock(&vmlist_lock); ++ for (p = &vmlist; (tmp = *p) && ++ (tmp->addr <= (void *)PAGE_ALIGN(VMALLOC_END)); ++ p = &tmp->next) { ++ if ((unsigned long)tmp->addr < addr) ++ continue; ++ if ((size + addr) < addr) ++ break; ++ delta = (unsigned long) tmp->addr - (size + addr); ++ if (delta < best_delta) { ++ best_delta = delta; ++ best_addr = addr; ++ best_p = p; ++ } ++ addr = tmp->size + (unsigned long)tmp->addr; ++ if (addr > VMALLOC_END-size) ++ break; ++ } ++ ++ if (!tmp || (tmp->addr > (void *)PAGE_ALIGN(VMALLOC_END))) { ++ /* check free area after list end */ ++ delta = (unsigned long) PAGE_ALIGN(VMALLOC_END) - (size + addr); ++ if (delta < best_delta) { ++ best_delta = delta; ++ best_addr = addr; ++ best_p = p; ++ } ++ } ++ if (best_addr) { ++ area->flags = flags; ++ /* allocate at the end of this area */ ++ area->addr = (void *)(best_addr + best_delta); ++ area->size = size; ++ area->next = *best_p; ++ area->pages = NULL; ++ area->nr_pages = 0; ++ area->phys_addr = 0; ++ *best_p = area; ++ /* check like in __vunmap */ ++ WARN_ON((PAGE_SIZE - 1) & (unsigned long)area->addr); ++ } else { ++ kfree(area); ++ area = NULL; ++ } ++ write_unlock(&vmlist_lock); ++ ++ return area; ++} ++ + /* Caller must hold vmlist_lock */ + static struct vm_struct *__remove_vm_area(void *addr) + { +@@ -319,7 +386,7 @@ + return v; + } + +-static void __vunmap(void *addr, int deallocate_pages) ++static void __vunmap(void *addr, int deallocate_pages, int uncharge) + { + struct vm_struct *area; + +@@ -345,6 +412,8 @@ + if (deallocate_pages) { + int i; + ++ if (uncharge) ++ dec_vmalloc_charged(area); + for (i = 0; i < area->nr_pages; i++) { + BUG_ON(!area->pages[i]); + __free_page(area->pages[i]); +@@ -373,7 +442,7 @@ + void vfree(void *addr) + { + BUG_ON(in_interrupt()); +- __vunmap(addr, 1); ++ __vunmap(addr, 1, 1); + } + EXPORT_SYMBOL(vfree); + +@@ -389,7 +458,7 @@ + void vunmap(void *addr) + { + BUG_ON(in_interrupt()); +- __vunmap(addr, 0); ++ __vunmap(addr, 0, 0); + } + EXPORT_SYMBOL(vunmap); + +@@ -464,10 +533,12 @@ + + if (map_vm_area(area, prot, &pages)) + goto fail; ++ ++ inc_vmalloc_charged(area, gfp_mask); + return area->addr; + + fail: +- vfree(area->addr); ++ __vunmap(area->addr, 1, 0); + return NULL; + } + +@@ -509,6 +580,21 @@ + } + EXPORT_SYMBOL(__vmalloc); + ++static void *____vmalloc(unsigned long size, gfp_t mask, pgprot_t prot) ++{ ++ struct vm_struct *area; ++ ++ size = PAGE_ALIGN(size); ++ if (!size || (size >> PAGE_SHIFT) > num_physpages) ++ return NULL; ++ ++ area = get_vm_area_best(size, VM_ALLOC); ++ if (!area) ++ return NULL; ++ ++ return __vmalloc_area_node(area, mask, prot, -1); ++} ++ + /** + * vmalloc - allocate virtually contiguous memory + * @size: allocation size +@@ -524,6 +610,26 @@ + } + EXPORT_SYMBOL(vmalloc); + ++void *ub_vmalloc(unsigned long size) ++{ ++ return __vmalloc(size, GFP_KERNEL_UBC | __GFP_HIGHMEM, PAGE_KERNEL); ++} ++EXPORT_SYMBOL(ub_vmalloc); ++ ++void *vmalloc_best(unsigned long size) ++{ ++ return ____vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL); ++} ++ ++EXPORT_SYMBOL(vmalloc_best); ++ ++void *ub_vmalloc_best(unsigned long size) ++{ ++ return ____vmalloc(size, GFP_KERNEL_UBC | __GFP_HIGHMEM, PAGE_KERNEL); ++} ++ ++EXPORT_SYMBOL(ub_vmalloc_best); ++ + /** + * vmalloc_user - allocate zeroed virtually contiguous memory for userspace + * @size: allocation size +@@ -564,6 +670,12 @@ + } + EXPORT_SYMBOL(vmalloc_node); + ++void *ub_vmalloc_node(unsigned long size, int node) ++{ ++ return __vmalloc_node(size, GFP_KERNEL_UBC | __GFP_HIGHMEM, PAGE_KERNEL, node); ++} ++EXPORT_SYMBOL(ub_vmalloc_node); ++ + #ifndef PAGE_KERNEL_EXEC + # define PAGE_KERNEL_EXEC PAGE_KERNEL + #endif +@@ -823,3 +935,37 @@ + kfree(area); + } + EXPORT_SYMBOL_GPL(free_vm_area); ++ ++void vprintstat(void) ++{ ++ struct vm_struct *p, *last_p = NULL; ++ unsigned long addr, size, free_size, max_free_size; ++ int num; ++ ++ addr = VMALLOC_START; ++ size = max_free_size = 0; ++ num = 0; ++ ++ read_lock(&vmlist_lock); ++ for (p = vmlist; p; p = p->next) { ++ free_size = (unsigned long)p->addr - addr; ++ if (free_size > max_free_size) ++ max_free_size = free_size; ++ addr = (unsigned long)p->addr + p->size; ++ size += p->size; ++ ++num; ++ last_p = p; ++ } ++ if (last_p) { ++ free_size = VMALLOC_END - ++ ((unsigned long)last_p->addr + last_p->size); ++ if (free_size > max_free_size) ++ max_free_size = free_size; ++ } ++ read_unlock(&vmlist_lock); ++ ++ printk("VMALLOC Used: %luKB Total: %luKB Entries: %d\n" ++ " Max_Free: %luKB Start: %lx End: %lx\n", ++ size/1024, (VMALLOC_END - VMALLOC_START)/1024, num, ++ max_free_size/1024, VMALLOC_START, VMALLOC_END); ++} +Index: kernel/mm/vmscan.c +=================================================================== +--- kernel.orig/mm/vmscan.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/vmscan.c 2008-11-24 15:47:46.000000000 +0100 +@@ -38,10 +38,14 @@ + #include + #include + ++#include ++#include ++ + #include + #include + + #include ++#include + + #include "internal.h" + +@@ -161,6 +165,9 @@ + if (scanned == 0) + scanned = SWAP_CLUSTER_MAX; + ++ if (unlikely(test_tsk_thread_flag(current, TIF_MEMDIE))) ++ return 1; ++ + if (!down_read_trylock(&shrinker_rwsem)) + return 1; /* Assume we'll be able to shrink next time */ + +@@ -195,6 +202,9 @@ + int shrink_ret; + int nr_before; + ++ if (unlikely(test_tsk_thread_flag(current, TIF_MEMDIE))) ++ goto done; ++ + nr_before = (*shrinker->shrink)(0, gfp_mask); + shrink_ret = (*shrinker->shrink)(this_scan, gfp_mask); + if (shrink_ret == -1) +@@ -209,6 +219,7 @@ + + shrinker->nr += total_scan; + } ++done: + up_read(&shrinker_rwsem); + return ret; + } +@@ -322,6 +333,7 @@ + */ + if (PagePrivate(page)) { + if (try_to_free_buffers(page)) { ++ ub_io_release_context(page, 0); + ClearPageDirty(page); + printk("%s: orphaned page\n", __FUNCTION__); + return PAGE_CLEAN; +@@ -1016,6 +1028,7 @@ + reclaim_mapped = 1; + } + ++ {KSTAT_PERF_ENTER(refill_inact) + lru_add_drain(); + spin_lock_irq(&zone->lru_lock); + pgmoved = isolate_lru_pages(nr_pages, &zone->active_list, +@@ -1095,6 +1108,7 @@ + spin_unlock_irq(&zone->lru_lock); + + pagevec_release(&pvec); ++ KSTAT_PERF_LEAVE(refill_inact)} + } + + /* +@@ -1133,6 +1147,8 @@ + nr_to_scan = min(nr_active, + (unsigned long)sc->swap_cluster_max); + nr_active -= nr_to_scan; ++ if (unlikely(test_tsk_thread_flag(current, TIF_MEMDIE))) ++ goto done; + shrink_active_list(nr_to_scan, zone, sc, priority); + } + +@@ -1140,12 +1156,15 @@ + nr_to_scan = min(nr_inactive, + (unsigned long)sc->swap_cluster_max); + nr_inactive -= nr_to_scan; ++ if (unlikely(test_tsk_thread_flag(current, TIF_MEMDIE))) ++ goto done; + nr_reclaimed += shrink_inactive_list(nr_to_scan, zone, + sc); + } + } + + throttle_vm_writeout(sc->gfp_mask); ++done: + return nr_reclaimed; + } + +@@ -1189,6 +1208,9 @@ + sc->all_unreclaimable = 0; + + nr_reclaimed += shrink_zone(priority, zone, sc); ++ ++ if (unlikely(test_tsk_thread_flag(current, TIF_MEMDIE))) ++ break; + } + return nr_reclaimed; + } +@@ -1224,8 +1246,10 @@ + .order = order, + }; + ++ KSTAT_PERF_ENTER(ttfp); + count_vm_event(ALLOCSTALL); + ++ ub_oom_start(); + for (i = 0; zones[i] != NULL; i++) { + struct zone *zone = zones[i]; + +@@ -1265,6 +1289,11 @@ + sc.may_writepage = 1; + } + ++ if (unlikely(test_tsk_thread_flag(current, TIF_MEMDIE))) { ++ ret = 1; ++ goto out; ++ } ++ + /* Take a nap, wait for some writeback to complete */ + if (sc.nr_scanned && priority < DEF_PRIORITY - 2) + congestion_wait(WRITE, HZ/10); +@@ -1290,6 +1319,7 @@ + + zone->prev_priority = priority; + } ++ KSTAT_PERF_LEAVE(ttfp); + return ret; + } + +Index: kernel/mm/vmstat.c +=================================================================== +--- kernel.orig/mm/vmstat.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/mm/vmstat.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,40 @@ + #include + #include + #include ++#include ++ ++void __get_zone_counts(unsigned long *active, unsigned long *inactive, ++ unsigned long *free, struct pglist_data *pgdat) ++{ ++ struct zone *zones = pgdat->node_zones; ++ int i; ++ ++ *active = 0; ++ *inactive = 0; ++ *free = 0; ++ for (i = 0; i < MAX_NR_ZONES; i++) { ++ *active += zone_page_state(&zones[i], NR_ACTIVE); ++ *inactive += zone_page_state(&zones[i], NR_INACTIVE); ++ *free += zone_page_state(&zones[i], NR_FREE_PAGES); ++ } ++} ++ ++void get_zone_counts(unsigned long *active, ++ unsigned long *inactive, unsigned long *free) ++{ ++ struct pglist_data *pgdat; ++ ++ *active = 0; ++ *inactive = 0; ++ *free = 0; ++ for_each_online_pgdat(pgdat) { ++ unsigned long l, m, n; ++ __get_zone_counts(&l, &m, &n, pgdat); ++ *active += l; ++ *inactive += m; ++ *free += n; ++ } ++} + + #ifdef CONFIG_VM_EVENT_COUNTERS + DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}}; +@@ -41,6 +75,20 @@ + } + } + ++unsigned long vm_events(enum vm_event_item i) ++{ ++ int cpu; ++ unsigned long sum; ++ struct vm_event_state *st; ++ ++ sum = 0; ++ for_each_online_cpu(cpu) { ++ st = &per_cpu(vm_event_states, cpu); ++ sum += st->event[i]; ++ } ++ ++ return (sum < 0 ? 0 : sum); ++} + /* + * Accumulate the vm event counters across all CPUs. + * The result is unavoidably approximate - it can change +@@ -733,30 +781,40 @@ + unsigned long *v; + #ifdef CONFIG_VM_EVENT_COUNTERS + unsigned long *e; ++#define VMSTAT_BUFSIZE (NR_VM_ZONE_STAT_ITEMS * sizeof(unsigned long) + \ ++ sizeof(struct vm_event_state)) ++#else ++#define VMSTAT_BUFSIZE (NR_VM_ZONE_STAT_ITEMS * sizeof(unsigned long)) + #endif + int i; + + if (*pos >= ARRAY_SIZE(vmstat_text)) + return NULL; + +-#ifdef CONFIG_VM_EVENT_COUNTERS +- v = kmalloc(NR_VM_ZONE_STAT_ITEMS * sizeof(unsigned long) +- + sizeof(struct vm_event_state), GFP_KERNEL); +-#else +- v = kmalloc(NR_VM_ZONE_STAT_ITEMS * sizeof(unsigned long), +- GFP_KERNEL); +-#endif ++ v = kmalloc(VMSTAT_BUFSIZE, GFP_KERNEL); + m->private = v; + if (!v) + return ERR_PTR(-ENOMEM); +- for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++) +- v[i] = global_page_state(i); ++ ++ if (ve_is_super(get_exec_env())) { ++ for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++) ++ v[i] = global_page_state(i); + #ifdef CONFIG_VM_EVENT_COUNTERS +- e = v + NR_VM_ZONE_STAT_ITEMS; +- all_vm_events(e); +- e[PGPGIN] /= 2; /* sectors -> kbytes */ +- e[PGPGOUT] /= 2; +-#endif ++ e = v + NR_VM_ZONE_STAT_ITEMS; ++ all_vm_events(e); ++ e[PGPGIN] /= 2; /* sectors -> kbytes */ ++ e[PGPGOUT] /= 2; ++#endif ++ } else ++ memset(v, 0, VMSTAT_BUFSIZE); ++ ++ if (virtinfo_notifier_call(VITYPE_GENERAL, ++ VIRTINFO_VMSTAT, v) & NOTIFY_FAIL) { ++ kfree(v); ++ m->private = NULL; ++ return ERR_PTR(-ENOMSG); ++ } ++ + return v + *pos; + } + +Index: kernel/net/8021q/vlan.c +=================================================================== +--- kernel.orig/net/8021q/vlan.c 2008-11-24 14:17:57.000000000 +0100 ++++ kernel/net/8021q/vlan.c 2008-11-24 15:47:46.000000000 +0100 +@@ -33,6 +33,9 @@ + #include + #include + ++#include ++#include ++ + #include + #include "vlan.h" + #include "vlanproc.h" +@@ -68,6 +71,44 @@ + .func = vlan_skb_recv, /* VLAN receive method */ + }; + ++#ifdef CONFIG_VE ++static int vlan_start(void *data) ++{ ++ int err; ++ ++ err = vlan_proc_init(); ++ if (err < 0) ++ goto out_proc; ++ ++ __module_get(THIS_MODULE); ++ return 0; ++ ++out_proc: ++ return err; ++} ++ ++static void vlan_stop(void *data) ++{ ++ struct ve_struct *ve; ++ ++ ve = (struct ve_struct *)data; ++ if (ve->_proc_vlan_dir == NULL) ++ return; ++ ++ vlan_proc_cleanup(); ++ ve->_proc_vlan_conf = NULL; ++ ve->_proc_vlan_dir = NULL; ++ module_put(THIS_MODULE); ++} ++ ++static struct ve_hook vlan_ve_hook = { ++ .init = vlan_start, ++ .fini = vlan_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_NET_POST, ++}; ++#endif ++ + /* End of global variables definitions. */ + + /* +@@ -106,6 +147,7 @@ + goto err2; + + vlan_ioctl_set(vlan_ioctl_handler); ++ ve_hook_register(VE_SS_CHAIN, &vlan_ve_hook); + return 0; + + err2: +@@ -124,6 +166,7 @@ + { + int i; + ++ ve_hook_unregister(&vlan_ve_hook); + vlan_ioctl_set(NULL); + vlan_netlink_fini(); + +@@ -147,14 +190,16 @@ + module_exit(vlan_cleanup_module); + + /* Must be invoked with RCU read lock (no preempt) */ +-static struct vlan_group *__vlan_find_group(int real_dev_ifindex) ++static struct vlan_group *__vlan_find_group(int real_dev_ifindex, ++ struct ve_struct *ve) + { + struct vlan_group *grp; + struct hlist_node *n; + int hash = vlan_grp_hashfn(real_dev_ifindex); + + hlist_for_each_entry_rcu(grp, n, &vlan_group_hash[hash], hlist) { +- if (grp->real_dev_ifindex == real_dev_ifindex) ++ if (grp->real_dev_ifindex == real_dev_ifindex && ++ ve_accessible_strict(ve, grp->owner)) + return grp; + } + +@@ -168,7 +213,8 @@ + struct net_device *__find_vlan_dev(struct net_device *real_dev, + unsigned short VID) + { +- struct vlan_group *grp = __vlan_find_group(real_dev->ifindex); ++ struct vlan_group *grp = __vlan_find_group(real_dev->ifindex, ++ real_dev->owner_env); + + if (grp) + return vlan_group_get_device(grp, VID); +@@ -191,14 +237,14 @@ + unsigned int size; + unsigned int i; + +- grp = kzalloc(sizeof(struct vlan_group), GFP_KERNEL); ++ grp = kzalloc(sizeof(struct vlan_group), GFP_KERNEL_UBC); + if (!grp) + return NULL; + + size = sizeof(struct net_device *) * VLAN_GROUP_ARRAY_PART_LEN; + + for (i = 0; i < VLAN_GROUP_ARRAY_SPLIT_PARTS; i++) { +- grp->vlan_devices_arrays[i] = kzalloc(size, GFP_KERNEL); ++ grp->vlan_devices_arrays[i] = kzalloc(size, GFP_KERNEL_UBC); + if (!grp->vlan_devices_arrays[i]) + goto err; + } +@@ -242,7 +288,7 @@ + return -EINVAL; + + ASSERT_RTNL(); +- grp = __vlan_find_group(real_dev_ifindex); ++ grp = __vlan_find_group(real_dev_ifindex, real_dev->owner_env); + + ret = 0; + +@@ -282,6 +328,9 @@ + + hlist_del_rcu(&grp->hlist); + ++ put_ve(grp->owner); ++ grp->owner = NULL; ++ + /* Free the group, after all cpu's are done. */ + call_rcu(&grp->rcu, vlan_rcu_free); + +@@ -388,6 +437,8 @@ + new_dev->do_ioctl = vlan_dev_ioctl; + + memset(new_dev->broadcast, 0, ETH_ALEN); ++ if (!ve_is_super(get_exec_env())) ++ new_dev->features |= NETIF_F_VIRTUAL; + } + + static void vlan_transfer_operstate(const struct net_device *dev, struct net_device *vlandev) +@@ -455,7 +506,7 @@ + struct vlan_group *grp, *ngrp = NULL; + int err; + +- grp = __vlan_find_group(real_dev->ifindex); ++ grp = __vlan_find_group(real_dev->ifindex, real_dev->owner_env); + if (!grp) { + ngrp = grp = vlan_group_alloc(real_dev->ifindex); + if (!grp) +@@ -609,13 +660,12 @@ + static int vlan_device_event(struct notifier_block *unused, unsigned long event, void *ptr) + { + struct net_device *dev = ptr; +- struct vlan_group *grp = __vlan_find_group(dev->ifindex); ++ struct vlan_group *grp; + int i, flgs; + struct net_device *vlandev; ++ struct ve_struct *env; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- ++ grp = __vlan_find_group(dev->ifindex, dev->owner_env); + if (!grp) + goto out; + +@@ -692,7 +742,9 @@ + ret = unregister_vlan_dev(dev, + VLAN_DEV_INFO(vlandev)->vlan_id); + ++ env = set_exec_env(vlandev->owner_env); + unregister_netdevice(vlandev); ++ set_exec_env(env); + + /* Group was destroyed? */ + if (ret == 1) +@@ -705,6 +757,17 @@ + return NOTIFY_DONE; + } + ++static inline int vlan_check_caps(void) ++{ ++ if (capable(CAP_NET_ADMIN)) ++ return 1; ++#ifdef CONFIG_VE ++ if (capable(CAP_VE_NET_ADMIN)) ++ return 1; ++#endif ++ return 0; ++} ++ + /* + * VLAN IOCTL handler. + * o execute requested action or pass command to the device driver +@@ -752,7 +815,7 @@ + switch (args.cmd) { + case SET_VLAN_INGRESS_PRIORITY_CMD: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!vlan_check_caps()) + break; + vlan_dev_set_ingress_priority(dev, + args.u.skb_priority, +@@ -762,7 +825,7 @@ + + case SET_VLAN_EGRESS_PRIORITY_CMD: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!vlan_check_caps()) + break; + err = vlan_dev_set_egress_priority(dev, + args.u.skb_priority, +@@ -771,7 +834,7 @@ + + case SET_VLAN_FLAG_CMD: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!vlan_check_caps()) + break; + err = vlan_dev_set_vlan_flag(dev, + args.u.flag, +@@ -780,7 +843,7 @@ + + case SET_VLAN_NAME_TYPE_CMD: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!vlan_check_caps()) + break; + if ((args.u.name_type >= 0) && + (args.u.name_type < VLAN_NAME_TYPE_HIGHEST)) { +@@ -793,14 +856,14 @@ + + case ADD_VLAN_CMD: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!vlan_check_caps()) + break; + err = register_vlan_device(dev, args.u.VID); + break; + + case DEL_VLAN_CMD: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!vlan_check_caps()) + break; + err = unregister_vlan_device(dev); + break; +Index: kernel/net/8021q/vlan_dev.c +=================================================================== +--- kernel.orig/net/8021q/vlan_dev.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/8021q/vlan_dev.c 2008-11-24 15:47:46.000000000 +0100 +@@ -453,6 +453,7 @@ + + int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) + { ++ struct ve_struct *env; + struct net_device_stats *stats = vlan_dev_get_stats(dev); + struct vlan_ethhdr *veth = (struct vlan_ethhdr *)(skb->data); + +@@ -507,13 +508,17 @@ + stats->tx_bytes += skb->len; + + skb->dev = VLAN_DEV_INFO(dev)->real_dev; ++ skb->owner_env = skb->dev->owner_env; ++ env = set_exec_env(skb->owner_env); + dev_queue_xmit(skb); ++ set_exec_env(env); + + return 0; + } + + int vlan_dev_hwaccel_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) + { ++ struct ve_struct *env; + struct net_device_stats *stats = vlan_dev_get_stats(dev); + unsigned short veth_TCI; + +@@ -531,7 +536,10 @@ + stats->tx_bytes += skb->len; + + skb->dev = VLAN_DEV_INFO(dev)->real_dev; ++ skb->owner_env = skb->dev->owner_env; ++ env = set_exec_env(skb->owner_env); + dev_queue_xmit(skb); ++ set_exec_env(env); + + return 0; + } +Index: kernel/net/8021q/vlanproc.c +=================================================================== +--- kernel.orig/net/8021q/vlanproc.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/8021q/vlanproc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -115,13 +115,21 @@ + * /proc/net/vlan + */ + ++#ifdef CONFIG_VE ++#define proc_vlan_dir (get_exec_env()->_proc_vlan_dir) ++#else + static struct proc_dir_entry *proc_vlan_dir; ++#endif + + /* + * /proc/net/vlan/config + */ + ++#ifdef CONFIG_VE ++#define proc_vlan_conf (get_exec_env()->_proc_vlan_conf) ++#else + static struct proc_dir_entry *proc_vlan_conf; ++#endif + + /* Strings */ + static const char *vlan_name_type_str[VLAN_NAME_TYPE_HIGHEST] = { +@@ -155,7 +163,7 @@ + * Create /proc/net/vlan entries + */ + +-int __init vlan_proc_init(void) ++int vlan_proc_init(void) + { + proc_vlan_dir = proc_mkdir(name_root, init_net.proc_net); + if (proc_vlan_dir) { +Index: kernel/net/9p/trans_fd.c +=================================================================== +--- kernel.orig/net/9p/trans_fd.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/9p/trans_fd.c 2008-11-24 15:47:46.000000000 +0100 +@@ -459,14 +459,7 @@ + + return 1; + } +- +-static void __exit p9_trans_fd_exit(void) { +- printk(KERN_ERR "Removal of 9p transports not implemented\n"); +- BUG(); +-} +- + module_init(p9_trans_fd_init); +-module_exit(p9_trans_fd_exit); + + MODULE_AUTHOR("Latchesar Ionkov "); + MODULE_AUTHOR("Eric Van Hensbergen "); +Index: kernel/net/Kconfig +=================================================================== +--- kernel.orig/net/Kconfig 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/Kconfig 2008-11-24 15:47:46.000000000 +0100 +@@ -30,7 +30,7 @@ + config NET_NS + bool "Network namespace support" + default n +- depends on EXPERIMENTAL && !SYSFS ++ depends on EXPERIMENTAL + help + Allow user space to create what appear to be multiple instances + of the network stack. +Index: kernel/net/bridge/br.c +=================================================================== +--- kernel.orig/net/bridge/br.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br.c 2008-11-24 15:47:46.000000000 +0100 +@@ -55,6 +55,7 @@ + + brioctl_set(br_ioctl_deviceless_stub); + br_handle_frame_hook = br_handle_frame; ++ br_hard_xmit_hook = br_xmit; + + br_fdb_get_hook = br_fdb_get; + br_fdb_put_hook = br_fdb_put; +@@ -89,6 +90,7 @@ + br_fdb_put_hook = NULL; + + br_handle_frame_hook = NULL; ++ br_hard_xmit_hook = NULL; + br_fdb_fini(); + } + +Index: kernel/net/bridge/br_device.c +=================================================================== +--- kernel.orig/net/bridge/br_device.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_device.c 2008-11-24 15:47:46.000000000 +0100 +@@ -40,16 +40,47 @@ + skb_reset_mac_header(skb); + skb_pull(skb, ETH_HLEN); + ++ skb->brmark = BR_ALREADY_SEEN; ++ + if (dest[0] & 1) + br_flood_deliver(br, skb); + else if ((dst = __br_fdb_get(br, dest)) != NULL) +- br_deliver(dst->dst, skb); ++ br_deliver(dst->dst, skb, 1); + else + br_flood_deliver(br, skb); + + return 0; + } + ++int br_xmit(struct sk_buff *skb, struct net_bridge_port *port) ++{ ++ struct net_bridge *br = port->br; ++ const unsigned char *dest = skb->data; ++ struct net_bridge_fdb_entry *dst; ++ ++ if (!br->via_phys_dev) ++ return 0; ++ ++ br->statistics.tx_packets++; ++ br->statistics.tx_bytes += skb->len; ++ ++ skb_reset_mac_header(skb); ++ skb_pull(skb, ETH_HLEN); ++ ++ skb->brmark = BR_ALREADY_SEEN; ++ ++ if (dest[0] & 1) ++ br_xmit_deliver(br, port, skb); ++ else if ((dst = __br_fdb_get(br, dest)) != NULL) ++ br_deliver(dst->dst, skb, 0); ++ else ++ br_xmit_deliver(br, port, skb); ++ ++ skb_push(skb, ETH_HLEN); ++ ++ return 0; ++} ++ + static int br_dev_open(struct net_device *dev) + { + struct net_bridge *br = netdev_priv(dev); +Index: kernel/net/bridge/br_forward.c +=================================================================== +--- kernel.orig/net/bridge/br_forward.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_forward.c 2008-11-24 15:47:46.000000000 +0100 +@@ -78,14 +78,24 @@ + } + + /* called with rcu_read_lock */ +-void br_deliver(const struct net_bridge_port *to, struct sk_buff *skb) ++void br_deliver(const struct net_bridge_port *to, struct sk_buff *skb, int free) + { + if (should_deliver(to, skb)) { ++ if (!free) { ++ struct sk_buff *skb2; ++ ++ if ((skb2 = skb_clone(skb, GFP_ATOMIC)) == NULL) { ++ to->br->statistics.tx_dropped++; ++ return; ++ } ++ skb = skb2; ++ } + __br_deliver(to, skb); + return; + } + +- kfree_skb(skb); ++ if (free) ++ kfree_skb(skb); + } + + /* called with rcu_read_lock */ +@@ -101,6 +111,7 @@ + + /* called under bridge lock */ + static void br_flood(struct net_bridge *br, struct sk_buff *skb, ++ int free, + void (*__packet_hook)(const struct net_bridge_port *p, + struct sk_buff *skb)) + { +@@ -132,18 +143,41 @@ + return; + } + +- kfree_skb(skb); ++ if (free) ++ kfree_skb(skb); + } + + + /* called with rcu_read_lock */ + void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb) + { +- br_flood(br, skb, __br_deliver); ++ br_flood(br, skb, 1, __br_deliver); ++} ++ ++/* called with rcu_read_lock */ ++void br_xmit_deliver(struct net_bridge *br, struct net_bridge_port *port, ++ struct sk_buff *skb) ++{ ++ struct net_bridge_port *p; ++ ++ list_for_each_entry_rcu(p, &br->port_list, list) { ++ if (p == port) ++ continue; ++ if (should_deliver(p, skb)) { ++ struct sk_buff *skb2; ++ ++ if ((skb2 = skb_clone(skb, GFP_ATOMIC)) == NULL) { ++ br->statistics.tx_dropped++; ++ return; ++ } ++ __br_deliver(p, skb2); ++ } ++ } + } + + /* called under bridge lock */ + void br_flood_forward(struct net_bridge *br, struct sk_buff *skb) + { +- br_flood(br, skb, __br_forward); ++ skb->brmark = BR_ALREADY_SEEN; ++ br_flood(br, skb, 1, __br_forward); + } +Index: kernel/net/bridge/br_if.c +=================================================================== +--- kernel.orig/net/bridge/br_if.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_if.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -160,6 +161,11 @@ + { + struct net_bridge_port *p, *n; + ++ if (br->master_dev) { ++ dev_put(br->master_dev); ++ br->master_dev = NULL; ++ } ++ + list_for_each_entry_safe(p, n, &br->port_list, list) { + del_nbp(p); + } +@@ -303,7 +309,7 @@ + int ret = 0; + + rtnl_lock(); +- dev = __dev_get_by_name(&init_net, name); ++ dev = __dev_get_by_name(current->nsproxy->net_ns, name); + if (dev == NULL) + ret = -ENXIO; /* Could not find device */ + +@@ -403,6 +409,10 @@ + if ((dev->flags & IFF_UP) && netif_carrier_ok(dev) && + (br->dev->flags & IFF_UP)) + br_stp_enable_port(p); ++ if (!(dev->features & NETIF_F_VIRTUAL)) { ++ dev_hold(dev); ++ br->master_dev = dev; ++ } + spin_unlock_bh(&br->lock); + + br_ifinfo_notify(RTM_NEWLINK, p); +@@ -434,6 +444,16 @@ + spin_lock_bh(&br->lock); + br_stp_recalculate_bridge_id(br); + br_features_recompute(br); ++ if (br->master_dev == dev) { ++ br->master_dev = NULL; ++ dev_put(dev); ++ list_for_each_entry(p, &br->port_list, list) ++ if (!(p->dev->features & NETIF_F_VIRTUAL)) { ++ dev_hold(p->dev); ++ br->master_dev = p->dev; ++ break; ++ } ++ } + spin_unlock_bh(&br->lock); + + return 0; +@@ -444,7 +464,7 @@ + struct net_device *dev, *nxt; + + rtnl_lock(); +- for_each_netdev_safe(&init_net, dev, nxt) ++ for_each_netdev_safe(current->nsproxy->net_ns, dev, nxt) + if (dev->priv_flags & IFF_EBRIDGE) + del_br(dev->priv); + rtnl_unlock(); +Index: kernel/net/bridge/br_input.c +=================================================================== +--- kernel.orig/net/bridge/br_input.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_input.c 2008-11-24 15:47:46.000000000 +0100 +@@ -24,13 +24,20 @@ + + static void br_pass_frame_up(struct net_bridge *br, struct sk_buff *skb) + { +- struct net_device *indev; ++ struct net_device *indev, *outdev; + + br->statistics.rx_packets++; + br->statistics.rx_bytes += skb->len; + + indev = skb->dev; +- skb->dev = br->dev; ++ if (!br->via_phys_dev) ++ skb->dev = br->dev; ++ else { ++ skb->brmark = BR_ALREADY_SEEN; ++ outdev = br->master_dev; ++ if (outdev) ++ skb->dev = outdev; ++ } + + NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, indev, NULL, + netif_receive_skb); +@@ -58,7 +65,7 @@ + /* The packet skb2 goes to the local host (NULL to skip). */ + skb2 = NULL; + +- if (br->dev->flags & IFF_PROMISC) ++ if ((br->dev->flags & IFF_PROMISC) && !br->via_phys_dev) + skb2 = skb; + + dst = NULL; +@@ -156,6 +163,9 @@ + } + /* fall through */ + case BR_STATE_LEARNING: ++ if (skb->brmark == BR_ALREADY_SEEN) ++ return 0; ++ + if (!compare_ether_addr(p->br->dev->dev_addr, dest)) + skb->pkt_type = PACKET_HOST; + +Index: kernel/net/bridge/br_ioctl.c +=================================================================== +--- kernel.orig/net/bridge/br_ioctl.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_ioctl.c 2008-11-24 15:47:46.000000000 +0100 +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -28,7 +29,7 @@ + struct net_device *dev; + int i = 0; + +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(current->nsproxy->net_ns, dev) { + if (i >= num) + break; + if (dev->priv_flags & IFF_EBRIDGE) +@@ -91,7 +92,7 @@ + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + +- dev = dev_get_by_index(&init_net, ifindex); ++ dev = dev_get_by_index(current->nsproxy->net_ns, ifindex); + if (dev == NULL) + return -EINVAL; + +@@ -142,6 +143,7 @@ + b.root_port = br->root_port; + + b.stp_enabled = (br->stp_enabled != BR_NO_STP); ++ b.via_phys_dev = br->via_phys_dev; + b.ageing_time = jiffies_to_clock_t(br->ageing_time); + b.hello_timer_value = br_timer_value(&br->hello_timer); + b.tcn_timer_value = br_timer_value(&br->tcn_timer); +@@ -258,6 +260,13 @@ + br_stp_set_enabled(br, args[1]); + return 0; + ++ case BRCTL_SET_VIA_ORIG_DEV: ++ if (!capable(CAP_NET_ADMIN)) ++ return -EPERM; ++ ++ br->via_phys_dev = args[1] ? 1 : 0; ++ return 0; ++ + case BRCTL_SET_BRIDGE_PRIORITY: + if (!capable(CAP_NET_ADMIN)) + return -EPERM; +Index: kernel/net/bridge/br_netlink.c +=================================================================== +--- kernel.orig/net/bridge/br_netlink.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_netlink.c 2008-11-24 15:47:46.000000000 +0100 +@@ -11,6 +11,7 @@ + */ + + #include ++#include + #include + #include + #include "br_private.h" +@@ -111,7 +112,7 @@ + int idx; + + idx = 0; +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(current->nsproxy->net_ns, dev) { + /* not a bridge port */ + if (dev->br_port == NULL || idx < cb->args[0]) + goto skip; +@@ -156,7 +157,7 @@ + if (new_state > BR_STATE_BLOCKING) + return -EINVAL; + +- dev = __dev_get_by_index(&init_net, ifm->ifi_index); ++ dev = __dev_get_by_index(current->nsproxy->net_ns, ifm->ifi_index); + if (!dev) + return -ENODEV; + +Index: kernel/net/bridge/br_notify.c +=================================================================== +--- kernel.orig/net/bridge/br_notify.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_notify.c 2008-11-24 15:47:46.000000000 +0100 +@@ -37,9 +37,6 @@ + struct net_bridge_port *p = dev->br_port; + struct net_bridge *br; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + /* not a port of a bridge */ + if (p == NULL) + return NOTIFY_DONE; +Index: kernel/net/bridge/br_private.h +=================================================================== +--- kernel.orig/net/bridge/br_private.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_private.h 2008-11-24 15:47:46.000000000 +0100 +@@ -90,6 +90,8 @@ + spinlock_t lock; + struct list_head port_list; + struct net_device *dev; ++ struct net_device *master_dev; ++ unsigned char via_phys_dev; + struct net_device_stats statistics; + spinlock_t hash_lock; + struct hlist_head hash[BR_HASH_SIZE]; +@@ -139,6 +141,7 @@ + /* br_device.c */ + extern void br_dev_setup(struct net_device *dev); + extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev); ++extern int br_xmit(struct sk_buff *skb, struct net_bridge_port *port); + + /* br_fdb.c */ + extern int br_fdb_init(void); +@@ -165,12 +168,13 @@ + + /* br_forward.c */ + extern void br_deliver(const struct net_bridge_port *to, +- struct sk_buff *skb); ++ struct sk_buff *skb, int free); + extern int br_dev_queue_push_xmit(struct sk_buff *skb); + extern void br_forward(const struct net_bridge_port *to, + struct sk_buff *skb); + extern int br_forward_finish(struct sk_buff *skb); + extern void br_flood_deliver(struct net_bridge *br, struct sk_buff *skb); ++extern void br_xmit_deliver(struct net_bridge *br, struct net_bridge_port *port, struct sk_buff *skb); + extern void br_flood_forward(struct net_bridge *br, struct sk_buff *skb); + + /* br_if.c */ +Index: kernel/net/bridge/br_stp_bpdu.c +=================================================================== +--- kernel.orig/net/bridge/br_stp_bpdu.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_stp_bpdu.c 2008-11-24 15:47:46.000000000 +0100 +@@ -142,9 +142,6 @@ + struct net_bridge *br; + const unsigned char *buf; + +- if (dev->nd_net != &init_net) +- goto err; +- + if (!p) + goto err; + +Index: kernel/net/bridge/br_sysfs_br.c +=================================================================== +--- kernel.orig/net/bridge/br_sysfs_br.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/br_sysfs_br.c 2008-11-24 15:47:46.000000000 +0100 +@@ -172,6 +172,27 @@ + static DEVICE_ATTR(stp_state, S_IRUGO | S_IWUSR, show_stp_state, + store_stp_state); + ++static ssize_t show_via_phys_dev_state(struct device *cd, ++ struct device_attribute *attr, char *buf) ++{ ++ struct net_bridge *br = to_bridge(cd); ++ return sprintf(buf, "%d\n", br->via_phys_dev); ++} ++ ++static void set_via_phys_dev_state(struct net_bridge *br, unsigned long val) ++{ ++ br->via_phys_dev = val; ++} ++ ++static ssize_t store_via_phys_dev_state(struct device *cd, ++ struct device_attribute *attr, const char *buf, size_t len) ++{ ++ return store_bridge_parm(cd, buf, len, set_via_phys_dev_state); ++} ++ ++static DEVICE_ATTR(via_phys_dev, S_IRUGO | S_IWUSR, show_via_phys_dev_state, ++ store_via_phys_dev_state); ++ + static ssize_t show_priority(struct device *d, struct device_attribute *attr, + char *buf) + { +@@ -340,6 +361,7 @@ + &dev_attr_max_age.attr, + &dev_attr_ageing_time.attr, + &dev_attr_stp_state.attr, ++ &dev_attr_via_phys_dev.attr, + &dev_attr_priority.attr, + &dev_attr_bridge_id.attr, + &dev_attr_root_id.attr, +Index: kernel/net/bridge/netfilter/ebt_among.c +=================================================================== +--- kernel.orig/net/bridge/netfilter/ebt_among.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/bridge/netfilter/ebt_among.c 2008-11-24 15:47:46.000000000 +0100 +@@ -176,7 +176,7 @@ + unsigned int datalen) + { + struct ebt_among_info *info = (struct ebt_among_info *) data; +- int expected_length = sizeof(struct ebt_among_info); ++ int expected_length = EBT_ALIGN(sizeof(struct ebt_among_info)); + const struct ebt_mac_wormhash *wh_dst, *wh_src; + int err; + +@@ -185,7 +185,7 @@ + expected_length += ebt_mac_wormhash_size(wh_dst); + expected_length += ebt_mac_wormhash_size(wh_src); + +- if (datalen != EBT_ALIGN(expected_length)) { ++ if (datalen != expected_length) { + printk(KERN_WARNING + "ebtables: among: wrong size: %d " + "against expected %d, rounded to %Zd\n", +Index: kernel/net/core/datagram.c +=================================================================== +--- kernel.orig/net/core/datagram.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/datagram.c 2008-11-24 15:47:46.000000000 +0100 +@@ -56,6 +56,8 @@ + #include + #include + ++#include ++ + /* + * Is a socket 'connection oriented' ? + */ +@@ -502,6 +504,7 @@ + { + struct sock *sk = sock->sk; + unsigned int mask; ++ int no_ubc_space; + + poll_wait(file, sk->sk_sleep, wait); + mask = 0; +@@ -511,8 +514,14 @@ + mask |= POLLERR; + if (sk->sk_shutdown & RCV_SHUTDOWN) + mask |= POLLRDHUP; +- if (sk->sk_shutdown == SHUTDOWN_MASK) ++ if (sk->sk_shutdown == SHUTDOWN_MASK) { ++ no_ubc_space = 0; + mask |= POLLHUP; ++ } else { ++ no_ubc_space = ub_sock_makewres_other(sk, SOCK_MIN_UBCSPACE_CH); ++ if (no_ubc_space) ++ ub_sock_sndqueueadd_other(sk, SOCK_MIN_UBCSPACE_CH); ++ } + + /* readable? */ + if (!skb_queue_empty(&sk->sk_receive_queue) || +@@ -529,7 +538,7 @@ + } + + /* writable? */ +- if (sock_writeable(sk)) ++ if (!no_ubc_space && sock_writeable(sk)) + mask |= POLLOUT | POLLWRNORM | POLLWRBAND; + else + set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); +Index: kernel/net/core/dev.c +=================================================================== +--- kernel.orig/net/core/dev.c 2008-11-24 14:17:56.000000000 +0100 ++++ kernel/net/core/dev.c 2008-11-24 15:47:46.000000000 +0100 +@@ -122,6 +122,9 @@ + + #include "net-sysfs.h" + ++#include ++#include ++ + /* + * The list of packet types we will receive (as opposed to discard) + * and the routines to invoke. +@@ -196,20 +199,6 @@ + + EXPORT_SYMBOL(dev_base_lock); + +-#define NETDEV_HASHBITS 8 +-#define NETDEV_HASHENTRIES (1 << NETDEV_HASHBITS) +- +-static inline struct hlist_head *dev_name_hash(struct net *net, const char *name) +-{ +- unsigned hash = full_name_hash(name, strnlen(name, IFNAMSIZ)); +- return &net->dev_name_head[hash & ((1 << NETDEV_HASHBITS) - 1)]; +-} +- +-static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex) +-{ +- return &net->dev_index_head[ifindex & ((1 << NETDEV_HASHBITS) - 1)]; +-} +- + /* Device list insertion */ + static int list_netdevice(struct net_device *dev) + { +@@ -672,7 +661,7 @@ + + ASSERT_RTNL(); + +- for_each_netdev(&init_net, dev) ++ for_each_netdev(net, dev) + if (dev->type == type && + !memcmp(dev->dev_addr, ha, dev->addr_len)) + return dev; +@@ -1210,6 +1199,8 @@ + return raw_notifier_call_chain(&netdev_chain, val, dev); + } + ++EXPORT_SYMBOL(call_netdevice_notifiers); ++ + /* When > 0 there are consumers of rx skb time stamps */ + static atomic_t netstamp_needed = ATOMIC_INIT(0); + +@@ -1530,6 +1521,23 @@ + return 0; + } + ++#if defined(CONFIG_BRIDGE) || defined (CONFIG_BRIDGE_MODULE) ++int (*br_hard_xmit_hook)(struct sk_buff *skb, struct net_bridge_port *port); ++static __inline__ int bridge_hard_start_xmit(struct sk_buff *skb, ++ struct net_device *dev) ++{ ++ struct net_bridge_port *port; ++ ++ if (((port = rcu_dereference(dev->br_port)) == NULL) || ++ (skb->brmark == BR_ALREADY_SEEN)) ++ return 0; ++ ++ return br_hard_xmit_hook(skb, port); ++} ++#else ++#define bridge_hard_start_xmit(skb, dev) (0) ++#endif ++ + int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) + { + if (likely(!skb->next)) { +@@ -1543,6 +1551,8 @@ + goto gso; + } + ++ bridge_hard_start_xmit(skb, dev); ++ + return dev->hard_start_xmit(skb, dev); + } + +@@ -1553,6 +1563,9 @@ + + skb->next = nskb->next; + nskb->next = NULL; ++ ++ bridge_hard_start_xmit(skb, dev); ++ + rc = dev->hard_start_xmit(nskb, dev); + if (unlikely(rc)) { + nskb->next = skb->next; +@@ -2021,6 +2034,7 @@ + struct net_device *orig_dev; + int ret = NET_RX_DROP; + __be16 type; ++ struct ve_struct *old_ve; + + /* if we've gotten here through NAPI, check netpoll */ + if (netpoll_receive_skb(skb)) +@@ -2043,6 +2057,16 @@ + skb_reset_transport_header(skb); + skb->mac_len = skb->network_header - skb->mac_header; + ++#ifdef CONFIG_VE ++ /* ++ * Skb might be alloced in another VE context, than its device works. ++ * So, set the correct owner_env. ++ */ ++ skb->owner_env = skb->dev->owner_env; ++ BUG_ON(skb->owner_env == NULL); ++#endif ++ old_ve = set_exec_env(skb->owner_env); ++ + pt_prev = NULL; + + rcu_read_lock(); +@@ -2098,6 +2122,7 @@ + + out: + rcu_read_unlock(); ++ (void)set_exec_env(old_ve); + return ret; + } + +@@ -2757,8 +2782,11 @@ + dev->flags &= ~IFF_PROMISC; + else + dev->flags |= IFF_PROMISC; ++ /* Promiscous mode on these devices does not mean anything */ ++ if (dev->flags & (IFF_LOOPBACK|IFF_POINTOPOINT)) ++ return; + if (dev->flags != old_flags) { +- printk(KERN_INFO "device %s %s promiscuous mode\n", ++ ve_printk(VE_LOG, KERN_INFO "device %s %s promiscuous mode\n", + dev->name, (dev->flags & IFF_PROMISC) ? "entered" : + "left"); + audit_log(current->audit_context, GFP_ATOMIC, +@@ -3423,11 +3451,20 @@ + * - require strict serialization. + * - do not return a value + */ ++ case SIOCSIFMTU: ++ case SIOCSIFHWADDR: + case SIOCSIFFLAGS: ++ if (!capable(CAP_NET_ADMIN) && ++ !capable(CAP_VE_NET_ADMIN)) ++ return -EPERM; ++ dev_load(net, ifr.ifr_name); ++ rtnl_lock(); ++ ret = dev_ifsioc(net, &ifr, cmd); ++ rtnl_unlock(); ++ return ret; ++ + case SIOCSIFMETRIC: +- case SIOCSIFMTU: + case SIOCSIFMAP: +- case SIOCSIFHWADDR: + case SIOCSIFSLAVE: + case SIOCADDMULTI: + case SIOCDELMULTI: +@@ -3494,12 +3531,11 @@ + */ + static int dev_new_index(struct net *net) + { +- static int ifindex; + for (;;) { +- if (++ifindex <= 0) +- ifindex = 1; +- if (!__dev_get_by_index(net, ifindex)) +- return ifindex; ++ if (++net->ifindex <= 0) ++ net->ifindex = 1; ++ if (!__dev_get_by_index(net, net->ifindex)) ++ return net->ifindex; + } + } + +@@ -3602,6 +3638,10 @@ + BUG_ON(!dev->nd_net); + net = dev->nd_net; + ++ ret = -EPERM; ++ if (!ve_is_super(get_exec_env()) && ve_is_dev_movable(dev)) ++ goto out; ++ + spin_lock_init(&dev->queue_lock); + spin_lock_init(&dev->_xmit_lock); + netdev_set_lockdep_class(&dev->_xmit_lock, dev->type); +@@ -3698,6 +3738,10 @@ + + set_bit(__LINK_STATE_PRESENT, &dev->state); + ++ dev->owner_env = get_exec_env(); ++ netdev_bc(dev)->owner_ub = get_beancounter(get_exec_ub()); ++ netdev_bc(dev)->exec_ub = get_beancounter(get_exec_ub()); ++ + dev_init_scheduler(dev); + dev_hold(dev); + list_netdevice(dev); +@@ -3831,6 +3875,7 @@ + void netdev_run_todo(void) + { + struct list_head list; ++ struct ve_struct *old_ve; + + /* Need to guard against multiple cpu's getting out of order. */ + mutex_lock(&net_todo_run_mutex); +@@ -3848,6 +3893,7 @@ + list_replace_init(&net_todo_list, &list); + spin_unlock(&net_todo_list_lock); + ++ old_ve = get_exec_env(); + while (!list_empty(&list)) { + struct net_device *dev + = list_entry(list.next, struct net_device, todo_list); +@@ -3860,6 +3906,7 @@ + continue; + } + ++ (void)set_exec_env(dev->owner_env); + dev->reg_state = NETREG_UNREGISTERED; + + netdev_wait_allrefs(dev); +@@ -3870,13 +3917,21 @@ + BUG_TRAP(!dev->ip6_ptr); + BUG_TRAP(!dev->dn_ptr); + ++ put_beancounter(netdev_bc(dev)->exec_ub); ++ put_beancounter(netdev_bc(dev)->owner_ub); ++ netdev_bc(dev)->exec_ub = NULL; ++ netdev_bc(dev)->owner_ub = NULL; ++ ++ /* It must be the very last action, ++ * after this 'dev' may point to freed up memory. ++ */ + if (dev->destructor) + dev->destructor(dev); + + /* Free network device */ + kobject_put(&dev->dev.kobj); + } +- ++ (void)set_exec_env(old_ve); + out: + mutex_unlock(&net_todo_run_mutex); + } +@@ -3912,7 +3967,7 @@ + ~NETDEV_ALIGN_CONST; + alloc_size += sizeof_priv + NETDEV_ALIGN_CONST; + +- p = kzalloc(alloc_size, GFP_KERNEL); ++ p = kzalloc(alloc_size, GFP_KERNEL_UBC); + if (!p) { + printk(KERN_ERR "alloc_netdev: Unable to allocate device.\n"); + return NULL; +@@ -4023,11 +4078,15 @@ + * Callers must hold the rtnl semaphore. + */ + +-int dev_change_net_namespace(struct net_device *dev, struct net *net, const char *pat) ++int __dev_change_net_namespace(struct net_device *dev, struct net *net, const char *pat, ++ struct ve_struct *src_ve, struct ve_struct *dst_ve, ++ struct user_beancounter *exec_ub) + { + char buf[IFNAMSIZ]; + const char *destname; + int err; ++ struct ve_struct *cur_ve; ++ struct user_beancounter *tmp_ub; + + ASSERT_RTNL(); + +@@ -4078,6 +4137,11 @@ + err = -ENODEV; + unlist_netdevice(dev); + ++ dev->owner_env = dst_ve; ++ tmp_ub = netdev_bc(dev)->exec_ub; ++ netdev_bc(dev)->exec_ub = get_beancounter(exec_ub); ++ put_beancounter(tmp_ub); ++ + synchronize_net(); + + /* Shutdown queueing discipline. */ +@@ -4086,7 +4150,9 @@ + /* Notify protocols, that we are about to destroy + this device. They should clean all the things. + */ ++ cur_ve = set_exec_env(src_ve); + call_netdevice_notifiers(NETDEV_UNREGISTER, dev); ++ (void)set_exec_env(cur_ve); + + /* + * Flush the unicast and multicast chains +@@ -4116,7 +4182,9 @@ + list_netdevice(dev); + + /* Notify protocols, that a new device appeared. */ ++ cur_ve = set_exec_env(dst_ve); + call_netdevice_notifiers(NETDEV_REGISTER, dev); ++ (void)set_exec_env(cur_ve); + + synchronize_net(); + err = 0; +@@ -4124,6 +4192,14 @@ + return err; + } + ++int dev_change_net_namespace(struct net_device *dev, struct net *net, const char *pat) ++{ ++ struct ve_struct *ve = get_exec_env(); ++ struct user_beancounter *ub = get_exec_ub(); ++ ++ return __dev_change_net_namespace(dev, net, pat, ve, ve, ub); ++} ++ + static int dev_cpu_callback(struct notifier_block *nfb, + unsigned long action, + void *ocpu) +@@ -4322,7 +4398,7 @@ + int i; + struct hlist_head *hash; + +- hash = kmalloc(sizeof(*hash) * NETDEV_HASHENTRIES, GFP_KERNEL); ++ hash = kmalloc(sizeof(*hash) * NETDEV_HASHENTRIES, GFP_KERNEL_UBC); + if (hash != NULL) + for (i = 0; i < NETDEV_HASHENTRIES; i++) + INIT_HLIST_HEAD(&hash[i]); +@@ -4464,6 +4540,7 @@ + EXPORT_SYMBOL(dev_valid_name); + EXPORT_SYMBOL(dev_add_pack); + EXPORT_SYMBOL(dev_alloc_name); ++EXPORT_SYMBOL(__dev_change_net_namespace); + EXPORT_SYMBOL(dev_close); + EXPORT_SYMBOL(dev_get_by_flags); + EXPORT_SYMBOL(dev_get_by_index); +@@ -4495,6 +4572,7 @@ + + #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) + EXPORT_SYMBOL(br_handle_frame_hook); ++EXPORT_SYMBOL(br_hard_xmit_hook); + EXPORT_SYMBOL(br_fdb_get_hook); + EXPORT_SYMBOL(br_fdb_put_hook); + #endif +Index: kernel/net/core/dst.c +=================================================================== +--- kernel.orig/net/core/dst.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/dst.c 2008-11-24 15:47:46.000000000 +0100 +@@ -278,11 +278,11 @@ + if (!unregister) { + dst->input = dst->output = dst_discard; + } else { +- dst->dev = init_net.loopback_dev; ++ dst->dev = dst->dev->nd_net->loopback_dev; + dev_hold(dst->dev); + dev_put(dev); + if (dst->neighbour && dst->neighbour->dev == dev) { +- dst->neighbour->dev = init_net.loopback_dev; ++ dst->neighbour->dev = dst->dev; + dev_put(dev); + dev_hold(dst->neighbour->dev); + } +@@ -294,12 +294,10 @@ + struct net_device *dev = ptr; + struct dst_entry *dst, *last = NULL; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + switch (event) { + case NETDEV_UNREGISTER: + case NETDEV_DOWN: ++ dst_gc_task(NULL); + mutex_lock(&dst_gc_mutex); + for (dst = dst_busy_list; dst; dst = dst->next) { + last = dst; +Index: kernel/net/core/ethtool.c +=================================================================== +--- kernel.orig/net/core/ethtool.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/ethtool.c 2008-11-24 15:47:46.000000000 +0100 +@@ -815,7 +815,7 @@ + case ETHTOOL_GPFLAGS: + break; + default: +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) && !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + } + +Index: kernel/net/core/fib_rules.c +=================================================================== +--- kernel.orig/net/core/fib_rules.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/fib_rules.c 2008-11-24 15:47:46.000000000 +0100 +@@ -23,7 +23,7 @@ + { + struct fib_rule *r; + +- r = kzalloc(ops->rule_size, GFP_KERNEL); ++ r = kzalloc(ops->rule_size, GFP_KERNEL_UBC); + if (r == NULL) + return -ENOMEM; + +@@ -245,7 +245,7 @@ + if (err < 0) + goto errout; + +- rule = kzalloc(ops->rule_size, GFP_KERNEL); ++ rule = kzalloc(ops->rule_size, GFP_KERNEL_UBC); + if (rule == NULL) { + err = -ENOMEM; + goto errout; +@@ -621,9 +621,6 @@ + struct net_device *dev = ptr; + struct fib_rules_ops *ops; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + ASSERT_RTNL(); + rcu_read_lock(); + +Index: kernel/net/core/filter.c +=================================================================== +--- kernel.orig/net/core/filter.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/filter.c 2008-11-24 15:47:46.000000000 +0100 +@@ -425,7 +425,7 @@ + if (fprog->filter == NULL) + return -EINVAL; + +- fp = sock_kmalloc(sk, fsize+sizeof(*fp), GFP_KERNEL); ++ fp = sock_kmalloc(sk, fsize+sizeof(*fp), GFP_KERNEL_UBC); + if (!fp) + return -ENOMEM; + if (copy_from_user(fp->insns, fprog->filter, fsize)) { +Index: kernel/net/core/neighbour.c +=================================================================== +--- kernel.orig/net/core/neighbour.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/neighbour.c 2008-11-24 15:47:46.000000000 +0100 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #ifdef CONFIG_SYSCTL + #include + #endif +@@ -35,6 +36,7 @@ + #include + #include + #include ++#include + + #define NEIGH_DEBUG 1 + +@@ -252,6 +254,7 @@ + int entries; + + entries = atomic_inc_return(&tbl->entries) - 1; ++ n = ERR_PTR(-ENOBUFS); + if (entries >= tbl->gc_thresh3 || + (entries >= tbl->gc_thresh2 && + time_after(now, tbl->last_flush + 5 * HZ))) { +@@ -262,7 +265,7 @@ + + n = kmem_cache_zalloc(tbl->kmem_cachep, GFP_ATOMIC); + if (!n) +- goto out_entries; ++ goto out_nomem; + + skb_queue_head_init(&n->arp_queue); + rwlock_init(&n->lock); +@@ -281,6 +284,8 @@ + out: + return n; + ++out_nomem: ++ n = ERR_PTR(-ENOMEM); + out_entries: + atomic_dec(&tbl->entries); + goto out; +@@ -393,12 +398,11 @@ + u32 hash_val; + int key_len = tbl->key_len; + int error; +- struct neighbour *n1, *rc, *n = neigh_alloc(tbl); ++ struct neighbour *n1, *rc, *n; + +- if (!n) { +- rc = ERR_PTR(-ENOBUFS); ++ rc = n = neigh_alloc(tbl); ++ if (IS_ERR(n)) + goto out; +- } + + memcpy(n->primary_key, pkey, key_len); + n->dev = dev; +@@ -644,6 +648,8 @@ + struct neigh_table *tbl = (struct neigh_table *)arg; + struct neighbour *n, **np; + unsigned long expire, now = jiffies; ++ struct ve_struct *env = set_exec_env(tbl->owner_env); ++ struct user_beancounter *ub = set_exec_ub(tbl->owner_ub); + + NEIGH_CACHE_STAT_INC(tbl, periodic_gc_runs); + +@@ -708,6 +714,8 @@ + mod_timer(&tbl->gc_timer, now + expire); + + write_unlock(&tbl->lock); ++ set_exec_ub(ub); ++ set_exec_env(env); + } + + static __inline__ int neigh_max_probes(struct neighbour *n) +@@ -735,6 +743,11 @@ + struct neighbour *neigh = (struct neighbour *)arg; + unsigned state; + int notify = 0; ++ struct ve_struct *env; ++ struct user_beancounter *ub; ++ ++ env = set_exec_env(neigh->dev->owner_env); ++ ub = set_exec_ub(netdev_bc(neigh->dev)->exec_ub); + + write_lock(&neigh->lock); + +@@ -838,6 +851,8 @@ + neigh_update_notify(neigh); + + neigh_release(neigh); ++ (void)set_exec_ub(ub); ++ (void)set_exec_env(env); + } + + int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb) +@@ -1212,6 +1227,9 @@ + unsigned long now = jiffies; + struct sk_buff *skb; + ++ struct ve_struct *env = set_exec_env(tbl->owner_env); ++ struct user_beancounter *ub = set_exec_ub(tbl->owner_ub); ++ + spin_lock(&tbl->proxy_queue.lock); + + skb = tbl->proxy_queue.next; +@@ -1223,6 +1241,7 @@ + skb = skb->next; + if (tdif <= 0) { + struct net_device *dev = back->dev; ++ + __skb_unlink(back, &tbl->proxy_queue); + if (tbl->proxy_redo && netif_running(dev)) + tbl->proxy_redo(back); +@@ -1230,6 +1249,7 @@ + kfree_skb(back); + + dev_put(dev); ++ + } else if (!sched_next || tdif < sched_next) + sched_next = tdif; + } +@@ -1237,6 +1257,8 @@ + if (sched_next) + mod_timer(&tbl->proxy_timer, jiffies + sched_next); + spin_unlock(&tbl->proxy_queue.lock); ++ (void)set_exec_ub(ub); ++ (void)set_exec_env(env); + } + + void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, +@@ -1333,12 +1355,15 @@ + + static struct lock_class_key neigh_table_proxy_queue_class; + +-void neigh_table_init_no_netlink(struct neigh_table *tbl) ++int neigh_table_init_no_netlink(struct neigh_table *tbl) + { + unsigned long now = jiffies; + unsigned long phsize; + ++ atomic_set(&tbl->entries, 0); ++ tbl->hash_chain_gc = 0; + atomic_set(&tbl->parms.refcnt, 1); ++ tbl->parms.next = NULL; + INIT_RCU_HEAD(&tbl->parms.rcu_head); + tbl->parms.reachable_time = + neigh_rand_reach_time(tbl->parms.base_reachable_time); +@@ -1346,18 +1371,26 @@ + if (!tbl->kmem_cachep) + tbl->kmem_cachep = + kmem_cache_create(tbl->id, tbl->entry_size, 0, +- SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ SLAB_HWCACHE_ALIGN|SLAB_UBC, + NULL); ++ if (!tbl->kmem_cachep) ++ return -ENOMEM; ++ + tbl->stats = alloc_percpu(struct neigh_statistics); + if (!tbl->stats) +- panic("cannot create neighbour cache statistics"); ++ return -ENOMEM; ++ ++ tbl->owner_env = get_ve(get_exec_env()); ++ tbl->owner_ub = get_beancounter(get_exec_ub()); + + #ifdef CONFIG_PROC_FS +- tbl->pde = create_proc_entry(tbl->id, 0, init_net.proc_net_stat); +- if (!tbl->pde) +- panic("cannot create neighbour proc dir entry"); +- tbl->pde->proc_fops = &neigh_stat_seq_fops; +- tbl->pde->data = tbl; ++ if (ve_is_super(get_exec_env())) { ++ tbl->pde = create_proc_entry(tbl->id, 0, init_net.proc_net_stat); ++ if (!tbl->pde) ++ panic("cannot create neighbour proc dir entry"); ++ tbl->pde->proc_fops = &neigh_stat_seq_fops; ++ tbl->pde->data = tbl; ++ } + #endif + + tbl->hash_mask = 1; +@@ -1367,7 +1400,7 @@ + tbl->phash_buckets = kzalloc(phsize, GFP_KERNEL); + + if (!tbl->hash_buckets || !tbl->phash_buckets) +- panic("cannot allocate neighbour cache hashes"); ++ goto nomem; + + get_random_bytes(&tbl->hash_rnd, sizeof(tbl->hash_rnd)); + +@@ -1386,15 +1419,38 @@ + + tbl->last_flush = now; + tbl->last_rand = now + tbl->parms.reachable_time * 20; ++ return 0; ++ ++nomem: ++ if (tbl->hash_buckets) { ++ neigh_hash_free(tbl->hash_buckets, tbl->hash_mask + 1); ++ tbl->hash_buckets = NULL; ++ } ++ if (tbl->phash_buckets) { ++ kfree(tbl->phash_buckets); ++ tbl->phash_buckets = NULL; ++ } ++ if (tbl->stats) { ++ free_percpu(tbl->stats); ++ tbl->stats = NULL; ++ } ++ put_beancounter(tbl->owner_ub); ++ put_ve(tbl->owner_env); ++ return -ENOMEM; + } + +-void neigh_table_init(struct neigh_table *tbl) ++int neigh_table_init(struct neigh_table *tbl) + { + struct neigh_table *tmp; ++ int err; + +- neigh_table_init_no_netlink(tbl); ++ err = neigh_table_init_no_netlink(tbl); ++ if (err) ++ return err; + write_lock(&neigh_tbl_lock); + for (tmp = neigh_tables; tmp; tmp = tmp->next) { ++ if (!ve_accessible_strict(tmp->owner_env, get_exec_env())) ++ continue; + if (tmp->family == tbl->family) + break; + } +@@ -1407,6 +1463,7 @@ + "family %d\n", tbl->family); + dump_stack(); + } ++ return 0; + } + + int neigh_table_clear(struct neigh_table *tbl) +@@ -1420,6 +1477,15 @@ + neigh_ifdown(tbl, NULL); + if (atomic_read(&tbl->entries)) + printk(KERN_CRIT "neighbour leakage\n"); ++#ifdef CONFIG_PROC_FS ++ if (ve_is_super(get_exec_env())) { ++ char name[strlen(tbl->id) + sizeof("net/stat/")]; ++ strcpy(name, "net/stat/"); ++ strcat(name, tbl->id); ++ remove_proc_glob_entry(name, NULL); ++ } ++#endif ++ + write_lock(&neigh_tbl_lock); + for (tp = &neigh_tables; *tp; tp = &(*tp)->next) { + if (*tp == tbl) { +@@ -1440,8 +1506,13 @@ + free_percpu(tbl->stats); + tbl->stats = NULL; + +- kmem_cache_destroy(tbl->kmem_cachep); +- tbl->kmem_cachep = NULL; ++ if (ve_is_super(get_exec_env())) { ++ kmem_cache_destroy(tbl->kmem_cachep); ++ tbl->kmem_cachep = NULL; ++ } ++ ++ put_beancounter(tbl->owner_ub); ++ put_ve(tbl->owner_env); + + return 0; + } +@@ -1477,6 +1548,8 @@ + + if (tbl->family != ndm->ndm_family) + continue; ++ if (!ve_accessible_strict(tbl->owner_env, get_exec_env())) ++ continue; + read_unlock(&neigh_tbl_lock); + + if (nla_len(dst_attr) < tbl->key_len) +@@ -1549,6 +1622,8 @@ + + if (tbl->family != ndm->ndm_family) + continue; ++ if (!ve_accessible_strict(tbl->owner_env, get_exec_env())) ++ continue; + read_unlock(&neigh_tbl_lock); + + if (nla_len(tb[NDA_DST]) < tbl->key_len) +@@ -1816,6 +1891,9 @@ + if (ndtmsg->ndtm_family && tbl->family != ndtmsg->ndtm_family) + continue; + ++ if (!ve_accessible_strict(tbl->owner_env, get_exec_env())) ++ continue; ++ + if (nla_strcmp(tb[NDTA_NAME], tbl->id) == 0) + break; + } +@@ -2056,6 +2134,8 @@ + s_t = cb->args[0]; + + for (tbl = neigh_tables, t = 0; tbl; tbl = tbl->next, t++) { ++ if (!ve_accessible_strict(tbl->owner_env, get_exec_env())) ++ continue; + if (t < s_t || (family && tbl->family != family)) + continue; + if (t > s_t) +Index: kernel/net/core/net-sysfs.c +=================================================================== +--- kernel.orig/net/core/net-sysfs.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/net-sysfs.c 2008-11-24 15:47:46.000000000 +0100 +@@ -238,6 +238,27 @@ + {} + }; + ++#ifdef CONFIG_VE ++struct device_attribute ve_net_class_attributes[] = { ++ __ATTR(addr_len, S_IRUGO, show_addr_len, NULL), ++ __ATTR(iflink, S_IRUGO, show_iflink, NULL), ++ __ATTR(ifindex, S_IRUGO, show_ifindex, NULL), ++ __ATTR(features, S_IRUGO, show_features, NULL), ++ __ATTR(type, S_IRUGO, show_type, NULL), ++ __ATTR(link_mode, S_IRUGO, show_link_mode, NULL), ++ __ATTR(address, S_IRUGO, show_address, NULL), ++ __ATTR(broadcast, S_IRUGO, show_broadcast, NULL), ++ __ATTR(carrier, S_IRUGO, show_carrier, NULL), ++ __ATTR(dormant, S_IRUGO, show_dormant, NULL), ++ __ATTR(operstate, S_IRUGO, show_operstate, NULL), ++ __ATTR(mtu, S_IRUGO, show_mtu, NULL), ++ __ATTR(flags, S_IRUGO, show_flags, NULL), ++ __ATTR(tx_queue_len, S_IRUGO, show_tx_queue_len, NULL), ++ {} ++}; ++EXPORT_SYMBOL(ve_net_class_attributes); ++#endif ++ + /* Show a given an attribute in the statistics group */ + static ssize_t netstat_show(const struct device *d, + struct device_attribute *attr, char *buf, +@@ -431,7 +452,7 @@ + kfree((char *)dev - dev->padded); + } + +-static struct class net_class = { ++struct class net_class = { + .name = "net", + .dev_release = netdev_release, + #ifdef CONFIG_SYSFS +@@ -441,6 +462,13 @@ + .dev_uevent = netdev_uevent, + #endif + }; ++EXPORT_SYMBOL(net_class); ++ ++#ifndef CONFIG_VE ++#define visible_net_class net_class ++#else ++#define visible_net_class (*get_exec_env()->net_class) ++#endif + + /* Delete sysfs entries but hold kobject reference until after all + * netdev references are gone. +@@ -460,7 +488,7 @@ + struct attribute_group **groups = net->sysfs_groups; + + device_initialize(dev); +- dev->class = &net_class; ++ dev->class = &visible_net_class; + dev->platform_data = net; + dev->groups = groups; + +@@ -480,7 +508,15 @@ + return device_add(dev); + } + ++void prepare_sysfs_netdev(void) ++{ ++#ifdef CONFIG_VE ++ get_ve0()->net_class = &net_class; ++#endif ++} ++ + int netdev_kobject_init(void) + { ++ prepare_sysfs_netdev(); + return class_register(&net_class); + } +Index: kernel/net/core/net_namespace.c +=================================================================== +--- kernel.orig/net/core/net_namespace.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/net_namespace.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1,6 +1,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -66,6 +67,8 @@ + + static void net_free(struct net *net) + { ++ struct completion *sysfs_completion; ++ + if (!net) + return; + +@@ -75,7 +78,10 @@ + return; + } + ++ sysfs_completion = net->sysfs_completion; + kmem_cache_free(net_cachep, net); ++ if (sysfs_completion) ++ complete(sysfs_completion); + } + + struct net *copy_net_ns(unsigned long flags, struct net *old_net) +@@ -92,7 +98,13 @@ + new_net = net_alloc(); + if (!new_net) + goto out; +- ++#ifdef CONFIG_VE ++ new_net->owner_ve = get_exec_env(); ++ new_net->proc_net = get_exec_env()->_proc_net; ++ new_net->proc_net->data = new_net; ++ new_net->proc_net_stat = get_exec_env()->_proc_net_stat; ++ new_net->proc_net_stat->data = new_net; ++#endif + mutex_lock(&net_mutex); + err = setup_net(new_net); + if (err) +@@ -118,6 +130,7 @@ + { + struct pernet_operations *ops; + struct net *net; ++ struct ve_struct *old_ve; + + net = container_of(work, struct net, work); + +@@ -128,11 +141,13 @@ + list_del(&net->list); + rtnl_unlock(); + ++ old_ve = set_exec_env(net->owner_ve); + /* Run all of the network namespace exit methods */ + list_for_each_entry_reverse(ops, &pernet_list, list) { + if (ops->exit) + ops->exit(net); + } ++ (void)set_exec_env(old_ve); + + mutex_unlock(&net_mutex); + +Index: kernel/net/core/rtnetlink.c +=================================================================== +--- kernel.orig/net/core/rtnetlink.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/rtnetlink.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1207,6 +1207,8 @@ + if (rtnl_msg_handlers[idx] == NULL || + rtnl_msg_handlers[idx][type].dumpit == NULL) + continue; ++ if (vz_security_family_check(idx)) ++ continue; + if (idx > s_idx) + memset(&cb->args[0], 0, sizeof(cb->args)); + if (rtnl_msg_handlers[idx][type].dumpit(skb, cb)) +@@ -1265,13 +1267,13 @@ + return 0; + + family = ((struct rtgenmsg*)NLMSG_DATA(nlh))->rtgen_family; +- if (family >= NPROTO) ++ if (family >= NPROTO || vz_security_family_check(family)) + return -EAFNOSUPPORT; + + sz_idx = type>>2; + kind = type&3; + +- if (kind != 2 && security_netlink_recv(skb, CAP_NET_ADMIN)) ++ if (kind != 2 && security_netlink_recv(skb, CAP_VE_NET_ADMIN)) + return -EPERM; + + if (kind == 2 && nlh->nlmsg_flags&NLM_F_DUMP) { +@@ -1326,9 +1328,6 @@ + { + struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + switch (event) { + case NETDEV_UNREGISTER: + rtmsg_ifinfo(RTM_DELLINK, dev, ~0U); +Index: kernel/net/core/scm.c +=================================================================== +--- kernel.orig/net/core/scm.c 2008-11-24 14:08:46.000000000 +0100 ++++ kernel/net/core/scm.c 2008-11-24 15:47:46.000000000 +0100 +@@ -36,6 +36,7 @@ + #include + #include + ++#include + + /* + * Only allow a user to send credentials, that they could set with +@@ -44,7 +45,9 @@ + + static __inline__ int scm_check_creds(struct ucred *creds) + { +- if ((creds->pid == task_tgid_vnr(current) || capable(CAP_SYS_ADMIN)) && ++ if ((creds->pid == task_tgid_vnr(current) || ++ creds->pid == current->tgid || ++ capable(CAP_VE_SYS_ADMIN)) && + ((creds->uid == current->uid || creds->uid == current->euid || + creds->uid == current->suid) || capable(CAP_SETUID)) && + ((creds->gid == current->gid || creds->gid == current->egid || +@@ -71,7 +74,7 @@ + + if (!fpl) + { +- fpl = kmalloc(sizeof(struct scm_fp_list), GFP_KERNEL); ++ fpl = kmalloc(sizeof(struct scm_fp_list), GFP_KERNEL_UBC); + if (!fpl) + return -ENOMEM; + *fplp = fpl; +@@ -299,7 +302,7 @@ + if (!fpl) + return NULL; + +- new_fpl = kmalloc(sizeof(*fpl), GFP_KERNEL); ++ new_fpl = kmalloc(sizeof(*fpl), GFP_KERNEL_UBC); + if (new_fpl) { + INIT_LIST_HEAD(&new_fpl->list); + for (i=fpl->count-1; i>=0; i--) +Index: kernel/net/core/skbuff.c +=================================================================== +--- kernel.orig/net/core/skbuff.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/skbuff.c 2008-11-24 15:47:46.000000000 +0100 +@@ -66,6 +66,8 @@ + #include + #include + ++#include ++ + #include "kmap_skb.h" + + static struct kmem_cache *skbuff_head_cache __read_mostly; +@@ -158,6 +160,10 @@ + if (!skb) + goto out; + ++ if (ub_skb_alloc_bc(skb, gfp_mask & ~__GFP_DMA)) ++ goto nobc; ++ ++ /* Get the DATA. Size must match skb_add_mtu(). */ + size = SKB_DATA_ALIGN(size); + data = kmalloc_node_track_caller(size + sizeof(struct skb_shared_info), + gfp_mask, node); +@@ -174,6 +180,7 @@ + skb->data = data; + skb_reset_tail_pointer(skb); + skb->end = skb->tail + size; ++ skb->owner_env = get_exec_env(); + /* make sure we initialize shinfo sequentially */ + shinfo = skb_shinfo(skb); + atomic_set(&shinfo->dataref, 1); +@@ -196,6 +203,8 @@ + out: + return skb; + nodata: ++ ub_skb_free_bc(skb); ++nobc: + kmem_cache_free(cache, skb); + skb = NULL; + goto out; +@@ -280,6 +289,7 @@ + struct sk_buff *other; + atomic_t *fclone_ref; + ++ ub_skb_free_bc(skb); + switch (skb->fclone) { + case SKB_FCLONE_UNAVAILABLE: + kmem_cache_free(skbuff_head_cache, skb); +@@ -313,6 +323,7 @@ + #ifdef CONFIG_XFRM + secpath_put(skb->sp); + #endif ++ ub_skb_uncharge(skb); + if (skb->destructor) { + WARN_ON(in_irq()); + skb->destructor(skb); +@@ -402,6 +413,11 @@ + new->tc_verd = old->tc_verd; + #endif + #endif ++#ifdef CONFIG_VE ++ new->accounted = old->accounted; ++ new->redirected = old->redirected; ++#endif ++ skb_copy_brmark(new, old); + skb_copy_secmark(new, old); + } + +@@ -419,6 +435,10 @@ + n->hdr_len = skb->nohdr ? skb_headroom(skb) : skb->hdr_len; + n->cloned = 1; + n->nohdr = 0; ++ C(owner_env); ++#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) ++ C(brmark); ++#endif + n->destructor = NULL; + C(iif); + C(tail); +@@ -428,6 +448,11 @@ + C(truesize); + atomic_set(&n->users, 1); + ++#ifdef CONFIG_VE ++ C(accounted); ++ C(redirected); ++#endif ++ + atomic_inc(&(skb_shinfo(skb)->dataref)); + skb->cloned = 1; + +@@ -483,6 +508,10 @@ + n->fclone = SKB_FCLONE_UNAVAILABLE; + } + ++ if (ub_skb_alloc_bc(n, gfp_mask)) { ++ kmem_cache_free(skbuff_head_cache, n); ++ return NULL; ++ } + return __skb_clone(n, skb); + } + +Index: kernel/net/core/sock.c +=================================================================== +--- kernel.orig/net/core/sock.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/sock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -125,6 +125,9 @@ + #include + #include + ++#include ++#include ++ + #include + + #ifdef CONFIG_INET +@@ -249,7 +252,7 @@ + static char warncomm[TASK_COMM_LEN]; + if (strcmp(warncomm, current->comm) && warned < 5) { + strcpy(warncomm, current->comm); +- printk(KERN_WARNING "process `%s' is using obsolete " ++ ve_printk(VE_LOG, KERN_WARNING "process `%s' is using obsolete " + "%s SO_BSDCOMPAT\n", warncomm, name); + warned++; + } +@@ -278,6 +281,10 @@ + goto out; + } + ++ err = ub_sockrcvbuf_charge(sk, skb); ++ if (err < 0) ++ goto out; ++ + err = sk_filter(sk, skb); + if (err) + goto out; +@@ -911,6 +918,7 @@ + slab = prot->slab; + + security_sk_free(sk); ++ ub_sock_uncharge(sk); + if (slab != NULL) + kmem_cache_free(slab, sk); + else +@@ -940,6 +948,7 @@ + */ + sk->sk_prot = sk->sk_prot_creator = prot; + sock_lock_init(sk); ++ sk->owner_env = get_exec_env(); + sk->sk_net = get_net(net); + } + +@@ -1014,14 +1023,11 @@ + if (filter != NULL) + sk_filter_charge(newsk, filter); + +- if (unlikely(xfrm_sk_clone_policy(newsk))) { +- /* It is still raw copy of parent, so invalidate +- * destructor and make plain sk_free() */ +- newsk->sk_destruct = NULL; +- sk_free(newsk); +- newsk = NULL; +- goto out; +- } ++ if (ub_sock_charge(newsk, newsk->sk_family, newsk->sk_type) < 0) ++ goto out_err; ++ ++ if (unlikely(xfrm_sk_clone_policy(newsk))) ++ goto out_err; + + newsk->sk_err = 0; + newsk->sk_priority = 0; +@@ -1045,14 +1051,23 @@ + if (newsk->sk_prot->sockets_allocated) + atomic_inc(newsk->sk_prot->sockets_allocated); + } +-out: + return newsk; ++ ++out_err: ++ /* It is still raw copy of parent, so invalidate ++ * destructor and make plain sk_free() */ ++ sock_reset_flag(newsk, SOCK_TIMESTAMP); ++ newsk->sk_destruct = NULL; ++ sk_free(newsk); ++ return NULL; + } + + EXPORT_SYMBOL_GPL(sk_clone); + + void sk_setup_caps(struct sock *sk, struct dst_entry *dst) + { ++ extern int sysctl_tcp_use_sg; ++ + __sk_dst_set(sk, dst); + sk->sk_route_caps = dst->dev->features; + if (sk->sk_route_caps & NETIF_F_GSO) +@@ -1063,6 +1078,8 @@ + else + sk->sk_route_caps |= NETIF_F_SG | NETIF_F_HW_CSUM; + } ++ if (!sysctl_tcp_use_sg) ++ sk->sk_route_caps &= ~NETIF_F_SG; + } + EXPORT_SYMBOL_GPL(sk_setup_caps); + +@@ -1221,11 +1238,9 @@ + /* + * Generic send/receive buffer handlers + */ +- +-static struct sk_buff *sock_alloc_send_pskb(struct sock *sk, +- unsigned long header_len, +- unsigned long data_len, +- int noblock, int *errcode) ++struct sk_buff *sock_alloc_send_skb2(struct sock *sk, unsigned long size, ++ unsigned long size2, int noblock, ++ int *errcode) + { + struct sk_buff *skb; + gfp_t gfp_mask; +@@ -1246,46 +1261,35 @@ + if (sk->sk_shutdown & SEND_SHUTDOWN) + goto failure; + +- if (atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) { +- skb = alloc_skb(header_len, gfp_mask); +- if (skb) { +- int npages; +- int i; +- +- /* No pages, we're done... */ +- if (!data_len) +- break; +- +- npages = (data_len + (PAGE_SIZE - 1)) >> PAGE_SHIFT; +- skb->truesize += data_len; +- skb_shinfo(skb)->nr_frags = npages; +- for (i = 0; i < npages; i++) { +- struct page *page; +- skb_frag_t *frag; +- +- page = alloc_pages(sk->sk_allocation, 0); +- if (!page) { +- err = -ENOBUFS; +- skb_shinfo(skb)->nr_frags = i; +- kfree_skb(skb); +- goto failure; +- } +- +- frag = &skb_shinfo(skb)->frags[i]; +- frag->page = page; +- frag->page_offset = 0; +- frag->size = (data_len >= PAGE_SIZE ? +- PAGE_SIZE : +- data_len); +- data_len -= PAGE_SIZE; +- } ++ if (ub_sock_getwres_other(sk, skb_charge_size(size))) { ++ if (size2 < size) { ++ size = size2; ++ continue; ++ } ++ set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); ++ err = -EAGAIN; ++ if (!timeo) ++ goto failure; ++ if (signal_pending(current)) ++ goto interrupted; ++ timeo = ub_sock_wait_for_space(sk, timeo, ++ skb_charge_size(size)); ++ continue; ++ } + ++ if (atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) { ++ skb = alloc_skb(size, gfp_mask); ++ if (skb) + /* Full success... */ + break; +- } ++ ub_sock_retwres_other(sk, skb_charge_size(size), ++ SOCK_MIN_UBCSPACE_CH); + err = -ENOBUFS; + goto failure; + } ++ ub_sock_retwres_other(sk, ++ skb_charge_size(size), ++ SOCK_MIN_UBCSPACE_CH); + set_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); + set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); + err = -EAGAIN; +@@ -1296,6 +1300,7 @@ + timeo = sock_wait_for_wmem(sk, timeo); + } + ++ ub_skb_set_charge(skb, sk, skb_charge_size(size), UB_OTHERSOCKBUF); + skb_set_owner_w(skb, sk); + return skb; + +@@ -1305,11 +1310,12 @@ + *errcode = err; + return NULL; + } ++EXPORT_SYMBOL(sock_alloc_send_skb2); + + struct sk_buff *sock_alloc_send_skb(struct sock *sk, unsigned long size, + int noblock, int *errcode) + { +- return sock_alloc_send_pskb(sk, size, 0, noblock, errcode); ++ return sock_alloc_send_skb2(sk, size, size, noblock, errcode); + } + + static void __lock_sock(struct sock *sk) +@@ -1621,10 +1627,12 @@ + __lock_sock(sk); + sk->sk_lock.owned = 1; + spin_unlock(&sk->sk_lock.slock); ++#if !defined(CONFIG_VZ_CHECKPOINT) && !defined(CONFIG_VZ_CHECKPOINT_MODULE) + /* + * The sk_lock has mutex_lock() semantics here: + */ + mutex_acquire(&sk->sk_lock.dep_map, subclass, 0, _RET_IP_); ++#endif + local_bh_enable(); + } + +@@ -1632,11 +1640,12 @@ + + void fastcall release_sock(struct sock *sk) + { ++#if !defined(CONFIG_VZ_CHECKPOINT) && !defined(CONFIG_VZ_CHECKPOINT_MODULE) + /* + * The sk_lock has mutex_unlock() semantics: + */ + mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_); +- ++#endif + spin_lock_bh(&sk->sk_lock.slock); + if (sk->sk_backlog.tail) + __release_sock(sk); +@@ -1863,7 +1872,7 @@ + + if (alloc_slab) { + prot->slab = kmem_cache_create(prot->name, prot->obj_size, 0, +- SLAB_HWCACHE_ALIGN, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_UBC, NULL); + + if (prot->slab == NULL) { + printk(KERN_CRIT "%s: Can't create sock SLAB cache!\n", +@@ -1881,7 +1890,7 @@ + sprintf(request_sock_slab_name, mask, prot->name); + prot->rsk_prot->slab = kmem_cache_create(request_sock_slab_name, + prot->rsk_prot->obj_size, 0, +- SLAB_HWCACHE_ALIGN, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_UBC, NULL); + + if (prot->rsk_prot->slab == NULL) { + printk(KERN_CRIT "%s: Can't create request sock SLAB cache!\n", +@@ -1902,7 +1911,7 @@ + prot->twsk_prot->twsk_slab = + kmem_cache_create(timewait_sock_slab_name, + prot->twsk_prot->twsk_obj_size, +- 0, SLAB_HWCACHE_ALIGN, ++ 0, SLAB_HWCACHE_ALIGN|SLAB_UBC, + NULL); + if (prot->twsk_prot->twsk_slab == NULL) + goto out_free_timewait_sock_slab_name; +@@ -2058,10 +2067,26 @@ + .release = seq_release, + }; + ++static int proto_net_init(struct net *net) ++{ ++ if (!proc_net_fops_create(net, "protocols", S_IRUGO, &proto_seq_fops)) ++ return -ENOBUFS; ++ return 0; ++} ++ ++static void proto_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "protocols"); ++} ++ ++static struct pernet_operations proto_net_ops = { ++ .init = proto_net_init, ++ .exit = proto_net_exit, ++}; ++ + static int __init proto_init(void) + { +- /* register /proc/net/protocols */ +- return proc_net_fops_create(&init_net, "protocols", S_IRUGO, &proto_seq_fops) == NULL ? -ENOBUFS : 0; ++ return register_pernet_subsys(&proto_net_ops); + } + + subsys_initcall(proto_init); +Index: kernel/net/core/stream.c +=================================================================== +--- kernel.orig/net/core/stream.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/core/stream.c 2008-11-24 15:47:46.000000000 +0100 +@@ -111,8 +111,10 @@ + * sk_stream_wait_memory - Wait for more memory for a socket + * @sk: socket to wait for memory + * @timeo_p: for how long ++ * @amount - amount of memory to wait for (in UB space!) + */ +-int sk_stream_wait_memory(struct sock *sk, long *timeo_p) ++int __sk_stream_wait_memory(struct sock *sk, long *timeo_p, ++ unsigned long amount) + { + int err = 0; + long vm_wait = 0; +@@ -134,8 +136,11 @@ + if (signal_pending(current)) + goto do_interrupted; + clear_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); +- if (sk_stream_memory_free(sk) && !vm_wait) +- break; ++ if (amount == 0) { ++ if (sk_stream_memory_free(sk) && !vm_wait) ++ break; ++ } else ++ ub_sock_sndqueueadd_tcp(sk, amount); + + set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); + sk->sk_write_pending++; +@@ -144,6 +149,8 @@ + sk_stream_memory_free(sk) && + vm_wait); + sk->sk_write_pending--; ++ if (amount > 0) ++ ub_sock_sndqueuedel(sk); + + if (vm_wait) { + vm_wait -= current_timeo; +@@ -170,6 +177,10 @@ + goto out; + } + ++int sk_stream_wait_memory(struct sock *sk, long *timeo_p) ++{ ++ return __sk_stream_wait_memory(sk, timeo_p, 0); ++} + EXPORT_SYMBOL(sk_stream_wait_memory); + + void sk_stream_rfree(struct sk_buff *skb) +Index: kernel/net/dccp/ipv6.c +=================================================================== +--- kernel.orig/net/dccp/ipv6.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/dccp/ipv6.c 2008-11-24 15:47:46.000000000 +0100 +@@ -574,6 +574,8 @@ + __ip6_dst_store(newsk, dst, NULL, NULL); + newsk->sk_route_caps = dst->dev->features & ~(NETIF_F_IP_CSUM | + NETIF_F_TSO); ++ if (!sysctl_tcp_use_sg) ++ newsk->sk_route_caps &= ~NETIF_F_SG; + newdp6 = (struct dccp6_sock *)newsk; + newinet = inet_sk(newsk); + newinet->pinet6 = &newdp6->inet6; +Index: kernel/net/dccp/minisocks.c +=================================================================== +--- kernel.orig/net/dccp/minisocks.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/dccp/minisocks.c 2008-11-24 15:47:46.000000000 +0100 +@@ -19,6 +19,8 @@ + #include + #include + ++#include ++ + #include "ackvec.h" + #include "ccid.h" + #include "dccp.h" +@@ -56,7 +58,8 @@ + { + struct inet_timewait_sock *tw = NULL; + +- if (dccp_death_row.tw_count < dccp_death_row.sysctl_max_tw_buckets) ++ if (dccp_death_row.tw_count < dccp_death_row.sysctl_max_tw_buckets && ++ ub_timewait_check(sk, &dccp_death_row)) + tw = inet_twsk_alloc(sk, state); + + if (tw != NULL) { +Index: kernel/net/decnet/netfilter/dn_rtmsg.c +=================================================================== +--- kernel.orig/net/decnet/netfilter/dn_rtmsg.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/decnet/netfilter/dn_rtmsg.c 2008-11-24 15:47:46.000000000 +0100 +@@ -107,7 +107,7 @@ + if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len) + return; + +- if (security_netlink_recv(skb, CAP_NET_ADMIN)) ++ if (security_netlink_recv(skb, CAP_VE_NET_ADMIN)) + RCV_SKB_FAIL(-EPERM); + + /* Eventually we might send routing messages too */ +Index: kernel/net/ipv4/af_inet.c +=================================================================== +--- kernel.orig/net/ipv4/af_inet.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/af_inet.c 2008-11-24 15:47:46.000000000 +0100 +@@ -115,6 +115,7 @@ + #ifdef CONFIG_IP_MROUTE + #include + #endif ++#include + + DEFINE_SNMP_STAT(struct linux_mib, net_statistics) __read_mostly; + +@@ -253,9 +254,6 @@ + int try_loading_module = 0; + int err; + +- if (net != &init_net) +- return -EAFNOSUPPORT; +- + if (sock->type != SOCK_RAW && + sock->type != SOCK_DGRAM && + !inet_ehash_secret) +@@ -310,6 +308,10 @@ + goto out_rcu_unlock; + } + ++ err = vz_security_protocol_check(answer->protocol); ++ if (err < 0) ++ goto out_rcu_unlock; ++ + err = -EPERM; + if (answer->capability > 0 && !capable(answer->capability)) + goto out_rcu_unlock; +@@ -327,6 +329,13 @@ + if (sk == NULL) + goto out; + ++ err = -ENOBUFS; ++ if (ub_sock_charge(sk, PF_INET, sock->type)) ++ goto out_sk_free; ++ /* if charge was successful, sock_init_data() MUST be called to ++ * set sk->sk_type. otherwise sk will be uncharged to wrong resource ++ */ ++ + err = 0; + sk->sk_no_check = answer_no_check; + if (INET_PROTOSW_REUSE & answer_flags) +@@ -384,6 +393,9 @@ + out_rcu_unlock: + rcu_read_unlock(); + goto out; ++out_sk_free: ++ sk_free(sk); ++ return err; + } + + +@@ -398,6 +410,9 @@ + + if (sk) { + long timeout; ++ struct ve_struct *saved_env; ++ ++ saved_env = set_exec_env(sk->owner_env); + + /* Applications forget to leave groups before exiting */ + ip_mc_drop_socket(sk); +@@ -415,6 +430,8 @@ + timeout = sk->sk_lingertime; + sock->sk = NULL; + sk->sk_prot->close(sk, timeout); ++ ++ (void)set_exec_env(saved_env); + } + return 0; + } +@@ -1290,31 +1307,31 @@ + + static int __init init_ipv4_mibs(void) + { +- if (snmp_mib_init((void **)net_statistics, ++ if (snmp_mib_init((void **)ve_net_statistics, + sizeof(struct linux_mib), + __alignof__(struct linux_mib)) < 0) + goto err_net_mib; +- if (snmp_mib_init((void **)ip_statistics, ++ if (snmp_mib_init((void **)ve_ip_statistics, + sizeof(struct ipstats_mib), + __alignof__(struct ipstats_mib)) < 0) + goto err_ip_mib; +- if (snmp_mib_init((void **)icmp_statistics, ++ if (snmp_mib_init((void **)ve_icmp_statistics, + sizeof(struct icmp_mib), + __alignof__(struct icmp_mib)) < 0) + goto err_icmp_mib; +- if (snmp_mib_init((void **)icmpmsg_statistics, ++ if (snmp_mib_init((void **)ve_icmpmsg_statistics, + sizeof(struct icmpmsg_mib), + __alignof__(struct icmpmsg_mib)) < 0) + goto err_icmpmsg_mib; +- if (snmp_mib_init((void **)tcp_statistics, ++ if (snmp_mib_init((void **)ve_tcp_statistics, + sizeof(struct tcp_mib), + __alignof__(struct tcp_mib)) < 0) + goto err_tcp_mib; +- if (snmp_mib_init((void **)udp_statistics, ++ if (snmp_mib_init((void **)ve_udp_statistics, + sizeof(struct udp_mib), + __alignof__(struct udp_mib)) < 0) + goto err_udp_mib; +- if (snmp_mib_init((void **)udplite_statistics, ++ if (snmp_mib_init((void **)ve_udplite_statistics, + sizeof(struct udp_mib), + __alignof__(struct udp_mib)) < 0) + goto err_udplite_mib; +@@ -1324,17 +1341,17 @@ + return 0; + + err_udplite_mib: +- snmp_mib_free((void **)udp_statistics); ++ snmp_mib_free((void **)ve_udp_statistics); + err_udp_mib: +- snmp_mib_free((void **)tcp_statistics); ++ snmp_mib_free((void **)ve_tcp_statistics); + err_tcp_mib: +- snmp_mib_free((void **)icmpmsg_statistics); ++ snmp_mib_free((void **)ve_icmpmsg_statistics); + err_icmpmsg_mib: +- snmp_mib_free((void **)icmp_statistics); ++ snmp_mib_free((void **)ve_icmp_statistics); + err_icmp_mib: +- snmp_mib_free((void **)ip_statistics); ++ snmp_mib_free((void **)ve_ip_statistics); + err_ip_mib: +- snmp_mib_free((void **)net_statistics); ++ snmp_mib_free((void **)ve_net_statistics); + err_net_mib: + return -ENOMEM; + } +Index: kernel/net/ipv4/arp.c +=================================================================== +--- kernel.orig/net/ipv4/arp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/arp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -84,6 +84,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -170,7 +171,7 @@ + .queue_xmit = dev_queue_xmit, + }; + +-struct neigh_table arp_tbl = { ++struct neigh_table global_arp_tbl = { + .family = AF_INET, + .entry_size = sizeof(struct neighbour) + 4, + .key_len = 4, +@@ -179,7 +180,7 @@ + .proxy_redo = parp_redo, + .id = "arp_cache", + .parms = { +- .tbl = &arp_tbl, ++ .tbl = &global_arp_tbl, + .base_reachable_time = 30 * HZ, + .retrans_time = 1 * HZ, + .gc_staletime = 60 * HZ, +@@ -914,9 +915,6 @@ + { + struct arphdr *arp; + +- if (dev->nd_net != &init_net) +- goto freeskb; +- + /* ARP header, plus 2 device addresses, plus 2 IP addresses. */ + if (!pskb_may_pull(skb, (sizeof(struct arphdr) + + (2 * dev->addr_len) + +@@ -963,7 +961,7 @@ + if (mask && mask != htonl(0xFFFFFFFF)) + return -EINVAL; + if (!dev && (r->arp_flags & ATF_COM)) { +- dev = dev_getbyhwaddr(&init_net, r->arp_ha.sa_family, r->arp_ha.sa_data); ++ dev = dev_getbyhwaddr(get_exec_env()->ve_ns->net_ns, r->arp_ha.sa_family, r->arp_ha.sa_data); + if (!dev) + return -ENODEV; + } +@@ -1128,7 +1126,8 @@ + switch (cmd) { + case SIOCDARP: + case SIOCSARP: +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) && ++ !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + case SIOCGARP: + err = copy_from_user(&r, arg, sizeof(struct arpreq)); +@@ -1151,7 +1150,7 @@ + rtnl_lock(); + if (r.arp_dev[0]) { + err = -ENODEV; +- if ((dev = __dev_get_by_name(&init_net, r.arp_dev)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, r.arp_dev)) == NULL) + goto out; + + /* Mmmm... It is wrong... ARPHRD_NETROM==0 */ +@@ -1187,9 +1186,6 @@ + { + struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + switch (event) { + case NETDEV_CHANGEADDR: + neigh_changeaddr(&arp_tbl, dev); +@@ -1225,18 +1221,69 @@ + .func = arp_rcv, + }; + +-static int arp_proc_init(void); ++static const struct file_operations arp_seq_fops; + +-void __init arp_init(void) ++static int arp_net_init(struct net *net) + { +- neigh_table_init(&arp_tbl); ++ struct ve_struct *ve = get_exec_env(); ++ int err; + +- dev_add_pack(&arp_packet_type); +- arp_proc_init(); ++ ve->ve_arp_tbl = kmemdup(ve0.ve_arp_tbl, sizeof(struct neigh_table), ++ GFP_KERNEL); ++ if (ve->ve_arp_tbl == NULL) ++ return -ENOMEM; ++ ++ ve->ve_arp_tbl->parms.tbl = ve->ve_arp_tbl; ++ err = neigh_table_init(ve->ve_arp_tbl); ++ if (err) ++ goto out_free; + #ifdef CONFIG_SYSCTL +- neigh_sysctl_register(NULL, &arp_tbl.parms, NET_IPV4, ++ err = neigh_sysctl_register(NULL, &arp_tbl.parms, NET_IPV4, + NET_IPV4_NEIGH, "ipv4", NULL, NULL); ++ if (err) ++ goto out_uninit; ++#endif ++ if (!proc_net_fops_create(net, "arp", S_IRUGO, &arp_seq_fops)) ++ goto out_deregister; ++ err = 0; ++out: ++ return err; ++ ++out_deregister: ++#ifdef CONFIG_SYSCTL ++ neigh_sysctl_unregister(&ve->ve_arp_tbl->parms); ++out_uninit: ++#endif ++ neigh_table_clear(ve->ve_arp_tbl); ++out_free: ++ kfree(ve->ve_arp_tbl); ++ ve->ve_arp_tbl = NULL; ++ goto out; ++} ++ ++static void arp_net_exit(struct net *net) ++{ ++ struct ve_struct *ve = get_exec_env(); ++ ++ proc_net_remove(net, "arp"); ++#ifdef CONFIG_SYSCTL ++ neigh_sysctl_unregister(&ve->ve_arp_tbl->parms); + #endif ++ neigh_table_clear(ve->ve_arp_tbl); ++ kfree(ve->ve_arp_tbl); ++ ve->ve_arp_tbl = NULL; ++} ++ ++static struct pernet_operations arp_net_ops = { ++ .init = arp_net_init, ++ .exit = arp_net_exit, ++}; ++ ++void __init arp_init(void) ++{ ++ get_ve0()->ve_arp_tbl = &global_arp_tbl; ++ register_pernet_subsys(&arp_net_ops); ++ dev_add_pack(&arp_packet_type); + register_netdevice_notifier(&arp_netdev_notifier); + } + +@@ -1370,21 +1417,6 @@ + .llseek = seq_lseek, + .release = seq_release_private, + }; +- +-static int __init arp_proc_init(void) +-{ +- if (!proc_net_fops_create(&init_net, "arp", S_IRUGO, &arp_seq_fops)) +- return -ENOMEM; +- return 0; +-} +- +-#else /* CONFIG_PROC_FS */ +- +-static int __init arp_proc_init(void) +-{ +- return 0; +-} +- + #endif /* CONFIG_PROC_FS */ + + EXPORT_SYMBOL(arp_broken_ops); +@@ -1392,7 +1424,7 @@ + EXPORT_SYMBOL(arp_create); + EXPORT_SYMBOL(arp_xmit); + EXPORT_SYMBOL(arp_send); +-EXPORT_SYMBOL(arp_tbl); ++EXPORT_SYMBOL(global_arp_tbl); + + #if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE) + EXPORT_SYMBOL(clip_tbl_hook); +Index: kernel/net/ipv4/devinet.c +=================================================================== +--- kernel.orig/net/ipv4/devinet.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/devinet.c 2008-11-24 15:47:46.000000000 +0100 +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -72,7 +73,7 @@ + }, + }; + +-static struct ipv4_devconf ipv4_devconf_dflt = { ++struct ipv4_devconf ipv4_devconf_dflt = { + .data = { + [NET_IPV4_CONF_ACCEPT_REDIRECTS - 1] = 1, + [NET_IPV4_CONF_SEND_REDIRECTS - 1] = 1, +@@ -82,7 +83,7 @@ + }, + }; + +-#define IPV4_DEVCONF_DFLT(attr) IPV4_DEVCONF(ipv4_devconf_dflt, attr) ++#define IPV4_DEVCONF_DFLT(attr) IPV4_DEVCONF(ve_ipv4_devconf_dflt, attr) + + static const struct nla_policy ifa_ipv4_policy[IFA_MAX+1] = { + [IFA_LOCAL] = { .type = NLA_U32 }, +@@ -94,8 +95,14 @@ + + static void rtmsg_ifa(int event, struct in_ifaddr *, struct nlmsghdr *, u32); + ++#ifdef CONFIG_VE ++#define ve_ipv4_devconf_dflt (*(get_exec_env()->_ipv4_devconf_dflt)) ++#else ++#define ve_ipv4_devconf_dflt ipv4_devconf_dflt ++#endif ++ + static BLOCKING_NOTIFIER_HEAD(inetaddr_chain); +-static void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, ++void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, + int destroy); + #ifdef CONFIG_SYSCTL + static void devinet_sysctl_register(struct in_device *in_dev, +@@ -105,9 +112,9 @@ + + /* Locks all the inet devices. */ + +-static struct in_ifaddr *inet_alloc_ifa(void) ++struct in_ifaddr *inet_alloc_ifa(void) + { +- struct in_ifaddr *ifa = kzalloc(sizeof(*ifa), GFP_KERNEL); ++ struct in_ifaddr *ifa = kzalloc(sizeof(*ifa), GFP_KERNEL_UBC); + + if (ifa) { + INIT_RCU_HEAD(&ifa->rcu_head); +@@ -115,6 +122,7 @@ + + return ifa; + } ++EXPORT_SYMBOL_GPL(inet_alloc_ifa); + + static void inet_rcu_free_ifa(struct rcu_head *head) + { +@@ -147,7 +155,7 @@ + } + } + +-static struct in_device *inetdev_init(struct net_device *dev) ++struct in_device *inetdev_init(struct net_device *dev) + { + struct in_device *in_dev; + +@@ -188,6 +196,7 @@ + in_dev = NULL; + goto out; + } ++EXPORT_SYMBOL_GPL(inetdev_init); + + static void in_dev_rcu_put(struct rcu_head *head) + { +@@ -329,7 +338,7 @@ + inet_free_ifa(ifa1); + } + +-static void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, ++void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, + int destroy) + { + __inet_del_ifa(in_dev, ifap, destroy, NULL, 0); +@@ -387,7 +396,7 @@ + return 0; + } + +-static int inet_insert_ifa(struct in_ifaddr *ifa) ++int inet_insert_ifa(struct in_ifaddr *ifa) + { + return __inet_insert_ifa(ifa, NULL, 0); + } +@@ -418,7 +427,7 @@ + struct net_device *dev; + struct in_device *in_dev = NULL; + read_lock(&dev_base_lock); +- dev = __dev_get_by_index(&init_net, ifindex); ++ dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); + if (dev) + in_dev = in_dev_get(dev); + read_unlock(&dev_base_lock); +@@ -438,6 +447,7 @@ + } endfor_ifa(in_dev); + return NULL; + } ++EXPORT_SYMBOL_GPL(inet_insert_ifa); + + static int inet_rtm_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) + { +@@ -504,7 +514,7 @@ + goto errout; + } + +- dev = __dev_get_by_index(&init_net, ifm->ifa_index); ++ dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifm->ifa_index); + if (dev == NULL) { + err = -ENODEV; + goto errout; +@@ -608,6 +618,7 @@ + char *colon; + int ret = -EFAULT; + int tryaddrmatch = 0; ++ struct net *net = get_exec_env()->ve_ns->net_ns; + + /* + * Fetch the caller's info block into kernel space +@@ -625,7 +636,7 @@ + *colon = 0; + + #ifdef CONFIG_KMOD +- dev_load(&init_net, ifr.ifr_name); ++ dev_load(net, ifr.ifr_name); + #endif + + switch (cmd) { +@@ -644,7 +655,7 @@ + + case SIOCSIFFLAGS: + ret = -EACCES; +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_VE_NET_ADMIN)) + goto out; + break; + case SIOCSIFADDR: /* Set interface address (and family) */ +@@ -652,7 +663,7 @@ + case SIOCSIFDSTADDR: /* Set the destination address */ + case SIOCSIFNETMASK: /* Set the netmask for the interface */ + ret = -EACCES; +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_VE_NET_ADMIN)) + goto out; + ret = -EINVAL; + if (sin->sin_family != AF_INET) +@@ -666,7 +677,7 @@ + rtnl_lock(); + + ret = -ENODEV; +- if ((dev = __dev_get_by_name(&init_net, ifr.ifr_name)) == NULL) ++ if ((dev = __dev_get_by_name(net, ifr.ifr_name)) == NULL) + goto done; + + if (colon) +@@ -906,7 +917,7 @@ + */ + read_lock(&dev_base_lock); + rcu_read_lock(); +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + if ((in_dev = __in_dev_get_rcu(dev)) == NULL) + continue; + +@@ -985,7 +996,7 @@ + + read_lock(&dev_base_lock); + rcu_read_lock(); +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + if ((in_dev = __in_dev_get_rcu(dev))) { + addr = confirm_addr_indev(in_dev, dst, local, scope); + if (addr) +@@ -1048,9 +1059,6 @@ + struct net_device *dev = ptr; + struct in_device *in_dev = __in_dev_get_rtnl(dev); + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + ASSERT_RTNL(); + + if (!in_dev) { +@@ -1182,7 +1190,7 @@ + + s_ip_idx = ip_idx = cb->args[1]; + idx = 0; +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + if (idx < s_idx) + goto cont; + if (idx > s_idx) +@@ -1241,7 +1249,7 @@ + struct net_device *dev; + + read_lock(&dev_base_lock); +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + struct in_device *in_dev; + rcu_read_lock(); + in_dev = __in_dev_get_rcu(dev); +@@ -1326,11 +1334,10 @@ + struct net_device *dev; + int on = IPV4_DEVCONF_ALL(FORWARDING); + +- IPV4_DEVCONF_ALL(ACCEPT_REDIRECTS) = !on; + IPV4_DEVCONF_DFLT(FORWARDING) = on; + + read_lock(&dev_base_lock); +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + struct in_device *in_dev; + rcu_read_lock(); + in_dev = __in_dev_get_rcu(dev); +@@ -1489,28 +1496,19 @@ + }, + }; + +-static void devinet_sysctl_register(struct in_device *in_dev, +- struct ipv4_devconf *p) ++static struct devinet_sysctl_table *__devinet_sysctl_register(char *dev_name, ++ int ifindex, struct ipv4_devconf *p) + { + int i; +- struct net_device *dev = in_dev ? in_dev->dev : NULL; +- struct devinet_sysctl_table *t = kmemdup(&devinet_sysctl, sizeof(*t), +- GFP_KERNEL); +- char *dev_name = NULL; ++ struct devinet_sysctl_table *t; + ++ t = kmemdup(&devinet_sysctl, sizeof(*t), GFP_KERNEL); + if (!t) +- return; ++ goto out; + for (i = 0; i < ARRAY_SIZE(t->devinet_vars) - 1; i++) { + t->devinet_vars[i].data += (char *)p - (char *)&ipv4_devconf; + t->devinet_vars[i].extra1 = p; +- } +- +- if (dev) { +- dev_name = dev->name; +- t->devinet_dev[0].ctl_name = dev->ifindex; +- } else { +- dev_name = "default"; +- t->devinet_dev[0].ctl_name = NET_PROTO_CONF_DEFAULT; ++ t->devinet_vars[i].owner_env = get_exec_env(); + } + + /* +@@ -1520,8 +1518,9 @@ + */ + dev_name = kstrdup(dev_name, GFP_KERNEL); + if (!dev_name) +- goto free; ++ goto out_free_table; + ++ t->devinet_dev[0].ctl_name = ifindex; + t->devinet_dev[0].procname = dev_name; + t->devinet_dev[0].child = t->devinet_vars; + t->devinet_conf_dir[0].child = t->devinet_dev; +@@ -1530,17 +1529,37 @@ + + t->sysctl_header = register_sysctl_table(t->devinet_root_dir); + if (!t->sysctl_header) +- goto free_procname; ++ goto out_free_procname; + +- p->sysctl = t; +- return; ++ return t; + + /* error path */ +- free_procname: ++out_free_procname: + kfree(dev_name); +- free: ++out_free_table: + kfree(t); +- return; ++out: ++ return NULL; ++} ++ ++static void devinet_sysctl_register(struct in_device *in_dev, ++ struct ipv4_devconf *p) ++{ ++ struct net_device *dev; ++ char *dev_name; ++ int ifindex; ++ ++ dev = in_dev ? in_dev->dev : NULL; ++ ++ if (dev) { ++ dev_name = dev->name; ++ ifindex = dev->ifindex; ++ } else { ++ dev_name = "default"; ++ ifindex = NET_PROTO_CONF_DEFAULT; ++ } ++ ++ p->sysctl = __devinet_sysctl_register(dev_name, ifindex, p); + } + + static void devinet_sysctl_unregister(struct ipv4_devconf *p) +@@ -1553,8 +1572,176 @@ + kfree(t); + } + } ++ ++#ifdef CONFIG_VE ++static ctl_table net_sysctl_tables[] = { ++ /* 0: net */ ++ { ++ .ctl_name = CTL_NET, ++ .procname = "net", ++ .mode = 0555, ++ .child = &net_sysctl_tables[2], ++ }, ++ { .ctl_name = 0, }, ++ /* 2: net/ipv4 */ ++ { ++ .ctl_name = NET_IPV4, ++ .procname = "ipv4", ++ .mode = 0555, ++ .child = &net_sysctl_tables[4], ++ }, ++ { .ctl_name = 0, }, ++ /* 4, 5: net/ipv4/[vars] */ ++ { ++ .ctl_name = NET_IPV4_FORWARD, ++ .procname = "ip_forward", ++ .data = &ipv4_devconf.data[NET_IPV4_CONF_FORWARDING-1], ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = &ipv4_sysctl_forward, ++ .strategy = &ipv4_sysctl_forward_strategy, ++ }, ++ { ++ .ctl_name = NET_IPV4_ROUTE, ++ .procname = "route", ++ .maxlen = 0, ++ .mode = 0555, ++ .child = &net_sysctl_tables[7], ++ }, ++ { .ctl_name = 0 }, ++ /* 7: net/ipv4/route/flush */ ++ { ++ .ctl_name = NET_IPV4_ROUTE_FLUSH, ++ .procname = "flush", ++ .data = NULL, /* setuped below */ ++ .maxlen = sizeof(int), ++ .mode = 0200, ++ .proc_handler = &ipv4_sysctl_rtcache_flush, ++ .strategy = &ipv4_sysctl_rtcache_flush_strategy, ++ }, ++ { .ctl_name = 0 }, ++}; ++ ++static int ip_forward_sysctl_register(struct ve_struct *ve, ++ struct ipv4_devconf *p) ++{ ++ struct ctl_table_header *hdr; ++ ctl_table *root, *ipv4_table, *route_table; ++ ++ root = clone_sysctl_template(net_sysctl_tables); ++ if (root == NULL) ++ goto out; ++ ++ ipv4_table = root->child->child; ++ ipv4_table[0].data = &p->data[NET_IPV4_CONF_FORWARDING - 1]; ++ ++ route_table = ipv4_table[1].child; ++ route_table[0].data = &ipv4_flush_delay; ++ ++ hdr = register_sysctl_table(root); ++ if (hdr == NULL) ++ goto out_free; ++ ++ ve->forward_header = hdr; ++ ve->forward_table = root; ++ return 0; ++ ++out_free: ++ free_sysctl_clone(root); ++out: ++ return -ENOMEM; ++} ++ ++static inline void ip_forward_sysctl_unregister(struct ve_struct *ve) ++{ ++ unregister_sysctl_table(ve->forward_header); ++ ve->forward_header = NULL; ++} ++ ++static inline void ip_forward_sysctl_free(struct ve_struct *ve) ++{ ++ if (ve->forward_table == NULL) ++ return; ++ ++ free_sysctl_clone(ve->forward_table); ++ ve->forward_table = NULL; ++} ++#endif + #endif + ++int devinet_sysctl_init(struct ve_struct *ve) ++{ ++ int err = 0; ++#ifdef CONFIG_SYSCTL ++#ifdef CONFIG_VE ++ struct ipv4_devconf *conf, *conf_def; ++ ++ err = -ENOMEM; ++ ++ conf = kmalloc(sizeof(*conf), GFP_KERNEL); ++ if (!conf) ++ goto err1; ++ ++ memcpy(conf, &ipv4_devconf, sizeof(*conf)); ++ conf->sysctl = __devinet_sysctl_register("all", ++ NET_PROTO_CONF_ALL, conf); ++ if (!conf->sysctl) ++ goto err2; ++ ++ conf_def = kmalloc(sizeof(*conf_def), GFP_KERNEL); ++ if (!conf_def) ++ goto err3; ++ ++ memcpy(conf_def, &ipv4_devconf_dflt, sizeof(*conf_def)); ++ conf_def->sysctl = __devinet_sysctl_register("default", ++ NET_PROTO_CONF_DEFAULT, conf_def); ++ if (!conf_def->sysctl) ++ goto err4; ++ ++ err = ip_forward_sysctl_register(ve, conf); ++ if (err) ++ goto err5; ++ ++ ve->_ipv4_devconf = conf; ++ ve->_ipv4_devconf_dflt = conf_def; ++ return 0; ++ ++err5: ++ devinet_sysctl_unregister(conf_def); ++err4: ++ kfree(conf_def); ++err3: ++ devinet_sysctl_unregister(conf); ++err2: ++ kfree(conf); ++err1: ++#endif ++#endif ++ return err; ++} ++ ++void devinet_sysctl_fini(struct ve_struct *ve) ++{ ++#ifdef CONFIG_SYSCTL ++#ifdef CONFIG_VE ++ ip_forward_sysctl_unregister(ve); ++ devinet_sysctl_unregister(ve->_ipv4_devconf); ++ devinet_sysctl_unregister(ve->_ipv4_devconf_dflt); ++#endif ++#endif ++} ++ ++void devinet_sysctl_free(struct ve_struct *ve) ++{ ++#ifdef CONFIG_SYSCTL ++#ifdef CONFIG_VE ++ ip_forward_sysctl_free(ve); ++ kfree(ve->_ipv4_devconf); ++ kfree(ve->_ipv4_devconf_dflt); ++#endif ++#endif ++} ++ + void __init devinet_init(void) + { + register_gifconf(PF_INET, inet_gifconf); +@@ -1566,7 +1753,8 @@ + #ifdef CONFIG_SYSCTL + devinet_sysctl.sysctl_header = + register_sysctl_table(devinet_sysctl.devinet_root_dir); +- devinet_sysctl_register(NULL, &ipv4_devconf_dflt); ++ __devinet_sysctl_register("default", NET_PROTO_CONF_DEFAULT, ++ &ipv4_devconf_dflt); + #endif + } + +@@ -1575,3 +1763,7 @@ + EXPORT_SYMBOL(inetdev_by_index); + EXPORT_SYMBOL(register_inetaddr_notifier); + EXPORT_SYMBOL(unregister_inetaddr_notifier); ++EXPORT_SYMBOL(inet_del_ifa); ++EXPORT_SYMBOL(devinet_sysctl_init); ++EXPORT_SYMBOL(devinet_sysctl_fini); ++EXPORT_SYMBOL(devinet_sysctl_free); +Index: kernel/net/ipv4/fib_frontend.c +=================================================================== +--- kernel.orig/net/ipv4/fib_frontend.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/fib_frontend.c 2008-11-24 15:47:46.000000000 +0100 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -51,13 +52,18 @@ + + static struct sock *fibnl; + ++#ifdef CONFIG_VE ++#define fib_table_hash (get_exec_env()->_fib_table_hash) ++#else ++static struct hlist_head fib_table_hash[FIB_TABLE_HASHSZ]; ++#endif ++ + #ifndef CONFIG_IP_MULTIPLE_TABLES + +-struct fib_table *ip_fib_local_table; +-struct fib_table *ip_fib_main_table; ++struct fib_table *__ip_fib_local_table; ++struct fib_table *__ip_fib_main_table; + + #define FIB_TABLE_HASHSZ 1 +-static struct hlist_head fib_table_hash[FIB_TABLE_HASHSZ]; + + static void __init fib4_rules_init(void) + { +@@ -67,10 +73,10 @@ + hlist_add_head_rcu(&ip_fib_main_table->tb_hlist, &fib_table_hash[0]); + } + #else +- + #define FIB_TABLE_HASHSZ 256 +-static struct hlist_head fib_table_hash[FIB_TABLE_HASHSZ]; ++#endif + ++#ifdef CONFIG_IP_MULTIPLE_TABLES + struct fib_table *fib_new_table(u32 id) + { + struct fib_table *tb; +@@ -217,7 +223,8 @@ + + if (fib_lookup(&fl, &res)) + goto last_resort; +- if (res.type != RTN_UNICAST) ++ if (res.type != RTN_UNICAST && ++ (!(dev->features & NETIF_F_VENET) || res.type != RTN_LOCAL)) + goto e_inval_res; + *spec_dst = FIB_RES_PREFSRC(res); + fib_combine_itag(itag, &res); +@@ -345,7 +352,7 @@ + colon = strchr(devname, ':'); + if (colon) + *colon = 0; +- dev = __dev_get_by_name(&init_net, devname); ++ dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, devname); + if (!dev) + return -ENODEV; + cfg->fc_oif = dev->ifindex; +@@ -418,7 +425,7 @@ + switch (cmd) { + case SIOCADDRT: /* Add a route */ + case SIOCDELRT: /* Delete a route */ +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_VE_NET_ADMIN)) + return -EPERM; + + if (copy_from_user(&rt, arg, sizeof(rt))) +@@ -869,9 +876,6 @@ + struct net_device *dev = ptr; + struct in_device *in_dev = __in_dev_get_rtnl(dev); + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + if (event == NETDEV_UNREGISTER) { + fib_disable_ip(dev, 2); + return NOTIFY_DONE; +Index: kernel/net/ipv4/fib_hash.c +=================================================================== +--- kernel.orig/net/ipv4/fib_hash.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/fib_hash.c 2008-11-24 15:47:46.000000000 +0100 +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -72,11 +73,6 @@ + * can be cheaper than memory lookup, so that FZ_* macros are used. + */ + +-struct fn_hash { +- struct fn_zone *fn_zones[33]; +- struct fn_zone *fn_zone_list; +-}; +- + static inline u32 fn_hash(__be32 key, struct fn_zone *fz) + { + u32 h = ntohl(key)>>(32 - fz->fz_order); +@@ -635,7 +631,7 @@ + return -ESRCH; + } + +-static int fn_flush_list(struct fn_zone *fz, int idx) ++static int fn_flush_list(struct fn_zone *fz, int idx, int destroy) + { + struct hlist_head *head = &fz->fz_hash[idx]; + struct hlist_node *node, *n; +@@ -650,7 +646,9 @@ + list_for_each_entry_safe(fa, fa_node, &f->fn_alias, fa_list) { + struct fib_info *fi = fa->fa_info; + +- if (fi && (fi->fib_flags&RTNH_F_DEAD)) { ++ if (fi == NULL) ++ continue; ++ if (destroy || (fi->fib_flags&RTNH_F_DEAD)) { + write_lock_bh(&fib_hash_lock); + list_del(&fa->fa_list); + if (list_empty(&f->fn_alias)) { +@@ -672,7 +670,7 @@ + return found; + } + +-static int fn_hash_flush(struct fib_table *tb) ++static int __fn_hash_flush(struct fib_table *tb, int destroy) + { + struct fn_hash *table = (struct fn_hash *) tb->tb_data; + struct fn_zone *fz; +@@ -682,11 +680,85 @@ + int i; + + for (i = fz->fz_divisor - 1; i >= 0; i--) +- found += fn_flush_list(fz, i); ++ found += fn_flush_list(fz, i, destroy); + } + return found; + } + ++static int fn_hash_flush(struct fib_table *tb) ++{ ++ return __fn_hash_flush(tb, 0); ++} ++ ++#ifdef CONFIG_VE ++static void fn_free_zones(struct fib_table *tb) ++{ ++ struct fn_hash *table = (struct fn_hash *) tb->tb_data; ++ struct fn_zone *fz; ++ ++ while ((fz = table->fn_zone_list) != NULL) { ++ table->fn_zone_list = fz->fz_next; ++ fz_hash_free(fz->fz_hash, fz->fz_divisor); ++ kfree(fz); ++ } ++} ++ ++void fib_hash_destroy(struct fib_table *tb) ++{ ++ __fn_hash_flush(tb, 1); ++ fn_free_zones(tb); ++ kfree(tb); ++} ++ ++/* ++ * Initialization of virtualized networking subsystem. ++ */ ++int init_ve_route(struct ve_struct *ve) ++{ ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(ve->_fib_table_hash); i++) ++ INIT_HLIST_HEAD(&ve->_fib_table_hash[i]); ++ ++#ifdef CONFIG_IP_MULTIPLE_TABLES ++ return fib_rules_create(); ++#else ++ ve->_local_table = fib_hash_init(RT_TABLE_LOCAL); ++ if (!ve->_local_table) ++ return -ENOMEM; ++ ve->_main_table = fib_hash_init(RT_TABLE_MAIN); ++ if (!ve->_main_table) { ++ fib_hash_destroy(ve->_local_table); ++ return -ENOMEM; ++ } ++ ++ hlist_add_head_rcu(&ve->_local_table->tb_hlist, ++ &ve->_fib_table_hash[0]); ++ hlist_add_head_rcu(&ve->_main_table->tb_hlist, ++ &ve->_fib_table_hash[0]); ++ return 0; ++#endif ++} ++ ++void fini_ve_route(struct ve_struct *ve) ++{ ++ unsigned int bytes; ++#ifdef CONFIG_IP_MULTIPLE_TABLES ++ fib_rules_destroy(); ++#else ++ fib_hash_destroy(ve->_local_table); ++ fib_hash_destroy(ve->_main_table); ++#endif ++ bytes = ve->_fib_hash_size * sizeof(struct hlist_head *); ++ fib_hash_free(ve->_fib_info_hash, bytes); ++ fib_hash_free(ve->_fib_info_laddrhash, bytes); ++ ve->_fib_info_hash = ve->_fib_info_laddrhash = NULL; ++} ++ ++EXPORT_SYMBOL(init_ve_route); ++EXPORT_SYMBOL(fini_ve_route); ++#endif ++ + + static inline int + fn_hash_dump_bucket(struct sk_buff *skb, struct netlink_callback *cb, +@@ -776,7 +848,7 @@ + return skb->len; + } + +-#ifdef CONFIG_IP_MULTIPLE_TABLES ++#if defined(CONFIG_IP_MULTIPLE_TABLES) || defined(CONFIG_VE) + struct fib_table * fib_hash_init(u32 id) + #else + struct fib_table * __init fib_hash_init(u32 id) +@@ -786,14 +858,14 @@ + + if (fn_hash_kmem == NULL) + fn_hash_kmem = kmem_cache_create("ip_fib_hash", +- sizeof(struct fib_node), +- 0, SLAB_HWCACHE_ALIGN, ++ sizeof(struct fib_node), 0, ++ SLAB_HWCACHE_ALIGN|SLAB_UBC, + NULL); + + if (fn_alias_kmem == NULL) + fn_alias_kmem = kmem_cache_create("ip_fib_alias", +- sizeof(struct fib_alias), +- 0, SLAB_HWCACHE_ALIGN, ++ sizeof(struct fib_alias), 0, ++ SLAB_HWCACHE_ALIGN|SLAB_UBC, + NULL); + + tb = kmalloc(sizeof(struct fib_table) + sizeof(struct fn_hash), +@@ -1067,13 +1139,28 @@ + .release = seq_release_private, + }; + +-int __init fib_proc_init(void) ++static int fib_proc_net_init(struct net *net) + { +- if (!proc_net_fops_create(&init_net, "route", S_IRUGO, &fib_seq_fops)) ++ if (!proc_net_fops_create(net, "route", S_IRUGO, &fib_seq_fops)) + return -ENOMEM; + return 0; + } + ++static void fib_proc_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "route"); ++} ++ ++static struct pernet_operations fib_proc_net_ops = { ++ .init = fib_proc_net_init, ++ .exit = fib_proc_net_exit, ++}; ++ ++int __init fib_proc_init(void) ++{ ++ return register_pernet_subsys(&fib_proc_net_ops); ++} ++ + void __init fib_proc_exit(void) + { + proc_net_remove(&init_net, "route"); +Index: kernel/net/ipv4/fib_lookup.h +=================================================================== +--- kernel.orig/net/ipv4/fib_lookup.h 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/fib_lookup.h 2008-11-24 15:47:46.000000000 +0100 +@@ -37,5 +37,6 @@ + extern int fib_detect_death(struct fib_info *fi, int order, + struct fib_info **last_resort, + int *last_idx, int *dflt); ++void fib_hash_free(struct hlist_head *hash, int bytes); + + #endif /* _FIB_LOOKUP_H */ +Index: kernel/net/ipv4/fib_rules.c +=================================================================== +--- kernel.orig/net/ipv4/fib_rules.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/fib_rules.c 2008-11-24 15:47:46.000000000 +0100 +@@ -49,6 +49,85 @@ + #endif + }; + ++#ifdef CONFIG_VE ++#define local_rule (*(get_exec_env()->_local_rule)) ++#define fib4_rules (get_exec_env()->_fib_rules) ++#else ++#define local_rule loc_rule ++static LIST_HEAD(fib4_rules); ++#endif ++ ++#if defined(CONFIG_VE_CALLS) || defined(CONFIG_VE_CALLS_MODULE) ++#ifdef CONFIG_VE ++static inline void init_rule_struct(struct fib_rule *r, ++ u32 pref, unsigned char table, unsigned char action) ++{ ++ memset(r, 0, sizeof(struct fib_rule)); ++ atomic_set(&r->refcnt, 1); ++ r->pref = pref; ++ r->table = table; ++ r->action = action; ++} ++#endif ++ ++int fib_rules_create(void) ++{ ++#ifdef CONFIG_VE ++ struct fib_rule *default_rule, *main_rule, *loc_rule; ++ ++ default_rule = kmalloc(sizeof(struct fib_rule), GFP_KERNEL_UBC); ++ if (default_rule == NULL) ++ goto out_def; ++ ++ main_rule = kmalloc(sizeof(struct fib_rule), GFP_KERNEL_UBC); ++ if (main_rule == NULL) ++ goto out_main; ++ ++ loc_rule = kmalloc(sizeof(struct fib_rule), GFP_KERNEL_UBC); ++ if (loc_rule == NULL) ++ goto out_loc; ++ ++ init_rule_struct(default_rule, 0x7FFF, RT_TABLE_DEFAULT, RTN_UNICAST); ++ init_rule_struct(main_rule, 0x7FFE, RT_TABLE_MAIN, RTN_UNICAST); ++ init_rule_struct(loc_rule, 0, RT_TABLE_LOCAL, RTN_UNICAST); ++ ++ INIT_LIST_HEAD(&fib4_rules); ++ list_add_tail(&loc_rule->list, &fib4_rules); ++ list_add_tail(&main_rule->list, &fib4_rules); ++ list_add_tail(&default_rule->list, &fib4_rules); ++ get_exec_env()->_local_rule = loc_rule; ++ ++ return 0; ++ ++out_loc: ++ kfree(main_rule); ++out_main: ++ kfree(default_rule); ++out_def: ++ return -1; ++#else ++ return 0; ++#endif ++} ++ ++void fib_rules_destroy(void) ++{ ++#ifdef CONFIG_VE ++ struct fib_rule *r; ++ struct list_head *pos, *tmp; ++ ++ rtnl_lock(); ++ list_for_each_safe (pos, tmp, &fib4_rules) { ++ r = list_entry(pos, struct fib_rule, list); ++ ++ list_del_rcu(pos); ++ fib_rule_put(r); ++ } ++ rtnl_unlock(); ++#endif ++} ++#endif ++ + #ifdef CONFIG_NET_CLS_ROUTE + u32 fib_rules_tclass(struct fib_result *res) + { +Index: kernel/net/ipv4/fib_semantics.c +=================================================================== +--- kernel.orig/net/ipv4/fib_semantics.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/fib_semantics.c 2008-11-24 15:47:46.000000000 +0100 +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -32,6 +33,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -55,6 +57,24 @@ + static unsigned int fib_hash_size; + static unsigned int fib_info_cnt; + ++void prepare_fib_info(void) ++{ ++#ifdef CONFIG_VE ++ get_ve0()->_fib_info_hash = fib_info_hash; ++ get_ve0()->_fib_info_laddrhash = fib_info_laddrhash; ++ get_ve0()->_fib_hash_size = fib_hash_size; ++ get_ve0()->_fib_info_cnt = fib_info_cnt; ++#endif ++} ++ ++#ifdef CONFIG_VE ++#define fib_info_hash (get_exec_env()->_fib_info_hash) ++#define fib_info_laddrhash (get_exec_env()->_fib_info_laddrhash) ++#define fib_hash_size (get_exec_env()->_fib_hash_size) ++#define fib_info_cnt (get_exec_env()->_fib_info_cnt) ++#endif ++ ++ + #define DEVINDEX_HASHBITS 8 + #define DEVINDEX_HASHSIZE (1U << DEVINDEX_HASHBITS) + static struct hlist_head fib_info_devhash[DEVINDEX_HASHSIZE]; +@@ -234,13 +254,15 @@ + return NULL; + } + +-static inline unsigned int fib_devindex_hashfn(unsigned int val) ++static inline unsigned int fib_devindex_hashfn(unsigned int val, ++ envid_t veid) + { + unsigned int mask = DEVINDEX_HASHSIZE - 1; + + return (val ^ + (val >> DEVINDEX_HASHBITS) ^ +- (val >> (DEVINDEX_HASHBITS * 2))) & mask; ++ (val >> (DEVINDEX_HASHBITS * 2)) ^ ++ (veid ^ (veid >> 16))) & mask; + } + + /* Check, that the gateway is already configured. +@@ -256,7 +278,7 @@ + + spin_lock(&fib_info_lock); + +- hash = fib_devindex_hashfn(dev->ifindex); ++ hash = fib_devindex_hashfn(dev->ifindex, VEID(dev->owner_env)); + head = &fib_info_devhash[hash]; + hlist_for_each_entry(nh, node, head, nh_hash) { + if (nh->nh_dev == dev && +@@ -533,7 +555,7 @@ + return -EINVAL; + if (inet_addr_type(nh->nh_gw) != RTN_UNICAST) + return -EINVAL; +- if ((dev = __dev_get_by_index(&init_net, nh->nh_oif)) == NULL) ++ if ((dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, nh->nh_oif)) == NULL) + return -ENODEV; + if (!(dev->flags&IFF_UP)) + return -ENETDOWN; +@@ -611,7 +633,7 @@ + __get_free_pages(GFP_KERNEL, get_order(bytes)); + } + +-static void fib_hash_free(struct hlist_head *hash, int bytes) ++void fib_hash_free(struct hlist_head *hash, int bytes) + { + if (!hash) + return; +@@ -799,7 +821,7 @@ + if (nhs != 1 || nh->nh_gw) + goto err_inval; + nh->nh_scope = RT_SCOPE_NOWHERE; +- nh->nh_dev = dev_get_by_index(&init_net, fi->fib_nh->nh_oif); ++ nh->nh_dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, fi->fib_nh->nh_oif); + err = -ENODEV; + if (nh->nh_dev == NULL) + goto failure; +@@ -842,7 +864,8 @@ + + if (!nh->nh_dev) + continue; +- hash = fib_devindex_hashfn(nh->nh_dev->ifindex); ++ hash = fib_devindex_hashfn(nh->nh_dev->ifindex, ++ VEID(nh->nh_dev->owner_env)); + head = &fib_info_devhash[hash]; + hlist_add_head(&nh->nh_hash, head); + } endfor_nexthops(fi) +@@ -1054,7 +1077,8 @@ + + if (dev) { + struct fib_info *prev_fi = NULL; +- unsigned int hash = fib_devindex_hashfn(dev->ifindex); ++ unsigned int hash = fib_devindex_hashfn(dev->ifindex, ++ VEID(dev->owner_env)); + struct hlist_head *head = &fib_info_devhash[hash]; + struct hlist_node *node; + struct fib_nh *nh; +@@ -1119,7 +1143,7 @@ + return 0; + + prev_fi = NULL; +- hash = fib_devindex_hashfn(dev->ifindex); ++ hash = fib_devindex_hashfn(dev->ifindex, VEID(dev->owner_env)); + head = &fib_info_devhash[hash]; + ret = 0; + +Index: kernel/net/ipv4/icmp.c +=================================================================== +--- kernel.orig/net/ipv4/icmp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/icmp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -69,6 +69,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -513,7 +514,7 @@ + struct net_device *dev = NULL; + + if (rt->fl.iif && sysctl_icmp_errors_use_inbound_ifaddr) +- dev = dev_get_by_index(&init_net, rt->fl.iif); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, rt->fl.iif); + + if (dev) { + saddr = inet_select_addr(dev, 0, RT_SCOPE_LINK); +Index: kernel/net/ipv4/igmp.c +=================================================================== +--- kernel.orig/net/ipv4/igmp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/igmp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -83,6 +83,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -2291,8 +2292,9 @@ + struct igmp_mc_iter_state *state = igmp_mc_seq_private(seq); + + state->in_dev = NULL; +- for_each_netdev(&init_net, state->dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { + struct in_device *in_dev; ++ + in_dev = in_dev_get(state->dev); + if (!in_dev) + continue; +@@ -2438,8 +2440,9 @@ + + state->idev = NULL; + state->im = NULL; +- for_each_netdev(&init_net, state->dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { + struct in_device *idev; ++ + idev = in_dev_get(state->dev); + if (unlikely(idev == NULL)) + continue; +@@ -2581,11 +2584,34 @@ + .release = seq_release_private, + }; + +-int __init igmp_mc_proc_init(void) ++static int igmp_net_init(struct net *net) + { +- proc_net_fops_create(&init_net, "igmp", S_IRUGO, &igmp_mc_seq_fops); +- proc_net_fops_create(&init_net, "mcfilter", S_IRUGO, &igmp_mcf_seq_fops); ++ if (!proc_net_fops_create(net, "igmp", S_IRUGO, &igmp_mc_seq_fops)) ++ goto out_igmp; ++ if (!proc_net_fops_create(net, "mcfilter", S_IRUGO, &igmp_mcf_seq_fops)) ++ goto out_mcfilter; + return 0; ++ ++out_mcfilter: ++ proc_net_remove(net, "igmp"); ++out_igmp: ++ return -ENOMEM; ++} ++ ++static void igmp_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "igmp"); ++ proc_net_remove(net, "mcfilter"); ++} ++ ++static struct pernet_operations igmp_net_ops = { ++ .init = igmp_net_init, ++ .exit = igmp_net_exit, ++}; ++ ++int __init igmp_mc_proc_init(void) ++{ ++ return register_pernet_subsys(&igmp_net_ops); + } + #endif + +Index: kernel/net/ipv4/inet_connection_sock.c +=================================================================== +--- kernel.orig/net/ipv4/inet_connection_sock.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/inet_connection_sock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -24,6 +24,9 @@ + #include + #include + ++#include ++#include ++ + #ifdef INET_CSK_DEBUG + const char inet_csk_timer_bug_msg[] = "inet_csk BUG: unknown timer value\n"; + EXPORT_SYMBOL(inet_csk_timer_bug_msg); +@@ -58,6 +61,7 @@ + sk_for_each_bound(sk2, node, &tb->owners) { + if (sk != sk2 && + !inet_v6_ipv6only(sk2) && ++ ve_accessible_strict(sk->owner_env, sk2->owner_env) && + (!sk->sk_bound_dev_if || + !sk2->sk_bound_dev_if || + sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) { +@@ -87,7 +91,9 @@ + struct hlist_node *node; + struct inet_bind_bucket *tb; + int ret; ++ struct ve_struct *env; + ++ env = sk->owner_env; + local_bh_disable(); + if (!snum) { + int remaining, rover, low, high; +@@ -97,11 +103,15 @@ + rover = net_random() % remaining + low; + + do { +- head = &hashinfo->bhash[inet_bhashfn(rover, hashinfo->bhash_size)]; ++ head = &hashinfo->bhash[inet_bhashfn(rover, ++ hashinfo->bhash_size, VEID(env))]; + spin_lock(&head->lock); +- inet_bind_bucket_for_each(tb, node, &head->chain) ++ inet_bind_bucket_for_each(tb, node, &head->chain) { ++ if (!ve_accessible_strict(tb->owner_env, env)) ++ continue; + if (tb->port == rover) + goto next; ++ } + break; + next: + spin_unlock(&head->lock); +@@ -124,11 +134,15 @@ + */ + snum = rover; + } else { +- head = &hashinfo->bhash[inet_bhashfn(snum, hashinfo->bhash_size)]; ++ head = &hashinfo->bhash[inet_bhashfn(snum, ++ hashinfo->bhash_size, VEID(env))]; + spin_lock(&head->lock); +- inet_bind_bucket_for_each(tb, node, &head->chain) ++ inet_bind_bucket_for_each(tb, node, &head->chain) { ++ if (!ve_accessible_strict(tb->owner_env, env)) ++ continue; + if (tb->port == snum) + goto tb_found; ++ } + } + tb = NULL; + goto tb_not_found; +@@ -147,7 +161,7 @@ + } + tb_not_found: + ret = 1; +- if (!tb && (tb = inet_bind_bucket_create(hashinfo->bind_bucket_cachep, head, snum)) == NULL) ++ if (!tb && (tb = inet_bind_bucket_create(hashinfo->bind_bucket_cachep, head, snum, env)) == NULL) + goto fail_unlock; + if (hlist_empty(&tb->owners)) { + if (sk->sk_reuse && sk->sk_state != TCP_LISTEN) +@@ -555,7 +569,7 @@ + + sk_refcnt_debug_release(sk); + +- atomic_dec(sk->sk_prot->orphan_count); ++ ub_dec_orphan_count(sk); + sock_put(sk); + } + +@@ -635,7 +649,7 @@ + + sock_orphan(child); + +- atomic_inc(sk->sk_prot->orphan_count); ++ ub_inc_orphan_count(sk); + + inet_csk_destroy_sock(child); + +Index: kernel/net/ipv4/inet_diag.c +=================================================================== +--- kernel.orig/net/ipv4/inet_diag.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/inet_diag.c 2008-11-24 15:47:46.000000000 +0100 +@@ -708,7 +708,9 @@ + struct inet_diag_req *r = NLMSG_DATA(cb->nlh); + const struct inet_diag_handler *handler; + struct inet_hashinfo *hashinfo; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + handler = inet_diag_lock_handler(cb->nlh->nlmsg_type); + if (IS_ERR(handler)) + goto unlock; +@@ -731,6 +733,8 @@ + sk_for_each(sk, node, &hashinfo->listening_hash[i]) { + struct inet_sock *inet = inet_sk(sk); + ++ if (!ve_accessible(sk->owner_env, ve)) ++ continue; + if (num < s_num) { + num++; + continue; +@@ -792,6 +796,8 @@ + sk_for_each(sk, node, &head->chain) { + struct inet_sock *inet = inet_sk(sk); + ++ if (!ve_accessible(sk->owner_env, ve)) ++ continue; + if (num < s_num) + goto next_normal; + if (!(r->idiag_states & (1 << sk->sk_state))) +@@ -816,6 +822,8 @@ + inet_twsk_for_each(tw, node, + &head->twchain) { + ++ if (!ve_accessible_veid(tw->tw_owner_env, VEID(ve))) ++ continue; + if (num < s_num) + goto next_dying; + if (r->id.idiag_sport != tw->tw_sport && +Index: kernel/net/ipv4/inet_fragment.c +=================================================================== +--- kernel.orig/net/ipv4/inet_fragment.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/inet_fragment.c 2008-11-24 15:47:46.000000000 +0100 +@@ -224,7 +224,9 @@ + setup_timer(&q->timer, f->frag_expire, (unsigned long)q); + spin_lock_init(&q->lock); + atomic_set(&q->refcnt, 1); +- ++#ifdef CONFIG_VE ++ q->owner_ve = get_exec_env(); ++#endif + return q; + } + +Index: kernel/net/ipv4/inet_hashtables.c +=================================================================== +--- kernel.orig/net/ipv4/inet_hashtables.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/inet_hashtables.c 2008-11-24 15:47:46.000000000 +0100 +@@ -29,7 +29,8 @@ + */ + struct inet_bind_bucket *inet_bind_bucket_create(struct kmem_cache *cachep, + struct inet_bind_hashbucket *head, +- const unsigned short snum) ++ const unsigned short snum, ++ struct ve_struct *ve) + { + struct inet_bind_bucket *tb = kmem_cache_alloc(cachep, GFP_ATOMIC); + +@@ -37,6 +38,7 @@ + tb->port = snum; + tb->fastreuse = 0; + INIT_HLIST_HEAD(&tb->owners); ++ tb->owner_env = ve; + hlist_add_head(&tb->node, &head->chain); + } + return tb; +@@ -66,10 +68,13 @@ + */ + static void __inet_put_port(struct inet_hashinfo *hashinfo, struct sock *sk) + { +- const int bhash = inet_bhashfn(inet_sk(sk)->num, hashinfo->bhash_size); +- struct inet_bind_hashbucket *head = &hashinfo->bhash[bhash]; ++ int bhash; ++ struct inet_bind_hashbucket *head; + struct inet_bind_bucket *tb; + ++ bhash = inet_bhashfn(inet_sk(sk)->num, hashinfo->bhash_size, ++ VEID(sk->owner_env)); ++ head = &hashinfo->bhash[bhash]; + spin_lock(&head->lock); + tb = inet_csk(sk)->icsk_bind_hash; + __sk_del_bind_node(sk); +@@ -132,10 +137,14 @@ + struct sock *result = NULL, *sk; + const struct hlist_node *node; + int hiscore = -1; ++ struct ve_struct *env; + ++ env = get_exec_env(); + sk_for_each(sk, node, head) { + const struct inet_sock *inet = inet_sk(sk); + ++ if (!ve_accessible_strict(sk->owner_env, env)) ++ continue; + if (inet->num == hnum && !ipv6_only_sock(sk)) { + const __be32 rcv_saddr = inet->rcv_saddr; + int score = sk->sk_family == PF_INET ? 1 : 0; +@@ -168,13 +177,16 @@ + { + struct sock *sk = NULL; + const struct hlist_head *head; ++ struct ve_struct *env; + ++ env = get_exec_env(); + read_lock(&hashinfo->lhash_lock); +- head = &hashinfo->listening_hash[inet_lhashfn(hnum)]; ++ head = &hashinfo->listening_hash[inet_lhashfn(hnum, VEID(env))]; + if (!hlist_empty(head)) { + const struct inet_sock *inet = inet_sk((sk = __sk_head(head))); + + if (inet->num == hnum && !sk->sk_node.next && ++ ve_accessible_strict(sk->owner_env, env) && + (!inet->rcv_saddr || inet->rcv_saddr == daddr) && + (sk->sk_family == PF_INET || !ipv6_only_sock(sk)) && + !sk->sk_bound_dev_if) +@@ -193,7 +205,8 @@ + /* called with local bh disabled */ + static int __inet_check_established(struct inet_timewait_death_row *death_row, + struct sock *sk, __u16 lport, +- struct inet_timewait_sock **twp) ++ struct inet_timewait_sock **twp, ++ struct ve_struct *ve) + { + struct inet_hashinfo *hinfo = death_row->hashinfo; + struct inet_sock *inet = inet_sk(sk); +@@ -202,7 +215,7 @@ + int dif = sk->sk_bound_dev_if; + INET_ADDR_COOKIE(acookie, saddr, daddr) + const __portpair ports = INET_COMBINED_PORTS(inet->dport, lport); +- unsigned int hash = inet_ehashfn(daddr, lport, saddr, inet->dport); ++ unsigned int hash = inet_ehashfn(daddr, lport, saddr, inet->dport, VEID(ve)); + struct inet_ehash_bucket *head = inet_ehash_bucket(hinfo, hash); + rwlock_t *lock = inet_ehash_lockp(hinfo, hash); + struct sock *sk2; +@@ -216,7 +229,8 @@ + sk_for_each(sk2, node, &head->twchain) { + tw = inet_twsk(sk2); + +- if (INET_TW_MATCH(sk2, hash, acookie, saddr, daddr, ports, dif)) { ++ if (INET_TW_MATCH(sk2, hash, acookie, saddr, daddr, ++ ports, dif, ve)) { + if (twsk_unique(sk, sk2, twp)) + goto unique; + else +@@ -227,7 +241,8 @@ + + /* And established part... */ + sk_for_each(sk2, node, &head->chain) { +- if (INET_MATCH(sk2, hash, acookie, saddr, daddr, ports, dif)) ++ if (INET_MATCH(sk2, hash, acookie, saddr, daddr, ++ ports, dif, ve)) + goto not_unique; + } + +@@ -278,7 +293,9 @@ + struct inet_bind_hashbucket *head; + struct inet_bind_bucket *tb; + int ret; ++ struct ve_struct *ve; + ++ ve = sk->owner_env; + if (!snum) { + int i, remaining, low, high, port; + static u32 hint; +@@ -292,7 +309,7 @@ + local_bh_disable(); + for (i = 1; i <= remaining; i++) { + port = low + (i + offset) % remaining; +- head = &hinfo->bhash[inet_bhashfn(port, hinfo->bhash_size)]; ++ head = &hinfo->bhash[inet_bhashfn(port, hinfo->bhash_size, VEID(ve))]; + spin_lock(&head->lock); + + /* Does not bother with rcv_saddr checks, +@@ -300,19 +317,21 @@ + * unique enough. + */ + inet_bind_bucket_for_each(tb, node, &head->chain) { +- if (tb->port == port) { ++ if (tb->port == port && ++ ve_accessible_strict(tb->owner_env, ve)) { + BUG_TRAP(!hlist_empty(&tb->owners)); + if (tb->fastreuse >= 0) + goto next_port; + if (!__inet_check_established(death_row, + sk, port, +- &tw)) ++ &tw, ve)) + goto ok; + goto next_port; + } + } + +- tb = inet_bind_bucket_create(hinfo->bind_bucket_cachep, head, port); ++ tb = inet_bind_bucket_create(hinfo->bind_bucket_cachep, ++ head, port, ve); + if (!tb) { + spin_unlock(&head->lock); + break; +@@ -320,7 +339,7 @@ + tb->fastreuse = -1; + goto ok; + +- next_port: ++ next_port: + spin_unlock(&head->lock); + } + local_bh_enable(); +@@ -347,7 +366,7 @@ + goto out; + } + +- head = &hinfo->bhash[inet_bhashfn(snum, hinfo->bhash_size)]; ++ head = &hinfo->bhash[inet_bhashfn(snum, hinfo->bhash_size, VEID(ve))]; + tb = inet_csk(sk)->icsk_bind_hash; + spin_lock_bh(&head->lock); + if (sk_head(&tb->owners) == sk && !sk->sk_bind_node.next) { +@@ -357,7 +376,7 @@ + } else { + spin_unlock(&head->lock); + /* No definite answer... Walk to established hash table */ +- ret = __inet_check_established(death_row, sk, snum, NULL); ++ ret = __inet_check_established(death_row, sk, snum, NULL, ve); + out: + local_bh_enable(); + return ret; +Index: kernel/net/ipv4/inet_timewait_sock.c +=================================================================== +--- kernel.orig/net/ipv4/inet_timewait_sock.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/inet_timewait_sock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -13,6 +13,8 @@ + #include + #include + ++#include ++ + /* Must be called with locally disabled BHs. */ + static void __inet_twsk_kill(struct inet_timewait_sock *tw, + struct inet_hashinfo *hashinfo) +@@ -32,7 +34,8 @@ + write_unlock(lock); + + /* Disassociate with bind bucket. */ +- bhead = &hashinfo->bhash[inet_bhashfn(tw->tw_num, hashinfo->bhash_size)]; ++ bhead = &hashinfo->bhash[inet_bhashfn(tw->tw_num, ++ hashinfo->bhash_size, tw->tw_owner_env)]; + spin_lock(&bhead->lock); + tb = tw->tw_tb; + __hlist_del(&tw->tw_bind_node); +@@ -65,7 +68,8 @@ + Note, that any socket with inet->num != 0 MUST be bound in + binding cache, even if it is closed. + */ +- bhead = &hashinfo->bhash[inet_bhashfn(inet->num, hashinfo->bhash_size)]; ++ bhead = &hashinfo->bhash[inet_bhashfn(inet->num, ++ hashinfo->bhash_size, tw->tw_owner_env)]; + spin_lock(&bhead->lock); + tw->tw_tb = icsk->icsk_bind_hash; + BUG_TRAP(icsk->icsk_bind_hash); +@@ -89,9 +93,14 @@ + + struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk, const int state) + { +- struct inet_timewait_sock *tw = +- kmem_cache_alloc(sk->sk_prot_creator->twsk_prot->twsk_slab, +- GFP_ATOMIC); ++ struct user_beancounter *ub; ++ struct inet_timewait_sock *tw; ++ ++ ub = set_exec_ub(sock_bc(sk)->ub); ++ tw = kmem_cache_alloc(sk->sk_prot_creator->twsk_prot->twsk_slab, ++ GFP_ATOMIC); ++ (void)set_exec_ub(ub); ++ + if (tw != NULL) { + const struct inet_sock *inet = inet_sk(sk); + +@@ -139,6 +148,7 @@ + rescan: + inet_twsk_for_each_inmate(tw, node, &twdr->cells[slot]) { + __inet_twsk_del_dead_node(tw); ++ ub_timewait_dec(tw, twdr); + spin_unlock(&twdr->death_lock); + __inet_twsk_kill(tw, twdr->hashinfo); + inet_twsk_put(tw); +@@ -237,6 +247,7 @@ + { + spin_lock(&twdr->death_lock); + if (inet_twsk_del_dead_node(tw)) { ++ ub_timewait_dec(tw, twdr); + inet_twsk_put(tw); + if (--twdr->tw_count == 0) + del_timer(&twdr->tw_timer); +@@ -283,9 +294,10 @@ + spin_lock(&twdr->death_lock); + + /* Unlink it, if it was scheduled */ +- if (inet_twsk_del_dead_node(tw)) ++ if (inet_twsk_del_dead_node(tw)) { ++ ub_timewait_dec(tw, twdr); + twdr->tw_count--; +- else ++ } else + atomic_inc(&tw->tw_refcnt); + + if (slot >= INET_TWDR_RECYCLE_SLOTS) { +@@ -321,6 +333,7 @@ + + hlist_add_head(&tw->tw_death_node, list); + ++ ub_timewait_inc(tw, twdr); + if (twdr->tw_count++ == 0) + mod_timer(&twdr->tw_timer, jiffies + twdr->period); + spin_unlock(&twdr->death_lock); +@@ -355,6 +368,7 @@ + &twdr->twcal_row[slot]) { + __inet_twsk_del_dead_node(tw); + __inet_twsk_kill(tw, twdr->hashinfo); ++ ub_timewait_dec(tw, twdr); + inet_twsk_put(tw); + killed++; + } +Index: kernel/net/ipv4/ip_forward.c +=================================================================== +--- kernel.orig/net/ipv4/ip_forward.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ip_forward.c 2008-11-24 15:47:46.000000000 +0100 +@@ -93,6 +93,24 @@ + goto drop; + } + ++ /* ++ * We try to optimize forwarding of VE packets: ++ * do not decrement TTL (and so save skb_cow) ++ * during forwarding of outgoing pkts from VE. ++ * For incoming pkts we still do ttl decr, ++ * since such skb is not cloned and does not require ++ * actual cow. So, there is at least one place ++ * in pkts path with mandatory ttl decr, that is ++ * sufficient to prevent routing loops. ++ */ ++ iph = ip_hdr(skb); ++ if ( ++#ifdef CONFIG_IP_ROUTE_NAT ++ (rt->rt_flags & RTCF_NAT) == 0 && /* no NAT mangling expected */ ++#endif /* and */ ++ (skb->dev->features & NETIF_F_VENET)) /* src is VENET device */ ++ goto no_ttl_decr; ++ + /* We are about to mangle packet. Copy it! */ + if (skb_cow(skb, LL_RESERVED_SPACE(rt->u.dst.dev)+rt->u.dst.header_len)) + goto drop; +@@ -101,6 +119,8 @@ + /* Decrease ttl after skb cow done */ + ip_decrease_ttl(iph); + ++no_ttl_decr: ++ + /* + * We now generate an ICMP HOST REDIRECT giving the route + * we calculated. +Index: kernel/net/ipv4/ip_fragment.c +=================================================================== +--- kernel.orig/net/ipv4/ip_fragment.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ip_fragment.c 2008-11-24 15:47:46.000000000 +0100 +@@ -31,6 +31,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -138,7 +139,8 @@ + qp->saddr == arg->iph->saddr && + qp->daddr == arg->iph->daddr && + qp->protocol == arg->iph->protocol && +- qp->user == arg->user); ++ qp->user == arg->user && ++ q->owner_ve == get_exec_env()); + } + + /* Memory Tracking Functions. */ +@@ -206,9 +208,12 @@ + */ + static void ip_expire(unsigned long arg) + { ++ struct inet_frag_queue *q = (struct inet_frag_queue *)arg; + struct ipq *qp; ++ struct ve_struct *old_ve; + +- qp = container_of((struct inet_frag_queue *) arg, struct ipq, q); ++ qp = container_of(q, struct ipq, q); ++ old_ve = set_exec_env(q->owner_ve); + + spin_lock(&qp->q.lock); + +@@ -223,7 +228,7 @@ + if ((qp->q.last_in&FIRST_IN) && qp->q.fragments != NULL) { + struct sk_buff *head = qp->q.fragments; + /* Send an ICMP "Fragment Reassembly Timeout" message. */ +- if ((head->dev = dev_get_by_index(&init_net, qp->iif)) != NULL) { ++ if ((head->dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, qp->iif)) != NULL) { + icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0); + dev_put(head->dev); + } +@@ -231,6 +236,8 @@ + out: + spin_unlock(&qp->q.lock); + ipq_put(qp); ++ ++ (void)set_exec_env(old_ve); + } + + /* Find the correct entry in the "incomplete datagrams" queue for +@@ -535,6 +542,7 @@ + clone->csum = 0; + clone->ip_summed = head->ip_summed; + atomic_add(clone->truesize, &ip4_frags.mem); ++ clone->owner_env = head->owner_env; + } + + skb_shinfo(head)->frag_list = head->next; +@@ -607,6 +615,49 @@ + return -ENOMEM; + } + ++#ifdef CONFIG_VE ++/* XXX */ ++void ip_fragment_cleanup(struct ve_struct *ve) ++{ ++ int i, progress; ++ ++ /* All operations with fragment queues are performed from NET_RX/TX ++ * soft interrupts or from timer context. --Den */ ++ local_bh_disable(); ++ do { ++ progress = 0; ++ for (i = 0; i < INETFRAGS_HASHSZ; i++) { ++ struct ipq *qp; ++ struct hlist_node *p, *n; ++ ++ if (hlist_empty(&ip4_frags.hash[i])) ++ continue; ++inner_restart: ++ read_lock(&ip4_frags.lock); ++ hlist_for_each_entry_safe(qp, p, n, ++ &ip4_frags.hash[i], q.list) { ++ if (!ve_accessible_strict(qp->q.owner_ve, ve)) ++ continue; ++ atomic_inc(&qp->q.refcnt); ++ read_unlock(&ip4_frags.lock); ++ ++ spin_lock(&qp->q.lock); ++ if (!(qp->q.last_in & COMPLETE)) ++ ipq_kill(qp); ++ spin_unlock(&qp->q.lock); ++ ++ ipq_put(qp); ++ progress = 1; ++ goto inner_restart; ++ } ++ read_unlock(&ip4_frags.lock); ++ } ++ } while (progress); ++ local_bh_enable(); ++} ++EXPORT_SYMBOL(ip_fragment_cleanup); ++#endif ++ + void __init ipfrag_init(void) + { + ip4_frags.ctl = &ip4_frags_ctl; +Index: kernel/net/ipv4/ip_gre.c +=================================================================== +--- kernel.orig/net/ipv4/ip_gre.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ip_gre.c 2008-11-24 15:47:46.000000000 +0100 +@@ -17,6 +17,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -262,7 +263,7 @@ + int i; + for (i=1; i<100; i++) { + sprintf(name, "gre%d", i); +- if (__dev_get_by_name(&init_net, name) == NULL) ++ if (__dev_get_by_name(get_exec_env()->ve_ns->net_ns, name) == NULL) + break; + } + if (i==100) +@@ -1210,7 +1211,7 @@ + } + + if (!tdev && tunnel->parms.link) +- tdev = __dev_get_by_index(&init_net, tunnel->parms.link); ++ tdev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, tunnel->parms.link); + + if (tdev) { + hlen = tdev->hard_header_len; +Index: kernel/net/ipv4/ip_input.c +=================================================================== +--- kernel.orig/net/ipv4/ip_input.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ip_input.c 2008-11-24 15:47:46.000000000 +0100 +@@ -197,6 +197,8 @@ + + static int ip_local_deliver_finish(struct sk_buff *skb) + { ++ if (skb->destructor) ++ skb_orphan(skb); + __skb_pull(skb, ip_hdrlen(skb)); + + /* Point into the IP datagram, just past the header. */ +@@ -380,9 +382,6 @@ + struct iphdr *iph; + u32 len; + +- if (dev->nd_net != &init_net) +- goto drop; +- + /* When the interface is in promisc. mode, drop all the crap + * that it receives, do not try to analyse it. + */ +Index: kernel/net/ipv4/ip_output.c +=================================================================== +--- kernel.orig/net/ipv4/ip_output.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ip_output.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1344,12 +1344,13 @@ + char data[40]; + } replyopts; + struct ipcm_cookie ipc; +- __be32 daddr; ++ __be32 saddr, daddr; + struct rtable *rt = (struct rtable*)skb->dst; + + if (ip_options_echo(&replyopts.opt, skb)) + return; + ++ saddr = ip_hdr(skb)->daddr; + daddr = ipc.addr = rt->rt_src; + ipc.opt = NULL; + +@@ -1364,7 +1365,7 @@ + struct flowi fl = { .oif = arg->bound_dev_if, + .nl_u = { .ip4_u = + { .daddr = daddr, +- .saddr = rt->rt_spec_dst, ++ .saddr = saddr, + .tos = RT_TOS(ip_hdr(skb)->tos) } }, + /* Not quite clean, but right. */ + .uli_u = { .ports = +Index: kernel/net/ipv4/ip_sockglue.c +=================================================================== +--- kernel.orig/net/ipv4/ip_sockglue.c 2008-11-24 14:14:31.000000000 +0100 ++++ kernel/net/ipv4/ip_sockglue.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -595,7 +596,7 @@ + dev_put(dev); + } + } else +- dev = __dev_get_by_index(&init_net, mreq.imr_ifindex); ++ dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, mreq.imr_ifindex); + + + err = -EADDRNOTAVAIL; +Index: kernel/net/ipv4/ipconfig.c +=================================================================== +--- kernel.orig/net/ipv4/ipconfig.c 2008-11-24 14:14:32.000000000 +0100 ++++ kernel/net/ipv4/ipconfig.c 2008-11-24 15:47:46.000000000 +0100 +@@ -185,19 +185,20 @@ + struct ic_device *d, **last; + struct net_device *dev; + unsigned short oflags; ++ struct net *net = get_exec_env()->ve_ns->net_ns; + + last = &ic_first_dev; + rtnl_lock(); + + /* bring loopback device up first */ +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(net, dev) { + if (!(dev->flags & IFF_LOOPBACK)) + continue; + if (dev_change_flags(dev, dev->flags | IFF_UP) < 0) + printk(KERN_ERR "IP-Config: Failed to open %s\n", dev->name); + } + +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(net, dev) { + if (dev->flags & IFF_LOOPBACK) + continue; + if (user_dev_name[0] ? !strcmp(dev->name, user_dev_name) : +@@ -430,9 +431,6 @@ + unsigned char *sha, *tha; /* s for "source", t for "target" */ + struct ic_device *d; + +- if (dev->nd_net != &init_net) +- goto drop; +- + if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) + return NET_RX_DROP; + +@@ -842,9 +840,6 @@ + struct ic_device *d; + int len, ext_len; + +- if (dev->nd_net != &init_net) +- goto drop; +- + /* Perform verifications before taking the lock. */ + if (skb->pkt_type == PACKET_OTHERHOST) + goto drop; +Index: kernel/net/ipv4/ipip.c +=================================================================== +--- kernel.orig/net/ipv4/ipip.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ipip.c 2008-11-24 15:47:46.000000000 +0100 +@@ -100,6 +100,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -225,7 +226,7 @@ + int i; + for (i=1; i<100; i++) { + sprintf(name, "tunl%d", i); +- if (__dev_get_by_name(&init_net, name) == NULL) ++ if (__dev_get_by_name(get_exec_env()->ve_ns->net_ns, name) == NULL) + break; + } + if (i==100) +@@ -820,7 +821,7 @@ + } + + if (!tdev && tunnel->parms.link) +- tdev = __dev_get_by_index(&init_net, tunnel->parms.link); ++ tdev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, tunnel->parms.link); + + if (tdev) { + dev->hard_header_len = tdev->hard_header_len + sizeof(struct iphdr); +Index: kernel/net/ipv4/ipmr.c +=================================================================== +--- kernel.orig/net/ipv4/ipmr.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ipmr.c 2008-11-24 15:47:46.000000000 +0100 +@@ -42,6 +42,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -123,9 +124,10 @@ + static + struct net_device *ipmr_new_tunnel(struct vifctl *v) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct net_device *dev; + +- dev = __dev_get_by_name(&init_net, "tunl0"); ++ dev = __dev_get_by_name(net, "tunl0"); + + if (dev) { + int err; +@@ -149,7 +151,7 @@ + + dev = NULL; + +- if (err == 0 && (dev = __dev_get_by_name(&init_net, p.name)) != NULL) { ++ if (err == 0 && (dev = __dev_get_by_name(net, p.name)) != NULL) { + dev->flags |= IFF_MULTICAST; + + in_dev = __in_dev_get_rtnl(dev); +@@ -1087,9 +1089,6 @@ + struct vif_device *v; + int ct; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + if (event != NETDEV_UNREGISTER) + return NOTIFY_DONE; + v=&vif_table[0]; +Index: kernel/net/ipv4/ipvs/ip_vs_conn.c +=================================================================== +--- kernel.orig/net/ipv4/ipvs/ip_vs_conn.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ipvs/ip_vs_conn.c 2008-11-24 15:47:46.000000000 +0100 +@@ -920,7 +920,7 @@ + /* Allocate ip_vs_conn slab cache */ + ip_vs_conn_cachep = kmem_cache_create("ip_vs_conn", + sizeof(struct ip_vs_conn), 0, +- SLAB_HWCACHE_ALIGN, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_UBC, NULL); + if (!ip_vs_conn_cachep) { + vfree(ip_vs_conn_tab); + return -ENOMEM; +Index: kernel/net/ipv4/ipvs/ip_vs_core.c +=================================================================== +--- kernel.orig/net/ipv4/ipvs/ip_vs_core.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ipvs/ip_vs_core.c 2008-11-24 15:47:46.000000000 +0100 +@@ -909,6 +909,10 @@ + * Big tappo: only PACKET_HOST (neither loopback nor mcasts) + * ... don't know why 1st test DOES NOT include 2nd (?) + */ ++ /* ++ * VZ: the question above is right. ++ * The second test is superfluous. ++ */ + if (unlikely(skb->pkt_type != PACKET_HOST + || skb->dev->flags & IFF_LOOPBACK || skb->sk)) { + IP_VS_DBG(12, "packet type=%d proto=%d daddr=%d.%d.%d.%d ignored\n", +Index: kernel/net/ipv4/ipvs/ip_vs_sync.c +=================================================================== +--- kernel.orig/net/ipv4/ipvs/ip_vs_sync.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/ipvs/ip_vs_sync.c 2008-11-24 15:47:46.000000000 +0100 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -404,7 +405,7 @@ + struct net_device *dev; + struct inet_sock *inet = inet_sk(sk); + +- if ((dev = __dev_get_by_name(&init_net, ifname)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, ifname)) == NULL) + return -ENODEV; + + if (sk->sk_bound_dev_if && dev->ifindex != sk->sk_bound_dev_if) +@@ -425,11 +426,12 @@ + */ + static int set_sync_mesg_maxlen(int sync_state) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct net_device *dev; + int num; + + if (sync_state == IP_VS_STATE_MASTER) { +- if ((dev = __dev_get_by_name(&init_net, ip_vs_master_mcast_ifn)) == NULL) ++ if ((dev = __dev_get_by_name(net, ip_vs_master_mcast_ifn)) == NULL) + return -ENODEV; + + num = (dev->mtu - sizeof(struct iphdr) - +@@ -440,7 +442,7 @@ + IP_VS_DBG(7, "setting the maximum length of sync sending " + "message %d.\n", sync_send_mesg_maxlen); + } else if (sync_state == IP_VS_STATE_BACKUP) { +- if ((dev = __dev_get_by_name(&init_net, ip_vs_backup_mcast_ifn)) == NULL) ++ if ((dev = __dev_get_by_name(net, ip_vs_backup_mcast_ifn)) == NULL) + return -ENODEV; + + sync_recv_mesg_maxlen = dev->mtu - +@@ -468,7 +470,7 @@ + memset(&mreq, 0, sizeof(mreq)); + memcpy(&mreq.imr_multiaddr, addr, sizeof(struct in_addr)); + +- if ((dev = __dev_get_by_name(&init_net, ifname)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, ifname)) == NULL) + return -ENODEV; + if (sk->sk_bound_dev_if && dev->ifindex != sk->sk_bound_dev_if) + return -EINVAL; +@@ -489,7 +491,7 @@ + __be32 addr; + struct sockaddr_in sin; + +- if ((dev = __dev_get_by_name(&init_net, ifname)) == NULL) ++ if ((dev = __dev_get_by_name(get_exec_env()->ve_ns->net_ns, ifname)) == NULL) + return -ENODEV; + + addr = inet_select_addr(dev, 0, RT_SCOPE_UNIVERSE); +Index: kernel/net/ipv4/netfilter/ip_queue.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ip_queue.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ip_queue.c 2008-11-24 15:47:46.000000000 +0100 +@@ -502,7 +502,7 @@ + if (type <= IPQM_BASE) + return; + +- if (security_netlink_recv(skb, CAP_NET_ADMIN)) ++ if (security_netlink_recv(skb, CAP_VE_NET_ADMIN)) + RCV_SKB_FAIL(-EPERM); + + write_lock_bh(&queue_lock); +@@ -532,8 +532,12 @@ + static void + ipq_rcv_skb(struct sk_buff *skb) + { ++ struct ve_struct *old_ve; ++ + mutex_lock(&ipqnl_mutex); ++ old_ve = set_exec_env(skb->owner_env); + __ipq_rcv_skb(skb); ++ (void)set_exec_env(old_ve); + mutex_unlock(&ipqnl_mutex); + } + +@@ -543,9 +547,6 @@ + { + struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + /* Drop any packets associated with the downed device */ + if (event == NETDEV_DOWN) + ipq_dev_drop(dev->ifindex); +@@ -565,7 +566,7 @@ + if (event == NETLINK_URELEASE && + n->protocol == NETLINK_FIREWALL && n->pid) { + write_lock_bh(&queue_lock); +- if ((n->net == &init_net) && (n->pid == peer_pid)) ++ if (n->pid == peer_pid) + __ipq_reset(); + write_unlock_bh(&queue_lock); + } +Index: kernel/net/ipv4/netfilter/ip_tables.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ip_tables.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ip_tables.c 2008-11-24 15:47:46.000000000 +0100 +@@ -23,9 +23,11 @@ + #include + #include + #include ++#include + + #include + #include ++#include + + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Netfilter Core Team "); +@@ -482,8 +484,8 @@ + int visited = e->comefrom & (1 << hook); + + if (e->comefrom & (1 << NF_IP_NUMHOOKS)) { +- printk("iptables: loop hook %u pos %u %08X.\n", +- hook, pos, e->comefrom); ++ ve_printk(VE_LOG, "iptables: loop hook %u pos " ++ "%u %08X.\n", hook, pos, e->comefrom); + return 0; + } + e->comefrom +@@ -504,6 +506,13 @@ + return 0; + } + ++ if (t->verdict < -NF_MAX_VERDICT - 1) { ++ duprintf("mark_source_chains: bad " ++ "negative verdict (%i)\n", ++ t->verdict); ++ return 0; ++ } ++ + /* Return: backtrack through the last + big jump. */ + do { +@@ -925,7 +934,7 @@ + (other than comefrom, which userspace doesn't care + about). */ + countersize = sizeof(struct xt_counters) * private->number; +- counters = vmalloc_node(countersize, numa_node_id()); ++ counters = ub_vmalloc_node(countersize, numa_node_id()); + + if (counters == NULL) + return ERR_PTR(-ENOMEM); +@@ -1254,7 +1263,7 @@ + void *loc_cpu_old_entry; + + ret = 0; +- counters = vmalloc(num_counters * sizeof(struct xt_counters)); ++ counters = ub_vmalloc_best(num_counters * sizeof(struct xt_counters)); + if (!counters) { + ret = -ENOMEM; + goto out; +@@ -1433,7 +1442,7 @@ + if (len != size + num_counters * sizeof(struct xt_counters)) + return -EINVAL; + +- paddc = vmalloc_node(len - size, numa_node_id()); ++ paddc = ub_vmalloc_node(len - size, numa_node_id()); + if (!paddc) + return -ENOMEM; + +@@ -1778,18 +1787,18 @@ + } + + /* Check hooks all assigned */ +- for (i = 0; i < NF_IP_NUMHOOKS; i++) { ++ for (j = 0; j < NF_IP_NUMHOOKS; j++) { + /* Only hooks which are valid */ +- if (!(valid_hooks & (1 << i))) ++ if (!(valid_hooks & (1 << j))) + continue; +- if (info->hook_entry[i] == 0xFFFFFFFF) { ++ if (info->hook_entry[j] == 0xFFFFFFFF) { + duprintf("Invalid hook entry %u %u\n", +- i, hook_entries[i]); ++ j, hook_entries[j]); + goto out_unlock; + } +- if (info->underflow[i] == 0xFFFFFFFF) { ++ if (info->underflow[j] == 0xFFFFFFFF) { + duprintf("Invalid underflow %u %u\n", +- i, underflows[i]); ++ j, underflows[j]); + goto out_unlock; + } + } +@@ -1800,9 +1809,9 @@ + goto out_unlock; + + newinfo->number = number; +- for (i = 0; i < NF_IP_NUMHOOKS; i++) { +- newinfo->hook_entry[i] = info->hook_entry[i]; +- newinfo->underflow[i] = info->underflow[i]; ++ for (j = 0; j < NF_IP_NUMHOOKS; j++) { ++ newinfo->hook_entry[j] = info->hook_entry[j]; ++ newinfo->underflow[j] = info->underflow[j]; + } + entry1 = newinfo->entries[raw_smp_processor_id()]; + pos = entry1; +@@ -1908,15 +1917,22 @@ + return ret; + } + ++static int do_ipt_set_ctl(struct sock *, int, void __user *, unsigned int); ++ + static int + compat_do_ipt_set_ctl(struct sock *sk, int cmd, void __user *user, + unsigned int len) + { + int ret; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) && !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_xt_tables[AF_INET].next) ++ return -ENOENT; ++#endif ++ + switch (cmd) { + case IPT_SO_SET_REPLACE: + ret = compat_do_replace(user, len); +@@ -1927,8 +1943,7 @@ + break; + + default: +- duprintf("do_ipt_set_ctl: unknown request %i\n", cmd); +- ret = -EINVAL; ++ ret = do_ipt_set_ctl(sk, cmd, user, len); + } + + return ret; +@@ -2029,9 +2044,14 @@ + { + int ret; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) && !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_xt_tables[AF_INET].next) ++ return -ENOENT; ++#endif ++ + switch (cmd) { + case IPT_SO_GET_INFO: + ret = get_info(user, len, 1); +@@ -2051,9 +2071,14 @@ + { + int ret; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) && !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_xt_tables[AF_INET].next) ++ return -ENOENT; ++#endif ++ + switch (cmd) { + case IPT_SO_SET_REPLACE: + ret = do_replace(user, len); +@@ -2076,9 +2101,14 @@ + { + int ret; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) && !capable(CAP_VE_NET_ADMIN)) + return -EPERM; + ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_xt_tables[AF_INET].next) ++ return -ENOENT; ++#endif ++ + switch (cmd) { + case IPT_SO_GET_INFO: + ret = get_info(user, len, 0); +@@ -2122,17 +2152,18 @@ + return ret; + } + +-int ipt_register_table(struct xt_table *table, const struct ipt_replace *repl) ++struct xt_table *ipt_register_table(struct xt_table *table, ++ const struct ipt_replace *repl) + { + int ret; + struct xt_table_info *newinfo; + static struct xt_table_info bootstrap +- = { 0, 0, 0, { 0 }, { 0 }, { } }; ++ = { 0, 0, 0, 0, { 0 }, { 0 }, { } }; + void *loc_cpu_entry; + + newinfo = xt_alloc_table_info(repl->size); + if (!newinfo) +- return -ENOMEM; ++ return ERR_PTR(-ENOMEM); + + /* choose the copy on our node/cpu + * but dont care of preemption +@@ -2147,28 +2178,30 @@ + repl->underflow); + if (ret != 0) { + xt_free_table_info(newinfo); +- return ret; ++ return ERR_PTR(ret); + } + +- ret = xt_register_table(table, &bootstrap, newinfo); +- if (ret != 0) { ++ table = virt_xt_register_table(table, &bootstrap, newinfo); ++ if (IS_ERR(table)) + xt_free_table_info(newinfo); +- return ret; +- } + +- return 0; ++ return table; + } + + void ipt_unregister_table(struct xt_table *table) + { + struct xt_table_info *private; + void *loc_cpu_entry; ++ struct module *me; + +- private = xt_unregister_table(table); ++ me = table->me; ++ private = virt_xt_unregister_table(table); + + /* Decrease module usage counts and free resources */ + loc_cpu_entry = private->entries[raw_smp_processor_id()]; + IPT_ENTRY_ITERATE(loc_cpu_entry, private->size, cleanup_entry, NULL); ++ if (private->number > private->initial_entries) ++ module_put(me); + xt_free_table_info(private); + } + +@@ -2275,12 +2308,30 @@ + .checkentry = icmp_checkentry, + }; + ++static int init_iptables(void) ++{ ++#ifdef CONFIG_VE_IPTABLES ++ if (get_exec_env()->_xt_tables[AF_INET].next != NULL) ++ return -EEXIST; ++#endif ++ ++ return xt_proto_init(AF_INET); ++} ++ ++static void fini_iptables(void) ++{ ++#ifdef CONFIG_VE_IPTABLES ++ get_exec_env()->_xt_tables[AF_INET].next = NULL; ++#endif ++ xt_proto_fini(AF_INET); ++} ++ + static int __init ip_tables_init(void) + { + int ret; + +- ret = xt_proto_init(AF_INET); +- if (ret < 0) ++ ret = init_iptables(); ++ if (ret) + goto err1; + + /* Noone else will be downing sem now, so we won't sleep */ +@@ -2299,6 +2350,10 @@ + if (ret < 0) + goto err5; + ++ KSYMRESOLVE(init_iptables); ++ KSYMRESOLVE(fini_iptables); ++ KSYMMODRESOLVE(ip_tables); ++ + printk(KERN_INFO "ip_tables: (C) 2000-2006 Netfilter Core Team\n"); + return 0; + +@@ -2309,24 +2364,25 @@ + err3: + xt_unregister_target(&ipt_standard_target); + err2: +- xt_proto_fini(AF_INET); ++ fini_iptables(); + err1: + return ret; + } + + static void __exit ip_tables_fini(void) + { ++ KSYMMODUNRESOLVE(ip_tables); ++ KSYMUNRESOLVE(init_iptables); ++ KSYMUNRESOLVE(fini_iptables); + nf_unregister_sockopt(&ipt_sockopts); +- + xt_unregister_match(&icmp_matchstruct); + xt_unregister_target(&ipt_error_target); + xt_unregister_target(&ipt_standard_target); +- +- xt_proto_fini(AF_INET); ++ fini_iptables(); + } + + EXPORT_SYMBOL(ipt_register_table); + EXPORT_SYMBOL(ipt_unregister_table); + EXPORT_SYMBOL(ipt_do_table); +-module_init(ip_tables_init); ++subsys_initcall(ip_tables_init); + module_exit(ip_tables_fini); +Index: kernel/net/ipv4/netfilter/ipt_CLUSTERIP.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_CLUSTERIP.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_CLUSTERIP.c 2008-11-24 15:47:46.000000000 +0100 +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -401,7 +402,7 @@ + return false; + } + +- dev = dev_get_by_name(&init_net, e->ip.iniface); ++ dev = dev_get_by_name(get_exec_env()->ve_ns->net_ns, e->ip.iniface); + if (!dev) { + printk(KERN_WARNING "CLUSTERIP: no such interface %s\n", e->ip.iniface); + return false; +Index: kernel/net/ipv4/netfilter/ipt_LOG.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_LOG.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_LOG.c 2008-11-24 15:47:46.000000000 +0100 +@@ -46,32 +46,32 @@ + + ih = skb_header_pointer(skb, iphoff, sizeof(_iph), &_iph); + if (ih == NULL) { +- printk("TRUNCATED"); ++ ve_printk(VE_LOG, "TRUNCATED"); + return; + } + + /* Important fields: + * TOS, len, DF/MF, fragment offset, TTL, src, dst, options. */ + /* Max length: 40 "SRC=255.255.255.255 DST=255.255.255.255 " */ +- printk("SRC=%u.%u.%u.%u DST=%u.%u.%u.%u ", ++ ve_printk(VE_LOG, "SRC=%u.%u.%u.%u DST=%u.%u.%u.%u ", + NIPQUAD(ih->saddr), NIPQUAD(ih->daddr)); + + /* Max length: 46 "LEN=65535 TOS=0xFF PREC=0xFF TTL=255 ID=65535 " */ +- printk("LEN=%u TOS=0x%02X PREC=0x%02X TTL=%u ID=%u ", ++ ve_printk(VE_LOG, "LEN=%u TOS=0x%02X PREC=0x%02X TTL=%u ID=%u ", + ntohs(ih->tot_len), ih->tos & IPTOS_TOS_MASK, + ih->tos & IPTOS_PREC_MASK, ih->ttl, ntohs(ih->id)); + + /* Max length: 6 "CE DF MF " */ + if (ntohs(ih->frag_off) & IP_CE) +- printk("CE "); ++ ve_printk(VE_LOG, "CE "); + if (ntohs(ih->frag_off) & IP_DF) +- printk("DF "); ++ ve_printk(VE_LOG, "DF "); + if (ntohs(ih->frag_off) & IP_MF) +- printk("MF "); ++ ve_printk(VE_LOG, "MF "); + + /* Max length: 11 "FRAG:65535 " */ + if (ntohs(ih->frag_off) & IP_OFFSET) +- printk("FRAG:%u ", ntohs(ih->frag_off) & IP_OFFSET); ++ ve_printk(VE_LOG, "FRAG:%u ", ntohs(ih->frag_off) & IP_OFFSET); + + if ((logflags & IPT_LOG_IPOPT) + && ih->ihl * 4 > sizeof(struct iphdr)) { +@@ -82,15 +82,15 @@ + op = skb_header_pointer(skb, iphoff+sizeof(_iph), + optsize, _opt); + if (op == NULL) { +- printk("TRUNCATED"); ++ ve_printk(VE_LOG, "TRUNCATED"); + return; + } + + /* Max length: 127 "OPT (" 15*4*2chars ") " */ +- printk("OPT ("); ++ ve_printk(VE_LOG, "OPT ("); + for (i = 0; i < optsize; i++) +- printk("%02X", op[i]); +- printk(") "); ++ ve_printk(VE_LOG, "%02X", op[i]); ++ ve_printk(VE_LOG, ") "); + } + + switch (ih->protocol) { +@@ -99,7 +99,7 @@ + const struct tcphdr *th; + + /* Max length: 10 "PROTO=TCP " */ +- printk("PROTO=TCP "); ++ ve_printk(VE_LOG, "PROTO=TCP "); + + if (ntohs(ih->frag_off) & IP_OFFSET) + break; +@@ -108,41 +108,41 @@ + th = skb_header_pointer(skb, iphoff + ih->ihl * 4, + sizeof(_tcph), &_tcph); + if (th == NULL) { +- printk("INCOMPLETE [%u bytes] ", ++ ve_printk(VE_LOG, "INCOMPLETE [%u bytes] ", + skb->len - iphoff - ih->ihl*4); + break; + } + + /* Max length: 20 "SPT=65535 DPT=65535 " */ +- printk("SPT=%u DPT=%u ", ++ ve_printk(VE_LOG, "SPT=%u DPT=%u ", + ntohs(th->source), ntohs(th->dest)); + /* Max length: 30 "SEQ=4294967295 ACK=4294967295 " */ + if (logflags & IPT_LOG_TCPSEQ) +- printk("SEQ=%u ACK=%u ", ++ ve_printk(VE_LOG, "SEQ=%u ACK=%u ", + ntohl(th->seq), ntohl(th->ack_seq)); + /* Max length: 13 "WINDOW=65535 " */ +- printk("WINDOW=%u ", ntohs(th->window)); ++ ve_printk(VE_LOG, "WINDOW=%u ", ntohs(th->window)); + /* Max length: 9 "RES=0x3F " */ +- printk("RES=0x%02x ", (u8)(ntohl(tcp_flag_word(th) & TCP_RESERVED_BITS) >> 22)); ++ ve_printk(VE_LOG, "RES=0x%02x ", (u8)(ntohl(tcp_flag_word(th) & TCP_RESERVED_BITS) >> 22)); + /* Max length: 32 "CWR ECE URG ACK PSH RST SYN FIN " */ + if (th->cwr) +- printk("CWR "); ++ ve_printk(VE_LOG, "CWR "); + if (th->ece) +- printk("ECE "); ++ ve_printk(VE_LOG, "ECE "); + if (th->urg) +- printk("URG "); ++ ve_printk(VE_LOG, "URG "); + if (th->ack) +- printk("ACK "); ++ ve_printk(VE_LOG, "ACK "); + if (th->psh) +- printk("PSH "); ++ ve_printk(VE_LOG, "PSH "); + if (th->rst) +- printk("RST "); ++ ve_printk(VE_LOG, "RST "); + if (th->syn) +- printk("SYN "); ++ ve_printk(VE_LOG, "SYN "); + if (th->fin) +- printk("FIN "); ++ ve_printk(VE_LOG, "FIN "); + /* Max length: 11 "URGP=65535 " */ +- printk("URGP=%u ", ntohs(th->urg_ptr)); ++ ve_printk(VE_LOG, "URGP=%u ", ntohs(th->urg_ptr)); + + if ((logflags & IPT_LOG_TCPOPT) + && th->doff * 4 > sizeof(struct tcphdr)) { +@@ -155,15 +155,15 @@ + iphoff+ih->ihl*4+sizeof(_tcph), + optsize, _opt); + if (op == NULL) { +- printk("TRUNCATED"); ++ ve_printk(VE_LOG, "TRUNCATED"); + return; + } + + /* Max length: 127 "OPT (" 15*4*2chars ") " */ +- printk("OPT ("); ++ ve_printk(VE_LOG, "OPT ("); + for (i = 0; i < optsize; i++) +- printk("%02X", op[i]); +- printk(") "); ++ ve_printk(VE_LOG, "%02X", op[i]); ++ ve_printk(VE_LOG, ") "); + } + break; + } +@@ -174,9 +174,9 @@ + + if (ih->protocol == IPPROTO_UDP) + /* Max length: 10 "PROTO=UDP " */ +- printk("PROTO=UDP " ); ++ ve_printk(VE_LOG, "PROTO=UDP " ); + else /* Max length: 14 "PROTO=UDPLITE " */ +- printk("PROTO=UDPLITE "); ++ ve_printk(VE_LOG, "PROTO=UDPLITE "); + + if (ntohs(ih->frag_off) & IP_OFFSET) + break; +@@ -185,13 +185,13 @@ + uh = skb_header_pointer(skb, iphoff+ih->ihl*4, + sizeof(_udph), &_udph); + if (uh == NULL) { +- printk("INCOMPLETE [%u bytes] ", ++ ve_printk(VE_LOG, "INCOMPLETE [%u bytes] ", + skb->len - iphoff - ih->ihl*4); + break; + } + + /* Max length: 20 "SPT=65535 DPT=65535 " */ +- printk("SPT=%u DPT=%u LEN=%u ", ++ ve_printk(VE_LOG, "SPT=%u DPT=%u LEN=%u ", + ntohs(uh->source), ntohs(uh->dest), + ntohs(uh->len)); + break; +@@ -218,7 +218,7 @@ + [ICMP_ADDRESSREPLY] = 12 }; + + /* Max length: 11 "PROTO=ICMP " */ +- printk("PROTO=ICMP "); ++ ve_printk(VE_LOG, "PROTO=ICMP "); + + if (ntohs(ih->frag_off) & IP_OFFSET) + break; +@@ -227,19 +227,19 @@ + ich = skb_header_pointer(skb, iphoff + ih->ihl * 4, + sizeof(_icmph), &_icmph); + if (ich == NULL) { +- printk("INCOMPLETE [%u bytes] ", ++ ve_printk(VE_LOG, "INCOMPLETE [%u bytes] ", + skb->len - iphoff - ih->ihl*4); + break; + } + + /* Max length: 18 "TYPE=255 CODE=255 " */ +- printk("TYPE=%u CODE=%u ", ich->type, ich->code); ++ ve_printk(VE_LOG, "TYPE=%u CODE=%u ", ich->type, ich->code); + + /* Max length: 25 "INCOMPLETE [65535 bytes] " */ + if (ich->type <= NR_ICMP_TYPES + && required_len[ich->type] + && skb->len-iphoff-ih->ihl*4 < required_len[ich->type]) { +- printk("INCOMPLETE [%u bytes] ", ++ ve_printk(VE_LOG, "INCOMPLETE [%u bytes] ", + skb->len - iphoff - ih->ihl*4); + break; + } +@@ -248,19 +248,19 @@ + case ICMP_ECHOREPLY: + case ICMP_ECHO: + /* Max length: 19 "ID=65535 SEQ=65535 " */ +- printk("ID=%u SEQ=%u ", ++ ve_printk(VE_LOG, "ID=%u SEQ=%u ", + ntohs(ich->un.echo.id), + ntohs(ich->un.echo.sequence)); + break; + + case ICMP_PARAMETERPROB: + /* Max length: 14 "PARAMETER=255 " */ +- printk("PARAMETER=%u ", ++ ve_printk(VE_LOG, "PARAMETER=%u ", + ntohl(ich->un.gateway) >> 24); + break; + case ICMP_REDIRECT: + /* Max length: 24 "GATEWAY=255.255.255.255 " */ +- printk("GATEWAY=%u.%u.%u.%u ", ++ ve_printk(VE_LOG, "GATEWAY=%u.%u.%u.%u ", + NIPQUAD(ich->un.gateway)); + /* Fall through */ + case ICMP_DEST_UNREACH: +@@ -268,16 +268,16 @@ + case ICMP_TIME_EXCEEDED: + /* Max length: 3+maxlen */ + if (!iphoff) { /* Only recurse once. */ +- printk("["); ++ ve_printk(VE_LOG, "["); + dump_packet(info, skb, + iphoff + ih->ihl*4+sizeof(_icmph)); +- printk("] "); ++ ve_printk(VE_LOG, "] "); + } + + /* Max length: 10 "MTU=65535 " */ + if (ich->type == ICMP_DEST_UNREACH + && ich->code == ICMP_FRAG_NEEDED) +- printk("MTU=%u ", ntohs(ich->un.frag.mtu)); ++ ve_printk(VE_LOG, "MTU=%u ", ntohs(ich->un.frag.mtu)); + } + break; + } +@@ -290,19 +290,19 @@ + break; + + /* Max length: 9 "PROTO=AH " */ +- printk("PROTO=AH "); ++ ve_printk(VE_LOG, "PROTO=AH "); + + /* Max length: 25 "INCOMPLETE [65535 bytes] " */ + ah = skb_header_pointer(skb, iphoff+ih->ihl*4, + sizeof(_ahdr), &_ahdr); + if (ah == NULL) { +- printk("INCOMPLETE [%u bytes] ", ++ ve_printk(VE_LOG, "INCOMPLETE [%u bytes] ", + skb->len - iphoff - ih->ihl*4); + break; + } + + /* Length: 15 "SPI=0xF1234567 " */ +- printk("SPI=0x%x ", ntohl(ah->spi)); ++ ve_printk(VE_LOG, "SPI=0x%x ", ntohl(ah->spi)); + break; + } + case IPPROTO_ESP: { +@@ -310,7 +310,7 @@ + const struct ip_esp_hdr *eh; + + /* Max length: 10 "PROTO=ESP " */ +- printk("PROTO=ESP "); ++ ve_printk(VE_LOG, "PROTO=ESP "); + + if (ntohs(ih->frag_off) & IP_OFFSET) + break; +@@ -319,25 +319,25 @@ + eh = skb_header_pointer(skb, iphoff+ih->ihl*4, + sizeof(_esph), &_esph); + if (eh == NULL) { +- printk("INCOMPLETE [%u bytes] ", ++ ve_printk(VE_LOG, "INCOMPLETE [%u bytes] ", + skb->len - iphoff - ih->ihl*4); + break; + } + + /* Length: 15 "SPI=0xF1234567 " */ +- printk("SPI=0x%x ", ntohl(eh->spi)); ++ ve_printk(VE_LOG, "SPI=0x%x ", ntohl(eh->spi)); + break; + } + /* Max length: 10 "PROTO 255 " */ + default: +- printk("PROTO=%u ", ih->protocol); ++ ve_printk(VE_LOG, "PROTO=%u ", ih->protocol); + } + + /* Max length: 15 "UID=4294967295 " */ + if ((logflags & IPT_LOG_UID) && !iphoff && skb->sk) { + read_lock_bh(&skb->sk->sk_callback_lock); + if (skb->sk->sk_socket && skb->sk->sk_socket->file) +- printk("UID=%u ", skb->sk->sk_socket->file->f_uid); ++ ve_printk(VE_LOG, "UID=%u ", skb->sk->sk_socket->file->f_uid); + read_unlock_bh(&skb->sk->sk_callback_lock); + } + +@@ -379,7 +379,7 @@ + loginfo = &default_loginfo; + + spin_lock_bh(&log_lock); +- printk("<%d>%sIN=%s OUT=%s ", loginfo->u.log.level, ++ ve_printk(VE_LOG, "<%d>%sIN=%s OUT=%s ", loginfo->u.log.level, + prefix, + in ? in->name : "", + out ? out->name : ""); +@@ -390,30 +390,30 @@ + + physindev = skb->nf_bridge->physindev; + if (physindev && in != physindev) +- printk("PHYSIN=%s ", physindev->name); ++ ve_printk(VE_LOG, "PHYSIN=%s ", physindev->name); + physoutdev = skb->nf_bridge->physoutdev; + if (physoutdev && out != physoutdev) +- printk("PHYSOUT=%s ", physoutdev->name); ++ ve_printk(VE_LOG, "PHYSOUT=%s ", physoutdev->name); + } + #endif + + if (in && !out) { + /* MAC logging for input chain only. */ +- printk("MAC="); ++ ve_printk(VE_LOG, "MAC="); + if (skb->dev && skb->dev->hard_header_len + && skb->mac_header != skb->network_header) { + int i; + const unsigned char *p = skb_mac_header(skb); + for (i = 0; i < skb->dev->hard_header_len; i++,p++) +- printk("%02x%c", *p, ++ ve_printk(VE_LOG, "%02x%c", *p, + i==skb->dev->hard_header_len - 1 + ? ' ':':'); + } else +- printk(" "); ++ ve_printk(VE_LOG, " "); + } + + dump_packet(loginfo, skb, 0); +- printk("\n"); ++ ve_printk(VE_LOG, "\n"); + spin_unlock_bh(&log_lock); + } + +Index: kernel/net/ipv4/netfilter/ipt_MASQUERADE.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_MASQUERADE.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_MASQUERADE.c 2008-11-24 15:47:46.000000000 +0100 +@@ -103,6 +103,7 @@ + return nf_nat_setup_info(ct, &newrange, hooknum); + } + ++#if 0 + static int + device_cmp(struct nf_conn *i, void *ifindex) + { +@@ -125,9 +126,6 @@ + { + const struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + if (event == NETDEV_DOWN) { + /* Device was downed. Search entire table for + conntracks which were associated with that device, +@@ -165,6 +163,7 @@ + static struct notifier_block masq_inet_notifier = { + .notifier_call = masq_inet_event, + }; ++#endif + + static struct xt_target masquerade __read_mostly = { + .name = "MASQUERADE", +@@ -183,12 +182,16 @@ + + ret = xt_register_target(&masquerade); + ++#if 0 ++/* These notifiers are unnecessary and may ++ lead to oops in virtual environments */ + if (ret == 0) { + /* Register for device down reports */ + register_netdevice_notifier(&masq_dev_notifier); + /* Register IP address change reports */ + register_inetaddr_notifier(&masq_inet_notifier); + } ++#endif + + return ret; + } +@@ -196,8 +199,8 @@ + static void __exit ipt_masquerade_fini(void) + { + xt_unregister_target(&masquerade); +- unregister_netdevice_notifier(&masq_dev_notifier); +- unregister_inetaddr_notifier(&masq_inet_notifier); ++/* unregister_netdevice_notifier(&masq_dev_notifier); ++ unregister_inetaddr_notifier(&masq_inet_notifier);*/ + } + + module_init(ipt_masquerade_init); +Index: kernel/net/ipv4/netfilter/ipt_REDIRECT.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_REDIRECT.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_REDIRECT.c 2008-11-24 15:47:46.000000000 +0100 +@@ -77,8 +77,13 @@ + + rcu_read_lock(); + indev = __in_dev_get_rcu(skb->dev); +- if (indev && (ifa = indev->ifa_list)) ++ if (indev && (ifa = indev->ifa_list)) { ++ /* because of venet device specific, we should use ++ * second ifa in the list */ ++ if (IN_LOOPBACK(ntohl(ifa->ifa_local)) && ifa->ifa_next) ++ ifa = ifa->ifa_next; + newdst = ifa->ifa_local; ++ } + rcu_read_unlock(); + + if (!newdst) +Index: kernel/net/ipv4/netfilter/ipt_REJECT.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_REJECT.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_REJECT.c 2008-11-24 15:47:46.000000000 +0100 +@@ -221,13 +221,13 @@ + const struct ipt_entry *e = e_void; + + if (rejinfo->with == IPT_ICMP_ECHOREPLY) { +- printk("ipt_REJECT: ECHOREPLY no longer supported.\n"); ++ ve_printk(VE_LOG, "ipt_REJECT: ECHOREPLY no longer supported.\n"); + return false; + } else if (rejinfo->with == IPT_TCP_RESET) { + /* Must specify that it's a TCP packet */ + if (e->ip.proto != IPPROTO_TCP + || (e->ip.invflags & XT_INV_PROTO)) { +- printk("ipt_REJECT: TCP_RESET invalid for non-tcp\n"); ++ ve_printk(VE_LOG, "ipt_REJECT: TCP_RESET invalid for non-tcp\n"); + return false; + } + } +Index: kernel/net/ipv4/netfilter/ipt_TOS.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_TOS.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_TOS.c 2008-11-24 15:47:46.000000000 +0100 +@@ -57,7 +57,7 @@ + && tos != IPTOS_RELIABILITY + && tos != IPTOS_MINCOST + && tos != IPTOS_NORMALSVC) { +- printk(KERN_WARNING "TOS: bad tos value %#x\n", tos); ++ ve_printk(VE_LOG, KERN_WARNING "TOS: bad tos value %#x\n", tos); + return false; + } + return true; +Index: kernel/net/ipv4/netfilter/ipt_recent.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/ipt_recent.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/ipt_recent.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -52,6 +53,19 @@ + MODULE_PARM_DESC(ip_list_uid,"owner of /proc/net/ipt_recent/* files"); + MODULE_PARM_DESC(ip_list_gid,"owning group of /proc/net/ipt_recent/* files"); + ++#include ++ ++#if defined(CONFIG_VE_IPTABLES) ++#define tables (get_exec_env()->_ipt_recent->tables) ++#define proc_dir (get_exec_env()->_ipt_recent->proc_dir) ++#else ++static LIST_HEAD(tables); ++static struct proc_dir_entry *proc_dir; ++#endif /* CONFIG_VE_IPTABLES */ ++ ++static int init_ipt_recent(struct ve_struct *ve); ++static void fini_ipt_recent(struct ve_struct *ve); ++ + struct recent_entry { + struct list_head list; + struct list_head lru_list; +@@ -74,12 +88,10 @@ + struct list_head iphash[0]; + }; + +-static LIST_HEAD(tables); + static DEFINE_SPINLOCK(recent_lock); + static DEFINE_MUTEX(recent_mutex); + + #ifdef CONFIG_PROC_FS +-static struct proc_dir_entry *proc_dir; + static const struct file_operations recent_fops; + #endif + +@@ -256,6 +268,9 @@ + strnlen(info->name, IPT_RECENT_NAME_LEN) == IPT_RECENT_NAME_LEN) + return false; + ++ if (init_ipt_recent(get_exec_env())) ++ return 0; ++ + mutex_lock(&recent_mutex); + t = recent_table_lookup(info->name); + if (t != NULL) { +@@ -298,6 +313,13 @@ + { + const struct ipt_recent_info *info = matchinfo; + struct recent_table *t; ++ struct ve_struct *ve; ++ ++ ve = get_exec_env(); ++#ifdef CONFIG_VE_IPTABLES ++ if (!ve->_ipt_recent) ++ return; ++#endif + + mutex_lock(&recent_mutex); + t = recent_table_lookup(info->name); +@@ -312,6 +334,8 @@ + kfree(t); + } + mutex_unlock(&recent_mutex); ++ if (!ve_is_super(ve) && list_empty(&tables)) ++ fini_ipt_recent(ve); + } + + #ifdef CONFIG_PROC_FS +@@ -465,6 +489,47 @@ + .me = THIS_MODULE, + }; + ++static int init_ipt_recent(struct ve_struct *ve) ++{ ++ int err = 0; ++ ++#ifdef CONFIG_VE_IPTABLES ++ if (ve->_ipt_recent) ++ return 0; ++ ++ ve->_ipt_recent = kzalloc(sizeof(struct ve_ipt_recent), GFP_KERNEL); ++ if (!ve->_ipt_recent) { ++ err = -ENOMEM; ++ goto out; ++ } ++ ++ INIT_LIST_HEAD(&tables); ++#endif ++#ifdef CONFIG_PROC_FS ++ if (err) ++ return err; ++ proc_dir = proc_mkdir("ipt_recent", ve->ve_ns->net_ns->proc_net); ++ if (proc_dir == NULL) { ++ err = -ENOMEM; ++ goto out_mem; ++ } ++#endif ++out: ++ return err; ++out_mem: ++ kfree(ve->_ipt_recent); ++ goto out; ++} ++ ++static void fini_ipt_recent(struct ve_struct *ve) ++{ ++ remove_proc_entry("ipt_recent", ve->ve_ns->net_ns->proc_net); ++#ifdef CONFIG_VE_IPTABLES ++ kfree(ve->_ipt_recent); ++ ve->_ipt_recent = NULL; ++#endif ++} ++ + static int __init ipt_recent_init(void) + { + int err; +@@ -474,25 +539,24 @@ + ip_list_hash_size = 1 << fls(ip_list_tot); + + err = xt_register_match(&recent_match); +-#ifdef CONFIG_PROC_FS + if (err) + return err; +- proc_dir = proc_mkdir("ipt_recent", init_net.proc_net); +- if (proc_dir == NULL) { ++ ++ err = init_ipt_recent(&ve0); ++ if (err) { + xt_unregister_match(&recent_match); +- err = -ENOMEM; ++ return err; + } +-#endif +- return err; ++ ++ return 0; + } + + static void __exit ipt_recent_exit(void) + { + BUG_ON(!list_empty(&tables)); ++ ++ fini_ipt_recent(&ve0); + xt_unregister_match(&recent_match); +-#ifdef CONFIG_PROC_FS +- remove_proc_entry("ipt_recent", init_net.proc_net); +-#endif + } + + module_init(ipt_recent_init); +Index: kernel/net/ipv4/netfilter/iptable_filter.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/iptable_filter.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/iptable_filter.c 2008-11-24 15:47:46.000000000 +0100 +@@ -12,6 +12,7 @@ + + #include + #include ++#include + #include + #include + +@@ -19,6 +20,13 @@ + MODULE_AUTHOR("Netfilter Core Team "); + MODULE_DESCRIPTION("iptables filter table"); + ++#ifdef CONFIG_VE_IPTABLES ++#include ++#define ve_packet_filter (get_exec_env()->_ve_ipt_filter_pf) ++#else ++#define ve_packet_filter &packet_filter ++#endif ++ + #define FILTER_VALID_HOOKS ((1 << NF_IP_LOCAL_IN) | (1 << NF_IP_FORWARD) | (1 << NF_IP_LOCAL_OUT)) + + static struct +@@ -26,7 +34,7 @@ + struct ipt_replace repl; + struct ipt_standard entries[3]; + struct ipt_error term; +-} initial_table __initdata = { ++} initial_table = { + .repl = { + .name = "filter", + .valid_hooks = FILTER_VALID_HOOKS, +@@ -67,7 +75,7 @@ + const struct net_device *out, + int (*okfn)(struct sk_buff *)) + { +- return ipt_do_table(skb, hook, in, out, &packet_filter); ++ return ipt_do_table(skb, hook, in, out, ve_packet_filter); + } + + static unsigned int +@@ -86,7 +94,7 @@ + return NF_ACCEPT; + } + +- return ipt_do_table(skb, hook, in, out, &packet_filter); ++ return ipt_do_table(skb, hook, in, out, ve_packet_filter); + } + + static struct nf_hook_ops ipt_ops[] = { +@@ -117,22 +125,19 @@ + static int forward = NF_ACCEPT; + module_param(forward, bool, 0000); + +-static int __init iptable_filter_init(void) ++int init_iptable_filter(void) + { + int ret; +- +- if (forward < 0 || forward > NF_MAX_VERDICT) { +- printk("iptables forward must be 0 or 1\n"); +- return -EINVAL; +- } +- +- /* Entry 1 is the FORWARD hook */ +- initial_table.entries[1].target.verdict = -forward - 1; ++ struct ipt_table *tmp_filter; + + /* Register table */ +- ret = ipt_register_table(&packet_filter, &initial_table.repl); +- if (ret < 0) +- return ret; ++ tmp_filter = ipt_register_table(&packet_filter, ++ &initial_table.repl); ++ if (IS_ERR(tmp_filter)) ++ return PTR_ERR(tmp_filter); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_filter = tmp_filter; ++#endif + + /* Register hooks */ + ret = nf_register_hooks(ipt_ops, ARRAY_SIZE(ipt_ops)); +@@ -142,14 +147,50 @@ + return ret; + + cleanup_table: +- ipt_unregister_table(&packet_filter); ++ ipt_unregister_table(ve_packet_filter); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_filter = NULL; ++#endif + return ret; + } + +-static void __exit iptable_filter_fini(void) ++void fini_iptable_filter(void) + { + nf_unregister_hooks(ipt_ops, ARRAY_SIZE(ipt_ops)); +- ipt_unregister_table(&packet_filter); ++ ipt_unregister_table(ve_packet_filter); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_filter = NULL; ++#endif ++} ++ ++static int __init iptable_filter_init(void) ++{ ++ int err; ++ ++ if (forward < 0 || forward > NF_MAX_VERDICT) { ++ printk("iptables forward must be 0 or 1\n"); ++ return -EINVAL; ++ } ++ ++ /* Entry 1 is the FORWARD hook */ ++ initial_table.entries[1].target.verdict = -forward - 1; ++ ++ err = init_iptable_filter(); ++ if (err < 0) ++ return err; ++ ++ KSYMRESOLVE(init_iptable_filter); ++ KSYMRESOLVE(fini_iptable_filter); ++ KSYMMODRESOLVE(iptable_filter); ++ return 0; ++} ++ ++static void __exit iptable_filter_fini(void) ++{ ++ KSYMMODUNRESOLVE(iptable_filter); ++ KSYMUNRESOLVE(init_iptable_filter); ++ KSYMUNRESOLVE(fini_iptable_filter); ++ fini_iptable_filter(); + } + + module_init(iptable_filter_init); +Index: kernel/net/ipv4/netfilter/iptable_mangle.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/iptable_mangle.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/iptable_mangle.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -33,7 +34,7 @@ + struct ipt_replace repl; + struct ipt_standard entries[5]; + struct ipt_error term; +-} initial_table __initdata = { ++} initial_table = { + .repl = { + .name = "mangle", + .valid_hooks = MANGLE_VALID_HOOKS, +@@ -72,6 +73,13 @@ + .af = AF_INET, + }; + ++#ifdef CONFIG_VE_IPTABLES ++#include ++#define ve_packet_mangler (get_exec_env()->_ipt_mangle_table) ++#else ++#define ve_packet_mangler &packet_mangler ++#endif ++ + /* The work comes in here from netfilter.c. */ + static unsigned int + ipt_route_hook(unsigned int hook, +@@ -80,7 +88,7 @@ + const struct net_device *out, + int (*okfn)(struct sk_buff *)) + { +- return ipt_do_table(skb, hook, in, out, &packet_mangler); ++ return ipt_do_table(skb, hook, in, out, ve_packet_mangler); + } + + static unsigned int +@@ -112,7 +120,7 @@ + daddr = iph->daddr; + tos = iph->tos; + +- ret = ipt_do_table(skb, hook, in, out, &packet_mangler); ++ ret = ipt_do_table(skb, hook, in, out, ve_packet_mangler); + /* Reroute for ANY change. */ + if (ret != NF_DROP && ret != NF_STOLEN && ret != NF_QUEUE) { + iph = ip_hdr(skb); +@@ -166,14 +174,19 @@ + }, + }; + +-static int __init iptable_mangle_init(void) ++int init_iptable_mangle(void) + { + int ret; ++ struct ipt_table *tmp_mangler; + + /* Register table */ +- ret = ipt_register_table(&packet_mangler, &initial_table.repl); +- if (ret < 0) +- return ret; ++ tmp_mangler = ipt_register_table(&packet_mangler, ++ &initial_table.repl); ++ if (IS_ERR(tmp_mangler)) ++ return PTR_ERR(tmp_mangler); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_mangler = tmp_mangler; ++#endif + + /* Register hooks */ + ret = nf_register_hooks(ipt_ops, ARRAY_SIZE(ipt_ops)); +@@ -183,14 +196,42 @@ + return ret; + + cleanup_table: +- ipt_unregister_table(&packet_mangler); ++ ipt_unregister_table(ve_packet_mangler); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_mangler = NULL; ++#endif + return ret; + } + +-static void __exit iptable_mangle_fini(void) ++void fini_iptable_mangle(void) + { + nf_unregister_hooks(ipt_ops, ARRAY_SIZE(ipt_ops)); +- ipt_unregister_table(&packet_mangler); ++ ipt_unregister_table(ve_packet_mangler); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_mangler = NULL; ++#endif ++} ++ ++static int __init iptable_mangle_init(void) ++{ ++ int err; ++ ++ err = init_iptable_mangle(); ++ if (err < 0) ++ return err; ++ ++ KSYMRESOLVE(init_iptable_mangle); ++ KSYMRESOLVE(fini_iptable_mangle); ++ KSYMMODRESOLVE(iptable_mangle); ++ return 0; ++} ++ ++static void __exit iptable_mangle_fini(void) ++{ ++ KSYMMODUNRESOLVE(iptable_mangle); ++ KSYMUNRESOLVE(init_iptable_mangle); ++ KSYMUNRESOLVE(fini_iptable_mangle); ++ fini_iptable_mangle(); + } + + module_init(iptable_mangle_init); +Index: kernel/net/ipv4/netfilter/iptable_raw.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/iptable_raw.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/iptable_raw.c 2008-11-24 15:47:46.000000000 +0100 +@@ -93,12 +93,13 @@ + + static int __init iptable_raw_init(void) + { ++ struct xt_table *tmp; + int ret; + + /* Register table */ +- ret = ipt_register_table(&packet_raw, &initial_table.repl); +- if (ret < 0) +- return ret; ++ tmp = ipt_register_table(&packet_raw, &initial_table.repl); ++ if (IS_ERR(tmp)) ++ return PTR_ERR(tmp); + + /* Register hooks */ + ret = nf_register_hooks(ipt_ops, ARRAY_SIZE(ipt_ops)); +Index: kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c 2008-11-24 15:47:46.000000000 +0100 +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -426,82 +427,214 @@ + MODULE_ALIAS("ip_conntrack"); + MODULE_LICENSE("GPL"); + +-static int __init nf_conntrack_l3proto_ipv4_init(void) ++#ifdef CONFIG_VE_IPTABLES ++#if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) ++static void nf_ct_proto_ipv4_sysctl_cleanup(void) + { +- int ret = 0; ++ if (!ve_is_super(get_exec_env())) { ++ free_sysctl_clone(ve_nf_conntrack_l3proto_ipv4->ctl_table); ++ ve_nf_conntrack_l3proto_ipv4->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l3proto_ipv4); ++ ve_nf_conntrack_l3proto_ipv4 = NULL; ++ } ++} + +- need_conntrack(); ++static int nf_ct_proto_ipv4_sysctl_init(void) ++{ ++ struct nf_conntrack_l3proto *ipv4 = ve_nf_conntrack_l3proto_ipv4; + +- ret = nf_register_sockopt(&so_getorigdst); +- if (ret < 0) { +- printk(KERN_ERR "Unable to register netfilter socket option\n"); +- return ret; +- } ++ ipv4->ctl_table_header = NULL; ++ ipv4->ctl_table_path = nf_net_ipv4_netfilter_sysctl_path; ++ ipv4->ctl_table = clone_sysctl_template(ip_ct_sysctl_table); ++ if (ipv4->ctl_table == NULL) ++ return -ENOMEM; ++ ++ ipv4->ctl_table[0].data = &ve_nf_conntrack_max; ++ ipv4->ctl_table[1].data = &ve_nf_conntrack_count; ++ ipv4->ctl_table[3].data = &ve_nf_conntrack_checksum; ++ ipv4->ctl_table[4].data = &ve_nf_ct_log_invalid; ++ ++ return 0; ++} ++#else ++static inline int nf_ct_proto_ipv4_sysctl_init(void) ++{ ++ return 0; ++} ++static inline void nf_ct_proto_ipv4_sysctl_cleanup(void) ++{ ++} ++#endif /* SYSCTL && NF_CONNTRACK_PROC_COMPAT */ ++ ++/* ++ * Functions init/fini_nf_ct_l3proto_ipv4 glue distributed nf_conntrack ++ * virtualization efforts. They are to be called from 2 places: ++ * ++ * 1) on loading/unloading module nf_conntrack_ipv4 from ++ * nf_conntrack_l3proto_ipv4_init/fini ++ * 2) on start/stop ve - from do_ve_iptables ++ */ ++static int nf_ct_proto_ipv4_init(void) ++{ ++ struct nf_conntrack_l3proto *ipv4; ++ ++ if (ve_is_super(get_exec_env())) { ++ ipv4 = &nf_conntrack_l3proto_ipv4; ++ goto out; ++ } ++ ipv4 = kmemdup(&nf_conntrack_l3proto_ipv4, ++ sizeof(struct nf_conntrack_l3proto), GFP_KERNEL); ++ if (!ipv4) ++ return -ENOMEM; ++out: ++ ve_nf_conntrack_l3proto_ipv4 = ipv4; ++ return 0; ++} ++#endif ++ ++int init_nf_ct_l3proto_ipv4(void) ++{ ++ int ret = -ENOMEM; ++ ++#ifdef CONFIG_VE_IPTABLES ++ if (!ve_is_super(get_exec_env())) ++ __module_get(THIS_MODULE); ++ ++ ret = nf_ct_proto_ipv4_init(); ++ if (ret < 0) ++ goto err_out; ++ ret = nf_ct_proto_ipv4_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_ipv4; ++ ret = nf_ct_proto_tcp_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_tcp; ++ ret = nf_ct_proto_udp_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_udp; ++ ret = nf_ct_proto_icmp_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_icmp; ++#endif /* CONFIG_VE_IPTABLES */ + +- ret = nf_conntrack_l4proto_register(&nf_conntrack_l4proto_tcp4); ++ ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_tcp4); + if (ret < 0) { + printk("nf_conntrack_ipv4: can't register tcp.\n"); +- goto cleanup_sockopt; ++ goto cleanup_sys; + } + +- ret = nf_conntrack_l4proto_register(&nf_conntrack_l4proto_udp4); ++ ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_udp4); + if (ret < 0) { + printk("nf_conntrack_ipv4: can't register udp.\n"); +- goto cleanup_tcp; ++ goto unreg_tcp; + } + +- ret = nf_conntrack_l4proto_register(&nf_conntrack_l4proto_icmp); ++ ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_icmp); + if (ret < 0) { + printk("nf_conntrack_ipv4: can't register icmp.\n"); +- goto cleanup_udp; ++ goto unreg_udp; + } + +- ret = nf_conntrack_l3proto_register(&nf_conntrack_l3proto_ipv4); ++ ret = nf_conntrack_l3proto_register(ve_nf_conntrack_l3proto_ipv4); + if (ret < 0) { + printk("nf_conntrack_ipv4: can't register ipv4\n"); +- goto cleanup_icmp; ++ goto unreg_icmp; + } + + ret = nf_register_hooks(ipv4_conntrack_ops, + ARRAY_SIZE(ipv4_conntrack_ops)); + if (ret < 0) { + printk("nf_conntrack_ipv4: can't register hooks.\n"); +- goto cleanup_ipv4; ++ goto unreg_ipv4; + } +-#if defined(CONFIG_PROC_FS) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) + ret = nf_conntrack_ipv4_compat_init(); + if (ret < 0) +- goto cleanup_hooks; +-#endif ++ goto unreg_hooks; ++ return 0; ++ ++unreg_hooks: ++ nf_unregister_hooks(ipv4_conntrack_ops, ARRAY_SIZE(ipv4_conntrack_ops)); ++unreg_ipv4: ++ nf_conntrack_l3proto_unregister(ve_nf_conntrack_l3proto_ipv4); ++unreg_icmp: ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_icmp); ++unreg_udp: ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_udp4); ++unreg_tcp: ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_tcp4); ++cleanup_sys: ++#ifdef CONFIG_VE_IPTABLES ++no_mem_icmp: ++ nf_ct_proto_udp_sysctl_cleanup(); ++no_mem_udp: ++ nf_ct_proto_tcp_sysctl_cleanup(); ++no_mem_tcp: ++ nf_ct_proto_ipv4_sysctl_cleanup(); ++no_mem_ipv4: ++err_out: ++ if (!ve_is_super(get_exec_env())) ++ module_put(THIS_MODULE); ++#endif /* CONFIG_VE_IPTABLES */ + return ret; +-#if defined(CONFIG_PROC_FS) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) +- cleanup_hooks: ++} ++EXPORT_SYMBOL(init_nf_ct_l3proto_ipv4); ++ ++void fini_nf_ct_l3proto_ipv4(void) ++{ ++ nf_conntrack_ipv4_compat_fini(); + nf_unregister_hooks(ipv4_conntrack_ops, ARRAY_SIZE(ipv4_conntrack_ops)); +-#endif +- cleanup_ipv4: +- nf_conntrack_l3proto_unregister(&nf_conntrack_l3proto_ipv4); +- cleanup_icmp: +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_icmp); +- cleanup_udp: +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_udp4); +- cleanup_tcp: +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_tcp4); ++ nf_conntrack_l3proto_unregister(ve_nf_conntrack_l3proto_ipv4); ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_icmp); ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_udp4); ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_tcp4); ++ ++#ifdef CONFIG_VE_IPTABLES ++ nf_ct_proto_icmp_sysctl_cleanup(); ++ nf_ct_proto_udp_sysctl_cleanup(); ++ nf_ct_proto_tcp_sysctl_cleanup(); ++ nf_ct_proto_ipv4_sysctl_cleanup(); ++ if (!ve_is_super(get_exec_env())) ++ module_put(THIS_MODULE); ++#endif /* CONFIG_VE_IPTABLES */ ++} ++EXPORT_SYMBOL(fini_nf_ct_l3proto_ipv4); ++ ++static int nf_conntrack_l3proto_ipv4_init(void) ++{ ++ int ret = 0; ++ ++ need_conntrack(); ++ ++ ret = nf_register_sockopt(&so_getorigdst); ++ if (ret < 0) { ++ printk(KERN_ERR "Unable to register netfilter socket option\n"); ++ return ret; ++ } ++ ++ ret = init_nf_ct_l3proto_ipv4(); ++ if (ret < 0) { ++ printk(KERN_ERR "Unable to initialize netfilter protocols\n"); ++ goto cleanup_sockopt; ++ } ++ KSYMRESOLVE(init_nf_ct_l3proto_ipv4); ++ KSYMRESOLVE(fini_nf_ct_l3proto_ipv4); ++ KSYMMODRESOLVE(nf_conntrack_ipv4); ++ return ret; ++ + cleanup_sockopt: + nf_unregister_sockopt(&so_getorigdst); + return ret; + } + +-static void __exit nf_conntrack_l3proto_ipv4_fini(void) ++static void nf_conntrack_l3proto_ipv4_fini(void) + { + synchronize_net(); +-#if defined(CONFIG_PROC_FS) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT) +- nf_conntrack_ipv4_compat_fini(); +-#endif +- nf_unregister_hooks(ipv4_conntrack_ops, ARRAY_SIZE(ipv4_conntrack_ops)); +- nf_conntrack_l3proto_unregister(&nf_conntrack_l3proto_ipv4); +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_icmp); +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_udp4); +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_tcp4); ++ ++ KSYMMODUNRESOLVE(nf_conntrack_ipv4); ++ KSYMUNRESOLVE(init_nf_ct_l3proto_ipv4); ++ KSYMUNRESOLVE(fini_nf_ct_l3proto_ipv4); ++ ++ fini_nf_ct_l3proto_ipv4(); + nf_unregister_sockopt(&so_getorigdst); + } + +Index: kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c 2008-11-24 15:47:46.000000000 +0100 +@@ -9,7 +9,9 @@ + */ + #include + #include ++#include + #include ++#include + #include + #include + +@@ -43,8 +45,8 @@ + for (st->bucket = 0; + st->bucket < nf_conntrack_htable_size; + st->bucket++) { +- if (!hlist_empty(&nf_conntrack_hash[st->bucket])) +- return nf_conntrack_hash[st->bucket].first; ++ if (!hlist_empty(&ve_nf_conntrack_hash[st->bucket])) ++ return ve_nf_conntrack_hash[st->bucket].first; + } + return NULL; + } +@@ -58,7 +60,7 @@ + while (head == NULL) { + if (++st->bucket >= nf_conntrack_htable_size) + return NULL; +- head = nf_conntrack_hash[st->bucket].first; ++ head = ve_nf_conntrack_hash[st->bucket].first; + } + return head; + } +@@ -196,8 +198,8 @@ + struct ct_expect_iter_state *st = seq->private; + + for (st->bucket = 0; st->bucket < nf_ct_expect_hsize; st->bucket++) { +- if (!hlist_empty(&nf_ct_expect_hash[st->bucket])) +- return nf_ct_expect_hash[st->bucket].first; ++ if (!hlist_empty(&ve_nf_ct_expect_hash[st->bucket])) ++ return ve_nf_ct_expect_hash[st->bucket].first; + } + return NULL; + } +@@ -211,7 +213,7 @@ + while (head == NULL) { + if (++st->bucket >= nf_ct_expect_hsize) + return NULL; +- head = nf_ct_expect_hash[st->bucket].first; ++ head = ve_nf_ct_expect_hash[st->bucket].first; + } + return head; + } +@@ -326,7 +328,7 @@ + + static int ct_cpu_seq_show(struct seq_file *seq, void *v) + { +- unsigned int nr_conntracks = atomic_read(&nf_conntrack_count); ++ unsigned int nr_conntracks = atomic_read(&ve_nf_conntrack_count); + struct ip_conntrack_stat *st = v; + + if (v == SEQ_START_TOKEN) { +@@ -377,39 +379,104 @@ + .release = seq_release_private, + }; + +-int __init nf_conntrack_ipv4_compat_init(void) ++#ifdef CONFIG_VE_IPTABLES ++#define ve_ip_ct_net_table (get_exec_env()->_nf_conntrack->_ip_ct_net_table) ++#define ve_ip_ct_netfilter_table (get_exec_env()->_nf_conntrack->_ip_ct_netfilter_table) ++#define ve_ip_ct_sysctl_header (get_exec_env()->_nf_conntrack->_ip_ct_sysctl_header) ++#else ++#define ve_ip_ct_net_table ip_ct_net_table ++#define ve_ip_ct_netfilter_table ip_ct_netfilter_table ++#define ve_ip_ct_sysctl_header ip_ct_sysctl_header ++#endif ++ ++static ctl_table ip_ct_netfilter_table[] = { ++ { ++ .procname = "ip_conntrack_max", ++ .data = &nf_conntrack_max, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++ {} ++}; ++ ++static ctl_table ip_ct_ipv4_table[] = { ++ { ++ .ctl_name = NET_IPV4, ++ .procname = "ipv4", ++ .mode = 0555, ++ .child = ip_ct_netfilter_table, ++ }, ++ {} ++}; ++ ++static ctl_table ip_ct_net_table[] = { ++ { ++ .ctl_name = CTL_NET, ++ .procname = "net", ++ .mode = 0555, ++ .child = ip_ct_ipv4_table, ++ }, ++ {} ++}; ++ ++int nf_conntrack_ipv4_compat_init(void) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct proc_dir_entry *proc, *proc_exp, *proc_stat; + +- proc = proc_net_fops_create(&init_net, "ip_conntrack", 0440, &ct_file_ops); ++ proc = proc_net_fops_create(net, "ip_conntrack", 0440, &ct_file_ops); + if (!proc) + goto err1; + +- proc_exp = proc_net_fops_create(&init_net, "ip_conntrack_expect", 0440, ++ proc_exp = proc_net_fops_create(net, "ip_conntrack_expect", 0440, + &ip_exp_file_ops); + if (!proc_exp) + goto err2; + +- proc_stat = create_proc_entry("ip_conntrack", S_IRUGO, init_net.proc_net_stat); ++ proc_stat = create_proc_entry("ip_conntrack", S_IRUGO, net->proc_net_stat); + if (!proc_stat) + goto err3; + + proc_stat->proc_fops = &ct_cpu_seq_fops; + proc_stat->owner = THIS_MODULE; + ++ if (ve_is_super(get_exec_env())) { ++ ve_ip_ct_net_table = ip_ct_net_table; ++ } else { ++ ve_ip_ct_net_table = clone_sysctl_template(ip_ct_net_table); ++ if (!ve_ip_ct_net_table) ++ goto err4; ++ } ++ ve_ip_ct_netfilter_table = ve_ip_ct_net_table[0].child[0].child; ++ ve_ip_ct_netfilter_table[0].data = &ve_nf_conntrack_max; ++ ve_ip_ct_sysctl_header = register_sysctl_table(ve_ip_ct_net_table); ++ if (!ve_ip_ct_sysctl_header) ++ goto err5; ++ + return 0; + ++err5: ++ if (!ve_is_super(get_exec_env())) ++ free_sysctl_clone(ve_ip_ct_net_table); ++err4: ++ remove_proc_entry("ip_conntrack", net->proc_net_stat); + err3: +- proc_net_remove(&init_net, "ip_conntrack_expect"); ++ proc_net_remove(net, "ip_conntrack_expect"); + err2: +- proc_net_remove(&init_net, "ip_conntrack"); ++ proc_net_remove(net, "ip_conntrack"); + err1: + return -ENOMEM; + } + +-void __exit nf_conntrack_ipv4_compat_fini(void) ++void nf_conntrack_ipv4_compat_fini(void) + { +- remove_proc_entry("ip_conntrack", init_net.proc_net_stat); +- proc_net_remove(&init_net, "ip_conntrack_expect"); +- proc_net_remove(&init_net, "ip_conntrack"); ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ ++ unregister_sysctl_table(ve_ip_ct_sysctl_header); ++ if (!ve_is_super(get_exec_env())) ++ free_sysctl_clone(ve_ip_ct_net_table); ++ remove_proc_entry("ip_conntrack", net->proc_net_stat); ++ proc_net_remove(net, "ip_conntrack_expect"); ++ proc_net_remove(net, "ip_conntrack"); + } +Index: kernel/net/ipv4/netfilter/nf_conntrack_proto_icmp.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_conntrack_proto_icmp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_conntrack_proto_icmp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -7,6 +7,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -19,7 +20,7 @@ + #include + #include + +-static unsigned long nf_ct_icmp_timeout __read_mostly = 30*HZ; ++unsigned long nf_ct_icmp_timeout __read_mostly = 30*HZ; + + static int icmp_pkt_to_tuple(const struct sk_buff *skb, + unsigned int dataoff, +@@ -99,7 +100,7 @@ + } else { + atomic_inc(&ct->proto.icmp.count); + nf_conntrack_event_cache(IPCT_PROTOINFO_VOLATILE, skb); +- nf_ct_refresh_acct(ct, ctinfo, skb, nf_ct_icmp_timeout); ++ nf_ct_refresh_acct(ct, ctinfo, skb, ve_nf_ct_icmp_timeout); + } + + return NF_ACCEPT; +@@ -156,7 +157,7 @@ + /* Ordinarily, we'd expect the inverted tupleproto, but it's + been preserved inside the ICMP. */ + if (!nf_ct_invert_tuple(&innertuple, &origtuple, +- &nf_conntrack_l3proto_ipv4, innerproto)) { ++ ve_nf_conntrack_l3proto_ipv4, innerproto)) { + pr_debug("icmp_error_message: no match\n"); + return -NF_ACCEPT; + } +@@ -334,3 +335,66 @@ + #endif + #endif + }; ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++void nf_ct_proto_icmp_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_icmp->ctl_compat_table); ++ ve_nf_conntrack_l4proto_icmp->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_icmp->ctl_table); ++ ve_nf_conntrack_l4proto_icmp->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_icmp); ++ ve_nf_conntrack_l4proto_icmp = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_icmp_sysctl_cleanup); ++ ++int nf_ct_proto_icmp_sysctl_init(void) ++{ ++ struct nf_conntrack_l4proto *icmp; ++ ++ if (ve_is_super(get_exec_env())) { ++ icmp = &nf_conntrack_l4proto_icmp; ++ goto out; ++ } ++ ++ icmp = kmemdup(&nf_conntrack_l4proto_icmp, ++ sizeof(struct nf_conntrack_l4proto), GFP_KERNEL); ++ if (!icmp) ++ goto no_mem_ct; ++ ++ icmp->ctl_table_header = &ve_icmp_sysctl_header; ++ icmp->ctl_table = clone_sysctl_template(icmp_sysctl_table); ++ if (icmp->ctl_table == NULL) ++ goto no_mem_sys; ++ icmp->ctl_table[0].data = &ve_nf_ct_icmp_timeout; ++ ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ icmp->ctl_compat_table_header = ve_icmp_compat_sysctl_header; ++ icmp->ctl_compat_table = ++ clone_sysctl_template(icmp_compat_sysctl_table); ++ if (icmp->ctl_compat_table == NULL) ++ goto no_mem_compat; ++ icmp->ctl_compat_table[0].data = &ve_nf_ct_icmp_timeout; ++#endif ++out: ++ ve_nf_ct_icmp_timeout = nf_ct_icmp_timeout; ++ ++ ve_nf_conntrack_l4proto_icmp = icmp; ++ return 0; ++ ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++no_mem_compat: ++ free_sysctl_clone(icmp->ctl_table); ++#endif ++no_mem_sys: ++ kfree(icmp); ++no_mem_ct: ++ return -ENOMEM; ++} ++EXPORT_SYMBOL(nf_ct_proto_icmp_sysctl_init); ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/ipv4/netfilter/nf_nat_core.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_nat_core.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_nat_core.c 2008-11-24 15:47:46.000000000 +0100 +@@ -19,6 +19,8 @@ + #include + #include + #include ++#include ++#include + + #include + #include +@@ -33,6 +35,9 @@ + + static DEFINE_RWLOCK(nf_nat_lock); + ++#define MAX_IP_NAT_PROTO 256 ++ ++static struct nf_nat_protocol *nf_nat_protos[MAX_IP_NAT_PROTO]; + static struct nf_conntrack_l3proto *l3proto = NULL; + + /* Calculated at init based on memory size */ +@@ -41,13 +46,22 @@ + + static struct hlist_head *bysource; + +-#define MAX_IP_NAT_PROTO 256 +-static struct nf_nat_protocol *nf_nat_protos[MAX_IP_NAT_PROTO]; ++#ifdef CONFIG_VE_IPTABLES ++#define ve_nf_nat_protos (get_exec_env()->_nf_conntrack->_nf_nat_protos) ++#define ve_nf_nat_l3proto (get_exec_env()->_nf_conntrack->_nf_nat_l3proto) ++#define ve_bysource (get_exec_env()->_nf_conntrack->_bysource) ++#define ve_nf_nat_vmalloced (get_exec_env()->_nf_conntrack->_nf_nat_vmalloced) ++#else ++#define ve_nf_nat_protos nf_nat_protos ++#define ve_nf_nat_l3proto l3proto ++#define ve_bysource bysource ++#define ve_nf_nat_vmalloced nf_nat_vmalloced ++#endif + + static inline struct nf_nat_protocol * + __nf_nat_proto_find(u_int8_t protonum) + { +- return rcu_dereference(nf_nat_protos[protonum]); ++ return rcu_dereference(ve_nf_nat_protos[protonum]); + } + + struct nf_nat_protocol * +@@ -151,7 +165,7 @@ + struct hlist_node *n; + + read_lock_bh(&nf_nat_lock); +- hlist_for_each_entry(nat, n, &bysource[h], bysource) { ++ hlist_for_each_entry(nat, n, &ve_bysource[h], bysource) { + ct = nat->ct; + if (same_src(ct, tuple)) { + /* Copy source part from reply tuple. */ +@@ -332,7 +346,7 @@ + /* nf_conntrack_alter_reply might re-allocate exntension aera */ + nat = nfct_nat(ct); + nat->ct = ct; +- hlist_add_head(&nat->bysource, &bysource[srchash]); ++ hlist_add_head(&nat->bysource, &ve_bysource[srchash]); + write_unlock_bh(&nf_nat_lock); + } + +@@ -424,7 +438,6 @@ + struct icmphdr icmp; + struct iphdr ip; + } *inside; +- struct nf_conntrack_l4proto *l4proto; + struct nf_conntrack_tuple inner, target; + int hdrlen = ip_hdrlen(skb); + enum ip_conntrack_dir dir = CTINFO2DIR(ctinfo); +@@ -461,16 +474,14 @@ + "dir %s\n", skb, manip, + dir == IP_CT_DIR_ORIGINAL ? "ORIG" : "REPLY"); + +- /* rcu_read_lock()ed by nf_hook_slow */ +- l4proto = __nf_ct_l4proto_find(PF_INET, inside->ip.protocol); +- + if (!nf_ct_get_tuple(skb, + ip_hdrlen(skb) + sizeof(struct icmphdr), + (ip_hdrlen(skb) + + sizeof(struct icmphdr) + inside->ip.ihl * 4), + (u_int16_t)AF_INET, + inside->ip.protocol, +- &inner, l3proto, l4proto)) ++ &inner, ve_nf_nat_l3proto, ++ __nf_ct_l4proto_find(PF_INET, inside->ip.protocol))) + return 0; + + /* Change inner back to look like incoming packet. We do the +@@ -520,11 +531,11 @@ + int ret = 0; + + write_lock_bh(&nf_nat_lock); +- if (nf_nat_protos[proto->protonum] != &nf_nat_unknown_protocol) { ++ if (ve_nf_nat_protos[proto->protonum] != &nf_nat_unknown_protocol) { + ret = -EBUSY; + goto out; + } +- rcu_assign_pointer(nf_nat_protos[proto->protonum], proto); ++ rcu_assign_pointer(ve_nf_nat_protos[proto->protonum], proto); + out: + write_unlock_bh(&nf_nat_lock); + return ret; +@@ -535,7 +546,7 @@ + void nf_nat_protocol_unregister(struct nf_nat_protocol *proto) + { + write_lock_bh(&nf_nat_lock); +- rcu_assign_pointer(nf_nat_protos[proto->protonum], ++ rcu_assign_pointer(ve_nf_nat_protos[proto->protonum], + &nf_nat_unknown_protocol); + write_unlock_bh(&nf_nat_lock); + synchronize_rcu(); +@@ -626,46 +637,58 @@ + .flags = NF_CT_EXT_F_PREALLOC, + }; + +-static int __init nf_nat_init(void) ++int nf_nat_init(void) + { + size_t i; + int ret; + +- ret = nf_ct_extend_register(&nat_extend); +- if (ret < 0) { +- printk(KERN_ERR "nf_nat_core: Unable to register extension\n"); +- return ret; ++ if (ve_is_super(get_exec_env())) { ++ ret = nf_ct_extend_register(&nat_extend); ++ if (ret < 0) { ++ printk(KERN_ERR "nf_nat_core: Unable to register extension\n"); ++ return ret; ++ } + } + + /* Leave them the same for the moment. */ + nf_nat_htable_size = nf_conntrack_htable_size; + +- bysource = nf_ct_alloc_hashtable(&nf_nat_htable_size, +- &nf_nat_vmalloced); +- if (!bysource) { ++ ve_bysource = nf_ct_alloc_hashtable(&nf_nat_htable_size, ++ &ve_nf_nat_vmalloced); ++ if (!ve_bysource) { + ret = -ENOMEM; + goto cleanup_extend; + } + ++ ve_nf_nat_protos = kcalloc(MAX_IP_NAT_PROTO, sizeof(void *), GFP_KERNEL); ++ if (!ve_nf_nat_protos) { ++ ret = -ENOMEM; ++ goto cleanup_hash; ++ } ++ + /* Sew in builtin protocols. */ + write_lock_bh(&nf_nat_lock); + for (i = 0; i < MAX_IP_NAT_PROTO; i++) +- rcu_assign_pointer(nf_nat_protos[i], &nf_nat_unknown_protocol); +- rcu_assign_pointer(nf_nat_protos[IPPROTO_TCP], &nf_nat_protocol_tcp); +- rcu_assign_pointer(nf_nat_protos[IPPROTO_UDP], &nf_nat_protocol_udp); +- rcu_assign_pointer(nf_nat_protos[IPPROTO_ICMP], &nf_nat_protocol_icmp); ++ rcu_assign_pointer(ve_nf_nat_protos[i], &nf_nat_unknown_protocol); ++ rcu_assign_pointer(ve_nf_nat_protos[IPPROTO_TCP], &nf_nat_protocol_tcp); ++ rcu_assign_pointer(ve_nf_nat_protos[IPPROTO_UDP], &nf_nat_protocol_udp); ++ rcu_assign_pointer(ve_nf_nat_protos[IPPROTO_ICMP], &nf_nat_protocol_icmp); + write_unlock_bh(&nf_nat_lock); + + for (i = 0; i < nf_nat_htable_size; i++) { +- INIT_HLIST_HEAD(&bysource[i]); ++ INIT_HLIST_HEAD(&ve_bysource[i]); + } + +- /* Initialize fake conntrack so that NAT will skip it */ +- nf_conntrack_untracked.status |= IPS_NAT_DONE_MASK; ++ if (ve_is_super(get_exec_env())) { ++ /* Initialize fake conntrack so that NAT will skip it */ ++ nf_conntrack_untracked.status |= IPS_NAT_DONE_MASK; ++ } + +- l3proto = nf_ct_l3proto_find_get((u_int16_t)AF_INET); ++ ve_nf_nat_l3proto = nf_ct_l3proto_find_get((u_int16_t)AF_INET); + return 0; + ++cleanup_hash: ++ nf_ct_free_hashtable(ve_bysource, ve_nf_nat_vmalloced, nf_nat_htable_size); + cleanup_extend: + nf_ct_extend_unregister(&nat_extend); + return ret; +@@ -683,16 +706,40 @@ + return 0; + } + +-static void __exit nf_nat_cleanup(void) ++void nf_nat_cleanup(void) + { + nf_ct_iterate_cleanup(&clean_nat, NULL); + synchronize_rcu(); +- nf_ct_free_hashtable(bysource, nf_nat_vmalloced, nf_nat_htable_size); +- nf_ct_l3proto_put(l3proto); +- nf_ct_extend_unregister(&nat_extend); ++ nf_ct_free_hashtable(ve_bysource, ve_nf_nat_vmalloced, nf_nat_htable_size); ++ nf_ct_l3proto_put(ve_nf_nat_l3proto); ++ if (ve_is_super(get_exec_env())) ++ nf_ct_extend_unregister(&nat_extend); ++} ++ ++static int __init init(void) ++{ ++ int rv; ++ ++ rv = nf_nat_init(); ++ if (rv < 0) ++ return rv; ++ ++ KSYMRESOLVE(nf_nat_init); ++ KSYMRESOLVE(nf_nat_cleanup); ++ KSYMMODRESOLVE(nf_nat); ++ return 0; ++} ++ ++static void __exit fini(void) ++{ ++ KSYMMODUNRESOLVE(nf_nat); ++ KSYMUNRESOLVE(nf_nat_cleanup); ++ KSYMUNRESOLVE(nf_nat_init); ++ ++ nf_nat_cleanup(); + } + + MODULE_LICENSE("GPL"); + +-module_init(nf_nat_init); +-module_exit(nf_nat_cleanup); ++module_init(init); ++module_exit(fini); +Index: kernel/net/ipv4/netfilter/nf_nat_rule.c +=================================================================== +--- kernel.orig/net/ipv4/netfilter/nf_nat_rule.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/netfilter/nf_nat_rule.c 2008-11-24 15:47:46.000000000 +0100 +@@ -24,6 +24,13 @@ + #include + #include + ++#ifdef CONFIG_VE_IPTABLES ++#define ve_nf_nat_table \ ++ (get_exec_env()->_nf_conntrack->_nf_nat_table) ++#else ++#define ve_nf_nat_table &nat_table ++#endif ++ + #define NAT_VALID_HOOKS ((1< + #include + #include ++#include + + #include + #include +@@ -324,30 +325,64 @@ + }, + }; + +-static int __init nf_nat_standalone_init(void) ++int init_nftable_nat(void) + { +- int ret = 0; ++ int ret; + +- need_ipv4_conntrack(); ++ if (!ve_is_super(get_exec_env())) ++ __module_get(THIS_MODULE); + +-#ifdef CONFIG_XFRM +- BUG_ON(ip_nat_decode_session != NULL); +- ip_nat_decode_session = nat_decode_session; +-#endif + ret = nf_nat_rule_init(); + if (ret < 0) { + printk("nf_nat_init: can't setup rules.\n"); +- goto cleanup_decode_session; ++ goto out_modput; + } + ret = nf_register_hooks(nf_nat_ops, ARRAY_SIZE(nf_nat_ops)); + if (ret < 0) { + printk("nf_nat_init: can't register hooks.\n"); + goto cleanup_rule_init; + } ++ return 0; ++ ++cleanup_rule_init: ++ nf_nat_rule_cleanup(); ++out_modput: ++ if (!ve_is_super(get_exec_env())) ++ module_put(THIS_MODULE); + return ret; ++} + +- cleanup_rule_init: ++void fini_nftable_nat(void) ++{ ++ nf_unregister_hooks(nf_nat_ops, ARRAY_SIZE(nf_nat_ops)); + nf_nat_rule_cleanup(); ++ if (!ve_is_super(get_exec_env())) ++ module_put(THIS_MODULE); ++} ++ ++static int __init nf_nat_standalone_init(void) ++{ ++ int ret = 0; ++ ++ need_ipv4_conntrack(); ++ ++#ifdef CONFIG_XFRM ++ BUG_ON(ip_nat_decode_session != NULL); ++ ip_nat_decode_session = nat_decode_session; ++#endif ++ ++ if (!ip_conntrack_disable_ve0) { ++ ret = init_nftable_nat(); ++ if (ret < 0) ++ goto cleanup_decode_session; ++ } ++ ++ KSYMRESOLVE(init_nftable_nat); ++ KSYMRESOLVE(fini_nftable_nat); ++ KSYMMODRESOLVE(iptable_nat); ++ ++ return ret; ++ + cleanup_decode_session: + #ifdef CONFIG_XFRM + ip_nat_decode_session = NULL; +@@ -358,8 +393,12 @@ + + static void __exit nf_nat_standalone_fini(void) + { +- nf_unregister_hooks(nf_nat_ops, ARRAY_SIZE(nf_nat_ops)); +- nf_nat_rule_cleanup(); ++ KSYMMODUNRESOLVE(iptable_nat); ++ KSYMUNRESOLVE(init_nftable_nat); ++ KSYMUNRESOLVE(fini_nftable_nat); ++ ++ if (!ip_conntrack_disable_ve0) ++ fini_nftable_nat(); + #ifdef CONFIG_XFRM + ip_nat_decode_session = NULL; + synchronize_net(); +Index: kernel/net/ipv4/proc.c +=================================================================== +--- kernel.orig/net/ipv4/proc.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/proc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -51,6 +51,9 @@ + */ + static int sockstat_seq_show(struct seq_file *seq, void *v) + { ++ if (!ve_is_super(get_exec_env())) ++ return 0; ++ + socket_seq_show(seq); + seq_printf(seq, "TCP: inuse %d orphan %d tw %d alloc %d mem %d\n", + sock_prot_inuse(&tcp_prot), atomic_read(&tcp_orphan_count), +@@ -240,7 +243,7 @@ + count = 0; + for (i = 0; i < ICMPMSG_MIB_MAX; i++) { + +- if (snmp_fold_field((void **) icmpmsg_statistics, i)) ++ if (snmp_fold_field((void **) ve_icmpmsg_statistics, i)) + out[count++] = i; + if (count < PERLINE) + continue; +@@ -252,7 +255,7 @@ + seq_printf(seq, "\nIcmpMsg: "); + for (j = 0; j < PERLINE; ++j) + seq_printf(seq, " %lu", +- snmp_fold_field((void **) icmpmsg_statistics, ++ snmp_fold_field((void **) ve_icmpmsg_statistics, + out[j])); + seq_putc(seq, '\n'); + } +@@ -264,7 +267,7 @@ + seq_printf(seq, "\nIcmpMsg:"); + for (j = 0; j < count; ++j) + seq_printf(seq, " %lu", snmp_fold_field((void **) +- icmpmsg_statistics, out[j])); ++ ve_icmpmsg_statistics, out[j])); + } + + #undef PERLINE +@@ -281,18 +284,18 @@ + for (i=0; icmpmibmap[i].name != NULL; i++) + seq_printf(seq, " Out%s", icmpmibmap[i].name); + seq_printf(seq, "\nIcmp: %lu %lu", +- snmp_fold_field((void **) icmp_statistics, ICMP_MIB_INMSGS), +- snmp_fold_field((void **) icmp_statistics, ICMP_MIB_INERRORS)); ++ snmp_fold_field((void **) ve_icmp_statistics, ICMP_MIB_INMSGS), ++ snmp_fold_field((void **) ve_icmp_statistics, ICMP_MIB_INERRORS)); + for (i=0; icmpmibmap[i].name != NULL; i++) + seq_printf(seq, " %lu", +- snmp_fold_field((void **) icmpmsg_statistics, ++ snmp_fold_field((void **) ve_icmpmsg_statistics, + icmpmibmap[i].index)); + seq_printf(seq, " %lu %lu", +- snmp_fold_field((void **) icmp_statistics, ICMP_MIB_OUTMSGS), +- snmp_fold_field((void **) icmp_statistics, ICMP_MIB_OUTERRORS)); ++ snmp_fold_field((void **) ve_icmp_statistics, ICMP_MIB_OUTMSGS), ++ snmp_fold_field((void **) ve_icmp_statistics, ICMP_MIB_OUTERRORS)); + for (i=0; icmpmibmap[i].name != NULL; i++) + seq_printf(seq, " %lu", +- snmp_fold_field((void **) icmpmsg_statistics, ++ snmp_fold_field((void **) ve_icmpmsg_statistics, + icmpmibmap[i].index | 0x100)); + } + +@@ -313,7 +316,7 @@ + + for (i = 0; snmp4_ipstats_list[i].name != NULL; i++) + seq_printf(seq, " %lu", +- snmp_fold_field((void **)ip_statistics, ++ snmp_fold_field((void **)ve_ip_statistics, + snmp4_ipstats_list[i].entry)); + + icmp_put(seq); /* RFC 2011 compatibility */ +@@ -328,11 +331,11 @@ + /* MaxConn field is signed, RFC 2012 */ + if (snmp4_tcp_list[i].entry == TCP_MIB_MAXCONN) + seq_printf(seq, " %ld", +- snmp_fold_field((void **)tcp_statistics, ++ snmp_fold_field((void **)ve_tcp_statistics, + snmp4_tcp_list[i].entry)); + else + seq_printf(seq, " %lu", +- snmp_fold_field((void **)tcp_statistics, ++ snmp_fold_field((void **)ve_tcp_statistics, + snmp4_tcp_list[i].entry)); + } + +@@ -343,7 +346,7 @@ + seq_puts(seq, "\nUdp:"); + for (i = 0; snmp4_udp_list[i].name != NULL; i++) + seq_printf(seq, " %lu", +- snmp_fold_field((void **)udp_statistics, ++ snmp_fold_field((void **)ve_udp_statistics, + snmp4_udp_list[i].entry)); + + /* the UDP and UDP-Lite MIBs are the same */ +@@ -354,7 +357,7 @@ + seq_puts(seq, "\nUdpLite:"); + for (i = 0; snmp4_udp_list[i].name != NULL; i++) + seq_printf(seq, " %lu", +- snmp_fold_field((void **)udplite_statistics, ++ snmp_fold_field((void **)ve_udplite_statistics, + snmp4_udp_list[i].entry)); + + seq_putc(seq, '\n'); +@@ -390,7 +393,7 @@ + seq_puts(seq, "\nTcpExt:"); + for (i = 0; snmp4_net_list[i].name != NULL; i++) + seq_printf(seq, " %lu", +- snmp_fold_field((void **)net_statistics, ++ snmp_fold_field((void **)ve_net_statistics, + snmp4_net_list[i].entry)); + + seq_puts(seq, "\nIpExt:"); +@@ -400,7 +403,7 @@ + seq_puts(seq, "\nIpExt:"); + for (i = 0; snmp4_ipextstats_list[i].name != NULL; i++) + seq_printf(seq, " %lu", +- snmp_fold_field((void **)ip_statistics, ++ snmp_fold_field((void **)ve_ip_statistics, + snmp4_ipextstats_list[i].entry)); + + seq_putc(seq, '\n'); +@@ -420,26 +423,38 @@ + .release = single_release, + }; + +-int __init ip_misc_proc_init(void) ++static int ipv4_proc_net_init(struct net *net) + { +- int rc = 0; +- +- if (!proc_net_fops_create(&init_net, "netstat", S_IRUGO, &netstat_seq_fops)) ++ if (!proc_net_fops_create(net, "netstat", S_IRUGO, &netstat_seq_fops)) + goto out_netstat; +- +- if (!proc_net_fops_create(&init_net, "snmp", S_IRUGO, &snmp_seq_fops)) ++ if (!proc_net_fops_create(net, "snmp", S_IRUGO, &snmp_seq_fops)) + goto out_snmp; +- +- if (!proc_net_fops_create(&init_net, "sockstat", S_IRUGO, &sockstat_seq_fops)) +- goto out_sockstat; +-out: +- return rc; +-out_sockstat: +- proc_net_remove(&init_net, "snmp"); ++ return 0; + out_snmp: +- proc_net_remove(&init_net, "netstat"); ++ proc_net_remove(net, "netstat"); + out_netstat: +- rc = -ENOMEM; +- goto out; ++ return -ENOMEM; + } + ++static void ipv4_proc_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "snmp"); ++ proc_net_remove(net, "netstat"); ++} ++ ++static struct pernet_operations ipv4_proc_net_ops = { ++ .init = ipv4_proc_net_init, ++ .exit = ipv4_proc_net_exit, ++}; ++ ++int __init ip_misc_proc_init(void) ++{ ++ int rv; ++ ++ if (!proc_net_fops_create(&init_net, "sockstat", S_IRUGO, &sockstat_seq_fops)) ++ return -ENOMEM; ++ rv = register_pernet_subsys(&ipv4_proc_net_ops); ++ if (rv < 0) ++ proc_net_remove(&init_net, "sockstat"); ++ return rv; ++} +Index: kernel/net/ipv4/raw.c +=================================================================== +--- kernel.orig/net/ipv4/raw.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/raw.c 2008-11-24 15:47:46.000000000 +0100 +@@ -114,7 +114,8 @@ + if (inet->num == num && + !(inet->daddr && inet->daddr != raddr) && + !(inet->rcv_saddr && inet->rcv_saddr != laddr) && +- !(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif)) ++ !(sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif) && ++ ve_accessible_strict(sk->owner_env, get_exec_env())) + goto found; /* gotcha */ + } + sk = NULL; +@@ -804,8 +805,12 @@ + struct hlist_node *node; + + sk_for_each(sk, node, &raw_v4_htable[state->bucket]) +- if (sk->sk_family == PF_INET) ++ if (sk->sk_family == PF_INET) { ++ if (!ve_accessible(sk->owner_env, ++ get_exec_env())) ++ continue; + goto found; ++ } + } + sk = NULL; + found: +@@ -819,8 +824,13 @@ + do { + sk = sk_next(sk); + try_again: +- ; +- } while (sk && sk->sk_family != PF_INET); ++ if (!sk) ++ break; ++ if (sk->sk_family != PF_INET) ++ continue; ++ if (ve_accessible(sk->owner_env, get_exec_env())) ++ break; ++ } while (1); + + if (!sk && ++state->bucket < RAWV4_HTABLE_SIZE) { + sk = sk_head(&raw_v4_htable[state->bucket]); +@@ -919,13 +929,28 @@ + .release = seq_release_private, + }; + +-int __init raw_proc_init(void) ++static int raw_net_init(struct net *net) + { +- if (!proc_net_fops_create(&init_net, "raw", S_IRUGO, &raw_seq_fops)) ++ if (!proc_net_fops_create(net, "raw", S_IRUGO, &raw_seq_fops)) + return -ENOMEM; + return 0; + } + ++static void raw_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "raw"); ++} ++ ++static struct pernet_operations raw_net_ops = { ++ .init = raw_net_init, ++ .exit = raw_net_exit, ++}; ++ ++int __init raw_proc_init(void) ++{ ++ return register_pernet_subsys(&raw_net_ops); ++} ++ + void __init raw_proc_exit(void) + { + proc_net_remove(&init_net, "raw"); +Index: kernel/net/ipv4/route.c +=================================================================== +--- kernel.orig/net/ipv4/route.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/route.c 2008-11-24 15:47:46.000000000 +0100 +@@ -71,6 +71,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -116,6 +117,8 @@ + + #define RT_GC_TIMEOUT (300*HZ) + ++int ip_rt_src_check = 1; ++ + static int ip_rt_min_delay = 2 * HZ; + static int ip_rt_max_delay = 10 * HZ; + static int ip_rt_max_size; +@@ -266,11 +269,28 @@ + rt_hash_code((__force u32)(__be32)(daddr),\ + (__force u32)(__be32)(saddr) ^ ((idx) << 5)) + ++void prepare_rt_cache(void) ++{ ++#ifdef CONFIG_VE ++ struct rtable *r; ++ int i; ++ ++ for (i = rt_hash_mask; i >= 0; i--) { ++ spin_lock_bh(rt_hash_lock_addr(i)); ++ for (r = rt_hash_table[i].chain; r; r = r->u.dst.rt_next) { ++ r->fl.owner_env = get_ve0(); ++ } ++ spin_unlock_bh(rt_hash_lock_addr(i)); ++ } ++#endif ++} ++ + #ifdef CONFIG_PROC_FS + struct rt_cache_iter_state { + int bucket; + }; + ++static struct rtable *rt_cache_get_next(struct seq_file *seq, struct rtable *r); + static struct rtable *rt_cache_get_first(struct seq_file *seq) + { + struct rtable *r = NULL; +@@ -283,6 +303,8 @@ + break; + rcu_read_unlock_bh(); + } ++ if (r && !ve_accessible_strict(r->fl.owner_env, get_exec_env())) ++ return rt_cache_get_next(seq, r); + return rcu_dereference(r); + } + +@@ -290,6 +312,7 @@ + { + struct rt_cache_iter_state *st = seq->private; + ++loop: + r = r->u.dst.rt_next; + while (!r) { + rcu_read_unlock_bh(); +@@ -298,6 +321,8 @@ + rcu_read_lock_bh(); + r = rt_hash_table[st->bucket].chain; + } ++ if (r && !ve_accessible_strict(r->fl.owner_env, get_exec_env())) ++ goto loop; + return rcu_dereference(r); + } + +@@ -556,7 +581,8 @@ + (*(u16 *)&fl1->nl_u.ip4_u.tos ^ + *(u16 *)&fl2->nl_u.ip4_u.tos) | + (fl1->oif ^ fl2->oif) | +- (fl1->iif ^ fl2->iif)) == 0; ++ (fl1->iif ^ fl2->iif)) == 0 && ++ ve_accessible_strict(fl1->owner_env, fl2->owner_env); + } + + static void rt_check_expire(struct work_struct *work) +@@ -608,26 +634,105 @@ + schedule_delayed_work(&expires_work, ip_rt_gc_interval); + } + ++typedef unsigned long rt_flush_gen_t; ++ ++#ifdef CONFIG_VE ++ ++static rt_flush_gen_t rt_flush_gen; ++ ++/* called under rt_flush_lock */ ++static void set_rt_flush_required(struct ve_struct *env) ++{ ++ /* ++ * If the global generation rt_flush_gen is equal to G, then ++ * the pass considering entries labelled by G is yet to come. ++ */ ++ env->rt_flush_required = rt_flush_gen; ++} ++ ++static spinlock_t rt_flush_lock; ++static rt_flush_gen_t reset_rt_flush_required(void) ++{ ++ rt_flush_gen_t g; ++ ++ spin_lock_bh(&rt_flush_lock); ++ g = rt_flush_gen++; ++ spin_unlock_bh(&rt_flush_lock); ++ return g; ++} ++ ++static int check_rt_flush_required(struct ve_struct *env, rt_flush_gen_t gen) ++{ ++ /* can be checked without the lock */ ++ return env->rt_flush_required >= gen; ++} ++ ++#else ++ ++static void set_rt_flush_required(struct ve_struct *env) ++{ ++} ++ ++static rt_flush_gen_t reset_rt_flush_required(void) ++{ ++ return 0; ++} ++ ++#endif ++ + /* This can run from both BH and non-BH contexts, the latter + * in the case of a forced flush event. + */ + static void rt_run_flush(unsigned long dummy) + { + int i; +- struct rtable *rth, *next; ++ struct rtable * rth, * next; ++ struct rtable * tail; ++ rt_flush_gen_t gen; + + rt_deadline = 0; + + get_random_bytes(&rt_hash_rnd, 4); + ++ gen = reset_rt_flush_required(); ++ + for (i = rt_hash_mask; i >= 0; i--) { ++#ifdef CONFIG_VE ++ struct rtable ** prev, * p; ++ ++ spin_lock_bh(rt_hash_lock_addr(i)); ++ rth = rt_hash_table[i].chain; ++ ++ /* defer releasing the head of the list after spin_unlock */ ++ for (tail = rth; tail; tail = tail->u.dst.rt_next) ++ if (!check_rt_flush_required(tail->fl.owner_env, gen)) ++ break; ++ if (rth != tail) ++ rt_hash_table[i].chain = tail; ++ ++ /* call rt_free on entries after the tail requiring flush */ ++ prev = &rt_hash_table[i].chain; ++ for (p = *prev; p; p = next) { ++ next = p->u.dst.rt_next; ++ if (!check_rt_flush_required(p->fl.owner_env, gen)) { ++ prev = &p->u.dst.rt_next; ++ } else { ++ *prev = next; ++ rt_free(p); ++ } ++ } ++ ++#else + spin_lock_bh(rt_hash_lock_addr(i)); + rth = rt_hash_table[i].chain; + if (rth) + rt_hash_table[i].chain = NULL; ++ tail = NULL; ++ ++#endif + spin_unlock_bh(rt_hash_lock_addr(i)); + +- for (; rth; rth = next) { ++ for (; rth != tail; rth = next) { + next = rth->u.dst.rt_next; + rt_free(rth); + } +@@ -663,6 +768,8 @@ + delay = tmo; + } + ++ set_rt_flush_required(get_exec_env()); ++ + if (delay <= 0) { + spin_unlock_bh(&rt_flush_lock); + rt_run_flush(0); +@@ -678,9 +785,30 @@ + + static void rt_secret_rebuild(unsigned long dummy) + { ++ int i; ++ struct rtable *rth, *next; + unsigned long now = jiffies; + +- rt_cache_flush(0); ++ spin_lock_bh(&rt_flush_lock); ++ del_timer(&rt_flush_timer); ++ spin_unlock_bh(&rt_flush_lock); ++ ++ rt_deadline = 0; ++ get_random_bytes(&rt_hash_rnd, 4); ++ ++ for (i = rt_hash_mask; i >= 0; i--) { ++ spin_lock_bh(rt_hash_lock_addr(i)); ++ rth = rt_hash_table[i].chain; ++ if (rth) ++ rt_hash_table[i].chain = NULL; ++ spin_unlock_bh(rt_hash_lock_addr(i)); ++ ++ for (; rth; rth = next) { ++ next = rth->u.dst.rt_next; ++ rt_free(rth); ++ } ++ } ++ + mod_timer(&rt_secret_timer, now + ip_rt_secret_interval); + } + +@@ -1026,6 +1154,9 @@ + __be32 skeys[2] = { saddr, 0 }; + int ikeys[2] = { dev->ifindex, 0 }; + struct netevent_redirect netevent; ++ struct ve_struct *ve; ++ ++ ve = get_exec_env(); + + if (!in_dev) + return; +@@ -1057,6 +1188,10 @@ + if (rth->fl.fl4_dst != daddr || + rth->fl.fl4_src != skeys[i] || + rth->fl.oif != ikeys[k] || ++#ifdef CONFIG_VE ++ !ve_accessible_strict(rth->fl.owner_env, ++ ve) || ++#endif + rth->fl.iif != 0) { + rthp = &rth->u.dst.rt_next; + continue; +@@ -1095,6 +1230,9 @@ + rt->u.dst.neighbour = NULL; + rt->u.dst.hh = NULL; + rt->u.dst.xfrm = NULL; ++#ifdef CONFIG_VE ++ rt->fl.owner_env = ve; ++#endif + + rt->rt_flags |= RTCF_REDIRECTED; + +@@ -1389,8 +1527,9 @@ + { + struct rtable *rt = (struct rtable *) dst; + struct in_device *idev = rt->idev; +- if (dev != init_net.loopback_dev && idev && idev->dev == dev) { +- struct in_device *loopback_idev = in_dev_get(init_net.loopback_dev); ++ if (dev != dev->nd_net->loopback_dev && idev && idev->dev == dev) { ++ struct in_device *loopback_idev = ++ in_dev_get(dev->nd_net->loopback_dev); + if (loopback_idev) { + rt->idev = loopback_idev; + in_dev_put(idev); +@@ -1540,9 +1679,12 @@ + #ifdef CONFIG_NET_CLS_ROUTE + rth->u.dst.tclassid = itag; + #endif ++#ifdef CONFIG_VE ++ rth->fl.owner_env = get_exec_env(); ++#endif + rth->rt_iif = + rth->fl.iif = dev->ifindex; +- rth->u.dst.dev = init_net.loopback_dev; ++ rth->u.dst.dev = get_exec_env()->ve_ns->net_ns->loopback_dev; + dev_hold(rth->u.dst.dev); + rth->idev = in_dev_get(rth->u.dst.dev); + rth->fl.oif = 0; +@@ -1678,6 +1820,9 @@ + rth->fl.fl4_src = saddr; + rth->rt_src = saddr; + rth->rt_gateway = daddr; ++#ifdef CONFIG_VE ++ rth->fl.owner_env = get_exec_env(); ++#endif + rth->rt_iif = + rth->fl.iif = in_dev->dev->ifindex; + rth->u.dst.dev = (out_dev)->dev; +@@ -1799,7 +1944,7 @@ + if (res.type == RTN_LOCAL) { + int result; + result = fib_validate_source(saddr, daddr, tos, +- init_net.loopback_dev->ifindex, ++ get_exec_env()->ve_ns->net_ns->loopback_dev->ifindex, + dev, &spec_dst, &itag); + if (result < 0) + goto martian_source; +@@ -1861,11 +2006,14 @@ + #endif + rth->rt_iif = + rth->fl.iif = dev->ifindex; +- rth->u.dst.dev = init_net.loopback_dev; ++ rth->u.dst.dev = get_exec_env()->ve_ns->net_ns->loopback_dev; + dev_hold(rth->u.dst.dev); + rth->idev = in_dev_get(rth->u.dst.dev); + rth->rt_gateway = daddr; + rth->rt_spec_dst= spec_dst; ++#ifdef CONFIG_VE ++ rth->fl.owner_env = get_exec_env(); ++#endif + rth->u.dst.input= ip_local_deliver; + rth->rt_flags = flags|RTCF_LOCAL; + if (res.type == RTN_UNREACHABLE) { +@@ -1933,6 +2081,9 @@ + rth->fl.iif == iif && + rth->fl.oif == 0 && + rth->fl.mark == skb->mark && ++#ifdef CONFIG_VE ++ rth->fl.owner_env == get_exec_env() && ++#endif + rth->fl.fl4_tos == tos) { + dst_use(&rth->u.dst, jiffies); + RT_CACHE_STAT_INC(in_hit); +@@ -2050,6 +2201,9 @@ + rth->fl.mark = oldflp->mark; + rth->rt_dst = fl->fl4_dst; + rth->rt_src = fl->fl4_src; ++#ifdef CONFIG_VE ++ rth->fl.owner_env = get_exec_env(); ++#endif + rth->rt_iif = oldflp->oif ? : dev_out->ifindex; + /* get references to the devices that are to be hold by the routing + cache entry */ +@@ -2121,6 +2275,8 @@ + + static int ip_route_output_slow(struct rtable **rp, const struct flowi *oldflp) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net_device * loopback_dev = net->loopback_dev; + u32 tos = RT_FL_TOS(oldflp); + struct flowi fl = { .nl_u = { .ip4_u = + { .daddr = oldflp->fl4_dst, +@@ -2131,7 +2287,7 @@ + RT_SCOPE_UNIVERSE), + } }, + .mark = oldflp->mark, +- .iif = init_net.loopback_dev->ifindex, ++ .iif = loopback_dev->ifindex, + .oif = oldflp->oif }; + struct fib_result res; + unsigned flags = 0; +@@ -2152,10 +2308,13 @@ + ZERONET(oldflp->fl4_src)) + goto out; + +- /* It is equivalent to inet_addr_type(saddr) == RTN_LOCAL */ +- dev_out = ip_dev_find(oldflp->fl4_src); +- if (dev_out == NULL) +- goto out; ++ if (ip_rt_src_check) { ++ /* It is equivalent to ++ inet_addr_type(saddr) == RTN_LOCAL */ ++ dev_out = ip_dev_find(oldflp->fl4_src); ++ if (dev_out == NULL) ++ goto out; ++ } + + /* I removed check for oif == dev_out->oif here. + It was wrong for two reasons: +@@ -2182,6 +2341,12 @@ + Luckily, this hack is good workaround. + */ + ++ if (dev_out == NULL) { ++ dev_out = ip_dev_find(oldflp->fl4_src); ++ if (dev_out == NULL) ++ goto out; ++ } ++ + fl.oif = dev_out->ifindex; + goto make_route; + } +@@ -2192,7 +2357,7 @@ + + + if (oldflp->oif) { +- dev_out = dev_get_by_index(&init_net, oldflp->oif); ++ dev_out = dev_get_by_index(net, oldflp->oif); + err = -ENODEV; + if (dev_out == NULL) + goto out; +@@ -2225,9 +2390,9 @@ + fl.fl4_dst = fl.fl4_src = htonl(INADDR_LOOPBACK); + if (dev_out) + dev_put(dev_out); +- dev_out = init_net.loopback_dev; ++ dev_out = loopback_dev; + dev_hold(dev_out); +- fl.oif = init_net.loopback_dev->ifindex; ++ fl.oif = loopback_dev->ifindex; + res.type = RTN_LOCAL; + flags |= RTCF_LOCAL; + goto make_route; +@@ -2272,7 +2437,7 @@ + fl.fl4_src = fl.fl4_dst; + if (dev_out) + dev_put(dev_out); +- dev_out = init_net.loopback_dev; ++ dev_out = loopback_dev; + dev_hold(dev_out); + fl.oif = dev_out->ifindex; + if (res.fi) +@@ -2326,6 +2491,7 @@ + rth->fl.iif == 0 && + rth->fl.oif == flp->oif && + rth->fl.mark == flp->mark && ++ ve_accessible_strict(rth->fl.owner_env, get_exec_env()) && + !((rth->fl.fl4_tos ^ flp->fl4_tos) & + (IPTOS_RT_MASK | RTO_ONLINK))) { + dst_use(&rth->u.dst, jiffies); +@@ -2569,7 +2735,7 @@ + if (iif) { + struct net_device *dev; + +- dev = __dev_get_by_index(&init_net, iif); ++ dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, iif); + if (dev == NULL) { + err = -ENODEV; + goto errout_free; +@@ -2661,22 +2827,22 @@ + } + + #ifdef CONFIG_SYSCTL +-static int flush_delay; ++int ipv4_flush_delay; + +-static int ipv4_sysctl_rtcache_flush(ctl_table *ctl, int write, ++int ipv4_sysctl_rtcache_flush(ctl_table *ctl, int write, + struct file *filp, void __user *buffer, + size_t *lenp, loff_t *ppos) + { + if (write) { + proc_dointvec(ctl, write, filp, buffer, lenp, ppos); +- rt_cache_flush(flush_delay); ++ rt_cache_flush(ipv4_flush_delay); + return 0; + } + + return -EINVAL; + } + +-static int ipv4_sysctl_rtcache_flush_strategy(ctl_table *table, ++int ipv4_sysctl_rtcache_flush_strategy(ctl_table *table, + int __user *name, + int nlen, + void __user *oldval, +@@ -2697,7 +2863,7 @@ + { + .ctl_name = NET_IPV4_ROUTE_FLUSH, + .procname = "flush", +- .data = &flush_delay, ++ .data = &ipv4_flush_delay, + .maxlen = sizeof(int), + .mode = 0200, + .proc_handler = &ipv4_sysctl_rtcache_flush, +@@ -2984,7 +3150,7 @@ + struct proc_dir_entry *rtstat_pde = NULL; /* keep gcc happy */ + if (!proc_net_fops_create(&init_net, "rt_cache", S_IRUGO, &rt_cache_seq_fops) || + !(rtstat_pde = create_proc_entry("rt_cache", S_IRUGO, +- init_net.proc_net_stat))) { ++ init_net.proc_net_stat))) { + return -ENOMEM; + } + rtstat_pde->proc_fops = &rt_cpu_seq_fops; +Index: kernel/net/ipv4/sysctl_net_ipv4.c +=================================================================== +--- kernel.orig/net/ipv4/sysctl_net_ipv4.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/sysctl_net_ipv4.c 2008-11-24 15:47:46.000000000 +0100 +@@ -24,6 +24,9 @@ + /* From af_inet.c */ + extern int sysctl_ip_nonlocal_bind; + ++int sysctl_tcp_use_sg = 1; ++EXPORT_SYMBOL(sysctl_tcp_use_sg); ++ + #ifdef CONFIG_SYSCTL + static int zero; + static int tcp_retr1_max = 255; +@@ -35,7 +38,6 @@ + + #ifdef CONFIG_SYSCTL + +-static + int ipv4_sysctl_forward(ctl_table *ctl, int write, struct file * filp, + void __user *buffer, size_t *lenp, loff_t *ppos) + { +@@ -50,7 +52,7 @@ + return ret; + } + +-static int ipv4_sysctl_forward_strategy(ctl_table *table, ++int ipv4_sysctl_forward_strategy(ctl_table *table, + int __user *name, int nlen, + void __user *oldval, size_t __user *oldlenp, + void __user *newval, size_t newlen) +@@ -292,7 +294,7 @@ + { + .ctl_name = NET_IPV4_FORWARD, + .procname = "ip_forward", +- .data = &IPV4_DEVCONF_ALL(FORWARDING), ++ .data = &IPV4_DEVCONF(ipv4_devconf, FORWARDING), + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &ipv4_sysctl_forward, +@@ -548,6 +550,13 @@ + .mode = 0644, + .proc_handler = &proc_dointvec + }, ++ { ++ .procname = "tcp_use_sg", ++ .data = &sysctl_tcp_use_sg, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, + + #endif + { +@@ -748,6 +757,20 @@ + .extra1 = &zero + }, + { ++ .procname = "tcp_max_tw_kmem_fraction", ++ .data = &sysctl_tcp_max_tw_kmem_fraction, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++ { ++ .procname = "tcp_max_tw_buckets_ub", ++ .data = &sysctl_tcp_max_tw_buckets_ub, ++ .maxlen = sizeof(int), ++ .mode = 0644, ++ .proc_handler = proc_dointvec, ++ }, ++ { + .ctl_name = NET_TCP_NO_METRICS_SAVE, + .procname = "tcp_no_metrics_save", + .data = &sysctl_tcp_nometrics_save, +Index: kernel/net/ipv4/tcp.c +=================================================================== +--- kernel.orig/net/ipv4/tcp.c 2008-11-24 14:17:57.000000000 +0100 ++++ kernel/net/ipv4/tcp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -266,6 +266,10 @@ + #include + #include + ++#include ++#include ++#include ++ + #include + #include + +@@ -323,6 +327,7 @@ + unsigned int mask; + struct sock *sk = sock->sk; + struct tcp_sock *tp = tcp_sk(sk); ++ int check_send_space; + + poll_wait(file, sk->sk_sleep, wait); + if (sk->sk_state == TCP_LISTEN) +@@ -337,6 +342,21 @@ + if (sk->sk_err) + mask = POLLERR; + ++ check_send_space = 1; ++#ifdef CONFIG_BEANCOUNTERS ++ if (!(sk->sk_shutdown & SEND_SHUTDOWN) && sock_has_ubc(sk)) { ++ unsigned long size; ++ size = MAX_TCP_HEADER + tp->mss_cache; ++ if (size > SOCK_MIN_UBCSPACE) ++ size = SOCK_MIN_UBCSPACE; ++ size = skb_charge_size(size); ++ if (ub_sock_makewres_tcp(sk, size)) { ++ check_send_space = 0; ++ ub_sock_sndqueueadd_tcp(sk, size); ++ } ++ } ++#endif ++ + /* + * POLLHUP is certainly not done right. But poll() doesn't + * have a notion of HUP in just one direction, and for a +@@ -380,7 +400,7 @@ + sock_flag(sk, SOCK_URGINLINE) || !tp->urg_data)) + mask |= POLLIN | POLLRDNORM; + +- if (!(sk->sk_shutdown & SEND_SHUTDOWN)) { ++ if (check_send_space && !(sk->sk_shutdown & SEND_SHUTDOWN)) { + if (sk_stream_wspace(sk) >= sk_stream_min_wspace(sk)) { + mask |= POLLOUT | POLLWRNORM; + } else { /* send SIGIO later */ +@@ -531,16 +551,23 @@ + int copy, i, can_coalesce; + int offset = poffset % PAGE_SIZE; + int size = min_t(size_t, psize, PAGE_SIZE - offset); ++ unsigned long chargesize = 0; + + if (!tcp_send_head(sk) || (copy = size_goal - skb->len) <= 0) { + new_segment: ++ chargesize = 0; + if (!sk_stream_memory_free(sk)) + goto wait_for_sndbuf; + ++ chargesize = skb_charge_size(MAX_TCP_HEADER + ++ tp->mss_cache); ++ if (ub_sock_getwres_tcp(sk, chargesize) < 0) ++ goto wait_for_ubspace; + skb = sk_stream_alloc_pskb(sk, 0, 0, + sk->sk_allocation); + if (!skb) + goto wait_for_memory; ++ ub_skb_set_charge(skb, sk, chargesize, UB_TCPSNDBUF); + + skb_entail(sk, skb); + copy = size_goal; +@@ -596,10 +623,15 @@ + wait_for_sndbuf: + set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); + wait_for_memory: ++ ub_sock_retwres_tcp(sk, chargesize, ++ skb_charge_size(MAX_TCP_HEADER + tp->mss_cache)); ++ chargesize = 0; ++wait_for_ubspace: + if (copied) + tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH); + +- if ((err = sk_stream_wait_memory(sk, &timeo)) != 0) ++ err = __sk_stream_wait_memory(sk, &timeo, chargesize); ++ if (err != 0) + goto do_error; + + mss_now = tcp_current_mss(sk, !(flags&MSG_OOB)); +@@ -636,12 +668,8 @@ + return res; + } + +-#define TCP_PAGE(sk) (sk->sk_sndmsg_page) +-#define TCP_OFF(sk) (sk->sk_sndmsg_off) +- +-static inline int select_size(struct sock *sk) ++static inline int select_size(struct sock *sk, struct tcp_sock *tp) + { +- struct tcp_sock *tp = tcp_sk(sk); + int tmp = tp->mss_cache; + + if (sk->sk_route_caps & NETIF_F_SG) { +@@ -700,6 +728,7 @@ + while (--iovlen >= 0) { + int seglen = iov->iov_len; + unsigned char __user *from = iov->iov_base; ++ unsigned long chargesize = 0; + + iov++; + +@@ -710,18 +739,27 @@ + + if (!tcp_send_head(sk) || + (copy = size_goal - skb->len) <= 0) { ++ unsigned long size; + + new_segment: + /* Allocate new segment. If the interface is SG, + * allocate skb fitting to single page. + */ ++ chargesize = 0; + if (!sk_stream_memory_free(sk)) + goto wait_for_sndbuf; + +- skb = sk_stream_alloc_pskb(sk, select_size(sk), +- 0, sk->sk_allocation); ++ size = select_size(sk, tp); ++ chargesize = skb_charge_size(MAX_TCP_HEADER + ++ size); ++ if (ub_sock_getwres_tcp(sk, chargesize) < 0) ++ goto wait_for_ubspace; ++ skb = sk_stream_alloc_pskb(sk, size, 0, ++ sk->sk_allocation); + if (!skb) + goto wait_for_memory; ++ ub_skb_set_charge(skb, sk, chargesize, ++ UB_TCPSNDBUF); + + /* + * Check whether we can use HW checksum. +@@ -767,6 +805,7 @@ + } else if (page) { + if (off == PAGE_SIZE) { + put_page(page); ++ ub_sock_tcp_detachpage(sk); + TCP_PAGE(sk) = page = NULL; + off = 0; + } +@@ -780,6 +819,9 @@ + goto wait_for_memory; + + if (!page) { ++ chargesize = PAGE_SIZE; ++ if (ub_sock_tcp_chargepage(sk) < 0) ++ goto wait_for_ubspace; + /* Allocate new cache page. */ + if (!(page = sk_stream_alloc_page(sk))) + goto wait_for_memory; +@@ -811,7 +853,8 @@ + } else if (off + copy < PAGE_SIZE) { + get_page(page); + TCP_PAGE(sk) = page; +- } ++ } else ++ ub_sock_tcp_detachpage(sk); + } + + TCP_OFF(sk) = off + copy; +@@ -842,10 +885,15 @@ + wait_for_sndbuf: + set_bit(SOCK_NOSPACE, &sk->sk_socket->flags); + wait_for_memory: ++ ub_sock_retwres_tcp(sk, chargesize, ++ skb_charge_size(MAX_TCP_HEADER+tp->mss_cache)); ++ chargesize = 0; ++wait_for_ubspace: + if (copied) + tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH); + +- if ((err = sk_stream_wait_memory(sk, &timeo)) != 0) ++ err = __sk_stream_wait_memory(sk, &timeo, chargesize); ++ if (err != 0) + goto do_error; + + mss_now = tcp_current_mss(sk, !(flags&MSG_OOB)); +@@ -945,7 +993,18 @@ + #if TCP_DEBUG + struct sk_buff *skb = skb_peek(&sk->sk_receive_queue); + +- BUG_TRAP(!skb || before(tp->copied_seq, TCP_SKB_CB(skb)->end_seq)); ++ if (!(skb==NULL || before(tp->copied_seq, TCP_SKB_CB(skb)->end_seq))) { ++ printk("KERNEL: assertion: skb==NULL || " ++ "before(tp->copied_seq, skb->end_seq)\n"); ++ printk("VE%u pid %d comm %.16s\n", ++ (get_exec_env() ? VEID(get_exec_env()) : 0), ++ current->pid, current->comm); ++ printk("copied=%d, copied_seq=%d, rcv_nxt=%d\n", copied, ++ tp->copied_seq, tp->rcv_nxt); ++ printk("skb->len=%d, skb->seq=%d, skb->end_seq=%d\n", ++ skb->len, TCP_SKB_CB(skb)->seq, ++ TCP_SKB_CB(skb)->end_seq); ++ } + #endif + + if (inet_csk_ack_scheduled(sk)) { +@@ -1199,7 +1258,23 @@ + goto found_ok_skb; + if (tcp_hdr(skb)->fin) + goto found_fin_ok; +- BUG_TRAP(flags & MSG_PEEK); ++ if (!(flags & MSG_PEEK)) { ++ printk("KERNEL: assertion: flags&MSG_PEEK\n"); ++ printk("VE%u pid %d comm %.16s\n", ++ (get_exec_env() ? ++ VEID(get_exec_env()) : 0), ++ current->pid, current->comm); ++ printk("flags=0x%x, len=%d, copied_seq=%d, " ++ "rcv_nxt=%d\n", flags, ++ (int)len, tp->copied_seq, ++ tp->rcv_nxt); ++ printk("skb->len=%d, *seq=%d, skb->seq=%d, " ++ "skb->end_seq=%d, offset=%d\n", ++ skb->len, *seq, ++ TCP_SKB_CB(skb)->seq, ++ TCP_SKB_CB(skb)->end_seq, ++ offset); ++ } + skb = skb->next; + } while (skb != (struct sk_buff *)&sk->sk_receive_queue); + +@@ -1262,8 +1337,19 @@ + + tp->ucopy.len = len; + +- BUG_TRAP(tp->copied_seq == tp->rcv_nxt || +- (flags & (MSG_PEEK | MSG_TRUNC))); ++ if (!(tp->copied_seq == tp->rcv_nxt || ++ (flags&(MSG_PEEK|MSG_TRUNC)))) { ++ printk("KERNEL: assertion: tp->copied_seq == " ++ "tp->rcv_nxt || ...\n"); ++ printk("VE%u pid %d comm %.16s\n", ++ (get_exec_env() ? ++ VEID(get_exec_env()) : 0), ++ current->pid, current->comm); ++ printk("flags=0x%x, len=%d, copied_seq=%d, " ++ "rcv_nxt=%d\n", flags, ++ (int)len, tp->copied_seq, ++ tp->rcv_nxt); ++ } + + /* Ugly... If prequeue is not empty, we have to + * process it before releasing socket, otherwise +@@ -1639,7 +1725,7 @@ + state = sk->sk_state; + sock_hold(sk); + sock_orphan(sk); +- atomic_inc(sk->sk_prot->orphan_count); ++ ub_inc_orphan_count(sk); + + /* It is the last release_sock in its life. It will remove backlog. */ + release_sock(sk); +@@ -1689,12 +1775,19 @@ + } + } + if (sk->sk_state != TCP_CLOSE) { ++ int orphans = ub_get_orphan_count(sk); ++ + sk_stream_mem_reclaim(sk); +- if (tcp_too_many_orphans(sk, +- atomic_read(sk->sk_prot->orphan_count))) { +- if (net_ratelimit()) ++ if (ub_too_many_orphans(sk, orphans)) { ++ if (net_ratelimit()) { ++ int ubid = 0; ++#ifdef CONFIG_USER_RESOURCE ++ ubid = sock_has_ubc(sk) ? ++ top_beancounter(sock_bc(sk)->ub)->ub_uid : 0; ++#endif + printk(KERN_INFO "TCP: too many of orphaned " +- "sockets\n"); ++ "sockets (%d in CT%d)\n", orphans, ubid); ++ } + tcp_set_state(sk, TCP_CLOSE); + tcp_send_active_reset(sk, GFP_ATOMIC); + NET_INC_STATS_BH(LINUX_MIB_TCPABORTONMEMORY); +@@ -1770,6 +1863,7 @@ + tp->snd_ssthresh = 0x7fffffff; + tp->snd_cwnd_cnt = 0; + tp->bytes_acked = 0; ++ tp->advmss = 65535; + tcp_set_ca_state(sk, TCP_CA_Open); + tcp_clear_retrans(tp); + inet_csk_delack_init(sk); +@@ -2412,6 +2506,7 @@ + EXPORT_SYMBOL_GPL(tcp_done); + + extern void __skb_cb_too_small_for_tcp(int, int); ++extern unsigned int nr_free_lowpages(void); + extern struct tcp_congestion_ops tcp_reno; + + static __initdata unsigned long thash_entries; +@@ -2437,7 +2532,7 @@ + tcp_hashinfo.bind_bucket_cachep = + kmem_cache_create("tcp_bind_bucket", + sizeof(struct inet_bind_bucket), 0, +- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); ++ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_UBC, NULL); + + /* Size and allocate the main established and bind bucket + * hash tables. +@@ -2505,6 +2600,11 @@ + sysctl_tcp_mem[1] = limit; + sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2; + ++ if (sysctl_tcp_mem[2] - sysctl_tcp_mem[1] > 4096) ++ sysctl_tcp_mem[1] = sysctl_tcp_mem[2] - 4096; ++ if (sysctl_tcp_mem[1] - sysctl_tcp_mem[0] > 4096) ++ sysctl_tcp_mem[0] = sysctl_tcp_mem[1] - 4096; ++ + /* Set per-socket limits to no more than 1/128 the pressure threshold */ + limit = ((unsigned long)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7); + max_share = min(4UL*1024*1024, limit); +Index: kernel/net/ipv4/tcp_input.c +=================================================================== +--- kernel.orig/net/ipv4/tcp_input.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/tcp_input.c 2008-11-24 15:47:46.000000000 +0100 +@@ -72,6 +72,8 @@ + #include + #include + ++#include ++ + int sysctl_tcp_timestamps __read_mostly = 1; + int sysctl_tcp_window_scaling __read_mostly = 1; + int sysctl_tcp_sack __read_mostly = 1; +@@ -310,7 +312,7 @@ + /* Check #1 */ + if (tp->rcv_ssthresh < tp->window_clamp && + (int)tp->rcv_ssthresh < tcp_space(sk) && +- !tcp_memory_pressure) { ++ ub_tcp_rmem_allows_expand(sk)) { + int incr; + + /* Check #2. Increase window, if skb with such overhead +@@ -379,6 +381,8 @@ + + tp->rcv_ssthresh = min(tp->rcv_ssthresh, tp->window_clamp); + tp->snd_cwnd_stamp = tcp_time_stamp; ++ ++ ub_tcp_update_maxadvmss(sk); + } + + /* 5. Recalculate window clamp after socket hit its memory bounds. */ +@@ -391,7 +395,7 @@ + + if (sk->sk_rcvbuf < sysctl_tcp_rmem[2] && + !(sk->sk_userlocks & SOCK_RCVBUF_LOCK) && +- !tcp_memory_pressure && ++ !ub_tcp_memory_pressure(sk) && + atomic_read(&tcp_memory_allocated) < sysctl_tcp_mem[0]) { + sk->sk_rcvbuf = min(atomic_read(&sk->sk_rmem_alloc), + sysctl_tcp_rmem[2]); +@@ -3747,7 +3751,7 @@ + !sk_stream_rmem_schedule(sk, skb))) { + if (tcp_prune_queue(sk) < 0 || + !sk_stream_rmem_schedule(sk, skb)) +- goto drop; ++ goto drop_part; + } + sk_stream_set_owner_r(skb, sk); + __skb_queue_tail(&sk->sk_receive_queue, skb); +@@ -3791,6 +3795,12 @@ + drop: + __kfree_skb(skb); + return; ++ ++drop_part: ++ if (after(tp->copied_seq, tp->rcv_nxt)) ++ tp->rcv_nxt = tp->copied_seq; ++ __kfree_skb(skb); ++ return; + } + + /* Out of window. F.e. zero window probe. */ +@@ -3962,6 +3972,10 @@ + nskb = alloc_skb(copy+header, GFP_ATOMIC); + if (!nskb) + return; ++ if (ub_tcprcvbuf_charge_forced(skb->sk, nskb) < 0) { ++ kfree_skb(nskb); ++ return; ++ } + + skb_set_mac_header(nskb, skb_mac_header(skb) - skb->head); + skb_set_network_header(nskb, (skb_network_header(skb) - +@@ -4063,7 +4077,7 @@ + + if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) + tcp_clamp_window(sk); +- else if (tcp_memory_pressure) ++ else if (ub_tcp_memory_pressure(sk)) + tp->rcv_ssthresh = min(tp->rcv_ssthresh, 4U * tp->advmss); + + tcp_collapse_ofo_queue(sk); +@@ -4142,7 +4156,7 @@ + return 0; + + /* If we are under global TCP memory pressure, do not expand. */ +- if (tcp_memory_pressure) ++ if (ub_tcp_memory_pressure(sk)) + return 0; + + /* If we are under soft global TCP memory pressure, do not expand. */ +@@ -4587,6 +4601,10 @@ + + if ((int)skb->truesize > sk->sk_forward_alloc) + goto step5; ++ /* This is OK not to try to free memory here. ++ * Do this below on slow path. Den */ ++ if (ub_tcprcvbuf_charge(sk, skb) < 0) ++ goto step5; + + NET_INC_STATS_BH(LINUX_MIB_TCPHPHITS); + +Index: kernel/net/ipv4/tcp_ipv4.c +=================================================================== +--- kernel.orig/net/ipv4/tcp_ipv4.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/tcp_ipv4.c 2008-11-24 15:47:46.000000000 +0100 +@@ -56,6 +56,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -73,6 +74,8 @@ + #include + #include + ++#include ++ + #include + #include + #include +@@ -720,7 +723,8 @@ + struct tcp_timewait_sock *tcptw = tcp_twsk(sk); + + tcp_v4_send_ack(tcptw, skb, tcptw->tw_snd_nxt, tcptw->tw_rcv_nxt, +- tcptw->tw_rcv_wnd >> tw->tw_rcv_wscale, ++ tcptw->tw_rcv_wnd >> ++ (tw->tw_rcv_wscale & TW_WSCALE_MASK), + tcptw->tw_ts_recent); + + inet_twsk_put(tw); +@@ -1245,6 +1249,7 @@ + .destructor = tcp_v4_reqsk_destructor, + .send_reset = tcp_v4_send_reset, + }; ++EXPORT_SYMBOL_GPL(tcp_request_sock_ops); + + #ifdef CONFIG_TCP_MD5SIG + static struct tcp_request_sock_ops tcp_request_sock_ipv4_ops = { +@@ -1555,6 +1560,10 @@ + int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb) + { + struct sock *rsk; ++ struct user_beancounter *ub; ++ ++ ub = set_exec_ub(sock_bc(sk)->ub); ++ + #ifdef CONFIG_TCP_MD5SIG + /* + * We really want to reject the packet as early as possible +@@ -1573,7 +1582,7 @@ + goto reset; + } + TCP_CHECK_TIMER(sk); +- return 0; ++ goto restore_context; + } + + if (skb->len < tcp_hdrlen(skb) || tcp_checksum_complete(skb)) +@@ -1589,7 +1598,7 @@ + rsk = nsk; + goto reset; + } +- return 0; ++ goto restore_context; + } + } + +@@ -1599,6 +1608,9 @@ + goto reset; + } + TCP_CHECK_TIMER(sk); ++ ++restore_context: ++ (void)set_exec_ub(ub); + return 0; + + reset: +@@ -1610,7 +1622,7 @@ + * might be destroyed here. This current version compiles correctly, + * but you have been warned. + */ +- return 0; ++ goto restore_context; + + csum_err: + TCP_INC_STATS_BH(TCP_MIB_INERRS); +@@ -1870,6 +1882,8 @@ + tp->snd_cwnd_clamp = ~0; + tp->mss_cache = 536; + ++ tp->advmss = 65535; /* max value */ ++ + tp->reordering = sysctl_tcp_reordering; + icsk->icsk_ca_ops = &tcp_init_congestion_ops; + +@@ -1931,6 +1945,8 @@ + * If sendmsg cached page exists, toss it. + */ + if (sk->sk_sndmsg_page) { ++ /* queue is empty, uncharge */ ++ ub_sock_tcp_detachpage(sk); + __free_page(sk->sk_sndmsg_page); + sk->sk_sndmsg_page = NULL; + } +@@ -1945,16 +1961,34 @@ + #ifdef CONFIG_PROC_FS + /* Proc filesystem TCP sock list dumping. */ + +-static inline struct inet_timewait_sock *tw_head(struct hlist_head *head) ++static inline struct inet_timewait_sock *tw_head(struct hlist_head *head, ++ envid_t veid) + { +- return hlist_empty(head) ? NULL : +- list_entry(head->first, struct inet_timewait_sock, tw_node); ++ struct inet_timewait_sock *tw; ++ struct hlist_node *pos; ++ ++ if (hlist_empty(head)) ++ return NULL; ++ hlist_for_each_entry(tw, pos, head, tw_node) { ++ if (!ve_accessible_veid(tw->tw_owner_env, veid)) ++ continue; ++ return tw; ++ } ++ return NULL; + } + +-static inline struct inet_timewait_sock *tw_next(struct inet_timewait_sock *tw) ++static inline struct inet_timewait_sock * ++ tw_next(struct inet_timewait_sock *tw, envid_t veid) + { +- return tw->tw_node.next ? +- hlist_entry(tw->tw_node.next, typeof(*tw), tw_node) : NULL; ++ while (1) { ++ if (tw->tw_node.next == NULL) ++ return NULL; ++ tw = hlist_entry(tw->tw_node.next, typeof(*tw), tw_node); ++ if (!ve_accessible_veid(tw->tw_owner_env, veid)) ++ continue; ++ return tw; ++ } ++ return NULL; /* make compiler happy */ + } + + static void *listening_get_next(struct seq_file *seq, void *cur) +@@ -1963,7 +1997,9 @@ + struct hlist_node *node; + struct sock *sk = cur; + struct tcp_iter_state* st = seq->private; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + if (!sk) { + st->bucket = 0; + sk = sk_head(&tcp_hashinfo.listening_hash[0]); +@@ -2003,6 +2039,8 @@ + } + get_sk: + sk_for_each_from(sk, node) { ++ if (!ve_accessible(sk->owner_env, ve)) ++ continue; + if (sk->sk_family == st->family) { + cur = sk; + goto out; +@@ -2043,7 +2081,9 @@ + { + struct tcp_iter_state* st = seq->private; + void *rc = NULL; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + for (st->bucket = 0; st->bucket < tcp_hashinfo.ehash_size; ++st->bucket) { + struct sock *sk; + struct hlist_node *node; +@@ -2052,6 +2092,8 @@ + + read_lock_bh(lock); + sk_for_each(sk, node, &tcp_hashinfo.ehash[st->bucket].chain) { ++ if (!ve_accessible(sk->owner_env, ve)) ++ continue; + if (sk->sk_family != st->family) { + continue; + } +@@ -2061,6 +2103,8 @@ + st->state = TCP_SEQ_STATE_TIME_WAIT; + inet_twsk_for_each(tw, node, + &tcp_hashinfo.ehash[st->bucket].twchain) { ++ if (!ve_accessible_veid(tw->tw_owner_env, VEID(ve))) ++ continue; + if (tw->tw_family != st->family) { + continue; + } +@@ -2080,16 +2124,17 @@ + struct inet_timewait_sock *tw; + struct hlist_node *node; + struct tcp_iter_state* st = seq->private; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + ++st->num; + + if (st->state == TCP_SEQ_STATE_TIME_WAIT) { + tw = cur; +- tw = tw_next(tw); ++ tw = tw_next(tw, VEID(ve)); + get_tw: +- while (tw && tw->tw_family != st->family) { +- tw = tw_next(tw); +- } ++ while (tw && tw->tw_family != st->family) ++ tw = tw_next(tw, VEID(ve)); + if (tw) { + cur = tw; + goto out; +@@ -2108,12 +2153,14 @@ + sk = sk_next(sk); + + sk_for_each_from(sk, node) { ++ if (!ve_accessible(sk->owner_env, ve)) ++ continue; + if (sk->sk_family == st->family) + goto found; + } + + st->state = TCP_SEQ_STATE_TIME_WAIT; +- tw = tw_head(&tcp_hashinfo.ehash[st->bucket].twchain); ++ tw = tw_head(&tcp_hashinfo.ehash[st->bucket].twchain, VEID(ve)); + goto get_tw; + found: + cur = sk; +@@ -2255,7 +2302,7 @@ + afinfo->seq_fops->llseek = seq_lseek; + afinfo->seq_fops->release = seq_release_private; + +- p = proc_net_fops_create(&init_net, afinfo->name, S_IRUGO, afinfo->seq_fops); ++ p = proc_net_fops_create(current->nsproxy->net_ns, afinfo->name, S_IRUGO, afinfo->seq_fops); + if (p) + p->data = afinfo; + else +@@ -2267,7 +2314,8 @@ + { + if (!afinfo) + return; +- proc_net_remove(&init_net, afinfo->name); ++ ++ proc_net_remove(current->nsproxy->net_ns, afinfo->name); + memset(afinfo->seq_fops, 0, sizeof(*afinfo->seq_fops)); + } + +@@ -2406,15 +2454,30 @@ + .seq_fops = &tcp4_seq_fops, + }; + +-int __init tcp4_proc_init(void) ++static int tcp4_proc_net_init(struct net *net) + { + return tcp_proc_register(&tcp4_seq_afinfo); + } + +-void tcp4_proc_exit(void) ++static void tcp4_proc_net_exit(struct net *net) + { + tcp_proc_unregister(&tcp4_seq_afinfo); + } ++ ++static struct pernet_operations tcp4_proc_net_ops = { ++ .init = tcp4_proc_net_init, ++ .exit = tcp4_proc_net_exit, ++}; ++ ++int __init tcp4_proc_init(void) ++{ ++ return register_pernet_subsys(&tcp4_proc_net_ops); ++} ++ ++void tcp4_proc_exit(void) ++{ ++ unregister_pernet_subsys(&tcp4_proc_net_ops); ++} + #endif /* CONFIG_PROC_FS */ + + DEFINE_PROTO_INUSE(tcp) +@@ -2463,6 +2526,87 @@ + panic("Failed to create the TCP control socket.\n"); + } + ++#ifdef CONFIG_VE ++static void tcp_kill_ve_onesk(struct sock *sk) ++{ ++ struct tcp_sock *tp = tcp_sk(sk); ++ ++ /* Check the assumed state of the socket. */ ++ if (!sock_flag(sk, SOCK_DEAD)) { ++ static int printed; ++invalid: ++ if (!printed) ++ printk(KERN_DEBUG "Killing sk: dead %d, state %d, " ++ "wrseq %u unseq %u, wrqu %d.\n", ++ sock_flag(sk, SOCK_DEAD), sk->sk_state, ++ tp->write_seq, tp->snd_una, ++ !skb_queue_empty(&sk->sk_write_queue)); ++ printed = 1; ++ return; ++ } ++ ++ tcp_send_active_reset(sk, GFP_ATOMIC); ++ switch (sk->sk_state) { ++ case TCP_FIN_WAIT1: ++ case TCP_CLOSING: ++ /* In these 2 states the peer may want us to retransmit ++ * some data and/or FIN. Entering "resetting mode" ++ * instead. ++ */ ++ tcp_time_wait(sk, TCP_CLOSE, 0); ++ break; ++ case TCP_FIN_WAIT2: ++ /* By some reason the socket may stay in this state ++ * without turning into a TW bucket. Fix it. ++ */ ++ tcp_time_wait(sk, TCP_FIN_WAIT2, 0); ++ break; ++ case TCP_LAST_ACK: ++ /* Just jump into CLOSED state. */ ++ tcp_done(sk); ++ break; ++ default: ++ /* The socket must be already close()d. */ ++ goto invalid; ++ } ++} ++ ++void tcp_v4_kill_ve_sockets(struct ve_struct *envid) ++{ ++ struct inet_ehash_bucket *head; ++ int i; ++ ++ /* alive */ ++ local_bh_disable(); ++ head = tcp_hashinfo.ehash; ++ for (i = 0; i < tcp_hashinfo.ehash_size; i++) { ++ struct sock *sk; ++ struct hlist_node *node; ++ rwlock_t *lock = inet_ehash_lockp(&tcp_hashinfo, i); ++more_work: ++ write_lock(lock); ++ sk_for_each(sk, node, &head[i].chain) { ++ if (ve_accessible_strict(sk->owner_env, envid)) { ++ sock_hold(sk); ++ write_unlock(lock); ++ ++ bh_lock_sock(sk); ++ /* sk might have disappeared from the hash before ++ * we got the lock */ ++ if (sk->sk_state != TCP_CLOSE) ++ tcp_kill_ve_onesk(sk); ++ bh_unlock_sock(sk); ++ sock_put(sk); ++ goto more_work; ++ } ++ } ++ write_unlock(lock); ++ } ++ local_bh_enable(); ++} ++EXPORT_SYMBOL(tcp_v4_kill_ve_sockets); ++#endif ++ + EXPORT_SYMBOL(ipv4_specific); + EXPORT_SYMBOL(tcp_hashinfo); + EXPORT_SYMBOL(tcp_prot); +Index: kernel/net/ipv4/tcp_minisocks.c +=================================================================== +--- kernel.orig/net/ipv4/tcp_minisocks.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/tcp_minisocks.c 2008-11-24 15:47:46.000000000 +0100 +@@ -28,6 +28,9 @@ + #include + #include + ++#include ++#include ++ + #ifdef CONFIG_SYSCTL + #define SYNC_INIT 0 /* let the user enable it */ + #else +@@ -36,6 +39,11 @@ + + int sysctl_tcp_syncookies __read_mostly = SYNC_INIT; + int sysctl_tcp_abort_on_overflow __read_mostly; ++int sysctl_tcp_max_tw_kmem_fraction __read_mostly = 384; ++int sysctl_tcp_max_tw_buckets_ub __read_mostly = 16536; ++ ++EXPORT_SYMBOL(sysctl_tcp_max_tw_kmem_fraction); ++EXPORT_SYMBOL(sysctl_tcp_max_tw_buckets_ub); + + struct inet_timewait_death_row tcp_death_row = { + .sysctl_max_tw_buckets = NR_FILE * 2, +@@ -51,6 +59,7 @@ + .twcal_hand = -1, + .twcal_timer = TIMER_INITIALIZER(inet_twdr_twcal_tick, 0, + (unsigned long)&tcp_death_row), ++ .ub_managed = 1, + }; + + EXPORT_SYMBOL_GPL(tcp_death_row); +@@ -279,7 +288,8 @@ + if (tcp_death_row.sysctl_tw_recycle && tp->rx_opt.ts_recent_stamp) + recycle_ok = icsk->icsk_af_ops->remember_stamp(sk); + +- if (tcp_death_row.tw_count < tcp_death_row.sysctl_max_tw_buckets) ++ if (tcp_death_row.tw_count < tcp_death_row.sysctl_max_tw_buckets && ++ ub_timewait_check(sk, &tcp_death_row)) + tw = inet_twsk_alloc(sk, state); + + if (tw != NULL) { +@@ -292,6 +302,8 @@ + tcptw->tw_rcv_wnd = tcp_receive_window(tp); + tcptw->tw_ts_recent = tp->rx_opt.ts_recent; + tcptw->tw_ts_recent_stamp = tp->rx_opt.ts_recent_stamp; ++ if (sk->sk_user_data != NULL) ++ tw->tw_rcv_wscale |= TW_WSCALE_SPEC; + + #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) + if (tw->tw_family == PF_INET6) { +@@ -326,6 +338,7 @@ + } + } while (0); + #endif ++ tw->tw_owner_env = VEID(sk->owner_env); + + /* Linkage updates. */ + __inet_twsk_hashdance(tw, sk, &tcp_hashinfo); +@@ -346,11 +359,16 @@ + TCP_TIMEWAIT_LEN); + inet_twsk_put(tw); + } else { ++ int ubid = 0; + /* Sorry, if we're out of memory, just CLOSE this + * socket up. We've got bigger problems than + * non-graceful socket closings. + */ +- LIMIT_NETDEBUG(KERN_INFO "TCP: time wait bucket table overflow\n"); ++#ifdef CONFIG_BEANCOUNTERS ++ if (sock_has_ubc(sk)) ++ ubid = top_beancounter(sock_bc(sk)->ub)->ub_uid; ++#endif ++ LIMIT_NETDEBUG(KERN_INFO "TCP: time wait bucket table overflow (CT%d)\n", ubid); + } + + tcp_update_metrics(sk); +@@ -391,6 +409,8 @@ + struct tcp_sock *newtp; + + /* Now setup tcp_sock */ ++ newsk->owner_env = sk->owner_env; ++ + newtp = tcp_sk(newsk); + newtp->pred_flags = 0; + newtp->rcv_wup = newtp->copied_seq = newtp->rcv_nxt = treq->rcv_isn + 1; +Index: kernel/net/ipv4/tcp_output.c +=================================================================== +--- kernel.orig/net/ipv4/tcp_output.c 2008-11-24 14:17:56.000000000 +0100 ++++ kernel/net/ipv4/tcp_output.c 2008-11-24 15:47:46.000000000 +0100 +@@ -41,6 +41,9 @@ + #include + #include + ++#include ++#include ++ + /* People can turn this off for buggy TCP's found in printers etc. */ + int sysctl_tcp_retrans_collapse __read_mostly = 1; + +@@ -439,6 +442,13 @@ + #endif + } + ++static int skb_header_size(struct sock *sk, int tcp_hlen) ++{ ++ struct ip_options *opt = inet_sk(sk)->opt; ++ return tcp_hlen + sizeof(struct iphdr) + ++ (opt ? opt->optlen : 0) + ETH_HLEN /* For hard header */; ++} ++ + /* This routine actually transmits TCP packets queued in by + * tcp_do_sendmsg(). This is used by both the initial + * transmission and possible later retransmissions. +@@ -457,6 +467,7 @@ + struct tcp_sock *tp; + struct tcp_skb_cb *tcb; + int tcp_header_size; ++ int header_size; + #ifdef CONFIG_TCP_MD5SIG + struct tcp_md5sig_key *md5; + __u8 *md5_hash_location; +@@ -516,6 +527,20 @@ + TCPOLEN_SACK_PERBLOCK)); + } + ++ /* Unfortunately, we can have skb from outside world here ++ * with size insufficient for header. It is impossible to make ++ * guess when we queue skb, so the decision should be made ++ * here. Den ++ */ ++ header_size = skb_header_size(sk, tcp_header_size); ++ if (skb->data - header_size < skb->head) { ++ int delta = header_size - skb_headroom(skb); ++ err = pskb_expand_head(skb, SKB_DATA_ALIGN(delta), ++ 0, GFP_ATOMIC); ++ if (err) ++ return err; ++ } ++ + if (tcp_packets_in_flight(tp) == 0) + tcp_ca_event(sk, CA_EVENT_TX_START); + +@@ -692,15 +717,23 @@ + if (nsize < 0) + nsize = 0; + +- if (skb_cloned(skb) && +- skb_is_nonlinear(skb) && +- pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) +- return -ENOMEM; ++ if (skb_cloned(skb) && skb_is_nonlinear(skb)) { ++ unsigned long chargesize; ++ chargesize = skb_bc(skb)->charged; ++ if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) ++ return -ENOMEM; ++ ub_sock_tcp_unchargesend(sk, chargesize); ++ ub_tcpsndbuf_charge_forced(sk, skb); ++ } + + /* Get a new skb... force flag on. */ + buff = sk_stream_alloc_skb(sk, nsize, GFP_ATOMIC); + if (buff == NULL) + return -ENOMEM; /* We'll just try again later. */ ++ if (ub_tcpsndbuf_charge(sk, buff) < 0) { ++ kfree_skb(buff); ++ return -ENOMEM; ++ } + + sk_charge_skb(sk, buff); + nlen = skb->len - len - nsize; +@@ -1000,6 +1033,8 @@ + return mss_now; + } + ++EXPORT_SYMBOL(tcp_current_mss); ++ + /* Congestion window validation. (RFC2861) */ + + static void tcp_cwnd_validate(struct sock *sk) +@@ -1186,6 +1221,11 @@ + if (unlikely(buff == NULL)) + return -ENOMEM; + ++ if (ub_tcpsndbuf_charge(sk, buff) < 0) { ++ kfree_skb(buff); ++ return -ENOMEM; ++ } ++ + sk_charge_skb(sk, buff); + buff->truesize += nlen; + skb->truesize -= nlen; +@@ -1516,6 +1556,8 @@ + } + } + ++EXPORT_SYMBOL(__tcp_push_pending_frames); ++ + /* Send _single_ skb sitting at the send head. This function requires + * true push pending frames to setup probe timer etc. + */ +@@ -1636,7 +1678,7 @@ + if (free_space < full_space/2) { + icsk->icsk_ack.quick = 0; + +- if (tcp_memory_pressure) ++ if (ub_tcp_shrink_rcvbuf(sk)) + tp->rcv_ssthresh = min(tp->rcv_ssthresh, 4U*tp->advmss); + + if (free_space < mss) +@@ -2080,6 +2122,7 @@ + break; + yield(); + } ++ ub_tcpsndbuf_charge_forced(sk, skb); + + /* Reserve space for headers and prepare control bits. */ + skb_reserve(skb, MAX_TCP_HEADER); +@@ -2150,6 +2193,10 @@ + struct sk_buff *nskb = skb_copy(skb, GFP_ATOMIC); + if (nskb == NULL) + return -ENOMEM; ++ if (ub_tcpsndbuf_charge(sk, skb) < 0) { ++ kfree_skb(nskb); ++ return -ENOMEM; ++ } + tcp_unlink_write_queue(skb, sk); + skb_header_release(nskb); + __tcp_add_write_queue_head(sk, nskb); +@@ -2275,6 +2322,7 @@ + struct dst_entry *dst = __sk_dst_get(sk); + struct tcp_sock *tp = tcp_sk(sk); + __u8 rcv_wscale; ++ static int once = 0; + + /* We'll fix this up when we get a response from the other end. + * See tcp_input.c:tcp_rcv_state_process case TCP_SYN_SENT. +@@ -2294,9 +2342,23 @@ + tcp_mtup_init(sk); + tcp_sync_mss(sk, dst_mtu(dst)); + ++ if (!once && dst_metric(dst, RTAX_ADVMSS) == 0) { ++ once = 1; ++ ++ printk("Oops in connect_init! dst->advmss=%d\n", ++ dst_metric(dst, RTAX_ADVMSS)); ++ printk("dst: pmtu=%u\n", dst_metric(dst, RTAX_MTU)); ++ printk("sk->state=%d, tp: ack.rcv_mss=%d, mss_cache=%d, " ++ "advmss=%d, user_mss=%d\n", ++ sk->sk_state, inet_csk(sk)->icsk_ack.rcv_mss, ++ tp->mss_cache, tp->advmss, tp->rx_opt.user_mss); ++ } ++ + if (!tp->window_clamp) + tp->window_clamp = dst_metric(dst, RTAX_WINDOW); + tp->advmss = dst_metric(dst, RTAX_ADVMSS); ++ if (tp->advmss == 0) ++ tp->advmss = 1460; + tcp_initialize_rcv_mss(sk); + + tcp_select_initial_window(tcp_full_space(sk), +@@ -2337,6 +2399,10 @@ + buff = alloc_skb_fclone(MAX_TCP_HEADER + 15, sk->sk_allocation); + if (unlikely(buff == NULL)) + return -ENOBUFS; ++ if (ub_tcpsndbuf_charge(sk, buff) < 0) { ++ kfree_skb(buff); ++ return -ENOBUFS; ++ } + + /* Reserve space for headers. */ + skb_reserve(buff, MAX_TCP_HEADER); +Index: kernel/net/ipv4/tcp_timer.c +=================================================================== +--- kernel.orig/net/ipv4/tcp_timer.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/tcp_timer.c 2008-11-24 15:47:46.000000000 +0100 +@@ -22,6 +22,8 @@ + + #include + #include ++#include ++#include + + int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES; + int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES; +@@ -67,7 +69,8 @@ + static int tcp_out_of_resources(struct sock *sk, int do_reset) + { + struct tcp_sock *tp = tcp_sk(sk); +- int orphans = atomic_read(&tcp_orphan_count); ++ int orphans = ub_get_orphan_count(sk); ++ int orph = orphans; + + /* If peer does not open window for long time, or did not transmit + * anything for long time, penalize it. */ +@@ -78,10 +81,16 @@ + if (sk->sk_err_soft) + orphans <<= 1; + +- if (tcp_too_many_orphans(sk, orphans)) { +- if (net_ratelimit()) +- printk(KERN_INFO "Out of socket memory\n"); +- ++ if (ub_too_many_orphans(sk, orphans)) { ++ if (net_ratelimit()) { ++ int ubid = 0; ++#ifdef CONFIG_USER_RESOURCE ++ ubid = sock_has_ubc(sk) ? ++ top_beancounter(sock_bc(sk)->ub)->ub_uid : 0; ++#endif ++ printk(KERN_INFO "Orphaned socket dropped " ++ "(%d,%d in CT%d)\n", orph, orphans, ubid); ++ } + /* Catch exceptional cases, when connection requires reset. + * 1. Last segment was sent recently. */ + if ((s32)(tcp_time_stamp - tp->lsndtime) <= TCP_TIMEWAIT_LEN || +@@ -167,9 +176,12 @@ + static void tcp_delack_timer(unsigned long data) + { + struct sock *sk = (struct sock*)data; ++ struct ve_struct *env; + struct tcp_sock *tp = tcp_sk(sk); + struct inet_connection_sock *icsk = inet_csk(sk); + ++ env = set_exec_env(sk->owner_env); ++ + bh_lock_sock(sk); + if (sock_owned_by_user(sk)) { + /* Try again later. */ +@@ -218,11 +230,12 @@ + TCP_CHECK_TIMER(sk); + + out: +- if (tcp_memory_pressure) ++ if (ub_tcp_memory_pressure(sk)) + sk_stream_mem_reclaim(sk); + out_unlock: + bh_unlock_sock(sk); + sock_put(sk); ++ (void)set_exec_env(env); + } + + static void tcp_probe_timer(struct sock *sk) +@@ -277,8 +290,11 @@ + static void tcp_retransmit_timer(struct sock *sk) + { + struct tcp_sock *tp = tcp_sk(sk); ++ struct ve_struct *env; + struct inet_connection_sock *icsk = inet_csk(sk); + ++ env = set_exec_env(sk->owner_env); ++ + if (!tp->packets_out) + goto out; + +@@ -375,15 +391,19 @@ + if (icsk->icsk_retransmits > sysctl_tcp_retries1) + __sk_dst_reset(sk); + +-out:; ++out: ++ (void)set_exec_env(env); + } + + static void tcp_write_timer(unsigned long data) + { + struct sock *sk = (struct sock*)data; ++ struct ve_struct *env; + struct inet_connection_sock *icsk = inet_csk(sk); + int event; + ++ env = set_exec_env(sk->owner_env); ++ + bh_lock_sock(sk); + if (sock_owned_by_user(sk)) { + /* Try again later */ +@@ -417,6 +437,7 @@ + out_unlock: + bh_unlock_sock(sk); + sock_put(sk); ++ (void)set_exec_env(env); + } + + /* +@@ -444,10 +465,13 @@ + static void tcp_keepalive_timer (unsigned long data) + { + struct sock *sk = (struct sock *) data; ++ struct ve_struct *env; + struct inet_connection_sock *icsk = inet_csk(sk); + struct tcp_sock *tp = tcp_sk(sk); + __u32 elapsed; + ++ env = set_exec_env(sk->owner_env); ++ + /* Only process if socket is not in use. */ + bh_lock_sock(sk); + if (sock_owned_by_user(sk)) { +@@ -519,4 +543,5 @@ + out: + bh_unlock_sock(sk); + sock_put(sk); ++ (void)set_exec_env(env); + } +Index: kernel/net/ipv4/udp.c +=================================================================== +--- kernel.orig/net/ipv4/udp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/udp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -115,13 +115,15 @@ + DEFINE_RWLOCK(udp_hash_lock); + + static inline int __udp_lib_lport_inuse(__u16 num, +- const struct hlist_head udptable[]) ++ const struct hlist_head udptable[], ++ struct ve_struct *ve) + { + struct sock *sk; + struct hlist_node *node; + +- sk_for_each(sk, node, &udptable[num & (UDP_HTABLE_SIZE - 1)]) +- if (sk->sk_hash == num) ++ sk_for_each(sk, node, &udptable[udp_hashfn(num, VEID(ve))]) ++ if (sk->sk_hash == num && ++ ve_accessible_strict(sk->owner_env, ve)) + return 1; + return 0; + } +@@ -143,7 +145,9 @@ + struct hlist_head *head; + struct sock *sk2; + int error = 1; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + write_lock_bh(&udp_hash_lock); + + if (!snum) { +@@ -160,7 +164,7 @@ + for (i = 0; i < UDP_HTABLE_SIZE; i++) { + int size = 0; + +- head = &udptable[rover & (UDP_HTABLE_SIZE - 1)]; ++ head = &udptable[udp_hashfn(rover, VEID(ve))]; + if (hlist_empty(head)) + goto gotit; + +@@ -182,7 +186,7 @@ + /* 2nd pass: find hole in shortest hash chain */ + rover = best; + for (i = 0; i < (1 << 16) / UDP_HTABLE_SIZE; i++) { +- if (! __udp_lib_lport_inuse(rover, udptable)) ++ if (! __udp_lib_lport_inuse(rover, udptable, ve)) + goto gotit; + rover += UDP_HTABLE_SIZE; + if (rover > high) +@@ -197,12 +201,13 @@ + gotit: + snum = rover; + } else { +- head = &udptable[snum & (UDP_HTABLE_SIZE - 1)]; ++ head = &udptable[udp_hashfn(snum, VEID(ve))]; + + sk_for_each(sk2, node, head) + if (sk2->sk_hash == snum && + sk2 != sk && + (!sk2->sk_reuse || !sk->sk_reuse) && ++ ve_accessible_strict(sk2->owner_env, ve) && + (!sk2->sk_bound_dev_if || !sk->sk_bound_dev_if + || sk2->sk_bound_dev_if == sk->sk_bound_dev_if) && + (*saddr_comp)(sk, sk2) ) +@@ -212,7 +217,7 @@ + inet_sk(sk)->num = snum; + sk->sk_hash = snum; + if (sk_unhashed(sk)) { +- head = &udptable[snum & (UDP_HTABLE_SIZE - 1)]; ++ head = &udptable[udp_hashfn(snum, VEID(ve))]; + sk_add_node(sk, head); + sock_prot_inc_use(sk->sk_prot); + } +@@ -253,12 +258,15 @@ + struct hlist_node *node; + unsigned short hnum = ntohs(dport); + int badness = -1; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + read_lock(&udp_hash_lock); +- sk_for_each(sk, node, &udptable[hnum & (UDP_HTABLE_SIZE - 1)]) { ++ sk_for_each(sk, node, &udptable[udp_hashfn(hnum, VEID(ve))]) { + struct inet_sock *inet = inet_sk(sk); + +- if (sk->sk_hash == hnum && !ipv6_only_sock(sk)) { ++ if (sk->sk_hash == hnum && !ipv6_only_sock(sk) && ++ ve_accessible_strict(sk->owner_env, ve)) { + int score = (sk->sk_family == PF_INET ? 1 : 0); + if (inet->rcv_saddr) { + if (inet->rcv_saddr != daddr) +@@ -1047,7 +1055,8 @@ + int dif; + + read_lock(&udp_hash_lock); +- sk = sk_head(&udptable[ntohs(uh->dest) & (UDP_HTABLE_SIZE - 1)]); ++ sk = sk_head(&udptable[udp_hashfn(ntohs(uh->dest), ++ VEID(skb->owner_env))]); + dif = skb->dev->ifindex; + sk = udp_v4_mcast_next(sk, uh->dest, daddr, uh->source, saddr, dif); + if (sk) { +@@ -1464,10 +1473,14 @@ + { + struct sock *sk; + struct udp_iter_state *state = seq->private; ++ struct ve_struct *env; + ++ env = get_exec_env(); + for (state->bucket = 0; state->bucket < UDP_HTABLE_SIZE; ++state->bucket) { + struct hlist_node *node; + sk_for_each(sk, node, state->hashtable + state->bucket) { ++ if (!ve_accessible(sk->owner_env, env)) ++ continue; + if (sk->sk_family == state->family) + goto found; + } +@@ -1484,8 +1497,13 @@ + do { + sk = sk_next(sk); + try_again: +- ; +- } while (sk && sk->sk_family != state->family); ++ if (!sk) ++ break; ++ if (sk->sk_family != state->family) ++ continue; ++ if (ve_accessible(sk->owner_env, get_exec_env())) ++ break; ++ } while (1); + + if (!sk && ++state->bucket < UDP_HTABLE_SIZE) { + sk = sk_head(state->hashtable + state->bucket); +Index: kernel/net/ipv4/xfrm4_policy.c +=================================================================== +--- kernel.orig/net/ipv4/xfrm4_policy.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv4/xfrm4_policy.c 2008-11-24 15:47:46.000000000 +0100 +@@ -295,7 +295,8 @@ + + xdst = (struct xfrm_dst *)dst; + if (xdst->u.rt.idev->dev == dev) { +- struct in_device *loopback_idev = in_dev_get(init_net.loopback_dev); ++ struct in_device *loopback_idev = ++ in_dev_get(dev->nd_net->loopback_dev); + BUG_ON(!loopback_idev); + + do { +Index: kernel/net/ipv6/addrconf.c +=================================================================== +--- kernel.orig/net/ipv6/addrconf.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/addrconf.c 2008-11-24 15:47:46.000000000 +0100 +@@ -44,6 +44,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -101,6 +102,7 @@ + #define TIME_DELTA(a,b) ((unsigned long)((long)(a) - (long)(b))) + + #ifdef CONFIG_SYSCTL ++static struct addrconf_sysctl_table * __addrconf_sysctl_register(struct inet6_dev *idev, char *devname, int ifindex, struct ipv6_devconf *p); + static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf *p); + static void addrconf_sysctl_unregister(struct ipv6_devconf *p); + #endif +@@ -129,8 +131,6 @@ + static void addrconf_join_anycast(struct inet6_ifaddr *ifp); + static void addrconf_leave_anycast(struct inet6_ifaddr *ifp); + +-static int addrconf_ifdown(struct net_device *dev, int how); +- + static void addrconf_dad_start(struct inet6_ifaddr *ifp, u32 flags); + static void addrconf_dad_timer(unsigned long data); + static void addrconf_dad_completed(struct inet6_ifaddr *ifp); +@@ -145,7 +145,7 @@ + + static ATOMIC_NOTIFIER_HEAD(inet6addr_chain); + +-struct ipv6_devconf ipv6_devconf __read_mostly = { ++struct ipv6_devconf global_ipv6_devconf __read_mostly = { + .forwarding = 0, + .hop_limit = IPV6_DEFAULT_HOPLIMIT, + .mtu6 = IPV6_MIN_MTU, +@@ -178,7 +178,7 @@ + .accept_source_route = 0, /* we do not accept RH0 by default. */ + }; + +-static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = { ++struct ipv6_devconf global_ipv6_devconf_dflt __read_mostly = { + .forwarding = 0, + .hop_limit = IPV6_DEFAULT_HOPLIMIT, + .mtu6 = IPV6_MIN_MTU, +@@ -210,6 +210,12 @@ + .accept_source_route = 0, /* we do not accept RH0 by default. */ + }; + ++#ifdef CONFIG_VE ++#define ipv6_devconf_dflt (*(get_exec_env()->_ipv6_devconf_dflt)) ++#else ++#define ipv6_devconf_dflt global_ipv6_devconf_dflt ++#endif ++ + /* IPv6 Wildcard Address and Loopback Address defined by RFC2553 */ + const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT; + const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT; +@@ -375,9 +381,8 @@ + dev->type == ARPHRD_SIT || + #endif + dev->type == ARPHRD_NONE) { +- printk(KERN_INFO +- "%s: Disabled Privacy Extensions\n", +- dev->name); ++ ADBG((KERN_INFO "%s: Disabled Privacy Extensions\n", ++ dev->name)); + ndev->cnf.use_tempaddr = -1; + } else { + in6_dev_hold(ndev); +@@ -458,12 +463,12 @@ + struct inet6_dev *idev; + + read_lock(&dev_base_lock); +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + rcu_read_lock(); + idev = __in6_dev_get(dev); + if (idev) { +- int changed = (!idev->cnf.forwarding) ^ (!ipv6_devconf.forwarding); +- idev->cnf.forwarding = ipv6_devconf.forwarding; ++ int changed = (!idev->cnf.forwarding) ^ (!ve_ipv6_devconf.forwarding); ++ idev->cnf.forwarding = ve_ipv6_devconf.forwarding; + if (changed) + dev_forward_change(idev); + } +@@ -543,7 +548,7 @@ + goto out; + } + +- ifa = kzalloc(sizeof(struct inet6_ifaddr), GFP_ATOMIC); ++ ifa = kzalloc(sizeof(struct inet6_ifaddr), GFP_ATOMIC_UBC); + + if (ifa == NULL) { + ADBG(("ipv6_add_addr: malloc failed\n")); +@@ -936,7 +941,7 @@ + read_lock(&dev_base_lock); + rcu_read_lock(); + +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + struct inet6_dev *idev; + struct inet6_ifaddr *ifa; + +@@ -1231,9 +1236,10 @@ + read_lock_bh(&addrconf_hash_lock); + for(ifp = inet6_addr_lst[hash]; ifp; ifp=ifp->lst_next) { + if (ipv6_addr_equal(&ifp->addr, addr) && +- !(ifp->flags&IFA_F_TENTATIVE)) { ++ !(ifp->flags&IFA_F_TENTATIVE) && ++ ve_accessible_strict(ifp->idev->dev->owner_env, get_exec_env())) { + if (dev == NULL || ifp->idev->dev == dev || +- !(ifp->scope&(IFA_LINK|IFA_HOST) || strict)) ++ !((ifp->scope&(IFA_LINK|IFA_HOST)) || strict)) + break; + } + } +@@ -1251,7 +1257,9 @@ + + for(ifp = inet6_addr_lst[hash]; ifp; ifp=ifp->lst_next) { + if (ipv6_addr_equal(&ifp->addr, addr)) { +- if (dev == NULL || ifp->idev->dev == dev) ++ if ((dev == NULL && ++ ve_accessible_strict(ifp->idev->dev->owner_env, get_exec_env())) ++ || ifp->idev->dev == dev) + break; + } + } +@@ -1265,9 +1273,10 @@ + + read_lock_bh(&addrconf_hash_lock); + for(ifp = inet6_addr_lst[hash]; ifp; ifp=ifp->lst_next) { +- if (ipv6_addr_equal(&ifp->addr, addr)) { ++ if (ipv6_addr_equal(&ifp->addr, addr) && ++ ve_accessible_strict(ifp->idev->dev->owner_env, get_exec_env())) { + if (dev == NULL || ifp->idev->dev == dev || +- !(ifp->scope&(IFA_LINK|IFA_HOST) || strict)) { ++ !((ifp->scope&(IFA_LINK|IFA_HOST)) || strict)) { + in6_ifa_hold(ifp); + break; + } +@@ -1755,7 +1764,7 @@ + + #ifdef CONFIG_IPV6_OPTIMISTIC_DAD + if (in6_dev->cnf.optimistic_dad && +- !ipv6_devconf.forwarding) ++ !ve_ipv6_devconf.forwarding) + addr_flags = IFA_F_OPTIMISTIC; + #endif + +@@ -1875,6 +1884,7 @@ + */ + int addrconf_set_dstaddr(void __user *arg) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct in6_ifreq ireq; + struct net_device *dev; + int err = -EINVAL; +@@ -1885,7 +1895,7 @@ + if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq))) + goto err_exit; + +- dev = __dev_get_by_index(&init_net, ireq.ifr6_ifindex); ++ dev = __dev_get_by_index(net, ireq.ifr6_ifindex); + + err = -ENODEV; + if (dev == NULL) +@@ -1916,7 +1926,7 @@ + + if (err == 0) { + err = -ENOBUFS; +- if ((dev = __dev_get_by_name(&init_net, p.name)) == NULL) ++ if ((dev = __dev_get_by_name(net, p.name)) == NULL) + goto err_exit; + err = dev_open(dev); + } +@@ -1931,7 +1941,7 @@ + /* + * Manual configuration of address on an interface + */ +-static int inet6_addr_add(int ifindex, struct in6_addr *pfx, int plen, ++int inet6_addr_add(int ifindex, struct in6_addr *pfx, int plen, + __u8 ifa_flags, __u32 prefered_lft, __u32 valid_lft) + { + struct inet6_ifaddr *ifp; +@@ -1946,7 +1956,7 @@ + if (!valid_lft || prefered_lft > valid_lft) + return -EINVAL; + +- if ((dev = __dev_get_by_index(&init_net, ifindex)) == NULL) ++ if ((dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex)) == NULL) + return -ENODEV; + + if ((idev = addrconf_add_dev(dev)) == NULL) +@@ -1990,6 +2000,7 @@ + + return PTR_ERR(ifp); + } ++EXPORT_SYMBOL_GPL(inet6_addr_add); + + static int inet6_addr_del(int ifindex, struct in6_addr *pfx, int plen) + { +@@ -1997,7 +2008,7 @@ + struct inet6_dev *idev; + struct net_device *dev; + +- if ((dev = __dev_get_by_index(&init_net, ifindex)) == NULL) ++ if ((dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex)) == NULL) + return -ENODEV; + + if ((idev = __in6_dev_get(dev)) == NULL) +@@ -2030,7 +2041,7 @@ + struct in6_ifreq ireq; + int err; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_VE_NET_ADMIN)) + return -EPERM; + + if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq))) +@@ -2048,7 +2059,7 @@ + struct in6_ifreq ireq; + int err; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_VE_NET_ADMIN)) + return -EPERM; + + if (copy_from_user(&ireq, arg, sizeof(struct in6_ifreq))) +@@ -2092,7 +2103,7 @@ + return; + } + +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + struct in_device * in_dev = __in_dev_get_rtnl(dev); + if (in_dev && (dev->flags & IFF_UP)) { + struct in_ifaddr * ifa; +@@ -2162,7 +2173,7 @@ + + #ifdef CONFIG_IPV6_OPTIMISTIC_DAD + if (idev->cnf.optimistic_dad && +- !ipv6_devconf.forwarding) ++ !ve_ipv6_devconf.forwarding) + addr_flags |= IFA_F_OPTIMISTIC; + #endif + +@@ -2244,16 +2255,17 @@ + + static void ip6_tnl_add_linklocal(struct inet6_dev *idev) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct net_device *link_dev; + + /* first try to inherit the link-local address from the link device */ + if (idev->dev->iflink && +- (link_dev = __dev_get_by_index(&init_net, idev->dev->iflink))) { ++ (link_dev = __dev_get_by_index(net, idev->dev->iflink))) { + if (!ipv6_inherit_linklocal(idev, link_dev)) + return; + } + /* then try to inherit it from any device */ +- for_each_netdev(&init_net, link_dev) { ++ for_each_netdev(net, link_dev) { + if (!ipv6_inherit_linklocal(idev, link_dev)) + return; + } +@@ -2286,9 +2298,6 @@ + int run_pending = 0; + int err; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + switch(event) { + case NETDEV_REGISTER: + if (!idev && dev->mtu >= IPV6_MIN_MTU) { +@@ -2431,7 +2440,7 @@ + .priority = 0 + }; + +-static int addrconf_ifdown(struct net_device *dev, int how) ++int addrconf_ifdown(struct net_device *dev, int how) + { + struct inet6_dev *idev; + struct inet6_ifaddr *ifa, **bifa; +@@ -2546,10 +2555,14 @@ + } + return 0; + } ++EXPORT_SYMBOL_GPL(addrconf_ifdown); + + static void addrconf_rs_timer(unsigned long data) + { + struct inet6_ifaddr *ifp = (struct inet6_ifaddr *) data; ++ struct ve_struct *old_env; ++ ++ old_env = set_exec_env(ifp->idev->dev->owner_env); + + if (ifp->idev->cnf.forwarding) + goto out; +@@ -2588,6 +2601,7 @@ + + out: + in6_ifa_put(ifp); ++ (void)set_exec_env(old_env); + } + + /* +@@ -2664,6 +2678,9 @@ + struct inet6_dev *idev = ifp->idev; + struct in6_addr unspec; + struct in6_addr mcaddr; ++ struct ve_struct *old_env; ++ ++ old_env = set_exec_env(ifp->idev->dev->owner_env); + + read_lock_bh(&idev->lock); + if (idev->dead) { +@@ -2696,6 +2713,7 @@ + ndisc_send_ns(ifp->idev->dev, NULL, &ifp->addr, &mcaddr, &unspec); + out: + in6_ifa_put(ifp); ++ (void)set_exec_env(old_env); + } + + static void addrconf_dad_completed(struct inet6_ifaddr *ifp) +@@ -2763,8 +2781,11 @@ + + for (state->bucket = 0; state->bucket < IN6_ADDR_HSIZE; ++state->bucket) { + ifa = inet6_addr_lst[state->bucket]; +- if (ifa) +- break; ++ while (ifa) { ++ if (ve_accessible_strict(ifa->idev->dev->owner_env, get_exec_env())) ++ return ifa; ++ ifa = ifa->lst_next; ++ } + } + return ifa; + } +@@ -2775,6 +2796,11 @@ + + ifa = ifa->lst_next; + try_again: ++ while (ifa) { ++ if (ve_accessible_strict(ifa->idev->dev->owner_env, get_exec_env())) ++ break; ++ ifa = ifa->lst_next; ++ } + if (!ifa && ++state->bucket < IN6_ADDR_HSIZE) { + ifa = inet6_addr_lst[state->bucket]; + goto try_again; +@@ -2889,6 +2915,7 @@ + struct inet6_ifaddr *ifp; + unsigned long now, next; + int i; ++ struct ve_struct *old_env; + + spin_lock_bh(&addrconf_verify_lock); + now = jiffies; +@@ -2909,6 +2936,8 @@ + if (ifp->flags & IFA_F_PERMANENT) + continue; + ++ old_env = set_exec_env(ifp->idev->dev->owner_env); ++ + spin_lock(&ifp->lock); + age = (now - ifp->tstamp) / HZ; + +@@ -2924,9 +2953,11 @@ + in6_ifa_hold(ifp); + read_unlock(&addrconf_hash_lock); + ipv6_del_addr(ifp); ++ (void)set_exec_env(old_env); + goto restart; + } else if (ifp->prefered_lft == INFINITY_LIFE_TIME) { + spin_unlock(&ifp->lock); ++ set_exec_env(old_env); + continue; + } else if (age >= ifp->prefered_lft) { + /* jiffies - ifp->tsamp > age >= ifp->prefered_lft */ +@@ -2948,6 +2979,7 @@ + + ipv6_ifa_notify(0, ifp); + in6_ifa_put(ifp); ++ (void)set_exec_env(old_env); + goto restart; + } + #ifdef CONFIG_IPV6_PRIVACY +@@ -2969,6 +3001,7 @@ + ipv6_create_tempaddr(ifpub, ifp); + in6_ifa_put(ifpub); + in6_ifa_put(ifp); ++ (void)set_exec_env(old_env); + goto restart; + } + } else if (time_before(ifp->tstamp + ifp->prefered_lft * HZ - regen_advance * HZ, next)) +@@ -2981,6 +3014,7 @@ + next = ifp->tstamp + ifp->prefered_lft * HZ; + spin_unlock(&ifp->lock); + } ++ (void)set_exec_env(old_env); + } + read_unlock(&addrconf_hash_lock); + } +@@ -3102,7 +3136,7 @@ + valid_lft = INFINITY_LIFE_TIME; + } + +- dev = __dev_get_by_index(&init_net, ifm->ifa_index); ++ dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifm->ifa_index); + if (dev == NULL) + return -ENODEV; + +@@ -3286,7 +3320,7 @@ + s_ip_idx = ip_idx = cb->args[1]; + + idx = 0; +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + if (idx < s_idx) + goto cont; + if (idx > s_idx) +@@ -3395,7 +3429,7 @@ + + ifm = nlmsg_data(nlh); + if (ifm->ifa_index) +- dev = __dev_get_by_index(&init_net, ifm->ifa_index); ++ dev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifm->ifa_index); + + if ((ifa = ipv6_get_ifaddr(addr, dev, 1)) == NULL) { + err = -EADDRNOTAVAIL; +@@ -3607,7 +3641,7 @@ + + read_lock(&dev_base_lock); + idx = 0; +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) { + if (idx < s_idx) + goto cont; + if ((idev = in6_dev_get(dev)) == NULL) +@@ -3766,7 +3800,7 @@ + ret = proc_dointvec(ctl, write, filp, buffer, lenp, ppos); + + if (write && valp != &ipv6_devconf_dflt.forwarding) { +- if (valp != &ipv6_devconf.forwarding) { ++ if (valp != &ve_ipv6_devconf.forwarding) { + if ((!*valp) ^ (!val)) { + struct inet6_dev *idev = (struct inet6_dev *)ctl->extra1; + if (idev == NULL) +@@ -3774,7 +3808,7 @@ + dev_forward_change(idev); + } + } else { +- ipv6_devconf_dflt.forwarding = ipv6_devconf.forwarding; ++ ipv6_devconf_dflt.forwarding = ve_ipv6_devconf.forwarding; + addrconf_forward_change(); + } + if (*valp) +@@ -3816,7 +3850,7 @@ + } + + if (valp != &ipv6_devconf_dflt.forwarding) { +- if (valp != &ipv6_devconf.forwarding) { ++ if (valp != &ve_ipv6_devconf.forwarding) { + struct inet6_dev *idev = (struct inet6_dev *)table->extra1; + int changed; + if (unlikely(idev == NULL)) +@@ -3852,7 +3886,7 @@ + { + .ctl_name = NET_IPV6_FORWARDING, + .procname = "forwarding", +- .data = &ipv6_devconf.forwarding, ++ .data = &global_ipv6_devconf.forwarding, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &addrconf_sysctl_forward, +@@ -3861,7 +3895,7 @@ + { + .ctl_name = NET_IPV6_HOP_LIMIT, + .procname = "hop_limit", +- .data = &ipv6_devconf.hop_limit, ++ .data = &global_ipv6_devconf.hop_limit, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec, +@@ -3869,7 +3903,7 @@ + { + .ctl_name = NET_IPV6_MTU, + .procname = "mtu", +- .data = &ipv6_devconf.mtu6, ++ .data = &global_ipv6_devconf.mtu6, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3877,7 +3911,7 @@ + { + .ctl_name = NET_IPV6_ACCEPT_RA, + .procname = "accept_ra", +- .data = &ipv6_devconf.accept_ra, ++ .data = &global_ipv6_devconf.accept_ra, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3885,7 +3919,7 @@ + { + .ctl_name = NET_IPV6_ACCEPT_REDIRECTS, + .procname = "accept_redirects", +- .data = &ipv6_devconf.accept_redirects, ++ .data = &global_ipv6_devconf.accept_redirects, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3893,7 +3927,7 @@ + { + .ctl_name = NET_IPV6_AUTOCONF, + .procname = "autoconf", +- .data = &ipv6_devconf.autoconf, ++ .data = &global_ipv6_devconf.autoconf, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3901,7 +3935,7 @@ + { + .ctl_name = NET_IPV6_DAD_TRANSMITS, + .procname = "dad_transmits", +- .data = &ipv6_devconf.dad_transmits, ++ .data = &global_ipv6_devconf.dad_transmits, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3909,7 +3943,7 @@ + { + .ctl_name = NET_IPV6_RTR_SOLICITS, + .procname = "router_solicitations", +- .data = &ipv6_devconf.rtr_solicits, ++ .data = &global_ipv6_devconf.rtr_solicits, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3917,7 +3951,7 @@ + { + .ctl_name = NET_IPV6_RTR_SOLICIT_INTERVAL, + .procname = "router_solicitation_interval", +- .data = &ipv6_devconf.rtr_solicit_interval, ++ .data = &global_ipv6_devconf.rtr_solicit_interval, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec_jiffies, +@@ -3926,7 +3960,7 @@ + { + .ctl_name = NET_IPV6_RTR_SOLICIT_DELAY, + .procname = "router_solicitation_delay", +- .data = &ipv6_devconf.rtr_solicit_delay, ++ .data = &global_ipv6_devconf.rtr_solicit_delay, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec_jiffies, +@@ -3935,7 +3969,7 @@ + { + .ctl_name = NET_IPV6_FORCE_MLD_VERSION, + .procname = "force_mld_version", +- .data = &ipv6_devconf.force_mld_version, ++ .data = &global_ipv6_devconf.force_mld_version, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3944,7 +3978,7 @@ + { + .ctl_name = NET_IPV6_USE_TEMPADDR, + .procname = "use_tempaddr", +- .data = &ipv6_devconf.use_tempaddr, ++ .data = &global_ipv6_devconf.use_tempaddr, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3952,7 +3986,7 @@ + { + .ctl_name = NET_IPV6_TEMP_VALID_LFT, + .procname = "temp_valid_lft", +- .data = &ipv6_devconf.temp_valid_lft, ++ .data = &global_ipv6_devconf.temp_valid_lft, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3960,7 +3994,7 @@ + { + .ctl_name = NET_IPV6_TEMP_PREFERED_LFT, + .procname = "temp_prefered_lft", +- .data = &ipv6_devconf.temp_prefered_lft, ++ .data = &global_ipv6_devconf.temp_prefered_lft, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3968,7 +4002,7 @@ + { + .ctl_name = NET_IPV6_REGEN_MAX_RETRY, + .procname = "regen_max_retry", +- .data = &ipv6_devconf.regen_max_retry, ++ .data = &global_ipv6_devconf.regen_max_retry, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3976,7 +4010,7 @@ + { + .ctl_name = NET_IPV6_MAX_DESYNC_FACTOR, + .procname = "max_desync_factor", +- .data = &ipv6_devconf.max_desync_factor, ++ .data = &global_ipv6_devconf.max_desync_factor, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3985,7 +4019,7 @@ + { + .ctl_name = NET_IPV6_MAX_ADDRESSES, + .procname = "max_addresses", +- .data = &ipv6_devconf.max_addresses, ++ .data = &global_ipv6_devconf.max_addresses, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -3993,7 +4027,7 @@ + { + .ctl_name = NET_IPV6_ACCEPT_RA_DEFRTR, + .procname = "accept_ra_defrtr", +- .data = &ipv6_devconf.accept_ra_defrtr, ++ .data = &global_ipv6_devconf.accept_ra_defrtr, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -4001,7 +4035,7 @@ + { + .ctl_name = NET_IPV6_ACCEPT_RA_PINFO, + .procname = "accept_ra_pinfo", +- .data = &ipv6_devconf.accept_ra_pinfo, ++ .data = &global_ipv6_devconf.accept_ra_pinfo, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -4010,7 +4044,7 @@ + { + .ctl_name = NET_IPV6_ACCEPT_RA_RTR_PREF, + .procname = "accept_ra_rtr_pref", +- .data = &ipv6_devconf.accept_ra_rtr_pref, ++ .data = &global_ipv6_devconf.accept_ra_rtr_pref, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -4018,7 +4052,7 @@ + { + .ctl_name = NET_IPV6_RTR_PROBE_INTERVAL, + .procname = "router_probe_interval", +- .data = &ipv6_devconf.rtr_probe_interval, ++ .data = &global_ipv6_devconf.rtr_probe_interval, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec_jiffies, +@@ -4028,7 +4062,7 @@ + { + .ctl_name = NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN, + .procname = "accept_ra_rt_info_max_plen", +- .data = &ipv6_devconf.accept_ra_rt_info_max_plen, ++ .data = &global_ipv6_devconf.accept_ra_rt_info_max_plen, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -4038,7 +4072,7 @@ + { + .ctl_name = NET_IPV6_PROXY_NDP, + .procname = "proxy_ndp", +- .data = &ipv6_devconf.proxy_ndp, ++ .data = &global_ipv6_devconf.proxy_ndp, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -4046,7 +4080,7 @@ + { + .ctl_name = NET_IPV6_ACCEPT_SOURCE_ROUTE, + .procname = "accept_source_route", +- .data = &ipv6_devconf.accept_source_route, ++ .data = &global_ipv6_devconf.accept_source_route, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -4055,7 +4089,7 @@ + { + .ctl_name = CTL_UNNUMBERED, + .procname = "optimistic_dad", +- .data = &ipv6_devconf.optimistic_dad, ++ .data = &global_ipv6_devconf.optimistic_dad, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = &proc_dointvec, +@@ -4112,27 +4146,21 @@ + }, + }; + +-static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf *p) ++static struct addrconf_sysctl_table *__addrconf_sysctl_register( ++ struct inet6_dev *idev, char *dev_name, ++ int ifindex, struct ipv6_devconf *p) + { + int i; +- struct net_device *dev = idev ? idev->dev : NULL; + struct addrconf_sysctl_table *t; +- char *dev_name = NULL; + + t = kmemdup(&addrconf_sysctl, sizeof(*t), GFP_KERNEL); + if (t == NULL) +- return; ++ return NULL; ++ + for (i=0; t->addrconf_vars[i].data; i++) { +- t->addrconf_vars[i].data += (char*)p - (char*)&ipv6_devconf; ++ t->addrconf_vars[i].data += (char*)p - (char*)&global_ipv6_devconf; + t->addrconf_vars[i].extra1 = idev; /* embedded; no ref */ + } +- if (dev) { +- dev_name = dev->name; +- t->addrconf_dev[0].ctl_name = dev->ifindex; +- } else { +- dev_name = "default"; +- t->addrconf_dev[0].ctl_name = NET_PROTO_CONF_DEFAULT; +- } + + /* + * Make a copy of dev_name, because '.procname' is regarded as const +@@ -4143,6 +4171,7 @@ + if (!dev_name) + goto free; + ++ t->addrconf_dev[0].ctl_name = ifindex; + t->addrconf_dev[0].procname = dev_name; + + t->addrconf_dev[0].child = t->addrconf_vars; +@@ -4153,9 +4182,7 @@ + t->sysctl_header = register_sysctl_table(t->addrconf_root_dir); + if (t->sysctl_header == NULL) + goto free_procname; +- else +- p->sysctl = t; +- return; ++ return t; + + /* error path */ + free_procname: +@@ -4163,7 +4190,26 @@ + free: + kfree(t); + +- return; ++ return NULL; ++} ++ ++static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf *p) ++{ ++ struct net_device *dev; ++ char *dev_name; ++ int ifindex; ++ ++ dev = idev ? idev->dev : NULL; ++ ++ if (dev) { ++ dev_name = dev->name; ++ ifindex = dev->ifindex; ++ } else { ++ dev_name = "default"; ++ ifindex = NET_PROTO_CONF_DEFAULT; ++ } ++ ++ p->sysctl = __addrconf_sysctl_register(idev, dev_name, ifindex, p); + } + + static void addrconf_sysctl_unregister(struct ipv6_devconf *p) +@@ -4177,9 +4223,64 @@ + } + } + ++#ifdef CONFIG_VE ++int addrconf_sysctl_init(struct ve_struct *ve) ++{ ++ int err = 0; ++ struct ipv6_devconf *conf, *conf_def; ++ ++ err = -ENOMEM; + +-#endif ++ conf = kmalloc(sizeof(*conf), GFP_KERNEL); ++ if (!conf) ++ goto err1; ++ ++ memcpy(conf, &global_ipv6_devconf, sizeof(*conf)); ++ conf->sysctl = __addrconf_sysctl_register(NULL, "all", ++ NET_PROTO_CONF_ALL, conf); ++ if (!conf->sysctl) ++ goto err2; ++ ++ conf_def = kmalloc(sizeof(*conf_def), GFP_KERNEL); ++ if (!conf_def) ++ goto err3; ++ ++ memcpy(conf_def, &global_ipv6_devconf_dflt, sizeof(*conf_def)); ++ conf_def->sysctl = __addrconf_sysctl_register(NULL, "default", ++ NET_PROTO_CONF_DEFAULT, conf_def); ++ if (!conf_def->sysctl) ++ goto err4; ++ ++ ve->_ipv6_devconf = conf; ++ ve->_ipv6_devconf_dflt = conf_def; ++ return 0; ++ ++err4: ++ kfree(conf_def); ++err3: ++ addrconf_sysctl_unregister(conf); ++err2: ++ kfree(conf); ++err1: ++ return err; ++} ++EXPORT_SYMBOL(addrconf_sysctl_init); + ++void addrconf_sysctl_fini(struct ve_struct *ve) ++{ ++ addrconf_sysctl_unregister(ve->_ipv6_devconf); ++ addrconf_sysctl_unregister(ve->_ipv6_devconf_dflt); ++} ++EXPORT_SYMBOL(addrconf_sysctl_fini); ++ ++void addrconf_sysctl_free(struct ve_struct *ve) ++{ ++ kfree(ve->_ipv6_devconf); ++ kfree(ve->_ipv6_devconf_dflt); ++} ++EXPORT_SYMBOL(addrconf_sysctl_free); ++#endif /* CONFIG_VE */ ++#endif /* CONFIG_SYSCTL */ + /* + * Device notifier + */ +@@ -4206,6 +4307,11 @@ + { + int err = 0; + ++#ifdef CONFIG_VE ++ get_ve0()->_ipv6_devconf = &global_ipv6_devconf; ++ get_ve0()->_ipv6_devconf_dflt = &global_ipv6_devconf_dflt; ++#endif ++ + /* The addrconf netdev notifier requires that loopback_dev + * has it's ipv6 private information allocated and setup + * before it can bring up and give link-local addresses +@@ -4258,7 +4364,7 @@ + #ifdef CONFIG_SYSCTL + addrconf_sysctl.sysctl_header = + register_sysctl_table(addrconf_sysctl.addrconf_root_dir); +- addrconf_sysctl_register(NULL, &ipv6_devconf_dflt); ++ addrconf_sysctl_register(NULL, &global_ipv6_devconf_dflt); + #endif + + return 0; +@@ -4277,8 +4383,8 @@ + unregister_netdevice_notifier(&ipv6_dev_notf); + + #ifdef CONFIG_SYSCTL +- addrconf_sysctl_unregister(&ipv6_devconf_dflt); +- addrconf_sysctl_unregister(&ipv6_devconf); ++ addrconf_sysctl_unregister(&global_ipv6_devconf_dflt); ++ addrconf_sysctl_unregister(&global_ipv6_devconf); + #endif + + rtnl_lock(); +Index: kernel/net/ipv6/af_inet6.c +=================================================================== +--- kernel.orig/net/ipv6/af_inet6.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/af_inet6.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -58,6 +59,10 @@ + #ifdef CONFIG_IPV6_TUNNEL + #include + #endif ++#ifdef CONFIG_IPV6_MIP6 ++#include ++#endif ++#include + + #include + #include +@@ -94,9 +99,6 @@ + int try_loading_module = 0; + int err; + +- if (net != &init_net) +- return -EAFNOSUPPORT; +- + if (sock->type != SOCK_RAW && + sock->type != SOCK_DGRAM && + !inet_ehash_secret) +@@ -149,6 +151,10 @@ + goto out_rcu_unlock; + } + ++ err = vz_security_protocol_check(answer->protocol); ++ if (err < 0) ++ goto out_rcu_unlock; ++ + err = -EPERM; + if (answer->capability > 0 && !capable(answer->capability)) + goto out_rcu_unlock; +@@ -166,6 +172,13 @@ + if (sk == NULL) + goto out; + ++ err = -ENOBUFS; ++ if (ub_sock_charge(sk, PF_INET6, sock->type)) ++ goto out_sk_free; ++ /* if charge was successful, sock_init_data() MUST be called to ++ * set sk->sk_type. otherwise sk will be uncharged to wrong resource ++ */ ++ + sock_init_data(sock, sk); + + err = 0; +@@ -240,6 +253,9 @@ + out_rcu_unlock: + rcu_read_unlock(); + goto out; ++out_sk_free: ++ sk_free(sk); ++ return err; + } + + +@@ -302,7 +318,7 @@ + err = -EINVAL; + goto out; + } +- dev = dev_get_by_index(&init_net, sk->sk_bound_dev_if); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, sk->sk_bound_dev_if); + if (!dev) { + err = -ENODEV; + goto out; +@@ -713,31 +729,31 @@ + + static int __init init_ipv6_mibs(void) + { +- if (snmp_mib_init((void **)ipv6_statistics, sizeof (struct ipstats_mib), ++ if (snmp_mib_init((void **)ve_ipv6_statistics, sizeof (struct ipstats_mib), + __alignof__(struct ipstats_mib)) < 0) + goto err_ip_mib; +- if (snmp_mib_init((void **)icmpv6_statistics, sizeof (struct icmpv6_mib), ++ if (snmp_mib_init((void **)ve_icmpv6_statistics, sizeof (struct icmpv6_mib), + __alignof__(struct icmpv6_mib)) < 0) + goto err_icmp_mib; +- if (snmp_mib_init((void **)icmpv6msg_statistics, ++ if (snmp_mib_init((void **)ve_icmpv6msg_statistics, + sizeof (struct icmpv6msg_mib), __alignof__(struct icmpv6_mib)) < 0) + goto err_icmpmsg_mib; +- if (snmp_mib_init((void **)udp_stats_in6, sizeof (struct udp_mib), ++ if (snmp_mib_init((void **)ve_udp_stats_in6, sizeof (struct udp_mib), + __alignof__(struct udp_mib)) < 0) + goto err_udp_mib; +- if (snmp_mib_init((void **)udplite_stats_in6, sizeof (struct udp_mib), ++ if (snmp_mib_init((void **)ve_udplite_stats_in6, sizeof (struct udp_mib), + __alignof__(struct udp_mib)) < 0) + goto err_udplite_mib; + return 0; + + err_udplite_mib: +- snmp_mib_free((void **)udp_stats_in6); ++ snmp_mib_free((void **)ve_udp_stats_in6); + err_udp_mib: +- snmp_mib_free((void **)icmpv6msg_statistics); ++ snmp_mib_free((void **)ve_icmpv6msg_statistics); + err_icmpmsg_mib: +- snmp_mib_free((void **)icmpv6_statistics); ++ snmp_mib_free((void **)ve_icmpv6_statistics); + err_icmp_mib: +- snmp_mib_free((void **)ipv6_statistics); ++ snmp_mib_free((void **)ve_ipv6_statistics); + err_ip_mib: + return -ENOMEM; + +@@ -745,11 +761,11 @@ + + static void cleanup_ipv6_mibs(void) + { +- snmp_mib_free((void **)ipv6_statistics); +- snmp_mib_free((void **)icmpv6_statistics); +- snmp_mib_free((void **)icmpv6msg_statistics); +- snmp_mib_free((void **)udp_stats_in6); +- snmp_mib_free((void **)udplite_stats_in6); ++ snmp_mib_free((void **)ve_ipv6_statistics); ++ snmp_mib_free((void **)ve_icmpv6_statistics); ++ snmp_mib_free((void **)ve_icmpv6msg_statistics); ++ snmp_mib_free((void **)ve_udp_stats_in6); ++ snmp_mib_free((void **)ve_udplite_stats_in6); + } + + static int __init inet6_init(void) +Index: kernel/net/ipv6/anycast.c +=================================================================== +--- kernel.orig/net/ipv6/anycast.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/anycast.c 2008-11-24 15:47:46.000000000 +0100 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -83,7 +84,7 @@ + struct net_device *dev = NULL; + struct inet6_dev *idev; + struct ipv6_ac_socklist *pac; +- int ishost = !ipv6_devconf.forwarding; ++ int ishost = !ve_ipv6_devconf.forwarding; + int err = 0; + + if (!capable(CAP_NET_ADMIN)) +@@ -113,10 +114,10 @@ + } else { + /* router, no matching interface: just pick one */ + +- dev = dev_get_by_flags(&init_net, IFF_UP, IFF_UP|IFF_LOOPBACK); ++ dev = dev_get_by_flags(get_exec_env()->ve_ns->net_ns, IFF_UP, IFF_UP|IFF_LOOPBACK); + } + } else +- dev = dev_get_by_index(&init_net, ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); + + if (dev == NULL) { + err = -ENODEV; +@@ -197,7 +198,7 @@ + + write_unlock_bh(&ipv6_sk_ac_lock); + +- dev = dev_get_by_index(&init_net, pac->acl_ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, pac->acl_ifindex); + if (dev) { + ipv6_dev_ac_dec(dev, &pac->acl_addr); + dev_put(dev); +@@ -225,7 +226,7 @@ + if (pac->acl_ifindex != prev_index) { + if (dev) + dev_put(dev); +- dev = dev_get_by_index(&init_net, pac->acl_ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, pac->acl_ifindex); + prev_index = pac->acl_ifindex; + } + if (dev) +@@ -430,7 +431,7 @@ + if (dev) + return ipv6_chk_acast_dev(dev, addr); + read_lock(&dev_base_lock); +- for_each_netdev(&init_net, dev) ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, dev) + if (ipv6_chk_acast_dev(dev, addr)) { + found = 1; + break; +@@ -454,8 +455,9 @@ + struct ac6_iter_state *state = ac6_seq_private(seq); + + state->idev = NULL; +- for_each_netdev(&init_net, state->dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { + struct inet6_dev *idev; ++ + idev = in6_dev_get(state->dev); + if (!idev) + continue; +@@ -486,6 +488,8 @@ + state->idev = NULL; + break; + } ++ if (unlikely(!ve_accessible_strict(state->dev->owner_env, get_exec_env()))) ++ continue; + state->idev = in6_dev_get(state->dev); + if (!state->idev) + continue; +Index: kernel/net/ipv6/datagram.c +=================================================================== +--- kernel.orig/net/ipv6/datagram.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/datagram.c 2008-11-24 15:47:46.000000000 +0100 +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -544,7 +545,7 @@ + if (!src_info->ipi6_ifindex) + return -EINVAL; + else { +- dev = dev_get_by_index(&init_net, src_info->ipi6_ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, src_info->ipi6_ifindex); + if (!dev) + return -ENODEV; + } +Index: kernel/net/ipv6/exthdrs.c +=================================================================== +--- kernel.orig/net/ipv6/exthdrs.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/exthdrs.c 2008-11-24 15:47:46.000000000 +0100 +@@ -352,7 +352,7 @@ + int n, i; + struct ipv6_rt_hdr *hdr; + struct rt0_hdr *rthdr; +- int accept_source_route = ipv6_devconf.accept_source_route; ++ int accept_source_route = ve_ipv6_devconf.accept_source_route; + + idev = in6_dev_get(skb->dev); + if (idev) { +Index: kernel/net/ipv6/inet6_connection_sock.c +=================================================================== +--- kernel.orig/net/ipv6/inet6_connection_sock.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/inet6_connection_sock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -25,6 +25,8 @@ + #include + #include + #include ++#include ++#include + + int inet6_csk_bind_conflict(const struct sock *sk, + const struct inet_bind_bucket *tb) +@@ -35,6 +37,7 @@ + /* We must walk the whole port owner list in this case. -DaveM */ + sk_for_each_bound(sk2, node, &tb->owners) { + if (sk != sk2 && ++ ve_accessible_strict(sk->owner_env, sk2->owner_env) && + (!sk->sk_bound_dev_if || + !sk2->sk_bound_dev_if || + sk->sk_bound_dev_if == sk2->sk_bound_dev_if) && +Index: kernel/net/ipv6/inet6_hashtables.c +=================================================================== +--- kernel.orig/net/ipv6/inet6_hashtables.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/inet6_hashtables.c 2008-11-24 15:47:46.000000000 +0100 +@@ -67,7 +67,8 @@ + /* Optimize here for direct hit, only listening connections can + * have wildcards anyways. + */ +- unsigned int hash = inet6_ehashfn(daddr, hnum, saddr, sport); ++ struct ve_struct *env = get_exec_env(); ++ unsigned int hash = inet6_ehashfn(daddr, hnum, saddr, sport, VEID(env)); + struct inet_ehash_bucket *head = inet_ehash_bucket(hashinfo, hash); + rwlock_t *lock = inet_ehash_lockp(hashinfo, hash); + +@@ -75,7 +76,7 @@ + read_lock(lock); + sk_for_each(sk, node, &head->chain) { + /* For IPV6 do the cheaper port and family tests first. */ +- if (INET6_MATCH(sk, hash, saddr, daddr, ports, dif)) ++ if (INET6_MATCH(sk, hash, saddr, daddr, ports, dif, env)) + goto hit; /* You sunk my battleship! */ + } + /* Must check for a TIME_WAIT'er before going to listener hash. */ +@@ -88,6 +89,7 @@ + + if (ipv6_addr_equal(&tw6->tw_v6_daddr, saddr) && + ipv6_addr_equal(&tw6->tw_v6_rcv_saddr, daddr) && ++ ve_accessible_strict(tw->tw_owner_env, VEID(env)) && + (!sk->sk_bound_dev_if || sk->sk_bound_dev_if == dif)) + goto hit; + } +@@ -110,9 +112,15 @@ + const struct hlist_node *node; + struct sock *result = NULL; + int score, hiscore = 0; ++ struct ve_struct *env; ++ ++ env = get_exec_env(); + + read_lock(&hashinfo->lhash_lock); +- sk_for_each(sk, node, &hashinfo->listening_hash[inet_lhashfn(hnum)]) { ++ sk_for_each(sk, node, &hashinfo->listening_hash[ ++ inet_lhashfn(hnum, VEID(env))]) { ++ if (!ve_accessible_strict(sk->owner_env, env)) ++ continue; + if (inet_sk(sk)->num == hnum && sk->sk_family == PF_INET6) { + const struct ipv6_pinfo *np = inet6_sk(sk); + +@@ -163,7 +171,8 @@ + + static int __inet6_check_established(struct inet_timewait_death_row *death_row, + struct sock *sk, const __u16 lport, +- struct inet_timewait_sock **twp) ++ struct inet_timewait_sock **twp, ++ struct ve_struct *ve) + { + struct inet_hashinfo *hinfo = death_row->hashinfo; + struct inet_sock *inet = inet_sk(sk); +@@ -173,7 +182,7 @@ + const int dif = sk->sk_bound_dev_if; + const __portpair ports = INET_COMBINED_PORTS(inet->dport, lport); + const unsigned int hash = inet6_ehashfn(daddr, lport, saddr, +- inet->dport); ++ inet->dport, VEID(ve)); + struct inet_ehash_bucket *head = inet_ehash_bucket(hinfo, hash); + rwlock_t *lock = inet_ehash_lockp(hinfo, hash); + struct sock *sk2; +@@ -193,7 +202,8 @@ + sk2->sk_family == PF_INET6 && + ipv6_addr_equal(&tw6->tw_v6_daddr, saddr) && + ipv6_addr_equal(&tw6->tw_v6_rcv_saddr, daddr) && +- (!sk2->sk_bound_dev_if || sk2->sk_bound_dev_if == dif)) { ++ (!sk2->sk_bound_dev_if || sk2->sk_bound_dev_if == dif) && ++ ve_accessible_strict(tw->tw_owner_env, VEID(ve))) { + if (twsk_unique(sk, sk2, twp)) + goto unique; + else +@@ -204,7 +214,7 @@ + + /* And established part... */ + sk_for_each(sk2, node, &head->chain) { +- if (INET6_MATCH(sk2, hash, saddr, daddr, ports, dif)) ++ if (INET6_MATCH(sk2, hash, saddr, daddr, ports, dif, ve)) + goto not_unique; + } + +@@ -253,7 +263,9 @@ + struct inet_bind_hashbucket *head; + struct inet_bind_bucket *tb; + int ret; ++ struct ve_struct *ve; + ++ ve = sk->owner_env; + if (snum == 0) { + int i, port, low, high, remaining; + static u32 hint; +@@ -267,7 +279,7 @@ + local_bh_disable(); + for (i = 1; i <= remaining; i++) { + port = low + (i + offset) % remaining; +- head = &hinfo->bhash[inet_bhashfn(port, hinfo->bhash_size)]; ++ head = &hinfo->bhash[inet_bhashfn(port, hinfo->bhash_size, VEID(ve))]; + spin_lock(&head->lock); + + /* Does not bother with rcv_saddr checks, +@@ -275,20 +287,21 @@ + * unique enough. + */ + inet_bind_bucket_for_each(tb, node, &head->chain) { +- if (tb->port == port) { ++ if (tb->port == port && ++ ve_accessible_strict(tb->owner_env, ve)) { + BUG_TRAP(!hlist_empty(&tb->owners)); + if (tb->fastreuse >= 0) + goto next_port; + if (!__inet6_check_established(death_row, + sk, port, +- &tw)) ++ &tw, ve)) + goto ok; + goto next_port; + } + } + + tb = inet_bind_bucket_create(hinfo->bind_bucket_cachep, +- head, port); ++ head, port, ve); + if (!tb) { + spin_unlock(&head->lock); + break; +@@ -323,7 +336,7 @@ + goto out; + } + +- head = &hinfo->bhash[inet_bhashfn(snum, hinfo->bhash_size)]; ++ head = &hinfo->bhash[inet_bhashfn(snum, hinfo->bhash_size, VEID(ve))]; + tb = inet_csk(sk)->icsk_bind_hash; + spin_lock_bh(&head->lock); + +@@ -334,7 +347,7 @@ + } else { + spin_unlock(&head->lock); + /* No definite answer... Walk to established hash table */ +- ret = __inet6_check_established(death_row, sk, snum, NULL); ++ ret = __inet6_check_established(death_row, sk, snum, NULL, ve); + out: + local_bh_enable(); + return ret; +Index: kernel/net/ipv6/ip6_fib.c +=================================================================== +--- kernel.orig/net/ipv6/ip6_fib.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/ip6_fib.c 2008-11-24 15:47:46.000000000 +0100 +@@ -174,12 +174,28 @@ + }, + }; + ++#ifdef CONFIG_VE ++static inline void prepare_fib6_table(void) ++{ ++ get_ve0()->_fib6_table = &fib6_main_tbl; ++} ++ ++#define fib6_main_tbl (*(get_exec_env()->_fib6_table)) ++#else ++#define prepare_fib6_table() do { } while (0) ++#endif ++ + #ifdef CONFIG_IPV6_MULTIPLE_TABLES + #define FIB_TABLE_HASHSZ 256 + #else + #define FIB_TABLE_HASHSZ 1 + #endif ++ ++#ifdef CONFIG_VE ++#define fib_table_hash (get_exec_env()->_fib6_table_hash) ++#else + static struct hlist_head fib_table_hash[FIB_TABLE_HASHSZ]; ++#endif + + static void fib6_link_table(struct fib6_table *tb) + { +@@ -193,11 +209,16 @@ + + h = tb->tb6_id & (FIB_TABLE_HASHSZ - 1); + +- /* +- * No protection necessary, this is the only list mutatation +- * operation, tables never disappear once they exist. +- */ ++ write_lock_bh(&tb->tb6_lock); + hlist_add_head_rcu(&tb->tb6_hlist, &fib_table_hash[h]); ++ write_unlock_bh(&tb->tb6_lock); ++} ++ ++static void fib6_unlink_table(struct fib6_table *tb) ++{ ++ write_lock_bh(&tb->tb6_lock); ++ hlist_del_rcu(&tb->tb6_hlist); ++ write_unlock_bh(&tb->tb6_lock); + } + + #ifdef CONFIG_IPV6_MULTIPLE_TABLES +@@ -209,6 +230,16 @@ + }, + }; + ++#ifdef CONFIG_VE ++static inline void prepare_fib6_local_table(void) ++{ ++ get_ve0()->_fib6_local_table = &fib6_local_tbl; ++} ++#define fib6_local_tbl (*(get_exec_env())->_fib6_local_table) ++#else ++#define prepare_fib6_local_table() do { } while (0) ++#endif ++ + static struct fib6_table *fib6_alloc_table(u32 id) + { + struct fib6_table *table; +@@ -261,12 +292,18 @@ + return NULL; + } + +-static void __init fib6_tables_init(void) ++void fib6_tables_init(void) + { + fib6_link_table(&fib6_main_tbl); + fib6_link_table(&fib6_local_tbl); + } + ++void fib6_tables_cleanup(void) ++{ ++ fib6_unlink_table(&fib6_main_tbl); ++ fib6_unlink_table(&fib6_local_tbl); ++} ++ + #else + + struct fib6_table *fib6_new_table(u32 id) +@@ -285,11 +322,16 @@ + return (struct dst_entry *) lookup(&fib6_main_tbl, fl, flags); + } + +-static void __init fib6_tables_init(void) ++void fib6_tables_init(void) + { + fib6_link_table(&fib6_main_tbl); + } + ++void fib6_tables_cleanup(void) ++{ ++ fib6_unlink_table(&fib6_main_tbl); ++} ++ + #endif + + static int fib6_dump_node(struct fib6_walker_t *w) +@@ -1371,9 +1413,13 @@ + for (h = 0; h < FIB_TABLE_HASHSZ; h++) { + hlist_for_each_entry_rcu(table, node, &fib_table_hash[h], + tb6_hlist) { ++ struct ve_struct *old_env; ++ ++ old_env = set_exec_env(table->owner_env); + write_lock_bh(&table->tb6_lock); + fib6_clean_tree(&table->tb6_root, func, prune, arg); + write_unlock_bh(&table->tb6_lock); ++ (void)set_exec_env(old_env); + } + } + rcu_read_unlock(); +@@ -1441,6 +1487,8 @@ + + static DEFINE_SPINLOCK(fib6_gc_lock); + ++LIST_HEAD(fib6_table_list); ++ + void fib6_run_gc(unsigned long dummy) + { + if (dummy != ~0UL) { +@@ -1473,9 +1521,13 @@ + { + fib6_node_kmem = kmem_cache_create("fib6_nodes", + sizeof(struct fib6_node), +- 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, ++ 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_UBC, + NULL); + ++ prepare_fib6_table(); ++#ifdef CONFIG_IPV6_MULTIPLE_TABLES ++ prepare_fib6_local_table(); ++#endif + fib6_tables_init(); + + __rtnl_register(PF_INET6, RTM_GETROUTE, NULL, inet6_dump_fib); +Index: kernel/net/ipv6/ip6_flowlabel.c +=================================================================== +--- kernel.orig/net/ipv6/ip6_flowlabel.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/ip6_flowlabel.c 2008-11-24 15:47:46.000000000 +0100 +@@ -448,6 +448,9 @@ + struct ip6_flowlabel *fl, *fl1 = NULL; + + ++ if (!ve_is_super(get_exec_env())) ++ return -EPERM; ++ + if (optlen < sizeof(freq)) + return -EINVAL; + +Index: kernel/net/ipv6/ip6_input.c +=================================================================== +--- kernel.orig/net/ipv6/ip6_input.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/ip6_input.c 2008-11-24 15:47:46.000000000 +0100 +@@ -61,11 +61,6 @@ + u32 pkt_len; + struct inet6_dev *idev; + +- if (dev->nd_net != &init_net) { +- kfree_skb(skb); +- return 0; +- } +- + if (skb->pkt_type == PACKET_OTHERHOST) { + kfree_skb(skb); + return 0; +Index: kernel/net/ipv6/ip6_output.c +=================================================================== +--- kernel.orig/net/ipv6/ip6_output.c 2008-11-24 14:14:31.000000000 +0100 ++++ kernel/net/ipv6/ip6_output.c 2008-11-24 15:47:46.000000000 +0100 +@@ -378,7 +378,7 @@ + struct ipv6hdr *hdr = ipv6_hdr(skb); + struct inet6_skb_parm *opt = IP6CB(skb); + +- if (ipv6_devconf.forwarding == 0) ++ if (ve_ipv6_devconf.forwarding == 0) + goto error; + + if (!xfrm6_policy_check(NULL, XFRM_POLICY_FWD, skb)) { +@@ -422,7 +422,7 @@ + } + + /* XXX: idev->cnf.proxy_ndp? */ +- if (ipv6_devconf.proxy_ndp && ++ if (ve_ipv6_devconf.proxy_ndp && + pneigh_lookup(&nd_tbl, &hdr->daddr, skb->dev, 0)) { + int proxied = ip6_forward_proxy_check(skb); + if (proxied > 0) +@@ -488,6 +488,20 @@ + return -EMSGSIZE; + } + ++ /* ++ * We try to optimize forwarding of VE packets: ++ * do not decrement TTL (and so save skb_cow) ++ * during forwarding of outgoing pkts from VE. ++ * For incoming pkts we still do ttl decr, ++ * since such skb is not cloned and does not require ++ * actual cow. So, there is at least one place ++ * in pkts path with mandatory ttl decr, that is ++ * sufficient to prevent routing loops. ++ */ ++ hdr = ipv6_hdr(skb); ++ if (skb->dev->features & NETIF_F_VENET) /* src is VENET device */ ++ goto no_ttl_decr; ++ + if (skb_cow(skb, dst->dev->hard_header_len)) { + IP6_INC_STATS(ip6_dst_idev(dst), IPSTATS_MIB_OUTDISCARDS); + goto drop; +@@ -499,6 +513,7 @@ + + hdr->hop_limit--; + ++no_ttl_decr: + IP6_INC_STATS_BH(ip6_dst_idev(dst), IPSTATS_MIB_OUTFORWDATAGRAMS); + return NF_HOOK(PF_INET6,NF_IP6_FORWARD, skb, skb->dev, dst->dev, ip6_forward_finish); + +Index: kernel/net/ipv6/ipv6_sockglue.c +=================================================================== +--- kernel.orig/net/ipv6/ipv6_sockglue.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/ipv6_sockglue.c 2008-11-24 15:47:46.000000000 +0100 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -544,7 +545,7 @@ + if (sk->sk_bound_dev_if && sk->sk_bound_dev_if != val) + goto e_inval; + +- if (__dev_get_by_index(&init_net, val) == NULL) { ++ if (__dev_get_by_index(get_exec_env()->ve_ns->net_ns, val) == NULL) { + retv = -ENODEV; + break; + } +@@ -1021,7 +1022,7 @@ + dst_release(dst); + } + if (val < 0) +- val = ipv6_devconf.hop_limit; ++ val = ve_ipv6_devconf.hop_limit; + break; + } + +Index: kernel/net/ipv6/mcast.c +=================================================================== +--- kernel.orig/net/ipv6/mcast.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/mcast.c 2008-11-24 15:47:46.000000000 +0100 +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -156,7 +157,7 @@ + #define IGMP6_UNSOLICITED_IVAL (10*HZ) + #define MLD_QRV_DEFAULT 2 + +-#define MLD_V1_SEEN(idev) (ipv6_devconf.force_mld_version == 1 || \ ++#define MLD_V1_SEEN(idev) (ve_ipv6_devconf.force_mld_version == 1 || \ + (idev)->cnf.force_mld_version == 1 || \ + ((idev)->mc_v1_seen && \ + time_before(jiffies, (idev)->mc_v1_seen))) +@@ -215,7 +216,7 @@ + dst_release(&rt->u.dst); + } + } else +- dev = dev_get_by_index(&init_net, ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); + + if (dev == NULL) { + sock_kfree_s(sk, mc_lst, sizeof(*mc_lst)); +@@ -248,6 +249,7 @@ + + return 0; + } ++EXPORT_SYMBOL_GPL(ipv6_sock_mc_join); + + /* + * socket leave on multicast group +@@ -266,7 +268,7 @@ + *lnk = mc_lst->next; + write_unlock_bh(&ipv6_sk_mc_lock); + +- if ((dev = dev_get_by_index(&init_net, mc_lst->ifindex)) != NULL) { ++ if ((dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, mc_lst->ifindex)) != NULL) { + struct inet6_dev *idev = in6_dev_get(dev); + + (void) ip6_mc_leave_src(sk, mc_lst, idev); +@@ -301,7 +303,7 @@ + dst_release(&rt->u.dst); + } + } else +- dev = dev_get_by_index(&init_net, ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, ifindex); + + if (!dev) + return NULL; +@@ -332,7 +334,7 @@ + np->ipv6_mc_list = mc_lst->next; + write_unlock_bh(&ipv6_sk_mc_lock); + +- dev = dev_get_by_index(&init_net, mc_lst->ifindex); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, mc_lst->ifindex); + if (dev) { + struct inet6_dev *idev = in6_dev_get(dev); + +@@ -2170,15 +2172,18 @@ + static void mld_gq_timer_expire(unsigned long data) + { + struct inet6_dev *idev = (struct inet6_dev *)data; ++ struct ve_struct *old_env = set_exec_env(idev->dev->owner_env); + + idev->mc_gq_running = 0; + mld_send_report(idev, NULL); + __in6_dev_put(idev); ++ set_exec_env(old_env); + } + + static void mld_ifc_timer_expire(unsigned long data) + { + struct inet6_dev *idev = (struct inet6_dev *)data; ++ struct ve_struct *old_env = set_exec_env(idev->dev->owner_env); + + mld_send_cr(idev); + if (idev->mc_ifc_count) { +@@ -2187,6 +2192,7 @@ + mld_ifc_start_timer(idev, idev->mc_maxdelay); + } + __in6_dev_put(idev); ++ set_exec_env(old_env); + } + + static void mld_ifc_event(struct inet6_dev *idev) +@@ -2201,6 +2207,7 @@ + static void igmp6_timer_handler(unsigned long data) + { + struct ifmcaddr6 *ma = (struct ifmcaddr6 *) data; ++ struct ve_struct *old_env = set_exec_env(ma->idev->dev->owner_env); + + if (MLD_V1_SEEN(ma->idev)) + igmp6_send(&ma->mca_addr, ma->idev->dev, ICMPV6_MGM_REPORT); +@@ -2212,6 +2219,7 @@ + ma->mca_flags &= ~MAF_TIMER_RUNNING; + spin_unlock(&ma->mca_lock); + ma_put(ma); ++ set_exec_env(old_env); + } + + /* Device going down */ +@@ -2326,8 +2334,9 @@ + struct igmp6_mc_iter_state *state = igmp6_mc_seq_private(seq); + + state->idev = NULL; +- for_each_netdev(&init_net, state->dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { + struct inet6_dev *idev; ++ + idev = in6_dev_get(state->dev); + if (!idev) + continue; +@@ -2454,8 +2463,9 @@ + + state->idev = NULL; + state->im = NULL; +- for_each_netdev(&init_net, state->dev) { ++ for_each_netdev(get_exec_env()->ve_ns->net_ns, state->dev) { + struct inet6_dev *idev; ++ + idev = in6_dev_get(state->dev); + if (unlikely(idev == NULL)) + continue; +Index: kernel/net/ipv6/ndisc.c +=================================================================== +--- kernel.orig/net/ipv6/ndisc.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/ndisc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -128,7 +128,7 @@ + .queue_xmit = dev_queue_xmit, + }; + +-struct neigh_table nd_tbl = { ++struct neigh_table global_nd_tbl = { + .family = AF_INET6, + .entry_size = sizeof(struct neighbour) + sizeof(struct in6_addr), + .key_len = sizeof(struct in6_addr), +@@ -139,7 +139,7 @@ + .proxy_redo = pndisc_redo, + .id = "ndisc_cache", + .parms = { +- .tbl = &nd_tbl, ++ .tbl = &global_nd_tbl, + .base_reachable_time = 30 * HZ, + .retrans_time = 1 * HZ, + .gc_staletime = 60 * HZ, +@@ -787,7 +787,7 @@ + + if (ipv6_chk_acast_addr(dev, &msg->target) || + (idev->cnf.forwarding && +- (ipv6_devconf.proxy_ndp || idev->cnf.proxy_ndp) && ++ (ve_ipv6_devconf.proxy_ndp || idev->cnf.proxy_ndp) && + (pneigh = pneigh_lookup(&nd_tbl, + &msg->target, dev, 0)) != NULL)) { + if (!(NEIGH_CB(skb)->flags & LOCALLY_ENQUEUED) && +@@ -928,7 +928,7 @@ + * has already sent a NA to us. + */ + if (lladdr && !memcmp(lladdr, dev->dev_addr, dev->addr_len) && +- ipv6_devconf.forwarding && ipv6_devconf.proxy_ndp && ++ ve_ipv6_devconf.forwarding && ve_ipv6_devconf.proxy_ndp && + pneigh_lookup(&nd_tbl, &msg->target, dev, 0)) { + /* XXX: idev->cnf.prixy_ndp */ + goto out; +@@ -1610,9 +1610,6 @@ + { + struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + switch (event) { + case NETDEV_CHANGEADDR: + neigh_changeaddr(&nd_tbl, dev); +@@ -1729,6 +1726,55 @@ + + #endif + ++static int ndisc_net_init(struct net *net) ++{ ++ struct ve_struct *ve = get_exec_env(); ++ int err; ++ ++ ve->ve_nd_tbl = kmemdup(ve0.ve_nd_tbl, sizeof(struct neigh_table), ++ GFP_KERNEL); ++ if (ve->ve_nd_tbl == NULL) ++ return -ENOMEM; ++ ve->ve_nd_tbl->parms.tbl = ve->ve_nd_tbl; ++ ++ err = neigh_table_init(ve->ve_nd_tbl); ++ if (err) ++ goto out_free; ++#ifdef CONFIG_SYSCTL ++ neigh_sysctl_register(NULL, &nd_tbl.parms, NET_IPV6, NET_IPV6_NEIGH, ++ "ipv6", ++ &ndisc_ifinfo_sysctl_change, ++ &ndisc_ifinfo_sysctl_strategy); ++#endif ++ err = 0; ++out: ++ return err; ++ ++out_free: ++ kfree(ve->ve_nd_tbl); ++ ve->ve_nd_tbl = NULL; ++ goto out; ++} ++ ++static void ndisc_net_exit(struct net *net) ++{ ++ struct ve_struct *ve = get_exec_env(); ++ ++ if (ve->ve_nd_tbl) { ++#ifdef CONFIG_SYSCTL ++ neigh_sysctl_unregister(&ve->ve_nd_tbl->parms); ++#endif ++ neigh_table_clear(ve->ve_nd_tbl); ++ kfree(ve->ve_nd_tbl); ++ ve->ve_nd_tbl = NULL; ++ } ++} ++ ++static struct pernet_operations ndisc_net_ops = { ++ .init = ndisc_net_init, ++ .exit = ndisc_net_exit, ++}; ++ + int __init ndisc_init(struct net_proto_family *ops) + { + struct ipv6_pinfo *np; +@@ -1755,15 +1801,8 @@ + /* + * Initialize the neighbour table + */ +- +- neigh_table_init(&nd_tbl); +- +-#ifdef CONFIG_SYSCTL +- neigh_sysctl_register(NULL, &nd_tbl.parms, NET_IPV6, NET_IPV6_NEIGH, +- "ipv6", +- &ndisc_ifinfo_sysctl_change, +- &ndisc_ifinfo_sysctl_strategy); +-#endif ++ get_ve0()->ve_nd_tbl = &global_nd_tbl; ++ register_pernet_subsys(&ndisc_net_ops); + + register_netdevice_notifier(&ndisc_netdev_notifier); + return 0; +@@ -1772,10 +1811,7 @@ + void ndisc_cleanup(void) + { + unregister_netdevice_notifier(&ndisc_netdev_notifier); +-#ifdef CONFIG_SYSCTL +- neigh_sysctl_unregister(&nd_tbl.parms); +-#endif +- neigh_table_clear(&nd_tbl); ++ unregister_pernet_subsys(&ndisc_net_ops); + sock_release(ndisc_socket); + ndisc_socket = NULL; /* For safety. */ + } +Index: kernel/net/ipv6/netfilter/ip6_queue.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/ip6_queue.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/netfilter/ip6_queue.c 2008-11-24 15:47:46.000000000 +0100 +@@ -491,7 +491,7 @@ + if (type <= IPQM_BASE) + return; + +- if (security_netlink_recv(skb, CAP_NET_ADMIN)) ++ if (security_netlink_recv(skb, CAP_VE_NET_ADMIN)) + RCV_SKB_FAIL(-EPERM); + + write_lock_bh(&queue_lock); +@@ -521,8 +521,12 @@ + static void + ipq_rcv_skb(struct sk_buff *skb) + { ++ struct ve_struct *old_ve; ++ + mutex_lock(&ipqnl_mutex); ++ old_ve = set_exec_env(skb->owner_env); + __ipq_rcv_skb(skb); ++ (void)set_exec_env(old_ve); + mutex_unlock(&ipqnl_mutex); + } + +@@ -532,9 +536,6 @@ + { + struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + /* Drop any packets associated with the downed device */ + if (event == NETDEV_DOWN) + ipq_dev_drop(dev->ifindex); +@@ -554,7 +555,7 @@ + if (event == NETLINK_URELEASE && + n->protocol == NETLINK_IP6_FW && n->pid) { + write_lock_bh(&queue_lock); +- if ((n->net == &init_net) && (n->pid == peer_pid)) ++ if (n->pid == peer_pid) + __ipq_reset(); + write_unlock_bh(&queue_lock); + } +Index: kernel/net/ipv6/netfilter/ip6_tables.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/ip6_tables.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/netfilter/ip6_tables.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,7 @@ + + #include + #include ++#include + + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Netfilter Core Team "); +@@ -1211,9 +1212,14 @@ + { + int ret; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_VE_NET_ADMIN)) + return -EPERM; + ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_xt_tables[AF_INET6].next) ++ return -ENOENT; ++#endif ++ + switch (cmd) { + case IP6T_SO_SET_REPLACE: + ret = do_replace(user, len); +@@ -1236,9 +1242,14 @@ + { + int ret; + +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_VE_NET_ADMIN)) + return -EPERM; + ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_xt_tables[AF_INET6].next) ++ return -ENOENT; ++#endif ++ + switch (cmd) { + case IP6T_SO_GET_INFO: { + char name[IP6T_TABLE_MAXNAMELEN]; +@@ -1334,18 +1345,18 @@ + return ret; + } + +-int ip6t_register_table(struct xt_table *table, ++struct ip6t_table *ip6t_register_table(struct xt_table *table, + const struct ip6t_replace *repl) + { + int ret; + struct xt_table_info *newinfo; + static struct xt_table_info bootstrap +- = { 0, 0, 0, { 0 }, { 0 }, { } }; ++ = { 0, 0, 0, 0, { 0 }, { 0 }, { } }; + void *loc_cpu_entry; + + newinfo = xt_alloc_table_info(repl->size); + if (!newinfo) +- return -ENOMEM; ++ return ERR_PTR(-ENOMEM); + + /* choose the copy on our node/cpu */ + loc_cpu_entry = newinfo->entries[raw_smp_processor_id()]; +@@ -1358,28 +1369,29 @@ + repl->underflow); + if (ret != 0) { + xt_free_table_info(newinfo); +- return ret; ++ return ERR_PTR(ret); + } + +- ret = xt_register_table(table, &bootstrap, newinfo); +- if (ret != 0) { ++ table = virt_xt_register_table(table, &bootstrap, newinfo); ++ if (IS_ERR(table)) + xt_free_table_info(newinfo); +- return ret; +- } +- +- return 0; ++ return table; + } + + void ip6t_unregister_table(struct xt_table *table) + { + struct xt_table_info *private; + void *loc_cpu_entry; ++ struct module *me; + +- private = xt_unregister_table(table); ++ me = table->me; ++ private = virt_xt_unregister_table(table); + + /* Decrease module usage counts and free resources */ + loc_cpu_entry = private->entries[raw_smp_processor_id()]; + IP6T_ENTRY_ITERATE(loc_cpu_entry, private->size, cleanup_entry, NULL); ++ if (private->number > private->initial_entries) ++ module_put(me); + xt_free_table_info(private); + } + +@@ -1474,12 +1486,30 @@ + .family = AF_INET6, + }; + ++static int init_ip6tables(void) ++{ ++#ifdef CONFIG_VE_IPTABLES ++ if (get_exec_env()->_xt_tables[AF_INET6].next != NULL) ++ return -EEXIST; ++#endif ++ ++ return xt_proto_init(AF_INET6); ++} ++ ++static void fini_ip6tables(void) ++{ ++#ifdef CONFIG_VE_IPTABLES ++ get_exec_env()->_xt_tables[AF_INET6].next = NULL; ++#endif ++ xt_proto_fini(AF_INET6); ++} ++ + static int __init ip6_tables_init(void) + { + int ret; + +- ret = xt_proto_init(AF_INET6); +- if (ret < 0) ++ ret = init_ip6tables(); ++ if (ret) + goto err1; + + /* Noone else will be downing sem now, so we won't sleep */ +@@ -1498,6 +1528,10 @@ + if (ret < 0) + goto err5; + ++ KSYMRESOLVE(init_ip6tables); ++ KSYMRESOLVE(fini_ip6tables); ++ KSYMMODRESOLVE(ip6_tables); ++ + printk(KERN_INFO "ip6_tables: (C) 2000-2006 Netfilter Core Team\n"); + return 0; + +@@ -1508,18 +1542,21 @@ + err3: + xt_unregister_target(&ip6t_standard_target); + err2: +- xt_proto_fini(AF_INET6); ++ fini_ip6tables(); + err1: + return ret; + } + + static void __exit ip6_tables_fini(void) + { ++ KSYMMODUNRESOLVE(ip6_tables); ++ KSYMUNRESOLVE(init_ip6tables); ++ KSYMUNRESOLVE(fini_ip6tables); + nf_unregister_sockopt(&ip6t_sockopts); + xt_unregister_match(&icmp6_matchstruct); + xt_unregister_target(&ip6t_error_target); + xt_unregister_target(&ip6t_standard_target); +- xt_proto_fini(AF_INET6); ++ fini_ip6tables(); + } + + /* +@@ -1605,5 +1642,5 @@ + EXPORT_SYMBOL(ip6t_ext_hdr); + EXPORT_SYMBOL(ipv6_find_hdr); + +-module_init(ip6_tables_init); ++subsys_initcall(ip6_tables_init); + module_exit(ip6_tables_fini); +Index: kernel/net/ipv6/netfilter/ip6table_filter.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/ip6table_filter.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/netfilter/ip6table_filter.c 2008-11-24 15:47:46.000000000 +0100 +@@ -11,12 +11,20 @@ + + #include + #include ++#include + #include + + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Netfilter Core Team "); + MODULE_DESCRIPTION("ip6tables filter table"); + ++#ifdef CONFIG_VE_IPTABLES ++#include ++#define ve_packet_filter (get_exec_env()->_ve_ip6t_filter_pf) ++#else ++#define ve_packet_filter &packet_filter ++#endif ++ + #define FILTER_VALID_HOOKS ((1 << NF_IP6_LOCAL_IN) | (1 << NF_IP6_FORWARD) | (1 << NF_IP6_LOCAL_OUT)) + + static struct +@@ -24,7 +32,7 @@ + struct ip6t_replace repl; + struct ip6t_standard entries[3]; + struct ip6t_error term; +-} initial_table __initdata = { ++} initial_table = { + .repl = { + .name = "filter", + .valid_hooks = FILTER_VALID_HOOKS, +@@ -65,7 +73,7 @@ + const struct net_device *out, + int (*okfn)(struct sk_buff *)) + { +- return ip6t_do_table(skb, hook, in, out, &packet_filter); ++ return ip6t_do_table(skb, hook, in, out, ve_packet_filter); + } + + static unsigned int +@@ -85,7 +93,7 @@ + } + #endif + +- return ip6t_do_table(skb, hook, in, out, &packet_filter); ++ return ip6t_do_table(skb, hook, in, out, ve_packet_filter); + } + + static struct nf_hook_ops ip6t_ops[] = { +@@ -116,22 +124,19 @@ + static int forward = NF_ACCEPT; + module_param(forward, bool, 0000); + +-static int __init ip6table_filter_init(void) ++int init_ip6table_filter(void) + { + int ret; +- +- if (forward < 0 || forward > NF_MAX_VERDICT) { +- printk("iptables forward must be 0 or 1\n"); +- return -EINVAL; +- } +- +- /* Entry 1 is the FORWARD hook */ +- initial_table.entries[1].target.verdict = -forward - 1; ++ struct ip6t_table *tmp_filter; + + /* Register table */ +- ret = ip6t_register_table(&packet_filter, &initial_table.repl); +- if (ret < 0) +- return ret; ++ tmp_filter = ip6t_register_table(&packet_filter, ++ &initial_table.repl); ++ if (IS_ERR(tmp_filter)) ++ return PTR_ERR(tmp_filter); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_filter = tmp_filter; ++#endif + + /* Register hooks */ + ret = nf_register_hooks(ip6t_ops, ARRAY_SIZE(ip6t_ops)); +@@ -141,14 +146,50 @@ + return ret; + + cleanup_table: +- ip6t_unregister_table(&packet_filter); ++ ip6t_unregister_table(ve_packet_filter); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_filter = NULL; ++#endif + return ret; + } + +-static void __exit ip6table_filter_fini(void) ++void fini_ip6table_filter(void) + { + nf_unregister_hooks(ip6t_ops, ARRAY_SIZE(ip6t_ops)); +- ip6t_unregister_table(&packet_filter); ++ ip6t_unregister_table(ve_packet_filter); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_filter = NULL; ++#endif ++} ++ ++static int __init ip6table_filter_init(void) ++{ ++ int err; ++ ++ if (forward < 0 || forward > NF_MAX_VERDICT) { ++ printk("iptables forward must be 0 or 1\n"); ++ return -EINVAL; ++ } ++ ++ /* Entry 1 is the FORWARD hook */ ++ initial_table.entries[1].target.verdict = -forward - 1; ++ ++ err = init_ip6table_filter(); ++ if (err < 0) ++ return err; ++ ++ KSYMRESOLVE(init_ip6table_filter); ++ KSYMRESOLVE(fini_ip6table_filter); ++ KSYMMODRESOLVE(ip6table_filter); ++ return 0; ++} ++ ++static void __exit ip6table_filter_fini(void) ++{ ++ KSYMMODUNRESOLVE(ip6table_filter); ++ KSYMUNRESOLVE(init_ip6table_filter); ++ KSYMUNRESOLVE(fini_ip6table_filter); ++ fini_ip6table_filter(); + } + + module_init(ip6table_filter_init); +Index: kernel/net/ipv6/netfilter/ip6table_mangle.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/ip6table_mangle.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/netfilter/ip6table_mangle.c 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,7 @@ + */ + #include + #include ++#include + + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Netfilter Core Team "); +@@ -26,7 +27,7 @@ + struct ip6t_replace repl; + struct ip6t_standard entries[5]; + struct ip6t_error term; +-} initial_table __initdata = { ++} initial_table = { + .repl = { + .name = "mangle", + .valid_hooks = MANGLE_VALID_HOOKS, +@@ -65,6 +66,13 @@ + .af = AF_INET6, + }; + ++#ifdef CONFIG_VE_IPTABLES ++#include ++#define ve_packet_mangler (get_exec_env()->_ip6t_mangle_table) ++#else ++#define ve_packet_mangler &packet_mangler ++#endif ++ + /* The work comes in here from netfilter.c. */ + static unsigned int + ip6t_route_hook(unsigned int hook, +@@ -73,7 +81,7 @@ + const struct net_device *out, + int (*okfn)(struct sk_buff *)) + { +- return ip6t_do_table(skb, hook, in, out, &packet_mangler); ++ return ip6t_do_table(skb, hook, in, out, ve_packet_mangler); + } + + static unsigned int +@@ -108,7 +116,7 @@ + /* flowlabel and prio (includes version, which shouldn't change either */ + flowlabel = *((u_int32_t *)ipv6_hdr(skb)); + +- ret = ip6t_do_table(skb, hook, in, out, &packet_mangler); ++ ret = ip6t_do_table(skb, hook, in, out, ve_packet_mangler); + + if (ret != NF_DROP && ret != NF_STOLEN + && (memcmp(&ipv6_hdr(skb)->saddr, &saddr, sizeof(saddr)) +@@ -158,14 +166,19 @@ + }, + }; + +-static int __init ip6table_mangle_init(void) ++int init_ip6table_mangle(void) + { + int ret; ++ struct ip6t_table *tmp_mangler; + + /* Register table */ +- ret = ip6t_register_table(&packet_mangler, &initial_table.repl); +- if (ret < 0) +- return ret; ++ tmp_mangler = ip6t_register_table(&packet_mangler, ++ &initial_table.repl); ++ if (IS_ERR(tmp_mangler)) ++ return PTR_ERR(tmp_mangler); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_mangler = tmp_mangler; ++#endif + + /* Register hooks */ + ret = nf_register_hooks(ip6t_ops, ARRAY_SIZE(ip6t_ops)); +@@ -175,14 +188,42 @@ + return ret; + + cleanup_table: +- ip6t_unregister_table(&packet_mangler); ++ ip6t_unregister_table(ve_packet_mangler); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_mangler = NULL; ++#endif + return ret; + } + +-static void __exit ip6table_mangle_fini(void) ++void fini_ip6table_mangle(void) + { + nf_unregister_hooks(ip6t_ops, ARRAY_SIZE(ip6t_ops)); +- ip6t_unregister_table(&packet_mangler); ++ ip6t_unregister_table(ve_packet_mangler); ++#ifdef CONFIG_VE_IPTABLES ++ ve_packet_mangler = NULL; ++#endif ++} ++ ++static int __init ip6table_mangle_init(void) ++{ ++ int err; ++ ++ err = init_ip6table_mangle(); ++ if (err < 0) ++ return err; ++ ++ KSYMRESOLVE(init_ip6table_mangle); ++ KSYMRESOLVE(fini_ip6table_mangle); ++ KSYMMODRESOLVE(ip6table_mangle); ++ return 0; ++} ++ ++static void __exit ip6table_mangle_fini(void) ++{ ++ KSYMMODUNRESOLVE(ip6table_mangle); ++ KSYMUNRESOLVE(init_ip6table_mangle); ++ KSYMUNRESOLVE(fini_ip6table_mangle); ++ fini_ip6table_mangle(); + } + + module_init(ip6table_mangle_init); +Index: kernel/net/ipv6/netfilter/ip6table_raw.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/ip6table_raw.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/netfilter/ip6table_raw.c 2008-11-24 15:47:46.000000000 +0100 +@@ -74,11 +74,12 @@ + static int __init ip6table_raw_init(void) + { + int ret; ++ struct ip6t_table *tmp; + + /* Register table */ +- ret = ip6t_register_table(&packet_raw, &initial_table.repl); +- if (ret < 0) +- return ret; ++ tmp = ip6t_register_table(&packet_raw, &initial_table.repl); ++ if (IS_ERR(tmp)) ++ return PTR_ERR(tmp); + + /* Register hooks */ + ret = nf_register_hooks(ip6t_ops, ARRAY_SIZE(ip6t_ops)); +Index: kernel/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c 2008-11-24 15:47:46.000000000 +0100 +@@ -14,6 +14,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -394,39 +395,103 @@ + MODULE_LICENSE("GPL"); + MODULE_AUTHOR("Yasuyuki KOZAKAI @USAGI "); + +-static int __init nf_conntrack_l3proto_ipv6_init(void) ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++static void nf_ct_proto_ipv6_sysctl_cleanup(void) + { +- int ret = 0; ++ if (!ve_is_super(get_exec_env())) { ++ free_sysctl_clone(ve_nf_conntrack_l3proto_ipv6->ctl_table); ++ ve_nf_conntrack_l3proto_ipv6->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l3proto_ipv6); ++ ve_nf_conntrack_l3proto_ipv6 = NULL; ++ } ++} + +- need_conntrack(); ++static int nf_ct_proto_ipv6_sysctl_init(void) ++{ ++ struct nf_conntrack_l3proto *ipv6; + ++ if (ve_is_super(get_exec_env())) { ++ ipv6 = &nf_conntrack_l3proto_ipv6; ++ goto out; ++ } ++ ++ ipv6 = kmemdup(&nf_conntrack_l3proto_ipv6, ++ sizeof(struct nf_conntrack_l3proto), GFP_KERNEL); ++ if (!ipv6) ++ goto no_mem_ct; ++ ++ ipv6->ctl_table_path = nf_net_netfilter_sysctl_path; ++ ipv6->ctl_table = clone_sysctl_template(nf_ct_ipv6_sysctl_table); ++ if (!ipv6->ctl_table) ++ goto no_mem_sys; ++ ++ ipv6->ctl_table[0].data = &ve_nf_ct_frag6_timeout; ++ ipv6->ctl_table[1].data = &ve_nf_ct_frag6_low_thresh; ++ ipv6->ctl_table[2].data = &ve_nf_ct_frag6_high_thresh; ++out: ++ ve_nf_ct_frag6_timeout = nf_frags_ctl.timeout; ++ ve_nf_ct_frag6_low_thresh = nf_frags_ctl.low_thresh; ++ ve_nf_ct_frag6_high_thresh = nf_frags_ctl.high_thresh; ++ ++ ve_nf_conntrack_l3proto_ipv6 = ipv6; ++ return 0; ++ ++no_mem_sys: ++ kfree(ipv6); ++no_mem_ct: ++ return -ENOMEM; ++} ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ ++ ++int init_nf_ct_l3proto_ipv6(void) ++{ ++ int ret = -ENOMEM; ++ ++#ifdef CONFIG_VE_IPTABLES ++ if (!ve_is_super(get_exec_env())) ++ __module_get(THIS_MODULE); ++ ++ ret = nf_ct_proto_ipv6_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_ipv6; ++ ret = nf_ct_proto_tcp_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_tcp; ++ ret = nf_ct_proto_udp_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_udp; ++ ret = nf_ct_proto_icmpv6_sysctl_init(); ++ if (ret < 0) ++ goto no_mem_icmp; ++#endif /* CONFIG_VE_IPTABLES */ + ret = nf_ct_frag6_init(); + if (ret < 0) { + printk("nf_conntrack_ipv6: can't initialize frag6.\n"); +- return ret; ++ goto cleanup_sys; + } +- ret = nf_conntrack_l4proto_register(&nf_conntrack_l4proto_tcp6); ++ ++ ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_tcp6); + if (ret < 0) { + printk("nf_conntrack_ipv6: can't register tcp.\n"); + goto cleanup_frag6; + } + +- ret = nf_conntrack_l4proto_register(&nf_conntrack_l4proto_udp6); ++ ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_udp6); + if (ret < 0) { + printk("nf_conntrack_ipv6: can't register udp.\n"); +- goto cleanup_tcp; ++ goto unreg_tcp; + } + +- ret = nf_conntrack_l4proto_register(&nf_conntrack_l4proto_icmpv6); ++ ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_icmpv6); + if (ret < 0) { + printk("nf_conntrack_ipv6: can't register icmpv6.\n"); +- goto cleanup_udp; ++ goto unreg_udp; + } + +- ret = nf_conntrack_l3proto_register(&nf_conntrack_l3proto_ipv6); ++ ret = nf_conntrack_l3proto_register(ve_nf_conntrack_l3proto_ipv6); + if (ret < 0) { + printk("nf_conntrack_ipv6: can't register ipv6\n"); +- goto cleanup_icmpv6; ++ goto unreg_icmpv6; + } + + ret = nf_register_hooks(ipv6_conntrack_ops, +@@ -434,32 +499,80 @@ + if (ret < 0) { + printk("nf_conntrack_ipv6: can't register pre-routing defrag " + "hook.\n"); +- goto cleanup_ipv6; ++ goto unreg_ipv6; + } +- return ret; ++ return 0; + +- cleanup_ipv6: +- nf_conntrack_l3proto_unregister(&nf_conntrack_l3proto_ipv6); +- cleanup_icmpv6: +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_icmpv6); +- cleanup_udp: +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_udp6); +- cleanup_tcp: +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_tcp6); +- cleanup_frag6: ++unreg_ipv6: ++ nf_conntrack_l3proto_unregister(ve_nf_conntrack_l3proto_ipv6); ++unreg_icmpv6: ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_icmpv6); ++unreg_udp: ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_udp6); ++unreg_tcp: ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_tcp6); ++cleanup_frag6: + nf_ct_frag6_cleanup(); ++cleanup_sys: ++#ifdef CONFIG_VE_IPTABLES ++no_mem_icmp: ++ nf_ct_proto_udp_sysctl_cleanup(); ++no_mem_udp: ++ nf_ct_proto_tcp_sysctl_cleanup(); ++no_mem_tcp: ++ nf_ct_proto_ipv6_sysctl_cleanup(); ++no_mem_ipv6: ++ if (!ve_is_super(get_exec_env())) ++ module_put(THIS_MODULE); ++#endif /* CONFIG_VE_IPTABLES */ + return ret; + } ++EXPORT_SYMBOL(init_nf_ct_l3proto_ipv6); + +-static void __exit nf_conntrack_l3proto_ipv6_fini(void) ++void fini_nf_ct_l3proto_ipv6(void) + { +- synchronize_net(); + nf_unregister_hooks(ipv6_conntrack_ops, ARRAY_SIZE(ipv6_conntrack_ops)); +- nf_conntrack_l3proto_unregister(&nf_conntrack_l3proto_ipv6); +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_icmpv6); +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_udp6); +- nf_conntrack_l4proto_unregister(&nf_conntrack_l4proto_tcp6); ++ nf_conntrack_l3proto_unregister(ve_nf_conntrack_l3proto_ipv6); ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_icmpv6); ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_udp6); ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_tcp6); + nf_ct_frag6_cleanup(); ++ ++#ifdef CONFIG_VE_IPTABLES ++ nf_ct_proto_icmpv6_sysctl_cleanup(); ++ nf_ct_proto_udp_sysctl_cleanup(); ++ nf_ct_proto_tcp_sysctl_cleanup(); ++ nf_ct_proto_ipv6_sysctl_cleanup(); ++ if (!ve_is_super(get_exec_env())) ++ module_put(THIS_MODULE); ++#endif /* CONFIG_VE_IPTABLES */ ++} ++EXPORT_SYMBOL(fini_nf_ct_l3proto_ipv6); ++ ++static int __init nf_conntrack_l3proto_ipv6_init(void) ++{ ++ int ret = 0; ++ ++ need_conntrack(); ++ ++ ret = init_nf_ct_l3proto_ipv6(); ++ if (ret < 0) { ++ printk(KERN_ERR "Unable to initialize netfilter protocols\n"); ++ return ret; ++ } ++ KSYMRESOLVE(init_nf_ct_l3proto_ipv6); ++ KSYMRESOLVE(fini_nf_ct_l3proto_ipv6); ++ KSYMMODRESOLVE(nf_conntrack_ipv6); ++ return 0; ++} ++ ++static void __exit nf_conntrack_l3proto_ipv6_fini(void) ++{ ++ synchronize_net(); ++ KSYMMODUNRESOLVE(nf_conntrack_ipv6); ++ KSYMUNRESOLVE(init_nf_ct_l3proto_ipv6); ++ KSYMUNRESOLVE(fini_nf_ct_l3proto_ipv6); ++ fini_nf_ct_l3proto_ipv6(); + } + + module_init(nf_conntrack_l3proto_ipv6_init); +Index: kernel/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c 2008-11-24 15:47:46.000000000 +0100 +@@ -10,6 +10,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -100,7 +101,7 @@ + } else { + atomic_inc(&ct->proto.icmp.count); + nf_conntrack_event_cache(IPCT_PROTOINFO_VOLATILE, skb); +- nf_ct_refresh_acct(ct, ctinfo, skb, nf_ct_icmpv6_timeout); ++ nf_ct_refresh_acct(ct, ctinfo, skb, ve_nf_ct_icmpv6_timeout); + } + + return NF_ACCEPT; +@@ -156,7 +157,7 @@ + /* Ordinarily, we'd expect the inverted tupleproto, but it's + been preserved inside the ICMP. */ + if (!nf_ct_invert_tuple(&intuple, &origtuple, +- &nf_conntrack_l3proto_ipv6, inproto)) { ++ ve_nf_conntrack_l3proto_ipv6, inproto)) { + pr_debug("icmpv6_error: Can't invert tuple\n"); + return -NF_ACCEPT; + } +@@ -294,3 +295,49 @@ + .ctl_table = icmpv6_sysctl_table, + #endif + }; ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++void nf_ct_proto_icmpv6_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++ free_sysctl_clone(ve_nf_conntrack_l4proto_icmpv6->ctl_table); ++ ve_nf_conntrack_l4proto_icmpv6->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_icmpv6); ++ ve_nf_conntrack_l4proto_icmpv6 = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_icmpv6_sysctl_cleanup); ++ ++int nf_ct_proto_icmpv6_sysctl_init(void) ++{ ++ struct nf_conntrack_l4proto *icmp6; ++ ++ if (ve_is_super(get_exec_env())) { ++ icmp6 = &nf_conntrack_l4proto_icmpv6; ++ goto out; ++ } ++ ++ icmp6 = kmemdup(&nf_conntrack_l4proto_icmpv6, ++ sizeof(struct nf_conntrack_l4proto), GFP_KERNEL); ++ if (!icmp6) ++ goto no_mem_ct; ++ ++ icmp6->ctl_table_header = &ve_icmpv6_sysctl_header; ++ icmp6->ctl_table = clone_sysctl_template(icmpv6_sysctl_table); ++ if (!icmp6->ctl_table) ++ goto no_mem_sys; ++ ++ icmp6->ctl_table[0].data = &ve_nf_ct_icmpv6_timeout; ++out: ++ ve_nf_ct_icmpv6_timeout = nf_ct_icmpv6_timeout; ++ ++ ve_nf_conntrack_l4proto_icmpv6 = icmp6; ++ return 0; ++ ++no_mem_sys: ++ kfree(icmp6); ++no_mem_ct: ++ return -ENOMEM; ++} ++EXPORT_SYMBOL(nf_ct_proto_icmpv6_sysctl_init); ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/ipv6/netfilter/nf_conntrack_reasm.c +=================================================================== +--- kernel.orig/net/ipv6/netfilter/nf_conntrack_reasm.c 2008-11-24 14:17:53.000000000 +0100 ++++ kernel/net/ipv6/netfilter/nf_conntrack_reasm.c 2008-11-24 15:54:54.000000000 +0100 +@@ -44,6 +44,7 @@ + #include + #include + #include ++#include + + #define NF_CT_FRAG6_HIGH_THRESH 262144 /* == 256*1024 */ + #define NF_CT_FRAG6_LOW_THRESH 196608 /* == 192*1024 */ +@@ -76,9 +77,16 @@ + .timeout = IPV6_FRAG_TIMEOUT, + .secret_interval = 10 * 60 * HZ, + }; +- + static struct inet_frags nf_frags; + ++#ifdef CONFIG_VE_IPTABLES ++#define ve_nf_frags (get_exec_env()->_nf_conntrack->_nf_frags6) ++#define ve_nf_frags_ctl (get_exec_env()->_nf_conntrack->_nf_frags6_ctl) ++#else ++#define ve_nf_frags nf_frags ++#define ve_nf_frags_ctl nf_frags_ctl ++#endif ++ + static unsigned int ip6qhashfn(__be32 id, struct in6_addr *saddr, + struct in6_addr *daddr) + { +@@ -90,7 +98,7 @@ + + a += JHASH_GOLDEN_RATIO; + b += JHASH_GOLDEN_RATIO; +- c += nf_frags.rnd; ++ c += ve_nf_frags.rnd; + __jhash_mix(a, b, c); + + a += (__force u32)saddr->s6_addr32[3]; +@@ -125,7 +133,7 @@ + { + if (work) + *work -= skb->truesize; +- atomic_sub(skb->truesize, &nf_frags.mem); ++ atomic_sub(skb->truesize, &ve_nf_frags.mem); + nf_skb_free(skb); + kfree_skb(skb); + } +@@ -134,7 +142,7 @@ + + static __inline__ void fq_put(struct nf_ct_frag6_queue *fq) + { +- inet_frag_put(&fq->q, &nf_frags); ++ inet_frag_put(&fq->q, &ve_nf_frags); + } + + /* Kill fq entry. It is not destroyed immediately, +@@ -142,13 +150,13 @@ + */ + static __inline__ void fq_kill(struct nf_ct_frag6_queue *fq) + { +- inet_frag_kill(&fq->q, &nf_frags); ++ inet_frag_kill(&fq->q, &ve_nf_frags); + } + + static void nf_ct_frag6_evictor(void) + { + local_bh_disable(); +- inet_frag_evictor(&nf_frags); ++ inet_frag_evictor(&ve_nf_frags); + local_bh_enable(); + } + +@@ -185,7 +193,7 @@ + arg.dst = dst; + hash = ip6qhashfn(id, src, dst); + +- q = inet_frag_find(&nf_frags, &arg, hash); ++ q = inet_frag_find(&ve_nf_frags, &arg, hash); + if (q == NULL) + goto oom; + +@@ -354,7 +362,7 @@ + skb->dev = NULL; + fq->q.stamp = skb->tstamp; + fq->q.meat += skb->len; +- atomic_add(skb->truesize, &nf_frags.mem); ++ atomic_add(skb->truesize, &ve_nf_frags.mem); + + /* The first fragment. + * nhoffset is obtained from the first fragment, of course. +@@ -363,9 +371,9 @@ + fq->nhoffset = nhoff; + fq->q.last_in |= FIRST_IN; + } +- write_lock(&nf_frags.lock); +- list_move_tail(&fq->q.lru_list, &nf_frags.lru_list); +- write_unlock(&nf_frags.lock); ++ write_lock(&ve_nf_frags.lock); ++ list_move_tail(&fq->q.lru_list, &ve_nf_frags.lru_list); ++ write_unlock(&ve_nf_frags.lock); + return 0; + + err: +@@ -431,7 +439,7 @@ + clone->ip_summed = head->ip_summed; + + NFCT_FRAG6_CB(clone)->orig = NULL; +- atomic_add(clone->truesize, &nf_frags.mem); ++ atomic_add(clone->truesize, &ve_nf_frags.mem); + } + + /* We have to remove fragment header from datagram and to relocate +@@ -445,7 +453,7 @@ + skb_shinfo(head)->frag_list = head->next; + skb_reset_transport_header(head); + skb_push(head, head->data - skb_network_header(head)); +- atomic_sub(head->truesize, &nf_frags.mem); ++ atomic_sub(head->truesize, &ve_nf_frags.mem); + + for (fp=head->next; fp; fp = fp->next) { + head->data_len += fp->len; +@@ -455,7 +463,7 @@ + else if (head->ip_summed == CHECKSUM_COMPLETE) + head->csum = csum_add(head->csum, fp->csum); + head->truesize += fp->truesize; +- atomic_sub(fp->truesize, &nf_frags.mem); ++ atomic_sub(fp->truesize, &ve_nf_frags.mem); + } + + head->next = NULL; +@@ -605,7 +613,7 @@ + goto ret_orig; + } + +- if (atomic_read(&nf_frags.mem) > nf_frags_ctl.high_thresh) ++ if (atomic_read(&ve_nf_frags.mem) > ve_nf_frags_ctl.high_thresh) + nf_ct_frag6_evictor(); + + fq = fq_find(fhdr->identification, &hdr->saddr, &hdr->daddr); +@@ -676,23 +684,24 @@ + + int nf_ct_frag6_init(void) + { +- nf_frags.ctl = &nf_frags_ctl; +- nf_frags.hashfn = nf_hashfn; +- nf_frags.constructor = ip6_frag_init; +- nf_frags.destructor = NULL; +- nf_frags.skb_free = nf_skb_free; +- nf_frags.qsize = sizeof(struct nf_ct_frag6_queue); +- nf_frags.match = ip6_frag_match; +- nf_frags.frag_expire = nf_ct_frag6_expire; +- inet_frags_init(&nf_frags); ++ memcpy(&ve_nf_frags_ctl, &nf_frags_ctl, sizeof(struct inet_frags_ctl)); ++ ve_nf_frags.ctl = &ve_nf_frags_ctl; ++ ve_nf_frags.hashfn = nf_hashfn; ++ ve_nf_frags.constructor = ip6_frag_init; ++ ve_nf_frags.destructor = NULL; ++ ve_nf_frags.skb_free = nf_skb_free; ++ ve_nf_frags.qsize = sizeof(struct nf_ct_frag6_queue); ++ ve_nf_frags.match = ip6_frag_match; ++ ve_nf_frags.frag_expire = nf_ct_frag6_expire; ++ inet_frags_init(&ve_nf_frags); + + return 0; + } + + void nf_ct_frag6_cleanup(void) + { +- inet_frags_fini(&nf_frags); ++ inet_frags_fini(&ve_nf_frags); + +- nf_frags_ctl.low_thresh = 0; ++ ve_nf_frags_ctl.low_thresh = 0; + nf_ct_frag6_evictor(); + } +Index: kernel/net/ipv6/proc.c +=================================================================== +--- kernel.orig/net/ipv6/proc.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/proc.c 2008-11-24 15:47:46.000000000 +0100 +@@ -22,15 +22,21 @@ + #include + #include + #include ++#include + #include + #include + #include ++#include + #include + #include + #include + #include + ++#ifdef CONFIG_VE ++#define proc_net_devsnmp6 (get_exec_env()->_proc_net_devsnmp6) ++#else + static struct proc_dir_entry *proc_net_devsnmp6; ++#endif + + static int sockstat6_seq_show(struct seq_file *seq, void *v) + { +@@ -171,11 +177,11 @@ + snmp6_seq_show_item(seq, (void **)idev->stats.icmpv6, snmp6_icmp6_list); + snmp6_seq_show_icmpv6msg(seq, (void **)idev->stats.icmpv6msg); + } else { +- snmp6_seq_show_item(seq, (void **)ipv6_statistics, snmp6_ipstats_list); +- snmp6_seq_show_item(seq, (void **)icmpv6_statistics, snmp6_icmp6_list); +- snmp6_seq_show_icmpv6msg(seq, (void **)icmpv6msg_statistics); +- snmp6_seq_show_item(seq, (void **)udp_stats_in6, snmp6_udp6_list); +- snmp6_seq_show_item(seq, (void **)udplite_stats_in6, snmp6_udplite6_list); ++ snmp6_seq_show_item(seq, (void **)ve_ipv6_statistics, snmp6_ipstats_list); ++ snmp6_seq_show_item(seq, (void **)ve_icmpv6_statistics, snmp6_icmp6_list); ++ snmp6_seq_show_icmpv6msg(seq, (void **)ve_icmpv6msg_statistics); ++ snmp6_seq_show_item(seq, (void **)ve_udp_stats_in6, snmp6_udp6_list); ++ snmp6_seq_show_item(seq, (void **)ve_udplite_stats_in6, snmp6_udplite6_list); + } + return 0; + } +@@ -233,12 +239,27 @@ + return -ENOENT; + if (!idev || !idev->stats.proc_dir_entry) + return -EINVAL; +- remove_proc_entry(idev->stats.proc_dir_entry->name, ++ remove_proc_glob_entry(idev->stats.proc_dir_entry->name, + proc_net_devsnmp6); + idev->stats.proc_dir_entry = NULL; + return 0; + } + ++int ve_snmp_proc_init(struct ve_struct *ve) ++{ ++ ve->_proc_net_devsnmp6 = proc_mkdir("dev_snmp6", ve->_proc_net); ++ if (!ve->_proc_net_devsnmp6) ++ return -ENOMEM; ++ return 0; ++} ++EXPORT_SYMBOL(ve_snmp_proc_init); ++ ++void ve_snmp_proc_fini(struct ve_struct *ve) ++{ ++ remove_proc_entry("dev_snmp6", ve->_proc_net); ++} ++EXPORT_SYMBOL(ve_snmp_proc_fini); ++ + int __init ipv6_misc_proc_init(void) + { + int rc = 0; +@@ -246,8 +267,7 @@ + if (!proc_net_fops_create(&init_net, "snmp6", S_IRUGO, &snmp6_seq_fops)) + goto proc_snmp6_fail; + +- proc_net_devsnmp6 = proc_mkdir("dev_snmp6", init_net.proc_net); +- if (!proc_net_devsnmp6) ++ if (ve_snmp_proc_init(get_exec_env())) + goto proc_dev_snmp6_fail; + + if (!proc_net_fops_create(&init_net, "sockstat6", S_IRUGO, &sockstat6_seq_fops)) +@@ -256,7 +276,7 @@ + return rc; + + proc_sockstat6_fail: +- proc_net_remove(&init_net, "dev_snmp6"); ++ ve_snmp_proc_fini(get_exec_env()); + proc_dev_snmp6_fail: + proc_net_remove(&init_net, "snmp6"); + proc_snmp6_fail: +@@ -267,7 +287,7 @@ + void ipv6_misc_proc_exit(void) + { + proc_net_remove(&init_net, "sockstat6"); +- proc_net_remove(&init_net, "dev_snmp6"); ++ ve_snmp_proc_fini(get_exec_env()); + proc_net_remove(&init_net, "snmp6"); + } + +Index: kernel/net/ipv6/raw.c +=================================================================== +--- kernel.orig/net/ipv6/raw.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/raw.c 2008-11-24 15:47:46.000000000 +0100 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -102,6 +103,10 @@ + if (sk->sk_bound_dev_if && sk->sk_bound_dev_if != dif) + continue; + ++ if (!ve_accessible_strict(sk->owner_env, ++ get_exec_env())) ++ continue; ++ + if (!ipv6_addr_any(&np->rcv_saddr)) { + if (ipv6_addr_equal(&np->rcv_saddr, loc_addr)) + goto found; +@@ -283,7 +288,7 @@ + if (!sk->sk_bound_dev_if) + goto out; + +- dev = dev_get_by_index(&init_net, sk->sk_bound_dev_if); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, sk->sk_bound_dev_if); + if (!dev) { + err = -ENODEV; + goto out; +@@ -1200,8 +1205,13 @@ + do { + sk = sk_next(sk); + try_again: +- ; +- } while (sk && sk->sk_family != PF_INET6); ++ if (!sk) ++ break; ++ if (sk->sk_family != PF_INET6) ++ continue; ++ if (ve_accessible(sk->owner_env, get_exec_env())) ++ break; ++ } while (1); + + if (!sk && ++state->bucket < RAWV6_HTABLE_SIZE) { + sk = sk_head(&raw_v6_htable[state->bucket]); +Index: kernel/net/ipv6/reassembly.c +=================================================================== +--- kernel.orig/net/ipv6/reassembly.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/reassembly.c 2008-11-24 15:47:46.000000000 +0100 +@@ -34,6 +34,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -80,6 +81,7 @@ + int iif; + unsigned int csum; + __u16 nhoffset; ++ struct ve_struct *owner_ve; + }; + + struct inet_frags_ctl ip6_frags_ctl __read_mostly = { +@@ -151,7 +153,8 @@ + fq = container_of(q, struct frag_queue, q); + return (fq->id == arg->id && + ipv6_addr_equal(&fq->saddr, arg->src) && +- ipv6_addr_equal(&fq->daddr, arg->dst)); ++ ipv6_addr_equal(&fq->daddr, arg->dst) && ++ fq->owner_ve == get_exec_env()); + } + EXPORT_SYMBOL(ip6_frag_match); + +@@ -203,8 +206,10 @@ + { + struct frag_queue *fq; + struct net_device *dev = NULL; ++ struct ve_struct *old_ve; + + fq = container_of((struct inet_frag_queue *)data, struct frag_queue, q); ++ old_ve = set_exec_env(fq->owner_ve); + + spin_lock(&fq->q.lock); + +@@ -213,7 +218,7 @@ + + fq_kill(fq); + +- dev = dev_get_by_index(&init_net, fq->iif); ++ dev = dev_get_by_index(get_exec_env()->ve_ns->net_ns, fq->iif); + if (!dev) + goto out; + +@@ -238,6 +243,8 @@ + dev_put(dev); + spin_unlock(&fq->q.lock); + fq_put(fq); ++ ++ (void)set_exec_env(old_ve); + } + + static __inline__ struct frag_queue * +@@ -511,6 +518,7 @@ + clone->csum = 0; + clone->ip_summed = head->ip_summed; + atomic_add(clone->truesize, &ip6_frags.mem); ++ clone->owner_env = head->owner_env; + } + + /* We have to remove fragment header from datagram and to relocate +Index: kernel/net/ipv6/route.c +=================================================================== +--- kernel.orig/net/ipv6/route.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/route.c 2008-11-24 15:47:46.000000000 +0100 +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -49,7 +50,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -216,9 +216,10 @@ + { + struct rt6_info *rt = (struct rt6_info *)dst; + struct inet6_dev *idev = rt->rt6i_idev; ++ struct net_device *loopback_dev = dev->nd_net->loopback_dev; + +- if (dev != init_net.loopback_dev && idev != NULL && idev->dev == dev) { +- struct inet6_dev *loopback_idev = in6_dev_get(init_net.loopback_dev); ++ if (dev != loopback_dev && idev != NULL && idev->dev == dev) { ++ struct inet6_dev *loopback_idev = in6_dev_get(loopback_dev); + if (loopback_idev != NULL) { + rt->rt6i_idev = loopback_idev; + in6_dev_put(idev); +@@ -668,8 +669,9 @@ + int strict = 0; + int attempts = 3; + int err; +- int reachable = ipv6_devconf.forwarding ? 0 : RT6_LOOKUP_F_REACHABLE; +- ++ int reachable; ++ ++ reachable = ve_ipv6_devconf.forwarding ? 0 : RT6_LOOKUP_F_REACHABLE; + strict |= flags & RT6_LOOKUP_F_IFACE; + + relookup: +@@ -1033,7 +1035,7 @@ + + int ipv6_get_hoplimit(struct net_device *dev) + { +- int hoplimit = ipv6_devconf.hop_limit; ++ int hoplimit = ve_ipv6_devconf.hop_limit; + struct inet6_dev *idev; + + idev = in6_dev_get(dev); +@@ -1050,6 +1052,7 @@ + + int ip6_route_add(struct fib6_config *cfg) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + int err; + struct rt6_info *rt = NULL; + struct net_device *dev = NULL; +@@ -1065,7 +1068,7 @@ + #endif + if (cfg->fc_ifindex) { + err = -ENODEV; +- dev = dev_get_by_index(&init_net, cfg->fc_ifindex); ++ dev = dev_get_by_index(net, cfg->fc_ifindex); + if (!dev) + goto out; + idev = in6_dev_get(dev); +@@ -1122,13 +1125,15 @@ + */ + if ((cfg->fc_flags & RTF_REJECT) || + (dev && (dev->flags&IFF_LOOPBACK) && !(addr_type&IPV6_ADDR_LOOPBACK))) { ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ + /* hold loopback dev/idev if we haven't done so. */ +- if (dev != init_net.loopback_dev) { ++ if (dev != net->loopback_dev) { + if (dev) { + dev_put(dev); + in6_dev_put(idev); + } +- dev = init_net.loopback_dev; ++ dev = net->loopback_dev; + dev_hold(dev); + idev = in6_dev_get(dev); + if (!idev) { +@@ -1827,18 +1832,19 @@ + const struct in6_addr *addr, + int anycast) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct rt6_info *rt = ip6_dst_alloc(); + + if (rt == NULL) + return ERR_PTR(-ENOMEM); + +- dev_hold(init_net.loopback_dev); ++ dev_hold(net->loopback_dev); + in6_dev_hold(idev); + + rt->u.dst.flags = DST_HOST; + rt->u.dst.input = ip6_input; + rt->u.dst.output = ip6_output; +- rt->rt6i_dev = init_net.loopback_dev; ++ rt->rt6i_dev = net->loopback_dev; + rt->rt6i_idev = idev; + rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev); + rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst)); +@@ -1850,10 +1856,12 @@ + rt->rt6i_flags |= RTF_ANYCAST; + else + rt->rt6i_flags |= RTF_LOCAL; +- rt->rt6i_nexthop = ndisc_get_neigh(rt->rt6i_dev, &rt->rt6i_gateway); +- if (rt->rt6i_nexthop == NULL) { +- dst_free(&rt->u.dst); +- return ERR_PTR(-ENOMEM); ++ rt->rt6i_nexthop = __neigh_lookup_errno(&nd_tbl, &rt->rt6i_gateway, rt->rt6i_dev); ++ if (IS_ERR(rt->rt6i_nexthop)) { ++ void *err = rt->rt6i_nexthop; ++ rt->rt6i_nexthop = NULL; ++ dst_free((struct dst_entry *) rt); ++ return err; + } + + ipv6_addr_copy(&rt->rt6i_dst.addr, addr); +@@ -2129,8 +2137,12 @@ + if (rt->u.dst.neighbour) + NLA_PUT(skb, RTA_GATEWAY, 16, &rt->u.dst.neighbour->primary_key); + +- if (rt->u.dst.dev) +- NLA_PUT_U32(skb, RTA_OIF, rt->rt6i_dev->ifindex); ++ if (rt->u.dst.dev) { ++ struct net_device *odev = rt->rt6i_dev; ++ if (rt == &ip6_null_entry) ++ odev = get_exec_env()->ve_ns->net_ns->loopback_dev; ++ NLA_PUT_U32(skb, RTA_OIF, odev->ifindex); ++ } + + NLA_PUT_U32(skb, RTA_PRIORITY, rt->rt6i_metric); + +@@ -2164,6 +2176,7 @@ + + static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void *arg) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct nlattr *tb[RTA_MAX+1]; + struct rt6_info *rt; + struct sk_buff *skb; +@@ -2200,7 +2213,7 @@ + + if (iif) { + struct net_device *dev; +- dev = __dev_get_by_index(&init_net, iif); ++ dev = __dev_get_by_index(net, iif); + if (!dev) { + err = -ENODEV; + goto errout; +@@ -2501,3 +2514,54 @@ + fib6_gc_cleanup(); + kmem_cache_destroy(ip6_dst_ops.kmem_cachep); + } ++ ++#ifdef CONFIG_VE ++int init_ve_route6(struct ve_struct *ve) ++{ ++ struct ve_struct *old_env = set_exec_env(ve); ++ ve->_fib6_table = kzalloc(sizeof(struct fib6_table), GFP_KERNEL_UBC); ++ if (!ve->_fib6_table) { ++ set_exec_env(old_env); ++ return -ENOMEM; ++ } ++ ve->_fib6_table->owner_env = ve; ++ ve->_fib6_table->tb6_id = RT6_TABLE_MAIN; ++ ve->_fib6_table->tb6_root.leaf = &ip6_null_entry; ++ ve->_fib6_table->tb6_root.fn_flags = RTN_ROOT | RTN_TL_ROOT | ++ RTN_RTINFO; ++#ifdef CONFIG_IPV6_MULTIPLE_TABLES ++ ve->_fib6_local_table = kzalloc(sizeof(struct fib6_table), ++ GFP_KERNEL_UBC); ++ if (!ve->_fib6_local_table) { ++ kfree(ve->_fib6_table); ++ set_exec_env(old_env); ++ return -ENOMEM; ++ } ++ ve->_fib6_local_table->owner_env = ve; ++ ve->_fib6_local_table->tb6_id = RT6_TABLE_LOCAL; ++ ve->_fib6_local_table->tb6_root.leaf = &ip6_null_entry; ++ ve->_fib6_local_table->tb6_root.fn_flags = RTN_ROOT | RTN_TL_ROOT | ++ RTN_RTINFO; ++#endif ++ fib6_tables_init(); ++ set_exec_env(old_env); ++ return 0; ++} ++EXPORT_SYMBOL(init_ve_route6); ++ ++void fini_ve_route6(struct ve_struct *ve) ++{ ++ struct ve_struct *old_env = set_exec_env(ve); ++ ++ if (ve->_fib6_table) { ++ rt6_ifdown(NULL); ++ fib6_tables_cleanup(); ++ kfree(ve->_fib6_table); ++#ifdef CONFIG_IPV6_MULTIPLE_TABLES ++ kfree(ve->_fib6_local_table); ++#endif ++ } ++ set_exec_env(old_env); ++} ++EXPORT_SYMBOL(fini_ve_route6); ++#endif +Index: kernel/net/ipv6/sit.c +=================================================================== +--- kernel.orig/net/ipv6/sit.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/sit.c 2008-11-24 15:47:46.000000000 +0100 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -52,6 +53,8 @@ + #include + #include + ++#include ++ + /* + This version of net/ipv6/sit.c is cloned of net/ipv4/ip_gre.c + +@@ -65,6 +68,26 @@ + static int ipip6_tunnel_init(struct net_device *dev); + static void ipip6_tunnel_setup(struct net_device *dev); + ++#ifdef CONFIG_VE ++struct ve_sit_tunnels { ++ struct net_device *_ipip6_fb_tunnel_dev; ++ struct ip_tunnel *_tunnels_r_l[HASH_SIZE]; ++ struct ip_tunnel *_tunnels_r[HASH_SIZE]; ++ struct ip_tunnel *_tunnels_l[HASH_SIZE]; ++ struct ip_tunnel *_tunnels_wc[1]; ++ struct ip_tunnel **_tunnels[4]; ++ rwlock_t _ipip6_lock; ++}; ++ ++#define ipip6_fb_tunnel_dev \ ++ (get_exec_env()->_sit_tunnels->_ipip6_fb_tunnel_dev) ++#define tunnels_r_l (get_exec_env()->_sit_tunnels->_tunnels_r_l) ++#define tunnels_r (get_exec_env()->_sit_tunnels->_tunnels_r) ++#define tunnels_l (get_exec_env()->_sit_tunnels->_tunnels_l) ++#define tunnels_wc (get_exec_env()->_sit_tunnels->_tunnels_wc) ++#define tunnels (get_exec_env()->_sit_tunnels->_tunnels) ++#define ipip6_lock (get_exec_env()->_sit_tunnels->_ipip6_lock) ++#else + static struct net_device *ipip6_fb_tunnel_dev; + + static struct ip_tunnel *tunnels_r_l[HASH_SIZE]; +@@ -74,6 +97,7 @@ + static struct ip_tunnel **tunnels[4] = { tunnels_wc, tunnels_l, tunnels_r, tunnels_r_l }; + + static DEFINE_RWLOCK(ipip6_lock); ++#endif + + static struct ip_tunnel * ipip6_tunnel_lookup(__be32 remote, __be32 local) + { +@@ -167,7 +191,7 @@ + int i; + for (i=1; i<100; i++) { + sprintf(name, "sit%d", i); +- if (__dev_get_by_name(&init_net, name) == NULL) ++ if (__dev_get_by_name(get_exec_env()->ve_ns->net_ns, name) == NULL) + break; + } + if (i==100) +@@ -619,9 +643,12 @@ + case SIOCADDTUNNEL: + case SIOCCHGTUNNEL: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) ++#ifdef CONFIG_VE ++ && !capable(CAP_VE_NET_ADMIN) ++#endif ++ ) + goto done; +- + err = -EFAULT; + if (copy_from_user(&p, ifr->ifr_ifru.ifru_data, sizeof(p))) + goto done; +@@ -672,7 +699,11 @@ + + case SIOCDELTUNNEL: + err = -EPERM; +- if (!capable(CAP_NET_ADMIN)) ++ if (!capable(CAP_NET_ADMIN) ++#ifdef CONFIG_VE ++ && !capable(CAP_VE_NET_ADMIN) ++#endif ++ ) + goto done; + + if (dev == ipip6_fb_tunnel_dev) { +@@ -727,6 +758,9 @@ + dev->flags = IFF_NOARP; + dev->iflink = 0; + dev->addr_len = 4; ++#ifdef CONFIG_VE ++ dev->features |= NETIF_F_VIRTUAL; ++#endif + } + + static int ipip6_tunnel_init(struct net_device *dev) +@@ -760,7 +794,7 @@ + } + + if (!tdev && tunnel->parms.link) +- tdev = __dev_get_by_index(&init_net, tunnel->parms.link); ++ tdev = __dev_get_by_index(get_exec_env()->ve_ns->net_ns, tunnel->parms.link); + + if (tdev) { + dev->hard_header_len = tdev->hard_header_len + sizeof(struct iphdr); +@@ -773,7 +807,7 @@ + return 0; + } + +-static int __init ipip6_fb_tunnel_init(struct net_device *dev) ++static int ipip6_fb_tunnel_init(struct net_device *dev) + { + struct ip_tunnel *tunnel = netdev_priv(dev); + struct iphdr *iph = &tunnel->parms.iph; +@@ -797,7 +831,7 @@ + .priority = 1, + }; + +-static void __exit sit_destroy_tunnels(void) ++static void sit_destroy_tunnels(void) + { + int prio; + +@@ -811,14 +845,92 @@ + } + } + ++#ifdef CONFIG_VE ++static int sit_ve_start(void *data) ++{ ++ struct ve_struct *ve = data; ++ struct ve_sit_tunnels *st; ++ int err; ++ ++ if (!ve_is_super(ve)) ++ __module_get(THIS_MODULE); ++ ++ st = kzalloc(sizeof(struct ve_sit_tunnels), GFP_KERNEL_UBC); ++ if (!st) { ++ err = -ENOMEM; ++ goto out; ++ } ++ st->_tunnels[0] = st->_tunnels_wc; ++ st->_tunnels[1] = st->_tunnels_l; ++ st->_tunnels[2] = st->_tunnels_r; ++ st->_tunnels[3] = st->_tunnels_r_l; ++ rwlock_init(&st->_ipip6_lock); ++ ++ ve->_sit_tunnels = st; ++ if (ve_is_super(ve)) ++ goto out_ok; ++ ++ st->_ipip6_fb_tunnel_dev = alloc_netdev(sizeof(struct ip_tunnel), ++ "sit0", ipip6_tunnel_setup); ++ if (!st->_ipip6_fb_tunnel_dev) { ++ err = -ENOMEM; ++ goto free_tunnel; ++ } ++ st->_ipip6_fb_tunnel_dev->init = ipip6_fb_tunnel_init; ++ err = register_netdev(st->_ipip6_fb_tunnel_dev); ++ if (err < 0) ++ goto free_netdev; ++out_ok: ++ return 0; ++ ++free_netdev: ++ free_netdev(st->_ipip6_fb_tunnel_dev); ++free_tunnel: ++ kfree(st); ++ if (!ve_is_super(ve)) ++ module_put(THIS_MODULE); ++out: ++ return err; ++} ++ ++static void sit_ve_stop(void *data) ++{ ++ struct ve_struct *ve = data; ++ ++ if (ve->_sit_tunnels == NULL) ++ return; ++ if (!ve_is_super(ve)) { ++ rtnl_lock(); ++ sit_destroy_tunnels(); ++ unregister_netdevice(ipip6_fb_tunnel_dev); ++ rtnl_unlock(); ++ } ++ kfree(ve->_sit_tunnels); ++ ve->_sit_tunnels = NULL; ++ if (!ve_is_super(ve)) ++ module_put(THIS_MODULE); ++} ++ ++static struct ve_hook sit_ve_hook = { ++ .init = sit_ve_start, ++ .fini = sit_ve_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_NET_POST, ++}; ++#endif ++ + static void __exit sit_cleanup(void) + { ++ ve_hook_unregister(&sit_ve_hook); + xfrm4_tunnel_deregister(&sit_handler, AF_INET6); + + rtnl_lock(); + sit_destroy_tunnels(); + unregister_netdevice(ipip6_fb_tunnel_dev); + rtnl_unlock(); ++#ifdef CONFIG_VE ++ sit_ve_stop(get_exec_env()); ++#endif + } + + static int __init sit_init(void) +@@ -832,23 +944,35 @@ + return -EAGAIN; + } + ++#ifdef CONFIG_VE ++ err = sit_ve_start(get_exec_env()); ++ if (err) ++ goto err1; ++#endif ++ + ipip6_fb_tunnel_dev = alloc_netdev(sizeof(struct ip_tunnel), "sit0", + ipip6_tunnel_setup); + if (!ipip6_fb_tunnel_dev) { + err = -ENOMEM; +- goto err1; ++ goto err2; + } + + ipip6_fb_tunnel_dev->init = ipip6_fb_tunnel_init; + + if ((err = register_netdev(ipip6_fb_tunnel_dev))) +- goto err2; ++ goto err3; ++ ++ ve_hook_register(VE_SS_CHAIN, &sit_ve_hook); + + out: + return err; +- err2: ++ err3: + free_netdev(ipip6_fb_tunnel_dev); +- err1: ++ err2: ++#ifdef CONFIG_VE ++ sit_ve_stop(get_exec_env()); ++err1: ++#endif + xfrm4_tunnel_deregister(&sit_handler, AF_INET6); + goto out; + } +Index: kernel/net/ipv6/tcp_ipv6.c +=================================================================== +--- kernel.orig/net/ipv6/tcp_ipv6.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/tcp_ipv6.c 2008-11-24 15:47:46.000000000 +0100 +@@ -61,6 +61,8 @@ + #include + #include + ++#include ++ + #include + + #include +@@ -79,7 +81,7 @@ + + static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb); + +-static struct inet_connection_sock_af_ops ipv6_mapped; ++struct inet_connection_sock_af_ops ipv6_mapped; + static struct inet_connection_sock_af_ops ipv6_specific; + #ifdef CONFIG_TCP_MD5SIG + static struct tcp_sock_af_ops tcp_sock_ipv6_specific; +@@ -1552,6 +1554,7 @@ + struct ipv6_pinfo *np = inet6_sk(sk); + struct tcp_sock *tp; + struct sk_buff *opt_skb = NULL; ++ struct user_beancounter *ub; + + /* Imagine: socket is IPv6. IPv4 packet arrives, + goes to IPv4 receive handler and backlogged. +@@ -1564,6 +1567,8 @@ + if (skb->protocol == htons(ETH_P_IP)) + return tcp_v4_do_rcv(sk, skb); + ++ ub = set_exec_ub(sock_bc(sk)->ub); ++ + #ifdef CONFIG_TCP_MD5SIG + if (tcp_v6_inbound_md5_hash (sk, skb)) + goto discard; +@@ -1600,7 +1605,7 @@ + TCP_CHECK_TIMER(sk); + if (opt_skb) + goto ipv6_pktoptions; +- return 0; ++ goto restore_context; + } + + if (skb->len < tcp_hdrlen(skb) || tcp_checksum_complete(skb)) +@@ -1621,7 +1626,7 @@ + goto reset; + if (opt_skb) + __kfree_skb(opt_skb); +- return 0; ++ goto restore_context; + } + } + +@@ -1631,6 +1636,9 @@ + TCP_CHECK_TIMER(sk); + if (opt_skb) + goto ipv6_pktoptions; ++ ++restore_context: ++ (void)set_exec_ub(ub); + return 0; + + reset: +@@ -1639,7 +1647,7 @@ + if (opt_skb) + __kfree_skb(opt_skb); + kfree_skb(skb); +- return 0; ++ goto restore_context; + csum_err: + TCP_INC_STATS_BH(TCP_MIB_INERRS); + goto discard; +@@ -1671,7 +1679,7 @@ + + if (opt_skb) + kfree_skb(opt_skb); +- return 0; ++ goto restore_context; + } + + static int tcp_v6_rcv(struct sk_buff *skb) +@@ -1851,7 +1859,7 @@ + * TCP over IPv4 via INET6 API + */ + +-static struct inet_connection_sock_af_ops ipv6_mapped = { ++struct inet_connection_sock_af_ops ipv6_mapped = { + .queue_xmit = ip_queue_xmit, + .send_check = tcp_v4_send_check, + .rebuild_header = inet_sk_rebuild_header, +@@ -1869,6 +1877,8 @@ + #endif + }; + ++EXPORT_SYMBOL_GPL(ipv6_mapped); ++ + #ifdef CONFIG_TCP_MD5SIG + static struct tcp_sock_af_ops tcp_sock_ipv6_mapped_specific = { + .md5_lookup = tcp_v4_md5_lookup, +Index: kernel/net/ipv6/udp.c +=================================================================== +--- kernel.orig/net/ipv6/udp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/udp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -65,12 +65,15 @@ + struct hlist_node *node; + unsigned short hnum = ntohs(dport); + int badness = -1; ++ struct ve_struct *ve; + ++ ve = get_exec_env(); + read_lock(&udp_hash_lock); +- sk_for_each(sk, node, &udptable[hnum & (UDP_HTABLE_SIZE - 1)]) { ++ sk_for_each(sk, node, &udptable[udp_hashfn(hnum, VEID(ve))]) { + struct inet_sock *inet = inet_sk(sk); + +- if (sk->sk_hash == hnum && sk->sk_family == PF_INET6) { ++ if (inet->num == hnum && sk->sk_family == PF_INET6 && ++ ve_accessible_strict(sk->owner_env, ve)) { + struct ipv6_pinfo *np = inet6_sk(sk); + int score = 0; + if (inet->dport) { +@@ -349,7 +352,7 @@ + int dif; + + read_lock(&udp_hash_lock); +- sk = sk_head(&udptable[ntohs(uh->dest) & (UDP_HTABLE_SIZE - 1)]); ++ sk = sk_head(&udptable[udp_hashfn(ntohs(uh->dest), VEID(skb->owner_env))]); + dif = inet6_iif(skb); + sk = udp_v6_mcast_next(sk, uh->dest, daddr, uh->source, saddr, dif); + if (!sk) { +Index: kernel/net/ipv6/xfrm6_policy.c +=================================================================== +--- kernel.orig/net/ipv6/xfrm6_policy.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/ipv6/xfrm6_policy.c 2008-11-24 15:47:46.000000000 +0100 +@@ -362,7 +362,8 @@ + + xdst = (struct xfrm_dst *)dst; + if (xdst->u.rt6.rt6i_idev->dev == dev) { +- struct inet6_dev *loopback_idev = in6_dev_get(init_net.loopback_dev); ++ struct inet6_dev *loopback_idev = ++ in6_dev_get(dev->nd_net->loopback_dev); + BUG_ON(!loopback_idev); + + do { +Index: kernel/net/netfilter/core.c +=================================================================== +--- kernel.orig/net/netfilter/core.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/core.c 2008-11-24 15:47:46.000000000 +0100 +@@ -59,16 +59,34 @@ + struct list_head nf_hooks[NPROTO][NF_MAX_HOOKS] __read_mostly; + EXPORT_SYMBOL(nf_hooks); + static DEFINE_MUTEX(nf_hook_mutex); ++#ifdef CONFIG_VE_IPTABLES ++#define VE_NF_HOOKS(env, x, y) \ ++ ((struct list_head (*)[NF_MAX_HOOKS])(env->_nf_hooks))[x][y] ++#else ++#define VE_NF_HOOKS(env, x, y) nf_hooks[x][y] ++#endif + + int nf_register_hook(struct nf_hook_ops *reg) + { + struct list_head *i; ++ struct ve_struct *env; + int err; + ++ env = get_exec_env(); ++ if (!ve_is_super(env)) { ++ struct nf_hook_ops *tmp; ++ tmp = kmemdup(reg, sizeof(struct nf_hook_ops), GFP_KERNEL); ++ if (!tmp) ++ return -ENOMEM; ++ reg = tmp; ++ } ++ + err = mutex_lock_interruptible(&nf_hook_mutex); +- if (err < 0) ++ if (err < 0) { ++ kfree(reg); + return err; +- list_for_each(i, &nf_hooks[reg->pf][reg->hooknum]) { ++ } ++ list_for_each(i, &VE_NF_HOOKS(env, reg->pf, reg->hooknum)) { + if (reg->priority < ((struct nf_hook_ops *)i)->priority) + break; + } +@@ -80,11 +98,29 @@ + + void nf_unregister_hook(struct nf_hook_ops *reg) + { ++ struct nf_hook_ops *i; ++ struct ve_struct *env; ++ ++ env = get_exec_env(); ++ if (!ve_is_super(env)) { ++ list_for_each_entry_rcu(i, ++ &VE_NF_HOOKS(env, reg->pf, reg->hooknum), list) { ++ if (reg->hook == i->hook) { ++ reg = i; ++ break; ++ } ++ } ++ if (reg != i) ++ return; ++ } ++ + mutex_lock(&nf_hook_mutex); + list_del_rcu(®->list); + mutex_unlock(&nf_hook_mutex); + + synchronize_net(); ++ if (!ve_is_super(env)) ++ kfree(reg); + } + EXPORT_SYMBOL(nf_unregister_hook); + +@@ -169,13 +205,15 @@ + struct list_head *elem; + unsigned int verdict; + int ret = 0; ++ struct ve_struct *ve; + + /* We may already have this, but read-locks nest anyway */ + rcu_read_lock(); + +- elem = &nf_hooks[pf][hook]; ++ ve = get_exec_env(); ++ elem = &VE_NF_HOOKS(ve, pf, hook); + next_hook: +- verdict = nf_iterate(&nf_hooks[pf][hook], skb, hook, indev, ++ verdict = nf_iterate(&VE_NF_HOOKS(ve, pf, hook), skb, hook, indev, + outdev, &elem, okfn, hook_thresh); + if (verdict == NF_ACCEPT || verdict == NF_STOP) { + ret = 1; +@@ -275,13 +313,54 @@ + EXPORT_SYMBOL(proc_net_netfilter); + #endif + +-void __init netfilter_init(void) ++void init_nf_hooks(struct list_head (*nh)[NF_MAX_HOOKS]) + { + int i, h; + for (i = 0; i < NPROTO; i++) { + for (h = 0; h < NF_MAX_HOOKS; h++) +- INIT_LIST_HEAD(&nf_hooks[i][h]); ++ INIT_LIST_HEAD(&nh[i][h]); + } ++} ++ ++int init_netfilter(void) ++{ ++#ifdef CONFIG_VE_IPTABLES ++ struct ve_struct *envid; ++ ++ envid = get_exec_env(); ++ envid->_nf_hooks = kmalloc(sizeof(nf_hooks), GFP_KERNEL); ++ if (envid->_nf_hooks == NULL) ++ return -ENOMEM; ++ ++ /* FIXME: charge ubc */ ++ ++ init_nf_hooks(envid->_nf_hooks); ++ return 0; ++#else ++ init_nf_hooks(nf_hooks); ++ return 0; ++#endif ++} ++EXPORT_SYMBOL(init_netfilter); ++ ++#ifdef CONFIG_VE_IPTABLES ++void fini_netfilter(void) ++{ ++ struct ve_struct *envid; ++ ++ envid = get_exec_env(); ++ if (envid->_nf_hooks != NULL) ++ kfree(envid->_nf_hooks); ++ envid->_nf_hooks = NULL; ++ ++ /* FIXME: uncharge ubc */ ++} ++EXPORT_SYMBOL(fini_netfilter); ++#endif ++ ++void __init netfilter_init(void) ++{ ++ init_netfilter(); + + #ifdef CONFIG_PROC_FS + proc_net_netfilter = proc_mkdir("netfilter", init_net.proc_net); +Index: kernel/net/netfilter/nf_conntrack_core.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_core.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_core.c 2008-11-24 15:47:46.000000000 +0100 +@@ -38,6 +38,9 @@ + #include + #include + ++#include ++#include ++ + #define NF_CONNTRACK_VERSION "0.5.0" + + DEFINE_RWLOCK(nf_conntrack_lock); +@@ -177,7 +180,14 @@ + destroy_conntrack(struct nf_conntrack *nfct) + { + struct nf_conn *ct = (struct nf_conn *)nfct; ++ struct nf_conn_help *help = nfct_help(ct); ++ struct nf_conntrack_l3proto *l3proto; + struct nf_conntrack_l4proto *l4proto; ++#ifdef CONFIG_VE_IPTABLES ++ struct ve_struct *old_ve; ++ ++ old_ve = set_exec_env(ct->ct_owner_env); ++#endif + + pr_debug("destroy_conntrack(%p)\n", ct); + NF_CT_ASSERT(atomic_read(&nfct->use) == 0); +@@ -186,10 +196,17 @@ + nf_conntrack_event(IPCT_DESTROY, ct); + set_bit(IPS_DYING_BIT, &ct->status); + ++ if (help && help->helper && help->helper->destroy) ++ help->helper->destroy(ct); ++ + /* To make sure we don't get any weird locking issues here: + * destroy_conntrack() MUST NOT be called with a write lock + * to nf_conntrack_lock!!! -HW */ + rcu_read_lock(); ++ l3proto = __nf_ct_l3proto_find(ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.l3num); ++ if (l3proto && l3proto->destroy) ++ l3proto->destroy(ct); ++ + l4proto = __nf_ct_l4proto_find(ct->tuplehash[IP_CT_DIR_REPLY].tuple.src.l3num, + ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.protonum); + if (l4proto && l4proto->destroy) +@@ -220,6 +237,9 @@ + + pr_debug("destroy_conntrack: returning ct=%p to slab\n", ct); + nf_conntrack_free(ct); ++#ifdef CONFIG_VE_IPTABLES ++ (void)set_exec_env(old); ++#endif + } + + static void death_by_timeout(unsigned long ul_conntrack) +@@ -253,7 +273,7 @@ + struct hlist_node *n; + unsigned int hash = hash_conntrack(tuple); + +- hlist_for_each_entry(h, n, &nf_conntrack_hash[hash], hnode) { ++ hlist_for_each_entry(h, n, &ve_nf_conntrack_hash[hash], hnode) { + if (nf_ct_tuplehash_to_ctrack(h) != ignored_conntrack && + nf_ct_tuple_equal(tuple, &h->tuple)) { + NF_CT_STAT_INC(found); +@@ -287,9 +307,9 @@ + unsigned int repl_hash) + { + hlist_add_head(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnode, +- &nf_conntrack_hash[hash]); ++ &ve_nf_conntrack_hash[hash]); + hlist_add_head(&ct->tuplehash[IP_CT_DIR_REPLY].hnode, +- &nf_conntrack_hash[repl_hash]); ++ &ve_nf_conntrack_hash[repl_hash]); + } + + void nf_conntrack_hash_insert(struct nf_conn *ct) +@@ -343,11 +363,11 @@ + /* See if there's one in the list already, including reverse: + NAT could have grabbed it without realizing, since we're + not in the hash. If there is, we lost race. */ +- hlist_for_each_entry(h, n, &nf_conntrack_hash[hash], hnode) ++ hlist_for_each_entry(h, n, &ve_nf_conntrack_hash[hash], hnode) + if (nf_ct_tuple_equal(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple, + &h->tuple)) + goto out; +- hlist_for_each_entry(h, n, &nf_conntrack_hash[repl_hash], hnode) ++ hlist_for_each_entry(h, n, &ve_nf_conntrack_hash[repl_hash], hnode) + if (nf_ct_tuple_equal(&ct->tuplehash[IP_CT_DIR_REPLY].tuple, + &h->tuple)) + goto out; +@@ -415,7 +435,7 @@ + + read_lock_bh(&nf_conntrack_lock); + for (i = 0; i < nf_conntrack_htable_size; i++) { +- hlist_for_each_entry(h, n, &nf_conntrack_hash[hash], hnode) { ++ hlist_for_each_entry(h, n, &ve_nf_conntrack_hash[hash], hnode) { + tmp = nf_ct_tuplehash_to_ctrack(h); + if (!test_bit(IPS_ASSURED_BIT, &tmp->status)) + ct = tmp; +@@ -442,9 +462,11 @@ + } + + struct nf_conn *nf_conntrack_alloc(const struct nf_conntrack_tuple *orig, +- const struct nf_conntrack_tuple *repl) ++ const struct nf_conntrack_tuple *repl, ++ struct user_beancounter *ub) + { + struct nf_conn *conntrack = NULL; ++ struct user_beancounter *old_ub; + + if (unlikely(!nf_conntrack_hash_rnd_initted)) { + get_random_bytes(&nf_conntrack_hash_rnd, 4); +@@ -452,25 +474,27 @@ + } + + /* We don't want any race condition at early drop stage */ +- atomic_inc(&nf_conntrack_count); ++ atomic_inc(&ve_nf_conntrack_count); + +- if (nf_conntrack_max +- && atomic_read(&nf_conntrack_count) > nf_conntrack_max) { ++ if (ve_nf_conntrack_max ++ && atomic_read(&ve_nf_conntrack_count) > ve_nf_conntrack_max) { + unsigned int hash = hash_conntrack(orig); + if (!early_drop(hash)) { +- atomic_dec(&nf_conntrack_count); ++ atomic_dec(&ve_nf_conntrack_count); + if (net_ratelimit()) +- printk(KERN_WARNING +- "nf_conntrack: table full, dropping" +- " packet.\n"); ++ ve_printk(VE_LOG_BOTH, KERN_WARNING ++ "nf_conntrack: CT %d: table full, dropping" ++ " packet.\n", VEID(get_exec_env())); + return ERR_PTR(-ENOMEM); + } + } + ++ old_ub = set_exec_ub(ub); + conntrack = kmem_cache_zalloc(nf_conntrack_cachep, GFP_ATOMIC); ++ (void)set_exec_ub(old_ub); + if (conntrack == NULL) { + pr_debug("nf_conntrack_alloc: Can't alloc conntrack.\n"); +- atomic_dec(&nf_conntrack_count); ++ atomic_dec(&ve_nf_conntrack_count); + return ERR_PTR(-ENOMEM); + } + +@@ -480,6 +504,9 @@ + /* Don't set timer yet: wait for confirmation */ + setup_timer(&conntrack->timeout, death_by_timeout, + (unsigned long)conntrack); ++#ifdef CONFIG_VE_IPTABLES ++ conntrack->ct_owner_env = get_exec_env(); ++#endif + + return conntrack; + } +@@ -489,7 +516,7 @@ + { + nf_ct_ext_free(conntrack); + kmem_cache_free(nf_conntrack_cachep, conntrack); +- atomic_dec(&nf_conntrack_count); ++ atomic_dec(&ve_nf_conntrack_count); + } + EXPORT_SYMBOL_GPL(nf_conntrack_free); + +@@ -506,13 +533,20 @@ + struct nf_conn_help *help; + struct nf_conntrack_tuple repl_tuple; + struct nf_conntrack_expect *exp; ++ struct user_beancounter *ub = NULL; + + if (!nf_ct_invert_tuple(&repl_tuple, tuple, l3proto, l4proto)) { + pr_debug("Can't invert tuple.\n"); + return NULL; + } + +- conntrack = nf_conntrack_alloc(tuple, &repl_tuple); ++#ifdef CONFIG_BEANCOUNTERS ++ if (skb->dev != NULL) /* received skb */ ++ ub = netdev_bc(skb->dev)->exec_ub; ++ else if (skb->sk != NULL) /* sent skb */ ++ ub = sock_bc(skb->sk)->ub; ++#endif ++ conntrack = nf_conntrack_alloc(tuple, &repl_tuple, ub); + if (conntrack == NULL || IS_ERR(conntrack)) { + pr_debug("Can't allocate conntrack.\n"); + return (struct nf_conntrack_tuple_hash *)conntrack; +@@ -560,7 +594,7 @@ + + /* Overload tuple linked list to put us in unconfirmed list. */ + hlist_add_head(&conntrack->tuplehash[IP_CT_DIR_ORIGINAL].hnode, +- &unconfirmed); ++ &ve_unconfirmed); + + write_unlock_bh(&nf_conntrack_lock); + +@@ -901,13 +935,13 @@ + + write_lock_bh(&nf_conntrack_lock); + for (; *bucket < nf_conntrack_htable_size; (*bucket)++) { +- hlist_for_each_entry(h, n, &nf_conntrack_hash[*bucket], hnode) { ++ hlist_for_each_entry(h, n, &ve_nf_conntrack_hash[*bucket], hnode) { + ct = nf_ct_tuplehash_to_ctrack(h); + if (iter(ct, data)) + goto found; + } + } +- hlist_for_each_entry(h, n, &unconfirmed, hnode) { ++ hlist_for_each_entry(h, n, &ve_unconfirmed, hnode) { + ct = nf_ct_tuplehash_to_ctrack(h); + if (iter(ct, data)) + set_bit(IPS_DYING_BIT, &ct->status); +@@ -962,7 +996,13 @@ + supposed to kill the mall. */ + void nf_conntrack_cleanup(void) + { +- rcu_assign_pointer(ip_ct_attach, NULL); ++ struct ve_struct *ve = get_exec_env(); ++ ++#ifdef CONFIG_VE_IPTABLES ++ BUG_ON(!ve->_nf_conntrack); ++#endif ++ if (ve_is_super(ve)) ++ rcu_assign_pointer(ip_ct_attach, NULL); + + /* This makes sure all current packets have passed through + netfilter framework. Roll on, two-stage module +@@ -972,10 +1012,12 @@ + nf_ct_event_cache_flush(); + i_see_dead_people: + nf_conntrack_flush(); +- if (atomic_read(&nf_conntrack_count) != 0) { ++ if (atomic_read(&ve_nf_conntrack_count) != 0) { + schedule(); + goto i_see_dead_people; + } ++ if (!ve_is_super(ve)) ++ goto skip_ct_cache; + /* wait until all references to nf_conntrack_untracked are dropped */ + while (atomic_read(&nf_conntrack_untracked.ct_general.use) > 1) + schedule(); +@@ -983,12 +1025,25 @@ + rcu_assign_pointer(nf_ct_destroy, NULL); + + kmem_cache_destroy(nf_conntrack_cachep); +- nf_ct_free_hashtable(nf_conntrack_hash, nf_conntrack_vmalloc, +- nf_conntrack_htable_size); +- +- nf_conntrack_proto_fini(); ++skip_ct_cache: + nf_conntrack_helper_fini(); + nf_conntrack_expect_fini(); ++ ++ nf_conntrack_l4proto_unregister(ve_nf_conntrack_l4proto_generic); ++ nf_ct_proto_generic_sysctl_cleanup(); ++ nf_ct_free_hashtable(ve_nf_conntrack_hash, ve_nf_conntrack_vmalloc, ++ nf_conntrack_htable_size); ++ ve_nf_conntrack_hash = NULL; ++ INIT_HLIST_HEAD(&ve_unconfirmed); ++ ve_nf_ct_expect_hash = NULL; ++ atomic_set(&ve_nf_conntrack_count, 0); ++ ve_nf_conntrack_max = 0; ++// nf_conntrack_proto_fini(); ++#ifdef CONFIG_VE_IPTABLES ++ ve_nf_conntrack_l4proto_generic = NULL; ++ kfree(ve->_nf_conntrack); ++ ve->_nf_conntrack = NULL; ++#endif + } + + struct hlist_head *nf_ct_alloc_hashtable(int *sizep, int *vmalloced) +@@ -999,13 +1054,13 @@ + *vmalloced = 0; + + size = *sizep = roundup(*sizep, PAGE_SIZE / sizeof(struct hlist_head)); +- hash = (void*)__get_free_pages(GFP_KERNEL|__GFP_NOWARN, ++ hash = (void*)__get_free_pages(GFP_KERNEL_UBC|__GFP_NOWARN, + get_order(sizeof(struct hlist_head) + * size)); + if (!hash) { + *vmalloced = 1; + printk(KERN_WARNING "nf_conntrack: falling back to vmalloc.\n"); +- hash = vmalloc(sizeof(struct hlist_head) * size); ++ hash = ub_vmalloc(sizeof(struct hlist_head) * size); + } + + if (hash) +@@ -1042,8 +1097,8 @@ + + write_lock_bh(&nf_conntrack_lock); + for (i = 0; i < nf_conntrack_htable_size; i++) { +- while (!hlist_empty(&nf_conntrack_hash[i])) { +- h = hlist_entry(nf_conntrack_hash[i].first, ++ while (!hlist_empty(&ve_nf_conntrack_hash[i])) { ++ h = hlist_entry(ve_nf_conntrack_hash[i].first, + struct nf_conntrack_tuple_hash, hnode); + hlist_del(&h->hnode); + bucket = __hash_conntrack(&h->tuple, hashsize, rnd); +@@ -1051,12 +1106,12 @@ + } + } + old_size = nf_conntrack_htable_size; +- old_vmalloced = nf_conntrack_vmalloc; +- old_hash = nf_conntrack_hash; ++ old_vmalloced = ve_nf_conntrack_vmalloc; ++ old_hash = ve_nf_conntrack_hash; + + nf_conntrack_htable_size = hashsize; +- nf_conntrack_vmalloc = vmalloced; +- nf_conntrack_hash = hash; ++ ve_nf_conntrack_vmalloc = vmalloced; ++ ve_nf_conntrack_hash = hash; + nf_conntrack_hash_rnd = rnd; + write_unlock_bh(&nf_conntrack_lock); + +@@ -1068,52 +1123,81 @@ + module_param_call(hashsize, nf_conntrack_set_hashsize, param_get_uint, + &nf_conntrack_htable_size, 0600); + +-int __init nf_conntrack_init(void) ++int nf_conntrack_init(void) + { ++ struct ve_struct *ve = get_exec_env(); + int max_factor = 8; +- int ret; ++ int ret = 0, i; + +- /* Idea from tcp.c: use 1/16384 of memory. On i386: 32MB +- * machine has 512 buckets. >= 1GB machines have 16384 buckets. */ +- if (!nf_conntrack_htable_size) { +- nf_conntrack_htable_size +- = (((num_physpages << PAGE_SHIFT) / 16384) +- / sizeof(struct hlist_head)); +- if (num_physpages > (1024 * 1024 * 1024 / PAGE_SIZE)) +- nf_conntrack_htable_size = 16384; +- if (nf_conntrack_htable_size < 32) +- nf_conntrack_htable_size = 32; +- +- /* Use a max. factor of four by default to get the same max as +- * with the old struct list_heads. When a table size is given +- * we use the old value of 8 to avoid reducing the max. +- * entries. */ +- max_factor = 4; +- } +- nf_conntrack_hash = nf_ct_alloc_hashtable(&nf_conntrack_htable_size, +- &nf_conntrack_vmalloc); +- if (!nf_conntrack_hash) { +- printk(KERN_ERR "Unable to create nf_conntrack_hash\n"); +- goto err_out; ++#ifdef CONFIG_VE_IPTABLES ++ if (ve->_nf_conntrack) ++ return 0; ++#endif ++ if (ve_is_super(ve)) { ++ ++ /* Idea from tcp.c: use 1/16384 of memory. On i386: 32MB ++ * machine has 512 buckets. >= 1GB machines have 16384 buckets. */ ++ if (!nf_conntrack_htable_size) { ++ nf_conntrack_htable_size ++ = (((num_physpages << PAGE_SHIFT) / 16384) ++ / sizeof(struct hlist_head)); ++ if (num_physpages > (1024 * 1024 * 1024 / PAGE_SIZE)) ++ nf_conntrack_htable_size = 16384; ++ if (nf_conntrack_htable_size < 32) ++ nf_conntrack_htable_size = 32; ++ ++ /* Use a max. factor of four by default to get the same ++ * max as with the old struct list_heads. When a table ++ * size is given we use the old value of 8 to avoid ++ * reducing the max. entries. */ ++ max_factor = 4; ++ } ++ nf_conntrack_max = max_factor * nf_conntrack_htable_size; ++ ++ printk("nf_conntrack version %s (%u buckets, %d max)\n", ++ NF_CONNTRACK_VERSION, nf_conntrack_htable_size, ++ nf_conntrack_max); + } + +- nf_conntrack_max = max_factor * nf_conntrack_htable_size; ++#ifdef CONFIG_VE_IPTABLES ++ ve->_nf_conntrack = kzalloc(sizeof(struct ve_nf_conntrack), GFP_KERNEL); ++ if (!ve->_nf_conntrack) { ++ ret = -ENOMEM; ++ goto out; ++ } + +- printk("nf_conntrack version %s (%u buckets, %d max)\n", +- NF_CONNTRACK_VERSION, nf_conntrack_htable_size, +- nf_conntrack_max); ++ ve_nf_conntrack_max = nf_conntrack_max; ++ atomic_set(&ve_nf_conntrack_count, 0); ++ INIT_HLIST_HEAD(&ve_unconfirmed); ++#endif ++ ve_nf_conntrack_hash = nf_ct_alloc_hashtable(&nf_conntrack_htable_size, ++ &ve_nf_conntrack_vmalloc); ++ if (!ve_nf_conntrack_hash) { ++ printk(KERN_ERR "Unable to create nf_conntrack_hash\n"); ++ goto err_out; ++ } + +- nf_conntrack_cachep = kmem_cache_create("nf_conntrack", ++ if (ve_is_super(ve)) { ++ nf_conntrack_cachep = kmem_cache_create("nf_conntrack", + sizeof(struct nf_conn), +- 0, 0, NULL); +- if (!nf_conntrack_cachep) { +- printk(KERN_ERR "Unable to create nf_conn slab cache\n"); +- goto err_free_hash; ++ 0, SLAB_UBC, NULL); ++ if (!nf_conntrack_cachep) { ++ printk(KERN_ERR "Unable to create nf_conn slab cache\n"); ++ goto err_free_hash; ++ } + } + +- ret = nf_conntrack_proto_init(); ++ ret = nf_ct_proto_generic_sysctl_init(); + if (ret < 0) + goto err_free_conntrack_slab; ++ ret = nf_conntrack_l4proto_register(ve_nf_conntrack_l4proto_generic); ++ if (ret < 0) ++ goto free_sys; ++ /* Don't NEED lock here, but good form anyway. */ ++ write_lock_bh(&nf_conntrack_lock); ++ for (i = 0; i < AF_MAX; i++) ++ ve_nf_ct_l3protos[i] = &nf_conntrack_l3proto_generic; ++ write_unlock_bh(&nf_conntrack_lock); + + ret = nf_conntrack_expect_init(); + if (ret < 0) +@@ -1123,27 +1207,41 @@ + if (ret < 0) + goto out_fini_expect; + +- /* For use by REJECT target */ +- rcu_assign_pointer(ip_ct_attach, __nf_conntrack_attach); +- rcu_assign_pointer(nf_ct_destroy, destroy_conntrack); +- +- /* Set up fake conntrack: +- - to never be deleted, not in any hashes */ +- atomic_set(&nf_conntrack_untracked.ct_general.use, 1); +- /* - and look it like as a confirmed connection */ +- set_bit(IPS_CONFIRMED_BIT, &nf_conntrack_untracked.status); ++ if (ve_is_super(ve)) { ++ /* For use by REJECT target */ ++ rcu_assign_pointer(ip_ct_attach, __nf_conntrack_attach); ++ rcu_assign_pointer(nf_ct_destroy, destroy_conntrack); ++ ++ /* Set up fake conntrack: ++ - to never be deleted, not in any hashes */ ++ atomic_set(&nf_conntrack_untracked.ct_general.use, 1); ++ /* - and look it like as a confirmed connection */ ++ set_bit(IPS_CONFIRMED_BIT, &nf_conntrack_untracked.status); ++ } + +- return ret; ++ return 0; + ++free_sys: ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++ nf_ct_proto_generic_sysctl_cleanup(); ++ ve_nf_conntrack_l4proto_generic = NULL; ++#endif + out_fini_expect: + nf_conntrack_expect_fini(); + out_fini_proto: + nf_conntrack_proto_fini(); + err_free_conntrack_slab: +- kmem_cache_destroy(nf_conntrack_cachep); ++ if (ve_is_super(ve)) ++ kmem_cache_destroy(nf_conntrack_cachep); + err_free_hash: +- nf_ct_free_hashtable(nf_conntrack_hash, nf_conntrack_vmalloc, ++ nf_ct_free_hashtable(ve_nf_conntrack_hash, nf_conntrack_vmalloc, + nf_conntrack_htable_size); ++ ve_nf_conntrack_hash = NULL; + err_out: +- return -ENOMEM; ++#ifdef CONFIG_VE_IPTABLES ++ kfree(ve->_nf_conntrack); ++ ve->_nf_conntrack = NULL; ++out: ++#endif ++ return ret; + } +Index: kernel/net/netfilter/nf_conntrack_ecache.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_ecache.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_ecache.c 2008-11-24 15:47:46.000000000 +0100 +@@ -53,6 +53,9 @@ + { + struct nf_conntrack_ecache *ecache; + ++ if (!ve_is_super(get_exec_env())) ++ return; ++ + local_bh_disable(); + ecache = &__get_cpu_var(nf_conntrack_ecache); + if (ecache->ct == ct) +@@ -66,6 +69,9 @@ + { + struct nf_conntrack_ecache *ecache; + ++ if (!ve_is_super(get_exec_env())) ++ return; ++ + /* take care of delivering potentially old events */ + ecache = &__get_cpu_var(nf_conntrack_ecache); + BUG_ON(ecache->ct == ct); +@@ -84,6 +90,9 @@ + struct nf_conntrack_ecache *ecache; + int cpu; + ++ if (!ve_is_super(get_exec_env())) ++ return; ++ + for_each_possible_cpu(cpu) { + ecache = &per_cpu(nf_conntrack_ecache, cpu); + if (ecache->ct) +Index: kernel/net/netfilter/nf_conntrack_expect.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_expect.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_expect.c 2008-11-24 15:47:46.000000000 +0100 +@@ -39,6 +39,11 @@ + unsigned int nf_ct_expect_max __read_mostly; + static int nf_ct_expect_hash_rnd_initted __read_mostly; + static int nf_ct_expect_vmalloc; ++#ifdef CONFIG_VE_IPTABLES ++#define ve_nf_ct_expect_vmalloc (get_exec_env()->_nf_conntrack->_nf_ct_expect_vmalloc) ++#else ++#define ve_nf_ct_expect_vmalloc nf_ct_expect_vmalloc ++#endif + + static struct kmem_cache *nf_ct_expect_cachep __read_mostly; + +@@ -95,7 +100,7 @@ + return NULL; + + h = nf_ct_expect_dst_hash(tuple); +- hlist_for_each_entry(i, n, &nf_ct_expect_hash[h], hnode) { ++ hlist_for_each_entry(i, n, &ve_nf_ct_expect_hash[h], hnode) { + if (nf_ct_tuple_mask_cmp(tuple, &i->tuple, &i->mask)) + return i; + } +@@ -293,7 +298,7 @@ + hlist_add_head(&exp->lnode, &master_help->expectations); + master_help->expecting++; + +- hlist_add_head(&exp->hnode, &nf_ct_expect_hash[h]); ++ hlist_add_head(&exp->hnode, &ve_nf_ct_expect_hash[h]); + nf_ct_expect_count++; + + setup_timer(&exp->timeout, nf_ct_expectation_timed_out, +@@ -350,7 +355,7 @@ + goto out; + } + h = nf_ct_expect_dst_hash(&expect->tuple); +- hlist_for_each_entry(i, n, &nf_ct_expect_hash[h], hnode) { ++ hlist_for_each_entry(i, n, &ve_nf_ct_expect_hash[h], hnode) { + if (expect_matches(i, expect)) { + /* Refresh timer: if it's dying, ignore.. */ + if (refresh_timer(i)) { +@@ -367,7 +372,7 @@ + master_help->expecting >= master_help->helper->max_expected) + evict_oldest_expect(master); + +- if (nf_ct_expect_count >= nf_ct_expect_max) { ++ if (nf_ct_expect_count >= ve_nf_ct_expect_max) { + if (net_ratelimit()) + printk(KERN_WARNING + "nf_conntrack: expectation table full"); +@@ -394,8 +399,8 @@ + struct ct_expect_iter_state *st = seq->private; + + for (st->bucket = 0; st->bucket < nf_ct_expect_hsize; st->bucket++) { +- if (!hlist_empty(&nf_ct_expect_hash[st->bucket])) +- return nf_ct_expect_hash[st->bucket].first; ++ if (!hlist_empty(&ve_nf_ct_expect_hash[st->bucket])) ++ return ve_nf_ct_expect_hash[st->bucket].first; + } + return NULL; + } +@@ -409,7 +414,7 @@ + while (head == NULL) { + if (++st->bucket >= nf_ct_expect_hsize) + return NULL; +- head = nf_ct_expect_hash[st->bucket].first; ++ head = ve_nf_ct_expect_hash[st->bucket].first; + } + return head; + } +@@ -506,7 +511,7 @@ + + module_param_named(expect_hashsize, nf_ct_expect_hsize, uint, 0600); + +-int __init nf_conntrack_expect_init(void) ++int nf_conntrack_expect_init(void) + { + int err = -ENOMEM; + +@@ -517,16 +522,18 @@ + } + nf_ct_expect_max = nf_ct_expect_hsize * 4; + +- nf_ct_expect_hash = nf_ct_alloc_hashtable(&nf_ct_expect_hsize, +- &nf_ct_expect_vmalloc); +- if (nf_ct_expect_hash == NULL) ++ ve_nf_ct_expect_hash = nf_ct_alloc_hashtable(&nf_ct_expect_hsize, ++ &ve_nf_ct_expect_vmalloc); ++ if (ve_nf_ct_expect_hash == NULL) + goto err1; + +- nf_ct_expect_cachep = kmem_cache_create("nf_conntrack_expect", ++ if (ve_is_super(get_exec_env())) { ++ nf_ct_expect_cachep = kmem_cache_create("nf_conntrack_expect", + sizeof(struct nf_conntrack_expect), +- 0, 0, NULL); +- if (!nf_ct_expect_cachep) +- goto err2; ++ 0, SLAB_UBC, NULL); ++ if (!nf_ct_expect_cachep) ++ goto err2; ++ } + + err = exp_proc_init(); + if (err < 0) +@@ -535,10 +542,11 @@ + return 0; + + err3: +- nf_ct_free_hashtable(nf_ct_expect_hash, nf_ct_expect_vmalloc, ++ nf_ct_free_hashtable(ve_nf_ct_expect_hash, ve_nf_ct_expect_vmalloc, + nf_ct_expect_hsize); + err2: +- kmem_cache_destroy(nf_ct_expect_cachep); ++ if (ve_is_super(get_exec_env())) ++ kmem_cache_destroy(nf_ct_expect_cachep); + err1: + return err; + } +@@ -546,7 +554,8 @@ + void nf_conntrack_expect_fini(void) + { + exp_proc_remove(); +- kmem_cache_destroy(nf_ct_expect_cachep); +- nf_ct_free_hashtable(nf_ct_expect_hash, nf_ct_expect_vmalloc, ++ if (ve_is_super(get_exec_env())) ++ kmem_cache_destroy(nf_ct_expect_cachep); ++ nf_ct_free_hashtable(ve_nf_ct_expect_hash, ve_nf_ct_expect_vmalloc, + nf_ct_expect_hsize); + } +Index: kernel/net/netfilter/nf_conntrack_helper.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_helper.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_helper.c 2008-11-24 15:47:46.000000000 +0100 +@@ -32,6 +32,13 @@ + static unsigned int nf_ct_helper_hsize __read_mostly; + static unsigned int nf_ct_helper_count __read_mostly; + static int nf_ct_helper_vmalloc; ++#ifdef CONFIG_VE_IPTABLES ++#define ve_nf_ct_helper_hash (get_exec_env()->_nf_conntrack->_nf_ct_helper_hash) ++#define ve_nf_ct_helper_vmalloc (get_exec_env()->_nf_conntrack->_nf_ct_helper_vmalloc) ++#else ++#define ve_nf_ct_helper_hash nf_ct_helper_hash ++#define ve_nf_ct_helper_vmalloc nf_ct_helper_vmalloc ++#endif + + + /* Stupid hash, but collision free for the default registrations of the +@@ -54,7 +61,7 @@ + return NULL; + + h = helper_hash(tuple); +- hlist_for_each_entry(helper, n, &nf_ct_helper_hash[h], hnode) { ++ hlist_for_each_entry(helper, n, &ve_nf_ct_helper_hash[h], hnode) { + if (nf_ct_tuple_src_mask_cmp(tuple, &helper->tuple, &mask)) + return helper; + } +@@ -99,7 +106,7 @@ + unsigned int i; + + for (i = 0; i < nf_ct_helper_hsize; i++) { +- hlist_for_each_entry(h, n, &nf_ct_helper_hash[i], hnode) { ++ hlist_for_each_entry(h, n, &ve_nf_ct_helper_hash[i], hnode) { + if (!strcmp(h->name, name)) + return h; + } +@@ -141,7 +148,7 @@ + BUG_ON(me->timeout == 0); + + write_lock_bh(&nf_conntrack_lock); +- hlist_add_head(&me->hnode, &nf_ct_helper_hash[h]); ++ hlist_add_head(&me->hnode, &ve_nf_ct_helper_hash[h]); + nf_ct_helper_count++; + write_unlock_bh(&nf_conntrack_lock); + +@@ -164,7 +171,7 @@ + /* Get rid of expectations */ + for (i = 0; i < nf_ct_expect_hsize; i++) { + hlist_for_each_entry_safe(exp, n, next, +- &nf_ct_expect_hash[i], hnode) { ++ &ve_nf_ct_expect_hash[i], hnode) { + struct nf_conn_help *help = nfct_help(exp->master); + if ((help->helper == me || exp->helper == me) && + del_timer(&exp->timeout)) { +@@ -175,10 +182,10 @@ + } + + /* Get rid of expecteds, set helpers to NULL. */ +- hlist_for_each_entry(h, n, &unconfirmed, hnode) ++ hlist_for_each_entry(h, n, &ve_unconfirmed, hnode) + unhelp(h, me); + for (i = 0; i < nf_conntrack_htable_size; i++) { +- hlist_for_each_entry(h, n, &nf_conntrack_hash[i], hnode) ++ hlist_for_each_entry(h, n, &ve_nf_conntrack_hash[i], hnode) + unhelp(h, me); + } + write_unlock_bh(&nf_conntrack_lock); +@@ -199,26 +206,29 @@ + int err; + + nf_ct_helper_hsize = 1; /* gets rounded up to use one page */ +- nf_ct_helper_hash = nf_ct_alloc_hashtable(&nf_ct_helper_hsize, +- &nf_ct_helper_vmalloc); +- if (!nf_ct_helper_hash) ++ ve_nf_ct_helper_hash = nf_ct_alloc_hashtable(&nf_ct_helper_hsize, ++ &ve_nf_ct_helper_vmalloc); ++ if (!ve_nf_ct_helper_hash) + return -ENOMEM; + +- err = nf_ct_extend_register(&helper_extend); +- if (err < 0) +- goto err1; ++ if (ve_is_super(get_exec_env())) { ++ err = nf_ct_extend_register(&helper_extend); ++ if (err < 0) ++ goto err1; ++ } + + return 0; + + err1: +- nf_ct_free_hashtable(nf_ct_helper_hash, nf_ct_helper_vmalloc, ++ nf_ct_free_hashtable(ve_nf_ct_helper_hash, ve_nf_ct_helper_vmalloc, + nf_ct_helper_hsize); + return err; + } + + void nf_conntrack_helper_fini(void) + { +- nf_ct_extend_unregister(&helper_extend); +- nf_ct_free_hashtable(nf_ct_helper_hash, nf_ct_helper_vmalloc, ++ if (ve_is_super(get_exec_env())) ++ nf_ct_extend_unregister(&helper_extend); ++ nf_ct_free_hashtable(ve_nf_ct_helper_hash, ve_nf_ct_helper_vmalloc, + nf_ct_helper_hsize); + } +Index: kernel/net/netfilter/nf_conntrack_netlink.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_netlink.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_netlink.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -43,6 +44,8 @@ + + #include + #include ++#include ++#include + + MODULE_LICENSE("GPL"); + +@@ -459,7 +462,7 @@ + last = (struct nf_conn *)cb->args[1]; + for (; cb->args[0] < nf_conntrack_htable_size; cb->args[0]++) { + restart: +- hlist_for_each_entry(h, n, &nf_conntrack_hash[cb->args[0]], ++ hlist_for_each_entry(h, n, &ve_nf_conntrack_hash[cb->args[0]], + hnode) { + if (NF_CT_DIRECTION(h) != IP_CT_DIR_ORIGINAL) + continue; +@@ -976,14 +979,15 @@ + ctnetlink_create_conntrack(struct nlattr *cda[], + struct nf_conntrack_tuple *otuple, + struct nf_conntrack_tuple *rtuple, +- struct nf_conn *master_ct) ++ struct nf_conn *master_ct, ++ struct user_beancounter *ub) + { + struct nf_conn *ct; + int err = -EINVAL; + struct nf_conn_help *help; + struct nf_conntrack_helper *helper; + +- ct = nf_conntrack_alloc(otuple, rtuple); ++ ct = nf_conntrack_alloc(otuple, rtuple, ub); + if (ct == NULL || IS_ERR(ct)) + return -ENOMEM; + +@@ -1094,11 +1098,19 @@ + + write_unlock_bh(&nf_conntrack_lock); + err = -ENOENT; +- if (nlh->nlmsg_flags & NLM_F_CREATE) ++ if (nlh->nlmsg_flags & NLM_F_CREATE) { ++ struct user_beancounter *ub = NULL; ++ ++#ifdef CONFIG_BEANCOUNTERS ++ if (skb->sk) ++ ub = sock_bc(skb->sk)->ub; ++#endif + err = ctnetlink_create_conntrack(cda, + &otuple, + &rtuple, +- master_ct); ++ master_ct, ++ ub); ++ } + if (err < 0 && master_ct) + nf_ct_put(master_ct); + +@@ -1318,7 +1330,7 @@ + last = (struct nf_conntrack_expect *)cb->args[1]; + for (; cb->args[0] < nf_ct_expect_hsize; cb->args[0]++) { + restart: +- hlist_for_each_entry(exp, n, &nf_ct_expect_hash[cb->args[0]], ++ hlist_for_each_entry(exp, n, &ve_nf_ct_expect_hash[cb->args[0]], + hnode) { + if (l3proto && exp->tuple.src.l3num != l3proto) + continue; +@@ -1463,7 +1475,7 @@ + } + for (i = 0; i < nf_ct_expect_hsize; i++) { + hlist_for_each_entry_safe(exp, n, next, +- &nf_ct_expect_hash[i], ++ &ve_nf_ct_expect_hash[i], + hnode) { + m_help = nfct_help(exp->master); + if (m_help->helper == h +@@ -1479,7 +1491,7 @@ + write_lock_bh(&nf_conntrack_lock); + for (i = 0; i < nf_ct_expect_hsize; i++) { + hlist_for_each_entry_safe(exp, n, next, +- &nf_ct_expect_hash[i], ++ &ve_nf_ct_expect_hash[i], + hnode) { + if (del_timer(&exp->timeout)) { + nf_ct_unlink_expect(exp); +Index: kernel/net/netfilter/nf_conntrack_proto.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto.c 2008-11-24 15:47:46.000000000 +0100 +@@ -28,7 +28,7 @@ + #include + #include + +-static struct nf_conntrack_l4proto **nf_ct_protos[PF_MAX] __read_mostly; ++struct nf_conntrack_l4proto **nf_ct_protos[PF_MAX] __read_mostly; + struct nf_conntrack_l3proto *nf_ct_l3protos[AF_MAX] __read_mostly; + EXPORT_SYMBOL_GPL(nf_ct_l3protos); + +@@ -63,10 +63,10 @@ + struct nf_conntrack_l4proto * + __nf_ct_l4proto_find(u_int16_t l3proto, u_int8_t l4proto) + { +- if (unlikely(l3proto >= AF_MAX || nf_ct_protos[l3proto] == NULL)) +- return &nf_conntrack_l4proto_generic; ++ if (unlikely(l3proto >= AF_MAX || ve_nf_ct_protos[l3proto] == NULL)) ++ return ve_nf_conntrack_l4proto_generic; + +- return rcu_dereference(nf_ct_protos[l3proto][l4proto]); ++ return rcu_dereference(ve_nf_ct_protos[l3proto][l4proto]); + } + EXPORT_SYMBOL_GPL(__nf_ct_l4proto_find); + +@@ -80,7 +80,7 @@ + rcu_read_lock(); + p = __nf_ct_l4proto_find(l3proto, l4proto); + if (!try_module_get(p->me)) +- p = &nf_conntrack_l4proto_generic; ++ p = ve_nf_conntrack_l4proto_generic; + rcu_read_unlock(); + + return p; +@@ -190,7 +190,8 @@ + return -EBUSY; + + mutex_lock(&nf_ct_proto_mutex); +- if (nf_ct_l3protos[proto->l3proto] != &nf_conntrack_l3proto_generic) { ++ if (ve_nf_ct_l3protos[proto->l3proto] != ++ &nf_conntrack_l3proto_generic) { + ret = -EBUSY; + goto out_unlock; + } +@@ -199,7 +200,7 @@ + if (ret < 0) + goto out_unlock; + +- rcu_assign_pointer(nf_ct_l3protos[proto->l3proto], proto); ++ rcu_assign_pointer(ve_nf_ct_l3protos[proto->l3proto], proto); + + out_unlock: + mutex_unlock(&nf_ct_proto_mutex); +@@ -212,8 +213,8 @@ + BUG_ON(proto->l3proto >= AF_MAX); + + mutex_lock(&nf_ct_proto_mutex); +- BUG_ON(nf_ct_l3protos[proto->l3proto] != proto); +- rcu_assign_pointer(nf_ct_l3protos[proto->l3proto], ++ BUG_ON(ve_nf_ct_l3protos[proto->l3proto] != proto); ++ rcu_assign_pointer(ve_nf_ct_l3protos[proto->l3proto], + &nf_conntrack_l3proto_generic); + nf_ct_l3proto_unregister_sysctl(proto); + mutex_unlock(&nf_ct_proto_mutex); +@@ -281,7 +282,7 @@ + return -EBUSY; + + mutex_lock(&nf_ct_proto_mutex); +- if (!nf_ct_protos[l4proto->l3proto]) { ++ if (!ve_nf_ct_protos[l4proto->l3proto]) { + /* l3proto may be loaded latter. */ + struct nf_conntrack_l4proto **proto_array; + int i; +@@ -295,10 +296,10 @@ + } + + for (i = 0; i < MAX_NF_CT_PROTO; i++) +- proto_array[i] = &nf_conntrack_l4proto_generic; +- nf_ct_protos[l4proto->l3proto] = proto_array; +- } else if (nf_ct_protos[l4proto->l3proto][l4proto->l4proto] != +- &nf_conntrack_l4proto_generic) { ++ proto_array[i] = ve_nf_conntrack_l4proto_generic; ++ ve_nf_ct_protos[l4proto->l3proto] = proto_array; ++ } else if (ve_nf_ct_protos[l4proto->l3proto][l4proto->l4proto] != ++ ve_nf_conntrack_l4proto_generic) { + ret = -EBUSY; + goto out_unlock; + } +@@ -307,7 +308,7 @@ + if (ret < 0) + goto out_unlock; + +- rcu_assign_pointer(nf_ct_protos[l4proto->l3proto][l4proto->l4proto], ++ rcu_assign_pointer(ve_nf_ct_protos[l4proto->l3proto][l4proto->l4proto], + l4proto); + + out_unlock: +@@ -321,9 +322,9 @@ + BUG_ON(l4proto->l3proto >= PF_MAX); + + mutex_lock(&nf_ct_proto_mutex); +- BUG_ON(nf_ct_protos[l4proto->l3proto][l4proto->l4proto] != l4proto); +- rcu_assign_pointer(nf_ct_protos[l4proto->l3proto][l4proto->l4proto], +- &nf_conntrack_l4proto_generic); ++ BUG_ON(ve_nf_ct_protos[l4proto->l3proto][l4proto->l4proto] != l4proto); ++ rcu_assign_pointer(ve_nf_ct_protos[l4proto->l3proto][l4proto->l4proto], ++ ve_nf_conntrack_l4proto_generic); + nf_ct_l4proto_unregister_sysctl(l4proto); + mutex_unlock(&nf_ct_proto_mutex); + +@@ -339,12 +340,12 @@ + unsigned int i; + int err; + +- err = nf_ct_l4proto_register_sysctl(&nf_conntrack_l4proto_generic); ++ err = nf_ct_l4proto_register_sysctl(ve_nf_conntrack_l4proto_generic); + if (err < 0) + return err; + + for (i = 0; i < AF_MAX; i++) +- rcu_assign_pointer(nf_ct_l3protos[i], ++ rcu_assign_pointer(ve_nf_ct_l3protos[i], + &nf_conntrack_l3proto_generic); + return 0; + } +@@ -353,9 +354,11 @@ + { + unsigned int i; + +- nf_ct_l4proto_unregister_sysctl(&nf_conntrack_l4proto_generic); ++ nf_ct_l4proto_unregister_sysctl(ve_nf_conntrack_l4proto_generic); + + /* free l3proto protocol tables */ +- for (i = 0; i < PF_MAX; i++) +- kfree(nf_ct_protos[i]); ++ for (i = 0; i < PF_MAX; i++) { ++ kfree(ve_nf_ct_protos[i]); ++ ve_nf_ct_protos[i] = NULL; ++ } + } +Index: kernel/net/netfilter/nf_conntrack_proto_generic.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_generic.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_generic.c 2008-11-24 15:47:46.000000000 +0100 +@@ -8,6 +8,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -55,7 +56,7 @@ + int pf, + unsigned int hooknum) + { +- nf_ct_refresh_acct(conntrack, ctinfo, skb, nf_ct_generic_timeout); ++ nf_ct_refresh_acct(conntrack, ctinfo, skb, ve_nf_ct_generic_timeout); + return NF_ACCEPT; + } + +@@ -115,3 +116,65 @@ + #endif + #endif + }; ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++void nf_ct_proto_generic_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_generic->ctl_compat_table); ++ ve_nf_conntrack_l4proto_generic->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_generic->ctl_table); ++ ve_nf_conntrack_l4proto_generic->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_generic); ++ ve_nf_conntrack_l4proto_generic = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_generic_sysctl_cleanup); ++ ++int nf_ct_proto_generic_sysctl_init(void) ++{ ++ struct nf_conntrack_l4proto *generic; ++ ++ if (ve_is_super(get_exec_env())) { ++ generic = &nf_conntrack_l4proto_generic; ++ goto out; ++ } ++ ++ generic = kmemdup(&nf_conntrack_l4proto_generic, ++ sizeof(struct nf_conntrack_l4proto), GFP_KERNEL); ++ if (generic == NULL) ++ goto no_mem_ct; ++ ++ generic->ctl_table_header = &ve_generic_sysctl_header; ++ generic->ctl_table = clone_sysctl_template(generic_sysctl_table); ++ if (generic->ctl_table == NULL) ++ goto no_mem_sys; ++ ++ generic->ctl_table[0].data = &ve_nf_ct_generic_timeout; ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ generic->ctl_compat_table_header = ve_generic_compat_sysctl_header; ++ generic->ctl_compat_table = clone_sysctl_template(generic_compat_sysctl_table); ++ if (generic->ctl_compat_table == NULL) ++ goto no_mem_compat; ++ generic->ctl_compat_table[0].data = &ve_nf_ct_generic_timeout; ++#endif ++out: ++ ve_nf_ct_generic_timeout = nf_ct_generic_timeout; ++ ++ ve_nf_conntrack_l4proto_generic = generic; ++ return 0; ++ ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++no_mem_compat: ++ free_sysctl_clone(generic->ctl_table); ++#endif ++no_mem_sys: ++ kfree(generic); ++no_mem_ct: ++ return -ENOMEM; ++} ++EXPORT_SYMBOL(nf_ct_proto_generic_sysctl_init); ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/netfilter/nf_conntrack_proto_tcp.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_tcp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_tcp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -7,6 +7,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -31,16 +32,16 @@ + /* "Be conservative in what you do, + be liberal in what you accept from others." + If it's non-zero, we mark only out of window RST segments as INVALID. */ +-static int nf_ct_tcp_be_liberal __read_mostly = 0; ++int nf_ct_tcp_be_liberal __read_mostly = 0; + + /* If it is set to zero, we disable picking up already established + connections. */ +-static int nf_ct_tcp_loose __read_mostly = 1; ++int nf_ct_tcp_loose __read_mostly = 1; + + /* Max number of the retransmitted packets without receiving an (acceptable) + ACK from the destination. If this number is reached, a shorter timer + will be started. */ +-static int nf_ct_tcp_max_retrans __read_mostly = 3; ++int nf_ct_tcp_max_retrans __read_mostly = 3; + + /* FIXME: Examine ipfilter's timeouts and conntrack transitions more + closely. They're more complex. --RR */ +@@ -63,21 +64,21 @@ + #define HOURS * 60 MINS + #define DAYS * 24 HOURS + +-static unsigned int nf_ct_tcp_timeout_syn_sent __read_mostly = 2 MINS; +-static unsigned int nf_ct_tcp_timeout_syn_recv __read_mostly = 60 SECS; +-static unsigned int nf_ct_tcp_timeout_established __read_mostly = 5 DAYS; +-static unsigned int nf_ct_tcp_timeout_fin_wait __read_mostly = 2 MINS; +-static unsigned int nf_ct_tcp_timeout_close_wait __read_mostly = 60 SECS; +-static unsigned int nf_ct_tcp_timeout_last_ack __read_mostly = 30 SECS; +-static unsigned int nf_ct_tcp_timeout_time_wait __read_mostly = 2 MINS; +-static unsigned int nf_ct_tcp_timeout_close __read_mostly = 10 SECS; ++unsigned int nf_ct_tcp_timeout_syn_sent __read_mostly = 2 MINS; ++unsigned int nf_ct_tcp_timeout_syn_recv __read_mostly = 60 SECS; ++unsigned int nf_ct_tcp_timeout_established __read_mostly = 5 DAYS; ++unsigned int nf_ct_tcp_timeout_fin_wait __read_mostly = 2 MINS; ++unsigned int nf_ct_tcp_timeout_close_wait __read_mostly = 60 SECS; ++unsigned int nf_ct_tcp_timeout_last_ack __read_mostly = 30 SECS; ++unsigned int nf_ct_tcp_timeout_time_wait __read_mostly = 2 MINS; ++unsigned int nf_ct_tcp_timeout_close __read_mostly = 10 SECS; + + /* RFC1122 says the R2 limit should be at least 100 seconds. + Linux uses 15 packets as limit, which corresponds + to ~13-30min depending on RTO. */ +-static unsigned int nf_ct_tcp_timeout_max_retrans __read_mostly = 5 MINS; ++unsigned int nf_ct_tcp_timeout_max_retrans __read_mostly = 5 MINS; + +-static unsigned int * tcp_timeouts[] = { ++unsigned int * tcp_timeouts[] = { + NULL, /* TCP_CONNTRACK_NONE */ + &nf_ct_tcp_timeout_syn_sent, /* TCP_CONNTRACK_SYN_SENT, */ + &nf_ct_tcp_timeout_syn_recv, /* TCP_CONNTRACK_SYN_RECV, */ +@@ -671,7 +672,7 @@ + } else { + res = 0; + if (sender->flags & IP_CT_TCP_FLAG_BE_LIBERAL || +- nf_ct_tcp_be_liberal) ++ ve_nf_ct_tcp_be_liberal) + res = 1; + if (!res && LOG_INVALID(IPPROTO_TCP)) + nf_log_packet(pf, 0, skb, NULL, NULL, NULL, +@@ -960,9 +961,9 @@ + if (old_state != new_state + && new_state == TCP_CONNTRACK_FIN_WAIT) + conntrack->proto.tcp.seen[dir].flags |= IP_CT_TCP_FLAG_CLOSE_INIT; +- timeout = conntrack->proto.tcp.retrans >= nf_ct_tcp_max_retrans +- && *tcp_timeouts[new_state] > nf_ct_tcp_timeout_max_retrans +- ? nf_ct_tcp_timeout_max_retrans : *tcp_timeouts[new_state]; ++ timeout = conntrack->proto.tcp.retrans >= ve_nf_ct_tcp_max_retrans ++ && ve_nf_ct_tcp_timeouts[new_state] > ve_nf_ct_tcp_timeout_max_retrans ++ ? ve_nf_ct_tcp_timeout_max_retrans : ve_nf_ct_tcp_timeouts[new_state]; + write_unlock_bh(&tcp_lock); + + nf_conntrack_event_cache(IPCT_PROTOINFO_VOLATILE, skb); +@@ -1032,7 +1033,7 @@ + + tcp_options(skb, dataoff, th, &conntrack->proto.tcp.seen[0]); + conntrack->proto.tcp.seen[1].flags = 0; +- } else if (nf_ct_tcp_loose == 0) { ++ } else if (ve_nf_ct_tcp_loose == 0) { + /* Don't try to pick up connections. */ + return 0; + } else { +@@ -1427,3 +1428,118 @@ + #endif + }; + EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_tcp6); ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++void nf_ct_proto_tcp_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_tcp4->ctl_compat_table); ++ ve_nf_conntrack_l4proto_tcp4->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_tcp4->ctl_table); ++ ve_nf_conntrack_l4proto_tcp4->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_tcp4); ++ ve_nf_conntrack_l4proto_tcp4 = NULL; ++ ++ kfree(ve_nf_conntrack_l4proto_tcp6); ++ ve_nf_conntrack_l4proto_tcp6 = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_tcp_sysctl_cleanup); ++ ++int nf_ct_proto_tcp_sysctl_init(void) ++{ ++ struct nf_conntrack_l4proto *tcp4, *tcp6; ++ ++ if (ve_is_super(get_exec_env())) { ++ tcp4 = &nf_conntrack_l4proto_tcp4; ++ tcp6 = &nf_conntrack_l4proto_tcp6; ++ goto out; ++ } ++ ++ tcp4 = kmemdup(&nf_conntrack_l4proto_tcp4, ++ sizeof(struct nf_conntrack_l4proto), GFP_KERNEL); ++ if (tcp4 == NULL) ++ goto no_mem_ct4; ++ ++ tcp4->ctl_table_users = &ve_tcp_sysctl_table_users; ++ tcp4->ctl_table_header = &ve_tcp_sysctl_header; ++ tcp4->ctl_table = clone_sysctl_template(tcp_sysctl_table); ++ if (tcp4->ctl_table == NULL) ++ goto no_mem_sys; ++ ++ tcp4->ctl_table[0].data = &ve_nf_ct_tcp_timeouts[1]; ++ tcp4->ctl_table[1].data = &ve_nf_ct_tcp_timeouts[2]; ++ tcp4->ctl_table[2].data = &ve_nf_ct_tcp_timeouts[3]; ++ tcp4->ctl_table[3].data = &ve_nf_ct_tcp_timeouts[4]; ++ tcp4->ctl_table[4].data = &ve_nf_ct_tcp_timeouts[5]; ++ tcp4->ctl_table[5].data = &ve_nf_ct_tcp_timeouts[6]; ++ tcp4->ctl_table[6].data = &ve_nf_ct_tcp_timeouts[7]; ++ tcp4->ctl_table[7].data = &ve_nf_ct_tcp_timeouts[8]; ++ tcp4->ctl_table[8].data = &ve_nf_ct_tcp_timeout_max_retrans; ++ tcp4->ctl_table[9].data = &ve_nf_ct_tcp_loose; ++ tcp4->ctl_table[10].data = &ve_nf_ct_tcp_be_liberal; ++ tcp4->ctl_table[11].data = &ve_nf_ct_tcp_max_retrans; ++ ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ tcp4->ctl_compat_table_header = ve_tcp_compat_sysctl_header; ++ tcp4->ctl_compat_table = clone_sysctl_template(tcp_compat_sysctl_table); ++ if (tcp4->ctl_compat_table == NULL) ++ goto no_mem_compat; ++ ++ tcp4->ctl_compat_table[0].data = &ve_nf_ct_tcp_timeouts[1]; ++ tcp4->ctl_compat_table[1].data = &ve_nf_ct_tcp_timeouts[2]; ++ tcp4->ctl_compat_table[2].data = &ve_nf_ct_tcp_timeouts[3]; ++ tcp4->ctl_compat_table[3].data = &ve_nf_ct_tcp_timeouts[4]; ++ tcp4->ctl_compat_table[4].data = &ve_nf_ct_tcp_timeouts[5]; ++ tcp4->ctl_compat_table[5].data = &ve_nf_ct_tcp_timeouts[6]; ++ tcp4->ctl_compat_table[6].data = &ve_nf_ct_tcp_timeouts[7]; ++ tcp4->ctl_compat_table[7].data = &ve_nf_ct_tcp_timeouts[8]; ++ tcp4->ctl_compat_table[8].data = &ve_nf_ct_tcp_timeout_max_retrans; ++ tcp4->ctl_compat_table[9].data = &ve_nf_ct_tcp_loose; ++ tcp4->ctl_compat_table[10].data = &ve_nf_ct_tcp_be_liberal; ++ tcp4->ctl_compat_table[11].data = &ve_nf_ct_tcp_max_retrans; ++#endif ++ ++ tcp6 = kmemdup(&nf_conntrack_l4proto_tcp6, ++ sizeof(struct nf_conntrack_l4proto), GFP_KERNEL); ++ if (!tcp6) ++ goto no_mem_ct6; ++ ++ tcp6->ctl_table_users = &ve_tcp_sysctl_table_users; ++ tcp6->ctl_table_header = &ve_tcp_sysctl_header; ++ tcp6->ctl_table = tcp4->ctl_table; ++out: ++ ve_nf_ct_tcp_timeouts[1] = nf_ct_tcp_timeout_syn_sent; ++ ve_nf_ct_tcp_timeouts[2] = nf_ct_tcp_timeout_syn_recv; ++ ve_nf_ct_tcp_timeouts[3] = nf_ct_tcp_timeout_established; ++ ve_nf_ct_tcp_timeouts[4] = nf_ct_tcp_timeout_fin_wait; ++ ve_nf_ct_tcp_timeouts[5] = nf_ct_tcp_timeout_close_wait; ++ ve_nf_ct_tcp_timeouts[6] = nf_ct_tcp_timeout_last_ack; ++ ve_nf_ct_tcp_timeouts[7] = nf_ct_tcp_timeout_time_wait; ++ ve_nf_ct_tcp_timeouts[8] = nf_ct_tcp_timeout_close; ++ ve_nf_ct_tcp_timeout_max_retrans = nf_ct_tcp_timeout_max_retrans; ++ ve_nf_ct_tcp_loose = nf_ct_tcp_loose; ++ ve_nf_ct_tcp_be_liberal = nf_ct_tcp_be_liberal; ++ ve_nf_ct_tcp_max_retrans = nf_ct_tcp_max_retrans; ++ ++ ve_nf_conntrack_l4proto_tcp4 = tcp4; ++ ve_nf_conntrack_l4proto_tcp6 = tcp6; ++ return 0; ++ ++no_mem_ct6: ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone(tcp4->ctl_compat_table); ++no_mem_compat: ++#endif ++ free_sysctl_clone(tcp4->ctl_table); ++no_mem_sys: ++ kfree(tcp4); ++no_mem_ct4: ++ return -ENOMEM; ++} ++EXPORT_SYMBOL(nf_ct_proto_tcp_sysctl_init); ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ ++ +Index: kernel/net/netfilter/nf_conntrack_proto_udp.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_proto_udp.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_proto_udp.c 2008-11-24 15:47:46.000000000 +0100 +@@ -7,6 +7,7 @@ + */ + + #include ++#include + #include + #include + #include +@@ -78,12 +79,12 @@ + stream. Extend timeout. */ + if (test_bit(IPS_SEEN_REPLY_BIT, &conntrack->status)) { + nf_ct_refresh_acct(conntrack, ctinfo, skb, +- nf_ct_udp_timeout_stream); ++ ve_nf_ct_udp_timeout_stream); + /* Also, more likely to be important, and not a probe */ + if (!test_and_set_bit(IPS_ASSURED_BIT, &conntrack->status)) + nf_conntrack_event_cache(IPCT_STATUS, skb); + } else +- nf_ct_refresh_acct(conntrack, ctinfo, skb, nf_ct_udp_timeout); ++ nf_ct_refresh_acct(conntrack, ctinfo, skb, ve_nf_ct_udp_timeout); + + return NF_ACCEPT; + } +@@ -238,3 +239,88 @@ + #endif + }; + EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_udp6); ++ ++#if defined(CONFIG_VE_IPTABLES) && defined(CONFIG_SYSCTL) ++void nf_ct_proto_udp_sysctl_cleanup(void) ++{ ++ if (!ve_is_super(get_exec_env())) { ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone( ++ ve_nf_conntrack_l4proto_udp4->ctl_compat_table); ++ ve_nf_conntrack_l4proto_udp4->ctl_compat_table = NULL; ++#endif ++ free_sysctl_clone(ve_nf_conntrack_l4proto_udp4->ctl_table); ++ ve_nf_conntrack_l4proto_udp4->ctl_table = NULL; ++ kfree(ve_nf_conntrack_l4proto_udp4); ++ ve_nf_conntrack_l4proto_udp4 = NULL; ++ ++ kfree(ve_nf_conntrack_l4proto_udp6); ++ ve_nf_conntrack_l4proto_udp6 = NULL; ++ } ++} ++EXPORT_SYMBOL(nf_ct_proto_udp_sysctl_cleanup); ++ ++int nf_ct_proto_udp_sysctl_init(void) ++{ ++ struct nf_conntrack_l4proto *udp4, *udp6; ++ ++ if (ve_is_super(get_exec_env())) { ++ udp4 = &nf_conntrack_l4proto_udp4; ++ udp6 = &nf_conntrack_l4proto_udp6; ++ goto out; ++ } ++ ++ udp4 = kmemdup(&nf_conntrack_l4proto_udp4, ++ sizeof(struct nf_conntrack_l4proto), GFP_KERNEL); ++ if (udp4 == NULL) ++ goto no_mem_ct4; ++ ++ udp4->ctl_table_users = &ve_udp_sysctl_table_users; ++ udp4->ctl_table_header = &ve_udp_sysctl_header; ++ udp4->ctl_table = clone_sysctl_template(udp_sysctl_table); ++ if (udp4->ctl_table == NULL) ++ goto no_mem_sys; ++ udp4->ctl_table[0].data = &ve_nf_ct_udp_timeout; ++ udp4->ctl_table[1].data = &ve_nf_ct_udp_timeout_stream; ++ ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ udp4->ctl_compat_table_header = ve_udp_compat_sysctl_header; ++ udp4->ctl_compat_table = clone_sysctl_template(udp_compat_sysctl_table); ++ if (udp4->ctl_compat_table == NULL) ++ goto no_mem_compat; ++ udp4->ctl_compat_table[0].data = &ve_nf_ct_udp_timeout; ++ udp4->ctl_compat_table[1].data = &ve_nf_ct_udp_timeout_stream; ++#endif ++ ++ udp6 = kmemdup(&nf_conntrack_l4proto_udp6, ++ sizeof(struct nf_conntrack_l4proto), GFP_KERNEL); ++ if (!udp6) ++ goto no_mem_ct6; ++ ++ udp6->ctl_table_users = &ve_udp_sysctl_table_users; ++ udp6->ctl_table_header = &ve_udp_sysctl_header; ++ udp6->ctl_table = udp4->ctl_table; ++ ++ udp6->ctl_table[0].data = &ve_nf_ct_udp_timeout; ++ udp6->ctl_table[1].data = &ve_nf_ct_udp_timeout_stream; ++out: ++ ve_nf_ct_udp_timeout = nf_ct_udp_timeout; ++ ve_nf_ct_udp_timeout_stream = nf_ct_udp_timeout_stream; ++ ++ ve_nf_conntrack_l4proto_udp4 = udp4; ++ ve_nf_conntrack_l4proto_udp6 = udp6; ++ return 0; ++ ++no_mem_ct6: ++#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT ++ free_sysctl_clone(udp4->ctl_compat_table); ++no_mem_compat: ++#endif ++ free_sysctl_clone(udp4->ctl_table); ++no_mem_sys: ++ kfree(udp4); ++no_mem_ct4: ++ return -ENOMEM; ++} ++EXPORT_SYMBOL(nf_ct_proto_udp_sysctl_init); ++#endif /* CONFIG_VE_IPTABLES && CONFIG_SYSCTL */ +Index: kernel/net/netfilter/nf_conntrack_standalone.c +=================================================================== +--- kernel.orig/net/netfilter/nf_conntrack_standalone.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_conntrack_standalone.c 2008-11-24 15:47:46.000000000 +0100 +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -18,6 +19,7 @@ + #ifdef CONFIG_SYSCTL + #include + #endif ++#include + + #include + #include +@@ -28,6 +30,10 @@ + + MODULE_LICENSE("GPL"); + ++int ip_conntrack_disable_ve0 = 0; ++module_param(ip_conntrack_disable_ve0, int, 0440); ++EXPORT_SYMBOL(ip_conntrack_disable_ve0); ++ + #ifdef CONFIG_PROC_FS + int + print_tuple(struct seq_file *s, const struct nf_conntrack_tuple *tuple, +@@ -62,8 +68,8 @@ + for (st->bucket = 0; + st->bucket < nf_conntrack_htable_size; + st->bucket++) { +- if (!hlist_empty(&nf_conntrack_hash[st->bucket])) +- return nf_conntrack_hash[st->bucket].first; ++ if (!hlist_empty(&ve_nf_conntrack_hash[st->bucket])) ++ return ve_nf_conntrack_hash[st->bucket].first; + } + return NULL; + } +@@ -77,7 +83,7 @@ + while (head == NULL) { + if (++st->bucket >= nf_conntrack_htable_size) + return NULL; +- head = nf_conntrack_hash[st->bucket].first; ++ head = ve_nf_conntrack_hash[st->bucket].first; + } + return head; + } +@@ -244,7 +250,7 @@ + + static int ct_cpu_seq_show(struct seq_file *seq, void *v) + { +- unsigned int nr_conntracks = atomic_read(&nf_conntrack_count); ++ unsigned int nr_conntracks = atomic_read(&ve_nf_conntrack_count); + struct ip_conntrack_stat *st = v; + + if (v == SEQ_START_TOKEN) { +@@ -294,6 +300,55 @@ + .llseek = seq_lseek, + .release = seq_release_private, + }; ++ ++static int nf_conntrack_init_ve_proc(struct ve_struct *ve) ++{ ++ struct net *net = ve->ve_ns->net_ns; ++ struct proc_dir_entry *proc, *proc_stat; ++ int create_proc_net_stat_nf_conntrack = 1; ++ ++ proc = proc_net_fops_create(net, "nf_conntrack", 0440, &ct_file_ops); ++ if (!proc) ++ goto out; ++#ifdef CONFIG_VE_IPTABLES ++ create_proc_net_stat_nf_conntrack = ve_is_super(get_exec_env()); ++#endif ++ if (create_proc_net_stat_nf_conntrack) { ++ proc_stat = create_proc_entry("nf_conntrack", S_IRUGO, ++ net->proc_net_stat); ++ if (!proc_stat) ++ goto out_rm_nf_conntrack_expect; ++ proc_stat->proc_fops = &ct_cpu_seq_fops; ++ proc_stat->owner = THIS_MODULE; ++ } ++ return 0; ++out_rm_nf_conntrack_expect: ++ proc_net_remove(net, "nf_conntrack"); ++out: ++ return -ENOMEM; ++} ++ ++static void nf_conntrack_fini_ve_proc(struct ve_struct *ve) ++{ ++ struct net *net = ve->ve_ns->net_ns; ++ int remove_proc_net_stat_nf_conntrack = 1; ++ ++#ifdef CONFIG_VE_IPTABLES ++ remove_proc_net_stat_nf_conntrack = ve_is_super(get_exec_env()); ++#endif ++ if (remove_proc_net_stat_nf_conntrack) ++ remove_proc_entry("nf_conntrack", net->proc_net_stat); ++ proc_net_remove(net, "nf_conntrack"); ++} ++#else ++static inline int nf_conntrack_init_ve_proc(struct ve_struct *ve) ++{ ++ return 0; ++} ++ ++static inline void nf_conntrack_fini_ve_proc(struct ve_struct *ve) ++{ ++} + #endif /* CONFIG_PROC_FS */ + + /* Sysctl support */ +@@ -395,61 +450,117 @@ + EXPORT_SYMBOL_GPL(nf_ct_log_invalid); + #endif /* CONFIG_SYSCTL */ + +-static int __init nf_conntrack_standalone_init(void) ++#if defined(CONFIG_SYSCTL) && defined(CONFIG_VE_IPTABLES) ++static int nf_conntrack_init_ve_sysctl(struct ve_struct *ve) + { +-#ifdef CONFIG_PROC_FS +- struct proc_dir_entry *proc, *proc_stat; +-#endif +- int ret = 0; ++ if (ve_is_super(ve)) { ++ ve_nf_ct_net_table = nf_ct_net_table; ++ ve_nf_ct_netfilter_table = nf_ct_netfilter_table; ++ ve_nf_ct_sysctl_table = nf_ct_sysctl_table; ++ return 0; ++ } + +- ret = nf_conntrack_init(); +- if (ret < 0) +- return ret; ++ ve_nf_ct_net_table = clone_sysctl_template(nf_ct_net_table); ++ if (ve_nf_ct_net_table == NULL) ++ goto out; ++ ++ ve_nf_ct_netfilter_table = ve_nf_ct_net_table[0].child; ++ ve_nf_ct_netfilter_table[1].data = &ve_nf_conntrack_max; ++ ve_nf_ct_sysctl_table = ve_nf_ct_netfilter_table[0].child; ++ ve_nf_ct_sysctl_table[0].data = &ve_nf_conntrack_max; ++ ve_nf_ct_sysctl_table[1].data = &ve_nf_conntrack_count; ++ ve_nf_ct_sysctl_table[3].data = &ve_nf_conntrack_checksum; ++ ve_nf_ct_sysctl_table[4].data = &ve_nf_ct_log_invalid; ++ ve_nf_ct_sysctl_table[5].data = &ve_nf_ct_expect_max; ++ ++ ve_nf_ct_sysctl_header = register_sysctl_table(ve_nf_ct_net_table); ++ if (!ve_nf_ct_sysctl_header) ++ goto out_unclone; + +-#ifdef CONFIG_PROC_FS +- proc = proc_net_fops_create(&init_net, "nf_conntrack", 0440, &ct_file_ops); +- if (!proc) goto cleanup_init; ++ return 0; + +- proc_stat = create_proc_entry("nf_conntrack", S_IRUGO, init_net.proc_net_stat); +- if (!proc_stat) +- goto cleanup_proc; ++out_unclone: ++ free_sysctl_clone(ve_nf_ct_net_table); ++out: ++ return -ENOMEM; ++} + +- proc_stat->proc_fops = &ct_cpu_seq_fops; +- proc_stat->owner = THIS_MODULE; +-#endif +-#ifdef CONFIG_SYSCTL +- nf_ct_sysctl_header = register_sysctl_table(nf_ct_net_table); +- if (nf_ct_sysctl_header == NULL) { +- printk("nf_conntrack: can't register to sysctl.\n"); +- ret = -ENOMEM; +- goto cleanup_proc_stat; ++static void nf_conntrack_fini_ve_sysctl(struct ve_struct *ve) ++{ ++ if (!ve_is_super(ve)) { ++ unregister_sysctl_table(ve_nf_ct_sysctl_header); ++ free_sysctl_clone(ve_nf_ct_net_table); ++ ve_nf_ct_net_table = NULL; ++ ve_nf_ct_sysctl_table = NULL; ++ ve_nf_ct_netfilter_table = NULL; + } +-#endif +- return ret; ++} ++#else ++static inline int nf_conntrack_init_ve_sysctl(struct ve_struct *ve) ++{ ++ return 0; ++} + +-#ifdef CONFIG_SYSCTL +- cleanup_proc_stat: ++static inline void nf_conntrack_fini_ve_sysctl(struct ve_struct *ve) ++{ ++} + #endif +-#ifdef CONFIG_PROC_FS +- remove_proc_entry("nf_conntrack", init_net. proc_net_stat); +- cleanup_proc: +- proc_net_remove(&init_net, "nf_conntrack"); +- cleanup_init: +-#endif /* CNFIG_PROC_FS */ ++ ++int nf_conntrack_init_ve(void) ++{ ++ struct ve_struct *ve = get_exec_env(); ++ int err; ++ ++ err = nf_conntrack_init(); ++ if (err) ++ goto out; ++ ++ ve_nf_conntrack_checksum = nf_conntrack_checksum; ++ ++ err = nf_conntrack_init_ve_sysctl(ve); ++ if (err < 0) ++ goto out_generic; ++ ++ err = nf_conntrack_init_ve_proc(ve); ++ if (err < 0) ++ goto out_sysctl; ++ ++ return 0; ++ ++out_sysctl: ++ nf_conntrack_fini_ve_proc(ve); ++out_generic: ++ nf_conntrack_cleanup(); ++out: ++ return err; ++} ++ ++void nf_conntrack_cleanup_ve(void) ++{ ++ nf_conntrack_fini_ve_proc(get_exec_env()); ++ nf_conntrack_fini_ve_sysctl(get_exec_env()); + nf_conntrack_cleanup(); +- return ret; ++} ++EXPORT_SYMBOL(nf_conntrack_cleanup_ve); ++ ++static int __init nf_conntrack_standalone_init(void) ++{ ++#ifdef CONFIG_VE_IPTABLES ++ KSYMRESOLVE(nf_conntrack_init_ve); ++ KSYMRESOLVE(nf_conntrack_cleanup_ve); ++ KSYMMODRESOLVE(nf_conntrack); ++#endif ++ return nf_conntrack_init_ve(); + } + + static void __exit nf_conntrack_standalone_fini(void) + { +-#ifdef CONFIG_SYSCTL +- unregister_sysctl_table(nf_ct_sysctl_header); ++#ifdef CONFIG_VE_IPTABLES ++ KSYMMODUNRESOLVE(nf_conntrack); ++ KSYMUNRESOLVE(nf_conntrack_init_ve); ++ KSYMUNRESOLVE(nf_conntrack_cleanup_ve); + #endif +-#ifdef CONFIG_PROC_FS +- remove_proc_entry("nf_conntrack", init_net.proc_net_stat); +- proc_net_remove(&init_net, "nf_conntrack"); +-#endif /* CNFIG_PROC_FS */ +- nf_conntrack_cleanup(); ++ nf_conntrack_cleanup_ve(); + } + + module_init(nf_conntrack_standalone_init); +Index: kernel/net/netfilter/nf_queue.c +=================================================================== +--- kernel.orig/net/netfilter/nf_queue.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_queue.c 2008-11-24 15:47:46.000000000 +0100 +@@ -236,12 +236,12 @@ + /* Drop reference to owner of hook which queued us. */ + module_put(info->elem->owner); + +- list_for_each_rcu(i, &nf_hooks[info->pf][info->hook]) { ++ list_for_each_rcu(i, &ve_nf_hooks[info->pf][info->hook]) { + if (i == elem) + break; + } + +- if (i == &nf_hooks[info->pf][info->hook]) { ++ if (i == &ve_nf_hooks[info->pf][info->hook]) { + /* The module which sent it to userspace is gone. */ + NFDEBUG("%s: module disappeared, dropping packet.\n", + __FUNCTION__); +@@ -262,7 +262,7 @@ + + if (verdict == NF_ACCEPT) { + next_hook: +- verdict = nf_iterate(&nf_hooks[info->pf][info->hook], ++ verdict = nf_iterate(&ve_nf_hooks[info->pf][info->hook], + skb, info->hook, + info->indev, info->outdev, &elem, + info->okfn, INT_MIN); +Index: kernel/net/netfilter/nf_sockopt.c +=================================================================== +--- kernel.orig/net/netfilter/nf_sockopt.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nf_sockopt.c 2008-11-24 15:47:46.000000000 +0100 +@@ -65,8 +65,10 @@ + { + struct nf_sockopt_ops *ops; + +- if (sk->sk_net != &init_net) ++#ifdef CONFIG_VE_IPTABLES ++ if (!get_exec_env()->_nf_hooks) + return ERR_PTR(-ENOPROTOOPT); ++#endif + + if (mutex_lock_interruptible(&nf_sockopt_mutex) != 0) + return ERR_PTR(-EINTR); +Index: kernel/net/netfilter/nfnetlink.c +=================================================================== +--- kernel.orig/net/netfilter/nfnetlink.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/nfnetlink.c 2008-11-24 15:47:46.000000000 +0100 +@@ -124,7 +124,7 @@ + const struct nfnetlink_subsystem *ss; + int type, err; + +- if (security_netlink_recv(skb, CAP_NET_ADMIN)) ++ if (security_netlink_recv(skb, CAP_VE_NET_ADMIN)) + return -EPERM; + + /* All the messages must at least contain nfgenmsg */ +Index: kernel/net/netfilter/nfnetlink_queue.c +=================================================================== +--- kernel.orig/net/netfilter/nfnetlink_queue.c 2008-11-24 14:14:50.000000000 +0100 ++++ kernel/net/netfilter/nfnetlink_queue.c 2008-11-24 15:47:46.000000000 +0100 +@@ -728,9 +728,6 @@ + { + struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + /* Drop any packets associated with the downed device */ + if (event == NETDEV_DOWN) + nfqnl_dev_drop(dev->ifindex); +@@ -759,8 +756,7 @@ + struct hlist_head *head = &instance_table[i]; + + hlist_for_each_entry_safe(inst, tmp, t2, head, hlist) { +- if ((n->net == &init_net) && +- (n->pid == inst->peer_pid)) ++ if (n->pid == inst->peer_pid) + __instance_destroy(inst); + } + } +Index: kernel/net/netfilter/x_tables.c +=================================================================== +--- kernel.orig/net/netfilter/x_tables.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/x_tables.c 2008-11-24 15:47:46.000000000 +0100 +@@ -26,6 +26,10 @@ + + #include + #include ++#include ++ ++#include ++#include + + + MODULE_LICENSE("GPL"); +@@ -44,6 +48,14 @@ + + static struct xt_af *xt; + ++#ifdef CONFIG_VE_IPTABLES ++/* include ve.h and define get_exec_env */ ++#include ++#define xt_tables(af) (get_exec_env()->_xt_tables[af]) ++#else ++#define xt_tables(af) xt[af].tables ++#endif ++ + #ifdef DEBUG_IP_FIREWALL_USER + #define duprintf(format, args...) printk(format , ## args) + #else +@@ -62,6 +74,46 @@ + [NF_ARP] = "arp", + }; + ++#ifdef CONFIG_BEANCOUNTERS ++static inline struct user_beancounter *xt_table_ub(struct xt_table_info *info) ++{ ++ struct user_beancounter *ub; ++ ++ for (ub = mem_ub(info); ub->parent != NULL; ub = ub->parent); ++ return ub; ++} ++ ++static void uncharge_xtables(struct xt_table_info *info, unsigned long size) ++{ ++ struct user_beancounter *ub; ++ ++ ub = xt_table_ub(info); ++ uncharge_beancounter(ub, UB_NUMXTENT, size); ++} ++ ++static int recharge_xtables(int check_ub, ++ struct xt_table_info *new, struct xt_table_info *old) ++{ ++ struct user_beancounter *ub; ++ long change; ++ ++ ub = xt_table_ub(new); ++ BUG_ON(check_ub && ub != xt_table_ub(old)); ++ ++ change = (long)new->number - (long)old->number; ++ if (change > 0) { ++ if (charge_beancounter(ub, UB_NUMXTENT, change, UB_SOFT)) ++ return -ENOMEM; ++ } else if (change < 0) ++ uncharge_beancounter(ub, UB_NUMXTENT, -change); ++ ++ return 0; ++} ++#else ++#define recharge_xtables(c, new, old) (0) ++#define uncharge_xtables(info, s) do { } while (0) ++#endif /* CONFIG_BEANCOUNTERS */ ++ + /* Registration hooks for targets. */ + int + xt_register_target(struct xt_target *target) +@@ -73,7 +125,7 @@ + return ret; + list_add(&target->list, &xt[af].target); + mutex_unlock(&xt[af].mutex); +- return ret; ++ return 0; + } + EXPORT_SYMBOL(xt_register_target); + +@@ -130,7 +182,7 @@ + list_add(&match->list, &xt[af].match); + mutex_unlock(&xt[af].mutex); + +- return ret; ++ return 0; + } + EXPORT_SYMBOL(xt_register_match); + +@@ -310,23 +362,23 @@ + unsigned short proto, int inv_proto) + { + if (XT_ALIGN(match->matchsize) != size) { +- printk("%s_tables: %s match: invalid size %Zu != %u\n", ++ ve_printk(VE_LOG, "%s_tables: %s match: invalid size %Zu != %u\n", + xt_prefix[family], match->name, + XT_ALIGN(match->matchsize), size); + return -EINVAL; + } + if (match->table && strcmp(match->table, table)) { +- printk("%s_tables: %s match: only valid in %s table, not %s\n", ++ ve_printk(VE_LOG, "%s_tables: %s match: only valid in %s table, not %s\n", + xt_prefix[family], match->name, match->table, table); + return -EINVAL; + } + if (match->hooks && (hook_mask & ~match->hooks) != 0) { +- printk("%s_tables: %s match: bad hook_mask %u/%u\n", ++ ve_printk(VE_LOG, "%s_tables: %s match: bad hook_mask %u/%u\n", + xt_prefix[family], match->name, hook_mask, match->hooks); + return -EINVAL; + } + if (match->proto && (match->proto != proto || inv_proto)) { +- printk("%s_tables: %s match: only valid for protocol %u\n", ++ ve_printk(VE_LOG, "%s_tables: %s match: only valid for protocol %u\n", + xt_prefix[family], match->name, match->proto); + return -EINVAL; + } +@@ -402,24 +454,24 @@ + unsigned short proto, int inv_proto) + { + if (XT_ALIGN(target->targetsize) != size) { +- printk("%s_tables: %s target: invalid size %Zu != %u\n", ++ ve_printk(VE_LOG, "%s_tables: %s target: invalid size %Zu != %u\n", + xt_prefix[family], target->name, + XT_ALIGN(target->targetsize), size); + return -EINVAL; + } + if (target->table && strcmp(target->table, table)) { +- printk("%s_tables: %s target: only valid in %s table, not %s\n", ++ ve_printk(VE_LOG, "%s_tables: %s target: only valid in %s table, not %s\n", + xt_prefix[family], target->name, target->table, table); + return -EINVAL; + } + if (target->hooks && (hook_mask & ~target->hooks) != 0) { +- printk("%s_tables: %s target: bad hook_mask %u/%u\n", ++ ve_printk(VE_LOG, "%s_tables: %s target: bad hook_mask %u/%u\n", + xt_prefix[family], target->name, hook_mask, + target->hooks); + return -EINVAL; + } + if (target->proto && (target->proto != proto || inv_proto)) { +- printk("%s_tables: %s target: only valid for protocol %u\n", ++ ve_printk(VE_LOG, "%s_tables: %s target: only valid for protocol %u\n", + xt_prefix[family], target->name, target->proto); + return -EINVAL; + } +@@ -499,19 +551,19 @@ + if ((SMP_ALIGN(size) >> PAGE_SHIFT) + 2 > num_physpages) + return NULL; + +- newinfo = kzalloc(sizeof(struct xt_table_info), GFP_KERNEL); ++ newinfo = kzalloc(sizeof(struct xt_table_info), GFP_KERNEL_UBC); + if (!newinfo) + return NULL; + +- newinfo->size = size; ++ newinfo->alloc_size = newinfo->size = size; + + for_each_possible_cpu(cpu) { + if (size <= PAGE_SIZE) + newinfo->entries[cpu] = kmalloc_node(size, +- GFP_KERNEL, ++ GFP_KERNEL_UBC, + cpu_to_node(cpu)); + else +- newinfo->entries[cpu] = vmalloc_node(size, ++ newinfo->entries[cpu] = ub_vmalloc_node(size, + cpu_to_node(cpu)); + + if (newinfo->entries[cpu] == NULL) { +@@ -529,7 +581,7 @@ + int cpu; + + for_each_possible_cpu(cpu) { +- if (info->size <= PAGE_SIZE) ++ if (info->alloc_size <= PAGE_SIZE) + kfree(info->entries[cpu]); + else + vfree(info->entries[cpu]); +@@ -546,7 +598,7 @@ + if (mutex_lock_interruptible(&xt[af].mutex) != 0) + return ERR_PTR(-EINTR); + +- list_for_each_entry(t, &xt[af].tables, list) ++ list_for_each_entry(t, &xt_tables(af), list) + if (strcmp(t->name, name) == 0 && try_module_get(t->me)) + return t; + mutex_unlock(&xt[af].mutex); +@@ -594,6 +646,13 @@ + return NULL; + } + oldinfo = private; ++ ++ if (recharge_xtables(num_counters != 0, newinfo, oldinfo)) { ++ write_unlock_bh(&table->lock); ++ *error = -ENOMEM; ++ return NULL; ++ } ++ + table->private = newinfo; + newinfo->initial_entries = oldinfo->initial_entries; + write_unlock_bh(&table->lock); +@@ -615,7 +674,7 @@ + return ret; + + /* Don't autoload: we'd eat our tail... */ +- list_for_each_entry(t, &xt[table->af].tables, list) { ++ list_for_each_entry(t, &xt_tables(table->af), list) { + if (strcmp(t->name, table->name) == 0) { + ret = -EEXIST; + goto unlock; +@@ -634,7 +693,7 @@ + /* save number of initial entries */ + private->initial_entries = private->number; + +- list_add(&table->list, &xt[table->af].tables); ++ list_add(&table->list, &xt_tables(table->af)); + + ret = 0; + unlock: +@@ -643,6 +702,39 @@ + } + EXPORT_SYMBOL_GPL(xt_register_table); + ++struct xt_table * virt_xt_register_table(struct xt_table *table, ++ struct xt_table_info *bootstrap, ++ struct xt_table_info *newinfo) ++{ ++ int ret; ++ struct module *mod = table->me; ++ ++ if (!ve_is_super(get_exec_env())) { ++ struct xt_table *tmp; ++ __module_get(mod); ++ ret = -ENOMEM; ++ tmp = kmalloc(sizeof(struct xt_table), GFP_KERNEL_UBC); ++ if (!tmp) ++ goto nomem; ++ memcpy(tmp, table, sizeof(struct xt_table)); ++ table = tmp; ++ } ++ ++ ret = xt_register_table(table, bootstrap, newinfo); ++ if (ret) ++ goto out; ++ ++ return table; ++out: ++ if (!ve_is_super(get_exec_env())) { ++ kfree(table); ++nomem: ++ module_put(mod); ++ } ++ return ERR_PTR(ret); ++} ++EXPORT_SYMBOL_GPL(virt_xt_register_table); ++ + void *xt_unregister_table(struct xt_table *table) + { + struct xt_table_info *private; +@@ -652,10 +744,25 @@ + list_del(&table->list); + mutex_unlock(&xt[table->af].mutex); + ++ uncharge_xtables(private, private->number); ++ + return private; + } + EXPORT_SYMBOL_GPL(xt_unregister_table); + ++void *virt_xt_unregister_table(struct xt_table *table) ++{ ++ void *ret; ++ ++ ret = xt_unregister_table(table); ++ if (!ve_is_super(get_exec_env())) { ++ module_put(table->me); ++ kfree(table); ++ } ++ return ret; ++} ++EXPORT_SYMBOL_GPL(virt_xt_unregister_table); ++ + #ifdef CONFIG_PROC_FS + static struct list_head *xt_get_idx(struct list_head *list, struct seq_file *seq, loff_t pos) + { +@@ -684,7 +791,7 @@ + list = &xt[af].match; + break; + case TABLE: +- list = &xt[af].tables; ++ list = &xt_tables(af); + break; + default: + list = NULL; +@@ -797,6 +904,7 @@ + return -EINVAL; + + ++ INIT_LIST_HEAD(&xt_tables(af)); + #ifdef CONFIG_PROC_FS + strlcpy(buf, xt_prefix[af], sizeof(buf)); + strlcat(buf, FORMAT_TABLES, sizeof(buf)); +@@ -885,6 +993,6 @@ + kfree(xt); + } + +-module_init(xt_init); ++subsys_initcall(xt_init); + module_exit(xt_fini); + +Index: kernel/net/netfilter/xt_MARK.c +=================================================================== +--- kernel.orig/net/netfilter/xt_MARK.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/xt_MARK.c 2008-11-24 15:47:46.000000000 +0100 +@@ -75,7 +75,7 @@ + const struct xt_mark_target_info *markinfo = targinfo; + + if (markinfo->mark > 0xffffffff) { +- printk(KERN_WARNING "MARK: Only supports 32bit wide mark\n"); ++ ve_printk(VE_LOG, KERN_WARNING "MARK: Only supports 32bit wide mark\n"); + return false; + } + return true; +@@ -93,12 +93,12 @@ + if (markinfo->mode != XT_MARK_SET + && markinfo->mode != XT_MARK_AND + && markinfo->mode != XT_MARK_OR) { +- printk(KERN_WARNING "MARK: unknown mode %u\n", ++ ve_printk(VE_LOG, KERN_WARNING "MARK: unknown mode %u\n", + markinfo->mode); + return false; + } + if (markinfo->mark > 0xffffffff) { +- printk(KERN_WARNING "MARK: Only supports 32bit wide mark\n"); ++ ve_printk(VE_LOG, KERN_WARNING "MARK: Only supports 32bit wide mark\n"); + return false; + } + return true; +Index: kernel/net/netfilter/xt_TCPMSS.c +=================================================================== +--- kernel.orig/net/netfilter/xt_TCPMSS.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/xt_TCPMSS.c 2008-11-24 15:47:46.000000000 +0100 +@@ -63,7 +63,7 @@ + badly. --RR */ + if (tcplen != tcph->doff*4) { + if (net_ratelimit()) +- printk(KERN_ERR "xt_TCPMSS: bad length (%u bytes)\n", ++ ve_printk(VE_LOG, KERN_ERR "xt_TCPMSS: bad length (%u bytes)\n", + skb->len); + return -1; + } +@@ -71,7 +71,7 @@ + if (info->mss == XT_TCPMSS_CLAMP_PMTU) { + if (dst_mtu(skb->dst) <= minlen) { + if (net_ratelimit()) +- printk(KERN_ERR "xt_TCPMSS: " ++ ve_printk(VE_LOG, KERN_ERR "xt_TCPMSS: " + "unknown or invalid path-MTU (%u)\n", + dst_mtu(skb->dst)); + return -1; +@@ -217,13 +217,13 @@ + (hook_mask & ~((1 << NF_IP_FORWARD) | + (1 << NF_IP_LOCAL_OUT) | + (1 << NF_IP_POST_ROUTING))) != 0) { +- printk("xt_TCPMSS: path-MTU clamping only supported in " ++ ve_printk(VE_LOG, "xt_TCPMSS: path-MTU clamping only supported in " + "FORWARD, OUTPUT and POSTROUTING hooks\n"); + return false; + } + if (IPT_MATCH_ITERATE(e, find_syn_match)) + return true; +- printk("xt_TCPMSS: Only works on TCP SYN packets\n"); ++ ve_printk(VE_LOG, "xt_TCPMSS: Only works on TCP SYN packets\n"); + return false; + } + +@@ -242,13 +242,13 @@ + (hook_mask & ~((1 << NF_IP6_FORWARD) | + (1 << NF_IP6_LOCAL_OUT) | + (1 << NF_IP6_POST_ROUTING))) != 0) { +- printk("xt_TCPMSS: path-MTU clamping only supported in " ++ ve_printk(VE_LOG, "xt_TCPMSS: path-MTU clamping only supported in " + "FORWARD, OUTPUT and POSTROUTING hooks\n"); + return false; + } + if (IP6T_MATCH_ITERATE(e, find_syn_match)) + return true; +- printk("xt_TCPMSS: Only works on TCP SYN packets\n"); ++ ve_printk(VE_LOG, "xt_TCPMSS: Only works on TCP SYN packets\n"); + return false; + } + #endif +Index: kernel/net/netfilter/xt_hashlimit.c +=================================================================== +--- kernel.orig/net/netfilter/xt_hashlimit.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/xt_hashlimit.c 2008-11-24 15:47:46.000000000 +0100 +@@ -15,6 +15,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -36,8 +37,13 @@ + MODULE_ALIAS("ip6t_hashlimit"); + + /* need to declare this at the top */ ++#ifdef CONFIG_VE_IPTABLES ++#define hashlimit_procdir4 (get_exec_env()->_xt_hashlimit->hashlimit_procdir4) ++#define hashlimit_procdir6 (get_exec_env()->_xt_hashlimit->hashlimit_procdir6) ++#else + static struct proc_dir_entry *hashlimit_procdir4; + static struct proc_dir_entry *hashlimit_procdir6; ++#endif + static const struct file_operations dl_file_ops; + + /* hash table crap */ +@@ -92,7 +98,11 @@ + + static DEFINE_SPINLOCK(hashlimit_lock); /* protects htables list */ + static DEFINE_MUTEX(hlimit_mutex); /* additional checkentry protection */ ++#ifdef CONFIG_VE_IPTABLES ++#define hashlimit_htables (get_exec_env()->_xt_hashlimit->hashlimit_htables) ++#else + static HLIST_HEAD(hashlimit_htables); ++#endif + static struct kmem_cache *hashlimit_cachep __read_mostly; + + static inline bool dst_cmp(const struct dsthash_ent *ent, +@@ -440,6 +450,9 @@ + return 0; + } + ++static int init_xt_hashlimit(struct ve_struct *ve); ++static void fini_xt_hashlimit(struct ve_struct *ve); ++ + static bool + hashlimit_match(const struct sk_buff *skb, + const struct net_device *in, +@@ -528,6 +541,9 @@ + if (r->name[sizeof(r->name) - 1] != '\0') + return false; + ++ if (init_xt_hashlimit(get_exec_env())) ++ return 0; ++ + /* This is the best we've got: We cannot release and re-grab lock, + * since checkentry() is called before x_tables.c grabs xt_mutex. + * We also cannot grab the hashtable spinlock, since htable_create will +@@ -553,6 +569,8 @@ + const struct xt_hashlimit_info *r = matchinfo; + + htable_put(r->hinfo); ++ if (!ve_is_super(get_exec_env()) && hlist_empty(&hashlimit_htables)) ++ fini_xt_hashlimit(get_exec_env()); + } + + #ifdef CONFIG_COMPAT +@@ -728,6 +746,59 @@ + .release = seq_release + }; + ++static int init_xt_hashlimit(struct ve_struct *ve) ++{ ++ struct proc_dir_entry *proc_net = ve->ve_ns->net_ns->proc_net; ++ ++#if defined(CONFIG_VE_IPTABLES) ++ if (ve->_xt_hashlimit) ++ return 0; ++ ++ ve->_xt_hashlimit = kzalloc(sizeof(struct ve_xt_hashlimit), GFP_KERNEL); ++ if (!ve->_xt_hashlimit) ++ goto err1; ++#endif ++ INIT_HLIST_HEAD(&hashlimit_htables); ++ ++ hashlimit_procdir4 = proc_mkdir("ipt_hashlimit", proc_net); ++ if (!hashlimit_procdir4) { ++ printk(KERN_ERR "xt_hashlimit: unable to create proc dir " ++ "entry\n"); ++ goto err2; ++ } ++ hashlimit_procdir6 = proc_mkdir("ip6t_hashlimit", proc_net); ++ if (!hashlimit_procdir6) { ++ printk(KERN_ERR "xt_hashlimit: unable to create proc dir " ++ "entry\n"); ++ goto err3; ++ } ++ ++ return 0; ++ ++err3: ++ remove_proc_entry("ipt_hashlimit", proc_net); ++err2: ++#if defined(CONFIG_VE_IPTABLES) ++ kfree(ve->_xt_hashlimit); ++ ve->_xt_hashlimit = NULL; ++#endif ++err1: ++ return -ENOMEM; ++} ++ ++static void fini_xt_hashlimit(struct ve_struct *ve) ++{ ++ struct proc_dir_entry *proc_net = ve->ve_ns->net_ns->proc_net; ++ ++ remove_proc_entry("ip6t_hashlimit", proc_net); ++ remove_proc_entry("ipt_hashlimit", proc_net); ++ ++#if defined(CONFIG_VE_IPTABLES) ++ kfree(ve->_xt_hashlimit); ++ ve->_xt_hashlimit = NULL; ++#endif ++} ++ + static int __init xt_hashlimit_init(void) + { + int err; +@@ -744,21 +815,10 @@ + printk(KERN_ERR "xt_hashlimit: unable to create slab cache\n"); + goto err2; + } +- hashlimit_procdir4 = proc_mkdir("ipt_hashlimit", init_net.proc_net); +- if (!hashlimit_procdir4) { +- printk(KERN_ERR "xt_hashlimit: unable to create proc dir " +- "entry\n"); ++ err = init_xt_hashlimit(get_exec_env()); ++ if (err) + goto err3; +- } +- hashlimit_procdir6 = proc_mkdir("ip6t_hashlimit", init_net.proc_net); +- if (!hashlimit_procdir6) { +- printk(KERN_ERR "xt_hashlimit: unable to create proc dir " +- "entry\n"); +- goto err4; +- } + return 0; +-err4: +- remove_proc_entry("ipt_hashlimit", init_net.proc_net); + err3: + kmem_cache_destroy(hashlimit_cachep); + err2: +@@ -770,8 +830,7 @@ + + static void __exit xt_hashlimit_fini(void) + { +- remove_proc_entry("ipt_hashlimit", init_net.proc_net); +- remove_proc_entry("ip6t_hashlimit", init_net.proc_net); ++ fini_xt_hashlimit(get_exec_env()); + kmem_cache_destroy(hashlimit_cachep); + xt_unregister_matches(xt_hashlimit, ARRAY_SIZE(xt_hashlimit)); + } +Index: kernel/net/netfilter/xt_limit.c +=================================================================== +--- kernel.orig/net/netfilter/xt_limit.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netfilter/xt_limit.c 2008-11-24 15:47:46.000000000 +0100 +@@ -111,7 +111,7 @@ + /* Check for overflow. */ + if (r->burst == 0 + || user2credits(r->avg * r->burst) < user2credits(r->avg)) { +- printk("Overflow in xt_limit, try lower: %u/%u\n", ++ ve_printk(VE_LOG, "Overflow in xt_limit, try lower: %u/%u\n", + r->avg, r->burst); + return false; + } +Index: kernel/net/netlink/af_netlink.c +=================================================================== +--- kernel.orig/net/netlink/af_netlink.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netlink/af_netlink.c 2008-11-24 15:47:46.000000000 +0100 +@@ -61,29 +61,14 @@ + #include + #include + #include ++#include ++ ++#include ++#include + + #define NLGRPSZ(x) (ALIGN(x, sizeof(unsigned long) * 8) / 8) + #define NLGRPLONGS(x) (NLGRPSZ(x)/sizeof(unsigned long)) + +-struct netlink_sock { +- /* struct sock has to be the first member of netlink_sock */ +- struct sock sk; +- u32 pid; +- u32 dst_pid; +- u32 dst_group; +- u32 flags; +- u32 subscriptions; +- u32 ngroups; +- unsigned long *groups; +- unsigned long state; +- wait_queue_head_t wait; +- struct netlink_callback *cb; +- struct mutex *cb_mutex; +- struct mutex cb_def_mutex; +- void (*netlink_rcv)(struct sk_buff *skb); +- struct module *module; +-}; +- + #define NETLINK_KERNEL_SOCKET 0x1 + #define NETLINK_RECV_PKTINFO 0x2 + +@@ -225,7 +210,9 @@ + read_lock(&nl_table_lock); + head = nl_pid_hashfn(hash, pid); + sk_for_each(sk, node, head) { +- if ((sk->sk_net == net) && (nlk_sk(sk)->pid == pid)) { ++ /* VEs should find sockets, created by kernel */ ++ if (nlk_sk(sk)->pid == pid && (netlink_is_kernel(sk) || ++ ve_accessible_strict(sk->owner_env, get_exec_env()))) { + sock_hold(sk); + goto found; + } +@@ -345,7 +332,8 @@ + head = nl_pid_hashfn(hash, pid); + len = 0; + sk_for_each(osk, node, head) { +- if ((osk->sk_net == net) && (nlk_sk(osk)->pid == pid)) ++ if ((osk->sk_net == net) && (nlk_sk(osk)->pid == pid) && ++ ve_accessible_strict(osk->owner_env, get_exec_env())) + break; + len++; + } +@@ -399,6 +387,8 @@ + sk = sk_alloc(net, PF_NETLINK, GFP_KERNEL, &netlink_proto); + if (!sk) + return -ENOMEM; ++ if (ub_other_sock_charge(sk)) ++ goto out_free; + + sock_init_data(sock, sk); + +@@ -414,6 +404,10 @@ + sk->sk_destruct = netlink_sock_destruct; + sk->sk_protocol = protocol; + return 0; ++ ++out_free: ++ sk_free(sk); ++ return -ENOMEM; + } + + static int netlink_create(struct net *net, struct socket *sock, int protocol) +@@ -516,7 +510,7 @@ + struct hlist_head *head; + struct sock *osk; + struct hlist_node *node; +- s32 pid = current->tgid; ++ s32 pid = task_tgid_vnr(current); + int err; + static s32 rover = -4097; + +@@ -527,6 +521,8 @@ + sk_for_each(osk, node, head) { + if ((osk->sk_net != net)) + continue; ++ if (!ve_accessible_strict(osk->owner_env, get_exec_env())) ++ continue; + if (nlk_sk(osk)->pid == pid) { + /* Bind collision, search negative pid values. */ + pid = rover--; +@@ -552,7 +548,7 @@ + static inline int netlink_capable(struct socket *sock, unsigned int flag) + { + return (nl_table[sock->sk->sk_protocol].nl_nonroot & flag) || +- capable(CAP_NET_ADMIN); ++ capable(CAP_VE_NET_ADMIN); + } + + static void +@@ -755,12 +751,20 @@ + long *timeo, struct sock *ssk) + { + struct netlink_sock *nlk; ++ unsigned long chargesize; ++ int no_ubc; + + nlk = nlk_sk(sk); + +- if (atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf || ++ chargesize = skb_charge_fullsize(skb); ++ no_ubc = ub_sock_getwres_other(sk, chargesize); ++ if (no_ubc || atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf || + test_bit(0, &nlk->state)) { + DECLARE_WAITQUEUE(wait, current); ++ ++ if (!no_ubc) ++ ub_sock_retwres_other(sk, chargesize, ++ SOCK_MIN_UBCSPACE_CH); + if (!*timeo) { + if (!ssk || netlink_is_kernel(ssk)) + netlink_overrun(sk); +@@ -772,13 +776,20 @@ + __set_current_state(TASK_INTERRUPTIBLE); + add_wait_queue(&nlk->wait, &wait); + ++ /* this if can't be moved upper because ub_sock_snd_queue_add() ++ * may change task state to TASK_RUNNING */ ++ if (no_ubc) ++ ub_sock_sndqueueadd_other(sk, chargesize); ++ + if ((atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf || +- test_bit(0, &nlk->state)) && ++ test_bit(0, &nlk->state) || no_ubc) && + !sock_flag(sk, SOCK_DEAD)) + *timeo = schedule_timeout(*timeo); + + __set_current_state(TASK_RUNNING); + remove_wait_queue(&nlk->wait, &wait); ++ if (no_ubc) ++ ub_sock_sndqueuedel(sk); + sock_put(sk); + + if (signal_pending(current)) { +@@ -788,6 +799,7 @@ + return 1; + } + skb_set_owner_r(skb, sk); ++ ub_skb_set_charge(skb, sk, chargesize, UB_OTHERSOCKBUF); + return 0; + } + +@@ -947,6 +959,9 @@ + if ((sk->sk_net != p->net)) + goto out; + ++ if (!ve_accessible_strict(get_exec_env(), sk->owner_env)) ++ goto out; ++ + if (p->failure) { + netlink_overrun(sk); + goto out; +@@ -1049,6 +1064,9 @@ + !test_bit(p->group - 1, nlk->groups)) + goto out; + ++ if (!ve_accessible_strict(get_exec_env(), sk->owner_env)) ++ goto out; ++ + sk->sk_err = p->code; + sk->sk_error_report(sk); + out: +@@ -1485,6 +1503,10 @@ + skb = sock_rmalloc(sk, NLMSG_GOODSIZE, 0, GFP_KERNEL); + if (!skb) + goto errout; ++ if (ub_nlrcvbuf_charge(skb, sk) < 0) { ++ kfree_skb(skb); ++ return -EACCES; ++ } + + mutex_lock(nlk->cb_mutex); + +Index: kernel/net/netlink/attr.c +=================================================================== +--- kernel.orig/net/netlink/attr.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netlink/attr.c 2008-11-24 15:47:46.000000000 +0100 +@@ -163,7 +163,7 @@ + } + + if (unlikely(rem > 0)) +- printk(KERN_WARNING "netlink: %d bytes leftover after parsing " ++ ve_printk(VE_LOG, KERN_WARNING "netlink: %d bytes leftover after parsing " + "attributes.\n", rem); + + err = 0; +Index: kernel/net/netlink/genetlink.c +=================================================================== +--- kernel.orig/net/netlink/genetlink.c 2008-11-18 01:19:47.000000000 +0100 ++++ kernel/net/netlink/genetlink.c 2008-11-24 15:47:46.000000000 +0100 +@@ -439,7 +439,7 @@ + return -EOPNOTSUPP; + + if ((ops->flags & GENL_ADMIN_PERM) && +- security_netlink_recv(skb, CAP_NET_ADMIN)) ++ security_netlink_recv(skb, CAP_VE_NET_ADMIN)) + return -EPERM; + + if (nlh->nlmsg_flags & NLM_F_DUMP) { +Index: kernel/net/packet/af_packet.c +=================================================================== +--- kernel.orig/net/packet/af_packet.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/packet/af_packet.c 2008-11-24 15:47:46.000000000 +0100 +@@ -51,6 +51,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -80,6 +81,8 @@ + #include + #include + ++#include ++ + #ifdef CONFIG_INET + #include + #endif +@@ -246,9 +249,6 @@ + struct sock *sk; + struct sockaddr_pkt *spkt; + +- if (dev->nd_net != &init_net) +- goto out; +- + /* + * When we registered the protocol we saved the socket in the data + * field for just this event. +@@ -267,7 +267,8 @@ + * so that this procedure is noop. + */ + +- if (skb->pkt_type == PACKET_LOOPBACK) ++ if (skb->pkt_type == PACKET_LOOPBACK || ++ !ve_accessible(skb->owner_env, sk->owner_env)) + goto out; + + if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) +@@ -341,7 +342,7 @@ + */ + + saddr->spkt_device[13] = 0; +- dev = dev_get_by_name(&init_net, saddr->spkt_device); ++ dev = dev_get_by_name(current->nsproxy->net_ns, saddr->spkt_device); + err = -ENODEV; + if (dev == NULL) + goto out_unlock; +@@ -449,15 +450,17 @@ + int skb_len = skb->len; + unsigned int snaplen, res; + +- if (dev->nd_net != &init_net) +- goto drop; +- + if (skb->pkt_type == PACKET_LOOPBACK) + goto drop; + + sk = pt->af_packet_priv; + po = pkt_sk(sk); + ++ if (!ve_accessible(skb->owner_env, sk->owner_env)) ++ goto drop; ++ ++ skb_orphan(skb); ++ + skb->dev = dev; + + if (dev->header_ops) { +@@ -521,6 +524,9 @@ + if (pskb_trim(skb, snaplen)) + goto drop_n_acct; + ++ if (ub_sockrcvbuf_charge(sk, skb)) ++ goto drop_n_acct; ++ + skb_set_owner_r(skb, sk); + skb->dev = NULL; + dst_release(skb->dst); +@@ -566,15 +572,17 @@ + struct sk_buff *copy_skb = NULL; + struct timeval tv; + +- if (dev->nd_net != &init_net) +- goto drop; +- + if (skb->pkt_type == PACKET_LOOPBACK) + goto drop; + + sk = pt->af_packet_priv; + po = pkt_sk(sk); + ++ if (!ve_accessible(skb->owner_env, sk->owner_env)) ++ goto drop; ++ ++ skb_orphan(skb); ++ + if (dev->header_ops) { + if (sk->sk_type != SOCK_DGRAM) + skb_push(skb, skb->data - skb_mac_header(skb)); +@@ -621,6 +629,12 @@ + snaplen = 0; + } + ++ if (copy_skb && ++ ub_sockrcvbuf_charge(sk, copy_skb)) { ++ spin_lock(&sk->sk_receive_queue.lock); ++ goto ring_is_full; ++ } ++ + spin_lock(&sk->sk_receive_queue.lock); + h = packet_lookup_frame(po, po->head); + +@@ -732,7 +746,7 @@ + } + + +- dev = dev_get_by_index(&init_net, ifindex); ++ dev = dev_get_by_index(current->nsproxy->net_ns, ifindex); + err = -ENXIO; + if (dev == NULL) + goto out_unlock; +@@ -916,7 +930,7 @@ + return -EINVAL; + strlcpy(name,uaddr->sa_data,sizeof(name)); + +- dev = dev_get_by_name(&init_net, name); ++ dev = dev_get_by_name(current->nsproxy->net_ns, name); + if (dev) { + err = packet_do_bind(sk, dev, pkt_sk(sk)->num); + dev_put(dev); +@@ -943,7 +957,7 @@ + + if (sll->sll_ifindex) { + err = -ENODEV; +- dev = dev_get_by_index(&init_net, sll->sll_ifindex); ++ dev = dev_get_by_index(current->nsproxy->net_ns, sll->sll_ifindex); + if (dev == NULL) + goto out; + } +@@ -972,9 +986,6 @@ + __be16 proto = (__force __be16)protocol; /* weird, but documented */ + int err; + +- if (net != &init_net) +- return -EAFNOSUPPORT; +- + if (!capable(CAP_NET_RAW)) + return -EPERM; + if (sock->type != SOCK_DGRAM && sock->type != SOCK_RAW && +@@ -987,6 +998,8 @@ + sk = sk_alloc(net, PF_PACKET, GFP_KERNEL, &packet_proto); + if (sk == NULL) + goto out; ++ if (ub_other_sock_charge(sk)) ++ goto out_free; + + sock->ops = &packet_ops; + if (sock->type == SOCK_PACKET) +@@ -1024,6 +1037,9 @@ + sk_add_node(sk, &packet_sklist); + write_unlock_bh(&packet_sklist_lock); + return(0); ++ ++out_free: ++ sk_free(sk); + out: + return err; + } +@@ -1140,7 +1156,7 @@ + return -EOPNOTSUPP; + + uaddr->sa_family = AF_PACKET; +- dev = dev_get_by_index(&init_net, pkt_sk(sk)->ifindex); ++ dev = dev_get_by_index(current->nsproxy->net_ns, pkt_sk(sk)->ifindex); + if (dev) { + strlcpy(uaddr->sa_data, dev->name, 15); + dev_put(dev); +@@ -1165,7 +1181,7 @@ + sll->sll_family = AF_PACKET; + sll->sll_ifindex = po->ifindex; + sll->sll_protocol = po->num; +- dev = dev_get_by_index(&init_net, po->ifindex); ++ dev = dev_get_by_index(current->nsproxy->net_ns, po->ifindex); + if (dev) { + sll->sll_hatype = dev->type; + sll->sll_halen = dev->addr_len; +@@ -1217,7 +1233,7 @@ + rtnl_lock(); + + err = -ENODEV; +- dev = __dev_get_by_index(&init_net, mreq->mr_ifindex); ++ dev = __dev_get_by_index(current->nsproxy->net_ns, mreq->mr_ifindex); + if (!dev) + goto done; + +@@ -1271,7 +1287,7 @@ + if (--ml->count == 0) { + struct net_device *dev; + *mlp = ml->next; +- dev = dev_get_by_index(&init_net, ml->ifindex); ++ dev = dev_get_by_index(current->nsproxy->net_ns, ml->ifindex); + if (dev) { + packet_dev_mc(dev, ml, -1); + dev_put(dev); +@@ -1299,7 +1315,7 @@ + struct net_device *dev; + + po->mclist = ml->next; +- if ((dev = dev_get_by_index(&init_net, ml->ifindex)) != NULL) { ++ if ((dev = dev_get_by_index(current->nsproxy->net_ns, ml->ifindex)) != NULL) { + packet_dev_mc(dev, ml, -1); + dev_put(dev); + } +@@ -1455,14 +1471,16 @@ + struct sock *sk; + struct hlist_node *node; + struct net_device *dev = data; ++ struct ve_struct *ve; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- ++ ve = get_exec_env(); + read_lock(&packet_sklist_lock); + sk_for_each(sk, node, &packet_sklist) { + struct packet_sock *po = pkt_sk(sk); + ++ if (!ve_accessible_strict(sk->owner_env, ve)) ++ continue; ++ + switch (msg) { + case NETDEV_UNREGISTER: + if (po->mclist) +@@ -1868,6 +1886,8 @@ + struct hlist_node *node; + + sk_for_each(s, node, &packet_sklist) { ++ if (!ve_accessible(s->owner_env, get_exec_env())) ++ continue; + if (!off--) + return s; + } +@@ -1883,9 +1903,14 @@ + static void *packet_seq_next(struct seq_file *seq, void *v, loff_t *pos) + { + ++*pos; +- return (v == SEQ_START_TOKEN) +- ? sk_head(&packet_sklist) +- : sk_next((struct sock*)v) ; ++ do { ++ v = (v == SEQ_START_TOKEN) ++ ? sk_head(&packet_sklist) ++ : sk_next((struct sock*)v); ++ } while (v != NULL && ++ !ve_accessible(((struct sock*)v)->owner_env, ++ get_exec_env())); ++ return v; + } + + static void packet_seq_stop(struct seq_file *seq, void *v) +Index: kernel/net/sched/sch_cbq.c +=================================================================== +--- kernel.orig/net/sched/sch_cbq.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sched/sch_cbq.c 2008-11-24 15:47:46.000000000 +0100 +@@ -905,8 +905,8 @@ + + if (cl->deficit <= 0) { + q->active[prio] = cl; +- cl = cl->next_alive; + cl->deficit += cl->quantum; ++ cl = cl->next_alive; + } + return skb; + +@@ -1078,17 +1078,19 @@ + + for (h=0; h<16; h++) { + for (cl = q->classes[h]; cl; cl = cl->next) { ++ long mtu; + /* BUGGGG... Beware! This expression suffer of + arithmetic overflows! + */ + if (cl->priority == prio) { +- cl->quantum = (cl->weight*cl->allot*q->nclasses[prio])/ +- q->quanta[prio]; +- } +- if (cl->quantum <= 0 || cl->quantum>32*cl->qdisc->dev->mtu) { +- printk(KERN_WARNING "CBQ: class %08x has bad quantum==%ld, repaired.\n", cl->classid, cl->quantum); +- cl->quantum = cl->qdisc->dev->mtu/2 + 1; ++ cl->quantum = (cl->weight * cl->allot) / ++ (q->quanta[prio] / q->nclasses[prio]); + } ++ mtu = cl->qdisc->dev->mtu; ++ if (cl->quantum <= mtu/2) ++ cl->quantum = mtu/2 + 1; ++ else if (cl->quantum > 32*mtu) ++ cl->quantum = 32*mtu; + } + } + } +Index: kernel/net/sched/sch_generic.c +=================================================================== +--- kernel.orig/net/sched/sch_generic.c 2008-11-24 14:17:55.000000000 +0100 ++++ kernel/net/sched/sch_generic.c 2008-11-24 15:47:46.000000000 +0100 +@@ -135,11 +135,13 @@ + struct Qdisc *q = dev->qdisc; + struct sk_buff *skb; + int ret = NETDEV_TX_BUSY; ++ struct ve_struct *old_ve; + + /* Dequeue packet */ + if (unlikely((skb = dev_dequeue_skb(dev, q)) == NULL)) + return 0; + ++ old_ve = set_exec_env(skb->owner_env); + + /* And release queue */ + spin_unlock(&dev->queue_lock); +@@ -173,6 +175,8 @@ + break; + } + ++ (void)set_exec_env(old_ve); ++ + return ret; + } + +Index: kernel/net/sched/sch_teql.c +=================================================================== +--- kernel.orig/net/sched/sch_teql.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sched/sch_teql.c 2008-11-24 15:47:46.000000000 +0100 +@@ -174,6 +174,9 @@ + struct teql_master *m = (struct teql_master*)sch->ops; + struct teql_sched_data *q = qdisc_priv(sch); + ++ if (!capable(CAP_NET_ADMIN)) ++ return -EPERM; ++ + if (dev->hard_header_len > m->dev->hard_header_len) + return -EINVAL; + +Index: kernel/net/socket.c +=================================================================== +--- kernel.orig/net/socket.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/socket.c 2008-11-24 15:47:46.000000000 +0100 +@@ -84,6 +84,7 @@ + #include + #include + #include ++#include + #include + + #include +@@ -155,15 +156,6 @@ + * divide and look after the messy bits. + */ + +-#define MAX_SOCK_ADDR 128 /* 108 for Unix domain - +- 16 for IP, 16 for IPX, +- 24 for IPv6, +- about 80 for AX.25 +- must be at least one bigger than +- the AF_UNIX size (see net/unix/af_unix.c +- :unix_mkname()). +- */ +- + /** + * move_addr_to_kernel - copy a socket address into kernel space + * @uaddr: Address in user space +@@ -492,6 +484,8 @@ + return sock; + } + ++EXPORT_SYMBOL(sock_alloc); ++ + /* + * In theory you can't get an open on this inode, but /proc provides + * a back door. Remember to keep it shut otherwise you'll let the +@@ -739,7 +733,6 @@ + if (iocb->ki_left == 0) /* Match SYS5 behaviour */ + return 0; + +- + x = alloc_sock_iocb(iocb, &siocb); + if (!x) + return -ENOMEM; +@@ -1076,6 +1069,48 @@ + return 0; + } + ++int vz_security_family_check(int family) ++{ ++#ifdef CONFIG_VE ++ if (ve_is_super(get_exec_env())) ++ return 0; ++ ++ switch (family) { ++ case PF_UNSPEC: ++ case PF_PACKET: ++ case PF_NETLINK: ++ case PF_UNIX: ++ case PF_INET: ++ case PF_INET6: ++ break; ++ default: ++ return -EAFNOSUPPORT; ++ } ++#endif ++ return 0; ++} ++EXPORT_SYMBOL_GPL(vz_security_family_check); ++ ++int vz_security_protocol_check(int protocol) ++{ ++#ifdef CONFIG_VE ++ if (ve_is_super(get_exec_env())) ++ return 0; ++ ++ switch (protocol) { ++ case IPPROTO_IP: ++ case IPPROTO_TCP: ++ case IPPROTO_UDP: ++ case IPPROTO_RAW: ++ break; ++ default: ++ return -EAFNOSUPPORT; ++ } ++#endif ++ return 0; ++} ++EXPORT_SYMBOL_GPL(vz_security_protocol_check); ++ + static int __sock_create(struct net *net, int family, int type, int protocol, + struct socket **res, int kern) + { +@@ -1106,6 +1141,11 @@ + family = PF_PACKET; + } + ++ /* VZ compatibility layer */ ++ err = vz_security_family_check(family); ++ if (err < 0) ++ return err; ++ + err = security_socket_create(family, type, protocol, kern); + if (err) + return err; +@@ -2311,9 +2351,12 @@ + { + mm_segment_t oldfs = get_fs(); + int err; ++ struct ve_struct *old_env; + + set_fs(KERNEL_DS); ++ old_env = set_exec_env(sock->sk->owner_env); + err = sock->ops->ioctl(sock, cmd, arg); ++ (void)set_exec_env(old_env); + set_fs(oldfs); + + return err; +Index: kernel/net/sunrpc/clnt.c +=================================================================== +--- kernel.orig/net/sunrpc/clnt.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sunrpc/clnt.c 2008-11-24 15:47:46.000000000 +0100 +@@ -30,6 +30,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -88,6 +89,35 @@ + spin_unlock(&rpc_client_lock); + } + ++/* ++ * Grand abort timeout (stop the client if occures) ++ */ ++int xprt_abort_timeout = RPC_MAX_ABORT_TIMEOUT; ++ ++static int rpc_abort_hard(struct rpc_task *task) ++{ ++ struct rpc_clnt *clnt; ++ clnt = task->tk_client; ++ ++ if (clnt->cl_pr_time == 0) { ++ clnt->cl_pr_time = jiffies; ++ return 0; ++ } ++ if (xprt_abort_timeout == RPC_MAX_ABORT_TIMEOUT) ++ return 0; ++ if (time_before(jiffies, clnt->cl_pr_time + xprt_abort_timeout * HZ)) ++ return 0; ++ ++ clnt->cl_broken = 1; ++ rpc_killall_tasks(clnt); ++ return -ETIMEDOUT; ++} ++ ++static void rpc_abort_clear(struct rpc_task *task) ++{ ++ task->tk_client->cl_pr_time = 0; ++} ++ + static int + rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name) + { +@@ -253,6 +283,7 @@ + if (IS_ERR(xprt)) + return (struct rpc_clnt *)xprt; + ++ xprt->owner_env = get_ve(get_exec_env()); + /* + * If the caller chooses not to specify a hostname, whip + * up a string representation of the passed-in address. +@@ -277,13 +308,16 @@ + + clnt = rpc_new_client(xprt, args->servername, args->program, + args->version, args->authflavor); +- if (IS_ERR(clnt)) ++ if (IS_ERR(clnt)) { ++ put_ve(xprt->owner_env); + return clnt; ++ } + + if (!(args->flags & RPC_CLNT_CREATE_NOPING)) { + int err = rpc_ping(clnt, RPC_TASK_SOFT|RPC_TASK_NOINTR); + if (err != 0) { + rpc_shutdown_client(clnt); ++ put_ve(xprt->owner_env); + return ERR_PTR(err); + } + } +@@ -322,6 +356,7 @@ + new->cl_autobind = 0; + INIT_LIST_HEAD(&new->cl_tasks); + spin_lock_init(&new->cl_lock); ++ new->cl_broken = 0; + rpc_init_rtt(&new->cl_rtt_default, clnt->cl_xprt->timeout.to_initval); + new->cl_metrics = rpc_alloc_iostats(clnt); + if (new->cl_metrics == NULL) +@@ -528,6 +563,9 @@ + struct rpc_task *task, *ret; + sigset_t oldset; + ++ if (clnt->cl_broken) ++ return ERR_PTR(-EIO); ++ + task = rpc_new_task(clnt, flags, ops, data); + if (task == NULL) { + rpc_release_calldata(ops, data); +@@ -944,6 +982,7 @@ + + if (task->tk_status >= 0) { + dprint_status(task); ++ rpc_abort_clear(task); + task->tk_status = 0; + task->tk_action = call_connect; + return; +@@ -969,6 +1008,10 @@ + case -ETIMEDOUT: + dprintk("RPC: %5u rpcbind request timed out\n", + task->tk_pid); ++ if (rpc_abort_hard(task)) { ++ status = -EIO; ++ break; ++ } + goto retry_timeout; + case -EPFNOSUPPORT: + /* server doesn't support any rpcbind version we know of */ +@@ -1034,6 +1077,8 @@ + + /* Something failed: remote service port may have changed */ + rpc_force_rebind(clnt); ++ if (rpc_abort_hard(task)) ++ goto exit; + + switch (status) { + case -ENOTCONN: +@@ -1046,6 +1091,7 @@ + task->tk_action = call_timeout; + return; + } ++exit: + rpc_exit(task, -EIO); + } + +@@ -1176,7 +1222,7 @@ + dprintk("RPC: %5u call_timeout (major)\n", task->tk_pid); + task->tk_timeouts++; + +- if (RPC_IS_SOFT(task)) { ++ if (RPC_IS_SOFT(task) || rpc_abort_hard(task)) { + printk(KERN_NOTICE "%s: server %s not responding, timed out\n", + clnt->cl_protname, clnt->cl_server); + rpc_exit(task, -EIO); +@@ -1217,7 +1263,7 @@ + } + + if (task->tk_status < 12) { +- if (!RPC_IS_SOFT(task)) { ++ if (!RPC_IS_SOFT(task) && !rpc_abort_hard(task)) { + task->tk_action = call_bind; + clnt->cl_stats->rpcretrans++; + goto out_retry; +@@ -1228,6 +1274,7 @@ + goto out_retry; + } + ++ rpc_abort_clear(task); + /* + * Ensure that we see all writes made by xprt_complete_rqst() + * before it changed req->rq_received. +@@ -1563,3 +1610,67 @@ + spin_unlock(&rpc_client_lock); + } + #endif ++ ++#ifdef CONFIG_VE ++static int ve_sunrpc_start(void *data) ++{ ++ return 0; ++} ++ ++void ve_sunrpc_stop(void *data) ++{ ++ struct ve_struct *ve = (struct ve_struct *)data; ++ struct rpc_clnt *clnt; ++ struct rpc_task *rovr; ++ ++ dprintk("RPC: killing all tasks for VE %d\n", ve->veid); ++ ++ spin_lock(&rpc_client_lock); ++ list_for_each_entry(clnt, &all_clients, cl_clients) { ++ if (clnt->cl_xprt->owner_env != ve) ++ continue; ++ ++ spin_lock(&clnt->cl_lock); ++ list_for_each_entry(rovr, &clnt->cl_tasks, tk_task) { ++ if (!RPC_IS_ACTIVATED(rovr)) ++ continue; ++ printk(KERN_WARNING "RPC: Killing task %d client %p\n", ++ rovr->tk_pid, clnt); ++ ++ rovr->tk_flags |= RPC_TASK_KILLED; ++ rpc_exit(rovr, -EIO); ++ rpc_wake_up_task(rovr); ++ } ++ schedule_work(&clnt->cl_xprt->task_cleanup); ++ spin_unlock(&clnt->cl_lock); ++ } ++ spin_unlock(&rpc_client_lock); ++ ++ flush_scheduled_work(); ++} ++ ++static struct ve_hook sunrpc_hook = { ++ .init = ve_sunrpc_start, ++ .fini = ve_sunrpc_stop, ++ .owner = THIS_MODULE, ++ .priority = HOOK_PRIO_NET_PRE, ++}; ++ ++void ve_sunrpc_hook_register(void) ++{ ++ ve_hook_register(VE_SS_CHAIN, &sunrpc_hook); ++} ++ ++void ve_sunrpc_hook_unregister(void) ++{ ++ ve_hook_unregister(&sunrpc_hook); ++} ++#else ++void ve_sunrpc_hook_register(void) ++{ ++} ++ ++void ve_sunrpc_hook_unregister(void) ++{ ++} ++#endif +Index: kernel/net/sunrpc/rpc_pipe.c +=================================================================== +--- kernel.orig/net/sunrpc/rpc_pipe.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sunrpc/rpc_pipe.c 2008-11-24 15:47:46.000000000 +0100 +@@ -839,6 +839,7 @@ + .name = "rpc_pipefs", + .get_sb = rpc_get_sb, + .kill_sb = kill_litter_super, ++ .fs_flags = FS_VIRTUALIZED, + }; + + static void +Index: kernel/net/sunrpc/sched.c +=================================================================== +--- kernel.orig/net/sunrpc/sched.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sunrpc/sched.c 2008-11-24 15:47:46.000000000 +0100 +@@ -631,7 +631,9 @@ + static void __rpc_execute(struct rpc_task *task) + { + int status = 0; ++ struct ve_struct *env; + ++ env = set_exec_env(task->tk_client->cl_xprt->owner_env); + dprintk("RPC: %5u __rpc_execute flags=0x%x\n", + task->tk_pid, task->tk_flags); + +@@ -681,10 +683,14 @@ + rpc_clear_running(task); + if (RPC_IS_ASYNC(task)) { + /* Careful! we may have raced... */ +- if (RPC_IS_QUEUED(task)) ++ if (RPC_IS_QUEUED(task)) { ++ (void)set_exec_env(env); + return; +- if (rpc_test_and_set_running(task)) ++ } ++ if (rpc_test_and_set_running(task)) { ++ (void)set_exec_env(env); + return; ++ } + continue; + } + +@@ -714,6 +720,7 @@ + task->tk_status); + /* Release all resources associated with the task */ + rpc_release_task(task); ++ (void)set_exec_env(env); + } + + /* +Index: kernel/net/sunrpc/sunrpc_syms.c +=================================================================== +--- kernel.orig/net/sunrpc/sunrpc_syms.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sunrpc/sunrpc_syms.c 2008-11-24 15:47:46.000000000 +0100 +@@ -132,6 +132,9 @@ + + extern struct cache_detail ip_map_cache, unix_gid_cache; + ++extern void ve_sunrpc_hook_register(void); ++extern void ve_sunrpc_hook_unregister(void); ++ + static int __init + init_sunrpc(void) + { +@@ -153,6 +156,7 @@ + cache_register(&unix_gid_cache); + init_socket_xprt(); + rpcauth_init_module(); ++ ve_sunrpc_hook_register(); + out: + return err; + } +@@ -160,6 +164,7 @@ + static void __exit + cleanup_sunrpc(void) + { ++ ve_sunrpc_hook_unregister(); + rpcauth_remove_module(); + cleanup_socket_xprt(); + unregister_rpc_pipefs(); +Index: kernel/net/sunrpc/svcsock.c +=================================================================== +--- kernel.orig/net/sunrpc/svcsock.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sunrpc/svcsock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -508,6 +508,9 @@ + unsigned int pglen = xdr->page_len; + unsigned int flags = MSG_MORE; + char buf[RPC_MAX_ADDRBUFLEN]; ++ struct ve_struct *old_env; ++ ++ old_env = set_exec_env(sock->sk->owner_env); + + slen = xdr->len; + +@@ -568,6 +571,8 @@ + rqstp->rq_sock, xdr->head[0].iov_base, xdr->head[0].iov_len, + xdr->len, len, svc_print_addr(rqstp, buf, sizeof(buf))); + ++ (void)set_exec_env(old_env); ++ + return len; + } + +@@ -642,14 +647,18 @@ + svc_recvfrom(struct svc_rqst *rqstp, struct kvec *iov, int nr, int buflen) + { + struct svc_sock *svsk = rqstp->rq_sock; ++ struct socket *sock = svsk->sk_sock; + struct msghdr msg = { + .msg_flags = MSG_DONTWAIT, + }; + struct sockaddr *sin; + int len; ++ struct ve_struct *old_env; + ++ old_env = set_exec_env(sock->sk->owner_env); + len = kernel_recvmsg(svsk->sk_sock, &msg, iov, nr, buflen, + msg.msg_flags); ++ (void)set_exec_env(old_env); + + /* sock_recvmsg doesn't fill in the name/namelen, so we must.. + */ +@@ -1795,6 +1804,8 @@ + serv = svsk->sk_server; + sk = svsk->sk_sk; + ++ /* XXX: serialization? */ ++ sk->sk_user_data = NULL; + sk->sk_state_change = svsk->sk_ostate; + sk->sk_data_ready = svsk->sk_odata; + sk->sk_write_space = svsk->sk_owspace; +Index: kernel/net/sunrpc/xprt.c +=================================================================== +--- kernel.orig/net/sunrpc/xprt.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sunrpc/xprt.c 2008-11-24 15:47:46.000000000 +0100 +@@ -567,10 +567,13 @@ + { + struct rpc_xprt *xprt = + container_of(work, struct rpc_xprt, task_cleanup); ++ struct ve_struct *ve; + ++ ve = set_exec_env(xprt->owner_env); + xprt_disconnect(xprt); + xprt->ops->close(xprt); + xprt_release_write(xprt, NULL); ++ (void)set_exec_env(ve); + } + + /** +@@ -1017,6 +1020,7 @@ + xprt->last_used = jiffies; + xprt->cwnd = RPC_INITCWND; + xprt->bind_index = 0; ++ xprt->owner_env = get_exec_env(); + + rpc_init_wait_queue(&xprt->binding, "xprt_binding"); + rpc_init_wait_queue(&xprt->pending, "xprt_pending"); +Index: kernel/net/sunrpc/xprtsock.c +=================================================================== +--- kernel.orig/net/sunrpc/xprtsock.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/sunrpc/xprtsock.c 2008-11-24 15:47:46.000000000 +0100 +@@ -64,6 +64,8 @@ + static unsigned int max_slot_table_size = RPC_MAX_SLOT_TABLE; + static unsigned int xprt_min_resvport_limit = RPC_MIN_RESVPORT; + static unsigned int xprt_max_resvport_limit = RPC_MAX_RESVPORT; ++static int xprt_min_abort_timeout = RPC_MIN_ABORT_TIMEOUT; ++static int xprt_max_abort_timeout = RPC_MAX_ABORT_TIMEOUT; + + static struct ctl_table_header *sunrpc_table_header; + +@@ -117,6 +119,16 @@ + .extra2 = &xprt_max_resvport_limit + }, + { ++ .procname = "abort_timeout", ++ .data = &xprt_abort_timeout, ++ .maxlen = sizeof(unsigned int), ++ .mode = 0644, ++ .proc_handler = &proc_dointvec_minmax, ++ .strategy = &sysctl_intvec, ++ .extra1 = &xprt_min_abort_timeout, ++ .extra2 = &xprt_max_abort_timeout ++ }, ++ { + .ctl_name = 0, + }, + }; +@@ -735,18 +747,23 @@ + static void xs_close(struct rpc_xprt *xprt) + { + struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt); +- struct socket *sock = transport->sock; +- struct sock *sk = transport->inet; +- +- if (!sk) +- goto clear_close_wait; ++ struct socket *sock; ++ struct sock *sk; + + dprintk("RPC: xs_close xprt %p\n", xprt); + +- write_lock_bh(&sk->sk_callback_lock); ++ spin_lock_bh(&xprt->transport_lock); ++ if (transport->sock == NULL) { ++ spin_unlock_bh(&xprt->transport_lock); ++ goto clear_close_wait; ++ } ++ sock = transport->sock; ++ sk = transport->inet; + transport->inet = NULL; + transport->sock = NULL; ++ spin_unlock_bh(&xprt->transport_lock); + ++ write_lock_bh(&sk->sk_callback_lock); + sk->sk_user_data = NULL; + sk->sk_data_ready = transport->old_data_ready; + sk->sk_state_change = transport->old_state_change; +@@ -1415,7 +1432,12 @@ + struct rpc_xprt *xprt = &transport->xprt; + struct socket *sock = transport->sock; + int err, status = -EIO; ++ struct ve_struct *ve; + ++ ve = set_exec_env(xprt->owner_env); ++ down_read(&xprt->owner_env->op_sem); ++ if (!xprt->owner_env->is_running) ++ goto out; + if (xprt->shutdown || !xprt_bound(xprt)) + goto out; + +@@ -1441,6 +1463,8 @@ + out: + xprt_wake_pending_tasks(xprt, status); + xprt_clear_connecting(xprt); ++ up_read(&xprt->owner_env->op_sem); ++ (void)set_exec_env(ve); + } + + /** +@@ -1456,7 +1480,12 @@ + struct rpc_xprt *xprt = &transport->xprt; + struct socket *sock = transport->sock; + int err, status = -EIO; ++ struct ve_struct *ve; + ++ ve = set_exec_env(xprt->owner_env); ++ down_read(&xprt->owner_env->op_sem); ++ if (!xprt->owner_env->is_running) ++ goto out; + if (xprt->shutdown || !xprt_bound(xprt)) + goto out; + +@@ -1482,6 +1511,8 @@ + out: + xprt_wake_pending_tasks(xprt, status); + xprt_clear_connecting(xprt); ++ up_read(&xprt->owner_env->op_sem); ++ (void)set_exec_env(ve); + } + + /* +@@ -1560,7 +1591,12 @@ + struct rpc_xprt *xprt = &transport->xprt; + struct socket *sock = transport->sock; + int err, status = -EIO; ++ struct ve_struct *ve; + ++ ve = set_exec_env(xprt->owner_env); ++ down_read(&xprt->owner_env->op_sem); ++ if (!xprt->owner_env->is_running) ++ goto out; + if (xprt->shutdown || !xprt_bound(xprt)) + goto out; + +@@ -1621,7 +1657,12 @@ + struct rpc_xprt *xprt = &transport->xprt; + struct socket *sock = transport->sock; + int err, status = -EIO; ++ struct ve_struct *ve; + ++ ve = set_exec_env(xprt->owner_env); ++ down_read(&xprt->owner_env->op_sem); ++ if (!xprt->owner_env->is_running) ++ goto out; + if (xprt->shutdown || !xprt_bound(xprt)) + goto out; + +@@ -1666,6 +1707,8 @@ + xprt_wake_pending_tasks(xprt, status); + out_clear: + xprt_clear_connecting(xprt); ++ up_read(&xprt->owner_env->op_sem); ++ (void)set_exec_env(ve); + } + + /** +Index: kernel/net/unix/af_unix.c +=================================================================== +--- kernel.orig/net/unix/af_unix.c 2008-11-24 14:08:46.000000000 +0100 ++++ kernel/net/unix/af_unix.c 2008-11-24 15:47:46.000000000 +0100 +@@ -117,6 +117,9 @@ + #include + #include + ++#include ++#include ++ + int sysctl_unix_max_dgram_qlen __read_mostly = 10; + + static struct hlist_head unix_socket_table[UNIX_HASH_SIZE + 1]; +@@ -270,7 +273,8 @@ + spin_unlock(&unix_table_lock); + } + +-static struct sock *__unix_find_socket_byname(struct sockaddr_un *sunname, ++static struct sock *__unix_find_socket_byname(struct net *net, ++ struct sockaddr_un *sunname, + int len, int type, unsigned hash) + { + struct sock *s; +@@ -279,6 +283,9 @@ + sk_for_each(s, node, &unix_socket_table[hash ^ type]) { + struct unix_sock *u = unix_sk(s); + ++ if (s->sk_net != net) ++ continue; ++ + if (u->addr->len == len && + !memcmp(u->addr->name, sunname, len)) + goto found; +@@ -288,21 +295,22 @@ + return s; + } + +-static inline struct sock *unix_find_socket_byname(struct sockaddr_un *sunname, ++static inline struct sock *unix_find_socket_byname(struct net *net, ++ struct sockaddr_un *sunname, + int len, int type, + unsigned hash) + { + struct sock *s; + + spin_lock(&unix_table_lock); +- s = __unix_find_socket_byname(sunname, len, type, hash); ++ s = __unix_find_socket_byname(net, sunname, len, type, hash); + if (s) + sock_hold(s); + spin_unlock(&unix_table_lock); + return s; + } + +-static struct sock *unix_find_socket_byinode(struct inode *i) ++static struct sock *unix_find_socket_byinode(struct net *net, struct inode *i) + { + struct sock *s; + struct hlist_node *node; +@@ -312,6 +320,9 @@ + &unix_socket_table[i->i_ino & (UNIX_HASH_SIZE - 1)]) { + struct dentry *dentry = unix_sk(s)->dentry; + ++ if (s->sk_net != net) ++ continue; ++ + if(dentry && dentry->d_inode == i) + { + sock_hold(s); +@@ -606,6 +617,8 @@ + sk = sk_alloc(net, PF_UNIX, GFP_KERNEL, &unix_proto); + if (!sk) + goto out; ++ if (ub_other_sock_charge(sk)) ++ goto out_sk_free; + + sock_init_data(sock,sk); + lockdep_set_class(&sk->sk_receive_queue.lock, +@@ -627,13 +640,13 @@ + if (sk == NULL) + atomic_dec(&unix_nr_socks); + return sk; ++out_sk_free: ++ sk_free(sk); ++ return NULL; + } + + static int unix_create(struct net *net, struct socket *sock, int protocol) + { +- if (net != &init_net) +- return -EAFNOSUPPORT; +- + if (protocol && protocol != PF_UNIX) + return -EPROTONOSUPPORT; + +@@ -677,6 +690,7 @@ + static int unix_autobind(struct socket *sock) + { + struct sock *sk = sock->sk; ++ struct net *net = sk->sk_net; + struct unix_sock *u = unix_sk(sk); + static u32 ordernum = 1; + struct unix_address * addr; +@@ -703,7 +717,7 @@ + spin_lock(&unix_table_lock); + ordernum = (ordernum+1)&0xFFFFF; + +- if (__unix_find_socket_byname(addr->name, addr->len, sock->type, ++ if (__unix_find_socket_byname(net, addr->name, addr->len, sock->type, + addr->hash)) { + spin_unlock(&unix_table_lock); + /* Sanity yield. It is unusual case, but yet... */ +@@ -723,7 +737,8 @@ + return err; + } + +-static struct sock *unix_find_other(struct sockaddr_un *sunname, int len, ++static struct sock *unix_find_other(struct net *net, ++ struct sockaddr_un *sunname, int len, + int type, unsigned hash, int *error) + { + struct sock *u; +@@ -741,7 +756,7 @@ + err = -ECONNREFUSED; + if (!S_ISSOCK(nd.dentry->d_inode->i_mode)) + goto put_fail; +- u=unix_find_socket_byinode(nd.dentry->d_inode); ++ u=unix_find_socket_byinode(net, nd.dentry->d_inode); + if (!u) + goto put_fail; + +@@ -757,7 +772,7 @@ + } + } else { + err = -ECONNREFUSED; +- u=unix_find_socket_byname(sunname, len, type, hash); ++ u=unix_find_socket_byname(net, sunname, len, type, hash); + if (u) { + struct dentry *dentry; + dentry = unix_sk(u)->dentry; +@@ -779,6 +794,7 @@ + static int unix_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len) + { + struct sock *sk = sock->sk; ++ struct net *net = sk->sk_net; + struct unix_sock *u = unix_sk(sk); + struct sockaddr_un *sunaddr=(struct sockaddr_un *)uaddr; + struct dentry * dentry = NULL; +@@ -853,7 +869,7 @@ + + if (!sunaddr->sun_path[0]) { + err = -EADDRINUSE; +- if (__unix_find_socket_byname(sunaddr, addr_len, ++ if (__unix_find_socket_byname(net, sunaddr, addr_len, + sk->sk_type, hash)) { + unix_release_addr(addr); + goto out_unlock; +@@ -919,6 +935,7 @@ + int alen, int flags) + { + struct sock *sk = sock->sk; ++ struct net *net = sk->sk_net; + struct sockaddr_un *sunaddr=(struct sockaddr_un*)addr; + struct sock *other; + unsigned hash; +@@ -935,7 +952,7 @@ + goto out; + + restart: +- other=unix_find_other(sunaddr, alen, sock->type, hash, &err); ++ other=unix_find_other(net, sunaddr, alen, sock->type, hash, &err); + if (!other) + goto out; + +@@ -1015,6 +1032,7 @@ + { + struct sockaddr_un *sunaddr=(struct sockaddr_un *)uaddr; + struct sock *sk = sock->sk; ++ struct net *net = sk->sk_net; + struct unix_sock *u = unix_sk(sk), *newu, *otheru; + struct sock *newsk = NULL; + struct sock *other = NULL; +@@ -1023,6 +1041,7 @@ + int st; + int err; + long timeo; ++ unsigned long chargesize; + + err = unix_mkname(sunaddr, addr_len, &hash); + if (err < 0) +@@ -1051,10 +1070,14 @@ + skb = sock_wmalloc(newsk, 1, 0, GFP_KERNEL); + if (skb == NULL) + goto out; ++ chargesize = skb_charge_fullsize(skb); ++ if (ub_sock_getwres_other(newsk, chargesize) < 0) ++ goto out; ++ ub_skb_set_charge(skb, newsk, chargesize, UB_OTHERSOCKBUF); + + restart: + /* Find listening sock. */ +- other = unix_find_other(sunaddr, addr_len, sk->sk_type, hash, &err); ++ other = unix_find_other(net, sunaddr, addr_len, sk->sk_type, hash, &err); + if (!other) + goto out; + +@@ -1299,7 +1322,7 @@ + unix_notinflight(scm->fp->fp[i]); + } + +-static void unix_destruct_fds(struct sk_buff *skb) ++void unix_destruct_fds(struct sk_buff *skb) + { + struct scm_cookie scm; + memset(&scm, 0, sizeof(scm)); +@@ -1310,6 +1333,7 @@ + scm_destroy(&scm); + sock_wfree(skb); + } ++EXPORT_SYMBOL_GPL(unix_destruct_fds); + + static int unix_attach_fds(struct scm_cookie *scm, struct sk_buff *skb) + { +@@ -1339,6 +1363,7 @@ + { + struct sock_iocb *siocb = kiocb_to_siocb(kiocb); + struct sock *sk = sock->sk; ++ struct net *net = sk->sk_net; + struct unix_sock *u = unix_sk(sk); + struct sockaddr_un *sunaddr=msg->msg_name; + struct sock *other = NULL; +@@ -1405,7 +1430,7 @@ + if (sunaddr == NULL) + goto out_free; + +- other = unix_find_other(sunaddr, namelen, sk->sk_type, ++ other = unix_find_other(net, sunaddr, namelen, sk->sk_type, + hash, &err); + if (other==NULL) + goto out_free; +@@ -1534,6 +1559,16 @@ + + size = len-sent; + ++ if (msg->msg_flags & MSG_DONTWAIT) ++ ub_sock_makewres_other(sk, skb_charge_size(size)); ++ if (sock_bc(sk) != NULL && ++ sock_bc(sk)->poll_reserv >= ++ SOCK_MIN_UBCSPACE && ++ skb_charge_size(size) > ++ sock_bc(sk)->poll_reserv) ++ size = skb_charge_datalen(sock_bc(sk)->poll_reserv); ++ ++ + /* Keep two messages in the pipe so it schedules better */ + if (size > ((sk->sk_sndbuf >> 1) - 64)) + size = (sk->sk_sndbuf >> 1) - 64; +@@ -1545,7 +1580,9 @@ + * Grab a buffer + */ + +- skb=sock_alloc_send_skb(sk,size,msg->msg_flags&MSG_DONTWAIT, &err); ++ ++ skb = sock_alloc_send_skb2(sk, size, SOCK_MIN_UBCSPACE, ++ msg->msg_flags&MSG_DONTWAIT, &err); + + if (skb==NULL) + goto out_err; +@@ -1990,6 +2027,7 @@ + { + struct sock *sk = sock->sk; + unsigned int mask; ++ int no_ub_res; + + poll_wait(file, sk->sk_sleep, wait); + mask = 0; +@@ -2002,6 +2040,10 @@ + if (sk->sk_shutdown & RCV_SHUTDOWN) + mask |= POLLRDHUP; + ++ no_ub_res = ub_sock_makewres_other(sk, SOCK_MIN_UBCSPACE_CH); ++ if (no_ub_res) ++ ub_sock_sndqueueadd_other(sk, SOCK_MIN_UBCSPACE_CH); ++ + /* readable? */ + if (!skb_queue_empty(&sk->sk_receive_queue) || + (sk->sk_shutdown & RCV_SHUTDOWN)) +@@ -2015,7 +2057,7 @@ + * we set writable also when the other side has shut down the + * connection. This prevents stuck sockets. + */ +- if (unix_writable(sk)) ++ if (!no_ub_res && unix_writable(sk)) + mask |= POLLOUT | POLLWRNORM | POLLWRBAND; + + return mask; +@@ -2023,12 +2065,18 @@ + + + #ifdef CONFIG_PROC_FS +-static struct sock *unix_seq_idx(int *iter, loff_t pos) ++struct unix_iter_state { ++ struct net *net; ++ int i; ++}; ++static struct sock *unix_seq_idx(struct unix_iter_state *iter, loff_t pos) + { + loff_t off = 0; + struct sock *s; + +- for (s = first_unix_socket(iter); s; s = next_unix_socket(iter, s)) { ++ for (s = first_unix_socket(&iter->i); s; s = next_unix_socket(&iter->i, s)) { ++ if (s->sk_net != iter->net) ++ continue; + if (off == pos) + return s; + ++off; +@@ -2039,17 +2087,24 @@ + + static void *unix_seq_start(struct seq_file *seq, loff_t *pos) + { ++ struct unix_iter_state *iter = seq->private; + spin_lock(&unix_table_lock); +- return *pos ? unix_seq_idx(seq->private, *pos - 1) : ((void *) 1); ++ return *pos ? unix_seq_idx(iter, *pos - 1) : ((void *) 1); + } + + static void *unix_seq_next(struct seq_file *seq, void *v, loff_t *pos) + { ++ struct unix_iter_state *iter = seq->private; ++ struct sock *sk = v; + ++*pos; + + if (v == (void *)1) +- return first_unix_socket(seq->private); +- return next_unix_socket(seq->private, v); ++ sk = first_unix_socket(&iter->i); ++ else ++ sk = next_unix_socket(&iter->i, sk); ++ while (sk && (sk->sk_net != iter->net)) ++ sk = next_unix_socket(&iter->i, sk); ++ return sk; + } + + static void unix_seq_stop(struct seq_file *seq, void *v) +@@ -2111,7 +2166,27 @@ + + static int unix_seq_open(struct inode *inode, struct file *file) + { +- return seq_open_private(file, &unix_seq_ops, sizeof(int)); ++ struct unix_iter_state *it; ++ ++ it = __seq_open_private(file, &unix_seq_ops, ++ sizeof(struct unix_iter_state)); ++ if (it == NULL) ++ return -ENOMEM; ++ ++ it->net = get_proc_net(inode); ++ if (it->net == NULL) { ++ seq_release_private(inode, file); ++ return -ENXIO; ++ } ++ return 0; ++} ++ ++static int unix_seq_release(struct inode *inode, struct file *file) ++{ ++ struct seq_file *seq = file->private_data; ++ struct unix_iter_state *iter = seq->private; ++ put_net(iter->net); ++ return seq_release_private(inode, file); + } + + static const struct file_operations unix_seq_fops = { +@@ -2119,7 +2194,7 @@ + .open = unix_seq_open, + .read = seq_read, + .llseek = seq_lseek, +- .release = seq_release_private, ++ .release = unix_seq_release, + }; + + #endif +@@ -2130,6 +2205,30 @@ + .owner = THIS_MODULE, + }; + ++ ++static int unix_net_init(struct net *net) ++{ ++ int error = -ENOMEM; ++ ++#ifdef CONFIG_PROC_FS ++ if (!proc_net_fops_create(net, "unix", 0, &unix_seq_fops)) ++ goto out; ++#endif ++ error = 0; ++out: ++ return 0; ++} ++ ++static void unix_net_exit(struct net *net) ++{ ++ proc_net_remove(net, "unix"); ++} ++ ++static struct pernet_operations unix_net_ops = { ++ .init = unix_net_init, ++ .exit = unix_net_exit, ++}; ++ + static int __init af_unix_init(void) + { + int rc = -1; +@@ -2145,9 +2244,7 @@ + } + + sock_register(&unix_family_ops); +-#ifdef CONFIG_PROC_FS +- proc_net_fops_create(&init_net, "unix", 0, &unix_seq_fops); +-#endif ++ register_pernet_subsys(&unix_net_ops); + unix_sysctl_register(); + out: + return rc; +@@ -2157,8 +2254,8 @@ + { + sock_unregister(PF_UNIX); + unix_sysctl_unregister(); +- proc_net_remove(&init_net, "unix"); + proto_unregister(&unix_proto); ++ unregister_pernet_subsys(&unix_net_ops); + } + + module_init(af_unix_init); +Index: kernel/net/unix/garbage.c +=================================================================== +--- kernel.orig/net/unix/garbage.c 2008-11-24 14:08:46.000000000 +0100 ++++ kernel/net/unix/garbage.c 2008-11-24 15:47:46.000000000 +0100 +@@ -81,6 +81,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -151,6 +152,7 @@ + spin_unlock(&unix_gc_lock); + } + } ++EXPORT_SYMBOL_GPL(unix_notinflight); + + static inline struct sk_buff *sock_queue_head(struct sock *sk) + { +Index: kernel/net/xfrm/xfrm_policy.c +=================================================================== +--- kernel.orig/net/xfrm/xfrm_policy.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/xfrm/xfrm_policy.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1793,7 +1793,7 @@ + void xfrm_dst_ifdown(struct dst_entry *dst, struct net_device *dev) + { + while ((dst = dst->child) && dst->xfrm && dst->dev == dev) { +- dst->dev = init_net.loopback_dev; ++ dst->dev = dev->nd_net->loopback_dev; + dev_hold(dst->dev); + dev_put(dev); + } +@@ -2066,9 +2066,6 @@ + { + struct net_device *dev = ptr; + +- if (dev->nd_net != &init_net) +- return NOTIFY_DONE; +- + switch (event) { + case NETDEV_DOWN: + xfrm_flush_bundles(); +Index: kernel/net/xfrm/xfrm_user.c +=================================================================== +--- kernel.orig/net/xfrm/xfrm_user.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/net/xfrm/xfrm_user.c 2008-11-24 15:47:46.000000000 +0100 +@@ -1865,7 +1865,7 @@ + link = &xfrm_dispatch[type]; + + /* All operations require privileges, even GET */ +- if (security_netlink_recv(skb, CAP_NET_ADMIN)) ++ if (security_netlink_recv(skb, CAP_VE_NET_ADMIN)) + return -EPERM; + + if ((type == (XFRM_MSG_GETSA - XFRM_MSG_BASE) || +Index: kernel/security/Kconfig +=================================================================== +--- kernel.orig/security/Kconfig 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/security/Kconfig 2008-11-24 15:47:46.000000000 +0100 +@@ -4,6 +4,8 @@ + + menu "Security options" + ++source grsecurity/Kconfig ++ + config KEYS + bool "Enable access key retention support" + help +@@ -41,7 +43,7 @@ + + config SECURITY + bool "Enable different security models" +- depends on SYSFS ++ depends on SYSFS && !VE + help + This allows you to choose different security modules to be + configured into your kernel. +Index: kernel/security/commoncap.c +=================================================================== +--- kernel.orig/security/commoncap.c 2008-11-24 14:18:05.000000000 +0100 ++++ kernel/security/commoncap.c 2008-11-24 15:47:46.000000000 +0100 +@@ -36,8 +36,10 @@ + # define CAP_INIT_BSET CAP_INIT_EFF_SET + #endif /* def CONFIG_SECURITY_FILE_CAPABILITIES */ + ++#ifndef CONFIG_VE + kernel_cap_t cap_bset = CAP_INIT_BSET; /* systemwide capability bound */ + EXPORT_SYMBOL(cap_bset); ++#endif + + /* Global security state */ + +@@ -52,6 +54,10 @@ + + int cap_netlink_recv(struct sk_buff *skb, int cap) + { ++ if (likely(cap == CAP_VE_NET_ADMIN) && ++ cap_raised(NETLINK_CB(skb).eff_cap, CAP_NET_ADMIN)) ++ return 0; ++ + if (!cap_raised(NETLINK_CB(skb).eff_cap, cap)) + return -EPERM; + return 0; +@@ -384,7 +390,7 @@ + return 0; + } else if (!strncmp(name, XATTR_SECURITY_PREFIX, + sizeof(XATTR_SECURITY_PREFIX) - 1) && +- !capable(CAP_SYS_ADMIN)) ++ !capable(CAP_SYS_ADMIN) && !capable(CAP_VE_ADMIN)) + return -EPERM; + return 0; + } +@@ -398,7 +404,7 @@ + return 0; + } else if (!strncmp(name, XATTR_SECURITY_PREFIX, + sizeof(XATTR_SECURITY_PREFIX) - 1) && +- !capable(CAP_SYS_ADMIN)) ++ !capable(CAP_SYS_ADMIN) && !capable(CAP_VE_ADMIN)) + return -EPERM; + return 0; + } +@@ -555,7 +561,7 @@ + + int cap_syslog (int type) + { +- if ((type != 3 && type != 10) && !capable(CAP_SYS_ADMIN)) ++ if ((type != 3 && type != 10) && !capable(CAP_VE_SYS_ADMIN)) + return -EPERM; + return 0; + } +Index: kernel/security/selinux/Kconfig +=================================================================== +--- kernel.orig/security/selinux/Kconfig 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/security/selinux/Kconfig 2008-11-24 15:47:46.000000000 +0100 +@@ -1,6 +1,6 @@ + config SECURITY_SELINUX + bool "NSA SELinux Support" +- depends on SECURITY_NETWORK && AUDIT && NET && INET ++ depends on SECURITY_NETWORK && AUDIT && NET && INET && !VE + select NETWORK_SECMARK + default n + help +Index: kernel/security/selinux/hooks.c +=================================================================== +--- kernel.orig/security/selinux/hooks.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/security/selinux/hooks.c 2008-11-24 15:47:46.000000000 +0100 +@@ -4664,12 +4664,12 @@ + struct task_struct *g, *t; + struct mm_struct *mm = p->mm; + read_lock(&tasklist_lock); +- do_each_thread(g, t) ++ do_each_thread_ve(g, t) + if (t->mm == mm && t != p) { + read_unlock(&tasklist_lock); + return -EPERM; + } +- while_each_thread(g, t); ++ while_each_thread_ve(g, t); + read_unlock(&tasklist_lock); + } + +Index: kernel/sound/core/info.c +=================================================================== +--- kernel.orig/sound/core/info.c 2008-11-18 01:19:48.000000000 +0100 ++++ kernel/sound/core/info.c 2008-11-24 15:47:46.000000000 +0100 +@@ -545,7 +545,7 @@ + { + struct proc_dir_entry *p; + +- p = snd_create_proc_entry("asound", S_IFDIR | S_IRUGO | S_IXUGO, &proc_root); ++ p = snd_create_proc_entry("asound", S_IFDIR | S_IRUGO | S_IXUGO, NULL); + if (p == NULL) + return -ENOMEM; + snd_proc_root = p; +@@ -595,7 +595,7 @@ + #ifdef CONFIG_SND_OSSEMUL + snd_info_free_entry(snd_oss_root); + #endif +- snd_remove_proc_entry(&proc_root, snd_proc_root); ++ snd_remove_proc_entry(NULL, snd_proc_root); + } + return 0; + } --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0078-vlan-fix-after-netns.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0078-vlan-fix-after-netns.patch @@ -0,0 +1,203 @@ +commit beee05115ef107e73bb6e7eef7dce9532caf0687 +Author: Alexey Dobriyan +Date: Tue May 20 16:42:16 2008 +0400 + + VLAN: fix rmmod 8021q with vlan interface setup + +diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c +index b4c8a23..c356a24 100644 +--- a/net/8021q/vlan.c ++++ b/net/8021q/vlan.c +@@ -21,6 +21,7 @@ + #include /* for copy_from_user */ + #include + #include ++#include + #include + #include + #include +@@ -231,8 +232,9 @@ static void vlan_group_free(struct vlan_group *grp) + kfree(grp); + } + +-static struct vlan_group *vlan_group_alloc(int ifindex) ++static struct vlan_group *vlan_group_alloc(struct net_device *real_dev) + { ++ int ifindex = real_dev->ifindex; + struct vlan_group *grp; + unsigned int size; + unsigned int i; +@@ -250,6 +252,7 @@ static struct vlan_group *vlan_group_alloc(int ifindex) + } + + grp->real_dev_ifindex = ifindex; ++ grp->owner = get_ve(real_dev->owner_env); + hlist_add_head_rcu(&grp->hlist, + &vlan_group_hash[vlan_grp_hashfn(ifindex)]); + return grp; +@@ -508,7 +511,7 @@ int register_vlan_dev(struct net_device *dev) + + grp = __vlan_find_group(real_dev->ifindex, real_dev->owner_env); + if (!grp) { +- ngrp = grp = vlan_group_alloc(real_dev->ifindex); ++ ngrp = grp = vlan_group_alloc(real_dev); + if (!grp) + return -ENOBUFS; + } +@@ -601,6 +604,7 @@ static int register_vlan_device(struct net_device *real_dev, + if (new_dev == NULL) + return -ENOBUFS; + ++ new_dev->nd_net = get_exec_env()->ve_ns->net_ns; + /* need 4 bytes for extra VLAN header info, + * hope the underlying device can handle it. + */ +@@ -802,7 +806,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg) + case GET_VLAN_REALDEV_NAME_CMD: + case GET_VLAN_VID_CMD: + err = -ENODEV; +- dev = __dev_get_by_name(&init_net, args.device1); ++ dev = __dev_get_by_name(net, args.device1); + if (!dev) + goto out; + +diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c +index 1493b9e..800da47 100644 +--- a/net/8021q/vlan_dev.c ++++ b/net/8021q/vlan_dev.c +@@ -122,11 +122,6 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev, + unsigned short vlan_TCI; + __be16 proto; + +- if (dev->nd_net != &init_net) { +- kfree_skb(skb); +- return -1; +- } +- + if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) + return -1; + +diff --git a/net/8021q/vlan_netlink.c b/net/8021q/vlan_netlink.c +index 0996185..cb74c5f 100644 +--- a/net/8021q/vlan_netlink.c ++++ b/net/8021q/vlan_netlink.c +@@ -113,7 +113,7 @@ static int vlan_newlink(struct net_device *dev, + + if (!tb[IFLA_LINK]) + return -EINVAL; +- real_dev = __dev_get_by_index(&init_net, nla_get_u32(tb[IFLA_LINK])); ++ real_dev = __dev_get_by_index(dev->nd_net, nla_get_u32(tb[IFLA_LINK])); + if (!real_dev) + return -ENODEV; + +diff --git a/net/8021q/vlanproc.c b/net/8021q/vlanproc.c +index af38076..1207c21 100644 +--- a/net/8021q/vlanproc.c ++++ b/net/8021q/vlanproc.c +@@ -23,6 +23,7 @@ + #include + #include /* kmalloc(), kfree() */ + #include ++#include + #include /* inline mem*, str* functions */ + #include /* __initfunc et al. */ + #include /* htons(), etc. */ +@@ -79,7 +80,24 @@ static const struct seq_operations vlan_seq_ops = { + + static int vlan_seq_open(struct inode *inode, struct file *file) + { +- return seq_open(file, &vlan_seq_ops); ++ struct seq_file *m; ++ int rv; ++ ++ rv = seq_open(file, &vlan_seq_ops); ++ if (rv < 0) ++ return rv; ++ m = file->private_data; ++ m->private = get_proc_net(inode); ++ return 0; ++} ++ ++static int vlan_seq_release(struct inode *inode, struct file *file) ++{ ++ struct seq_file *m = file->private_data; ++ struct net *net = m->private; ++ ++ put_net(net); ++ return seq_release(inode, file); + } + + static const struct file_operations vlan_fops = { +@@ -87,7 +105,7 @@ static const struct file_operations vlan_fops = { + .open = vlan_seq_open, + .read = seq_read, + .llseek = seq_lseek, +- .release = seq_release, ++ .release = vlan_seq_release, + }; + + /* +@@ -148,11 +166,13 @@ static const char *vlan_name_type_str[VLAN_NAME_TYPE_HIGHEST] = { + + void vlan_proc_cleanup(void) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ + if (proc_vlan_conf) + remove_proc_entry(name_conf, proc_vlan_dir); + + if (proc_vlan_dir) +- proc_net_remove(&init_net, name_root); ++ proc_net_remove(net, name_root); + + /* Dynamically added entries should be cleaned up as their vlan_device + * is removed, so we should not have to take care of it here... +@@ -165,8 +185,11 @@ void vlan_proc_cleanup(void) + + int vlan_proc_init(void) + { +- proc_vlan_dir = proc_mkdir(name_root, init_net.proc_net); ++ struct net *net = get_exec_env()->ve_ns->net_ns; ++ ++ proc_vlan_dir = proc_mkdir(name_root, net->proc_net); + if (proc_vlan_dir) { ++ proc_vlan_dir->data = net; + proc_vlan_conf = create_proc_entry(name_conf, + S_IFREG|S_IRUSR|S_IWUSR, + proc_vlan_dir); +@@ -254,6 +277,7 @@ static inline int is_vlan_dev(struct net_device *dev) + /* start read of /proc/net/vlan/config */ + static void *vlan_seq_start(struct seq_file *seq, loff_t *pos) + { ++ struct net *net = seq->private; + struct net_device *dev; + loff_t i = 1; + +@@ -262,7 +286,7 @@ static void *vlan_seq_start(struct seq_file *seq, loff_t *pos) + if (*pos == 0) + return SEQ_START_TOKEN; + +- for_each_netdev(&init_net, dev) { ++ for_each_netdev(net, dev) { + if (!is_vlan_dev(dev)) + continue; + +@@ -275,15 +299,16 @@ static void *vlan_seq_start(struct seq_file *seq, loff_t *pos) + + static void *vlan_seq_next(struct seq_file *seq, void *v, loff_t *pos) + { ++ struct net *net = seq->private; + struct net_device *dev; + + ++*pos; + + dev = (struct net_device *)v; + if (v == SEQ_START_TOKEN) +- dev = net_device_entry(&init_net.dev_base_head); ++ dev = net_device_entry(&net->dev_base_head); + +- for_each_netdev_continue(&init_net, dev) { ++ for_each_netdev_continue(net, dev) { + if (!is_vlan_dev(dev)) + continue; + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0041-Linux-2.6.24-ovz003.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0041-Linux-2.6.24-ovz003.patch @@ -0,0 +1,22 @@ +From 54c5b7426aae1d374df4c7ab6adaeba4e40a51d3 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Tue, 18 Mar 2008 12:07:46 +0300 +Subject: [PATCH 41/48] Linux 2.6.24-ovz003 + +--- + Makefile | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +Index: kernel/Makefile +=================================================================== +--- kernel.orig/Makefile 2008-11-24 15:47:45.000000000 +0100 ++++ kernel/Makefile 2008-11-24 15:59:06.000000000 +0100 +@@ -3,7 +3,7 @@ + SUBLEVEL = 24 + EXTRAVERSION = .6 + NAME = Err Metey! A Heury Beelge-a Ret! +-VZVERSION = ovz002 ++VZVERSION = ovz003 + + # *DOCUMENTATION* + # To see a list of typical targets execute "make help" --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0030-NETFILTER-free-nat_protos-on-VE-stop.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0030-NETFILTER-free-nat_protos-on-VE-stop.patch @@ -0,0 +1,26 @@ +From 92d6607dfe0806f9eee3733e0bbf253d5ba2e1db Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 17:12:10 +0300 +Subject: [PATCH 30/48] NETFILTER: free nat_protos on VE stop + +--- + net/ipv4/netfilter/nf_nat_core.c | 3 +++ + 1 files changed, 3 insertions(+), 0 deletions(-) + +diff --git a/net/ipv4/netfilter/nf_nat_core.c b/net/ipv4/netfilter/nf_nat_core.c +index 10b2f64..034ae79 100644 +--- a/net/ipv4/netfilter/nf_nat_core.c ++++ b/net/ipv4/netfilter/nf_nat_core.c +@@ -714,6 +714,9 @@ void nf_nat_cleanup(void) + synchronize_rcu(); + nf_ct_free_hashtable(ve_bysource, ve_nf_nat_vmalloced, nf_nat_htable_size); + nf_ct_l3proto_put(ve_nf_nat_l3proto); ++#ifdef CONFIG_VE_IPTABLES ++ kfree(ve_nf_nat_protos); ++#endif + if (ve_is_super(get_exec_env())) + nf_ct_extend_unregister(&nat_extend); + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0002-ubuntu-specific-revert-aa-d-path-changes.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0002-ubuntu-specific-revert-aa-d-path-changes.patch @@ -0,0 +1,124 @@ +Index: kernel/fs/dcache.c +=================================================================== +--- kernel.orig/fs/dcache.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/fs/dcache.c 2008-11-24 15:56:23.000000000 +0100 +@@ -1855,16 +1855,13 @@ + * @rootmnt: vfsmnt to which the root dentry belongs + * @buffer: buffer to return value in + * @buflen: buffer length +- * @fail_deleted: what to return for deleted files + * +- * Convert a dentry into an ASCII path name. If the entry has been deleted, +- * then if @fail_deleted is true, ERR_PTR(-ENOENT) is returned. Otherwise, ++ * Convert a dentry into an ASCII path name. If the entry has been deleted + * the string " (deleted)" is appended. Note that this is ambiguous. + * +- * If @dentry is not connected to @root, the path returned will be relative +- * (i.e., it will not start with a slash). ++ * Returns the buffer or an error code if the path was too long. + * +- * Returns the buffer or an error code. ++ * "buflen" should be positive. Caller holds the dcache_lock. + */ + char * __d_path( struct dentry *dentry, struct vfsmount *vfsmnt, + struct dentry *root, struct vfsmount *rootmnt, +@@ -1892,6 +1889,8 @@ + for (;;) { + struct dentry * parent; + ++ if (dentry == root && vfsmnt == rootmnt) ++ break; + if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) { + /* root of a tree? */ + spin_lock(&vfsmount_lock); +@@ -1901,6 +1900,7 @@ + } + dentry = vfsmnt->mnt_mountpoint; + vfsmnt = vfsmnt->mnt_parent; ++ spin_unlock(&vfsmount_lock); + continue; + } + parent = dentry->d_parent; +@@ -1953,23 +1953,12 @@ + Elong: + return ERR_PTR(-ENAMETOOLONG); + } +-EXPORT_SYMBOL(__d_path); + +-static char *__connect_d_path(char *path, char *buffer) +-{ +- if (!IS_ERR(path) && *path != '/') { +- /* Pretend that disconnected paths are hanging off the root. */ +- if (path == buffer) +- path = ERR_PTR(-ENAMETOOLONG); +- else +- *--path = '/'; +- } +- return path; +-} ++EXPORT_SYMBOL(__d_path); + + /* write full pathname into buffer and return start of pathname */ +-char *d_path(struct dentry *dentry, struct vfsmount *vfsmnt, char *buf, +- int buflen) ++char * d_path(struct dentry *dentry, struct vfsmount *vfsmnt, ++ char *buf, int buflen) + { + char *res; + struct vfsmount *rootmnt; +@@ -2264,10 +2253,10 @@ + */ + asmlinkage long sys_getcwd(char __user *buf, unsigned long size) + { +- int error, len; ++ int error; + struct vfsmount *pwdmnt, *rootmnt; + struct dentry *pwd, *root; +- char *page = (char *) __get_free_page(GFP_USER), *cwd; ++ char *page = (char *) __get_free_page(GFP_USER); + + if (!page) + return -ENOMEM; +@@ -2279,19 +2268,29 @@ + root = dget(current->fs->root); + read_unlock(¤t->fs->lock); + +- cwd = __d_path(pwd, pwdmnt, root, rootmnt, page, PAGE_SIZE); +- cwd = __connect_d_path(cwd, page); +- error = PTR_ERR(cwd); +- if (IS_ERR(cwd)) +- goto out; +- +- error = -ERANGE; +- len = PAGE_SIZE + page - cwd; +- if (len <= size) { +- error = len; +- if (copy_to_user(buf, cwd, len)) +- error = -EFAULT; +- } ++ error = -ENOENT; ++ /* Has the current directory has been unlinked? */ ++ spin_lock(&dcache_lock); ++ if (pwd->d_parent == pwd || !d_unhashed(pwd)) { ++ unsigned long len; ++ char * cwd; ++ ++ cwd = __d_path(pwd, pwdmnt, root, rootmnt, page, PAGE_SIZE); ++ spin_unlock(&dcache_lock); ++ ++ error = PTR_ERR(cwd); ++ if (IS_ERR(cwd)) ++ goto out; ++ ++ error = -ERANGE; ++ len = PAGE_SIZE + page - cwd; ++ if (len <= size) { ++ error = len; ++ if (copy_to_user(buf, cwd, len)) ++ error = -EFAULT; ++ } ++ } else ++ spin_unlock(&dcache_lock); + + out: + dput(pwd); --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0146-MS-NETNS-make-rtnetlink-infrastructure-network-names.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0146-MS-NETNS-make-rtnetlink-infrastructure-network-names.patch @@ -0,0 +1,735 @@ +From b34c8029a35c63bb9a029482034f30358c0fdd56 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 6 Jun 2008 20:26:24 +0400 +Subject: [PATCH] MS NETNS make rtnetlink infrastructure network namespace aware + +mainline commit 97c53cacf00d1f5aa04adabfebcc806ca8b22b10 + tweaks to get +netns from either netdevice ot something else. + +http://bugzilla.openvz.org/show_bug.cgi?id=905 + +[NET]: Make rtnetlink infrastructure network namespace aware (v3) + +After this patch none of the netlink callback support anything +except the initial network namespace but the rtnetlink infrastructure +now handles multiple network namespaces. + +Changes from v2: +- IPv6 addrlabel processing + +Changes from v1: +- no need for special rtnl_unlock handling +- fixed IPv6 ndisc + +Signed-off-by: Denis V. Lunev +Signed-off-by: Eric W. Biederman +Signed-off-by: David S. Miller +--- + include/linux/rtnetlink.h | 8 +++--- + include/net/net_namespace.h | 3 ++ + net/bridge/br_netlink.c | 5 ++- + net/core/fib_rules.c | 6 +++- + net/core/neighbour.c | 5 ++- + net/core/rtnetlink.c | 64 +++++++++++++++++++++++++++++++++++------- + net/decnet/dn_dev.c | 4 +- + net/decnet/dn_route.c | 2 +- + net/decnet/dn_table.c | 4 +- + net/ipv4/devinet.c | 5 ++- + net/ipv4/fib_semantics.c | 5 ++- + net/ipv4/ipmr.c | 4 +- + net/ipv4/route.c | 3 +- + net/ipv6/addrconf.c | 18 +++++++----- + net/ipv6/ndisc.c | 6 +++- + net/ipv6/route.c | 9 +++--- + net/sched/act_api.c | 8 +++--- + net/sched/cls_api.c | 2 +- + net/sched/sch_api.c | 4 +- + net/wireless/wext.c | 5 +++- + 20 files changed, 116 insertions(+), 54 deletions(-) + +diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h +index 4e81836..ef94cff 100644 +--- a/include/linux/rtnetlink.h ++++ b/include/linux/rtnetlink.h +@@ -613,11 +613,11 @@ extern int __rtattr_parse_nested_compat(struct rtattr *tb[], int maxattr, + ({ data = RTA_PAYLOAD(rta) >= len ? RTA_DATA(rta) : NULL; \ + __rtattr_parse_nested_compat(tb, max, rta, len); }) + +-extern int rtnetlink_send(struct sk_buff *skb, u32 pid, u32 group, int echo); +-extern int rtnl_unicast(struct sk_buff *skb, u32 pid); +-extern int rtnl_notify(struct sk_buff *skb, u32 pid, u32 group, ++extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); ++extern int rtnl_unicast(struct sk_buff *skb, struct net *net, u32 pid); ++extern int rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid, u32 group, + struct nlmsghdr *nlh, gfp_t flags); +-extern void rtnl_set_sk_err(u32 group, int error); ++extern void rtnl_set_sk_err(struct net *net, u32 group, int error); + extern int rtnetlink_put_metrics(struct sk_buff *skb, u32 *metrics); + extern int rtnl_put_cacheinfo(struct sk_buff *skb, struct dst_entry *dst, + u32 id, u32 ts, u32 tsage, long expires, +diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h +index de8803e..78565bd 100644 +--- a/include/net/net_namespace.h ++++ b/include/net/net_namespace.h +@@ -10,6 +10,7 @@ + + struct proc_dir_entry; + struct net_device; ++struct sock; + struct net { + atomic_t count; /* To decided when the network + * namespace should be freed. +@@ -30,6 +31,8 @@ struct net { + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; + ++ struct sock *rtnl; /* rtnetlink socket */ ++ + int ifindex; + + #ifdef CONFIG_VE +diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c +index da03338..af51000 100644 +--- a/net/bridge/br_netlink.c ++++ b/net/bridge/br_netlink.c +@@ -82,6 +82,7 @@ nla_put_failure: + */ + void br_ifinfo_notify(int event, struct net_bridge_port *port) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct sk_buff *skb; + int err = -ENOBUFS; + +@@ -97,10 +98,10 @@ void br_ifinfo_notify(int event, struct net_bridge_port *port) + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); ++ err = rtnl_notify(skb, net,0, RTNLGRP_LINK, NULL, GFP_ATOMIC); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_LINK, err); ++ rtnl_set_sk_err(net, RTNLGRP_LINK, err); + } + + /* +diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c +index 7167acd..39f8645 100644 +--- a/net/core/fib_rules.c ++++ b/net/core/fib_rules.c +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -574,6 +575,7 @@ static void notify_rule_change(int event, struct fib_rule *rule, + struct fib_rules_ops *ops, struct nlmsghdr *nlh, + u32 pid) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct sk_buff *skb; + int err = -ENOBUFS; + +@@ -588,10 +590,10 @@ static void notify_rule_change(int event, struct fib_rule *rule, + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, pid, ops->nlgroup, nlh, GFP_KERNEL); ++ err = rtnl_notify(skb, net, pid, ops->nlgroup, nlh, GFP_KERNEL); + errout: + if (err < 0) +- rtnl_set_sk_err(ops->nlgroup, err); ++ rtnl_set_sk_err(net, ops->nlgroup, err); + } + + static void attach_rules(struct list_head *rules, struct net_device *dev) +diff --git a/net/core/neighbour.c b/net/core/neighbour.c +index 3900342..6e167a8 100644 +--- a/net/core/neighbour.c ++++ b/net/core/neighbour.c +@@ -2521,6 +2521,7 @@ static inline size_t neigh_nlmsg_size(void) + + static void __neigh_notify(struct neighbour *n, int type, int flags) + { ++ struct net *net = n->dev->nd_net; + struct sk_buff *skb; + int err = -ENOBUFS; + +@@ -2535,10 +2536,10 @@ static void __neigh_notify(struct neighbour *n, int type, int flags) + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, 0, RTNLGRP_NEIGH, NULL, GFP_ATOMIC); ++ err = rtnl_notify(skb, net, 0, RTNLGRP_NEIGH, NULL, GFP_ATOMIC); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_NEIGH, err); ++ rtnl_set_sk_err(net, RTNLGRP_NEIGH, err); + } + + #ifdef CONFIG_ARPD +diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c +index 07740f4..9cb91f5 100644 +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -60,7 +60,6 @@ struct rtnl_link + }; + + static DEFINE_MUTEX(rtnl_mutex); +-static struct sock *rtnl; + + void rtnl_lock(void) + { +@@ -458,8 +457,9 @@ size_t rtattr_strlcpy(char *dest, const struct rtattr *rta, size_t size) + return ret; + } + +-int rtnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, int echo) ++int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned group, int echo) + { ++ struct sock *rtnl = net->rtnl; + int err = 0; + + NETLINK_CB(skb).dst_group = group; +@@ -471,14 +471,17 @@ int rtnetlink_send(struct sk_buff *skb, u32 pid, unsigned group, int echo) + return err; + } + +-int rtnl_unicast(struct sk_buff *skb, u32 pid) ++int rtnl_unicast(struct sk_buff *skb, struct net *net, u32 pid) + { ++ struct sock *rtnl = net->rtnl; ++ + return nlmsg_unicast(rtnl, skb, pid); + } + +-int rtnl_notify(struct sk_buff *skb, u32 pid, u32 group, ++int rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid, u32 group, + struct nlmsghdr *nlh, gfp_t flags) + { ++ struct sock *rtnl = net->rtnl; + int report = 0; + + if (nlh) +@@ -487,8 +490,10 @@ int rtnl_notify(struct sk_buff *skb, u32 pid, u32 group, + return nlmsg_notify(rtnl, skb, pid, group, report, flags); + } + +-void rtnl_set_sk_err(u32 group, int error) ++void rtnl_set_sk_err(struct net *net, u32 group, int error) + { ++ struct sock *rtnl = net->rtnl; ++ + netlink_set_err(rtnl, 0, group, error); + } + +@@ -1186,7 +1191,7 @@ static int rtnl_getlink(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg) + kfree_skb(nskb); + goto errout; + } +- err = rtnl_unicast(nskb, NETLINK_CB(skb).pid); ++ err = rtnl_unicast(nskb, net, NETLINK_CB(skb).pid); + errout: + dev_put(dev); + +@@ -1221,6 +1226,7 @@ static int rtnl_dump_all(struct sk_buff *skb, struct netlink_callback *cb) + + void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change) + { ++ struct net *net = dev->nd_net; + struct sk_buff *skb; + int err = -ENOBUFS; + +@@ -1235,10 +1241,10 @@ void rtmsg_ifinfo(int type, struct net_device *dev, unsigned change) + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_KERNEL); ++ err = rtnl_notify(skb, net, 0, RTNLGRP_LINK, NULL, GFP_KERNEL); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_LINK, err); ++ rtnl_set_sk_err(net, RTNLGRP_LINK, err); + } + + /* Protected by RTNL sempahore. */ +@@ -1249,6 +1255,7 @@ static int rtattr_max; + + static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) + { ++ struct net *net = skb->sk->sk_net; + rtnl_doit_func doit; + int sz_idx, kind; + int min_len; +@@ -1277,6 +1284,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) + return -EPERM; + + if (kind == 2 && nlh->nlmsg_flags&NLM_F_DUMP) { ++ struct sock *rtnl; + rtnl_dumpit_func dumpit; + + dumpit = rtnl_get_dumpit(family, type); +@@ -1284,6 +1292,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) + return -EOPNOTSUPP; + + __rtnl_unlock(); ++ rtnl = net->rtnl; + err = netlink_dump_start(rtnl, skb, nlh, dumpit, NULL); + rtnl_lock(); + return err; +@@ -1353,6 +1362,40 @@ static struct notifier_block rtnetlink_dev_notifier = { + .notifier_call = rtnetlink_event, + }; + ++ ++static int rtnetlink_net_init(struct net *net) ++{ ++ struct sock *sk; ++ sk = netlink_kernel_create(net, NETLINK_ROUTE, RTNLGRP_MAX, ++ rtnetlink_rcv, &rtnl_mutex, THIS_MODULE); ++ if (!sk) ++ return -ENOMEM; ++ ++ /* Don't hold an extra reference on the namespace */ ++ put_net(sk->sk_net); ++ net->rtnl = sk; ++ return 0; ++} ++ ++static void rtnetlink_net_exit(struct net *net) ++{ ++ struct sock *sk = net->rtnl; ++ if (sk) { ++ /* At the last minute lie and say this is a socket for the ++ * initial network namespace. So the socket will be safe to ++ * free. ++ */ ++ sk->sk_net = get_net(&init_net); ++ sock_put(sk); ++ net->rtnl = NULL; ++ } ++} ++ ++static struct pernet_operations rtnetlink_net_ops = { ++ .init = rtnetlink_net_init, ++ .exit = rtnetlink_net_exit, ++}; ++ + void __init rtnetlink_init(void) + { + int i; +@@ -1365,10 +1408,9 @@ void __init rtnetlink_init(void) + if (!rta_buf) + panic("rtnetlink_init: cannot allocate rta_buf\n"); + +- rtnl = netlink_kernel_create(&init_net, NETLINK_ROUTE, RTNLGRP_MAX, +- rtnetlink_rcv, &rtnl_mutex, THIS_MODULE); +- if (rtnl == NULL) ++ if (register_pernet_subsys(&rtnetlink_net_ops)) + panic("rtnetlink_init: cannot initialize rtnetlink\n"); ++ + netlink_set_nonroot(NETLINK_ROUTE, NL_NONROOT_RECV); + register_netdevice_notifier(&rtnetlink_dev_notifier); + +diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c +index 3bc82dc..00d5b85 100644 +--- a/net/decnet/dn_dev.c ++++ b/net/decnet/dn_dev.c +@@ -785,10 +785,10 @@ static void dn_ifaddr_notify(int event, struct dn_ifaddr *ifa) + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, 0, RTNLGRP_DECnet_IFADDR, NULL, GFP_KERNEL); ++ err = rtnl_notify(skb, &init_net, 0, RTNLGRP_DECnet_IFADDR, NULL, GFP_KERNEL); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_DECnet_IFADDR, err); ++ rtnl_set_sk_err(&init_net, RTNLGRP_DECnet_IFADDR, err); + } + + static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) +diff --git a/net/decnet/dn_route.c b/net/decnet/dn_route.c +index 0e10ff2..d3ab88d 100644 +--- a/net/decnet/dn_route.c ++++ b/net/decnet/dn_route.c +@@ -1594,7 +1594,7 @@ static int dn_cache_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh, void + goto out_free; + } + +- return rtnl_unicast(skb, NETLINK_CB(in_skb).pid); ++ return rtnl_unicast(skb, &init_net, NETLINK_CB(in_skb).pid); + + out_free: + kfree_skb(skb); +diff --git a/net/decnet/dn_table.c b/net/decnet/dn_table.c +index fda0772..8beab0d 100644 +--- a/net/decnet/dn_table.c ++++ b/net/decnet/dn_table.c +@@ -375,10 +375,10 @@ static void dn_rtmsg_fib(int event, struct dn_fib_node *f, int z, u32 tb_id, + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, pid, RTNLGRP_DECnet_ROUTE, nlh, GFP_KERNEL); ++ err = rtnl_notify(skb, &init_net, pid, RTNLGRP_DECnet_ROUTE, nlh, GFP_KERNEL); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_DECnet_ROUTE, err); ++ rtnl_set_sk_err(&init_net, RTNLGRP_DECnet_ROUTE, err); + } + + static __inline__ int dn_hash_dump_bucket(struct sk_buff *skb, +diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c +index 8f1f229..d26e56c 100644 +--- a/net/ipv4/devinet.c ++++ b/net/ipv4/devinet.c +@@ -1221,6 +1221,7 @@ done: + static void rtmsg_ifa(int event, struct in_ifaddr* ifa, struct nlmsghdr *nlh, + u32 pid) + { ++ struct net *net = ifa->ifa_dev->dev->nd_net; + struct sk_buff *skb; + u32 seq = nlh ? nlh->nlmsg_seq : 0; + int err = -ENOBUFS; +@@ -1236,10 +1237,10 @@ static void rtmsg_ifa(int event, struct in_ifaddr* ifa, struct nlmsghdr *nlh, + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, pid, RTNLGRP_IPV4_IFADDR, nlh, GFP_KERNEL); ++ err = rtnl_notify(skb, net, pid, RTNLGRP_IPV4_IFADDR, nlh, GFP_KERNEL); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_IPV4_IFADDR, err); ++ rtnl_set_sk_err(net, RTNLGRP_IPV4_IFADDR, err); + } + + #ifdef CONFIG_SYSCTL +diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c +index bf95051..de7a06f 100644 +--- a/net/ipv4/fib_semantics.c ++++ b/net/ipv4/fib_semantics.c +@@ -325,6 +325,7 @@ void rtmsg_fib(int event, __be32 key, struct fib_alias *fa, + int dst_len, u32 tb_id, struct nl_info *info, + unsigned int nlm_flags) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct sk_buff *skb; + u32 seq = info->nlh ? info->nlh->nlmsg_seq : 0; + int err = -ENOBUFS; +@@ -342,11 +343,11 @@ void rtmsg_fib(int event, __be32 key, struct fib_alias *fa, + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, info->pid, RTNLGRP_IPV4_ROUTE, ++ err = rtnl_notify(skb, net, info->pid, RTNLGRP_IPV4_ROUTE, + info->nlh, GFP_KERNEL); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_IPV4_ROUTE, err); ++ rtnl_set_sk_err(net, RTNLGRP_IPV4_ROUTE, err); + } + + /* Return the first fib alias matching TOS with +diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c +index 255e206..1cb6670 100644 +--- a/net/ipv4/ipmr.c ++++ b/net/ipv4/ipmr.c +@@ -323,7 +323,7 @@ static void ipmr_destroy_unres(struct mfc_cache *c) + e->error = -ETIMEDOUT; + memset(&e->msg, 0, sizeof(e->msg)); + +- rtnl_unicast(skb, NETLINK_CB(skb).pid); ++ rtnl_unicast(skb, &init_net, NETLINK_CB(skb).pid); + } else + kfree_skb(skb); + } +@@ -535,7 +535,7 @@ static void ipmr_cache_resolve(struct mfc_cache *uc, struct mfc_cache *c) + memset(&e->msg, 0, sizeof(e->msg)); + } + +- rtnl_unicast(skb, NETLINK_CB(skb).pid); ++ rtnl_unicast(skb, &init_net, NETLINK_CB(skb).pid); + } else + ip_mr_forward(skb, c, 0); + } +diff --git a/net/ipv4/route.c b/net/ipv4/route.c +index dfd7dd0..b924a30 100644 +--- a/net/ipv4/route.c ++++ b/net/ipv4/route.c +@@ -2697,6 +2697,7 @@ nla_put_failure: + + static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void *arg) + { ++ struct net *net = in_skb->sk->sk_net; + struct rtmsg *rtm; + struct nlattr *tb[RTA_MAX+1]; + struct rtable *rt = NULL; +@@ -2776,7 +2777,7 @@ static int inet_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void + if (err <= 0) + goto errout_free; + +- err = rtnl_unicast(skb, NETLINK_CB(in_skb).pid); ++ err = rtnl_unicast(skb, net, NETLINK_CB(in_skb).pid); + errout: + return err; + +diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c +index ba5b3e3..f2b65ec 100644 +--- a/net/ipv6/addrconf.c ++++ b/net/ipv6/addrconf.c +@@ -3425,6 +3425,7 @@ static int inet6_dump_ifacaddr(struct sk_buff *skb, struct netlink_callback *cb) + static int inet6_rtm_getaddr(struct sk_buff *in_skb, struct nlmsghdr* nlh, + void *arg) + { ++ struct net *net = in_skb->sk->sk_net; + struct ifaddrmsg *ifm; + struct nlattr *tb[IFA_MAX+1]; + struct in6_addr *addr = NULL; +@@ -3465,7 +3466,7 @@ static int inet6_rtm_getaddr(struct sk_buff *in_skb, struct nlmsghdr* nlh, + kfree_skb(skb); + goto errout_ifa; + } +- err = rtnl_unicast(skb, NETLINK_CB(in_skb).pid); ++ err = rtnl_unicast(skb, net, NETLINK_CB(in_skb).pid); + errout_ifa: + in6_ifa_put(ifa); + errout: +@@ -3474,6 +3475,7 @@ errout: + + static void inet6_ifa_notify(int event, struct inet6_ifaddr *ifa) + { ++ struct net *net = ifa->idev->dev->nd_net; + struct sk_buff *skb; + int err = -ENOBUFS; + +@@ -3488,10 +3490,10 @@ static void inet6_ifa_notify(int event, struct inet6_ifaddr *ifa) + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, 0, RTNLGRP_IPV6_IFADDR, NULL, GFP_ATOMIC); ++ err = rtnl_notify(skb, net, 0, RTNLGRP_IPV6_IFADDR, NULL, GFP_ATOMIC); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_IPV6_IFADDR, err); ++ rtnl_set_sk_err(net, RTNLGRP_IPV6_IFADDR, err); + } + + static inline void ipv6_store_devconf(struct ipv6_devconf *cnf, +@@ -3678,6 +3680,7 @@ cont: + + void inet6_ifinfo_notify(int event, struct inet6_dev *idev) + { ++ struct net *net = idev->dev->nd_net; + struct sk_buff *skb; + int err = -ENOBUFS; + +@@ -3692,10 +3695,10 @@ void inet6_ifinfo_notify(int event, struct inet6_dev *idev) + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, 0, RTNLGRP_IPV6_IFADDR, NULL, GFP_ATOMIC); ++ err = rtnl_notify(skb, net, 0, RTNLGRP_IPV6_IFADDR, NULL, GFP_ATOMIC); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_IPV6_IFADDR, err); ++ rtnl_set_sk_err(net, RTNLGRP_IPV6_IFADDR, err); + } + + static inline size_t inet6_prefix_nlmsg_size(void) +@@ -3747,6 +3750,7 @@ nla_put_failure: + static void inet6_prefix_notify(int event, struct inet6_dev *idev, + struct prefix_info *pinfo) + { ++ struct net *net = idev->dev->nd_net; + struct sk_buff *skb; + int err = -ENOBUFS; + +@@ -3761,10 +3765,10 @@ static void inet6_prefix_notify(int event, struct inet6_dev *idev, + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, 0, RTNLGRP_IPV6_PREFIX, NULL, GFP_ATOMIC); ++ err = rtnl_notify(skb, net, 0, RTNLGRP_IPV6_PREFIX, NULL, GFP_ATOMIC); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_IPV6_PREFIX, err); ++ rtnl_set_sk_err(net, RTNLGRP_IPV6_PREFIX, err); + } + + static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp) +diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c +index ce3bbc5..20f3b99 100644 +--- a/net/ipv6/ndisc.c ++++ b/net/ipv6/ndisc.c +@@ -1015,6 +1015,7 @@ out: + + static void ndisc_ra_useropt(struct sk_buff *ra, struct nd_opt_hdr *opt) + { ++ struct net *net = ra->dev->nd_net; + struct icmp6hdr *icmp6h = (struct icmp6hdr *)skb_transport_header(ra); + struct sk_buff *skb; + struct nlmsghdr *nlh; +@@ -1048,7 +1049,8 @@ static void ndisc_ra_useropt(struct sk_buff *ra, struct nd_opt_hdr *opt) + &ipv6_hdr(ra)->saddr); + nlmsg_end(skb, nlh); + +- err = rtnl_notify(skb, 0, RTNLGRP_ND_USEROPT, NULL, GFP_ATOMIC); ++ err = rtnl_notify(skb, net, 0, RTNLGRP_ND_USEROPT, NULL, ++ GFP_ATOMIC); + if (err < 0) + goto errout; + +@@ -1058,7 +1060,7 @@ nla_put_failure: + nlmsg_free(skb); + err = -EMSGSIZE; + errout: +- rtnl_set_sk_err(RTNLGRP_ND_USEROPT, err); ++ rtnl_set_sk_err(&init_net, RTNLGRP_ND_USEROPT, err); + } + + static void ndisc_router_discovery(struct sk_buff *skb) +diff --git a/net/ipv6/route.c b/net/ipv6/route.c +index 74c434b..ada957e 100644 +--- a/net/ipv6/route.c ++++ b/net/ipv6/route.c +@@ -2176,7 +2176,7 @@ int rt6_dump_route(struct rt6_info *rt, void *p_arg) + + static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void *arg) + { +- struct net *net = get_exec_env()->ve_ns->net_ns; ++ struct net *net = in_skb->sk->sk_net; + struct nlattr *tb[RTA_MAX+1]; + struct rt6_info *rt; + struct sk_buff *skb; +@@ -2243,13 +2243,14 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh, void + goto errout; + } + +- err = rtnl_unicast(skb, NETLINK_CB(in_skb).pid); ++ err = rtnl_unicast(skb, net, NETLINK_CB(in_skb).pid); + errout: + return err; + } + + void inet6_rt_notify(int event, struct rt6_info *rt, struct nl_info *info) + { ++ struct net *net = get_exec_env()->ve_ns->net_ns; + struct sk_buff *skb; + u32 pid = 0, seq = 0; + struct nlmsghdr *nlh = NULL; +@@ -2273,10 +2274,10 @@ void inet6_rt_notify(int event, struct rt6_info *rt, struct nl_info *info) + kfree_skb(skb); + goto errout; + } +- err = rtnl_notify(skb, pid, RTNLGRP_IPV6_ROUTE, nlh, gfp_any()); ++ err = rtnl_notify(skb, net, pid, RTNLGRP_IPV6_ROUTE, nlh, gfp_any()); + errout: + if (err < 0) +- rtnl_set_sk_err(RTNLGRP_IPV6_ROUTE, err); ++ rtnl_set_sk_err(net, RTNLGRP_IPV6_ROUTE, err); + } + + /* +diff --git a/net/sched/act_api.c b/net/sched/act_api.c +index 72cdb0f..9b6ed89 100644 +--- a/net/sched/act_api.c ++++ b/net/sched/act_api.c +@@ -658,7 +658,7 @@ act_get_notify(u32 pid, struct nlmsghdr *n, struct tc_action *a, int event) + return -EINVAL; + } + +- return rtnl_unicast(skb, pid); ++ return rtnl_unicast(skb, &init_net, pid); + } + + static struct tc_action * +@@ -779,7 +779,7 @@ static int tca_action_flush(struct rtattr *rta, struct nlmsghdr *n, u32 pid) + nlh->nlmsg_flags |= NLM_F_ROOT; + module_put(a->ops->owner); + kfree(a); +- err = rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); ++ err = rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); + if (err > 0) + return 0; + +@@ -842,7 +842,7 @@ tca_action_gd(struct rtattr *rta, struct nlmsghdr *n, u32 pid, int event) + + /* now do the delete */ + tcf_action_destroy(head, 0); +- ret = rtnetlink_send(skb, pid, RTNLGRP_TC, ++ ret = rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, + n->nlmsg_flags&NLM_F_ECHO); + if (ret > 0) + return 0; +@@ -886,7 +886,7 @@ static int tcf_add_notify(struct tc_action *a, u32 pid, u32 seq, int event, + nlh->nlmsg_len = skb_tail_pointer(skb) - b; + NETLINK_CB(skb).dst_group = RTNLGRP_TC; + +- err = rtnetlink_send(skb, pid, RTNLGRP_TC, flags&NLM_F_ECHO); ++ err = rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, flags&NLM_F_ECHO); + if (err > 0) + err = 0; + return err; +diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c +index 0365797..7342edf 100644 +--- a/net/sched/cls_api.c ++++ b/net/sched/cls_api.c +@@ -355,7 +355,7 @@ static int tfilter_notify(struct sk_buff *oskb, struct nlmsghdr *n, + return -EINVAL; + } + +- return rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); ++ return rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); + } + + struct tcf_dump_args +diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c +index 8ae137e..8f54bbb 100644 +--- a/net/sched/sch_api.c ++++ b/net/sched/sch_api.c +@@ -863,7 +863,7 @@ static int qdisc_notify(struct sk_buff *oskb, struct nlmsghdr *n, + } + + if (skb->len) +- return rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); ++ return rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); + + err_out: + kfree_skb(skb); +@@ -1086,7 +1086,7 @@ static int tclass_notify(struct sk_buff *oskb, struct nlmsghdr *n, + return -EINVAL; + } + +- return rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); ++ return rtnetlink_send(skb, &init_net, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); + } + + struct qdisc_dump_args +diff --git a/net/wireless/wext.c b/net/wireless/wext.c +index 47e80cc..db03ed5 100644 +--- a/net/wireless/wext.c ++++ b/net/wireless/wext.c +@@ -1137,7 +1137,7 @@ static void wireless_nlevent_process(unsigned long data) + struct sk_buff *skb; + + while ((skb = skb_dequeue(&wireless_nlevent_queue))) +- rtnl_notify(skb, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); ++ rtnl_notify(skb, &init_net, 0, RTNLGRP_LINK, NULL, GFP_ATOMIC); + } + + static DECLARE_TASKLET(wireless_nlevent_tasklet, wireless_nlevent_process, 0); +@@ -1189,6 +1189,9 @@ static void rtmsg_iwinfo(struct net_device *dev, char *event, int event_len) + struct sk_buff *skb; + int err; + ++ if (dev->nd_net != &init_net) ++ return; ++ + skb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC); + if (!skb) + return; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0124-VE-proc-devices.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0124-VE-proc-devices.patch @@ -0,0 +1,45 @@ +From dd0b4ed3b3484f5185b0b16ff3fbe4009362e178 Mon Sep 17 00:00:00 2001 +From: Vitaliy Gusev +Date: Fri, 18 Jul 2008 15:25:53 +0400 +Subject: [PATCH 124/131] VE proc devices + +Add empty /proc/devices to CT + +Some fancy tools are disappointed by its absence on the one hand, +but do not care for its content on the other. + +Bug #114847 +--- + fs/proc/proc_misc.c | 3 +++ + kernel/ve/veowner.c | 1 + + 2 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c +index 27bfda9..c69b817 100644 +--- a/fs/proc/proc_misc.c ++++ b/fs/proc/proc_misc.c +@@ -349,6 +349,9 @@ static int devinfo_show(struct seq_file *f, void *v) + + static void *devinfo_start(struct seq_file *f, loff_t *pos) + { ++ if (!ve_is_super(get_exec_env())) ++ return NULL; ++ + if (*pos < (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE)) + return pos; + return NULL; +diff --git a/kernel/ve/veowner.c b/kernel/ve/veowner.c +index b07bfb9..cee5765 100644 +--- a/kernel/ve/veowner.c ++++ b/kernel/ve/veowner.c +@@ -94,6 +94,7 @@ static void prepare_proc_misc(void) + "cmdline", + "vmstat", + "modules", ++ "devices", + NULL, + }; + char **p; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0147-MS-NETNS-memory-leak-on-network-namespace-stop.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0147-MS-NETNS-memory-leak-on-network-namespace-stop.patch @@ -0,0 +1,34 @@ +From 36b7ca98361288413004d525891f9a821a2b8709 Mon Sep 17 00:00:00 2001 +From: Denis V. Lunev +Date: Fri, 6 Jun 2008 21:10:14 +0400 +Subject: [PATCH] MS NETNS memory leak on network namespace stop + +mainline commit 4f84d82f7a623f8641af2574425c329431ff158f + +Network namespace allocates 2 kernel netlink sockets, fibnl & +rtnl. These sockets should be disposed properly, i.e. by +sock_release. Plain sock_put is not enough. + +Signed-off-by: Denis V. Lunev +Tested-by: Alexey Dobriyan +Signed-off-by: David S. Miller +--- + net/core/rtnetlink.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c +index 9cb91f5..e025b0c 100644 +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -1386,7 +1386,7 @@ static void rtnetlink_net_exit(struct net *net) + * free. + */ + sk->sk_net = get_net(&init_net); +- sock_put(sk); ++ sock_release(net->rtnl->sk_socket); + net->rtnl = NULL; + } + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0112-UBC-cfq-data-queue-position.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0112-UBC-cfq-data-queue-position.patch @@ -0,0 +1,67 @@ +From d888beb1029e24f62c33424f8192bb0be3fde442 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:45 +0400 +Subject: [PATCH 112/131] UBC cfq data queue position + +This patch eliminate BC IO overdose/underdose +after bc start, wakeup or iotime overlap. + +Queue position (cfq_bc_position) is a upper edge of previous active BC iotime. +Position updated at BC switch if it before new active BC iotime. + +BC enqueued according it's current iotime, +if it hit in interval position -/+ maximum slice, +otherwise iotime changed to queue position. +--- + include/linux/cfq-iosched.h | 1 + + kernel/bc/io_prio.c | 15 +++++++++++++++ + 2 files changed, 16 insertions(+), 0 deletions(-) + +diff --git a/include/linux/cfq-iosched.h b/include/linux/cfq-iosched.h +index 7f773a2..69c8943 100644 +--- a/include/linux/cfq-iosched.h ++++ b/include/linux/cfq-iosched.h +@@ -101,6 +101,7 @@ struct cfq_data { + unsigned int cfq_ub_slice; + unsigned long slice_begin; + unsigned long slice_end; ++ unsigned long cfq_bc_position; + int virt_mode; + int write_virt_mode; + }; +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index 9813a18..ef6982d 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -220,6 +220,17 @@ static void bc_remove(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) + + static void bc_enqueue(struct cfq_data *cfqd, struct cfq_bc_data *cfq_bc) + { ++ unsigned long iotime, slice, position; ++ ++ iotime = cfq_bc->cfq_bc_iotime; ++ slice = cfqd->cfq_ub_slice * 2; ++ position = cfqd->cfq_bc_position; ++ ++ /* adjust iotime to hit in interval position +/- maximum slice */ ++ if (bc_iotime_after(position, iotime + slice) ++ || bc_iotime_after(iotime, position + slice)) ++ cfq_bc->cfq_bc_iotime = position; ++ + bc_insert(cfqd, cfq_bc); + } + +@@ -261,6 +272,10 @@ static inline void bc_set_active(struct cfq_data *cfqd) + cfq_bc = rb_entry(rb_first(&cfqd->cfq_bc_queue), + struct cfq_bc_data, cfq_bc_node); + ++ /* adjust queue active position */ ++ if (bc_iotime_after(cfq_bc->cfq_bc_iotime, cfqd->cfq_bc_position)) ++ cfqd->cfq_bc_position = cfq_bc->cfq_bc_iotime; ++ + cfqd->active_cfq_bc = cfq_bc; + cfqd->slice_begin = now; + cfqd->slice_end = now + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0070-Backport-SLUB-Do-not-upset-lockdep.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0070-Backport-SLUB-Do-not-upset-lockdep.patch @@ -0,0 +1,74 @@ +From 6b35cc2ae08825f32c9e5a763c14aa89905d2444 Mon Sep 17 00:00:00 2001 +From: Peter Zijlstra +Date: Fri, 25 Apr 2008 13:11:31 +0400 +Subject: [PATCH 69/72] Backport "SLUB: Do not upset lockdep" + +http://bugzilla.openvz.org/show_bug.cgi?id=873 + +commit ba84c73c7ae21fc891a3c2576fa3be42752fce53 +Author: root +Date: Mon Jan 7 23:20:28 2008 -0800 + + SLUB: Do not upset lockdep + + inconsistent {softirq-on-W} -> {in-softirq-W} usage. + swapper/0 [HC0[0]:SC1[1]:HE0:SE0] takes: + (&n->list_lock){-+..}, at: [] add_partial+0x31/0xa0 + {softirq-on-W} state was registered at: + [] __lock_acquire+0x3e8/0x1140 + [] debug_check_no_locks_freed+0x188/0x1a0 + [] lock_acquire+0x55/0x70 + [] add_partial+0x31/0xa0 + [] _spin_lock+0x1e/0x30 + [] add_partial+0x31/0xa0 + [] kmem_cache_open+0x1cc/0x330 + [] _spin_unlock_irq+0x24/0x30 + [] create_kmalloc_cache+0x64/0xf0 + [] init_alloc_cpu_cpu+0x70/0x90 + [] kmem_cache_init+0x65/0x1d0 + [] start_kernel+0x23e/0x350 + [] _sinittext+0x12d/0x140 + [] 0xffffffffffffffff + + This change isn't really necessary for correctness, but it prevents lockdep + from getting upset and then disabling itself. + + Signed-off-by: Peter Zijlstra + Cc: Christoph Lameter + Cc: Kamalesh Babulal + Signed-off-by: Andrew Morton + Signed-off-by: Christoph Lameter +--- + mm/slub.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/mm/slub.c b/mm/slub.c +index ad0717a..734b0ba 100644 +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -2127,6 +2127,7 @@ static struct kmem_cache_node *early_kmem_cache_node_alloc(gfp_t gfpflags, + { + struct page *page; + struct kmem_cache_node *n; ++ unsigned long flags; + + BUG_ON(kmalloc_caches->size < sizeof(struct kmem_cache_node)); + +@@ -2151,7 +2152,14 @@ static struct kmem_cache_node *early_kmem_cache_node_alloc(gfp_t gfpflags, + #endif + init_kmem_cache_node(n); + atomic_long_inc(&n->nr_slabs); ++ /* ++ * lockdep requires consistent irq usage for each lock ++ * so even though there cannot be a race this early in ++ * the boot sequence, we still disable irqs. ++ */ ++ local_irq_save(flags); + add_partial(n, page); ++ local_irq_restore(flags); + return n; + } + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0110-UBC-ioprio-queues-proc.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0110-UBC-ioprio-queues-proc.patch @@ -0,0 +1,77 @@ +From fef55b01df3e94fc42d42ebf5c93d50a1b9246fb Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Fri, 18 Jul 2008 15:25:43 +0400 +Subject: [PATCH 110/131] UBC ioprio queues proc + +Show BC IO scheduler activity in proc + +Things, that may be interested for a beancounter are: + + * the number of requests on the BC + * whether or not this BC is during a request dispatch + * whether or not this BC is active + +(all above is per-queue). + +Add the /proc/bc//ioprio_queues file with the information +described above. + + sda 1 DA + hda 0 + sda 2 +--- + kernel/bc/io_prio.c | 35 +++++++++++++++++++++++++++++++++++ + 1 files changed, 35 insertions(+), 0 deletions(-) + +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index 1a10af4..5dcb9bb 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -292,9 +292,44 @@ static struct bc_proc_entry bc_ioprio_entry = { + .u.show = bc_ioprio_show, + }; + ++static int bc_ioprio_queue_show(struct seq_file *f, void *v) ++{ ++ struct user_beancounter *bc; ++ struct cfq_bc_data *cfq_bc; ++ ++ bc = seq_beancounter(f); ++ ++ read_lock_irq(&bc->iopriv.cfq_bc_list_lock); ++ list_for_each_entry(cfq_bc, &bc->iopriv.cfq_bc_head, cfq_bc_list) { ++ struct cfq_data *cfqd; ++ ++ cfqd = cfq_bc->cfqd; ++ seq_printf(f, "\t%-10s%6lu %c%c\n", ++ /* ++ * this per-bc -> queue-data -> queue -> device ++ * access is safe w/o additional locks, since ++ * all the stuff above dies in the order shown ++ * and we're holding the first element ++ */ ++ kobject_name(cfqd->queue->kobj.parent), ++ cfq_bc->rqnum, ++ cfq_bc->on_dispatch ? 'D' : ' ', ++ cfqd->active_cfq_bc == cfq_bc ? 'A' : ' '); ++ } ++ read_unlock_irq(&bc->iopriv.cfq_bc_list_lock); ++ ++ return 0; ++} ++ ++static struct bc_proc_entry bc_ioprio_queues_entry = { ++ .name = "ioprio_queues", ++ .u.show = bc_ioprio_queue_show, ++}; ++ + static int __init bc_ioprio_init(void) + { + bc_register_proc_entry(&bc_ioprio_entry); ++ bc_register_proc_entry(&bc_ioprio_queues_entry); + return 0; + } + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0158-Fix-wrong-size-of-ub0_percpu.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0158-Fix-wrong-size-of-ub0_percpu.patch @@ -0,0 +1,147 @@ +From a5a69260c66a4decfcb3d678821267a18addef67 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Tue, 7 Oct 2008 18:22:54 +0400 +Subject: [PATCH 158/158] Fix wrong size of ub0_percpu + +The struct percpu_data dynamically allocated and have array only for +1 cpu, so static usage of it does not work. + +Plus rework macros for static percpu variables declaration and +initialization. + +http://bugzilla.openvz.org/show_bug.cgi?id=1039 + +Singed-off-by: Konstantin Khlebnikov +Signed-off-by: Pavel Emelyanov +--- + include/linux/percpu.h | 21 +++++++++++++++++---- + kernel/bc/beancounter.c | 7 ++----- + kernel/sched.c | 8 ++------ + kernel/ve/ve.c | 15 ++++----------- + 4 files changed, 25 insertions(+), 26 deletions(-) + +Index: kernel/include/linux/percpu.h +=================================================================== +--- kernel.orig/include/linux/percpu.h 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/include/linux/percpu.h 2008-11-24 16:08:17.000000000 +0100 +@@ -49,11 +49,20 @@ + (__typeof__(ptr))__p->ptrs[(cpu)]; \ + }) + +-#define static_percpu_ptr(sptr, sptrs) ({ \ ++struct percpu_data_static { ++ void *ptrs[NR_CPUS]; ++}; ++ ++#define DEFINE_PER_CPU_STATIC(type, name) \ ++ static struct percpu_data_static per_cpu_data__##name; \ ++ static __typeof__(type) per_cpu__##name[NR_CPUS] ++ ++#define percpu_static_init(name) ({ \ + int i; \ + for (i = 0; i < NR_CPUS; i++) \ +- (sptr)->ptrs[i] = &(sptrs)[i]; \ +- (void *)__percpu_disguise(sptr); \ ++ (per_cpu_data__##name).ptrs[i] = &(per_cpu__##name)[i];\ ++ (__typeof__(&(per_cpu__##name)[0])) \ ++ __percpu_disguise(&(per_cpu_data__##name));\ + }) + + extern void *percpu_populate(void *__pdata, size_t size, gfp_t gfp, int cpu); +@@ -67,7 +76,11 @@ + #else /* CONFIG_SMP */ + + #define percpu_ptr(ptr, cpu) ({ (void)(cpu); (ptr); }) +-#define static_percpu_ptr(sptr, sptrs) (&sptrs[0]) ++ ++#define DEFINE_PER_CPU_STATIC(type, name) \ ++ static __typeof__(type) per_cpu__##name[NR_CPUS] ++ ++#define percpu_static_init(name) (&(per_cpu__##name)[0]) + + static inline void percpu_depopulate(void *__pdata, int cpu) + { +Index: kernel/kernel/bc/beancounter.c +=================================================================== +--- kernel.orig/kernel/bc/beancounter.c 2008-11-24 16:00:49.000000000 +0100 ++++ kernel/kernel/bc/beancounter.c 2008-11-24 16:08:17.000000000 +0100 +@@ -651,10 +651,7 @@ + ub->ub_limit_rl.interval = 300*HZ; + } + +-#ifdef CONFIG_SMP +-static struct percpu_data ub0_percpu; +-#endif +-static struct ub_percpu_struct ub0_percpu_data[NR_CPUS]; ++DEFINE_PER_CPU_STATIC(struct ub_percpu_struct, ub0_percpu); + + void __init ub_init_early(void) + { +@@ -667,7 +664,7 @@ + init_beancounter_nolimits(ub); + init_beancounter_store(ub); + init_beancounter_struct(ub); +- ub->ub_percpu = static_percpu_ptr(&ub0_percpu, ub0_percpu_data); ++ ub->ub_percpu = percpu_static_init(ub0_percpu); + + memset(¤t->task_bc, 0, sizeof(struct task_beancounter)); + (void)set_exec_ub(ub); +Index: kernel/kernel/sched.c +=================================================================== +--- kernel.orig/kernel/sched.c 2008-11-24 16:01:59.000000000 +0100 ++++ kernel/kernel/sched.c 2008-11-24 16:08:17.000000000 +0100 +@@ -385,10 +385,7 @@ + #endif + } + +-#ifdef CONFIG_SMP +-static struct percpu_data kstat_lat_pcpu_stats; +-#endif +-static struct kstat_lat_pcpu_snap_struct kstat_lat_pcpu_stats_data[NR_CPUS]; ++DEFINE_PER_CPU_STATIC(struct kstat_lat_pcpu_snap_struct, kstat_lat); + struct kernel_stat_glob kstat_glob; + + DEFINE_SPINLOCK(kstat_glb_lock); +@@ -7172,8 +7169,7 @@ + int highest_cpu = 0; + int i, j; + +- kstat_glob.sched_lat.cur = static_percpu_ptr(&kstat_lat_pcpu_stats, +- kstat_lat_pcpu_stats_data); ++ kstat_glob.sched_lat.cur = percpu_static_init(kstat_lat); + for_each_possible_cpu(i) { + struct rt_prio_array *array; + struct rq *rq; +Index: kernel/kernel/ve/ve.c +=================================================================== +--- kernel.orig/kernel/ve/ve.c 2008-11-24 16:08:08.000000000 +0100 ++++ kernel/kernel/ve/ve.c 2008-11-24 16:08:17.000000000 +0100 +@@ -118,13 +118,8 @@ + + EXPORT_SYMBOL(ve0); + +-#ifdef CONFIG_SMP +-static struct { +- void *ptrs[NR_CPUS]; +-} ve0_cpu_stats, ve0_lat_pcpu_stats; +-#endif +-static struct ve_cpu_stats ve0_cpu_stats_data[NR_CPUS]; +-static struct kstat_lat_pcpu_snap_struct ve0_lat_pcpu_stats_data[NR_CPUS]; ++DEFINE_PER_CPU_STATIC(struct ve_cpu_stats, ve0_cpu_stats); ++DEFINE_PER_CPU_STATIC(struct kstat_lat_pcpu_snap_struct, ve0_lat_stats); + + LIST_HEAD(ve_list_head); + rwlock_t ve_list_lock = RW_LOCK_UNLOCKED; +@@ -147,10 +142,8 @@ + (void)get_ve(ve); + atomic_set(&ve->pcounter, 1); + +- ve->cpu_stats = static_percpu_ptr(&ve0_cpu_stats, +- ve0_cpu_stats_data); +- ve->sched_lat_ve.cur = static_percpu_ptr(&ve0_lat_pcpu_stats, +- ve0_lat_pcpu_stats_data); ++ ve->cpu_stats = percpu_static_init(ve0_cpu_stats); ++ ve->sched_lat_ve.cur = percpu_static_init(ve0_lat_stats); + + list_add(&ve->ve_list, &ve_list_head); + } --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0101-VE-proc-tossing-nlink-init.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0101-VE-proc-tossing-nlink-init.patch @@ -0,0 +1,45 @@ +From 8433ff061604f8d7d47d46882f6da59fe913737c Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 2 Jul 2008 19:55:20 +0400 +Subject: [PATCH 101/103] VE proc tossing nlink init + +Correct nlink counters at initial moving proc entries +between local and global trees. +--- + kernel/ve/veowner.c | 6 ++++++ + 1 files changed, 6 insertions(+), 0 deletions(-) + +diff --git a/kernel/ve/veowner.c b/kernel/ve/veowner.c +index abeb21d..b07bfb9 100644 +--- a/kernel/ve/veowner.c ++++ b/kernel/ve/veowner.c +@@ -68,6 +68,10 @@ static void proc_move(struct proc_dir_entry *ddir, + q->parent = ddir; + q->next = ddir->subdir; + ddir->subdir = q; ++ if (S_ISDIR(q->mode)) { ++ sdir->nlink--; ++ ddir->nlink++; ++ } + } + static void prepare_proc_misc(void) + { +@@ -107,6 +111,7 @@ int prepare_proc(void) + ve_root = ve0.proc_root->subdir; + /* move the whole tree to be visible in VE0 only */ + ve0.proc_root->subdir = proc_root.subdir; ++ ve0.proc_root->nlink += proc_root.nlink - 2; + for (de = ve0.proc_root->subdir; de->next != NULL; de = de->next) + de->parent = ve0.proc_root; + de->parent = ve0.proc_root; +@@ -114,6 +119,7 @@ int prepare_proc(void) + + /* move back into the global scope some specific entries */ + proc_root.subdir = NULL; ++ proc_root.nlink = 2; + prepare_proc_misc(); + proc_mkdir("vz", NULL); + #ifdef CONFIG_SYSVIPC +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0021-FAIRSCHED-fix-config-option-name-in-VE-s-code.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0021-FAIRSCHED-fix-config-option-name-in-VE-s-code.patch @@ -0,0 +1,56 @@ +From 68e9756e1255488faedc3f31bf826c423ba37ead Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 12 Mar 2008 18:14:09 +0300 +Subject: [PATCH 21/48] FAIRSCHED: fix config option name in VE's code + +--- + kernel/ve/vecalls.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c +index 3f4d3cd..ca4f1e5 100644 +--- a/kernel/ve/vecalls.c ++++ b/kernel/ve/vecalls.c +@@ -64,7 +64,7 @@ + #include + #include + #include +-#ifdef CONFIG_FAIRSCHED ++#ifdef CONFIG_VZ_FAIRSCHED + #include + #endif + +@@ -835,7 +835,7 @@ static void fini_venet(struct ve_struct *ve) + + static int init_ve_sched(struct ve_struct *ve) + { +-#ifdef CONFIG_FAIRSCHED ++#ifdef CONFIG_VZ_FAIRSCHED + int err; + + /* +@@ -864,9 +864,9 @@ static int init_ve_sched(struct ve_struct *ve) + + static void fini_ve_sched(struct ve_struct *ve) + { +-#ifdef CONFIG_FAIRSCHED +- if (task_vsched_id(current) == ve->veid) +- if (sys_fairsched_mvpr(current->pid, fairsched_init_node.id)) ++#ifdef CONFIG_VZ_FAIRSCHED ++ if (task_fairsched_node_id(current) == ve->veid) ++ if (sys_fairsched_mvpr(current->pid, FAIRSCHED_INIT_NODE_ID)) + printk(KERN_WARNING "Can't leave fairsched node %d\n", + ve->veid); + if (sys_fairsched_rmnod(ve->veid)) +@@ -1662,7 +1662,7 @@ static int do_env_enter(struct ve_struct *ve, unsigned int flags) + if (!thread_group_leader(tsk) || !thread_group_empty(tsk)) + goto out_up; + +-#ifdef CONFIG_FAIRSCHED ++#ifdef CONFIG_VZ_FAIRSCHED + err = sys_fairsched_mvpr(current->pid, ve->veid); + if (err) + goto out_up; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0079-remove-spurious-kernel-time-c-warnings.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0079-remove-spurious-kernel-time-c-warnings.patch @@ -0,0 +1,47 @@ +commit 24e7cd454bb9f95fbda41bb4e8f9537747803859 +Author: Alexey Dobriyan +Date: Wed May 28 19:51:14 2008 +0400 + + Remove spurious warnings in kernel/time.c + + E.g. code in clock_t_to_jiffies() divides ~0UL thus assuming that all + "unsigned long" range is valid. Ditto for other functions. Alexey said + these warnings are old debugging stuff. + + http://bugzilla.openvz.org/show_bug.cgi?id=898 + +diff --git a/kernel/time.c b/kernel/time.c +index cb4894a..09d3c45 100644 +--- a/kernel/time.c ++++ b/kernel/time.c +@@ -577,14 +577,12 @@ EXPORT_SYMBOL(jiffies_to_clock_t); + unsigned long clock_t_to_jiffies(unsigned long x) + { + #if (HZ % USER_HZ)==0 +- WARN_ON((long)x < 0); + if (x >= ~0UL / (HZ / USER_HZ)) + return ~0UL; + return x * (HZ / USER_HZ); + #else + u64 jif; + +- WARN_ON((long)x < 0); + /* Don't worry about loss of precision here .. */ + if (x >= ~0UL / HZ * USER_HZ) + return ~0UL; +@@ -599,7 +597,6 @@ EXPORT_SYMBOL(clock_t_to_jiffies); + + u64 jiffies_64_to_clock_t(u64 x) + { +- WARN_ON((s64)x < 0); + #if (TICK_NSEC % (NSEC_PER_SEC / USER_HZ)) == 0 + do_div(x, HZ / USER_HZ); + #else +@@ -618,7 +615,6 @@ EXPORT_SYMBOL(jiffies_64_to_clock_t); + + u64 nsec_to_clock_t(u64 x) + { +- WARN_ON((s64)x < 0); + #if (NSEC_PER_SEC % USER_HZ) == 0 + do_div(x, (NSEC_PER_SEC / USER_HZ)); + #elif (USER_HZ % 512) == 0 --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0137-VE-SYSCTL-cleanup-cap-bset.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0137-VE-SYSCTL-cleanup-cap-bset.patch @@ -0,0 +1,36 @@ +From 7bec95432b9a8d45de49033a246913bddea45c55 Mon Sep 17 00:00:00 2001 +From: Vasily Averin +Date: Fri, 16 May 2008 14:07:37 +0400 +Subject: [PATCH] VE SYSCTL cleanup cap bset + kernel.cap-bound sysctl cleanup + - proc entry is global and therefore it is ReadOnly-accessible from inside VE + +http://bugzilla.openvz.org/show_bug.cgi?id=524 +--- + kernel/sysctl.c | 9 +-------- + 1 files changed, 1 insertions(+), 8 deletions(-) + +diff --git a/kernel/sysctl.c b/kernel/sysctl.c +index d5c7b1d..88c5f76 100644 +--- a/kernel/sysctl.c ++++ b/kernel/sysctl.c +@@ -2155,15 +2155,8 @@ int proc_dointvec_bset(struct ctl_table *table, int write, struct file *filp, + { + int op; + +- struct ve_struct *ve; +- +- ve = get_exec_env(); +- +- /* For VE's root writing to VE's cap-bound is prohibited */ +- if ((ve_is_super(ve) && write && !capable(CAP_SYS_MODULE)) || +- (!ve_is_super(ve) && (!capable(CAP_VE_ADMIN) || write))) { ++ if (write && !capable(CAP_SYS_MODULE)) + return -EPERM; +- } + + op = is_global_init(current) ? OP_SET : OP_AND; + return __do_proc_dointvec(&cap_bset, table, write, filp, +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0043-ioprio-correct-emptyness-of-cfq_bc.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0043-ioprio-correct-emptyness-of-cfq_bc.patch @@ -0,0 +1,29 @@ +From 0dbdc45e3c9f940f8e360fae502a538d659f6a23 Mon Sep 17 00:00:00 2001 +From: Vasily Tarasov +Date: Thu, 20 Mar 2008 11:48:38 +0300 +Subject: [PATCH 43/48] ioprio: correct emptyness of cfq_bc + +While porting User Beancounters to 2.6.24 kernel, bc_empty() call was +forgotten, so in some cases I/O prioritization could not work properly. + +Signed-off-by: Vasily Tarasov +--- + kernel/bc/io_prio.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/kernel/bc/io_prio.c b/kernel/bc/io_prio.c +index 9407b38..20aa133 100644 +--- a/kernel/bc/io_prio.c ++++ b/kernel/bc/io_prio.c +@@ -204,7 +204,7 @@ static inline void bc_set_active(struct cfq_data *cfqd) + void bc_schedule_active(struct cfq_data *cfqd) + { + if (bc_expired(cfqd) || !cfqd->active_cfq_bc || +- !cfqd->active_cfq_bc->rqnum) ++ bc_empty(cfqd->active_cfq_bc)) + bc_set_active(cfqd); + } + +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0072-FAIRSCHED-move-to-kernel-fairsched.c.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0072-FAIRSCHED-move-to-kernel-fairsched.c.patch @@ -0,0 +1,1333 @@ +From 0fb90a706d7b776e899e530a30c734fbcf427a26 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Wed, 30 Apr 2008 18:40:47 +0400 +Subject: [PATCH 71/72] FAIRSCHED: move to kernel/fairsched.c + +It was there before, so make patch application slightly easier. +--- + kernel/Makefile | 2 +- + kernel/fairsched.c | 648 ++++++++++++++++++++++++++++++++++++++++++++++++++ + kernel/vzfairsched.c | 648 -------------------------------------------------- + 3 files changed, 649 insertions(+), 649 deletions(-) + create mode 100644 kernel/fairsched.c + delete mode 100644 kernel/vzfairsched.c + +Index: kernel/kernel/Makefile +=================================================================== +--- kernel.orig/kernel/Makefile 2008-11-24 15:57:08.000000000 +0100 ++++ kernel/kernel/Makefile 2008-11-24 16:00:10.000000000 +0100 +@@ -62,7 +62,7 @@ + obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o + obj-$(CONFIG_MARKERS) += marker.o + obj-$(CONFIG_LATENCYTOP) += latencytop.o +-obj-$(CONFIG_VZ_FAIRSCHED) += vzfairsched.o ++obj-$(CONFIG_VZ_FAIRSCHED) += fairsched.o + + ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y) + # According to Alan Modra , the -fno-omit-frame-pointer is +Index: kernel/kernel/fairsched.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/fairsched.c 2008-11-24 16:00:10.000000000 +0100 +@@ -0,0 +1,648 @@ ++/* ++ * Fair Scheduler ++ * ++ * Copyright (C) 2000-2008 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++ ++struct fairsched_node fairsched_init_node = { ++ .id = FAIRSCHED_INIT_NODE_ID, ++ .tg = &init_task_group, ++#ifdef CONFIG_VE ++ .owner_env = get_ve0(), ++#endif ++ .weight = 1, ++}; ++ ++static DEFINE_MUTEX(fairsched_mutex); ++ ++/* list protected with fairsched_mutex */ ++static LIST_HEAD(fairsched_node_head); ++static int fairsched_nr_nodes; ++ ++void __init fairsched_init_early(void) ++{ ++ list_add(&fairsched_init_node.nodelist, &fairsched_node_head); ++ fairsched_nr_nodes++; ++} ++ ++#define FSCHWEIGHT_BASE 512000 ++ ++/****************************************************************************** ++ * cfs group shares = FSCHWEIGHT_BASE / fairsched weight ++ * ++ * vzctl cpuunits default 1000 ++ * cfs shares default value is 1024 (see init_task_group_load in sched.c) ++ * cpuunits = 1000 --> weight = 500000 / cpuunits = 500 --> shares = 1024 ++ * ^--- from vzctl ++ * weight in 1..65535 --> shares in 7..512000 ++ * shares should be >1 (see comment in sched_group_set_shares function) ++ *****************************************************************************/ ++ ++static struct fairsched_node *fairsched_find(unsigned int id) ++{ ++ struct fairsched_node *p; ++ list_for_each_entry(p, &fairsched_node_head, nodelist) { ++ if (p->id == id) ++ return p; ++ } ++ return NULL; ++} ++ ++/****************************************************************************** ++ * System calls ++ * ++ * All do_xxx functions are called under fairsched mutex and after ++ * capability check. ++ * ++ * The binary interfaces follow some other Fair Scheduler implementations ++ * (although some system call arguments are not needed for our implementation). ++ *****************************************************************************/ ++ ++static int do_fairsched_mknod(unsigned int parent, unsigned int weight, ++ unsigned int newid) ++{ ++ struct fairsched_node *node; ++ int retval; ++ ++ retval = -EINVAL; ++ if (weight < 1 || weight > FSCHWEIGHT_MAX) ++ goto out; ++ if (newid < 0 || newid > INT_MAX) ++ goto out; ++ ++ retval = -EBUSY; ++ if (fairsched_find(newid) != NULL) ++ goto out; ++ ++ retval = -ENOMEM; ++ node = kzalloc(sizeof(*node), GFP_KERNEL); ++ if (node == NULL) ++ goto out; ++ ++ node->tg = sched_create_group(); ++ if (IS_ERR(node->tg)) ++ goto out_free; ++ ++ node->id = newid; ++ node->weight = weight; ++ sched_group_set_shares(node->tg, FSCHWEIGHT_BASE / weight); ++#ifdef CONFIG_VE ++ node->owner_env = get_exec_env(); ++#endif ++ list_add(&node->nodelist, &fairsched_node_head); ++ fairsched_nr_nodes++; ++ ++ retval = newid; ++out: ++ return retval; ++ ++out_free: ++ kfree(node); ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_mknod(unsigned int parent, unsigned int weight, ++ unsigned int newid) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_mknod(parent, weight, newid); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_mknod); ++ ++static int do_fairsched_rmnod(unsigned int id) ++{ ++ struct fairsched_node *node; ++ int retval; ++ ++ retval = -EINVAL; ++ node = fairsched_find(id); ++ if (node == NULL) ++ goto out; ++ if (node == &fairsched_init_node) ++ goto out; ++ ++ retval = -EBUSY; ++ if (node->refcnt) ++ goto out; ++ ++ list_del(&node->nodelist); ++ fairsched_nr_nodes--; ++ ++ sched_destroy_group(node->tg); ++ kfree(node); ++ retval = 0; ++out: ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_rmnod(unsigned int id) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_rmnod(id); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_rmnod); ++ ++static int do_fairsched_chwt(unsigned int id, unsigned weight) ++{ ++ struct fairsched_node *node; ++ ++ if (id == 0) ++ return -EINVAL; ++ if (weight < 1 || weight > FSCHWEIGHT_MAX) ++ return -EINVAL; ++ ++ node = fairsched_find(id); ++ if (node == NULL) ++ return -ENOENT; ++ ++ node->weight = weight; ++ sched_group_set_shares(node->tg, FSCHWEIGHT_BASE / weight); ++ ++ return 0; ++} ++ ++asmlinkage int sys_fairsched_chwt(unsigned int id, unsigned weight) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_chwt(id, weight); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++ ++static int do_fairsched_vcpus(unsigned int id, unsigned int vcpus) ++{ ++ struct fairsched_node *node; ++ ++ if (id == 0) ++ return -EINVAL; ++ ++ node = fairsched_find(id); ++ if (node == NULL) ++ return -ENOENT; ++ ++ return 0; ++} ++ ++asmlinkage int sys_fairsched_vcpus(unsigned int id, unsigned int vcpus) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_vcpus(id, vcpus); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_vcpus); ++ ++static int do_fairsched_rate(unsigned int id, int op, unsigned rate) ++{ ++ struct fairsched_node *node; ++ int retval; ++ ++ if (id == 0) ++ return -EINVAL; ++ if (op == FAIRSCHED_SET_RATE && (rate < 1 || rate >= (1UL << 31))) ++ return -EINVAL; ++ ++ node = fairsched_find(id); ++ if (node == NULL) ++ return -ENOENT; ++ ++ retval = -EINVAL; ++ switch (op) { ++ case FAIRSCHED_SET_RATE: ++ node->rate = rate; ++ node->rate_limited = 1; ++ retval = rate; ++ break; ++ case FAIRSCHED_DROP_RATE: ++ node->rate = 0; ++ node->rate_limited = 0; ++ retval = 0; ++ break; ++ case FAIRSCHED_GET_RATE: ++ if (node->rate_limited) ++ retval = node->rate; ++ else ++ retval = -ENODATA; ++ break; ++ } ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_rate(unsigned int id, int op, unsigned rate) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_rate(id, op, rate); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++ ++static int do_fairsched_mvpr(pid_t pid, unsigned int nodeid) ++{ ++ struct task_struct *p; ++ struct fairsched_node *node; ++ int retval; ++ unsigned flags; ++ ++ retval = -ENOENT; ++ node = fairsched_find(nodeid); ++ if (node == NULL) ++ goto out; ++ ++ write_lock_irqsave(&tasklist_lock, flags); ++ retval = -ESRCH; ++ p = find_task_by_pid(pid); ++ if (p == NULL) ++ goto out_unlock; ++ ++ get_task_struct(p); ++ put_task_fairsched_node(p); ++ p->fsched_node = node; ++ get_task_fairsched_node(p); ++ write_unlock_irqrestore(&tasklist_lock, flags); ++ ++ smp_wmb(); ++ sched_move_task(p); ++ put_task_struct(p); ++ return 0; ++ ++out_unlock: ++ write_unlock_irqrestore(&tasklist_lock, flags); ++out: ++ return retval; ++} ++ ++asmlinkage int sys_fairsched_mvpr(pid_t pid, unsigned int nodeid) ++{ ++ int retval; ++ ++ if (!capable(CAP_SETVEID)) ++ return -EPERM; ++ ++ mutex_lock(&fairsched_mutex); ++ retval = do_fairsched_mvpr(pid, nodeid); ++ mutex_unlock(&fairsched_mutex); ++ ++ return retval; ++} ++EXPORT_SYMBOL(sys_fairsched_mvpr); ++ ++#ifdef CONFIG_PROC_FS ++ ++/*********************************************************************/ ++/* ++ * proc interface ++ */ ++/*********************************************************************/ ++ ++#include ++#include ++#include ++ ++struct fairsched_node_dump { ++ int id; ++ unsigned weight; ++ unsigned rate; ++ int rate_limited; ++ int nr_pcpu; ++ int nr_tasks, nr_runtasks; ++}; ++ ++struct fairsched_dump { ++ int len; ++ struct fairsched_node_dump nodes[0]; ++}; ++ ++static struct fairsched_dump *fairsched_do_dump(int compat) ++{ ++ int nr_nodes; ++ int len; ++ struct fairsched_dump *dump; ++ struct fairsched_node *node; ++ struct fairsched_node_dump *p; ++ ++start: ++ nr_nodes = (ve_is_super(get_exec_env()) ? fairsched_nr_nodes + 16 : 1); ++ len = sizeof(*dump) + nr_nodes * sizeof(dump->nodes[0]); ++ dump = ub_vmalloc(len); ++ if (dump == NULL) ++ goto out; ++ ++ mutex_lock(&fairsched_mutex); ++ if (ve_is_super(get_exec_env()) && nr_nodes < fairsched_nr_nodes) ++ goto repeat; ++ p = dump->nodes; ++ list_for_each_entry_reverse(node, &fairsched_node_head, nodelist) { ++ if ((char *)p - (char *)dump >= len) ++ break; ++ p->nr_tasks = 0; ++ p->nr_runtasks = 0; ++#ifdef CONFIG_VE ++ if (!ve_accessible(node->owner_env, get_exec_env())) ++ continue; ++ p->nr_tasks = atomic_read(&node->owner_env->pcounter); ++ p->nr_runtasks = nr_running_ve(node->owner_env); ++#endif ++ p->id = node->id; ++ p->weight = node->weight; ++ p->rate = node->rate; ++ p->rate_limited = node->rate_limited; ++ p->nr_pcpu = num_online_cpus(); ++ p++; ++ } ++ dump->len = p - dump->nodes; ++ mutex_unlock(&fairsched_mutex); ++ ++out: ++ return dump; ++ ++repeat: ++ mutex_unlock(&fairsched_mutex); ++ vfree(dump); ++ goto start; ++} ++ ++#define FAIRSCHED_PROC_HEADLINES 2 ++ ++#define FAIRSHED_DEBUG " debug" ++ ++#ifdef CONFIG_VE ++/* ++ * File format is dictated by compatibility reasons. ++ */ ++static int fairsched_seq_show(struct seq_file *m, void *v) ++{ ++ struct fairsched_dump *dump; ++ struct fairsched_node_dump *p; ++ unsigned vid, nid, pid, r; ++ ++ dump = m->private; ++ p = (struct fairsched_node_dump *)((unsigned long)v & ~3UL); ++ if (p - dump->nodes < FAIRSCHED_PROC_HEADLINES) { ++ if (p == dump->nodes) ++ seq_printf(m, "Version: 2.6 debug\n"); ++ else if (p == dump->nodes + 1) ++ seq_printf(m, ++ " veid " ++ " id " ++ " parent " ++ "weight " ++ " rate " ++ "tasks " ++ " run " ++ "cpus" ++ " " ++ "flg " ++ "ready " ++ " start_tag " ++ " value " ++ " delay" ++ "\n"); ++ } else { ++ p -= FAIRSCHED_PROC_HEADLINES; ++ vid = nid = pid = 0; ++ r = (unsigned long)v & 3; ++ if (p == dump->nodes) { ++ if (r == 2) ++ nid = p->id; ++ } else { ++ if (!r) ++ nid = p->id; ++ else if (r == 1) ++ vid = pid = p->id; ++ else ++ vid = p->id, nid = 1; ++ } ++ seq_printf(m, ++ "%10u " ++ "%10u %10u %6u %5u %5u %5u %4u" ++ " " ++ " %c%c %5u %20Lu %20Lu %20Lu" ++ "\n", ++ vid, ++ nid, ++ pid, ++ p->weight, ++ p->rate, ++ p->nr_tasks, ++ p->nr_runtasks, ++ p->nr_pcpu, ++ p->rate_limited ? 'L' : '.', ++ '.', ++ p->nr_runtasks, ++ 0ll, 0ll, 0ll); ++ } ++ ++ return 0; ++} ++ ++static void *fairsched_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ struct fairsched_dump *dump; ++ unsigned long l; ++ ++ dump = m->private; ++ if (*pos >= dump->len * 3 - 1 + FAIRSCHED_PROC_HEADLINES) ++ return NULL; ++ if (*pos < FAIRSCHED_PROC_HEADLINES) ++ return dump->nodes + *pos; ++ /* guess why... */ ++ l = (unsigned long)(dump->nodes + ++ ((unsigned long)*pos + FAIRSCHED_PROC_HEADLINES * 2 + 1) / 3); ++ l |= ((unsigned long)*pos + FAIRSCHED_PROC_HEADLINES * 2 + 1) % 3; ++ return (void *)l; ++} ++static void *fairsched_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ ++*pos; ++ return fairsched_seq_start(m, pos); ++} ++#endif /* CONFIG_VE */ ++ ++static int fairsched2_seq_show(struct seq_file *m, void *v) ++{ ++ struct fairsched_dump *dump; ++ struct fairsched_node_dump *p; ++ ++ dump = m->private; ++ p = v; ++ if (p - dump->nodes < FAIRSCHED_PROC_HEADLINES) { ++ if (p == dump->nodes) ++ seq_printf(m, "Version: 2.7" FAIRSHED_DEBUG "\n"); ++ else if (p == dump->nodes + 1) ++ seq_printf(m, ++ " id " ++ "weight " ++ " rate " ++ " run " ++ "cpus" ++#ifdef FAIRSHED_DEBUG ++ " " ++ "flg " ++ "ready " ++ " start_tag " ++ " value " ++ " delay" ++#endif ++ "\n"); ++ } else { ++ p -= FAIRSCHED_PROC_HEADLINES; ++ seq_printf(m, ++ "%10u %6u %5u %5u %4u" ++#ifdef FAIRSHED_DEBUG ++ " " ++ " %c%c %5u %20Lu %20Lu %20Lu" ++#endif ++ "\n", ++ p->id, ++ p->weight, ++ p->rate, ++ p->nr_runtasks, ++ p->nr_pcpu ++#ifdef FAIRSHED_DEBUG ++ , ++ p->rate_limited ? 'L' : '.', ++ '.', ++ p->nr_runtasks, ++ 0ll, 0ll, 0ll ++#endif ++ ); ++ } ++ ++ return 0; ++} ++ ++static void *fairsched2_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ struct fairsched_dump *dump; ++ ++ dump = m->private; ++ if (*pos >= dump->len + FAIRSCHED_PROC_HEADLINES) ++ return NULL; ++ return dump->nodes + *pos; ++} ++static void *fairsched2_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ ++*pos; ++ return fairsched2_seq_start(m, pos); ++} ++static void fairsched2_seq_stop(struct seq_file *m, void *v) ++{ ++} ++ ++#ifdef CONFIG_VE ++static struct seq_operations fairsched_seq_op = { ++ .start = fairsched_seq_start, ++ .next = fairsched_seq_next, ++ .stop = fairsched2_seq_stop, ++ .show = fairsched_seq_show ++}; ++#endif ++static struct seq_operations fairsched2_seq_op = { ++ .start = fairsched2_seq_start, ++ .next = fairsched2_seq_next, ++ .stop = fairsched2_seq_stop, ++ .show = fairsched2_seq_show ++}; ++static int fairsched_seq_open(struct inode *inode, struct file *file) ++{ ++ int ret; ++ struct seq_file *m; ++ int compat; ++ ++#ifdef CONFIG_VE ++ compat = (file->f_dentry->d_name.len == sizeof("fairsched") - 1); ++ ret = seq_open(file, compat ? &fairsched_seq_op : &fairsched2_seq_op); ++#else ++ compat = 0; ++ ret = seq_open(file, &fairsched2_seq_op); ++#endif ++ if (ret) ++ return ret; ++ m = file->private_data; ++ m->private = fairsched_do_dump(compat); ++ if (m->private == NULL) { ++ seq_release(inode, file); ++ ret = -ENOMEM; ++ } ++ return ret; ++} ++static int fairsched_seq_release(struct inode *inode, struct file *file) ++{ ++ struct seq_file *m; ++ struct fairsched_dump *dump; ++ ++ m = file->private_data; ++ dump = m->private; ++ m->private = NULL; ++ vfree(dump); ++ seq_release(inode, file); ++ return 0; ++} ++static struct file_operations proc_fairsched_operations = { ++ .open = fairsched_seq_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = fairsched_seq_release ++}; ++ ++void __init fairsched_init_late(void) ++{ ++ struct proc_dir_entry *entry; ++#ifdef CONFIG_VE ++ entry = create_proc_glob_entry("fairsched", S_IRUGO, NULL); ++ if (entry) ++ entry->proc_fops = &proc_fairsched_operations; ++#endif ++ entry = create_proc_glob_entry("fairsched2", S_IRUGO, NULL); ++ if (entry) ++ entry->proc_fops = &proc_fairsched_operations; ++} ++ ++#else ++ ++void __init fairsched_init_late(void) { } ++ ++#endif /* CONFIG_PROC_FS */ +Index: kernel/kernel/vzfairsched.c +=================================================================== +--- kernel.orig/kernel/vzfairsched.c 2008-11-24 15:57:27.000000000 +0100 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 +@@ -1,648 +0,0 @@ +-/* +- * Fair Scheduler +- * +- * Copyright (C) 2000-2008 SWsoft +- * All rights reserved. +- * +- * Licensing governed by "linux/COPYING.SWsoft" file. +- * +- */ +- +-#include +-#include +-#include +-#include +- +-struct fairsched_node fairsched_init_node = { +- .id = FAIRSCHED_INIT_NODE_ID, +- .tg = &init_task_group, +-#ifdef CONFIG_VE +- .owner_env = get_ve0(), +-#endif +- .weight = 1, +-}; +- +-static DEFINE_MUTEX(fairsched_mutex); +- +-/* list protected with fairsched_mutex */ +-static LIST_HEAD(fairsched_node_head); +-static int fairsched_nr_nodes; +- +-void __init fairsched_init_early(void) +-{ +- list_add(&fairsched_init_node.nodelist, &fairsched_node_head); +- fairsched_nr_nodes++; +-} +- +-#define FSCHWEIGHT_BASE 512000 +- +-/****************************************************************************** +- * cfs group shares = FSCHWEIGHT_BASE / fairsched weight +- * +- * vzctl cpuunits default 1000 +- * cfs shares default value is 1024 (see init_task_group_load in sched.c) +- * cpuunits = 1000 --> weight = 500000 / cpuunits = 500 --> shares = 1024 +- * ^--- from vzctl +- * weight in 1..65535 --> shares in 7..512000 +- * shares should be >1 (see comment in sched_group_set_shares function) +- *****************************************************************************/ +- +-static struct fairsched_node *fairsched_find(unsigned int id) +-{ +- struct fairsched_node *p; +- list_for_each_entry(p, &fairsched_node_head, nodelist) { +- if (p->id == id) +- return p; +- } +- return NULL; +-} +- +-/****************************************************************************** +- * System calls +- * +- * All do_xxx functions are called under fairsched mutex and after +- * capability check. +- * +- * The binary interfaces follow some other Fair Scheduler implementations +- * (although some system call arguments are not needed for our implementation). +- *****************************************************************************/ +- +-static int do_fairsched_mknod(unsigned int parent, unsigned int weight, +- unsigned int newid) +-{ +- struct fairsched_node *node; +- int retval; +- +- retval = -EINVAL; +- if (weight < 1 || weight > FSCHWEIGHT_MAX) +- goto out; +- if (newid < 0 || newid > INT_MAX) +- goto out; +- +- retval = -EBUSY; +- if (fairsched_find(newid) != NULL) +- goto out; +- +- retval = -ENOMEM; +- node = kzalloc(sizeof(*node), GFP_KERNEL); +- if (node == NULL) +- goto out; +- +- node->tg = sched_create_group(); +- if (IS_ERR(node->tg)) +- goto out_free; +- +- node->id = newid; +- node->weight = weight; +- sched_group_set_shares(node->tg, FSCHWEIGHT_BASE / weight); +-#ifdef CONFIG_VE +- node->owner_env = get_exec_env(); +-#endif +- list_add(&node->nodelist, &fairsched_node_head); +- fairsched_nr_nodes++; +- +- retval = newid; +-out: +- return retval; +- +-out_free: +- kfree(node); +- return retval; +-} +- +-asmlinkage int sys_fairsched_mknod(unsigned int parent, unsigned int weight, +- unsigned int newid) +-{ +- int retval; +- +- if (!capable(CAP_SETVEID)) +- return -EPERM; +- +- mutex_lock(&fairsched_mutex); +- retval = do_fairsched_mknod(parent, weight, newid); +- mutex_unlock(&fairsched_mutex); +- +- return retval; +-} +-EXPORT_SYMBOL(sys_fairsched_mknod); +- +-static int do_fairsched_rmnod(unsigned int id) +-{ +- struct fairsched_node *node; +- int retval; +- +- retval = -EINVAL; +- node = fairsched_find(id); +- if (node == NULL) +- goto out; +- if (node == &fairsched_init_node) +- goto out; +- +- retval = -EBUSY; +- if (node->refcnt) +- goto out; +- +- list_del(&node->nodelist); +- fairsched_nr_nodes--; +- +- sched_destroy_group(node->tg); +- kfree(node); +- retval = 0; +-out: +- return retval; +-} +- +-asmlinkage int sys_fairsched_rmnod(unsigned int id) +-{ +- int retval; +- +- if (!capable(CAP_SETVEID)) +- return -EPERM; +- +- mutex_lock(&fairsched_mutex); +- retval = do_fairsched_rmnod(id); +- mutex_unlock(&fairsched_mutex); +- +- return retval; +-} +-EXPORT_SYMBOL(sys_fairsched_rmnod); +- +-static int do_fairsched_chwt(unsigned int id, unsigned weight) +-{ +- struct fairsched_node *node; +- +- if (id == 0) +- return -EINVAL; +- if (weight < 1 || weight > FSCHWEIGHT_MAX) +- return -EINVAL; +- +- node = fairsched_find(id); +- if (node == NULL) +- return -ENOENT; +- +- node->weight = weight; +- sched_group_set_shares(node->tg, FSCHWEIGHT_BASE / weight); +- +- return 0; +-} +- +-asmlinkage int sys_fairsched_chwt(unsigned int id, unsigned weight) +-{ +- int retval; +- +- if (!capable(CAP_SETVEID)) +- return -EPERM; +- +- mutex_lock(&fairsched_mutex); +- retval = do_fairsched_chwt(id, weight); +- mutex_unlock(&fairsched_mutex); +- +- return retval; +-} +- +-static int do_fairsched_vcpus(unsigned int id, unsigned int vcpus) +-{ +- struct fairsched_node *node; +- +- if (id == 0) +- return -EINVAL; +- +- node = fairsched_find(id); +- if (node == NULL) +- return -ENOENT; +- +- return 0; +-} +- +-asmlinkage int sys_fairsched_vcpus(unsigned int id, unsigned int vcpus) +-{ +- int retval; +- +- if (!capable(CAP_SETVEID)) +- return -EPERM; +- +- mutex_lock(&fairsched_mutex); +- retval = do_fairsched_vcpus(id, vcpus); +- mutex_unlock(&fairsched_mutex); +- +- return retval; +-} +-EXPORT_SYMBOL(sys_fairsched_vcpus); +- +-static int do_fairsched_rate(unsigned int id, int op, unsigned rate) +-{ +- struct fairsched_node *node; +- int retval; +- +- if (id == 0) +- return -EINVAL; +- if (op == FAIRSCHED_SET_RATE && (rate < 1 || rate >= (1UL << 31))) +- return -EINVAL; +- +- node = fairsched_find(id); +- if (node == NULL) +- return -ENOENT; +- +- retval = -EINVAL; +- switch (op) { +- case FAIRSCHED_SET_RATE: +- node->rate = rate; +- node->rate_limited = 1; +- retval = rate; +- break; +- case FAIRSCHED_DROP_RATE: +- node->rate = 0; +- node->rate_limited = 0; +- retval = 0; +- break; +- case FAIRSCHED_GET_RATE: +- if (node->rate_limited) +- retval = node->rate; +- else +- retval = -ENODATA; +- break; +- } +- return retval; +-} +- +-asmlinkage int sys_fairsched_rate(unsigned int id, int op, unsigned rate) +-{ +- int retval; +- +- if (!capable(CAP_SETVEID)) +- return -EPERM; +- +- mutex_lock(&fairsched_mutex); +- retval = do_fairsched_rate(id, op, rate); +- mutex_unlock(&fairsched_mutex); +- +- return retval; +-} +- +-static int do_fairsched_mvpr(pid_t pid, unsigned int nodeid) +-{ +- struct task_struct *p; +- struct fairsched_node *node; +- int retval; +- unsigned flags; +- +- retval = -ENOENT; +- node = fairsched_find(nodeid); +- if (node == NULL) +- goto out; +- +- write_lock_irqsave(&tasklist_lock, flags); +- retval = -ESRCH; +- p = find_task_by_pid(pid); +- if (p == NULL) +- goto out_unlock; +- +- get_task_struct(p); +- put_task_fairsched_node(p); +- p->fsched_node = node; +- get_task_fairsched_node(p); +- write_unlock_irqrestore(&tasklist_lock, flags); +- +- smp_wmb(); +- sched_move_task(p); +- put_task_struct(p); +- return 0; +- +-out_unlock: +- write_unlock_irqrestore(&tasklist_lock, flags); +-out: +- return retval; +-} +- +-asmlinkage int sys_fairsched_mvpr(pid_t pid, unsigned int nodeid) +-{ +- int retval; +- +- if (!capable(CAP_SETVEID)) +- return -EPERM; +- +- mutex_lock(&fairsched_mutex); +- retval = do_fairsched_mvpr(pid, nodeid); +- mutex_unlock(&fairsched_mutex); +- +- return retval; +-} +-EXPORT_SYMBOL(sys_fairsched_mvpr); +- +-#ifdef CONFIG_PROC_FS +- +-/*********************************************************************/ +-/* +- * proc interface +- */ +-/*********************************************************************/ +- +-#include +-#include +-#include +- +-struct fairsched_node_dump { +- int id; +- unsigned weight; +- unsigned rate; +- int rate_limited; +- int nr_pcpu; +- int nr_tasks, nr_runtasks; +-}; +- +-struct fairsched_dump { +- int len; +- struct fairsched_node_dump nodes[0]; +-}; +- +-static struct fairsched_dump *fairsched_do_dump(int compat) +-{ +- int nr_nodes; +- int len; +- struct fairsched_dump *dump; +- struct fairsched_node *node; +- struct fairsched_node_dump *p; +- +-start: +- nr_nodes = (ve_is_super(get_exec_env()) ? fairsched_nr_nodes + 16 : 1); +- len = sizeof(*dump) + nr_nodes * sizeof(dump->nodes[0]); +- dump = ub_vmalloc(len); +- if (dump == NULL) +- goto out; +- +- mutex_lock(&fairsched_mutex); +- if (ve_is_super(get_exec_env()) && nr_nodes < fairsched_nr_nodes) +- goto repeat; +- p = dump->nodes; +- list_for_each_entry_reverse(node, &fairsched_node_head, nodelist) { +- if ((char *)p - (char *)dump >= len) +- break; +- p->nr_tasks = 0; +- p->nr_runtasks = 0; +-#ifdef CONFIG_VE +- if (!ve_accessible(node->owner_env, get_exec_env())) +- continue; +- p->nr_tasks = atomic_read(&node->owner_env->pcounter); +- p->nr_runtasks = nr_running_ve(node->owner_env); +-#endif +- p->id = node->id; +- p->weight = node->weight; +- p->rate = node->rate; +- p->rate_limited = node->rate_limited; +- p->nr_pcpu = num_online_cpus(); +- p++; +- } +- dump->len = p - dump->nodes; +- mutex_unlock(&fairsched_mutex); +- +-out: +- return dump; +- +-repeat: +- mutex_unlock(&fairsched_mutex); +- vfree(dump); +- goto start; +-} +- +-#define FAIRSCHED_PROC_HEADLINES 2 +- +-#define FAIRSHED_DEBUG " debug" +- +-#ifdef CONFIG_VE +-/* +- * File format is dictated by compatibility reasons. +- */ +-static int fairsched_seq_show(struct seq_file *m, void *v) +-{ +- struct fairsched_dump *dump; +- struct fairsched_node_dump *p; +- unsigned vid, nid, pid, r; +- +- dump = m->private; +- p = (struct fairsched_node_dump *)((unsigned long)v & ~3UL); +- if (p - dump->nodes < FAIRSCHED_PROC_HEADLINES) { +- if (p == dump->nodes) +- seq_printf(m, "Version: 2.6 debug\n"); +- else if (p == dump->nodes + 1) +- seq_printf(m, +- " veid " +- " id " +- " parent " +- "weight " +- " rate " +- "tasks " +- " run " +- "cpus" +- " " +- "flg " +- "ready " +- " start_tag " +- " value " +- " delay" +- "\n"); +- } else { +- p -= FAIRSCHED_PROC_HEADLINES; +- vid = nid = pid = 0; +- r = (unsigned long)v & 3; +- if (p == dump->nodes) { +- if (r == 2) +- nid = p->id; +- } else { +- if (!r) +- nid = p->id; +- else if (r == 1) +- vid = pid = p->id; +- else +- vid = p->id, nid = 1; +- } +- seq_printf(m, +- "%10u " +- "%10u %10u %6u %5u %5u %5u %4u" +- " " +- " %c%c %5u %20Lu %20Lu %20Lu" +- "\n", +- vid, +- nid, +- pid, +- p->weight, +- p->rate, +- p->nr_tasks, +- p->nr_runtasks, +- p->nr_pcpu, +- p->rate_limited ? 'L' : '.', +- '.', +- p->nr_runtasks, +- 0ll, 0ll, 0ll); +- } +- +- return 0; +-} +- +-static void *fairsched_seq_start(struct seq_file *m, loff_t *pos) +-{ +- struct fairsched_dump *dump; +- unsigned long l; +- +- dump = m->private; +- if (*pos >= dump->len * 3 - 1 + FAIRSCHED_PROC_HEADLINES) +- return NULL; +- if (*pos < FAIRSCHED_PROC_HEADLINES) +- return dump->nodes + *pos; +- /* guess why... */ +- l = (unsigned long)(dump->nodes + +- ((unsigned long)*pos + FAIRSCHED_PROC_HEADLINES * 2 + 1) / 3); +- l |= ((unsigned long)*pos + FAIRSCHED_PROC_HEADLINES * 2 + 1) % 3; +- return (void *)l; +-} +-static void *fairsched_seq_next(struct seq_file *m, void *v, loff_t *pos) +-{ +- ++*pos; +- return fairsched_seq_start(m, pos); +-} +-#endif /* CONFIG_VE */ +- +-static int fairsched2_seq_show(struct seq_file *m, void *v) +-{ +- struct fairsched_dump *dump; +- struct fairsched_node_dump *p; +- +- dump = m->private; +- p = v; +- if (p - dump->nodes < FAIRSCHED_PROC_HEADLINES) { +- if (p == dump->nodes) +- seq_printf(m, "Version: 2.7" FAIRSHED_DEBUG "\n"); +- else if (p == dump->nodes + 1) +- seq_printf(m, +- " id " +- "weight " +- " rate " +- " run " +- "cpus" +-#ifdef FAIRSHED_DEBUG +- " " +- "flg " +- "ready " +- " start_tag " +- " value " +- " delay" +-#endif +- "\n"); +- } else { +- p -= FAIRSCHED_PROC_HEADLINES; +- seq_printf(m, +- "%10u %6u %5u %5u %4u" +-#ifdef FAIRSHED_DEBUG +- " " +- " %c%c %5u %20Lu %20Lu %20Lu" +-#endif +- "\n", +- p->id, +- p->weight, +- p->rate, +- p->nr_runtasks, +- p->nr_pcpu +-#ifdef FAIRSHED_DEBUG +- , +- p->rate_limited ? 'L' : '.', +- '.', +- p->nr_runtasks, +- 0ll, 0ll, 0ll +-#endif +- ); +- } +- +- return 0; +-} +- +-static void *fairsched2_seq_start(struct seq_file *m, loff_t *pos) +-{ +- struct fairsched_dump *dump; +- +- dump = m->private; +- if (*pos >= dump->len + FAIRSCHED_PROC_HEADLINES) +- return NULL; +- return dump->nodes + *pos; +-} +-static void *fairsched2_seq_next(struct seq_file *m, void *v, loff_t *pos) +-{ +- ++*pos; +- return fairsched2_seq_start(m, pos); +-} +-static void fairsched2_seq_stop(struct seq_file *m, void *v) +-{ +-} +- +-#ifdef CONFIG_VE +-static struct seq_operations fairsched_seq_op = { +- .start = fairsched_seq_start, +- .next = fairsched_seq_next, +- .stop = fairsched2_seq_stop, +- .show = fairsched_seq_show +-}; +-#endif +-static struct seq_operations fairsched2_seq_op = { +- .start = fairsched2_seq_start, +- .next = fairsched2_seq_next, +- .stop = fairsched2_seq_stop, +- .show = fairsched2_seq_show +-}; +-static int fairsched_seq_open(struct inode *inode, struct file *file) +-{ +- int ret; +- struct seq_file *m; +- int compat; +- +-#ifdef CONFIG_VE +- compat = (file->f_dentry->d_name.len == sizeof("fairsched") - 1); +- ret = seq_open(file, compat ? &fairsched_seq_op : &fairsched2_seq_op); +-#else +- compat = 0; +- ret = seq_open(file, &fairsched2_seq_op); +-#endif +- if (ret) +- return ret; +- m = file->private_data; +- m->private = fairsched_do_dump(compat); +- if (m->private == NULL) { +- seq_release(inode, file); +- ret = -ENOMEM; +- } +- return ret; +-} +-static int fairsched_seq_release(struct inode *inode, struct file *file) +-{ +- struct seq_file *m; +- struct fairsched_dump *dump; +- +- m = file->private_data; +- dump = m->private; +- m->private = NULL; +- vfree(dump); +- seq_release(inode, file); +- return 0; +-} +-static struct file_operations proc_fairsched_operations = { +- .open = fairsched_seq_open, +- .read = seq_read, +- .llseek = seq_lseek, +- .release = fairsched_seq_release +-}; +- +-void __init fairsched_init_late(void) +-{ +- struct proc_dir_entry *entry; +-#ifdef CONFIG_VE +- entry = create_proc_glob_entry("fairsched", S_IRUGO, NULL); +- if (entry) +- entry->proc_fops = &proc_fairsched_operations; +-#endif +- entry = create_proc_glob_entry("fairsched2", S_IRUGO, NULL); +- if (entry) +- entry->proc_fops = &proc_fairsched_operations; +-} +- +-#else +- +-void __init fairsched_init_late(void) { } +- +-#endif /* CONFIG_PROC_FS */ --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0097-VE-ipv6-ifdown.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0097-VE-ipv6-ifdown.patch @@ -0,0 +1,78 @@ +From 5fda95f2ce999c33d1e552b9a258874b5e2a61f6 Mon Sep 17 00:00:00 2001 +From: Denis Lunev +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 097/103] VE ipv6 ifdown + +Fix refcounting for anycast dst entries. + +The problem occures when we stop IPv6 device without dropping all addresses +on it. For such a device addrconf_ifdown marks all entries as obsolete and +ip6_del_rt called from __ipv6_dev_ac_dec return ENOENT. +The referrence is not dropped. + +The fix is simple. DST entry should not keep referrence when stored in the +FIB6 tree. + +Bug #98611 +--- + net/ipv6/addrconf.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c +index 85ec6c6..c0ef49f 100644 +--- a/net/ipv6/addrconf.c ++++ b/net/ipv6/addrconf.c +@@ -2448,7 +2448,7 @@ int addrconf_ifdown(struct net_device *dev, int how) + + ASSERT_RTNL(); + +- if (dev == init_net.loopback_dev && how == 1) ++ if ((dev->flags & IFF_LOOPBACK) && how == 1) + how = 0; + + rt6_ifdown(dev); +@@ -2461,7 +2461,7 @@ int addrconf_ifdown(struct net_device *dev, int how) + /* Step 1: remove reference to ipv6 device from parent device. + Do not dev_put! + */ +- if (how == 1) { ++ if (how) { + idev->dead = 1; + + /* protected by rtnl_lock */ +@@ -2493,12 +2493,12 @@ int addrconf_ifdown(struct net_device *dev, int how) + write_lock_bh(&idev->lock); + + /* Step 3: clear flags for stateless addrconf */ +- if (how != 1) ++ if (!how) + idev->if_flags &= ~(IF_RS_SENT|IF_RA_RCVD|IF_READY); + + /* Step 4: clear address list */ + #ifdef CONFIG_IPV6_PRIVACY +- if (how == 1 && del_timer(&idev->regen_timer)) ++ if (how && del_timer(&idev->regen_timer)) + in6_dev_put(idev); + + /* clear tempaddr list */ +@@ -2535,7 +2535,7 @@ int addrconf_ifdown(struct net_device *dev, int how) + + /* Step 5: Discard multicast list */ + +- if (how == 1) ++ if (how) + ipv6_mc_destroy_dev(idev); + else + ipv6_mc_down(idev); +@@ -2544,7 +2544,7 @@ int addrconf_ifdown(struct net_device *dev, int how) + + /* Shot the device (if unregistered) */ + +- if (how == 1) { ++ if (how) { + #ifdef CONFIG_SYSCTL + addrconf_sysctl_unregister(&idev->cnf); + neigh_sysctl_unregister(idev->nd_parms); +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0105-CPT-restore-conntrack-mark.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0105-CPT-restore-conntrack-mark.patch @@ -0,0 +1,30 @@ +From ebc6433b39e27052d66c0498b355e2bfee302ba9 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Fri, 18 Jul 2008 15:25:38 +0400 +Subject: [PATCH 105/131] CPT restore conntrack mark + +Restore mark value in conntracks as it is needed for connmark module. + +Bug #114207 +--- + kernel/cpt/rst_conntrack.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/kernel/cpt/rst_conntrack.c b/kernel/cpt/rst_conntrack.c +index 4c31f32..1f48945 100644 +--- a/kernel/cpt/rst_conntrack.c ++++ b/kernel/cpt/rst_conntrack.c +@@ -188,6 +188,10 @@ static int undump_one_ct(struct cpt_ip_conntrack_image *ci, loff_t pos, + memcpy(&conntrack->proto, ci->cpt_proto_data, sizeof(conntrack->proto)); + memcpy(&conntrack->help, ci->cpt_help_data, sizeof(conntrack->help)); + ++#if defined(CONFIG_IP_NF_CONNTRACK_MARK) ++ conntrack->mark = ci->cpt_mark; ++#endif ++ + #ifdef CONFIG_IP_NF_NAT_NEEDED + #if defined(CONFIG_IP_NF_TARGET_MASQUERADE) || \ + defined(CONFIG_IP_NF_TARGET_MASQUERADE_MODULE) +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0017-Remove-kmem_cache-walking-logic.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0017-Remove-kmem_cache-walking-logic.patch @@ -0,0 +1,418 @@ +From b7cb384df2e4564afb89fc9213fa0c0af27c26b9 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Wed, 12 Mar 2008 13:46:09 +0300 +Subject: [PATCH 17/48] Remove kmem_cache walking logic + +It can't work in case of SLUB because full pages aren't in any slab lists. +--- + include/bc/dcache.h | 2 - + include/linux/slab.h | 1 - + kernel/bc/dcache.c | 163 -------------------------------------------------- + mm/slab.c | 112 ---------------------------------- + mm/slub.c | 55 ----------------- + 5 files changed, 0 insertions(+), 333 deletions(-) + +Index: kernel/include/bc/dcache.h +=================================================================== +--- kernel.orig/include/bc/dcache.h 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/include/bc/dcache.h 2008-11-24 15:57:05.000000000 +0100 +@@ -40,10 +40,8 @@ + #define INUSE_INIT 0 + + extern int ub_dentry_on; +-extern void ub_dentry_checkup(void); + #else + #define ub_dget_testone(d) (0) + #define ub_dput_testzero(d) (0) +-#define ub_dentry_checkup() do { } while (0) + #endif + #endif +Index: kernel/include/linux/slab.h +=================================================================== +--- kernel.orig/include/linux/slab.h 2008-11-24 15:56:45.000000000 +0100 ++++ kernel/include/linux/slab.h 2008-11-24 15:57:05.000000000 +0100 +@@ -83,7 +83,6 @@ + extern void show_slab_info(void); + int kmem_cache_objuse(struct kmem_cache *cachep); + int kmem_obj_objuse(void *obj); +-int kmem_cache_walk_objects(struct kmem_cache *cachep, int (*fun)(void *obj)); + unsigned long ub_cache_growth(struct kmem_cache *cachep); + + #ifdef CONFIG_BEANCOUNTERS +Index: kernel/kernel/bc/dcache.c +=================================================================== +--- kernel.orig/kernel/bc/dcache.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/bc/dcache.c 2008-11-24 15:57:05.000000000 +0100 +@@ -322,7 +322,6 @@ + int ub_dentry_alloc_barrier; + EXPORT_SYMBOL(ub_dentry_on); + +-static DEFINE_PER_CPU(int, checkcnt); + static unsigned long checklowat = 0; + static unsigned long checkhiwat = ULONG_MAX; + +@@ -333,168 +332,6 @@ + /* 1024th of lowmem size */ + static unsigned int sysctl_ub_watermark[2] = {0, 100}; + +- +-static int ub_dentry_acctinit(struct dentry *dentry) +-{ +- struct dentry_beancounter *d_bc; +- +- d_bc = &dentry->dentry_bc; +- d_bc->d_ub = NULL; +- atomic_set(&d_bc->d_inuse, -1); +-#if 0 +- if (dname_external(dentry)) { +- struct page *page; +- page = virt_to_page(dentry->d_name.name); +- if (!PageSlab(page) || page_get_cache(page) == NULL) { +- printk("Problem with name, dentry %p, parent %p, " +- "name %p len %d\n", +- dentry, dentry->d_parent, +- dentry->d_name.name, +- dentry->d_name.len); +- printk(" de %p name %.10s\n", +- dentry, dentry->d_name.name); +- d_bc->d_ubsize = 0; +- return 0; +- } +- } +-#endif +- d_bc->d_ubsize = d_charge_size(dentry); +- return 0; +-} +- +-static int ub_dentry_acctcount(struct dentry *dentry) +-{ +- struct dentry_beancounter *d_bc; +- struct dentry *child; +- int count; +- +- count = 0; +- list_for_each_entry(child, &dentry->d_subdirs, d_u.d_child) +- count++; +- +- d_bc = &dentry->dentry_bc; +- count = atomic_read(&dentry->d_count) - count; +- if (count) { +- __ub_dentry_charge_nofail(dentry); +- if (count > 1) +- atomic_add(count - 1, &d_bc->d_inuse); +- } +- +- return 0; +-} +- +-static int ub_dentry_acctdrop(struct dentry *dentry) +-{ +- struct dentry_beancounter *d_bc; +- +- d_bc = &dentry->dentry_bc; +- if (atomic_read(&d_bc->d_inuse) < 0) +- return 0; +- atomic_set(&d_bc->d_inuse, -1); +- uncharge_dcache(d_bc->d_ub, d_bc->d_ubsize); +- put_beancounter(d_bc->d_ub); +- return 0; +-} +- +-static inline int ub_dentry_walk(int (*fun)(struct dentry *d)) +-{ +- return kmem_cache_walk_objects(dentry_cache, +- (int (*)(void *))fun); +-} +- +-static int ub_dentry_accton(void *data) +-{ +- struct user_beancounter *ub; +- int err; +- +- ub = get_exec_ub(); +- set_exec_ub(get_ub0()); +- err = ub_dentry_walk(&ub_dentry_acctinit); +- if (!err) +- err = ub_dentry_walk(&ub_dentry_acctcount); +- set_exec_ub(ub); +- if (err == 0) +- ub_dentry_on = 1; +- return err; +-} +- +-static int ub_dentry_acctoff(void *data) +-{ +- int ret; +- ret = ub_dentry_walk(&ub_dentry_acctdrop); +- if (ret == 0) +- ub_dentry_on = 0; +- return ret; +-} +- +-/* +- * Main function turning dcache accounting on and off. +- * Called with preemption disabled (for caller's convenience). +- */ +-static void ub_dentry_switch(int onoff, unsigned long pages, int (*fun)(void *)) +-{ +- static char *s[] = { "off", "on" }; +- unsigned long start_jiffies; +- int err, tm; +- +- start_jiffies = jiffies; +- preempt_enable(); +- ub_dentry_alloc_barrier = 1; +- /* ensure ub_dentry_alloc_barrier is visible on all CPUs */ +- mb(); +- synchronize_rcu(); +- down_write(&ub_dentry_alloc_sem); +- if (ub_dentry_on == onoff) +- goto done; +- +- printk("UBC: preparing to turn dcache accounting %s, " +- "size %lu pages, watermarks %lu %lu\n", +- s[onoff], pages, checklowat, checkhiwat); +- err = stop_machine_run(fun, NULL, NR_CPUS); +- if (err) { +- printk(KERN_ERR "UBC: ERROR: dcache accounting switch %d\n", +- err); +- preempt_disable(); +- checklowat = 0; +- checkhiwat = ULONG_MAX; +- sysctl_ub_dentry_chk = INT_MAX; +- preempt_enable(); +- } else { +- tm = jiffies_to_msecs(jiffies - start_jiffies); +- printk("UBC: turning dcache accounting %s succeeded, " +- "usage %lu, time %u.%03u\n", +- s[onoff], +- get_ub0()->ub_parms[UB_DCACHESIZE].held, +- tm / 1000, tm % 1000); +- } +- +-done: +- ub_dentry_alloc_barrier = 0; +- up_write(&ub_dentry_alloc_sem); +- preempt_disable(); +-} +- +-void ub_dentry_checkup(void) +-{ +- int *p; +- unsigned long pages; +- +- preempt_disable(); +- p = &__get_cpu_var(checkcnt); +- if (++*p > sysctl_ub_dentry_chk) { +- *p = 0; +- pages = ub_cache_growth(dentry_cache); +- if (ub_dentry_on) { +- if (pages < checklowat) +- ub_dentry_switch(0, pages, &ub_dentry_acctoff); +- } else { +- if (pages >= checkhiwat) +- ub_dentry_switch(1, pages, &ub_dentry_accton); +- } +- } +- preempt_enable(); +-} +- + static void ub_dentry_set_limits(unsigned long pages, unsigned long cap) + { + down_write(&ub_dentry_alloc_sem); +Index: kernel/mm/slab.c +=================================================================== +--- kernel.orig/mm/slab.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/mm/slab.c 2008-11-24 15:57:05.000000000 +0100 +@@ -755,105 +755,6 @@ + return virt_to_cache(obj)->objuse; + } + +-static void kmem_cache_free_block(struct kmem_cache *cachep, +- struct kmem_list3 *l3, void **objpp, +- int nr_objects, int node); +- +-static int kmem_cache_walk_node(struct kmem_cache *cachep, int node, +- int (*fun)(void *)) +-{ +- struct array_cache *ac; +- struct slab *slabp; +- char *objp; +- int cpu, i, sz, r, n; +- struct kmem_list3 *l3; +- unsigned long map[PAGE_SIZE / sizeof(struct dentry) +- / BITS_PER_LONG + 1]; +- +- if (cachep->num >= sizeof(map) * 8) +- return -E2BIG; +- +- l3 = cachep->nodelists[node]; +- /* drain all CPU caches to have up-to-date free map */ +- +-#ifdef CONFIG_NUMA +- /* walk through all nodes and drain alien caches */ +- for_each_online_node (n) { +- if (!cachep->nodelists[n]->alien) +- continue; +- ac = cachep->nodelists[n]->alien[node]; +- if (!ac) +- continue; +- kmem_cache_free_block(cachep, cachep->nodelists[node], +- ac->entry, ac->avail, node); +- ac->avail = 0; +- } +-#endif +- +- ac = l3->shared; +- kmem_cache_free_block(cachep, l3, ac->entry, ac->avail, node); +- ac->avail = 0; +- for_each_online_cpu(cpu) { +- ac = cachep->array[cpu]; +- n = cpu_to_node(cpu); +- kmem_cache_free_block(cachep, cachep->nodelists[n], +- ac->entry, ac->avail, n); +- ac->avail = 0; +- } +- +- list_for_each_entry(slabp, &l3->slabs_full, list) { +- touch_nmi_watchdog(); +- for (i = 0, objp = slabp->s_mem; +- i < cachep->num; +- i++, objp += cachep->buffer_size) { +-#if SLAB_DEBUG +- objp += cachep->obj_offset; +-#endif +- r = (*fun)(objp); +- if (r) +- return r; +- } +- } +- +- list_for_each_entry(slabp, &l3->slabs_partial, list) { +- touch_nmi_watchdog(); +- memset(map, 0xff, sizeof(map)); +- for (i = slabp->free, r = 0; +- i != BUFCTL_END; +- i = slab_bufctl(slabp)[i], r++) { +- if (r > cachep->num) +- return -1; +- __clear_bit(i, map); +- } +- sz = sizeof(map) * BITS_PER_LONG; +- for (i = find_first_bit(map, sz); +- i < cachep->num; +- i = find_next_bit(map, sz, i + 1)) { +- objp = slabp->s_mem + i * cachep->buffer_size; +-#if SLAB_DEBUG +- objp += cachep->obj_offset; +-#endif +- r = (*fun)(objp); +- if (r) +- return r; +- } +- } +- +- return 0; +-} +- +-int kmem_cache_walk_objects(struct kmem_cache *cachep, int (*fun)(void *)) +-{ +- int node; +- int err; +- +- for_each_online_node (node) +- if ((err = kmem_cache_walk_node(cachep, node, fun)) != 0) +- return err; +- +- return 0; +-} +- + unsigned long ub_cache_growth(struct kmem_cache *cachep) + { + return (cachep->grown - cachep->reaped - cachep->shrunk) +@@ -3643,19 +3544,6 @@ + } + } + +-static void kmem_cache_free_block(struct kmem_cache *cachep, struct kmem_list3 *l3, +- void **objpp, int nr_objects, int node) +-{ +- unsigned long flags; +- +- if (!nr_objects) +- return; +- +- spin_lock_irqsave(&l3->list_lock, flags); +- free_block(cachep, objpp, nr_objects, node); +- spin_unlock_irqrestore(&l3->list_lock, flags); +-} +- + static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) + { + int batchcount; +Index: kernel/mm/slub.c +=================================================================== +--- kernel.orig/mm/slub.c 2008-11-24 15:56:35.000000000 +0100 ++++ kernel/mm/slub.c 2008-11-24 15:57:05.000000000 +0100 +@@ -348,61 +348,6 @@ + + static void __flush_cpu_slab(struct kmem_cache *s, int cpu); + +-static int kmem_cache_walk_page(struct page *pg, struct kmem_cache *s, +- int (*fun)(void *)) +-{ +- int r; +- void *p, *start; +- DECLARE_BITMAP(map, s->objects); +- +- start = page_address(pg); +- +- bitmap_zero(map, s->objects); +- for_each_free_object(p, s, pg->freelist) +- set_bit(slab_index(p, s, start), map); +- +- for_each_object(p, s, start) +- if (!test_bit(slab_index(p, s, start), map)) { +- r = fun(p); +- if (r) +- return r; +- } +- +- return 0; +-} +- +-int kmem_cache_walk_objects(struct kmem_cache *s, int (*fun)(void *)) +-{ +- int i; +- +- /* run under stopachine only, so no locks at all */ +- +- for_each_online_cpu(i) +- __flush_cpu_slab(s, i); +- +- for_each_online_node(i) { +- int r; +- struct page *page; +- struct kmem_cache_node *n; +- +- n = get_node(s, i); +- +- list_for_each_entry(page, &n->partial, lru) { +- r = kmem_cache_walk_page(page, s, fun); +- if (r) +- return r; +- } +- +- list_for_each_entry(page, &n->full, lru) { +- r = kmem_cache_walk_page(page, s, fun); +- if (r) +- return r; +- } +- } +- +- return 0; +-} +- + int kmem_cache_objuse(struct kmem_cache *cachep) + { + return cachep->objuse; --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0037-Add-pid-hide-logic-on-VE-creation.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0037-Add-pid-hide-logic-on-VE-creation.patch @@ -0,0 +1,29 @@ +From 5f6872e2893945c53efed0413e1948f8f895f0c9 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 17 Mar 2008 15:41:27 +0300 +Subject: [PATCH 37/48] Add pid hide logic on VE creation + +Dup the logic from CLONE_NEWPID codepath. init and entered processes remain +visible in all pidns's. +--- + kernel/ve/vecalls.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c +index ca4f1e5..4bb5d48 100644 +--- a/kernel/ve/vecalls.c ++++ b/kernel/ve/vecalls.c +@@ -896,6 +896,10 @@ static inline int init_ve_namespaces(struct ve_struct *ve, + ve->ve_ns = get_nsproxy(tsk->nsproxy); + memcpy(ve->ve_ns->uts_ns->name.release, virt_utsname.release, + sizeof(virt_utsname.release)); ++ ++ if (cur->pid_ns->flags & PID_NS_HIDE_CHILD) ++ ve->ve_ns->pid_ns->flags |= PID_NS_HIDDEN; ++ + *old = cur; + return 0; + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0087-CPT-restore-infinity-rlimits.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0087-CPT-restore-infinity-rlimits.patch @@ -0,0 +1,82 @@ +From 9c66d6c6e0fce81d77bcff3844cfbc7f7f591881 Mon Sep 17 00:00:00 2001 +From: Andrey Mirkin +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 087/103] CPT restore infinity rlimits + +During 32bit to 64bit migration rlimits were restored incorrectly due to +different size of long on 32bit and 64bit archs. Now simple conversion is +introduced in case of 32bit-64bit migration. Infinity values are restored as +infinity values. Error is returned if value greater than RLIM_INFINITY32 is +found in dump during restore on 32bit arch. + +Bug #111965 +--- + kernel/cpt/rst_process.c | 45 +++++++++++++++++++++++++++++++++++++++++++-- + 1 files changed, 43 insertions(+), 2 deletions(-) + +diff --git a/kernel/cpt/rst_process.c b/kernel/cpt/rst_process.c +index c54f04e..2630538 100644 +--- a/kernel/cpt/rst_process.c ++++ b/kernel/cpt/rst_process.c +@@ -1193,6 +1193,32 @@ static void rst_apply_mxcsr_mask(struct task_struct *tsk) + #endif + } + ++#define RLIM_INFINITY32 0xffffffff ++#define RLIM_INFINITY64 (~0ULL) ++ ++#ifdef CONFIG_X86_64 ++#define rst_rlim_32_to_64(a, i, t, im) \ ++do { \ ++ if (im->cpt_rlim_##a[i] == RLIM_INFINITY32) \ ++ t->signal->rlim[i].rlim_##a = RLIM_INFINITY64; \ ++ else \ ++ t->signal->rlim[i].rlim_##a = im->cpt_rlim_##a[i]; \ ++} while (0) ++#elif defined(CONFIG_X86_32) ++#define rst_rlim_64_to_32(a, i, t, im) \ ++do { \ ++ if (im->cpt_rlim_##a[i] == RLIM_INFINITY64) \ ++ t->signal->rlim[i].rlim_##a = RLIM_INFINITY32; \ ++ else if (im->cpt_rlim_##a[i] > RLIM_INFINITY32) { \ ++ eprintk_ctx("rlimit %Lu is too high for 32-bit task, " \ ++ "dump file is corrupted\n", \ ++ im->cpt_rlim_##a[i]); \ ++ return -EINVAL; \ ++ } else \ ++ t->signal->rlim[i].rlim_##a = im->cpt_rlim_##a[i]; \ ++} while (0) ++#endif ++ + int rst_restore_process(struct cpt_context *ctx) + { + cpt_object_t *obj; +@@ -1328,8 +1354,23 @@ int rst_restore_process(struct cpt_context *ctx) + tsk->signal->cmaj_flt = ti->cpt_cmaj_flt; + + for (i=0; isignal->rlim[i].rlim_cur = ti->cpt_rlim_cur[i]; +- tsk->signal->rlim[i].rlim_max = ti->cpt_rlim_max[i]; ++#ifdef CONFIG_X86_64 ++ if (ctx->image_arch == CPT_OS_ARCH_I386) { ++ rst_rlim_32_to_64(cur, i, tsk, ti); ++ rst_rlim_32_to_64(max, i, tsk, ti); ++ } else ++#elif defined(CONFIG_X86_32) ++ if (ctx->image_arch == CPT_OS_ARCH_EMT64) { ++ rst_rlim_64_to_32(cur, i, tsk, ti); ++ rst_rlim_64_to_32(max, i, tsk, ti); ++ } else ++#endif ++ { ++ tsk->signal->rlim[i].rlim_cur = ++ ti->cpt_rlim_cur[i]; ++ tsk->signal->rlim[i].rlim_max = ++ ti->cpt_rlim_max[i]; ++ } + } + } + #endif +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0032-NETFILTER-fix-freeing-of-ve_nf_conntrack_l4proto_ge.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0032-NETFILTER-fix-freeing-of-ve_nf_conntrack_l4proto_ge.patch @@ -0,0 +1,27 @@ +From f05b28d968d2de966189a05549c2b01ddedbc6e0 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Fri, 14 Mar 2008 19:43:07 +0300 +Subject: [PATCH 32/48] NETFILTER: fix freeing of ve_nf_conntrack_l4proto_generic + +Do it only only on VE stop, not on rmmod, because it's statically allocated +on case of VE0. +--- + net/netfilter/nf_conntrack_proto.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c +index bde6914..c994ecf 100644 +--- a/net/netfilter/nf_conntrack_proto.c ++++ b/net/netfilter/nf_conntrack_proto.c +@@ -362,6 +362,7 @@ void nf_conntrack_proto_fini(void) + ve_nf_ct_protos[i] = NULL; + } + #ifdef CONFIG_VE_IPTABLES +- kfree(ve_nf_conntrack_l4proto_generic); ++ if (!ve_is_super(get_exec_env())) ++ kfree(ve_nf_conntrack_l4proto_generic); + #endif + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0018-FAIRSCHED-add-scheduler-grouping-based-on-stock-gro.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0018-FAIRSCHED-add-scheduler-grouping-based-on-stock-gro.patch @@ -0,0 +1,244 @@ +From a02e3acb4a97ede13b34641754c27416338e1426 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Wed, 12 Mar 2008 18:07:48 +0300 +Subject: [PATCH 18/48] FAIRSCHED: add scheduler grouping based on stock grouping code + +--- + include/linux/fairsched.h | 61 +++++++++++++++++++++++++++++++++++++++++++++ + include/linux/init_task.h | 2 + + include/linux/sched.h | 3 ++ + init/Kconfig | 6 ++++ + kernel/Makefile | 1 + + kernel/exit.c | 2 + + kernel/fork.c | 1 + + kernel/sched.c | 4 +++ + kernel/vzfairsched.c | 30 ++++++++++++++++++++++ + 9 files changed, 110 insertions(+), 0 deletions(-) + create mode 100644 include/linux/fairsched.h + create mode 100644 kernel/vzfairsched.c + +Index: kernel/include/linux/fairsched.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/include/linux/fairsched.h 2008-11-24 15:57:08.000000000 +0100 +@@ -0,0 +1,61 @@ ++/* ++ * Fair Scheduler ++ * ++ * Copyright (C) 2000-2008 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#ifndef __LINUX_FAIRSCHED_H__ ++#define __LINUX_FAIRSCHED_H__ ++ ++#ifdef __KERNEL__ ++ ++/* refcnt change protected with tasklist write lock */ ++struct fairsched_node { ++ struct task_group *tg; ++ int refcnt; ++ unsigned id; ++ struct list_head nodelist; ++}; ++ ++#ifdef CONFIG_VZ_FAIRSCHED ++ ++#define FAIRSCHED_INIT_NODE_ID INT_MAX ++ ++extern struct fairsched_node fairsched_init_node; ++ ++void fairsched_init_early(void); ++ ++static inline int task_fairsched_node_id(struct task_struct *p) ++{ ++ return p->fsched_node->id; ++} ++ ++/* must called with tasklist write locked */ ++static inline void get_task_fairsched_node(struct task_struct *p) ++{ ++ p->fsched_node->refcnt++; ++} ++static inline void put_task_fairsched_node(struct task_struct *p) ++{ ++ p->fsched_node->refcnt--; ++} ++ ++#define INIT_VZ_FAIRSCHED .fsched_node = &fairsched_init_node, ++ ++#else /* CONFIG_VZ_FAIRSCHED */ ++ ++static inline void fairsched_init_early(void) { } ++static inline int task_fairsched_node_id(struct task_struct *p) { return 0; } ++static inline void get_task_fairsched_node(struct task_struct *p) { } ++static inline void put_task_fairsched_node(struct task_struct *p) { } ++ ++#define INIT_VZ_FAIRSCHED ++ ++#endif /* CONFIG_VZ_FAIRSCHED */ ++#endif /* __KERNEL__ */ ++ ++#endif /* __LINUX_FAIRSCHED_H__ */ +Index: kernel/include/linux/init_task.h +=================================================================== +--- kernel.orig/include/linux/init_task.h 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/include/linux/init_task.h 2008-11-24 15:57:08.000000000 +0100 +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #define INIT_FDTABLE \ + { \ +@@ -180,6 +181,7 @@ + .dirties = INIT_PROP_LOCAL_SINGLE(dirties), \ + INIT_TRACE_IRQFLAGS \ + INIT_LOCKDEP \ ++ INIT_VZ_FAIRSCHED \ + } + + +Index: kernel/include/linux/sched.h +=================================================================== +--- kernel.orig/include/linux/sched.h 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/include/linux/sched.h 2008-11-24 15:57:08.000000000 +0100 +@@ -1239,6 +1239,9 @@ + unsigned long magic; + struct inode *ino; + #endif ++#ifdef CONFIG_VZ_FAIRSCHED ++ struct fairsched_node *fsched_node; ++#endif + }; + + /* +Index: kernel/init/Kconfig +=================================================================== +--- kernel.orig/init/Kconfig 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/init/Kconfig 2008-11-24 15:57:08.000000000 +0100 +@@ -362,6 +362,12 @@ + Refer to Documentation/cgroups.txt for more information + on "cgroup" pseudo filesystem. + ++config VZ_FAIRSCHED ++ bool "OpenVZ groups" ++ help ++ This option add customizable task groups with OpenVZ compatible ++ syscall and procfs interface. ++ + endchoice + + config CGROUP_CPUACCT +Index: kernel/kernel/Makefile +=================================================================== +--- kernel.orig/kernel/Makefile 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/Makefile 2008-11-24 15:57:08.000000000 +0100 +@@ -62,6 +62,7 @@ + obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o + obj-$(CONFIG_MARKERS) += marker.o + obj-$(CONFIG_LATENCYTOP) += latencytop.o ++obj-$(CONFIG_VZ_FAIRSCHED) += vzfairsched.o + + ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y) + # According to Alan Modra , the -fno-omit-frame-pointer is +Index: kernel/kernel/exit.c +=================================================================== +--- kernel.orig/kernel/exit.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/exit.c 2008-11-24 15:57:08.000000000 +0100 +@@ -47,6 +47,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -185,6 +186,7 @@ + */ + zap_leader = (leader->exit_signal == -1); + } ++ put_task_fairsched_node(p); + + write_unlock_irq(&tasklist_lock); + release_thread(p); +Index: kernel/kernel/fork.c +=================================================================== +--- kernel.orig/kernel/fork.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/fork.c 2008-11-24 15:57:08.000000000 +0100 +@@ -1364,6 +1364,7 @@ + #endif + total_forks++; + spin_unlock(¤t->sighand->siglock); ++ get_task_fairsched_node(p); + write_unlock_irq(&tasklist_lock); + proc_fork_connector(p); + cgroup_post_fork(p); +Index: kernel/kernel/sched.c +=================================================================== +--- kernel.orig/kernel/sched.c 2008-11-24 15:47:46.000000000 +0100 ++++ kernel/kernel/sched.c 2008-11-24 15:57:08.000000000 +0100 +@@ -63,6 +63,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -208,6 +209,8 @@ + #elif defined(CONFIG_FAIR_CGROUP_SCHED) + tg = container_of(task_subsys_state(p, cpu_cgroup_subsys_id), + struct task_group, css); ++#elif defined(CONFIG_VZ_FAIRSCHED) ++ tg = p->fsched_node->tg; + #else + tg = &init_task_group; + #endif +@@ -7254,6 +7257,7 @@ + * During early bootup we pretend to be a normal task: + */ + current->sched_class = &fair_sched_class; ++ fairsched_init_early(); + } + + #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP +Index: kernel/kernel/vzfairsched.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ kernel/kernel/vzfairsched.c 2008-11-24 15:57:08.000000000 +0100 +@@ -0,0 +1,30 @@ ++/* ++ * Fair Scheduler ++ * ++ * Copyright (C) 2000-2008 SWsoft ++ * All rights reserved. ++ * ++ * Licensing governed by "linux/COPYING.SWsoft" file. ++ * ++ */ ++ ++#include ++#include ++ ++struct fairsched_node fairsched_init_node = { ++ .id = FAIRSCHED_INIT_NODE_ID, ++ .tg = &init_task_group, ++}; ++ ++static DEFINE_MUTEX(fairsched_mutex); ++ ++/* list protected with fairsched_mutex */ ++static LIST_HEAD(fairsched_node_head); ++static int fairsched_nr_nodes; ++ ++void __init fairsched_init_early(void) ++{ ++ list_add(&fairsched_init_node.nodelist, &fairsched_node_head); ++ fairsched_nr_nodes++; ++} ++ --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0128-VE-veinfo-to-vzmon.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0128-VE-veinfo-to-vzmon.patch @@ -0,0 +1,164 @@ +From 21745854d0113d1ecec3a939015366c2bd5cb9a4 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Fri, 18 Jul 2008 15:25:57 +0400 +Subject: [PATCH 128/131] VE veinfo to vzmon + +Since some people wish to run openvz w/o venet device, but +vzlist tool relies on /proc/vz/veinfo file presence, vzmon +module is a better place for this file. + +http://bugzilla.openvz.org/show_bug.cgi?id=394 +--- + include/linux/ve_proto.h | 5 ++ + kernel/ve/vecalls.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 110 insertions(+), 0 deletions(-) + +diff --git a/include/linux/ve_proto.h b/include/linux/ve_proto.h +index 6093fbb..630263c 100644 +--- a/include/linux/ve_proto.h ++++ b/include/linux/ve_proto.h +@@ -14,6 +14,11 @@ + #ifdef CONFIG_VE + + struct ve_struct; ++struct seq_file; ++ ++typedef void (*ve_seq_print_t)(struct seq_file *, struct ve_struct *); ++void vzmon_register_veaddr_print_cb(ve_seq_print_t); ++void vzmon_unregister_veaddr_print_cb(ve_seq_print_t); + + #ifdef CONFIG_INET + void ip_fragment_cleanup(struct ve_struct *envid); +diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c +index 616cf0b..c05685a 100644 +--- a/kernel/ve/vecalls.c ++++ b/kernel/ve/vecalls.c +@@ -2441,6 +2441,103 @@ static struct vnotifier_block meminfo_notifier_block = { + .notifier_call = meminfo_call + }; + ++/* /proc/vz/veinfo */ ++ ++static ve_seq_print_t veaddr_seq_print_cb; ++ ++void vzmon_register_veaddr_print_cb(ve_seq_print_t cb) ++{ ++ rcu_assign_pointer(veaddr_seq_print_cb, cb); ++} ++EXPORT_SYMBOL(vzmon_register_veaddr_print_cb); ++ ++void vzmon_unregister_veaddr_print_cb(ve_seq_print_t cb) ++{ ++ rcu_assign_pointer(veaddr_seq_print_cb, NULL); ++ synchronize_rcu(); ++} ++EXPORT_SYMBOL(vzmon_unregister_veaddr_print_cb); ++ ++static int veinfo_seq_show(struct seq_file *m, void *v) ++{ ++ struct ve_struct *ve; ++ ve_seq_print_t veaddr_seq_print; ++ ++ ve = list_entry((struct list_head *)v, struct ve_struct, ve_list); ++ ++ seq_printf(m, "%10u %5u %5u", ve->veid, ++ ve->class_id, atomic_read(&ve->pcounter)); ++ ++ veaddr_seq_print = m->private; ++ if (veaddr_seq_print) ++ veaddr_seq_print(m, ve); ++ ++ seq_putc(m, '\n'); ++ return 0; ++} ++ ++static void *veinfo_seq_start(struct seq_file *m, loff_t *pos) ++{ ++ struct ve_struct *curve; ++ struct list_head *entry; ++ loff_t l; ++ ++ rcu_read_lock(); ++ m->private = rcu_dereference(veaddr_seq_print_cb); ++ curve = get_exec_env(); ++ read_lock(&ve_list_lock); ++ if (!ve_is_super(curve)) { ++ if (*pos != 0) ++ return NULL; ++ return curve; ++ } ++ ++ l = *pos; ++ list_for_each(entry, &ve_list_head) { ++ if (l == 0) ++ return entry; ++ l--; ++ } ++ return NULL; ++} ++ ++static void *veinfo_seq_next(struct seq_file *m, void *v, loff_t *pos) ++{ ++ struct list_head *entry; ++ ++ entry = (struct list_head *)v; ++ if (!ve_is_super(get_exec_env())) ++ return NULL; ++ (*pos)++; ++ return entry->next == &ve_list_head ? NULL : entry->next; ++} ++ ++static void veinfo_seq_stop(struct seq_file *m, void *v) ++{ ++ read_unlock(&ve_list_lock); ++ rcu_read_unlock(); ++} ++ ++ ++static struct seq_operations veinfo_seq_op = { ++ .start = veinfo_seq_start, ++ .next = veinfo_seq_next, ++ .stop = veinfo_seq_stop, ++ .show = veinfo_seq_show, ++}; ++ ++static int veinfo_open(struct inode *inode, struct file *file) ++{ ++ return seq_open(file, &veinfo_seq_op); ++} ++ ++static struct file_operations proc_veinfo_operations = { ++ .open = veinfo_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = seq_release, ++}; ++ + static int __init init_vecalls_proc(void) + { + struct proc_dir_entry *de; +@@ -2477,6 +2574,13 @@ static int __init init_vecalls_proc(void) + printk(KERN_WARNING + "VZMON: can't make version proc entry\n"); + ++ de = create_proc_glob_entry_mod("vz/veinfo", S_IFREG | S_IRUSR, NULL, ++ THIS_MODULE); ++ if (de) ++ de->proc_fops = &proc_veinfo_operations; ++ else ++ printk(KERN_WARNING "VZMON: can't make veinfo proc entry\n"); ++ + virtinfo_notifier_register(VITYPE_GENERAL, &meminfo_notifier_block); + + return 0; +@@ -2487,6 +2591,7 @@ static void fini_vecalls_proc(void) + remove_proc_entry("vz/version", NULL); + remove_proc_entry("vz/devperms", NULL); + remove_proc_entry("vz/vestat", NULL); ++ remove_proc_entry("vz/veinfo", NULL); + virtinfo_notifier_unregister(VITYPE_GENERAL, &meminfo_notifier_block); + } + #else +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0033-NETFILTER-fix-ipv4-conntrack-structure-double-free.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0033-NETFILTER-fix-ipv4-conntrack-structure-double-free.patch @@ -0,0 +1,26 @@ +From 5dbe8ec3aebc0c282b41e45bdc93c9c00a2368d3 Mon Sep 17 00:00:00 2001 +From: Alexey Dobriyan +Date: Mon, 17 Mar 2008 14:38:48 +0300 +Subject: [PATCH 33/48] NETFILTER: fix ipv4 conntrack structure double free + +It's masked by it's NULLifying, but it's double free nonetheless. +--- + net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +index bbbfee7..10e970b 100644 +--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c ++++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c +@@ -452,8 +452,6 @@ static void nf_ct_proto_ipv4_sysctl_cleanup(void) + if (!ve_is_super(get_exec_env())) { + free_sysctl_clone(ve_nf_conntrack_l3proto_ipv4->ctl_table); + ve_nf_conntrack_l3proto_ipv4->ctl_table = NULL; +- kfree(ve_nf_conntrack_l3proto_ipv4); +- ve_nf_conntrack_l3proto_ipv4 = NULL; + } + } + #else +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0093-UBC-proc-permissions.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0093-UBC-proc-permissions.patch @@ -0,0 +1,53 @@ +From ec5cfa5fba2635c2561837d10233120917968972 Mon Sep 17 00:00:00 2001 +From: Pavel Emelianov +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 093/103] UBC proc permissions + +Set correct permissions on beancounters' proc files + +All these files allow to read from them only for root, +but the mode mask is r--r--r--, which sometimes confuses +the user. + +Set the r-------- mask for all the bc proc files and the +r-x------ for directories. + +http://bugzilla.openvz.org/show_bug.cgi?id=782 +--- + kernel/bc/proc.c | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/kernel/bc/proc.c b/kernel/bc/proc.c +index caf4b1b..012bd48 100644 +--- a/kernel/bc/proc.c ++++ b/kernel/bc/proc.c +@@ -421,7 +421,7 @@ static int bc_lookset(struct inode *ino, void *data) + ino->i_ino = bc_make_ino(ub); + ino->i_fop = &bc_entry_fops; + ino->i_op = &bc_entry_iops; +- ino->i_mode = S_IFDIR | S_IRUSR | S_IXUGO; ++ ino->i_mode = S_IFDIR | S_IRUSR | S_IXUSR; + /* subbeancounters are not included, but who cares? */ + ino->i_nlink = num_entries + 2; + ino->i_gid = 0; +@@ -680,7 +680,7 @@ static int __init ub_init_proc(void) + struct proc_dir_entry *entry; + + bc_proc_root = create_proc_entry("bc", +- S_IFDIR | S_IRUGO | S_IXUGO, NULL); ++ S_IFDIR | S_IRUSR | S_IXUSR, NULL); + if (bc_proc_root == NULL) + panic("Can't create /proc/bc entry"); + +@@ -693,7 +693,7 @@ static int __init ub_init_proc(void) + #endif + bc_register_proc_root_entry(&bc_all_resources_entry); + +- entry = create_proc_glob_entry("user_beancounters", S_IRUGO, NULL); ++ entry = create_proc_glob_entry("user_beancounters", S_IRUSR, NULL); + entry->proc_fops = &ub_file_operations; + return 0; + } +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0142-MISC-autofs4-ia32-compat.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0142-MISC-autofs4-ia32-compat.patch @@ -0,0 +1,41 @@ +From 62cb46b6c2eb619bc66ab670dfaa4eb36ecd24e4 Mon Sep 17 00:00:00 2001 +From: Konstantin Khlebnikov +Date: Mon, 8 Sep 2008 14:15:06 +0400 +Subject: [PATCH] MISC autofs4 ia32 compat + +The struct autofs_v5_packet has only one difference between +32-bit and 64-bit versions - on 64-bit gcc aligns its size and +it is 4 bytes larger that it is on 32-bit kernel. This confuses +32-bit user-space daemon, when talking to 64-bit kernel. + +This is very critical for containerized setups, when containers +with -bit tolls are used. + +Signed-off-by: Konstantin Khlebnikov +Acked-by: Pavel Emelyanov +--- + fs/autofs4/waitq.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c +index 1fe28e4..788ca05 100644 +--- a/fs/autofs4/waitq.c ++++ b/fs/autofs4/waitq.c +@@ -136,6 +136,14 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi, + struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet; + + pktsz = sizeof(*packet); ++#if defined(CONFIG_X86_64) && defined(CONFIG_IA32_EMULATION) ++ /* ++ * On x86_64 autofs_v5_packet struct is padded with 4 bytes ++ * which breaks 32-bit autofs daemon. ++ */ ++ if (test_thread_flag(TIF_IA32)) ++ pktsz -= 4; ++#endif + + packet->wait_queue_token = wq->wait_queue_token; + packet->len = wq->len; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/patchset/0089-UBC-check-net-skb-on-repeated-charging.patch +++ linux-2.6.24/debian/binary-custom.d/openvz/patchset/0089-UBC-check-net-skb-on-repeated-charging.patch @@ -0,0 +1,26 @@ +From d3c692ac7aede5577fd951ef95a35449330d4001 Mon Sep 17 00:00:00 2001 +From: Vitaliy Gusev +Date: Mon, 30 Jun 2008 13:48:49 +0400 +Subject: [PATCH 089/103] UBC check net skb on repeated charging + +This is a (useful) debug patch to find charge memory leak. +--- + kernel/bc/net.c | 2 ++ + 1 files changed, 2 insertions(+), 0 deletions(-) + +diff --git a/kernel/bc/net.c b/kernel/bc/net.c +index 422d687..4db1f9b 100644 +--- a/kernel/bc/net.c ++++ b/kernel/bc/net.c +@@ -330,6 +330,8 @@ void ub_sock_sndqueuedel(struct sock *sk) + static inline void __ub_skb_set_charge(struct sk_buff *skb, struct sock *sk, + unsigned long size, int resource) + { ++ WARN_ON_ONCE(skb_bc(skb)->ub != NULL); ++ + skb_bc(skb)->ub = sock_bc(sk)->ub; + skb_bc(skb)->charged = size; + skb_bc(skb)->resource = resource; +-- +1.5.4.3 + --- linux-2.6.24.orig/debian/binary-custom.d/openvz/rules +++ linux-2.6.24/debian/binary-custom.d/openvz/rules @@ -0,0 +1 @@ +# Nothing special here --- linux-2.6.24.orig/debian/binary-custom.d/openvz/config.i386 +++ linux-2.6.24/debian/binary-custom.d/openvz/config.i386 @@ -0,0 +1,4192 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24-16-openvz +# Thu Apr 10 06:21:17 2008 +# +# CONFIG_64BIT is not set +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_QUICKLIST=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_DMI=y +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +# CONFIG_GENERIC_TIME_VSYSCALL is not set +CONFIG_ARCH_SUPPORTS_OPROFILE=y +# CONFIG_ZONE_DMA32 is not set +CONFIG_ARCH_POPULATES_NODE_MAP=y +# CONFIG_AUDIT_ARCH is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.24-4.6-server" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +# CONFIG_TASK_DELAY_ACCT is not set +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_NS=y +CONFIG_CPUSETS=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_FAIR_USER_SCHED is not set +# CONFIG_FAIR_CGROUP_SCHED is not set +CONFIG_VZ_FAIRSCHED=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_PROC_PID_CPUSET=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_KMOD=y +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBD=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PREEMPT_NOTIFIERS=y + +# +# Processor type and features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_NUMAQ is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_ES7000 is not set +# CONFIG_X86_VSMP is not set +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_GUEST=y +CONFIG_XEN=y +CONFIG_VMI=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +CONFIG_M686=y +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_GENERIC_CPU is not set +CONFIG_X86_GENERIC=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_XADD=y +CONFIG_X86_PPRO_FENCE=y +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_INVLPG=y +CONFIG_X86_BSWAP=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_GOOD_APIC=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +CONFIG_X86_TSC=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=4 +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_NR_CPUS=8 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_BKL is not set +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +# CONFIG_NMI_WATCHDOG is not set +# CONFIG_X86_MCE is not set +CONFIG_VM86=y +CONFIG_TOSHIBA=m +CONFIG_I8K=m +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_MICROCODE=m +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +# CONFIG_NOHIGHMEM is not set +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_2G_OPT is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_HIGHMEM=y +CONFIG_X86_PAE=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_SPARSEMEM_STATIC=y +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_RESOURCES_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_NR_QUICK=1 +CONFIG_VIRT_TO_BUS=y +CONFIG_HIGHPTE=y +# CONFIG_MATH_EMULATION is not set +CONFIG_MTRR=y +CONFIG_EFI=y +# CONFIG_IRQBALANCE is not set +CONFIG_BOOT_IOREMAP=y +CONFIG_SECCOMP=y +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=100 +CONFIG_KEXEC=y +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x100000 +CONFIG_RELOCATABLE=y +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_COMPAT_VDSO is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management options +# +CONFIG_PM=y +CONFIG_PM_LEGACY=y +CONFIG_PM_DEBUG=y +# CONFIG_PM_VERBOSE is not set +CONFIG_PM_TRACE=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND_SMP_POSSIBLE=y +CONFIG_SUSPEND=y +CONFIG_PM_DISABLE_CONSOLE=y +CONFIG_HIBERNATION_SMP_POSSIBLE=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=m +CONFIG_ACPI_BAY=m +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_CUSTOM_DSDT_INITRD=y +CONFIG_ACPI_BLACKLIST_YEAR=2000 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_SBS=m +CONFIG_APM=m +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_REAL_MODE_POWER_OFF is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=m +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_GX_SUSPMOD=m +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=m +CONFIG_X86_SPEEDSTEP_SMI=m +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_CPUFREQ_NFORCE2=m +CONFIG_X86_LONGRUN=m +CONFIG_X86_LONGHAUL=m +# CONFIG_X86_E_POWERSAVER is not set + +# +# shared options +# +# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GODIRECT is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_ISA=y +CONFIG_EISA=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_NAMES=y +CONFIG_MCA=y +CONFIG_MCA_LEGACY=y +# CONFIG_MCA_PROC_FS is not set +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_TCIC=m +CONFIG_PCMCIA_PROBE=y +CONFIG_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m + +# +# OpenVZ +# +CONFIG_VE=y +CONFIG_VE_CALLS=m +CONFIG_VZ_GENCALLS=y +CONFIG_VE_NETDEV=m +CONFIG_VE_ETHDEV=m +CONFIG_VZ_DEV=m +CONFIG_VE_IPTABLES=y +CONFIG_VZ_WDOG=m +CONFIG_VZ_CHECKPOINT=m + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_NET_NS=y +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +# CONFIG_DEFAULT_BIC is not set +# CONFIG_DEFAULT_CUBIC is not set +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_VEGAS is not set +# CONFIG_DEFAULT_WESTWOOD is not set +CONFIG_DEFAULT_RENO=y +CONFIG_DEFAULT_TCP_CONG="reno" +CONFIG_TCP_MD5SIG=y +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK_ENABLED=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +# CONFIG_NF_CONNTRACK_SANE is not set +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m + +# +# DECnet: Netfilter Configuration +# +CONFIG_DECNET_NF_GRABULATOR=m + +# +# Bridge: Netfilter Configuration +# +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_IP_DCCP_ACKVEC=y + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +CONFIG_IP_DCCP_CCID2=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=m +CONFIG_IP_DCCP_TFRC_LIB=m +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_CCID3_RTO=100 + +# +# DCCP Kernel Hacking +# +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_NET_DCCPPROBE=m +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=y +CONFIG_ATM_CLIP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_LTPC=m +CONFIG_COPS=m +CONFIG_COPS_DAYNA=y +CONFIG_COPS_TANGENT=y +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +CONFIG_X25=m +CONFIG_LAPB=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_WAN_ROUTER=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RR=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +# CONFIG_NET_CLS_POLICE is not set +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +CONFIG_NET_TCPPROBE=m +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_EPP=m +CONFIG_YAM=m +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +# CONFIG_TOIM3232_DONGLE is not set +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# Old SIR device drivers +# + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_TOSHIBA_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_FIB_RULES=y + +# +# Wireless +# +CONFIG_CFG80211=m +CONFIG_NL80211=y +CONFIG_WIRELESS_EXT=y +CONFIG_MAC80211=m +CONFIG_MAC80211_RCSIMPLE=y +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +CONFIG_NET_9P=m +CONFIG_NET_9P_FD=m +CONFIG_NET_9P_VIRTIO=m +# CONFIG_NET_9P_DEBUG is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_MTD_OOPS=m + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PNC2000=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCECC=m +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_DOCPROBE_ADDRESS=0 +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_CS553X=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_SIM=m + +# +# UBI - Unsorted block images +# +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_GLUEBI=y + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +CONFIG_PARPORT_PC_FIFO=y +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +CONFIG_ISAPNP=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_DEV_XD=m +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_XEN_BLKDEV_FRONTEND=m +CONFIG_VIRTIO_BLK=m +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_EEPROM_93CX6=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +CONFIG_MSI_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=m + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_IDEDISK=m +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_DELKIN=m +CONFIG_BLK_DEV_IDECD=m +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDESCSI=m +CONFIG_BLK_DEV_IDEACPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +CONFIG_BLK_DEV_IDEPNP=y + +# +# PCI IDE chipsets support +# +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDEPCI_PCIBUS_ORDER is not set +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_GENERIC is not set +CONFIG_BLK_DEV_OPTI621=m +# CONFIG_BLK_DEV_RZ1000 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_AEC62XX=m +CONFIG_BLK_DEV_ALI15X3=m +# CONFIG_WDC_ALI15X3 is not set +CONFIG_BLK_DEV_AMD74XX=m +CONFIG_BLK_DEV_ATIIXP=m +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_TRIFLEX is not set +CONFIG_BLK_DEV_CY82C693=m +# CONFIG_BLK_DEV_CS5520 is not set +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_CS5535=m +CONFIG_BLK_DEV_HPT34X=m +# CONFIG_HPT34X_AUTODMA is not set +CONFIG_BLK_DEV_HPT366=m +# CONFIG_BLK_DEV_JMICRON is not set +CONFIG_BLK_DEV_SC1200=m +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_IT821X is not set +CONFIG_BLK_DEV_NS87415=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +CONFIG_PDC202XX_BURST=y +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SIS5513 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_TRM290=m +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BLK_DEV_TC86C001=m +# CONFIG_IDE_ARM is not set + +# +# Other IDE chipsets support +# + +# +# Note: most of these also require special kernel boot parameters +# +CONFIG_BLK_DEV_4DRIVES=y +CONFIG_BLK_DEV_ALI14XX=m +CONFIG_BLK_DEV_DTC2278=m +CONFIG_BLK_DEV_HT6560B=m +CONFIG_BLK_DEV_QD65XX=m +CONFIG_BLK_DEV_UMC8672=m +CONFIG_BLK_DEV_IDEDMA=y +CONFIG_IDE_ARCH_OBSOLETE_INIT=y +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_7000FASST=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AHA152X=m +CONFIG_SCSI_AHA1542=m +CONFIG_SCSI_AHA1740=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_IN2000=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_DTC3280=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_FD_MCS=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_GENERIC_NCR5380=m +CONFIG_SCSI_GENERIC_NCR5380_MMIO=m +CONFIG_SCSI_GENERIC_NCR53C400=y +CONFIG_SCSI_IBMMCA=m +CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y +# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_NCR_D700=m +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_NCR_Q720=m +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4 +CONFIG_SCSI_NCR53C8XX_SYNC=5 +CONFIG_SCSI_PAS16=m +CONFIG_SCSI_PSI240I=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_SEAGATE=m +CONFIG_SCSI_SIM710=m +CONFIG_SCSI_SYM53C416=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_T128=m +CONFIG_SCSI_U14_34F=m +CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y +CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +CONFIG_SCSI_U14_34F_MAX_TAGS=8 +CONFIG_SCSI_ULTRASTOR=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_AHCI=m +CONFIG_SATA_SVW=m +CONFIG_ATA_PIIX=m +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_PROMISE=m +CONFIG_SATA_SX4=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SATA_INIC162X=m +CONFIG_PATA_ACPI=m +# CONFIG_PATA_ALI is not set +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_CMD640_PCI is not set +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +CONFIG_PATA_CS5536=m +# CONFIG_PATA_CYPRESS is not set +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_HPT366=m +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3_DMA is not set +# CONFIG_PATA_ISAPNP is not set +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +# CONFIG_PATA_LEGACY is not set +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OPTIDMA is not set +CONFIG_PATA_PCMCIA=m +# CONFIG_PATA_PDC_OLD is not set +CONFIG_PATA_QDI=m +# CONFIG_PATA_RADISYS is not set +CONFIG_PATA_RZ1000=m +# CONFIG_PATA_SC1200 is not set +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +# CONFIG_PATA_WINBOND_VLB is not set +CONFIG_PATA_PLATFORM=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_MULTIPATH_RDAC=m +CONFIG_DM_MULTIPATH_HP=m +# CONFIG_DM_DELAY is not set +CONFIG_DM_UEVENT=y +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_LOGGING=y + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=m + +# +# Subsystem Options +# +# CONFIG_IEEE1394_VERBOSEDEBUG is not set + +# +# Controllers +# +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_OHCI1394=m + +# +# Protocols +# +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_I2O=m +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +CONFIG_IFB=m +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NET_SB1000=m +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_ISA=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_FIXED_PHY=m +# CONFIG_FIXED_MII_10_FDX is not set +# CONFIG_FIXED_MII_100_FDX is not set +CONFIG_FIXED_MII_1000_FDX=y +CONFIG_FIXED_MII_AMNT=1 +CONFIG_MDIO_BITBANG=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_EL1=m +CONFIG_EL2=m +CONFIG_ELPLUS=m +CONFIG_EL16=m +CONFIG_EL3=m +CONFIG_3C515=m +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_LANCE=m +CONFIG_NET_VENDOR_SMC=y +CONFIG_WD80x3=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_SMC9194=m +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NI52=m +CONFIG_NI65=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_AT1700=m +CONFIG_DEPCA=m +CONFIG_HP100=m +CONFIG_NET_ISA=y +CONFIG_E2100=m +CONFIG_EWRK3=m +CONFIG_EEXPRESS=m +CONFIG_EEXPRESS_PRO=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPLAN=m +CONFIG_LP486E=m +CONFIG_ETH16I=m +CONFIG_NE2000=m +CONFIG_ZNET=m +CONFIG_SEEQ8005=m +CONFIG_NE2_MCA=m +CONFIG_IBMLANA=m +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +# CONFIG_PCNET32_NAPI is not set +CONFIG_AMD8111_ETH=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_AC3200=m +CONFIG_APRICOT=m +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +# CONFIG_FORCEDETH_NAPI is not set +CONFIG_CS89x0=m +CONFIG_EEPRO100=m +CONFIG_E100=m +CONFIG_LNE390=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_NE3210=m +CONFIG_ES3210=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_RHINE_NAPI=y +CONFIG_SC92031=m +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NETDEV_1000=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000_NAPI=y +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_SIS190=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +# CONFIG_SK98LIN is not set +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T1_NAPI=y +CONFIG_CHELSIO_T3=m +CONFIG_IXGBE=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_MYRI10GE=m +CONFIG_NETXEN_NIC=m +CONFIG_NIU=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_TEHUTI=m +CONFIG_TR=y +CONFIG_IBMTR=m +CONFIG_IBMOL=m +CONFIG_IBMLS=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_SKISA=m +CONFIG_PROTEON=m +CONFIG_ABYSS=m +CONFIG_MADGEMC=m +CONFIG_SMCTR=m + +# +# Wireless LAN +# +CONFIG_WLAN_PRE80211=y +CONFIG_STRIP=m +CONFIG_ARLAN=m +CONFIG_WAVELAN=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_NETWAVE=m +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +# CONFIG_PLX_HERMES is not set +# CONFIG_TMD_HERMES is not set +# CONFIG_NORTEL_HERMES is not set +# CONFIG_PCI_HERMES is not set +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +# CONFIG_IWLWIFI is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_PIO=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +# CONFIG_BCM43XX_PIO_MODE is not set +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43_DMA=y +CONFIG_B43_PIO=y +CONFIG_B43_DMA_AND_PIO_MODE=y +# CONFIG_B43_DMA_MODE is not set +# CONFIG_B43_PIO_MODE is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2400PCI=m +CONFIG_RT2400PCI_RFKILL=y +CONFIG_RT2500PCI=m +CONFIG_RT2500PCI_RFKILL=y +CONFIG_RT61PCI=m +CONFIG_RT61PCI_RFKILL=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +# CONFIG_RT2X00_LIB_DEBUGFS is not set +# CONFIG_RT2X00_DEBUG is not set + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +# CONFIG_USB_NET_ZAURUS is not set +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_WAN=y +CONFIG_HOSTESS_SV11=m +CONFIG_COSA=m +CONFIG_LANMEDIA=m +CONFIG_SEALEVEL_4021=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +CONFIG_HDLC_X25=m +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +CONFIG_PC300=m +CONFIG_PC300_MLPPP=y + +# +# Cyclades-PC300 MLPPP support is disabled. +# + +# +# Refer to the file README.mlppp, provided by PC300 package. +# +# CONFIG_PC300TOO is not set +CONFIG_N2=m +CONFIG_C101=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_SDLA=m +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +CONFIG_LAPBETHER=m +CONFIG_X25_ASY=m +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E_MAYBE=m +CONFIG_ATM_FORE200E_PCA=y +CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E=m +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_XEN_NETDEV_FRONTEND=m +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_NET_FC=y +CONFIG_SHAPER=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_0=y +CONFIG_HISAX_16_3=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_AVM_A1=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_IX1MICROR2=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_ASUSCOM=y +CONFIG_HISAX_TELEINT=y +CONFIG_HISAX_HFCS=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_SPORTSTER=y +CONFIG_HISAX_MIC=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_ISURF=y +CONFIG_HISAX_HSTSAPHIR=y +CONFIG_HISAX_BKM_A4T=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_W6692=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_ENTERNOW_PCI=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_TELES_CS=m + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_HDLC=y + +# +# Active cards +# +CONFIG_ISDN_DRV_ICN=m +CONFIG_ISDN_DRV_PCBIT=m +CONFIG_ISDN_DRV_SC=m +CONFIG_ISDN_DRV_ACT2000=m +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +CONFIG_GIGASET_M101=m +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_T1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_EVBUG=m + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_INPORT=m +# CONFIG_MOUSE_ATIXL is not set +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_WISTRON_BTNS=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_DEV_KMEM is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_DIGIEPCA=m +# CONFIG_ESPSERIAL is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_MOXA_SMARTIO_NEW=m +# CONFIG_ISI is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_SPECIALIX=m +# CONFIG_SPECIALIX_RTSCTS is not set +CONFIG_SX=m +# CONFIG_RIO is not set +CONFIG_STALDRV=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_EXAR_ST16C554=m +CONFIG_SERIAL_8250_HUB6=m +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_MCA=m + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_HVC_XEN=y +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_NVRAM=m +CONFIG_RTC=y +CONFIG_DTLK=m +CONFIG_R3964=m +CONFIG_APPLICOM=m +CONFIG_SONYPI=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_MWAVE=m +CONFIG_SCx200_GPIO=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +CONFIG_CS5535_GPIO=m +CONFIG_RAW_DRIVER=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_HPET=y +# CONFIG_HPET_RTC_IRQ is not set +CONFIG_HPET_MMAP=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=m +CONFIG_TCG_TIS=m +CONFIG_TCG_NSC=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TELCLOCK=m +CONFIG_DEVPORT=y +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIMTEC=m +CONFIG_SCx200_I2C=m +CONFIG_SCx200_I2C_SCL=12 +CONFIG_SCx200_I2C_SDA=13 +CONFIG_SCx200_ACB=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_STUB=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2C_PCA_ISA=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_DS1682=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_TSL2550=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +CONFIG_SPI_LM70_LLP=m + +# +# SPI Protocol Masters +# +CONFIG_SPI_AT25=m +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_TLE62X0=m +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2760=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=m +CONFIG_BATTERY_DS2760=m +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_SC1200_WDT=m +CONFIG_SCx200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_SBC7240_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# ISA-based Watchdog Cards +# +CONFIG_PCWATCHDOG=m +CONFIG_MIXCOMWD=m +CONFIG_WDT=m +CONFIG_WDT_501=y + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB=m +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +# CONFIG_SSB_PCMCIAHOST is not set +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +CONFIG_MFD_SM501=m + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set + +# +# Encoders/decoders and other helper chips +# + +# +# Audio decoders +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# MPEG video encoders +# +CONFIG_VIDEO_CX2341X=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_OSS=m +CONFIG_VIDEO_SAA7134_DVB=m +# CONFIG_VIDEO_MXB is not set +# CONFIG_VIDEO_DPC is not set +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_V4L_USB_DRIVERS=y +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_29XXX=y +CONFIG_VIDEO_PVRUSB2_24XXX=y +CONFIG_VIDEO_PVRUSB2_SYSFS=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +# CONFIG_USB_OV511 is not set +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_CADET=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +# CONFIG_RADIO_TYPHOON_PROC_FS is not set +CONFIG_RADIO_ZOLTRIX=m +CONFIG_USB_DSBR=m +CONFIG_DVB_CORE=m +CONFIG_DVB_CORE_ATTACH=y +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_CINERGYT2=m +CONFIG_DVB_CINERGYT2_TUNING=y +CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 +CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 +CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 +CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y +CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +# CONFIG_DVB_FE_CUSTOMISE is not set + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_STV0299=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_MT312=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_TDA10086=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_S5H1409=m + +# +# Tuners/PLL support +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TDA827X=m +CONFIG_DVB_TUNER_QT1010=m +CONFIG_DVB_TUNER_MT2060=m +CONFIG_DVB_TUNER_MT2266=m +CONFIG_DVB_TUNER_MT2131=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# Miscellaneous devices +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_TUA6100=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_TUNER=m +# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set +CONFIG_TUNER_MT20XX=m +CONFIG_TUNER_TDA8290=m +CONFIG_TUNER_TEA5761=m +CONFIG_TUNER_TEA5767=m +CONFIG_TUNER_SIMPLE=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_DAB=y +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_AGP=m +CONFIG_AGP_ALI=m +CONFIG_AGP_ATI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=m +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AGP_EFFICEON=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_VGASTATE=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_DDC=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_SVGALIB=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +CONFIG_FB_ASILIANT=y +CONFIG_FB_IMSTT=y +CONFIG_FB_VGA16=m +CONFIG_FB_UVESA=m +CONFIG_FB_VESA=m +CONFIG_FB_EFI=y +CONFIG_FB_IMAC=y +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_I2C=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_BACKLIGHT=y +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_CYBLA=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +# CONFIG_FB_GEODE_GX_SET_FBSIZE is not set +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_SM501=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_LTV350QV=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=m + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VIDEO_SELECT=y +CONFIG_MDA_CONSOLE=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=m +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_RTCTIMER=m +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_SUPPORT_OLD_API=y +# CONFIG_SND_VERBOSE_PROCFS is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AD1848_LIB=m +CONFIG_SND_CS4231_LIB=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SB16_DSP=m + +# +# ISA devices +# +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4232=m +CONFIG_SND_CS4236=m +CONFIG_SND_DT019X=m +CONFIG_SND_ES968=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_SC6000=m +CONFIG_SND_GUS_SYNTH=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL=y +CONFIG_SND_SGALAXY=m +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y + +# +# PCI devices +# +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 + +# +# SPI devices +# + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y + +# +# PCMCIA devices +# +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m + +# +# System on Chip audio support +# +CONFIG_SND_SOC=m + +# +# SoC Audio support for SuperH +# + +# +# Open Sound System +# +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_MSNDCLAS=m +CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin" +CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin" +CONFIG_SOUND_MSNDPIN=m +CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin" +CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin" +CONFIG_SOUND_OSS=m +# CONFIG_SOUND_TRACEINIT is not set +CONFIG_SOUND_DMAP=y +CONFIG_SOUND_SSCAPE=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_MSS=m +CONFIG_SOUND_MPU401=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PSS=m +CONFIG_PSS_MIXER=y +CONFIG_SOUND_SB=m +CONFIG_SOUND_YM3812=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_AEDSP16=m +CONFIG_SC6600=y +CONFIG_SC6600_JOY=y +CONFIG_SC6600_CDROM=4 +CONFIG_SC6600_CDROMBASE=0 +CONFIG_AEDSP16_MSS=y +# CONFIG_AEDSP16_SBPRO is not set +CONFIG_SOUND_KAHLUA=m +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT_POWERBOOK=y +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DEVICE_CLASS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_PERSIST is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_SSB=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_LIBUSUAL=y + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y + +# +# USB port drivers +# +CONFIG_USB_USS720=m + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_AIRPRIME=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_NET2280=m +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set + +# +# MMC/SD/SDIO support, can only select one arch from MMC and MSS +# +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m + +# +# MMC/SD Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +# CONFIG_MSS is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_WRAP=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INFINIBAND_AMSO1100_DEBUG=y +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_MLX4_INFINIBAND=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +CONFIG_EDAC=y + +# +# Reporting subsystems +# +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=m +# CONFIG_EDAC_AMD76X is not set +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_I5000=m +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_TEST=m + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y + +# +# SPI RTC drivers +# +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_V3020=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_DCA=m +CONFIG_AUXDISPLAY=y +CONFIG_KS0108=m +CONFIG_KS0108_PORT=0x378 +CONFIG_KS0108_DELAY=2 +CONFIG_CFAG12864B=m +CONFIG_CFAG12864B_RATE=20 + +# +# Userspace I/O +# +CONFIG_UIO=m +CONFIG_UIO_CIF=m + +# +# Firmware Drivers +# +CONFIG_EDD=y +# CONFIG_EDD_OFF is not set +CONFIG_EFI_VARS=y +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_STATISTICS=y +CONFIG_FS_POSIX_ACL=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_SECURITY=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_MINIX_FS=m +CONFIG_ROMFS_FS=m +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_QUOTA_COMPAT=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_SIM_FS=m +CONFIG_VZ_QUOTA=m +# CONFIG_VZ_QUOTA_UNLOAD is not set +CONFIG_VZ_QUOTA_UGID=y +CONFIG_QUOTACTL=y +CONFIG_DNOTIFY=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +# CONFIG_NTFS_RW is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_VMCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_CONFIGFS_FS=m + +# +# Miscellaneous filesystems +# +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=m +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +CONFIG_CRAMFS=y +CONFIG_VXFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m +CONFIG_DEFAULT_RELATIME=y +CONFIG_DEFAULT_RELATIME_VAL=1 + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +CONFIG_SYSV68_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_INSTRUMENTATION=y +CONFIG_PROFILING=y +CONFIG_OPROFILE=m +CONFIG_KPROBES=y +# CONFIG_MARKERS is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_PRINTK_TIME=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +CONFIG_SYSRQ_DEBUG=y +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_FRAME_POINTER is not set +# CONFIG_FORCED_INLINING is not set +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_LKDTM is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set +CONFIG_NONPROMISC_DEVMEM=y +CONFIG_EARLY_PRINTK=y +# CONFIG_WRAPPER_PRINT is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set + +# +# Page alloc debug is incompatible with Software Suspend on i386 +# +# CONFIG_DEBUG_RODATA is not set +# CONFIG_4KSTACKS is not set +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_DOUBLEFAULT=y +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=0 + +# +# Security options +# + +# +# Grsecurity +# +CONFIG_GRKERNSEC=y + +# +# Executable Protections +# +CONFIG_GRKERNSEC_TPE=y +CONFIG_GRKERNSEC_TPE_ALL=y +# CONFIG_GRKERNSEC_TPE_INVERT is not set +CONFIG_GRKERNSEC_TPE_GID=1005 + +# +# Sysctl support +# +CONFIG_GRKERNSEC_SYSCTL=y +# CONFIG_GRKERNSEC_SYSCTL_ON is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=4 +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ABLKCIPHER=m +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_586=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_PADLOCK=y +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_HAVE_KVM=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y + +# +# User resources +# +CONFIG_BEANCOUNTERS=y +CONFIG_BC_RSS_ACCOUNTING=y +CONFIG_BC_IO_ACCOUNTING=y +CONFIG_BC_IO_SCHED=y +CONFIG_BC_SWAP_ACCOUNTING=y +CONFIG_BC_PROC=y +# CONFIG_BC_DEBUG is not set +CONFIG_DRM_VIA_CHROME9=m --- linux-2.6.24.orig/debian/binary-custom.d/openvz/vars +++ linux-2.6.24/debian/binary-custom.d/openvz/vars @@ -0,0 +1,7 @@ +arch="i386 amd64" +supported="Generic" +target="OpenVZ kernel" +desc="OpenVZ Virtualization enabled kernel" +bootloader="lilo (>= 19.1) | grub" +provides="kvm-api-4, redhat-cluster-modules" +section_image="universe/base" --- linux-2.6.24.orig/debian/binary-custom.d/openvz/config.amd64 +++ linux-2.6.24/debian/binary-custom.d/openvz/config.amd64 @@ -0,0 +1,3866 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24-16-openvz +# Wed Apr 9 21:10:26 2008 +# +CONFIG_64BIT=y +# CONFIG_X86_32 is not set +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +# CONFIG_QUICKLIST is not set +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_DMI=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_ARCH_SUPPORTS_OPROFILE=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +CONFIG_AUDIT_ARCH=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_HT=y +# CONFIG_KTIME_SCALAR is not set +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_VERSION_SIGNATURE="Ubuntu 2.6.24-4.6-server" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +# CONFIG_TASK_DELAY_ACCT is not set +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_NS=y +CONFIG_CPUSETS=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_FAIR_USER_SCHED is not set +# CONFIG_FAIR_CGROUP_SCHED is not set +CONFIG_VZ_FAIRSCHED=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_PROC_PID_CPUSET=y +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_KMOD=y +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_BLK_DEV_BSG is not set +CONFIG_BLOCK_COMPAT=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PREEMPT_NOTIFIERS=y + +# +# Processor type and features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_NUMAQ is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_ES7000 is not set +# CONFIG_X86_VSMP is not set +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_L1_CACHE_BYTES=128 +CONFIG_X86_INTERNODE_CACHE_BYTES=128 +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_GOOD_APIC=y +CONFIG_X86_TSC=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_GART_IOMMU=y +CONFIG_CALGARY_IOMMU=y +CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +CONFIG_SWIOTLB=y +CONFIG_NR_CPUS=64 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_BKL is not set +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +# CONFIG_NMI_WATCHDOG is not set +CONFIG_X86_MCE=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_MICROCODE=m +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +CONFIG_NUMA=y +CONFIG_K8_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NODES_SHIFT=6 +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_DISCONTIGMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_NEED_MULTIPLE_NODES=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_MIGRATION=y +CONFIG_RESOURCES_64BIT=y +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_MTRR=y +CONFIG_SECCOMP=y +CONFIG_CC_STACKPROTECTOR=y +# CONFIG_CC_STACKPROTECTOR_ALL is not set +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=100 +CONFIG_KEXEC=y +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x200000 +CONFIG_RELOCATABLE=y +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_HOTPLUG_CPU=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y +CONFIG_OUT_OF_LINE_PFN_TO_PAGE=y + +# +# Power management options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_PM=y +CONFIG_PM_LEGACY=y +CONFIG_PM_DEBUG=y +# CONFIG_PM_VERBOSE is not set +CONFIG_PM_TRACE=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND_SMP_POSSIBLE=y +CONFIG_SUSPEND=y +CONFIG_PM_DISABLE_CONSOLE=y +CONFIG_HIBERNATION_SMP_POSSIBLE=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=m +CONFIG_ACPI_BAY=m +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_CUSTOM_DSDT_INITRD=y +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_SBS=m + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=m +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# +# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set +# CONFIG_X86_SPEEDSTEP_LIB is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +# CONFIG_DMAR is not set +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_IA32_EMULATION=y +# CONFIG_IA32_AOUT is not set +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y + +# +# OpenVZ +# +CONFIG_VE=y +CONFIG_VE_CALLS=m +CONFIG_VZ_GENCALLS=y +CONFIG_VE_NETDEV=m +CONFIG_VE_ETHDEV=m +CONFIG_VZ_DEV=m +CONFIG_VE_IPTABLES=y +CONFIG_VZ_WDOG=m +CONFIG_VZ_CHECKPOINT=m + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_NET_NS=y +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_CONG_ILLINOIS=m +# CONFIG_DEFAULT_BIC is not set +# CONFIG_DEFAULT_CUBIC is not set +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_VEGAS is not set +# CONFIG_DEFAULT_WESTWOOD is not set +CONFIG_DEFAULT_RENO=y +CONFIG_DEFAULT_TCP_CONG="reno" +CONFIG_TCP_MD5SIG=y +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_MULTIPLE_TABLES=y +# CONFIG_IPV6_SUBTREES is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK_ENABLED=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +# CONFIG_NF_CONNTRACK_SANE is not set +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m + +# +# DECnet: Netfilter Configuration +# +CONFIG_DECNET_NF_GRABULATOR=m + +# +# Bridge: Netfilter Configuration +# +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_IP_DCCP_ACKVEC=y + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +CONFIG_IP_DCCP_CCID2=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=m +CONFIG_IP_DCCP_TFRC_LIB=m +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_CCID3_RTO=100 + +# +# DCCP Kernel Hacking +# +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_NET_DCCPPROBE=m +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=y +CONFIG_ATM_CLIP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +CONFIG_X25=m +CONFIG_LAPB=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_WAN_ROUTER=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RR=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +# CONFIG_NET_CLS_POLICE is not set +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +CONFIG_NET_TCPPROBE=m +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_YAM=m +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +# CONFIG_TOIM3232_DONGLE is not set +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# Old SIR device drivers +# + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_FIB_RULES=y + +# +# Wireless +# +CONFIG_CFG80211=m +CONFIG_NL80211=y +CONFIG_WIRELESS_EXT=y +CONFIG_MAC80211=m +CONFIG_MAC80211_RCSIMPLE=y +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +CONFIG_NET_9P=m +CONFIG_NET_9P_FD=m +CONFIG_NET_9P_VIRTIO=m +# CONFIG_NET_9P_DEBUG is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_MTD_OOPS=m + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PNC2000=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCECC=m +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_DOCPROBE_ADDRESS=0 +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_SIM=m + +# +# UBI - Unsorted block images +# +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_GLUEBI=y + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +CONFIG_PARPORT_PC_FIFO=y +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=m +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_VIRTIO_BLK=m +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_EEPROM_93CX6=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +CONFIG_MSI_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=m + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_IDEDISK=m +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_DELKIN=m +CONFIG_BLK_DEV_IDECD=m +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDESCSI=m +CONFIG_BLK_DEV_IDEACPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +CONFIG_BLK_DEV_IDEPNP=y + +# +# PCI IDE chipsets support +# +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDEPCI_PCIBUS_ORDER is not set +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_GENERIC is not set +CONFIG_BLK_DEV_OPTI621=m +# CONFIG_BLK_DEV_RZ1000 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_AEC62XX=m +CONFIG_BLK_DEV_ALI15X3=m +# CONFIG_WDC_ALI15X3 is not set +CONFIG_BLK_DEV_AMD74XX=m +CONFIG_BLK_DEV_ATIIXP=m +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_TRIFLEX is not set +CONFIG_BLK_DEV_CY82C693=m +# CONFIG_BLK_DEV_CS5520 is not set +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_HPT34X=m +# CONFIG_HPT34X_AUTODMA is not set +CONFIG_BLK_DEV_HPT366=m +# CONFIG_BLK_DEV_JMICRON is not set +CONFIG_BLK_DEV_SC1200=m +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_IT821X is not set +CONFIG_BLK_DEV_NS87415=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +CONFIG_PDC202XX_BURST=y +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SIS5513 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_TRM290=m +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BLK_DEV_TC86C001=m +# CONFIG_IDE_ARM is not set +CONFIG_BLK_DEV_IDEDMA=y +CONFIG_IDE_ARCH_OBSOLETE_INIT=y +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_AHCI=m +CONFIG_SATA_SVW=m +CONFIG_ATA_PIIX=m +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_PROMISE=m +CONFIG_SATA_SX4=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SATA_INIC162X=m +CONFIG_PATA_ACPI=m +# CONFIG_PATA_ALI is not set +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_CMD640_PCI is not set +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CYPRESS is not set +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_HPT366=m +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3_DMA is not set +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OPTIDMA is not set +CONFIG_PATA_PCMCIA=m +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +CONFIG_PATA_RZ1000=m +# CONFIG_PATA_SC1200 is not set +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_PLATFORM=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_MULTIPATH_RDAC=m +CONFIG_DM_MULTIPATH_HP=m +# CONFIG_DM_DELAY is not set +CONFIG_DM_UEVENT=y +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_LOGGING=y + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=m + +# +# Subsystem Options +# +# CONFIG_IEEE1394_VERBOSEDEBUG is not set + +# +# Controllers +# +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_OHCI1394=m + +# +# Protocols +# +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_I2O=m +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +CONFIG_IFB=m +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NET_SB1000=m +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_FIXED_PHY=m +# CONFIG_FIXED_MII_10_FDX is not set +# CONFIG_FIXED_MII_100_FDX is not set +CONFIG_FIXED_MII_1000_FDX=y +CONFIG_FIXED_MII_AMNT=1 +CONFIG_MDIO_BITBANG=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_HP100=m +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +# CONFIG_PCNET32_NAPI is not set +CONFIG_AMD8111_ETH=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +# CONFIG_FORCEDETH_NAPI is not set +CONFIG_EEPRO100=m +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_RHINE_NAPI=y +CONFIG_SC92031=m +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NETDEV_1000=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000_NAPI=y +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_SIS190=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +# CONFIG_SK98LIN is not set +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T1_NAPI=y +CONFIG_CHELSIO_T3=m +CONFIG_IXGBE=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_MYRI10GE=m +CONFIG_NETXEN_NIC=m +CONFIG_NIU=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_TEHUTI=m +CONFIG_TR=y +CONFIG_IBMOL=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_ABYSS=m + +# +# Wireless LAN +# +CONFIG_WLAN_PRE80211=y +CONFIG_STRIP=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_NETWAVE=m +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +# CONFIG_PLX_HERMES is not set +# CONFIG_TMD_HERMES is not set +# CONFIG_NORTEL_HERMES is not set +# CONFIG_PCI_HERMES is not set +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +# CONFIG_IWLWIFI is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_PIO=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +# CONFIG_BCM43XX_PIO_MODE is not set +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43_DMA=y +CONFIG_B43_PIO=y +CONFIG_B43_DMA_AND_PIO_MODE=y +# CONFIG_B43_DMA_MODE is not set +# CONFIG_B43_PIO_MODE is not set +CONFIG_B43LEGACY=m +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_DEBUG=y +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_PIO=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2400PCI=m +CONFIG_RT2400PCI_RFKILL=y +CONFIG_RT2500PCI=m +CONFIG_RT2500PCI_RFKILL=y +CONFIG_RT61PCI=m +CONFIG_RT61PCI_RFKILL=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +# CONFIG_RT2X00_LIB_DEBUGFS is not set +# CONFIG_RT2X00_DEBUG is not set + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +# CONFIG_USB_NET_ZAURUS is not set +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_WAN=y +CONFIG_LANMEDIA=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +CONFIG_HDLC_X25=m +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +CONFIG_PC300=m +CONFIG_PC300_MLPPP=y + +# +# Cyclades-PC300 MLPPP support is disabled. +# + +# +# Refer to the file README.mlppp, provided by PC300 package. +# +# CONFIG_PC300TOO is not set +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +CONFIG_LAPBETHER=m +CONFIG_X25_ASY=m +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_FORE200E_MAYBE=m +CONFIG_ATM_FORE200E_PCA=y +CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E=m +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_NET_FC=y +CONFIG_SHAPER=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_3=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_BKM_A4T=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_W6692=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_ENTERNOW_PCI=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_TELES_CS=m + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_HDLC=y + +# +# Active cards +# +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +CONFIG_GIGASET_M101=m +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_EVBUG=m + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_DEV_KMEM is not set +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_COMPUTONE=m +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_DIGIEPCA=m +CONFIG_MOXA_INTELLIO=m +# CONFIG_MOXA_SMARTIO is not set +CONFIG_MOXA_SMARTIO_NEW=m +# CONFIG_ISI is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_SPECIALIX=m +# CONFIG_SPECIALIX_RTSCTS is not set +CONFIG_SX=m +CONFIG_RIO=m +# CONFIG_RIO_OLDPCI is not set +CONFIG_STALDRV=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_NVRAM=m +CONFIG_RTC=y +CONFIG_R3964=m +CONFIG_APPLICOM=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_MWAVE=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +CONFIG_RAW_DRIVER=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_HPET=y +# CONFIG_HPET_RTC_IRQ is not set +CONFIG_HPET_MMAP=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=m +CONFIG_TCG_TIS=m +CONFIG_TCG_NSC=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TELCLOCK=m +CONFIG_DEVPORT=y +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_STUB=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_DS1682=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_TSL2550=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +CONFIG_SPI_LM70_LLP=m + +# +# SPI Protocol Masters +# +CONFIG_SPI_AT25=m +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_TLE62X0=m +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2760=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=m +CONFIG_BATTERY_DS2760=m +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_SC1200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB=m +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +# CONFIG_SSB_PCMCIAHOST is not set +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +CONFIG_MFD_SM501=m + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set + +# +# Encoders/decoders and other helper chips +# + +# +# Audio decoders +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# MPEG video encoders +# +CONFIG_VIDEO_CX2341X=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_OSS=m +CONFIG_VIDEO_SAA7134_DVB=m +# CONFIG_VIDEO_MXB is not set +# CONFIG_VIDEO_DPC is not set +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_V4L_USB_DRIVERS=y +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_29XXX=y +CONFIG_VIDEO_PVRUSB2_24XXX=y +CONFIG_VIDEO_PVRUSB2_SYSFS=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +# CONFIG_USB_OV511 is not set +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_USB_DSBR=m +CONFIG_DVB_CORE=m +CONFIG_DVB_CORE_ATTACH=y +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_CINERGYT2=m +CONFIG_DVB_CINERGYT2_TUNING=y +CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 +CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 +CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 +CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y +CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +# CONFIG_DVB_FE_CUSTOMISE is not set + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_STV0299=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_MT312=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_TDA10086=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_S5H1409=m + +# +# Tuners/PLL support +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TDA827X=m +CONFIG_DVB_TUNER_QT1010=m +CONFIG_DVB_TUNER_MT2060=m +CONFIG_DVB_TUNER_MT2266=m +CONFIG_DVB_TUNER_MT2131=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# Miscellaneous devices +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_TUA6100=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_TUNER=m +# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set +CONFIG_TUNER_MT20XX=m +CONFIG_TUNER_TDA8290=m +CONFIG_TUNER_TEA5761=m +CONFIG_TUNER_TEA5767=m +CONFIG_TUNER_SIMPLE=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_DAB=y +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_VGASTATE=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_DDC=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_SVGALIB=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +CONFIG_FB_ASILIANT=y +CONFIG_FB_IMSTT=y +CONFIG_FB_VGA16=m +CONFIG_FB_UVESA=m +CONFIG_FB_VESA=m +CONFIG_FB_EFI=y +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_I2C=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_BACKLIGHT=y +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +# CONFIG_FB_GEODE_GX_SET_FBSIZE is not set +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_SM501=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_LTV350QV=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=m + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VIDEO_SELECT=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=m +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_RTCTIMER=m +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_SUPPORT_OLD_API=y +# CONFIG_SND_VERBOSE_PROCFS is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB16_DSP=m + +# +# PCI devices +# +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 + +# +# SPI devices +# + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y + +# +# PCMCIA devices +# +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m + +# +# System on Chip audio support +# +CONFIG_SND_SOC=m + +# +# SoC Audio support for SuperH +# + +# +# Open Sound System +# +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_MSNDCLAS=m +CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin" +CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin" +CONFIG_SOUND_MSNDPIN=m +CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin" +CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin" +CONFIG_SOUND_OSS=m +# CONFIG_SOUND_TRACEINIT is not set +CONFIG_SOUND_DMAP=y +CONFIG_SOUND_SSCAPE=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_MSS=m +CONFIG_SOUND_MPU401=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PSS=m +CONFIG_PSS_MIXER=y +CONFIG_SOUND_SB=m +CONFIG_SOUND_YM3812=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_AEDSP16=m +CONFIG_SC6600=y +CONFIG_SC6600_JOY=y +CONFIG_SC6600_CDROM=4 +CONFIG_SC6600_CDROMBASE=0 +CONFIG_AEDSP16_MSS=y +# CONFIG_AEDSP16_SBPRO is not set +CONFIG_SOUND_KAHLUA=m +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT_POWERBOOK=y +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DEVICE_CLASS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_PERSIST is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_SSB=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_LIBUSUAL=y + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y + +# +# USB port drivers +# +CONFIG_USB_USS720=m + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_AIRPRIME=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_GADGET_AMD5536UDC=y +CONFIG_USB_AMD5536UDC=m +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set + +# +# MMC/SD/SDIO support, can only select one arch from MMC and MSS +# +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m + +# +# MMC/SD Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_SPI=m +# CONFIG_MSS is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INFINIBAND_AMSO1100_DEBUG=y +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_MLX4_INFINIBAND=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +CONFIG_EDAC=y + +# +# Reporting subsystems +# +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I5000=m +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_TEST=m + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y + +# +# SPI RTC drivers +# +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_V3020=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_DCA=m +CONFIG_AUXDISPLAY=y +CONFIG_KS0108=m +CONFIG_KS0108_PORT=0x378 +CONFIG_KS0108_DELAY=2 +CONFIG_CFAG12864B=m +CONFIG_CFAG12864B_RATE=20 + +# +# Userspace I/O +# +CONFIG_UIO=m +CONFIG_UIO_CIF=m + +# +# Firmware Drivers +# +CONFIG_EDD=y +# CONFIG_EDD_OFF is not set +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_STATISTICS=y +CONFIG_FS_POSIX_ACL=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_SECURITY=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_MINIX_FS=m +CONFIG_ROMFS_FS=m +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_QUOTA_COMPAT=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_SIM_FS=m +CONFIG_VZ_QUOTA=m +# CONFIG_VZ_QUOTA_UNLOAD is not set +CONFIG_VZ_QUOTA_UGID=y +CONFIG_QUOTACTL=y +CONFIG_DNOTIFY=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +# CONFIG_NTFS_RW is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_VMCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_CONFIGFS_FS=m + +# +# Miscellaneous filesystems +# +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=m +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +CONFIG_CRAMFS=y +CONFIG_VXFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m +CONFIG_DEFAULT_RELATIME=y +CONFIG_DEFAULT_RELATIME_VAL=1 + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +CONFIG_SYSV68_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_INSTRUMENTATION=y +CONFIG_PROFILING=y +CONFIG_OPROFILE=m +CONFIG_KPROBES=y +# CONFIG_MARKERS is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_PRINTK_TIME=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +CONFIG_SYSRQ_DEBUG=y +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_FRAME_POINTER is not set +# CONFIG_FORCED_INLINING is not set +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_LKDTM is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set +CONFIG_NONPROMISC_DEVMEM=y +CONFIG_EARLY_PRINTK=y +# CONFIG_WRAPPER_PRINT is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_IOMMU_DEBUG is not set +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=0 + +# +# Security options +# + +# +# Grsecurity +# +CONFIG_GRKERNSEC=y + +# +# Executable Protections +# +CONFIG_GRKERNSEC_TPE=y +CONFIG_GRKERNSEC_TPE_ALL=y +# CONFIG_GRKERNSEC_TPE_INVERT is not set +CONFIG_GRKERNSEC_TPE_GID=1005 + +# +# Sysctl support +# +CONFIG_GRKERNSEC_SYSCTL=y +# CONFIG_GRKERNSEC_SYSCTL_ON is not set + +# +# Logging Options +# +CONFIG_GRKERNSEC_FLOODTIME=10 +CONFIG_GRKERNSEC_FLOODBURST=4 +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ABLKCIPHER=m +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_X86_64=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_X86_64=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_HW=y +CONFIG_HAVE_KVM=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +CONFIG_VIRTIO=m +CONFIG_VIRTIO_RING=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y + +# +# User resources +# +CONFIG_BEANCOUNTERS=y +CONFIG_BC_RSS_ACCOUNTING=y +CONFIG_BC_IO_ACCOUNTING=y +CONFIG_BC_IO_SCHED=y +CONFIG_BC_SWAP_ACCOUNTING=y +CONFIG_BC_PROC=y +# CONFIG_BC_DEBUG is not set +CONFIG_DRM_VIA_CHROME9=m --- linux-2.6.24.orig/debian/binary-custom.d/README +++ linux-2.6.24/debian/binary-custom.d/README @@ -0,0 +1,46 @@ +Welcome to the answer to all your requests. + +The binary-custom target for the kernel allows easy building of special +kernels that would otherwise not be allowed in our tree. The way this is +achieved is to disaccociate the normal build process and patches required +for these kernels. + +In this directory, you will need to create 4 files for your custom +kernel. All files are placed in a subdirectory. This subdirectory is the +name of your flavour (IOW, what will be appended to 2.6.X-ABI- to get the +package name). So the subdirectory name should be package name safe (e.g., +no underscores). There are currently at least three files and one directory +required in each subdirectory: + + FLAV/config.ARCH : The kernel .config used to build the kernel + (one for each architecture this flavour will + build on). + + FLAV/patchset : The directory containing the patchset for this + flavour, to be applied with -p1. + + FLAV/rules : A make file snippet for any target overrides + (usually empty). See below for what can be here. + + FLAV/vars : Template for control file generation. + +The rules file can contain overrides for some variables used during the +build. Here is a list of what can be defined in this make file snippet: + + build_image_FLAV : The image make target (e.g. bzImage). + + kernel_file_FLAV : The resulting kernel image from the build. + +The patchset directory contains a series of patches, named using a convention +such as -.patch. e.g. 0001-foo.patch, 0002-bar.patch. The +patches will then be applied in increasing order by number. + +To add your custom kernel to the normal build, add it to the +custom_flavours var for each architecture it will build on in the +debian/rules.d/ARCH.mk file. + +Once done, you can specifically build the custom image using: + + fakeroot debian/rules custom-binary-FLAV + +That's it! --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/patchset/0008-ACPI-fan-driver-registering-with-fan_sysfs-driver.patch +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/patchset/0008-ACPI-fan-driver-registering-with-fan_sysfs-driver.patch @@ -0,0 +1,187 @@ +From 990abc4c7483a92bddfffe16fa5da64f81d89c22 Mon Sep 17 00:00:00 2001 +From: Sujith Thomas +Date: Wed, 12 Dec 2007 11:15:44 +0530 +Subject: [PATCH] ACPI fan driver registering with fan_sysfs driver + +Signed-off-by: Sujith Thomas + +Callbacks for 'state' & 'max_state' attributes +--- + drivers/acpi/Kconfig | 1 + + drivers/acpi/fan.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 107 insertions(+), 1 deletions(-) + +diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig +index b065d16..0ab6c35 100644 +--- a/drivers/acpi/Kconfig ++++ b/drivers/acpi/Kconfig +@@ -146,6 +146,7 @@ config ACPI_VIDEO + + config ACPI_FAN + tristate "Fan" ++ depends on FAN_SYSFS + default y + help + This driver adds support for ACPI fan devices, allowing user-mode +diff --git a/drivers/acpi/fan.c b/drivers/acpi/fan.c +index a5a5532..00b7574 100644 +--- a/drivers/acpi/fan.c ++++ b/drivers/acpi/fan.c +@@ -33,6 +33,7 @@ + + #include + #include ++#include + + #define ACPI_FAN_COMPONENT 0x00200000 + #define ACPI_FAN_CLASS "fan" +@@ -64,6 +65,83 @@ static struct acpi_driver acpi_fan_driver = { + }, + }; + ++struct acpi_fan { ++ struct acpi_device *device; ++ struct fan_device *fd; ++}; ++ ++/* -------------------------------------------------------------------------- ++ FS Interface (/sys/class/fan) ++ -------------------------------------------------------------------------- */ ++ ++static int acpi_fan_get_max_state(struct fan_device*fd, char*buf) ++{ ++ struct acpi_fan *fan; ++ ++ if (!fd | !buf) ++ return -EINVAL; ++ ++ fan = (struct acpi_fan *)class_get_devdata(&fd->class_dev); ++ ++ /*ACPI states*/ ++ if (fan) ++ buf += sprintf(buf, "%d\n", ACPI_D_STATES_MAX + 1); ++ else ++ buf += sprintf(buf, "%d\n", 0); ++ ++ return 0; ++} ++ ++static int acpi_fan_get_state(struct fan_device *fd, char *buf) ++{ ++ int state = 0; ++ struct acpi_fan *fan; ++ ++ if (!fd | !buf) ++ return -EINVAL; ++ ++ fan = (struct acpi_fan *)class_get_devdata(&fd->class_dev); ++ ++ /*ACPI supports only on/off*/ ++ if (fan) { ++ if (acpi_bus_get_power(fan->device->handle, &state)) ++ return -EFAULT; ++ else ++ buf += sprintf(buf, "%d\n", state); ++ } ++ ++ return 0; ++} ++ ++static int acpi_fan_set_state(struct fan_device *fd, const char *buf) ++{ ++ int state = 0; ++ int result = 0; ++ struct acpi_fan *fan; ++ ++ if (!fd | !buf) ++ return -EINVAL; ++ fan = (struct acpi_fan *)class_get_devdata(&fd->class_dev); ++ ++ if (!sscanf(buf, "%d", &state)) ++ return -EIO; ++ ++ if (state < 0 || state > ACPI_D_STATES_MAX) ++ return -EINVAL; ++ ++ result = acpi_bus_set_power(fan->device->handle, state); ++ if (result) ++ return result; ++ ++ return 0; ++} ++ ++static struct fan_ops acpi_fan_ops = { ++ .get_max_state = acpi_fan_get_max_state, ++ .get_cur_state = acpi_fan_get_state, ++ .set_cur_state = acpi_fan_set_state, ++}; ++ + /* -------------------------------------------------------------------------- + FS Interface (/proc) + -------------------------------------------------------------------------- */ +@@ -175,15 +253,23 @@ static int acpi_fan_remove_fs(struct acpi_device *device) + static int acpi_fan_add(struct acpi_device *device) + { + int result = 0; +- struct acpi_fan *fan = NULL; + int state = 0; ++ struct acpi_fan *fan = NULL; ++ struct fan_device *fd = NULL; ++ + + + if (!device) + return -EINVAL; + ++ fan = kzalloc(sizeof(struct acpi_fan), GFP_KERNEL); ++ if (!fan) ++ return -ENOMEM; ++ ++ fan->device = device; + strcpy(acpi_device_name(device), "Fan"); + strcpy(acpi_device_class(device), ACPI_FAN_CLASS); ++ acpi_driver_data(device) = fan; + + result = acpi_bus_get_power(device->handle, &state); + if (result) { +@@ -195,6 +281,16 @@ static int acpi_fan_add(struct acpi_device *device) + if (result) + goto end; + ++ fd = fan_device_register(device->pnp.bus_id, ++ &device->dev, fan, &acpi_fan_ops); ++ ++ if (IS_ERR(fd)) { ++ result = PTR_ERR(fd); ++ goto end; ++ } ++ ++ fan->fd = fd; ++ + printk(KERN_INFO PREFIX "%s [%s] (%s)\n", + acpi_device_name(device), acpi_device_bid(device), + !device->power.state ? "on" : "off"); +@@ -208,11 +304,20 @@ static int acpi_fan_add(struct acpi_device *device) + + static int acpi_fan_remove(struct acpi_device *device, int type) + { ++ struct acpi_fan *fan = NULL; ++ ++ + if (!device || !acpi_driver_data(device)) + return -EINVAL; + ++ fan = acpi_driver_data(device); ++ + acpi_fan_remove_fs(device); + ++ fan_device_unregister(fan->fd); ++ ++ kfree(fan); ++ + return 0; + } + +-- +1.5.3.7-dirty + --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/patchset/0001-Generic-sysfs-thermal-management-driver.patch +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/patchset/0001-Generic-sysfs-thermal-management-driver.patch @@ -0,0 +1,46 @@ +From 59608b6d0fcd56fb1d0080da934cef57126d4f5c Mon Sep 17 00:00:00 2001 +From: Sujith Thomas +Date: Wed, 12 Dec 2007 10:37:33 +0530 +Subject: [PATCH] Generic sysfs thermal management driver + +Signed-off-by: Sujith Thomas +--- + arch/x86/Kconfig | 9 +++++++++ + drivers/base/Makefile | 1 + + 2 files changed, 10 insertions(+), 0 deletions(-) + +diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig +index 391cb18..1a9e3b9 100644 +--- a/arch/x86/Kconfig ++++ b/arch/x86/Kconfig +@@ -1228,6 +1228,15 @@ config ARCH_HIBERNATION_HEADER + + source "kernel/power/Kconfig" + ++config THERMAL_SYSFS ++ tristate "Thermal Management support" ++ default y ++ ---help--- ++ Support thermal management in Sysfs. Thermal devices(sensors) ++ are exposed to sysfs with relevant attributes so that a user app ++ can do thermal management for the platform. ++ ++ + source "drivers/acpi/Kconfig" + + menuconfig APM +diff --git a/drivers/base/Makefile b/drivers/base/Makefile +index b39ea3f..14884cd 100644 +--- a/drivers/base/Makefile ++++ b/drivers/base/Makefile +@@ -12,6 +12,7 @@ obj-$(CONFIG_NUMA) += node.o + obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o + obj-$(CONFIG_SMP) += topology.o + obj-$(CONFIG_SYS_HYPERVISOR) += hypervisor.o ++obj-$(CONFIG_THERMAL_SYSFS) += thermal_sysfs.o + + ifeq ($(CONFIG_DEBUG_DRIVER),y) + EXTRA_CFLAGS += -DDEBUG +-- +1.5.3.7-dirty + --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/patchset/0003-Generic-fan-and-memory-controller-sysfs-class-driver.patch +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/patchset/0003-Generic-fan-and-memory-controller-sysfs-class-driver.patch @@ -0,0 +1,50 @@ +From 4cebaef75bdf97b58dca37c2b66efe835f7d9c06 Mon Sep 17 00:00:00 2001 +From: Sujith Thomas +Date: Wed, 12 Dec 2007 10:54:14 +0530 +Subject: [PATCH] Generic fan and memory controller sysfs class driver + +Signed-off-by: Sujith Thomas + +Generic sysfs fan driver: Exposes state & max_state attributes +Generic sysfs memory_controller driver : Exposes state & max_state attributes +--- + drivers/Kconfig | 3 ++- + drivers/Makefile | 1 + + 2 files changed, 3 insertions(+), 1 deletions(-) + +diff --git a/drivers/Kconfig b/drivers/Kconfig +index f4076d9..b535385 100644 +--- a/drivers/Kconfig ++++ b/drivers/Kconfig +@@ -14,6 +14,8 @@ source "drivers/parport/Kconfig" + + source "drivers/pnp/Kconfig" + ++source "drivers/sysfsclass/Kconfig" ++ + source "drivers/block/Kconfig" + + # misc before ide - BLK_DEV_SGIIOC4 depends on SGI_IOC4 +@@ -87,7 +89,6 @@ source "drivers/rtc/Kconfig" + source "drivers/dma/Kconfig" + + source "drivers/dca/Kconfig" +- + source "drivers/auxdisplay/Kconfig" + + source "drivers/kvm/Kconfig" +diff --git a/drivers/Makefile b/drivers/Makefile +index 314f0df..e210b25 100644 +--- a/drivers/Makefile ++++ b/drivers/Makefile +@@ -9,6 +9,7 @@ obj-$(CONFIG_PCI) += pci/ + obj-$(CONFIG_PARISC) += parisc/ + obj-$(CONFIG_RAPIDIO) += rapidio/ + obj-y += video/ ++obj-$(CONFIG_SYSFS_DEV_CLASS) += sysfsclass/ + obj-$(CONFIG_ACPI) += acpi/ + # PnP must come after ACPI since it will eventually need to check if acpi + # was used and do nothing if so +-- +1.5.3.7-dirty + --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/patchset/0006-ACPI-thermal-driver-registering-with-generic-thermal.patch +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/patchset/0006-ACPI-thermal-driver-registering-with-generic-thermal.patch @@ -0,0 +1,665 @@ +From bd243e4020f4bbce600330fd074af31973089cca Mon Sep 17 00:00:00 2001 +From: Sujith Thomas +Date: Wed, 12 Dec 2007 11:07:18 +0530 +Subject: [PATCH] ACPI thermal driver registering with generic thermal sysfs driver + +Signed-off-by: Sujith Thomas + +Callbacks for various attributes(critical,hot...) are added +Provided infrastructure for user mode applicatio to take over platform thermal management +--- + drivers/acpi/Kconfig | 5 +- + drivers/acpi/thermal.c | 508 +++++++++++++++++++++++++++++++++++++++++++++++- + 2 files changed, 507 insertions(+), 6 deletions(-) + +diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig +index ac09a5c..b065d16 100644 +--- a/drivers/acpi/Kconfig ++++ b/drivers/acpi/Kconfig +@@ -3,10 +3,11 @@ + # + + menuconfig ACPI +- bool "ACPI (Advanced Configuration and Power Interface) Support" ++ bool "ACPI Support (Advanced Configuration and Power Interface) Support" + depends on !X86_NUMAQ + depends on !X86_VISWS + depends on !IA64_HP_SIM ++ depends on PM || THERMAL_SYSFS + depends on IA64 || X86 + depends on PCI + depends on PM +@@ -181,7 +182,7 @@ config ACPI_HOTPLUG_CPU + + config ACPI_THERMAL + tristate "Thermal Zone" +- depends on ACPI_PROCESSOR ++ depends on THERMAL_SYSFS && ACPI_PROCESSOR + default y + help + This driver adds support for ACPI thermal zones. Most mobile and +diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c +index 5f79b44..417deed 100644 +--- a/drivers/acpi/thermal.c ++++ b/drivers/acpi/thermal.c +@@ -28,6 +28,8 @@ + * TBD: 1. Implement passive cooling hysteresis. + * 2. Enhance passive cooling (CPU) states/limit interface to support + * concepts of 'multiple limiters', upper/lower limits, etc. ++ * Modified: 1. Provide infrastructure from kernel to enable user-space ++ * thermal management algorithm + * + */ + +@@ -46,6 +48,7 @@ + + #include + #include ++#include + + #define ACPI_THERMAL_COMPONENT 0x04000000 + #define ACPI_THERMAL_CLASS "thermal_zone" +@@ -65,9 +68,6 @@ + #define ACPI_THERMAL_MAX_ACTIVE 10 + #define ACPI_THERMAL_MAX_LIMIT_STR_LEN 65 + +-#define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732>=0) ? ((long)t-2732+5)/10 : ((long)t-2732-5)/10) +-#define CELSIUS_TO_KELVIN(t) ((t+273)*10) +- + #define _COMPONENT ACPI_THERMAL_COMPONENT + ACPI_MODULE_NAME("thermal"); + +@@ -99,6 +99,11 @@ static int psv; + module_param(psv, int, 0644); + MODULE_PARM_DESC(psv, "Disable or override all passive trip points."); + ++#define ACPI_THERMAL_GROUP_TZD "thermalzone_devices" ++#define ACPI_THERMAL_GROUP_PSL "passive_devices" ++#define ACPI_THERMAL_GROUP_ALX "active_devices_x" ++#define ACPI_THERMAL_TRIP_ACTIVE "active_x" ++ + static int acpi_thermal_add(struct acpi_device *device); + static int acpi_thermal_remove(struct acpi_device *device, int type); + static int acpi_thermal_resume(struct acpi_device *device); +@@ -196,6 +201,9 @@ struct acpi_thermal { + struct acpi_handle_list devices; + struct timer_list timer; + struct mutex lock; ++ struct thermal_device *td; ++ struct thermal_device_attribute ++ *thermal_device_active_attr[ACPI_THERMAL_MAX_ACTIVE + 1]; + }; + + static const struct file_operations acpi_thermal_state_fops = { +@@ -235,6 +243,11 @@ static const struct file_operations acpi_thermal_polling_fops = { + .release = single_release, + }; + ++static int acpi_thermal_one_group_register(struct acpi_thermal *tz, char *name, ++ struct acpi_handle_list *devices); ++static int acpi_thermal_sysfs_register(struct acpi_thermal *tz); ++static void acpi_thermal_sysfs_unregister(struct acpi_thermal *tz); ++ + /* -------------------------------------------------------------------------- + Thermal Zone Management + -------------------------------------------------------------------------- */ +@@ -757,6 +770,16 @@ static void acpi_thermal_check(void *data) + tz->trips.active[i].temperature); + + /* ++ * Check for user/kernel algo ++ * ------------------------- ++ *If there is a thermal management application in userspace ++ *Or there are non CPU devices in this thermal zone ++ *Kernelspace solution won't handle this ++ */ ++ ++ if (THERMAL_KERNELSPACE == thermal_get_algo_mode()) { ++ ++ /* + * Invoke Policy + * ------------- + * Separated from the above check to allow individual policy to +@@ -770,6 +793,7 @@ static void acpi_thermal_check(void *data) + acpi_thermal_passive(tz); + if (state.active) + acpi_thermal_active(tz); ++ } + + /* + * Calculate State +@@ -1165,6 +1189,47 @@ static int acpi_thermal_remove_fs(struct acpi_device *device) + Driver Interface + -------------------------------------------------------------------------- */ + ++/* ++ * acpi_thermal_one_group_register ++ * ------------------------------ ++ * Registers a group such as _TZD,_PSL,_ALx with thermal_sysfs driver ++ * tz : pointer to the acpi_thermal structure ++ * name : Name of the group ++ * devices : List of devices in this group ++ */ ++static int acpi_thermal_one_group_register(struct acpi_thermal *tz, char *name, ++ struct acpi_handle_list *devices) ++{ ++ int result, i; ++ struct acpi_device *ad; ++ struct thermal_participant *participants; ++ ++ if (!tz || !name || !devices) ++ return -EINVAL; ++ ++ participants = ++ kzalloc(sizeof(struct thermal_participant) * devices->count, ++ GFP_KERNEL); ++ if (!participants) ++ return -ENOMEM; ++ ++ for (i = 0; i < devices->count; i++) { ++ result = acpi_bus_get_device(devices->handles[i], &ad); ++ if (result) { ++ kfree(participants); ++ return result; ++ } ++ participants[i].kobj = &ad->dev.kobj; ++ strlcpy(participants[i].name, ad->pnp.bus_id, KOBJ_NAME_LEN); ++ } ++ ++ result = ++ thermal_group_register(name, tz->td, devices->count, participants); ++ ++ kfree(participants); ++ return result; ++} ++ + static void acpi_thermal_notify(acpi_handle handle, u32 event, void *data) + { + struct acpi_thermal *tz = data; +@@ -1178,18 +1243,33 @@ static void acpi_thermal_notify(acpi_handle handle, u32 event, void *data) + + switch (event) { + case ACPI_THERMAL_NOTIFY_TEMPERATURE: ++ ACPI_DEBUG_PRINT((ACPI_DB_INFO, ++ "Received event from TZ: %s event type:%x \n", ++ tz->name, event)); + acpi_thermal_check(tz); ++ /*Event for user space algorithm */ ++ thermal_sysfs_generate_event(tz->td, KOBJ_CHANGE); + break; + case ACPI_THERMAL_NOTIFY_THRESHOLDS: ++ ACPI_DEBUG_PRINT((ACPI_DB_INFO, ++ "Received event from TZ: %s event type:%x \n", ++ tz->name, event)); + acpi_thermal_get_trip_points(tz); + acpi_thermal_check(tz); ++ thermal_sysfs_generate_event(tz->td, KOBJ_MOVE); + acpi_bus_generate_proc_event(device, event, 0); + acpi_bus_generate_netlink_event(device->pnp.device_class, + device->dev.bus_id, event, 0); + break; + case ACPI_THERMAL_NOTIFY_DEVICES: +- if (tz->flags.devices) ++ if (tz->flags.devices) { ++ thermal_group_unregister(tz->td, ++ ACPI_THERMAL_GROUP_TZD); + acpi_thermal_get_devices(tz); ++ acpi_thermal_one_group_register(tz, ++ ACPI_THERMAL_GROUP_TZD, ++ &tz->devices); ++ } + acpi_bus_generate_proc_event(device, event, 0); + acpi_bus_generate_netlink_event(device->pnp.device_class, + device->dev.bus_id, event, 0); +@@ -1240,6 +1320,419 @@ static int acpi_thermal_get_info(struct acpi_thermal *tz) + return 0; + } + ++static int acpi_thermal_sysfs_get_temperature(void *devdata, ++ struct thermal_device_attribute ++ *attr, int *temperature) ++{ ++ int result; ++ struct acpi_thermal *tz; ++ ++ if (!devdata || !temperature) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)devdata; ++ result = acpi_thermal_get_temperature(tz); ++ ++ if (result) ++ return result; ++ ++ *temperature = KELVIN_TO_CELSIUS(tz->temperature); ++ return 0; ++} ++ ++static int acpi_thermal_sysfs_get_critical(void *devdata, ++ struct thermal_device_attribute ++ *attr, int *critical) ++{ ++ struct acpi_thermal *tz; ++ ++ if (!devdata || !critical) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)devdata; ++ ++ if (tz->trips.critical.flags.valid) { ++ *critical = KELVIN_TO_CELSIUS(tz->trips.critical.temperature); ++ return 0; ++ } ++ ++ return -ENODEV; ++} ++ ++static int acpi_thermal_sysfs_get_hot(void *devdata, ++ struct thermal_device_attribute *attr, ++ int *hot) ++{ ++ struct acpi_thermal *tz; ++ ++ if (!devdata || !hot) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)devdata; ++ ++ if (tz->trips.hot.flags.valid) { ++ *hot = KELVIN_TO_CELSIUS(tz->trips.hot.temperature); ++ return 0; ++ } ++ ++ return -ENODEV; ++} ++ ++static int acpi_thermal_sysfs_get_passive(void *devdata, ++ struct thermal_device_attribute *attr, ++ int *passive) ++{ ++ struct acpi_thermal *tz; ++ ++ if (!devdata || !passive) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)devdata; ++ ++ if (tz->trips.passive.flags.valid) { ++ *passive = KELVIN_TO_CELSIUS(tz->trips.passive.temperature); ++ return 0; ++ } ++ ++ return -ENODEV; ++} ++ ++static int acpi_thermal_sysfs_get_polling_freq(void *devdata, ++ struct thermal_device_attribute ++ *attr, int *polling_freq) ++{ ++ struct acpi_thermal *tz; ++ ++ if (!devdata || !polling_freq) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)devdata; ++ ++ if (tz->polling_frequency) { ++ *polling_freq = tz->polling_frequency / 10; ++ return 0; ++ } ++ ++ return -ENODEV; ++} ++ ++static int acpi_thermal_sysfs_set_cooling_mode(void *devdata, ++ struct thermal_device_attribute ++ *attr, int cooling_mode) ++{ ++ int result; ++ struct acpi_thermal *tz; ++ ++ if (!devdata) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)devdata; ++ ++ if (tz->flags.cooling_mode) { ++ result = acpi_thermal_set_polling(tz, cooling_mode); ++ if (result) ++ return result; ++ ++ acpi_thermal_check(tz); ++ } ++ ++ return -ENODEV; ++} ++ ++/* ++ * acpi_thermal_sysfs_get_state ++ * ------------------------------ ++ * Gets the state of thermal zone which can be OK,critical,hot,passive,active[x] ++ */ ++static int ++acpi_thermal_sysfs_get_state(void *devdata, ++ struct thermal_device_attribute *attr, char *buf) ++{ ++ char *s = buf; ++ struct acpi_thermal *tz; ++ ++ if (!devdata || !buf) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)devdata; ++ ++ if (!tz->state.critical && !tz->state.hot && !tz->state.passive ++ && !tz->state.active) ++ s += sprintf(buf, "ok\n"); ++ else { ++ if (tz->state.critical) ++ s += sprintf(buf, "critical\n"); ++ else if (tz->state.hot) ++ s += sprintf(buf, "hot\n"); ++ else if (tz->state.passive) ++ s += sprintf(buf, "passive\n"); ++ else if (tz->state.active) ++ s += sprintf(buf, "active[%d]\n", ++ tz->state.active_index); ++ } ++ return (s - buf); ++} ++ ++static struct thermal_device_ops acpi_thermal_ops = { ++ .thermal_get_temperature = acpi_thermal_sysfs_get_temperature, ++ .thermal_get_critical = acpi_thermal_sysfs_get_critical, ++ .thermal_get_hot = acpi_thermal_sysfs_get_hot, ++ .thermal_get_passive = acpi_thermal_sysfs_get_passive, ++ .thermal_set_cooling_mode = acpi_thermal_sysfs_set_cooling_mode, ++ .thermal_get_polling_freq = acpi_thermal_sysfs_get_polling_freq, ++ .thermal_get_state = acpi_thermal_sysfs_get_state, ++}; ++ ++/* ++ * acpi_thermal_sysfs_get_activestate ++ * ------------------------------ ++ * Gets the temperature at which active_device[x] will be turned on ++ */ ++static int acpi_thermal_sysfs_get_active(struct thermal_device *td, ++ struct thermal_device_attribute ++ *attrib, char *buf) ++{ ++ const char *attrib_name; ++ int id; ++ char *s = buf; ++ struct acpi_thermal *tz; ++ ++ if (!td || !attrib || !buf) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)td->devdata; ++ attrib_name = attrib->attr.name; ++ ++ if (!sscanf(attrib_name, "active_%d", &id)) ++ return -EINVAL; ++ ++ if (id > ACPI_THERMAL_MAX_ACTIVE) ++ return -EINVAL; ++ ++ s += sprintf(s, "%lu\n", ++ KELVIN_TO_CELSIUS(tz->trips.active[id].temperature)); ++ ++ return (s - buf); ++} ++ ++static ssize_t ++acpi_thermal_tc1_show(struct thermal_device *td, ++ struct thermal_device_attribute *attr, char *buf) ++{ ++ char *s = buf; ++ struct acpi_thermal *tz; ++ ++ if (!td || !attr || !buf) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)td->devdata; ++ ++ if (tz->trips.passive.flags.valid) ++ s += sprintf(s, "%lu\n", tz->trips.passive.tc1); ++ ++ return (s - buf); ++} ++ ++static ssize_t ++acpi_thermal_tc2_show(struct thermal_device *td, ++ struct thermal_device_attribute *attr, char *buf) ++{ ++ char *s = buf; ++ struct acpi_thermal *tz; ++ ++ if (!td || !attr || !buf) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)td->devdata; ++ ++ if (tz->trips.passive.flags.valid) ++ s += sprintf(s, "%lu\n", tz->trips.passive.tc2); ++ ++ return (s - buf); ++} ++ ++static ssize_t ++acpi_thermal_tsp_show(struct thermal_device *td, ++ struct thermal_device_attribute *attr, char *buf) ++{ ++ char *s = buf; ++ struct acpi_thermal *tz; ++ ++ if (!td || !attr || !buf) ++ return -EINVAL; ++ ++ tz = (struct acpi_thermal *)td->devdata; ++ ++ if (tz->trips.passive.flags.valid) ++ s += sprintf(s, "%lu\n", tz->trips.passive.tsp); ++ ++ return (s - buf); ++} ++ ++/*_TC1*/ ++static THERMAL_DEVICE_ATTR(tc1, 0444, acpi_thermal_tc1_show, NULL); ++/*_TC2*/ ++static THERMAL_DEVICE_ATTR(tc2, 0444, acpi_thermal_tc2_show, NULL); ++/*_TSP*/ ++static THERMAL_DEVICE_ATTR(tsp, 0444, acpi_thermal_tsp_show, NULL); ++ ++static struct thermal_device_attribute *thermal_device_attrs[] = { ++ &thermal_device_attr_tc1, ++ &thermal_device_attr_tc2, ++ &thermal_device_attr_tsp, ++ NULL, ++}; ++ ++/* ++ * acpi_thermal_sysfs_register ++ * ---------------------------- ++ * Takes care of registering the zone,_TZD,_PSL,_ALx and extra attributes ++ * with the thermal_sysfs driver. ++ */ ++static int acpi_thermal_sysfs_register(struct acpi_thermal *tz) ++{ ++ int i, j; ++ int result = 0; ++ char *attrib_name[ACPI_THERMAL_MAX_ACTIVE]; ++ struct thermal_device *td; ++ ++ if (!tz) ++ return -EINVAL; ++ ++ /* TZ registration */ ++ td = thermal_device_register(tz->name, tz, &acpi_thermal_ops); ++ if (IS_ERR(td)) ++ return PTR_ERR(td); ++ ++ tz->td = td; ++ ++ /*_PSL group registration */ ++ if (tz->trips.passive.flags.valid) { ++ result = ++ acpi_thermal_one_group_register(tz, ACPI_THERMAL_GROUP_PSL, ++ &tz->trips.passive.devices); ++ if (result) ++ goto end; ++ ++ /*_TC1,_TC2,_TSP attribute registration */ ++ thermal_attribute_register(tz->td, thermal_device_attrs); ++ } ++ ++ /*_TZD registration */ ++ if (tz->flags.devices) { ++ result = ++ acpi_thermal_one_group_register(tz, ACPI_THERMAL_GROUP_TZD, ++ &tz->devices); ++ if (result) ++ goto end; ++ } ++ ++ for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) { ++ if (tz->trips.active[i].flags.valid) { ++ char *list_name = ACPI_THERMAL_GROUP_ALX; ++ list_name[strlen(ACPI_THERMAL_GROUP_ALX) - 1] = ++ ('0' + i); ++ ++ /*_ALx group registration */ ++ result = ++ acpi_thermal_one_group_register(tz, list_name, ++ &tz->trips. ++ active[i].devices); ++ if (result) { ++ for (j = i - 1; j > 0; j--) { ++ if (tz->trips.active[j].flags.valid) ++ kfree( ++ tz-> ++ thermal_device_active_attr ++ [j]); ++ } ++ goto end; ++ } ++ attrib_name[i] = ACPI_THERMAL_TRIP_ACTIVE; ++ attrib_name[i][strlen(ACPI_THERMAL_TRIP_ACTIVE) - 1] = ++ ('0' + i); ++ ++ tz->thermal_device_active_attr[i] = ++ kzalloc(sizeof(struct thermal_device_attribute), ++ GFP_KERNEL); ++ tz->thermal_device_active_attr[i]->attr.name = ++ attrib_name[i]; ++ tz->thermal_device_active_attr[i]->attr.mode = 0444; ++ tz->thermal_device_active_attr[i]->attr.owner = ++ THIS_MODULE; ++ tz->thermal_device_active_attr[i]->show = ++ acpi_thermal_sysfs_get_active; ++ } ++ } ++ ++ tz->thermal_device_active_attr[i + 1] = NULL; ++ ++ /* _ACx attribute registration */ ++ if (thermal_attribute_register(tz->td ++ , tz->thermal_device_active_attr)) { ++ thermal_attribute_unregister(tz->td, ++ tz->thermal_device_active_attr); ++ ++ for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) { ++ if (tz->trips.active[i].flags.valid) ++ kfree(tz->thermal_device_active_attr[i]); ++ ++ } ++ } ++ ++end: ++ if (result) ++ thermal_device_unregister(tz->td); ++ ++ ++ return result; ++} ++ ++/* ++ * acpi_thermal_sysfs_unregister ++ * ---------------------------- ++ * Takes care of unregistering the zone,_TZD,_PSL,_ALx and extra attributes ++ * with the thermal_sysfs driver. ++ */ ++static void acpi_thermal_sysfs_unregister(struct acpi_thermal *tz) ++{ ++ int i; ++ ++ if (!tz || !tz->td) ++ return; ++ ++ /*_PSL unregistration with thermal_sysfs driver */ ++ if (tz->trips.passive.flags.valid) { ++ thermal_group_unregister(tz->td, ACPI_THERMAL_GROUP_PSL); ++ ++ /* _TC1,_TC2,_TSP attribute unregistration */ ++ thermal_attribute_unregister(tz->td, thermal_device_attrs); ++ } ++ ++ /*_TZD unregistration with thermal_sysfs driver */ ++ if (tz->flags.devices) ++ thermal_group_unregister(tz->td, ACPI_THERMAL_GROUP_TZD); ++ ++ /* _ACx attribute unregistration */ ++ thermal_attribute_unregister(tz->td, tz->thermal_device_active_attr); ++ ++ for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) { ++ if (tz->trips.active[i].flags.valid) { ++ char *group_name = ACPI_THERMAL_GROUP_ALX; ++ group_name[strlen(ACPI_THERMAL_GROUP_ALX) - 1] = ++ ('0' + i); ++ ++ /* _ALx group unregistration */ ++ thermal_group_unregister(tz->td, group_name); ++ kfree(tz->thermal_device_active_attr[i]); ++ } ++ } ++ ++ /* Thermal zone un registration */ ++ thermal_device_unregister(tz->td); ++ ++} ++ + static int acpi_thermal_add(struct acpi_device *device) + { + int result = 0; +@@ -1268,6 +1761,10 @@ static int acpi_thermal_add(struct acpi_device *device) + if (result) + goto end; + ++ result = acpi_thermal_sysfs_register(tz); ++ if (result) ++ goto end; ++ + init_timer(&tz->timer); + + acpi_thermal_check(tz); +@@ -1287,6 +1784,7 @@ static int acpi_thermal_add(struct acpi_device *device) + end: + if (result) { + acpi_thermal_remove_fs(device); ++ acpi_thermal_sysfs_unregister(tz); + kfree(tz); + } + +@@ -1329,7 +1827,9 @@ static int acpi_thermal_remove(struct acpi_device *device, int type) + } + + acpi_thermal_remove_fs(device); ++ acpi_thermal_sysfs_unregister(tz); + mutex_destroy(&tz->lock); ++ + kfree(tz); + return 0; + } +-- +1.5.3.7-dirty + --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/patchset/0004-Documentation-for-thermal-extensions.patch +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/patchset/0004-Documentation-for-thermal-extensions.patch @@ -0,0 +1,219 @@ +From e5654bce3a3fa6b9fd7b3673e5cae97a00f37be6 Mon Sep 17 00:00:00 2001 +From: Sujith Thomas +Date: Wed, 12 Dec 2007 10:55:35 +0530 +Subject: [PATCH] Documentation for thermal extensions + +Signed-off-by: Sujith Thomas + +Documentation for thermal extensions +--- + Documentation/ThermalExtensions.txt | 197 +++++++++++++++++++++++++++++++++++ + 1 files changed, 197 insertions(+), 0 deletions(-) + create mode 100644 Documentation/ThermalExtensions.txt + +diff --git a/Documentation/ThermalExtensions.txt b/Documentation/ThermalExtensions.txt +new file mode 100644 +index 0000000..87e7811 +--- /dev/null ++++ b/Documentation/ThermalExtensions.txt +@@ -0,0 +1,197 @@ ++Thermal extensions How-to ++========================= ++ ++Written by Sujith Thomas ++ ++Updated: 18 October 2007 ++ ++Copyright (c) 2007 Intel Corporation ++ ++ ++0. Introduction ++ ++The thermal extensions provide a set of interfaces for thermal devices (sensors) ++to register with the thermal management solution and to be a part of it. ++This how-to focusses on enabling a new sensor to participate ++in thermal management. ++ ++Thermal extensions expose a set of interfaces for sensor drivers to expose ++their attributes as well as devices associated with this sensor. This solution ++is platform independent and any type of sensor should be able to make use of the ++infrastructure. ++ ++The main task of the thermal extensions is to expose sensor attributes as well ++as thermal events to the user space. In addition, attributes for controlling ++devices associated with a sensor is also exposed through sysfs. An intelligent ++thermal management application can make decisions based on inputs from sensor and ++throttle appropriate devices. ++ ++1. Sysfs directory structure ++ ++ The sysfs entry will be made under /sys/thermal and it will have the ++ following group of attributes. ++ ++ -/sys/thermal/config (thermal management related configuration) ++ -/sys/thermal/ (thermal zone related data) ++ -/sys/thermal// (info about a device in a thermal zone) ++ ++ 1.1 /sys/thermal/config ++ ++ This folder has the following attributes ++ ++ -mode (user = user-space thermal managemnt ; kernel = kernel-space thermal management) ++ -userenabled (0 if kernel is not willing to give control to application else 1) ++ ++ ++ 1.2 /sys/thermal/ ++ ++ The below attributes will appear for all thermal devices (sensors) ++ ++ -critical (critical temperature at which system will shutdown) ++ -hot (temperature at which system will hibernate) ++ -passive (temperature at which passive cooling will be started) ++ -temperature (current temperature) ++ -cooling_mode (active/passive) ++ -polling_freq (frequency at which sensor is polled for temperature changes) ++ -state (ok/critical/hot/passive/active[x]) ++ ++ The below attributes will appear only if Intel's platform sensor ++ driver is loaded. ++ ++ -aux0 (lower AUX value interface for platform sensor driver) ++ -aux1 (upper AUX value interface for platform sensor driver) ++ ++ 1.3 /sys/thermal// ++ ++ 'Group' entry depends on the registration of groups from 'thermal device driver'. ++ In the case of ACPI thermal driver, groups like 'thermalzone_devices', ++ 'active_device' & 'passive_devices' are created and devices are filled on ++ basis of what BIOS reports. ++ ++2. Thermal device interface functions ++ ================================== ++ ++There are a set of interface functions available for 'thermal device driver' to ++register with 'thermal sysfs driver'. 'Thermal device driver' is the driver ++which directly interacts with the sensor and has the list of devices associated ++with this sensor. 'Thermal sysfs driver' is the driver for exposing attributes ++of various sensors to userspace through sysfs. ++ ++2.1 thermal_device_register ++/* ++ * thermal_device_register ++ * ------------------------ ++ * Method for registering thermal devices(sensors) with sysfs ++ * name: The name that should appear in sysfs ++ * devdata : Device private context ++ * ops : List of call back functions for various attributes ++ */ ++ ++ This interface is used by 'Thermal device driver' to make an entry of the new ++ sensor to /sys/thermal folder. This step is mandatory. ++ ++2.2 thermal_group_register ++/* ++ * thermal_group_register ++ * ------------------------ ++ * Method for registering groups such as ACPI _TZD with sysfs ++ * name: The name that should appear in sysfs ++ * td : Device under which this group is to be created ++ * participant_count : No:of participants in this group ++ * participants: Pointer to an array of participants ++ */ ++ This interface is used by 'Thermal device driver' to register a new 'group' ++ of devices. Example for groups are 'active devices' , 'passive devices' etc. ++ This step needs to be done only if there are a set of devices associated ++ with this sensor. ++ ++2.3 thermal_attribute_register ++ /* ++ * thermal_attribute_register ++ * ------------------------ ++ * Method for registering extra attributes with sysfs ++ * td : Device under which attributes should be created ++ * thermal_device_attrs : array of attributes to be added ++ */ ++ This interface is used by 'Thermal device driver' to expose some of extra ++ attributes (other than standard attributes defined in thermal.h) with sysfs. ++ ++2.4 thermal_event_register ++ /* ++ * thermal_event_register ++ * ---------------------- ++ * Register for add/rmv of device/group/participant notification ++ * handler: thermal_event_handler containing callback func pointer ++ * report_type: Set this flag if callbacks needs to be invoked ++ * for existing device/group/participants ++ */ ++ This inteface can be used by any driver to get notification about add/remove ++ of entities like 'thermal device', 'group' or 'devices within a group'. ++ ++2.5 thermal_device_unregister ++ /* ++ * thermal_device_unregister ++ * ------------------------ ++ * Method for unregistering thermal devices(sensors) with sysfs ++ * td: Pointer to thermal_device ++ */ ++ ++2.6 thermal_group_unregister ++ /* ++ * thermal_group_unregister ++ * ------------------------ ++ * Method for unregistering groups within a thermal device ++ * td: Pointer to thermal_device from where the group should be removed ++ * name : Name of the group given during registration ++ */ ++ ++2.7 thermal_attribute_unregister ++ /* ++ * thermal_attribute_unregister ++ * ------------------------ ++ * Method for unregistering extra attributes with sysfs ++ * td : Device under which attributes should be removed ++ * thermal_device_attrs : array of attributes to be removed ++ */ ++ ++2.8 thermal_event_unregister ++ /* ++ * thermal_event_unregister ++ * ---------------------- ++ * UnRegister for add/rmv of device/group/participant notification ++ * handler: thermal_event_handler containing callback func pointer ++ * report_type: Set this flag if callbacks needs to be invoked ++ * for existing device/group/participants ++ */ ++ ++2.9 thermal_sysfs_generate_event ++ /* ++ * thermal_sysfs_generate_event ++ * --------------------------- ++ * Drivers managing thermal devices can invoke this method to notify ++ * user applications about thermal events ++ */ ++ This interface can be used by 'thermal device drivers' to sent a ++ notification about trip point events to the user application. ++ ++2.10 thermal_get_algo_mode ++ /* ++ * thermal_get_algo_mode ++ * ---------------------- ++ * Method to know whether the user mode application has taken over ++ */ ++ ++2.11 thermal_set_userenabled ++ /* ++ * thermal_set_userenabled ++ * ----------------------- ++ * Interface function for platform sensor driver to disble userspace algo ++ * ue: enable / disable userspace algo based on BIOS configuration ++ */ ++ This can be called by any driver to prevent the overriding of thermal ++ management from userspace. One scenario is to call this API based on ++ enable/disable option given in BIOS. ++ ++ ++ ++ +-- +1.5.3.7-dirty + --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/patchset/0005-Generic-fan-and-memory-controller-sysfs-class-driver.patch +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/patchset/0005-Generic-fan-and-memory-controller-sysfs-class-driver.patch @@ -0,0 +1,660 @@ +From 4a26addbee545f99828cbc7bee1e2b493c890c75 Mon Sep 17 00:00:00 2001 +From: Sujith Thomas +Date: Wed, 12 Dec 2007 11:00:06 +0530 +Subject: [PATCH] Generic fan and memory controller sysfs class driver + +Signed-off-by: Sujith Thomas + +header files for generic fan and memory_controller sysfs class drivers +Generic fan sysfs driver: exposes state & max_state attributes +Generic memory controller sysfs driver : exposes state & max_state attributes +--- + drivers/sysfsclass/Kconfig | 30 +++++ + drivers/sysfsclass/Makefile | 7 ++ + drivers/sysfsclass/fan_sysfs.c | 210 +++++++++++++++++++++++++++++++++++++ + drivers/sysfsclass/memory_sysfs.c | 208 ++++++++++++++++++++++++++++++++++++ + include/linux/fan.h | 66 ++++++++++++ + include/linux/memory_controller.h | 75 +++++++++++++ + 6 files changed, 596 insertions(+), 0 deletions(-) + create mode 100644 drivers/sysfsclass/Kconfig + create mode 100644 drivers/sysfsclass/Makefile + create mode 100644 drivers/sysfsclass/fan_sysfs.c + create mode 100644 drivers/sysfsclass/memory_sysfs.c + create mode 100644 include/linux/fan.h + create mode 100644 include/linux/memory_controller.h + +diff --git a/drivers/sysfsclass/Kconfig b/drivers/sysfsclass/Kconfig +new file mode 100644 +index 0000000..ea02da6 +--- /dev/null ++++ b/drivers/sysfsclass/Kconfig +@@ -0,0 +1,30 @@ ++ ++menu "Sysfs device class support" ++ ++config SYSFS_DEV_CLASS ++ bool "Sysfs device class support" ++ default y ++ help ++ Say Y to enable sysfs class driver support for the below devices. ++ ++config FAN_SYSFS ++ tristate "Fan class in sysfs" ++ default y ++ depends on SYSFS_DEV_CLASS ++ help ++ This option enables the support for controlling a generic fan ++ from sysfs. Sysfs will have attributes to switch the ++ fan speed into different supported states. ++ ++config MEMORY_SYSFS ++ tristate "Memory class in sysfs" ++ default y ++ depends on SYSFS_DEV_CLASS ++ help ++ This option enables the support for controlling a generic ++ memory controller from sysfs. Sysfs will have attributes ++ to control the bandwidth of memory controller. ++ ++ ++endmenu ++ +diff --git a/drivers/sysfsclass/Makefile b/drivers/sysfsclass/Makefile +new file mode 100644 +index 0000000..293b5b4 +--- /dev/null ++++ b/drivers/sysfsclass/Makefile +@@ -0,0 +1,7 @@ ++# ++# Makefile for the sysfs class device driver support ++# ++ ++ ++obj-$(CONFIG_FAN_SYSFS) += fan_sysfs.o ++obj-$(CONFIG_MEMORY_SYSFS) += memory_sysfs.o +diff --git a/drivers/sysfsclass/fan_sysfs.c b/drivers/sysfsclass/fan_sysfs.c +new file mode 100644 +index 0000000..f345c71 +--- /dev/null ++++ b/drivers/sysfsclass/fan_sysfs.c +@@ -0,0 +1,210 @@ ++/* ++* fan.c - Fan sysfs driver ($Revision: 1 $) ++* ++* Copyright (C) 2006, 2007 Sujith Thomas ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* ++* This program is free software; you can redistribute it and/or modify ++* it under the terms of the GNU General Public License as published by ++* the Free Software Foundation; version 2 of the License. ++* ++* This program is distributed in the hope that it will be useful, but ++* WITHOUT ANY WARRANTY; without even the implied warranty of ++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++* General Public License for more details. ++* ++* You should have received a copy of the GNU General Public License along ++* with this program; if not, write to the Free Software Foundation, Inc., ++* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ++* ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* Sysfs class driver for fan devices. Exposes attributes for get/set ++* fan speed. ++* ++* ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++MODULE_AUTHOR("Sujith Thomas"); ++MODULE_DESCRIPTION("Fan sysfs Driver"); ++MODULE_LICENSE("GPL"); ++ ++static ssize_t state_show(struct class_device *cdev, char *buf) ++{ ++ struct fan_device *fd; ++ int result; ++ if (!cdev || !buf) ++ return 0; ++ ++ fd = to_fan_device(cdev); ++ if (fd->ops && fd->ops->get_cur_state) { ++ result = fd->ops->get_cur_state(fd, buf); ++ if (result) ++ return result; ++ } ++ ++ return strlen(buf); ++} ++ ++static ssize_t state_store(struct class_device *cdev, const char *buf, ++ size_t count) ++{ ++ struct fan_device *fd; ++ int result; ++ ++ if (!cdev || !buf) ++ return count; ++ ++ fd = to_fan_device(cdev); ++ if (fd->ops && fd->ops->set_cur_state) { ++ result = fd->ops->set_cur_state(fd, buf); ++ printk("Fan store result is %d\n",result); ++ if (result) ++ return result; ++ } ++ ++ return count; ++} ++ ++static ssize_t max_state_show(struct class_device *cdev, char *buf) ++{ ++ struct fan_device *fd; ++ int result; ++ if (!cdev || !buf) ++ return 0; ++ ++ fd = to_fan_device(cdev); ++ if (fd->ops && fd->ops->get_max_state) { ++ result = fd->ops->get_max_state(fd, buf); ++ if (result) ++ return result; ++ } ++ ++ return strlen(buf); ++} ++ ++static void fan_class_release(struct class_device *dev) ++{ ++ struct fan_device *device = to_fan_device(dev); ++ kfree(device); ++} ++ ++static struct class fan_class = { ++ .name = "fan", ++ .release = fan_class_release, ++}; ++ ++static CLASS_DEVICE_ATTR(state, 0644, state_show, state_store); ++static CLASS_DEVICE_ATTR(max_state, 0444, max_state_show, NULL); ++ ++static const struct class_device_attribute *fd_class_dev_attribs[] = { ++ &class_device_attr_state, ++ &class_device_attr_max_state, ++}; ++ ++/* ++ * fan_device_register ++ * -------------------------------- ++ * Method for registering fan class of devices with sysfs ++ * name: The name that should appear in sysfs ++ * dev : device* on which sysfs folder should appear ++ * devdata : Device private context ++ * ops : List of call back functions for various attributes ++ * Returns either an ++ * ERR_PTR() or a pointer to the newly allocated device. ++ */ ++struct fan_device *fan_device_register(const char *name, ++ struct device *dev, ++ void *devdata, struct fan_ops *ops) ++{ ++ int i, rc; ++ struct fan_device *new_fd; ++ ++ if (!name || !ops) ++ return ERR_PTR(-EINVAL); ++ ++ pr_debug("fan_device_alloc: name=%s\n", name); ++ ++ new_fd = kzalloc(sizeof(struct fan_device), GFP_KERNEL); ++ if (!new_fd) ++ return ERR_PTR(-ENOMEM); ++ ++ new_fd->ops = ops; ++ new_fd->class_dev.class = &fan_class; ++ new_fd->class_dev.dev = dev; ++ strlcpy(new_fd->class_dev.class_id, name, KOBJ_NAME_LEN); ++ class_set_devdata(&new_fd->class_dev, devdata); ++ ++ rc = class_device_register(&new_fd->class_dev); ++ if (rc) { ++ kfree(new_fd); ++ return ERR_PTR(rc); ++ } ++ ++ for (i = 0; i < ARRAY_SIZE(fd_class_dev_attribs); i++) { ++ rc = class_device_create_file(&new_fd->class_dev, ++ fd_class_dev_attribs[i]); ++ if (rc) { ++ while (--i >= 0) ++ class_device_remove_file(&new_fd->class_dev, ++ fd_class_dev_attribs ++ [i]); ++ class_device_unregister(&new_fd->class_dev); ++ /* No need to kfree(new_bd) since release() ++ method was called */ ++ return ERR_PTR(rc); ++ } ++ } ++ ++ return new_fd; ++} ++EXPORT_SYMBOL(fan_device_register); ++ ++/* ++ * fan_device_unregister ++ * ---------------------------------- ++ * Method for unregistering fan devices with sysfs ++ * fd: Pointer to fan device ++ */ ++void fan_device_unregister(struct fan_device *fd) ++{ ++ int i; ++ ++ if (!fd) ++ return; ++ ++ pr_debug("fan_device_unregister: name=%s\n", fd->class_dev.class_id); ++ ++ for (i = 0; i < ARRAY_SIZE(fd_class_dev_attribs); i++) ++ class_device_remove_file(&fd->class_dev, ++ fd_class_dev_attribs[i]); ++ ++ fd->ops = NULL; ++ ++ class_device_unregister(&fd->class_dev); ++} ++EXPORT_SYMBOL(fan_device_unregister); ++ ++static int __init fan_device_init(void) ++{ ++ return class_register(&fan_class); ++} ++ ++static void __exit fan_device_exit(void) ++{ ++ class_unregister(&fan_class); ++} ++ ++/* ++ * if this is compiled into the kernel, we need to ensure that the ++ * class is registered before users of the class try to register lcd's ++ */ ++ ++postcore_initcall(fan_device_init); ++module_exit(fan_device_exit); +diff --git a/drivers/sysfsclass/memory_sysfs.c b/drivers/sysfsclass/memory_sysfs.c +new file mode 100644 +index 0000000..6642336 +--- /dev/null ++++ b/drivers/sysfsclass/memory_sysfs.c +@@ -0,0 +1,208 @@ ++/* ++* memory_controller.c - Memory controller sysfs driver ($Revision: 1 $) ++* ++* Copyright (C) 2006, 2007 Sujith Thomas ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* ++* This program is free software; you can redistribute it and/or modify ++* it under the terms of the GNU General Public License as published by ++* the Free Software Foundation; version 2 of the License. ++* ++* This program is distributed in the hope that it will be useful, but ++* WITHOUT ANY WARRANTY; without even the implied warranty of ++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++* General Public License for more details. ++* ++* You should have received a copy of the GNU General Public License along ++* with this program; if not, write to the Free Software Foundation, Inc., ++* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ++* ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* Sysfs class driver for memory_controller. Exposes attributes for get/set ++* memory bandwidth ++* ++* ++*/ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++MODULE_AUTHOR("Sujith Thomas"); ++MODULE_DESCRIPTION("Memory controller sysfs Driver"); ++MODULE_LICENSE("GPL"); ++ ++static ssize_t bandwidth_show(struct class_device *cdev, char *buf) ++{ ++ struct memory_controller_device *mc; ++ int result; ++ ++ if (!cdev || !buf) ++ return 0; ++ ++ mc = to_memory_controller_device(cdev); ++ if (mc->ops && mc->ops->get_cur_bandwidth) { ++ result = mc->ops->get_cur_bandwidth(mc, buf); ++ if (result) ++ return result; ++ } ++ ++ return strlen(buf); ++} ++ ++static ssize_t bandwidth_store(struct class_device *cdev, const char *buf, ++ size_t count) ++{ ++ struct memory_controller_device *mc; ++ int result; ++ if (!cdev || !buf) ++ return count; ++ ++ mc = to_memory_controller_device(cdev); ++ if (mc->ops && mc->ops->set_cur_bandwidth) { ++ result = mc->ops->set_cur_bandwidth(mc, buf); ++ if (result) ++ return result; ++ } ++ ++ return count; ++} ++ ++static ssize_t max_bandwidth_show(struct class_device *cdev, char *buf) ++{ ++ struct memory_controller_device *mc; ++ int result; ++ if (!cdev || !buf) ++ return 0; ++ ++ mc = to_memory_controller_device(cdev); ++ if (mc->ops && mc->ops->get_max_bandwidth) { ++ result = mc->ops->get_max_bandwidth(mc, buf); ++ if (result) ++ return result; ++ } ++ ++ return strlen(buf); ++} ++ ++static void memory_controller_class_release(struct class_device *dev) ++{ ++ struct memory_controller_device *device = ++ to_memory_controller_device(dev); ++ kfree(device); ++} ++ ++static struct class memory_controller_class = { ++ .name = "memory_controller", ++ .release = memory_controller_class_release, ++}; ++ ++static CLASS_DEVICE_ATTR(state, 0644, bandwidth_show, bandwidth_store); ++static CLASS_DEVICE_ATTR(max_state, 0444, max_bandwidth_show, NULL); ++ ++static const struct class_device_attribute *mc_class_dev_attribs[] = { ++ &class_device_attr_state, ++ &class_device_attr_max_state, ++}; ++ ++/* ++ * memory_controller_device_register ++ * -------------------------------- ++ * Method for registering memory_controller class of devices with sysfs ++ * name: The name that should appear in sysfs ++ * dev : device* on which sysfs folder should appear ++ * devdata : Device private context ++ * ops : List of call back functions for various attributes ++ * Returns either an ++ * ERR_PTR() or a pointer to the newly allocated device. ++ */ ++struct memory_controller_device * ++memory_controller_device_register(const char *name ++ , struct device *dev ++ , void *devdata ++ , struct memory_controller_ops *ops) ++{ ++ int i, rc; ++ struct memory_controller_device *new_mc; ++ ++ if (!name || !ops) ++ return ERR_PTR(-EINVAL); ++ ++ pr_debug("memory_controller_device_alloc: name=%s\n", name); ++ ++ new_mc = kzalloc(sizeof(struct memory_controller_device), GFP_KERNEL); ++ if (!new_mc) ++ return ERR_PTR(-ENOMEM); ++ ++ new_mc->ops = ops; ++ new_mc->class_dev.class = &memory_controller_class; ++ new_mc->class_dev.dev = dev; ++ strlcpy(new_mc->class_dev.class_id, name, KOBJ_NAME_LEN); ++ class_set_devdata(&new_mc->class_dev, devdata); ++ ++ rc = class_device_register(&new_mc->class_dev); ++ if (rc) { ++ kfree(new_mc); ++ return ERR_PTR(rc); ++ } ++ ++ for (i = 0; i < ARRAY_SIZE(mc_class_dev_attribs); i++) { ++ rc = class_device_create_file(&new_mc->class_dev, ++ mc_class_dev_attribs[i]); ++ if (rc) { ++ while (--i >= 0) ++ class_device_remove_file(&new_mc->class_dev, ++ mc_class_dev_attribs ++ [i]); ++ class_device_unregister(&new_mc->class_dev); ++ /* No need to kfree(new_bd) since release() ++ method was called */ ++ return ERR_PTR(rc); ++ } ++ } ++ ++ return new_mc; ++} ++EXPORT_SYMBOL(memory_controller_device_register); ++ ++/* ++ * memory_controller_device_unregister ++ * ---------------------------------- ++ * Method for unregistering memory_controller devices with sysfs ++ * mc: Pointer to memory_controller device ++ */ ++void memory_controller_device_unregister(struct memory_controller_device *mc) ++{ ++ int i; ++ ++ if (!mc) ++ return; ++ ++ pr_debug("memory_controller_device_unregister: name=%s\n", ++ mc->class_dev.class_id); ++ ++ for (i = 0; i < ARRAY_SIZE(mc_class_dev_attribs); i++) ++ class_device_remove_file(&mc->class_dev, ++ mc_class_dev_attribs[i]); ++ ++ mc->ops = NULL; ++ ++ class_device_unregister(&mc->class_dev); ++} ++EXPORT_SYMBOL(memory_controller_device_unregister); ++ ++static int __init memory_controller_device_init(void) ++{ ++ return class_register(&memory_controller_class); ++} ++ ++static void __exit memory_controller_device_exit(void) ++{ ++ class_unregister(&memory_controller_class); ++} ++ ++module_init(memory_controller_device_init); ++module_exit(memory_controller_device_exit); +diff --git a/include/linux/fan.h b/include/linux/fan.h +new file mode 100644 +index 0000000..dd37067 +--- /dev/null ++++ b/include/linux/fan.h +@@ -0,0 +1,66 @@ ++/* ++* fan.h - Generic fan driver for sysfs ($Revision: 1 $) ++* ++* Copyright (C) 2006, 2007 Sujith Thomas ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* ++* This program is free software; you can redistribute it and/or modify ++* it under the terms of the GNU General Public License as published by ++* the Free Software Foundation; version 2 of the License. ++* ++* This program is distributed in the hope that it will be useful, but ++* WITHOUT ANY WARRANTY; without even the implied warranty of ++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++* General Public License for more details. ++* ++* You should have received a copy of the GNU General Public License along ++* with this program; if not, write to the Free Software Foundation, Inc., ++* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ++* ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* Sysfs class driver for fan devices. Exposes attributes for get/set ++* fan speed. ++* ++* ++*/ ++ ++#include ++ ++struct fan_device; ++ ++struct fan_ops { ++ int (*get_max_state) (struct fan_device *device, char *buf); ++ int (*get_cur_state) (struct fan_device *device, char *buf); ++ int (*set_cur_state) (struct fan_device *device, const char *buf); ++}; ++ ++struct fan_device { ++ struct fan_ops *ops; ++ struct class sysfs_class; /* '/sys/class' entry */ ++ struct class_device class_dev; /*class device entry in sys/class*/ ++}; ++ ++/* ++ * fan_device_register ++ * -------------------------------- ++ * Method for registering fan class of devices with sysfs ++ * name: The name that should appear in sysfs ++ * dev : device* on which sysfs folder should appear ++ * devdata : Device private context ++ * ops : List of call back functions for various attributes ++ * Returns either an ++ * ERR_PTR() or a pointer to the newly allocated device. ++ */ ++struct fan_device *fan_device_register(const char *name, ++ struct device *dev, void *devdata, ++ struct fan_ops *ops); ++ ++/* ++ * fan_device_unregister ++ * ---------------------------------- ++ * Method for unregistering fan devices with sysfs ++ * fd: Pointer to fan device ++ */ ++void fan_device_unregister(struct fan_device *device); ++ ++#define to_fan_device(obj) container_of(obj, struct fan_device, class_dev) +diff --git a/include/linux/memory_controller.h b/include/linux/memory_controller.h +new file mode 100644 +index 0000000..a7564c8 +--- /dev/null ++++ b/include/linux/memory_controller.h +@@ -0,0 +1,75 @@ ++/* ++* memory_controller.h - Generic memory controller driver for sysfs ++* ($Revision: 1 $) ++* ++* Copyright (C) 2006, 2007 Sujith Thomas ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* ++* This program is free software; you can redistribute it and/or modify ++* it under the terms of the GNU General Public License as published by ++* the Free Software Foundation; version 2 of the License. ++* ++* This program is distributed in the hope that it will be useful, but ++* WITHOUT ANY WARRANTY; without even the implied warranty of ++* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++* General Public License for more details. ++* ++* You should have received a copy of the GNU General Public License along ++* with this program; if not, write to the Free Software Foundation, Inc., ++* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ++* ++* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++* Sysfs class driver for memory_controller. Exposes attributes for get/set ++* memory bandwidth ++* ++* ++*/ ++ ++#include ++ ++struct memory_controller_device; ++ ++/* Callback functions to the actual memory device driver */ ++struct memory_controller_ops { ++ int (*get_max_bandwidth) (struct memory_controller_device *device, ++ char *buf); ++ int (*get_cur_bandwidth) (struct memory_controller_device *device, ++ char *buf); ++ int (*set_cur_bandwidth) (struct memory_controller_device *device, ++ const char *buf); ++}; ++ ++struct memory_controller_device { ++ struct memory_controller_ops *ops; /* Callback routines */ ++ struct class sysfs_class; /* '/sys/class' entry*/ ++ struct class_device class_dev; /*class device entry in sys/class*/ ++}; ++ ++/* ++ * memory_controller_device_register ++ * -------------------------------- ++ * Method for registering memory_controller class of devices with sysfs ++ * name: The name that should appear in sysfs ++ * dev : device* on which sysfs folder should appear ++ * devdata : Device private context ++ * ops : List of call back functions for various attributes ++ * Returns either an ++ * ERR_PTR() or a pointer to the newly allocated device. ++ */ ++struct memory_controller_device * ++memory_controller_device_register(const char *name ++ , struct device *dev ++ , void *devdata ++ , struct memory_controller_ops *ops); ++ ++/* ++ * memory_controller_device_unregister ++ * ---------------------------------- ++ * Method for unregistering memory_controller devices with sysfs ++ * mc: Pointer to memory_controller device ++ */ ++void memory_controller_device_unregister(struct memory_controller_device ++ *device); ++ ++#define to_memory_controller_device(obj) \ ++container_of(obj, struct memory_controller_device, class_dev) +-- +1.5.3.7-dirty + --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/patchset/0002-Generic-sysfs-thermal-management-driver.patch +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/patchset/0002-Generic-sysfs-thermal-management-driver.patch @@ -0,0 +1,1465 @@ +From 318e393f719e1af17a91b234ddbbcab34c53ff2c Mon Sep 17 00:00:00 2001 +From: Sujith Thomas +Date: Wed, 12 Dec 2007 10:43:28 +0530 +Subject: [PATCH] Generic sysfs thermal management driver + +Signed-off-by: Sujith Thomas + +In a nutshell this patch provides an infrastructure for userspace application to handle +platform thermal managemetn +Adds a 'Config' folder for user mode application to take over kernel mode algo +--- + drivers/base/thermal_sysfs.c | 1139 ++++++++++++++++++++++++++++++++++++++++++ + include/linux/thermal.h | 294 +++++++++++ + 2 files changed, 1433 insertions(+), 0 deletions(-) + create mode 100644 drivers/base/thermal_sysfs.c + create mode 100644 include/linux/thermal.h + +diff --git a/drivers/base/thermal_sysfs.c b/drivers/base/thermal_sysfs.c +new file mode 100644 +index 0000000..8dd25a1 +--- /dev/null ++++ b/drivers/base/thermal_sysfs.c +@@ -0,0 +1,1139 @@ ++/* ++ * thermal_sysfs.c - Generic sysfs implementation for thermal subsystem ++ * ($Revision: 1 $) ++ * ++ * Copyright (C) 2006, 2007 Sujith Thomas ++ * ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; version 2 of the License. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * Accepts registration of thermal devices(sensors). ++ * Accepts registration for group of participants associated with this sensor ++ * Accepts registration of extra attributes over the standard attributes. ++ * Issues notification to registered drivers upon registration of new thermal ++ * devices ++ * Adds a 'Config' folder for user mode application to take over kernel mode ++ * algo ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++ ++MODULE_AUTHOR("Sujith Thomas"); ++MODULE_DESCRIPTION("Generic thermal sysfs driver"); ++MODULE_LICENSE("GPL"); ++ ++static char *thermal_mode[THERMAL_MAX_MODE] = { ++ "user", ++ "kernel", ++}; ++ ++static struct thermal_config thermalconfig = { ++ .userenabled = THERMAL_USER_ENABLED, ++ .mode = THERMAL_KERNELSPACE, ++}; ++ ++/*Linked list of thermal devices*/ ++static LIST_HEAD(thermal_device_list); ++static LIST_HEAD(thermal_sysfs_event_listener_list); ++ ++/*Lock for accessing thermaldevice linked list*/ ++DEFINE_SPINLOCK(td_list_lock); ++DEFINE_SPINLOCK(el_list_lock); ++ ++#define EVENT_ENABLE 1 ++#define EVENT_DISABLE 0 ++ ++static void __thermal_group_unregister(struct thermal_group *tg, ++ int event_flag); ++static int dispatch_events(int event_type, void *data, const char *query_name); ++ ++/* -------------------------------------------------------------------------- ++ Attribute implementation functions - Thermal config ++----------------------------------------------------------------------------- */ ++static ssize_t userenabled_show(struct thermal_config *tc, char *buf) ++{ ++ char *s = buf; ++ ++ if (!tc || !buf) ++ return -EINVAL; ++ ++ s += sprintf(s, "%d \n", tc->userenabled); ++ ++ return (s - buf); ++} ++ ++static ssize_t mode_show(struct thermal_config *tc, char *buf) ++{ ++ char *s = buf; ++ ++ if (!tc || !buf) ++ return -EINVAL; ++ ++ s += sprintf(s, "%s \n", thermal_mode[tc->mode]); ++ ++ return (s - buf); ++} ++ ++static ssize_t mode_store(struct thermal_config *tc, const char *buf, ++ size_t count) ++{ ++ int i; ++ if (!tc || !buf) ++ return -EINVAL; ++ ++ if (THERMAL_USER_ENABLED == thermalconfig.userenabled) { ++ for (i = 0; i < THERMAL_MAX_MODE; i++) { ++ if (!strncmp ++ (thermal_mode[i], buf, strlen(thermal_mode[i]))) ++ tc->mode = i; ++ } ++ } ++ ++ return count; ++} ++ ++/* -------------------------------------------------------------------------- ++ sysfs Interface - config ++-------------------------------------------------------------------------*/ ++ ++/*Call back function prototypes*/ ++struct thermalconfig_attribute { ++ struct attribute attr; ++ ssize_t(*show) (struct thermal_config *tc, char *buf); ++ ssize_t(*store) (struct thermal_config *tc, const char *buf, ++ size_t count); ++}; ++ ++/*Helper macros for using THERMALCONFIG attributes*/ ++#define THERMALCONFIG_ATTR(_name, _mode, _show, _store) \ ++struct thermalconfig_attribute thermalconfig_attr_##_name = { \ ++ .attr = { \ ++ .name = __stringify(_name), \ ++ .mode = _mode, \ ++ .owner = THIS_MODULE \ ++ }, \ ++ .show = _show, \ ++ .store = _store, \ ++}; ++ ++#define to_thermalconfig_attr(_attr) \ ++ (container_of(_attr, \ ++ struct thermalconfig_attribute, \ ++ attr)) ++ ++#define to_thermal_config(obj) \ ++ container_of(obj, struct thermal_config, kobj) ++ ++/*kobj_type callback function for 'show'*/ ++static ssize_t ++thermalconfig_attr_show(struct kobject *kobj, struct attribute *attr, char *buf) ++{ ++ struct thermal_config *tc = to_thermal_config(kobj); ++ struct thermalconfig_attribute *thermalconfig_attr = ++ to_thermalconfig_attr(attr); ++ ssize_t ret = -EIO; ++ ++ if (thermalconfig_attr->show) ++ ret = thermalconfig_attr->show(tc, buf); ++ ++ return ret; ++} ++ ++/*kobj_type callback function for 'store'*/ ++static ssize_t ++thermalconfig_attr_store(struct kobject *kobj, struct attribute *attr, ++ const char *buf, size_t len) ++{ ++ struct thermal_config *tc = to_thermal_config(kobj); ++ struct thermalconfig_attribute *thermalconfig_attr = ++ to_thermalconfig_attr(attr); ++ ++ ssize_t ret = -EIO; ++ ++ if (thermalconfig_attr->store) ++ ret = thermalconfig_attr->store(tc, buf, len); ++ ++ return ret; ++} ++ ++/*Enable/Disable userspace algo*/ ++static THERMALCONFIG_ATTR(userenabled, 0444, userenabled_show, NULL); ++/*Kernel/user algo in execution*/ ++static THERMALCONFIG_ATTR(mode, 0644, mode_show, mode_store); ++ ++static struct thermalconfig_attribute *thermalconfig_attrs[] = { ++ &thermalconfig_attr_userenabled, ++ &thermalconfig_attr_mode, ++ NULL, ++}; ++ ++static struct attribute *def_attrs[] = { ++ NULL, ++}; ++ ++/*Populate the attributes of thermalconfig kobject*/ ++static void thermalconfig_populate_dir(struct thermal_config *tc) ++{ ++ struct thermalconfig_attribute *attr; ++ int error = 0; ++ int i; ++ ++ for (i = 0; (attr = thermalconfig_attrs[i]) && !error; i++) ++ error = sysfs_create_file(&tc->kobj, &attr->attr); ++ ++} ++ ++/*Call back registration for thermal config*/ ++static struct sysfs_ops thermalconfig_attr_ops = { ++ .show = thermalconfig_attr_show, ++ .store = thermalconfig_attr_store, ++}; ++ ++/*ktype for thermaconfig*/ ++static struct kobj_type ktype_thermalconfig = { ++ .sysfs_ops = &thermalconfig_attr_ops, ++ .default_attrs = def_attrs, ++}; ++ ++/* -------------------------------------------------------------------------- ++ Attribute implementation functions - TZ ++-------------------------------------------------------------------------*/ ++ ++/* ++ * ATTRIB_SHOW ++ * ----------- ++ * Macro which defines sysfs callback routines for each attribute capable of ++ * 'show' ++ * td: Pointer to associated thermal_device ++ * attr: More attribute info ++ * buf: The buffer which needs to be filled by handler ++ */ ++ ++#define ATTRIB_SHOW(name) \ ++static ssize_t name##_show(struct thermal_device *td, \ ++ struct thermal_device_attribute *attr, char *buf) \ ++{ \ ++ char *s = buf;\ ++ int data;\ ++ int result = -EINVAL;\ ++ if (!td || !buf)\ ++ return 0;\ ++ if (td->ops->thermal_get_##name)\ ++ result = td->ops->thermal_get_##name(td->devdata\ ++ , attr, &data);\ ++ if (!result)\ ++ s += sprintf(buf, "%d\n", data);\ ++ return (s - buf);\ ++} \ ++ ++ATTRIB_SHOW(temperature); ++ATTRIB_SHOW(critical); ++ATTRIB_SHOW(hot); ++ATTRIB_SHOW(passive); ++ATTRIB_SHOW(polling_freq); ++ ++static ssize_t state_show(struct thermal_device *td, ++ struct thermal_device_attribute *attr, char *buf) ++{ ++ if (!td || !buf) ++ return -EINVAL; ++ ++ if (td->ops->thermal_get_state) ++ td->ops->thermal_get_state(td->devdata, attr, buf); ++ ++ return strlen(buf); ++} ++ ++static ssize_t cooling_mode_show(struct thermal_device *td, ++ struct thermal_device_attribute *attr, ++ char *buf) ++{ ++ if (!td || !buf) ++ return -EINVAL; ++ ++ /* Reading of actual cooling mode not supportd */ ++ sprintf(buf, "0 - Active; 1 - Pasive\n"); ++ return strlen(buf); ++} ++ ++/* ++ * ATTRIB_STORE ++ * ------------ ++ * Macro which defines sysfs callback routines ++ * for each attribute capable of 'store' ++ * td: Pointer to associated thermal_device ++ * attr: More attribute info ++ * buf: The buffer which contains the input value ++ */ ++#define ATTRIB_STORE(name) \ ++static ssize_t name##_store(struct thermal_device *td\ ++ , struct thermal_device_attribute *attr\ ++ , const char *buf, size_t count) \ ++{ \ ++ int data; \ ++ if (!td || !buf) \ ++ return -EINVAL; \ ++ /*Sanity check; should be integer*/ \ ++ if (!sscanf(buf, "%d", &data)) \ ++ return -EINVAL; \ ++ if (td->ops->thermal_set_##name) \ ++ td->ops->thermal_set_##name(td->devdata, attr, data); \ ++ return count; \ ++} \ ++ ++ATTRIB_STORE(cooling_mode); ++ ++/* -------------------------------------------------------------------------- ++ sysfs Interface - TZ ++----------------------------------------------------------------------------- */ ++ ++/*_CRT*/ ++static THERMAL_DEVICE_ATTR(critical, 0444, critical_show, NULL); ++/*_HOT*/ ++static THERMAL_DEVICE_ATTR(hot, 0444, hot_show, NULL); ++/*_PSV*/ ++static THERMAL_DEVICE_ATTR(passive, 0444, passive_show, NULL); ++/*current temperature*/ ++static THERMAL_DEVICE_ATTR(temperature, 0444, ++ temperature_show, NULL); ++/*current state*/ ++static THERMAL_DEVICE_ATTR(state, 0444, state_show, NULL); ++/*cooling mode*/ ++static THERMAL_DEVICE_ATTR(cooling_mode, 0444, ++ cooling_mode_show, cooling_mode_store); ++/*polliing frequency*/ ++static THERMAL_DEVICE_ATTR(polling_freq, 0444, ++ polling_freq_show, NULL); ++ ++static struct thermal_device_attribute *thermal_device_attrs[] = { ++ &thermal_device_attr_temperature, ++ &thermal_device_attr_critical, ++ &thermal_device_attr_hot, ++ &thermal_device_attr_passive, ++ &thermal_device_attr_cooling_mode, ++ &thermal_device_attr_polling_freq, ++ &thermal_device_attr_state, ++ NULL, ++}; ++ ++/*Populate the attributes of thermal device kobject*/ ++static void thermal_device_populate_dir(struct thermal_device *td) ++{ ++ struct thermal_device_attribute *attr; ++ int error = 0; ++ int i; ++ ++ if (!td) ++ return; ++ ++ for (i = 0; (attr = thermal_device_attrs[i]) && !error; i++) { ++ if (!strcmp(THERMAL_ATTRIB_TEMPERATURE, attr->attr.name)) { ++ if (!td->ops->thermal_get_temperature) ++ continue; ++ } else if (!strcmp(THERMAL_ATTRIB_CRITICAL, attr->attr.name)) { ++ if (!td->ops->thermal_get_critical) ++ continue; ++ } else if (!strcmp(THERMAL_ATTRIB_HOT, attr->attr.name)) { ++ if (!td->ops->thermal_get_hot) ++ continue; ++ } else if (!strcmp(THERMAL_ATTRIB_PASSIVE, attr->attr.name)) { ++ if (!td->ops->thermal_get_passive) ++ continue; ++ } else if (!strcmp(THERMAL_ATTRIB_POLLING_FREQ, ++ attr->attr.name)) { ++ if (!td->ops->thermal_get_polling_freq) ++ continue; ++ } else if (!strcmp(THERMAL_ATTRIB_COOLING_MODE, ++ attr->attr.name)) { ++ if (!td->ops->thermal_set_cooling_mode) ++ continue; ++ } else if (!strcmp(THERMAL_ATTRIB_STATE, attr->attr.name)) { ++ if (!td->ops->thermal_get_state) ++ continue; ++ } ++ ++ error = sysfs_create_file(&td->kobj, &attr->attr); ++ } ++ ++} ++ ++/*kobj_type callback function for 'show'*/ ++static ssize_t ++thermal_device_attr_show(struct kobject *kobj, struct attribute *attr, ++ char *buf) ++{ ++ struct thermal_device *td = to_thermal_device(kobj); ++ struct thermal_device_attribute *thermal_device_attr = ++ to_thermal_device_attr(attr); ++ ssize_t ret = -EIO; ++ ++ /*Call attribute callback function */ ++ if (thermal_device_attr->show) ++ ret = thermal_device_attr->show(td, thermal_device_attr, buf); ++ ++ return ret; ++ ++} ++ ++/*kobj_type callback function for 'store'*/ ++static ssize_t ++thermal_device_attr_store(struct kobject *kobj, struct attribute *attr, ++ const char *buf, size_t len) ++{ ++ struct thermal_device *td = to_thermal_device(kobj); ++ struct thermal_device_attribute *thermal_device_attr = ++ to_thermal_device_attr(attr); ++ ++ ssize_t ret = -EIO; ++ ++ /*Call attribute callback function */ ++ if (thermal_device_attr->store) ++ ret = ++ thermal_device_attr->store(td, thermal_device_attr, buf, ++ len); ++ return ret; ++} ++ ++/*Call back registration for thermaldevice*/ ++static struct sysfs_ops thermal_device_attr_ops = { ++ .show = thermal_device_attr_show, ++ .store = thermal_device_attr_store, ++}; ++ ++/*ktype for thermaldevice*/ ++static struct kobj_type ktype_thermal_device = { ++ .sysfs_ops = &thermal_device_attr_ops, ++ .default_attrs = def_attrs, ++}; ++ ++static decl_subsys(thermal, &ktype_thermal_device, NULL); ++ ++/* -------------------------------------------------------------------------- ++ Register/Unregister functions ++----------------------------------------------------------------------------- */ ++/* ++ * thermal_device_register ++ * ------------------------ ++ * Method for registering thermal devices(sensors) with sysfs ++ * name: The name that should appear in sysfs ++ * devdata : Device private context ++ * ops : List of call back functions for various attributes ++ */ ++struct thermal_device *thermal_device_register(const char *name, ++ void *devdata, ++ struct thermal_device_ops *ops) ++{ ++ int result; ++ struct thermal_device *new_td; ++ struct list_head *entry_td; ++ ++ if (!name || !ops) ++ return ERR_PTR(-EINVAL); ++ ++ /* Check whether there is a thermal device by the same name */ ++ spin_lock(&td_list_lock); ++ list_for_each(entry_td, &thermal_device_list) { ++ struct thermal_device *old_td; ++ old_td = list_entry(entry_td, struct thermal_device, node); ++ if (!strcmp(name, old_td->name)) { ++ spin_unlock(&td_list_lock); ++ return ERR_PTR(-EEXIST); ++ } ++ } ++ spin_unlock(&td_list_lock); ++ ++ pr_debug("thermal_device_alloc: name=%s\n", name); ++ ++ new_td = kzalloc(sizeof(struct thermal_device), GFP_KERNEL); ++ if (!new_td) ++ return ERR_PTR(-ENOMEM); ++ ++ new_td->ops = ops; ++ new_td->devdata = devdata; ++ strlcpy(new_td->name, name, KOBJ_NAME_LEN); ++ ++ INIT_LIST_HEAD(&new_td->group_node); ++ ++ /* kobject registering for thermaldevice */ ++ kobject_set_name(&new_td->kobj, name); ++ kobj_set_kset_s(new_td, thermal_subsys); ++ new_td->kobj.parent = &thermal_subsys.kobj; ++ ++ result = kobject_register(&new_td->kobj); ++ if (result) { ++ kfree(new_td); ++ return ERR_PTR(-EFAULT); ++ } ++ ++ /* Populate the attributes for new thermal device */ ++ thermal_device_populate_dir(new_td); ++ ++ spin_lock(&td_list_lock); ++ list_add(&(new_td->node), &thermal_device_list); ++ spin_unlock(&td_list_lock); ++ ++ /* Notify other drivers about new thermal zone */ ++ dispatch_events(THERMAL_SYSFS_EVENT_ADD_TD, new_td, new_td->name); ++ ++ return new_td; ++} ++EXPORT_SYMBOL(thermal_device_register); ++ ++static int thermal_is_td_exist(struct thermal_device *td) ++{ ++ struct list_head *entry_td; ++ ++ /*Check whether td is a valid registration */ ++ spin_lock(&td_list_lock); ++ list_for_each(entry_td, &thermal_device_list) { ++ struct thermal_device *old_td; ++ old_td = list_entry(entry_td, struct thermal_device, node); ++ if (old_td == td) { ++ spin_unlock(&td_list_lock); ++ return 0; ++ } ++ } ++ spin_unlock(&td_list_lock); ++ return -ENODEV; ++} ++ ++/* ++ * thermal_device_unregister ++ * ------------------------ ++ * Method for unregistering thermal devices(sensors) with sysfs ++ * td: Pointer to thermal_device ++ */ ++int thermal_device_unregister(struct thermal_device *td) ++{ ++ struct list_head *pos, *q; ++ int result; ++ ++ if (!td) ++ return -EINVAL; ++ ++ result = thermal_is_td_exist(td); ++ if (result) ++ return result; ++ ++ spin_lock(&td_list_lock); ++ /* If any group exists for this device unregister those as well */ ++ list_for_each_safe(pos, q, &td->group_node) { ++ struct thermal_group *tg; ++ tg = list_entry(pos, struct thermal_group, node); ++ __thermal_group_unregister(tg, EVENT_ENABLE); ++ } ++ ++ list_del(&(td->node)); ++ spin_unlock(&td_list_lock); ++ ++ /* Notify other drivers about removal of this thermal_device */ ++ dispatch_events(THERMAL_SYSFS_EVENT_RMV_TD, td, td->name); ++ kobject_unregister(&td->kobj); ++ kfree(td); ++ ++ return 0; ++} ++EXPORT_SYMBOL(thermal_device_unregister); ++ ++static int thermal_is_group_exist(struct thermal_device *td, const char *name) ++{ ++ struct list_head *entry_tg; ++ ++ if (!td || !name) ++ return -EINVAL; ++ ++ spin_lock(&td_list_lock); ++ list_for_each(entry_tg, &td->group_node) { ++ struct thermal_group *tg; ++ tg = list_entry(entry_tg, struct thermal_group, node); ++ if (!strcmp(tg->name, name)) { ++ spin_unlock(&td_list_lock); ++ return 0; ++ } ++ } ++ ++ spin_unlock(&td_list_lock); ++ return -ENODEV; ++} ++ ++/* ++ * thermal_group_register ++ * ------------------------ ++ * Method for registering groups such as ACPI _TZD with sysfs ++ * name: The name that should appear in sysfs ++ * td : Device under which this group is to be created ++ * participant_count : No:of participants in this group ++ * participants: Pointer to an array of participants ++ */ ++int thermal_group_register(const char *name, struct thermal_device *td, ++ int participant_count, ++ struct thermal_participant *participant) ++{ ++ int i; ++ int result; ++ struct thermal_group *group; ++ ++ if (!name || !td || thermal_is_td_exist(td) ++ || participant_count <= 0 ++ || (participant_count && !participant)) ++ return -EINVAL; ++ ++ /* Check that group by this name doesn't exist */ ++ result = thermal_is_group_exist(td, name); ++ if (!result) ++ return -EEXIST; ++ ++ group = kzalloc(sizeof(struct thermal_group), GFP_KERNEL); ++ if (!group) ++ return -ENOMEM; ++ ++ /* Fill the thermal_group struct */ ++ strlcpy(group->name, name, KOBJ_NAME_LEN); ++ group->td = td; ++ group->participant_count = participant_count; ++ ++ /* Make an entry under sysfs */ ++ kobject_set_name(&group->kobj, group->name); ++ group->kobj.parent = &group->td->kobj; ++ result = kobject_register(&group->kobj); ++ ++ if (result) { ++ kfree(group); ++ return result; ++ } ++ ++ group->participant = ++ kzalloc(participant_count * sizeof(struct thermal_participant), ++ GFP_KERNEL); ++ ++ if (!group->participant) { ++ kobject_unregister(&group->kobj); ++ kfree(group); ++ return -ENOMEM; ++ } ++ ++ memcpy(group->participant, participant, ++ participant_count * sizeof(struct thermal_participant)); ++ ++ ++ ++ /* Create symbolic links for all the participants to ++ their default exposed location in sysfs */ ++ for (i = 0; i < group->participant_count; i++) { ++ group->participant[i].group = group; ++ if (group->participant[i].kobj) { ++ result = ++ sysfs_create_link(&group->kobj, ++ group->participant[i].kobj, ++ group->participant ++ [i].kobj->k_name); ++ if (result) { ++ kobject_unregister(&group->kobj); ++ kfree(group->participant); ++ kfree(group); ++ return -EFAULT; ++ } else ++ dispatch_events(THERMAL_SYSFS_EVENT_ADD_PART, ++ &group->participant[i], ++ group->participant[i].name); ++ } ++ } ++ ++ spin_lock(&td_list_lock); ++ list_add(&(group->node), &td->group_node); ++ spin_unlock(&td_list_lock); ++ ++ /* Notify other drivers about the creation of new group */ ++ dispatch_events(THERMAL_SYSFS_EVENT_ADD_GRP, group, group->name); ++ return 0; ++} ++EXPORT_SYMBOL(thermal_group_register); ++ ++/* Always will be called with spin locked td_list_lock*/ ++static void __thermal_group_unregister(struct thermal_group *tg, int event_flag) ++{ ++ int j; ++ ++ if (!tg) ++ return; ++ ++ if (EVENT_ENABLE == event_flag) { ++ spin_unlock(&td_list_lock); ++ for (j = 0; j < tg->participant_count; j++) { ++ struct thermal_participant *participant; ++ participant = &tg->participant[j]; ++ dispatch_events(THERMAL_SYSFS_EVENT_RMV_PART, ++ participant, participant->name); ++ } ++ dispatch_events(THERMAL_SYSFS_EVENT_RMV_GRP, tg, tg->name); ++ spin_lock(&td_list_lock); ++ } ++ ++ list_del(&tg->node); ++ kobject_unregister(&tg->kobj); ++ kfree(tg->participant); ++ kfree(tg); ++} ++ ++/* ++ * thermal_group_unregister ++ * ------------------------ ++ * Method for unregistering groups within a thermal device ++ * td: Pointer to thermal_device from where the group should be removed ++ * name : Name of the group given during registration ++ */ ++int thermal_group_unregister(struct thermal_device *td, const char *name) ++{ ++ struct list_head *pos, *q; ++ ++ if (!td || thermal_is_td_exist(td) || !name) ++ return -EINVAL; ++ ++ /* check whether device is already registered */ ++ spin_lock(&td_list_lock); ++ ++ list_for_each_safe(pos, q, &td->group_node) { ++ struct thermal_group *tg; ++ tg = list_entry(pos, struct thermal_group, node); ++ /* Get the matching group */ ++ if (!strcmp(tg->name, name)) { ++ __thermal_group_unregister(tg, EVENT_ENABLE); ++ spin_unlock(&td_list_lock); ++ return 0; ++ } ++ } ++ ++ spin_unlock(&td_list_lock); ++ return -ENODEV; ++} ++EXPORT_SYMBOL(thermal_group_unregister); ++ ++/* ++ * thermal_attribute_register ++ * ------------------------ ++ * Method for registering extra attributes with sysfs ++ * td : Device under which attributes should be created ++ * thermal_device_attrs : array of attributes to be added ++ */ ++int thermal_attribute_register(struct thermal_device *td, ++ struct thermal_device_attribute ++ **thermal_device_attrs) ++{ ++ struct thermal_device_attribute *attr; ++ int result = 0; ++ int i; ++ ++ if (!td || thermal_is_td_exist(td) || !thermal_device_attrs) ++ return -EINVAL; ++ ++ for (i = 0; (attr = thermal_device_attrs[i]) && !result; i++) { ++ result = sysfs_create_file(&td->kobj, &attr->attr); ++ if (result) ++ return result; ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL(thermal_attribute_register); ++ ++/* ++ * thermal_attribute_unregister ++ * ------------------------ ++ * Method for unregistering extra attributes with sysfs ++ * td : Device under which attributes should be removed ++ * thermal_device_attrs : array of attributes to be removed ++ */ ++int thermal_attribute_unregister(struct thermal_device *td, ++ struct thermal_device_attribute ++ **thermal_device_attrs) ++{ ++ struct thermal_device_attribute *attr; ++ int i; ++ ++ if (!td || thermal_is_td_exist(td) || !thermal_device_attrs) ++ return -EINVAL; ++ ++ for (i = 0; (attr = thermal_device_attrs[i]); i++) ++ sysfs_remove_file(&td->kobj, &attr->attr); ++ ++ ++ return 0; ++} ++EXPORT_SYMBOL(thermal_attribute_unregister); ++ ++/* ++ * dispatch_events ++ * ------------------------ ++ * Go through the list of event listeners and call their handlers ++ * event_typ: as defined in thermal.h ++ * data : payload depending on type of event ++ * query_name : if the event needs to be received from some particular entity ++ */ ++static int dispatch_events(int event_type, void *data, const char *query_name) ++{ ++ struct list_head *entry_el; ++ ++ if (!data) ++ return -EINVAL; ++ ++ spin_lock(&el_list_lock); ++ list_for_each(entry_el, &thermal_sysfs_event_listener_list) { ++ struct thermal_sysfs_event_listener *event_listener; ++ event_listener = ++ list_entry(entry_el, struct thermal_sysfs_event_listener, ++ node); ++ if (event_listener->event_type & event_type) { ++ if (query_name && event_listener->query_name) { ++ if (!strcmp ++ (event_listener->query_name, query_name)) ++ event_listener-> ++ thermal_sysfs_event_handler ++ (event_type, data, ++ event_listener->private); ++ ++ } else { ++ event_listener-> ++ thermal_sysfs_event_handler(event_type, ++ data, ++ event_listener-> ++ private); ++ } ++ } ++ } ++ spin_unlock(&el_list_lock); ++ return 0; ++} ++ ++/* Invoke the handler for each thermal_device which have already registered */ ++int dispatch_existing_td_events(struct thermal_sysfs_event_listener *listener, ++ unsigned int event_type) ++{ ++ struct list_head *pos, *q; ++ ++ if (!listener) ++ return -EINVAL; ++ ++ spin_lock(&td_list_lock); ++ list_for_each_safe(pos, q, &thermal_device_list) { ++ struct thermal_device *old_td; ++ old_td = list_entry(pos, struct thermal_device, node); ++ spin_unlock(&td_list_lock); ++ if (listener->query_name) { ++ if (!strcmp(listener->query_name, old_td->name)) ++ listener-> ++ thermal_sysfs_event_handler(event_type, ++ old_td, ++ listener-> ++ private); ++ ++ } else { ++ listener->thermal_sysfs_event_handler(event_type, ++ old_td, ++ listener-> ++ private); ++ } ++ spin_lock(&td_list_lock); ++ ++ } ++ spin_unlock(&td_list_lock); ++ return 0; ++} ++ ++/* Invoke the handler for each thermal_group which have already registered */ ++int dispatch_existing_group_events(struct thermal_sysfs_event_listener ++ *listener, unsigned int event_type) ++{ ++ struct list_head *pos_td, *pos_tg, *q_td, *q_tg; ++ ++ if (!listener) ++ return -EINVAL; ++ ++ spin_lock(&td_list_lock); ++ list_for_each_safe(pos_td, q_td, &thermal_device_list) { ++ struct thermal_device *old_td; ++ old_td = list_entry(pos_td, struct thermal_device, node); ++ list_for_each_safe(pos_tg, q_tg, &old_td->group_node) { ++ struct thermal_group *tg; ++ tg = list_entry(pos_tg, struct thermal_group, node); ++ spin_unlock(&td_list_lock); ++ if (listener->query_name) { ++ if (!strcmp(listener->query_name, tg->name)) ++ listener-> ++ thermal_sysfs_event_handler ++ (event_type, tg, listener->private); ++ ++ } else { ++ listener-> ++ thermal_sysfs_event_handler(event_type, tg, ++ listener-> ++ private); ++ } ++ spin_lock(&td_list_lock); ++ ++ } ++ } ++ spin_unlock(&td_list_lock); ++ return 0; ++} ++ ++/* Invoke the handler for each thermal_participant ++which have already registered */ ++int dispatch_existing_participant_events(struct thermal_sysfs_event_listener ++ *listener, unsigned int event_type) ++{ ++ struct list_head *pos_td, *pos_tg, *q_td, *q_tg; ++ int j; ++ ++ if (!listener) ++ return -EINVAL; ++ ++ spin_lock(&td_list_lock); ++ list_for_each_safe(pos_td, q_td, &thermal_device_list) { ++ struct thermal_device *old_td; ++ old_td = list_entry(pos_td, struct thermal_device, node); ++ ++ list_for_each_safe(pos_tg, q_tg, &old_td->group_node) { ++ struct thermal_group *tg; ++ tg = list_entry(pos_tg, struct thermal_group, node); ++ ++ for (j = 0; j < tg->participant_count; j++) { ++ struct thermal_participant *participant; ++ participant = &tg->participant[j]; ++ spin_unlock(&td_list_lock); ++ if (listener->query_name) { ++ if (!strcmp ++ (listener->query_name, ++ participant->name)) ++ listener-> ++ thermal_sysfs_event_handler ++ (event_type, participant, ++ listener->private); ++ ++ } else { ++ listener-> ++ thermal_sysfs_event_handler ++ (event_type, participant, ++ listener->private); ++ } ++ spin_lock(&td_list_lock); ++ } ++ ++ } ++ } ++ spin_unlock(&td_list_lock); ++ return 0; ++} ++ ++static int thermal_is_listener_exist(struct thermal_sysfs_event_listener ++ *listener) ++{ ++ struct list_head *entry_el; ++ ++ spin_lock(&el_list_lock); ++ list_for_each(entry_el, &thermal_sysfs_event_listener_list) { ++ struct thermal_sysfs_event_listener *event_listener; ++ event_listener = ++ list_entry(entry_el, struct thermal_sysfs_event_listener, ++ node); ++ if (listener == event_listener) { ++ spin_unlock(&el_list_lock); ++ return 0; ++ } ++ } ++ spin_unlock(&el_list_lock); ++ return -ENODEV; ++} ++ ++/* ++ * thermal_event_register ++ * ---------------------- ++ * Register for add/rmv of device/group/participant notification ++ * handler: thermal_event_handler containing callback func pointer ++ * report_type: Set this flag if callbacks needs to be invoked ++ * for existing device/group/participants ++ */ ++int thermal_event_register(struct thermal_sysfs_event_listener *listener, ++ unsigned int report_type) ++{ ++ unsigned int event_type; ++ if (!listener) ++ return -EINVAL; ++ ++ if (!thermal_is_listener_exist(listener)) ++ return -EEXIST; ++ ++ event_type = listener->event_type; ++ ++ /* Check if the event requested by listener is supported */ ++ if (!(event_type & THERMAL_SYSFS_EVENT_ADD_TD ++ || event_type & THERMAL_SYSFS_EVENT_ADD_GRP ++ || event_type & THERMAL_SYSFS_EVENT_ADD_PART ++ || event_type & THERMAL_SYSFS_EVENT_RMV_TD ++ || event_type & THERMAL_SYSFS_EVENT_RMV_GRP ++ || event_type & THERMAL_SYSFS_EVENT_RMV_PART)) ++ return -EINVAL; ++ ++ ++ spin_lock(&el_list_lock); ++ list_add(&(listener->node), &thermal_sysfs_event_listener_list); ++ spin_unlock(&el_list_lock); ++ ++ if (THERMAL_SYSFS_REPORT_EXISTING == report_type) { ++ if (listener->event_type & THERMAL_SYSFS_EVENT_ADD_TD) ++ dispatch_existing_td_events( ++ listener, ++ THERMAL_SYSFS_EVENT_ADD_TD); ++ ++ ++ if (listener->event_type & THERMAL_SYSFS_EVENT_ADD_GRP) ++ dispatch_existing_group_events( ++ listener, ++ THERMAL_SYSFS_EVENT_ADD_GRP); ++ ++ ++ if (listener->event_type & THERMAL_SYSFS_EVENT_ADD_PART) ++ dispatch_existing_participant_events(listener, ++ THERMAL_SYSFS_EVENT_ADD_PART); ++ ++ } ++ ++ return 0; ++} ++EXPORT_SYMBOL(thermal_event_register); ++ ++/* ++ * thermal_event_unregister ++ * ---------------------- ++ * UnRegister for add/rmv of device/group/participant notification ++ * handler: thermal_event_handler containing callback func pointer ++ * report_type: Set this flag if callbacks needs to be invoked ++ * for existing device/group/participants ++ */ ++int thermal_event_unregister(struct thermal_sysfs_event_listener *listener, ++ unsigned int report_type) ++{ ++ int result; ++ if (!listener) ++ return -EINVAL; ++ ++ result = thermal_is_listener_exist(listener); ++ if (result) ++ return result; ++ ++ if (THERMAL_SYSFS_REPORT_EXISTING == report_type) { ++ if (listener->event_type & THERMAL_SYSFS_EVENT_RMV_TD) ++ dispatch_existing_td_events(listener, ++ THERMAL_SYSFS_EVENT_RMV_TD); ++ ++ ++ if (listener->event_type & THERMAL_SYSFS_EVENT_RMV_GRP) ++ dispatch_existing_group_events( ++ listener, ++ THERMAL_SYSFS_EVENT_RMV_GRP); ++ ++ ++ if (listener->event_type & THERMAL_SYSFS_EVENT_RMV_PART) ++ dispatch_existing_participant_events( ++ listener, ++ THERMAL_SYSFS_EVENT_RMV_PART); ++ ++ } ++ ++ spin_lock(&el_list_lock); ++ list_del(&listener->node); ++ spin_unlock(&el_list_lock); ++ ++ return 0; ++} ++EXPORT_SYMBOL(thermal_event_unregister); ++ ++/* ++ * thermal_get_algo_mode ++ * ---------------------- ++ * Method to know whether the user mode application has taken over ++ */ ++int thermal_get_algo_mode(void) ++{ ++ return thermalconfig.mode; ++} ++EXPORT_SYMBOL(thermal_get_algo_mode); ++ ++/* ++ * thermal_sysfs_generate_event ++ * --------------------------- ++ * Drivers managing thermal devices can invoke this method to notify ++ * user applications about thermal events ++ */ ++int thermal_sysfs_generate_event(struct thermal_device *td, ++ enum kobject_action action) ++{ ++ return kobject_uevent(&td->kobj, action); ++} ++EXPORT_SYMBOL(thermal_sysfs_generate_event); ++ ++/* ++ * thermal_set_userenabled ++ * ----------------------- ++ * Interface function for platform sensor driver to disable userspace algo ++ * ue: enable / disable userspace algo based on BIOS configuration ++ */ ++int thermal_set_userenabled(enum thermal_userenabled ue) ++{ ++ thermalconfig.userenabled = ue; ++ ++ if (THERMAL_USER_DISABLED == ue) ++ thermalconfig.mode = THERMAL_KERNELSPACE; ++ ++ return 0; ++} ++EXPORT_SYMBOL(thermal_set_userenabled); ++ ++static int __init thermal_sysfs_init(void) ++{ ++ int result = 0; ++ result = subsystem_register(&thermal_subsys); ++ if (result) ++ return result; ++ ++ /* Register the 'Config' folder under sysfs */ ++ kobject_set_name(&thermalconfig.kobj, THERMAL_SYSFS_CONFIG); ++ thermalconfig.kobj.parent = &thermal_subsys.kobj; ++ thermalconfig.kobj.ktype = &ktype_thermalconfig; ++ ++ result = kobject_register(&thermalconfig.kobj); ++ ++ if (result) ++ return result; ++ ++ /* Fill the attributes under 'Config' folder */ ++ thermalconfig_populate_dir(&thermalconfig); ++ ++ return 0; ++} ++ ++static void __exit thermal_sysfs_exit(void) ++{ ++ kobject_unregister(&thermalconfig.kobj); ++ subsystem_unregister(&thermal_subsys); ++} ++ ++postcore_initcall(thermal_sysfs_init); ++module_exit(thermal_sysfs_exit); +diff --git a/include/linux/thermal.h b/include/linux/thermal.h +new file mode 100644 +index 0000000..fb4f224 +--- /dev/null ++++ b/include/linux/thermal.h +@@ -0,0 +1,294 @@ ++/* ++ * thermal.h - Thermal device interface ($Revision: 1 $) ++ * ++ * Copyright (C) 2006, 2007 Sujith Thomas ++ ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; version 2 of the License. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * ++ * Provide infrastructure from kernel to enable user-space ++ * thermal management algorithm ++ * Accepts registration of thermal devices(sensors). ++ * Accepts registration for group of participants associated with this sensor ++ * Accepts registration of extra attributes over the standard attributes. ++ * Issues notification to registered drivers upon registration of new thermal ++ * devices ++ * Adds a 'Config' folder for user mode application to take over kernel mode ++ * algo ++ * ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#define KELVIN_TO_CELSIUS(t) \ ++ (long)(((long)t-2732 >= 0) ? ((long)t-2732+5)/10 : ((long)t-2732-5)/10) ++#define CELSIUS_TO_KELVIN(t) ((t*10) + 2732) ++ ++/* -------------------------------------------------------------------------- ++ Component Driver Interface ++ -------------------------------------------------------------------------- */ ++ ++struct thermal_device; ++ ++/*thermal device attributes*/ ++struct thermal_device_attribute { ++ struct attribute attr; ++ ssize_t(*show) (struct thermal_device *td, ++ struct thermal_device_attribute *attr, char *buf); ++ ssize_t(*store) (struct thermal_device *td, ++ struct thermal_device_attribute *attr, ++ const char *buf, size_t count); ++}; ++ ++/*Helper macros for using THERMAL DEVICE attributes*/ ++#define THERMAL_DEVICE_ATTR(_name, _mode, _show, _store) \ ++struct thermal_device_attribute thermal_device_attr_##_name = { \ ++ .attr = { \ ++ .name = __stringify(_name), \ ++ .mode = _mode, \ ++ .owner = THIS_MODULE, \ ++ }, \ ++ .show = _show, \ ++ .store = _store, \ ++}; ++ ++#define to_thermal_device_attr(_attr) \ ++ (container_of(_attr, \ ++ struct thermal_device_attribute, \ ++ attr)) ++ ++#define to_thermal_device(obj) \ ++ container_of(obj, struct thermal_device, kobj) ++ ++#define THERMAL_ATTRIB_TEMPERATURE "temperature" ++#define THERMAL_ATTRIB_CRITICAL "critical" ++#define THERMAL_ATTRIB_HOT "hot" ++#define THERMAL_ATTRIB_PASSIVE "passive" ++#define THERMAL_ATTRIB_POLLING_FREQ "polling_freq" ++#define THERMAL_ATTRIB_COOLING_MODE "cooling_mode" ++#define THERMAL_ATTRIB_STATE "state" ++ ++/* The attributes which will be displayed for any thermal device */ ++struct thermal_device_ops { ++ int (*thermal_get_temperature) (void *devdata, ++ struct thermal_device_attribute *attr, ++ int *temperature); ++ int (*thermal_get_critical) (void *devdata, ++ struct thermal_device_attribute *attr, ++ int *temperature); ++ int (*thermal_get_hot) (void *devdata, ++ struct thermal_device_attribute *attr, ++ int *temperature); ++ int (*thermal_get_passive) (void *devdata, ++ struct thermal_device_attribute *attr, ++ int *temperature); ++ int (*thermal_set_cooling_mode) (void *devdata, ++ struct thermal_device_attribute *attr, ++ int cooilng_mode); ++ int (*thermal_get_polling_freq) (void *devdata, ++ struct thermal_device_attribute *attr, ++ int *polling_freq); ++ int (*thermal_get_state) (void *devdata, ++ struct thermal_device_attribute *attr, ++ char *buf); ++}; ++ ++/* The participant which may be associated with a sensor ++ For eg: CPU,Fan etc.. */ ++struct thermal_participant { ++ char name[KOBJ_NAME_LEN]; /*Name of the participant*/ ++ struct thermal_group *group; /*Group in which it belongs*/ ++ /*Pointer to kobj associated with default location in sysfs*/ ++ struct kobject *kobj; ++}; ++ ++/* The 'group' of devices associated with a sensor ++ For Eg: passive_devices, active_devices */ ++struct thermal_group { ++ struct list_head node; /*Linked list management*/ ++ char name[KOBJ_NAME_LEN]; /*Name of the group*/ ++ /*Pointer to thermal device which contains this group*/ ++ struct thermal_device *td; ++ int participant_count; /*No:of participants in this group*/ ++ struct thermal_participant *participant;/*Array of participants*/ ++ struct kobject kobj; /* Group's Kobject */ ++}; ++ ++/* The thermal device information */ ++struct thermal_device { ++ struct list_head node; /* Linked list management*/ ++ struct thermal_device_ops *ops; /*Callback routines*/ ++ char name[KOBJ_NAME_LEN]; /* Name of thermal device*/ ++ void *devdata; /* Device's private data*/ ++ /* List of groups associated with this thermal device*/ ++ struct list_head group_node; ++ struct kobject kobj; /* Thermal device's Kobject*/ ++}; ++ ++#define THERMAL_SYSFS_EVENT_ADD_TD 0x01 ++#define THERMAL_SYSFS_EVENT_ADD_GRP 0x02 ++#define THERMAL_SYSFS_EVENT_ADD_PART 0x04 ++#define THERMAL_SYSFS_EVENT_RMV_TD 0x08 ++#define THERMAL_SYSFS_EVENT_RMV_GRP 0x10 ++#define THERMAL_SYSFS_EVENT_RMV_PART 0x20 ++ ++#define THERMAL_SYSFS_REPORT_EXISTING 0x0 ++#define THERMAL_SYSFS_NOREPORT_EXISTING 0x1 ++ ++struct thermal_sysfs_event_listener { ++ struct list_head node; ++ /*Call back function (handler) upon receiving an event */ ++ int (*thermal_sysfs_event_handler) (int event_type ++ , void *sysfs_data ++ , void *private); ++ int event_type; ++ /* Event only from query_name will be notified*/ ++ char *query_name; ++ /* Context of the registering driver*/ ++ void *private; ++ ++}; ++ ++/* -------------------------------------------------------------------------- ++ Configuration Interface ++ -------------------------------------------------------------------------- */ ++ ++#define THERMAL_SYSFS_CONFIG "config" ++ ++#define THERMAL_MAX_MODE 2 ++enum thermal_userenabled { THERMAL_USER_DISABLED, THERMAL_USER_ENABLED }; ++enum thermal_mode { THERMAL_USERSPACE, THERMAL_KERNELSPACE }; ++ ++struct thermal_config { ++ u8 userenabled:1;/* 1 if user application is allowed to take over */ ++ u8 mode:1; /* 0 if userspace algorithm has taken over */ ++ struct kobject kobj; /*Syfs stuff */ ++}; ++ ++/* -------------------------------------------------------------------------- ++ Registration functions ++----------------------------------------------------------------------------- */ ++ ++/* ++ * thermal_device_register ++ * ------------------------ ++ * Method for registering thermal devices(sensors) with sysfs ++ * name: The name that should appear in sysfs ++ * devdata : Device private context ++ * ops : List of call back functions for various attributes ++ */ ++struct thermal_device *thermal_device_register(const char *name, ++ void *devdata, ++ struct thermal_device_ops *ops); ++/* ++ * thermal_group_register ++ * ------------------------ ++ * Method for registering groups such as ACPI _TZD with sysfs ++ * name: The name that should appear in sysfs ++ * td : Device under which this group is to be created ++ * participant_count : No:of participants in this group ++ * participants: Pointer to an array of participants ++ */ ++int thermal_group_register(const char *name, struct thermal_device *td, ++ int participant_count, ++ struct thermal_participant *participant); ++ ++/* ++ * thermal_attribute_register ++ * ------------------------ ++ * Method for registering extra attributes with sysfs ++ * td : Device under which attributes should be created ++ * thermal_device_attrs : array of attributes to be added ++ */ ++int thermal_attribute_register(struct thermal_device *td, ++ struct thermal_device_attribute ++ **thermal_device_attrs); ++ ++/* ++ * thermal_event_register ++ * ---------------------- ++ * Register for add/rmv of device/group/participant notification ++ * handler: thermal_event_handler containing callback func pointer ++ * report_type: Set this flag if callbacks needs to be invoked ++ * for existing device/group/participants ++ */ ++int thermal_event_register(struct thermal_sysfs_event_listener *listener, ++ unsigned int report_type); ++ ++/* ++ * thermal_device_unregister ++ * ------------------------ ++ * Method for unregistering thermal devices(sensors) with sysfs ++ * td: Pointer to thermal_device ++ */ ++int thermal_device_unregister(struct thermal_device *td); ++ ++/* ++ * thermal_group_unregister ++ * ------------------------ ++ * Method for unregistering groups within a thermal device ++ * td: Pointer to thermal_device from where the group should be removed ++ * name : Name of the group given during registration ++ */ ++int thermal_group_unregister(struct thermal_device *td, const char *name); ++ ++/* ++ * thermal_attribute_unregister ++ * ------------------------ ++ * Method for unregistering extra attributes with sysfs ++ * td : Device under which attributes should be removed ++ * thermal_device_attrs : array of attributes to be removed ++ */ ++int thermal_attribute_unregister(struct thermal_device *td, ++ struct thermal_device_attribute ++ **thermal_device_attrs); ++/* ++ * thermal_event_unregister ++ * ---------------------- ++ * UnRegister for add/rmv of device/group/participant notification ++ * handler: thermal_event_handler containing callback func pointer ++ * report_type: Set this flag if callbacks needs to be invoked ++ * for existing device/group/participants ++ */ ++int thermal_event_unregister(struct thermal_sysfs_event_listener *listener, ++ unsigned int report_type); ++/* ++ * thermal_get_algo_mode ++ * ---------------------- ++ * Method to know whether the user mode application has taken over ++ */ ++int thermal_get_algo_mode(void); ++ ++/* ++ * thermal_sysfs_generate_event ++ * --------------------------- ++ * Drivers managing thermal devices can invoke this method to notify ++ * user applications about thermal events ++ */ ++int thermal_sysfs_generate_event(struct thermal_device *td, ++ enum kobject_action action); ++ ++/* ++ * thermal_set_userenabled ++ * ----------------------- ++ * Interface function for platform sensor driver to disble userspace algo ++ * ue: enable / disable userspace algo based on BIOS configuration ++ */ ++int thermal_set_userenabled(enum thermal_userenabled um); +-- +1.5.3.7-dirty + --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/rules +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/rules @@ -0,0 +1 @@ +# Nothing special here --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/config.lpia +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/config.lpia @@ -0,0 +1,4117 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.24-16-lpiacompat +# Wed Apr 9 03:44:05 2008 +# +# CONFIG_64BIT is not set +CONFIG_X86_32=y +# CONFIG_X86_64 is not set +CONFIG_X86=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_QUICKLIST=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_DMI=y +# CONFIG_RWSEM_GENERIC_SPINLOCK is not set +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +# CONFIG_GENERIC_TIME_VSYSCALL is not set +CONFIG_ARCH_SUPPORTS_OPROFILE=y +# CONFIG_ZONE_DMA32 is not set +CONFIG_ARCH_POPULATES_NODE_MAP=y +# CONFIG_AUDIT_ARCH is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# General setup +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_VERSION_SIGNATURE="Unofficial" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_TASKSTATS is not set +# CONFIG_USER_NS is not set +# CONFIG_PID_NS is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_TREE=y +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_CGROUPS is not set +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FAIR_USER_SCHED=y +# CONFIG_FAIR_CGROUP_SCHED is not set +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_KMOD=y +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBD=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_PREEMPT_NOTIFIERS=y + +# +# Processor type and features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_SMP=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_NUMAQ is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_ES7000 is not set +# CONFIG_X86_VSMP is not set +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_GUEST=y +CONFIG_VMI=y +CONFIG_LGUEST_GUEST=y +# CONFIG_M386 is not set +# CONFIG_M486 is not set +CONFIG_M586=y +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_GENERIC_CPU is not set +CONFIG_X86_GENERIC=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_XADD=y +CONFIG_X86_PPRO_FENCE=y +CONFIG_X86_F00F_BUG=y +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_INVLPG=y +CONFIG_X86_BSWAP=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_ALIGNMENT_16=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_MINIMUM_CPU_FAMILY=4 +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_NR_CPUS=8 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_BKL=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +# CONFIG_X86_MCE is not set +CONFIG_VM86=y +CONFIG_TOSHIBA=m +CONFIG_I8K=m +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_MICROCODE=m +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_X86_MSR=m +CONFIG_X86_CPUID=m +# CONFIG_NOHIGHMEM is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_2G_OPT is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_HIGHMEM=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_DISCONTIGMEM_MANUAL is not set +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_SPARSEMEM_STATIC=y +# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_NR_QUICK=1 +CONFIG_VIRT_TO_BUS=y +CONFIG_HIGHPTE=y +# CONFIG_MATH_EMULATION is not set +CONFIG_MTRR=y +CONFIG_EFI=y +# CONFIG_IRQBALANCE is not set +CONFIG_BOOT_IOREMAP=y +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_KEXEC=y +CONFIG_CRASH_DUMP=y +CONFIG_PHYSICAL_START=0x100000 +CONFIG_RELOCATABLE=y +CONFIG_PHYSICAL_ALIGN=0x100000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_COMPAT_VDSO is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y + +# +# Power management options +# +CONFIG_PM=y +CONFIG_PM_LEGACY=y +CONFIG_PM_DEBUG=y +# CONFIG_PM_VERBOSE is not set +CONFIG_PM_TRACE=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_SLEEP=y +CONFIG_SUSPEND_SMP_POSSIBLE=y +CONFIG_SUSPEND=y +CONFIG_PM_DISABLE_CONSOLE=y +CONFIG_HIBERNATION_SMP_POSSIBLE=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_THERMAL_SYSFS=m +CONFIG_ACPI=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_SYSFS_POWER=y +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_FAN=m +CONFIG_ACPI_DOCK=m +CONFIG_ACPI_BAY=m +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_CUSTOM_DSDT_INITRD=y +CONFIG_ACPI_BLACKLIST_YEAR=2000 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_SBS=m +CONFIG_APM=m +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_REAL_MODE_POWER_OFF is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=m +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m + +# +# CPUFreq processor drivers +# +CONFIG_X86_ACPI_CPUFREQ=m +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_GX_SUSPMOD=m +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=m +CONFIG_X86_SPEEDSTEP_SMI=m +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_CPUFREQ_NFORCE2=m +CONFIG_X86_LONGRUN=m +CONFIG_X86_LONGHAUL=m +# CONFIG_X86_E_POWERSAVER is not set + +# +# shared options +# +# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y + +# +# Bus options (PCI etc.) +# +CONFIG_PCI=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GODIRECT is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +CONFIG_HOTPLUG_PCI_PCIE=m +CONFIG_PCIEAER=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_PCI_MSI=y +CONFIG_PCI_LEGACY=y +# CONFIG_PCI_DEBUG is not set +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_ISA=y +CONFIG_EISA=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_NAMES=y +CONFIG_MCA=y +CONFIG_MCA_LEGACY=y +# CONFIG_MCA_PROC_FS is not set +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_K8_NB=y +CONFIG_PCCARD=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y +CONFIG_CARDBUS=y + +# +# PC-card bridges +# +CONFIG_YENTA=m +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_PD6729=m +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_TCIC=m +CONFIG_PCMCIA_PROBE=y +CONFIG_PCCARD_NONSTATIC=m +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_SHPC=m + +# +# Executable file formats / Emulations +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_ASK_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +# CONFIG_IP_PNP is not set +CONFIG_NET_IPIP=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_LRO=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_TAB_BITS=12 + +# +# IPVS transport protocol load balancing support +# +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y + +# +# IPVS scheduler +# +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m + +# +# IPVS application helper +# +CONFIG_IP_VS_FTP=m +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETLABEL is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK_ENABLED=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +# CONFIG_NF_CONNTRACK_SANE is not set +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m + +# +# DECnet: Netfilter Configuration +# +CONFIG_DECNET_NF_GRABULATOR=m + +# +# Bridge: Netfilter Configuration +# +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_IP_DCCP=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_IP_DCCP_ACKVEC=y + +# +# DCCP CCIDs Configuration (EXPERIMENTAL) +# +CONFIG_IP_DCCP_CCID2=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +CONFIG_IP_DCCP_CCID3=m +CONFIG_IP_DCCP_TFRC_LIB=m +# CONFIG_IP_DCCP_CCID3_DEBUG is not set +CONFIG_IP_DCCP_CCID3_RTO=100 + +# +# DCCP Kernel Hacking +# +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_NET_DCCPPROBE=m +CONFIG_IP_SCTP=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCTP_HMAC_MD5=y +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_ATM=y +CONFIG_ATM_CLIP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +CONFIG_DECNET=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_LTPC=m +CONFIG_COPS=m +CONFIG_COPS_DAYNA=y +CONFIG_COPS_TANGENT=y +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +CONFIG_X25=m +CONFIG_LAPB=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_WAN_ROUTER=m +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RR=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_INGRESS=m + +# +# Classification +# +CONFIG_NET_CLS=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_U32=m +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLS_U32_MARK=y +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_GACT=m +CONFIG_GACT_PROB=y +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_SIMP=m +# CONFIG_NET_CLS_POLICE is not set +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_SCH_FIFO=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +CONFIG_NET_TCPPROBE=m +CONFIG_HAMRADIO=y + +# +# Packet Radio protocols +# +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_NETROM=m +CONFIG_ROSE=m + +# +# AX.25 network device drivers +# +CONFIG_MKISS=m +CONFIG_6PACK=m +CONFIG_BPQETHER=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_EPP=m +CONFIG_YAM=m +CONFIG_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +CONFIG_IRDA_ULTRA=y + +# +# IrDA options +# +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_DEBUG=y + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +CONFIG_DONGLE=y +CONFIG_ESI_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_TEKRAM_DONGLE=m +# CONFIG_TOIM3232_DONGLE is not set +CONFIG_LITELINK_DONGLE=m +CONFIG_MA600_DONGLE=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_MCP2120_DONGLE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_ACT200L_DONGLE=m +CONFIG_KINGSUN_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KS959_DONGLE=m + +# +# Old SIR device drivers +# + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +CONFIG_SIGMATEL_FIR=m +CONFIG_NSC_FIR=m +CONFIG_WINBOND_FIR=m +CONFIG_TOSHIBA_FIR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_ALI_FIR=m +CONFIG_VLSI_FIR=m +CONFIG_VIA_FIR=m +CONFIG_MCS_FIR=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_RXKAD=m +CONFIG_FIB_RULES=y + +# +# Wireless +# +CONFIG_CFG80211=m +CONFIG_NL80211=y +CONFIG_WIRELESS_EXT=y +CONFIG_MAC80211=m +CONFIG_MAC80211_RCSIMPLE=y +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_INPUT=m +CONFIG_RFKILL_LEDS=y +CONFIG_NET_9P=m +CONFIG_NET_9P_FD=m +CONFIG_NET_9P_VIRTIO=m +# CONFIG_NET_9P_DEBUG is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_CONNECTOR=m +CONFIG_MTD=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=m +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_FTL=m +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_INFTL=m +CONFIG_RFD_FTL=m +CONFIG_SSFDC=m +CONFIG_MTD_OOPS=m + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_GEN_PROBE=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_RAM=m +CONFIG_MTD_ROM=m +CONFIG_MTD_ABSENT=m + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PNC2000=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_TS5500=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_L440GX=m +CONFIG_MTD_PCI=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_PLATRAM=m + +# +# Self-contained MTD device drivers +# +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTD_BLOCK2MTD=m + +# +# Disk-On-Chip Device Drivers +# +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCECC=m +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_DOCPROBE_ADDRESS=0 +CONFIG_MTD_NAND=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_MUSEUM_IDS is not set +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_CS553X=m +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_SIM=m + +# +# UBI - Unsorted block images +# +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_RESERVE=1 +CONFIG_MTD_UBI_GLUEBI=y + +# +# UBI debugging options +# +# CONFIG_MTD_UBI_DEBUG is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_SERIAL=m +CONFIG_PARPORT_PC_FIFO=y +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_AX88796=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +CONFIG_ISAPNP=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +CONFIG_PNPACPI=y + +# +# Sysfs device class support +# +CONFIG_SYSFS_DEV_CLASS=y +CONFIG_FAN_SYSFS=m +CONFIG_MEMORY_SYSFS=m +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_DEV_XD=m +CONFIG_PARIDE=m + +# +# Parallel IDE high-level drivers +# +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PT=m +CONFIG_PARIDE_PG=m + +# +# Parallel IDE protocol modules +# +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_CISS_SCSI_TAPE=y +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_VIRTIO_BLK=m +CONFIG_MISC_DEVICES=y +CONFIG_IBM_ASM=m +CONFIG_PHANTOM=m +CONFIG_EEPROM_93CX6=m +CONFIG_SGI_IOC4=m +CONFIG_TIFM_CORE=m +CONFIG_TIFM_7XX1=m +CONFIG_ASUS_LAPTOP=m +CONFIG_FUJITSU_LAPTOP=m +CONFIG_MSI_LAPTOP=m +CONFIG_SONY_LAPTOP=m +CONFIG_SONYPI_COMPAT=y +CONFIG_THINKPAD_ACPI=m +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_BAY=y +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=m + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_IDEDISK=m +# CONFIG_IDEDISK_MULTI_MODE is not set +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_DELKIN=m +CONFIG_BLK_DEV_IDECD=m +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDESCSI=m +CONFIG_BLK_DEV_IDEACPI=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_PROC_FS=y + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=m +CONFIG_BLK_DEV_PLATFORM=m +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +CONFIG_BLK_DEV_IDEPNP=y + +# +# PCI IDE chipsets support +# +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDEPCI_PCIBUS_ORDER is not set +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_GENERIC is not set +CONFIG_BLK_DEV_OPTI621=m +# CONFIG_BLK_DEV_RZ1000 is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_AEC62XX=m +CONFIG_BLK_DEV_ALI15X3=m +# CONFIG_WDC_ALI15X3 is not set +CONFIG_BLK_DEV_AMD74XX=m +CONFIG_BLK_DEV_ATIIXP=m +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_TRIFLEX is not set +CONFIG_BLK_DEV_CY82C693=m +# CONFIG_BLK_DEV_CS5520 is not set +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_CS5535=m +CONFIG_BLK_DEV_HPT34X=m +# CONFIG_HPT34X_AUTODMA is not set +CONFIG_BLK_DEV_HPT366=m +# CONFIG_BLK_DEV_JMICRON is not set +CONFIG_BLK_DEV_SC1200=m +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_IT821X is not set +CONFIG_BLK_DEV_NS87415=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +CONFIG_PDC202XX_BURST=y +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SIS5513 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_TRM290=m +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BLK_DEV_TC86C001=m +# CONFIG_IDE_ARM is not set + +# +# Other IDE chipsets support +# + +# +# Note: most of these also require special kernel boot parameters +# +CONFIG_BLK_DEV_4DRIVES=y +CONFIG_BLK_DEV_ALI14XX=m +CONFIG_BLK_DEV_DTC2278=m +CONFIG_BLK_DEV_HT6560B=m +CONFIG_BLK_DEV_QD65XX=m +CONFIG_BLK_DEV_UMC8672=m +CONFIG_BLK_DEV_IDEDMA=y +CONFIG_IDE_ARCH_OBSOLETE_INIT=y +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +CONFIG_RAID_ATTRS=m +CONFIG_SCSI=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_TGT=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_SCH=m + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SAS_ATA=y +# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_ISCSI_TCP=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_7000FASST=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AHA152X=m +CONFIG_SCSI_AHA1542=m +CONFIG_SCSI_AHA1740=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC79XX=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_SCSI_AIC94XX=m +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_IN2000=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_ARCMSR_AER=y +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_SAS=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_BUSLOGIC=m +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_DTC3280=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_FD_MCS=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_GENERIC_NCR5380=m +CONFIG_SCSI_GENERIC_NCR5380_MMIO=m +CONFIG_SCSI_GENERIC_NCR53C400=y +CONFIG_SCSI_IBMMCA=m +CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y +# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_NCR_D700=m +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +CONFIG_SCSI_NCR_Q720=m +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4 +CONFIG_SCSI_NCR53C8XX_SYNC=5 +CONFIG_SCSI_PAS16=m +CONFIG_SCSI_PSI240I=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_SEAGATE=m +CONFIG_SCSI_SIM710=m +CONFIG_SCSI_SYM53C416=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_T128=m +CONFIG_SCSI_U14_34F=m +CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y +CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +CONFIG_SCSI_U14_34F_MAX_TAGS=8 +CONFIG_SCSI_ULTRASTOR=m +CONFIG_SCSI_NSP32=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_ACPI=y +CONFIG_SATA_AHCI=m +CONFIG_SATA_SVW=m +CONFIG_ATA_PIIX=m +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_PDC_ADMA=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_PROMISE=m +CONFIG_SATA_SX4=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SATA_INIC162X=m +CONFIG_PATA_ACPI=m +# CONFIG_PATA_ALI is not set +CONFIG_PATA_AMD=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +# CONFIG_PATA_CMD640_PCI is not set +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CS5535 is not set +CONFIG_PATA_CS5536=m +# CONFIG_PATA_CYPRESS is not set +CONFIG_PATA_EFAR=m +CONFIG_ATA_GENERIC=m +CONFIG_PATA_HPT366=m +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3_DMA is not set +# CONFIG_PATA_ISAPNP is not set +CONFIG_PATA_IT821X=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_JMICRON=m +# CONFIG_PATA_LEGACY is not set +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_NETCELL=m +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OPTIDMA is not set +CONFIG_PATA_PCMCIA=m +# CONFIG_PATA_PDC_OLD is not set +CONFIG_PATA_QDI=m +# CONFIG_PATA_RADISYS is not set +CONFIG_PATA_RZ1000=m +# CONFIG_PATA_SC1200 is not set +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_SIS=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +# CONFIG_PATA_WINBOND_VLB is not set +CONFIG_PATA_PLATFORM=m +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_MULTIPATH_RDAC=m +CONFIG_DM_MULTIPATH_HP=m +# CONFIG_DM_DELAY is not set +CONFIG_DM_UEVENT=y +CONFIG_FUSION=y +CONFIG_FUSION_SPI=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_SAS=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_CTL=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_LOGGING=y + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +CONFIG_IEEE1394=m + +# +# Subsystem Options +# +# CONFIG_IEEE1394_VERBOSEDEBUG is not set + +# +# Controllers +# +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_OHCI1394=m + +# +# Protocols +# +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y +CONFIG_IEEE1394_ETH1394=m +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_I2O=m +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_BUS=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_SCSI=m +CONFIG_I2O_PROC=m +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set +CONFIG_IFB=m +CONFIG_DUMMY=m +CONFIG_BONDING=m +CONFIG_MACVLAN=m +CONFIG_EQUALIZER=m +CONFIG_TUN=m +CONFIG_VETH=m +CONFIG_NET_SB1000=m +CONFIG_ARCNET=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_ISA=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_PHYLIB=m + +# +# MII PHY device drivers +# +CONFIG_MARVELL_PHY=m +CONFIG_DAVICOM_PHY=m +CONFIG_QSEMI_PHY=m +CONFIG_LXT_PHY=m +CONFIG_CICADA_PHY=m +CONFIG_VITESSE_PHY=m +CONFIG_SMSC_PHY=m +CONFIG_BROADCOM_PHY=m +CONFIG_ICPLUS_PHY=m +CONFIG_FIXED_PHY=m +# CONFIG_FIXED_MII_10_FDX is not set +# CONFIG_FIXED_MII_100_FDX is not set +CONFIG_FIXED_MII_1000_FDX=y +CONFIG_FIXED_MII_AMNT=1 +CONFIG_MDIO_BITBANG=m +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +CONFIG_HAPPYMEAL=m +CONFIG_SUNGEM=m +CONFIG_CASSINI=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_EL1=m +CONFIG_EL2=m +CONFIG_ELPLUS=m +CONFIG_EL16=m +CONFIG_EL3=m +CONFIG_3C515=m +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_LANCE=m +CONFIG_NET_VENDOR_SMC=y +CONFIG_WD80x3=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_SMC9194=m +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NI52=m +CONFIG_NI65=m +CONFIG_NET_TULIP=y +CONFIG_DE2104X=m +CONFIG_TULIP=m +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_AT1700=m +CONFIG_DEPCA=m +CONFIG_HP100=m +CONFIG_NET_ISA=y +CONFIG_E2100=m +CONFIG_EWRK3=m +CONFIG_EEXPRESS=m +CONFIG_EEXPRESS_PRO=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPLAN=m +CONFIG_LP486E=m +CONFIG_ETH16I=m +CONFIG_NE2000=m +CONFIG_ZNET=m +CONFIG_SEEQ8005=m +CONFIG_NE2_MCA=m +CONFIG_IBMLANA=m +# CONFIG_IBM_NEW_EMAC_ZMII is not set +# CONFIG_IBM_NEW_EMAC_RGMII is not set +# CONFIG_IBM_NEW_EMAC_TAH is not set +# CONFIG_IBM_NEW_EMAC_EMAC4 is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +# CONFIG_PCNET32_NAPI is not set +CONFIG_AMD8111_ETH=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_AC3200=m +CONFIG_APRICOT=m +CONFIG_B44=m +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI=y +CONFIG_FORCEDETH=m +# CONFIG_FORCEDETH_NAPI is not set +CONFIG_CS89x0=m +CONFIG_EEPRO100=m +CONFIG_E100=m +CONFIG_LNE390=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=m +CONFIG_NE3210=m +CONFIG_ES3210=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +# CONFIG_VIA_RHINE_NAPI is not set +CONFIG_SC92031=m +CONFIG_NET_POCKET=y +CONFIG_ATP=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_NETDEV_1000=y +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000_NAPI=y +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_E1000E=m +CONFIG_IP1000=m +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_SIS190=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +# CONFIG_SK98LIN is not set +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m +CONFIG_NETDEV_10000=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T1_NAPI=y +CONFIG_CHELSIO_T3=m +CONFIG_IXGBE=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_MYRI10GE=m +CONFIG_NETXEN_NIC=m +CONFIG_NIU=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_TEHUTI=m +CONFIG_TR=y +CONFIG_IBMTR=m +CONFIG_IBMOL=m +CONFIG_IBMLS=m +CONFIG_3C359=m +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +CONFIG_SKISA=m +CONFIG_PROTEON=m +CONFIG_ABYSS=m +CONFIG_MADGEMC=m +CONFIG_SMCTR=m + +# +# Wireless LAN +# +CONFIG_WLAN_PRE80211=y +CONFIG_STRIP=m +CONFIG_ARLAN=m +CONFIG_WAVELAN=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_NETWAVE=m +CONFIG_WLAN_80211=y +CONFIG_PCMCIA_RAYCS=m +CONFIG_IPW2100=m +CONFIG_IPW2100_MONITOR=y +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2200=m +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +# CONFIG_IPW2200_DEBUG is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBERTAS_CS=m +CONFIG_LIBERTAS_SDIO=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_AIRO=m +CONFIG_HERMES=m +# CONFIG_PLX_HERMES is not set +# CONFIG_TMD_HERMES is not set +# CONFIG_NORTEL_HERMES is not set +# CONFIG_PCI_HERMES is not set +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_ATMEL=m +CONFIG_PCI_ATMEL=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_AIRO_CS=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PRISM54=m +CONFIG_USB_ZD1201=m +CONFIG_RTL8187=m +CONFIG_ADM8211=m +CONFIG_P54_COMMON=m +CONFIG_P54_USB=m +CONFIG_P54_PCI=m +# CONFIG_IWLWIFI is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_CS=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_PIO=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +# CONFIG_BCM43XX_PIO_MODE is not set +CONFIG_B43=m +CONFIG_B43_PCI_AUTOSELECT=y +CONFIG_B43_PCICORE_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_LEDS=y +CONFIG_B43_RFKILL=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43_DMA=y +CONFIG_B43_PIO=y +CONFIG_B43_DMA_AND_PIO_MODE=y +# CONFIG_B43_DMA_MODE is not set +# CONFIG_B43_PIO_MODE is not set +# CONFIG_B43LEGACY is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_RT2X00=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_RFKILL=y +CONFIG_RT2400PCI=m +CONFIG_RT2400PCI_RFKILL=y +CONFIG_RT2500PCI=m +CONFIG_RT2500PCI_RFKILL=y +CONFIG_RT61PCI=m +CONFIG_RT61PCI_RFKILL=y +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +# CONFIG_RT2X00_LIB_DEBUGFS is not set +# CONFIG_RT2X00_DEBUG is not set + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_EPSON2888=y +CONFIG_USB_KC2190=y +# CONFIG_USB_NET_ZAURUS is not set +CONFIG_NET_PCMCIA=y +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_AXNET=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_WAN=y +CONFIG_HOSTESS_SV11=m +CONFIG_COSA=m +CONFIG_LANMEDIA=m +CONFIG_SEALEVEL_4021=m +CONFIG_HDLC=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +CONFIG_HDLC_X25=m +CONFIG_PCI200SYN=m +CONFIG_WANXL=m +CONFIG_PC300=m +CONFIG_PC300_MLPPP=y + +# +# Cyclades-PC300 MLPPP support is disabled. +# + +# +# Refer to the file README.mlppp, provided by PC300 package. +# +# CONFIG_PC300TOO is not set +CONFIG_N2=m +CONFIG_C101=m +CONFIG_FARSYNC=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_SDLA=m +CONFIG_WAN_ROUTER_DRIVERS=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +CONFIG_LAPBETHER=m +CONFIG_X25_ASY=m +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_ATM_DRIVERS=y +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_LANAI=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_FORE200E_MAYBE=m +CONFIG_ATM_FORE200E_PCA=y +CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_FORE200E_TX_RETRY=16 +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E=m +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_FDDI=y +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_SKFP=m +CONFIG_HIPPI=y +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_PLIP=m +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +CONFIG_PPPOATM=m +CONFIG_PPPOL2TP=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLHC=m +CONFIG_SLIP_SMART=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_NET_FC=y +CONFIG_SHAPER=m +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_VIRTIO_NET=m +CONFIG_ISDN=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_MPP=y +CONFIG_IPPP_FILTER=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y + +# +# ISDN feature submodules +# +CONFIG_ISDN_DIVERSION=m + +# +# ISDN4Linux hardware drivers +# + +# +# Passive cards +# +CONFIG_ISDN_DRV_HISAX=m + +# +# D-channel protocol features +# +CONFIG_HISAX_EURO=y +CONFIG_DE_AOC=y +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_KEYPAD is not set +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_MAX_CARDS=8 + +# +# HiSax supported cards +# +CONFIG_HISAX_16_0=y +CONFIG_HISAX_16_3=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_AVM_A1=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_IX1MICROR2=y +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_ASUSCOM=y +CONFIG_HISAX_TELEINT=y +CONFIG_HISAX_HFCS=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_SPORTSTER=y +CONFIG_HISAX_MIC=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NICCY=y +CONFIG_HISAX_ISURF=y +CONFIG_HISAX_HSTSAPHIR=y +CONFIG_HISAX_BKM_A4T=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_W6692=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_ENTERNOW_PCI=y +# CONFIG_HISAX_DEBUG is not set + +# +# HiSax PCMCIA card service modules +# +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_TELES_CS=m + +# +# HiSax sub driver modules +# +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_HDLC=y + +# +# Active cards +# +CONFIG_ISDN_DRV_ICN=m +CONFIG_ISDN_DRV_PCBIT=m +CONFIG_ISDN_DRV_SC=m +CONFIG_ISDN_DRV_ACT2000=m +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_GIGASET_BASE=m +CONFIG_GIGASET_M105=m +CONFIG_GIGASET_M101=m +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIDRV=m + +# +# CAPI hardware drivers +# +CONFIG_CAPI_AVM=y +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_T1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_CAPI_EICON=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_POLLDEV=m + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_EVBUG=m + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_INPORT=m +# CONFIG_MOUSE_ATIXL is not set +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_INPUT_TABLET=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_WISTRON_BTNS=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_RAW=m +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_DEV_KMEM is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +CONFIG_ROCKETPORT=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_DIGIEPCA=m +# CONFIG_ESPSERIAL is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +CONFIG_MOXA_SMARTIO_NEW=m +# CONFIG_ISI is not set +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_N_HDLC=m +CONFIG_SPECIALIX=m +# CONFIG_SPECIALIX_RTSCTS is not set +CONFIG_SX=m +# CONFIG_RIO is not set +CONFIG_STALDRV=y + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_EXAR_ST16C554=m +CONFIG_SERIAL_8250_HUB6=m +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_MCA=m + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_PRINTER=m +# CONFIG_LP_CONSOLE is not set +CONFIG_PPDEV=m +CONFIG_HVC_DRIVER=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPMI_POWEROFF=m +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_NVRAM=m +CONFIG_RTC=y +CONFIG_DTLK=m +CONFIG_R3964=m +CONFIG_APPLICOM=m +CONFIG_SONYPI=m + +# +# PCMCIA character devices +# +CONFIG_SYNCLINK_CS=m +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_MWAVE=m +CONFIG_SCx200_GPIO=m +CONFIG_PC8736x_GPIO=m +CONFIG_NSC_GPIO=m +CONFIG_CS5535_GPIO=m +CONFIG_RAW_DRIVER=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_HPET=y +# CONFIG_HPET_RTC_IRQ is not set +CONFIG_HPET_MMAP=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_TCG_TPM=m +CONFIG_TCG_TIS=m +CONFIG_TCG_NSC=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TELCLOCK=m +CONFIG_DEVPORT=y +CONFIG_I2C=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=m + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALGOPCA=m + +# +# I2C Hardware Bus support +# +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIMTEC=m +CONFIG_SCx200_I2C=m +CONFIG_SCx200_I2C_SCL=12 +CONFIG_SCx200_I2C_SDA=13 +CONFIG_SCx200_ACB=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_STUB=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2C_PCA_ISA=m + +# +# Miscellaneous I2C Chip support +# +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_DS1682=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_TSL2550=m +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +CONFIG_SPI_LM70_LLP=m + +# +# SPI Protocol Masters +# +CONFIG_SPI_AT25=m +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_TLE62X0=m +CONFIG_W1=m +CONFIG_W1_CON=y + +# +# 1-wire Bus Masters +# +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2760=m +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=m +CONFIG_BATTERY_DS2760=m +CONFIG_HWMON=y +CONFIG_HWMON_VID=m +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_APPLESMC=m +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +CONFIG_SOFT_WATCHDOG=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_SC520_WDT=m +CONFIG_EUROTECH_WDT=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_WAFER_WDT=m +CONFIG_I6300ESB_WDT=m +CONFIG_ITCO_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_IT8712F_WDT=m +CONFIG_SC1200_WDT=m +CONFIG_SCx200_WDT=m +CONFIG_PC87413_WDT=m +CONFIG_60XX_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_SBC7240_WDT=m +CONFIG_CPU5_WDT=m +CONFIG_SMSC37B787_WDT=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_MACHZ_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m + +# +# ISA-based Watchdog Cards +# +CONFIG_PCWATCHDOG=m +CONFIG_MIXCOMWD=m +CONFIG_WDT=m +CONFIG_WDT_501=y + +# +# PCI-based Watchdog Cards +# +CONFIG_PCIPCWATCHDOG=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y + +# +# USB-based Watchdog Cards +# +CONFIG_USBPCWATCHDOG=m + +# +# Sonics Silicon Backplane +# +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB=m +CONFIG_SSB_PCIHOST_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +# CONFIG_SSB_PCMCIAHOST is not set +# CONFIG_SSB_SILENT is not set +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_DRIVER_PCICORE=y + +# +# Multifunction device drivers +# +CONFIG_MFD_SM501=m + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set + +# +# Encoders/decoders and other helper chips +# + +# +# Audio decoders +# +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TDA9875=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_TLV320AIC23B=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_VP27SMPX=m + +# +# Video decoders +# +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_TCM825X=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA7111=m +CONFIG_VIDEO_SAA7114=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7191=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_VPX3220=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# MPEG video encoders +# +CONFIG_VIDEO_CX2341X=m + +# +# Video encoders +# +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m + +# +# Video improvement chips +# +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_TUNER_3036=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_SAA7134=m +# CONFIG_VIDEO_SAA7134_ALSA is not set +# CONFIG_VIDEO_SAA7134_OSS is not set +CONFIG_VIDEO_SAA7134_DVB=m +# CONFIG_VIDEO_MXB is not set +# CONFIG_VIDEO_DPC is not set +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +# CONFIG_VIDEO_CX88_ALSA is not set +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_FB_IVTV=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_V4L_USB_DRIVERS=y +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_29XXX=y +CONFIG_VIDEO_PVRUSB2_24XXX=y +CONFIG_VIDEO_PVRUSB2_SYSFS=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m +CONFIG_USB_ET61X251=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +# CONFIG_USB_OV511 is not set +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +CONFIG_USB_ZC0301=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_CADET=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +# CONFIG_RADIO_TYPHOON_PROC_FS is not set +CONFIG_RADIO_ZOLTRIX=m +CONFIG_USB_DSBR=m +CONFIG_DVB_CORE=m +CONFIG_DVB_CORE_ATTACH=y +CONFIG_DVB_CAPTURE_DRIVERS=y + +# +# Supported SAA7146 based PCI Adapters +# +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_PATCH=m + +# +# Supported USB Adapters +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_CINERGYT2=m +CONFIG_DVB_CINERGYT2_TUNING=y +CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 +CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 +CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 +CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y +CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 + +# +# Supported FlexCopII (B2C2) Adapters +# +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set + +# +# Supported BT878 Adapters +# +CONFIG_DVB_BT8XX=m + +# +# Supported Pluto2 Adapters +# +CONFIG_DVB_PLUTO2=m + +# +# Supported DVB Frontends +# + +# +# Customise DVB Frontends +# +# CONFIG_DVB_FE_CUSTOMISE is not set + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_STV0299=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_MT312=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_TDA10086=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_L64781=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_VES1820=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_S5H1409=m + +# +# Tuners/PLL support +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TDA827X=m +CONFIG_DVB_TUNER_QT1010=m +CONFIG_DVB_TUNER_MT2060=m +CONFIG_DVB_TUNER_MT2266=m +CONFIG_DVB_TUNER_MT2131=m +CONFIG_DVB_TUNER_DIB0070=m + +# +# Miscellaneous devices +# +CONFIG_DVB_LNBP21=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_TUA6100=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_TUNER=m +# CONFIG_VIDEO_TUNER_CUSTOMIZE is not set +CONFIG_TUNER_MT20XX=m +CONFIG_TUNER_TDA8290=m +CONFIG_TUNER_TEA5761=m +CONFIG_TUNER_TEA5767=m +CONFIG_TUNER_SIMPLE=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_DAB=y +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_AGP=m +CONFIG_AGP_ALI=m +CONFIG_AGP_ATI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=m +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AGP_EFFICEON=m +CONFIG_DRM=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_SIS=m +CONFIG_DRM_VIA=m +CONFIG_DRM_SAVAGE=m +CONFIG_VGASTATE=m +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_FB=y +CONFIG_FIRMWARE_EDID=y +CONFIG_FB_DDC=m +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_SVGALIB=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_TILEBLITTING=y + +# +# Frame buffer hardware drivers +# +CONFIG_FB_CIRRUS=m +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_ARC=m +CONFIG_FB_ASILIANT=y +CONFIG_FB_IMSTT=y +CONFIG_FB_VGA16=m +CONFIG_FB_UVESA=m +CONFIG_FB_VESA=m +CONFIG_FB_EFI=y +CONFIG_FB_IMAC=y +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_BACKLIGHT=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_I2C=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_BACKLIGHT=y +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_LE80578=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_INTEL_I2C=y +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_S3=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_KYRO=m +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_CYBLA=m +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_ARK=m +CONFIG_FB_PM3=m +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GEODE_GX=m +# CONFIG_FB_GEODE_GX_SET_FBSIZE is not set +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_SM501=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_LTV350QV=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=m +CONFIG_BACKLIGHT_PROGEAR=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m + +# +# Display device support +# +CONFIG_DISPLAY_SUPPORT=m + +# +# Display hardware drivers +# + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VIDEO_SELECT=y +CONFIG_MDA_CONSOLE=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=m +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +# CONFIG_LOGO is not set + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_RTCTIMER=m +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_SUPPORT_OLD_API=y +# CONFIG_SND_VERBOSE_PROCFS is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_MPU401_UART=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_DUMMY=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_MPU401=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_AD1848_LIB=m +CONFIG_SND_CS4231_LIB=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SB16_DSP=m + +# +# ISA devices +# +CONFIG_SND_ADLIB=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_ALS100=m +CONFIG_SND_AZT2320=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4232=m +CONFIG_SND_CS4236=m +CONFIG_SND_DT019X=m +CONFIG_SND_ES968=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_SC6000=m +CONFIG_SND_GUS_SYNTH=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_MIRO=m +CONFIG_SND_SB8=m +CONFIG_SND_SB16=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SB16_CSP_FIRMWARE_IN_KERNEL=y +CONFIG_SND_SGALAXY=m +CONFIG_SND_SSCAPE=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_WAVEFRONT_FIRMWARE_IN_KERNEL=y + +# +# PCI devices +# +CONFIG_SND_AD1889=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +CONFIG_SND_BT87X_OVERCLOCK=y +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_DARLA20=m +CONFIG_SND_GINA20=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_GINA24=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MONA=m +CONFIG_SND_MIA=m +CONFIG_SND_ECHO3G=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_CODEC_ATIHDMI=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_POWER_SAVE=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y +CONFIG_SND_MIXART=m +CONFIG_SND_NM256=m +CONFIG_SND_PCXHR=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VX222=m +CONFIG_SND_YMFPCI=m +CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 + +# +# SPI devices +# + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y + +# +# PCMCIA devices +# +CONFIG_SND_VXPOCKET=m +CONFIG_SND_PDAUDIOCF=m + +# +# System on Chip audio support +# +CONFIG_SND_SOC=m + +# +# SoC Audio support for SuperH +# + +# +# Open Sound System +# +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_MSNDCLAS=m +CONFIG_MSNDCLAS_INIT_FILE="/etc/sound/msndinit.bin" +CONFIG_MSNDCLAS_PERM_FILE="/etc/sound/msndperm.bin" +CONFIG_SOUND_MSNDPIN=m +CONFIG_MSNDPIN_INIT_FILE="/etc/sound/pndspini.bin" +CONFIG_MSNDPIN_PERM_FILE="/etc/sound/pndsperm.bin" +CONFIG_SOUND_OSS=m +# CONFIG_SOUND_TRACEINIT is not set +CONFIG_SOUND_DMAP=y +CONFIG_SOUND_SSCAPE=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_MSS=m +CONFIG_SOUND_MPU401=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PSS=m +CONFIG_PSS_MIXER=y +CONFIG_SOUND_SB=m +CONFIG_SOUND_YM3812=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_AEDSP16=m +CONFIG_SC6600=y +CONFIG_SC6600_JOY=y +CONFIG_SC6600_CDROM=4 +CONFIG_SC6600_CDROMBASE=0 +CONFIG_AEDSP16_MSS=y +# CONFIG_AEDSP16_SBPRO is not set +CONFIG_SOUND_KAHLUA=m +CONFIG_AC97_BUS=m +CONFIG_HID_SUPPORT=y +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set +CONFIG_HIDRAW=y + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT_POWERBOOK=y +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DEVICE_CLASS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_PERSIST is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD_SSB=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m +CONFIG_USB_R8A66597_HCD=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_LIBUSUAL=y + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y + +# +# USB port drivers +# +CONFIG_USB_USS720=m + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_AIRPRIME=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +# CONFIG_USB_SERIAL_IR is not set +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_BERRY_CHARGE=m +CONFIG_USB_LED=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_LD=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_IOWARRIOR=m +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# +CONFIG_USB_ATM=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_CXACRU=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_XUSBATM=m + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set +# CONFIG_USB_GADGET_ATMEL_USBA is not set +# CONFIG_USB_GADGET_FSL_USB2 is not set +CONFIG_USB_GADGET_NET2280=y +CONFIG_USB_NET2280=m +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +CONFIG_USB_GADGET_DUALSPEED=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set + +# +# MMC/SD/SDIO support, can only select one arch from MMC and MSS +# +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_UNSAFE_RESUME is not set + +# +# MMC/SD Card Drivers +# +CONFIG_MMC_BLOCK=m +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_SDIO_UART=m + +# +# MMC/SD Host Controller Drivers +# +CONFIG_MMC_SDHCI=m +CONFIG_MMC_RICOH_MMC=m +CONFIG_MMC_WBSD=m +CONFIG_MMC_TIFM_SD=m +# CONFIG_MSS is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_WRAP=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_ADDR_TRANS=y +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INFINIBAND_AMSO1100_DEBUG=y +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_MLX4_INFINIBAND=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_ISER=m +CONFIG_EDAC=y + +# +# Reporting subsystems +# +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_MM_EDAC=m +# CONFIG_EDAC_AMD76X is not set +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_I5000=m +CONFIG_RTC_LIB=m +CONFIG_RTC_CLASS=m + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +CONFIG_RTC_INTF_DEV_UIE_EMUL=y +CONFIG_RTC_DRV_TEST=m + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y + +# +# SPI RTC drivers +# +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_MAX6902=m + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_V3020=m + +# +# on-CPU RTC drivers +# +CONFIG_DMADEVICES=y + +# +# DMA Devices +# +CONFIG_INTEL_IOATDMA=m +CONFIG_DMA_ENGINE=y + +# +# DMA Clients +# +CONFIG_NET_DMA=y +CONFIG_DCA=m +CONFIG_AUXDISPLAY=y +CONFIG_KS0108=m +CONFIG_KS0108_PORT=0x378 +CONFIG_KS0108_DELAY=2 +CONFIG_CFAG12864B=m +CONFIG_CFAG12864B_RATE=20 + +# +# Userspace I/O +# +CONFIG_UIO=m +CONFIG_UIO_CIF=m + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +CONFIG_EFI_VARS=y +CONFIG_DELL_RBU=m +CONFIG_DCDBAS=m +CONFIG_DMIID=y + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_STATISTICS=y +CONFIG_FS_POSIX_ACL=y +CONFIG_XFS_FS=m +CONFIG_XFS_QUOTA=y +CONFIG_XFS_SECURITY=y +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_RT=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_DEBUG_MASKLOG=y +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_MINIX_FS=m +CONFIG_ROMFS_FS=m +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_PRINT_QUOTA_WARNING=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QUOTACTL=y +CONFIG_DNOTIFY=y +CONFIG_AUTOFS_FS=m +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m +CONFIG_GENERIC_ACL=y + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +# CONFIG_NTFS_RW is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_VMCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=m + +# +# Miscellaneous filesystems +# +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_AFFS_FS=m +CONFIG_ECRYPT_FS=m +CONFIG_HFS_FS=m +CONFIG_HFSPLUS_FS=m +CONFIG_BEFS_FS=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BFS_FS=m +CONFIG_EFS_FS=m +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +CONFIG_CRAMFS=y +CONFIG_VXFS_FS=m +CONFIG_HPFS_FS=m +CONFIG_QNX4FS_FS=m +CONFIG_SYSV_FS=m +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +# CONFIG_UFS_DEBUG is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_XPRT_RDMA=m +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set +CONFIG_NCP_FS=m +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_OS2_NS=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_EXTRAS=y +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_AFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_9P_FS=m +CONFIG_DEFAULT_RELATIME=y +CONFIG_DEFAULT_RELATIME_VAL=1 + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_OSF_PARTITION=y +CONFIG_AMIGA_PARTITION=y +CONFIG_ATARI_PARTITION=y +CONFIG_MAC_PARTITION=y +CONFIG_MSDOS_PARTITION=y +CONFIG_BSD_DISKLABEL=y +CONFIG_MINIX_SUBPARTITION=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_LDM_PARTITION=y +# CONFIG_LDM_DEBUG is not set +CONFIG_SGI_PARTITION=y +CONFIG_ULTRIX_PARTITION=y +CONFIG_SUN_PARTITION=y +CONFIG_KARMA_PARTITION=y +CONFIG_EFI_PARTITION=y +CONFIG_SYSV68_PARTITION=y +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=m +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_INSTRUMENTATION=y +CONFIG_PROFILING=y +CONFIG_OPROFILE=m +CONFIG_KPROBES=y +# CONFIG_MARKERS is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_PRINTK_TIME=y +# CONFIG_ENABLE_WARN_DEPRECATED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_UNUSED_SYMBOLS=y +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_SCHED_DEBUG=y +# CONFIG_SCHEDSTATS is not set +CONFIG_TIMER_STATS=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_FRAME_POINTER is not set +# CONFIG_FORCED_INLINING is not set +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_LKDTM is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_SAMPLES is not set +CONFIG_NONPROMISC_DEVMEM=y +CONFIG_EARLY_PRINTK=y +# CONFIG_WRAPPER_PRINT is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set + +# +# Page alloc debug is incompatible with Software Suspend on i386 +# +# CONFIG_DEBUG_RODATA is not set +# CONFIG_4KSTACKS is not set +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_DOUBLEFAULT=y +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +CONFIG_DEFAULT_IO_DELAY_TYPE=0 + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_SECURITY=y +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_CAPABILITIES=y +# CONFIG_SECURITY_FILE_CAPABILITIES is not set +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +# CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +# CONFIG_SECURITY_APPARMOR_DISABLE is not set +CONFIG_XOR_BLOCKS=m +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_XOR=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ABLKCIPHER=m +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_586=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_DEV_PADLOCK=y +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_HAVE_KVM=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=m +CONFIG_KVM_INTEL=m +CONFIG_KVM_AMD=m +CONFIG_LGUEST=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_RING=y +# CONFIG_VIRTIO_PCI is not set +CONFIG_VIRTIO_BALLOON=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC32=y +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +CONFIG_AUDIT_GENERIC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_LZO_COMPRESS=m +CONFIG_LZO_DECOMPRESS=m +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_DRM_VIA_CHROME9=m --- linux-2.6.24.orig/debian/binary-custom.d/lpiacompat/vars +++ linux-2.6.24/debian/binary-custom.d/lpiacompat/vars @@ -0,0 +1,7 @@ +arch="lpia" +supported="UME" +desc="Ubuntu Moblie and Embedded-x86 compat edition" +target="UME kernel" +bootloader="lilo (>= 19.1) | grub" +provides="kvm-api-4, redhat-cluster-modules" +section_image="universe/base" --- linux-2.6.24.orig/debian/binary-custom.d/xen/patchset/005-xen-amd64-native-readtsc.patch +++ linux-2.6.24/debian/binary-custom.d/xen/patchset/005-xen-amd64-native-readtsc.patch @@ -0,0 +1,19 @@ +diff -r -u --new-file custom-source-xen/include/asm-x86/mach-xen/asm/msr.h custom-source-xen.amd64-native-readtsc/include/asm-x86/mach-xen/asm/msr.h +--- custom-source-xen/include/asm-x86/mach-xen/asm/msr.h 2008-06-07 13:35:36.000000000 -0600 ++++ custom-source-xen.amd64-native-readtsc/include/asm-x86/mach-xen/asm/msr.h 2008-06-07 13:34:46.000000000 -0600 +@@ -216,6 +216,15 @@ + + #define write_rdtscp_aux(val) wrmsr(0xc0000103, val, 0) + ++static inline unsigned long long native_read_tsc(void) ++{ ++ unsigned long long val; ++ rdtsc_barrier(); ++ rdtscll(val); ++ rdtsc_barrier(); ++ return val; ++} ++ + #define rdpmc(counter,low,high) \ + __asm__ __volatile__("rdpmc" \ + : "=a" (low), "=d" (high) \ --- linux-2.6.24.orig/debian/binary-custom.d/xen/patchset/009-xen-import-vmware-tsc.patch +++ linux-2.6.24/debian/binary-custom.d/xen/patchset/009-xen-import-vmware-tsc.patch @@ -0,0 +1,42 @@ +diff -Nurp custom-source-xen.orig/include/asm-x86/mach-xen/asm/processor_32.h custom-source-xen/include/asm-x86/mach-xen/asm/processor_32.h +--- custom-source-xen.orig/include/asm-x86/mach-xen/asm/processor_32.h 2009-02-17 12:15:04.697531000 +0100 ++++ custom-source-xen/include/asm-x86/mach-xen/asm/processor_32.h 2009-02-17 13:41:35.636278857 +0100 +@@ -82,6 +82,7 @@ struct cpuinfo_x86 { + __u8 cpu_core_id; /* Core id */ + __u8 cpu_index; /* index into per_cpu list */ + #endif ++ unsigned int x86_hyper_vendor; + } __attribute__((__aligned__(SMP_CACHE_BYTES))); + + #define X86_VENDOR_INTEL 0 +@@ -95,6 +96,9 @@ struct cpuinfo_x86 { + #define X86_VENDOR_NUM 9 + #define X86_VENDOR_UNKNOWN 0xff + ++#define X86_HYPER_VENDOR_NONE 0 ++#define X86_HYPER_VENDOR_VMWARE 1 ++ + /* + * capabilities of CPUs + */ +diff -Nurp custom-source-xen.orig/include/asm-x86/mach-xen/asm/processor_64.h custom-source-xen/include/asm-x86/mach-xen/asm/processor_64.h +--- custom-source-xen.orig/include/asm-x86/mach-xen/asm/processor_64.h 2009-02-17 12:15:04.707530000 +0100 ++++ custom-source-xen/include/asm-x86/mach-xen/asm/processor_64.h 2009-02-17 13:41:19.246278326 +0100 +@@ -76,6 +76,7 @@ struct cpuinfo_x86 { + __u8 cpu_core_id; /* Core id. */ + __u8 cpu_index; /* index into per_cpu list */ + #endif ++ unsigned int x86_hyper_vendor; + } ____cacheline_aligned; + + #define X86_VENDOR_INTEL 0 +@@ -88,6 +89,9 @@ struct cpuinfo_x86 { + #define X86_VENDOR_NUM 8 + #define X86_VENDOR_UNKNOWN 0xff + ++#define X86_HYPER_VENDOR_NONE 0 ++#define X86_HYPER_VENDOR_VMWARE 1 ++ + #ifdef CONFIG_SMP + DECLARE_PER_CPU(struct cpuinfo_x86, cpu_info); + #define cpu_data(cpu) per_cpu(cpu_info, cpu) --- linux-2.6.24.orig/debian/binary-custom.d/xen/patchset/007-xen-dma-avoid-swiotlb-buffering.patch +++ linux-2.6.24/debian/binary-custom.d/xen/patchset/007-xen-dma-avoid-swiotlb-buffering.patch @@ -0,0 +1,61 @@ +diff -Nurp custom-source-xen/arch/x86/kernel/pci-dma_32-xen.c custom-source-xen.new/arch/x86/kernel/pci-dma_32-xen.c +--- custom-source-xen/arch/x86/kernel/pci-dma_32-xen.c 2008-11-14 14:29:02.000000000 +0000 ++++ custom-source-xen.new/arch/x86/kernel/pci-dma_32-xen.c 2008-11-14 14:23:09.000000000 +0000 +@@ -77,6 +77,39 @@ do { \ + } \ + } while (0) + ++static int check_pages_physically_contiguous(unsigned long pfn, ++ unsigned int offset, ++ size_t length) ++{ ++ unsigned long next_mfn; ++ int i; ++ int nr_pages; ++ ++ next_mfn = pfn_to_mfn(pfn); ++ nr_pages = (offset + length + PAGE_SIZE-1) >> PAGE_SHIFT; ++ ++ for (i = 1; i < nr_pages; i++) { ++ if (pfn_to_mfn(++pfn) != ++next_mfn) ++ return 0; ++ } ++ return 1; ++} ++ ++int range_straddles_page_boundary(paddr_t p, size_t size) ++{ ++ extern unsigned long *contiguous_bitmap; ++ unsigned long pfn = p >> PAGE_SHIFT; ++ unsigned int offset = p & ~PAGE_MASK; ++ ++ if (offset + size <= PAGE_SIZE) ++ return 0; ++ if (test_bit(pfn, contiguous_bitmap)) ++ return 0; ++ if (check_pages_physically_contiguous(pfn, offset, size)) ++ return 0; ++ return 1; ++} ++ + int + dma_map_sg(struct device *hwdev, struct scatterlist *sgl, int nents, + enum dma_data_direction direction) +diff -Nurp custom-source-xen/include/asm-x86/mach-xen/asm/dma-mapping_32.h custom-source-xen.new/include/asm-x86/mach-xen/asm/dma-mapping_32.h +--- custom-source-xen/include/asm-x86/mach-xen/asm/dma-mapping_32.h 2008-11-14 14:29:02.000000000 +0000 ++++ custom-source-xen.new/include/asm-x86/mach-xen/asm/dma-mapping_32.h 2008-11-14 14:25:33.000000000 +0000 +@@ -22,13 +22,7 @@ address_needs_mapping(struct device *hwd + return (addr & ~mask) != 0; + } + +-static inline int +-range_straddles_page_boundary(paddr_t p, size_t size) +-{ +- extern unsigned long *contiguous_bitmap; +- return ((((p & ~PAGE_MASK) + size) > PAGE_SIZE) && +- !test_bit(p >> PAGE_SHIFT, contiguous_bitmap)); +-} ++extern int range_straddles_page_boundary(paddr_t p, size_t size); + + #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f) + #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h) --- linux-2.6.24.orig/debian/binary-custom.d/xen/patchset/008-xen-avoid-phys-base.patch +++ linux-2.6.24/debian/binary-custom.d/xen/patchset/008-xen-avoid-phys-base.patch @@ -0,0 +1,13 @@ +diff -Nurp custom-source-xen.orig/arch/x86/kernel/machine_kexec_64.c custom-source-xen/arch/x86/kernel/machine_kexec_64.c +--- custom-source-xen.orig/arch/x86/kernel/machine_kexec_64.c 2008-11-25 19:31:39.000000000 +0100 ++++ custom-source-xen/arch/x86/kernel/machine_kexec_64.c 2008-11-25 19:57:56.000000000 +0100 +@@ -281,7 +281,9 @@ NORET_TYPE void machine_kexec(struct kim + + void arch_crash_save_vmcoreinfo(void) + { ++#ifndef CONFIG_XEN + VMCOREINFO_SYMBOL(phys_base); ++#endif + VMCOREINFO_SYMBOL(init_level4_pgt); + + #ifdef CONFIG_ARCH_DISCONTIGMEM_ENABLE --- linux-2.6.24.orig/debian/binary-custom.d/xen/patchset/001-xen-base.patch +++ linux-2.6.24/debian/binary-custom.d/xen/patchset/001-xen-base.patch @@ -0,0 +1,96116 @@ +diff -Naur ubuntu-hardy/arch/x86/boot/Makefile ubuntu-hardy-xen/arch/x86/boot/Makefile +--- ubuntu-hardy/arch/x86/boot/Makefile 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/boot/Makefile 2008-04-09 13:17:22.000000000 +0100 +@@ -25,7 +25,7 @@ + + #RAMDISK := -DRAMDISK=512 + +-targets := vmlinux.bin setup.bin setup.elf zImage bzImage ++targets := vmlinux.bin setup.bin setup.elf zImage bzImage vmlinuz vmlinux-stripped + subdir- := compressed + + setup-y += a20.o apm.o cmdline.o copy.o cpu.o cpucheck.o edd.o +@@ -168,5 +168,13 @@ + cp System.map $(INSTALL_PATH)/ + if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi + ++$(obj)/vmlinuz: $(obj)/vmlinux-stripped FORCE ++ $(call if_changed,gzip) ++ @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' ++ ++$(obj)/vmlinux-stripped: OBJCOPYFLAGS := -g --strip-unneeded ++$(obj)/vmlinux-stripped: vmlinux FORCE ++ $(call if_changed,objcopy) ++ + install: + sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $(BOOTIMAGE) System.map "$(INSTALL_PATH)" +diff -Naur ubuntu-hardy/arch/x86/ia32/ia32entry-xen.S ubuntu-hardy-xen/arch/x86/ia32/ia32entry-xen.S +--- ubuntu-hardy/arch/x86/ia32/ia32entry-xen.S 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/ia32/ia32entry-xen.S 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,669 @@ ++/* ++ * Compatibility mode system call entry point for x86-64. ++ * ++ * Copyright 2000-2002 Andi Kleen, SuSE Labs. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define IA32_NR_syscalls ((ia32_syscall_end - ia32_sys_call_table)/8) ++ ++ .macro IA32_ARG_FIXUP noebp=0 ++ movl %edi,%r8d ++ .if \noebp ++ .else ++ movl %ebp,%r9d ++ .endif ++ xchg %ecx,%esi ++ movl %ebx,%edi ++ movl %edx,%edx /* zero extension */ ++ .endm ++ ++ /* clobbers %eax */ ++ .macro CLEAR_RREGS ++ xorl %eax,%eax ++ movq %rax,R11(%rsp) ++ movq %rax,R10(%rsp) ++ movq %rax,R9(%rsp) ++ movq %rax,R8(%rsp) ++ .endm ++ ++ .macro LOAD_ARGS32 offset ++ movl \offset(%rsp),%r11d ++ movl \offset+8(%rsp),%r10d ++ movl \offset+16(%rsp),%r9d ++ movl \offset+24(%rsp),%r8d ++ movl \offset+40(%rsp),%ecx ++ movl \offset+48(%rsp),%edx ++ movl \offset+56(%rsp),%esi ++ movl \offset+64(%rsp),%edi ++ movl \offset+72(%rsp),%eax ++ .endm ++ ++#include "../kernel/xen_entry_64.S" ++ ++ .macro CFI_STARTPROC32 simple ++ CFI_STARTPROC \simple ++ CFI_UNDEFINED r8 ++ CFI_UNDEFINED r9 ++ CFI_UNDEFINED r10 ++ CFI_UNDEFINED r11 ++ CFI_UNDEFINED r12 ++ CFI_UNDEFINED r13 ++ CFI_UNDEFINED r14 ++ CFI_UNDEFINED r15 ++ .endm ++ ++/* ++ * 32bit SYSENTER instruction entry. ++ * ++ * Arguments: ++ * %eax System call number. ++ * %ebx Arg1 ++ * %ecx Arg2 ++ * %edx Arg3 ++ * %esi Arg4 ++ * %edi Arg5 ++ * %ebp user stack ++ * 0(%ebp) Arg6 ++ * ++ * Interrupts on. ++ * ++ * This is purely a fast path. For anything complicated we use the int 0x80 ++ * path below. Set up a complete hardware stack frame to share code ++ * with the int 0x80 path. ++ */ ++ENTRY(ia32_sysenter_target) ++ CFI_STARTPROC32 simple ++ CFI_SIGNAL_FRAME ++ CFI_DEF_CFA rsp,SS+8-RIP+16 ++ /*CFI_REL_OFFSET ss,SS-RIP+16*/ ++ CFI_REL_OFFSET rsp,RSP-RIP+16 ++ /*CFI_REL_OFFSET rflags,EFLAGS-RIP+16*/ ++ /*CFI_REL_OFFSET cs,CS-RIP+16*/ ++ CFI_REL_OFFSET rip,RIP-RIP+16 ++ CFI_REL_OFFSET r11,8 ++ CFI_REL_OFFSET rcx,0 ++ movq 8(%rsp),%r11 ++ CFI_RESTORE r11 ++ popq %rcx ++ CFI_ADJUST_CFA_OFFSET -8 ++ CFI_RESTORE rcx ++ movl %ebp,%ebp /* zero extension */ ++ movl %eax,%eax ++ movl $__USER32_DS,40(%rsp) ++ movq %rbp,32(%rsp) ++ movl $__USER32_CS,16(%rsp) ++ movl $VSYSCALL32_SYSEXIT,8(%rsp) ++ movq %rax,(%rsp) ++ cld ++ SAVE_ARGS 0,0,1 ++ /* no need to do an access_ok check here because rbp has been ++ 32bit zero extended */ ++1: movl (%rbp),%r9d ++ .section __ex_table,"a" ++ .quad 1b,ia32_badarg ++ .previous ++ GET_THREAD_INFO(%r10) ++ orl $TS_COMPAT,threadinfo_status(%r10) ++ testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10) ++ jnz sysenter_tracesys ++sysenter_do_call: ++ cmpl $(IA32_NR_syscalls-1),%eax ++ ja ia32_badsys ++ IA32_ARG_FIXUP 1 ++ call *ia32_sys_call_table(,%rax,8) ++ movq %rax,RAX-ARGOFFSET(%rsp) ++ jmp int_ret_from_sys_call ++ ++sysenter_tracesys: ++ xchgl %r9d,%ebp ++ SAVE_REST ++ CLEAR_RREGS ++ movq %r9,R9(%rsp) ++ movq $-ENOSYS,RAX(%rsp) /* really needed? */ ++ movq %rsp,%rdi /* &pt_regs -> arg1 */ ++ call syscall_trace_enter ++ LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ ++ RESTORE_REST ++ xchgl %ebp,%r9d ++ jmp sysenter_do_call ++ CFI_ENDPROC ++ENDPROC(ia32_sysenter_target) ++ ++/* ++ * 32bit SYSCALL instruction entry. ++ * ++ * Arguments: ++ * %eax System call number. ++ * %ebx Arg1 ++ * %ecx return EIP ++ * %edx Arg3 ++ * %esi Arg4 ++ * %edi Arg5 ++ * %ebp Arg2 [note: not saved in the stack frame, should not be touched] ++ * %esp user stack ++ * 0(%esp) Arg6 ++ * ++ * Interrupts on. ++ * ++ * This is purely a fast path. For anything complicated we use the int 0x80 ++ * path below. Set up a complete hardware stack frame to share code ++ * with the int 0x80 path. ++ */ ++ENTRY(ia32_cstar_target) ++ CFI_STARTPROC32 simple ++ CFI_SIGNAL_FRAME ++ CFI_DEF_CFA rsp,SS+8-RIP+16 ++ /*CFI_REL_OFFSET ss,SS-RIP+16*/ ++ CFI_REL_OFFSET rsp,RSP-RIP+16 ++ /*CFI_REL_OFFSET rflags,EFLAGS-RIP+16*/ ++ /*CFI_REL_OFFSET cs,CS-RIP+16*/ ++ CFI_REL_OFFSET rip,RIP-RIP+16 ++ movl %eax,%eax /* zero extension */ ++ movl RSP-RIP+16(%rsp),%r8d ++ SAVE_ARGS -8,1,1 ++ movq %rax,ORIG_RAX-ARGOFFSET(%rsp) ++ movq %rbp,RCX-ARGOFFSET(%rsp) /* this lies slightly to ptrace */ ++ movl %ebp,%ecx ++ movl $__USER32_CS,CS-ARGOFFSET(%rsp) ++ movl $__USER32_DS,SS-ARGOFFSET(%rsp) ++ /* no need to do an access_ok check here because r8 has been ++ 32bit zero extended */ ++ /* hardware stack frame is complete now */ ++1: movl (%r8),%r9d ++ .section __ex_table,"a" ++ .quad 1b,ia32_badarg ++ .previous ++ GET_THREAD_INFO(%r10) ++ orl $TS_COMPAT,threadinfo_status(%r10) ++ testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10) ++ jnz cstar_tracesys ++cstar_do_call: ++ cmpl $IA32_NR_syscalls-1,%eax ++ ja ia32_badsys ++ IA32_ARG_FIXUP 1 ++ call *ia32_sys_call_table(,%rax,8) ++ movq %rax,RAX-ARGOFFSET(%rsp) ++ jmp int_ret_from_sys_call ++ ++cstar_tracesys: ++ xchgl %r9d,%ebp ++ SAVE_REST ++ CLEAR_RREGS ++ movq %r9,R9(%rsp) ++ movq $-ENOSYS,RAX(%rsp) /* really needed? */ ++ movq %rsp,%rdi /* &pt_regs -> arg1 */ ++ call syscall_trace_enter ++ LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ ++ RESTORE_REST ++ xchgl %ebp,%r9d ++ movl RSP-ARGOFFSET(%rsp), %r8d ++ jmp cstar_do_call ++END(ia32_cstar_target) ++ ++ia32_badarg: ++ movq $-EFAULT,%rax ++ jmp ia32_sysret ++ CFI_ENDPROC ++ ++/* ++ * Emulated IA32 system calls via int 0x80. ++ * ++ * Arguments: ++ * %eax System call number. ++ * %ebx Arg1 ++ * %ecx Arg2 ++ * %edx Arg3 ++ * %esi Arg4 ++ * %edi Arg5 ++ * %ebp Arg6 [note: not saved in the stack frame, should not be touched] ++ * ++ * Notes: ++ * Uses the same stack frame as the x86-64 version. ++ * All registers except %eax must be saved (but ptrace may violate that) ++ * Arguments are zero extended. For system calls that want sign extension and ++ * take long arguments a wrapper is needed. Most calls can just be called ++ * directly. ++ * Assumes it is only called from user space and entered with interrupts on. ++ */ ++ ++ENTRY(ia32_syscall) ++ CFI_STARTPROC32 simple ++ CFI_SIGNAL_FRAME ++ CFI_DEF_CFA rsp,SS+8-RIP+16 ++ /*CFI_REL_OFFSET ss,SS-RIP+16*/ ++ CFI_REL_OFFSET rsp,RSP-RIP+16 ++ /*CFI_REL_OFFSET rflags,EFLAGS-RIP+16*/ ++ /*CFI_REL_OFFSET cs,CS-RIP+16*/ ++ CFI_REL_OFFSET rip,RIP-RIP+16 ++ CFI_REL_OFFSET r11,8 ++ CFI_REL_OFFSET rcx,0 ++ movq 8(%rsp),%r11 ++ CFI_RESTORE r11 ++ popq %rcx ++ CFI_ADJUST_CFA_OFFSET -8 ++ CFI_RESTORE rcx ++ movl %eax,%eax ++ movq %rax,(%rsp) ++ cld ++ /* note the registers are not zero extended to the sf. ++ this could be a problem. */ ++ SAVE_ARGS 0,0,1 ++ GET_THREAD_INFO(%r10) ++ orl $TS_COMPAT,threadinfo_status(%r10) ++ testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10) ++ jnz ia32_tracesys ++ia32_do_syscall: ++ cmpl $(IA32_NR_syscalls-1),%eax ++ ja ia32_badsys ++ IA32_ARG_FIXUP ++ call *ia32_sys_call_table(,%rax,8) # xxx: rip relative ++ia32_sysret: ++ movq %rax,RAX-ARGOFFSET(%rsp) ++ jmp int_ret_from_sys_call ++ ++ia32_tracesys: ++ SAVE_REST ++ CLEAR_RREGS ++ movq $-ENOSYS,RAX(%rsp) /* really needed? */ ++ movq %rsp,%rdi /* &pt_regs -> arg1 */ ++ call syscall_trace_enter ++ LOAD_ARGS32 ARGOFFSET /* reload args from stack in case ptrace changed it */ ++ RESTORE_REST ++ jmp ia32_do_syscall ++END(ia32_syscall) ++ ++ia32_badsys: ++ movq $0,ORIG_RAX-ARGOFFSET(%rsp) ++ movq $-ENOSYS,RAX-ARGOFFSET(%rsp) ++ jmp int_ret_from_sys_call ++ ++quiet_ni_syscall: ++ movq $-ENOSYS,%rax ++ ret ++ CFI_ENDPROC ++ ++ .macro PTREGSCALL label, func, arg ++ .globl \label ++\label: ++ leaq \func(%rip),%rax ++ leaq -ARGOFFSET+8(%rsp),\arg /* 8 for return address */ ++ jmp ia32_ptregs_common ++ .endm ++ ++ CFI_STARTPROC32 ++ ++ PTREGSCALL stub32_rt_sigreturn, sys32_rt_sigreturn, %rdi ++ PTREGSCALL stub32_sigreturn, sys32_sigreturn, %rdi ++ PTREGSCALL stub32_sigaltstack, sys32_sigaltstack, %rdx ++ PTREGSCALL stub32_sigsuspend, sys32_sigsuspend, %rcx ++ PTREGSCALL stub32_execve, sys32_execve, %rcx ++ PTREGSCALL stub32_fork, sys_fork, %rdi ++ PTREGSCALL stub32_clone, sys32_clone, %rdx ++ PTREGSCALL stub32_vfork, sys_vfork, %rdi ++ PTREGSCALL stub32_iopl, sys_iopl, %rsi ++ PTREGSCALL stub32_rt_sigsuspend, sys_rt_sigsuspend, %rdx ++ ++ENTRY(ia32_ptregs_common) ++ popq %r11 ++ CFI_ENDPROC ++ CFI_STARTPROC32 simple ++ CFI_SIGNAL_FRAME ++ CFI_DEF_CFA rsp,SS+8-ARGOFFSET ++ CFI_REL_OFFSET rax,RAX-ARGOFFSET ++ CFI_REL_OFFSET rcx,RCX-ARGOFFSET ++ CFI_REL_OFFSET rdx,RDX-ARGOFFSET ++ CFI_REL_OFFSET rsi,RSI-ARGOFFSET ++ CFI_REL_OFFSET rdi,RDI-ARGOFFSET ++ CFI_REL_OFFSET rip,RIP-ARGOFFSET ++/* CFI_REL_OFFSET cs,CS-ARGOFFSET*/ ++/* CFI_REL_OFFSET rflags,EFLAGS-ARGOFFSET*/ ++ CFI_REL_OFFSET rsp,RSP-ARGOFFSET ++/* CFI_REL_OFFSET ss,SS-ARGOFFSET*/ ++ SAVE_REST ++ call *%rax ++ RESTORE_REST ++ jmp ia32_sysret /* misbalances the return cache */ ++ CFI_ENDPROC ++END(ia32_ptregs_common) ++ ++ .section .rodata,"a" ++ .align 8 ++ia32_sys_call_table: ++ .quad sys_restart_syscall ++ .quad sys_exit ++ .quad stub32_fork ++ .quad sys_read ++ .quad sys_write ++ .quad compat_sys_open /* 5 */ ++ .quad sys_close ++ .quad sys32_waitpid ++ .quad sys_creat ++ .quad sys_link ++ .quad sys_unlink /* 10 */ ++ .quad stub32_execve ++ .quad sys_chdir ++ .quad compat_sys_time ++ .quad sys_mknod ++ .quad sys_chmod /* 15 */ ++ .quad sys_lchown16 ++ .quad quiet_ni_syscall /* old break syscall holder */ ++ .quad sys_stat ++ .quad sys32_lseek ++ .quad sys_getpid /* 20 */ ++ .quad compat_sys_mount /* mount */ ++ .quad sys_oldumount /* old_umount */ ++ .quad sys_setuid16 ++ .quad sys_getuid16 ++ .quad compat_sys_stime /* stime */ /* 25 */ ++ .quad sys32_ptrace /* ptrace */ ++ .quad sys_alarm ++ .quad sys_fstat /* (old)fstat */ ++ .quad sys_pause ++ .quad compat_sys_utime /* 30 */ ++ .quad quiet_ni_syscall /* old stty syscall holder */ ++ .quad quiet_ni_syscall /* old gtty syscall holder */ ++ .quad sys_access ++ .quad sys_nice ++ .quad quiet_ni_syscall /* 35 */ /* old ftime syscall holder */ ++ .quad sys_sync ++ .quad sys32_kill ++ .quad sys_rename ++ .quad sys_mkdir ++ .quad sys_rmdir /* 40 */ ++ .quad sys_dup ++ .quad sys32_pipe ++ .quad compat_sys_times ++ .quad quiet_ni_syscall /* old prof syscall holder */ ++ .quad sys_brk /* 45 */ ++ .quad sys_setgid16 ++ .quad sys_getgid16 ++ .quad sys_signal ++ .quad sys_geteuid16 ++ .quad sys_getegid16 /* 50 */ ++ .quad sys_acct ++ .quad sys_umount /* new_umount */ ++ .quad quiet_ni_syscall /* old lock syscall holder */ ++ .quad compat_sys_ioctl ++ .quad compat_sys_fcntl64 /* 55 */ ++ .quad quiet_ni_syscall /* old mpx syscall holder */ ++ .quad sys_setpgid ++ .quad quiet_ni_syscall /* old ulimit syscall holder */ ++ .quad sys32_olduname ++ .quad sys_umask /* 60 */ ++ .quad sys_chroot ++ .quad sys32_ustat ++ .quad sys_dup2 ++ .quad sys_getppid ++ .quad sys_getpgrp /* 65 */ ++ .quad sys_setsid ++ .quad sys32_sigaction ++ .quad sys_sgetmask ++ .quad sys_ssetmask ++ .quad sys_setreuid16 /* 70 */ ++ .quad sys_setregid16 ++ .quad stub32_sigsuspend ++ .quad compat_sys_sigpending ++ .quad sys_sethostname ++ .quad compat_sys_setrlimit /* 75 */ ++ .quad compat_sys_old_getrlimit /* old_getrlimit */ ++ .quad compat_sys_getrusage ++ .quad sys32_gettimeofday ++ .quad sys32_settimeofday ++ .quad sys_getgroups16 /* 80 */ ++ .quad sys_setgroups16 ++ .quad sys32_old_select ++ .quad sys_symlink ++ .quad sys_lstat ++ .quad sys_readlink /* 85 */ ++ .quad sys_uselib ++ .quad sys_swapon ++ .quad sys_reboot ++ .quad compat_sys_old_readdir ++ .quad sys32_mmap /* 90 */ ++ .quad sys_munmap ++ .quad sys_truncate ++ .quad sys_ftruncate ++ .quad sys_fchmod ++ .quad sys_fchown16 /* 95 */ ++ .quad sys_getpriority ++ .quad sys_setpriority ++ .quad quiet_ni_syscall /* old profil syscall holder */ ++ .quad compat_sys_statfs ++ .quad compat_sys_fstatfs /* 100 */ ++ .quad sys_ioperm ++ .quad compat_sys_socketcall ++ .quad sys_syslog ++ .quad compat_sys_setitimer ++ .quad compat_sys_getitimer /* 105 */ ++ .quad compat_sys_newstat ++ .quad compat_sys_newlstat ++ .quad compat_sys_newfstat ++ .quad sys32_uname ++ .quad stub32_iopl /* 110 */ ++ .quad sys_vhangup ++ .quad quiet_ni_syscall /* old "idle" system call */ ++ .quad sys32_vm86_warning /* vm86old */ ++ .quad compat_sys_wait4 ++ .quad sys_swapoff /* 115 */ ++ .quad compat_sys_sysinfo ++ .quad sys32_ipc ++ .quad sys_fsync ++ .quad stub32_sigreturn ++ .quad stub32_clone /* 120 */ ++ .quad sys_setdomainname ++ .quad sys_uname ++ .quad sys_modify_ldt ++ .quad compat_sys_adjtimex ++ .quad sys32_mprotect /* 125 */ ++ .quad compat_sys_sigprocmask ++ .quad quiet_ni_syscall /* create_module */ ++ .quad sys_init_module ++ .quad sys_delete_module ++ .quad quiet_ni_syscall /* 130 get_kernel_syms */ ++ .quad sys32_quotactl ++ .quad sys_getpgid ++ .quad sys_fchdir ++ .quad quiet_ni_syscall /* bdflush */ ++ .quad sys_sysfs /* 135 */ ++ .quad sys_personality ++ .quad quiet_ni_syscall /* for afs_syscall */ ++ .quad sys_setfsuid16 ++ .quad sys_setfsgid16 ++ .quad sys_llseek /* 140 */ ++ .quad compat_sys_getdents ++ .quad compat_sys_select ++ .quad sys_flock ++ .quad sys_msync ++ .quad compat_sys_readv /* 145 */ ++ .quad compat_sys_writev ++ .quad sys_getsid ++ .quad sys_fdatasync ++ .quad sys32_sysctl /* sysctl */ ++ .quad sys_mlock /* 150 */ ++ .quad sys_munlock ++ .quad sys_mlockall ++ .quad sys_munlockall ++ .quad sys_sched_setparam ++ .quad sys_sched_getparam /* 155 */ ++ .quad sys_sched_setscheduler ++ .quad sys_sched_getscheduler ++ .quad sys_sched_yield ++ .quad sys_sched_get_priority_max ++ .quad sys_sched_get_priority_min /* 160 */ ++ .quad sys32_sched_rr_get_interval ++ .quad compat_sys_nanosleep ++ .quad sys_mremap ++ .quad sys_setresuid16 ++ .quad sys_getresuid16 /* 165 */ ++ .quad sys32_vm86_warning /* vm86 */ ++ .quad quiet_ni_syscall /* query_module */ ++ .quad sys_poll ++ .quad compat_sys_nfsservctl ++ .quad sys_setresgid16 /* 170 */ ++ .quad sys_getresgid16 ++ .quad sys_prctl ++ .quad stub32_rt_sigreturn ++ .quad sys32_rt_sigaction ++ .quad sys32_rt_sigprocmask /* 175 */ ++ .quad sys32_rt_sigpending ++ .quad compat_sys_rt_sigtimedwait ++ .quad sys32_rt_sigqueueinfo ++ .quad stub32_rt_sigsuspend ++ .quad sys32_pread /* 180 */ ++ .quad sys32_pwrite ++ .quad sys_chown16 ++ .quad sys_getcwd ++ .quad sys_capget ++ .quad sys_capset ++ .quad stub32_sigaltstack ++ .quad sys32_sendfile ++ .quad quiet_ni_syscall /* streams1 */ ++ .quad quiet_ni_syscall /* streams2 */ ++ .quad stub32_vfork /* 190 */ ++ .quad compat_sys_getrlimit ++ .quad sys32_mmap2 ++ .quad sys32_truncate64 ++ .quad sys32_ftruncate64 ++ .quad sys32_stat64 /* 195 */ ++ .quad sys32_lstat64 ++ .quad sys32_fstat64 ++ .quad sys_lchown ++ .quad sys_getuid ++ .quad sys_getgid /* 200 */ ++ .quad sys_geteuid ++ .quad sys_getegid ++ .quad sys_setreuid ++ .quad sys_setregid ++ .quad sys_getgroups /* 205 */ ++ .quad sys_setgroups ++ .quad sys_fchown ++ .quad sys_setresuid ++ .quad sys_getresuid ++ .quad sys_setresgid /* 210 */ ++ .quad sys_getresgid ++ .quad sys_chown ++ .quad sys_setuid ++ .quad sys_setgid ++ .quad sys_setfsuid /* 215 */ ++ .quad sys_setfsgid ++ .quad sys_pivot_root ++ .quad sys_mincore ++ .quad sys_madvise ++ .quad compat_sys_getdents64 /* 220 getdents64 */ ++ .quad compat_sys_fcntl64 ++ .quad quiet_ni_syscall /* tux */ ++ .quad quiet_ni_syscall /* security */ ++ .quad sys_gettid ++ .quad sys32_readahead /* 225 */ ++ .quad sys_setxattr ++ .quad sys_lsetxattr ++ .quad sys_fsetxattr ++ .quad sys_getxattr ++ .quad sys_lgetxattr /* 230 */ ++ .quad sys_fgetxattr ++ .quad sys_listxattr ++ .quad sys_llistxattr ++ .quad sys_flistxattr ++ .quad sys_removexattr /* 235 */ ++ .quad sys_lremovexattr ++ .quad sys_fremovexattr ++ .quad sys_tkill ++ .quad sys_sendfile64 ++ .quad compat_sys_futex /* 240 */ ++ .quad compat_sys_sched_setaffinity ++ .quad compat_sys_sched_getaffinity ++ .quad sys32_set_thread_area ++ .quad sys32_get_thread_area ++ .quad compat_sys_io_setup /* 245 */ ++ .quad sys_io_destroy ++ .quad compat_sys_io_getevents ++ .quad compat_sys_io_submit ++ .quad sys_io_cancel ++ .quad sys32_fadvise64 /* 250 */ ++ .quad quiet_ni_syscall /* free_huge_pages */ ++ .quad sys_exit_group ++ .quad sys32_lookup_dcookie ++ .quad sys_epoll_create ++ .quad sys_epoll_ctl /* 255 */ ++ .quad sys_epoll_wait ++ .quad sys_remap_file_pages ++ .quad sys_set_tid_address ++ .quad compat_sys_timer_create ++ .quad compat_sys_timer_settime /* 260 */ ++ .quad compat_sys_timer_gettime ++ .quad sys_timer_getoverrun ++ .quad sys_timer_delete ++ .quad compat_sys_clock_settime ++ .quad compat_sys_clock_gettime /* 265 */ ++ .quad compat_sys_clock_getres ++ .quad compat_sys_clock_nanosleep ++ .quad compat_sys_statfs64 ++ .quad compat_sys_fstatfs64 ++ .quad sys_tgkill /* 270 */ ++ .quad compat_sys_utimes ++ .quad sys32_fadvise64_64 ++ .quad quiet_ni_syscall /* sys_vserver */ ++ .quad sys_mbind ++ .quad compat_sys_get_mempolicy /* 275 */ ++ .quad sys_set_mempolicy ++ .quad compat_sys_mq_open ++ .quad sys_mq_unlink ++ .quad compat_sys_mq_timedsend ++ .quad compat_sys_mq_timedreceive /* 280 */ ++ .quad compat_sys_mq_notify ++ .quad compat_sys_mq_getsetattr ++ .quad compat_sys_kexec_load /* reserved for kexec */ ++ .quad compat_sys_waitid ++ .quad quiet_ni_syscall /* 285: sys_altroot */ ++ .quad sys_add_key ++ .quad sys_request_key ++ .quad sys_keyctl ++ .quad sys_ioprio_set ++ .quad sys_ioprio_get /* 290 */ ++ .quad sys_inotify_init ++ .quad sys_inotify_add_watch ++ .quad sys_inotify_rm_watch ++ .quad sys_migrate_pages ++ .quad compat_sys_openat /* 295 */ ++ .quad sys_mkdirat ++ .quad sys_mknodat ++ .quad sys_fchownat ++ .quad compat_sys_futimesat ++ .quad sys32_fstatat /* 300 */ ++ .quad sys_unlinkat ++ .quad sys_renameat ++ .quad sys_linkat ++ .quad sys_symlinkat ++ .quad sys_readlinkat /* 305 */ ++ .quad sys_fchmodat ++ .quad sys_faccessat ++ .quad compat_sys_pselect6 ++ .quad compat_sys_ppoll ++ .quad sys_unshare /* 310 */ ++ .quad compat_sys_set_robust_list ++ .quad compat_sys_get_robust_list ++ .quad sys_splice ++ .quad sys32_sync_file_range ++ .quad sys_tee /* 315 */ ++ .quad compat_sys_vmsplice ++ .quad compat_sys_move_pages ++ .quad sys_getcpu ++ .quad sys_epoll_pwait ++ .quad compat_sys_utimensat /* 320 */ ++ .quad compat_sys_signalfd ++ .quad compat_sys_timerfd ++ .quad sys_eventfd ++ .quad sys32_fallocate ++ia32_syscall_end: +diff -Naur ubuntu-hardy/arch/x86/ia32/Makefile ubuntu-hardy-xen/arch/x86/ia32/Makefile +--- ubuntu-hardy/arch/x86/ia32/Makefile 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/ia32/Makefile 2008-04-09 13:17:22.000000000 +0100 +@@ -14,11 +14,14 @@ + audit-class-$(CONFIG_AUDIT) := audit.o + obj-$(CONFIG_IA32_EMULATION) += $(audit-class-y) + ++syscall32-types-y := sysenter syscall ++syscall32-types-$(subst 1,$(CONFIG_XEN),$(shell expr $(CONFIG_XEN_COMPAT)0 '<' 0x0302000)) += int80 ++ + $(obj)/syscall32_syscall.o: \ +- $(foreach F,sysenter syscall,$(obj)/vsyscall-$F.so) ++ $(foreach F,$(syscall32-types-y),$(obj)/vsyscall-$F.so) + + # Teach kbuild about targets +-targets := $(foreach F,$(addprefix vsyscall-,sysenter syscall),\ ++targets := $(foreach F,$(addprefix vsyscall-,$(syscall32-types-y)),\ + $F.o $F.so $F.so.dbg) + + # The DSO images are built using a special linker script +@@ -32,12 +35,13 @@ + $(obj)/%.so: $(obj)/%.so.dbg FORCE + $(call if_changed,objcopy) + +-$(obj)/vsyscall-sysenter.so.dbg $(obj)/vsyscall-syscall.so.dbg: \ ++$(foreach F,$(syscall32-types-y),$(obj)/vsyscall-$F.so.dbg): \ + $(obj)/vsyscall-%.so.dbg: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE + $(call if_changed,syscall) + + AFLAGS_vsyscall-sysenter.o = -m32 -Wa,-32 + AFLAGS_vsyscall-syscall.o = -m32 -Wa,-32 ++AFLAGS_vsyscall-int80.o = -m32 -Wa,-32 + + vdsos := vdso32-sysenter.so vdso32-syscall.so + +diff -Naur ubuntu-hardy/arch/x86/ia32/syscall32_syscall-xen.S ubuntu-hardy-xen/arch/x86/ia32/syscall32_syscall-xen.S +--- ubuntu-hardy/arch/x86/ia32/syscall32_syscall-xen.S 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/ia32/syscall32_syscall-xen.S 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,28 @@ ++/* 32bit VDSOs mapped into user space. */ ++ ++ .section ".init.data","aw" ++ ++#if CONFIG_XEN_COMPAT < 0x030200 ++ ++ .globl syscall32_int80 ++ .globl syscall32_int80_end ++ ++syscall32_int80: ++ .incbin "arch/x86/ia32/vsyscall-int80.so" ++syscall32_int80_end: ++ ++#endif ++ ++ .globl syscall32_syscall ++ .globl syscall32_syscall_end ++ ++syscall32_syscall: ++ .incbin "arch/x86/ia32/vsyscall-syscall.so" ++syscall32_syscall_end: ++ ++ .globl syscall32_sysenter ++ .globl syscall32_sysenter_end ++ ++syscall32_sysenter: ++ .incbin "arch/x86/ia32/vsyscall-sysenter.so" ++syscall32_sysenter_end: +diff -Naur ubuntu-hardy/arch/x86/ia32/syscall32-xen.c ubuntu-hardy-xen/arch/x86/ia32/syscall32-xen.c +--- ubuntu-hardy/arch/x86/ia32/syscall32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/ia32/syscall32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,112 @@ ++/* Copyright 2002,2003 Andi Kleen, SuSE Labs */ ++ ++/* vsyscall handling for 32bit processes. Map a stub page into it ++ on demand because 32bit cannot reach the kernel's fixmaps */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern unsigned char syscall32_syscall[], syscall32_syscall_end[]; ++extern unsigned char syscall32_sysenter[], syscall32_sysenter_end[]; ++extern int sysctl_vsyscall32; ++ ++static struct page *syscall32_pages[1]; ++static int use_sysenter = -1; ++ ++#if CONFIG_XEN_COMPAT < 0x030200 ++extern unsigned char syscall32_int80[], syscall32_int80_end[]; ++static int use_int80 = 1; ++#endif ++ ++struct linux_binprm; ++ ++/* Setup a VMA at program startup for the vsyscall page */ ++int syscall32_setup_pages(struct linux_binprm *bprm, int exstack) ++{ ++ struct mm_struct *mm = current->mm; ++ int ret; ++ ++ down_write(&mm->mmap_sem); ++ /* ++ * MAYWRITE to allow gdb to COW and set breakpoints ++ * ++ * Make sure the vDSO gets into every core dump. ++ * Dumping its contents makes post-mortem fully interpretable later ++ * without matching up the same kernel and hardware config to see ++ * what PC values meant. ++ */ ++ /* Could randomize here */ ++ ret = install_special_mapping(mm, VSYSCALL32_BASE, PAGE_SIZE, ++ VM_READ|VM_EXEC| ++ VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC| ++ VM_ALWAYSDUMP, ++ syscall32_pages); ++ up_write(&mm->mmap_sem); ++ return ret; ++} ++ ++static int __init init_syscall32(void) ++{ ++ char *syscall32_page = (void *)get_zeroed_page(GFP_KERNEL); ++ if (!syscall32_page) ++ panic("Cannot allocate syscall32 page"); ++ ++ syscall32_pages[0] = virt_to_page(syscall32_page); ++#if CONFIG_XEN_COMPAT < 0x030200 ++ if (use_int80) { ++ memcpy(syscall32_page, syscall32_int80, ++ syscall32_int80_end - syscall32_int80); ++ } else ++#endif ++ if (use_sysenter > 0) { ++ memcpy(syscall32_page, syscall32_sysenter, ++ syscall32_sysenter_end - syscall32_sysenter); ++ } else { ++ memcpy(syscall32_page, syscall32_syscall, ++ syscall32_syscall_end - syscall32_syscall); ++ } ++ return 0; ++} ++ ++/* ++ * This must be done early in case we have an initrd containing 32-bit ++ * binaries (e.g., hotplug). This could be pushed upstream to arch/x86_64. ++ */ ++core_initcall(init_syscall32); ++ ++/* May not be __init: called during resume */ ++void syscall32_cpu_init(void) ++{ ++ static struct callback_register cstar = { ++ .type = CALLBACKTYPE_syscall32, ++ .address = (unsigned long)ia32_cstar_target ++ }; ++ static struct callback_register sysenter = { ++ .type = CALLBACKTYPE_sysenter, ++ .address = (unsigned long)ia32_sysenter_target ++ }; ++ ++ /* Load these always in case some future AMD CPU supports ++ SYSENTER from compat mode too. */ ++ if ((HYPERVISOR_callback_op(CALLBACKOP_register, &sysenter) < 0) || ++ (HYPERVISOR_callback_op(CALLBACKOP_register, &cstar) < 0)) ++#if CONFIG_XEN_COMPAT < 0x030200 ++ return; ++ use_int80 = 0; ++#else ++ BUG(); ++#endif ++ ++ if (use_sysenter < 0) ++ use_sysenter = (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL); ++} +diff -Naur ubuntu-hardy/arch/x86/ia32/vsyscall-int80.S ubuntu-hardy-xen/arch/x86/ia32/vsyscall-int80.S +--- ubuntu-hardy/arch/x86/ia32/vsyscall-int80.S 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/ia32/vsyscall-int80.S 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,58 @@ ++/* ++ * Code for the vsyscall page. This version uses the old int $0x80 method. ++ * ++ * NOTE: ++ * 1) __kernel_vsyscall _must_ be first in this page. ++ * 2) there are alignment constraints on this stub, see vsyscall-sigreturn.S ++ * for details. ++ */ ++#include ++#include ++ ++ .code32 ++ .text ++ .section .text.vsyscall,"ax" ++ .globl __kernel_vsyscall ++ .type __kernel_vsyscall,@function ++__kernel_vsyscall: ++.LSTART_vsyscall: ++ int $0x80 ++ ret ++.LEND_vsyscall: ++ .size __kernel_vsyscall,.-.LSTART_vsyscall ++ .previous ++ ++ .section .eh_frame,"a",@progbits ++.LSTARTFRAME: ++ .long .LENDCIE-.LSTARTCIE ++.LSTARTCIE: ++ .long 0 /* CIE ID */ ++ .byte 1 /* Version number */ ++ .string "zR" /* NUL-terminated augmentation string */ ++ .uleb128 1 /* Code alignment factor */ ++ .sleb128 -4 /* Data alignment factor */ ++ .byte 8 /* Return address register column */ ++ .uleb128 1 /* Augmentation value length */ ++ .byte 0x1b /* DW_EH_PE_pcrel|DW_EH_PE_sdata4. */ ++ .byte 0x0c /* DW_CFA_def_cfa */ ++ .uleb128 4 ++ .uleb128 4 ++ .byte 0x88 /* DW_CFA_offset, column 0x8 */ ++ .uleb128 1 ++ .align 4 ++.LENDCIE: ++ ++ .long .LENDFDE1-.LSTARTFDE1 /* Length FDE */ ++.LSTARTFDE1: ++ .long .LSTARTFDE1-.LSTARTFRAME /* CIE pointer */ ++ .long .LSTART_vsyscall-. /* PC-relative start address */ ++ .long .LEND_vsyscall-.LSTART_vsyscall ++ .uleb128 0 /* Augmentation length */ ++ .align 4 ++.LENDFDE1: ++ ++/* ++ * Get the common code for the sigreturn entry points. ++ */ ++#define SYSCALL_ENTER_KERNEL int $0x80 ++#include "vsyscall-sigreturn.S" +diff -Naur ubuntu-hardy/arch/x86/ia32/vsyscall-int80.so ubuntu-hardy-xen/arch/x86/ia32/vsyscall-int80.so +--- ubuntu-hardy/arch/x86/ia32/vsyscall-int80.so 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/ia32/vsyscall-int80.so 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,3 @@ ++ELFäÿÿ4„4 (àÿÿàÿÿää``çÿÿ`çÿÿxxæÿÿæÿÿ<<PåtdDDæÿÿDæÿÿ$$äÿÿLñÿ&æÿÿåÿÿ__kernel_vsyscall__kernel_sigreturn__kernel_rt_sigreturnlinux-gate.so.1LINUX_2.5‘ðÎ<õu®LÍ€ÃX¸wÍ€¸­Í€LinuxGNUnosegneg; ¼ýÿÿ<»þÿÿh»ÿÿÿÔzR| ˆxýÿÿzRS| ˆhKþÿÿ t t0t,t(t$ttttýÿÿoŒáÿÿŒ8Mäÿÿ\åÿÿ læÿÿ ~æÿÿ<„DæÿÿD$’hæÿÿhøœ`çÿÿ`x¥ØçÿÿØ ®äŒºpaÆÑÔè0ã (@ ñ¤ ° T‚´àÿÿÜàÿÿ,áÿÿ‚áÿÿŒáÿÿäÿÿåÿÿæÿÿæÿÿ Dæÿÿ ++hæÿÿ `çÿÿ Øçÿÿ `çÿÿñÿ ++àÿÿñÿ4æÿÿ 'Øçÿÿñÿ=äÿÿOñÿYæÿÿoåÿÿ_DYNAMICVSYSCALL_BASEVDSO_NOTE_MASK_GLOBAL_OFFSET_TABLE___kernel_vsyscallLINUX_2.5__kernel_rt_sigreturn__kernel_sigreturn +\ No newline at end of file +diff -Naur ubuntu-hardy/arch/x86/Kconfig ubuntu-hardy-xen/arch/x86/Kconfig +--- ubuntu-hardy/arch/x86/Kconfig 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/Kconfig 2008-04-09 13:17:22.000000000 +0100 +@@ -31,15 +31,17 @@ + config CLOCKSOURCE_WATCHDOG + bool + default y ++ depends on !X86_XEN && !X86_64_XEN + + config GENERIC_CLOCKEVENTS + bool + default y ++ depends on !X86_XEN && !X86_64_XEN + + config GENERIC_CLOCKEVENTS_BROADCAST + bool + default y +- depends on X86_64 || (X86_32 && X86_LOCAL_APIC) ++ depends on (X86_64 && !X86_64_XEN) || (X86_32 && X86_LOCAL_APIC && !X86_XEN) + + config LOCKDEP_SUPPORT + bool +@@ -151,7 +153,7 @@ + config X86_HT + bool + depends on SMP +- depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || (X86_64 && !MK8) ++ depends on (X86_32 && !(X86_VISWS || X86_VOYAGER || X86_XEN)) || (X86_64 && !MK8 && !X86_64_XEN) + default y + + config X86_BIOS_REBOOT +@@ -164,6 +166,16 @@ + depends on X86_SMP || (X86_VOYAGER && SMP) + default y + ++config X86_NO_TSS ++ bool ++ depends on X86_XEN || X86_64_XEN ++ default y ++ ++config X86_NO_IDT ++ bool ++ depends on X86_XEN || X86_64_XEN ++ default y ++ + config KTIME_SCALAR + def_bool X86_32 + source "init/Kconfig" +@@ -210,6 +222,16 @@ + help + Choose this option if your computer is a standard PC or compatible. + ++config X86_XEN ++ bool "Xen-compatible" ++ depends on X86_32 ++ select X86_UP_APIC if !SMP && XEN_PRIVILEGED_GUEST ++ select X86_UP_IOAPIC if !SMP && XEN_PRIVILEGED_GUEST ++ select SWIOTLB ++ help ++ Choose this option if you plan to run this kernel on top of the ++ Xen Hypervisor. ++ + config X86_ELAN + bool "AMD Elan" + depends on X86_32 +@@ -293,6 +315,13 @@ + Only choose this option if you have such a system, otherwise you + should say N here. + ++config X86_64_XEN ++ bool "Enable Xen compatible kernel" ++ depends on X86_64 ++ select SWIOTLB ++ help ++ This option will compile a kernel compatible with Xen hypervisor ++ + config X86_VSMP + bool "Support for ScaleMP vSMP" + depends on X86_64 && PCI +@@ -317,7 +346,7 @@ + + config PARAVIRT + bool +- depends on X86_32 && !(X86_VISWS || X86_VOYAGER) ++ depends on X86_32 && !(X86_VISWS || X86_VOYAGER || X86_XEN) + help + This changes the kernel so it can modify itself when it is run + under a hypervisor, potentially improving performance significantly +@@ -326,7 +355,7 @@ + + menuconfig PARAVIRT_GUEST + bool "Paravirtualized guest support" +- depends on X86_32 ++ depends on X86_32 && !X86_XEN + help + Say Y here to get to see options related to running Linux under + various hypervisors. This option alone does not add any kernel code. +@@ -382,6 +411,7 @@ + config HPET_TIMER + bool + prompt "HPET Timer Support" if X86_32 ++ depends on !X86_XEN && !X86_64_XEN + default X86_64 + help + Use the IA-PC HPET (High Precision Event Timer) to manage +@@ -411,7 +441,7 @@ + default y + select SWIOTLB + select AGP +- depends on X86_64 && PCI ++ depends on X86_64 && PCI && !X86_64_XEN + help + Support for full DMA access of devices with 32bit memory access only + on systems with more than 3GB. This is usually needed for USB, +@@ -426,7 +456,7 @@ + config CALGARY_IOMMU + bool "IBM Calgary IOMMU support" + select SWIOTLB +- depends on X86_64 && PCI && EXPERIMENTAL ++ depends on X86_64 && PCI && !X86_64_XEN && EXPERIMENTAL + help + Support for hardware IOMMUs in IBM's xSeries x366 and x460 + systems. Needed to run systems with more than 3GB of memory +@@ -468,6 +498,7 @@ + range 2 255 + depends on SMP + default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 ++ default "16" if X86_64_XEN + default "8" + help + This allows you to specify the maximum number of CPUs which this +@@ -479,7 +510,7 @@ + + config SCHED_SMT + bool "SMT (Hyperthreading) scheduler support" +- depends on (X86_64 && SMP) || (X86_32 && X86_HT) ++ depends on (X86_64 && SMP && !X86_64_XEN) || (X86_32 && X86_HT) + help + SMT scheduler support improves the CPU scheduler's decision making + when dealing with Intel Pentium 4 chips with HyperThreading at a +@@ -488,7 +519,7 @@ + + config SCHED_MC + bool "Multi-core scheduler support" +- depends on (X86_64 && SMP) || (X86_32 && X86_HT) ++ depends on (X86_64 && SMP && !X86_64_XEN) || (X86_32 && X86_HT) + default y + help + Multi-core scheduler support improves the CPU scheduler's decision +@@ -499,7 +530,7 @@ + + config X86_UP_APIC + bool "Local APIC support on uniprocessors" +- depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH) ++ depends on X86_32 && !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH || XEN_UNPRIVILEGED_GUEST) + help + A local APIC (Advanced Programmable Interrupt Controller) is an + integrated interrupt controller in the CPU. If you have a single-CPU +@@ -525,11 +556,13 @@ + config X86_LOCAL_APIC + bool + depends on X86_64 || (X86_32 && (X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH)) ++ depends on !XEN_UNPRIVILEGED_GUEST + default y + + config X86_IO_APIC + bool + depends on X86_64 || (X86_32 && (X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH)) ++ depends on !XEN_UNPRIVILEGED_GUEST + default y + + config X86_VISWS_APIC +@@ -537,9 +570,14 @@ + depends on X86_32 && X86_VISWS + default y + ++config X86_XEN_GENAPIC ++ bool ++ depends on X86_64_XEN ++ default y ++ + config X86_MCE + bool "Machine Check Exception" +- depends on !X86_VOYAGER ++ depends on !(X86_VOYAGER || X86_XEN || X86_64_XEN) + ---help--- + Machine Check Exception support allows the processor to notify the + kernel if it detects a problem (e.g. overheating, component failure). +@@ -657,6 +695,7 @@ + + config MICROCODE + tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support" ++ depends on !XEN_UNPRIVILEGED_GUEST + select FW_LOADER + ---help--- + If you say Y here, you will be able to update the microcode on +@@ -817,7 +856,7 @@ + # Common NUMA Features + config NUMA + bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" +- depends on SMP ++ depends on SMP && !X86_64_XEN + depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL) + default n if X86_PC + default y if (X86_NUMAQ || X86_SUMMIT) +@@ -904,7 +943,7 @@ + + config ARCH_SPARSEMEM_ENABLE + def_bool y +- depends on NUMA || (EXPERIMENTAL && (X86_PC || X86_64)) ++ depends on NUMA || (EXPERIMENTAL && (X86_PC || X86_64) && !X86_64_XEN) + select SPARSEMEM_STATIC if X86_32 + select SPARSEMEM_VMEMMAP_ENABLE if X86_64 + +@@ -930,6 +969,7 @@ + config MATH_EMULATION + bool + prompt "Math emulation" if X86_32 ++ depends on !X86_XEN + ---help--- + Linux can emulate a math coprocessor (used for floating point + operations) if you don't have one. 486DX and Pentium processors have +@@ -955,6 +995,8 @@ + + config MTRR + bool "MTRR (Memory Type Range Register) support" ++ depends on !XEN_UNPRIVILEGED_GUEST ++ default y if X86_XEN + ---help--- + On Intel P6 family processors (Pentium Pro, Pentium II and later) + the Memory Type Range Registers (MTRRs) may be used to control +@@ -989,7 +1031,7 @@ + + config EFI + bool "Boot from EFI support" +- depends on X86_32 && ACPI ++ depends on X86_32 && ACPI && !X86_XEN + default n + ---help--- + This enables the kernel to boot on EFI platforms using +@@ -1007,7 +1049,7 @@ + + config IRQBALANCE + bool "Enable kernel irq balancing" +- depends on X86_32 && SMP && X86_IO_APIC ++ depends on X86_32 && SMP && X86_IO_APIC && !X86_XEN + default y + help + The default yes will allow the kernel to do irq load balancing. +@@ -1065,6 +1107,7 @@ + + config KEXEC + bool "kexec system call" ++ depends on !XEN_UNPRIVILEGED_GUEST + help + kexec is a system call that implements the ability to shutdown your + current kernel, and to start another kernel. It is like a reboot +@@ -1139,7 +1182,7 @@ + + config RELOCATABLE + bool "Build a relocatable kernel (EXPERIMENTAL)" +- depends on EXPERIMENTAL ++ depends on EXPERIMENTAL && !X86_XEN && !X86_64_XEN + help + This builds a kernel image that retains relocation information + so it can be loaded someplace besides the default 1MB. +@@ -1221,7 +1264,7 @@ + depends on DISCONTIGMEM + + menu "Power management options" +- depends on !X86_VOYAGER ++ depends on !(X86_VOYAGER || XEN_UNPRIVILEGED_GUEST) + + config ARCH_HIBERNATION_HEADER + bool +@@ -1234,7 +1277,7 @@ + + menuconfig APM + tristate "APM (Advanced Power Management) BIOS support" +- depends on X86_32 && PM_SLEEP && !X86_VISWS ++ depends on X86_32 && PM_SLEEP && !(X86_VISWS || X86_XEN) + ---help--- + APM is a BIOS specification for saving power using several different + techniques. This is mostly useful for battery powered laptops with +@@ -1373,7 +1416,7 @@ + bool "PCI support" if !X86_VISWS + depends on !X86_VOYAGER + default y if X86_VISWS +- select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC) ++ select ARCH_SUPPORTS_MSI if (X86_LOCAL_APIC && X86_IO_APIC && !X86_XEN && !X86_64_XEN) + help + Find out whether you have a PCI motherboard. PCI is the name of a + bus system, i.e. the way the CPU talks to the other stuff inside +@@ -1406,6 +1449,7 @@ + + config PCI_GOBIOS + bool "BIOS" ++ depends on !X86_XEN + + config PCI_GOMMCONFIG + bool "MMConfig" +@@ -1413,6 +1457,13 @@ + config PCI_GODIRECT + bool "Direct" + ++config PCI_GOXEN_FE ++ bool "Xen PCI Frontend" ++ depends on X86_XEN ++ help ++ The PCI device frontend driver allows the kernel to import arbitrary ++ PCI devices from a PCI backend to support PCI driver domains. ++ + config PCI_GOANY + bool "Any" + +@@ -1420,7 +1471,7 @@ + + config PCI_BIOS + bool +- depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY) ++ depends on X86_32 && !(X86_VISWS || X86_XEN) && PCI && (PCI_GOBIOS || PCI_GOANY) + default y + + # x86-64 doesn't support PCI BIOS access from long mode so always go direct. +@@ -1443,6 +1494,21 @@ + bool "Support mmconfig PCI config space access" + depends on X86_64 && PCI && ACPI + ++config XEN_PCIDEV_FRONTEND ++ bool "Xen PCI Frontend" if X86_64 ++ depends on PCI && ((X86_XEN && (PCI_GOXEN_FE || PCI_GOANY)) || X86_64_XEN) ++ default y ++ help ++ The PCI device frontend driver allows the kernel to import arbitrary ++ PCI devices from a PCI backend to support PCI driver domains. ++ ++config XEN_PCIDEV_FE_DEBUG ++ bool "Xen PCI Frontend Debugging" ++ depends on XEN_PCIDEV_FRONTEND ++ default n ++ help ++ Enables some debug statements within the PCI Frontend. ++ + config DMAR + bool "Support for DMA Remapping Devices (EXPERIMENTAL)" + depends on X86_64 && PCI_MSI && ACPI && EXPERIMENTAL +@@ -1487,7 +1553,7 @@ + + config ISA + bool "ISA support" +- depends on !(X86_VOYAGER || X86_VISWS) ++ depends on !(X86_VOYAGER || X86_VISWS || X86_XEN) + help + Find out whether you have ISA slots on your motherboard. ISA is the + name of a bus system, i.e. the way the CPU talks to the other stuff +@@ -1514,7 +1580,7 @@ + source "drivers/eisa/Kconfig" + + config MCA +- bool "MCA support" if !(X86_VISWS || X86_VOYAGER) ++ bool "MCA support" if !(X86_VISWS || X86_VOYAGER || X86_XEN) + default y if X86_VOYAGER + help + MicroChannel Architecture is found in some IBM PS/2 machines and +@@ -1622,4 +1688,6 @@ + + source "arch/x86/kvm/Kconfig" + ++source "drivers/xen/Kconfig" ++ + source "lib/Kconfig" +diff -Naur ubuntu-hardy/arch/x86/Kconfig.cpu ubuntu-hardy-xen/arch/x86/Kconfig.cpu +--- ubuntu-hardy/arch/x86/Kconfig.cpu 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/Kconfig.cpu 2008-04-09 13:17:22.000000000 +0100 +@@ -328,7 +328,7 @@ + + config X86_F00F_BUG + bool +- depends on M586MMX || M586TSC || M586 || M486 || M386 ++ depends on (M586MMX || M586TSC || M586 || M486 || M386) && !X86_NO_IDT + default y + + config X86_WP_WORKS_OK +@@ -384,6 +384,7 @@ + config X86_TSC + bool + depends on ((MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64 ++ depends on !X86_XEN && !X86_64_XEN + default y + + # this should be set for all -march=.. options where the compiler +diff -Naur ubuntu-hardy/arch/x86/Kconfig.debug ubuntu-hardy-xen/arch/x86/Kconfig.debug +--- ubuntu-hardy/arch/x86/Kconfig.debug 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/Kconfig.debug 2008-04-09 13:17:22.000000000 +0100 +@@ -99,7 +99,7 @@ + config DOUBLEFAULT + default y + bool "Enable doublefault exception handler" if EMBEDDED +- depends on X86_32 ++ depends on X86_32 && !X86_NO_TSS + help + This option allows trapping of rare doublefault exceptions that + would otherwise cause a system to silently reboot. Disabling this +diff -Naur ubuntu-hardy/arch/x86/kernel/acpi/boot-xen.c ubuntu-hardy-xen/arch/x86/kernel/acpi/boot-xen.c +--- ubuntu-hardy/arch/x86/kernel/acpi/boot-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/acpi/boot-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,1367 @@ ++/* ++ * boot.c - Architecture-Specific Low-Level ACPI Boot Support ++ * ++ * Copyright (C) 2001, 2002 Paul Diefenbaugh ++ * Copyright (C) 2001 Jun Nakajima ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++static int __initdata acpi_force = 0; ++ ++#ifdef CONFIG_ACPI ++int acpi_disabled = 0; ++#else ++int acpi_disabled = 1; ++#endif ++EXPORT_SYMBOL(acpi_disabled); ++ ++#ifdef CONFIG_X86_64 ++ ++#include ++ ++static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return 0; } ++ ++ ++#else /* X86 */ ++ ++#ifdef CONFIG_X86_LOCAL_APIC ++#include ++#include ++#endif /* CONFIG_X86_LOCAL_APIC */ ++ ++#endif /* X86 */ ++ ++#define BAD_MADT_ENTRY(entry, end) ( \ ++ (!entry) || (unsigned long)entry + sizeof(*entry) > end || \ ++ ((struct acpi_subtable_header *)entry)->length < sizeof(*entry)) ++ ++#define PREFIX "ACPI: " ++ ++int acpi_noirq; /* skip ACPI IRQ initialization */ ++int acpi_pci_disabled __initdata; /* skip ACPI PCI scan and IRQ initialization */ ++int acpi_ht __initdata = 1; /* enable HT */ ++ ++int acpi_lapic; ++int acpi_ioapic; ++int acpi_strict; ++EXPORT_SYMBOL(acpi_strict); ++ ++u8 acpi_sci_flags __initdata; ++int acpi_sci_override_gsi __initdata; ++int acpi_skip_timer_override __initdata; ++int acpi_use_timer_override __initdata; ++ ++#if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_XEN) ++static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE; ++#endif ++ ++#ifndef __HAVE_ARCH_CMPXCHG ++#warning ACPI uses CMPXCHG, i486 and later hardware ++#endif ++ ++/* -------------------------------------------------------------------------- ++ Boot-time Configuration ++ -------------------------------------------------------------------------- */ ++ ++/* ++ * The default interrupt routing model is PIC (8259). This gets ++ * overridden if IOAPICs are enumerated (below). ++ */ ++enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC; ++ ++#if defined(CONFIG_X86_64) && !defined(CONFIG_XEN) ++ ++/* rely on all ACPI tables being in the direct mapping */ ++char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size) ++{ ++ if (!phys_addr || !size) ++ return NULL; ++ ++ if (phys_addr+size <= (end_pfn_map << PAGE_SHIFT) + PAGE_SIZE) ++ return __va(phys_addr); ++ ++ return NULL; ++} ++ ++#else ++ ++/* ++ * Temporarily use the virtual area starting from FIX_IO_APIC_BASE_END, ++ * to map the target physical address. The problem is that set_fixmap() ++ * provides a single page, and it is possible that the page is not ++ * sufficient. ++ * By using this area, we can map up to MAX_IO_APICS pages temporarily, ++ * i.e. until the next __va_range() call. ++ * ++ * Important Safety Note: The fixed I/O APIC page numbers are *subtracted* ++ * from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and ++ * count idx down while incrementing the phys address. ++ */ ++char *__init __acpi_map_table(unsigned long phys, unsigned long size) ++{ ++ unsigned long base, offset, mapped_size; ++ int idx; ++ ++#ifndef CONFIG_XEN ++ if (phys + size < 8 * 1024 * 1024) ++ return __va(phys); ++#endif ++ ++ offset = phys & (PAGE_SIZE - 1); ++ mapped_size = PAGE_SIZE - offset; ++ set_fixmap(FIX_ACPI_END, phys); ++ base = fix_to_virt(FIX_ACPI_END); ++ ++ /* ++ * Most cases can be covered by the below. ++ */ ++ idx = FIX_ACPI_END; ++ while (mapped_size < size) { ++ if (--idx < FIX_ACPI_BEGIN) ++ return NULL; /* cannot handle this */ ++ phys += PAGE_SIZE; ++ set_fixmap(idx, phys); ++ mapped_size += PAGE_SIZE; ++ } ++ ++ return ((unsigned char *)base + offset); ++} ++#endif ++ ++#ifdef CONFIG_PCI_MMCONFIG ++/* The physical address of the MMCONFIG aperture. Set from ACPI tables. */ ++struct acpi_mcfg_allocation *pci_mmcfg_config; ++int pci_mmcfg_config_num; ++ ++int __init acpi_parse_mcfg(struct acpi_table_header *header) ++{ ++ struct acpi_table_mcfg *mcfg; ++ unsigned long i; ++ int config_size; ++ ++ if (!header) ++ return -EINVAL; ++ ++ mcfg = (struct acpi_table_mcfg *)header; ++ ++ /* how many config structures do we have */ ++ pci_mmcfg_config_num = 0; ++ i = header->length - sizeof(struct acpi_table_mcfg); ++ while (i >= sizeof(struct acpi_mcfg_allocation)) { ++ ++pci_mmcfg_config_num; ++ i -= sizeof(struct acpi_mcfg_allocation); ++ }; ++ if (pci_mmcfg_config_num == 0) { ++ printk(KERN_ERR PREFIX "MMCONFIG has no entries\n"); ++ return -ENODEV; ++ } ++ ++ config_size = pci_mmcfg_config_num * sizeof(*pci_mmcfg_config); ++ pci_mmcfg_config = kmalloc(config_size, GFP_KERNEL); ++ if (!pci_mmcfg_config) { ++ printk(KERN_WARNING PREFIX ++ "No memory for MCFG config tables\n"); ++ return -ENOMEM; ++ } ++ ++ memcpy(pci_mmcfg_config, &mcfg[1], config_size); ++ for (i = 0; i < pci_mmcfg_config_num; ++i) { ++ if (pci_mmcfg_config[i].address > 0xFFFFFFFF) { ++ printk(KERN_ERR PREFIX ++ "MMCONFIG not in low 4GB of memory\n"); ++ kfree(pci_mmcfg_config); ++ pci_mmcfg_config_num = 0; ++ return -ENODEV; ++ } ++ } ++ ++ return 0; ++} ++#endif /* CONFIG_PCI_MMCONFIG */ ++ ++#ifdef CONFIG_X86_LOCAL_APIC ++static int __init acpi_parse_madt(struct acpi_table_header *table) ++{ ++ struct acpi_table_madt *madt = NULL; ++ ++ if (!cpu_has_apic) ++ return -EINVAL; ++ ++ madt = (struct acpi_table_madt *)table; ++ if (!madt) { ++ printk(KERN_WARNING PREFIX "Unable to map MADT\n"); ++ return -ENODEV; ++ } ++ ++#ifndef CONFIG_XEN ++ if (madt->address) { ++ acpi_lapic_addr = (u64) madt->address; ++ ++ printk(KERN_DEBUG PREFIX "Local APIC address 0x%08x\n", ++ madt->address); ++ } ++#endif ++ ++ acpi_madt_oem_check(madt->header.oem_id, madt->header.oem_table_id); ++ ++ return 0; ++} ++ ++static int __init ++acpi_parse_lapic(struct acpi_subtable_header * header, const unsigned long end) ++{ ++ struct acpi_madt_local_apic *processor = NULL; ++ ++ processor = (struct acpi_madt_local_apic *)header; ++ ++ if (BAD_MADT_ENTRY(processor, end)) ++ return -EINVAL; ++ ++ acpi_table_print_madt_entry(header); ++ ++ /* ++ * We need to register disabled CPU as well to permit ++ * counting disabled CPUs. This allows us to size ++ * cpus_possible_map more accurately, to permit ++ * to not preallocating memory for all NR_CPUS ++ * when we use CPU hotplug. ++ */ ++ mp_register_lapic(processor->id, /* APIC ID */ ++ processor->lapic_flags & ACPI_MADT_ENABLED); /* Enabled? */ ++ ++ return 0; ++} ++ ++static int __init ++acpi_parse_lapic_addr_ovr(struct acpi_subtable_header * header, ++ const unsigned long end) ++{ ++#ifndef CONFIG_XEN ++ struct acpi_madt_local_apic_override *lapic_addr_ovr = NULL; ++ ++ lapic_addr_ovr = (struct acpi_madt_local_apic_override *)header; ++ ++ if (BAD_MADT_ENTRY(lapic_addr_ovr, end)) ++ return -EINVAL; ++ ++ acpi_lapic_addr = lapic_addr_ovr->address; ++#endif ++ ++ return 0; ++} ++ ++static int __init ++acpi_parse_lapic_nmi(struct acpi_subtable_header * header, const unsigned long end) ++{ ++ struct acpi_madt_local_apic_nmi *lapic_nmi = NULL; ++ ++ lapic_nmi = (struct acpi_madt_local_apic_nmi *)header; ++ ++ if (BAD_MADT_ENTRY(lapic_nmi, end)) ++ return -EINVAL; ++ ++ acpi_table_print_madt_entry(header); ++ ++ if (lapic_nmi->lint != 1) ++ printk(KERN_WARNING PREFIX "NMI not connected to LINT 1!\n"); ++ ++ return 0; ++} ++ ++#endif /*CONFIG_X86_LOCAL_APIC */ ++ ++#ifdef CONFIG_X86_IO_APIC ++ ++static int __init ++acpi_parse_ioapic(struct acpi_subtable_header * header, const unsigned long end) ++{ ++ struct acpi_madt_io_apic *ioapic = NULL; ++ ++ ioapic = (struct acpi_madt_io_apic *)header; ++ ++ if (BAD_MADT_ENTRY(ioapic, end)) ++ return -EINVAL; ++ ++ acpi_table_print_madt_entry(header); ++ ++ mp_register_ioapic(ioapic->id, ++ ioapic->address, ioapic->global_irq_base); ++ ++ return 0; ++} ++ ++/* ++ * Parse Interrupt Source Override for the ACPI SCI ++ */ ++static void __init acpi_sci_ioapic_setup(u32 gsi, u16 polarity, u16 trigger) ++{ ++ if (trigger == 0) /* compatible SCI trigger is level */ ++ trigger = 3; ++ ++ if (polarity == 0) /* compatible SCI polarity is low */ ++ polarity = 3; ++ ++ /* Command-line over-ride via acpi_sci= */ ++ if (acpi_sci_flags & ACPI_MADT_TRIGGER_MASK) ++ trigger = (acpi_sci_flags & ACPI_MADT_TRIGGER_MASK) >> 2; ++ ++ if (acpi_sci_flags & ACPI_MADT_POLARITY_MASK) ++ polarity = acpi_sci_flags & ACPI_MADT_POLARITY_MASK; ++ ++ /* ++ * mp_config_acpi_legacy_irqs() already setup IRQs < 16 ++ * If GSI is < 16, this will update its flags, ++ * else it will create a new mp_irqs[] entry. ++ */ ++ mp_override_legacy_irq(gsi, polarity, trigger, gsi); ++ ++ /* ++ * stash over-ride to indicate we've been here ++ * and for later update of acpi_gbl_FADT ++ */ ++ acpi_sci_override_gsi = gsi; ++ return; ++} ++ ++static int __init ++acpi_parse_int_src_ovr(struct acpi_subtable_header * header, ++ const unsigned long end) ++{ ++ struct acpi_madt_interrupt_override *intsrc = NULL; ++ ++ intsrc = (struct acpi_madt_interrupt_override *)header; ++ ++ if (BAD_MADT_ENTRY(intsrc, end)) ++ return -EINVAL; ++ ++ acpi_table_print_madt_entry(header); ++ ++ if (intsrc->source_irq == acpi_gbl_FADT.sci_interrupt) { ++ acpi_sci_ioapic_setup(intsrc->global_irq, ++ intsrc->inti_flags & ACPI_MADT_POLARITY_MASK, ++ (intsrc->inti_flags & ACPI_MADT_TRIGGER_MASK) >> 2); ++ return 0; ++ } ++ ++ if (acpi_skip_timer_override && ++ intsrc->source_irq == 0 && intsrc->global_irq == 2) { ++ printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n"); ++ return 0; ++ } ++ ++ mp_override_legacy_irq(intsrc->source_irq, ++ intsrc->inti_flags & ACPI_MADT_POLARITY_MASK, ++ (intsrc->inti_flags & ACPI_MADT_TRIGGER_MASK) >> 2, ++ intsrc->global_irq); ++ ++ return 0; ++} ++ ++static int __init ++acpi_parse_nmi_src(struct acpi_subtable_header * header, const unsigned long end) ++{ ++ struct acpi_madt_nmi_source *nmi_src = NULL; ++ ++ nmi_src = (struct acpi_madt_nmi_source *)header; ++ ++ if (BAD_MADT_ENTRY(nmi_src, end)) ++ return -EINVAL; ++ ++ acpi_table_print_madt_entry(header); ++ ++ /* TBD: Support nimsrc entries? */ ++ ++ return 0; ++} ++ ++#endif /* CONFIG_X86_IO_APIC */ ++ ++/* ++ * acpi_pic_sci_set_trigger() ++ * ++ * use ELCR to set PIC-mode trigger type for SCI ++ * ++ * If a PIC-mode SCI is not recognized or gives spurious IRQ7's ++ * it may require Edge Trigger -- use "acpi_sci=edge" ++ * ++ * Port 0x4d0-4d1 are ECLR1 and ECLR2, the Edge/Level Control Registers ++ * for the 8259 PIC. bit[n] = 1 means irq[n] is Level, otherwise Edge. ++ * ECLR1 is IRQs 0-7 (IRQ 0, 1, 2 must be 0) ++ * ECLR2 is IRQs 8-15 (IRQ 8, 13 must be 0) ++ */ ++ ++void __init acpi_pic_sci_set_trigger(unsigned int irq, u16 trigger) ++{ ++ unsigned int mask = 1 << irq; ++ unsigned int old, new; ++ ++ /* Real old ELCR mask */ ++ old = inb(0x4d0) | (inb(0x4d1) << 8); ++ ++ /* ++ * If we use ACPI to set PCI IRQs, then we should clear ELCR ++ * since we will set it correctly as we enable the PCI irq ++ * routing. ++ */ ++ new = acpi_noirq ? old : 0; ++ ++ /* ++ * Update SCI information in the ELCR, it isn't in the PCI ++ * routing tables.. ++ */ ++ switch (trigger) { ++ case 1: /* Edge - clear */ ++ new &= ~mask; ++ break; ++ case 3: /* Level - set */ ++ new |= mask; ++ break; ++ } ++ ++ if (old == new) ++ return; ++ ++ printk(PREFIX "setting ELCR to %04x (from %04x)\n", new, old); ++ outb(new, 0x4d0); ++ outb(new >> 8, 0x4d1); ++} ++ ++int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) ++{ ++ *irq = gsi; ++ return 0; ++} ++ ++/* ++ * success: return IRQ number (>=0) ++ * failure: return < 0 ++ */ ++int acpi_register_gsi(u32 gsi, int triggering, int polarity) ++{ ++ unsigned int irq; ++ unsigned int plat_gsi = gsi; ++ ++#ifdef CONFIG_PCI ++ /* ++ * Make sure all (legacy) PCI IRQs are set as level-triggered. ++ */ ++ if (acpi_irq_model == ACPI_IRQ_MODEL_PIC) { ++ extern void eisa_set_level_irq(unsigned int irq); ++ ++ if (triggering == ACPI_LEVEL_SENSITIVE) ++ eisa_set_level_irq(gsi); ++ } ++#endif ++ ++#ifdef CONFIG_X86_IO_APIC ++ if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC) { ++ plat_gsi = mp_register_gsi(gsi, triggering, polarity); ++ } ++#endif ++ acpi_gsi_to_irq(plat_gsi, &irq); ++ return irq; ++} ++ ++EXPORT_SYMBOL(acpi_register_gsi); ++ ++/* ++ * ACPI based hotplug support for CPU ++ */ ++#ifdef CONFIG_ACPI_HOTPLUG_CPU ++int acpi_map_lsapic(acpi_handle handle, int *pcpu) ++{ ++ struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; ++ union acpi_object *obj; ++ struct acpi_madt_local_apic *lapic; ++ cpumask_t tmp_map, new_map; ++ u8 physid; ++ int cpu; ++ ++ if (ACPI_FAILURE(acpi_evaluate_object(handle, "_MAT", NULL, &buffer))) ++ return -EINVAL; ++ ++ if (!buffer.length || !buffer.pointer) ++ return -EINVAL; ++ ++ obj = buffer.pointer; ++ if (obj->type != ACPI_TYPE_BUFFER || ++ obj->buffer.length < sizeof(*lapic)) { ++ kfree(buffer.pointer); ++ return -EINVAL; ++ } ++ ++ lapic = (struct acpi_madt_local_apic *)obj->buffer.pointer; ++ ++ if (lapic->header.type != ACPI_MADT_TYPE_LOCAL_APIC || ++ !(lapic->lapic_flags & ACPI_MADT_ENABLED)) { ++ kfree(buffer.pointer); ++ return -EINVAL; ++ } ++ ++ physid = lapic->id; ++ ++ kfree(buffer.pointer); ++ buffer.length = ACPI_ALLOCATE_BUFFER; ++ buffer.pointer = NULL; ++ ++ tmp_map = cpu_present_map; ++ mp_register_lapic(physid, lapic->lapic_flags & ACPI_MADT_ENABLED); ++ ++ /* ++ * If mp_register_lapic successfully generates a new logical cpu ++ * number, then the following will get us exactly what was mapped ++ */ ++ cpus_andnot(new_map, cpu_present_map, tmp_map); ++ if (cpus_empty(new_map)) { ++ printk ("Unable to map lapic to logical cpu number\n"); ++ return -EINVAL; ++ } ++ ++ cpu = first_cpu(new_map); ++ ++ *pcpu = cpu; ++ return 0; ++} ++ ++EXPORT_SYMBOL(acpi_map_lsapic); ++ ++int acpi_unmap_lsapic(int cpu) ++{ ++ per_cpu(x86_cpu_to_apicid, cpu) = -1; ++ cpu_clear(cpu, cpu_present_map); ++ num_processors--; ++ ++ return (0); ++} ++ ++EXPORT_SYMBOL(acpi_unmap_lsapic); ++#endif /* CONFIG_ACPI_HOTPLUG_CPU */ ++ ++int acpi_register_ioapic(acpi_handle handle, u64 phys_addr, u32 gsi_base) ++{ ++ /* TBD */ ++ return -EINVAL; ++} ++ ++EXPORT_SYMBOL(acpi_register_ioapic); ++ ++int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base) ++{ ++ /* TBD */ ++ return -EINVAL; ++} ++ ++EXPORT_SYMBOL(acpi_unregister_ioapic); ++ ++static unsigned long __init ++acpi_scan_rsdp(unsigned long start, unsigned long length) ++{ ++ unsigned long offset = 0; ++ unsigned long sig_len = sizeof("RSD PTR ") - 1; ++ unsigned long vstart = (unsigned long)isa_bus_to_virt(start); ++ ++ /* ++ * Scan all 16-byte boundaries of the physical memory region for the ++ * RSDP signature. ++ */ ++ for (offset = 0; offset < length; offset += 16) { ++ if (strncmp((char *)(vstart + offset), "RSD PTR ", sig_len)) ++ continue; ++ return (start + offset); ++ } ++ ++ return 0; ++} ++ ++static int __init acpi_parse_sbf(struct acpi_table_header *table) ++{ ++ struct acpi_table_boot *sb; ++ ++ sb = (struct acpi_table_boot *)table; ++ if (!sb) { ++ printk(KERN_WARNING PREFIX "Unable to map SBF\n"); ++ return -ENODEV; ++ } ++ ++ sbf_port = sb->cmos_index; /* Save CMOS port */ ++ ++ return 0; ++} ++ ++#ifdef CONFIG_HPET_TIMER ++#include ++ ++static struct __initdata resource *hpet_res; ++ ++static int __init acpi_parse_hpet(struct acpi_table_header *table) ++{ ++ struct acpi_table_hpet *hpet_tbl; ++ ++ hpet_tbl = (struct acpi_table_hpet *)table; ++ if (!hpet_tbl) { ++ printk(KERN_WARNING PREFIX "Unable to map HPET\n"); ++ return -ENODEV; ++ } ++ ++ if (hpet_tbl->address.space_id != ACPI_SPACE_MEM) { ++ printk(KERN_WARNING PREFIX "HPET timers must be located in " ++ "memory.\n"); ++ return -1; ++ } ++ ++ hpet_address = hpet_tbl->address.address; ++ ++ /* ++ * Some broken BIOSes advertise HPET at 0x0. We really do not ++ * want to allocate a resource there. ++ */ ++ if (!hpet_address) { ++ printk(KERN_WARNING PREFIX ++ "HPET id: %#x base: %#lx is invalid\n", ++ hpet_tbl->id, hpet_address); ++ return 0; ++ } ++#ifdef CONFIG_X86_64 ++ /* ++ * Some even more broken BIOSes advertise HPET at ++ * 0xfed0000000000000 instead of 0xfed00000. Fix it up and add ++ * some noise: ++ */ ++ if (hpet_address == 0xfed0000000000000UL) { ++ if (!hpet_force_user) { ++ printk(KERN_WARNING PREFIX "HPET id: %#x " ++ "base: 0xfed0000000000000 is bogus\n " ++ "try hpet=force on the kernel command line to " ++ "fix it up to 0xfed00000.\n", hpet_tbl->id); ++ hpet_address = 0; ++ return 0; ++ } ++ printk(KERN_WARNING PREFIX ++ "HPET id: %#x base: 0xfed0000000000000 fixed up " ++ "to 0xfed00000.\n", hpet_tbl->id); ++ hpet_address >>= 32; ++ } ++#endif ++ printk(KERN_INFO PREFIX "HPET id: %#x base: %#lx\n", ++ hpet_tbl->id, hpet_address); ++ ++ /* ++ * Allocate and initialize the HPET firmware resource for adding into ++ * the resource tree during the lateinit timeframe. ++ */ ++#define HPET_RESOURCE_NAME_SIZE 9 ++ hpet_res = alloc_bootmem(sizeof(*hpet_res) + HPET_RESOURCE_NAME_SIZE); ++ ++ if (!hpet_res) ++ return 0; ++ ++ memset(hpet_res, 0, sizeof(*hpet_res)); ++ hpet_res->name = (void *)&hpet_res[1]; ++ hpet_res->flags = IORESOURCE_MEM; ++ snprintf((char *)hpet_res->name, HPET_RESOURCE_NAME_SIZE, "HPET %u", ++ hpet_tbl->sequence); ++ ++ hpet_res->start = hpet_address; ++ hpet_res->end = hpet_address + (1 * 1024) - 1; ++ ++ return 0; ++} ++ ++/* ++ * hpet_insert_resource inserts the HPET resources used into the resource ++ * tree. ++ */ ++static __init int hpet_insert_resource(void) ++{ ++ if (!hpet_res) ++ return 1; ++ ++ return insert_resource(&iomem_resource, hpet_res); ++} ++ ++late_initcall(hpet_insert_resource); ++ ++#else ++#define acpi_parse_hpet NULL ++#endif ++ ++static int __init acpi_parse_fadt(struct acpi_table_header *table) ++{ ++ ++#ifdef CONFIG_X86_PM_TIMER ++ /* detect the location of the ACPI PM Timer */ ++ if (acpi_gbl_FADT.header.revision >= FADT2_REVISION_ID) { ++ /* FADT rev. 2 */ ++ if (acpi_gbl_FADT.xpm_timer_block.space_id != ++ ACPI_ADR_SPACE_SYSTEM_IO) ++ return 0; ++ ++ pmtmr_ioport = acpi_gbl_FADT.xpm_timer_block.address; ++ /* ++ * "X" fields are optional extensions to the original V1.0 ++ * fields, so we must selectively expand V1.0 fields if the ++ * corresponding X field is zero. ++ */ ++ if (!pmtmr_ioport) ++ pmtmr_ioport = acpi_gbl_FADT.pm_timer_block; ++ } else { ++ /* FADT rev. 1 */ ++ pmtmr_ioport = acpi_gbl_FADT.pm_timer_block; ++ } ++ if (pmtmr_ioport) ++ printk(KERN_INFO PREFIX "PM-Timer IO Port: %#x\n", ++ pmtmr_ioport); ++#endif ++ return 0; ++} ++ ++unsigned long __init acpi_find_rsdp(void) ++{ ++ unsigned long rsdp_phys = 0; ++ ++ if (efi_enabled) { ++ if (efi.acpi20 != EFI_INVALID_TABLE_ADDR) ++ return efi.acpi20; ++ else if (efi.acpi != EFI_INVALID_TABLE_ADDR) ++ return efi.acpi; ++ } ++ /* ++ * Scan memory looking for the RSDP signature. First search EBDA (low ++ * memory) paragraphs and then search upper memory (E0000-FFFFF). ++ */ ++ rsdp_phys = acpi_scan_rsdp(0, 0x400); ++ if (!rsdp_phys) ++ rsdp_phys = acpi_scan_rsdp(0xE0000, 0x20000); ++ ++ return rsdp_phys; ++} ++ ++#ifdef CONFIG_X86_LOCAL_APIC ++/* ++ * Parse LAPIC entries in MADT ++ * returns 0 on success, < 0 on error ++ */ ++static int __init acpi_parse_madt_lapic_entries(void) ++{ ++ int count; ++ ++ if (!cpu_has_apic) ++ return -ENODEV; ++ ++ /* ++ * Note that the LAPIC address is obtained from the MADT (32-bit value) ++ * and (optionally) overriden by a LAPIC_ADDR_OVR entry (64-bit value). ++ */ ++ ++ count = ++ acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE, ++ acpi_parse_lapic_addr_ovr, 0); ++ if (count < 0) { ++ printk(KERN_ERR PREFIX ++ "Error parsing LAPIC address override entry\n"); ++ return count; ++ } ++ ++#ifndef CONFIG_XEN ++ mp_register_lapic_address(acpi_lapic_addr); ++#endif ++ ++ count = acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC, acpi_parse_lapic, ++ MAX_APICS); ++ if (!count) { ++ printk(KERN_ERR PREFIX "No LAPIC entries present\n"); ++ /* TBD: Cleanup to allow fallback to MPS */ ++ return -ENODEV; ++ } else if (count < 0) { ++ printk(KERN_ERR PREFIX "Error parsing LAPIC entry\n"); ++ /* TBD: Cleanup to allow fallback to MPS */ ++ return count; ++ } ++ ++ count = ++ acpi_table_parse_madt(ACPI_MADT_TYPE_LOCAL_APIC_NMI, acpi_parse_lapic_nmi, 0); ++ if (count < 0) { ++ printk(KERN_ERR PREFIX "Error parsing LAPIC NMI entry\n"); ++ /* TBD: Cleanup to allow fallback to MPS */ ++ return count; ++ } ++ return 0; ++} ++#endif /* CONFIG_X86_LOCAL_APIC */ ++ ++#ifdef CONFIG_X86_IO_APIC ++/* ++ * Parse IOAPIC related entries in MADT ++ * returns 0 on success, < 0 on error ++ */ ++static int __init acpi_parse_madt_ioapic_entries(void) ++{ ++ int count; ++ ++ /* ++ * ACPI interpreter is required to complete interrupt setup, ++ * so if it is off, don't enumerate the io-apics with ACPI. ++ * If MPS is present, it will handle them, ++ * otherwise the system will stay in PIC mode ++ */ ++ if (acpi_disabled || acpi_noirq) { ++ return -ENODEV; ++ } ++ ++ if (!cpu_has_apic) ++ return -ENODEV; ++ ++ /* ++ * if "noapic" boot option, don't look for IO-APICs ++ */ ++ if (skip_ioapic_setup) { ++ printk(KERN_INFO PREFIX "Skipping IOAPIC probe " ++ "due to 'noapic' option.\n"); ++ return -ENODEV; ++ } ++ ++ count = ++ acpi_table_parse_madt(ACPI_MADT_TYPE_IO_APIC, acpi_parse_ioapic, ++ MAX_IO_APICS); ++ if (!count) { ++ printk(KERN_ERR PREFIX "No IOAPIC entries present\n"); ++ return -ENODEV; ++ } else if (count < 0) { ++ printk(KERN_ERR PREFIX "Error parsing IOAPIC entry\n"); ++ return count; ++ } ++ ++ count = ++ acpi_table_parse_madt(ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_parse_int_src_ovr, ++ NR_IRQ_VECTORS); ++ if (count < 0) { ++ printk(KERN_ERR PREFIX ++ "Error parsing interrupt source overrides entry\n"); ++ /* TBD: Cleanup to allow fallback to MPS */ ++ return count; ++ } ++ ++ /* ++ * If BIOS did not supply an INT_SRC_OVR for the SCI ++ * pretend we got one so we can set the SCI flags. ++ */ ++ if (!acpi_sci_override_gsi) ++ acpi_sci_ioapic_setup(acpi_gbl_FADT.sci_interrupt, 0, 0); ++ ++ /* Fill in identity legacy mapings where no override */ ++ mp_config_acpi_legacy_irqs(); ++ ++ count = ++ acpi_table_parse_madt(ACPI_MADT_TYPE_NMI_SOURCE, acpi_parse_nmi_src, ++ NR_IRQ_VECTORS); ++ if (count < 0) { ++ printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n"); ++ /* TBD: Cleanup to allow fallback to MPS */ ++ return count; ++ } ++ ++ return 0; ++} ++#else ++static inline int acpi_parse_madt_ioapic_entries(void) ++{ ++ return -1; ++} ++#endif /* !CONFIG_X86_IO_APIC */ ++ ++static void __init acpi_process_madt(void) ++{ ++#ifdef CONFIG_X86_LOCAL_APIC ++ int error; ++ ++ if (!acpi_table_parse(ACPI_SIG_MADT, acpi_parse_madt)) { ++ ++ /* ++ * Parse MADT LAPIC entries ++ */ ++ error = acpi_parse_madt_lapic_entries(); ++ if (!error) { ++ acpi_lapic = 1; ++ ++#ifdef CONFIG_X86_GENERICARCH ++ generic_bigsmp_probe(); ++#endif ++ /* ++ * Parse MADT IO-APIC entries ++ */ ++ error = acpi_parse_madt_ioapic_entries(); ++ if (!error) { ++ acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; ++ acpi_irq_balance_set(NULL); ++ acpi_ioapic = 1; ++ ++ smp_found_config = 1; ++ setup_apic_routing(); ++ } ++ } ++ if (error == -EINVAL) { ++ /* ++ * Dell Precision Workstation 410, 610 come here. ++ */ ++ printk(KERN_ERR PREFIX ++ "Invalid BIOS MADT, disabling ACPI\n"); ++ disable_acpi(); ++ } ++ } ++#endif ++ return; ++} ++ ++#ifdef __i386__ ++ ++static int __init disable_acpi_irq(const struct dmi_system_id *d) ++{ ++ if (!acpi_force) { ++ printk(KERN_NOTICE "%s detected: force use of acpi=noirq\n", ++ d->ident); ++ acpi_noirq_set(); ++ } ++ return 0; ++} ++ ++static int __init disable_acpi_pci(const struct dmi_system_id *d) ++{ ++ if (!acpi_force) { ++ printk(KERN_NOTICE "%s detected: force use of pci=noacpi\n", ++ d->ident); ++ acpi_disable_pci(); ++ } ++ return 0; ++} ++ ++static int __init dmi_disable_acpi(const struct dmi_system_id *d) ++{ ++ if (!acpi_force) { ++ printk(KERN_NOTICE "%s detected: acpi off\n", d->ident); ++ disable_acpi(); ++ } else { ++ printk(KERN_NOTICE ++ "Warning: DMI blacklist says broken, but acpi forced\n"); ++ } ++ return 0; ++} ++ ++/* ++ * Limit ACPI to CPU enumeration for HT ++ */ ++static int __init force_acpi_ht(const struct dmi_system_id *d) ++{ ++ if (!acpi_force) { ++ printk(KERN_NOTICE "%s detected: force use of acpi=ht\n", ++ d->ident); ++ disable_acpi(); ++ acpi_ht = 1; ++ } else { ++ printk(KERN_NOTICE ++ "Warning: acpi=force overrules DMI blacklist: acpi=ht\n"); ++ } ++ return 0; ++} ++ ++/* ++ * If your system is blacklisted here, but you find that acpi=force ++ * works for you, please contact acpi-devel@sourceforge.net ++ */ ++static struct dmi_system_id __initdata acpi_dmi_table[] = { ++ /* ++ * Boxes that need ACPI disabled ++ */ ++ { ++ .callback = dmi_disable_acpi, ++ .ident = "IBM Thinkpad", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), ++ DMI_MATCH(DMI_BOARD_NAME, "2629H1G"), ++ }, ++ }, ++ ++ /* ++ * Boxes that need acpi=ht ++ */ ++ { ++ .callback = force_acpi_ht, ++ .ident = "FSC Primergy T850", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "PRIMERGY T850"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "HP VISUALIZE NT Workstation", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "HP VISUALIZE NT Workstation"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "Compaq Workstation W8000", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Compaq"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Workstation W8000"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "ASUS P4B266", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), ++ DMI_MATCH(DMI_BOARD_NAME, "P4B266"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "ASUS P2B-DS", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), ++ DMI_MATCH(DMI_BOARD_NAME, "P2B-DS"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "ASUS CUR-DLS", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), ++ DMI_MATCH(DMI_BOARD_NAME, "CUR-DLS"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "ABIT i440BX-W83977", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ABIT "), ++ DMI_MATCH(DMI_BOARD_NAME, "i440BX-W83977 (BP6)"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "IBM Bladecenter", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), ++ DMI_MATCH(DMI_BOARD_NAME, "IBM eServer BladeCenter HS20"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "IBM eServer xSeries 360", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), ++ DMI_MATCH(DMI_BOARD_NAME, "eServer xSeries 360"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "IBM eserver xSeries 330", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), ++ DMI_MATCH(DMI_BOARD_NAME, "eserver xSeries 330"), ++ }, ++ }, ++ { ++ .callback = force_acpi_ht, ++ .ident = "IBM eserver xSeries 440", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "eserver xSeries 440"), ++ }, ++ }, ++ ++ /* ++ * Boxes that need ACPI PCI IRQ routing disabled ++ */ ++ { ++ .callback = disable_acpi_irq, ++ .ident = "ASUS A7V", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC"), ++ DMI_MATCH(DMI_BOARD_NAME, ""), ++ /* newer BIOS, Revision 1011, does work */ ++ DMI_MATCH(DMI_BIOS_VERSION, ++ "ASUS A7V ACPI BIOS Revision 1007"), ++ }, ++ }, ++ { ++ /* ++ * Latest BIOS for IBM 600E (1.16) has bad pcinum ++ * for LPC bridge, which is needed for the PCI ++ * interrupt links to work. DSDT fix is in bug 5966. ++ * 2645, 2646 model numbers are shared with 600/600E/600X ++ */ ++ .callback = disable_acpi_irq, ++ .ident = "IBM Thinkpad 600 Series 2645", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), ++ DMI_MATCH(DMI_BOARD_NAME, "2645"), ++ }, ++ }, ++ { ++ .callback = disable_acpi_irq, ++ .ident = "IBM Thinkpad 600 Series 2646", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), ++ DMI_MATCH(DMI_BOARD_NAME, "2646"), ++ }, ++ }, ++ /* ++ * Boxes that need ACPI PCI IRQ routing and PCI scan disabled ++ */ ++ { /* _BBN 0 bug */ ++ .callback = disable_acpi_pci, ++ .ident = "ASUS PR-DLS", ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."), ++ DMI_MATCH(DMI_BOARD_NAME, "PR-DLS"), ++ DMI_MATCH(DMI_BIOS_VERSION, ++ "ASUS PR-DLS ACPI BIOS Revision 1010"), ++ DMI_MATCH(DMI_BIOS_DATE, "03/21/2003") ++ }, ++ }, ++ { ++ .callback = disable_acpi_pci, ++ .ident = "Acer TravelMate 36x Laptop", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Acer"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"), ++ }, ++ }, ++ {} ++}; ++ ++#endif /* __i386__ */ ++ ++/* ++ * acpi_boot_table_init() and acpi_boot_init() ++ * called from setup_arch(), always. ++ * 1. checksums all tables ++ * 2. enumerates lapics ++ * 3. enumerates io-apics ++ * ++ * acpi_table_init() is separate to allow reading SRAT without ++ * other side effects. ++ * ++ * side effects of acpi_boot_init: ++ * acpi_lapic = 1 if LAPIC found ++ * acpi_ioapic = 1 if IOAPIC found ++ * if (acpi_lapic && acpi_ioapic) smp_found_config = 1; ++ * if acpi_blacklisted() acpi_disabled = 1; ++ * acpi_irq_model=... ++ * ... ++ * ++ * return value: (currently ignored) ++ * 0: success ++ * !0: failure ++ */ ++ ++int __init acpi_boot_table_init(void) ++{ ++ int error; ++ ++#ifdef __i386__ ++ dmi_check_system(acpi_dmi_table); ++#endif ++ ++ /* ++ * If acpi_disabled, bail out ++ * One exception: acpi=ht continues far enough to enumerate LAPICs ++ */ ++ if (acpi_disabled && !acpi_ht) ++ return 1; ++ ++ /* ++ * Initialize the ACPI boot-time table parser. ++ */ ++ error = acpi_table_init(); ++ if (error) { ++ disable_acpi(); ++ return error; ++ } ++ ++ acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf); ++ ++ /* ++ * blacklist may disable ACPI entirely ++ */ ++ error = acpi_blacklisted(); ++ if (error) { ++ if (acpi_force) { ++ printk(KERN_WARNING PREFIX "acpi=force override\n"); ++ } else { ++ printk(KERN_WARNING PREFIX "Disabling ACPI support\n"); ++ disable_acpi(); ++ return error; ++ } ++ } ++ ++ return 0; ++} ++ ++int __init acpi_boot_init(void) ++{ ++ /* ++ * If acpi_disabled, bail out ++ * One exception: acpi=ht continues far enough to enumerate LAPICs ++ */ ++ if (acpi_disabled && !acpi_ht) ++ return 1; ++ ++ acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf); ++ ++ /* ++ * set sci_int and PM timer address ++ */ ++ acpi_table_parse(ACPI_SIG_FADT, acpi_parse_fadt); ++ ++ /* ++ * Process the Multiple APIC Description Table (MADT), if present ++ */ ++ acpi_process_madt(); ++ ++ acpi_table_parse(ACPI_SIG_HPET, acpi_parse_hpet); ++ ++ return 0; ++} ++ ++static int __init parse_acpi(char *arg) ++{ ++ if (!arg) ++ return -EINVAL; ++ ++ /* "acpi=off" disables both ACPI table parsing and interpreter */ ++ if (strcmp(arg, "off") == 0) { ++ disable_acpi(); ++ } ++ /* acpi=force to over-ride black-list */ ++ else if (strcmp(arg, "force") == 0) { ++ acpi_force = 1; ++ acpi_ht = 1; ++ acpi_disabled = 0; ++ } ++ /* acpi=strict disables out-of-spec workarounds */ ++ else if (strcmp(arg, "strict") == 0) { ++ acpi_strict = 1; ++ } ++ /* Limit ACPI just to boot-time to enable HT */ ++ else if (strcmp(arg, "ht") == 0) { ++ if (!acpi_force) ++ disable_acpi(); ++ acpi_ht = 1; ++ } ++ /* "acpi=noirq" disables ACPI interrupt routing */ ++ else if (strcmp(arg, "noirq") == 0) { ++ acpi_noirq_set(); ++ } else { ++ /* Core will printk when we return error. */ ++ return -EINVAL; ++ } ++ return 0; ++} ++early_param("acpi", parse_acpi); ++ ++/* FIXME: Using pci= for an ACPI parameter is a travesty. */ ++static int __init parse_pci(char *arg) ++{ ++ if (arg && strcmp(arg, "noacpi") == 0) ++ acpi_disable_pci(); ++ return 0; ++} ++early_param("pci", parse_pci); ++ ++#ifdef CONFIG_X86_IO_APIC ++static int __init parse_acpi_skip_timer_override(char *arg) ++{ ++ acpi_skip_timer_override = 1; ++ return 0; ++} ++early_param("acpi_skip_timer_override", parse_acpi_skip_timer_override); ++ ++static int __init parse_acpi_use_timer_override(char *arg) ++{ ++ acpi_use_timer_override = 1; ++ return 0; ++} ++early_param("acpi_use_timer_override", parse_acpi_use_timer_override); ++#endif /* CONFIG_X86_IO_APIC */ ++ ++static int __init setup_acpi_sci(char *s) ++{ ++ if (!s) ++ return -EINVAL; ++ if (!strcmp(s, "edge")) ++ acpi_sci_flags = ACPI_MADT_TRIGGER_EDGE | ++ (acpi_sci_flags & ~ACPI_MADT_TRIGGER_MASK); ++ else if (!strcmp(s, "level")) ++ acpi_sci_flags = ACPI_MADT_TRIGGER_LEVEL | ++ (acpi_sci_flags & ~ACPI_MADT_TRIGGER_MASK); ++ else if (!strcmp(s, "high")) ++ acpi_sci_flags = ACPI_MADT_POLARITY_ACTIVE_HIGH | ++ (acpi_sci_flags & ~ACPI_MADT_POLARITY_MASK); ++ else if (!strcmp(s, "low")) ++ acpi_sci_flags = ACPI_MADT_POLARITY_ACTIVE_LOW | ++ (acpi_sci_flags & ~ACPI_MADT_POLARITY_MASK); ++ else ++ return -EINVAL; ++ return 0; ++} ++early_param("acpi_sci", setup_acpi_sci); ++ ++int __acpi_acquire_global_lock(unsigned int *lock) ++{ ++ unsigned int old, new, val; ++ do { ++ old = *lock; ++ new = (((old & ~0x3) + 2) + ((old >> 1) & 0x1)); ++ val = cmpxchg(lock, old, new); ++ } while (unlikely (val != old)); ++ return (new < 3) ? -1 : 0; ++} ++ ++int __acpi_release_global_lock(unsigned int *lock) ++{ ++ unsigned int old, new, val; ++ do { ++ old = *lock; ++ new = old & ~0x3; ++ val = cmpxchg(lock, old, new); ++ } while (unlikely (val != old)); ++ return old & 0x1; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/acpi/Makefile ubuntu-hardy-xen/arch/x86/kernel/acpi/Makefile +--- ubuntu-hardy/arch/x86/kernel/acpi/Makefile 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/acpi/Makefile 2008-04-09 13:17:22.000000000 +0100 +@@ -5,3 +5,4 @@ + obj-y += cstate.o processor.o + endif + ++disabled-obj-$(CONFIG_XEN) := cstate.o wakeup_$(BITS).o +diff -Naur ubuntu-hardy/arch/x86/kernel/acpi/sleep_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/acpi/sleep_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/acpi/sleep_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/acpi/sleep_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,138 @@ ++/* ++ * sleep.c - x86-specific ACPI sleep support. ++ * ++ * Copyright (C) 2001-2003 Patrick Mochel ++ * Copyright (C) 2001-2003 Pavel Machek ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++ ++#ifndef CONFIG_ACPI_PV_SLEEP ++/* address in low memory of the wakeup routine. */ ++unsigned long acpi_wakeup_address = 0; ++unsigned long acpi_realmode_flags; ++extern char wakeup_start, wakeup_end; ++ ++extern unsigned long FASTCALL(acpi_copy_wakeup_routine(unsigned long)); ++#endif ++ ++/** ++ * acpi_save_state_mem - save kernel state ++ * ++ * Create an identity mapped page table and copy the wakeup routine to ++ * low memory. ++ */ ++int acpi_save_state_mem(void) ++{ ++#ifndef CONFIG_ACPI_PV_SLEEP ++ if (!acpi_wakeup_address) ++ return 1; ++ memcpy((void *)acpi_wakeup_address, &wakeup_start, ++ &wakeup_end - &wakeup_start); ++ acpi_copy_wakeup_routine(acpi_wakeup_address); ++#endif ++ return 0; ++} ++ ++/* ++ * acpi_restore_state - undo effects of acpi_save_state_mem ++ */ ++void acpi_restore_state_mem(void) ++{ ++} ++ ++/** ++ * acpi_reserve_bootmem - do _very_ early ACPI initialisation ++ * ++ * We allocate a page from the first 1MB of memory for the wakeup ++ * routine for when we come back from a sleep state. The ++ * runtime allocator allows specification of <16MB pages, but not ++ * <1MB pages. ++ */ ++void __init acpi_reserve_bootmem(void) ++{ ++#ifndef CONFIG_ACPI_PV_SLEEP ++ if ((&wakeup_end - &wakeup_start) > PAGE_SIZE) { ++ printk(KERN_ERR ++ "ACPI: Wakeup code way too big, S3 disabled.\n"); ++ return; ++ } ++ ++ acpi_wakeup_address = (unsigned long)alloc_bootmem_low(PAGE_SIZE); ++ if (!acpi_wakeup_address) ++ printk(KERN_ERR "ACPI: Cannot allocate lowmem, S3 disabled.\n"); ++#endif ++} ++ ++#ifndef CONFIG_ACPI_PV_SLEEP ++static int __init acpi_sleep_setup(char *str) ++{ ++ while ((str != NULL) && (*str != '\0')) { ++ if (strncmp(str, "s3_bios", 7) == 0) ++ acpi_realmode_flags |= 1; ++ if (strncmp(str, "s3_mode", 7) == 0) ++ acpi_realmode_flags |= 2; ++ if (strncmp(str, "s3_beep", 7) == 0) ++ acpi_realmode_flags |= 4; ++ str = strchr(str, ','); ++ if (str != NULL) ++ str += strspn(str, ", \t"); ++ } ++ return 1; ++} ++ ++__setup("acpi_sleep=", acpi_sleep_setup); ++ ++/* Ouch, we want to delete this. We already have better version in userspace, in ++ s2ram from suspend.sf.net project */ ++static __init int reset_videomode_after_s3(const struct dmi_system_id *d) ++{ ++ acpi_realmode_flags |= 2; ++ return 0; ++} ++ ++static __initdata struct dmi_system_id acpisleep_dmi_table[] = { ++ { /* Reset video mode after returning from ACPI S3 sleep */ ++ .callback = reset_videomode_after_s3, ++ .ident = "Toshiba Satellite 4030cdt", ++ .matches = { ++ DMI_MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"), ++ }, ++ }, ++ {} ++}; ++ ++static int __init acpisleep_dmi_init(void) ++{ ++ dmi_check_system(acpisleep_dmi_table); ++ return 0; ++} ++ ++core_initcall(acpisleep_dmi_init); ++ ++#else /* CONFIG_ACPI_PV_SLEEP */ ++#include ++#include ++int acpi_notify_hypervisor_state(u8 sleep_state, ++ u32 pm1a_cnt, u32 pm1b_cnt) ++{ ++ struct xen_platform_op op = { ++ .cmd = XENPF_enter_acpi_sleep, ++ .interface_version = XENPF_INTERFACE_VERSION, ++ .u = { ++ .enter_acpi_sleep = { ++ .pm1a_cnt_val = (u16)pm1a_cnt, ++ .pm1b_cnt_val = (u16)pm1b_cnt, ++ .sleep_state = sleep_state, ++ }, ++ }, ++ }; ++ ++ return HYPERVISOR_platform_op(&op); ++} ++#endif /* CONFIG_ACPI_PV_SLEEP */ +diff -Naur ubuntu-hardy/arch/x86/kernel/acpi/sleep_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/acpi/sleep_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/acpi/sleep_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/acpi/sleep_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,146 @@ ++/* ++ * acpi.c - Architecture-Specific Low-Level ACPI Support ++ * ++ * Copyright (C) 2001, 2002 Paul Diefenbaugh ++ * Copyright (C) 2001 Jun Nakajima ++ * Copyright (C) 2001 Patrick Mochel ++ * Copyright (C) 2002 Andi Kleen, SuSE Labs (x86-64 port) ++ * Copyright (C) 2003 Pavel Machek, SuSE Labs ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* -------------------------------------------------------------------------- ++ Low-Level Sleep Support ++ -------------------------------------------------------------------------- */ ++ ++#ifndef CONFIG_ACPI_PV_SLEEP ++/* address in low memory of the wakeup routine. */ ++unsigned long acpi_wakeup_address = 0; ++unsigned long acpi_realmode_flags; ++extern char wakeup_start, wakeup_end; ++ ++extern unsigned long acpi_copy_wakeup_routine(unsigned long); ++#endif ++ ++/** ++ * acpi_save_state_mem - save kernel state ++ * ++ * Create an identity mapped page table and copy the wakeup routine to ++ * low memory. ++ */ ++int acpi_save_state_mem(void) ++{ ++#ifndef CONFIG_ACPI_PV_SLEEP ++ memcpy((void *)acpi_wakeup_address, &wakeup_start, ++ &wakeup_end - &wakeup_start); ++ acpi_copy_wakeup_routine(acpi_wakeup_address); ++#endif ++ return 0; ++} ++ ++/* ++ * acpi_restore_state ++ */ ++void acpi_restore_state_mem(void) ++{ ++} ++ ++/** ++ * acpi_reserve_bootmem - do _very_ early ACPI initialisation ++ * ++ * We allocate a page in low memory for the wakeup ++ * routine for when we come back from a sleep state. The ++ * runtime allocator allows specification of <16M pages, but not ++ * <1M pages. ++ */ ++void __init acpi_reserve_bootmem(void) ++{ ++#ifndef CONFIG_ACPI_PV_SLEEP ++ acpi_wakeup_address = (unsigned long)alloc_bootmem_low(PAGE_SIZE*2); ++ if ((&wakeup_end - &wakeup_start) > (PAGE_SIZE*2)) ++ printk(KERN_CRIT ++ "ACPI: Wakeup code way too big, will crash on attempt" ++ " to suspend\n"); ++#endif ++} ++ ++#ifndef CONFIG_ACPI_PV_SLEEP ++static int __init acpi_sleep_setup(char *str) ++{ ++ while ((str != NULL) && (*str != '\0')) { ++ if (strncmp(str, "s3_bios", 7) == 0) ++ acpi_realmode_flags |= 1; ++ if (strncmp(str, "s3_mode", 7) == 0) ++ acpi_realmode_flags |= 2; ++ if (strncmp(str, "s3_beep", 7) == 0) ++ acpi_realmode_flags |= 4; ++ str = strchr(str, ','); ++ if (str != NULL) ++ str += strspn(str, ", \t"); ++ } ++ ++ return 1; ++} ++ ++__setup("acpi_sleep=", acpi_sleep_setup); ++ ++#else /* CONFIG_ACPI_PV_SLEEP */ ++#include ++#include ++int acpi_notify_hypervisor_state(u8 sleep_state, ++ u32 pm1a_cnt, u32 pm1b_cnt) ++{ ++ struct xen_platform_op op = { ++ .cmd = XENPF_enter_acpi_sleep, ++ .interface_version = XENPF_INTERFACE_VERSION, ++ .u = { ++ .enter_acpi_sleep = { ++ .pm1a_cnt_val = (u16)pm1a_cnt, ++ .pm1b_cnt_val = (u16)pm1b_cnt, ++ .sleep_state = sleep_state, ++ }, ++ }, ++ }; ++ ++ return HYPERVISOR_platform_op(&op); ++} ++#endif /* CONFIG_ACPI_PV_SLEEP */ ++ +diff -Naur ubuntu-hardy/arch/x86/kernel/apic_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/apic_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/apic_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/apic_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,44 @@ ++/* ++ * Local APIC handling stubs ++ */ ++ ++#include ++#include ++ ++#include ++ ++/* ++ * Debug level, exported for io_apic.c ++ */ ++int apic_verbosity; ++ ++static int __init apic_set_verbosity(char *str) ++{ ++ if (strcmp("debug", str) == 0) ++ apic_verbosity = APIC_DEBUG; ++ else if (strcmp("verbose", str) == 0) ++ apic_verbosity = APIC_VERBOSE; ++ return 1; ++} ++ ++__setup("apic=", apic_set_verbosity); ++ ++int setup_profiling_timer(unsigned int multiplier) ++{ ++ return -EINVAL; ++} ++ ++/* ++ * This initializes the IO-APIC and APIC hardware if this is ++ * a UP kernel. ++ */ ++int __init APIC_init_uniprocessor (void) ++{ ++#ifdef CONFIG_X86_IO_APIC ++ if (smp_found_config) ++ if (!skip_ioapic_setup && nr_ioapics) ++ setup_IO_APIC(); ++#endif ++ ++ return 0; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/asm-offsets_32.c ubuntu-hardy-xen/arch/x86/kernel/asm-offsets_32.c +--- ubuntu-hardy/arch/x86/kernel/asm-offsets_32.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/asm-offsets_32.c 2008-04-09 13:17:22.000000000 +0100 +@@ -18,7 +18,9 @@ + #include + #include + ++#if defined(CONFIG_XEN) || defined(CONFIG_PARAVIRT_XEN) + #include ++#endif + + #ifdef CONFIG_LGUEST_GUEST + #include +@@ -63,6 +65,7 @@ + OFFSET(TI_exec_domain, thread_info, exec_domain); + OFFSET(TI_flags, thread_info, flags); + OFFSET(TI_status, thread_info, status); ++ OFFSET(TI_cpu, thread_info, cpu); + OFFSET(TI_preempt_count, thread_info, preempt_count); + OFFSET(TI_addr_limit, thread_info, addr_limit); + OFFSET(TI_restart_block, thread_info, restart_block); +@@ -101,9 +104,14 @@ + OFFSET(pbe_orig_address, pbe, orig_address); + OFFSET(pbe_next, pbe, next); + ++#ifndef CONFIG_X86_NO_TSS + /* Offset from the sysenter stack to tss.esp0 */ +- DEFINE(TSS_sysenter_esp0, offsetof(struct tss_struct, x86_tss.esp0) - ++ DEFINE(SYSENTER_stack_esp0, offsetof(struct tss_struct, x86_tss.esp0) - + sizeof(struct tss_struct)); ++#else ++ /* sysenter stack points directly to esp0 */ ++ DEFINE(SYSENTER_stack_esp0, 0); ++#endif + + DEFINE(PAGE_SIZE_asm, PAGE_SIZE); + DEFINE(PAGE_SHIFT_asm, PAGE_SHIFT); +@@ -115,6 +123,11 @@ + + OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx); + ++#ifdef CONFIG_XEN ++ BLANK(); ++ OFFSET(XEN_START_mfn_list, start_info, mfn_list); ++#endif ++ + #ifdef CONFIG_PARAVIRT + BLANK(); + OFFSET(PARAVIRT_enabled, pv_info, paravirt_enabled); +@@ -127,7 +140,7 @@ + OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0); + #endif + +-#ifdef CONFIG_XEN ++#ifdef CONFIG_PARAVIRT_XEN + BLANK(); + OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask); + OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending); +diff -Naur ubuntu-hardy/arch/x86/kernel/asm-offsets_64.c ubuntu-hardy-xen/arch/x86/kernel/asm-offsets_64.c +--- ubuntu-hardy/arch/x86/kernel/asm-offsets_64.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/asm-offsets_64.c 2008-04-09 13:17:22.000000000 +0100 +@@ -108,8 +108,10 @@ + ENTRY(cr8); + BLANK(); + #undef ENTRY ++#ifndef CONFIG_X86_NO_TSS + DEFINE(TSS_ist, offsetof(struct tss_struct, ist)); + BLANK(); ++#endif + DEFINE(crypto_tfm_ctx_offset, offsetof(struct crypto_tfm, __crt_ctx)); + BLANK(); + DEFINE(__NR_syscall_max, sizeof(syscalls) - 1); +diff -Naur ubuntu-hardy/arch/x86/kernel/cpu/amd.c ubuntu-hardy-xen/arch/x86/kernel/cpu/amd.c +--- ubuntu-hardy/arch/x86/kernel/cpu/amd.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/cpu/amd.c 2008-04-09 13:17:22.000000000 +0100 +@@ -24,7 +24,7 @@ + extern void vide(void); + __asm__(".align 4\nvide: ret"); + +-#ifdef CONFIG_X86_LOCAL_APIC ++#if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_XEN) + #define ENABLE_C1E_MASK 0x18000000 + #define CPUID_PROCESSOR_SIGNATURE 1 + #define CPUID_XFAM 0x0ff00000 +@@ -290,7 +290,7 @@ + num_cache_leaves = 3; + } + +-#ifdef CONFIG_X86_LOCAL_APIC ++#if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_XEN) + if (amd_apic_timer_broken()) + local_apic_timer_disabled = 1; + #endif +diff -Naur ubuntu-hardy/arch/x86/kernel/cpu/common-xen.c ubuntu-hardy-xen/arch/x86/kernel/cpu/common-xen.c +--- ubuntu-hardy/arch/x86/kernel/cpu/common-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/cpu/common-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,751 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_X86_LOCAL_APIC ++#include ++#include ++#include ++#else ++#ifdef CONFIG_XEN ++#define phys_pkg_id(a,b) a ++#endif ++#endif ++#include ++ ++#include "cpu.h" ++ ++DEFINE_PER_CPU(struct gdt_page, gdt_page) = { .gdt = { ++ [GDT_ENTRY_KERNEL_CS] = { 0x0000ffff, 0x00cf9a00 }, ++ [GDT_ENTRY_KERNEL_DS] = { 0x0000ffff, 0x00cf9200 }, ++ [GDT_ENTRY_DEFAULT_USER_CS] = { 0x0000ffff, 0x00cffa00 }, ++ [GDT_ENTRY_DEFAULT_USER_DS] = { 0x0000ffff, 0x00cff200 }, ++#ifndef CONFIG_XEN ++ /* ++ * Segments used for calling PnP BIOS have byte granularity. ++ * They code segments and data segments have fixed 64k limits, ++ * the transfer segment sizes are set at run time. ++ */ ++ [GDT_ENTRY_PNPBIOS_CS32] = { 0x0000ffff, 0x00409a00 },/* 32-bit code */ ++ [GDT_ENTRY_PNPBIOS_CS16] = { 0x0000ffff, 0x00009a00 },/* 16-bit code */ ++ [GDT_ENTRY_PNPBIOS_DS] = { 0x0000ffff, 0x00009200 }, /* 16-bit data */ ++ [GDT_ENTRY_PNPBIOS_TS1] = { 0x00000000, 0x00009200 },/* 16-bit data */ ++ [GDT_ENTRY_PNPBIOS_TS2] = { 0x00000000, 0x00009200 },/* 16-bit data */ ++ /* ++ * The APM segments have byte granularity and their bases ++ * are set at run time. All have 64k limits. ++ */ ++ [GDT_ENTRY_APMBIOS_BASE] = { 0x0000ffff, 0x00409a00 },/* 32-bit code */ ++ /* 16-bit code */ ++ [GDT_ENTRY_APMBIOS_BASE+1] = { 0x0000ffff, 0x00009a00 }, ++ [GDT_ENTRY_APMBIOS_BASE+2] = { 0x0000ffff, 0x00409200 }, /* data */ ++ ++ [GDT_ENTRY_ESPFIX_SS] = { 0x00000000, 0x00c09200 }, ++#endif ++ [GDT_ENTRY_PERCPU] = { 0x00000000, 0x00000000 }, ++} }; ++EXPORT_PER_CPU_SYMBOL_GPL(gdt_page); ++ ++static int cachesize_override __cpuinitdata = -1; ++static int disable_x86_fxsr __cpuinitdata; ++static int disable_x86_serial_nr __cpuinitdata = 1; ++static int disable_x86_sep __cpuinitdata; ++ ++struct cpu_dev * cpu_devs[X86_VENDOR_NUM] = {}; ++ ++extern int disable_pse; ++ ++static void __cpuinit default_init(struct cpuinfo_x86 * c) ++{ ++ /* Not much we can do here... */ ++ /* Check if at least it has cpuid */ ++ if (c->cpuid_level == -1) { ++ /* No cpuid. It must be an ancient CPU */ ++ if (c->x86 == 4) ++ strcpy(c->x86_model_id, "486"); ++ else if (c->x86 == 3) ++ strcpy(c->x86_model_id, "386"); ++ } ++} ++ ++static struct cpu_dev __cpuinitdata default_cpu = { ++ .c_init = default_init, ++ .c_vendor = "Unknown", ++}; ++static struct cpu_dev * this_cpu __cpuinitdata = &default_cpu; ++ ++static int __init cachesize_setup(char *str) ++{ ++ get_option (&str, &cachesize_override); ++ return 1; ++} ++__setup("cachesize=", cachesize_setup); ++ ++int __cpuinit get_model_name(struct cpuinfo_x86 *c) ++{ ++ unsigned int *v; ++ char *p, *q; ++ ++ if (cpuid_eax(0x80000000) < 0x80000004) ++ return 0; ++ ++ v = (unsigned int *) c->x86_model_id; ++ cpuid(0x80000002, &v[0], &v[1], &v[2], &v[3]); ++ cpuid(0x80000003, &v[4], &v[5], &v[6], &v[7]); ++ cpuid(0x80000004, &v[8], &v[9], &v[10], &v[11]); ++ c->x86_model_id[48] = 0; ++ ++ /* Intel chips right-justify this string for some dumb reason; ++ undo that brain damage */ ++ p = q = &c->x86_model_id[0]; ++ while ( *p == ' ' ) ++ p++; ++ if ( p != q ) { ++ while ( *p ) ++ *q++ = *p++; ++ while ( q <= &c->x86_model_id[48] ) ++ *q++ = '\0'; /* Zero-pad the rest */ ++ } ++ ++ return 1; ++} ++ ++ ++void __cpuinit display_cacheinfo(struct cpuinfo_x86 *c) ++{ ++ unsigned int n, dummy, ecx, edx, l2size; ++ ++ n = cpuid_eax(0x80000000); ++ ++ if (n >= 0x80000005) { ++ cpuid(0x80000005, &dummy, &dummy, &ecx, &edx); ++ printk(KERN_INFO "CPU: L1 I Cache: %dK (%d bytes/line), D cache %dK (%d bytes/line)\n", ++ edx>>24, edx&0xFF, ecx>>24, ecx&0xFF); ++ c->x86_cache_size=(ecx>>24)+(edx>>24); ++ } ++ ++ if (n < 0x80000006) /* Some chips just has a large L1. */ ++ return; ++ ++ ecx = cpuid_ecx(0x80000006); ++ l2size = ecx >> 16; ++ ++ /* do processor-specific cache resizing */ ++ if (this_cpu->c_size_cache) ++ l2size = this_cpu->c_size_cache(c,l2size); ++ ++ /* Allow user to override all this if necessary. */ ++ if (cachesize_override != -1) ++ l2size = cachesize_override; ++ ++ if ( l2size == 0 ) ++ return; /* Again, no L2 cache is possible */ ++ ++ c->x86_cache_size = l2size; ++ ++ printk(KERN_INFO "CPU: L2 Cache: %dK (%d bytes/line)\n", ++ l2size, ecx & 0xFF); ++} ++ ++/* Naming convention should be: [()] */ ++/* This table only is used unless init_() below doesn't set it; */ ++/* in particular, if CPUID levels 0x80000002..4 are supported, this isn't used */ ++ ++/* Look up CPU names by table lookup. */ ++static char __cpuinit *table_lookup_model(struct cpuinfo_x86 *c) ++{ ++ struct cpu_model_info *info; ++ ++ if ( c->x86_model >= 16 ) ++ return NULL; /* Range check */ ++ ++ if (!this_cpu) ++ return NULL; ++ ++ info = this_cpu->c_models; ++ ++ while (info && info->family) { ++ if (info->family == c->x86) ++ return info->model_names[c->x86_model]; ++ info++; ++ } ++ return NULL; /* Not found */ ++} ++ ++ ++static void __cpuinit get_cpu_vendor(struct cpuinfo_x86 *c, int early) ++{ ++ char *v = c->x86_vendor_id; ++ int i; ++ static int printed; ++ ++ for (i = 0; i < X86_VENDOR_NUM; i++) { ++ if (cpu_devs[i]) { ++ if (!strcmp(v,cpu_devs[i]->c_ident[0]) || ++ (cpu_devs[i]->c_ident[1] && ++ !strcmp(v,cpu_devs[i]->c_ident[1]))) { ++ c->x86_vendor = i; ++ if (!early) ++ this_cpu = cpu_devs[i]; ++ return; ++ } ++ } ++ } ++ if (!printed) { ++ printed++; ++ printk(KERN_ERR "CPU: Vendor unknown, using generic init.\n"); ++ printk(KERN_ERR "CPU: Your system may be unstable.\n"); ++ } ++ c->x86_vendor = X86_VENDOR_UNKNOWN; ++ this_cpu = &default_cpu; ++} ++ ++ ++static int __init x86_fxsr_setup(char * s) ++{ ++ /* Tell all the other CPUs to not use it... */ ++ disable_x86_fxsr = 1; ++ ++ /* ++ * ... and clear the bits early in the boot_cpu_data ++ * so that the bootup process doesn't try to do this ++ * either. ++ */ ++ clear_bit(X86_FEATURE_FXSR, boot_cpu_data.x86_capability); ++ clear_bit(X86_FEATURE_XMM, boot_cpu_data.x86_capability); ++ return 1; ++} ++__setup("nofxsr", x86_fxsr_setup); ++ ++ ++static int __init x86_sep_setup(char * s) ++{ ++ disable_x86_sep = 1; ++ return 1; ++} ++__setup("nosep", x86_sep_setup); ++ ++ ++/* Standard macro to see if a specific flag is changeable */ ++static inline int flag_is_changeable_p(u32 flag) ++{ ++ u32 f1, f2; ++ ++ asm("pushfl\n\t" ++ "pushfl\n\t" ++ "popl %0\n\t" ++ "movl %0,%1\n\t" ++ "xorl %2,%0\n\t" ++ "pushl %0\n\t" ++ "popfl\n\t" ++ "pushfl\n\t" ++ "popl %0\n\t" ++ "popfl\n\t" ++ : "=&r" (f1), "=&r" (f2) ++ : "ir" (flag)); ++ ++ return ((f1^f2) & flag) != 0; ++} ++ ++ ++/* Probe for the CPUID instruction */ ++static int __cpuinit have_cpuid_p(void) ++{ ++ return flag_is_changeable_p(X86_EFLAGS_ID); ++} ++ ++void __init cpu_detect(struct cpuinfo_x86 *c) ++{ ++ /* Get vendor name */ ++ cpuid(0x00000000, &c->cpuid_level, ++ (int *)&c->x86_vendor_id[0], ++ (int *)&c->x86_vendor_id[8], ++ (int *)&c->x86_vendor_id[4]); ++ ++ c->x86 = 4; ++ if (c->cpuid_level >= 0x00000001) { ++ u32 junk, tfms, cap0, misc; ++ cpuid(0x00000001, &tfms, &misc, &junk, &cap0); ++ c->x86 = (tfms >> 8) & 15; ++ c->x86_model = (tfms >> 4) & 15; ++ if (c->x86 == 0xf) ++ c->x86 += (tfms >> 20) & 0xff; ++ if (c->x86 >= 0x6) ++ c->x86_model += ((tfms >> 16) & 0xF) << 4; ++ c->x86_mask = tfms & 15; ++ if (cap0 & (1<<19)) ++ c->x86_cache_alignment = ((misc >> 8) & 0xff) * 8; ++ } ++} ++ ++/* Do minimum CPU detection early. ++ Fields really needed: vendor, cpuid_level, family, model, mask, cache alignment. ++ The others are not touched to avoid unwanted side effects. ++ ++ WARNING: this function is only called on the BP. Don't add code here ++ that is supposed to run on all CPUs. */ ++static void __init early_cpu_detect(void) ++{ ++ struct cpuinfo_x86 *c = &boot_cpu_data; ++ ++ c->x86_cache_alignment = 32; ++ ++ if (!have_cpuid_p()) ++ return; ++ ++ cpu_detect(c); ++ ++ get_cpu_vendor(c, 1); ++} ++ ++static void __cpuinit generic_identify(struct cpuinfo_x86 * c) ++{ ++ u32 tfms, xlvl; ++ int ebx; ++ ++ if (have_cpuid_p()) { ++ /* Get vendor name */ ++ cpuid(0x00000000, &c->cpuid_level, ++ (int *)&c->x86_vendor_id[0], ++ (int *)&c->x86_vendor_id[8], ++ (int *)&c->x86_vendor_id[4]); ++ ++ get_cpu_vendor(c, 0); ++ /* Initialize the standard set of capabilities */ ++ /* Note that the vendor-specific code below might override */ ++ ++ /* Intel-defined flags: level 0x00000001 */ ++ if ( c->cpuid_level >= 0x00000001 ) { ++ u32 capability, excap; ++ cpuid(0x00000001, &tfms, &ebx, &excap, &capability); ++ c->x86_capability[0] = capability; ++ c->x86_capability[4] = excap; ++ c->x86 = (tfms >> 8) & 15; ++ c->x86_model = (tfms >> 4) & 15; ++ if (c->x86 == 0xf) ++ c->x86 += (tfms >> 20) & 0xff; ++ if (c->x86 >= 0x6) ++ c->x86_model += ((tfms >> 16) & 0xF) << 4; ++ c->x86_mask = tfms & 15; ++#ifdef CONFIG_X86_HT ++ c->apicid = phys_pkg_id((ebx >> 24) & 0xFF, 0); ++#else ++ c->apicid = (ebx >> 24) & 0xFF; ++#endif ++ if (c->x86_capability[0] & (1<<19)) ++ c->x86_clflush_size = ((ebx >> 8) & 0xff) * 8; ++ } else { ++ /* Have CPUID level 0 only - unheard of */ ++ c->x86 = 4; ++ } ++ ++ /* AMD-defined flags: level 0x80000001 */ ++ xlvl = cpuid_eax(0x80000000); ++ if ( (xlvl & 0xffff0000) == 0x80000000 ) { ++ if ( xlvl >= 0x80000001 ) { ++ c->x86_capability[1] = cpuid_edx(0x80000001); ++ c->x86_capability[6] = cpuid_ecx(0x80000001); ++ } ++ if ( xlvl >= 0x80000004 ) ++ get_model_name(c); /* Default name */ ++ } ++ ++ init_scattered_cpuid_features(c); ++ } ++ ++ early_intel_workaround(c); ++ ++#ifdef CONFIG_X86_HT ++ c->phys_proc_id = (cpuid_ebx(1) >> 24) & 0xff; ++#endif ++} ++ ++static void __cpuinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) ++{ ++ if (cpu_has(c, X86_FEATURE_PN) && disable_x86_serial_nr ) { ++ /* Disable processor serial number */ ++ unsigned long lo,hi; ++ rdmsr(MSR_IA32_BBL_CR_CTL,lo,hi); ++ lo |= 0x200000; ++ wrmsr(MSR_IA32_BBL_CR_CTL,lo,hi); ++ printk(KERN_NOTICE "CPU serial number disabled.\n"); ++ clear_bit(X86_FEATURE_PN, c->x86_capability); ++ ++ /* Disabling the serial number may affect the cpuid level */ ++ c->cpuid_level = cpuid_eax(0); ++ } ++} ++ ++static int __init x86_serial_nr_setup(char *s) ++{ ++ disable_x86_serial_nr = 0; ++ return 1; ++} ++__setup("serialnumber", x86_serial_nr_setup); ++ ++ ++ ++/* ++ * This does the hard work of actually picking apart the CPU stuff... ++ */ ++static void __cpuinit identify_cpu(struct cpuinfo_x86 *c) ++{ ++ int i; ++ ++ c->loops_per_jiffy = loops_per_jiffy; ++ c->x86_cache_size = -1; ++ c->x86_vendor = X86_VENDOR_UNKNOWN; ++ c->cpuid_level = -1; /* CPUID not detected */ ++ c->x86_model = c->x86_mask = 0; /* So far unknown... */ ++ c->x86_vendor_id[0] = '\0'; /* Unset */ ++ c->x86_model_id[0] = '\0'; /* Unset */ ++ c->x86_max_cores = 1; ++ c->x86_clflush_size = 32; ++ memset(&c->x86_capability, 0, sizeof c->x86_capability); ++ ++ if (!have_cpuid_p()) { ++ /* First of all, decide if this is a 486 or higher */ ++ /* It's a 486 if we can modify the AC flag */ ++ if ( flag_is_changeable_p(X86_EFLAGS_AC) ) ++ c->x86 = 4; ++ else ++ c->x86 = 3; ++ } ++ ++ generic_identify(c); ++ ++ printk(KERN_DEBUG "CPU: After generic identify, caps:"); ++ for (i = 0; i < NCAPINTS; i++) ++ printk(" %08lx", c->x86_capability[i]); ++ printk("\n"); ++ ++ if (this_cpu->c_identify) { ++ this_cpu->c_identify(c); ++ ++ printk(KERN_DEBUG "CPU: After vendor identify, caps:"); ++ for (i = 0; i < NCAPINTS; i++) ++ printk(" %08lx", c->x86_capability[i]); ++ printk("\n"); ++ } ++ ++ /* ++ * Vendor-specific initialization. In this section we ++ * canonicalize the feature flags, meaning if there are ++ * features a certain CPU supports which CPUID doesn't ++ * tell us, CPUID claiming incorrect flags, or other bugs, ++ * we handle them here. ++ * ++ * At the end of this section, c->x86_capability better ++ * indicate the features this CPU genuinely supports! ++ */ ++ if (this_cpu->c_init) ++ this_cpu->c_init(c); ++ ++ /* Disable the PN if appropriate */ ++ squash_the_stupid_serial_number(c); ++ ++ /* ++ * The vendor-specific functions might have changed features. Now ++ * we do "generic changes." ++ */ ++ ++ /* TSC disabled? */ ++ if ( tsc_disable ) ++ clear_bit(X86_FEATURE_TSC, c->x86_capability); ++ ++ /* FXSR disabled? */ ++ if (disable_x86_fxsr) { ++ clear_bit(X86_FEATURE_FXSR, c->x86_capability); ++ clear_bit(X86_FEATURE_XMM, c->x86_capability); ++ } ++ ++ /* SEP disabled? */ ++ if (disable_x86_sep) ++ clear_bit(X86_FEATURE_SEP, c->x86_capability); ++ ++ if (disable_pse) ++ clear_bit(X86_FEATURE_PSE, c->x86_capability); ++ ++ /* If the model name is still unset, do table lookup. */ ++ if ( !c->x86_model_id[0] ) { ++ char *p; ++ p = table_lookup_model(c); ++ if ( p ) ++ strcpy(c->x86_model_id, p); ++ else ++ /* Last resort... */ ++ sprintf(c->x86_model_id, "%02x/%02x", ++ c->x86, c->x86_model); ++ } ++ ++ /* Now the feature flags better reflect actual CPU features! */ ++ ++ printk(KERN_DEBUG "CPU: After all inits, caps:"); ++ for (i = 0; i < NCAPINTS; i++) ++ printk(" %08lx", c->x86_capability[i]); ++ printk("\n"); ++ ++ /* ++ * On SMP, boot_cpu_data holds the common feature set between ++ * all CPUs; so make sure that we indicate which features are ++ * common between the CPUs. The first time this routine gets ++ * executed, c == &boot_cpu_data. ++ */ ++ if ( c != &boot_cpu_data ) { ++ /* AND the already accumulated flags with these */ ++ for ( i = 0 ; i < NCAPINTS ; i++ ) ++ boot_cpu_data.x86_capability[i] &= c->x86_capability[i]; ++ } ++ ++ /* Init Machine Check Exception if available. */ ++ mcheck_init(c); ++} ++ ++void __init identify_boot_cpu(void) ++{ ++ identify_cpu(&boot_cpu_data); ++ sysenter_setup(); ++ enable_sep_cpu(); ++ mtrr_bp_init(); ++} ++ ++void __cpuinit identify_secondary_cpu(struct cpuinfo_x86 *c) ++{ ++ BUG_ON(c == &boot_cpu_data); ++ identify_cpu(c); ++ enable_sep_cpu(); ++ mtrr_ap_init(); ++} ++ ++#ifdef CONFIG_X86_HT ++void __cpuinit detect_ht(struct cpuinfo_x86 *c) ++{ ++ u32 eax, ebx, ecx, edx; ++ int index_msb, core_bits; ++ ++ cpuid(1, &eax, &ebx, &ecx, &edx); ++ ++ if (!cpu_has(c, X86_FEATURE_HT) || cpu_has(c, X86_FEATURE_CMP_LEGACY)) ++ return; ++ ++ smp_num_siblings = (ebx & 0xff0000) >> 16; ++ ++ if (smp_num_siblings == 1) { ++ printk(KERN_INFO "CPU: Hyper-Threading is disabled\n"); ++ } else if (smp_num_siblings > 1 ) { ++ ++ if (smp_num_siblings > NR_CPUS) { ++ printk(KERN_WARNING "CPU: Unsupported number of the " ++ "siblings %d", smp_num_siblings); ++ smp_num_siblings = 1; ++ return; ++ } ++ ++ index_msb = get_count_order(smp_num_siblings); ++ c->phys_proc_id = phys_pkg_id((ebx >> 24) & 0xFF, index_msb); ++ ++ printk(KERN_INFO "CPU: Physical Processor ID: %d\n", ++ c->phys_proc_id); ++ ++ smp_num_siblings = smp_num_siblings / c->x86_max_cores; ++ ++ index_msb = get_count_order(smp_num_siblings) ; ++ ++ core_bits = get_count_order(c->x86_max_cores); ++ ++ c->cpu_core_id = phys_pkg_id((ebx >> 24) & 0xFF, index_msb) & ++ ((1 << core_bits) - 1); ++ ++ if (c->x86_max_cores > 1) ++ printk(KERN_INFO "CPU: Processor Core ID: %d\n", ++ c->cpu_core_id); ++ } ++} ++#endif ++ ++void __cpuinit print_cpu_info(struct cpuinfo_x86 *c) ++{ ++ char *vendor = NULL; ++ ++ if (c->x86_vendor < X86_VENDOR_NUM) ++ vendor = this_cpu->c_vendor; ++ else if (c->cpuid_level >= 0) ++ vendor = c->x86_vendor_id; ++ ++ if (vendor && strncmp(c->x86_model_id, vendor, strlen(vendor))) ++ printk("%s ", vendor); ++ ++ if (!c->x86_model_id[0]) ++ printk("%d86", c->x86); ++ else ++ printk("%s", c->x86_model_id); ++ ++ if (c->x86_mask || c->cpuid_level >= 0) ++ printk(" stepping %02x\n", c->x86_mask); ++ else ++ printk("\n"); ++} ++ ++cpumask_t cpu_initialized __cpuinitdata = CPU_MASK_NONE; ++ ++/* This is hacky. :) ++ * We're emulating future behavior. ++ * In the future, the cpu-specific init functions will be called implicitly ++ * via the magic of initcalls. ++ * They will insert themselves into the cpu_devs structure. ++ * Then, when cpu_init() is called, we can just iterate over that array. ++ */ ++ ++extern int intel_cpu_init(void); ++extern int cyrix_init_cpu(void); ++extern int nsc_init_cpu(void); ++extern int amd_init_cpu(void); ++extern int centaur_init_cpu(void); ++extern int transmeta_init_cpu(void); ++extern int nexgen_init_cpu(void); ++extern int umc_init_cpu(void); ++ ++void __init early_cpu_init(void) ++{ ++ intel_cpu_init(); ++ cyrix_init_cpu(); ++ nsc_init_cpu(); ++ amd_init_cpu(); ++ centaur_init_cpu(); ++ transmeta_init_cpu(); ++ nexgen_init_cpu(); ++ umc_init_cpu(); ++ early_cpu_detect(); ++ ++#ifdef CONFIG_DEBUG_PAGEALLOC ++ /* pse is not compatible with on-the-fly unmapping, ++ * disable it even if the cpus claim to support it. ++ */ ++ clear_bit(X86_FEATURE_PSE, boot_cpu_data.x86_capability); ++ disable_pse = 1; ++#endif ++} ++ ++/* Make sure %fs is initialized properly in idle threads */ ++struct pt_regs * __devinit idle_regs(struct pt_regs *regs) ++{ ++ memset(regs, 0, sizeof(struct pt_regs)); ++ regs->xfs = __KERNEL_PERCPU; ++ return regs; ++} ++ ++/* Current gdt points %fs at the "master" per-cpu area: after this, ++ * it's on the real one. */ ++void switch_to_new_gdt(void) ++{ ++ struct Xgt_desc_struct gdt_descr; ++ unsigned long va, frames[16]; ++ int f; ++ ++ gdt_descr.address = (long)get_cpu_gdt_table(smp_processor_id()); ++ gdt_descr.size = GDT_SIZE - 1; ++ ++ for (va = gdt_descr.address, f = 0; ++ va < gdt_descr.address + gdt_descr.size; ++ va += PAGE_SIZE, f++) { ++ frames[f] = virt_to_mfn(va); ++ make_lowmem_page_readonly( ++ (void *)va, XENFEAT_writable_descriptor_tables); ++ } ++ if (HYPERVISOR_set_gdt(frames, (gdt_descr.size + 1) / 8)) ++ BUG(); ++ asm("mov %0, %%fs" : : "r" (__KERNEL_PERCPU) : "memory"); ++} ++ ++/* ++ * cpu_init() initializes state that is per-CPU. Some data is already ++ * initialized (naturally) in the bootstrap process, such as the GDT ++ * and IDT. We reload them nevertheless, this function acts as a ++ * 'CPU state barrier', nothing should get across. ++ */ ++void __cpuinit cpu_init(void) ++{ ++ int cpu = smp_processor_id(); ++ struct task_struct *curr = current; ++#ifndef CONFIG_X86_NO_TSS ++ struct tss_struct * t = &per_cpu(init_tss, cpu); ++#endif ++ struct thread_struct *thread = &curr->thread; ++ ++ if (cpu_test_and_set(cpu, cpu_initialized)) { ++ printk(KERN_WARNING "CPU#%d already initialized!\n", cpu); ++ for (;;) local_irq_enable(); ++ } ++ ++ printk(KERN_INFO "Initializing CPU#%d\n", cpu); ++ ++ if (cpu_has_vme || cpu_has_de) ++ clear_in_cr4(X86_CR4_VME|X86_CR4_PVI|X86_CR4_TSD|X86_CR4_DE); ++ if (tsc_disable && cpu_has_tsc) { ++ printk(KERN_NOTICE "Disabling TSC...\n"); ++ /**** FIX-HPA: DOES THIS REALLY BELONG HERE? ****/ ++ clear_bit(X86_FEATURE_TSC, boot_cpu_data.x86_capability); ++ set_in_cr4(X86_CR4_TSD); ++ } ++ ++ switch_to_new_gdt(); ++ ++ /* ++ * Set up and load the per-CPU TSS and LDT ++ */ ++ atomic_inc(&init_mm.mm_count); ++ curr->active_mm = &init_mm; ++ if (curr->mm) ++ BUG(); ++ enter_lazy_tlb(&init_mm, curr); ++ ++ load_esp0(t, thread); ++ ++ load_LDT(&init_mm.context); ++ ++#ifdef CONFIG_DOUBLEFAULT ++ /* Set up doublefault TSS pointer in the GDT */ ++ __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss); ++#endif ++ ++ /* Clear %gs. */ ++ asm volatile ("mov %0, %%gs" : : "r" (0)); ++ ++ /* Clear all 6 debug registers: */ ++ set_debugreg(0, 0); ++ set_debugreg(0, 1); ++ set_debugreg(0, 2); ++ set_debugreg(0, 3); ++ set_debugreg(0, 6); ++ set_debugreg(0, 7); ++ ++ /* ++ * Force FPU initialization: ++ */ ++ current_thread_info()->status = 0; ++ clear_used_math(); ++ mxcsr_feature_mask_init(); ++} ++ ++#ifdef CONFIG_HOTPLUG_CPU ++void __cpuinit cpu_uninit(void) ++{ ++ int cpu = raw_smp_processor_id(); ++ cpu_clear(cpu, cpu_initialized); ++ ++ /* lazy TLB state */ ++ per_cpu(cpu_tlbstate, cpu).state = 0; ++ per_cpu(cpu_tlbstate, cpu).active_mm = &init_mm; ++} ++#endif +diff -Naur ubuntu-hardy/arch/x86/kernel/cpu/cpufreq/powernow-k7.c ubuntu-hardy-xen/arch/x86/kernel/cpu/cpufreq/powernow-k7.c +--- ubuntu-hardy/arch/x86/kernel/cpu/cpufreq/powernow-k7.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/cpu/cpufreq/powernow-k7.c 2008-04-09 13:17:22.000000000 +0100 +@@ -699,3 +699,24 @@ + late_initcall(powernow_init); + module_exit(powernow_exit); + ++int recalibrate_cpu_khz(void) ++{ ++#ifndef CONFIG_SMP ++ unsigned long cpu_khz_old = cpu_khz; ++ ++ if (cpu_has_tsc) { ++ cpu_khz = calculate_cpu_khz(); ++ tsc_khz = cpu_khz; ++ cpu_data(0).loops_per_jiffy = ++ cpufreq_scale(cpu_data(0).loops_per_jiffy, ++ cpu_khz_old, cpu_khz); ++ return 0; ++ } else ++ return -ENODEV; ++#else ++ return -ENODEV; ++#endif ++} ++ ++EXPORT_SYMBOL(recalibrate_cpu_khz); ++ +diff -Naur ubuntu-hardy/arch/x86/kernel/cpu/Makefile ubuntu-hardy-xen/arch/x86/kernel/cpu/Makefile +--- ubuntu-hardy/arch/x86/kernel/cpu/Makefile 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/cpu/Makefile 2008-04-09 13:17:22.000000000 +0100 +@@ -17,4 +17,6 @@ + obj-$(CONFIG_MTRR) += mtrr/ + obj-$(CONFIG_CPU_FREQ) += cpufreq/ + ++ifneq ($(CONFIG_XEN),y) + obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o ++endif +diff -Naur ubuntu-hardy/arch/x86/kernel/cpu/mtrr/main-xen.c ubuntu-hardy-xen/arch/x86/kernel/cpu/mtrr/main-xen.c +--- ubuntu-hardy/arch/x86/kernel/cpu/mtrr/main-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/cpu/mtrr/main-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,196 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include "mtrr.h" ++ ++static DEFINE_MUTEX(mtrr_mutex); ++ ++void generic_get_mtrr(unsigned int reg, unsigned long *base, ++ unsigned long *size, mtrr_type * type) ++{ ++ struct xen_platform_op op; ++ ++ op.cmd = XENPF_read_memtype; ++ op.u.read_memtype.reg = reg; ++ (void)HYPERVISOR_platform_op(&op); ++ ++ *size = op.u.read_memtype.nr_mfns; ++ *base = op.u.read_memtype.mfn; ++ *type = op.u.read_memtype.type; ++} ++ ++struct mtrr_ops generic_mtrr_ops = { ++ .use_intel_if = 1, ++ .get = generic_get_mtrr, ++}; ++ ++struct mtrr_ops *mtrr_if = &generic_mtrr_ops; ++unsigned int num_var_ranges; ++unsigned int *usage_table; ++ ++static void __init set_num_var_ranges(void) ++{ ++ struct xen_platform_op op; ++ ++ for (num_var_ranges = 0; ; num_var_ranges++) { ++ op.cmd = XENPF_read_memtype; ++ op.u.read_memtype.reg = num_var_ranges; ++ if (HYPERVISOR_platform_op(&op) != 0) ++ break; ++ } ++} ++ ++static void __init init_table(void) ++{ ++ int i, max; ++ ++ max = num_var_ranges; ++ if ((usage_table = kmalloc(max * sizeof *usage_table, GFP_KERNEL)) ++ == NULL) { ++ printk(KERN_ERR "mtrr: could not allocate\n"); ++ return; ++ } ++ for (i = 0; i < max; i++) ++ usage_table[i] = 0; ++} ++ ++int mtrr_add_page(unsigned long base, unsigned long size, ++ unsigned int type, char increment) ++{ ++ int error; ++ struct xen_platform_op op; ++ ++ mutex_lock(&mtrr_mutex); ++ ++ op.cmd = XENPF_add_memtype; ++ op.u.add_memtype.mfn = base; ++ op.u.add_memtype.nr_mfns = size; ++ op.u.add_memtype.type = type; ++ error = HYPERVISOR_platform_op(&op); ++ if (error) { ++ mutex_unlock(&mtrr_mutex); ++ BUG_ON(error > 0); ++ return error; ++ } ++ ++ if (increment) ++ ++usage_table[op.u.add_memtype.reg]; ++ ++ mutex_unlock(&mtrr_mutex); ++ ++ return op.u.add_memtype.reg; ++} ++ ++static int mtrr_check(unsigned long base, unsigned long size) ++{ ++ if ((base & (PAGE_SIZE - 1)) || (size & (PAGE_SIZE - 1))) { ++ printk(KERN_WARNING ++ "mtrr: size and base must be multiples of 4 kiB\n"); ++ printk(KERN_DEBUG ++ "mtrr: size: 0x%lx base: 0x%lx\n", size, base); ++ dump_stack(); ++ return -1; ++ } ++ return 0; ++} ++ ++int ++mtrr_add(unsigned long base, unsigned long size, unsigned int type, ++ char increment) ++{ ++ if (mtrr_check(base, size)) ++ return -EINVAL; ++ return mtrr_add_page(base >> PAGE_SHIFT, size >> PAGE_SHIFT, type, ++ increment); ++} ++ ++int mtrr_del_page(int reg, unsigned long base, unsigned long size) ++{ ++ unsigned i; ++ mtrr_type ltype; ++ unsigned long lbase, lsize; ++ int error = -EINVAL; ++ struct xen_platform_op op; ++ ++ mutex_lock(&mtrr_mutex); ++ ++ if (reg < 0) { ++ /* Search for existing MTRR */ ++ for (i = 0; i < num_var_ranges; ++i) { ++ mtrr_if->get(i, &lbase, &lsize, <ype); ++ if (lbase == base && lsize == size) { ++ reg = i; ++ break; ++ } ++ } ++ if (reg < 0) { ++ printk(KERN_DEBUG "mtrr: no MTRR for %lx000,%lx000 found\n", base, ++ size); ++ goto out; ++ } ++ } ++ if (usage_table[reg] < 1) { ++ printk(KERN_WARNING "mtrr: reg: %d has count=0\n", reg); ++ goto out; ++ } ++ if (--usage_table[reg] < 1) { ++ op.cmd = XENPF_del_memtype; ++ op.u.del_memtype.handle = 0; ++ op.u.del_memtype.reg = reg; ++ error = HYPERVISOR_platform_op(&op); ++ if (error) { ++ BUG_ON(error > 0); ++ goto out; ++ } ++ } ++ error = reg; ++ out: ++ mutex_unlock(&mtrr_mutex); ++ return error; ++} ++ ++int ++mtrr_del(int reg, unsigned long base, unsigned long size) ++{ ++ if (mtrr_check(base, size)) ++ return -EINVAL; ++ return mtrr_del_page(reg, base >> PAGE_SHIFT, size >> PAGE_SHIFT); ++} ++ ++EXPORT_SYMBOL(mtrr_add); ++EXPORT_SYMBOL(mtrr_del); ++ ++void __init mtrr_bp_init(void) ++{ ++} ++ ++void mtrr_ap_init(void) ++{ ++} ++ ++static int __init mtrr_init(void) ++{ ++ struct cpuinfo_x86 *c = &boot_cpu_data; ++ ++ if (!is_initial_xendomain()) ++ return -ENODEV; ++ ++ if ((!cpu_has(c, X86_FEATURE_MTRR)) && ++ (!cpu_has(c, X86_FEATURE_K6_MTRR)) && ++ (!cpu_has(c, X86_FEATURE_CYRIX_ARR)) && ++ (!cpu_has(c, X86_FEATURE_CENTAUR_MCR))) ++ return -ENODEV; ++ ++ set_num_var_ranges(); ++ init_table(); ++ ++ return 0; ++} ++ ++subsys_initcall(mtrr_init); +diff -Naur ubuntu-hardy/arch/x86/kernel/cpu/mtrr/Makefile ubuntu-hardy-xen/arch/x86/kernel/cpu/mtrr/Makefile +--- ubuntu-hardy/arch/x86/kernel/cpu/mtrr/Makefile 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/cpu/mtrr/Makefile 2008-04-09 13:17:22.000000000 +0100 +@@ -1,3 +1,4 @@ + obj-y := main.o if.o generic.o state.o + obj-$(CONFIG_X86_32) += amd.o cyrix.o centaur.o + ++obj-$(CONFIG_XEN) := main.o if.o +diff -Naur ubuntu-hardy/arch/x86/kernel/crash.c ubuntu-hardy-xen/arch/x86/kernel/crash.c +--- ubuntu-hardy/arch/x86/kernel/crash.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/crash.c 2008-04-09 13:17:22.000000000 +0100 +@@ -32,6 +32,7 @@ + #include + #endif + ++#ifndef CONFIG_XEN + /* This keeps a track of which one is crashing cpu. */ + static int crashing_cpu; + +@@ -120,6 +121,7 @@ + /* There are no cpus to shootdown */ + } + #endif ++#endif /* CONFIG_XEN */ + + void machine_crash_shutdown(struct pt_regs *regs) + { +@@ -134,6 +136,7 @@ + /* The kernel is broken so disable interrupts */ + local_irq_disable(); + ++#ifndef CONFIG_XEN + /* Make a note of crashing cpu. Will be used in NMI callback.*/ + crashing_cpu = safe_smp_processor_id(); + nmi_shootdown_cpus(); +@@ -141,6 +144,7 @@ + #if defined(CONFIG_X86_IO_APIC) + disable_IO_APIC(); + #endif ++#endif /* CONFIG_XEN */ + #ifdef CONFIG_HPET_TIMER + hpet_disable(); + #endif +diff -Naur ubuntu-hardy/arch/x86/kernel/e820_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/e820_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/e820_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/e820_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,1044 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_EFI ++int efi_enabled = 0; ++EXPORT_SYMBOL(efi_enabled); ++#endif ++ ++struct e820map e820; ++struct change_member { ++ struct e820entry *pbios; /* pointer to original bios entry */ ++ unsigned long long addr; /* address for this change point */ ++}; ++static struct change_member change_point_list[2*E820MAX] __initdata; ++static struct change_member *change_point[2*E820MAX] __initdata; ++static struct e820entry *overlap_list[E820MAX] __initdata; ++static struct e820entry new_bios[E820MAX] __initdata; ++/* For PCI or other memory-mapped resources */ ++unsigned long pci_mem_start = 0x10000000; ++#ifdef CONFIG_PCI ++EXPORT_SYMBOL(pci_mem_start); ++#endif ++extern int user_defined_memmap; ++struct resource data_resource = { ++ .name = "Kernel data", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_MEM ++}; ++ ++struct resource code_resource = { ++ .name = "Kernel code", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_MEM ++}; ++ ++struct resource bss_resource = { ++ .name = "Kernel bss", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_MEM ++}; ++ ++static struct resource system_rom_resource = { ++ .name = "System ROM", ++ .start = 0xf0000, ++ .end = 0xfffff, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}; ++ ++static struct resource extension_rom_resource = { ++ .name = "Extension ROM", ++ .start = 0xe0000, ++ .end = 0xeffff, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}; ++ ++static struct resource adapter_rom_resources[] = { { ++ .name = "Adapter ROM", ++ .start = 0xc8000, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}, { ++ .name = "Adapter ROM", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}, { ++ .name = "Adapter ROM", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}, { ++ .name = "Adapter ROM", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}, { ++ .name = "Adapter ROM", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}, { ++ .name = "Adapter ROM", ++ .start = 0, ++ .end = 0, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++} }; ++ ++static struct resource video_rom_resource = { ++ .name = "Video ROM", ++ .start = 0xc0000, ++ .end = 0xc7fff, ++ .flags = IORESOURCE_BUSY | IORESOURCE_READONLY | IORESOURCE_MEM ++}; ++ ++static struct resource video_ram_resource = { ++ .name = "Video RAM area", ++ .start = 0xa0000, ++ .end = 0xbffff, ++ .flags = IORESOURCE_BUSY | IORESOURCE_MEM ++}; ++ ++static struct resource standard_io_resources[] = { { ++ .name = "dma1", ++ .start = 0x0000, ++ .end = 0x001f, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "pic1", ++ .start = 0x0020, ++ .end = 0x0021, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "timer0", ++ .start = 0x0040, ++ .end = 0x0043, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "timer1", ++ .start = 0x0050, ++ .end = 0x0053, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "keyboard", ++ .start = 0x0060, ++ .end = 0x006f, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "dma page reg", ++ .start = 0x0080, ++ .end = 0x008f, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "pic2", ++ .start = 0x00a0, ++ .end = 0x00a1, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "dma2", ++ .start = 0x00c0, ++ .end = 0x00df, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++}, { ++ .name = "fpu", ++ .start = 0x00f0, ++ .end = 0x00ff, ++ .flags = IORESOURCE_BUSY | IORESOURCE_IO ++} }; ++ ++#define ROMSIGNATURE 0xaa55 ++ ++static int __init romsignature(const unsigned char *rom) ++{ ++ const unsigned short * const ptr = (const unsigned short *)rom; ++ unsigned short sig; ++ ++ return probe_kernel_address(ptr, sig) == 0 && sig == ROMSIGNATURE; ++} ++ ++static int __init romchecksum(const unsigned char *rom, unsigned long length) ++{ ++ unsigned char sum, c; ++ ++ for (sum = 0; length && probe_kernel_address(rom++, c) == 0; length--) ++ sum += c; ++ return !length && !sum; ++} ++ ++static void __init probe_roms(void) ++{ ++ const unsigned char *rom; ++ unsigned long start, length, upper; ++ unsigned char c; ++ int i; ++ ++#ifdef CONFIG_XEN ++ /* Nothing to do if not running in dom0. */ ++ if (!is_initial_xendomain()) ++ return; ++#endif ++ ++ /* video rom */ ++ upper = adapter_rom_resources[0].start; ++ for (start = video_rom_resource.start; start < upper; start += 2048) { ++ rom = isa_bus_to_virt(start); ++ if (!romsignature(rom)) ++ continue; ++ ++ video_rom_resource.start = start; ++ ++ if (probe_kernel_address(rom + 2, c) != 0) ++ continue; ++ ++ /* 0 < length <= 0x7f * 512, historically */ ++ length = c * 512; ++ ++ /* if checksum okay, trust length byte */ ++ if (length && romchecksum(rom, length)) ++ video_rom_resource.end = start + length - 1; ++ ++ request_resource(&iomem_resource, &video_rom_resource); ++ break; ++ } ++ ++ start = (video_rom_resource.end + 1 + 2047) & ~2047UL; ++ if (start < upper) ++ start = upper; ++ ++ /* system rom */ ++ request_resource(&iomem_resource, &system_rom_resource); ++ upper = system_rom_resource.start; ++ ++ /* check for extension rom (ignore length byte!) */ ++ rom = isa_bus_to_virt((unsigned long)extension_rom_resource.start); ++ if (romsignature(rom)) { ++ length = extension_rom_resource.end - extension_rom_resource.start + 1; ++ if (romchecksum(rom, length)) { ++ request_resource(&iomem_resource, &extension_rom_resource); ++ upper = extension_rom_resource.start; ++ } ++ } ++ ++ /* check for adapter roms on 2k boundaries */ ++ for (i = 0; i < ARRAY_SIZE(adapter_rom_resources) && start < upper; start += 2048) { ++ rom = isa_bus_to_virt(start); ++ if (!romsignature(rom)) ++ continue; ++ ++ if (probe_kernel_address(rom + 2, c) != 0) ++ continue; ++ ++ /* 0 < length <= 0x7f * 512, historically */ ++ length = c * 512; ++ ++ /* but accept any length that fits if checksum okay */ ++ if (!length || start + length > upper || !romchecksum(rom, length)) ++ continue; ++ ++ adapter_rom_resources[i].start = start; ++ adapter_rom_resources[i].end = start + length - 1; ++ request_resource(&iomem_resource, &adapter_rom_resources[i]); ++ ++ start = adapter_rom_resources[i++].end & ~2047UL; ++ } ++} ++ ++#ifdef CONFIG_XEN ++static struct e820map machine_e820; ++#define e820 machine_e820 ++#endif ++ ++/* ++ * Request address space for all standard RAM and ROM resources ++ * and also for regions reported as reserved by the e820. ++ */ ++static void __init ++legacy_init_iomem_resources(struct resource *code_resource, ++ struct resource *data_resource, ++ struct resource *bss_resource) ++{ ++ int i; ++ ++ probe_roms(); ++ for (i = 0; i < e820.nr_map; i++) { ++ struct resource *res; ++#ifndef CONFIG_RESOURCES_64BIT ++ if (e820.map[i].addr + e820.map[i].size > 0x100000000ULL) ++ continue; ++#endif ++ res = kzalloc(sizeof(struct resource), GFP_ATOMIC); ++ switch (e820.map[i].type) { ++ case E820_RAM: res->name = "System RAM"; break; ++ case E820_ACPI: res->name = "ACPI Tables"; break; ++ case E820_NVS: res->name = "ACPI Non-volatile Storage"; break; ++ default: res->name = "reserved"; ++ } ++ res->start = e820.map[i].addr; ++ res->end = res->start + e820.map[i].size - 1; ++ res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; ++ if (request_resource(&iomem_resource, res)) { ++ kfree(res); ++ continue; ++ } ++ if (e820.map[i].type == E820_RAM) { ++ /* ++ * We don't know which RAM region contains kernel data, ++ * so we try it repeatedly and let the resource manager ++ * test it. ++ */ ++#ifndef CONFIG_XEN ++ request_resource(res, code_resource); ++ request_resource(res, data_resource); ++ request_resource(res, bss_resource); ++#endif ++#ifdef CONFIG_KEXEC ++ if (crashk_res.start != crashk_res.end) ++ request_resource(res, &crashk_res); ++#ifdef CONFIG_XEN ++ xen_machine_kexec_register_resources(res); ++#endif ++#endif ++ } ++ } ++} ++ ++#undef e820 ++ ++/* ++ * Request address space for all standard resources ++ * ++ * This is called just before pcibios_init(), which is also a ++ * subsys_initcall, but is linked in later (in arch/i386/pci/common.c). ++ */ ++static int __init request_standard_resources(void) ++{ ++ int i; ++ ++ /* Nothing to do if not running in dom0. */ ++ if (!is_initial_xendomain()) ++ return 0; ++ ++ printk("Setting up standard PCI resources\n"); ++ if (efi_enabled) ++ efi_initialize_iomem_resources(&code_resource, ++ &data_resource, &bss_resource); ++ else ++ legacy_init_iomem_resources(&code_resource, ++ &data_resource, &bss_resource); ++ ++ /* EFI systems may still have VGA */ ++ request_resource(&iomem_resource, &video_ram_resource); ++ ++ /* request I/O space for devices used on all i[345]86 PCs */ ++ for (i = 0; i < ARRAY_SIZE(standard_io_resources); i++) ++ request_resource(&ioport_resource, &standard_io_resources[i]); ++ return 0; ++} ++ ++subsys_initcall(request_standard_resources); ++ ++#if defined(CONFIG_PM) && defined(CONFIG_HIBERNATION) ++/** ++ * e820_mark_nosave_regions - Find the ranges of physical addresses that do not ++ * correspond to e820 RAM areas and mark the corresponding pages as nosave for ++ * hibernation. ++ * ++ * This function requires the e820 map to be sorted and without any ++ * overlapping entries and assumes the first e820 area to be RAM. ++ */ ++void __init e820_mark_nosave_regions(void) ++{ ++ int i; ++ unsigned long pfn; ++ ++ pfn = PFN_DOWN(e820.map[0].addr + e820.map[0].size); ++ for (i = 1; i < e820.nr_map; i++) { ++ struct e820entry *ei = &e820.map[i]; ++ ++ if (pfn < PFN_UP(ei->addr)) ++ register_nosave_region(pfn, PFN_UP(ei->addr)); ++ ++ pfn = PFN_DOWN(ei->addr + ei->size); ++ if (ei->type != E820_RAM) ++ register_nosave_region(PFN_UP(ei->addr), pfn); ++ ++ if (pfn >= max_low_pfn) ++ break; ++ } ++} ++#endif ++ ++void __init add_memory_region(unsigned long long start, ++ unsigned long long size, int type) ++{ ++ int x; ++ ++ if (!efi_enabled) { ++ x = e820.nr_map; ++ ++ if (x == E820MAX) { ++ printk(KERN_ERR "Ooops! Too many entries in the memory map!\n"); ++ return; ++ } ++ ++ e820.map[x].addr = start; ++ e820.map[x].size = size; ++ e820.map[x].type = type; ++ e820.nr_map++; ++ } ++} /* add_memory_region */ ++ ++/* ++ * Sanitize the BIOS e820 map. ++ * ++ * Some e820 responses include overlapping entries. The following ++ * replaces the original e820 map with a new one, removing overlaps. ++ * ++ */ ++int __init sanitize_e820_map(struct e820entry * biosmap, char * pnr_map) ++{ ++ struct change_member *change_tmp; ++ unsigned long current_type, last_type; ++ unsigned long long last_addr; ++ int chgidx, still_changing; ++ int overlap_entries; ++ int new_bios_entry; ++ int old_nr, new_nr, chg_nr; ++ int i; ++ ++ /* ++ Visually we're performing the following (1,2,3,4 = memory types)... ++ ++ Sample memory map (w/overlaps): ++ ____22__________________ ++ ______________________4_ ++ ____1111________________ ++ _44_____________________ ++ 11111111________________ ++ ____________________33__ ++ ___________44___________ ++ __________33333_________ ++ ______________22________ ++ ___________________2222_ ++ _________111111111______ ++ _____________________11_ ++ _________________4______ ++ ++ Sanitized equivalent (no overlap): ++ 1_______________________ ++ _44_____________________ ++ ___1____________________ ++ ____22__________________ ++ ______11________________ ++ _________1______________ ++ __________3_____________ ++ ___________44___________ ++ _____________33_________ ++ _______________2________ ++ ________________1_______ ++ _________________4______ ++ ___________________2____ ++ ____________________33__ ++ ______________________4_ ++ */ ++ /* if there's only one memory region, don't bother */ ++ if (*pnr_map < 2) { ++ return -1; ++ } ++ ++ old_nr = *pnr_map; ++ ++ /* bail out if we find any unreasonable addresses in bios map */ ++ for (i=0; iaddr = biosmap[i].addr; ++ change_point[chgidx++]->pbios = &biosmap[i]; ++ change_point[chgidx]->addr = biosmap[i].addr + biosmap[i].size; ++ change_point[chgidx++]->pbios = &biosmap[i]; ++ } ++ } ++ chg_nr = chgidx; /* true number of change-points */ ++ ++ /* sort change-point list by memory addresses (low -> high) */ ++ still_changing = 1; ++ while (still_changing) { ++ still_changing = 0; ++ for (i=1; i < chg_nr; i++) { ++ /* if > , swap */ ++ /* or, if current= & last=, swap */ ++ if ((change_point[i]->addr < change_point[i-1]->addr) || ++ ((change_point[i]->addr == change_point[i-1]->addr) && ++ (change_point[i]->addr == change_point[i]->pbios->addr) && ++ (change_point[i-1]->addr != change_point[i-1]->pbios->addr)) ++ ) ++ { ++ change_tmp = change_point[i]; ++ change_point[i] = change_point[i-1]; ++ change_point[i-1] = change_tmp; ++ still_changing=1; ++ } ++ } ++ } ++ ++ /* create a new bios memory map, removing overlaps */ ++ overlap_entries=0; /* number of entries in the overlap table */ ++ new_bios_entry=0; /* index for creating new bios map entries */ ++ last_type = 0; /* start with undefined memory type */ ++ last_addr = 0; /* start with 0 as last starting address */ ++ /* loop through change-points, determining affect on the new bios map */ ++ for (chgidx=0; chgidx < chg_nr; chgidx++) ++ { ++ /* keep track of all overlapping bios entries */ ++ if (change_point[chgidx]->addr == change_point[chgidx]->pbios->addr) ++ { ++ /* add map entry to overlap list (> 1 entry implies an overlap) */ ++ overlap_list[overlap_entries++]=change_point[chgidx]->pbios; ++ } ++ else ++ { ++ /* remove entry from list (order independent, so swap with last) */ ++ for (i=0; ipbios) ++ overlap_list[i] = overlap_list[overlap_entries-1]; ++ } ++ overlap_entries--; ++ } ++ /* if there are overlapping entries, decide which "type" to use */ ++ /* (larger value takes precedence -- 1=usable, 2,3,4,4+=unusable) */ ++ current_type = 0; ++ for (i=0; itype > current_type) ++ current_type = overlap_list[i]->type; ++ /* continue building up new bios map based on this information */ ++ if (current_type != last_type) { ++ if (last_type != 0) { ++ new_bios[new_bios_entry].size = ++ change_point[chgidx]->addr - last_addr; ++ /* move forward only if the new size was non-zero */ ++ if (new_bios[new_bios_entry].size != 0) ++ if (++new_bios_entry >= E820MAX) ++ break; /* no more space left for new bios entries */ ++ } ++ if (current_type != 0) { ++ new_bios[new_bios_entry].addr = change_point[chgidx]->addr; ++ new_bios[new_bios_entry].type = current_type; ++ last_addr=change_point[chgidx]->addr; ++ } ++ last_type = current_type; ++ } ++ } ++ new_nr = new_bios_entry; /* retain count for new bios entries */ ++ ++ /* copy new bios mapping into original location */ ++ memcpy(biosmap, new_bios, new_nr*sizeof(struct e820entry)); ++ *pnr_map = new_nr; ++ ++ return 0; ++} ++ ++/* ++ * Copy the BIOS e820 map into a safe place. ++ * ++ * Sanity-check it while we're at it.. ++ * ++ * If we're lucky and live on a modern system, the setup code ++ * will have given us a memory map that we can use to properly ++ * set up memory. If we aren't, we'll fake a memory map. ++ * ++ * We check to see that the memory map contains at least 2 elements ++ * before we'll use it, because the detection code in setup.S may ++ * not be perfect and most every PC known to man has two memory ++ * regions: one from 0 to 640k, and one from 1mb up. (The IBM ++ * thinkpad 560x, for example, does not cooperate with the memory ++ * detection code.) ++ */ ++int __init copy_e820_map(struct e820entry * biosmap, int nr_map) ++{ ++#ifndef CONFIG_XEN ++ /* Only one memory region (or negative)? Ignore it */ ++ if (nr_map < 2) ++ return -1; ++#else ++ BUG_ON(nr_map < 1); ++#endif ++ ++ do { ++ unsigned long long start = biosmap->addr; ++ unsigned long long size = biosmap->size; ++ unsigned long long end = start + size; ++ unsigned long type = biosmap->type; ++ ++ /* Overflow in 64 bits? Ignore the memory map. */ ++ if (start > end) ++ return -1; ++ ++#ifndef CONFIG_XEN ++ /* ++ * Some BIOSes claim RAM in the 640k - 1M region. ++ * Not right. Fix it up. ++ */ ++ if (type == E820_RAM) { ++ if (start < 0x100000ULL && end > 0xA0000ULL) { ++ if (start < 0xA0000ULL) ++ add_memory_region(start, 0xA0000ULL-start, type); ++ if (end <= 0x100000ULL) ++ continue; ++ start = 0x100000ULL; ++ size = end - start; ++ } ++ } ++#endif ++ add_memory_region(start, size, type); ++ } while (biosmap++,--nr_map); ++ return 0; ++} ++ ++/* ++ * Callback for efi_memory_walk. ++ */ ++static int __init ++efi_find_max_pfn(unsigned long start, unsigned long end, void *arg) ++{ ++ unsigned long *max_pfn = arg, pfn; ++ ++ if (start < end) { ++ pfn = PFN_UP(end -1); ++ if (pfn > *max_pfn) ++ *max_pfn = pfn; ++ } ++ return 0; ++} ++ ++static int __init ++efi_memory_present_wrapper(unsigned long start, unsigned long end, void *arg) ++{ ++ memory_present(0, PFN_UP(start), PFN_DOWN(end)); ++ return 0; ++} ++ ++/* ++ * Find the highest page frame number we have available ++ */ ++void __init find_max_pfn(void) ++{ ++ int i; ++ ++ max_pfn = 0; ++ if (efi_enabled) { ++ efi_memmap_walk(efi_find_max_pfn, &max_pfn); ++ efi_memmap_walk(efi_memory_present_wrapper, NULL); ++ return; ++ } ++ ++ for (i = 0; i < e820.nr_map; i++) { ++ unsigned long start, end; ++ /* RAM? */ ++ if (e820.map[i].type != E820_RAM) ++ continue; ++ start = PFN_UP(e820.map[i].addr); ++ end = PFN_DOWN(e820.map[i].addr + e820.map[i].size); ++ if (start >= end) ++ continue; ++ if (end > max_pfn) ++ max_pfn = end; ++ memory_present(0, start, end); ++ } ++} ++ ++/* ++ * Free all available memory for boot time allocation. Used ++ * as a callback function by efi_memory_walk() ++ */ ++ ++static int __init ++free_available_memory(unsigned long start, unsigned long end, void *arg) ++{ ++ /* check max_low_pfn */ ++ if (start >= (max_low_pfn << PAGE_SHIFT)) ++ return 0; ++ if (end >= (max_low_pfn << PAGE_SHIFT)) ++ end = max_low_pfn << PAGE_SHIFT; ++ if (start < end) ++ free_bootmem(start, end - start); ++ ++ return 0; ++} ++/* ++ * Register fully available low RAM pages with the bootmem allocator. ++ */ ++void __init register_bootmem_low_pages(unsigned long max_low_pfn) ++{ ++ int i; ++ ++ if (efi_enabled) { ++ efi_memmap_walk(free_available_memory, NULL); ++ return; ++ } ++ for (i = 0; i < e820.nr_map; i++) { ++ unsigned long curr_pfn, last_pfn, size; ++ /* ++ * Reserve usable low memory ++ */ ++ if (e820.map[i].type != E820_RAM) ++ continue; ++ /* ++ * We are rounding up the start address of usable memory: ++ */ ++ curr_pfn = PFN_UP(e820.map[i].addr); ++ if (curr_pfn >= max_low_pfn) ++ continue; ++ /* ++ * ... and at the end of the usable range downwards: ++ */ ++ last_pfn = PFN_DOWN(e820.map[i].addr + e820.map[i].size); ++ ++#ifdef CONFIG_XEN ++ /* ++ * Truncate to the number of actual pages currently ++ * present. ++ */ ++ if (last_pfn > xen_start_info->nr_pages) ++ last_pfn = xen_start_info->nr_pages; ++#endif ++ ++ if (last_pfn > max_low_pfn) ++ last_pfn = max_low_pfn; ++ ++ /* ++ * .. finally, did all the rounding and playing ++ * around just make the area go away? ++ */ ++ if (last_pfn <= curr_pfn) ++ continue; ++ ++ size = last_pfn - curr_pfn; ++ free_bootmem(PFN_PHYS(curr_pfn), PFN_PHYS(size)); ++ } ++} ++ ++void __init e820_register_memory(void) ++{ ++ unsigned long gapstart, gapsize, round; ++ unsigned long long last; ++ int i; ++ ++#ifdef CONFIG_XEN ++ if (is_initial_xendomain()) { ++ struct xen_memory_map memmap; ++ ++ memmap.nr_entries = E820MAX; ++ set_xen_guest_handle(memmap.buffer, machine_e820.map); ++ ++ if (HYPERVISOR_memory_op(XENMEM_machine_memory_map, &memmap)) ++ BUG(); ++ machine_e820.nr_map = memmap.nr_entries; ++ } ++ else ++ machine_e820 = e820; ++#define e820 machine_e820 ++#endif ++ ++ /* ++ * Search for the biggest gap in the low 32 bits of the e820 ++ * memory space. ++ */ ++ last = 0x100000000ull; ++ gapstart = 0x10000000; ++ gapsize = 0x400000; ++ i = e820.nr_map; ++ while (--i >= 0) { ++ unsigned long long start = e820.map[i].addr; ++ unsigned long long end = start + e820.map[i].size; ++ ++ /* ++ * Since "last" is at most 4GB, we know we'll ++ * fit in 32 bits if this condition is true ++ */ ++ if (last > end) { ++ unsigned long gap = last - end; ++ ++ if (gap > gapsize) { ++ gapsize = gap; ++ gapstart = end; ++ } ++ } ++ if (start < last) ++ last = start; ++ } ++ ++ /* ++ * See how much we want to round up: start off with ++ * rounding to the next 1MB area. ++ */ ++ round = 0x100000; ++ while ((gapsize >> 4) > round) ++ round += round; ++ /* Fun with two's complement */ ++ pci_mem_start = (gapstart + round) & -round; ++ ++ printk("Allocating PCI resources starting at %08lx (gap: %08lx:%08lx)\n", ++ pci_mem_start, gapstart, gapsize); ++} ++ ++#undef e820 ++ ++void __init print_memory_map(char *who) ++{ ++ int i; ++ ++ for (i = 0; i < e820.nr_map; i++) { ++ printk(" %s: %016Lx - %016Lx ", who, ++ e820.map[i].addr, ++ e820.map[i].addr + e820.map[i].size); ++ switch (e820.map[i].type) { ++ case E820_RAM: printk("(usable)\n"); ++ break; ++ case E820_RESERVED: ++ printk("(reserved)\n"); ++ break; ++ case E820_ACPI: ++ printk("(ACPI data)\n"); ++ break; ++ case E820_NVS: ++ printk("(ACPI NVS)\n"); ++ break; ++ default: printk("type %u\n", e820.map[i].type); ++ break; ++ } ++ } ++} ++ ++static __init __always_inline void efi_limit_regions(unsigned long long size) ++{ ++ unsigned long long current_addr = 0; ++ efi_memory_desc_t *md, *next_md; ++ void *p, *p1; ++ int i, j; ++ ++ j = 0; ++ p1 = memmap.map; ++ for (p = p1, i = 0; p < memmap.map_end; p += memmap.desc_size, i++) { ++ md = p; ++ next_md = p1; ++ current_addr = md->phys_addr + ++ PFN_PHYS(md->num_pages); ++ if (is_available_memory(md)) { ++ if (md->phys_addr >= size) continue; ++ memcpy(next_md, md, memmap.desc_size); ++ if (current_addr >= size) { ++ next_md->num_pages -= ++ PFN_UP(current_addr-size); ++ } ++ p1 += memmap.desc_size; ++ next_md = p1; ++ j++; ++ } else if ((md->attribute & EFI_MEMORY_RUNTIME) == ++ EFI_MEMORY_RUNTIME) { ++ /* In order to make runtime services ++ * available we have to include runtime ++ * memory regions in memory map */ ++ memcpy(next_md, md, memmap.desc_size); ++ p1 += memmap.desc_size; ++ next_md = p1; ++ j++; ++ } ++ } ++ memmap.nr_map = j; ++ memmap.map_end = memmap.map + ++ (memmap.nr_map * memmap.desc_size); ++} ++ ++void __init limit_regions(unsigned long long size) ++{ ++ unsigned long long current_addr = 0; ++ int i; ++ ++ print_memory_map("limit_regions start"); ++ if (efi_enabled) { ++ efi_limit_regions(size); ++ return; ++ } ++ for (i = 0; i < e820.nr_map; i++) { ++ current_addr = e820.map[i].addr + e820.map[i].size; ++ if (current_addr < size) ++ continue; ++ ++ if (e820.map[i].type != E820_RAM) ++ continue; ++ ++ if (e820.map[i].addr >= size) { ++ /* ++ * This region starts past the end of the ++ * requested size, skip it completely. ++ */ ++ e820.nr_map = i; ++ } else { ++ e820.nr_map = i + 1; ++ e820.map[i].size -= current_addr - size; ++ } ++ print_memory_map("limit_regions endfor"); ++ return; ++ } ++#ifdef CONFIG_XEN ++ if (current_addr < size) { ++ /* ++ * The e820 map finished before our requested size so ++ * extend the final entry to the requested address. ++ */ ++ --i; ++ if (e820.map[i].type == E820_RAM) ++ e820.map[i].size -= current_addr - size; ++ else ++ add_memory_region(current_addr, size - current_addr, E820_RAM); ++ } ++#endif ++ print_memory_map("limit_regions endfunc"); ++} ++ ++/* ++ * This function checks if any part of the range is mapped ++ * with type. ++ */ ++int ++e820_any_mapped(u64 start, u64 end, unsigned type) ++{ ++ int i; ++ ++#ifndef CONFIG_XEN ++ for (i = 0; i < e820.nr_map; i++) { ++ const struct e820entry *ei = &e820.map[i]; ++#else ++ if (!is_initial_xendomain()) ++ return 0; ++ for (i = 0; i < machine_e820.nr_map; ++i) { ++ const struct e820entry *ei = &machine_e820.map[i]; ++#endif ++ ++ if (type && ei->type != type) ++ continue; ++ if (ei->addr >= end || ei->addr + ei->size <= start) ++ continue; ++ return 1; ++ } ++ return 0; ++} ++EXPORT_SYMBOL_GPL(e820_any_mapped); ++ ++ /* ++ * This function checks if the entire range is mapped with type. ++ * ++ * Note: this function only works correct if the e820 table is sorted and ++ * not-overlapping, which is the case ++ */ ++int __init ++e820_all_mapped(unsigned long s, unsigned long e, unsigned type) ++{ ++ u64 start = s; ++ u64 end = e; ++ int i; ++ ++#ifndef CONFIG_XEN ++ for (i = 0; i < e820.nr_map; i++) { ++ struct e820entry *ei = &e820.map[i]; ++#else ++ if (!is_initial_xendomain()) ++ return 0; ++ for (i = 0; i < machine_e820.nr_map; ++i) { ++ const struct e820entry *ei = &machine_e820.map[i]; ++#endif ++ ++ if (type && ei->type != type) ++ continue; ++ /* is the region (part) in overlap with the current region ?*/ ++ if (ei->addr >= end || ei->addr + ei->size <= start) ++ continue; ++ /* if the region is at the beginning of we move ++ * start to the end of the region since it's ok until there ++ */ ++ if (ei->addr <= start) ++ start = ei->addr + ei->size; ++ /* if start is now at or beyond end, we're done, full ++ * coverage */ ++ if (start >= end) ++ return 1; /* we're done */ ++ } ++ return 0; ++} ++ ++static int __init parse_memmap(char *arg) ++{ ++ if (!arg) ++ return -EINVAL; ++ ++ if (strcmp(arg, "exactmap") == 0) { ++#ifdef CONFIG_CRASH_DUMP ++ /* If we are doing a crash dump, we ++ * still need to know the real mem ++ * size before original memory map is ++ * reset. ++ */ ++ find_max_pfn(); ++ saved_max_pfn = max_pfn; ++#endif ++ e820.nr_map = 0; ++ user_defined_memmap = 1; ++ } else { ++ /* If the user specifies memory size, we ++ * limit the BIOS-provided memory map to ++ * that size. exactmap can be used to specify ++ * the exact map. mem=number can be used to ++ * trim the existing memory map. ++ */ ++ unsigned long long start_at, mem_size; ++ ++ mem_size = memparse(arg, &arg); ++ if (*arg == '@') { ++ start_at = memparse(arg+1, &arg); ++ add_memory_region(start_at, mem_size, E820_RAM); ++ } else if (*arg == '#') { ++ start_at = memparse(arg+1, &arg); ++ add_memory_region(start_at, mem_size, E820_ACPI); ++ } else if (*arg == '$') { ++ start_at = memparse(arg+1, &arg); ++ add_memory_region(start_at, mem_size, E820_RESERVED); ++ } else { ++ limit_regions(mem_size); ++ user_defined_memmap = 1; ++ } ++ } ++ return 0; ++} ++early_param("memmap", parse_memmap); +diff -Naur ubuntu-hardy/arch/x86/kernel/e820_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/e820_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/e820_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/e820_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,850 @@ ++/* ++ * Handle the memory map. ++ * The functions here do the job until bootmem takes over. ++ * ++ * Getting sanitize_e820_map() in sync with i386 version by applying change: ++ * - Provisions for empty E820 memory regions (reported by certain BIOSes). ++ * Alex Achenbach , December 2002. ++ * Venkatesh Pallipadi ++ * ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct e820map e820 __initdata; ++#ifdef CONFIG_XEN ++struct e820map machine_e820; ++#endif ++ ++/* ++ * PFN of last memory page. ++ */ ++unsigned long end_pfn; ++EXPORT_SYMBOL(end_pfn); ++ ++/* ++ * end_pfn only includes RAM, while end_pfn_map includes all e820 entries. ++ * The direct mapping extends to end_pfn_map, so that we can directly access ++ * apertures, ACPI and other tables without having to play with fixmaps. ++ */ ++unsigned long end_pfn_map; ++ ++/* ++ * Last pfn which the user wants to use. ++ */ ++static unsigned long __initdata end_user_pfn = MAXMEM>>PAGE_SHIFT; ++ ++extern struct resource code_resource, data_resource, bss_resource; ++ ++/* Check for some hardcoded bad areas that early boot is not allowed to touch */ ++static inline int bad_addr(unsigned long *addrp, unsigned long size) ++{ ++ unsigned long addr = *addrp, last = addr + size; ++ ++#ifndef CONFIG_XEN ++ /* various gunk below that needed for SMP startup */ ++ if (addr < 0x8000) { ++ *addrp = PAGE_ALIGN(0x8000); ++ return 1; ++ } ++ ++ /* direct mapping tables of the kernel */ ++ if (last >= table_start<= ramdisk_image && addr < ramdisk_end) { ++ *addrp = PAGE_ALIGN(ramdisk_end); ++ return 1; ++ } ++ } ++#endif ++ /* kernel code */ ++ if (last >= __pa_symbol(&_text) && addr < __pa_symbol(&_end)) { ++ *addrp = PAGE_ALIGN(__pa_symbol(&_end)); ++ return 1; ++ } ++ ++ if (last >= ebda_addr && addr < ebda_addr + ebda_size) { ++ *addrp = PAGE_ALIGN(ebda_addr + ebda_size); ++ return 1; ++ } ++ ++#ifdef CONFIG_NUMA ++ /* NUMA memory to node map */ ++ if (last >= nodemap_addr && addr < nodemap_addr + nodemap_size) { ++ *addrp = nodemap_addr + nodemap_size; ++ return 1; ++ } ++#endif ++ /* XXX ramdisk image here? */ ++#else ++ if (last < (table_end< is mapped ++ * with type. ++ */ ++int e820_any_mapped(unsigned long start, unsigned long end, unsigned type) ++{ ++ int i; ++ ++#ifndef CONFIG_XEN ++ for (i = 0; i < e820.nr_map; i++) { ++ struct e820entry *ei = &e820.map[i]; ++#else ++ extern struct e820map machine_e820; ++ ++ if (!is_initial_xendomain()) ++ return 0; ++ for (i = 0; i < machine_e820.nr_map; i++) { ++ const struct e820entry *ei = &machine_e820.map[i]; ++#endif ++ ++ if (type && ei->type != type) ++ continue; ++ if (ei->addr >= end || ei->addr + ei->size <= start) ++ continue; ++ return 1; ++ } ++ return 0; ++} ++EXPORT_SYMBOL_GPL(e820_any_mapped); ++ ++/* ++ * This function checks if the entire range is mapped with type. ++ * ++ * Note: this function only works correct if the e820 table is sorted and ++ * not-overlapping, which is the case ++ */ ++int __init e820_all_mapped(unsigned long start, unsigned long end, unsigned type) ++{ ++ int i; ++ ++#ifndef CONFIG_XEN ++ for (i = 0; i < e820.nr_map; i++) { ++ struct e820entry *ei = &e820.map[i]; ++#else ++ if (!is_initial_xendomain()) ++ return 0; ++ for (i = 0; i < machine_e820.nr_map; i++) { ++ const struct e820entry *ei = &machine_e820.map[i]; ++#endif ++ ++ if (type && ei->type != type) ++ continue; ++ /* is the region (part) in overlap with the current region ?*/ ++ if (ei->addr >= end || ei->addr + ei->size <= start) ++ continue; ++ ++ /* if the region is at the beginning of we move ++ * start to the end of the region since it's ok until there ++ */ ++ if (ei->addr <= start) ++ start = ei->addr + ei->size; ++ /* if start is now at or beyond end, we're done, full coverage */ ++ if (start >= end) ++ return 1; /* we're done */ ++ } ++ return 0; ++} ++ ++/* ++ * Find a free area in a specific range. ++ */ ++unsigned long __init find_e820_area(unsigned long start, unsigned long end, unsigned size) ++{ ++ int i; ++ for (i = 0; i < e820.nr_map; i++) { ++ struct e820entry *ei = &e820.map[i]; ++ unsigned long addr = ei->addr, last; ++ if (ei->type != E820_RAM) ++ continue; ++ if (addr < start) ++ addr = start; ++ if (addr > ei->addr + ei->size) ++ continue; ++ while (bad_addr(&addr, size) && addr+size <= ei->addr+ei->size) ++ ; ++ last = PAGE_ALIGN(addr) + size; ++ if (last > ei->addr + ei->size) ++ continue; ++ if (last > end) ++ continue; ++ return addr; ++ } ++ return -1UL; ++} ++ ++/* ++ * Find the highest page frame number we have available ++ */ ++unsigned long __init e820_end_of_ram(void) ++{ ++ unsigned long end_pfn = 0; ++ end_pfn = find_max_pfn_with_active_regions(); ++ ++ if (end_pfn > end_pfn_map) ++ end_pfn_map = end_pfn; ++ if (end_pfn_map > MAXMEM>>PAGE_SHIFT) ++ end_pfn_map = MAXMEM>>PAGE_SHIFT; ++ if (end_pfn > end_user_pfn) ++ end_pfn = end_user_pfn; ++ if (end_pfn > end_pfn_map) ++ end_pfn = end_pfn_map; ++ ++ printk("end_pfn_map = %lu\n", end_pfn_map); ++ return end_pfn; ++} ++ ++/* ++ * Mark e820 reserved areas as busy for the resource manager. ++ */ ++void __init e820_reserve_resources(struct e820entry *e820, int nr_map) ++{ ++ int i; ++ for (i = 0; i < nr_map; i++) { ++ struct resource *res; ++ res = alloc_bootmem_low(sizeof(struct resource)); ++ switch (e820[i].type) { ++ case E820_RAM: res->name = "System RAM"; break; ++ case E820_ACPI: res->name = "ACPI Tables"; break; ++ case E820_NVS: res->name = "ACPI Non-volatile Storage"; break; ++ default: res->name = "reserved"; ++ } ++ res->start = e820[i].addr; ++ res->end = res->start + e820[i].size - 1; ++ res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; ++ request_resource(&iomem_resource, res); ++ if (e820[i].type == E820_RAM) { ++ /* ++ * We don't know which RAM region contains kernel data, ++ * so we try it repeatedly and let the resource manager ++ * test it. ++ */ ++#ifndef CONFIG_XEN ++ request_resource(res, &code_resource); ++ request_resource(res, &data_resource); ++ request_resource(res, &bss_resource); ++#endif ++#ifdef CONFIG_KEXEC ++ if (crashk_res.start != crashk_res.end) ++ request_resource(res, &crashk_res); ++#ifdef CONFIG_XEN ++ xen_machine_kexec_register_resources(res); ++#endif ++#endif ++ } ++ } ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * Find the ranges of physical addresses that do not correspond to ++ * e820 RAM areas and mark the corresponding pages as nosave for software ++ * suspend and suspend to RAM. ++ * ++ * This function requires the e820 map to be sorted and without any ++ * overlapping entries and assumes the first e820 area to be RAM. ++ */ ++void __init e820_mark_nosave_regions(void) ++{ ++ int i; ++ unsigned long paddr; ++ ++ paddr = round_down(e820.map[0].addr + e820.map[0].size, PAGE_SIZE); ++ for (i = 1; i < e820.nr_map; i++) { ++ struct e820entry *ei = &e820.map[i]; ++ ++ if (paddr < ei->addr) ++ register_nosave_region(PFN_DOWN(paddr), ++ PFN_UP(ei->addr)); ++ ++ paddr = round_down(ei->addr + ei->size, PAGE_SIZE); ++ if (ei->type != E820_RAM) ++ register_nosave_region(PFN_UP(ei->addr), ++ PFN_DOWN(paddr)); ++ ++ if (paddr >= (end_pfn << PAGE_SHIFT)) ++ break; ++ } ++} ++#endif ++ ++/* ++ * Finds an active region in the address range from start_pfn to end_pfn and ++ * returns its range in ei_startpfn and ei_endpfn for the e820 entry. ++ */ ++static int __init e820_find_active_region(const struct e820entry *ei, ++ unsigned long start_pfn, ++ unsigned long end_pfn, ++ unsigned long *ei_startpfn, ++ unsigned long *ei_endpfn) ++{ ++ *ei_startpfn = round_up(ei->addr, PAGE_SIZE) >> PAGE_SHIFT; ++ *ei_endpfn = round_down(ei->addr + ei->size, PAGE_SIZE) >> PAGE_SHIFT; ++ ++ /* Skip map entries smaller than a page */ ++ if (*ei_startpfn >= *ei_endpfn) ++ return 0; ++ ++ /* Check if end_pfn_map should be updated */ ++ if (ei->type != E820_RAM && *ei_endpfn > end_pfn_map) ++ end_pfn_map = *ei_endpfn; ++ ++ /* Skip if map is outside the node */ ++ if (ei->type != E820_RAM || *ei_endpfn <= start_pfn || ++ *ei_startpfn >= end_pfn) ++ return 0; ++ ++ /* Check for overlaps */ ++ if (*ei_startpfn < start_pfn) ++ *ei_startpfn = start_pfn; ++ if (*ei_endpfn > end_pfn) ++ *ei_endpfn = end_pfn; ++ ++ /* Obey end_user_pfn to save on memmap */ ++ if (*ei_startpfn >= end_user_pfn) ++ return 0; ++ if (*ei_endpfn > end_user_pfn) ++ *ei_endpfn = end_user_pfn; ++ ++ return 1; ++} ++ ++/* Walk the e820 map and register active regions within a node */ ++void __init ++e820_register_active_regions(int nid, unsigned long start_pfn, ++ unsigned long end_pfn) ++{ ++ unsigned long ei_startpfn; ++ unsigned long ei_endpfn; ++ int i; ++ ++ for (i = 0; i < e820.nr_map; i++) ++ if (e820_find_active_region(&e820.map[i], ++ start_pfn, end_pfn, ++ &ei_startpfn, &ei_endpfn)) ++ add_active_range(nid, ei_startpfn, ei_endpfn); ++} ++ ++/* ++ * Add a memory region to the kernel e820 map. ++ */ ++void __init add_memory_region(unsigned long start, unsigned long size, int type) ++{ ++ int x = e820.nr_map; ++ ++ if (x == E820MAX) { ++ printk(KERN_ERR "Ooops! Too many entries in the memory map!\n"); ++ return; ++ } ++ ++ e820.map[x].addr = start; ++ e820.map[x].size = size; ++ e820.map[x].type = type; ++ e820.nr_map++; ++} ++ ++/* ++ * Find the hole size (in bytes) in the memory range. ++ * @start: starting address of the memory range to scan ++ * @end: ending address of the memory range to scan ++ */ ++unsigned long __init e820_hole_size(unsigned long start, unsigned long end) ++{ ++ unsigned long start_pfn = start >> PAGE_SHIFT; ++ unsigned long end_pfn = end >> PAGE_SHIFT; ++ unsigned long ei_startpfn; ++ unsigned long ei_endpfn; ++ unsigned long ram = 0; ++ int i; ++ ++ for (i = 0; i < e820.nr_map; i++) { ++ if (e820_find_active_region(&e820.map[i], ++ start_pfn, end_pfn, ++ &ei_startpfn, &ei_endpfn)) ++ ram += ei_endpfn - ei_startpfn; ++ } ++ return end - start - (ram << PAGE_SHIFT); ++} ++ ++void __init e820_print_map(char *who) ++{ ++ int i; ++ ++ for (i = 0; i < e820.nr_map; i++) { ++ printk(KERN_INFO " %s: %016Lx - %016Lx ", who, ++ (unsigned long long) e820.map[i].addr, ++ (unsigned long long) (e820.map[i].addr + e820.map[i].size)); ++ switch (e820.map[i].type) { ++ case E820_RAM: printk("(usable)\n"); ++ break; ++ case E820_RESERVED: ++ printk("(reserved)\n"); ++ break; ++ case E820_ACPI: ++ printk("(ACPI data)\n"); ++ break; ++ case E820_NVS: ++ printk("(ACPI NVS)\n"); ++ break; ++ default: printk("type %u\n", e820.map[i].type); ++ break; ++ } ++ } ++} ++ ++/* ++ * Sanitize the BIOS e820 map. ++ * ++ * Some e820 responses include overlapping entries. The following ++ * replaces the original e820 map with a new one, removing overlaps. ++ * ++ */ ++static int __init sanitize_e820_map(struct e820entry * biosmap, char * pnr_map) ++{ ++ struct change_member { ++ struct e820entry *pbios; /* pointer to original bios entry */ ++ unsigned long long addr; /* address for this change point */ ++ }; ++ static struct change_member change_point_list[2*E820MAX] __initdata; ++ static struct change_member *change_point[2*E820MAX] __initdata; ++ static struct e820entry *overlap_list[E820MAX] __initdata; ++ static struct e820entry new_bios[E820MAX] __initdata; ++ struct change_member *change_tmp; ++ unsigned long current_type, last_type; ++ unsigned long long last_addr; ++ int chgidx, still_changing; ++ int overlap_entries; ++ int new_bios_entry; ++ int old_nr, new_nr, chg_nr; ++ int i; ++ ++ /* ++ Visually we're performing the following (1,2,3,4 = memory types)... ++ ++ Sample memory map (w/overlaps): ++ ____22__________________ ++ ______________________4_ ++ ____1111________________ ++ _44_____________________ ++ 11111111________________ ++ ____________________33__ ++ ___________44___________ ++ __________33333_________ ++ ______________22________ ++ ___________________2222_ ++ _________111111111______ ++ _____________________11_ ++ _________________4______ ++ ++ Sanitized equivalent (no overlap): ++ 1_______________________ ++ _44_____________________ ++ ___1____________________ ++ ____22__________________ ++ ______11________________ ++ _________1______________ ++ __________3_____________ ++ ___________44___________ ++ _____________33_________ ++ _______________2________ ++ ________________1_______ ++ _________________4______ ++ ___________________2____ ++ ____________________33__ ++ ______________________4_ ++ */ ++ ++ /* if there's only one memory region, don't bother */ ++ if (*pnr_map < 2) ++ return -1; ++ ++ old_nr = *pnr_map; ++ ++ /* bail out if we find any unreasonable addresses in bios map */ ++ for (i=0; iaddr = biosmap[i].addr; ++ change_point[chgidx++]->pbios = &biosmap[i]; ++ change_point[chgidx]->addr = biosmap[i].addr + biosmap[i].size; ++ change_point[chgidx++]->pbios = &biosmap[i]; ++ } ++ } ++ chg_nr = chgidx; ++ ++ /* sort change-point list by memory addresses (low -> high) */ ++ still_changing = 1; ++ while (still_changing) { ++ still_changing = 0; ++ for (i=1; i < chg_nr; i++) { ++ /* if > , swap */ ++ /* or, if current= & last=, swap */ ++ if ((change_point[i]->addr < change_point[i-1]->addr) || ++ ((change_point[i]->addr == change_point[i-1]->addr) && ++ (change_point[i]->addr == change_point[i]->pbios->addr) && ++ (change_point[i-1]->addr != change_point[i-1]->pbios->addr)) ++ ) ++ { ++ change_tmp = change_point[i]; ++ change_point[i] = change_point[i-1]; ++ change_point[i-1] = change_tmp; ++ still_changing=1; ++ } ++ } ++ } ++ ++ /* create a new bios memory map, removing overlaps */ ++ overlap_entries=0; /* number of entries in the overlap table */ ++ new_bios_entry=0; /* index for creating new bios map entries */ ++ last_type = 0; /* start with undefined memory type */ ++ last_addr = 0; /* start with 0 as last starting address */ ++ /* loop through change-points, determining affect on the new bios map */ ++ for (chgidx=0; chgidx < chg_nr; chgidx++) ++ { ++ /* keep track of all overlapping bios entries */ ++ if (change_point[chgidx]->addr == change_point[chgidx]->pbios->addr) ++ { ++ /* add map entry to overlap list (> 1 entry implies an overlap) */ ++ overlap_list[overlap_entries++]=change_point[chgidx]->pbios; ++ } ++ else ++ { ++ /* remove entry from list (order independent, so swap with last) */ ++ for (i=0; ipbios) ++ overlap_list[i] = overlap_list[overlap_entries-1]; ++ } ++ overlap_entries--; ++ } ++ /* if there are overlapping entries, decide which "type" to use */ ++ /* (larger value takes precedence -- 1=usable, 2,3,4,4+=unusable) */ ++ current_type = 0; ++ for (i=0; itype > current_type) ++ current_type = overlap_list[i]->type; ++ /* continue building up new bios map based on this information */ ++ if (current_type != last_type) { ++ if (last_type != 0) { ++ new_bios[new_bios_entry].size = ++ change_point[chgidx]->addr - last_addr; ++ /* move forward only if the new size was non-zero */ ++ if (new_bios[new_bios_entry].size != 0) ++ if (++new_bios_entry >= E820MAX) ++ break; /* no more space left for new bios entries */ ++ } ++ if (current_type != 0) { ++ new_bios[new_bios_entry].addr = change_point[chgidx]->addr; ++ new_bios[new_bios_entry].type = current_type; ++ last_addr=change_point[chgidx]->addr; ++ } ++ last_type = current_type; ++ } ++ } ++ new_nr = new_bios_entry; /* retain count for new bios entries */ ++ ++ /* copy new bios mapping into original location */ ++ memcpy(biosmap, new_bios, new_nr*sizeof(struct e820entry)); ++ *pnr_map = new_nr; ++ ++ return 0; ++} ++ ++/* ++ * Copy the BIOS e820 map into a safe place. ++ * ++ * Sanity-check it while we're at it.. ++ * ++ * If we're lucky and live on a modern system, the setup code ++ * will have given us a memory map that we can use to properly ++ * set up memory. If we aren't, we'll fake a memory map. ++ */ ++static int __init copy_e820_map(struct e820entry * biosmap, int nr_map) ++{ ++#ifndef CONFIG_XEN ++ /* Only one memory region (or negative)? Ignore it */ ++ if (nr_map < 2) ++ return -1; ++#else ++ BUG_ON(nr_map < 1); ++#endif ++ ++ do { ++ unsigned long start = biosmap->addr; ++ unsigned long size = biosmap->size; ++ unsigned long end = start + size; ++ unsigned long type = biosmap->type; ++ ++ /* Overflow in 64 bits? Ignore the memory map. */ ++ if (start > end) ++ return -1; ++ ++ add_memory_region(start, size, type); ++ } while (biosmap++,--nr_map); ++ return 0; ++} ++ ++void early_panic(char *msg) ++{ ++ early_printk(msg); ++ panic(msg); ++} ++ ++#ifndef CONFIG_XEN ++void __init setup_memory_region(void) ++{ ++ /* ++ * Try to copy the BIOS-supplied E820-map. ++ * ++ * Otherwise fake a memory map; one section from 0k->640k, ++ * the next section from 1mb->appropriate_mem_k ++ */ ++ sanitize_e820_map(boot_params.e820_map, &boot_params.e820_entries); ++ if (copy_e820_map(boot_params.e820_map, boot_params.e820_entries) < 0) ++ early_panic("Cannot find a valid memory map"); ++ printk(KERN_INFO "BIOS-provided physical RAM map:\n"); ++ e820_print_map("BIOS-e820"); ++} ++ ++#else /* CONFIG_XEN */ ++ ++void __init setup_memory_region(void) ++{ ++ int rc; ++ struct xen_memory_map memmap; ++ /* ++ * This is rather large for a stack variable but this early in ++ * the boot process we know we have plenty slack space. ++ */ ++ struct e820entry map[E820MAX]; ++ ++ memmap.nr_entries = E820MAX; ++ set_xen_guest_handle(memmap.buffer, map); ++ ++ rc = HYPERVISOR_memory_op(XENMEM_memory_map, &memmap); ++ if ( rc == -ENOSYS ) { ++ memmap.nr_entries = 1; ++ map[0].addr = 0ULL; ++ map[0].size = xen_start_info->nr_pages << PAGE_SHIFT; ++ /* 8MB slack (to balance backend allocations). */ ++ map[0].size += 8 << 20; ++ map[0].type = E820_RAM; ++ rc = 0; ++ } ++ BUG_ON(rc); ++ ++ sanitize_e820_map(map, (char *)&memmap.nr_entries); ++ ++ if (copy_e820_map(map, (char)memmap.nr_entries) < 0) ++ early_panic("Cannot find a valid memory map"); ++ ++ printk(KERN_INFO "BIOS-provided physical RAM map:\n"); ++ e820_print_map("Xen"); ++} ++#endif ++ ++static int __init parse_memopt(char *p) ++{ ++ int i; ++ unsigned long current_end; ++ unsigned long end; ++ ++ if (!p) ++ return -EINVAL; ++ end_user_pfn = memparse(p, &p); ++ end_user_pfn >>= PAGE_SHIFT; ++ ++ end = end_user_pfn<> PAGE_SHIFT); ++ } ++ return *p == '\0' ? 0 : -EINVAL; ++} ++early_param("memmap", parse_memmap_opt); ++ ++void __init finish_e820_parsing(void) ++{ ++ if (userdef) { ++ printk(KERN_INFO "user-defined physical RAM map:\n"); ++ e820_print_map("user"); ++ } ++} ++ ++unsigned long pci_mem_start = 0xaeedbabe; ++EXPORT_SYMBOL(pci_mem_start); ++ ++/* ++ * Search for the biggest gap in the low 32 bits of the e820 ++ * memory space. We pass this space to PCI to assign MMIO resources ++ * for hotplug or unconfigured devices in. ++ * Hopefully the BIOS let enough space left. ++ */ ++__init void e820_setup_gap(struct e820entry *e820, int nr_map) ++{ ++ unsigned long gapstart, gapsize, round; ++ unsigned long last; ++ int i; ++ int found = 0; ++ ++ last = 0x100000000ull; ++ gapstart = 0x10000000; ++ gapsize = 0x400000; ++ i = nr_map; ++ while (--i >= 0) { ++ unsigned long long start = e820[i].addr; ++ unsigned long long end = start + e820[i].size; ++ ++ /* ++ * Since "last" is at most 4GB, we know we'll ++ * fit in 32 bits if this condition is true ++ */ ++ if (last > end) { ++ unsigned long gap = last - end; ++ ++ if (gap > gapsize) { ++ gapsize = gap; ++ gapstart = end; ++ found = 1; ++ } ++ } ++ if (start < last) ++ last = start; ++ } ++ ++ if (!found) { ++ gapstart = (end_pfn << PAGE_SHIFT) + 1024*1024; ++ printk(KERN_ERR "PCI: Warning: Cannot find a gap in the 32bit address range\n" ++ KERN_ERR "PCI: Unassigned devices with 32bit resource registers may break!\n"); ++ } ++ ++ /* ++ * See how much we want to round up: start off with ++ * rounding to the next 1MB area. ++ */ ++ round = 0x100000; ++ while ((gapsize >> 4) > round) ++ round += round; ++ /* Fun with two's complement */ ++ pci_mem_start = (gapstart + round) & -round; ++ ++ printk(KERN_INFO "Allocating PCI resources starting at %lx (gap: %lx:%lx)\n", ++ pci_mem_start, gapstart, gapsize); ++} ++ ++int __init arch_get_ram_range(int slot, u64 *addr, u64 *size) ++{ ++ int i; ++ ++ if (slot < 0 || slot >= e820.nr_map) ++ return -1; ++ for (i = slot; i < e820.nr_map; i++) { ++ if (e820.map[i].type != E820_RAM) ++ continue; ++ break; ++ } ++ if (i == e820.nr_map || e820.map[i].addr > (max_pfn << PAGE_SHIFT)) ++ return -1; ++ *addr = e820.map[i].addr; ++ *size = min_t(u64, e820.map[i].size + e820.map[i].addr, ++ max_pfn << PAGE_SHIFT) - *addr; ++ return i + 1; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/early_printk-xen.c ubuntu-hardy-xen/arch/x86/kernel/early_printk-xen.c +--- ubuntu-hardy/arch/x86/kernel/early_printk-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/early_printk-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,287 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Simple VGA output */ ++#define VGABASE (__ISA_IO_base + 0xb8000) ++ ++#ifndef CONFIG_XEN ++static int max_ypos = 25, max_xpos = 80; ++static int current_ypos = 25, current_xpos = 0; ++ ++static void early_vga_write(struct console *con, const char *str, unsigned n) ++{ ++ char c; ++ int i, k, j; ++ ++ while ((c = *str++) != '\0' && n-- > 0) { ++ if (current_ypos >= max_ypos) { ++ /* scroll 1 line up */ ++ for (k = 1, j = 0; k < max_ypos; k++, j++) { ++ for (i = 0; i < max_xpos; i++) { ++ writew(readw(VGABASE+2*(max_xpos*k+i)), ++ VGABASE + 2*(max_xpos*j + i)); ++ } ++ } ++ for (i = 0; i < max_xpos; i++) ++ writew(0x720, VGABASE + 2*(max_xpos*j + i)); ++ current_ypos = max_ypos-1; ++ } ++ if (c == '\n') { ++ current_xpos = 0; ++ current_ypos++; ++ } else if (c != '\r') { ++ writew(((0x7 << 8) | (unsigned short) c), ++ VGABASE + 2*(max_xpos*current_ypos + ++ current_xpos++)); ++ if (current_xpos >= max_xpos) { ++ current_xpos = 0; ++ current_ypos++; ++ } ++ } ++ } ++} ++ ++static struct console early_vga_console = { ++ .name = "earlyvga", ++ .write = early_vga_write, ++ .flags = CON_PRINTBUFFER, ++ .index = -1, ++}; ++ ++/* Serial functions loosely based on a similar package from Klaus P. Gerlicher */ ++ ++static int early_serial_base = 0x3f8; /* ttyS0 */ ++ ++#define XMTRDY 0x20 ++ ++#define DLAB 0x80 ++ ++#define TXR 0 /* Transmit register (WRITE) */ ++#define RXR 0 /* Receive register (READ) */ ++#define IER 1 /* Interrupt Enable */ ++#define IIR 2 /* Interrupt ID */ ++#define FCR 2 /* FIFO control */ ++#define LCR 3 /* Line control */ ++#define MCR 4 /* Modem control */ ++#define LSR 5 /* Line Status */ ++#define MSR 6 /* Modem Status */ ++#define DLL 0 /* Divisor Latch Low */ ++#define DLH 1 /* Divisor latch High */ ++ ++static int early_serial_putc(unsigned char ch) ++{ ++ unsigned timeout = 0xffff; ++ while ((inb(early_serial_base + LSR) & XMTRDY) == 0 && --timeout) ++ cpu_relax(); ++ outb(ch, early_serial_base + TXR); ++ return timeout ? 0 : -1; ++} ++ ++static void early_serial_write(struct console *con, const char *s, unsigned n) ++{ ++ while (*s && n-- > 0) { ++ if (*s == '\n') ++ early_serial_putc('\r'); ++ early_serial_putc(*s); ++ s++; ++ } ++} ++ ++#define DEFAULT_BAUD 9600 ++ ++static __init void early_serial_init(char *s) ++{ ++ unsigned char c; ++ unsigned divisor; ++ unsigned baud = DEFAULT_BAUD; ++ char *e; ++ ++ if (*s == ',') ++ ++s; ++ ++ if (*s) { ++ unsigned port; ++ if (!strncmp(s,"0x",2)) { ++ early_serial_base = simple_strtoul(s, &e, 16); ++ } else { ++ static int bases[] = { 0x3f8, 0x2f8 }; ++ ++ if (!strncmp(s,"ttyS",4)) ++ s += 4; ++ port = simple_strtoul(s, &e, 10); ++ if (port > 1 || s == e) ++ port = 0; ++ early_serial_base = bases[port]; ++ } ++ s += strcspn(s, ","); ++ if (*s == ',') ++ s++; ++ } ++ ++ outb(0x3, early_serial_base + LCR); /* 8n1 */ ++ outb(0, early_serial_base + IER); /* no interrupt */ ++ outb(0, early_serial_base + FCR); /* no fifo */ ++ outb(0x3, early_serial_base + MCR); /* DTR + RTS */ ++ ++ if (*s) { ++ baud = simple_strtoul(s, &e, 0); ++ if (baud == 0 || s == e) ++ baud = DEFAULT_BAUD; ++ } ++ ++ divisor = 115200 / baud; ++ c = inb(early_serial_base + LCR); ++ outb(c | DLAB, early_serial_base + LCR); ++ outb(divisor & 0xff, early_serial_base + DLL); ++ outb((divisor >> 8) & 0xff, early_serial_base + DLH); ++ outb(c & ~DLAB, early_serial_base + LCR); ++} ++ ++#else /* CONFIG_XEN */ ++ ++static void ++early_serial_write(struct console *con, const char *s, unsigned count) ++{ ++ int n; ++ ++ while (count > 0) { ++ n = HYPERVISOR_console_io(CONSOLEIO_write, count, (char *)s); ++ if (n <= 0) ++ break; ++ count -= n; ++ s += n; ++ } ++} ++ ++static __init void early_serial_init(char *s) ++{ ++} ++ ++/* ++ * No early VGA console on Xen, as we do not have convenient ISA-space ++ * mappings. Someone should fix this for domain 0. For now, use fake serial. ++ */ ++#define early_vga_console early_serial_console ++ ++#endif ++ ++static struct console early_serial_console = { ++ .name = "earlyser", ++ .write = early_serial_write, ++ .flags = CON_PRINTBUFFER, ++ .index = -1, ++}; ++ ++/* Console interface to a host file on AMD's SimNow! */ ++ ++static int simnow_fd; ++ ++enum { ++ MAGIC1 = 0xBACCD00A, ++ MAGIC2 = 0xCA110000, ++ XOPEN = 5, ++ XWRITE = 4, ++}; ++ ++static noinline long simnow(long cmd, long a, long b, long c) ++{ ++ long ret; ++ asm volatile("cpuid" : ++ "=a" (ret) : ++ "b" (a), "c" (b), "d" (c), "0" (MAGIC1), "D" (cmd + MAGIC2)); ++ return ret; ++} ++ ++static void __init simnow_init(char *str) ++{ ++ char *fn = "klog"; ++ if (*str == '=') ++ fn = ++str; ++ /* error ignored */ ++ simnow_fd = simnow(XOPEN, (unsigned long)fn, O_WRONLY|O_APPEND|O_CREAT, 0644); ++} ++ ++static void simnow_write(struct console *con, const char *s, unsigned n) ++{ ++ simnow(XWRITE, simnow_fd, (unsigned long)s, n); ++} ++ ++static struct console simnow_console = { ++ .name = "simnow", ++ .write = simnow_write, ++ .flags = CON_PRINTBUFFER, ++ .index = -1, ++}; ++ ++/* Direct interface for emergencies */ ++struct console *early_console = &early_vga_console; ++static int early_console_initialized = 0; ++ ++void early_printk(const char *fmt, ...) ++{ ++ char buf[512]; ++ int n; ++ va_list ap; ++ ++ va_start(ap,fmt); ++ n = vscnprintf(buf,512,fmt,ap); ++ early_console->write(early_console,buf,n); ++ va_end(ap); ++} ++ ++static int __initdata keep_early; ++ ++static int __init setup_early_printk(char *buf) ++{ ++ if (!buf) ++ return 0; ++ ++ if (early_console_initialized) ++ return 0; ++ early_console_initialized = 1; ++ ++ if (strstr(buf, "keep")) ++ keep_early = 1; ++ ++ if (!strncmp(buf, "serial", 6)) { ++ early_serial_init(buf + 6); ++ early_console = &early_serial_console; ++ } else if (!strncmp(buf, "ttyS", 4)) { ++ early_serial_init(buf); ++ early_console = &early_serial_console; ++ } else if (!strncmp(buf, "vga", 3) ++#ifndef CONFIG_XEN ++ && boot_params.screen_info.orig_video_isVGA == 1) { ++ max_xpos = boot_params.screen_info.orig_video_cols; ++ max_ypos = boot_params.screen_info.orig_video_lines; ++ current_ypos = boot_params.screen_info.orig_y; ++#else ++ || !strncmp(buf, "xen", 3)) { ++#endif ++ early_console = &early_vga_console; ++ } else if (!strncmp(buf, "simnow", 6)) { ++ simnow_init(buf + 6); ++ early_console = &simnow_console; ++ keep_early = 1; ++#ifdef CONFIG_HVC_XEN ++ } else if (!strncmp(buf, "xen", 3)) { ++ early_console = &xenboot_console; ++#endif ++ } ++ ++ if (keep_early) ++ early_console->flags &= ~CON_BOOT; ++ else ++ early_console->flags |= CON_BOOT; ++ register_console(early_console); ++ return 0; ++} ++early_param("earlyprintk", setup_early_printk); +diff -Naur ubuntu-hardy/arch/x86/kernel/early-quirks.c ubuntu-hardy-xen/arch/x86/kernel/early-quirks.c +--- ubuntu-hardy/arch/x86/kernel/early-quirks.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/early-quirks.c 2008-04-09 13:17:22.000000000 +0100 +@@ -74,6 +74,7 @@ + + static void __init ati_bugs(void) + { ++#ifndef CONFIG_XEN + #ifdef CONFIG_X86_IO_APIC + if (timer_over_8254 == 1) { + timer_over_8254 = 0; +@@ -81,6 +82,7 @@ + "ATI board detected. Disabling timer routing over 8254.\n"); + } + #endif ++#endif + } + + struct chipset { +diff -Naur ubuntu-hardy/arch/x86/kernel/entry_32.S ubuntu-hardy-xen/arch/x86/kernel/entry_32.S +--- ubuntu-hardy/arch/x86/kernel/entry_32.S 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/entry_32.S 2008-04-09 13:17:22.000000000 +0100 +@@ -288,7 +288,7 @@ + CFI_SIGNAL_FRAME + CFI_DEF_CFA esp, 0 + CFI_REGISTER esp, ebp +- movl TSS_sysenter_esp0(%esp),%esp ++ movl SYSENTER_stack_esp0(%esp),%esp + sysenter_past_esp: + /* + * No need to follow this irqs on/off section: the syscall +@@ -743,7 +743,7 @@ + * that sets up the real kernel stack. Check here, since we can't + * allow the wrong stack to be used. + * +- * "TSS_sysenter_esp0+12" is because the NMI/debug handler will have ++ * "SYSENTER_stack_esp0+12" is because the NMI/debug handler will have + * already pushed 3 words if it hits on the sysenter instruction: + * eflags, cs and eip. + * +@@ -755,7 +755,7 @@ + cmpw $__KERNEL_CS,4(%esp); \ + jne ok; \ + label: \ +- movl TSS_sysenter_esp0+offset(%esp),%esp; \ ++ movl SYSENTER_stack_esp0+offset(%esp),%esp; \ + CFI_DEF_CFA esp, 0; \ + CFI_UNDEFINED eip; \ + pushfl; \ +@@ -1025,7 +1025,7 @@ + CFI_ENDPROC + ENDPROC(kernel_thread_helper) + +-#ifdef CONFIG_XEN ++#ifdef CONFIG_PARAVIRT_XEN + ENTRY(xen_hypervisor_callback) + CFI_STARTPROC + pushl $0 +@@ -1108,7 +1108,7 @@ + .previous + ENDPROC(xen_failsafe_callback) + +-#endif /* CONFIG_XEN */ ++#endif /* CONFIG_PARAVIRT_XEN */ + + .section .rodata,"a" + #include "syscall_table_32.S" +diff -Naur ubuntu-hardy/arch/x86/kernel/entry_32-xen.S ubuntu-hardy-xen/arch/x86/kernel/entry_32-xen.S +--- ubuntu-hardy/arch/x86/kernel/entry_32-xen.S 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/entry_32-xen.S 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,1273 @@ ++/* ++ * linux/arch/i386/entry.S ++ * ++ * Copyright (C) 1991, 1992 Linus Torvalds ++ */ ++ ++/* ++ * entry.S contains the system-call and fault low-level handling routines. ++ * This also contains the timer-interrupt handler, as well as all interrupts ++ * and faults that can result in a task-switch. ++ * ++ * NOTE: This code handles signal-recognition, which happens every time ++ * after a timer-interrupt and after each system call. ++ * ++ * I changed all the .align's to 4 (16 byte alignment), as that's faster ++ * on a 486. ++ * ++ * Stack layout in 'syscall_exit': ++ * ptrace needs to have all regs on the stack. ++ * if the order here is changed, it needs to be ++ * updated in fork.c:copy_process, signal.c:do_signal, ++ * ptrace.c and ptrace.h ++ * ++ * 0(%esp) - %ebx ++ * 4(%esp) - %ecx ++ * 8(%esp) - %edx ++ * C(%esp) - %esi ++ * 10(%esp) - %edi ++ * 14(%esp) - %ebp ++ * 18(%esp) - %eax ++ * 1C(%esp) - %ds ++ * 20(%esp) - %es ++ * 24(%esp) - %fs ++ * 28(%esp) - orig_eax ++ * 2C(%esp) - %eip ++ * 30(%esp) - %cs ++ * 34(%esp) - %eflags ++ * 38(%esp) - %oldesp ++ * 3C(%esp) - %oldss ++ * ++ * "current" is in register %ebx during any slow entries. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "irq_vectors.h" ++#include ++ ++/* ++ * We use macros for low-level operations which need to be overridden ++ * for paravirtualization. The following will never clobber any registers: ++ * INTERRUPT_RETURN (aka. "iret") ++ * GET_CR0_INTO_EAX (aka. "movl %cr0, %eax") ++ * ENABLE_INTERRUPTS_SYSEXIT (aka "sti; sysexit"). ++ * ++ * For DISABLE_INTERRUPTS/ENABLE_INTERRUPTS (aka "cli"/"sti"), you must ++ * specify what registers can be overwritten (CLBR_NONE, CLBR_EAX/EDX/ECX/ANY). ++ * Allowing a register to be clobbered can shrink the paravirt replacement ++ * enough to patch inline, increasing performance. ++ */ ++ ++#define nr_syscalls ((syscall_table_size)/4) ++ ++CF_MASK = 0x00000001 ++TF_MASK = 0x00000100 ++IF_MASK = 0x00000200 ++DF_MASK = 0x00000400 ++NT_MASK = 0x00004000 ++VM_MASK = 0x00020000 ++/* Pseudo-eflags. */ ++NMI_MASK = 0x80000000 ++ ++#ifdef CONFIG_PREEMPT ++#define preempt_stop(clobbers) DISABLE_INTERRUPTS(clobbers); TRACE_IRQS_OFF ++#else ++#define preempt_stop(clobbers) ++#define resume_kernel restore_nocheck ++#endif ++ ++.macro TRACE_IRQS_IRET ++#ifdef CONFIG_TRACE_IRQFLAGS ++ testl $IF_MASK,PT_EFLAGS(%esp) # interrupts off? ++ jz 1f ++ TRACE_IRQS_ON ++1: ++#endif ++.endm ++ ++#ifdef CONFIG_VM86 ++#define resume_userspace_sig check_userspace ++#else ++#define resume_userspace_sig resume_userspace ++#endif ++ ++#define SAVE_ALL \ ++ cld; \ ++ pushl %fs; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ /*CFI_REL_OFFSET fs, 0;*/\ ++ pushl %es; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ /*CFI_REL_OFFSET es, 0;*/\ ++ pushl %ds; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ /*CFI_REL_OFFSET ds, 0;*/\ ++ pushl %eax; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ CFI_REL_OFFSET eax, 0;\ ++ pushl %ebp; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ CFI_REL_OFFSET ebp, 0;\ ++ pushl %edi; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ CFI_REL_OFFSET edi, 0;\ ++ pushl %esi; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ CFI_REL_OFFSET esi, 0;\ ++ pushl %edx; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ CFI_REL_OFFSET edx, 0;\ ++ pushl %ecx; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ CFI_REL_OFFSET ecx, 0;\ ++ pushl %ebx; \ ++ CFI_ADJUST_CFA_OFFSET 4;\ ++ CFI_REL_OFFSET ebx, 0;\ ++ movl $(__USER_DS), %edx; \ ++ movl %edx, %ds; \ ++ movl %edx, %es; \ ++ movl $(__KERNEL_PERCPU), %edx; \ ++ movl %edx, %fs ++ ++#define RESTORE_INT_REGS \ ++ popl %ebx; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ CFI_RESTORE ebx;\ ++ popl %ecx; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ CFI_RESTORE ecx;\ ++ popl %edx; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ CFI_RESTORE edx;\ ++ popl %esi; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ CFI_RESTORE esi;\ ++ popl %edi; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ CFI_RESTORE edi;\ ++ popl %ebp; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ CFI_RESTORE ebp;\ ++ popl %eax; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ CFI_RESTORE eax ++ ++#define RESTORE_REGS \ ++ RESTORE_INT_REGS; \ ++1: popl %ds; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ /*CFI_RESTORE ds;*/\ ++2: popl %es; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ /*CFI_RESTORE es;*/\ ++3: popl %fs; \ ++ CFI_ADJUST_CFA_OFFSET -4;\ ++ /*CFI_RESTORE fs;*/\ ++.pushsection .fixup,"ax"; \ ++4: movl $0,(%esp); \ ++ jmp 1b; \ ++5: movl $0,(%esp); \ ++ jmp 2b; \ ++6: movl $0,(%esp); \ ++ jmp 3b; \ ++.section __ex_table,"a";\ ++ .align 4; \ ++ .long 1b,4b; \ ++ .long 2b,5b; \ ++ .long 3b,6b; \ ++.popsection ++ ++#define RING0_INT_FRAME \ ++ CFI_STARTPROC simple;\ ++ CFI_SIGNAL_FRAME;\ ++ CFI_DEF_CFA esp, 3*4;\ ++ /*CFI_OFFSET cs, -2*4;*/\ ++ CFI_OFFSET eip, -3*4 ++ ++#define RING0_EC_FRAME \ ++ CFI_STARTPROC simple;\ ++ CFI_SIGNAL_FRAME;\ ++ CFI_DEF_CFA esp, 4*4;\ ++ /*CFI_OFFSET cs, -2*4;*/\ ++ CFI_OFFSET eip, -3*4 ++ ++#define RING0_PTREGS_FRAME \ ++ CFI_STARTPROC simple;\ ++ CFI_SIGNAL_FRAME;\ ++ CFI_DEF_CFA esp, PT_OLDESP-PT_EBX;\ ++ /*CFI_OFFSET cs, PT_CS-PT_OLDESP;*/\ ++ CFI_OFFSET eip, PT_EIP-PT_OLDESP;\ ++ /*CFI_OFFSET es, PT_ES-PT_OLDESP;*/\ ++ /*CFI_OFFSET ds, PT_DS-PT_OLDESP;*/\ ++ CFI_OFFSET eax, PT_EAX-PT_OLDESP;\ ++ CFI_OFFSET ebp, PT_EBP-PT_OLDESP;\ ++ CFI_OFFSET edi, PT_EDI-PT_OLDESP;\ ++ CFI_OFFSET esi, PT_ESI-PT_OLDESP;\ ++ CFI_OFFSET edx, PT_EDX-PT_OLDESP;\ ++ CFI_OFFSET ecx, PT_ECX-PT_OLDESP;\ ++ CFI_OFFSET ebx, PT_EBX-PT_OLDESP ++ ++ENTRY(ret_from_fork) ++ CFI_STARTPROC ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ call schedule_tail ++ GET_THREAD_INFO(%ebp) ++ popl %eax ++ CFI_ADJUST_CFA_OFFSET -4 ++ pushl $0x0202 # Reset kernel eflags ++ CFI_ADJUST_CFA_OFFSET 4 ++ popfl ++ CFI_ADJUST_CFA_OFFSET -4 ++ jmp syscall_exit ++ CFI_ENDPROC ++END(ret_from_fork) ++ ++/* ++ * Return to user mode is not as complex as all this looks, ++ * but we want the default path for a system call return to ++ * go as quickly as possible which is why some of this is ++ * less clear than it otherwise should be. ++ */ ++ ++ # userspace resumption stub bypassing syscall exit tracing ++ ALIGN ++ RING0_PTREGS_FRAME ++ret_from_exception: ++ preempt_stop(CLBR_ANY) ++ret_from_intr: ++ GET_THREAD_INFO(%ebp) ++check_userspace: ++ movl PT_EFLAGS(%esp), %eax # mix EFLAGS and CS ++ movb PT_CS(%esp), %al ++ andl $(VM_MASK | SEGMENT_RPL_MASK), %eax ++ cmpl $USER_RPL, %eax ++ jb resume_kernel # not returning to v8086 or userspace ++ ++ENTRY(resume_userspace) ++ LOCKDEP_SYS_EXIT ++ DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt ++ # setting need_resched or sigpending ++ # between sampling and the iret ++ movl TI_flags(%ebp), %ecx ++ andl $_TIF_WORK_MASK, %ecx # is there any work to be done on ++ # int/exception return? ++ jne work_pending ++ jmp restore_all ++END(ret_from_exception) ++ ++#ifdef CONFIG_PREEMPT ++ENTRY(resume_kernel) ++ DISABLE_INTERRUPTS(CLBR_ANY) ++ cmpl $0,TI_preempt_count(%ebp) # non-zero preempt_count ? ++ jnz restore_nocheck ++need_resched: ++ movl TI_flags(%ebp), %ecx # need_resched set ? ++ testb $_TIF_NEED_RESCHED, %cl ++ jz restore_all ++ testl $IF_MASK,PT_EFLAGS(%esp) # interrupts off (exception path) ? ++ jz restore_all ++ call preempt_schedule_irq ++ jmp need_resched ++END(resume_kernel) ++#endif ++ CFI_ENDPROC ++ ++/* SYSENTER_RETURN points to after the "sysenter" instruction in ++ the vsyscall page. See vsyscall-sysentry.S, which defines the symbol. */ ++ ++ # sysenter call handler stub ++ENTRY(sysenter_entry) ++ CFI_STARTPROC simple ++ CFI_SIGNAL_FRAME ++ CFI_DEF_CFA esp, 0 ++ CFI_REGISTER esp, ebp ++ movl SYSENTER_stack_esp0(%esp),%esp ++sysenter_past_esp: ++ /* ++ * No need to follow this irqs on/off section: the syscall ++ * disabled irqs and here we enable it straight after entry: ++ */ ++ ENABLE_INTERRUPTS(CLBR_NONE) ++ pushl $(__USER_DS) ++ CFI_ADJUST_CFA_OFFSET 4 ++ /*CFI_REL_OFFSET ss, 0*/ ++ pushl %ebp ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET esp, 0 ++ pushfl ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $(__USER_CS) ++ CFI_ADJUST_CFA_OFFSET 4 ++ /*CFI_REL_OFFSET cs, 0*/ ++ /* ++ * Push current_thread_info()->sysenter_return to the stack. ++ * A tiny bit of offset fixup is necessary - 4*4 means the 4 words ++ * pushed above; +8 corresponds to copy_thread's esp0 setting. ++ */ ++ pushl (TI_sysenter_return-THREAD_SIZE+8+4*4)(%esp) ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET eip, 0 ++ ++/* ++ * Load the potential sixth argument from user stack. ++ * Careful about security. ++ */ ++ cmpl $__PAGE_OFFSET-3,%ebp ++ jae syscall_fault ++1: movl (%ebp),%ebp ++.section __ex_table,"a" ++ .align 4 ++ .long 1b,syscall_fault ++.previous ++ ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ GET_THREAD_INFO(%ebp) ++ ++ /* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */ ++ testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp) ++ jnz syscall_trace_entry ++ cmpl $(nr_syscalls), %eax ++ jae syscall_badsys ++ call *sys_call_table(,%eax,4) ++ movl %eax,PT_EAX(%esp) ++ LOCKDEP_SYS_EXIT ++ DISABLE_INTERRUPTS(CLBR_ANY) ++ TRACE_IRQS_OFF ++ movl TI_flags(%ebp), %ecx ++ testw $_TIF_ALLWORK_MASK, %cx ++ jne syscall_exit_work ++/* if something modifies registers it must also disable sysexit */ ++ movl PT_EIP(%esp), %edx ++ movl PT_OLDESP(%esp), %ecx ++ xorl %ebp,%ebp ++ TRACE_IRQS_ON ++1: mov PT_FS(%esp), %fs ++ ENABLE_INTERRUPTS_SYSEXIT ++ CFI_ENDPROC ++.pushsection .fixup,"ax" ++2: movl $0,PT_FS(%esp) ++ jmp 1b ++.section __ex_table,"a" ++ .align 4 ++ .long 1b,2b ++.popsection ++ENDPROC(sysenter_entry) ++ ++ # pv sysenter call handler stub ++ENTRY(sysenter_entry_pv) ++ RING0_INT_FRAME ++ movl $__USER_DS,16(%esp) ++ movl %ebp,12(%esp) ++ movl $__USER_CS,4(%esp) ++ addl $4,%esp ++ CFI_ADJUST_CFA_OFFSET -4 ++ /* +5*4 is SS:ESP,EFLAGS,CS:EIP. +8 is esp0 setting. */ ++ pushl (TI_sysenter_return-THREAD_SIZE+8+4*4)(%esp) ++ CFI_ADJUST_CFA_OFFSET 4 ++/* ++ * Load the potential sixth argument from user stack. ++ * Careful about security. ++ */ ++ cmpl $__PAGE_OFFSET-3,%ebp ++ jae syscall_fault ++1: movl (%ebp),%ebp ++.section __ex_table,"a" ++ .align 4 ++ .long 1b,syscall_fault ++.previous ++ /* fall through */ ++ CFI_ENDPROC ++ENDPROC(sysenter_entry_pv) ++ ++ # system call handler stub ++ENTRY(system_call) ++ RING0_INT_FRAME # can't unwind into user space anyway ++ pushl %eax # save orig_eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ GET_THREAD_INFO(%ebp) ++ # system call tracing in operation / emulation ++ /* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */ ++ testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp) ++ jnz syscall_trace_entry ++ cmpl $(nr_syscalls), %eax ++ jae syscall_badsys ++syscall_call: ++ call *sys_call_table(,%eax,4) ++ movl %eax,PT_EAX(%esp) # store the return value ++syscall_exit: ++ LOCKDEP_SYS_EXIT ++ DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt ++ # setting need_resched or sigpending ++ # between sampling and the iret ++ TRACE_IRQS_OFF ++ testl $TF_MASK,PT_EFLAGS(%esp) # If tracing set singlestep flag on exit ++ jz no_singlestep ++ orl $_TIF_SINGLESTEP,TI_flags(%ebp) ++no_singlestep: ++ movl TI_flags(%ebp), %ecx ++ testw $_TIF_ALLWORK_MASK, %cx # current->work ++ jne syscall_exit_work ++ ++restore_all: ++#ifndef CONFIG_XEN ++ movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS ++ # Warning: PT_OLDSS(%esp) contains the wrong/random values if we ++ # are returning to the kernel. ++ # See comments in process.c:copy_thread() for details. ++ movb PT_OLDSS(%esp), %ah ++ movb PT_CS(%esp), %al ++ andl $(VM_MASK | (SEGMENT_TI_MASK << 8) | SEGMENT_RPL_MASK), %eax ++ cmpl $((SEGMENT_LDT << 8) | USER_RPL), %eax ++ CFI_REMEMBER_STATE ++ je ldt_ss # returning to user-space with LDT SS ++restore_nocheck: ++#else ++restore_nocheck: ++ movl PT_EFLAGS(%esp), %eax ++ testl $(VM_MASK|NMI_MASK), %eax ++ CFI_REMEMBER_STATE ++ jnz hypervisor_iret ++ shr $9, %eax # EAX[0] == IRET_EFLAGS.IF ++ GET_VCPU_INFO ++ andb evtchn_upcall_mask(%esi),%al ++ andb $1,%al # EAX[0] == IRET_EFLAGS.IF & event_mask ++ CFI_REMEMBER_STATE ++ jnz restore_all_enable_events # != 0 => enable event delivery ++#endif ++ TRACE_IRQS_IRET ++restore_nocheck_notrace: ++ RESTORE_REGS ++ addl $4, %esp # skip orig_eax/error_code ++ CFI_ADJUST_CFA_OFFSET -4 ++1: INTERRUPT_RETURN ++.section .fixup,"ax" ++iret_exc: ++ pushl $0 # no error code ++ pushl $do_iret_error ++ jmp error_code ++.previous ++.section __ex_table,"a" ++ .align 4 ++ .long 1b,iret_exc ++.previous ++ ++ CFI_RESTORE_STATE ++#ifndef CONFIG_XEN ++ldt_ss: ++ larl PT_OLDSS(%esp), %eax ++ jnz restore_nocheck ++ testl $0x00400000, %eax # returning to 32bit stack? ++ jnz restore_nocheck # allright, normal return ++ ++#ifdef CONFIG_PARAVIRT ++ /* ++ * The kernel can't run on a non-flat stack if paravirt mode ++ * is active. Rather than try to fixup the high bits of ++ * ESP, bypass this code entirely. This may break DOSemu ++ * and/or Wine support in a paravirt VM, although the option ++ * is still available to implement the setting of the high ++ * 16-bits in the INTERRUPT_RETURN paravirt-op. ++ */ ++ cmpl $0, pv_info+PARAVIRT_enabled ++ jne restore_nocheck ++#endif ++ ++ /* If returning to userspace with 16bit stack, ++ * try to fix the higher word of ESP, as the CPU ++ * won't restore it. ++ * This is an "official" bug of all the x86-compatible ++ * CPUs, which we can try to work around to make ++ * dosemu and wine happy. */ ++ movl PT_OLDESP(%esp), %eax ++ movl %esp, %edx ++ call patch_espfix_desc ++ pushl $__ESPFIX_SS ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ DISABLE_INTERRUPTS(CLBR_EAX) ++ TRACE_IRQS_OFF ++ lss (%esp), %esp ++ CFI_ADJUST_CFA_OFFSET -8 ++ jmp restore_nocheck ++#else ++ ALIGN ++restore_all_enable_events: ++ TRACE_IRQS_ON ++ __ENABLE_INTERRUPTS ++scrit: /**** START OF CRITICAL REGION ****/ ++ __TEST_PENDING ++ jnz 14f # process more events if necessary... ++ RESTORE_REGS ++ addl $4, %esp ++ CFI_ADJUST_CFA_OFFSET -4 ++1: INTERRUPT_RETURN ++.section __ex_table,"a" ++ .align 4 ++ .long 1b,iret_exc ++.previous ++14: __DISABLE_INTERRUPTS ++ TRACE_IRQS_OFF ++ jmp 11f ++ecrit: /**** END OF CRITICAL REGION ****/ ++ ++ CFI_RESTORE_STATE ++hypervisor_iret: ++ andl $~NMI_MASK, PT_EFLAGS(%esp) ++ RESTORE_REGS ++ addl $4, %esp ++ CFI_ADJUST_CFA_OFFSET -4 ++ jmp hypercall_page + (__HYPERVISOR_iret * 32) ++#endif ++ CFI_ENDPROC ++ENDPROC(system_call) ++ ++ # perform work that needs to be done immediately before resumption ++ ALIGN ++ RING0_PTREGS_FRAME # can't unwind into user space anyway ++work_pending: ++ testb $_TIF_NEED_RESCHED, %cl ++ jz work_notifysig ++work_resched: ++ call schedule ++ LOCKDEP_SYS_EXIT ++ DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt ++ # setting need_resched or sigpending ++ # between sampling and the iret ++ TRACE_IRQS_OFF ++ movl TI_flags(%ebp), %ecx ++ andl $_TIF_WORK_MASK, %ecx # is there any work to be done other ++ # than syscall tracing? ++ jz restore_all ++ testb $_TIF_NEED_RESCHED, %cl ++ jnz work_resched ++ ++work_notifysig: # deal with pending signals and ++ # notify-resume requests ++#ifdef CONFIG_VM86 ++ testl $VM_MASK, PT_EFLAGS(%esp) ++ movl %esp, %eax ++ jne work_notifysig_v86 # returning to kernel-space or ++ # vm86-space ++ xorl %edx, %edx ++ call do_notify_resume ++ jmp resume_userspace_sig ++ ++ ALIGN ++work_notifysig_v86: ++ pushl %ecx # save ti_flags for do_notify_resume ++ CFI_ADJUST_CFA_OFFSET 4 ++ call save_v86_state # %eax contains pt_regs pointer ++ popl %ecx ++ CFI_ADJUST_CFA_OFFSET -4 ++ movl %eax, %esp ++#else ++ movl %esp, %eax ++#endif ++ xorl %edx, %edx ++ call do_notify_resume ++ jmp resume_userspace_sig ++END(work_pending) ++ ++ # perform syscall exit tracing ++ ALIGN ++syscall_trace_entry: ++ movl $-ENOSYS,PT_EAX(%esp) ++ movl %esp, %eax ++ xorl %edx,%edx ++ call do_syscall_trace ++ cmpl $0, %eax ++ jne resume_userspace # ret != 0 -> running under PTRACE_SYSEMU, ++ # so must skip actual syscall ++ movl PT_ORIG_EAX(%esp), %eax ++ cmpl $(nr_syscalls), %eax ++ jnae syscall_call ++ jmp syscall_exit ++END(syscall_trace_entry) ++ ++ # perform syscall exit tracing ++ ALIGN ++syscall_exit_work: ++ testb $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP), %cl ++ jz work_pending ++ TRACE_IRQS_ON ++ ENABLE_INTERRUPTS(CLBR_ANY) # could let do_syscall_trace() call ++ # schedule() instead ++ movl %esp, %eax ++ movl $1, %edx ++ call do_syscall_trace ++ jmp resume_userspace ++END(syscall_exit_work) ++ CFI_ENDPROC ++ ++ RING0_INT_FRAME # can't unwind into user space anyway ++syscall_fault: ++ pushl %eax # save orig_eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ GET_THREAD_INFO(%ebp) ++ movl $-EFAULT,PT_EAX(%esp) ++ jmp resume_userspace ++END(syscall_fault) ++ ++syscall_badsys: ++ movl $-ENOSYS,PT_EAX(%esp) ++ jmp resume_userspace ++END(syscall_badsys) ++ CFI_ENDPROC ++ ++#ifndef CONFIG_XEN ++#define FIXUP_ESPFIX_STACK \ ++ /* since we are on a wrong stack, we cant make it a C code :( */ \ ++ PER_CPU(gdt_page, %ebx); \ ++ GET_DESC_BASE(GDT_ENTRY_ESPFIX_SS, %ebx, %eax, %ax, %al, %ah); \ ++ addl %esp, %eax; \ ++ pushl $__KERNEL_DS; \ ++ CFI_ADJUST_CFA_OFFSET 4; \ ++ pushl %eax; \ ++ CFI_ADJUST_CFA_OFFSET 4; \ ++ lss (%esp), %esp; \ ++ CFI_ADJUST_CFA_OFFSET -8; ++#define UNWIND_ESPFIX_STACK \ ++ movl %ss, %eax; \ ++ /* see if on espfix stack */ \ ++ cmpw $__ESPFIX_SS, %ax; \ ++ jne 27f; \ ++ movl $__KERNEL_DS, %eax; \ ++ movl %eax, %ds; \ ++ movl %eax, %es; \ ++ /* switch to normal stack */ \ ++ FIXUP_ESPFIX_STACK; \ ++27:; ++ ++/* ++ * Build the entry stubs and pointer table with ++ * some assembler magic. ++ */ ++.data ++ENTRY(interrupt) ++.text ++ ++ENTRY(irq_entries_start) ++ RING0_INT_FRAME ++vector=0 ++.rept NR_IRQS ++ ALIGN ++ .if vector ++ CFI_ADJUST_CFA_OFFSET -4 ++ .endif ++1: pushl $~(vector) ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp common_interrupt ++ .previous ++ .long 1b ++ .text ++vector=vector+1 ++.endr ++END(irq_entries_start) ++ ++.previous ++END(interrupt) ++.previous ++ ++/* ++ * the CPU automatically disables interrupts when executing an IRQ vector, ++ * so IRQ-flags tracing has to follow that: ++ */ ++ ALIGN ++common_interrupt: ++ SAVE_ALL ++ TRACE_IRQS_OFF ++ movl %esp,%eax ++ call do_IRQ ++ jmp ret_from_intr ++ENDPROC(common_interrupt) ++ CFI_ENDPROC ++ ++#define BUILD_INTERRUPT(name, nr) \ ++ENTRY(name) \ ++ RING0_INT_FRAME; \ ++ pushl $~(nr); \ ++ CFI_ADJUST_CFA_OFFSET 4; \ ++ SAVE_ALL; \ ++ TRACE_IRQS_OFF \ ++ movl %esp,%eax; \ ++ call smp_##name; \ ++ jmp ret_from_intr; \ ++ CFI_ENDPROC; \ ++ENDPROC(name) ++ ++/* The include is where all of the SMP etc. interrupts come from */ ++#include "entry_arch.h" ++ ++#else ++#define UNWIND_ESPFIX_STACK ++#endif ++ ++KPROBE_ENTRY(page_fault) ++ RING0_EC_FRAME ++ pushl $do_page_fault ++ CFI_ADJUST_CFA_OFFSET 4 ++ ALIGN ++error_code: ++ /* the function address is in %fs's slot on the stack */ ++ pushl %es ++ CFI_ADJUST_CFA_OFFSET 4 ++ /*CFI_REL_OFFSET es, 0*/ ++ pushl %ds ++ CFI_ADJUST_CFA_OFFSET 4 ++ /*CFI_REL_OFFSET ds, 0*/ ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET eax, 0 ++ pushl %ebp ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET ebp, 0 ++ pushl %edi ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET edi, 0 ++ pushl %esi ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET esi, 0 ++ pushl %edx ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET edx, 0 ++ pushl %ecx ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET ecx, 0 ++ pushl %ebx ++ CFI_ADJUST_CFA_OFFSET 4 ++ CFI_REL_OFFSET ebx, 0 ++ cld ++ pushl %fs ++ CFI_ADJUST_CFA_OFFSET 4 ++ /*CFI_REL_OFFSET fs, 0*/ ++ movl $(__KERNEL_PERCPU), %ecx ++ movl %ecx, %fs ++ UNWIND_ESPFIX_STACK ++ popl %ecx ++ CFI_ADJUST_CFA_OFFSET -4 ++ /*CFI_REGISTER es, ecx*/ ++ movl PT_FS(%esp), %edi # get the function address ++ movl PT_ORIG_EAX(%esp), %edx # get the error code ++ movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart ++ mov %ecx, PT_FS(%esp) ++ /*CFI_REL_OFFSET fs, ES*/ ++ movl $(__USER_DS), %ecx ++ movl %ecx, %ds ++ movl %ecx, %es ++ movl %esp,%eax # pt_regs pointer ++ call *%edi ++ jmp ret_from_exception ++ CFI_ENDPROC ++KPROBE_END(page_fault) ++ ++#ifdef CONFIG_XEN ++# A note on the "critical region" in our callback handler. ++# We want to avoid stacking callback handlers due to events occurring ++# during handling of the last event. To do this, we keep events disabled ++# until we've done all processing. HOWEVER, we must enable events before ++# popping the stack frame (can't be done atomically) and so it would still ++# be possible to get enough handler activations to overflow the stack. ++# Although unlikely, bugs of that kind are hard to track down, so we'd ++# like to avoid the possibility. ++# So, on entry to the handler we detect whether we interrupted an ++# existing activation in its critical region -- if so, we pop the current ++# activation and restart the handler using the previous one. ++# ++# The sysexit critical region is slightly different. sysexit ++# atomically removes the entire stack frame. If we interrupt in the ++# critical region we know that the entire frame is present and correct ++# so we can simply throw away the new one. ++ENTRY(hypervisor_callback) ++ RING0_INT_FRAME ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ movl PT_EIP(%esp),%eax ++ cmpl $scrit,%eax ++ jb 11f ++ cmpl $ecrit,%eax ++ jb critical_region_fixup ++ cmpl $sysexit_scrit,%eax ++ jb 11f ++ cmpl $sysexit_ecrit,%eax ++ ja 11f ++ addl $PT_OLDESP,%esp # Remove eflags...ebx from stack frame. ++11: push %esp ++ CFI_ADJUST_CFA_OFFSET 4 ++ call evtchn_do_upcall ++ add $4,%esp ++ CFI_ADJUST_CFA_OFFSET -4 ++ jmp ret_from_intr ++ CFI_ENDPROC ++ ++# [How we do the fixup]. We want to merge the current stack frame with the ++# just-interrupted frame. How we do this depends on where in the critical ++# region the interrupted handler was executing, and so how many saved ++# registers are in each frame. We do this quickly using the lookup table ++# 'critical_fixup_table'. For each byte offset in the critical region, it ++# provides the number of bytes which have already been popped from the ++# interrupted stack frame. ++critical_region_fixup: ++ movzbl critical_fixup_table-scrit(%eax),%ecx # %eax contains num bytes popped ++ cmpb $0xff,%cl # 0xff => vcpu_info critical region ++ jne 15f ++ xorl %ecx,%ecx ++15: leal (%esp,%ecx),%esi # %esi points at end of src region ++ leal PT_OLDESP(%esp),%edi # %edi points at end of dst region ++ shrl $2,%ecx # convert words to bytes ++ je 17f # skip loop if nothing to copy ++16: subl $4,%esi # pre-decrementing copy loop ++ subl $4,%edi ++ movl (%esi),%eax ++ movl %eax,(%edi) ++ loop 16b ++17: movl %edi,%esp # final %edi is top of merged stack ++ jmp 11b ++ ++.section .rodata,"a" ++critical_fixup_table: ++ .byte 0xff,0xff,0xff # testb $0xff,(%esi) = __TEST_PENDING ++ .byte 0xff,0xff # jnz 14f ++ .byte 0x00 # pop %ebx ++ .byte 0x04 # pop %ecx ++ .byte 0x08 # pop %edx ++ .byte 0x0c # pop %esi ++ .byte 0x10 # pop %edi ++ .byte 0x14 # pop %ebp ++ .byte 0x18 # pop %eax ++ .byte 0x1c # pop %ds ++ .byte 0x20 # pop %es ++ .byte 0x24,0x24 # pop %fs ++ .byte 0x28,0x28,0x28 # add $4,%esp ++ .byte 0x2c # iret ++ .byte 0xff,0xff,0xff,0xff # movb $1,1(%esi) ++ .byte 0x00,0x00 # jmp 11b ++.previous ++ ++# Hypervisor uses this for application faults while it executes. ++# We get here for two reasons: ++# 1. Fault while reloading DS, ES, FS or GS ++# 2. Fault while executing IRET ++# Category 1 we fix up by reattempting the load, and zeroing the segment ++# register if the load fails. ++# Category 2 we fix up by jumping to do_iret_error. We cannot use the ++# normal Linux return path in this case because if we use the IRET hypercall ++# to pop the stack frame we end up in an infinite loop of failsafe callbacks. ++# We distinguish between categories by maintaining a status value in EAX. ++ENTRY(failsafe_callback) ++ pushl %eax ++ movl $1,%eax ++1: mov 4(%esp),%ds ++2: mov 8(%esp),%es ++3: mov 12(%esp),%fs ++4: mov 16(%esp),%gs ++ testl %eax,%eax ++ popl %eax ++ jz 5f ++ addl $16,%esp # EAX != 0 => Category 2 (Bad IRET) ++ jmp iret_exc ++5: addl $16,%esp # EAX == 0 => Category 1 (Bad segment) ++ RING0_INT_FRAME ++ pushl $0 ++ SAVE_ALL ++ jmp ret_from_exception ++.section .fixup,"ax"; \ ++6: xorl %eax,%eax; \ ++ movl %eax,4(%esp); \ ++ jmp 1b; \ ++7: xorl %eax,%eax; \ ++ movl %eax,8(%esp); \ ++ jmp 2b; \ ++8: xorl %eax,%eax; \ ++ movl %eax,12(%esp); \ ++ jmp 3b; \ ++9: xorl %eax,%eax; \ ++ movl %eax,16(%esp); \ ++ jmp 4b; \ ++.previous; \ ++.section __ex_table,"a"; \ ++ .align 4; \ ++ .long 1b,6b; \ ++ .long 2b,7b; \ ++ .long 3b,8b; \ ++ .long 4b,9b; \ ++.previous ++#endif ++ CFI_ENDPROC ++ ++ENTRY(coprocessor_error) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_coprocessor_error ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(coprocessor_error) ++ ++ENTRY(simd_coprocessor_error) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_simd_coprocessor_error ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(simd_coprocessor_error) ++ ++ENTRY(device_not_available) ++ RING0_INT_FRAME ++ pushl $-1 # mark this as an int ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++#ifndef CONFIG_XEN ++ GET_CR0_INTO_EAX ++ testl $0x4, %eax # EM (math emulation bit) ++ je device_available_emulate ++ pushl $0 # temporary storage for ORIG_EIP ++ CFI_ADJUST_CFA_OFFSET 4 ++ call math_emulate ++ addl $4, %esp ++ CFI_ADJUST_CFA_OFFSET -4 ++ jmp ret_from_exception ++device_available_emulate: ++#endif ++ preempt_stop(CLBR_ANY) ++ call math_state_restore ++ jmp ret_from_exception ++ CFI_ENDPROC ++END(device_not_available) ++ ++#ifndef CONFIG_XEN ++/* ++ * Debug traps and NMI can happen at the one SYSENTER instruction ++ * that sets up the real kernel stack. Check here, since we can't ++ * allow the wrong stack to be used. ++ * ++ * "SYSENTER_stack_esp0+12" is because the NMI/debug handler will have ++ * already pushed 3 words if it hits on the sysenter instruction: ++ * eflags, cs and eip. ++ * ++ * We just load the right stack, and push the three (known) values ++ * by hand onto the new stack - while updating the return eip past ++ * the instruction that would have done it for sysenter. ++ */ ++#define FIX_STACK(offset, ok, label) \ ++ cmpw $__KERNEL_CS,4(%esp); \ ++ jne ok; \ ++label: \ ++ movl SYSENTER_stack_esp0+offset(%esp),%esp; \ ++ CFI_DEF_CFA esp, 0; \ ++ CFI_UNDEFINED eip; \ ++ pushfl; \ ++ CFI_ADJUST_CFA_OFFSET 4; \ ++ pushl $__KERNEL_CS; \ ++ CFI_ADJUST_CFA_OFFSET 4; \ ++ pushl $sysenter_past_esp; \ ++ CFI_ADJUST_CFA_OFFSET 4; \ ++ CFI_REL_OFFSET eip, 0 ++#endif /* CONFIG_XEN */ ++ ++KPROBE_ENTRY(debug) ++ RING0_INT_FRAME ++#ifndef CONFIG_XEN ++ cmpl $sysenter_entry,(%esp) ++ jne debug_stack_correct ++ FIX_STACK(12, debug_stack_correct, debug_esp_fix_insn) ++debug_stack_correct: ++#endif /* !CONFIG_XEN */ ++ pushl $-1 # mark this as an int ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ xorl %edx,%edx # error code 0 ++ movl %esp,%eax # pt_regs pointer ++ call do_debug ++ jmp ret_from_exception ++ CFI_ENDPROC ++KPROBE_END(debug) ++ ++#ifndef CONFIG_XEN ++/* ++ * NMI is doubly nasty. It can happen _while_ we're handling ++ * a debug fault, and the debug fault hasn't yet been able to ++ * clear up the stack. So we first check whether we got an ++ * NMI on the sysenter entry path, but after that we need to ++ * check whether we got an NMI on the debug path where the debug ++ * fault happened on the sysenter path. ++ */ ++KPROBE_ENTRY(nmi) ++ RING0_INT_FRAME ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ movl %ss, %eax ++ cmpw $__ESPFIX_SS, %ax ++ popl %eax ++ CFI_ADJUST_CFA_OFFSET -4 ++ je nmi_espfix_stack ++ cmpl $sysenter_entry,(%esp) ++ je nmi_stack_fixup ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ movl %esp,%eax ++ /* Do not access memory above the end of our stack page, ++ * it might not exist. ++ */ ++ andl $(THREAD_SIZE-1),%eax ++ cmpl $(THREAD_SIZE-20),%eax ++ popl %eax ++ CFI_ADJUST_CFA_OFFSET -4 ++ jae nmi_stack_correct ++ cmpl $sysenter_entry,12(%esp) ++ je nmi_debug_stack_check ++nmi_stack_correct: ++ /* We have a RING0_INT_FRAME here */ ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ xorl %edx,%edx # zero error code ++ movl %esp,%eax # pt_regs pointer ++ call do_nmi ++ jmp restore_nocheck_notrace ++ CFI_ENDPROC ++ ++nmi_stack_fixup: ++ RING0_INT_FRAME ++ FIX_STACK(12,nmi_stack_correct, 1) ++ jmp nmi_stack_correct ++ ++nmi_debug_stack_check: ++ /* We have a RING0_INT_FRAME here */ ++ cmpw $__KERNEL_CS,16(%esp) ++ jne nmi_stack_correct ++ cmpl $debug,(%esp) ++ jb nmi_stack_correct ++ cmpl $debug_esp_fix_insn,(%esp) ++ ja nmi_stack_correct ++ FIX_STACK(24,nmi_stack_correct, 1) ++ jmp nmi_stack_correct ++ ++nmi_espfix_stack: ++ /* We have a RING0_INT_FRAME here. ++ * ++ * create the pointer to lss back ++ */ ++ pushl %ss ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl %esp ++ CFI_ADJUST_CFA_OFFSET 4 ++ addw $4, (%esp) ++ /* copy the iret frame of 12 bytes */ ++ .rept 3 ++ pushl 16(%esp) ++ CFI_ADJUST_CFA_OFFSET 4 ++ .endr ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ FIXUP_ESPFIX_STACK # %eax == %esp ++ xorl %edx,%edx # zero error code ++ call do_nmi ++ RESTORE_REGS ++ lss 12+4(%esp), %esp # back to espfix stack ++ CFI_ADJUST_CFA_OFFSET -24 ++1: INTERRUPT_RETURN ++ CFI_ENDPROC ++.section __ex_table,"a" ++ .align 4 ++ .long 1b,iret_exc ++.previous ++#else ++KPROBE_ENTRY(nmi) ++ RING0_INT_FRAME ++ pushl %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ xorl %edx,%edx # zero error code ++ movl %esp,%eax # pt_regs pointer ++ call do_nmi ++ orl $NMI_MASK, PT_EFLAGS(%esp) ++ jmp restore_all ++ CFI_ENDPROC ++#endif ++KPROBE_END(nmi) ++ ++#ifdef CONFIG_PARAVIRT ++ENTRY(native_iret) ++1: iret ++.section __ex_table,"a" ++ .align 4 ++ .long 1b,iret_exc ++.previous ++END(native_iret) ++ ++ENTRY(native_irq_enable_sysexit) ++ sti ++ sysexit ++END(native_irq_enable_sysexit) ++#endif ++ ++KPROBE_ENTRY(int3) ++ RING0_INT_FRAME ++ pushl $-1 # mark this as an int ++ CFI_ADJUST_CFA_OFFSET 4 ++ SAVE_ALL ++ xorl %edx,%edx # zero error code ++ movl %esp,%eax # pt_regs pointer ++ call do_int3 ++ jmp ret_from_exception ++ CFI_ENDPROC ++KPROBE_END(int3) ++ ++ENTRY(overflow) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_overflow ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(overflow) ++ ++ENTRY(bounds) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_bounds ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(bounds) ++ ++ENTRY(invalid_op) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_invalid_op ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(invalid_op) ++ ++ENTRY(coprocessor_segment_overrun) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_coprocessor_segment_overrun ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(coprocessor_segment_overrun) ++ ++ENTRY(invalid_TSS) ++ RING0_EC_FRAME ++ pushl $do_invalid_TSS ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(invalid_TSS) ++ ++ENTRY(segment_not_present) ++ RING0_EC_FRAME ++ pushl $do_segment_not_present ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(segment_not_present) ++ ++ENTRY(stack_segment) ++ RING0_EC_FRAME ++ pushl $do_stack_segment ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(stack_segment) ++ ++KPROBE_ENTRY(general_protection) ++ RING0_EC_FRAME ++ pushl $do_general_protection ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++KPROBE_END(general_protection) ++ ++ENTRY(alignment_check) ++ RING0_EC_FRAME ++ pushl $do_alignment_check ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(alignment_check) ++ ++ENTRY(divide_error) ++ RING0_INT_FRAME ++ pushl $0 # no error code ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_divide_error ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(divide_error) ++ ++#ifdef CONFIG_X86_MCE ++ENTRY(machine_check) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl machine_check_vector ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(machine_check) ++#endif ++ ++#ifndef CONFIG_XEN ++ENTRY(spurious_interrupt_bug) ++ RING0_INT_FRAME ++ pushl $0 ++ CFI_ADJUST_CFA_OFFSET 4 ++ pushl $do_spurious_interrupt_bug ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++#endif /* !CONFIG_XEN */ ++ ++ENTRY(fixup_4gb_segment) ++ RING0_EC_FRAME ++ pushl $do_fixup_4gb_segment ++ CFI_ADJUST_CFA_OFFSET 4 ++ jmp error_code ++ CFI_ENDPROC ++END(spurious_interrupt_bug) ++ ++ENTRY(kernel_thread_helper) ++ pushl $0 # fake return address for unwinder ++ CFI_STARTPROC ++ movl %edx,%eax ++ push %edx ++ CFI_ADJUST_CFA_OFFSET 4 ++ call *%ebx ++ push %eax ++ CFI_ADJUST_CFA_OFFSET 4 ++ call do_exit ++ CFI_ENDPROC ++ENDPROC(kernel_thread_helper) ++ ++.section .rodata,"a" ++#include "syscall_table_32.S" ++ ++syscall_table_size=(.-sys_call_table) +diff -Naur ubuntu-hardy/arch/x86/kernel/entry_64-xen.S ubuntu-hardy-xen/arch/x86/kernel/entry_64-xen.S +--- ubuntu-hardy/arch/x86/kernel/entry_64-xen.S 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/entry_64-xen.S 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,1263 @@ ++/* ++ * linux/arch/x86_64/entry.S ++ * ++ * Copyright (C) 1991, 1992 Linus Torvalds ++ * Copyright (C) 2000, 2001, 2002 Andi Kleen SuSE Labs ++ * Copyright (C) 2000 Pavel Machek ++ * Jun Nakajima ++ * Asit Mallick ++ * Modified for Xen ++ */ ++ ++/* ++ * entry.S contains the system-call and fault low-level handling routines. ++ * ++ * NOTE: This code handles signal-recognition, which happens every time ++ * after an interrupt and after each system call. ++ * ++ * Normal syscalls and interrupts don't save a full stack frame, this is ++ * only done for syscall tracing, signals or fork/exec et.al. ++ * ++ * A note on terminology: ++ * - top of stack: Architecture defined interrupt frame from SS to RIP ++ * at the top of the kernel process stack. ++ * - partial stack frame: partially saved registers upto R11. ++ * - full stack frame: Like partial stack frame, but all register saved. ++ * ++ * Some macro usage: ++ * - CFI macros are used to generate dwarf2 unwind information for better ++ * backtraces. They don't change any code. ++ * - SAVE_ALL/RESTORE_ALL - Save/restore all registers ++ * - SAVE_ARGS/RESTORE_ARGS - Save/restore registers that C functions modify. ++ * There are unfortunately lots of special cases where some registers ++ * not touched. The macro is a big mess that should be cleaned up. ++ * - SAVE_REST/RESTORE_REST - Handle the registers not saved by SAVE_ARGS. ++ * Gives a full stack frame. ++ * - ENTRY/END Define functions in the symbol table. ++ * - FIXUP_TOP_OF_STACK/RESTORE_TOP_OF_STACK - Fix up the hardware stack ++ * frame that is otherwise undefined after a SYSCALL ++ * - TRACE_IRQ_* - Trace hard interrupt state for lock debugging. ++ * - errorentry/paranoidentry/zeroentry - Define exception entry points. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "xen_entry_64.S" ++ ++ .code64 ++ ++#ifndef CONFIG_PREEMPT ++#define retint_kernel retint_restore_args ++#endif ++ ++ ++.macro TRACE_IRQS_IRETQ offset=ARGOFFSET ++#ifdef CONFIG_TRACE_IRQFLAGS ++ bt $9,EFLAGS-\offset(%rsp) /* interrupts off? */ ++ jnc 1f ++ TRACE_IRQS_ON ++1: ++#endif ++.endm ++ ++NMI_MASK = 0x80000000 ++ ++/* ++ * C code is not supposed to know about undefined top of stack. Every time ++ * a C function with an pt_regs argument is called from the SYSCALL based ++ * fast path FIXUP_TOP_OF_STACK is needed. ++ * RESTORE_TOP_OF_STACK syncs the syscall state after any possible ptregs ++ * manipulation. ++ */ ++ ++ /* %rsp:at FRAMEEND */ ++ .macro FIXUP_TOP_OF_STACK tmp ++ movq $__USER_CS,CS(%rsp) ++ movq $-1,RCX(%rsp) ++ .endm ++ ++ .macro RESTORE_TOP_OF_STACK tmp,offset=0 ++ .endm ++ ++ .macro FAKE_STACK_FRAME child_rip ++ /* push in order ss, rsp, eflags, cs, rip */ ++ xorl %eax, %eax ++ pushq %rax /* ss */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ /*CFI_REL_OFFSET ss,0*/ ++ pushq %rax /* rsp */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rsp,0 ++ pushq $(1<<9) /* eflags - interrupts on */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ /*CFI_REL_OFFSET rflags,0*/ ++ pushq $__KERNEL_CS /* cs */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ /*CFI_REL_OFFSET cs,0*/ ++ pushq \child_rip /* rip */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rip,0 ++ pushq %rax /* orig rax */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ .endm ++ ++ .macro UNFAKE_STACK_FRAME ++ addq $8*6, %rsp ++ CFI_ADJUST_CFA_OFFSET -(6*8) ++ .endm ++ ++ .macro CFI_DEFAULT_STACK start=1,adj=0 ++ .if \start ++ CFI_STARTPROC simple ++ CFI_SIGNAL_FRAME ++ CFI_DEF_CFA rsp,SS+8-(\adj*ARGOFFSET) ++ .else ++ CFI_DEF_CFA_OFFSET SS+8-(\adj*ARGOFFSET) ++ .endif ++ .if \adj == 0 ++ CFI_REL_OFFSET r15,R15 ++ CFI_REL_OFFSET r14,R14 ++ CFI_REL_OFFSET r13,R13 ++ CFI_REL_OFFSET r12,R12 ++ CFI_REL_OFFSET rbp,RBP ++ CFI_REL_OFFSET rbx,RBX ++ .endif ++ CFI_REL_OFFSET r11,R11 ++ CFI_REL_OFFSET r10,R10 ++ CFI_REL_OFFSET r9,R9 ++ CFI_REL_OFFSET r8,R8 ++ CFI_REL_OFFSET rax,RAX ++ CFI_REL_OFFSET rcx,RCX ++ CFI_REL_OFFSET rdx,RDX ++ CFI_REL_OFFSET rsi,RSI ++ CFI_REL_OFFSET rdi,RDI ++ CFI_REL_OFFSET rip,RIP ++ /*CFI_REL_OFFSET cs,CS*/ ++ /*CFI_REL_OFFSET rflags,EFLAGS*/ ++ CFI_REL_OFFSET rsp,RSP ++ /*CFI_REL_OFFSET ss,SS*/ ++ .endm ++ ++ /* ++ * Must be consistent with the definition in arch-x86/xen-x86_64.h: ++ * struct iret_context { ++ * u64 rax, r11, rcx, flags, rip, cs, rflags, rsp, ss; ++ * }; ++ * with rax, r11, and rcx being taken care of in the hypercall stub. ++ */ ++ .macro HYPERVISOR_IRET flag ++ testb $3,1*8(%rsp) ++ jnz 2f ++ testl $NMI_MASK,2*8(%rsp) ++ jnz 2f ++ ++ cmpb $0,(xen_features+XENFEAT_supervisor_mode_kernel)(%rip) ++ jne 1f ++ ++ /* Direct iret to kernel space. Correct CS and SS. */ ++ orl $3,1*8(%rsp) ++ orl $3,4*8(%rsp) ++1: iretq ++ ++2: /* Slow iret via hypervisor. */ ++ andl $~NMI_MASK, 2*8(%rsp) ++ pushq $\flag ++ jmp hypercall_page + (__HYPERVISOR_iret * 32) ++ .endm ++ ++/* ++ * A newly forked process directly context switches into this. ++ */ ++/* rdi: prev */ ++ENTRY(ret_from_fork) ++ CFI_DEFAULT_STACK ++ push kernel_eflags(%rip) ++ CFI_ADJUST_CFA_OFFSET 4 ++ popf # reset kernel eflags ++ CFI_ADJUST_CFA_OFFSET -4 ++ call schedule_tail ++ GET_THREAD_INFO(%rcx) ++ testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%rcx) ++ jnz rff_trace ++rff_action: ++ RESTORE_REST ++ testl $3,CS-ARGOFFSET(%rsp) # from kernel_thread? ++ je int_ret_from_sys_call ++ testl $_TIF_IA32,threadinfo_flags(%rcx) ++ jnz int_ret_from_sys_call ++ RESTORE_TOP_OF_STACK %rdi,ARGOFFSET ++ jmp ret_from_sys_call ++rff_trace: ++ movq %rsp,%rdi ++ call syscall_trace_leave ++ GET_THREAD_INFO(%rcx) ++ jmp rff_action ++ CFI_ENDPROC ++END(ret_from_fork) ++ ++/* ++ * initial frame state for interrupts and exceptions ++ */ ++ .macro _frame ref ++ CFI_STARTPROC simple ++ CFI_SIGNAL_FRAME ++ CFI_DEF_CFA rsp,SS+8-\ref ++ /*CFI_REL_OFFSET ss,SS-\ref*/ ++ CFI_REL_OFFSET rsp,RSP-\ref ++ /*CFI_REL_OFFSET rflags,EFLAGS-\ref*/ ++ /*CFI_REL_OFFSET cs,CS-\ref*/ ++ CFI_REL_OFFSET rip,RIP-\ref ++ .endm ++ ++/* ++ * System call entry. Upto 6 arguments in registers are supported. ++ * ++ * SYSCALL does not save anything on the stack and does not change the ++ * stack pointer. ++ */ ++ ++/* ++ * Register setup: ++ * rax system call number ++ * rdi arg0 ++ * rcx return address for syscall/sysret, C arg3 ++ * rsi arg1 ++ * rdx arg2 ++ * r10 arg3 (--> moved to rcx for C) ++ * r8 arg4 ++ * r9 arg5 ++ * r11 eflags for syscall/sysret, temporary for C ++ * r12-r15,rbp,rbx saved by C code, not touched. ++ * ++ * Interrupts are enabled on entry. ++ * Only called from user space. ++ * ++ * XXX if we had a free scratch register we could save the RSP into the stack frame ++ * and report it properly in ps. Unfortunately we haven't. ++ * ++ * When user can change the frames always force IRET. That is because ++ * it deals with uncanonical addresses better. SYSRET has trouble ++ * with them due to bugs in both AMD and Intel CPUs. ++ */ ++ ++ENTRY(system_call) ++ _frame (RIP-0x10) ++ SAVE_ARGS -8,0 ++ movq %rax,ORIG_RAX-ARGOFFSET(%rsp) ++ GET_THREAD_INFO(%rcx) ++ testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%rcx) ++ jnz tracesys ++ cmpq $__NR_syscall_max,%rax ++ ja badsys ++ movq %r10,%rcx ++ call *sys_call_table(,%rax,8) # XXX: rip relative ++ movq %rax,RAX-ARGOFFSET(%rsp) ++/* ++ * Syscall return path ending with SYSRET (fast path) ++ * Has incomplete stack frame and undefined top of stack. ++ */ ++ret_from_sys_call: ++ movl $_TIF_ALLWORK_MASK,%edi ++ /* edi: flagmask */ ++sysret_check: ++ LOCKDEP_SYS_EXIT ++ GET_THREAD_INFO(%rcx) ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ movl threadinfo_flags(%rcx),%edx ++ andl %edi,%edx ++ jnz sysret_careful ++ CFI_REMEMBER_STATE ++ /* ++ * sysretq will re-enable interrupts: ++ */ ++ TRACE_IRQS_ON ++ XEN_UNBLOCK_EVENTS(%rsi) ++ RESTORE_ARGS 0,8,0 ++ HYPERVISOR_IRET VGCF_IN_SYSCALL ++ ++ CFI_RESTORE_STATE ++ /* Handle reschedules */ ++ /* edx: work, edi: workmask */ ++sysret_careful: ++ bt $TIF_NEED_RESCHED,%edx ++ jnc sysret_signal ++ TRACE_IRQS_ON ++ XEN_UNBLOCK_EVENTS(%rsi) ++ pushq %rdi ++ CFI_ADJUST_CFA_OFFSET 8 ++ call schedule ++ popq %rdi ++ CFI_ADJUST_CFA_OFFSET -8 ++ jmp sysret_check ++ ++ /* Handle a signal */ ++sysret_signal: ++ TRACE_IRQS_ON ++/* sti */ ++ XEN_UNBLOCK_EVENTS(%rsi) ++ testl $(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx ++ jz 1f ++ ++ /* Really a signal */ ++ /* edx: work flags (arg3) */ ++ leaq do_notify_resume(%rip),%rax ++ leaq -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1 ++ xorl %esi,%esi # oldset -> arg2 ++ call ptregscall_common ++1: movl $_TIF_NEED_RESCHED,%edi ++ /* Use IRET because user could have changed frame. This ++ works because ptregscall_common has called FIXUP_TOP_OF_STACK. */ ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ jmp int_with_check ++ ++badsys: ++ movq $-ENOSYS,RAX-ARGOFFSET(%rsp) ++ jmp ret_from_sys_call ++ ++ /* Do syscall tracing */ ++tracesys: ++ SAVE_REST ++ movq $-ENOSYS,RAX(%rsp) ++ FIXUP_TOP_OF_STACK %rdi ++ movq %rsp,%rdi ++ call syscall_trace_enter ++ LOAD_ARGS ARGOFFSET /* reload args from stack in case ptrace changed it */ ++ RESTORE_REST ++ cmpq $__NR_syscall_max,%rax ++ movq $-ENOSYS,%rcx ++ cmova %rcx,%rax ++ ja 1f ++ movq %r10,%rcx /* fixup for C */ ++ call *sys_call_table(,%rax,8) ++1: movq %rax,RAX-ARGOFFSET(%rsp) ++ /* Use IRET because user could have changed frame */ ++ ++/* ++ * Syscall return path ending with IRET. ++ * Has correct top of stack, but partial stack frame. ++ */ ++ .globl int_ret_from_sys_call ++int_ret_from_sys_call: ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ testb $3,CS-ARGOFFSET(%rsp) ++ jnz 1f ++ /* Need to set the proper %ss (not NULL) for ring 3 iretq */ ++ movl $__KERNEL_DS,SS-ARGOFFSET(%rsp) ++ jmp retint_restore_args # retrun from ring3 kernel ++1: ++ movl $_TIF_ALLWORK_MASK,%edi ++ /* edi: mask to check */ ++int_with_check: ++ LOCKDEP_SYS_EXIT_IRQ ++ GET_THREAD_INFO(%rcx) ++ movl threadinfo_flags(%rcx),%edx ++ andl %edi,%edx ++ jnz int_careful ++ andl $~TS_COMPAT,threadinfo_status(%rcx) ++ jmp retint_restore_args ++ ++ /* Either reschedule or signal or syscall exit tracking needed. */ ++ /* First do a reschedule test. */ ++ /* edx: work, edi: workmask */ ++int_careful: ++ bt $TIF_NEED_RESCHED,%edx ++ jnc int_very_careful ++ TRACE_IRQS_ON ++/* sti */ ++ XEN_UNBLOCK_EVENTS(%rsi) ++ pushq %rdi ++ CFI_ADJUST_CFA_OFFSET 8 ++ call schedule ++ popq %rdi ++ CFI_ADJUST_CFA_OFFSET -8 ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ jmp int_with_check ++ ++ /* handle signals and tracing -- both require a full stack frame */ ++int_very_careful: ++ TRACE_IRQS_ON ++/* sti */ ++ XEN_UNBLOCK_EVENTS(%rsi) ++ SAVE_REST ++ /* Check for syscall exit trace */ ++ testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP),%edx ++ jz int_signal ++ pushq %rdi ++ CFI_ADJUST_CFA_OFFSET 8 ++ leaq 8(%rsp),%rdi # &ptregs -> arg1 ++ call syscall_trace_leave ++ popq %rdi ++ CFI_ADJUST_CFA_OFFSET -8 ++ andl $~(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SINGLESTEP),%edi ++ jmp int_restore_rest ++ ++int_signal: ++ testl $(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx ++ jz 1f ++ movq %rsp,%rdi # &ptregs -> arg1 ++ xorl %esi,%esi # oldset -> arg2 ++ call do_notify_resume ++1: movl $_TIF_NEED_RESCHED,%edi ++int_restore_rest: ++ RESTORE_REST ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ jmp int_with_check ++ CFI_ENDPROC ++END(system_call) ++ ++/* ++ * Certain special system calls that need to save a complete full stack frame. ++ */ ++ ++ .macro PTREGSCALL label,func,arg ++ .globl \label ++\label: ++ leaq \func(%rip),%rax ++ leaq -ARGOFFSET+8(%rsp),\arg /* 8 for return address */ ++ jmp ptregscall_common ++END(\label) ++ .endm ++ ++ CFI_STARTPROC ++ ++ PTREGSCALL stub_clone, sys_clone, %r8 ++ PTREGSCALL stub_fork, sys_fork, %rdi ++ PTREGSCALL stub_vfork, sys_vfork, %rdi ++ PTREGSCALL stub_rt_sigsuspend, sys_rt_sigsuspend, %rdx ++ PTREGSCALL stub_sigaltstack, sys_sigaltstack, %rdx ++ PTREGSCALL stub_iopl, sys_iopl, %rsi ++ ++ENTRY(ptregscall_common) ++ popq %r11 ++ CFI_ADJUST_CFA_OFFSET -8 ++ CFI_REGISTER rip, r11 ++ SAVE_REST ++ movq %r11, %r15 ++ CFI_REGISTER rip, r15 ++ FIXUP_TOP_OF_STACK %r11 ++ call *%rax ++ RESTORE_TOP_OF_STACK %r11 ++ movq %r15, %r11 ++ CFI_REGISTER rip, r11 ++ RESTORE_REST ++ pushq %r11 ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rip, 0 ++ ret ++ CFI_ENDPROC ++END(ptregscall_common) ++ ++ENTRY(stub_execve) ++ CFI_STARTPROC ++ popq %r11 ++ CFI_ADJUST_CFA_OFFSET -8 ++ CFI_REGISTER rip, r11 ++ SAVE_REST ++ FIXUP_TOP_OF_STACK %r11 ++ call sys_execve ++ RESTORE_TOP_OF_STACK %r11 ++ movq %rax,RAX(%rsp) ++ RESTORE_REST ++ jmp int_ret_from_sys_call ++ CFI_ENDPROC ++END(stub_execve) ++ ++/* ++ * sigreturn is special because it needs to restore all registers on return. ++ * This cannot be done with SYSRET, so use the IRET return path instead. ++ */ ++ENTRY(stub_rt_sigreturn) ++ CFI_STARTPROC ++ addq $8, %rsp ++ CFI_ADJUST_CFA_OFFSET -8 ++ SAVE_REST ++ movq %rsp,%rdi ++ FIXUP_TOP_OF_STACK %r11 ++ call sys_rt_sigreturn ++ movq %rax,RAX(%rsp) # fixme, this could be done at the higher layer ++ RESTORE_REST ++ jmp int_ret_from_sys_call ++ CFI_ENDPROC ++END(stub_rt_sigreturn) ++ ++/* initial frame state for interrupts (and exceptions without error code) */ ++#define INTR_FRAME _frame (RIP-0x10); \ ++ CFI_REL_OFFSET rcx,0; \ ++ CFI_REL_OFFSET r11,8 ++ ++/* initial frame state for exceptions with error code (and interrupts with ++ vector already pushed) */ ++#define XCPT_FRAME _frame (RIP-0x18); \ ++ CFI_REL_OFFSET rcx,0; \ ++ CFI_REL_OFFSET r11,8 ++ ++/* ++ * Interrupt exit. ++ * ++ */ ++ ++retint_check: ++ CFI_DEFAULT_STACK adj=1 ++ LOCKDEP_SYS_EXIT_IRQ ++ movl threadinfo_flags(%rcx),%edx ++ andl %edi,%edx ++ CFI_REMEMBER_STATE ++ jnz retint_careful ++retint_restore_args: /* return to kernel space */ ++ movl EFLAGS-REST_SKIP(%rsp), %eax ++ shr $9, %eax # EAX[0] == IRET_EFLAGS.IF ++ XEN_GET_VCPU_INFO(%rsi) ++ andb evtchn_upcall_mask(%rsi),%al ++ andb $1,%al # EAX[0] == IRET_EFLAGS.IF & event_mask ++ jnz restore_all_enable_events # != 0 => enable event delivery ++ XEN_PUT_VCPU_INFO(%rsi) ++ ++ RESTORE_ARGS 0,8,0 ++ HYPERVISOR_IRET 0 ++ ++ /* edi: workmask, edx: work */ ++retint_careful: ++ CFI_RESTORE_STATE ++ bt $TIF_NEED_RESCHED,%edx ++ jnc retint_signal ++ TRACE_IRQS_ON ++ XEN_UNBLOCK_EVENTS(%rsi) ++/* sti */ ++ pushq %rdi ++ CFI_ADJUST_CFA_OFFSET 8 ++ call schedule ++ popq %rdi ++ CFI_ADJUST_CFA_OFFSET -8 ++ GET_THREAD_INFO(%rcx) ++ XEN_BLOCK_EVENTS(%rsi) ++/* cli */ ++ TRACE_IRQS_OFF ++ jmp retint_check ++ ++retint_signal: ++ testl $(_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY),%edx ++ jz retint_restore_args ++ TRACE_IRQS_ON ++ XEN_UNBLOCK_EVENTS(%rsi) ++ SAVE_REST ++ movq $-1,ORIG_RAX(%rsp) ++ xorl %esi,%esi # oldset ++ movq %rsp,%rdi # &pt_regs ++ call do_notify_resume ++ RESTORE_REST ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ movl $_TIF_NEED_RESCHED,%edi ++ GET_THREAD_INFO(%rcx) ++ jmp retint_check ++ ++#ifdef CONFIG_PREEMPT ++ /* Returning to kernel space. Check if we need preemption */ ++ /* rcx: threadinfo. interrupts off. */ ++ENTRY(retint_kernel) ++ cmpl $0,threadinfo_preempt_count(%rcx) ++ jnz retint_restore_args ++ bt $TIF_NEED_RESCHED,threadinfo_flags(%rcx) ++ jnc retint_restore_args ++ bt $9,EFLAGS-ARGOFFSET(%rsp) /* interrupts off? */ ++ jnc retint_restore_args ++ call preempt_schedule_irq ++ jmp retint_kernel /* check again */ ++#endif ++ ++ CFI_ENDPROC ++END(retint_check) ++ ++#ifndef CONFIG_XEN ++/* ++ * APIC interrupts. ++ */ ++ .macro apicinterrupt num,func ++ INTR_FRAME ++ pushq $~(\num) ++ CFI_ADJUST_CFA_OFFSET 8 ++ interrupt \func ++ jmp error_entry ++ CFI_ENDPROC ++ .endm ++ ++ENTRY(thermal_interrupt) ++ apicinterrupt THERMAL_APIC_VECTOR,smp_thermal_interrupt ++END(thermal_interrupt) ++ ++ENTRY(threshold_interrupt) ++ apicinterrupt THRESHOLD_APIC_VECTOR,mce_threshold_interrupt ++END(threshold_interrupt) ++ ++#ifdef CONFIG_SMP ++ENTRY(reschedule_interrupt) ++ apicinterrupt RESCHEDULE_VECTOR,smp_reschedule_interrupt ++END(reschedule_interrupt) ++ ++ .macro INVALIDATE_ENTRY num ++ENTRY(invalidate_interrupt\num) ++ apicinterrupt INVALIDATE_TLB_VECTOR_START+\num,smp_invalidate_interrupt ++END(invalidate_interrupt\num) ++ .endm ++ ++ INVALIDATE_ENTRY 0 ++ INVALIDATE_ENTRY 1 ++ INVALIDATE_ENTRY 2 ++ INVALIDATE_ENTRY 3 ++ INVALIDATE_ENTRY 4 ++ INVALIDATE_ENTRY 5 ++ INVALIDATE_ENTRY 6 ++ INVALIDATE_ENTRY 7 ++ ++ENTRY(call_function_interrupt) ++ apicinterrupt CALL_FUNCTION_VECTOR,smp_call_function_interrupt ++END(call_function_interrupt) ++ENTRY(irq_move_cleanup_interrupt) ++ apicinterrupt IRQ_MOVE_CLEANUP_VECTOR,smp_irq_move_cleanup_interrupt ++END(irq_move_cleanup_interrupt) ++#endif ++ ++ENTRY(apic_timer_interrupt) ++ apicinterrupt LOCAL_TIMER_VECTOR,smp_apic_timer_interrupt ++END(apic_timer_interrupt) ++ ++ENTRY(error_interrupt) ++ apicinterrupt ERROR_APIC_VECTOR,smp_error_interrupt ++END(error_interrupt) ++ ++ENTRY(spurious_interrupt) ++ apicinterrupt SPURIOUS_APIC_VECTOR,smp_spurious_interrupt ++END(spurious_interrupt) ++#endif /* !CONFIG_XEN */ ++ ++/* ++ * Exception entry points. ++ */ ++ .macro zeroentry sym ++ INTR_FRAME ++ movq (%rsp),%rcx ++ CFI_RESTORE rcx ++ movq 8(%rsp),%r11 ++ CFI_RESTORE r11 ++ addq $0x10,%rsp /* skip rcx and r11 */ ++ CFI_ADJUST_CFA_OFFSET -0x10 ++ pushq $0 /* push error code/oldrax */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ pushq %rax /* push real oldrax to the rdi slot */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rax,0 ++ leaq \sym(%rip),%rax ++ jmp error_entry ++ CFI_ENDPROC ++ .endm ++ ++ .macro errorentry sym ++ XCPT_FRAME ++ movq (%rsp),%rcx ++ CFI_RESTORE rcx ++ movq 8(%rsp),%r11 ++ CFI_RESTORE r11 ++ addq $0x10,%rsp /* rsp points to the error code */ ++ CFI_ADJUST_CFA_OFFSET -0x10 ++ pushq %rax ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rax,0 ++ leaq \sym(%rip),%rax ++ jmp error_entry ++ CFI_ENDPROC ++ .endm ++ ++#if 0 /* not XEN */ ++ /* error code is on the stack already */ ++ /* handle NMI like exceptions that can happen everywhere */ ++ .macro paranoidentry sym, ist=0, irqtrace=1 ++ movq (%rsp),%rcx ++ movq 8(%rsp),%r11 ++ addq $0x10,%rsp /* skip rcx and r11 */ ++ SAVE_ALL ++ cld ++#if 0 /* not XEN */ ++ movl $1,%ebx ++ movl $MSR_GS_BASE,%ecx ++ rdmsr ++ testl %edx,%edx ++ js 1f ++ swapgs ++ xorl %ebx,%ebx ++1: ++#endif ++ .if \ist ++ movq %gs:pda_data_offset, %rbp ++ .endif ++ movq %rsp,%rdi ++ movq ORIG_RAX(%rsp),%rsi ++ movq $-1,ORIG_RAX(%rsp) ++ .if \ist ++ subq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) ++ .endif ++ call \sym ++ .if \ist ++ addq $EXCEPTION_STKSZ, per_cpu__init_tss + TSS_ist + (\ist - 1) * 8(%rbp) ++ .endif ++/* cli */ ++ XEN_BLOCK_EVENTS(%rsi) ++ .if \irqtrace ++ TRACE_IRQS_OFF ++ .endif ++ .endm ++ ++ /* ++ * "Paranoid" exit path from exception stack. ++ * Paranoid because this is used by NMIs and cannot take ++ * any kernel state for granted. ++ * We don't do kernel preemption checks here, because only ++ * NMI should be common and it does not enable IRQs and ++ * cannot get reschedule ticks. ++ * ++ * "trace" is 0 for the NMI handler only, because irq-tracing ++ * is fundamentally NMI-unsafe. (we cannot change the soft and ++ * hard flags at once, atomically) ++ */ ++ .macro paranoidexit trace=1 ++ /* ebx: no swapgs flag */ ++paranoid_exit\trace: ++ testl %ebx,%ebx /* swapgs needed? */ ++ jnz paranoid_restore\trace ++ testl $3,CS(%rsp) ++ jnz paranoid_userspace\trace ++paranoid_swapgs\trace: ++ .if \trace ++ TRACE_IRQS_IRETQ 0 ++ .endif ++ swapgs ++paranoid_restore\trace: ++ RESTORE_ALL 8 ++ iretq ++paranoid_userspace\trace: ++ GET_THREAD_INFO(%rcx) ++ movl threadinfo_flags(%rcx),%ebx ++ andl $_TIF_WORK_MASK,%ebx ++ jz paranoid_swapgs\trace ++ movq %rsp,%rdi /* &pt_regs */ ++ call sync_regs ++ movq %rax,%rsp /* switch stack for scheduling */ ++ testl $_TIF_NEED_RESCHED,%ebx ++ jnz paranoid_schedule\trace ++ movl %ebx,%edx /* arg3: thread flags */ ++ .if \trace ++ TRACE_IRQS_ON ++ .endif ++ sti ++ xorl %esi,%esi /* arg2: oldset */ ++ movq %rsp,%rdi /* arg1: &pt_regs */ ++ call do_notify_resume ++ cli ++ .if \trace ++ TRACE_IRQS_OFF ++ .endif ++ jmp paranoid_userspace\trace ++paranoid_schedule\trace: ++ .if \trace ++ TRACE_IRQS_ON ++ .endif ++ sti ++ call schedule ++ cli ++ .if \trace ++ TRACE_IRQS_OFF ++ .endif ++ jmp paranoid_userspace\trace ++ CFI_ENDPROC ++ .endm ++#endif ++ ++/* ++ * Exception entry point. This expects an error code/orig_rax on the stack ++ * and the exception handler in %rax. ++ */ ++KPROBE_ENTRY(error_entry) ++ _frame RDI ++ CFI_REL_OFFSET rax,0 ++ /* rdi slot contains rax, oldrax contains error code */ ++ cld ++ subq $14*8,%rsp ++ CFI_ADJUST_CFA_OFFSET (14*8) ++ movq %rsi,13*8(%rsp) ++ CFI_REL_OFFSET rsi,RSI ++ movq 14*8(%rsp),%rsi /* load rax from rdi slot */ ++ CFI_REGISTER rax,rsi ++ movq %rdx,12*8(%rsp) ++ CFI_REL_OFFSET rdx,RDX ++ movq %rcx,11*8(%rsp) ++ CFI_REL_OFFSET rcx,RCX ++ movq %rsi,10*8(%rsp) /* store rax */ ++ CFI_REL_OFFSET rax,RAX ++ movq %r8, 9*8(%rsp) ++ CFI_REL_OFFSET r8,R8 ++ movq %r9, 8*8(%rsp) ++ CFI_REL_OFFSET r9,R9 ++ movq %r10,7*8(%rsp) ++ CFI_REL_OFFSET r10,R10 ++ movq %r11,6*8(%rsp) ++ CFI_REL_OFFSET r11,R11 ++ movq %rbx,5*8(%rsp) ++ CFI_REL_OFFSET rbx,RBX ++ movq %rbp,4*8(%rsp) ++ CFI_REL_OFFSET rbp,RBP ++ movq %r12,3*8(%rsp) ++ CFI_REL_OFFSET r12,R12 ++ movq %r13,2*8(%rsp) ++ CFI_REL_OFFSET r13,R13 ++ movq %r14,1*8(%rsp) ++ CFI_REL_OFFSET r14,R14 ++ movq %r15,(%rsp) ++ CFI_REL_OFFSET r15,R15 ++#if 0 ++ cmpl $__KERNEL_CS,CS(%rsp) ++ CFI_REMEMBER_STATE ++ je error_kernelspace ++#endif ++error_call_handler: ++ movq %rdi, RDI(%rsp) ++ CFI_REL_OFFSET rdi,RDI ++ movq %rsp,%rdi ++ movq ORIG_RAX(%rsp),%rsi # get error code ++ movq $-1,ORIG_RAX(%rsp) ++ call *%rax ++error_exit: ++ RESTORE_REST ++/* cli */ ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ GET_THREAD_INFO(%rcx) ++ testb $3,CS-ARGOFFSET(%rsp) ++ jz retint_kernel ++ LOCKDEP_SYS_EXIT_IRQ ++ movl threadinfo_flags(%rcx),%edx ++ movl $_TIF_WORK_MASK,%edi ++ andl %edi,%edx ++ jnz retint_careful ++ jmp retint_restore_args ++ ++#if 0 ++ /* ++ * We need to re-write the logic here because we don't do iretq to ++ * to return to user mode. It's still possible that we get trap/fault ++ * in the kernel (when accessing buffers pointed to by system calls, ++ * for example). ++ * ++ */ ++ CFI_RESTORE_STATE ++error_kernelspace: ++ incl %ebx ++ /* There are two places in the kernel that can potentially fault with ++ usergs. Handle them here. The exception handlers after ++ iret run with kernel gs again, so don't set the user space flag. ++ B stepping K8s sometimes report an truncated RIP for IRET ++ exceptions returning to compat mode. Check for these here too. */ ++ leaq iret_label(%rip),%rbp ++ cmpq %rbp,RIP(%rsp) ++ je error_swapgs ++ movl %ebp,%ebp /* zero extend */ ++ cmpq %rbp,RIP(%rsp) ++ je error_swapgs ++ cmpq $gs_change,RIP(%rsp) ++ je error_swapgs ++ jmp error_sti ++#endif ++ CFI_ENDPROC ++KPROBE_END(error_entry) ++ ++ENTRY(hypervisor_callback) ++ zeroentry do_hypervisor_callback ++END(hypervisor_callback) ++ ++/* ++ * Copied from arch/xen/i386/kernel/entry.S ++ */ ++# A note on the "critical region" in our callback handler. ++# We want to avoid stacking callback handlers due to events occurring ++# during handling of the last event. To do this, we keep events disabled ++# until we've done all processing. HOWEVER, we must enable events before ++# popping the stack frame (can't be done atomically) and so it would still ++# be possible to get enough handler activations to overflow the stack. ++# Although unlikely, bugs of that kind are hard to track down, so we'd ++# like to avoid the possibility. ++# So, on entry to the handler we detect whether we interrupted an ++# existing activation in its critical region -- if so, we pop the current ++# activation and restart the handler using the previous one. ++ENTRY(do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs) ++ CFI_STARTPROC ++# Since we don't modify %rdi, evtchn_do_upall(struct *pt_regs) will ++# see the correct pointer to the pt_regs ++ movq %rdi, %rsp # we don't return, adjust the stack frame ++ CFI_ENDPROC ++ CFI_DEFAULT_STACK ++11: incl %gs:pda_irqcount ++ movq %rsp,%rbp ++ CFI_DEF_CFA_REGISTER rbp ++ cmovzq %gs:pda_irqstackptr,%rsp ++ pushq %rbp # backlink for old unwinder ++ call evtchn_do_upcall ++ popq %rsp ++ CFI_DEF_CFA_REGISTER rsp ++ decl %gs:pda_irqcount ++ jmp error_exit ++ CFI_ENDPROC ++END(do_hypervisor_callback) ++ ++ ALIGN ++restore_all_enable_events: ++ CFI_DEFAULT_STACK adj=1 ++ TRACE_IRQS_ON ++ XEN_UNBLOCK_EVENTS(%rsi) # %rsi is already set up... ++ ++scrit: /**** START OF CRITICAL REGION ****/ ++ XEN_TEST_PENDING(%rsi) ++ CFI_REMEMBER_STATE ++ jnz 14f # process more events if necessary... ++ XEN_PUT_VCPU_INFO(%rsi) ++ RESTORE_ARGS 0,8,0 ++ HYPERVISOR_IRET 0 ++ ++ CFI_RESTORE_STATE ++14: XEN_LOCKED_BLOCK_EVENTS(%rsi) ++ XEN_PUT_VCPU_INFO(%rsi) ++ SAVE_REST ++ movq %rsp,%rdi # set the argument again ++ jmp 11b ++ CFI_ENDPROC ++ecrit: /**** END OF CRITICAL REGION ****/ ++# At this point, unlike on x86-32, we don't do the fixup to simplify the ++# code and the stack frame is more complex on x86-64. ++# When the kernel is interrupted in the critical section, the kernel ++# will do IRET in that case, and everything will be restored at that point, ++# i.e. it just resumes from the next instruction interrupted with the same context. ++ ++# Hypervisor uses this for application faults while it executes. ++# We get here for two reasons: ++# 1. Fault while reloading DS, ES, FS or GS ++# 2. Fault while executing IRET ++# Category 1 we do not need to fix up as Xen has already reloaded all segment ++# registers that could be reloaded and zeroed the others. ++# Category 2 we fix up by killing the current process. We cannot use the ++# normal Linux return path in this case because if we use the IRET hypercall ++# to pop the stack frame we end up in an infinite loop of failsafe callbacks. ++# We distinguish between categories by comparing each saved segment register ++# with its current contents: any discrepancy means we in category 1. ++ENTRY(failsafe_callback) ++ _frame (RIP-0x30) ++ CFI_REL_OFFSET rcx, 0 ++ CFI_REL_OFFSET r11, 8 ++ movw %ds,%cx ++ cmpw %cx,0x10(%rsp) ++ CFI_REMEMBER_STATE ++ jne 1f ++ movw %es,%cx ++ cmpw %cx,0x18(%rsp) ++ jne 1f ++ movw %fs,%cx ++ cmpw %cx,0x20(%rsp) ++ jne 1f ++ movw %gs,%cx ++ cmpw %cx,0x28(%rsp) ++ jne 1f ++ /* All segments match their saved values => Category 2 (Bad IRET). */ ++ movq (%rsp),%rcx ++ CFI_RESTORE rcx ++ movq 8(%rsp),%r11 ++ CFI_RESTORE r11 ++ addq $0x30,%rsp ++ CFI_ADJUST_CFA_OFFSET -0x30 ++ movq $11,%rdi /* SIGSEGV */ ++ jmp do_exit ++ CFI_RESTORE_STATE ++1: /* Segment mismatch => Category 1 (Bad segment). Retry the IRET. */ ++ movq (%rsp),%rcx ++ CFI_RESTORE rcx ++ movq 8(%rsp),%r11 ++ CFI_RESTORE r11 ++ addq $0x30,%rsp ++ CFI_ADJUST_CFA_OFFSET -0x30 ++ pushq $0 ++ CFI_ADJUST_CFA_OFFSET 8 ++ SAVE_ALL ++ jmp error_exit ++ CFI_ENDPROC ++#if 0 ++ .section __ex_table,"a" ++ .align 8 ++ .quad gs_change,bad_gs ++ .previous ++ .section .fixup,"ax" ++ /* running with kernelgs */ ++bad_gs: ++/* swapgs */ /* switch back to user gs */ ++ xorl %eax,%eax ++ movl %eax,%gs ++ jmp 2b ++ .previous ++#endif ++ ++/* ++ * Create a kernel thread. ++ * ++ * C extern interface: ++ * extern long kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) ++ * ++ * asm input arguments: ++ * rdi: fn, rsi: arg, rdx: flags ++ */ ++ENTRY(kernel_thread) ++ CFI_STARTPROC ++ FAKE_STACK_FRAME $child_rip ++ SAVE_ALL ++ ++ # rdi: flags, rsi: usp, rdx: will be &pt_regs ++ movq %rdx,%rdi ++ orq kernel_thread_flags(%rip),%rdi ++ movq $-1, %rsi ++ movq %rsp, %rdx ++ ++ xorl %r8d,%r8d ++ xorl %r9d,%r9d ++ ++ # clone now ++ call do_fork ++ movq %rax,RAX(%rsp) ++ xorl %edi,%edi ++ ++ /* ++ * It isn't worth to check for reschedule here, ++ * so internally to the x86_64 port you can rely on kernel_thread() ++ * not to reschedule the child before returning, this avoids the need ++ * of hacks for example to fork off the per-CPU idle tasks. ++ * [Hopefully no generic code relies on the reschedule -AK] ++ */ ++ RESTORE_ALL ++ UNFAKE_STACK_FRAME ++ ret ++ CFI_ENDPROC ++ENDPROC(kernel_thread) ++ ++child_rip: ++ pushq $0 # fake return address ++ CFI_STARTPROC ++ /* ++ * Here we are in the child and the registers are set as they were ++ * at kernel_thread() invocation in the parent. ++ */ ++ movq %rdi, %rax ++ movq %rsi, %rdi ++ call *%rax ++ # exit ++ mov %eax, %edi ++ call do_exit ++ CFI_ENDPROC ++ENDPROC(child_rip) ++ ++/* ++ * execve(). This function needs to use IRET, not SYSRET, to set up all state properly. ++ * ++ * C extern interface: ++ * extern long execve(char *name, char **argv, char **envp) ++ * ++ * asm input arguments: ++ * rdi: name, rsi: argv, rdx: envp ++ * ++ * We want to fallback into: ++ * extern long sys_execve(char *name, char **argv,char **envp, struct pt_regs regs) ++ * ++ * do_sys_execve asm fallback arguments: ++ * rdi: name, rsi: argv, rdx: envp, fake frame on the stack ++ */ ++ENTRY(kernel_execve) ++ CFI_STARTPROC ++ FAKE_STACK_FRAME $0 ++ SAVE_ALL ++ call sys_execve ++ movq %rax, RAX(%rsp) ++ RESTORE_REST ++ testq %rax,%rax ++ jne 1f ++ jmp int_ret_from_sys_call ++1: RESTORE_ARGS ++ UNFAKE_STACK_FRAME ++ ret ++ CFI_ENDPROC ++ENDPROC(kernel_execve) ++ ++KPROBE_ENTRY(page_fault) ++ errorentry do_page_fault ++KPROBE_END(page_fault) ++ ++ENTRY(coprocessor_error) ++ zeroentry do_coprocessor_error ++END(coprocessor_error) ++ ++ENTRY(simd_coprocessor_error) ++ zeroentry do_simd_coprocessor_error ++END(simd_coprocessor_error) ++ ++ENTRY(device_not_available) ++ zeroentry math_state_restore ++END(device_not_available) ++ ++ /* runs on exception stack */ ++KPROBE_ENTRY(debug) ++/* INTR_FRAME ++ pushq $0 ++ CFI_ADJUST_CFA_OFFSET 8 */ ++ zeroentry do_debug ++/* paranoidexit ++ CFI_ENDPROC */ ++KPROBE_END(debug) ++ ++KPROBE_ENTRY(nmi) ++ zeroentry do_nmi_callback ++KPROBE_END(nmi) ++do_nmi_callback: ++ CFI_STARTPROC ++ addq $8, %rsp ++ CFI_ENDPROC ++ CFI_DEFAULT_STACK ++ call do_nmi ++ orl $NMI_MASK,EFLAGS(%rsp) ++ RESTORE_REST ++ XEN_BLOCK_EVENTS(%rsi) ++ TRACE_IRQS_OFF ++ GET_THREAD_INFO(%rcx) ++ jmp retint_restore_args ++ CFI_ENDPROC ++END(do_nmi_callback) ++ ++KPROBE_ENTRY(int3) ++/* INTR_FRAME ++ pushq $0 ++ CFI_ADJUST_CFA_OFFSET 8 */ ++ zeroentry do_int3 ++/* jmp paranoid_exit1 ++ CFI_ENDPROC */ ++KPROBE_END(int3) ++ ++ENTRY(overflow) ++ zeroentry do_overflow ++END(overflow) ++ ++ENTRY(bounds) ++ zeroentry do_bounds ++END(bounds) ++ ++ENTRY(invalid_op) ++ zeroentry do_invalid_op ++END(invalid_op) ++ ++ENTRY(coprocessor_segment_overrun) ++ zeroentry do_coprocessor_segment_overrun ++END(coprocessor_segment_overrun) ++ ++ENTRY(reserved) ++ zeroentry do_reserved ++END(reserved) ++ ++#if 0 ++ /* runs on exception stack */ ++ENTRY(double_fault) ++ XCPT_FRAME ++ paranoidentry do_double_fault ++ jmp paranoid_exit1 ++ CFI_ENDPROC ++END(double_fault) ++#endif ++ ++ENTRY(invalid_TSS) ++ errorentry do_invalid_TSS ++END(invalid_TSS) ++ ++ENTRY(segment_not_present) ++ errorentry do_segment_not_present ++END(segment_not_present) ++ ++ /* runs on exception stack */ ++ENTRY(stack_segment) ++/* XCPT_FRAME ++ paranoidentry do_stack_segment */ ++ errorentry do_stack_segment ++/* jmp paranoid_exit1 ++ CFI_ENDPROC */ ++END(stack_segment) ++ ++KPROBE_ENTRY(general_protection) ++ errorentry do_general_protection ++KPROBE_END(general_protection) ++ ++ENTRY(alignment_check) ++ errorentry do_alignment_check ++END(alignment_check) ++ ++ENTRY(divide_error) ++ zeroentry do_divide_error ++END(divide_error) ++ ++ENTRY(spurious_interrupt_bug) ++ zeroentry do_spurious_interrupt_bug ++END(spurious_interrupt_bug) ++ ++#ifdef CONFIG_X86_MCE ++ /* runs on exception stack */ ++ENTRY(machine_check) ++ INTR_FRAME ++ pushq $0 ++ CFI_ADJUST_CFA_OFFSET 8 ++ paranoidentry do_machine_check ++ jmp paranoid_exit1 ++ CFI_ENDPROC ++END(machine_check) ++#endif ++ ++/* Call softirq on interrupt stack. Interrupts are off. */ ++ENTRY(call_softirq) ++ CFI_STARTPROC ++ push %rbp ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rbp,0 ++ mov %rsp,%rbp ++ CFI_DEF_CFA_REGISTER rbp ++ incl %gs:pda_irqcount ++ cmove %gs:pda_irqstackptr,%rsp ++ push %rbp # backlink for old unwinder ++ call __do_softirq ++ leaveq ++ CFI_DEF_CFA_REGISTER rsp ++ CFI_ADJUST_CFA_OFFSET -8 ++ decl %gs:pda_irqcount ++ ret ++ CFI_ENDPROC ++ENDPROC(call_softirq) ++ ++KPROBE_ENTRY(ignore_sysret) ++ CFI_STARTPROC ++ mov $-ENOSYS,%eax ++ HYPERVISOR_IRET 0 ++ CFI_ENDPROC ++ENDPROC(ignore_sysret) +diff -Naur ubuntu-hardy/arch/x86/kernel/fixup.c ubuntu-hardy-xen/arch/x86/kernel/fixup.c +--- ubuntu-hardy/arch/x86/kernel/fixup.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/fixup.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,88 @@ ++/****************************************************************************** ++ * fixup.c ++ * ++ * Binary-rewriting of certain IA32 instructions, on notification by Xen. ++ * Used to avoid repeated slow emulation of common instructions used by the ++ * user-space TLS (Thread-Local Storage) libraries. ++ * ++ * **** NOTE **** ++ * Issues with the binary rewriting have caused it to be removed. Instead ++ * we rely on Xen's emulator to boot the kernel, and then print a banner ++ * message recommending that the user disables /lib/tls. ++ * ++ * Copyright (c) 2004, K A Fraser ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define DP(_f, _args...) printk(KERN_ALERT " " _f "\n" , ## _args ) ++ ++fastcall void do_fixup_4gb_segment(struct pt_regs *regs, long error_code) ++{ ++ static unsigned long printed = 0; ++ char info[100]; ++ int i; ++ ++ /* Ignore statically-linked init. */ ++ if (current->tgid == 1) ++ return; ++ ++ HYPERVISOR_vm_assist( ++ VMASST_CMD_disable, VMASST_TYPE_4gb_segments_notify); ++ ++ if (test_and_set_bit(0, &printed)) ++ return; ++ ++ sprintf(info, "%s (pid=%d)", current->comm, current->tgid); ++ ++ DP(""); ++ DP("***************************************************************"); ++ DP("***************************************************************"); ++ DP("** WARNING: Currently emulating unsupported memory accesses **"); ++ DP("** in /lib/tls glibc libraries. The emulation is **"); ++ DP("** slow. To ensure full performance you should **"); ++ DP("** install a 'xen-friendly' (nosegneg) version of **"); ++ DP("** the library, or disable tls support by executing **"); ++ DP("** the following as root: **"); ++ DP("** mv /lib/tls /lib/tls.disabled **"); ++ DP("** Offending process: %-38.38s **", info); ++ DP("***************************************************************"); ++ DP("***************************************************************"); ++ DP(""); ++ ++ for (i = 5; i > 0; i--) { ++ touch_softlockup_watchdog(); ++ printk("Pausing... %d", i); ++ mdelay(1000); ++ printk("\b\b\b\b\b\b\b\b\b\b\b\b"); ++ } ++ ++ printk("Continuing...\n\n"); ++} ++ ++static int __init fixup_init(void) ++{ ++ HYPERVISOR_vm_assist( ++ VMASST_CMD_enable, VMASST_TYPE_4gb_segments_notify); ++ return 0; ++} ++__initcall(fixup_init); +diff -Naur ubuntu-hardy/arch/x86/kernel/genapic_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/genapic_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/genapic_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/genapic_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,93 @@ ++/* ++ * Copyright 2004 James Cleverdon, IBM. ++ * Subject to the GNU Public License, v.2 ++ * ++ * Generic APIC sub-arch probe layer. ++ * ++ * Hacked for x86-64 by James Cleverdon from i386 architecture code by ++ * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and ++ * James Cleverdon. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#ifdef CONFIG_ACPI ++#include ++#endif ++ ++/* ++ * which logical CPU number maps to which CPU (physical APIC ID) ++ * ++ * The following static array is used during kernel startup ++ * and the x86_cpu_to_apicid_ptr contains the address of the ++ * array during this time. Is it zeroed when the per_cpu ++ * data area is removed. ++ */ ++#ifndef CONFIG_XEN ++u8 x86_cpu_to_apicid_init[NR_CPUS] __initdata ++ = { [0 ... NR_CPUS-1] = BAD_APICID }; ++void *x86_cpu_to_apicid_ptr; ++#endif ++DEFINE_PER_CPU(u8, x86_cpu_to_apicid) = BAD_APICID; ++EXPORT_PER_CPU_SYMBOL(x86_cpu_to_apicid); ++ ++#ifndef CONFIG_XEN ++struct genapic __read_mostly *genapic = &apic_flat; ++#else ++extern struct genapic apic_xen; ++struct genapic __read_mostly *genapic = &apic_xen; ++#endif ++ ++ ++/* ++ * Check the APIC IDs in bios_cpu_apicid and choose the APIC mode. ++ */ ++void __init setup_apic_routing(void) ++{ ++#ifndef CONFIG_XEN ++#ifdef CONFIG_ACPI ++ /* ++ * Quirk: some x86_64 machines can only use physical APIC mode ++ * regardless of how many processors are present (x86_64 ES7000 ++ * is an example). ++ */ ++ if (acpi_gbl_FADT.header.revision > FADT2_REVISION_ID && ++ (acpi_gbl_FADT.flags & ACPI_FADT_APIC_PHYSICAL)) ++ genapic = &apic_physflat; ++ else ++#endif ++ ++ if (cpus_weight(cpu_possible_map) <= 8) ++ genapic = &apic_flat; ++ else ++ genapic = &apic_physflat; ++ ++#else ++ /* hardcode to xen apic functions */ ++ genapic = &apic_xen; ++#endif ++ printk(KERN_INFO "Setting APIC routing to %s\n", genapic->name); ++} ++ ++/* Same for both flat and physical. */ ++ ++#ifdef CONFIG_XEN ++extern void xen_send_IPI_shortcut(unsigned int shortcut, int vector); ++#endif ++ ++void send_IPI_self(int vector) ++{ ++#ifndef CONFIG_XEN ++ __send_IPI_shortcut(APIC_DEST_SELF, vector, APIC_DEST_PHYSICAL); ++#else ++ xen_send_IPI_shortcut(APIC_DEST_SELF, vector); ++#endif ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/genapic_xen_64.c ubuntu-hardy-xen/arch/x86/kernel/genapic_xen_64.c +--- ubuntu-hardy/arch/x86/kernel/genapic_xen_64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/genapic_xen_64.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,166 @@ ++/* ++ * Copyright 2004 James Cleverdon, IBM. ++ * Subject to the GNU Public License, v.2 ++ * ++ * Xen APIC subarch code. Maximum 8 CPUs, logical delivery. ++ * ++ * Hacked for x86-64 by James Cleverdon from i386 architecture code by ++ * Martin Bligh, Andi Kleen, James Bottomley, John Stultz, and ++ * James Cleverdon. ++ * ++ * Hacked to pieces for Xen by Chris Wright. ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_XEN_PRIVILEGED_GUEST ++#include ++#else ++#include ++#endif ++#include ++#include ++ ++DECLARE_PER_CPU(int, ipi_to_irq[NR_IPIS]); ++ ++static inline void __send_IPI_one(unsigned int cpu, int vector) ++{ ++ int irq = per_cpu(ipi_to_irq, cpu)[vector]; ++ BUG_ON(irq < 0); ++ notify_remote_via_irq(irq); ++} ++ ++void xen_send_IPI_shortcut(unsigned int shortcut, int vector) ++{ ++ int cpu; ++ ++ switch (shortcut) { ++ case APIC_DEST_SELF: ++ __send_IPI_one(smp_processor_id(), vector); ++ break; ++ case APIC_DEST_ALLBUT: ++ for (cpu = 0; cpu < NR_CPUS; ++cpu) { ++ if (cpu == smp_processor_id()) ++ continue; ++ if (cpu_isset(cpu, cpu_online_map)) { ++ __send_IPI_one(cpu, vector); ++ } ++ } ++ break; ++ case APIC_DEST_ALLINC: ++ for (cpu = 0; cpu < NR_CPUS; ++cpu) { ++ if (cpu_isset(cpu, cpu_online_map)) { ++ __send_IPI_one(cpu, vector); ++ } ++ } ++ break; ++ default: ++ printk("XXXXXX __send_IPI_shortcut %08x vector %d\n", shortcut, ++ vector); ++ break; ++ } ++} ++ ++static cpumask_t xen_target_cpus(void) ++{ ++ return cpu_online_map; ++} ++ ++static cpumask_t xen_vector_allocation_domain(int cpu) ++{ ++ cpumask_t domain = CPU_MASK_NONE; ++ cpu_set(cpu, domain); ++ return domain; ++} ++ ++/* ++ * Set up the logical destination ID. ++ * Do nothing, not called now. ++ */ ++static void xen_init_apic_ldr(void) ++{ ++ Dprintk("%s\n", __FUNCTION__); ++ return; ++} ++ ++static void xen_send_IPI_allbutself(int vector) ++{ ++ /* ++ * if there are no other CPUs in the system then ++ * we get an APIC send error if we try to broadcast. ++ * thus we have to avoid sending IPIs in this case. ++ */ ++ Dprintk("%s\n", __FUNCTION__); ++ if (num_online_cpus() > 1) ++ xen_send_IPI_shortcut(APIC_DEST_ALLBUT, vector); ++} ++ ++static void xen_send_IPI_all(int vector) ++{ ++ Dprintk("%s\n", __FUNCTION__); ++ xen_send_IPI_shortcut(APIC_DEST_ALLINC, vector); ++} ++ ++static void xen_send_IPI_mask(cpumask_t cpumask, int vector) ++{ ++ unsigned long mask = cpus_addr(cpumask)[0]; ++ unsigned int cpu; ++ unsigned long flags; ++ ++ Dprintk("%s\n", __FUNCTION__); ++ local_irq_save(flags); ++ WARN_ON(mask & ~cpus_addr(cpu_online_map)[0]); ++ ++ for (cpu = 0; cpu < NR_CPUS; ++cpu) { ++ if (cpu_isset(cpu, cpumask)) { ++ __send_IPI_one(cpu, vector); ++ } ++ } ++ local_irq_restore(flags); ++} ++ ++#ifdef CONFIG_XEN_PRIVILEGED_GUEST ++static int xen_apic_id_registered(void) ++{ ++ /* better be set */ ++ Dprintk("%s\n", __FUNCTION__); ++ return physid_isset(smp_processor_id(), phys_cpu_present_map); ++} ++#endif ++ ++static unsigned int xen_cpu_mask_to_apicid(cpumask_t cpumask) ++{ ++ Dprintk("%s\n", __FUNCTION__); ++ return cpus_addr(cpumask)[0] & APIC_ALL_CPUS; ++} ++ ++static unsigned int phys_pkg_id(int index_msb) ++{ ++ u32 ebx; ++ ++ Dprintk("%s\n", __FUNCTION__); ++ ebx = cpuid_ebx(1); ++ return ((ebx >> 24) & 0xFF) >> index_msb; ++} ++ ++struct genapic apic_xen = { ++ .name = "xen", ++#ifdef CONFIG_XEN_PRIVILEGED_GUEST ++ .int_delivery_mode = dest_LowestPrio, ++#endif ++ .int_dest_mode = 1, ++ .target_cpus = xen_target_cpus, ++ .vector_allocation_domain = xen_vector_allocation_domain, ++#ifdef CONFIG_XEN_PRIVILEGED_GUEST ++ .apic_id_registered = xen_apic_id_registered, ++#endif ++ .init_apic_ldr = xen_init_apic_ldr, ++ .send_IPI_all = xen_send_IPI_all, ++ .send_IPI_allbutself = xen_send_IPI_allbutself, ++ .send_IPI_mask = xen_send_IPI_mask, ++ .cpu_mask_to_apicid = xen_cpu_mask_to_apicid, ++ .phys_pkg_id = phys_pkg_id, ++}; +diff -Naur ubuntu-hardy/arch/x86/kernel/head_32-xen.S ubuntu-hardy-xen/arch/x86/kernel/head_32-xen.S +--- ubuntu-hardy/arch/x86/kernel/head_32-xen.S 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/head_32-xen.S 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,163 @@ ++ ++ ++.text ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * References to members of the new_cpu_data structure. ++ */ ++ ++#define X86 new_cpu_data+CPUINFO_x86 ++#define X86_VENDOR new_cpu_data+CPUINFO_x86_vendor ++#define X86_MODEL new_cpu_data+CPUINFO_x86_model ++#define X86_MASK new_cpu_data+CPUINFO_x86_mask ++#define X86_HARD_MATH new_cpu_data+CPUINFO_hard_math ++#define X86_CPUID new_cpu_data+CPUINFO_cpuid_level ++#define X86_CAPABILITY new_cpu_data+CPUINFO_x86_capability ++#define X86_VENDOR_ID new_cpu_data+CPUINFO_x86_vendor_id ++ ++.section .text.head,"ax",@progbits ++#define VIRT_ENTRY_OFFSET 0x0 ++.org VIRT_ENTRY_OFFSET ++ENTRY(startup_32) ++ movl %esi,xen_start_info ++ cld ++ ++ /* Set up the stack pointer */ ++ movl $(init_thread_union+THREAD_SIZE),%esp ++ ++ movl %ss,%eax ++ movl %eax,%fs # gets reset once there's real percpu ++ ++ /* get vendor info */ ++ xorl %eax,%eax # call CPUID with 0 -> return vendor ID ++ XEN_CPUID ++ movl %eax,X86_CPUID # save CPUID level ++ movl %ebx,X86_VENDOR_ID # lo 4 chars ++ movl %edx,X86_VENDOR_ID+4 # next 4 chars ++ movl %ecx,X86_VENDOR_ID+8 # last 4 chars ++ ++ movl $1,%eax # Use the CPUID instruction to get CPU type ++ XEN_CPUID ++ movb %al,%cl # save reg for future use ++ andb $0x0f,%ah # mask processor family ++ movb %ah,X86 ++ andb $0xf0,%al # mask model ++ shrb $4,%al ++ movb %al,X86_MODEL ++ andb $0x0f,%cl # mask mask revision ++ movb %cl,X86_MASK ++ movl %edx,X86_CAPABILITY ++ ++ movb $1,X86_HARD_MATH ++ ++ xorl %eax,%eax # Clear GS ++ movl %eax,%gs ++ ++ cld # gcc2 wants the direction flag cleared at all times ++ ++ pushl $0 # fake return address for unwinder ++ jmp start_kernel ++ ++#define HYPERCALL_PAGE_OFFSET 0x1000 ++.org HYPERCALL_PAGE_OFFSET ++ENTRY(hypercall_page) ++ CFI_STARTPROC ++.skip 0x1000 ++ CFI_ENDPROC ++ ++/* ++ * Real beginning of normal "text" segment ++ */ ++ENTRY(stext) ++ENTRY(_stext) ++ ++/* ++ * BSS section ++ */ ++.section ".bss.page_aligned","wa" ++ .align PAGE_SIZE_asm ++ENTRY(swapper_pg_pmd) ++ .fill 1024,4,0 ++ENTRY(empty_zero_page) ++ .fill 4096,1,0 ++ ++/* ++ * This starts the data section. ++ */ ++.data ++ ++#if CONFIG_XEN_COMPAT <= 0x030002 ++/* ++ * __xen_guest information ++ */ ++.macro utoa value ++ .if (\value) < 0 || (\value) >= 0x10 ++ utoa (((\value)>>4)&0x0fffffff) ++ .endif ++ .if ((\value) & 0xf) < 10 ++ .byte '0' + ((\value) & 0xf) ++ .else ++ .byte 'A' + ((\value) & 0xf) - 10 ++ .endif ++.endm ++ ++.section __xen_guest ++ .ascii "GUEST_OS=linux,GUEST_VER=2.6" ++ .ascii ",XEN_VER=xen-3.0" ++ .ascii ",VIRT_BASE=0x" ++ utoa __PAGE_OFFSET ++ .ascii ",ELF_PADDR_OFFSET=0x" ++ utoa __PAGE_OFFSET ++ .ascii ",VIRT_ENTRY=0x" ++ utoa (__PAGE_OFFSET + LOAD_PHYSICAL_ADDR + VIRT_ENTRY_OFFSET) ++ .ascii ",HYPERCALL_PAGE=0x" ++ utoa ((LOAD_PHYSICAL_ADDR+HYPERCALL_PAGE_OFFSET)>>PAGE_SHIFT) ++ .ascii ",FEATURES=writable_page_tables" ++ .ascii "|writable_descriptor_tables" ++ .ascii "|auto_translated_physmap" ++ .ascii "|pae_pgdir_above_4gb" ++ .ascii "|supervisor_mode_kernel" ++#ifdef CONFIG_X86_PAE ++ .ascii ",PAE=yes[extended-cr3]" ++#else ++ .ascii ",PAE=no" ++#endif ++ .ascii ",LOADER=generic" ++ .byte 0 ++#endif /* CONFIG_XEN_COMPAT <= 0x030002 */ ++ ++ ++ ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") ++ ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6") ++ ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0") ++ ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, .long __PAGE_OFFSET) ++#if CONFIG_XEN_COMPAT <= 0x030002 ++ ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, .long __PAGE_OFFSET) ++#else ++ ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, .long 0) ++#endif ++ ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, .long startup_32) ++ ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .long hypercall_page) ++ ELFNOTE(Xen, XEN_ELFNOTE_HV_START_LOW, .long HYPERVISOR_VIRT_START) ++ ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .asciz "writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel") ++#ifdef CONFIG_X86_PAE ++ ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "yes") ++ ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID, .quad _PAGE_PRESENT, _PAGE_PRESENT) ++#else ++ ELFNOTE(Xen, XEN_ELFNOTE_PAE_MODE, .asciz "no") ++ ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID, .long _PAGE_PRESENT, _PAGE_PRESENT) ++#endif ++ ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic") ++ ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1) +diff -Naur ubuntu-hardy/arch/x86/kernel/head64-xen.c ubuntu-hardy-xen/arch/x86/kernel/head64-xen.c +--- ubuntu-hardy/arch/x86/kernel/head64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/head64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,119 @@ ++/* ++ * prepare to run common code ++ * ++ * Copyright (C) 2000 Andrea Arcangeli SuSE ++ * ++ * Jun Nakajima ++ * Modified for Xen. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++unsigned long start_pfn; ++ ++#ifndef CONFIG_XEN ++static void __init zap_identity_mappings(void) ++{ ++ pgd_t *pgd = pgd_offset_k(0UL); ++ pgd_clear(pgd); ++ __flush_tlb(); ++} ++ ++/* Don't add a printk in there. printk relies on the PDA which is not initialized ++ yet. */ ++static void __init clear_bss(void) ++{ ++ memset(__bss_start, 0, ++ (unsigned long) __bss_stop - (unsigned long) __bss_start); ++} ++#endif ++ ++static void __init copy_bootdata(char *real_mode_data) ++{ ++#ifndef CONFIG_XEN ++ char * command_line; ++ ++ memcpy(&boot_params, real_mode_data, sizeof boot_params); ++ if (boot_params.hdr.cmd_line_ptr) { ++ command_line = __va(boot_params.hdr.cmd_line_ptr); ++ memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); ++ } ++#else ++ int max_cmdline; ++ ++ if ((max_cmdline = MAX_GUEST_CMDLINE) > COMMAND_LINE_SIZE) ++ max_cmdline = COMMAND_LINE_SIZE; ++ memcpy(boot_command_line, xen_start_info->cmd_line, max_cmdline); ++ boot_command_line[max_cmdline-1] = '\0'; ++#endif ++} ++ ++#include ++unsigned long *machine_to_phys_mapping; ++EXPORT_SYMBOL(machine_to_phys_mapping); ++unsigned int machine_to_phys_order; ++EXPORT_SYMBOL(machine_to_phys_order); ++ ++void __init x86_64_start_kernel(char * real_mode_data) ++{ ++ struct xen_machphys_mapping mapping; ++ unsigned long machine_to_phys_nr_ents; ++ int i; ++ ++ xen_setup_features(); ++ ++ xen_start_info = (struct start_info *)real_mode_data; ++ if (!xen_feature(XENFEAT_auto_translated_physmap)) ++ phys_to_machine_mapping = ++ (unsigned long *)xen_start_info->mfn_list; ++ start_pfn = (__pa(xen_start_info->pt_base) >> PAGE_SHIFT) + ++ xen_start_info->nr_pt_frames; ++ ++ machine_to_phys_mapping = (unsigned long *)MACH2PHYS_VIRT_START; ++ machine_to_phys_nr_ents = MACH2PHYS_NR_ENTRIES; ++ if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) { ++ machine_to_phys_mapping = (unsigned long *)mapping.v_start; ++ machine_to_phys_nr_ents = mapping.max_mfn + 1; ++ } ++ while ((1UL << machine_to_phys_order) < machine_to_phys_nr_ents ) ++ machine_to_phys_order++; ++ ++#ifndef CONFIG_XEN ++ /* clear bss before set_intr_gate with early_idt_handler */ ++ clear_bss(); ++ ++ /* Make NULL pointers segfault */ ++ zap_identity_mappings(); ++ ++ for (i = 0; i < IDT_ENTRIES; i++) ++ set_intr_gate(i, early_idt_handler); ++ load_idt((const struct desc_ptr *)&idt_descr); ++#endif ++ ++ early_printk("Kernel alive\n"); ++ ++ for (i = 0; i < NR_CPUS; i++) ++ cpu_pda(i) = &boot_cpu_pda[i]; ++ ++ pda_init(0); ++ copy_bootdata(__va(real_mode_data)); ++#ifdef CONFIG_SMP ++ cpu_set(0, cpu_online_map); ++#endif ++ start_kernel(); ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/head_64-xen.S ubuntu-hardy-xen/arch/x86/kernel/head_64-xen.S +--- ubuntu-hardy/arch/x86/kernel/head_64-xen.S 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/head_64-xen.S 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,211 @@ ++/* ++ * linux/arch/x86_64/kernel/head.S -- start in 32bit and switch to 64bit ++ * ++ * Copyright (C) 2000 Andrea Arcangeli SuSE ++ * Copyright (C) 2000 Pavel Machek ++ * Copyright (C) 2000 Karsten Keil ++ * Copyright (C) 2001,2002 Andi Kleen ++ * Copyright (C) 2005 Eric Biederman ++ * Jun Nakajima ++ * Modified for Xen ++ */ ++ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ .section .text.head, "ax", @progbits ++ .code64 ++ .globl startup_64 ++startup_64: ++ movq $(init_thread_union+THREAD_SIZE-8),%rsp ++ ++ /* rsi is pointer to startup info structure. ++ pass it to C */ ++ movq %rsi,%rdi ++ pushq $0 # fake return address ++ jmp x86_64_start_kernel ++ ++#ifdef CONFIG_ACPI_SLEEP ++.org 0xf00 ++ .globl pGDT32 ++pGDT32: ++ .word gdt_end-cpu_gdt_table-1 ++ .long cpu_gdt_table-__START_KERNEL_map ++#endif ++ ++.balign PAGE_SIZE ++ ++#define NEXT_PAGE(name) \ ++ .balign PAGE_SIZE; \ ++ phys_##name = . - .text.head; \ ++ENTRY(name) ++ ++NEXT_PAGE(init_level4_pgt) ++ .fill 512,8,0 ++ /* ++ * We update two pgd entries to make kernel and user pgd consistent ++ * at pgd_populate(). It can be used for kernel modules. So we place ++ * this page here for those cases to avoid memory corruption. ++ * We also use this page to establish the initial mapping for the ++ * vsyscall area. ++ */ ++ .fill 512,8,0 ++ ++NEXT_PAGE(level3_kernel_pgt) ++ .fill 512,8,0 ++ ++ /* ++ * This is used for vsyscall area mapping as we have a different ++ * level4 page table for user. ++ */ ++NEXT_PAGE(level3_user_pgt) ++ .fill 512,8,0 ++ ++NEXT_PAGE(level2_kernel_pgt) ++ .fill 512,8,0 ++ ++NEXT_PAGE(level2_fixmap_pgt) ++ .fill 512,8,0 ++ ++NEXT_PAGE(level1_fixmap_pgt) ++ .fill 512,8,0 ++ ++NEXT_PAGE(hypercall_page) ++ CFI_STARTPROC ++ .rept 0x1000 / 0x20 ++ .skip 1 /* push %rcx */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rcx,0 ++ .skip 2 /* push %r11 */ ++ CFI_ADJUST_CFA_OFFSET 8 ++ CFI_REL_OFFSET rcx,0 ++ .skip 5 /* mov $#,%eax */ ++ .skip 2 /* syscall */ ++ .skip 2 /* pop %r11 */ ++ CFI_ADJUST_CFA_OFFSET -8 ++ CFI_RESTORE r11 ++ .skip 1 /* pop %rcx */ ++ CFI_ADJUST_CFA_OFFSET -8 ++ CFI_RESTORE rcx ++ .align 0x20,0 /* ret */ ++ .endr ++ CFI_ENDPROC ++ ++#undef NEXT_PAGE ++ ++ .data ++/* Just dummy symbol to allow compilation. Not used in sleep path */ ++#ifdef CONFIG_ACPI_SLEEP ++ .align PAGE_SIZE ++ENTRY(wakeup_level4_pgt) ++ .fill 512,8,0 ++#endif ++ ++ .data ++ ++ .align 16 ++ .globl cpu_gdt_descr ++cpu_gdt_descr: ++ .word gdt_end-cpu_gdt_table-1 ++gdt: ++ .quad cpu_gdt_table ++#ifdef CONFIG_SMP ++ .rept NR_CPUS-1 ++ .word 0 ++ .quad 0 ++ .endr ++#endif ++ ++/* We need valid kernel segments for data and code in long mode too ++ * IRET will check the segment types kkeil 2000/10/28 ++ * Also sysret mandates a special GDT layout ++ */ ++ ++ .section .data.page_aligned, "aw" ++ .align PAGE_SIZE ++ ++/* The TLS descriptors are currently at a different place compared to i386. ++ Hopefully nobody expects them at a fixed place (Wine?) */ ++ ++ENTRY(cpu_gdt_table) ++ .quad 0x0000000000000000 /* NULL descriptor */ ++ .quad 0x00cf9b000000ffff /* __KERNEL32_CS */ ++ .quad 0x00af9b000000ffff /* __KERNEL_CS */ ++ .quad 0x00cf93000000ffff /* __KERNEL_DS */ ++ .quad 0x00cffb000000ffff /* __USER32_CS */ ++ .quad 0x00cff3000000ffff /* __USER_DS, __USER32_DS */ ++ .quad 0x00affb000000ffff /* __USER_CS */ ++ .quad 0x0 /* unused */ ++ .quad 0,0 /* TSS */ ++ .quad 0,0 /* LDT */ ++ .quad 0,0,0 /* three TLS descriptors */ ++ .quad 0x0000f40000000000 /* node/CPU stored in limit */ ++gdt_end: ++ /* asm/segment.h:GDT_ENTRIES must match this */ ++ /* This should be a multiple of the cache line size */ ++ /* GDTs of other CPUs are now dynamically allocated */ ++ ++ /* zero the remaining page */ ++ .fill PAGE_SIZE / 8 - GDT_ENTRIES,8,0 ++ ++ .section .bss.page_aligned, "aw", @nobits ++ .align PAGE_SIZE ++ENTRY(empty_zero_page) ++ .skip PAGE_SIZE ++ ++#if CONFIG_XEN_COMPAT <= 0x030002 ++/* ++ * __xen_guest information ++ */ ++.macro utoh value ++ i = 64 ++ .rept 16 ++ i = i - 4 ++ .byte '0' + ((((\value) >> i) & 0xf) > 9) * ('0' - 'A' + 10) + (((\value) >> i) & 0xf) ++ .endr ++.endm ++ ++.section __xen_guest ++ .ascii "GUEST_OS=linux,GUEST_VER=2.6" ++ .ascii ",XEN_VER=xen-3.0" ++ .ascii ",VIRT_BASE=0x" ++ utoh __START_KERNEL_map ++ .ascii ",ELF_PADDR_OFFSET=0x" ++ utoh __START_KERNEL_map ++ .ascii ",VIRT_ENTRY=0x" ++ utoh (__START_KERNEL_map + __PHYSICAL_START) ++ .ascii ",HYPERCALL_PAGE=0x" ++ utoh (phys_hypercall_page >> PAGE_SHIFT) ++ .ascii ",FEATURES=writable_page_tables" ++ .ascii "|writable_descriptor_tables" ++ .ascii "|auto_translated_physmap" ++ .ascii "|supervisor_mode_kernel" ++ .ascii ",LOADER=generic" ++ .byte 0 ++#endif /* CONFIG_XEN_COMPAT <= 0x030002 */ ++ ++ ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") ++ ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6") ++ ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0") ++ ELFNOTE(Xen, XEN_ELFNOTE_VIRT_BASE, .quad __START_KERNEL_map) ++#if CONFIG_XEN_COMPAT <= 0x030002 ++ ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, .quad __START_KERNEL_map) ++#else ++ ELFNOTE(Xen, XEN_ELFNOTE_PADDR_OFFSET, .quad 0) ++#endif ++ ELFNOTE(Xen, XEN_ELFNOTE_ENTRY, .quad startup_64) ++ ELFNOTE(Xen, XEN_ELFNOTE_HYPERCALL_PAGE, .quad hypercall_page) ++ ELFNOTE(Xen, XEN_ELFNOTE_L1_MFN_VALID, .quad _PAGE_PRESENT, _PAGE_PRESENT) ++ ELFNOTE(Xen, XEN_ELFNOTE_FEATURES, .asciz "writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel") ++ ELFNOTE(Xen, XEN_ELFNOTE_LOADER, .asciz "generic") ++ ELFNOTE(Xen, XEN_ELFNOTE_SUSPEND_CANCEL, .long 1) +diff -Naur ubuntu-hardy/arch/x86/kernel/init_task.c ubuntu-hardy-xen/arch/x86/kernel/init_task.c +--- ubuntu-hardy/arch/x86/kernel/init_task.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/init_task.c 2008-04-09 13:17:22.000000000 +0100 +@@ -36,6 +36,7 @@ + struct task_struct init_task = INIT_TASK(init_task); + EXPORT_SYMBOL(init_task); + ++ + /* + * per-CPU TSS segments. Threads are completely 'soft' on Linux, + * no more per-task TSS's. The TSS size is kept cacheline-aligned +@@ -44,4 +45,3 @@ + * on exact cacheline boundaries, to eliminate cacheline ping-pong. + */ + DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS; +- +diff -Naur ubuntu-hardy/arch/x86/kernel/init_task-xen.c ubuntu-hardy-xen/arch/x86/kernel/init_task-xen.c +--- ubuntu-hardy/arch/x86/kernel/init_task-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/init_task-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,52 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++static struct fs_struct init_fs = INIT_FS; ++static struct files_struct init_files = INIT_FILES; ++static struct signal_struct init_signals = INIT_SIGNALS(init_signals); ++static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); ++#ifdef CONFIG_X86_XEN ++#define swapper_pg_dir ((pgd_t *)NULL) ++#endif ++struct mm_struct init_mm = INIT_MM(init_mm); ++#undef swapper_pg_dir ++EXPORT_SYMBOL(init_mm); ++ ++/* ++ * Initial thread structure. ++ * ++ * We need to make sure that this is THREAD_SIZE aligned due to the ++ * way process stacks are handled. This is done by having a special ++ * "init_task" linker map entry.. ++ */ ++union thread_union init_thread_union ++ __attribute__((__section__(".data.init_task"))) = ++ { INIT_THREAD_INFO(init_task) }; ++ ++/* ++ * Initial task structure. ++ * ++ * All other task structs will be allocated on slabs in fork.c ++ */ ++struct task_struct init_task = INIT_TASK(init_task); ++EXPORT_SYMBOL(init_task); ++ ++#ifndef CONFIG_X86_NO_TSS ++/* ++ * no more per-task TSS's. The TSS size is kept cacheline-aligned ++ * so they are allowed to end up in the .data.cacheline_aligned ++ * section. Since TSS's are completely CPU-local, we want them ++ * on exact cacheline boundaries, to eliminate cacheline ping-pong. ++ */ ++DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, init_tss) = INIT_TSS; ++#endif ++ +diff -Naur ubuntu-hardy/arch/x86/kernel/io_apic_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/io_apic_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/io_apic_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/io_apic_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,2964 @@ ++/* ++ * Intel IO-APIC support for multi-Pentium hosts. ++ * ++ * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar, Hajnalka Szabo ++ * ++ * Many thanks to Stig Venaas for trying out countless experimental ++ * patches and reporting/debugging problems patiently! ++ * ++ * (c) 1999, Multiple IO-APIC support, developed by ++ * Ken-ichi Yaku and ++ * Hidemi Kishimoto , ++ * further tested and cleaned up by Zach Brown ++ * and Ingo Molnar ++ * ++ * Fixes ++ * Maciej W. Rozycki : Bits for genuine 82489DX APICs; ++ * thanks to Eric Gilmore ++ * and Rolf G. Tews ++ * for testing these extensively ++ * Paul Diefenbaugh : Added full ACPI support ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "io_ports.h" ++ ++#ifdef CONFIG_XEN ++#include ++#include ++ ++/* Fake i8259 */ ++#define make_8259A_irq(_irq) (io_apic_irqs &= ~(1UL<<(_irq))) ++#define disable_8259A_irq(_irq) ((void)0) ++#define i8259A_irq_pending(_irq) (0) ++ ++unsigned long io_apic_irqs; ++ ++#define clear_IO_APIC() ((void)0) ++#else ++int (*ioapic_renumber_irq)(int ioapic, int irq); ++atomic_t irq_mis_count; ++#endif /* CONFIG_XEN */ ++ ++/* Where if anywhere is the i8259 connect in external int mode */ ++static struct { int pin, apic; } ioapic_i8259 = { -1, -1 }; ++ ++static DEFINE_SPINLOCK(ioapic_lock); ++static DEFINE_SPINLOCK(vector_lock); ++ ++#ifndef CONFIG_XEN ++int timer_over_8254 __initdata = 1; ++#endif ++ ++/* ++ * Is the SiS APIC rmw bug present ? ++ * -1 = don't know, 0 = no, 1 = yes ++ */ ++int sis_apic_bug = -1; ++ ++/* ++ * # of IRQ routing registers ++ */ ++int nr_ioapic_registers[MAX_IO_APICS]; ++ ++#ifndef CONFIG_XEN ++static int disable_timer_pin_1 __initdata; ++#endif ++ ++/* ++ * Rough estimation of how many shared IRQs there are, can ++ * be changed anytime. ++ */ ++#define MAX_PLUS_SHARED_IRQS NR_IRQS ++#define PIN_MAP_SIZE (MAX_PLUS_SHARED_IRQS + NR_IRQS) ++ ++/* ++ * This is performance-critical, we want to do it O(1) ++ * ++ * the indexing order of this array favors 1:1 mappings ++ * between pins and IRQs. ++ */ ++ ++static struct irq_pin_list { ++ int apic, pin, next; ++} irq_2_pin[PIN_MAP_SIZE]; ++ ++#ifndef CONFIG_XEN ++struct io_apic { ++ unsigned int index; ++ unsigned int unused[3]; ++ unsigned int data; ++}; ++ ++static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) ++{ ++ return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx) ++ + (mp_ioapics[idx].mpc_apicaddr & ~PAGE_MASK); ++} ++#endif ++ ++static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) ++{ ++#ifndef CONFIG_XEN ++ struct io_apic __iomem *io_apic = io_apic_base(apic); ++ writel(reg, &io_apic->index); ++ return readl(&io_apic->data); ++#else ++ struct physdev_apic apic_op; ++ int ret; ++ ++ apic_op.apic_physbase = mp_ioapics[apic].mpc_apicaddr; ++ apic_op.reg = reg; ++ ret = HYPERVISOR_physdev_op(PHYSDEVOP_apic_read, &apic_op); ++ if (ret) ++ return ret; ++ return apic_op.value; ++#endif ++} ++ ++static inline void io_apic_write(unsigned int apic, unsigned int reg, unsigned int value) ++{ ++#ifndef CONFIG_XEN ++ struct io_apic __iomem *io_apic = io_apic_base(apic); ++ writel(reg, &io_apic->index); ++ writel(value, &io_apic->data); ++#else ++ struct physdev_apic apic_op; ++ ++ apic_op.apic_physbase = mp_ioapics[apic].mpc_apicaddr; ++ apic_op.reg = reg; ++ apic_op.value = value; ++ HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op); ++#endif ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * Re-write a value: to be used for read-modify-write ++ * cycles where the read already set up the index register. ++ * ++ * Older SiS APIC requires we rewrite the index register ++ */ ++static inline void io_apic_modify(unsigned int apic, unsigned int reg, unsigned int value) ++{ ++ volatile struct io_apic __iomem *io_apic = io_apic_base(apic); ++ if (sis_apic_bug) ++ writel(reg, &io_apic->index); ++ writel(value, &io_apic->data); ++} ++#else ++#define io_apic_modify io_apic_write ++#endif ++ ++union entry_union { ++ struct { u32 w1, w2; }; ++ struct IO_APIC_route_entry entry; ++}; ++ ++static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin) ++{ ++ union entry_union eu; ++ unsigned long flags; ++ spin_lock_irqsave(&ioapic_lock, flags); ++ eu.w1 = io_apic_read(apic, 0x10 + 2 * pin); ++ eu.w2 = io_apic_read(apic, 0x11 + 2 * pin); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ return eu.entry; ++} ++ ++/* ++ * When we write a new IO APIC routing entry, we need to write the high ++ * word first! If the mask bit in the low word is clear, we will enable ++ * the interrupt, and we need to make sure the entry is fully populated ++ * before that happens. ++ */ ++static void ++__ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) ++{ ++ union entry_union eu; ++ eu.entry = e; ++ io_apic_write(apic, 0x11 + 2*pin, eu.w2); ++ io_apic_write(apic, 0x10 + 2*pin, eu.w1); ++} ++ ++static void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) ++{ ++ unsigned long flags; ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __ioapic_write_entry(apic, pin, e); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * When we mask an IO APIC routing entry, we need to write the low ++ * word first, in order to set the mask bit before we change the ++ * high bits! ++ */ ++static void ioapic_mask_entry(int apic, int pin) ++{ ++ unsigned long flags; ++ union entry_union eu = { .entry.mask = 1 }; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ io_apic_write(apic, 0x10 + 2*pin, eu.w1); ++ io_apic_write(apic, 0x11 + 2*pin, eu.w2); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++#endif ++ ++/* ++ * The common case is 1:1 IRQ<->pin mappings. Sometimes there are ++ * shared ISA-space IRQs, so we have to support them. We are super ++ * fast in the common case, and fast for shared ISA-space IRQs. ++ */ ++static void add_pin_to_irq(unsigned int irq, int apic, int pin) ++{ ++ static int first_free_entry = NR_IRQS; ++ struct irq_pin_list *entry = irq_2_pin + irq; ++ ++ while (entry->next) ++ entry = irq_2_pin + entry->next; ++ ++ if (entry->pin != -1) { ++ entry->next = first_free_entry; ++ entry = irq_2_pin + entry->next; ++ if (++first_free_entry >= PIN_MAP_SIZE) ++ panic("io_apic.c: whoops"); ++ } ++ entry->apic = apic; ++ entry->pin = pin; ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * Reroute an IRQ to a different pin. ++ */ ++static void __init replace_pin_at_irq(unsigned int irq, ++ int oldapic, int oldpin, ++ int newapic, int newpin) ++{ ++ struct irq_pin_list *entry = irq_2_pin + irq; ++ ++ while (1) { ++ if (entry->apic == oldapic && entry->pin == oldpin) { ++ entry->apic = newapic; ++ entry->pin = newpin; ++ } ++ if (!entry->next) ++ break; ++ entry = irq_2_pin + entry->next; ++ } ++} ++ ++static void __modify_IO_APIC_irq (unsigned int irq, unsigned long enable, unsigned long disable) ++{ ++ struct irq_pin_list *entry = irq_2_pin + irq; ++ unsigned int pin, reg; ++ ++ for (;;) { ++ pin = entry->pin; ++ if (pin == -1) ++ break; ++ reg = io_apic_read(entry->apic, 0x10 + pin*2); ++ reg &= ~disable; ++ reg |= enable; ++ io_apic_modify(entry->apic, 0x10 + pin*2, reg); ++ if (!entry->next) ++ break; ++ entry = irq_2_pin + entry->next; ++ } ++} ++ ++/* mask = 1 */ ++static void __mask_IO_APIC_irq (unsigned int irq) ++{ ++ __modify_IO_APIC_irq(irq, 0x00010000, 0); ++} ++ ++/* mask = 0 */ ++static void __unmask_IO_APIC_irq (unsigned int irq) ++{ ++ __modify_IO_APIC_irq(irq, 0, 0x00010000); ++} ++ ++/* mask = 1, trigger = 0 */ ++static void __mask_and_edge_IO_APIC_irq (unsigned int irq) ++{ ++ __modify_IO_APIC_irq(irq, 0x00010000, 0x00008000); ++} ++ ++/* mask = 0, trigger = 1 */ ++static void __unmask_and_level_IO_APIC_irq (unsigned int irq) ++{ ++ __modify_IO_APIC_irq(irq, 0x00008000, 0x00010000); ++} ++ ++static void mask_IO_APIC_irq (unsigned int irq) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __mask_IO_APIC_irq(irq); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++static void unmask_IO_APIC_irq (unsigned int irq) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __unmask_IO_APIC_irq(irq); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++static void clear_IO_APIC_pin(unsigned int apic, unsigned int pin) ++{ ++ struct IO_APIC_route_entry entry; ++ ++ /* Check delivery_mode to be sure we're not clearing an SMI pin */ ++ entry = ioapic_read_entry(apic, pin); ++ if (entry.delivery_mode == dest_SMI) ++ return; ++ ++ /* ++ * Disable it in the IO-APIC irq-routing table: ++ */ ++ ioapic_mask_entry(apic, pin); ++} ++ ++static void clear_IO_APIC (void) ++{ ++ int apic, pin; ++ ++ for (apic = 0; apic < nr_ioapics; apic++) ++ for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) ++ clear_IO_APIC_pin(apic, pin); ++} ++ ++#ifdef CONFIG_SMP ++static void set_ioapic_affinity_irq(unsigned int irq, cpumask_t cpumask) ++{ ++ unsigned long flags; ++ int pin; ++ struct irq_pin_list *entry = irq_2_pin + irq; ++ unsigned int apicid_value; ++ cpumask_t tmp; ++ ++ cpus_and(tmp, cpumask, cpu_online_map); ++ if (cpus_empty(tmp)) ++ tmp = TARGET_CPUS; ++ ++ cpus_and(cpumask, tmp, CPU_MASK_ALL); ++ ++ apicid_value = cpu_mask_to_apicid(cpumask); ++ /* Prepare to do the io_apic_write */ ++ apicid_value = apicid_value << 24; ++ spin_lock_irqsave(&ioapic_lock, flags); ++ for (;;) { ++ pin = entry->pin; ++ if (pin == -1) ++ break; ++ io_apic_write(entry->apic, 0x10 + 1 + pin*2, apicid_value); ++ if (!entry->next) ++ break; ++ entry = irq_2_pin + entry->next; ++ } ++ irq_desc[irq].affinity = cpumask; ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++#if defined(CONFIG_IRQBALANCE) ++# include /* kernel_thread() */ ++# include /* kstat */ ++# include /* kmalloc() */ ++# include /* time_after() */ ++ ++#define IRQBALANCE_CHECK_ARCH -999 ++#define MAX_BALANCED_IRQ_INTERVAL (5*HZ) ++#define MIN_BALANCED_IRQ_INTERVAL (HZ/2) ++#define BALANCED_IRQ_MORE_DELTA (HZ/10) ++#define BALANCED_IRQ_LESS_DELTA (HZ) ++ ++static int irqbalance_disabled __read_mostly = IRQBALANCE_CHECK_ARCH; ++static int physical_balance __read_mostly; ++static long balanced_irq_interval __read_mostly = MAX_BALANCED_IRQ_INTERVAL; ++ ++static struct irq_cpu_info { ++ unsigned long * last_irq; ++ unsigned long * irq_delta; ++ unsigned long irq; ++} irq_cpu_data[NR_CPUS]; ++ ++#define CPU_IRQ(cpu) (irq_cpu_data[cpu].irq) ++#define LAST_CPU_IRQ(cpu,irq) (irq_cpu_data[cpu].last_irq[irq]) ++#define IRQ_DELTA(cpu,irq) (irq_cpu_data[cpu].irq_delta[irq]) ++ ++#define IDLE_ENOUGH(cpu,now) \ ++ (idle_cpu(cpu) && ((now) - per_cpu(irq_stat, (cpu)).idle_timestamp > 1)) ++ ++#define IRQ_ALLOWED(cpu, allowed_mask) cpu_isset(cpu, allowed_mask) ++ ++#define CPU_TO_PACKAGEINDEX(i) (first_cpu(per_cpu(cpu_sibling_map, i))) ++ ++static cpumask_t balance_irq_affinity[NR_IRQS] = { ++ [0 ... NR_IRQS-1] = CPU_MASK_ALL ++}; ++ ++void set_balance_irq_affinity(unsigned int irq, cpumask_t mask) ++{ ++ balance_irq_affinity[irq] = mask; ++} ++ ++static unsigned long move(int curr_cpu, cpumask_t allowed_mask, ++ unsigned long now, int direction) ++{ ++ int search_idle = 1; ++ int cpu = curr_cpu; ++ ++ goto inside; ++ ++ do { ++ if (unlikely(cpu == curr_cpu)) ++ search_idle = 0; ++inside: ++ if (direction == 1) { ++ cpu++; ++ if (cpu >= NR_CPUS) ++ cpu = 0; ++ } else { ++ cpu--; ++ if (cpu == -1) ++ cpu = NR_CPUS-1; ++ } ++ } while (!cpu_online(cpu) || !IRQ_ALLOWED(cpu,allowed_mask) || ++ (search_idle && !IDLE_ENOUGH(cpu,now))); ++ ++ return cpu; ++} ++ ++static inline void balance_irq(int cpu, int irq) ++{ ++ unsigned long now = jiffies; ++ cpumask_t allowed_mask; ++ unsigned int new_cpu; ++ ++ if (irqbalance_disabled) ++ return; ++ ++ cpus_and(allowed_mask, cpu_online_map, balance_irq_affinity[irq]); ++ new_cpu = move(cpu, allowed_mask, now, 1); ++ if (cpu != new_cpu) { ++ set_pending_irq(irq, cpumask_of_cpu(new_cpu)); ++ } ++} ++ ++static inline void rotate_irqs_among_cpus(unsigned long useful_load_threshold) ++{ ++ int i, j; ++ ++ for_each_online_cpu(i) { ++ for (j = 0; j < NR_IRQS; j++) { ++ if (!irq_desc[j].action) ++ continue; ++ /* Is it a significant load ? */ ++ if (IRQ_DELTA(CPU_TO_PACKAGEINDEX(i),j) < ++ useful_load_threshold) ++ continue; ++ balance_irq(i, j); ++ } ++ } ++ balanced_irq_interval = max((long)MIN_BALANCED_IRQ_INTERVAL, ++ balanced_irq_interval - BALANCED_IRQ_LESS_DELTA); ++ return; ++} ++ ++static void do_irq_balance(void) ++{ ++ int i, j; ++ unsigned long max_cpu_irq = 0, min_cpu_irq = (~0); ++ unsigned long move_this_load = 0; ++ int max_loaded = 0, min_loaded = 0; ++ int load; ++ unsigned long useful_load_threshold = balanced_irq_interval + 10; ++ int selected_irq; ++ int tmp_loaded, first_attempt = 1; ++ unsigned long tmp_cpu_irq; ++ unsigned long imbalance = 0; ++ cpumask_t allowed_mask, target_cpu_mask, tmp; ++ ++ for_each_possible_cpu(i) { ++ int package_index; ++ CPU_IRQ(i) = 0; ++ if (!cpu_online(i)) ++ continue; ++ package_index = CPU_TO_PACKAGEINDEX(i); ++ for (j = 0; j < NR_IRQS; j++) { ++ unsigned long value_now, delta; ++ /* Is this an active IRQ or balancing disabled ? */ ++ if (!irq_desc[j].action || irq_balancing_disabled(j)) ++ continue; ++ if ( package_index == i ) ++ IRQ_DELTA(package_index,j) = 0; ++ /* Determine the total count per processor per IRQ */ ++ value_now = (unsigned long) kstat_cpu(i).irqs[j]; ++ ++ /* Determine the activity per processor per IRQ */ ++ delta = value_now - LAST_CPU_IRQ(i,j); ++ ++ /* Update last_cpu_irq[][] for the next time */ ++ LAST_CPU_IRQ(i,j) = value_now; ++ ++ /* Ignore IRQs whose rate is less than the clock */ ++ if (delta < useful_load_threshold) ++ continue; ++ /* update the load for the processor or package total */ ++ IRQ_DELTA(package_index,j) += delta; ++ ++ /* Keep track of the higher numbered sibling as well */ ++ if (i != package_index) ++ CPU_IRQ(i) += delta; ++ /* ++ * We have sibling A and sibling B in the package ++ * ++ * cpu_irq[A] = load for cpu A + load for cpu B ++ * cpu_irq[B] = load for cpu B ++ */ ++ CPU_IRQ(package_index) += delta; ++ } ++ } ++ /* Find the least loaded processor package */ ++ for_each_online_cpu(i) { ++ if (i != CPU_TO_PACKAGEINDEX(i)) ++ continue; ++ if (min_cpu_irq > CPU_IRQ(i)) { ++ min_cpu_irq = CPU_IRQ(i); ++ min_loaded = i; ++ } ++ } ++ max_cpu_irq = ULONG_MAX; ++ ++tryanothercpu: ++ /* Look for heaviest loaded processor. ++ * We may come back to get the next heaviest loaded processor. ++ * Skip processors with trivial loads. ++ */ ++ tmp_cpu_irq = 0; ++ tmp_loaded = -1; ++ for_each_online_cpu(i) { ++ if (i != CPU_TO_PACKAGEINDEX(i)) ++ continue; ++ if (max_cpu_irq <= CPU_IRQ(i)) ++ continue; ++ if (tmp_cpu_irq < CPU_IRQ(i)) { ++ tmp_cpu_irq = CPU_IRQ(i); ++ tmp_loaded = i; ++ } ++ } ++ ++ if (tmp_loaded == -1) { ++ /* In the case of small number of heavy interrupt sources, ++ * loading some of the cpus too much. We use Ingo's original ++ * approach to rotate them around. ++ */ ++ if (!first_attempt && imbalance >= useful_load_threshold) { ++ rotate_irqs_among_cpus(useful_load_threshold); ++ return; ++ } ++ goto not_worth_the_effort; ++ } ++ ++ first_attempt = 0; /* heaviest search */ ++ max_cpu_irq = tmp_cpu_irq; /* load */ ++ max_loaded = tmp_loaded; /* processor */ ++ imbalance = (max_cpu_irq - min_cpu_irq) / 2; ++ ++ /* if imbalance is less than approx 10% of max load, then ++ * observe diminishing returns action. - quit ++ */ ++ if (imbalance < (max_cpu_irq >> 3)) ++ goto not_worth_the_effort; ++ ++tryanotherirq: ++ /* if we select an IRQ to move that can't go where we want, then ++ * see if there is another one to try. ++ */ ++ move_this_load = 0; ++ selected_irq = -1; ++ for (j = 0; j < NR_IRQS; j++) { ++ /* Is this an active IRQ? */ ++ if (!irq_desc[j].action) ++ continue; ++ if (imbalance <= IRQ_DELTA(max_loaded,j)) ++ continue; ++ /* Try to find the IRQ that is closest to the imbalance ++ * without going over. ++ */ ++ if (move_this_load < IRQ_DELTA(max_loaded,j)) { ++ move_this_load = IRQ_DELTA(max_loaded,j); ++ selected_irq = j; ++ } ++ } ++ if (selected_irq == -1) { ++ goto tryanothercpu; ++ } ++ ++ imbalance = move_this_load; ++ ++ /* For physical_balance case, we accumulated both load ++ * values in the one of the siblings cpu_irq[], ++ * to use the same code for physical and logical processors ++ * as much as possible. ++ * ++ * NOTE: the cpu_irq[] array holds the sum of the load for ++ * sibling A and sibling B in the slot for the lowest numbered ++ * sibling (A), _AND_ the load for sibling B in the slot for ++ * the higher numbered sibling. ++ * ++ * We seek the least loaded sibling by making the comparison ++ * (A+B)/2 vs B ++ */ ++ load = CPU_IRQ(min_loaded) >> 1; ++ for_each_cpu_mask(j, per_cpu(cpu_sibling_map, min_loaded)) { ++ if (load > CPU_IRQ(j)) { ++ /* This won't change cpu_sibling_map[min_loaded] */ ++ load = CPU_IRQ(j); ++ min_loaded = j; ++ } ++ } ++ ++ cpus_and(allowed_mask, ++ cpu_online_map, ++ balance_irq_affinity[selected_irq]); ++ target_cpu_mask = cpumask_of_cpu(min_loaded); ++ cpus_and(tmp, target_cpu_mask, allowed_mask); ++ ++ if (!cpus_empty(tmp)) { ++ /* mark for change destination */ ++ set_pending_irq(selected_irq, cpumask_of_cpu(min_loaded)); ++ ++ /* Since we made a change, come back sooner to ++ * check for more variation. ++ */ ++ balanced_irq_interval = max((long)MIN_BALANCED_IRQ_INTERVAL, ++ balanced_irq_interval - BALANCED_IRQ_LESS_DELTA); ++ return; ++ } ++ goto tryanotherirq; ++ ++not_worth_the_effort: ++ /* ++ * if we did not find an IRQ to move, then adjust the time interval ++ * upward ++ */ ++ balanced_irq_interval = min((long)MAX_BALANCED_IRQ_INTERVAL, ++ balanced_irq_interval + BALANCED_IRQ_MORE_DELTA); ++ return; ++} ++ ++static int balanced_irq(void *unused) ++{ ++ int i; ++ unsigned long prev_balance_time = jiffies; ++ long time_remaining = balanced_irq_interval; ++ ++ /* push everything to CPU 0 to give us a starting point. */ ++ for (i = 0 ; i < NR_IRQS ; i++) { ++ irq_desc[i].pending_mask = cpumask_of_cpu(0); ++ set_pending_irq(i, cpumask_of_cpu(0)); ++ } ++ ++ set_freezable(); ++ for ( ; ; ) { ++ time_remaining = schedule_timeout_interruptible(time_remaining); ++ try_to_freeze(); ++ if (time_after(jiffies, ++ prev_balance_time+balanced_irq_interval)) { ++ preempt_disable(); ++ do_irq_balance(); ++ prev_balance_time = jiffies; ++ time_remaining = balanced_irq_interval; ++ preempt_enable(); ++ } ++ } ++ return 0; ++} ++ ++static int __init balanced_irq_init(void) ++{ ++ int i; ++ struct cpuinfo_x86 *c; ++ cpumask_t tmp; ++ ++ cpus_shift_right(tmp, cpu_online_map, 2); ++ c = &boot_cpu_data; ++ /* When not overwritten by the command line ask subarchitecture. */ ++ if (irqbalance_disabled == IRQBALANCE_CHECK_ARCH) ++ irqbalance_disabled = NO_BALANCE_IRQ; ++ if (irqbalance_disabled) ++ return 0; ++ ++ /* disable irqbalance completely if there is only one processor online */ ++ if (num_online_cpus() < 2) { ++ irqbalance_disabled = 1; ++ return 0; ++ } ++ /* ++ * Enable physical balance only if more than 1 physical processor ++ * is present ++ */ ++ if (smp_num_siblings > 1 && !cpus_empty(tmp)) ++ physical_balance = 1; ++ ++ for_each_online_cpu(i) { ++ irq_cpu_data[i].irq_delta = kmalloc(sizeof(unsigned long) * NR_IRQS, GFP_KERNEL); ++ irq_cpu_data[i].last_irq = kmalloc(sizeof(unsigned long) * NR_IRQS, GFP_KERNEL); ++ if (irq_cpu_data[i].irq_delta == NULL || irq_cpu_data[i].last_irq == NULL) { ++ printk(KERN_ERR "balanced_irq_init: out of memory"); ++ goto failed; ++ } ++ memset(irq_cpu_data[i].irq_delta,0,sizeof(unsigned long) * NR_IRQS); ++ memset(irq_cpu_data[i].last_irq,0,sizeof(unsigned long) * NR_IRQS); ++ } ++ ++ printk(KERN_INFO "Starting balanced_irq\n"); ++ if (!IS_ERR(kthread_run(balanced_irq, NULL, "kirqd"))) ++ return 0; ++ printk(KERN_ERR "balanced_irq_init: failed to spawn balanced_irq"); ++failed: ++ for_each_possible_cpu(i) { ++ kfree(irq_cpu_data[i].irq_delta); ++ irq_cpu_data[i].irq_delta = NULL; ++ kfree(irq_cpu_data[i].last_irq); ++ irq_cpu_data[i].last_irq = NULL; ++ } ++ return 0; ++} ++ ++int __devinit irqbalance_disable(char *str) ++{ ++ irqbalance_disabled = 1; ++ return 1; ++} ++ ++__setup("noirqbalance", irqbalance_disable); ++ ++late_initcall(balanced_irq_init); ++#endif /* CONFIG_IRQBALANCE */ ++#endif /* CONFIG_SMP */ ++#endif ++ ++#ifndef CONFIG_SMP ++void fastcall send_IPI_self(int vector) ++{ ++#ifndef CONFIG_XEN ++ unsigned int cfg; ++ ++ /* ++ * Wait for idle. ++ */ ++ apic_wait_icr_idle(); ++ cfg = APIC_DM_FIXED | APIC_DEST_SELF | vector | APIC_DEST_LOGICAL; ++ /* ++ * Send the IPI. The write to APIC_ICR fires this off. ++ */ ++ apic_write_around(APIC_ICR, cfg); ++#endif ++} ++#endif /* !CONFIG_SMP */ ++ ++ ++/* ++ * support for broken MP BIOSs, enables hand-redirection of PIRQ0-7 to ++ * specific CPU-side IRQs. ++ */ ++ ++#define MAX_PIRQS 8 ++static int pirq_entries [MAX_PIRQS]; ++static int pirqs_enabled; ++int skip_ioapic_setup; ++ ++static int __init ioapic_pirq_setup(char *str) ++{ ++ int i, max; ++ int ints[MAX_PIRQS+1]; ++ ++ get_options(str, ARRAY_SIZE(ints), ints); ++ ++ for (i = 0; i < MAX_PIRQS; i++) ++ pirq_entries[i] = -1; ++ ++ pirqs_enabled = 1; ++ apic_printk(APIC_VERBOSE, KERN_INFO ++ "PIRQ redirection, working around broken MP-BIOS.\n"); ++ max = MAX_PIRQS; ++ if (ints[0] < MAX_PIRQS) ++ max = ints[0]; ++ ++ for (i = 0; i < max; i++) { ++ apic_printk(APIC_VERBOSE, KERN_DEBUG ++ "... PIRQ%d -> IRQ %d\n", i, ints[i+1]); ++ /* ++ * PIRQs are mapped upside down, usually. ++ */ ++ pirq_entries[MAX_PIRQS-i-1] = ints[i+1]; ++ } ++ return 1; ++} ++ ++__setup("pirq=", ioapic_pirq_setup); ++ ++/* ++ * Find the IRQ entry number of a certain pin. ++ */ ++static int find_irq_entry(int apic, int pin, int type) ++{ ++ int i; ++ ++ for (i = 0; i < mp_irq_entries; i++) ++ if (mp_irqs[i].mpc_irqtype == type && ++ (mp_irqs[i].mpc_dstapic == mp_ioapics[apic].mpc_apicid || ++ mp_irqs[i].mpc_dstapic == MP_APIC_ALL) && ++ mp_irqs[i].mpc_dstirq == pin) ++ return i; ++ ++ return -1; ++} ++ ++/* ++ * Find the pin to which IRQ[irq] (ISA) is connected ++ */ ++static int __init find_isa_irq_pin(int irq, int type) ++{ ++ int i; ++ ++ for (i = 0; i < mp_irq_entries; i++) { ++ int lbus = mp_irqs[i].mpc_srcbus; ++ ++ if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA || ++ mp_bus_id_to_type[lbus] == MP_BUS_EISA || ++ mp_bus_id_to_type[lbus] == MP_BUS_MCA ++ ) && ++ (mp_irqs[i].mpc_irqtype == type) && ++ (mp_irqs[i].mpc_srcbusirq == irq)) ++ ++ return mp_irqs[i].mpc_dstirq; ++ } ++ return -1; ++} ++ ++static int __init find_isa_irq_apic(int irq, int type) ++{ ++ int i; ++ ++ for (i = 0; i < mp_irq_entries; i++) { ++ int lbus = mp_irqs[i].mpc_srcbus; ++ ++ if ((mp_bus_id_to_type[lbus] == MP_BUS_ISA || ++ mp_bus_id_to_type[lbus] == MP_BUS_EISA || ++ mp_bus_id_to_type[lbus] == MP_BUS_MCA ++ ) && ++ (mp_irqs[i].mpc_irqtype == type) && ++ (mp_irqs[i].mpc_srcbusirq == irq)) ++ break; ++ } ++ if (i < mp_irq_entries) { ++ int apic; ++ for(apic = 0; apic < nr_ioapics; apic++) { ++ if (mp_ioapics[apic].mpc_apicid == mp_irqs[i].mpc_dstapic) ++ return apic; ++ } ++ } ++ ++ return -1; ++} ++ ++/* ++ * Find a specific PCI IRQ entry. ++ * Not an __init, possibly needed by modules ++ */ ++static int pin_2_irq(int idx, int apic, int pin); ++ ++int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin) ++{ ++ int apic, i, best_guess = -1; ++ ++ apic_printk(APIC_DEBUG, "querying PCI -> IRQ mapping bus:%d, " ++ "slot:%d, pin:%d.\n", bus, slot, pin); ++ if (mp_bus_id_to_pci_bus[bus] == -1) { ++ printk(KERN_WARNING "PCI BIOS passed nonexistent PCI bus %d!\n", bus); ++ return -1; ++ } ++ for (i = 0; i < mp_irq_entries; i++) { ++ int lbus = mp_irqs[i].mpc_srcbus; ++ ++ for (apic = 0; apic < nr_ioapics; apic++) ++ if (mp_ioapics[apic].mpc_apicid == mp_irqs[i].mpc_dstapic || ++ mp_irqs[i].mpc_dstapic == MP_APIC_ALL) ++ break; ++ ++ if ((mp_bus_id_to_type[lbus] == MP_BUS_PCI) && ++ !mp_irqs[i].mpc_irqtype && ++ (bus == lbus) && ++ (slot == ((mp_irqs[i].mpc_srcbusirq >> 2) & 0x1f))) { ++ int irq = pin_2_irq(i,apic,mp_irqs[i].mpc_dstirq); ++ ++ if (!(apic || IO_APIC_IRQ(irq))) ++ continue; ++ ++ if (pin == (mp_irqs[i].mpc_srcbusirq & 3)) ++ return irq; ++ /* ++ * Use the first all-but-pin matching entry as a ++ * best-guess fuzzy result for broken mptables. ++ */ ++ if (best_guess < 0) ++ best_guess = irq; ++ } ++ } ++ return best_guess; ++} ++EXPORT_SYMBOL(IO_APIC_get_PCI_irq_vector); ++ ++/* ++ * This function currently is only a helper for the i386 smp boot process where ++ * we need to reprogram the ioredtbls to cater for the cpus which have come online ++ * so mask in all cases should simply be TARGET_CPUS ++ */ ++#ifdef CONFIG_SMP ++#ifndef CONFIG_XEN ++void __init setup_ioapic_dest(void) ++{ ++ int pin, ioapic, irq, irq_entry; ++ ++ if (skip_ioapic_setup == 1) ++ return; ++ ++ for (ioapic = 0; ioapic < nr_ioapics; ioapic++) { ++ for (pin = 0; pin < nr_ioapic_registers[ioapic]; pin++) { ++ irq_entry = find_irq_entry(ioapic, pin, mp_INT); ++ if (irq_entry == -1) ++ continue; ++ irq = pin_2_irq(irq_entry, ioapic, pin); ++ set_ioapic_affinity_irq(irq, TARGET_CPUS); ++ } ++ ++ } ++} ++#endif /* !CONFIG_XEN */ ++#endif ++ ++/* ++ * EISA Edge/Level control register, ELCR ++ */ ++static int EISA_ELCR(unsigned int irq) ++{ ++ if (irq < 16) { ++ unsigned int port = 0x4d0 + (irq >> 3); ++ return (inb(port) >> (irq & 7)) & 1; ++ } ++ apic_printk(APIC_VERBOSE, KERN_INFO ++ "Broken MPtable reports ISA irq %d\n", irq); ++ return 0; ++} ++ ++/* EISA interrupts are always polarity zero and can be edge or level ++ * trigger depending on the ELCR value. If an interrupt is listed as ++ * EISA conforming in the MP table, that means its trigger type must ++ * be read in from the ELCR */ ++ ++#define default_EISA_trigger(idx) (EISA_ELCR(mp_irqs[idx].mpc_srcbusirq)) ++#define default_EISA_polarity(idx) (0) ++ ++/* ISA interrupts are always polarity zero edge triggered, ++ * when listed as conforming in the MP table. */ ++ ++#define default_ISA_trigger(idx) (0) ++#define default_ISA_polarity(idx) (0) ++ ++/* PCI interrupts are always polarity one level triggered, ++ * when listed as conforming in the MP table. */ ++ ++#define default_PCI_trigger(idx) (1) ++#define default_PCI_polarity(idx) (1) ++ ++/* MCA interrupts are always polarity zero level triggered, ++ * when listed as conforming in the MP table. */ ++ ++#define default_MCA_trigger(idx) (1) ++#define default_MCA_polarity(idx) (0) ++ ++static int MPBIOS_polarity(int idx) ++{ ++ int bus = mp_irqs[idx].mpc_srcbus; ++ int polarity; ++ ++ /* ++ * Determine IRQ line polarity (high active or low active): ++ */ ++ switch (mp_irqs[idx].mpc_irqflag & 3) ++ { ++ case 0: /* conforms, ie. bus-type dependent polarity */ ++ { ++ switch (mp_bus_id_to_type[bus]) ++ { ++ case MP_BUS_ISA: /* ISA pin */ ++ { ++ polarity = default_ISA_polarity(idx); ++ break; ++ } ++ case MP_BUS_EISA: /* EISA pin */ ++ { ++ polarity = default_EISA_polarity(idx); ++ break; ++ } ++ case MP_BUS_PCI: /* PCI pin */ ++ { ++ polarity = default_PCI_polarity(idx); ++ break; ++ } ++ case MP_BUS_MCA: /* MCA pin */ ++ { ++ polarity = default_MCA_polarity(idx); ++ break; ++ } ++ default: ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ polarity = 1; ++ break; ++ } ++ } ++ break; ++ } ++ case 1: /* high active */ ++ { ++ polarity = 0; ++ break; ++ } ++ case 2: /* reserved */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ polarity = 1; ++ break; ++ } ++ case 3: /* low active */ ++ { ++ polarity = 1; ++ break; ++ } ++ default: /* invalid */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ polarity = 1; ++ break; ++ } ++ } ++ return polarity; ++} ++ ++static int MPBIOS_trigger(int idx) ++{ ++ int bus = mp_irqs[idx].mpc_srcbus; ++ int trigger; ++ ++ /* ++ * Determine IRQ trigger mode (edge or level sensitive): ++ */ ++ switch ((mp_irqs[idx].mpc_irqflag>>2) & 3) ++ { ++ case 0: /* conforms, ie. bus-type dependent */ ++ { ++ switch (mp_bus_id_to_type[bus]) ++ { ++ case MP_BUS_ISA: /* ISA pin */ ++ { ++ trigger = default_ISA_trigger(idx); ++ break; ++ } ++ case MP_BUS_EISA: /* EISA pin */ ++ { ++ trigger = default_EISA_trigger(idx); ++ break; ++ } ++ case MP_BUS_PCI: /* PCI pin */ ++ { ++ trigger = default_PCI_trigger(idx); ++ break; ++ } ++ case MP_BUS_MCA: /* MCA pin */ ++ { ++ trigger = default_MCA_trigger(idx); ++ break; ++ } ++ default: ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ trigger = 1; ++ break; ++ } ++ } ++ break; ++ } ++ case 1: /* edge */ ++ { ++ trigger = 0; ++ break; ++ } ++ case 2: /* reserved */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ trigger = 1; ++ break; ++ } ++ case 3: /* level */ ++ { ++ trigger = 1; ++ break; ++ } ++ default: /* invalid */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ trigger = 0; ++ break; ++ } ++ } ++ return trigger; ++} ++ ++static inline int irq_polarity(int idx) ++{ ++ return MPBIOS_polarity(idx); ++} ++ ++static inline int irq_trigger(int idx) ++{ ++ return MPBIOS_trigger(idx); ++} ++ ++static int pin_2_irq(int idx, int apic, int pin) ++{ ++ int irq, i; ++ int bus = mp_irqs[idx].mpc_srcbus; ++ ++ /* ++ * Debugging check, we are in big trouble if this message pops up! ++ */ ++ if (mp_irqs[idx].mpc_dstirq != pin) ++ printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n"); ++ ++ switch (mp_bus_id_to_type[bus]) ++ { ++ case MP_BUS_ISA: /* ISA pin */ ++ case MP_BUS_EISA: ++ case MP_BUS_MCA: ++ { ++ irq = mp_irqs[idx].mpc_srcbusirq; ++ break; ++ } ++ case MP_BUS_PCI: /* PCI pin */ ++ { ++ /* ++ * PCI IRQs are mapped in order ++ */ ++ i = irq = 0; ++ while (i < apic) ++ irq += nr_ioapic_registers[i++]; ++ irq += pin; ++ ++#ifndef CONFIG_XEN ++ /* ++ * For MPS mode, so far only needed by ES7000 platform ++ */ ++ if (ioapic_renumber_irq) ++ irq = ioapic_renumber_irq(apic, irq); ++#endif ++ break; ++ } ++ default: ++ { ++ printk(KERN_ERR "unknown bus type %d.\n",bus); ++ irq = 0; ++ break; ++ } ++ } ++ ++ /* ++ * PCI IRQ command line redirection. Yes, limits are hardcoded. ++ */ ++ if ((pin >= 16) && (pin <= 23)) { ++ if (pirq_entries[pin-16] != -1) { ++ if (!pirq_entries[pin-16]) { ++ apic_printk(APIC_VERBOSE, KERN_DEBUG ++ "disabling PIRQ%d\n", pin-16); ++ } else { ++ irq = pirq_entries[pin-16]; ++ apic_printk(APIC_VERBOSE, KERN_DEBUG ++ "using PIRQ%d -> IRQ %d\n", ++ pin-16, irq); ++ } ++ } ++ } ++ return irq; ++} ++ ++static inline int IO_APIC_irq_trigger(int irq) ++{ ++ int apic, idx, pin; ++ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { ++ idx = find_irq_entry(apic,pin,mp_INT); ++ if ((idx != -1) && (irq == pin_2_irq(idx,apic,pin))) ++ return irq_trigger(idx); ++ } ++ } ++ /* ++ * nonexistent IRQs are edge default ++ */ ++ return 0; ++} ++ ++/* irq_vectors is indexed by the sum of all RTEs in all I/O APICs. */ ++static u8 irq_vector[NR_IRQ_VECTORS] __read_mostly; /* = { FIRST_DEVICE_VECTOR , 0 }; */ ++ ++static int __assign_irq_vector(int irq) ++{ ++ int vector; ++ struct physdev_irq irq_op; ++ ++ BUG_ON((unsigned)irq >= NR_IRQ_VECTORS); ++ ++ if (irq_vector[irq] > 0) ++ return irq_vector[irq]; ++ ++ irq_op.irq = irq; ++ if (HYPERVISOR_physdev_op(PHYSDEVOP_alloc_irq_vector, &irq_op)) ++ return -ENOSPC; ++ ++ vector = irq_op.vector; ++ irq_vector[irq] = vector; ++ ++ return vector; ++} ++ ++static int assign_irq_vector(int irq) ++{ ++ unsigned long flags; ++ int vector; ++ ++ spin_lock_irqsave(&vector_lock, flags); ++ vector = __assign_irq_vector(irq); ++ spin_unlock_irqrestore(&vector_lock, flags); ++ ++ return vector; ++} ++ ++#ifndef CONFIG_XEN ++static struct irq_chip ioapic_chip; ++ ++#define IOAPIC_AUTO -1 ++#define IOAPIC_EDGE 0 ++#define IOAPIC_LEVEL 1 ++ ++static void ioapic_register_intr(int irq, int vector, unsigned long trigger) ++{ ++ if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || ++ trigger == IOAPIC_LEVEL) { ++ irq_desc[irq].status |= IRQ_LEVEL; ++ set_irq_chip_and_handler_name(irq, &ioapic_chip, ++ handle_fasteoi_irq, "fasteoi"); ++ } else { ++ irq_desc[irq].status &= ~IRQ_LEVEL; ++ set_irq_chip_and_handler_name(irq, &ioapic_chip, ++ handle_edge_irq, "edge"); ++ } ++ set_intr_gate(vector, interrupt[irq]); ++} ++#else ++#define ioapic_register_intr(_irq,_vector,_trigger) ((void)0) ++#endif ++ ++static void __init setup_IO_APIC_irqs(void) ++{ ++ struct IO_APIC_route_entry entry; ++ int apic, pin, idx, irq, first_notcon = 1, vector; ++ unsigned long flags; ++ ++ apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n"); ++ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { ++ ++ /* ++ * add it to the IO-APIC irq-routing table: ++ */ ++ memset(&entry,0,sizeof(entry)); ++ ++ entry.delivery_mode = INT_DELIVERY_MODE; ++ entry.dest_mode = INT_DEST_MODE; ++ entry.mask = 0; /* enable IRQ */ ++ entry.dest.logical.logical_dest = ++ cpu_mask_to_apicid(TARGET_CPUS); ++ ++ idx = find_irq_entry(apic,pin,mp_INT); ++ if (idx == -1) { ++ if (first_notcon) { ++ apic_printk(APIC_VERBOSE, KERN_DEBUG ++ " IO-APIC (apicid-pin) %d-%d", ++ mp_ioapics[apic].mpc_apicid, ++ pin); ++ first_notcon = 0; ++ } else ++ apic_printk(APIC_VERBOSE, ", %d-%d", ++ mp_ioapics[apic].mpc_apicid, pin); ++ continue; ++ } ++ ++ if (!first_notcon) { ++ apic_printk(APIC_VERBOSE, " not connected.\n"); ++ first_notcon = 1; ++ } ++ ++ entry.trigger = irq_trigger(idx); ++ entry.polarity = irq_polarity(idx); ++ ++ if (irq_trigger(idx)) { ++ entry.trigger = 1; ++ entry.mask = 1; ++ } ++ ++ irq = pin_2_irq(idx, apic, pin); ++ /* ++ * skip adding the timer int on secondary nodes, which causes ++ * a small but painful rift in the time-space continuum ++ */ ++ if (multi_timer_check(apic, irq)) ++ continue; ++ else ++ add_pin_to_irq(irq, apic, pin); ++ ++ if (/*!apic &&*/ !IO_APIC_IRQ(irq)) ++ continue; ++ ++ if (IO_APIC_IRQ(irq)) { ++ vector = assign_irq_vector(irq); ++ entry.vector = vector; ++ ioapic_register_intr(irq, vector, IOAPIC_AUTO); ++ ++ if (!apic && (irq < 16)) ++ disable_8259A_irq(irq); ++ } ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __ioapic_write_entry(apic, pin, entry); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ } ++ } ++ ++ if (!first_notcon) ++ apic_printk(APIC_VERBOSE, " not connected.\n"); ++} ++ ++/* ++ * Set up the 8259A-master output pin: ++ */ ++#ifndef CONFIG_XEN ++static void __init setup_ExtINT_IRQ0_pin(unsigned int apic, unsigned int pin, int vector) ++{ ++ struct IO_APIC_route_entry entry; ++ ++ memset(&entry,0,sizeof(entry)); ++ ++ disable_8259A_irq(0); ++ ++ /* mask LVT0 */ ++ apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); ++ ++ /* ++ * We use logical delivery to get the timer IRQ ++ * to the first CPU. ++ */ ++ entry.dest_mode = INT_DEST_MODE; ++ entry.mask = 0; /* unmask IRQ now */ ++ entry.dest.logical.logical_dest = cpu_mask_to_apicid(TARGET_CPUS); ++ entry.delivery_mode = INT_DELIVERY_MODE; ++ entry.polarity = 0; ++ entry.trigger = 0; ++ entry.vector = vector; ++ ++ /* ++ * The timer IRQ doesn't have to know that behind the ++ * scene we have a 8259A-master in AEOI mode ... ++ */ ++ irq_desc[0].chip = &ioapic_chip; ++ set_irq_handler(0, handle_edge_irq); ++ ++ /* ++ * Add it to the IO-APIC irq-routing table: ++ */ ++ ioapic_write_entry(apic, pin, entry); ++ ++ enable_8259A_irq(0); ++} ++ ++void __init print_IO_APIC(void) ++{ ++ int apic, i; ++ union IO_APIC_reg_00 reg_00; ++ union IO_APIC_reg_01 reg_01; ++ union IO_APIC_reg_02 reg_02; ++ union IO_APIC_reg_03 reg_03; ++ unsigned long flags; ++ ++ if (apic_verbosity == APIC_QUIET) ++ return; ++ ++ printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries); ++ for (i = 0; i < nr_ioapics; i++) ++ printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n", ++ mp_ioapics[i].mpc_apicid, nr_ioapic_registers[i]); ++ ++ /* ++ * We are a bit conservative about what we expect. We have to ++ * know about every hardware change ASAP. ++ */ ++ printk(KERN_INFO "testing the IO APIC.......................\n"); ++ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_00.raw = io_apic_read(apic, 0); ++ reg_01.raw = io_apic_read(apic, 1); ++ if (reg_01.bits.version >= 0x10) ++ reg_02.raw = io_apic_read(apic, 2); ++ if (reg_01.bits.version >= 0x20) ++ reg_03.raw = io_apic_read(apic, 3); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mpc_apicid); ++ printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw); ++ printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID); ++ printk(KERN_DEBUG "....... : Delivery Type: %X\n", reg_00.bits.delivery_type); ++ printk(KERN_DEBUG "....... : LTS : %X\n", reg_00.bits.LTS); ++ ++ printk(KERN_DEBUG ".... register #01: %08X\n", reg_01.raw); ++ printk(KERN_DEBUG "....... : max redirection entries: %04X\n", reg_01.bits.entries); ++ ++ printk(KERN_DEBUG "....... : PRQ implemented: %X\n", reg_01.bits.PRQ); ++ printk(KERN_DEBUG "....... : IO APIC version: %04X\n", reg_01.bits.version); ++ ++ /* ++ * Some Intel chipsets with IO APIC VERSION of 0x1? don't have reg_02, ++ * but the value of reg_02 is read as the previous read register ++ * value, so ignore it if reg_02 == reg_01. ++ */ ++ if (reg_01.bits.version >= 0x10 && reg_02.raw != reg_01.raw) { ++ printk(KERN_DEBUG ".... register #02: %08X\n", reg_02.raw); ++ printk(KERN_DEBUG "....... : arbitration: %02X\n", reg_02.bits.arbitration); ++ } ++ ++ /* ++ * Some Intel chipsets with IO APIC VERSION of 0x2? don't have reg_02 ++ * or reg_03, but the value of reg_0[23] is read as the previous read ++ * register value, so ignore it if reg_03 == reg_0[12]. ++ */ ++ if (reg_01.bits.version >= 0x20 && reg_03.raw != reg_02.raw && ++ reg_03.raw != reg_01.raw) { ++ printk(KERN_DEBUG ".... register #03: %08X\n", reg_03.raw); ++ printk(KERN_DEBUG "....... : Boot DT : %X\n", reg_03.bits.boot_DT); ++ } ++ ++ printk(KERN_DEBUG ".... IRQ redirection table:\n"); ++ ++ printk(KERN_DEBUG " NR Log Phy Mask Trig IRR Pol" ++ " Stat Dest Deli Vect: \n"); ++ ++ for (i = 0; i <= reg_01.bits.entries; i++) { ++ struct IO_APIC_route_entry entry; ++ ++ entry = ioapic_read_entry(apic, i); ++ ++ printk(KERN_DEBUG " %02x %03X %02X ", ++ i, ++ entry.dest.logical.logical_dest, ++ entry.dest.physical.physical_dest ++ ); ++ ++ printk("%1d %1d %1d %1d %1d %1d %1d %02X\n", ++ entry.mask, ++ entry.trigger, ++ entry.irr, ++ entry.polarity, ++ entry.delivery_status, ++ entry.dest_mode, ++ entry.delivery_mode, ++ entry.vector ++ ); ++ } ++ } ++ printk(KERN_DEBUG "IRQ to pin mappings:\n"); ++ for (i = 0; i < NR_IRQS; i++) { ++ struct irq_pin_list *entry = irq_2_pin + i; ++ if (entry->pin < 0) ++ continue; ++ printk(KERN_DEBUG "IRQ%d ", i); ++ for (;;) { ++ printk("-> %d:%d", entry->apic, entry->pin); ++ if (!entry->next) ++ break; ++ entry = irq_2_pin + entry->next; ++ } ++ printk("\n"); ++ } ++ ++ printk(KERN_INFO ".................................... done.\n"); ++ ++ return; ++} ++ ++static void print_APIC_bitfield (int base) ++{ ++ unsigned int v; ++ int i, j; ++ ++ if (apic_verbosity == APIC_QUIET) ++ return; ++ ++ printk(KERN_DEBUG "0123456789abcdef0123456789abcdef\n" KERN_DEBUG); ++ for (i = 0; i < 8; i++) { ++ v = apic_read(base + i*0x10); ++ for (j = 0; j < 32; j++) { ++ if (v & (1< 3) /* Due to the Pentium erratum 3AP. */ ++ apic_write(APIC_ESR, 0); ++ v = apic_read(APIC_ESR); ++ printk(KERN_DEBUG "... APIC ESR: %08x\n", v); ++ } ++ ++ v = apic_read(APIC_ICR); ++ printk(KERN_DEBUG "... APIC ICR: %08x\n", v); ++ v = apic_read(APIC_ICR2); ++ printk(KERN_DEBUG "... APIC ICR2: %08x\n", v); ++ ++ v = apic_read(APIC_LVTT); ++ printk(KERN_DEBUG "... APIC LVTT: %08x\n", v); ++ ++ if (maxlvt > 3) { /* PC is LVT#4. */ ++ v = apic_read(APIC_LVTPC); ++ printk(KERN_DEBUG "... APIC LVTPC: %08x\n", v); ++ } ++ v = apic_read(APIC_LVT0); ++ printk(KERN_DEBUG "... APIC LVT0: %08x\n", v); ++ v = apic_read(APIC_LVT1); ++ printk(KERN_DEBUG "... APIC LVT1: %08x\n", v); ++ ++ if (maxlvt > 2) { /* ERR is LVT#3. */ ++ v = apic_read(APIC_LVTERR); ++ printk(KERN_DEBUG "... APIC LVTERR: %08x\n", v); ++ } ++ ++ v = apic_read(APIC_TMICT); ++ printk(KERN_DEBUG "... APIC TMICT: %08x\n", v); ++ v = apic_read(APIC_TMCCT); ++ printk(KERN_DEBUG "... APIC TMCCT: %08x\n", v); ++ v = apic_read(APIC_TDCR); ++ printk(KERN_DEBUG "... APIC TDCR: %08x\n", v); ++ printk("\n"); ++} ++ ++void print_all_local_APICs (void) ++{ ++ on_each_cpu(print_local_APIC, NULL, 1, 1); ++} ++ ++void /*__init*/ print_PIC(void) ++{ ++ unsigned int v; ++ unsigned long flags; ++ ++ if (apic_verbosity == APIC_QUIET) ++ return; ++ ++ printk(KERN_DEBUG "\nprinting PIC contents\n"); ++ ++ spin_lock_irqsave(&i8259A_lock, flags); ++ ++ v = inb(0xa1) << 8 | inb(0x21); ++ printk(KERN_DEBUG "... PIC IMR: %04x\n", v); ++ ++ v = inb(0xa0) << 8 | inb(0x20); ++ printk(KERN_DEBUG "... PIC IRR: %04x\n", v); ++ ++ outb(0x0b,0xa0); ++ outb(0x0b,0x20); ++ v = inb(0xa0) << 8 | inb(0x20); ++ outb(0x0a,0xa0); ++ outb(0x0a,0x20); ++ ++ spin_unlock_irqrestore(&i8259A_lock, flags); ++ ++ printk(KERN_DEBUG "... PIC ISR: %04x\n", v); ++ ++ v = inb(0x4d1) << 8 | inb(0x4d0); ++ printk(KERN_DEBUG "... PIC ELCR: %04x\n", v); ++} ++#endif /* !CONFIG_XEN */ ++ ++static void __init enable_IO_APIC(void) ++{ ++ union IO_APIC_reg_01 reg_01; ++ int i8259_apic, i8259_pin; ++ int i, apic; ++ unsigned long flags; ++ ++ for (i = 0; i < PIN_MAP_SIZE; i++) { ++ irq_2_pin[i].pin = -1; ++ irq_2_pin[i].next = 0; ++ } ++ if (!pirqs_enabled) ++ for (i = 0; i < MAX_PIRQS; i++) ++ pirq_entries[i] = -1; ++ ++ /* ++ * The number of IO-APIC IRQ registers (== #pins): ++ */ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_01.raw = io_apic_read(apic, 1); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ nr_ioapic_registers[apic] = reg_01.bits.entries+1; ++ } ++ for(apic = 0; apic < nr_ioapics; apic++) { ++ int pin; ++ /* See if any of the pins is in ExtINT mode */ ++ for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { ++ struct IO_APIC_route_entry entry; ++ entry = ioapic_read_entry(apic, pin); ++ ++ ++ /* If the interrupt line is enabled and in ExtInt mode ++ * I have found the pin where the i8259 is connected. ++ */ ++ if ((entry.mask == 0) && (entry.delivery_mode == dest_ExtINT)) { ++ ioapic_i8259.apic = apic; ++ ioapic_i8259.pin = pin; ++ goto found_i8259; ++ } ++ } ++ } ++ found_i8259: ++ /* Look to see what if the MP table has reported the ExtINT */ ++ /* If we could not find the appropriate pin by looking at the ioapic ++ * the i8259 probably is not connected the ioapic but give the ++ * mptable a chance anyway. ++ */ ++ i8259_pin = find_isa_irq_pin(0, mp_ExtINT); ++ i8259_apic = find_isa_irq_apic(0, mp_ExtINT); ++ /* Trust the MP table if nothing is setup in the hardware */ ++ if ((ioapic_i8259.pin == -1) && (i8259_pin >= 0)) { ++ printk(KERN_WARNING "ExtINT not setup in hardware but reported by MP table\n"); ++ ioapic_i8259.pin = i8259_pin; ++ ioapic_i8259.apic = i8259_apic; ++ } ++ /* Complain if the MP table and the hardware disagree */ ++ if (((ioapic_i8259.apic != i8259_apic) || (ioapic_i8259.pin != i8259_pin)) && ++ (i8259_pin >= 0) && (ioapic_i8259.pin >= 0)) ++ { ++ printk(KERN_WARNING "ExtINT in hardware and MP table differ\n"); ++ } ++ ++ /* ++ * Do not trust the IO-APIC being empty at bootup ++ */ ++ clear_IO_APIC(); ++} ++ ++/* ++ * Not an __init, needed by the reboot code ++ */ ++void disable_IO_APIC(void) ++{ ++ /* ++ * Clear the IO-APIC before rebooting: ++ */ ++ clear_IO_APIC(); ++ ++#ifndef CONFIG_XEN ++ /* ++ * If the i8259 is routed through an IOAPIC ++ * Put that IOAPIC in virtual wire mode ++ * so legacy interrupts can be delivered. ++ */ ++ if (ioapic_i8259.pin != -1) { ++ struct IO_APIC_route_entry entry; ++ ++ memset(&entry, 0, sizeof(entry)); ++ entry.mask = 0; /* Enabled */ ++ entry.trigger = 0; /* Edge */ ++ entry.irr = 0; ++ entry.polarity = 0; /* High */ ++ entry.delivery_status = 0; ++ entry.dest_mode = 0; /* Physical */ ++ entry.delivery_mode = dest_ExtINT; /* ExtInt */ ++ entry.vector = 0; ++ entry.dest.physical.physical_dest = ++ GET_APIC_ID(apic_read(APIC_ID)); ++ ++ /* ++ * Add it to the IO-APIC irq-routing table: ++ */ ++ ioapic_write_entry(ioapic_i8259.apic, ioapic_i8259.pin, entry); ++ } ++ disconnect_bsp_APIC(ioapic_i8259.pin != -1); ++#endif ++} ++ ++/* ++ * function to set the IO-APIC physical IDs based on the ++ * values stored in the MPC table. ++ * ++ * by Matt Domsch Tue Dec 21 12:25:05 CST 1999 ++ */ ++ ++#if !defined(CONFIG_XEN) && !defined(CONFIG_X86_NUMAQ) ++static void __init setup_ioapic_ids_from_mpc(void) ++{ ++ union IO_APIC_reg_00 reg_00; ++ physid_mask_t phys_id_present_map; ++ int apic; ++ int i; ++ unsigned char old_id; ++ unsigned long flags; ++ ++ /* ++ * Don't check I/O APIC IDs for xAPIC systems. They have ++ * no meaning without the serial APIC bus. ++ */ ++ if (!(boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) ++ || APIC_XAPIC(apic_version[boot_cpu_physical_apicid])) ++ return; ++ /* ++ * This is broken; anything with a real cpu count has to ++ * circumvent this idiocy regardless. ++ */ ++ phys_id_present_map = ioapic_phys_id_map(phys_cpu_present_map); ++ ++ /* ++ * Set the IOAPIC ID to the value stored in the MPC table. ++ */ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ ++ /* Read the register 0 value */ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_00.raw = io_apic_read(apic, 0); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ old_id = mp_ioapics[apic].mpc_apicid; ++ ++ if (mp_ioapics[apic].mpc_apicid >= get_physical_broadcast()) { ++ printk(KERN_ERR "BIOS bug, IO-APIC#%d ID is %d in the MPC table!...\n", ++ apic, mp_ioapics[apic].mpc_apicid); ++ printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", ++ reg_00.bits.ID); ++ mp_ioapics[apic].mpc_apicid = reg_00.bits.ID; ++ } ++ ++ /* ++ * Sanity check, is the ID really free? Every APIC in a ++ * system must have a unique ID or we get lots of nice ++ * 'stuck on smp_invalidate_needed IPI wait' messages. ++ */ ++ if (check_apicid_used(phys_id_present_map, ++ mp_ioapics[apic].mpc_apicid)) { ++ printk(KERN_ERR "BIOS bug, IO-APIC#%d ID %d is already used!...\n", ++ apic, mp_ioapics[apic].mpc_apicid); ++ for (i = 0; i < get_physical_broadcast(); i++) ++ if (!physid_isset(i, phys_id_present_map)) ++ break; ++ if (i >= get_physical_broadcast()) ++ panic("Max APIC ID exceeded!\n"); ++ printk(KERN_ERR "... fixing up to %d. (tell your hw vendor)\n", ++ i); ++ physid_set(i, phys_id_present_map); ++ mp_ioapics[apic].mpc_apicid = i; ++ } else { ++ physid_mask_t tmp; ++ tmp = apicid_to_cpu_present(mp_ioapics[apic].mpc_apicid); ++ apic_printk(APIC_VERBOSE, "Setting %d in the " ++ "phys_id_present_map\n", ++ mp_ioapics[apic].mpc_apicid); ++ physids_or(phys_id_present_map, phys_id_present_map, tmp); ++ } ++ ++ ++ /* ++ * We need to adjust the IRQ routing table ++ * if the ID changed. ++ */ ++ if (old_id != mp_ioapics[apic].mpc_apicid) ++ for (i = 0; i < mp_irq_entries; i++) ++ if (mp_irqs[i].mpc_dstapic == old_id) ++ mp_irqs[i].mpc_dstapic ++ = mp_ioapics[apic].mpc_apicid; ++ ++ /* ++ * Read the right value from the MPC table and ++ * write it into the ID register. ++ */ ++ apic_printk(APIC_VERBOSE, KERN_INFO ++ "...changing IO-APIC physical APIC ID to %d ...", ++ mp_ioapics[apic].mpc_apicid); ++ ++ reg_00.bits.ID = mp_ioapics[apic].mpc_apicid; ++ spin_lock_irqsave(&ioapic_lock, flags); ++ io_apic_write(apic, 0, reg_00.raw); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ /* ++ * Sanity check ++ */ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_00.raw = io_apic_read(apic, 0); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ if (reg_00.bits.ID != mp_ioapics[apic].mpc_apicid) ++ printk("could not set ID!\n"); ++ else ++ apic_printk(APIC_VERBOSE, " ok.\n"); ++ } ++} ++#else ++static void __init setup_ioapic_ids_from_mpc(void) { } ++#endif ++ ++#ifndef CONFIG_XEN ++int no_timer_check __initdata; ++ ++static int __init notimercheck(char *s) ++{ ++ no_timer_check = 1; ++ return 1; ++} ++__setup("no_timer_check", notimercheck); ++ ++/* ++ * There is a nasty bug in some older SMP boards, their mptable lies ++ * about the timer IRQ. We do the following to work around the situation: ++ * ++ * - timer IRQ defaults to IO-APIC IRQ ++ * - if this function detects that timer IRQs are defunct, then we fall ++ * back to ISA timer IRQs ++ */ ++static int __init timer_irq_works(void) ++{ ++ unsigned long t1 = jiffies; ++ unsigned long flags; ++ ++ if (no_timer_check) ++ return 1; ++ ++ local_save_flags(flags); ++ local_irq_enable(); ++ /* Let ten ticks pass... */ ++ mdelay((10 * 1000) / HZ); ++ local_irq_restore(flags); ++ ++ /* ++ * Expect a few ticks at least, to be sure some possible ++ * glue logic does not lock up after one or two first ++ * ticks in a non-ExtINT mode. Also the local APIC ++ * might have cached one ExtINT interrupt. Finally, at ++ * least one tick may be lost due to delays. ++ */ ++ if (jiffies - t1 > 4) ++ return 1; ++ ++ return 0; ++} ++ ++/* ++ * In the SMP+IOAPIC case it might happen that there are an unspecified ++ * number of pending IRQ events unhandled. These cases are very rare, ++ * so we 'resend' these IRQs via IPIs, to the same CPU. It's much ++ * better to do it this way as thus we do not have to be aware of ++ * 'pending' interrupts in the IRQ path, except at this point. ++ */ ++/* ++ * Edge triggered needs to resend any interrupt ++ * that was delayed but this is now handled in the device ++ * independent code. ++ */ ++ ++/* ++ * Startup quirk: ++ * ++ * Starting up a edge-triggered IO-APIC interrupt is ++ * nasty - we need to make sure that we get the edge. ++ * If it is already asserted for some reason, we need ++ * return 1 to indicate that is was pending. ++ * ++ * This is not complete - we should be able to fake ++ * an edge even if it isn't on the 8259A... ++ * ++ * (We do this for level-triggered IRQs too - it cannot hurt.) ++ */ ++static unsigned int startup_ioapic_irq(unsigned int irq) ++{ ++ int was_pending = 0; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ if (irq < 16) { ++ disable_8259A_irq(irq); ++ if (i8259A_irq_pending(irq)) ++ was_pending = 1; ++ } ++ __unmask_IO_APIC_irq(irq); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ return was_pending; ++} ++ ++static void ack_ioapic_irq(unsigned int irq) ++{ ++ move_native_irq(irq); ++ ack_APIC_irq(); ++} ++ ++static void ack_ioapic_quirk_irq(unsigned int irq) ++{ ++ unsigned long v; ++ int i; ++ ++ move_native_irq(irq); ++/* ++ * It appears there is an erratum which affects at least version 0x11 ++ * of I/O APIC (that's the 82093AA and cores integrated into various ++ * chipsets). Under certain conditions a level-triggered interrupt is ++ * erroneously delivered as edge-triggered one but the respective IRR ++ * bit gets set nevertheless. As a result the I/O unit expects an EOI ++ * message but it will never arrive and further interrupts are blocked ++ * from the source. The exact reason is so far unknown, but the ++ * phenomenon was observed when two consecutive interrupt requests ++ * from a given source get delivered to the same CPU and the source is ++ * temporarily disabled in between. ++ * ++ * A workaround is to simulate an EOI message manually. We achieve it ++ * by setting the trigger mode to edge and then to level when the edge ++ * trigger mode gets detected in the TMR of a local APIC for a ++ * level-triggered interrupt. We mask the source for the time of the ++ * operation to prevent an edge-triggered interrupt escaping meanwhile. ++ * The idea is from Manfred Spraul. --macro ++ */ ++ i = irq_vector[irq]; ++ ++ v = apic_read(APIC_TMR + ((i & ~0x1f) >> 1)); ++ ++ ack_APIC_irq(); ++ ++ if (!(v & (1 << (i & 0x1f)))) { ++ atomic_inc(&irq_mis_count); ++ spin_lock(&ioapic_lock); ++ __mask_and_edge_IO_APIC_irq(irq); ++ __unmask_and_level_IO_APIC_irq(irq); ++ spin_unlock(&ioapic_lock); ++ } ++} ++ ++static int ioapic_retrigger_irq(unsigned int irq) ++{ ++ send_IPI_self(irq_vector[irq]); ++ ++ return 1; ++} ++ ++static struct irq_chip ioapic_chip __read_mostly = { ++ .name = "IO-APIC", ++ .startup = startup_ioapic_irq, ++ .mask = mask_IO_APIC_irq, ++ .unmask = unmask_IO_APIC_irq, ++ .ack = ack_ioapic_irq, ++ .eoi = ack_ioapic_quirk_irq, ++#ifdef CONFIG_SMP ++ .set_affinity = set_ioapic_affinity_irq, ++#endif ++ .retrigger = ioapic_retrigger_irq, ++}; ++#endif /* !CONFIG_XEN */ ++ ++static inline void init_IO_APIC_traps(void) ++{ ++ int irq; ++ ++ /* ++ * NOTE! The local APIC isn't very good at handling ++ * multiple interrupts at the same interrupt level. ++ * As the interrupt level is determined by taking the ++ * vector number and shifting that right by 4, we ++ * want to spread these out a bit so that they don't ++ * all fall in the same interrupt level. ++ * ++ * Also, we've got to be careful not to trash gate ++ * 0x80, because int 0x80 is hm, kind of importantish. ;) ++ */ ++ for (irq = 0; irq < NR_IRQS ; irq++) { ++ int tmp = irq; ++ if (IO_APIC_IRQ(tmp) && !irq_vector[tmp]) { ++ /* ++ * Hmm.. We don't have an entry for this, ++ * so default to an old-fashioned 8259 ++ * interrupt if we can.. ++ */ ++ if (irq < 16) ++ make_8259A_irq(irq); ++#ifndef CONFIG_XEN ++ else ++ /* Strange. Oh, well.. */ ++ irq_desc[irq].chip = &no_irq_chip; ++#endif ++ } ++ } ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * The local APIC irq-chip implementation: ++ */ ++ ++static void ack_apic(unsigned int irq) ++{ ++ ack_APIC_irq(); ++} ++ ++static void mask_lapic_irq (unsigned int irq) ++{ ++ unsigned long v; ++ ++ v = apic_read(APIC_LVT0); ++ apic_write_around(APIC_LVT0, v | APIC_LVT_MASKED); ++} ++ ++static void unmask_lapic_irq (unsigned int irq) ++{ ++ unsigned long v; ++ ++ v = apic_read(APIC_LVT0); ++ apic_write_around(APIC_LVT0, v & ~APIC_LVT_MASKED); ++} ++ ++static struct irq_chip lapic_chip __read_mostly = { ++ .name = "local-APIC-edge", ++ .mask = mask_lapic_irq, ++ .unmask = unmask_lapic_irq, ++ .eoi = ack_apic, ++}; ++ ++static void setup_nmi (void) ++{ ++ /* ++ * Dirty trick to enable the NMI watchdog ... ++ * We put the 8259A master into AEOI mode and ++ * unmask on all local APICs LVT0 as NMI. ++ * ++ * The idea to use the 8259A in AEOI mode ('8259A Virtual Wire') ++ * is from Maciej W. Rozycki - so we do not have to EOI from ++ * the NMI handler or the timer interrupt. ++ */ ++ apic_printk(APIC_VERBOSE, KERN_INFO "activating NMI Watchdog ..."); ++ ++ on_each_cpu(enable_NMI_through_LVT0, NULL, 1, 1); ++ ++ apic_printk(APIC_VERBOSE, " done.\n"); ++} ++ ++/* ++ * This looks a bit hackish but it's about the only one way of sending ++ * a few INTA cycles to 8259As and any associated glue logic. ICR does ++ * not support the ExtINT mode, unfortunately. We need to send these ++ * cycles as some i82489DX-based boards have glue logic that keeps the ++ * 8259A interrupt line asserted until INTA. --macro ++ */ ++static inline void unlock_ExtINT_logic(void) ++{ ++ int apic, pin, i; ++ struct IO_APIC_route_entry entry0, entry1; ++ unsigned char save_control, save_freq_select; ++ ++ pin = find_isa_irq_pin(8, mp_INT); ++ if (pin == -1) { ++ WARN_ON_ONCE(1); ++ return; ++ } ++ apic = find_isa_irq_apic(8, mp_INT); ++ if (apic == -1) { ++ WARN_ON_ONCE(1); ++ return; ++ } ++ ++ entry0 = ioapic_read_entry(apic, pin); ++ clear_IO_APIC_pin(apic, pin); ++ ++ memset(&entry1, 0, sizeof(entry1)); ++ ++ entry1.dest_mode = 0; /* physical delivery */ ++ entry1.mask = 0; /* unmask IRQ now */ ++ entry1.dest.physical.physical_dest = hard_smp_processor_id(); ++ entry1.delivery_mode = dest_ExtINT; ++ entry1.polarity = entry0.polarity; ++ entry1.trigger = 0; ++ entry1.vector = 0; ++ ++ ioapic_write_entry(apic, pin, entry1); ++ ++ save_control = CMOS_READ(RTC_CONTROL); ++ save_freq_select = CMOS_READ(RTC_FREQ_SELECT); ++ CMOS_WRITE((save_freq_select & ~RTC_RATE_SELECT) | 0x6, ++ RTC_FREQ_SELECT); ++ CMOS_WRITE(save_control | RTC_PIE, RTC_CONTROL); ++ ++ i = 100; ++ while (i-- > 0) { ++ mdelay(10); ++ if ((CMOS_READ(RTC_INTR_FLAGS) & RTC_PF) == RTC_PF) ++ i -= 10; ++ } ++ ++ CMOS_WRITE(save_control, RTC_CONTROL); ++ CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT); ++ clear_IO_APIC_pin(apic, pin); ++ ++ ioapic_write_entry(apic, pin, entry0); ++} ++ ++int timer_uses_ioapic_pin_0; ++ ++/* ++ * This code may look a bit paranoid, but it's supposed to cooperate with ++ * a wide range of boards and BIOS bugs. Fortunately only the timer IRQ ++ * is so screwy. Thanks to Brian Perkins for testing/hacking this beast ++ * fanatically on his truly buggy board. ++ */ ++static inline void __init check_timer(void) ++{ ++ int apic1, pin1, apic2, pin2; ++ int vector; ++ unsigned int ver; ++ unsigned long flags; ++ ++ local_irq_save(flags); ++ ++ ver = apic_read(APIC_LVR); ++ ver = GET_APIC_VERSION(ver); ++ ++ /* ++ * get/set the timer IRQ vector: ++ */ ++ disable_8259A_irq(0); ++ vector = assign_irq_vector(0); ++ set_intr_gate(vector, interrupt[0]); ++ ++ /* ++ * Subtle, code in do_timer_interrupt() expects an AEOI ++ * mode for the 8259A whenever interrupts are routed ++ * through I/O APICs. Also IRQ0 has to be enabled in ++ * the 8259A which implies the virtual wire has to be ++ * disabled in the local APIC. Finally timer interrupts ++ * need to be acknowledged manually in the 8259A for ++ * timer_interrupt() and for the i82489DX when using ++ * the NMI watchdog. ++ */ ++ apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); ++ init_8259A(1); ++ timer_ack = !cpu_has_tsc; ++ timer_ack |= (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver)); ++ if (timer_over_8254 > 0) ++ enable_8259A_irq(0); ++ ++ pin1 = find_isa_irq_pin(0, mp_INT); ++ apic1 = find_isa_irq_apic(0, mp_INT); ++ pin2 = ioapic_i8259.pin; ++ apic2 = ioapic_i8259.apic; ++ ++ if (pin1 == 0) ++ timer_uses_ioapic_pin_0 = 1; ++ ++ printk(KERN_INFO "..TIMER: vector=0x%02X apic1=%d pin1=%d apic2=%d pin2=%d\n", ++ vector, apic1, pin1, apic2, pin2); ++ ++ if (pin1 != -1) { ++ /* ++ * Ok, does IRQ0 through the IOAPIC work? ++ */ ++ unmask_IO_APIC_irq(0); ++ if (timer_irq_works()) { ++ if (nmi_watchdog == NMI_IO_APIC) { ++ disable_8259A_irq(0); ++ setup_nmi(); ++ enable_8259A_irq(0); ++ } ++ if (disable_timer_pin_1 > 0) ++ clear_IO_APIC_pin(0, pin1); ++ goto out; ++ } ++ clear_IO_APIC_pin(apic1, pin1); ++ printk(KERN_ERR "..MP-BIOS bug: 8254 timer not connected to " ++ "IO-APIC\n"); ++ } ++ ++ printk(KERN_INFO "...trying to set up timer (IRQ0) through the 8259A ... "); ++ if (pin2 != -1) { ++ printk("\n..... (found pin %d) ...", pin2); ++ /* ++ * legacy devices should be connected to IO APIC #0 ++ */ ++ setup_ExtINT_IRQ0_pin(apic2, pin2, vector); ++ if (timer_irq_works()) { ++ printk("works.\n"); ++ if (pin1 != -1) ++ replace_pin_at_irq(0, apic1, pin1, apic2, pin2); ++ else ++ add_pin_to_irq(0, apic2, pin2); ++ if (nmi_watchdog == NMI_IO_APIC) { ++ setup_nmi(); ++ } ++ goto out; ++ } ++ /* ++ * Cleanup, just in case ... ++ */ ++ clear_IO_APIC_pin(apic2, pin2); ++ } ++ printk(" failed.\n"); ++ ++ if (nmi_watchdog == NMI_IO_APIC) { ++ printk(KERN_WARNING "timer doesn't work through the IO-APIC - disabling NMI Watchdog!\n"); ++ nmi_watchdog = 0; ++ } ++ ++ printk(KERN_INFO "...trying to set up timer as Virtual Wire IRQ..."); ++ ++ disable_8259A_irq(0); ++ set_irq_chip_and_handler_name(0, &lapic_chip, handle_fasteoi_irq, ++ "fasteoi"); ++ apic_write_around(APIC_LVT0, APIC_DM_FIXED | vector); /* Fixed mode */ ++ enable_8259A_irq(0); ++ ++ if (timer_irq_works()) { ++ printk(" works.\n"); ++ goto out; ++ } ++ apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | vector); ++ printk(" failed.\n"); ++ ++ printk(KERN_INFO "...trying to set up timer as ExtINT IRQ..."); ++ ++ timer_ack = 0; ++ init_8259A(0); ++ make_8259A_irq(0); ++ apic_write_around(APIC_LVT0, APIC_DM_EXTINT); ++ ++ unlock_ExtINT_logic(); ++ ++ if (timer_irq_works()) { ++ printk(" works.\n"); ++ goto out; ++ } ++ printk(" failed :(.\n"); ++ panic("IO-APIC + timer doesn't work! Boot with apic=debug and send a " ++ "report. Then try booting with the 'noapic' option"); ++out: ++ local_irq_restore(flags); ++} ++#else ++int timer_uses_ioapic_pin_0 = 0; ++#define check_timer() ((void)0) ++#endif ++ ++/* ++ * ++ * IRQ's that are handled by the PIC in the MPS IOAPIC case. ++ * - IRQ2 is the cascade IRQ, and cannot be a io-apic IRQ. ++ * Linux doesn't really care, as it's not actually used ++ * for any interrupt handling anyway. ++ */ ++#define PIC_IRQS (1 << PIC_CASCADE_IR) ++ ++void __init setup_IO_APIC(void) ++{ ++#ifndef CONFIG_XEN ++ int i; ++ ++ /* Reserve all the system vectors. */ ++ for (i = FIRST_SYSTEM_VECTOR; i < NR_VECTORS; i++) ++ set_bit(i, used_vectors); ++#endif ++ ++ enable_IO_APIC(); ++ ++ if (acpi_ioapic) ++ io_apic_irqs = ~0; /* all IRQs go through IOAPIC */ ++ else ++ io_apic_irqs = ~PIC_IRQS; ++ ++ printk("ENABLING IO-APIC IRQs\n"); ++ ++ /* ++ * Set up IO-APIC IRQ routing. ++ */ ++ if (!acpi_ioapic) ++ setup_ioapic_ids_from_mpc(); ++#ifndef CONFIG_XEN ++ sync_Arb_IDs(); ++#endif ++ setup_IO_APIC_irqs(); ++ init_IO_APIC_traps(); ++ check_timer(); ++ if (!acpi_ioapic) ++ print_IO_APIC(); ++} ++ ++#ifndef CONFIG_XEN ++static int __init setup_disable_8254_timer(char *s) ++{ ++ timer_over_8254 = -1; ++ return 1; ++} ++static int __init setup_enable_8254_timer(char *s) ++{ ++ timer_over_8254 = 2; ++ return 1; ++} ++ ++__setup("disable_8254_timer", setup_disable_8254_timer); ++__setup("enable_8254_timer", setup_enable_8254_timer); ++#endif ++ ++/* ++ * Called after all the initialization is done. If we didnt find any ++ * APIC bugs then we can allow the modify fast path ++ */ ++ ++static int __init io_apic_bug_finalize(void) ++{ ++ if(sis_apic_bug == -1) ++ sis_apic_bug = 0; ++ if (is_initial_xendomain()) { ++ struct xen_platform_op op = { .cmd = XENPF_platform_quirk }; ++ op.u.platform_quirk.quirk_id = sis_apic_bug ? ++ QUIRK_IOAPIC_BAD_REGSEL : QUIRK_IOAPIC_GOOD_REGSEL; ++ HYPERVISOR_platform_op(&op); ++ } ++ return 0; ++} ++ ++late_initcall(io_apic_bug_finalize); ++ ++struct sysfs_ioapic_data { ++ struct sys_device dev; ++ struct IO_APIC_route_entry entry[0]; ++}; ++static struct sysfs_ioapic_data * mp_ioapic_data[MAX_IO_APICS]; ++ ++static int ioapic_suspend(struct sys_device *dev, pm_message_t state) ++{ ++ struct IO_APIC_route_entry *entry; ++ struct sysfs_ioapic_data *data; ++ int i; ++ ++ data = container_of(dev, struct sysfs_ioapic_data, dev); ++ entry = data->entry; ++ for (i = 0; i < nr_ioapic_registers[dev->id]; i ++) ++ entry[i] = ioapic_read_entry(dev->id, i); ++ ++ return 0; ++} ++ ++static int ioapic_resume(struct sys_device *dev) ++{ ++ struct IO_APIC_route_entry *entry; ++ struct sysfs_ioapic_data *data; ++ unsigned long flags; ++ union IO_APIC_reg_00 reg_00; ++ int i; ++ ++ data = container_of(dev, struct sysfs_ioapic_data, dev); ++ entry = data->entry; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_00.raw = io_apic_read(dev->id, 0); ++ if (reg_00.bits.ID != mp_ioapics[dev->id].mpc_apicid) { ++ reg_00.bits.ID = mp_ioapics[dev->id].mpc_apicid; ++ io_apic_write(dev->id, 0, reg_00.raw); ++ } ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ for (i = 0; i < nr_ioapic_registers[dev->id]; i ++) ++ ioapic_write_entry(dev->id, i, entry[i]); ++ ++ return 0; ++} ++ ++static struct sysdev_class ioapic_sysdev_class = { ++ set_kset_name("ioapic"), ++ .suspend = ioapic_suspend, ++ .resume = ioapic_resume, ++}; ++ ++static int __init ioapic_init_sysfs(void) ++{ ++ struct sys_device * dev; ++ int i, size, error = 0; ++ ++ error = sysdev_class_register(&ioapic_sysdev_class); ++ if (error) ++ return error; ++ ++ for (i = 0; i < nr_ioapics; i++ ) { ++ size = sizeof(struct sys_device) + nr_ioapic_registers[i] ++ * sizeof(struct IO_APIC_route_entry); ++ mp_ioapic_data[i] = kmalloc(size, GFP_KERNEL); ++ if (!mp_ioapic_data[i]) { ++ printk(KERN_ERR "Can't suspend/resume IOAPIC %d\n", i); ++ continue; ++ } ++ memset(mp_ioapic_data[i], 0, size); ++ dev = &mp_ioapic_data[i]->dev; ++ dev->id = i; ++ dev->cls = &ioapic_sysdev_class; ++ error = sysdev_register(dev); ++ if (error) { ++ kfree(mp_ioapic_data[i]); ++ mp_ioapic_data[i] = NULL; ++ printk(KERN_ERR "Can't suspend/resume IOAPIC %d\n", i); ++ continue; ++ } ++ } ++ ++ return 0; ++} ++ ++device_initcall(ioapic_init_sysfs); ++ ++#ifndef CONFIG_XEN ++/* ++ * Dynamic irq allocate and deallocation ++ */ ++int create_irq(void) ++{ ++ /* Allocate an unused irq */ ++ int irq, new, vector = 0; ++ unsigned long flags; ++ ++ irq = -ENOSPC; ++ spin_lock_irqsave(&vector_lock, flags); ++ for (new = (NR_IRQS - 1); new >= 0; new--) { ++ if (platform_legacy_irq(new)) ++ continue; ++ if (irq_vector[new] != 0) ++ continue; ++ vector = __assign_irq_vector(new); ++ if (likely(vector > 0)) ++ irq = new; ++ break; ++ } ++ spin_unlock_irqrestore(&vector_lock, flags); ++ ++ if (irq >= 0) { ++ set_intr_gate(vector, interrupt[irq]); ++ dynamic_irq_init(irq); ++ } ++ return irq; ++} ++ ++void destroy_irq(unsigned int irq) ++{ ++ unsigned long flags; ++ ++ dynamic_irq_cleanup(irq); ++ ++ spin_lock_irqsave(&vector_lock, flags); ++ irq_vector[irq] = 0; ++ spin_unlock_irqrestore(&vector_lock, flags); ++} ++#endif ++ ++/* ++ * MSI message composition ++ */ ++#ifdef CONFIG_PCI_MSI ++static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_msg *msg) ++{ ++ int vector; ++ unsigned dest; ++ ++ vector = assign_irq_vector(irq); ++ if (vector >= 0) { ++ dest = cpu_mask_to_apicid(TARGET_CPUS); ++ ++ msg->address_hi = MSI_ADDR_BASE_HI; ++ msg->address_lo = ++ MSI_ADDR_BASE_LO | ++ ((INT_DEST_MODE == 0) ? ++ MSI_ADDR_DEST_MODE_PHYSICAL: ++ MSI_ADDR_DEST_MODE_LOGICAL) | ++ ((INT_DELIVERY_MODE != dest_LowestPrio) ? ++ MSI_ADDR_REDIRECTION_CPU: ++ MSI_ADDR_REDIRECTION_LOWPRI) | ++ MSI_ADDR_DEST_ID(dest); ++ ++ msg->data = ++ MSI_DATA_TRIGGER_EDGE | ++ MSI_DATA_LEVEL_ASSERT | ++ ((INT_DELIVERY_MODE != dest_LowestPrio) ? ++ MSI_DATA_DELIVERY_FIXED: ++ MSI_DATA_DELIVERY_LOWPRI) | ++ MSI_DATA_VECTOR(vector); ++ } ++ return vector; ++} ++ ++#ifdef CONFIG_SMP ++static void set_msi_irq_affinity(unsigned int irq, cpumask_t mask) ++{ ++ struct msi_msg msg; ++ unsigned int dest; ++ cpumask_t tmp; ++ int vector; ++ ++ cpus_and(tmp, mask, cpu_online_map); ++ if (cpus_empty(tmp)) ++ tmp = TARGET_CPUS; ++ ++ vector = assign_irq_vector(irq); ++ if (vector < 0) ++ return; ++ ++ dest = cpu_mask_to_apicid(mask); ++ ++ read_msi_msg(irq, &msg); ++ ++ msg.data &= ~MSI_DATA_VECTOR_MASK; ++ msg.data |= MSI_DATA_VECTOR(vector); ++ msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK; ++ msg.address_lo |= MSI_ADDR_DEST_ID(dest); ++ ++ write_msi_msg(irq, &msg); ++ irq_desc[irq].affinity = mask; ++} ++#endif /* CONFIG_SMP */ ++ ++/* ++ * IRQ Chip for MSI PCI/PCI-X/PCI-Express Devices, ++ * which implement the MSI or MSI-X Capability Structure. ++ */ ++static struct irq_chip msi_chip = { ++ .name = "PCI-MSI", ++ .unmask = unmask_msi_irq, ++ .mask = mask_msi_irq, ++ .ack = ack_ioapic_irq, ++#ifdef CONFIG_SMP ++ .set_affinity = set_msi_irq_affinity, ++#endif ++ .retrigger = ioapic_retrigger_irq, ++}; ++ ++int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc) ++{ ++ struct msi_msg msg; ++ int irq, ret; ++ irq = create_irq(); ++ if (irq < 0) ++ return irq; ++ ++ ret = msi_compose_msg(dev, irq, &msg); ++ if (ret < 0) { ++ destroy_irq(irq); ++ return ret; ++ } ++ ++ set_irq_msi(irq, desc); ++ write_msi_msg(irq, &msg); ++ ++ set_irq_chip_and_handler_name(irq, &msi_chip, handle_edge_irq, ++ "edge"); ++ ++ return 0; ++} ++ ++void arch_teardown_msi_irq(unsigned int irq) ++{ ++ destroy_irq(irq); ++} ++ ++#endif /* CONFIG_PCI_MSI */ ++ ++/* ++ * Hypertransport interrupt support ++ */ ++#ifdef CONFIG_HT_IRQ ++ ++#ifdef CONFIG_SMP ++ ++static void target_ht_irq(unsigned int irq, unsigned int dest) ++{ ++ struct ht_irq_msg msg; ++ fetch_ht_irq_msg(irq, &msg); ++ ++ msg.address_lo &= ~(HT_IRQ_LOW_DEST_ID_MASK); ++ msg.address_hi &= ~(HT_IRQ_HIGH_DEST_ID_MASK); ++ ++ msg.address_lo |= HT_IRQ_LOW_DEST_ID(dest); ++ msg.address_hi |= HT_IRQ_HIGH_DEST_ID(dest); ++ ++ write_ht_irq_msg(irq, &msg); ++} ++ ++static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask) ++{ ++ unsigned int dest; ++ cpumask_t tmp; ++ ++ cpus_and(tmp, mask, cpu_online_map); ++ if (cpus_empty(tmp)) ++ tmp = TARGET_CPUS; ++ ++ cpus_and(mask, tmp, CPU_MASK_ALL); ++ ++ dest = cpu_mask_to_apicid(mask); ++ ++ target_ht_irq(irq, dest); ++ irq_desc[irq].affinity = mask; ++} ++#endif ++ ++static struct irq_chip ht_irq_chip = { ++ .name = "PCI-HT", ++ .mask = mask_ht_irq, ++ .unmask = unmask_ht_irq, ++ .ack = ack_ioapic_irq, ++#ifdef CONFIG_SMP ++ .set_affinity = set_ht_irq_affinity, ++#endif ++ .retrigger = ioapic_retrigger_irq, ++}; ++ ++int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) ++{ ++ int vector; ++ ++ vector = assign_irq_vector(irq); ++ if (vector >= 0) { ++ struct ht_irq_msg msg; ++ unsigned dest; ++ cpumask_t tmp; ++ ++ cpus_clear(tmp); ++ cpu_set(vector >> 8, tmp); ++ dest = cpu_mask_to_apicid(tmp); ++ ++ msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest); ++ ++ msg.address_lo = ++ HT_IRQ_LOW_BASE | ++ HT_IRQ_LOW_DEST_ID(dest) | ++ HT_IRQ_LOW_VECTOR(vector) | ++ ((INT_DEST_MODE == 0) ? ++ HT_IRQ_LOW_DM_PHYSICAL : ++ HT_IRQ_LOW_DM_LOGICAL) | ++ HT_IRQ_LOW_RQEOI_EDGE | ++ ((INT_DELIVERY_MODE != dest_LowestPrio) ? ++ HT_IRQ_LOW_MT_FIXED : ++ HT_IRQ_LOW_MT_ARBITRATED) | ++ HT_IRQ_LOW_IRQ_MASKED; ++ ++ write_ht_irq_msg(irq, &msg); ++ ++ set_irq_chip_and_handler_name(irq, &ht_irq_chip, ++ handle_edge_irq, "edge"); ++ } ++ return vector; ++} ++#endif /* CONFIG_HT_IRQ */ ++ ++/* -------------------------------------------------------------------------- ++ ACPI-based IOAPIC Configuration ++ -------------------------------------------------------------------------- */ ++ ++#ifdef CONFIG_ACPI ++ ++int __init io_apic_get_unique_id (int ioapic, int apic_id) ++{ ++#ifndef CONFIG_XEN ++ union IO_APIC_reg_00 reg_00; ++ static physid_mask_t apic_id_map = PHYSID_MASK_NONE; ++ physid_mask_t tmp; ++ unsigned long flags; ++ int i = 0; ++ ++ /* ++ * The P4 platform supports up to 256 APIC IDs on two separate APIC ++ * buses (one for LAPICs, one for IOAPICs), where predecessors only ++ * supports up to 16 on one shared APIC bus. ++ * ++ * TBD: Expand LAPIC/IOAPIC support on P4-class systems to take full ++ * advantage of new APIC bus architecture. ++ */ ++ ++ if (physids_empty(apic_id_map)) ++ apic_id_map = ioapic_phys_id_map(phys_cpu_present_map); ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_00.raw = io_apic_read(ioapic, 0); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ if (apic_id >= get_physical_broadcast()) { ++ printk(KERN_WARNING "IOAPIC[%d]: Invalid apic_id %d, trying " ++ "%d\n", ioapic, apic_id, reg_00.bits.ID); ++ apic_id = reg_00.bits.ID; ++ } ++ ++ /* ++ * Every APIC in a system must have a unique ID or we get lots of nice ++ * 'stuck on smp_invalidate_needed IPI wait' messages. ++ */ ++ if (check_apicid_used(apic_id_map, apic_id)) { ++ ++ for (i = 0; i < get_physical_broadcast(); i++) { ++ if (!check_apicid_used(apic_id_map, i)) ++ break; ++ } ++ ++ if (i == get_physical_broadcast()) ++ panic("Max apic_id exceeded!\n"); ++ ++ printk(KERN_WARNING "IOAPIC[%d]: apic_id %d already used, " ++ "trying %d\n", ioapic, apic_id, i); ++ ++ apic_id = i; ++ } ++ ++ tmp = apicid_to_cpu_present(apic_id); ++ physids_or(apic_id_map, apic_id_map, tmp); ++ ++ if (reg_00.bits.ID != apic_id) { ++ reg_00.bits.ID = apic_id; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ io_apic_write(ioapic, 0, reg_00.raw); ++ reg_00.raw = io_apic_read(ioapic, 0); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ /* Sanity check */ ++ if (reg_00.bits.ID != apic_id) { ++ printk("IOAPIC[%d]: Unable to change apic_id!\n", ioapic); ++ return -1; ++ } ++ } ++ ++ apic_printk(APIC_VERBOSE, KERN_INFO ++ "IOAPIC[%d]: Assigned apic_id %d\n", ioapic, apic_id); ++#endif /* !CONFIG_XEN */ ++ ++ return apic_id; ++} ++ ++ ++int __init io_apic_get_version (int ioapic) ++{ ++ union IO_APIC_reg_01 reg_01; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_01.raw = io_apic_read(ioapic, 1); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ return reg_01.bits.version; ++} ++ ++ ++int __init io_apic_get_redir_entries (int ioapic) ++{ ++ union IO_APIC_reg_01 reg_01; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_01.raw = io_apic_read(ioapic, 1); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ return reg_01.bits.entries; ++} ++ ++ ++int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int active_high_low) ++{ ++ struct IO_APIC_route_entry entry; ++ unsigned long flags; ++ ++ if (!IO_APIC_IRQ(irq)) { ++ printk(KERN_ERR "IOAPIC[%d]: Invalid reference to IRQ 0\n", ++ ioapic); ++ return -EINVAL; ++ } ++ ++ /* ++ * Generate a PCI IRQ routing entry and program the IOAPIC accordingly. ++ * Note that we mask (disable) IRQs now -- these get enabled when the ++ * corresponding device driver registers for this IRQ. ++ */ ++ ++ memset(&entry,0,sizeof(entry)); ++ ++ entry.delivery_mode = INT_DELIVERY_MODE; ++ entry.dest_mode = INT_DEST_MODE; ++ entry.dest.logical.logical_dest = cpu_mask_to_apicid(TARGET_CPUS); ++ entry.trigger = edge_level; ++ entry.polarity = active_high_low; ++ entry.mask = 1; ++ ++ /* ++ * IRQs < 16 are already in the irq_2_pin[] map ++ */ ++ if (irq >= 16) ++ add_pin_to_irq(irq, ioapic, pin); ++ ++ entry.vector = assign_irq_vector(irq); ++ ++ apic_printk(APIC_DEBUG, KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry " ++ "(%d-%d -> 0x%x -> IRQ %d Mode:%i Active:%i)\n", ioapic, ++ mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq, ++ edge_level, active_high_low); ++ ++ ioapic_register_intr(irq, entry.vector, edge_level); ++ ++ if (!ioapic && (irq < 16)) ++ disable_8259A_irq(irq); ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __ioapic_write_entry(ioapic, pin, entry); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ return 0; ++} ++ ++int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity) ++{ ++ int i; ++ ++ if (skip_ioapic_setup) ++ return -1; ++ ++ for (i = 0; i < mp_irq_entries; i++) ++ if (mp_irqs[i].mpc_irqtype == mp_INT && ++ mp_irqs[i].mpc_srcbusirq == bus_irq) ++ break; ++ if (i >= mp_irq_entries) ++ return -1; ++ ++ *trigger = irq_trigger(i); ++ *polarity = irq_polarity(i); ++ return 0; ++} ++ ++#endif /* CONFIG_ACPI */ ++ ++#ifndef CONFIG_XEN ++static int __init parse_disable_timer_pin_1(char *arg) ++{ ++ disable_timer_pin_1 = 1; ++ return 0; ++} ++early_param("disable_timer_pin_1", parse_disable_timer_pin_1); ++ ++static int __init parse_enable_timer_pin_1(char *arg) ++{ ++ disable_timer_pin_1 = -1; ++ return 0; ++} ++early_param("enable_timer_pin_1", parse_enable_timer_pin_1); ++#endif ++ ++static int __init parse_noapic(char *arg) ++{ ++ /* disable IO-APIC */ ++ disable_ioapic_setup(); ++ return 0; ++} ++early_param("noapic", parse_noapic); +diff -Naur ubuntu-hardy/arch/x86/kernel/io_apic_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/io_apic_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/io_apic_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/io_apic_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,2298 @@ ++/* ++ * Intel IO-APIC support for multi-Pentium hosts. ++ * ++ * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar, Hajnalka Szabo ++ * ++ * Many thanks to Stig Venaas for trying out countless experimental ++ * patches and reporting/debugging problems patiently! ++ * ++ * (c) 1999, Multiple IO-APIC support, developed by ++ * Ken-ichi Yaku and ++ * Hidemi Kishimoto , ++ * further tested and cleaned up by Zach Brown ++ * and Ingo Molnar ++ * ++ * Fixes ++ * Maciej W. Rozycki : Bits for genuine 82489DX APICs; ++ * thanks to Eric Gilmore ++ * and Rolf G. Tews ++ * for testing these extensively ++ * Paul Diefenbaugh : Added full ACPI support ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_ACPI ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct irq_cfg { ++#ifndef CONFIG_XEN ++ cpumask_t domain; ++ cpumask_t old_domain; ++#endif ++ unsigned move_cleanup_count; ++ u8 vector; ++ u8 move_in_progress : 1; ++}; ++ ++/* irq_cfg is indexed by the sum of all RTEs in all I/O APICs. */ ++struct irq_cfg irq_cfg[NR_IRQS] __read_mostly; ++ ++static int assign_irq_vector(int irq, cpumask_t mask); ++ ++#define __apicdebuginit __init ++ ++int sis_apic_bug; /* not actually supported, dummy for compile */ ++ ++#ifdef CONFIG_XEN ++#include ++#include ++ ++/* Fake i8259 */ ++#define make_8259A_irq(_irq) (io_apic_irqs &= ~(1UL<<(_irq))) ++#define disable_8259A_irq(_irq) ((void)0) ++#define i8259A_irq_pending(_irq) (0) ++ ++unsigned long io_apic_irqs; ++ ++#define clear_IO_APIC() ((void)0) ++#else ++static int no_timer_check; ++ ++static int disable_timer_pin_1 __initdata; ++ ++int timer_over_8254 __initdata = 1; ++ ++/* Where if anywhere is the i8259 connect in external int mode */ ++static struct { int pin, apic; } ioapic_i8259 = { -1, -1 }; ++#endif ++ ++static DEFINE_SPINLOCK(ioapic_lock); ++DEFINE_SPINLOCK(vector_lock); ++ ++/* ++ * # of IRQ routing registers ++ */ ++int nr_ioapic_registers[MAX_IO_APICS]; ++ ++/* ++ * Rough estimation of how many shared IRQs there are, can ++ * be changed anytime. ++ */ ++#define MAX_PLUS_SHARED_IRQS NR_IRQS ++#define PIN_MAP_SIZE (MAX_PLUS_SHARED_IRQS + NR_IRQS) ++ ++/* ++ * This is performance-critical, we want to do it O(1) ++ * ++ * the indexing order of this array favors 1:1 mappings ++ * between pins and IRQs. ++ */ ++ ++static struct irq_pin_list { ++ short apic, pin, next; ++} irq_2_pin[PIN_MAP_SIZE]; ++ ++#ifndef CONFIG_XEN ++struct io_apic { ++ unsigned int index; ++ unsigned int unused[3]; ++ unsigned int data; ++}; ++ ++static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) ++{ ++ return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx) ++ + (mp_ioapics[idx].mpc_apicaddr & ~PAGE_MASK); ++} ++#endif ++ ++static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) ++{ ++#ifndef CONFIG_XEN ++ struct io_apic __iomem *io_apic = io_apic_base(apic); ++ writel(reg, &io_apic->index); ++ return readl(&io_apic->data); ++#else ++ struct physdev_apic apic_op; ++ int ret; ++ ++ apic_op.apic_physbase = mp_ioapics[apic].mpc_apicaddr; ++ apic_op.reg = reg; ++ ret = HYPERVISOR_physdev_op(PHYSDEVOP_apic_read, &apic_op); ++ if (ret) ++ return ret; ++ return apic_op.value; ++#endif ++} ++ ++static inline void io_apic_write(unsigned int apic, unsigned int reg, unsigned int value) ++{ ++#ifndef CONFIG_XEN ++ struct io_apic __iomem *io_apic = io_apic_base(apic); ++ writel(reg, &io_apic->index); ++ writel(value, &io_apic->data); ++#else ++ struct physdev_apic apic_op; ++ ++ apic_op.apic_physbase = mp_ioapics[apic].mpc_apicaddr; ++ apic_op.reg = reg; ++ apic_op.value = value; ++ HYPERVISOR_physdev_op(PHYSDEVOP_apic_write, &apic_op); ++#endif ++} ++ ++#ifdef CONFIG_XEN ++#define io_apic_modify io_apic_write ++#else ++/* ++ * Re-write a value: to be used for read-modify-write ++ * cycles where the read already set up the index register. ++ */ ++static inline void io_apic_modify(unsigned int apic, unsigned int value) ++{ ++ struct io_apic __iomem *io_apic = io_apic_base(apic); ++ writel(value, &io_apic->data); ++} ++ ++static int io_apic_level_ack_pending(unsigned int irq) ++{ ++ struct irq_pin_list *entry; ++ unsigned long flags; ++ int pending = 0; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ entry = irq_2_pin + irq; ++ for (;;) { ++ unsigned int reg; ++ int pin; ++ ++ pin = entry->pin; ++ if (pin == -1) ++ break; ++ reg = io_apic_read(entry->apic, 0x10 + pin*2); ++ /* Is the remote IRR bit set? */ ++ pending |= (reg >> 14) & 1; ++ if (!entry->next) ++ break; ++ entry = irq_2_pin + entry->next; ++ } ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ return pending; ++} ++#endif ++ ++/* ++ * Synchronize the IO-APIC and the CPU by doing ++ * a dummy read from the IO-APIC ++ */ ++static inline void io_apic_sync(unsigned int apic) ++{ ++#ifndef CONFIG_XEN ++ struct io_apic __iomem *io_apic = io_apic_base(apic); ++ readl(&io_apic->data); ++#endif ++} ++ ++union entry_union { ++ struct { u32 w1, w2; }; ++ struct IO_APIC_route_entry entry; ++}; ++ ++static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin) ++{ ++ union entry_union eu; ++ unsigned long flags; ++ spin_lock_irqsave(&ioapic_lock, flags); ++ eu.w1 = io_apic_read(apic, 0x10 + 2 * pin); ++ eu.w2 = io_apic_read(apic, 0x11 + 2 * pin); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ return eu.entry; ++} ++ ++/* ++ * When we write a new IO APIC routing entry, we need to write the high ++ * word first! If the mask bit in the low word is clear, we will enable ++ * the interrupt, and we need to make sure the entry is fully populated ++ * before that happens. ++ */ ++static void ++__ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) ++{ ++ union entry_union eu; ++ eu.entry = e; ++ io_apic_write(apic, 0x11 + 2*pin, eu.w2); ++ io_apic_write(apic, 0x10 + 2*pin, eu.w1); ++} ++ ++static void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) ++{ ++ unsigned long flags; ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __ioapic_write_entry(apic, pin, e); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * When we mask an IO APIC routing entry, we need to write the low ++ * word first, in order to set the mask bit before we change the ++ * high bits! ++ */ ++static void ioapic_mask_entry(int apic, int pin) ++{ ++ unsigned long flags; ++ union entry_union eu = { .entry.mask = 1 }; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ io_apic_write(apic, 0x10 + 2*pin, eu.w1); ++ io_apic_write(apic, 0x11 + 2*pin, eu.w2); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++#ifdef CONFIG_SMP ++static void __target_IO_APIC_irq(unsigned int irq, unsigned int dest, u8 vector) ++{ ++ int apic, pin; ++ struct irq_pin_list *entry = irq_2_pin + irq; ++ ++ BUG_ON(irq >= NR_IRQS); ++ for (;;) { ++ unsigned int reg; ++ apic = entry->apic; ++ pin = entry->pin; ++ if (pin == -1) ++ break; ++ io_apic_write(apic, 0x11 + pin*2, dest); ++ reg = io_apic_read(apic, 0x10 + pin*2); ++ reg &= ~0x000000ff; ++ reg |= vector; ++ io_apic_modify(apic, reg); ++ if (!entry->next) ++ break; ++ entry = irq_2_pin + entry->next; ++ } ++} ++ ++static void set_ioapic_affinity_irq(unsigned int irq, cpumask_t mask) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ unsigned long flags; ++ unsigned int dest; ++ cpumask_t tmp; ++ ++ cpus_and(tmp, mask, cpu_online_map); ++ if (cpus_empty(tmp)) ++ return; ++ ++ if (assign_irq_vector(irq, mask)) ++ return; ++ ++ cpus_and(tmp, cfg->domain, mask); ++ dest = cpu_mask_to_apicid(tmp); ++ ++ /* ++ * Only the high 8 bits are valid. ++ */ ++ dest = SET_APIC_LOGICAL_ID(dest); ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __target_IO_APIC_irq(irq, dest, cfg->vector); ++ irq_desc[irq].affinity = mask; ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++#endif ++#endif ++ ++/* ++ * The common case is 1:1 IRQ<->pin mappings. Sometimes there are ++ * shared ISA-space IRQs, so we have to support them. We are super ++ * fast in the common case, and fast for shared ISA-space IRQs. ++ */ ++static void add_pin_to_irq(unsigned int irq, int apic, int pin) ++{ ++ static int first_free_entry = NR_IRQS; ++ struct irq_pin_list *entry = irq_2_pin + irq; ++ ++ BUG_ON(irq >= NR_IRQS); ++ while (entry->next) ++ entry = irq_2_pin + entry->next; ++ ++ if (entry->pin != -1) { ++ entry->next = first_free_entry; ++ entry = irq_2_pin + entry->next; ++ if (++first_free_entry >= PIN_MAP_SIZE) ++ panic("io_apic.c: ran out of irq_2_pin entries!"); ++ } ++ entry->apic = apic; ++ entry->pin = pin; ++} ++ ++#ifndef CONFIG_XEN ++#define __DO_ACTION(R, ACTION, FINAL) \ ++ \ ++{ \ ++ int pin; \ ++ struct irq_pin_list *entry = irq_2_pin + irq; \ ++ \ ++ BUG_ON(irq >= NR_IRQS); \ ++ for (;;) { \ ++ unsigned int reg; \ ++ pin = entry->pin; \ ++ if (pin == -1) \ ++ break; \ ++ reg = io_apic_read(entry->apic, 0x10 + R + pin*2); \ ++ reg ACTION; \ ++ io_apic_modify(entry->apic, reg); \ ++ FINAL; \ ++ if (!entry->next) \ ++ break; \ ++ entry = irq_2_pin + entry->next; \ ++ } \ ++} ++ ++#define DO_ACTION(name,R,ACTION, FINAL) \ ++ \ ++ static void name##_IO_APIC_irq (unsigned int irq) \ ++ __DO_ACTION(R, ACTION, FINAL) ++ ++DO_ACTION( __mask, 0, |= 0x00010000, io_apic_sync(entry->apic) ) ++ /* mask = 1 */ ++DO_ACTION( __unmask, 0, &= 0xfffeffff, ) ++ /* mask = 0 */ ++ ++static void mask_IO_APIC_irq (unsigned int irq) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __mask_IO_APIC_irq(irq); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++static void unmask_IO_APIC_irq (unsigned int irq) ++{ ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ __unmask_IO_APIC_irq(irq); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++static void clear_IO_APIC_pin(unsigned int apic, unsigned int pin) ++{ ++ struct IO_APIC_route_entry entry; ++ ++ /* Check delivery_mode to be sure we're not clearing an SMI pin */ ++ entry = ioapic_read_entry(apic, pin); ++ if (entry.delivery_mode == dest_SMI) ++ return; ++ /* ++ * Disable it in the IO-APIC irq-routing table: ++ */ ++ ioapic_mask_entry(apic, pin); ++} ++ ++static void clear_IO_APIC (void) ++{ ++ int apic, pin; ++ ++ for (apic = 0; apic < nr_ioapics; apic++) ++ for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) ++ clear_IO_APIC_pin(apic, pin); ++} ++ ++#endif /* !CONFIG_XEN */ ++ ++int skip_ioapic_setup; ++int ioapic_force; ++ ++static int __init parse_noapic(char *str) ++{ ++ disable_ioapic_setup(); ++ return 0; ++} ++early_param("noapic", parse_noapic); ++ ++#ifndef CONFIG_XEN ++/* Actually the next is obsolete, but keep it for paranoid reasons -AK */ ++static int __init disable_timer_pin_setup(char *arg) ++{ ++ disable_timer_pin_1 = 1; ++ return 1; ++} ++__setup("disable_timer_pin_1", disable_timer_pin_setup); ++ ++static int __init setup_disable_8254_timer(char *s) ++{ ++ timer_over_8254 = -1; ++ return 1; ++} ++static int __init setup_enable_8254_timer(char *s) ++{ ++ timer_over_8254 = 2; ++ return 1; ++} ++ ++__setup("disable_8254_timer", setup_disable_8254_timer); ++__setup("enable_8254_timer", setup_enable_8254_timer); ++#endif /* !CONFIG_XEN */ ++ ++ ++/* ++ * Find the IRQ entry number of a certain pin. ++ */ ++static int find_irq_entry(int apic, int pin, int type) ++{ ++ int i; ++ ++ for (i = 0; i < mp_irq_entries; i++) ++ if (mp_irqs[i].mpc_irqtype == type && ++ (mp_irqs[i].mpc_dstapic == mp_ioapics[apic].mpc_apicid || ++ mp_irqs[i].mpc_dstapic == MP_APIC_ALL) && ++ mp_irqs[i].mpc_dstirq == pin) ++ return i; ++ ++ return -1; ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * Find the pin to which IRQ[irq] (ISA) is connected ++ */ ++static int __init find_isa_irq_pin(int irq, int type) ++{ ++ int i; ++ ++ for (i = 0; i < mp_irq_entries; i++) { ++ int lbus = mp_irqs[i].mpc_srcbus; ++ ++ if (test_bit(lbus, mp_bus_not_pci) && ++ (mp_irqs[i].mpc_irqtype == type) && ++ (mp_irqs[i].mpc_srcbusirq == irq)) ++ ++ return mp_irqs[i].mpc_dstirq; ++ } ++ return -1; ++} ++ ++static int __init find_isa_irq_apic(int irq, int type) ++{ ++ int i; ++ ++ for (i = 0; i < mp_irq_entries; i++) { ++ int lbus = mp_irqs[i].mpc_srcbus; ++ ++ if (test_bit(lbus, mp_bus_not_pci) && ++ (mp_irqs[i].mpc_irqtype == type) && ++ (mp_irqs[i].mpc_srcbusirq == irq)) ++ break; ++ } ++ if (i < mp_irq_entries) { ++ int apic; ++ for(apic = 0; apic < nr_ioapics; apic++) { ++ if (mp_ioapics[apic].mpc_apicid == mp_irqs[i].mpc_dstapic) ++ return apic; ++ } ++ } ++ ++ return -1; ++} ++#endif ++ ++/* ++ * Find a specific PCI IRQ entry. ++ * Not an __init, possibly needed by modules ++ */ ++static int pin_2_irq(int idx, int apic, int pin); ++ ++int IO_APIC_get_PCI_irq_vector(int bus, int slot, int pin) ++{ ++ int apic, i, best_guess = -1; ++ ++ apic_printk(APIC_DEBUG, "querying PCI -> IRQ mapping bus:%d, slot:%d, pin:%d.\n", ++ bus, slot, pin); ++ if (mp_bus_id_to_pci_bus[bus] == -1) { ++ apic_printk(APIC_VERBOSE, "PCI BIOS passed nonexistent PCI bus %d!\n", bus); ++ return -1; ++ } ++ for (i = 0; i < mp_irq_entries; i++) { ++ int lbus = mp_irqs[i].mpc_srcbus; ++ ++ for (apic = 0; apic < nr_ioapics; apic++) ++ if (mp_ioapics[apic].mpc_apicid == mp_irqs[i].mpc_dstapic || ++ mp_irqs[i].mpc_dstapic == MP_APIC_ALL) ++ break; ++ ++ if (!test_bit(lbus, mp_bus_not_pci) && ++ !mp_irqs[i].mpc_irqtype && ++ (bus == lbus) && ++ (slot == ((mp_irqs[i].mpc_srcbusirq >> 2) & 0x1f))) { ++ int irq = pin_2_irq(i,apic,mp_irqs[i].mpc_dstirq); ++ ++ if (!(apic || IO_APIC_IRQ(irq))) ++ continue; ++ ++ if (pin == (mp_irqs[i].mpc_srcbusirq & 3)) ++ return irq; ++ /* ++ * Use the first all-but-pin matching entry as a ++ * best-guess fuzzy result for broken mptables. ++ */ ++ if (best_guess < 0) ++ best_guess = irq; ++ } ++ } ++ BUG_ON(best_guess >= NR_IRQS); ++ return best_guess; ++} ++ ++/* ISA interrupts are always polarity zero edge triggered, ++ * when listed as conforming in the MP table. */ ++ ++#define default_ISA_trigger(idx) (0) ++#define default_ISA_polarity(idx) (0) ++ ++/* PCI interrupts are always polarity one level triggered, ++ * when listed as conforming in the MP table. */ ++ ++#define default_PCI_trigger(idx) (1) ++#define default_PCI_polarity(idx) (1) ++ ++static int MPBIOS_polarity(int idx) ++{ ++ int bus = mp_irqs[idx].mpc_srcbus; ++ int polarity; ++ ++ /* ++ * Determine IRQ line polarity (high active or low active): ++ */ ++ switch (mp_irqs[idx].mpc_irqflag & 3) ++ { ++ case 0: /* conforms, ie. bus-type dependent polarity */ ++ if (test_bit(bus, mp_bus_not_pci)) ++ polarity = default_ISA_polarity(idx); ++ else ++ polarity = default_PCI_polarity(idx); ++ break; ++ case 1: /* high active */ ++ { ++ polarity = 0; ++ break; ++ } ++ case 2: /* reserved */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ polarity = 1; ++ break; ++ } ++ case 3: /* low active */ ++ { ++ polarity = 1; ++ break; ++ } ++ default: /* invalid */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ polarity = 1; ++ break; ++ } ++ } ++ return polarity; ++} ++ ++static int MPBIOS_trigger(int idx) ++{ ++ int bus = mp_irqs[idx].mpc_srcbus; ++ int trigger; ++ ++ /* ++ * Determine IRQ trigger mode (edge or level sensitive): ++ */ ++ switch ((mp_irqs[idx].mpc_irqflag>>2) & 3) ++ { ++ case 0: /* conforms, ie. bus-type dependent */ ++ if (test_bit(bus, mp_bus_not_pci)) ++ trigger = default_ISA_trigger(idx); ++ else ++ trigger = default_PCI_trigger(idx); ++ break; ++ case 1: /* edge */ ++ { ++ trigger = 0; ++ break; ++ } ++ case 2: /* reserved */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ trigger = 1; ++ break; ++ } ++ case 3: /* level */ ++ { ++ trigger = 1; ++ break; ++ } ++ default: /* invalid */ ++ { ++ printk(KERN_WARNING "broken BIOS!!\n"); ++ trigger = 0; ++ break; ++ } ++ } ++ return trigger; ++} ++ ++static inline int irq_polarity(int idx) ++{ ++ return MPBIOS_polarity(idx); ++} ++ ++static inline int irq_trigger(int idx) ++{ ++ return MPBIOS_trigger(idx); ++} ++ ++static int pin_2_irq(int idx, int apic, int pin) ++{ ++ int irq, i; ++ int bus = mp_irqs[idx].mpc_srcbus; ++ ++ /* ++ * Debugging check, we are in big trouble if this message pops up! ++ */ ++ if (mp_irqs[idx].mpc_dstirq != pin) ++ printk(KERN_ERR "broken BIOS or MPTABLE parser, ayiee!!\n"); ++ ++ if (test_bit(bus, mp_bus_not_pci)) { ++ irq = mp_irqs[idx].mpc_srcbusirq; ++ } else { ++ /* ++ * PCI IRQs are mapped in order ++ */ ++ i = irq = 0; ++ while (i < apic) ++ irq += nr_ioapic_registers[i++]; ++ irq += pin; ++ } ++ BUG_ON(irq >= NR_IRQS); ++ return irq; ++} ++ ++static int __assign_irq_vector(int irq, cpumask_t mask) ++{ ++ struct physdev_irq irq_op; ++ struct irq_cfg *cfg; ++ ++ BUG_ON((unsigned)irq >= NR_IRQS); ++ cfg = &irq_cfg[irq]; ++ ++ if ((cfg->move_in_progress) || cfg->move_cleanup_count) ++ return -EBUSY; ++ ++ if (cfg->vector) ++ return 0; ++ ++ irq_op.irq = irq; ++ if (HYPERVISOR_physdev_op(PHYSDEVOP_alloc_irq_vector, &irq_op)) ++ return -ENOSPC; ++ ++ cfg->vector = irq_op.vector; ++ ++ return 0; ++} ++ ++static int assign_irq_vector(int irq, cpumask_t mask) ++{ ++ int err; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&vector_lock, flags); ++ err = __assign_irq_vector(irq, mask); ++ spin_unlock_irqrestore(&vector_lock, flags); ++ return err; ++} ++ ++#ifndef CONFIG_XEN ++static void __clear_irq_vector(int irq) ++{ ++ struct irq_cfg *cfg; ++ cpumask_t mask; ++ int cpu, vector; ++ ++ BUG_ON((unsigned)irq >= NR_IRQS); ++ cfg = &irq_cfg[irq]; ++ BUG_ON(!cfg->vector); ++ ++ vector = cfg->vector; ++ cpus_and(mask, cfg->domain, cpu_online_map); ++ for_each_cpu_mask(cpu, mask) ++ per_cpu(vector_irq, cpu)[vector] = -1; ++ ++ cfg->vector = 0; ++ cfg->domain = CPU_MASK_NONE; ++} ++ ++void __setup_vector_irq(int cpu) ++{ ++ /* Initialize vector_irq on a new cpu */ ++ /* This function must be called with vector_lock held */ ++ int irq, vector; ++ ++ /* Mark the inuse vectors */ ++ for (irq = 0; irq < NR_IRQS; ++irq) { ++ if (!cpu_isset(cpu, irq_cfg[irq].domain)) ++ continue; ++ vector = irq_cfg[irq].vector; ++ per_cpu(vector_irq, cpu)[vector] = irq; ++ } ++ /* Mark the free vectors */ ++ for (vector = 0; vector < NR_VECTORS; ++vector) { ++ irq = per_cpu(vector_irq, cpu)[vector]; ++ if (irq < 0) ++ continue; ++ if (!cpu_isset(cpu, irq_cfg[irq].domain)) ++ per_cpu(vector_irq, cpu)[vector] = -1; ++ } ++} ++ ++static struct irq_chip ioapic_chip; ++ ++static void ioapic_register_intr(int irq, unsigned long trigger) ++{ ++ if (trigger) { ++ irq_desc[irq].status |= IRQ_LEVEL; ++ set_irq_chip_and_handler_name(irq, &ioapic_chip, ++ handle_fasteoi_irq, "fasteoi"); ++ } else { ++ irq_desc[irq].status &= ~IRQ_LEVEL; ++ set_irq_chip_and_handler_name(irq, &ioapic_chip, ++ handle_edge_irq, "edge"); ++ } ++} ++#else ++#define ioapic_register_intr(irq,trigger) ((void)0) ++#endif /* !CONFIG_XEN */ ++ ++static void setup_IO_APIC_irq(int apic, int pin, unsigned int irq, ++ int trigger, int polarity) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ struct IO_APIC_route_entry entry; ++ cpumask_t mask; ++ ++ if (!IO_APIC_IRQ(irq)) ++ return; ++ ++ mask = TARGET_CPUS; ++ if (assign_irq_vector(irq, mask)) ++ return; ++ ++#ifndef CONFIG_XEN ++ cpus_and(mask, cfg->domain, mask); ++#endif ++ ++ apic_printk(APIC_VERBOSE,KERN_DEBUG ++ "IOAPIC[%d]: Set routing entry (%d-%d -> 0x%x -> " ++ "IRQ %d Mode:%i Active:%i)\n", ++ apic, mp_ioapics[apic].mpc_apicid, pin, cfg->vector, ++ irq, trigger, polarity); ++ ++ /* ++ * add it to the IO-APIC irq-routing table: ++ */ ++ memset(&entry,0,sizeof(entry)); ++ ++ entry.delivery_mode = INT_DELIVERY_MODE; ++ entry.dest_mode = INT_DEST_MODE; ++ entry.dest = cpu_mask_to_apicid(mask); ++ entry.mask = 0; /* enable IRQ */ ++ entry.trigger = trigger; ++ entry.polarity = polarity; ++ entry.vector = cfg->vector; ++ ++ /* Mask level triggered irqs. ++ * Use IRQ_DELAYED_DISABLE for edge triggered irqs. ++ */ ++ if (trigger) ++ entry.mask = 1; ++ ++ ioapic_register_intr(irq, trigger); ++ if (irq < 16) ++ disable_8259A_irq(irq); ++ ++ ioapic_write_entry(apic, pin, entry); ++} ++ ++static void __init setup_IO_APIC_irqs(void) ++{ ++ int apic, pin, idx, irq, first_notcon = 1; ++ ++ apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n"); ++ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { ++ ++ idx = find_irq_entry(apic,pin,mp_INT); ++ if (idx == -1) { ++ if (first_notcon) { ++ apic_printk(APIC_VERBOSE, KERN_DEBUG " IO-APIC (apicid-pin) %d-%d", mp_ioapics[apic].mpc_apicid, pin); ++ first_notcon = 0; ++ } else ++ apic_printk(APIC_VERBOSE, ", %d-%d", mp_ioapics[apic].mpc_apicid, pin); ++ continue; ++ } ++ if (!first_notcon) { ++ apic_printk(APIC_VERBOSE, " not connected.\n"); ++ first_notcon = 1; ++ } ++ ++ irq = pin_2_irq(idx, apic, pin); ++ add_pin_to_irq(irq, apic, pin); ++ ++ setup_IO_APIC_irq(apic, pin, irq, ++ irq_trigger(idx), irq_polarity(idx)); ++ } ++ } ++ ++ if (!first_notcon) ++ apic_printk(APIC_VERBOSE, " not connected.\n"); ++} ++ ++#ifndef CONFIG_XEN ++/* ++ * Set up the 8259A-master output pin as broadcast to all ++ * CPUs. ++ */ ++static void __init setup_ExtINT_IRQ0_pin(unsigned int apic, unsigned int pin, int vector) ++{ ++ struct IO_APIC_route_entry entry; ++ unsigned long flags; ++ ++ memset(&entry,0,sizeof(entry)); ++ ++ disable_8259A_irq(0); ++ ++ /* mask LVT0 */ ++ apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); ++ ++ /* ++ * We use logical delivery to get the timer IRQ ++ * to the first CPU. ++ */ ++ entry.dest_mode = INT_DEST_MODE; ++ entry.mask = 0; /* unmask IRQ now */ ++ entry.dest = cpu_mask_to_apicid(TARGET_CPUS); ++ entry.delivery_mode = INT_DELIVERY_MODE; ++ entry.polarity = 0; ++ entry.trigger = 0; ++ entry.vector = vector; ++ ++ /* ++ * The timer IRQ doesn't have to know that behind the ++ * scene we have a 8259A-master in AEOI mode ... ++ */ ++ set_irq_chip_and_handler_name(0, &ioapic_chip, handle_edge_irq, "edge"); ++ ++ /* ++ * Add it to the IO-APIC irq-routing table: ++ */ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ io_apic_write(apic, 0x11+2*pin, *(((int *)&entry)+1)); ++ io_apic_write(apic, 0x10+2*pin, *(((int *)&entry)+0)); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ enable_8259A_irq(0); ++} ++ ++void __apicdebuginit print_IO_APIC(void) ++{ ++ int apic, i; ++ union IO_APIC_reg_00 reg_00; ++ union IO_APIC_reg_01 reg_01; ++ union IO_APIC_reg_02 reg_02; ++ unsigned long flags; ++ ++ if (apic_verbosity == APIC_QUIET) ++ return; ++ ++ printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries); ++ for (i = 0; i < nr_ioapics; i++) ++ printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n", ++ mp_ioapics[i].mpc_apicid, nr_ioapic_registers[i]); ++ ++ /* ++ * We are a bit conservative about what we expect. We have to ++ * know about every hardware change ASAP. ++ */ ++ printk(KERN_INFO "testing the IO APIC.......................\n"); ++ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_00.raw = io_apic_read(apic, 0); ++ reg_01.raw = io_apic_read(apic, 1); ++ if (reg_01.bits.version >= 0x10) ++ reg_02.raw = io_apic_read(apic, 2); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ printk("\n"); ++ printk(KERN_DEBUG "IO APIC #%d......\n", mp_ioapics[apic].mpc_apicid); ++ printk(KERN_DEBUG ".... register #00: %08X\n", reg_00.raw); ++ printk(KERN_DEBUG "....... : physical APIC id: %02X\n", reg_00.bits.ID); ++ ++ printk(KERN_DEBUG ".... register #01: %08X\n", *(int *)®_01); ++ printk(KERN_DEBUG "....... : max redirection entries: %04X\n", reg_01.bits.entries); ++ ++ printk(KERN_DEBUG "....... : PRQ implemented: %X\n", reg_01.bits.PRQ); ++ printk(KERN_DEBUG "....... : IO APIC version: %04X\n", reg_01.bits.version); ++ ++ if (reg_01.bits.version >= 0x10) { ++ printk(KERN_DEBUG ".... register #02: %08X\n", reg_02.raw); ++ printk(KERN_DEBUG "....... : arbitration: %02X\n", reg_02.bits.arbitration); ++ } ++ ++ printk(KERN_DEBUG ".... IRQ redirection table:\n"); ++ ++ printk(KERN_DEBUG " NR Dst Mask Trig IRR Pol" ++ " Stat Dmod Deli Vect: \n"); ++ ++ for (i = 0; i <= reg_01.bits.entries; i++) { ++ struct IO_APIC_route_entry entry; ++ ++ entry = ioapic_read_entry(apic, i); ++ ++ printk(KERN_DEBUG " %02x %03X ", ++ i, ++ entry.dest ++ ); ++ ++ printk("%1d %1d %1d %1d %1d %1d %1d %02X\n", ++ entry.mask, ++ entry.trigger, ++ entry.irr, ++ entry.polarity, ++ entry.delivery_status, ++ entry.dest_mode, ++ entry.delivery_mode, ++ entry.vector ++ ); ++ } ++ } ++ printk(KERN_DEBUG "IRQ to pin mappings:\n"); ++ for (i = 0; i < NR_IRQS; i++) { ++ struct irq_pin_list *entry = irq_2_pin + i; ++ if (entry->pin < 0) ++ continue; ++ printk(KERN_DEBUG "IRQ%d ", i); ++ for (;;) { ++ printk("-> %d:%d", entry->apic, entry->pin); ++ if (!entry->next) ++ break; ++ entry = irq_2_pin + entry->next; ++ } ++ printk("\n"); ++ } ++ ++ printk(KERN_INFO ".................................... done.\n"); ++ ++ return; ++} ++ ++static __apicdebuginit void print_APIC_bitfield (int base) ++{ ++ unsigned int v; ++ int i, j; ++ ++ if (apic_verbosity == APIC_QUIET) ++ return; ++ ++ printk(KERN_DEBUG "0123456789abcdef0123456789abcdef\n" KERN_DEBUG); ++ for (i = 0; i < 8; i++) { ++ v = apic_read(base + i*0x10); ++ for (j = 0; j < 32; j++) { ++ if (v & (1< 3) { /* PC is LVT#4. */ ++ v = apic_read(APIC_LVTPC); ++ printk(KERN_DEBUG "... APIC LVTPC: %08x\n", v); ++ } ++ v = apic_read(APIC_LVT0); ++ printk(KERN_DEBUG "... APIC LVT0: %08x\n", v); ++ v = apic_read(APIC_LVT1); ++ printk(KERN_DEBUG "... APIC LVT1: %08x\n", v); ++ ++ if (maxlvt > 2) { /* ERR is LVT#3. */ ++ v = apic_read(APIC_LVTERR); ++ printk(KERN_DEBUG "... APIC LVTERR: %08x\n", v); ++ } ++ ++ v = apic_read(APIC_TMICT); ++ printk(KERN_DEBUG "... APIC TMICT: %08x\n", v); ++ v = apic_read(APIC_TMCCT); ++ printk(KERN_DEBUG "... APIC TMCCT: %08x\n", v); ++ v = apic_read(APIC_TDCR); ++ printk(KERN_DEBUG "... APIC TDCR: %08x\n", v); ++ printk("\n"); ++} ++ ++void print_all_local_APICs (void) ++{ ++ on_each_cpu(print_local_APIC, NULL, 1, 1); ++} ++ ++void __apicdebuginit print_PIC(void) ++{ ++ unsigned int v; ++ unsigned long flags; ++ ++ if (apic_verbosity == APIC_QUIET) ++ return; ++ ++ printk(KERN_DEBUG "\nprinting PIC contents\n"); ++ ++ spin_lock_irqsave(&i8259A_lock, flags); ++ ++ v = inb(0xa1) << 8 | inb(0x21); ++ printk(KERN_DEBUG "... PIC IMR: %04x\n", v); ++ ++ v = inb(0xa0) << 8 | inb(0x20); ++ printk(KERN_DEBUG "... PIC IRR: %04x\n", v); ++ ++ outb(0x0b,0xa0); ++ outb(0x0b,0x20); ++ v = inb(0xa0) << 8 | inb(0x20); ++ outb(0x0a,0xa0); ++ outb(0x0a,0x20); ++ ++ spin_unlock_irqrestore(&i8259A_lock, flags); ++ ++ printk(KERN_DEBUG "... PIC ISR: %04x\n", v); ++ ++ v = inb(0x4d1) << 8 | inb(0x4d0); ++ printk(KERN_DEBUG "... PIC ELCR: %04x\n", v); ++} ++#endif /* !CONFIG_XEN */ ++ ++static void __init enable_IO_APIC(void) ++{ ++ union IO_APIC_reg_01 reg_01; ++#ifndef CONFIG_XEN ++ int i8259_apic, i8259_pin; ++#endif ++ int i, apic; ++ unsigned long flags; ++ ++ for (i = 0; i < PIN_MAP_SIZE; i++) { ++ irq_2_pin[i].pin = -1; ++ irq_2_pin[i].next = 0; ++ } ++ ++ /* ++ * The number of IO-APIC IRQ registers (== #pins): ++ */ ++ for (apic = 0; apic < nr_ioapics; apic++) { ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_01.raw = io_apic_read(apic, 1); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ nr_ioapic_registers[apic] = reg_01.bits.entries+1; ++ } ++#ifndef CONFIG_XEN ++ for(apic = 0; apic < nr_ioapics; apic++) { ++ int pin; ++ /* See if any of the pins is in ExtINT mode */ ++ for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { ++ struct IO_APIC_route_entry entry; ++ entry = ioapic_read_entry(apic, pin); ++ ++ /* If the interrupt line is enabled and in ExtInt mode ++ * I have found the pin where the i8259 is connected. ++ */ ++ if ((entry.mask == 0) && (entry.delivery_mode == dest_ExtINT)) { ++ ioapic_i8259.apic = apic; ++ ioapic_i8259.pin = pin; ++ goto found_i8259; ++ } ++ } ++ } ++ found_i8259: ++ /* Look to see what if the MP table has reported the ExtINT */ ++ i8259_pin = find_isa_irq_pin(0, mp_ExtINT); ++ i8259_apic = find_isa_irq_apic(0, mp_ExtINT); ++ /* Trust the MP table if nothing is setup in the hardware */ ++ if ((ioapic_i8259.pin == -1) && (i8259_pin >= 0)) { ++ printk(KERN_WARNING "ExtINT not setup in hardware but reported by MP table\n"); ++ ioapic_i8259.pin = i8259_pin; ++ ioapic_i8259.apic = i8259_apic; ++ } ++ /* Complain if the MP table and the hardware disagree */ ++ if (((ioapic_i8259.apic != i8259_apic) || (ioapic_i8259.pin != i8259_pin)) && ++ (i8259_pin >= 0) && (ioapic_i8259.pin >= 0)) ++ { ++ printk(KERN_WARNING "ExtINT in hardware and MP table differ\n"); ++ } ++#endif ++ ++ /* ++ * Do not trust the IO-APIC being empty at bootup ++ */ ++ clear_IO_APIC(); ++} ++ ++/* ++ * Not an __init, needed by the reboot code ++ */ ++void disable_IO_APIC(void) ++{ ++ /* ++ * Clear the IO-APIC before rebooting: ++ */ ++ clear_IO_APIC(); ++ ++#ifndef CONFIG_XEN ++ /* ++ * If the i8259 is routed through an IOAPIC ++ * Put that IOAPIC in virtual wire mode ++ * so legacy interrupts can be delivered. ++ */ ++ if (ioapic_i8259.pin != -1) { ++ struct IO_APIC_route_entry entry; ++ ++ memset(&entry, 0, sizeof(entry)); ++ entry.mask = 0; /* Enabled */ ++ entry.trigger = 0; /* Edge */ ++ entry.irr = 0; ++ entry.polarity = 0; /* High */ ++ entry.delivery_status = 0; ++ entry.dest_mode = 0; /* Physical */ ++ entry.delivery_mode = dest_ExtINT; /* ExtInt */ ++ entry.vector = 0; ++ entry.dest = GET_APIC_ID(apic_read(APIC_ID)); ++ ++ /* ++ * Add it to the IO-APIC irq-routing table: ++ */ ++ ioapic_write_entry(ioapic_i8259.apic, ioapic_i8259.pin, entry); ++ } ++ ++ disconnect_bsp_APIC(ioapic_i8259.pin != -1); ++#endif ++} ++ ++/* ++ * There is a nasty bug in some older SMP boards, their mptable lies ++ * about the timer IRQ. We do the following to work around the situation: ++ * ++ * - timer IRQ defaults to IO-APIC IRQ ++ * - if this function detects that timer IRQs are defunct, then we fall ++ * back to ISA timer IRQs ++ */ ++#ifndef CONFIG_XEN ++static int __init timer_irq_works(void) ++{ ++ unsigned long t1 = jiffies; ++ unsigned long flags; ++ ++ local_save_flags(flags); ++ local_irq_enable(); ++ /* Let ten ticks pass... */ ++ mdelay((10 * 1000) / HZ); ++ local_irq_restore(flags); ++ ++ /* ++ * Expect a few ticks at least, to be sure some possible ++ * glue logic does not lock up after one or two first ++ * ticks in a non-ExtINT mode. Also the local APIC ++ * might have cached one ExtINT interrupt. Finally, at ++ * least one tick may be lost due to delays. ++ */ ++ ++ /* jiffies wrap? */ ++ if (jiffies - t1 > 4) ++ return 1; ++ return 0; ++} ++ ++/* ++ * In the SMP+IOAPIC case it might happen that there are an unspecified ++ * number of pending IRQ events unhandled. These cases are very rare, ++ * so we 'resend' these IRQs via IPIs, to the same CPU. It's much ++ * better to do it this way as thus we do not have to be aware of ++ * 'pending' interrupts in the IRQ path, except at this point. ++ */ ++/* ++ * Edge triggered needs to resend any interrupt ++ * that was delayed but this is now handled in the device ++ * independent code. ++ */ ++ ++/* ++ * Starting up a edge-triggered IO-APIC interrupt is ++ * nasty - we need to make sure that we get the edge. ++ * If it is already asserted for some reason, we need ++ * return 1 to indicate that is was pending. ++ * ++ * This is not complete - we should be able to fake ++ * an edge even if it isn't on the 8259A... ++ */ ++ ++static unsigned int startup_ioapic_irq(unsigned int irq) ++{ ++ int was_pending = 0; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ if (irq < 16) { ++ disable_8259A_irq(irq); ++ if (i8259A_irq_pending(irq)) ++ was_pending = 1; ++ } ++ __unmask_IO_APIC_irq(irq); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ return was_pending; ++} ++ ++static int ioapic_retrigger_irq(unsigned int irq) ++{ ++ struct irq_cfg *cfg = &irq_cfg[irq]; ++ cpumask_t mask; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&vector_lock, flags); ++ cpus_clear(mask); ++ cpu_set(first_cpu(cfg->domain), mask); ++ ++ send_IPI_mask(mask, cfg->vector); ++ spin_unlock_irqrestore(&vector_lock, flags); ++ ++ return 1; ++} ++ ++/* ++ * Level and edge triggered IO-APIC interrupts need different handling, ++ * so we use two separate IRQ descriptors. Edge triggered IRQs can be ++ * handled with the level-triggered descriptor, but that one has slightly ++ * more overhead. Level-triggered interrupts cannot be handled with the ++ * edge-triggered handler, without risking IRQ storms and other ugly ++ * races. ++ */ ++ ++#ifdef CONFIG_SMP ++asmlinkage void smp_irq_move_cleanup_interrupt(void) ++{ ++ unsigned vector, me; ++ ack_APIC_irq(); ++ exit_idle(); ++ irq_enter(); ++ ++ me = smp_processor_id(); ++ for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) { ++ unsigned int irq; ++ struct irq_desc *desc; ++ struct irq_cfg *cfg; ++ irq = __get_cpu_var(vector_irq)[vector]; ++ if (irq >= NR_IRQS) ++ continue; ++ ++ desc = irq_desc + irq; ++ cfg = irq_cfg + irq; ++ spin_lock(&desc->lock); ++ if (!cfg->move_cleanup_count) ++ goto unlock; ++ ++ if ((vector == cfg->vector) && cpu_isset(me, cfg->domain)) ++ goto unlock; ++ ++ __get_cpu_var(vector_irq)[vector] = -1; ++ cfg->move_cleanup_count--; ++unlock: ++ spin_unlock(&desc->lock); ++ } ++ ++ irq_exit(); ++} ++ ++static void irq_complete_move(unsigned int irq) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ unsigned vector, me; ++ ++ if (likely(!cfg->move_in_progress)) ++ return; ++ ++ vector = ~get_irq_regs()->orig_rax; ++ me = smp_processor_id(); ++ if ((vector == cfg->vector) && cpu_isset(me, cfg->domain)) { ++ cpumask_t cleanup_mask; ++ ++ cpus_and(cleanup_mask, cfg->old_domain, cpu_online_map); ++ cfg->move_cleanup_count = cpus_weight(cleanup_mask); ++ send_IPI_mask(cleanup_mask, IRQ_MOVE_CLEANUP_VECTOR); ++ cfg->move_in_progress = 0; ++ } ++} ++#else ++static inline void irq_complete_move(unsigned int irq) {} ++#endif ++ ++static void ack_apic_edge(unsigned int irq) ++{ ++ irq_complete_move(irq); ++ move_native_irq(irq); ++ ack_APIC_irq(); ++} ++ ++static void ack_apic_level(unsigned int irq) ++{ ++ int do_unmask_irq = 0; ++ ++ irq_complete_move(irq); ++#if defined(CONFIG_GENERIC_PENDING_IRQ) || defined(CONFIG_IRQBALANCE) ++ /* If we are moving the irq we need to mask it */ ++ if (unlikely(irq_desc[irq].status & IRQ_MOVE_PENDING)) { ++ do_unmask_irq = 1; ++ mask_IO_APIC_irq(irq); ++ } ++#endif ++ ++ /* ++ * We must acknowledge the irq before we move it or the acknowledge will ++ * not propagate properly. ++ */ ++ ack_APIC_irq(); ++ ++ /* Now we can move and renable the irq */ ++ if (unlikely(do_unmask_irq)) { ++ /* Only migrate the irq if the ack has been received. ++ * ++ * On rare occasions the broadcast level triggered ack gets ++ * delayed going to ioapics, and if we reprogram the ++ * vector while Remote IRR is still set the irq will never ++ * fire again. ++ * ++ * To prevent this scenario we read the Remote IRR bit ++ * of the ioapic. This has two effects. ++ * - On any sane system the read of the ioapic will ++ * flush writes (and acks) going to the ioapic from ++ * this cpu. ++ * - We get to see if the ACK has actually been delivered. ++ * ++ * Based on failed experiments of reprogramming the ++ * ioapic entry from outside of irq context starting ++ * with masking the ioapic entry and then polling until ++ * Remote IRR was clear before reprogramming the ++ * ioapic I don't trust the Remote IRR bit to be ++ * completey accurate. ++ * ++ * However there appears to be no other way to plug ++ * this race, so if the Remote IRR bit is not ++ * accurate and is causing problems then it is a hardware bug ++ * and you can go talk to the chipset vendor about it. ++ */ ++ if (!io_apic_level_ack_pending(irq)) ++ move_masked_irq(irq); ++ unmask_IO_APIC_irq(irq); ++ } ++} ++ ++static struct irq_chip ioapic_chip __read_mostly = { ++ .name = "IO-APIC", ++ .startup = startup_ioapic_irq, ++ .mask = mask_IO_APIC_irq, ++ .unmask = unmask_IO_APIC_irq, ++ .ack = ack_apic_edge, ++ .eoi = ack_apic_level, ++#ifdef CONFIG_SMP ++ .set_affinity = set_ioapic_affinity_irq, ++#endif ++ .retrigger = ioapic_retrigger_irq, ++}; ++#endif /* !CONFIG_XEN */ ++ ++static inline void init_IO_APIC_traps(void) ++{ ++ int irq; ++ ++ /* ++ * NOTE! The local APIC isn't very good at handling ++ * multiple interrupts at the same interrupt level. ++ * As the interrupt level is determined by taking the ++ * vector number and shifting that right by 4, we ++ * want to spread these out a bit so that they don't ++ * all fall in the same interrupt level. ++ * ++ * Also, we've got to be careful not to trash gate ++ * 0x80, because int 0x80 is hm, kind of importantish. ;) ++ */ ++ for (irq = 0; irq < NR_IRQS ; irq++) { ++ int tmp = irq; ++ if (IO_APIC_IRQ(tmp) && !irq_cfg[tmp].vector) { ++ /* ++ * Hmm.. We don't have an entry for this, ++ * so default to an old-fashioned 8259 ++ * interrupt if we can.. ++ */ ++ if (irq < 16) ++ make_8259A_irq(irq); ++#ifndef CONFIG_XEN ++ else ++ /* Strange. Oh, well.. */ ++ irq_desc[irq].chip = &no_irq_chip; ++#endif ++ } ++ } ++} ++ ++#ifndef CONFIG_XEN ++static void enable_lapic_irq (unsigned int irq) ++{ ++ unsigned long v; ++ ++ v = apic_read(APIC_LVT0); ++ apic_write(APIC_LVT0, v & ~APIC_LVT_MASKED); ++} ++ ++static void disable_lapic_irq (unsigned int irq) ++{ ++ unsigned long v; ++ ++ v = apic_read(APIC_LVT0); ++ apic_write(APIC_LVT0, v | APIC_LVT_MASKED); ++} ++ ++static void ack_lapic_irq (unsigned int irq) ++{ ++ ack_APIC_irq(); ++} ++ ++static void end_lapic_irq (unsigned int i) { /* nothing */ } ++ ++static struct hw_interrupt_type lapic_irq_type __read_mostly = { ++ .name = "local-APIC", ++ .typename = "local-APIC-edge", ++ .startup = NULL, /* startup_irq() not used for IRQ0 */ ++ .shutdown = NULL, /* shutdown_irq() not used for IRQ0 */ ++ .enable = enable_lapic_irq, ++ .disable = disable_lapic_irq, ++ .ack = ack_lapic_irq, ++ .end = end_lapic_irq, ++}; ++ ++static void setup_nmi (void) ++{ ++ /* ++ * Dirty trick to enable the NMI watchdog ... ++ * We put the 8259A master into AEOI mode and ++ * unmask on all local APICs LVT0 as NMI. ++ * ++ * The idea to use the 8259A in AEOI mode ('8259A Virtual Wire') ++ * is from Maciej W. Rozycki - so we do not have to EOI from ++ * the NMI handler or the timer interrupt. ++ */ ++ printk(KERN_INFO "activating NMI Watchdog ..."); ++ ++ enable_NMI_through_LVT0(NULL); ++ ++ printk(" done.\n"); ++} ++ ++/* ++ * This looks a bit hackish but it's about the only one way of sending ++ * a few INTA cycles to 8259As and any associated glue logic. ICR does ++ * not support the ExtINT mode, unfortunately. We need to send these ++ * cycles as some i82489DX-based boards have glue logic that keeps the ++ * 8259A interrupt line asserted until INTA. --macro ++ */ ++static inline void unlock_ExtINT_logic(void) ++{ ++ int apic, pin, i; ++ struct IO_APIC_route_entry entry0, entry1; ++ unsigned char save_control, save_freq_select; ++ unsigned long flags; ++ ++ pin = find_isa_irq_pin(8, mp_INT); ++ apic = find_isa_irq_apic(8, mp_INT); ++ if (pin == -1) ++ return; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ *(((int *)&entry0) + 1) = io_apic_read(apic, 0x11 + 2 * pin); ++ *(((int *)&entry0) + 0) = io_apic_read(apic, 0x10 + 2 * pin); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ clear_IO_APIC_pin(apic, pin); ++ ++ memset(&entry1, 0, sizeof(entry1)); ++ ++ entry1.dest_mode = 0; /* physical delivery */ ++ entry1.mask = 0; /* unmask IRQ now */ ++ entry1.dest = hard_smp_processor_id(); ++ entry1.delivery_mode = dest_ExtINT; ++ entry1.polarity = entry0.polarity; ++ entry1.trigger = 0; ++ entry1.vector = 0; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ io_apic_write(apic, 0x11 + 2 * pin, *(((int *)&entry1) + 1)); ++ io_apic_write(apic, 0x10 + 2 * pin, *(((int *)&entry1) + 0)); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ save_control = CMOS_READ(RTC_CONTROL); ++ save_freq_select = CMOS_READ(RTC_FREQ_SELECT); ++ CMOS_WRITE((save_freq_select & ~RTC_RATE_SELECT) | 0x6, ++ RTC_FREQ_SELECT); ++ CMOS_WRITE(save_control | RTC_PIE, RTC_CONTROL); ++ ++ i = 100; ++ while (i-- > 0) { ++ mdelay(10); ++ if ((CMOS_READ(RTC_INTR_FLAGS) & RTC_PF) == RTC_PF) ++ i -= 10; ++ } ++ ++ CMOS_WRITE(save_control, RTC_CONTROL); ++ CMOS_WRITE(save_freq_select, RTC_FREQ_SELECT); ++ clear_IO_APIC_pin(apic, pin); ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ io_apic_write(apic, 0x11 + 2 * pin, *(((int *)&entry0) + 1)); ++ io_apic_write(apic, 0x10 + 2 * pin, *(((int *)&entry0) + 0)); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++} ++ ++/* ++ * This code may look a bit paranoid, but it's supposed to cooperate with ++ * a wide range of boards and BIOS bugs. Fortunately only the timer IRQ ++ * is so screwy. Thanks to Brian Perkins for testing/hacking this beast ++ * fanatically on his truly buggy board. ++ * ++ * FIXME: really need to revamp this for modern platforms only. ++ */ ++static inline void check_timer(void) ++{ ++ struct irq_cfg *cfg = irq_cfg + 0; ++ int apic1, pin1, apic2, pin2; ++ unsigned long flags; ++ ++ local_irq_save(flags); ++ ++ /* ++ * get/set the timer IRQ vector: ++ */ ++ disable_8259A_irq(0); ++ assign_irq_vector(0, TARGET_CPUS); ++ ++ /* ++ * Subtle, code in do_timer_interrupt() expects an AEOI ++ * mode for the 8259A whenever interrupts are routed ++ * through I/O APICs. Also IRQ0 has to be enabled in ++ * the 8259A which implies the virtual wire has to be ++ * disabled in the local APIC. ++ */ ++ apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT); ++ init_8259A(1); ++ if (timer_over_8254 > 0) ++ enable_8259A_irq(0); ++ ++ pin1 = find_isa_irq_pin(0, mp_INT); ++ apic1 = find_isa_irq_apic(0, mp_INT); ++ pin2 = ioapic_i8259.pin; ++ apic2 = ioapic_i8259.apic; ++ ++ apic_printk(APIC_VERBOSE,KERN_INFO "..TIMER: vector=0x%02X apic1=%d pin1=%d apic2=%d pin2=%d\n", ++ cfg->vector, apic1, pin1, apic2, pin2); ++ ++ if (pin1 != -1) { ++ /* ++ * Ok, does IRQ0 through the IOAPIC work? ++ */ ++ unmask_IO_APIC_irq(0); ++ if (!no_timer_check && timer_irq_works()) { ++ nmi_watchdog_default(); ++ if (nmi_watchdog == NMI_IO_APIC) { ++ disable_8259A_irq(0); ++ setup_nmi(); ++ enable_8259A_irq(0); ++ } ++ if (disable_timer_pin_1 > 0) ++ clear_IO_APIC_pin(0, pin1); ++ goto out; ++ } ++ clear_IO_APIC_pin(apic1, pin1); ++ apic_printk(APIC_QUIET,KERN_ERR "..MP-BIOS bug: 8254 timer not " ++ "connected to IO-APIC\n"); ++ } ++ ++ apic_printk(APIC_VERBOSE,KERN_INFO "...trying to set up timer (IRQ0) " ++ "through the 8259A ... "); ++ if (pin2 != -1) { ++ apic_printk(APIC_VERBOSE,"\n..... (found apic %d pin %d) ...", ++ apic2, pin2); ++ /* ++ * legacy devices should be connected to IO APIC #0 ++ */ ++ setup_ExtINT_IRQ0_pin(apic2, pin2, cfg->vector); ++ if (timer_irq_works()) { ++ apic_printk(APIC_VERBOSE," works.\n"); ++ nmi_watchdog_default(); ++ if (nmi_watchdog == NMI_IO_APIC) { ++ setup_nmi(); ++ } ++ goto out; ++ } ++ /* ++ * Cleanup, just in case ... ++ */ ++ clear_IO_APIC_pin(apic2, pin2); ++ } ++ apic_printk(APIC_VERBOSE," failed.\n"); ++ ++ if (nmi_watchdog == NMI_IO_APIC) { ++ printk(KERN_WARNING "timer doesn't work through the IO-APIC - disabling NMI Watchdog!\n"); ++ nmi_watchdog = 0; ++ } ++ ++ apic_printk(APIC_VERBOSE, KERN_INFO "...trying to set up timer as Virtual Wire IRQ..."); ++ ++ disable_8259A_irq(0); ++ irq_desc[0].chip = &lapic_irq_type; ++ apic_write(APIC_LVT0, APIC_DM_FIXED | cfg->vector); /* Fixed mode */ ++ enable_8259A_irq(0); ++ ++ if (timer_irq_works()) { ++ apic_printk(APIC_VERBOSE," works.\n"); ++ goto out; ++ } ++ apic_write(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_FIXED | cfg->vector); ++ apic_printk(APIC_VERBOSE," failed.\n"); ++ ++ apic_printk(APIC_VERBOSE, KERN_INFO "...trying to set up timer as ExtINT IRQ..."); ++ ++ init_8259A(0); ++ make_8259A_irq(0); ++ apic_write(APIC_LVT0, APIC_DM_EXTINT); ++ ++ unlock_ExtINT_logic(); ++ ++ if (timer_irq_works()) { ++ apic_printk(APIC_VERBOSE," works.\n"); ++ goto out; ++ } ++ apic_printk(APIC_VERBOSE," failed :(.\n"); ++ panic("IO-APIC + timer doesn't work! Try using the 'noapic' kernel parameter\n"); ++out: ++ local_irq_restore(flags); ++} ++ ++static int __init notimercheck(char *s) ++{ ++ no_timer_check = 1; ++ return 1; ++} ++__setup("no_timer_check", notimercheck); ++#else ++#define check_timer() ((void)0) ++int timer_uses_ioapic_pin_0 = 0; ++#endif /* !CONFIG_XEN */ ++ ++/* ++ * ++ * IRQs that are handled by the PIC in the MPS IOAPIC case. ++ * - IRQ2 is the cascade IRQ, and cannot be a io-apic IRQ. ++ * Linux doesn't really care, as it's not actually used ++ * for any interrupt handling anyway. ++ */ ++#define PIC_IRQS (1<<2) ++ ++void __init setup_IO_APIC(void) ++{ ++ enable_IO_APIC(); ++ ++ if (acpi_ioapic) ++ io_apic_irqs = ~0; /* all IRQs go through IOAPIC */ ++ else ++ io_apic_irqs = ~PIC_IRQS; ++ ++ apic_printk(APIC_VERBOSE, "ENABLING IO-APIC IRQs\n"); ++ ++#ifndef CONFIG_XEN ++ sync_Arb_IDs(); ++#endif /* !CONFIG_XEN */ ++ setup_IO_APIC_irqs(); ++ init_IO_APIC_traps(); ++ check_timer(); ++ if (!acpi_ioapic) ++ print_IO_APIC(); ++} ++ ++struct sysfs_ioapic_data { ++ struct sys_device dev; ++ struct IO_APIC_route_entry entry[0]; ++}; ++static struct sysfs_ioapic_data * mp_ioapic_data[MAX_IO_APICS]; ++ ++static int ioapic_suspend(struct sys_device *dev, pm_message_t state) ++{ ++ struct IO_APIC_route_entry *entry; ++ struct sysfs_ioapic_data *data; ++ int i; ++ ++ data = container_of(dev, struct sysfs_ioapic_data, dev); ++ entry = data->entry; ++ for (i = 0; i < nr_ioapic_registers[dev->id]; i ++, entry ++ ) ++ *entry = ioapic_read_entry(dev->id, i); ++ ++ return 0; ++} ++ ++static int ioapic_resume(struct sys_device *dev) ++{ ++ struct IO_APIC_route_entry *entry; ++ struct sysfs_ioapic_data *data; ++ unsigned long flags; ++ union IO_APIC_reg_00 reg_00; ++ int i; ++ ++ data = container_of(dev, struct sysfs_ioapic_data, dev); ++ entry = data->entry; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_00.raw = io_apic_read(dev->id, 0); ++ if (reg_00.bits.ID != mp_ioapics[dev->id].mpc_apicid) { ++ reg_00.bits.ID = mp_ioapics[dev->id].mpc_apicid; ++ io_apic_write(dev->id, 0, reg_00.raw); ++ } ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ for (i = 0; i < nr_ioapic_registers[dev->id]; i++) ++ ioapic_write_entry(dev->id, i, entry[i]); ++ ++ return 0; ++} ++ ++static struct sysdev_class ioapic_sysdev_class = { ++ set_kset_name("ioapic"), ++ .suspend = ioapic_suspend, ++ .resume = ioapic_resume, ++}; ++ ++static int __init ioapic_init_sysfs(void) ++{ ++ struct sys_device * dev; ++ int i, size, error; ++ ++ error = sysdev_class_register(&ioapic_sysdev_class); ++ if (error) ++ return error; ++ ++ for (i = 0; i < nr_ioapics; i++ ) { ++ size = sizeof(struct sys_device) + nr_ioapic_registers[i] ++ * sizeof(struct IO_APIC_route_entry); ++ mp_ioapic_data[i] = kzalloc(size, GFP_KERNEL); ++ if (!mp_ioapic_data[i]) { ++ printk(KERN_ERR "Can't suspend/resume IOAPIC %d\n", i); ++ continue; ++ } ++ dev = &mp_ioapic_data[i]->dev; ++ dev->id = i; ++ dev->cls = &ioapic_sysdev_class; ++ error = sysdev_register(dev); ++ if (error) { ++ kfree(mp_ioapic_data[i]); ++ mp_ioapic_data[i] = NULL; ++ printk(KERN_ERR "Can't suspend/resume IOAPIC %d\n", i); ++ continue; ++ } ++ } ++ ++ return 0; ++} ++ ++device_initcall(ioapic_init_sysfs); ++ ++#ifndef CONFIG_XEN ++/* ++ * Dynamic irq allocate and deallocation ++ */ ++int create_irq(void) ++{ ++ /* Allocate an unused irq */ ++ int irq; ++ int new; ++ unsigned long flags; ++ ++ irq = -ENOSPC; ++ spin_lock_irqsave(&vector_lock, flags); ++ for (new = (NR_IRQS - 1); new >= 0; new--) { ++ if (platform_legacy_irq(new)) ++ continue; ++ if (irq_cfg[new].vector != 0) ++ continue; ++ if (__assign_irq_vector(new, TARGET_CPUS) == 0) ++ irq = new; ++ break; ++ } ++ spin_unlock_irqrestore(&vector_lock, flags); ++ ++ if (irq >= 0) { ++ dynamic_irq_init(irq); ++ } ++ return irq; ++} ++ ++void destroy_irq(unsigned int irq) ++{ ++ unsigned long flags; ++ ++ dynamic_irq_cleanup(irq); ++ ++ spin_lock_irqsave(&vector_lock, flags); ++ __clear_irq_vector(irq); ++ spin_unlock_irqrestore(&vector_lock, flags); ++} ++#endif ++ ++/* ++ * MSI message composition ++ */ ++#ifdef CONFIG_PCI_MSI ++static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_msg *msg) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ int err; ++ unsigned dest; ++ cpumask_t tmp; ++ ++ tmp = TARGET_CPUS; ++ err = assign_irq_vector(irq, tmp); ++ if (!err) { ++ cpus_and(tmp, cfg->domain, tmp); ++ dest = cpu_mask_to_apicid(tmp); ++ ++ msg->address_hi = MSI_ADDR_BASE_HI; ++ msg->address_lo = ++ MSI_ADDR_BASE_LO | ++ ((INT_DEST_MODE == 0) ? ++ MSI_ADDR_DEST_MODE_PHYSICAL: ++ MSI_ADDR_DEST_MODE_LOGICAL) | ++ ((INT_DELIVERY_MODE != dest_LowestPrio) ? ++ MSI_ADDR_REDIRECTION_CPU: ++ MSI_ADDR_REDIRECTION_LOWPRI) | ++ MSI_ADDR_DEST_ID(dest); ++ ++ msg->data = ++ MSI_DATA_TRIGGER_EDGE | ++ MSI_DATA_LEVEL_ASSERT | ++ ((INT_DELIVERY_MODE != dest_LowestPrio) ? ++ MSI_DATA_DELIVERY_FIXED: ++ MSI_DATA_DELIVERY_LOWPRI) | ++ MSI_DATA_VECTOR(cfg->vector); ++ } ++ return err; ++} ++ ++#ifdef CONFIG_SMP ++static void set_msi_irq_affinity(unsigned int irq, cpumask_t mask) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ struct msi_msg msg; ++ unsigned int dest; ++ cpumask_t tmp; ++ ++ cpus_and(tmp, mask, cpu_online_map); ++ if (cpus_empty(tmp)) ++ return; ++ ++ if (assign_irq_vector(irq, mask)) ++ return; ++ ++ cpus_and(tmp, cfg->domain, mask); ++ dest = cpu_mask_to_apicid(tmp); ++ ++ read_msi_msg(irq, &msg); ++ ++ msg.data &= ~MSI_DATA_VECTOR_MASK; ++ msg.data |= MSI_DATA_VECTOR(cfg->vector); ++ msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK; ++ msg.address_lo |= MSI_ADDR_DEST_ID(dest); ++ ++ write_msi_msg(irq, &msg); ++ irq_desc[irq].affinity = mask; ++} ++#endif /* CONFIG_SMP */ ++ ++/* ++ * IRQ Chip for MSI PCI/PCI-X/PCI-Express Devices, ++ * which implement the MSI or MSI-X Capability Structure. ++ */ ++static struct irq_chip msi_chip = { ++ .name = "PCI-MSI", ++ .unmask = unmask_msi_irq, ++ .mask = mask_msi_irq, ++ .ack = ack_apic_edge, ++#ifdef CONFIG_SMP ++ .set_affinity = set_msi_irq_affinity, ++#endif ++ .retrigger = ioapic_retrigger_irq, ++}; ++ ++int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc) ++{ ++ struct msi_msg msg; ++ int irq, ret; ++ irq = create_irq(); ++ if (irq < 0) ++ return irq; ++ ++ ret = msi_compose_msg(dev, irq, &msg); ++ if (ret < 0) { ++ destroy_irq(irq); ++ return ret; ++ } ++ ++ set_irq_msi(irq, desc); ++ write_msi_msg(irq, &msg); ++ ++ set_irq_chip_and_handler_name(irq, &msi_chip, handle_edge_irq, "edge"); ++ ++ return 0; ++} ++ ++void arch_teardown_msi_irq(unsigned int irq) ++{ ++ destroy_irq(irq); ++} ++ ++#ifdef CONFIG_DMAR ++#ifdef CONFIG_SMP ++static void dmar_msi_set_affinity(unsigned int irq, cpumask_t mask) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ struct msi_msg msg; ++ unsigned int dest; ++ cpumask_t tmp; ++ ++ cpus_and(tmp, mask, cpu_online_map); ++ if (cpus_empty(tmp)) ++ return; ++ ++ if (assign_irq_vector(irq, mask)) ++ return; ++ ++ cpus_and(tmp, cfg->domain, mask); ++ dest = cpu_mask_to_apicid(tmp); ++ ++ dmar_msi_read(irq, &msg); ++ ++ msg.data &= ~MSI_DATA_VECTOR_MASK; ++ msg.data |= MSI_DATA_VECTOR(cfg->vector); ++ msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK; ++ msg.address_lo |= MSI_ADDR_DEST_ID(dest); ++ ++ dmar_msi_write(irq, &msg); ++ irq_desc[irq].affinity = mask; ++} ++#endif /* CONFIG_SMP */ ++ ++struct irq_chip dmar_msi_type = { ++ .name = "DMAR_MSI", ++ .unmask = dmar_msi_unmask, ++ .mask = dmar_msi_mask, ++ .ack = ack_apic_edge, ++#ifdef CONFIG_SMP ++ .set_affinity = dmar_msi_set_affinity, ++#endif ++ .retrigger = ioapic_retrigger_irq, ++}; ++ ++int arch_setup_dmar_msi(unsigned int irq) ++{ ++ int ret; ++ struct msi_msg msg; ++ ++ ret = msi_compose_msg(NULL, irq, &msg); ++ if (ret < 0) ++ return ret; ++ dmar_msi_write(irq, &msg); ++ set_irq_chip_and_handler_name(irq, &dmar_msi_type, handle_edge_irq, ++ "edge"); ++ return 0; ++} ++#endif ++ ++#endif /* CONFIG_PCI_MSI */ ++/* ++ * Hypertransport interrupt support ++ */ ++#ifdef CONFIG_HT_IRQ ++ ++#ifdef CONFIG_SMP ++ ++static void target_ht_irq(unsigned int irq, unsigned int dest, u8 vector) ++{ ++ struct ht_irq_msg msg; ++ fetch_ht_irq_msg(irq, &msg); ++ ++ msg.address_lo &= ~(HT_IRQ_LOW_VECTOR_MASK | HT_IRQ_LOW_DEST_ID_MASK); ++ msg.address_hi &= ~(HT_IRQ_HIGH_DEST_ID_MASK); ++ ++ msg.address_lo |= HT_IRQ_LOW_VECTOR(vector) | HT_IRQ_LOW_DEST_ID(dest); ++ msg.address_hi |= HT_IRQ_HIGH_DEST_ID(dest); ++ ++ write_ht_irq_msg(irq, &msg); ++} ++ ++static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ unsigned int dest; ++ cpumask_t tmp; ++ ++ cpus_and(tmp, mask, cpu_online_map); ++ if (cpus_empty(tmp)) ++ return; ++ ++ if (assign_irq_vector(irq, mask)) ++ return; ++ ++ cpus_and(tmp, cfg->domain, mask); ++ dest = cpu_mask_to_apicid(tmp); ++ ++ target_ht_irq(irq, dest, cfg->vector); ++ irq_desc[irq].affinity = mask; ++} ++#endif ++ ++static struct irq_chip ht_irq_chip = { ++ .name = "PCI-HT", ++ .mask = mask_ht_irq, ++ .unmask = unmask_ht_irq, ++ .ack = ack_apic_edge, ++#ifdef CONFIG_SMP ++ .set_affinity = set_ht_irq_affinity, ++#endif ++ .retrigger = ioapic_retrigger_irq, ++}; ++ ++int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) ++{ ++ struct irq_cfg *cfg = irq_cfg + irq; ++ int err; ++ cpumask_t tmp; ++ ++ tmp = TARGET_CPUS; ++ err = assign_irq_vector(irq, tmp); ++ if (!err) { ++ struct ht_irq_msg msg; ++ unsigned dest; ++ ++ cpus_and(tmp, cfg->domain, tmp); ++ dest = cpu_mask_to_apicid(tmp); ++ ++ msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest); ++ ++ msg.address_lo = ++ HT_IRQ_LOW_BASE | ++ HT_IRQ_LOW_DEST_ID(dest) | ++ HT_IRQ_LOW_VECTOR(cfg->vector) | ++ ((INT_DEST_MODE == 0) ? ++ HT_IRQ_LOW_DM_PHYSICAL : ++ HT_IRQ_LOW_DM_LOGICAL) | ++ HT_IRQ_LOW_RQEOI_EDGE | ++ ((INT_DELIVERY_MODE != dest_LowestPrio) ? ++ HT_IRQ_LOW_MT_FIXED : ++ HT_IRQ_LOW_MT_ARBITRATED) | ++ HT_IRQ_LOW_IRQ_MASKED; ++ ++ write_ht_irq_msg(irq, &msg); ++ ++ set_irq_chip_and_handler_name(irq, &ht_irq_chip, ++ handle_edge_irq, "edge"); ++ } ++ return err; ++} ++#endif /* CONFIG_HT_IRQ */ ++ ++/* -------------------------------------------------------------------------- ++ ACPI-based IOAPIC Configuration ++ -------------------------------------------------------------------------- */ ++ ++#ifdef CONFIG_ACPI ++ ++#define IO_APIC_MAX_ID 0xFE ++ ++int __init io_apic_get_redir_entries (int ioapic) ++{ ++ union IO_APIC_reg_01 reg_01; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&ioapic_lock, flags); ++ reg_01.raw = io_apic_read(ioapic, 1); ++ spin_unlock_irqrestore(&ioapic_lock, flags); ++ ++ return reg_01.bits.entries; ++} ++ ++ ++int io_apic_set_pci_routing (int ioapic, int pin, int irq, int triggering, int polarity) ++{ ++ if (!IO_APIC_IRQ(irq)) { ++ apic_printk(APIC_QUIET,KERN_ERR "IOAPIC[%d]: Invalid reference to IRQ 0\n", ++ ioapic); ++ return -EINVAL; ++ } ++ ++ /* ++ * IRQs < 16 are already in the irq_2_pin[] map ++ */ ++ if (irq >= 16) ++ add_pin_to_irq(irq, ioapic, pin); ++ ++ setup_IO_APIC_irq(ioapic, pin, irq, triggering, polarity); ++ ++ return 0; ++} ++ ++ ++int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity) ++{ ++ int i; ++ ++ if (skip_ioapic_setup) ++ return -1; ++ ++ for (i = 0; i < mp_irq_entries; i++) ++ if (mp_irqs[i].mpc_irqtype == mp_INT && ++ mp_irqs[i].mpc_srcbusirq == bus_irq) ++ break; ++ if (i >= mp_irq_entries) ++ return -1; ++ ++ *trigger = irq_trigger(i); ++ *polarity = irq_polarity(i); ++ return 0; ++} ++ ++#endif /* CONFIG_ACPI */ ++ ++#ifndef CONFIG_XEN ++/* ++ * This function currently is only a helper for the i386 smp boot process where ++ * we need to reprogram the ioredtbls to cater for the cpus which have come online ++ * so mask in all cases should simply be TARGET_CPUS ++ */ ++#ifdef CONFIG_SMP ++void __init setup_ioapic_dest(void) ++{ ++ int pin, ioapic, irq, irq_entry; ++ ++ if (skip_ioapic_setup == 1) ++ return; ++ ++ for (ioapic = 0; ioapic < nr_ioapics; ioapic++) { ++ for (pin = 0; pin < nr_ioapic_registers[ioapic]; pin++) { ++ irq_entry = find_irq_entry(ioapic, pin, mp_INT); ++ if (irq_entry == -1) ++ continue; ++ irq = pin_2_irq(irq_entry, ioapic, pin); ++ ++ /* setup_IO_APIC_irqs could fail to get vector for some device ++ * when you have too many devices, because at that time only boot ++ * cpu is online. ++ */ ++ if (!irq_cfg[irq].vector) ++ setup_IO_APIC_irq(ioapic, pin, irq, ++ irq_trigger(irq_entry), ++ irq_polarity(irq_entry)); ++ else ++ set_ioapic_affinity_irq(irq, TARGET_CPUS); ++ } ++ ++ } ++} ++#endif ++#endif /* !CONFIG_XEN */ ++ +diff -Naur ubuntu-hardy/arch/x86/kernel/ioport_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/ioport_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/ioport_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/ioport_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,120 @@ ++/* ++ * This contains the io-permission bitmap code - written by obz, with changes ++ * by Linus. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */ ++static void set_bitmap(unsigned long *bitmap, unsigned int base, unsigned int extent, int new_value) ++{ ++ unsigned long mask; ++ unsigned long *bitmap_base = bitmap + (base / BITS_PER_LONG); ++ unsigned int low_index = base & (BITS_PER_LONG-1); ++ int length = low_index + extent; ++ ++ if (low_index != 0) { ++ mask = (~0UL << low_index); ++ if (length < BITS_PER_LONG) ++ mask &= ~(~0UL << length); ++ if (new_value) ++ *bitmap_base++ |= mask; ++ else ++ *bitmap_base++ &= ~mask; ++ length -= BITS_PER_LONG; ++ } ++ ++ mask = (new_value ? ~0UL : 0UL); ++ while (length >= BITS_PER_LONG) { ++ *bitmap_base++ = mask; ++ length -= BITS_PER_LONG; ++ } ++ ++ if (length > 0) { ++ mask = ~(~0UL << length); ++ if (new_value) ++ *bitmap_base++ |= mask; ++ else ++ *bitmap_base++ &= ~mask; ++ } ++} ++ ++ ++/* ++ * this changes the io permissions bitmap in the current task. ++ */ ++asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) ++{ ++ struct thread_struct * t = ¤t->thread; ++ unsigned long *bitmap; ++ struct physdev_set_iobitmap set_iobitmap; ++ ++ if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) ++ return -EINVAL; ++ if (turn_on && !capable(CAP_SYS_RAWIO)) ++ return -EPERM; ++ ++ /* ++ * If it's the first ioperm() call in this thread's lifetime, set the ++ * IO bitmap up. ioperm() is much less timing critical than clone(), ++ * this is why we delay this operation until now: ++ */ ++ if (!t->io_bitmap_ptr) { ++ bitmap = kmalloc(IO_BITMAP_BYTES, GFP_KERNEL); ++ if (!bitmap) ++ return -ENOMEM; ++ ++ memset(bitmap, 0xff, IO_BITMAP_BYTES); ++ t->io_bitmap_ptr = bitmap; ++ set_thread_flag(TIF_IO_BITMAP); ++ ++ set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); ++ set_iobitmap.nr_ports = IO_BITMAP_BITS; ++ HYPERVISOR_physdev_op(PHYSDEVOP_set_iobitmap, &set_iobitmap); ++ } ++ ++ set_bitmap(t->io_bitmap_ptr, from, num, !turn_on); ++ ++ return 0; ++} ++ ++/* ++ * sys_iopl has to be used when you want to access the IO ports ++ * beyond the 0x3ff range: to get the full 65536 ports bitmapped ++ * you'd need 8kB of bitmaps/process, which is a bit excessive. ++ * ++ * Here we just change the eflags value on the stack: we allow ++ * only the super-user to do it. This depends on the stack-layout ++ * on system-call entry - see also fork() and the signal handling ++ * code. ++ */ ++ ++asmlinkage long sys_iopl(unsigned long unused) ++{ ++ volatile struct pt_regs * regs = (struct pt_regs *) &unused; ++ unsigned int level = regs->ebx; ++ struct thread_struct *t = ¤t->thread; ++ unsigned int old = (t->iopl >> 12) & 3; ++ ++ if (level > 3) ++ return -EINVAL; ++ /* Trying to gain more privileges? */ ++ if (level > old) { ++ if (!capable(CAP_SYS_RAWIO)) ++ return -EPERM; ++ } ++ t->iopl = level << 12; ++ set_iopl_mask(t->iopl); ++ return 0; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/ioport_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/ioport_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/ioport_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/ioport_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,98 @@ ++/* ++ * This contains the io-permission bitmap code - written by obz, with changes ++ * by Linus. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */ ++static void set_bitmap(unsigned long *bitmap, unsigned int base, unsigned int extent, int new_value) ++{ ++ int i; ++ ++ if (new_value) ++ for (i = base; i < base + extent; i++) ++ __set_bit(i, bitmap); ++ else ++ for (i = base; i < base + extent; i++) ++ clear_bit(i, bitmap); ++} ++ ++/* ++ * this changes the io permissions bitmap in the current task. ++ */ ++asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) ++{ ++ struct thread_struct * t = ¤t->thread; ++ unsigned long *bitmap; ++ struct physdev_set_iobitmap set_iobitmap; ++ ++ if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) ++ return -EINVAL; ++ if (turn_on && !capable(CAP_SYS_RAWIO)) ++ return -EPERM; ++ ++ /* ++ * If it's the first ioperm() call in this thread's lifetime, set the ++ * IO bitmap up. ioperm() is much less timing critical than clone(), ++ * this is why we delay this operation until now: ++ */ ++ if (!t->io_bitmap_ptr) { ++ bitmap = kmalloc(IO_BITMAP_BYTES, GFP_KERNEL); ++ if (!bitmap) ++ return -ENOMEM; ++ ++ memset(bitmap, 0xff, IO_BITMAP_BYTES); ++ t->io_bitmap_ptr = bitmap; ++ set_thread_flag(TIF_IO_BITMAP); ++ ++ set_xen_guest_handle(set_iobitmap.bitmap, (char *)bitmap); ++ set_iobitmap.nr_ports = IO_BITMAP_BITS; ++ HYPERVISOR_physdev_op(PHYSDEVOP_set_iobitmap, &set_iobitmap); ++ } ++ ++ set_bitmap(t->io_bitmap_ptr, from, num, !turn_on); ++ ++ return 0; ++} ++ ++/* ++ * sys_iopl has to be used when you want to access the IO ports ++ * beyond the 0x3ff range: to get the full 65536 ports bitmapped ++ * you'd need 8kB of bitmaps/process, which is a bit excessive. ++ * ++ */ ++ ++asmlinkage long sys_iopl(unsigned int new_iopl, struct pt_regs *regs) ++{ ++ unsigned int old_iopl = current->thread.iopl; ++ struct physdev_set_iopl set_iopl; ++ ++ if (new_iopl > 3) ++ return -EINVAL; ++ ++ /* Need "raw I/O" privileges for direct port access. */ ++ if ((new_iopl > old_iopl) && !capable(CAP_SYS_RAWIO)) ++ return -EPERM; ++ ++ /* Change our version of the privilege levels. */ ++ current->thread.iopl = new_iopl; ++ ++ /* Force the change at ring 0. */ ++ set_iopl.iopl = (new_iopl == 0) ? 1 : new_iopl; ++ HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl); ++ ++ return 0; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/irq_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/irq_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/irq_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/irq_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,385 @@ ++/* ++ * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar ++ * ++ * This file contains the lowest level x86-specific interrupt ++ * entry, irq-stacks and irq statistics code. All the remaining ++ * irq logic is done by the generic kernel/irq/ code and ++ * by the x86-specific irq controller code. (e.g. i8259.c and ++ * io_apic.c.) ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); ++EXPORT_PER_CPU_SYMBOL(irq_stat); ++ ++DEFINE_PER_CPU(struct pt_regs *, irq_regs); ++EXPORT_PER_CPU_SYMBOL(irq_regs); ++ ++/* ++ * 'what should we do if we get a hw irq event on an illegal vector'. ++ * each architecture has to answer this themselves. ++ */ ++void ack_bad_irq(unsigned int irq) ++{ ++ printk(KERN_ERR "unexpected IRQ trap at vector %02x\n", irq); ++ ++#if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_XEN) ++ /* ++ * Currently unexpected vectors happen only on SMP and APIC. ++ * We _must_ ack these because every local APIC has only N ++ * irq slots per priority level, and a 'hanging, unacked' IRQ ++ * holds up an irq slot - in excessive cases (when multiple ++ * unexpected vectors occur) that might lock up the APIC ++ * completely. ++ * But only ack when the APIC is enabled -AK ++ */ ++ if (cpu_has_apic) ++ ack_APIC_irq(); ++#endif ++} ++ ++#ifdef CONFIG_4KSTACKS ++/* ++ * per-CPU IRQ handling contexts (thread information and stack) ++ */ ++union irq_ctx { ++ struct thread_info tinfo; ++ u32 stack[THREAD_SIZE/sizeof(u32)]; ++}; ++ ++static union irq_ctx *hardirq_ctx[NR_CPUS] __read_mostly; ++static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly; ++#endif ++ ++/* ++ * do_IRQ handles all normal device IRQ's (the special ++ * SMP cross-CPU interrupts have their own specific ++ * handlers). ++ */ ++fastcall unsigned int do_IRQ(struct pt_regs *regs) ++{ ++ struct pt_regs *old_regs; ++ /* high bit used in ret_from_ code */ ++ int irq = ~regs->orig_eax; ++ struct irq_desc *desc = irq_desc + irq; ++#ifdef CONFIG_4KSTACKS ++ union irq_ctx *curctx, *irqctx; ++ u32 *isp; ++#endif ++ ++ if (unlikely((unsigned)irq >= NR_IRQS)) { ++ printk(KERN_EMERG "%s: cannot handle IRQ %d\n", ++ __FUNCTION__, irq); ++ BUG(); ++ } ++ ++ old_regs = set_irq_regs(regs); ++ irq_enter(); ++#ifdef CONFIG_DEBUG_STACKOVERFLOW ++ /* Debugging check for stack overflow: is there less than 1KB free? */ ++ { ++ long esp; ++ ++ __asm__ __volatile__("andl %%esp,%0" : ++ "=r" (esp) : "0" (THREAD_SIZE - 1)); ++ if (unlikely(esp < (sizeof(struct thread_info) + STACK_WARN))) { ++ printk("do_IRQ: stack overflow: %ld\n", ++ esp - sizeof(struct thread_info)); ++ dump_stack(); ++ } ++ } ++#endif ++ ++#ifdef CONFIG_4KSTACKS ++ ++ curctx = (union irq_ctx *) current_thread_info(); ++ irqctx = hardirq_ctx[smp_processor_id()]; ++ ++ /* ++ * this is where we switch to the IRQ stack. However, if we are ++ * already using the IRQ stack (because we interrupted a hardirq ++ * handler) we can't do that and just have to keep using the ++ * current stack (which is the irq stack already after all) ++ */ ++ if (curctx != irqctx) { ++ int arg1, arg2, ebx; ++ ++ /* build the stack frame on the IRQ stack */ ++ isp = (u32*) ((char*)irqctx + sizeof(*irqctx)); ++ irqctx->tinfo.task = curctx->tinfo.task; ++ irqctx->tinfo.previous_esp = current_stack_pointer; ++ ++ /* ++ * Copy the softirq bits in preempt_count so that the ++ * softirq checks work in the hardirq context. ++ */ ++ irqctx->tinfo.preempt_count = ++ (irqctx->tinfo.preempt_count & ~SOFTIRQ_MASK) | ++ (curctx->tinfo.preempt_count & SOFTIRQ_MASK); ++ ++ asm volatile( ++ " xchgl %%ebx,%%esp \n" ++ " call *%%edi \n" ++ " movl %%ebx,%%esp \n" ++ : "=a" (arg1), "=d" (arg2), "=b" (ebx) ++ : "0" (irq), "1" (desc), "2" (isp), ++ "D" (desc->handle_irq) ++ : "memory", "cc" ++ ); ++ } else ++#endif ++ desc->handle_irq(irq, desc); ++ ++ irq_exit(); ++ set_irq_regs(old_regs); ++ return 1; ++} ++ ++#ifdef CONFIG_4KSTACKS ++ ++static char softirq_stack[NR_CPUS * THREAD_SIZE] ++ __attribute__((__section__(".bss.page_aligned"))); ++ ++static char hardirq_stack[NR_CPUS * THREAD_SIZE] ++ __attribute__((__section__(".bss.page_aligned"))); ++ ++/* ++ * allocate per-cpu stacks for hardirq and for softirq processing ++ */ ++void irq_ctx_init(int cpu) ++{ ++ union irq_ctx *irqctx; ++ ++ if (hardirq_ctx[cpu]) ++ return; ++ ++ irqctx = (union irq_ctx*) &hardirq_stack[cpu*THREAD_SIZE]; ++ irqctx->tinfo.task = NULL; ++ irqctx->tinfo.exec_domain = NULL; ++ irqctx->tinfo.cpu = cpu; ++ irqctx->tinfo.preempt_count = HARDIRQ_OFFSET; ++ irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); ++ ++ hardirq_ctx[cpu] = irqctx; ++ ++ irqctx = (union irq_ctx*) &softirq_stack[cpu*THREAD_SIZE]; ++ irqctx->tinfo.task = NULL; ++ irqctx->tinfo.exec_domain = NULL; ++ irqctx->tinfo.cpu = cpu; ++ irqctx->tinfo.preempt_count = 0; ++ irqctx->tinfo.addr_limit = MAKE_MM_SEG(0); ++ ++ softirq_ctx[cpu] = irqctx; ++ ++ printk("CPU %u irqstacks, hard=%p soft=%p\n", ++ cpu,hardirq_ctx[cpu],softirq_ctx[cpu]); ++} ++ ++void irq_ctx_exit(int cpu) ++{ ++ hardirq_ctx[cpu] = NULL; ++} ++ ++extern asmlinkage void __do_softirq(void); ++ ++asmlinkage void do_softirq(void) ++{ ++ unsigned long flags; ++ struct thread_info *curctx; ++ union irq_ctx *irqctx; ++ u32 *isp; ++ ++ if (in_interrupt()) ++ return; ++ ++ local_irq_save(flags); ++ ++ if (local_softirq_pending()) { ++ curctx = current_thread_info(); ++ irqctx = softirq_ctx[smp_processor_id()]; ++ irqctx->tinfo.task = curctx->task; ++ irqctx->tinfo.previous_esp = current_stack_pointer; ++ ++ /* build the stack frame on the softirq stack */ ++ isp = (u32*) ((char*)irqctx + sizeof(*irqctx)); ++ ++ asm volatile( ++ " xchgl %%ebx,%%esp \n" ++ " call __do_softirq \n" ++ " movl %%ebx,%%esp \n" ++ : "=b"(isp) ++ : "0"(isp) ++ : "memory", "cc", "edx", "ecx", "eax" ++ ); ++ /* ++ * Shouldnt happen, we returned above if in_interrupt(): ++ */ ++ WARN_ON_ONCE(softirq_count()); ++ } ++ ++ local_irq_restore(flags); ++} ++#endif ++ ++/* ++ * Interrupt statistics: ++ */ ++ ++#ifndef CONFIG_XEN ++atomic_t irq_err_count; ++#endif ++ ++/* ++ * /proc/interrupts printing: ++ */ ++ ++int show_interrupts(struct seq_file *p, void *v) ++{ ++ int i = *(loff_t *) v, j; ++ struct irqaction * action; ++ unsigned long flags; ++ ++ if (i == 0) { ++ seq_printf(p, " "); ++ for_each_online_cpu(j) ++ seq_printf(p, "CPU%-8d",j); ++ seq_putc(p, '\n'); ++ } ++ ++ if (i < NR_IRQS) { ++ unsigned any_count = 0; ++ ++ spin_lock_irqsave(&irq_desc[i].lock, flags); ++#ifndef CONFIG_SMP ++ any_count = kstat_irqs(i); ++#else ++ for_each_online_cpu(j) ++ any_count |= kstat_cpu(j).irqs[i]; ++#endif ++ action = irq_desc[i].action; ++ if (!action && !any_count) ++ goto skip; ++ seq_printf(p, "%3d: ",i); ++#ifndef CONFIG_SMP ++ seq_printf(p, "%10u ", kstat_irqs(i)); ++#else ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); ++#endif ++ seq_printf(p, " %8s", irq_desc[i].chip->name); ++ seq_printf(p, "-%-8s", irq_desc[i].name); ++ ++ if (action) { ++ seq_printf(p, " %s", action->name); ++ while ((action = action->next) != NULL) ++ seq_printf(p, ", %s", action->name); ++ } ++ ++ seq_putc(p, '\n'); ++skip: ++ spin_unlock_irqrestore(&irq_desc[i].lock, flags); ++ } else if (i == NR_IRQS) { ++ seq_printf(p, "NMI: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", nmi_count(j)); ++ seq_printf(p, " Non-maskable interrupts\n"); ++#if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_XEN) ++ seq_printf(p, "LOC: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", ++ per_cpu(irq_stat,j).apic_timer_irqs); ++ seq_printf(p, " Local timer interrupts\n"); ++#endif ++#ifdef CONFIG_SMP ++ seq_printf(p, "RES: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", ++ per_cpu(irq_stat,j).irq_resched_count); ++ seq_printf(p, " Rescheduling interrupts\n"); ++ seq_printf(p, "CAL: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", ++ per_cpu(irq_stat,j).irq_call_count); ++ seq_printf(p, " function call interrupts\n"); ++#ifndef CONFIG_XEN ++ seq_printf(p, "TLB: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", ++ per_cpu(irq_stat,j).irq_tlb_count); ++ seq_printf(p, " TLB shootdowns\n"); ++#endif ++#endif ++#ifdef CONFIG_X86_MCE ++ seq_printf(p, "TRM: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", ++ per_cpu(irq_stat,j).irq_thermal_count); ++ seq_printf(p, " Thermal event interrupts\n"); ++#endif ++#ifndef CONFIG_XEN ++#ifdef CONFIG_X86_LOCAL_APIC ++ seq_printf(p, "SPU: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", ++ per_cpu(irq_stat,j).irq_spurious_count); ++ seq_printf(p, " Spurious interrupts\n"); ++#endif ++ seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); ++#if defined(CONFIG_X86_IO_APIC) ++ seq_printf(p, "MIS: %10u\n", atomic_read(&irq_mis_count)); ++#endif ++#endif ++ } ++ return 0; ++} ++ ++#ifdef CONFIG_HOTPLUG_CPU ++ ++void fixup_irqs(cpumask_t map) ++{ ++ unsigned int irq; ++ static int warned; ++ ++ for (irq = 0; irq < NR_IRQS; irq++) { ++ cpumask_t mask; ++ if (irq == 2) ++ continue; ++ ++ cpus_and(mask, irq_desc[irq].affinity, map); ++ if (any_online_cpu(mask) == NR_CPUS) { ++ /*printk("Breaking affinity for irq %i\n", irq);*/ ++ mask = map; ++ } ++ if (irq_desc[irq].chip->set_affinity) ++ irq_desc[irq].chip->set_affinity(irq, mask); ++ else if (irq_desc[irq].action && !(warned++)) ++ printk("Cannot set affinity for irq %i\n", irq); ++ } ++ ++#if 0 ++ barrier(); ++ /* Ingo Molnar says: "after the IO-APIC masks have been redirected ++ [note the nop - the interrupt-enable boundary on x86 is two ++ instructions from sti] - to flush out pending hardirqs and ++ IPIs. After this point nothing is supposed to reach this CPU." */ ++ __asm__ __volatile__("sti; nop; cli"); ++ barrier(); ++#else ++ /* That doesn't seem sufficient. Give it 1ms. */ ++ local_irq_enable(); ++ mdelay(1); ++ local_irq_disable(); ++#endif ++} ++#endif ++ +diff -Naur ubuntu-hardy/arch/x86/kernel/irq_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/irq_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/irq_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/irq_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,266 @@ ++/* ++ * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar ++ * ++ * This file contains the lowest level x86_64-specific interrupt ++ * entry and irq statistics code. All the remaining irq logic is ++ * done by the generic kernel/irq/ code and in the ++ * x86_64-specific irq controller code. (e.g. i8259.c and ++ * io_apic.c.) ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifndef CONFIG_XEN ++atomic_t irq_err_count; ++#endif ++ ++#ifdef CONFIG_DEBUG_STACKOVERFLOW ++/* ++ * Probabilistic stack overflow check: ++ * ++ * Only check the stack in process context, because everything else ++ * runs on the big interrupt stacks. Checking reliably is too expensive, ++ * so we just check from interrupts. ++ */ ++static inline void stack_overflow_check(struct pt_regs *regs) ++{ ++ u64 curbase = (u64)task_stack_page(current); ++ static unsigned long warned = -60*HZ; ++ ++ if (regs->rsp >= curbase && regs->rsp <= curbase + THREAD_SIZE && ++ regs->rsp < curbase + sizeof(struct thread_info) + 128 && ++ time_after(jiffies, warned + 60*HZ)) { ++ printk("do_IRQ: %s near stack overflow (cur:%Lx,rsp:%lx)\n", ++ current->comm, curbase, regs->rsp); ++ show_stack(NULL,NULL); ++ warned = jiffies; ++ } ++} ++#endif ++ ++/* ++ * Generic, controller-independent functions: ++ */ ++ ++int show_interrupts(struct seq_file *p, void *v) ++{ ++ int i = *(loff_t *) v, j; ++ struct irqaction * action; ++ unsigned long flags; ++ ++ if (i == 0) { ++ seq_printf(p, " "); ++ for_each_online_cpu(j) ++ seq_printf(p, "CPU%-8d",j); ++ seq_putc(p, '\n'); ++ } ++ ++ if (i < NR_IRQS) { ++ unsigned any_count = 0; ++ ++ spin_lock_irqsave(&irq_desc[i].lock, flags); ++#ifndef CONFIG_SMP ++ any_count = kstat_irqs(i); ++#else ++ for_each_online_cpu(j) ++ any_count |= kstat_cpu(j).irqs[i]; ++#endif ++ action = irq_desc[i].action; ++ if (!action && !any_count) ++ goto skip; ++ seq_printf(p, "%3d: ",i); ++#ifndef CONFIG_SMP ++ seq_printf(p, "%10u ", kstat_irqs(i)); ++#else ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); ++#endif ++ seq_printf(p, " %8s", irq_desc[i].chip->name); ++ seq_printf(p, "-%-8s", irq_desc[i].name); ++ ++ if (action) { ++ seq_printf(p, " %s", action->name); ++ while ((action = action->next) != NULL) ++ seq_printf(p, ", %s", action->name); ++ } ++ seq_putc(p, '\n'); ++skip: ++ spin_unlock_irqrestore(&irq_desc[i].lock, flags); ++ } else if (i == NR_IRQS) { ++ seq_printf(p, "NMI: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->__nmi_count); ++ seq_printf(p, " Non-maskable interrupts\n"); ++#if defined(CONFIG_X86_LOCAL_APIC) && !defined(CONFIG_XEN) ++ seq_printf(p, "LOC: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->apic_timer_irqs); ++ seq_printf(p, " Local timer interrupts\n"); ++#endif ++#ifdef CONFIG_SMP ++ seq_printf(p, "RES: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->irq_resched_count); ++ seq_printf(p, " Rescheduling interrupts\n"); ++ seq_printf(p, "CAL: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->irq_call_count); ++ seq_printf(p, " function call interrupts\n"); ++#ifndef CONFIG_XEN ++ seq_printf(p, "TLB: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->irq_tlb_count); ++ seq_printf(p, " TLB shootdowns\n"); ++#endif ++#endif ++#ifdef CONFIG_X86_MCE ++ seq_printf(p, "TRM: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->irq_thermal_count); ++ seq_printf(p, " Thermal event interrupts\n"); ++ seq_printf(p, "THR: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->irq_threshold_count); ++ seq_printf(p, " Threshold APIC interrupts\n"); ++#endif ++#ifndef CONFIG_XEN ++#ifdef CONFIG_X86_LOCAL_APIC ++ seq_printf(p, "SPU: "); ++ for_each_online_cpu(j) ++ seq_printf(p, "%10u ", cpu_pda(j)->irq_spurious_count); ++ seq_printf(p, " Spurious interrupts\n"); ++#endif ++ seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); ++#endif ++ } ++ return 0; ++} ++ ++/* ++ * do_IRQ handles all normal device IRQ's (the special ++ * SMP cross-CPU interrupts have their own specific ++ * handlers). ++ */ ++asmlinkage unsigned int do_IRQ(struct pt_regs *regs) ++{ ++ struct pt_regs *old_regs = set_irq_regs(regs); ++ ++ /* high bit used in ret_from_ code */ ++ unsigned irq = ~regs->orig_rax; ++ ++ exit_idle(); ++ irq_enter(); ++ ++#ifdef CONFIG_DEBUG_STACKOVERFLOW ++ stack_overflow_check(regs); ++#endif ++ ++ if (likely(irq < NR_IRQS)) ++ generic_handle_irq(irq); ++ else { ++#ifndef CONFIG_XEN ++ if (!disable_apic) ++ ack_APIC_irq(); ++#endif ++ if (printk_ratelimit()) ++ printk(KERN_EMERG "%s: %d.%d No irq handler for irq\n", ++ __func__, smp_processor_id(), irq); ++ } ++ ++ irq_exit(); ++ ++ set_irq_regs(old_regs); ++ return 1; ++} ++ ++#ifdef CONFIG_HOTPLUG_CPU ++void fixup_irqs(cpumask_t map) ++{ ++ unsigned int irq; ++ static int warned; ++ ++ for (irq = 0; irq < NR_IRQS; irq++) { ++ cpumask_t mask; ++ int break_affinity = 0; ++ int set_affinity = 1; ++ ++ if (irq == 2) ++ continue; ++ ++ /* interrupt's are disabled at this point */ ++ spin_lock(&irq_desc[irq].lock); ++ ++ if (!irq_has_action(irq) || ++ cpus_equal(irq_desc[irq].affinity, map)) { ++ spin_unlock(&irq_desc[irq].lock); ++ continue; ++ } ++ ++ cpus_and(mask, irq_desc[irq].affinity, map); ++ if (cpus_empty(mask)) { ++ break_affinity = 1; ++ mask = map; ++ } ++ ++ if (irq_desc[irq].chip->mask) ++ irq_desc[irq].chip->mask(irq); ++ ++ if (irq_desc[irq].chip->set_affinity) ++ irq_desc[irq].chip->set_affinity(irq, mask); ++ else if (!(warned++)) ++ set_affinity = 0; ++ ++ if (irq_desc[irq].chip->unmask) ++ irq_desc[irq].chip->unmask(irq); ++ ++ spin_unlock(&irq_desc[irq].lock); ++ ++ if (break_affinity && set_affinity) ++ printk("Broke affinity for irq %i\n", irq); ++ else if (!set_affinity) ++ printk("Cannot set affinity for irq %i\n", irq); ++ } ++ ++ /* That doesn't seem sufficient. Give it 1ms. */ ++ local_irq_enable(); ++ mdelay(1); ++ local_irq_disable(); ++} ++#endif ++ ++extern void call_softirq(void); ++ ++asmlinkage void do_softirq(void) ++{ ++ __u32 pending; ++ unsigned long flags; ++ ++ if (in_interrupt()) ++ return; ++ ++ local_irq_save(flags); ++ pending = local_softirq_pending(); ++ /* Switch to interrupt stack */ ++ if (pending) { ++ call_softirq(); ++ WARN_ON_ONCE(softirq_count()); ++ } ++ local_irq_restore(flags); ++} ++ ++/* ++ * 'what should we do if we get a hw irq event on an illegal vector'. ++ * each architecture has to answer this themselves. ++ */ ++void ack_bad_irq(unsigned int irq) ++{ ++ printk("unexpected IRQ trap at irq %02x\n", irq); ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/ldt_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/ldt_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/ldt_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/ldt_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,265 @@ ++/* ++ * Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds ++ * Copyright (C) 1999 Ingo Molnar ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_SMP /* avoids "defined but not used" warnig */ ++static void flush_ldt(void *null) ++{ ++ if (current->active_mm) ++ load_LDT(¤t->active_mm->context); ++} ++#endif ++ ++static int alloc_ldt(mm_context_t *pc, int mincount, int reload) ++{ ++ void *oldldt; ++ void *newldt; ++ int oldsize; ++ ++ if (mincount <= pc->size) ++ return 0; ++ oldsize = pc->size; ++ mincount = (mincount+511)&(~511); ++ if (mincount*LDT_ENTRY_SIZE > PAGE_SIZE) ++ newldt = vmalloc(mincount*LDT_ENTRY_SIZE); ++ else ++ newldt = kmalloc(mincount*LDT_ENTRY_SIZE, GFP_KERNEL); ++ ++ if (!newldt) ++ return -ENOMEM; ++ ++ if (oldsize) ++ memcpy(newldt, pc->ldt, oldsize*LDT_ENTRY_SIZE); ++ oldldt = pc->ldt; ++ memset(newldt+oldsize*LDT_ENTRY_SIZE, 0, (mincount-oldsize)*LDT_ENTRY_SIZE); ++ pc->ldt = newldt; ++ wmb(); ++ pc->size = mincount; ++ wmb(); ++ ++ if (reload) { ++#ifdef CONFIG_SMP ++ cpumask_t mask; ++ preempt_disable(); ++#endif ++ make_pages_readonly( ++ pc->ldt, ++ (pc->size * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ load_LDT(pc); ++#ifdef CONFIG_SMP ++ mask = cpumask_of_cpu(smp_processor_id()); ++ if (!cpus_equal(current->mm->cpu_vm_mask, mask)) ++ smp_call_function(flush_ldt, NULL, 1, 1); ++ preempt_enable(); ++#endif ++ } ++ if (oldsize) { ++ make_pages_writable( ++ oldldt, ++ (oldsize * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE) ++ vfree(oldldt); ++ else ++ kfree(oldldt); ++ } ++ return 0; ++} ++ ++static inline int copy_ldt(mm_context_t *new, mm_context_t *old) ++{ ++ int err = alloc_ldt(new, old->size, 0); ++ if (err < 0) ++ return err; ++ memcpy(new->ldt, old->ldt, old->size*LDT_ENTRY_SIZE); ++ make_pages_readonly( ++ new->ldt, ++ (new->size * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ return 0; ++} ++ ++/* ++ * we do not have to muck with descriptors here, that is ++ * done in switch_mm() as needed. ++ */ ++int init_new_context(struct task_struct *tsk, struct mm_struct *mm) ++{ ++ struct mm_struct * old_mm; ++ int retval = 0; ++ ++ mutex_init(&mm->context.lock); ++ mm->context.size = 0; ++ mm->context.has_foreign_mappings = 0; ++ old_mm = current->mm; ++ if (old_mm && old_mm->context.size > 0) { ++ mutex_lock(&old_mm->context.lock); ++ retval = copy_ldt(&mm->context, &old_mm->context); ++ mutex_unlock(&old_mm->context.lock); ++ } ++ return retval; ++} ++ ++/* ++ * No need to lock the MM as we are the last user ++ */ ++void destroy_context(struct mm_struct *mm) ++{ ++ if (mm->context.size) { ++ if (mm == current->active_mm) ++ clear_LDT(); ++ make_pages_writable( ++ mm->context.ldt, ++ (mm->context.size * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE) ++ vfree(mm->context.ldt); ++ else ++ kfree(mm->context.ldt); ++ mm->context.size = 0; ++ } ++} ++ ++static int read_ldt(void __user * ptr, unsigned long bytecount) ++{ ++ int err; ++ unsigned long size; ++ struct mm_struct * mm = current->mm; ++ ++ if (!mm->context.size) ++ return 0; ++ if (bytecount > LDT_ENTRY_SIZE*LDT_ENTRIES) ++ bytecount = LDT_ENTRY_SIZE*LDT_ENTRIES; ++ ++ mutex_lock(&mm->context.lock); ++ size = mm->context.size*LDT_ENTRY_SIZE; ++ if (size > bytecount) ++ size = bytecount; ++ ++ err = 0; ++ if (copy_to_user(ptr, mm->context.ldt, size)) ++ err = -EFAULT; ++ mutex_unlock(&mm->context.lock); ++ if (err < 0) ++ goto error_return; ++ if (size != bytecount) { ++ /* zero-fill the rest */ ++ if (clear_user(ptr+size, bytecount-size) != 0) { ++ err = -EFAULT; ++ goto error_return; ++ } ++ } ++ return bytecount; ++error_return: ++ return err; ++} ++ ++static int read_default_ldt(void __user * ptr, unsigned long bytecount) ++{ ++ int err; ++ unsigned long size; ++ ++ err = 0; ++ size = 5*sizeof(struct desc_struct); ++ if (size > bytecount) ++ size = bytecount; ++ ++ err = size; ++ if (clear_user(ptr, size)) ++ err = -EFAULT; ++ ++ return err; ++} ++ ++static int write_ldt(void __user * ptr, unsigned long bytecount, int oldmode) ++{ ++ struct mm_struct * mm = current->mm; ++ __u32 entry_1, entry_2; ++ int error; ++ struct user_desc ldt_info; ++ ++ error = -EINVAL; ++ if (bytecount != sizeof(ldt_info)) ++ goto out; ++ error = -EFAULT; ++ if (copy_from_user(&ldt_info, ptr, sizeof(ldt_info))) ++ goto out; ++ ++ error = -EINVAL; ++ if (ldt_info.entry_number >= LDT_ENTRIES) ++ goto out; ++ if (ldt_info.contents == 3) { ++ if (oldmode) ++ goto out; ++ if (ldt_info.seg_not_present == 0) ++ goto out; ++ } ++ ++ mutex_lock(&mm->context.lock); ++ if (ldt_info.entry_number >= mm->context.size) { ++ error = alloc_ldt(¤t->mm->context, ldt_info.entry_number+1, 1); ++ if (error < 0) ++ goto out_unlock; ++ } ++ ++ /* Allow LDTs to be cleared by the user. */ ++ if (ldt_info.base_addr == 0 && ldt_info.limit == 0) { ++ if (oldmode || LDT_empty(&ldt_info)) { ++ entry_1 = 0; ++ entry_2 = 0; ++ goto install; ++ } ++ } ++ ++ entry_1 = LDT_entry_a(&ldt_info); ++ entry_2 = LDT_entry_b(&ldt_info); ++ if (oldmode) ++ entry_2 &= ~(1 << 20); ++ ++ /* Install the new entry ... */ ++install: ++ error = write_ldt_entry(mm->context.ldt, ldt_info.entry_number, ++ entry_1, entry_2); ++ ++out_unlock: ++ mutex_unlock(&mm->context.lock); ++out: ++ return error; ++} ++ ++asmlinkage int sys_modify_ldt(int func, void __user *ptr, unsigned long bytecount) ++{ ++ int ret = -ENOSYS; ++ ++ switch (func) { ++ case 0: ++ ret = read_ldt(ptr, bytecount); ++ break; ++ case 1: ++ ret = write_ldt(ptr, bytecount, 1); ++ break; ++ case 2: ++ ret = read_default_ldt(ptr, bytecount); ++ break; ++ case 0x11: ++ ret = write_ldt(ptr, bytecount, 0); ++ break; ++ } ++ return ret; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/ldt_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/ldt_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/ldt_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/ldt_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,279 @@ ++/* ++ * Copyright (C) 1992 Krishna Balasubramanian and Linus Torvalds ++ * Copyright (C) 1999 Ingo Molnar ++ * Copyright (C) 2002 Andi Kleen ++ * ++ * This handles calls from both 32bit and 64bit mode. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef CONFIG_SMP /* avoids "defined but not used" warnig */ ++static void flush_ldt(void *null) ++{ ++ if (current->active_mm) ++ load_LDT(¤t->active_mm->context); ++} ++#endif ++ ++static int alloc_ldt(mm_context_t *pc, unsigned mincount, int reload) ++{ ++ void *oldldt; ++ void *newldt; ++ unsigned oldsize; ++ ++ if (mincount <= (unsigned)pc->size) ++ return 0; ++ oldsize = pc->size; ++ mincount = (mincount+511)&(~511); ++ if (mincount*LDT_ENTRY_SIZE > PAGE_SIZE) ++ newldt = vmalloc(mincount*LDT_ENTRY_SIZE); ++ else ++ newldt = kmalloc(mincount*LDT_ENTRY_SIZE, GFP_KERNEL); ++ ++ if (!newldt) ++ return -ENOMEM; ++ ++ if (oldsize) ++ memcpy(newldt, pc->ldt, oldsize*LDT_ENTRY_SIZE); ++ oldldt = pc->ldt; ++ memset(newldt+oldsize*LDT_ENTRY_SIZE, 0, (mincount-oldsize)*LDT_ENTRY_SIZE); ++ wmb(); ++ pc->ldt = newldt; ++ wmb(); ++ pc->size = mincount; ++ wmb(); ++ if (reload) { ++#ifdef CONFIG_SMP ++ cpumask_t mask; ++ ++ preempt_disable(); ++#endif ++ make_pages_readonly( ++ pc->ldt, ++ (pc->size * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ load_LDT(pc); ++#ifdef CONFIG_SMP ++ mask = cpumask_of_cpu(smp_processor_id()); ++ if (!cpus_equal(current->mm->cpu_vm_mask, mask)) ++ smp_call_function(flush_ldt, NULL, 1, 1); ++ preempt_enable(); ++#endif ++ } ++ if (oldsize) { ++ make_pages_writable( ++ oldldt, ++ (oldsize * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ if (oldsize*LDT_ENTRY_SIZE > PAGE_SIZE) ++ vfree(oldldt); ++ else ++ kfree(oldldt); ++ } ++ return 0; ++} ++ ++static inline int copy_ldt(mm_context_t *new, mm_context_t *old) ++{ ++ int err = alloc_ldt(new, old->size, 0); ++ if (err < 0) ++ return err; ++ memcpy(new->ldt, old->ldt, old->size*LDT_ENTRY_SIZE); ++ make_pages_readonly( ++ new->ldt, ++ (new->size * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ return 0; ++} ++ ++/* ++ * we do not have to muck with descriptors here, that is ++ * done in switch_mm() as needed. ++ */ ++int init_new_context(struct task_struct *tsk, struct mm_struct *mm) ++{ ++ struct mm_struct * old_mm; ++ int retval = 0; ++ ++ memset(&mm->context, 0, sizeof(mm->context)); ++ mutex_init(&mm->context.lock); ++ old_mm = current->mm; ++ if (old_mm && old_mm->context.size > 0) { ++ mutex_lock(&old_mm->context.lock); ++ retval = copy_ldt(&mm->context, &old_mm->context); ++ mutex_unlock(&old_mm->context.lock); ++ } ++ if (retval == 0) { ++ spin_lock(&mm_unpinned_lock); ++ list_add(&mm->context.unpinned, &mm_unpinned); ++ spin_unlock(&mm_unpinned_lock); ++ } ++ return retval; ++} ++ ++/* ++ * ++ * Don't touch the LDT register - we're already in the next thread. ++ */ ++void destroy_context(struct mm_struct *mm) ++{ ++ if (mm->context.size) { ++ if (mm == current->active_mm) ++ clear_LDT(); ++ make_pages_writable( ++ mm->context.ldt, ++ (mm->context.size * LDT_ENTRY_SIZE) / PAGE_SIZE, ++ XENFEAT_writable_descriptor_tables); ++ if (mm->context.size*LDT_ENTRY_SIZE > PAGE_SIZE) ++ vfree(mm->context.ldt); ++ else ++ kfree(mm->context.ldt); ++ mm->context.size = 0; ++ } ++ if (!mm->context.pinned) { ++ spin_lock(&mm_unpinned_lock); ++ list_del(&mm->context.unpinned); ++ spin_unlock(&mm_unpinned_lock); ++ } ++} ++ ++static int read_ldt(void __user * ptr, unsigned long bytecount) ++{ ++ int err; ++ unsigned long size; ++ struct mm_struct * mm = current->mm; ++ ++ if (!mm->context.size) ++ return 0; ++ if (bytecount > LDT_ENTRY_SIZE*LDT_ENTRIES) ++ bytecount = LDT_ENTRY_SIZE*LDT_ENTRIES; ++ ++ mutex_lock(&mm->context.lock); ++ size = mm->context.size*LDT_ENTRY_SIZE; ++ if (size > bytecount) ++ size = bytecount; ++ ++ err = 0; ++ if (copy_to_user(ptr, mm->context.ldt, size)) ++ err = -EFAULT; ++ mutex_unlock(&mm->context.lock); ++ if (err < 0) ++ goto error_return; ++ if (size != bytecount) { ++ /* zero-fill the rest */ ++ if (clear_user(ptr+size, bytecount-size) != 0) { ++ err = -EFAULT; ++ goto error_return; ++ } ++ } ++ return bytecount; ++error_return: ++ return err; ++} ++ ++static int read_default_ldt(void __user * ptr, unsigned long bytecount) ++{ ++ /* Arbitrary number */ ++ /* x86-64 default LDT is all zeros */ ++ if (bytecount > 128) ++ bytecount = 128; ++ if (clear_user(ptr, bytecount)) ++ return -EFAULT; ++ return bytecount; ++} ++ ++static int write_ldt(void __user * ptr, unsigned long bytecount, int oldmode) ++{ ++ struct task_struct *me = current; ++ struct mm_struct * mm = me->mm; ++ __u32 entry_1, entry_2, *lp; ++ unsigned long mach_lp; ++ int error; ++ struct user_desc ldt_info; ++ ++ error = -EINVAL; ++ ++ if (bytecount != sizeof(ldt_info)) ++ goto out; ++ error = -EFAULT; ++ if (copy_from_user(&ldt_info, ptr, bytecount)) ++ goto out; ++ ++ error = -EINVAL; ++ if (ldt_info.entry_number >= LDT_ENTRIES) ++ goto out; ++ if (ldt_info.contents == 3) { ++ if (oldmode) ++ goto out; ++ if (ldt_info.seg_not_present == 0) ++ goto out; ++ } ++ ++ mutex_lock(&mm->context.lock); ++ if (ldt_info.entry_number >= (unsigned)mm->context.size) { ++ error = alloc_ldt(¤t->mm->context, ldt_info.entry_number+1, 1); ++ if (error < 0) ++ goto out_unlock; ++ } ++ ++ lp = (__u32 *) ((ldt_info.entry_number << 3) + (char *) mm->context.ldt); ++ mach_lp = arbitrary_virt_to_machine(lp); ++ ++ /* Allow LDTs to be cleared by the user. */ ++ if (ldt_info.base_addr == 0 && ldt_info.limit == 0) { ++ if (oldmode || LDT_empty(&ldt_info)) { ++ entry_1 = 0; ++ entry_2 = 0; ++ goto install; ++ } ++ } ++ ++ entry_1 = LDT_entry_a(&ldt_info); ++ entry_2 = LDT_entry_b(&ldt_info); ++ if (oldmode) ++ entry_2 &= ~(1 << 20); ++ ++ /* Install the new entry ... */ ++install: ++ error = HYPERVISOR_update_descriptor(mach_lp, (unsigned long)((entry_1 | (unsigned long) entry_2 << 32))); ++ ++out_unlock: ++ mutex_unlock(&mm->context.lock); ++out: ++ return error; ++} ++ ++asmlinkage int sys_modify_ldt(int func, void __user *ptr, unsigned long bytecount) ++{ ++ int ret = -ENOSYS; ++ ++ switch (func) { ++ case 0: ++ ret = read_ldt(ptr, bytecount); ++ break; ++ case 1: ++ ret = write_ldt(ptr, bytecount, 1); ++ break; ++ case 2: ++ ret = read_default_ldt(ptr, bytecount); ++ break; ++ case 0x11: ++ ret = write_ldt(ptr, bytecount, 0); ++ break; ++ } ++ return ret; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/machine_kexec_32.c ubuntu-hardy-xen/arch/x86/kernel/machine_kexec_32.c +--- ubuntu-hardy/arch/x86/kernel/machine_kexec_32.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/machine_kexec_32.c 2008-04-09 13:17:22.000000000 +0100 +@@ -21,6 +21,10 @@ + #include + #include + ++#ifdef CONFIG_XEN ++#include ++#endif ++ + #define PAGE_ALIGNED __attribute__ ((__aligned__(PAGE_SIZE))) + static u32 kexec_pgd[1024] PAGE_ALIGNED; + #ifdef CONFIG_X86_PAE +@@ -30,48 +34,40 @@ + static u32 kexec_pte0[1024] PAGE_ALIGNED; + static u32 kexec_pte1[1024] PAGE_ALIGNED; + +-static void set_idt(void *newidt, __u16 limit) +-{ +- struct Xgt_desc_struct curidt; ++#ifdef CONFIG_XEN + +- /* ia32 supports unaliged loads & stores */ +- curidt.size = limit; +- curidt.address = (unsigned long)newidt; ++#define __ma(x) (pfn_to_mfn(__pa((x)) >> PAGE_SHIFT) << PAGE_SHIFT) + +- load_idt(&curidt); +-}; ++#if PAGES_NR > KEXEC_XEN_NO_PAGES ++#error PAGES_NR is greater than KEXEC_XEN_NO_PAGES - Xen support will break ++#endif + ++#if PA_CONTROL_PAGE != 0 ++#error PA_CONTROL_PAGE is non zero - Xen support will break ++#endif + +-static void set_gdt(void *newgdt, __u16 limit) ++void machine_kexec_setup_load_arg(xen_kexec_image_t *xki, struct kimage *image) + { +- struct Xgt_desc_struct curgdt; ++ void *control_page; + +- /* ia32 supports unaligned loads & stores */ +- curgdt.size = limit; +- curgdt.address = (unsigned long)newgdt; ++ memset(xki->page_list, 0, sizeof(xki->page_list)); + +- load_gdt(&curgdt); +-}; ++ control_page = page_address(image->control_code_page); ++ memcpy(control_page, relocate_kernel, PAGE_SIZE); + +-static void load_segments(void) +-{ +-#define __STR(X) #X +-#define STR(X) __STR(X) ++ xki->page_list[PA_CONTROL_PAGE] = __ma(control_page); ++ xki->page_list[PA_PGD] = __ma(kexec_pgd); ++#ifdef CONFIG_X86_PAE ++ xki->page_list[PA_PMD_0] = __ma(kexec_pmd0); ++ xki->page_list[PA_PMD_1] = __ma(kexec_pmd1); ++#endif ++ xki->page_list[PA_PTE_0] = __ma(kexec_pte0); ++ xki->page_list[PA_PTE_1] = __ma(kexec_pte1); + +- __asm__ __volatile__ ( +- "\tljmp $"STR(__KERNEL_CS)",$1f\n" +- "\t1:\n" +- "\tmovl $"STR(__KERNEL_DS)",%%eax\n" +- "\tmovl %%eax,%%ds\n" +- "\tmovl %%eax,%%es\n" +- "\tmovl %%eax,%%fs\n" +- "\tmovl %%eax,%%gs\n" +- "\tmovl %%eax,%%ss\n" +- ::: "eax", "memory"); +-#undef STR +-#undef __STR + } + ++#endif /* CONFIG_XEN */ ++ + /* + * A architecture hook called to validate the + * proposed image and prepare the control pages +@@ -98,6 +94,7 @@ + { + } + ++#ifndef CONFIG_XEN + /* + * Do not allocate memory (or fail in any way) in machine_kexec(). + * We are past the point of no return, committed to rebooting now. +@@ -128,26 +125,10 @@ + page_list[PA_PTE_1] = __pa(kexec_pte1); + page_list[VA_PTE_1] = (unsigned long)kexec_pte1; + +- /* The segment registers are funny things, they have both a +- * visible and an invisible part. Whenever the visible part is +- * set to a specific selector, the invisible part is loaded +- * with from a table in memory. At no other time is the +- * descriptor table in memory accessed. +- * +- * I take advantage of this here by force loading the +- * segments, before I zap the gdt with an invalid value. +- */ +- load_segments(); +- /* The gdt & idt are now invalid. +- * If you want to load them you must set up your own idt & gdt. +- */ +- set_gdt(phys_to_virt(0),0); +- set_idt(phys_to_virt(0),0); +- +- /* now call it */ + relocate_kernel((unsigned long)image->head, (unsigned long)page_list, + image->start, cpu_has_pae); + } ++#endif + + void arch_crash_save_vmcoreinfo(void) + { +diff -Naur ubuntu-hardy/arch/x86/kernel/machine_kexec_64.c ubuntu-hardy-xen/arch/x86/kernel/machine_kexec_64.c +--- ubuntu-hardy/arch/x86/kernel/machine_kexec_64.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/machine_kexec_64.c 2008-04-09 13:17:22.000000000 +0100 +@@ -25,6 +25,104 @@ + static u64 kexec_pmd1[512] PAGE_ALIGNED; + static u64 kexec_pte1[512] PAGE_ALIGNED; + ++#ifdef CONFIG_XEN ++ ++/* In the case of Xen, override hypervisor functions to be able to create ++ * a regular identity mapping page table... ++ */ ++ ++#include ++#include ++ ++#define x__pmd(x) ((pmd_t) { (x) } ) ++#define x__pud(x) ((pud_t) { (x) } ) ++#define x__pgd(x) ((pgd_t) { (x) } ) ++ ++#define x_pmd_val(x) ((x).pmd) ++#define x_pud_val(x) ((x).pud) ++#define x_pgd_val(x) ((x).pgd) ++ ++static inline void x_set_pmd(pmd_t *dst, pmd_t val) ++{ ++ x_pmd_val(*dst) = x_pmd_val(val); ++} ++ ++static inline void x_set_pud(pud_t *dst, pud_t val) ++{ ++ x_pud_val(*dst) = phys_to_machine(x_pud_val(val)); ++} ++ ++static inline void x_pud_clear (pud_t *pud) ++{ ++ x_pud_val(*pud) = 0; ++} ++ ++static inline void x_set_pgd(pgd_t *dst, pgd_t val) ++{ ++ x_pgd_val(*dst) = phys_to_machine(x_pgd_val(val)); ++} ++ ++static inline void x_pgd_clear (pgd_t * pgd) ++{ ++ x_pgd_val(*pgd) = 0; ++} ++ ++#define X__PAGE_KERNEL_LARGE_EXEC \ ++ _PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_PSE ++#define X_KERNPG_TABLE _PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY ++ ++#define __ma(x) (pfn_to_mfn(__pa((x)) >> PAGE_SHIFT) << PAGE_SHIFT) ++ ++#if PAGES_NR > KEXEC_XEN_NO_PAGES ++#error PAGES_NR is greater than KEXEC_XEN_NO_PAGES - Xen support will break ++#endif ++ ++#if PA_CONTROL_PAGE != 0 ++#error PA_CONTROL_PAGE is non zero - Xen support will break ++#endif ++ ++void machine_kexec_setup_load_arg(xen_kexec_image_t *xki, struct kimage *image) ++{ ++ void *control_page; ++ void *table_page; ++ ++ memset(xki->page_list, 0, sizeof(xki->page_list)); ++ ++ control_page = page_address(image->control_code_page) + PAGE_SIZE; ++ memcpy(control_page, relocate_kernel, PAGE_SIZE); ++ ++ table_page = page_address(image->control_code_page); ++ ++ xki->page_list[PA_CONTROL_PAGE] = __ma(control_page); ++ xki->page_list[PA_TABLE_PAGE] = __ma(table_page); ++ ++ xki->page_list[PA_PGD] = __ma(kexec_pgd); ++ xki->page_list[PA_PUD_0] = __ma(kexec_pud0); ++ xki->page_list[PA_PUD_1] = __ma(kexec_pud1); ++ xki->page_list[PA_PMD_0] = __ma(kexec_pmd0); ++ xki->page_list[PA_PMD_1] = __ma(kexec_pmd1); ++ xki->page_list[PA_PTE_0] = __ma(kexec_pte0); ++ xki->page_list[PA_PTE_1] = __ma(kexec_pte1); ++} ++ ++#else /* CONFIG_XEN */ ++ ++#define x__pmd(x) __pmd(x) ++#define x__pud(x) __pud(x) ++#define x__pgd(x) __pgd(x) ++ ++#define x_set_pmd(x, y) set_pmd(x, y) ++#define x_set_pud(x, y) set_pud(x, y) ++#define x_set_pgd(x, y) set_pgd(x, y) ++ ++#define x_pud_clear(x) pud_clear(x) ++#define x_pgd_clear(x) pgd_clear(x) ++ ++#define X__PAGE_KERNEL_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC ++#define X_KERNPG_TABLE _KERNPG_TABLE ++ ++#endif /* CONFIG_XEN */ ++ + static void init_level2_page(pmd_t *level2p, unsigned long addr) + { + unsigned long end_addr; +@@ -32,7 +130,7 @@ + addr &= PAGE_MASK; + end_addr = addr + PUD_SIZE; + while (addr < end_addr) { +- set_pmd(level2p++, __pmd(addr | __PAGE_KERNEL_LARGE_EXEC)); ++ x_set_pmd(level2p++, x__pmd(addr | X__PAGE_KERNEL_LARGE_EXEC)); + addr += PMD_SIZE; + } + } +@@ -57,12 +155,12 @@ + } + level2p = (pmd_t *)page_address(page); + init_level2_page(level2p, addr); +- set_pud(level3p++, __pud(__pa(level2p) | _KERNPG_TABLE)); ++ x_set_pud(level3p++, x__pud(__pa(level2p) | X_KERNPG_TABLE)); + addr += PUD_SIZE; + } + /* clear the unused entries */ + while (addr < end_addr) { +- pud_clear(level3p++); ++ x_pud_clear(level3p++); + addr += PUD_SIZE; + } + out: +@@ -93,12 +191,12 @@ + if (result) { + goto out; + } +- set_pgd(level4p++, __pgd(__pa(level3p) | _KERNPG_TABLE)); ++ x_set_pgd(level4p++, x__pgd(__pa(level3p) | X_KERNPG_TABLE)); + addr += PGDIR_SIZE; + } + /* clear the unused entries */ + while (addr < end_addr) { +- pgd_clear(level4p++); ++ x_pgd_clear(level4p++); + addr += PGDIR_SIZE; + } + out: +@@ -109,49 +207,14 @@ + static int init_pgtable(struct kimage *image, unsigned long start_pgtable) + { + pgd_t *level4p; +- level4p = (pgd_t *)__va(start_pgtable); +- return init_level4_page(image, level4p, 0, end_pfn << PAGE_SHIFT); +-} +- +-static void set_idt(void *newidt, u16 limit) +-{ +- struct desc_ptr curidt; +- +- /* x86-64 supports unaliged loads & stores */ +- curidt.size = limit; +- curidt.address = (unsigned long)newidt; +- +- __asm__ __volatile__ ( +- "lidtq %0\n" +- : : "m" (curidt) +- ); +-}; +- +- +-static void set_gdt(void *newgdt, u16 limit) +-{ +- struct desc_ptr curgdt; +- +- /* x86-64 supports unaligned loads & stores */ +- curgdt.size = limit; +- curgdt.address = (unsigned long)newgdt; ++ unsigned long x_end_pfn = end_pfn; + +- __asm__ __volatile__ ( +- "lgdtq %0\n" +- : : "m" (curgdt) +- ); +-}; ++#ifdef CONFIG_XEN ++ x_end_pfn = HYPERVISOR_memory_op(XENMEM_maximum_ram_page, NULL); ++#endif + +-static void load_segments(void) +-{ +- __asm__ __volatile__ ( +- "\tmovl %0,%%ds\n" +- "\tmovl %0,%%es\n" +- "\tmovl %0,%%ss\n" +- "\tmovl %0,%%fs\n" +- "\tmovl %0,%%gs\n" +- : : "a" (__KERNEL_DS) : "memory" +- ); ++ level4p = (pgd_t *)__va(start_pgtable); ++ return init_level4_page(image, level4p, 0, x_end_pfn << PAGE_SHIFT); + } + + int machine_kexec_prepare(struct kimage *image) +@@ -175,6 +238,7 @@ + return; + } + ++#ifndef CONFIG_XEN + /* + * Do not allocate memory (or fail in any way) in machine_kexec(). + * We are past the point of no return, committed to rebooting now. +@@ -210,26 +274,10 @@ + page_list[PA_TABLE_PAGE] = + (unsigned long)__pa(page_address(image->control_code_page)); + +- /* The segment registers are funny things, they have both a +- * visible and an invisible part. Whenever the visible part is +- * set to a specific selector, the invisible part is loaded +- * with from a table in memory. At no other time is the +- * descriptor table in memory accessed. +- * +- * I take advantage of this here by force loading the +- * segments, before I zap the gdt with an invalid value. +- */ +- load_segments(); +- /* The gdt & idt are now invalid. +- * If you want to load them you must set up your own idt & gdt. +- */ +- set_gdt(phys_to_virt(0),0); +- set_idt(phys_to_virt(0),0); +- +- /* now call it */ + relocate_kernel((unsigned long)image->head, (unsigned long)page_list, + image->start); + } ++#endif + + void arch_crash_save_vmcoreinfo(void) + { +diff -Naur ubuntu-hardy/arch/x86/kernel/Makefile ubuntu-hardy-xen/arch/x86/kernel/Makefile +--- ubuntu-hardy/arch/x86/kernel/Makefile 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/Makefile 2008-04-09 13:17:22.000000000 +0100 +@@ -7,3 +7,6 @@ + # Workaround to delete .lds files with make clean + # The problem is that we do not enter Makefile_32 with make clean. + clean-files := vsyscall*.lds vsyscall*.so ++ ++disabled-obj-$(CONFIG_XEN) := early-quirks.o genapic_flat_$(BITS).o hpet.o i8253.o i8259_$(BITS).o \ ++ reboot_$(BITS).o smpboot_$(BITS).o suspend_$(BITS).o trampoline_$(BITS).o tsc_$(BITS).o tsc_sync.o +diff -Naur ubuntu-hardy/arch/x86/kernel/Makefile_32 ubuntu-hardy-xen/arch/x86/kernel/Makefile_32 +--- ubuntu-hardy/arch/x86/kernel/Makefile_32 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/Makefile_32 2008-04-09 13:17:22.000000000 +0100 +@@ -49,6 +49,7 @@ + obj-y += pcspeaker.o + + obj-$(CONFIG_SCx200) += scx200_32.o ++obj-$(CONFIG_XEN) += fixup.o + + # vsyscall_32.o contains the vsyscall DSO images as __initdata. + # We must build both images before we can assemble it. +@@ -85,5 +86,3 @@ + $(obj)/vsyscall-syms.o: $(src)/vsyscall_32.lds \ + $(obj)/vsyscall-sysenter_32.o $(obj)/vsyscall-note_32.o FORCE + $(call if_changed,syscall) +- +- +diff -Naur ubuntu-hardy/arch/x86/kernel/Makefile_64 ubuntu-hardy-xen/arch/x86/kernel/Makefile_64 +--- ubuntu-hardy/arch/x86/kernel/Makefile_64 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/Makefile_64 2008-04-09 13:17:22.000000000 +0100 +@@ -6,7 +6,7 @@ + CPPFLAGS_vmlinux.lds += -Ux86_64 + EXTRA_AFLAGS := -traditional + +-obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_64.o \ ++obj-y := process_64.o signal_64.o entry_64.o traps_64.o irq_64.o nmi_64.o \ + ptrace_64.o time_64.o ioport_64.o ldt_64.o setup_64.o i8259_64.o sys_x86_64.o \ + x8664_ksyms_64.o i387_64.o syscall_64.o vsyscall_64.o \ + setup64.o bootflag.o e820_64.o reboot_64.o quirks.o i8237.o \ +@@ -20,8 +20,9 @@ + obj-$(CONFIG_MICROCODE) += microcode.o + obj-$(CONFIG_X86_CPUID) += cpuid.o + obj-$(CONFIG_SMP) += smp_64.o smpboot_64.o trampoline_64.o tsc_sync.o +-obj-y += apic_64.o nmi_64.o +-obj-y += io_apic_64.o mpparse_64.o genapic_64.o genapic_flat_64.o ++obj-$(CONFIG_X86_LOCAL_APIC) += apic_64.o ++obj-$(CONFIG_X86_XEN_GENAPIC) += genapic_64.o genapic_xen_64.o ++obj-$(CONFIG_X86_IO_APIC) += io_apic_64.o mpparse_64.o genapic_64.o genapic_flat_64.o + obj-$(CONFIG_KEXEC) += machine_kexec_64.o relocate_kernel_64.o crash.o + obj-$(CONFIG_CRASH_DUMP) += crash_dump_64.o + obj-$(CONFIG_PM) += suspend_64.o +@@ -43,3 +44,9 @@ + obj-y += pcspeaker.o + + CFLAGS_vsyscall_64.o := $(PROFILING) -g0 ++ ++apic_64-$(CONFIG_XEN) += apic_32.o ++time_64-$(CONFIG_XEN) += time_32.o ++pci-dma_64-$(CONFIG_XEN) += pci-dma_32.o ++ ++%/head_64.o %/head_64.s: asflags-$(CONFIG_XEN) := +diff -Naur ubuntu-hardy/arch/x86/kernel/microcode-xen.c ubuntu-hardy-xen/arch/x86/kernel/microcode-xen.c +--- ubuntu-hardy/arch/x86/kernel/microcode-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/microcode-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,210 @@ ++/* ++ * Intel CPU Microcode Update Driver for Linux ++ * ++ * Copyright (C) 2000-2006 Tigran Aivazian ++ * 2006 Shaohua Li ++ * ++ * This driver allows to upgrade microcode on Intel processors ++ * belonging to IA-32 family - PentiumPro, Pentium II, ++ * Pentium III, Xeon, Pentium 4, etc. ++ * ++ * Reference: Section 8.10 of Volume III, Intel Pentium 4 Manual, ++ * Order Number 245472 or free download from: ++ * ++ * http://developer.intel.com/design/pentium4/manuals/245472.htm ++ * ++ * For more information, go to http://www.urbanmyth.org/microcode ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License ++ * as published by the Free Software Foundation; either version ++ * 2 of the License, or (at your option) any later version. ++ */ ++ ++//#define DEBUG /* pr_debug */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++MODULE_DESCRIPTION("Intel CPU (IA-32) Microcode Update Driver"); ++MODULE_AUTHOR("Tigran Aivazian "); ++MODULE_LICENSE("GPL"); ++ ++static int verbose; ++module_param(verbose, int, 0644); ++ ++#define MICROCODE_VERSION "1.14a-xen" ++ ++#define DEFAULT_UCODE_DATASIZE (2000) /* 2000 bytes */ ++#define MC_HEADER_SIZE (sizeof (microcode_header_t)) /* 48 bytes */ ++#define DEFAULT_UCODE_TOTALSIZE (DEFAULT_UCODE_DATASIZE + MC_HEADER_SIZE) /* 2048 bytes */ ++ ++/* no concurrent ->write()s are allowed on /dev/cpu/microcode */ ++static DEFINE_MUTEX(microcode_mutex); ++ ++#ifdef CONFIG_MICROCODE_OLD_INTERFACE ++static int do_microcode_update (const void __user *ubuf, size_t len) ++{ ++ int err; ++ void *kbuf; ++ ++ kbuf = vmalloc(len); ++ if (!kbuf) ++ return -ENOMEM; ++ ++ if (copy_from_user(kbuf, ubuf, len) == 0) { ++ struct xen_platform_op op; ++ ++ op.cmd = XENPF_microcode_update; ++ set_xen_guest_handle(op.u.microcode.data, kbuf); ++ op.u.microcode.length = len; ++ err = HYPERVISOR_platform_op(&op); ++ } else ++ err = -EFAULT; ++ ++ vfree(kbuf); ++ ++ return err; ++} ++ ++static int microcode_open (struct inode *unused1, struct file *unused2) ++{ ++ return capable(CAP_SYS_RAWIO) ? 0 : -EPERM; ++} ++ ++static ssize_t microcode_write (struct file *file, const char __user *buf, size_t len, loff_t *ppos) ++{ ++ ssize_t ret; ++ ++ if (len < MC_HEADER_SIZE) { ++ printk(KERN_ERR "microcode: not enough data\n"); ++ return -EINVAL; ++ } ++ ++ mutex_lock(µcode_mutex); ++ ++ ret = do_microcode_update(buf, len); ++ if (!ret) ++ ret = (ssize_t)len; ++ ++ mutex_unlock(µcode_mutex); ++ ++ return ret; ++} ++ ++static const struct file_operations microcode_fops = { ++ .owner = THIS_MODULE, ++ .write = microcode_write, ++ .open = microcode_open, ++}; ++ ++static struct miscdevice microcode_dev = { ++ .minor = MICROCODE_MINOR, ++ .name = "microcode", ++ .fops = µcode_fops, ++}; ++ ++static int __init microcode_dev_init (void) ++{ ++ int error; ++ ++ error = misc_register(µcode_dev); ++ if (error) { ++ printk(KERN_ERR ++ "microcode: can't misc_register on minor=%d\n", ++ MICROCODE_MINOR); ++ return error; ++ } ++ ++ return 0; ++} ++ ++static void microcode_dev_exit (void) ++{ ++ misc_deregister(µcode_dev); ++} ++ ++MODULE_ALIAS_MISCDEV(MICROCODE_MINOR); ++#else ++#define microcode_dev_init() 0 ++#define microcode_dev_exit() do { } while(0) ++#endif ++ ++/* fake device for request_firmware */ ++static struct platform_device *microcode_pdev; ++ ++static int request_microcode(void) ++{ ++ char name[30]; ++ const struct cpuinfo_x86 *c = &boot_cpu_data; ++ const struct firmware *firmware; ++ int error; ++ struct xen_platform_op op; ++ ++ sprintf(name,"intel-ucode/%02x-%02x-%02x", ++ c->x86, c->x86_model, c->x86_mask); ++ error = request_firmware(&firmware, name, µcode_pdev->dev); ++ if (error) { ++ pr_debug("ucode data file %s load failed\n", name); ++ return error; ++ } ++ ++ op.cmd = XENPF_microcode_update; ++ set_xen_guest_handle(op.u.microcode.data, (void *)firmware->data); ++ op.u.microcode.length = firmware->size; ++ error = HYPERVISOR_platform_op(&op); ++ ++ release_firmware(firmware); ++ ++ if (error) ++ pr_debug("ucode load failed\n"); ++ ++ return error; ++} ++ ++static int __init microcode_init (void) ++{ ++ int error; ++ ++ error = microcode_dev_init(); ++ if (error) ++ return error; ++ microcode_pdev = platform_device_register_simple("microcode", -1, ++ NULL, 0); ++ if (IS_ERR(microcode_pdev)) { ++ microcode_dev_exit(); ++ return PTR_ERR(microcode_pdev); ++ } ++ ++ request_microcode(); ++ ++ printk(KERN_INFO ++ "IA-32 Microcode Update Driver: v" MICROCODE_VERSION " \n"); ++ return 0; ++} ++ ++static void __exit microcode_exit (void) ++{ ++ microcode_dev_exit(); ++ platform_device_unregister(microcode_pdev); ++} ++ ++module_init(microcode_init) ++module_exit(microcode_exit) +diff -Naur ubuntu-hardy/arch/x86/kernel/mpparse_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/mpparse_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/mpparse_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/mpparse_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,1161 @@ ++/* ++ * Intel Multiprocessor Specification 1.1 and 1.4 ++ * compliant MP-table parsing routines. ++ * ++ * (c) 1995 Alan Cox, Building #3 ++ * (c) 1998, 1999, 2000 Ingo Molnar ++ * ++ * Fixes ++ * Erich Boleyn : MP v1.4 and additional changes. ++ * Alan Cox : Added EBDA scanning ++ * Ingo Molnar : various cleanups and rewrites ++ * Maciej W. Rozycki: Bits for default MP configurations ++ * Paul Diefenbaugh: Added full ACPI support ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++/* Have we found an MP table */ ++int smp_found_config; ++unsigned int __cpuinitdata maxcpus = NR_CPUS; ++ ++/* ++ * Various Linux-internal data structures created from the ++ * MP-table. ++ */ ++int apic_version [MAX_APICS]; ++int mp_bus_id_to_type [MAX_MP_BUSSES]; ++int mp_bus_id_to_node [MAX_MP_BUSSES]; ++int mp_bus_id_to_local [MAX_MP_BUSSES]; ++int quad_local_to_mp_bus_id [NR_CPUS/4][4]; ++int mp_bus_id_to_pci_bus [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1 }; ++static int mp_current_pci_id; ++ ++/* I/O APIC entries */ ++struct mpc_config_ioapic mp_ioapics[MAX_IO_APICS]; ++ ++/* # of MP IRQ source entries */ ++struct mpc_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; ++ ++/* MP IRQ source entries */ ++int mp_irq_entries; ++ ++int nr_ioapics; ++ ++int pic_mode; ++#ifndef CONFIG_XEN ++unsigned long mp_lapic_addr; ++#endif ++ ++unsigned int def_to_bigsmp = 0; ++ ++/* Processor that is doing the boot up */ ++unsigned int boot_cpu_physical_apicid = -1U; ++/* Internal processor count */ ++unsigned int __cpuinitdata num_processors; ++ ++/* Bitmask of physically existing CPUs */ ++physid_mask_t phys_cpu_present_map; ++ ++u8 bios_cpu_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID }; ++ ++/* ++ * Intel MP BIOS table parsing routines: ++ */ ++ ++ ++/* ++ * Checksum an MP configuration block. ++ */ ++ ++static int __init mpf_checksum(unsigned char *mp, int len) ++{ ++ int sum = 0; ++ ++ while (len--) ++ sum += *mp++; ++ ++ return sum & 0xFF; ++} ++ ++/* ++ * Have to match translation table entries to main table entries by counter ++ * hence the mpc_record variable .... can't see a less disgusting way of ++ * doing this .... ++ */ ++ ++static int mpc_record; ++static struct mpc_config_translation *translation_table[MAX_MPC_ENTRY] __cpuinitdata; ++ ++#ifndef CONFIG_XEN ++static void __cpuinit MP_processor_info (struct mpc_config_processor *m) ++{ ++ int ver, apicid; ++ physid_mask_t phys_cpu; ++ ++ if (!(m->mpc_cpuflag & CPU_ENABLED)) ++ return; ++ ++ apicid = mpc_apic_id(m, translation_table[mpc_record]); ++ ++ if (m->mpc_featureflag&(1<<0)) ++ Dprintk(" Floating point unit present.\n"); ++ if (m->mpc_featureflag&(1<<7)) ++ Dprintk(" Machine Exception supported.\n"); ++ if (m->mpc_featureflag&(1<<8)) ++ Dprintk(" 64 bit compare & exchange supported.\n"); ++ if (m->mpc_featureflag&(1<<9)) ++ Dprintk(" Internal APIC present.\n"); ++ if (m->mpc_featureflag&(1<<11)) ++ Dprintk(" SEP present.\n"); ++ if (m->mpc_featureflag&(1<<12)) ++ Dprintk(" MTRR present.\n"); ++ if (m->mpc_featureflag&(1<<13)) ++ Dprintk(" PGE present.\n"); ++ if (m->mpc_featureflag&(1<<14)) ++ Dprintk(" MCA present.\n"); ++ if (m->mpc_featureflag&(1<<15)) ++ Dprintk(" CMOV present.\n"); ++ if (m->mpc_featureflag&(1<<16)) ++ Dprintk(" PAT present.\n"); ++ if (m->mpc_featureflag&(1<<17)) ++ Dprintk(" PSE present.\n"); ++ if (m->mpc_featureflag&(1<<18)) ++ Dprintk(" PSN present.\n"); ++ if (m->mpc_featureflag&(1<<19)) ++ Dprintk(" Cache Line Flush Instruction present.\n"); ++ /* 20 Reserved */ ++ if (m->mpc_featureflag&(1<<21)) ++ Dprintk(" Debug Trace and EMON Store present.\n"); ++ if (m->mpc_featureflag&(1<<22)) ++ Dprintk(" ACPI Thermal Throttle Registers present.\n"); ++ if (m->mpc_featureflag&(1<<23)) ++ Dprintk(" MMX present.\n"); ++ if (m->mpc_featureflag&(1<<24)) ++ Dprintk(" FXSR present.\n"); ++ if (m->mpc_featureflag&(1<<25)) ++ Dprintk(" XMM present.\n"); ++ if (m->mpc_featureflag&(1<<26)) ++ Dprintk(" Willamette New Instructions present.\n"); ++ if (m->mpc_featureflag&(1<<27)) ++ Dprintk(" Self Snoop present.\n"); ++ if (m->mpc_featureflag&(1<<28)) ++ Dprintk(" HT present.\n"); ++ if (m->mpc_featureflag&(1<<29)) ++ Dprintk(" Thermal Monitor present.\n"); ++ /* 30, 31 Reserved */ ++ ++ ++ if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) { ++ Dprintk(" Bootup CPU\n"); ++ boot_cpu_physical_apicid = m->mpc_apicid; ++ } ++ ++ ver = m->mpc_apicver; ++ ++ /* ++ * Validate version ++ */ ++ if (ver == 0x0) { ++ printk(KERN_WARNING "BIOS bug, APIC version is 0 for CPU#%d! " ++ "fixing up to 0x10. (tell your hw vendor)\n", ++ m->mpc_apicid); ++ ver = 0x10; ++ } ++ apic_version[m->mpc_apicid] = ver; ++ ++ phys_cpu = apicid_to_cpu_present(apicid); ++ physids_or(phys_cpu_present_map, phys_cpu_present_map, phys_cpu); ++ ++ if (num_processors >= NR_CPUS) { ++ printk(KERN_WARNING "WARNING: NR_CPUS limit of %i reached." ++ " Processor ignored.\n", NR_CPUS); ++ return; ++ } ++ ++ if (num_processors >= maxcpus) { ++ printk(KERN_WARNING "WARNING: maxcpus limit of %i reached." ++ " Processor ignored.\n", maxcpus); ++ return; ++ } ++ ++ cpu_set(num_processors, cpu_possible_map); ++ num_processors++; ++ ++ /* ++ * Would be preferable to switch to bigsmp when CONFIG_HOTPLUG_CPU=y ++ * but we need to work other dependencies like SMP_SUSPEND etc ++ * before this can be done without some confusion. ++ * if (CPU_HOTPLUG_ENABLED || num_processors > 8) ++ * - Ashok Raj ++ */ ++ if (num_processors > 8) { ++ switch (boot_cpu_data.x86_vendor) { ++ case X86_VENDOR_INTEL: ++ if (!APIC_XAPIC(ver)) { ++ def_to_bigsmp = 0; ++ break; ++ } ++ /* If P4 and above fall through */ ++ case X86_VENDOR_AMD: ++ def_to_bigsmp = 1; ++ } ++ } ++ bios_cpu_apicid[num_processors - 1] = m->mpc_apicid; ++} ++#else ++static void __cpuinit MP_processor_info (struct mpc_config_processor *m) ++{ ++ num_processors++; ++} ++#endif /* CONFIG_XEN */ ++ ++static void __init MP_bus_info (struct mpc_config_bus *m) ++{ ++ char str[7]; ++ ++ memcpy(str, m->mpc_bustype, 6); ++ str[6] = 0; ++ ++ mpc_oem_bus_info(m, str, translation_table[mpc_record]); ++ ++#if MAX_MP_BUSSES < 256 ++ if (m->mpc_busid >= MAX_MP_BUSSES) { ++ printk(KERN_WARNING "MP table busid value (%d) for bustype %s " ++ " is too large, max. supported is %d\n", ++ m->mpc_busid, str, MAX_MP_BUSSES - 1); ++ return; ++ } ++#endif ++ ++ if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA)-1) == 0) { ++ mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA; ++ } else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA)-1) == 0) { ++ mp_bus_id_to_type[m->mpc_busid] = MP_BUS_EISA; ++ } else if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI)-1) == 0) { ++ mpc_oem_pci_bus(m, translation_table[mpc_record]); ++ mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI; ++ mp_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id; ++ mp_current_pci_id++; ++ } else if (strncmp(str, BUSTYPE_MCA, sizeof(BUSTYPE_MCA)-1) == 0) { ++ mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA; ++ } else { ++ printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str); ++ } ++} ++ ++static void __init MP_ioapic_info (struct mpc_config_ioapic *m) ++{ ++ if (!(m->mpc_flags & MPC_APIC_USABLE)) ++ return; ++ ++ printk(KERN_INFO "I/O APIC #%d Version %d at 0x%lX.\n", ++ m->mpc_apicid, m->mpc_apicver, m->mpc_apicaddr); ++ if (nr_ioapics >= MAX_IO_APICS) { ++ printk(KERN_CRIT "Max # of I/O APICs (%d) exceeded (found %d).\n", ++ MAX_IO_APICS, nr_ioapics); ++ panic("Recompile kernel with bigger MAX_IO_APICS!.\n"); ++ } ++ if (!m->mpc_apicaddr) { ++ printk(KERN_ERR "WARNING: bogus zero I/O APIC address" ++ " found in MP table, skipping!\n"); ++ return; ++ } ++ mp_ioapics[nr_ioapics] = *m; ++ nr_ioapics++; ++} ++ ++static void __init MP_intsrc_info (struct mpc_config_intsrc *m) ++{ ++ mp_irqs [mp_irq_entries] = *m; ++ Dprintk("Int: type %d, pol %d, trig %d, bus %d," ++ " IRQ %02x, APIC ID %x, APIC INT %02x\n", ++ m->mpc_irqtype, m->mpc_irqflag & 3, ++ (m->mpc_irqflag >> 2) & 3, m->mpc_srcbus, ++ m->mpc_srcbusirq, m->mpc_dstapic, m->mpc_dstirq); ++ if (++mp_irq_entries == MAX_IRQ_SOURCES) ++ panic("Max # of irq sources exceeded!!\n"); ++} ++ ++static void __init MP_lintsrc_info (struct mpc_config_lintsrc *m) ++{ ++ Dprintk("Lint: type %d, pol %d, trig %d, bus %d," ++ " IRQ %02x, APIC ID %x, APIC LINT %02x\n", ++ m->mpc_irqtype, m->mpc_irqflag & 3, ++ (m->mpc_irqflag >> 2) &3, m->mpc_srcbusid, ++ m->mpc_srcbusirq, m->mpc_destapic, m->mpc_destapiclint); ++} ++ ++#ifdef CONFIG_X86_NUMAQ ++static void __init MP_translation_info (struct mpc_config_translation *m) ++{ ++ printk(KERN_INFO "Translation: record %d, type %d, quad %d, global %d, local %d\n", mpc_record, m->trans_type, m->trans_quad, m->trans_global, m->trans_local); ++ ++ if (mpc_record >= MAX_MPC_ENTRY) ++ printk(KERN_ERR "MAX_MPC_ENTRY exceeded!\n"); ++ else ++ translation_table[mpc_record] = m; /* stash this for later */ ++ if (m->trans_quad < MAX_NUMNODES && !node_online(m->trans_quad)) ++ node_set_online(m->trans_quad); ++} ++ ++/* ++ * Read/parse the MPC oem tables ++ */ ++ ++static void __init smp_read_mpc_oem(struct mp_config_oemtable *oemtable, \ ++ unsigned short oemsize) ++{ ++ int count = sizeof (*oemtable); /* the header size */ ++ unsigned char *oemptr = ((unsigned char *)oemtable)+count; ++ ++ mpc_record = 0; ++ printk(KERN_INFO "Found an OEM MPC table at %8p - parsing it ... \n", oemtable); ++ if (memcmp(oemtable->oem_signature,MPC_OEM_SIGNATURE,4)) ++ { ++ printk(KERN_WARNING "SMP mpc oemtable: bad signature [%c%c%c%c]!\n", ++ oemtable->oem_signature[0], ++ oemtable->oem_signature[1], ++ oemtable->oem_signature[2], ++ oemtable->oem_signature[3]); ++ return; ++ } ++ if (mpf_checksum((unsigned char *)oemtable,oemtable->oem_length)) ++ { ++ printk(KERN_WARNING "SMP oem mptable: checksum error!\n"); ++ return; ++ } ++ while (count < oemtable->oem_length) { ++ switch (*oemptr) { ++ case MP_TRANSLATION: ++ { ++ struct mpc_config_translation *m= ++ (struct mpc_config_translation *)oemptr; ++ MP_translation_info(m); ++ oemptr += sizeof(*m); ++ count += sizeof(*m); ++ ++mpc_record; ++ break; ++ } ++ default: ++ { ++ printk(KERN_WARNING "Unrecognised OEM table entry type! - %d\n", (int) *oemptr); ++ return; ++ } ++ } ++ } ++} ++ ++static inline void mps_oem_check(struct mp_config_table *mpc, char *oem, ++ char *productid) ++{ ++ if (strncmp(oem, "IBM NUMA", 8)) ++ printk("Warning! May not be a NUMA-Q system!\n"); ++ if (mpc->mpc_oemptr) ++ smp_read_mpc_oem((struct mp_config_oemtable *) mpc->mpc_oemptr, ++ mpc->mpc_oemsize); ++} ++#endif /* CONFIG_X86_NUMAQ */ ++ ++/* ++ * Read/parse the MPC ++ */ ++ ++static int __init smp_read_mpc(struct mp_config_table *mpc) ++{ ++ char str[16]; ++ char oem[10]; ++ int count=sizeof(*mpc); ++ unsigned char *mpt=((unsigned char *)mpc)+count; ++ ++ if (memcmp(mpc->mpc_signature,MPC_SIGNATURE,4)) { ++ printk(KERN_ERR "SMP mptable: bad signature [0x%x]!\n", ++ *(u32 *)mpc->mpc_signature); ++ return 0; ++ } ++ if (mpf_checksum((unsigned char *)mpc,mpc->mpc_length)) { ++ printk(KERN_ERR "SMP mptable: checksum error!\n"); ++ return 0; ++ } ++ if (mpc->mpc_spec!=0x01 && mpc->mpc_spec!=0x04) { ++ printk(KERN_ERR "SMP mptable: bad table version (%d)!!\n", ++ mpc->mpc_spec); ++ return 0; ++ } ++ if (!mpc->mpc_lapic) { ++ printk(KERN_ERR "SMP mptable: null local APIC address!\n"); ++ return 0; ++ } ++ memcpy(oem,mpc->mpc_oem,8); ++ oem[8]=0; ++ printk(KERN_INFO "OEM ID: %s ",oem); ++ ++ memcpy(str,mpc->mpc_productid,12); ++ str[12]=0; ++ printk("Product ID: %s ",str); ++ ++ mps_oem_check(mpc, oem, str); ++ ++#ifndef CONFIG_XEN ++ printk("APIC at: 0x%lX\n",mpc->mpc_lapic); ++ ++ /* ++ * Save the local APIC address (it might be non-default) -- but only ++ * if we're not using ACPI. ++ */ ++ if (!acpi_lapic) ++ mp_lapic_addr = mpc->mpc_lapic; ++#endif ++ ++ /* ++ * Now process the configuration blocks. ++ */ ++ mpc_record = 0; ++ while (count < mpc->mpc_length) { ++ switch(*mpt) { ++ case MP_PROCESSOR: ++ { ++ struct mpc_config_processor *m= ++ (struct mpc_config_processor *)mpt; ++ /* ACPI may have already provided this data */ ++ if (!acpi_lapic) ++ MP_processor_info(m); ++ mpt += sizeof(*m); ++ count += sizeof(*m); ++ break; ++ } ++ case MP_BUS: ++ { ++ struct mpc_config_bus *m= ++ (struct mpc_config_bus *)mpt; ++ MP_bus_info(m); ++ mpt += sizeof(*m); ++ count += sizeof(*m); ++ break; ++ } ++ case MP_IOAPIC: ++ { ++ struct mpc_config_ioapic *m= ++ (struct mpc_config_ioapic *)mpt; ++ MP_ioapic_info(m); ++ mpt+=sizeof(*m); ++ count+=sizeof(*m); ++ break; ++ } ++ case MP_INTSRC: ++ { ++ struct mpc_config_intsrc *m= ++ (struct mpc_config_intsrc *)mpt; ++ ++ MP_intsrc_info(m); ++ mpt+=sizeof(*m); ++ count+=sizeof(*m); ++ break; ++ } ++ case MP_LINTSRC: ++ { ++ struct mpc_config_lintsrc *m= ++ (struct mpc_config_lintsrc *)mpt; ++ MP_lintsrc_info(m); ++ mpt+=sizeof(*m); ++ count+=sizeof(*m); ++ break; ++ } ++ default: ++ { ++ count = mpc->mpc_length; ++ break; ++ } ++ } ++ ++mpc_record; ++ } ++ setup_apic_routing(); ++ if (!num_processors) ++ printk(KERN_ERR "SMP mptable: no processors registered!\n"); ++ return num_processors; ++} ++ ++static int __init ELCR_trigger(unsigned int irq) ++{ ++ unsigned int port; ++ ++ port = 0x4d0 + (irq >> 3); ++ return (inb(port) >> (irq & 7)) & 1; ++} ++ ++static void __init construct_default_ioirq_mptable(int mpc_default_type) ++{ ++ struct mpc_config_intsrc intsrc; ++ int i; ++ int ELCR_fallback = 0; ++ ++ intsrc.mpc_type = MP_INTSRC; ++ intsrc.mpc_irqflag = 0; /* conforming */ ++ intsrc.mpc_srcbus = 0; ++ intsrc.mpc_dstapic = mp_ioapics[0].mpc_apicid; ++ ++ intsrc.mpc_irqtype = mp_INT; ++ ++ /* ++ * If true, we have an ISA/PCI system with no IRQ entries ++ * in the MP table. To prevent the PCI interrupts from being set up ++ * incorrectly, we try to use the ELCR. The sanity check to see if ++ * there is good ELCR data is very simple - IRQ0, 1, 2 and 13 can ++ * never be level sensitive, so we simply see if the ELCR agrees. ++ * If it does, we assume it's valid. ++ */ ++ if (mpc_default_type == 5) { ++ printk(KERN_INFO "ISA/PCI bus type with no IRQ information... falling back to ELCR\n"); ++ ++ if (ELCR_trigger(0) || ELCR_trigger(1) || ELCR_trigger(2) || ELCR_trigger(13)) ++ printk(KERN_WARNING "ELCR contains invalid data... not using ELCR\n"); ++ else { ++ printk(KERN_INFO "Using ELCR to identify PCI interrupts\n"); ++ ELCR_fallback = 1; ++ } ++ } ++ ++ for (i = 0; i < 16; i++) { ++ switch (mpc_default_type) { ++ case 2: ++ if (i == 0 || i == 13) ++ continue; /* IRQ0 & IRQ13 not connected */ ++ /* fall through */ ++ default: ++ if (i == 2) ++ continue; /* IRQ2 is never connected */ ++ } ++ ++ if (ELCR_fallback) { ++ /* ++ * If the ELCR indicates a level-sensitive interrupt, we ++ * copy that information over to the MP table in the ++ * irqflag field (level sensitive, active high polarity). ++ */ ++ if (ELCR_trigger(i)) ++ intsrc.mpc_irqflag = 13; ++ else ++ intsrc.mpc_irqflag = 0; ++ } ++ ++ intsrc.mpc_srcbusirq = i; ++ intsrc.mpc_dstirq = i ? i : 2; /* IRQ0 to INTIN2 */ ++ MP_intsrc_info(&intsrc); ++ } ++ ++ intsrc.mpc_irqtype = mp_ExtINT; ++ intsrc.mpc_srcbusirq = 0; ++ intsrc.mpc_dstirq = 0; /* 8259A to INTIN0 */ ++ MP_intsrc_info(&intsrc); ++} ++ ++static inline void __init construct_default_ISA_mptable(int mpc_default_type) ++{ ++ struct mpc_config_processor processor; ++ struct mpc_config_bus bus; ++ struct mpc_config_ioapic ioapic; ++ struct mpc_config_lintsrc lintsrc; ++ int linttypes[2] = { mp_ExtINT, mp_NMI }; ++ int i; ++ ++#ifndef CONFIG_XEN ++ /* ++ * local APIC has default address ++ */ ++ mp_lapic_addr = APIC_DEFAULT_PHYS_BASE; ++#endif ++ ++ /* ++ * 2 CPUs, numbered 0 & 1. ++ */ ++ processor.mpc_type = MP_PROCESSOR; ++ /* Either an integrated APIC or a discrete 82489DX. */ ++ processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01; ++ processor.mpc_cpuflag = CPU_ENABLED; ++ processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) | ++ (boot_cpu_data.x86_model << 4) | ++ boot_cpu_data.x86_mask; ++ processor.mpc_featureflag = boot_cpu_data.x86_capability[0]; ++ processor.mpc_reserved[0] = 0; ++ processor.mpc_reserved[1] = 0; ++ for (i = 0; i < 2; i++) { ++ processor.mpc_apicid = i; ++ MP_processor_info(&processor); ++ } ++ ++ bus.mpc_type = MP_BUS; ++ bus.mpc_busid = 0; ++ switch (mpc_default_type) { ++ default: ++ printk("???\n"); ++ printk(KERN_ERR "Unknown standard configuration %d\n", ++ mpc_default_type); ++ /* fall through */ ++ case 1: ++ case 5: ++ memcpy(bus.mpc_bustype, "ISA ", 6); ++ break; ++ case 2: ++ case 6: ++ case 3: ++ memcpy(bus.mpc_bustype, "EISA ", 6); ++ break; ++ case 4: ++ case 7: ++ memcpy(bus.mpc_bustype, "MCA ", 6); ++ } ++ MP_bus_info(&bus); ++ if (mpc_default_type > 4) { ++ bus.mpc_busid = 1; ++ memcpy(bus.mpc_bustype, "PCI ", 6); ++ MP_bus_info(&bus); ++ } ++ ++ ioapic.mpc_type = MP_IOAPIC; ++ ioapic.mpc_apicid = 2; ++ ioapic.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01; ++ ioapic.mpc_flags = MPC_APIC_USABLE; ++ ioapic.mpc_apicaddr = 0xFEC00000; ++ MP_ioapic_info(&ioapic); ++ ++ /* ++ * We set up most of the low 16 IO-APIC pins according to MPS rules. ++ */ ++ construct_default_ioirq_mptable(mpc_default_type); ++ ++ lintsrc.mpc_type = MP_LINTSRC; ++ lintsrc.mpc_irqflag = 0; /* conforming */ ++ lintsrc.mpc_srcbusid = 0; ++ lintsrc.mpc_srcbusirq = 0; ++ lintsrc.mpc_destapic = MP_APIC_ALL; ++ for (i = 0; i < 2; i++) { ++ lintsrc.mpc_irqtype = linttypes[i]; ++ lintsrc.mpc_destapiclint = i; ++ MP_lintsrc_info(&lintsrc); ++ } ++} ++ ++static struct intel_mp_floating *mpf_found; ++ ++/* ++ * Scan the memory blocks for an SMP configuration block. ++ */ ++void __init get_smp_config (void) ++{ ++ struct intel_mp_floating *mpf = mpf_found; ++ ++ /* ++ * ACPI supports both logical (e.g. Hyper-Threading) and physical ++ * processors, where MPS only supports physical. ++ */ ++ if (acpi_lapic && acpi_ioapic) { ++ printk(KERN_INFO "Using ACPI (MADT) for SMP configuration information\n"); ++ return; ++ } ++ else if (acpi_lapic) ++ printk(KERN_INFO "Using ACPI for processor (LAPIC) configuration information\n"); ++ ++ printk(KERN_INFO "Intel MultiProcessor Specification v1.%d\n", mpf->mpf_specification); ++ if (mpf->mpf_feature2 & (1<<7)) { ++ printk(KERN_INFO " IMCR and PIC compatibility mode.\n"); ++ pic_mode = 1; ++ } else { ++ printk(KERN_INFO " Virtual Wire compatibility mode.\n"); ++ pic_mode = 0; ++ } ++ ++ /* ++ * Now see if we need to read further. ++ */ ++ if (mpf->mpf_feature1 != 0) { ++ ++ printk(KERN_INFO "Default MP configuration #%d\n", mpf->mpf_feature1); ++ construct_default_ISA_mptable(mpf->mpf_feature1); ++ ++ } else if (mpf->mpf_physptr) { ++ ++ /* ++ * Read the physical hardware table. Anything here will ++ * override the defaults. ++ */ ++ if (!smp_read_mpc(isa_bus_to_virt(mpf->mpf_physptr))) { ++ smp_found_config = 0; ++ printk(KERN_ERR "BIOS bug, MP table errors detected!...\n"); ++ printk(KERN_ERR "... disabling SMP support. (tell your hw vendor)\n"); ++ return; ++ } ++ /* ++ * If there are no explicit MP IRQ entries, then we are ++ * broken. We set up most of the low 16 IO-APIC pins to ++ * ISA defaults and hope it will work. ++ */ ++ if (!mp_irq_entries) { ++ struct mpc_config_bus bus; ++ ++ printk(KERN_ERR "BIOS bug, no explicit IRQ entries, using default mptable. (tell your hw vendor)\n"); ++ ++ bus.mpc_type = MP_BUS; ++ bus.mpc_busid = 0; ++ memcpy(bus.mpc_bustype, "ISA ", 6); ++ MP_bus_info(&bus); ++ ++ construct_default_ioirq_mptable(0); ++ } ++ ++ } else ++ BUG(); ++ ++ printk(KERN_INFO "Processors: %d\n", num_processors); ++ /* ++ * Only use the first configuration found. ++ */ ++} ++ ++static int __init smp_scan_config (unsigned long base, unsigned long length) ++{ ++ unsigned long *bp = isa_bus_to_virt(base); ++ struct intel_mp_floating *mpf; ++ ++ Dprintk("Scan SMP from %p for %ld bytes.\n", bp,length); ++ if (sizeof(*mpf) != 16) ++ printk("Error: MPF size\n"); ++ ++ while (length > 0) { ++ mpf = (struct intel_mp_floating *)bp; ++ if ((*bp == SMP_MAGIC_IDENT) && ++ (mpf->mpf_length == 1) && ++ !mpf_checksum((unsigned char *)bp, 16) && ++ ((mpf->mpf_specification == 1) ++ || (mpf->mpf_specification == 4)) ) { ++ ++ smp_found_config = 1; ++#ifndef CONFIG_XEN ++ printk(KERN_INFO "found SMP MP-table at %08lx\n", ++ virt_to_phys(mpf)); ++ reserve_bootmem(virt_to_phys(mpf), PAGE_SIZE); ++ if (mpf->mpf_physptr) { ++ /* ++ * We cannot access to MPC table to compute ++ * table size yet, as only few megabytes from ++ * the bottom is mapped now. ++ * PC-9800's MPC table places on the very last ++ * of physical memory; so that simply reserving ++ * PAGE_SIZE from mpg->mpf_physptr yields BUG() ++ * in reserve_bootmem. ++ */ ++ unsigned long size = PAGE_SIZE; ++ unsigned long end = max_low_pfn * PAGE_SIZE; ++ if (mpf->mpf_physptr + size > end) ++ size = end - mpf->mpf_physptr; ++ reserve_bootmem(mpf->mpf_physptr, size); ++ } ++#else ++ printk(KERN_INFO "found SMP MP-table at %08lx\n", ++ ((unsigned long)bp - (unsigned long)isa_bus_to_virt(base)) + base); ++#endif ++ ++ mpf_found = mpf; ++ return 1; ++ } ++ bp += 4; ++ length -= 16; ++ } ++ return 0; ++} ++ ++void __init find_smp_config (void) ++{ ++#ifndef CONFIG_XEN ++ unsigned int address; ++#endif ++ ++ /* ++ * FIXME: Linux assumes you have 640K of base ram.. ++ * this continues the error... ++ * ++ * 1) Scan the bottom 1K for a signature ++ * 2) Scan the top 1K of base RAM ++ * 3) Scan the 64K of bios ++ */ ++ if (smp_scan_config(0x0,0x400) || ++ smp_scan_config(639*0x400,0x400) || ++ smp_scan_config(0xF0000,0x10000)) ++ return; ++ /* ++ * If it is an SMP machine we should know now, unless the ++ * configuration is in an EISA/MCA bus machine with an ++ * extended bios data area. ++ * ++ * there is a real-mode segmented pointer pointing to the ++ * 4K EBDA area at 0x40E, calculate and scan it here. ++ * ++ * NOTE! There are Linux loaders that will corrupt the EBDA ++ * area, and as such this kind of SMP config may be less ++ * trustworthy, simply because the SMP table may have been ++ * stomped on during early boot. These loaders are buggy and ++ * should be fixed. ++ * ++ * MP1.4 SPEC states to only scan first 1K of 4K EBDA. ++ */ ++ ++#ifndef CONFIG_XEN ++ address = get_bios_ebda(); ++ if (address) ++ smp_scan_config(address, 0x400); ++#endif ++} ++ ++int es7000_plat; ++ ++/* -------------------------------------------------------------------------- ++ ACPI-based MP Configuration ++ -------------------------------------------------------------------------- */ ++ ++#ifdef CONFIG_ACPI ++ ++#ifndef CONFIG_XEN ++void __init mp_register_lapic_address(u64 address) ++{ ++ mp_lapic_addr = (unsigned long) address; ++ ++ set_fixmap_nocache(FIX_APIC_BASE, mp_lapic_addr); ++ ++ if (boot_cpu_physical_apicid == -1U) ++ boot_cpu_physical_apicid = GET_APIC_ID(apic_read(APIC_ID)); ++ ++ Dprintk("Boot CPU = %d\n", boot_cpu_physical_apicid); ++} ++#endif ++ ++void __cpuinit mp_register_lapic (u8 id, u8 enabled) ++{ ++ struct mpc_config_processor processor; ++ int boot_cpu = 0; ++ ++ if (MAX_APICS - id <= 0) { ++ printk(KERN_WARNING "Processor #%d invalid (max %d)\n", ++ id, MAX_APICS); ++ return; ++ } ++ ++ if (id == boot_cpu_physical_apicid) ++ boot_cpu = 1; ++ ++#ifndef CONFIG_XEN ++ processor.mpc_type = MP_PROCESSOR; ++ processor.mpc_apicid = id; ++ processor.mpc_apicver = GET_APIC_VERSION(apic_read(APIC_LVR)); ++ processor.mpc_cpuflag = (enabled ? CPU_ENABLED : 0); ++ processor.mpc_cpuflag |= (boot_cpu ? CPU_BOOTPROCESSOR : 0); ++ processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) | ++ (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask; ++ processor.mpc_featureflag = boot_cpu_data.x86_capability[0]; ++ processor.mpc_reserved[0] = 0; ++ processor.mpc_reserved[1] = 0; ++#endif ++ ++ MP_processor_info(&processor); ++} ++ ++#ifdef CONFIG_X86_IO_APIC ++ ++#define MP_ISA_BUS 0 ++#define MP_MAX_IOAPIC_PIN 127 ++ ++static struct mp_ioapic_routing { ++ int apic_id; ++ int gsi_base; ++ int gsi_end; ++ u32 pin_programmed[4]; ++} mp_ioapic_routing[MAX_IO_APICS]; ++ ++static int mp_find_ioapic (int gsi) ++{ ++ int i = 0; ++ ++ /* Find the IOAPIC that manages this GSI. */ ++ for (i = 0; i < nr_ioapics; i++) { ++ if ((gsi >= mp_ioapic_routing[i].gsi_base) ++ && (gsi <= mp_ioapic_routing[i].gsi_end)) ++ return i; ++ } ++ ++ printk(KERN_ERR "ERROR: Unable to locate IOAPIC for GSI %d\n", gsi); ++ ++ return -1; ++} ++ ++void __init mp_register_ioapic(u8 id, u32 address, u32 gsi_base) ++{ ++ int idx = 0; ++ int tmpid; ++ ++ if (nr_ioapics >= MAX_IO_APICS) { ++ printk(KERN_ERR "ERROR: Max # of I/O APICs (%d) exceeded " ++ "(found %d)\n", MAX_IO_APICS, nr_ioapics); ++ panic("Recompile kernel with bigger MAX_IO_APICS!\n"); ++ } ++ if (!address) { ++ printk(KERN_ERR "WARNING: Bogus (zero) I/O APIC address" ++ " found in MADT table, skipping!\n"); ++ return; ++ } ++ ++ idx = nr_ioapics++; ++ ++ mp_ioapics[idx].mpc_type = MP_IOAPIC; ++ mp_ioapics[idx].mpc_flags = MPC_APIC_USABLE; ++ mp_ioapics[idx].mpc_apicaddr = address; ++ ++#ifndef CONFIG_XEN ++ set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); ++ if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) ++ && !APIC_XAPIC(apic_version[boot_cpu_physical_apicid])) ++ tmpid = io_apic_get_unique_id(idx, id); ++ else ++#endif ++ tmpid = id; ++ if (tmpid == -1) { ++ nr_ioapics--; ++ return; ++ } ++ mp_ioapics[idx].mpc_apicid = tmpid; ++ mp_ioapics[idx].mpc_apicver = io_apic_get_version(idx); ++ ++ /* ++ * Build basic GSI lookup table to facilitate gsi->io_apic lookups ++ * and to prevent reprogramming of IOAPIC pins (PCI GSIs). ++ */ ++ mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].mpc_apicid; ++ mp_ioapic_routing[idx].gsi_base = gsi_base; ++ mp_ioapic_routing[idx].gsi_end = gsi_base + ++ io_apic_get_redir_entries(idx); ++ ++ printk("IOAPIC[%d]: apic_id %d, version %d, address 0x%lx, " ++ "GSI %d-%d\n", idx, mp_ioapics[idx].mpc_apicid, ++ mp_ioapics[idx].mpc_apicver, mp_ioapics[idx].mpc_apicaddr, ++ mp_ioapic_routing[idx].gsi_base, ++ mp_ioapic_routing[idx].gsi_end); ++} ++ ++void __init ++mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi) ++{ ++ struct mpc_config_intsrc intsrc; ++ int ioapic = -1; ++ int pin = -1; ++ ++ /* ++ * Convert 'gsi' to 'ioapic.pin'. ++ */ ++ ioapic = mp_find_ioapic(gsi); ++ if (ioapic < 0) ++ return; ++ pin = gsi - mp_ioapic_routing[ioapic].gsi_base; ++ ++ /* ++ * TBD: This check is for faulty timer entries, where the override ++ * erroneously sets the trigger to level, resulting in a HUGE ++ * increase of timer interrupts! ++ */ ++ if ((bus_irq == 0) && (trigger == 3)) ++ trigger = 1; ++ ++ intsrc.mpc_type = MP_INTSRC; ++ intsrc.mpc_irqtype = mp_INT; ++ intsrc.mpc_irqflag = (trigger << 2) | polarity; ++ intsrc.mpc_srcbus = MP_ISA_BUS; ++ intsrc.mpc_srcbusirq = bus_irq; /* IRQ */ ++ intsrc.mpc_dstapic = mp_ioapics[ioapic].mpc_apicid; /* APIC ID */ ++ intsrc.mpc_dstirq = pin; /* INTIN# */ ++ ++ Dprintk("Int: type %d, pol %d, trig %d, bus %d, irq %d, %d-%d\n", ++ intsrc.mpc_irqtype, intsrc.mpc_irqflag & 3, ++ (intsrc.mpc_irqflag >> 2) & 3, intsrc.mpc_srcbus, ++ intsrc.mpc_srcbusirq, intsrc.mpc_dstapic, intsrc.mpc_dstirq); ++ ++ mp_irqs[mp_irq_entries] = intsrc; ++ if (++mp_irq_entries == MAX_IRQ_SOURCES) ++ panic("Max # of irq sources exceeded!\n"); ++} ++ ++void __init mp_config_acpi_legacy_irqs (void) ++{ ++ struct mpc_config_intsrc intsrc; ++ int i = 0; ++ int ioapic = -1; ++ ++ /* ++ * Fabricate the legacy ISA bus (bus #31). ++ */ ++ mp_bus_id_to_type[MP_ISA_BUS] = MP_BUS_ISA; ++ Dprintk("Bus #%d is ISA\n", MP_ISA_BUS); ++ ++ /* ++ * Older generations of ES7000 have no legacy identity mappings ++ */ ++ if (es7000_plat == 1) ++ return; ++ ++ /* ++ * Locate the IOAPIC that manages the ISA IRQs (0-15). ++ */ ++ ioapic = mp_find_ioapic(0); ++ if (ioapic < 0) ++ return; ++ ++ intsrc.mpc_type = MP_INTSRC; ++ intsrc.mpc_irqflag = 0; /* Conforming */ ++ intsrc.mpc_srcbus = MP_ISA_BUS; ++ intsrc.mpc_dstapic = mp_ioapics[ioapic].mpc_apicid; ++ ++ /* ++ * Use the default configuration for the IRQs 0-15. Unless ++ * overridden by (MADT) interrupt source override entries. ++ */ ++ for (i = 0; i < 16; i++) { ++ int idx; ++ ++ for (idx = 0; idx < mp_irq_entries; idx++) { ++ struct mpc_config_intsrc *irq = mp_irqs + idx; ++ ++ /* Do we already have a mapping for this ISA IRQ? */ ++ if (irq->mpc_srcbus == MP_ISA_BUS && irq->mpc_srcbusirq == i) ++ break; ++ ++ /* Do we already have a mapping for this IOAPIC pin */ ++ if ((irq->mpc_dstapic == intsrc.mpc_dstapic) && ++ (irq->mpc_dstirq == i)) ++ break; ++ } ++ ++ if (idx != mp_irq_entries) { ++ printk(KERN_DEBUG "ACPI: IRQ%d used by override.\n", i); ++ continue; /* IRQ already used */ ++ } ++ ++ intsrc.mpc_irqtype = mp_INT; ++ intsrc.mpc_srcbusirq = i; /* Identity mapped */ ++ intsrc.mpc_dstirq = i; ++ ++ Dprintk("Int: type %d, pol %d, trig %d, bus %d, irq %d, " ++ "%d-%d\n", intsrc.mpc_irqtype, intsrc.mpc_irqflag & 3, ++ (intsrc.mpc_irqflag >> 2) & 3, intsrc.mpc_srcbus, ++ intsrc.mpc_srcbusirq, intsrc.mpc_dstapic, ++ intsrc.mpc_dstirq); ++ ++ mp_irqs[mp_irq_entries] = intsrc; ++ if (++mp_irq_entries == MAX_IRQ_SOURCES) ++ panic("Max # of irq sources exceeded!\n"); ++ } ++} ++ ++#define MAX_GSI_NUM 4096 ++ ++int mp_register_gsi(u32 gsi, int triggering, int polarity) ++{ ++ int ioapic = -1; ++ int ioapic_pin = 0; ++ int idx, bit = 0; ++ static int pci_irq = 16; ++ /* ++ * Mapping between Global System Interrups, which ++ * represent all possible interrupts, and IRQs ++ * assigned to actual devices. ++ */ ++ static int gsi_to_irq[MAX_GSI_NUM]; ++ ++ /* Don't set up the ACPI SCI because it's already set up */ ++ if (acpi_gbl_FADT.sci_interrupt == gsi) ++ return gsi; ++ ++ ioapic = mp_find_ioapic(gsi); ++ if (ioapic < 0) { ++ printk(KERN_WARNING "No IOAPIC for GSI %u\n", gsi); ++ return gsi; ++ } ++ ++ ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_base; ++ ++#ifndef CONFIG_XEN ++ if (ioapic_renumber_irq) ++ gsi = ioapic_renumber_irq(ioapic, gsi); ++#endif ++ ++ /* ++ * Avoid pin reprogramming. PRTs typically include entries ++ * with redundant pin->gsi mappings (but unique PCI devices); ++ * we only program the IOAPIC on the first. ++ */ ++ bit = ioapic_pin % 32; ++ idx = (ioapic_pin < 32) ? 0 : (ioapic_pin / 32); ++ if (idx > 3) { ++ printk(KERN_ERR "Invalid reference to IOAPIC pin " ++ "%d-%d\n", mp_ioapic_routing[ioapic].apic_id, ++ ioapic_pin); ++ return gsi; ++ } ++ if ((1< 15), but ++ * avoid a problem where the 8254 timer (IRQ0) is setup ++ * via an override (so it's not on pin 0 of the ioapic), ++ * and at the same time, the pin 0 interrupt is a PCI ++ * type. The gsi > 15 test could cause these two pins ++ * to be shared as IRQ0, and they are not shareable. ++ * So test for this condition, and if necessary, avoid ++ * the pin collision. ++ */ ++ if (gsi > 15 || (gsi == 0 && !timer_uses_ioapic_pin_0)) ++ gsi = pci_irq++; ++ /* ++ * Don't assign IRQ used by ACPI SCI ++ */ ++ if (gsi == acpi_gbl_FADT.sci_interrupt) ++ gsi = pci_irq++; ++ gsi_to_irq[irq] = gsi; ++ } else { ++ printk(KERN_ERR "GSI %u is too high\n", gsi); ++ return gsi; ++ } ++ } ++ ++ io_apic_set_pci_routing(ioapic, ioapic_pin, gsi, ++ triggering == ACPI_EDGE_SENSITIVE ? 0 : 1, ++ polarity == ACPI_ACTIVE_HIGH ? 0 : 1); ++ return gsi; ++} ++ ++#endif /* CONFIG_X86_IO_APIC */ ++#endif /* CONFIG_ACPI */ +diff -Naur ubuntu-hardy/arch/x86/kernel/mpparse_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/mpparse_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/mpparse_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/mpparse_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,880 @@ ++/* ++ * Intel Multiprocessor Specification 1.1 and 1.4 ++ * compliant MP-table parsing routines. ++ * ++ * (c) 1995 Alan Cox, Building #3 ++ * (c) 1998, 1999, 2000 Ingo Molnar ++ * ++ * Fixes ++ * Erich Boleyn : MP v1.4 and additional changes. ++ * Alan Cox : Added EBDA scanning ++ * Ingo Molnar : various cleanups and rewrites ++ * Maciej W. Rozycki: Bits for default MP configurations ++ * Paul Diefenbaugh: Added full ACPI support ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Have we found an MP table */ ++int smp_found_config; ++ ++/* ++ * Various Linux-internal data structures created from the ++ * MP-table. ++ */ ++DECLARE_BITMAP(mp_bus_not_pci, MAX_MP_BUSSES); ++int mp_bus_id_to_pci_bus [MAX_MP_BUSSES] = { [0 ... MAX_MP_BUSSES-1] = -1 }; ++ ++static int mp_current_pci_id = 0; ++/* I/O APIC entries */ ++struct mpc_config_ioapic mp_ioapics[MAX_IO_APICS]; ++ ++/* # of MP IRQ source entries */ ++struct mpc_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; ++ ++/* MP IRQ source entries */ ++int mp_irq_entries; ++ ++int nr_ioapics; ++#ifndef CONFIG_XEN ++unsigned long mp_lapic_addr = 0; ++#endif ++ ++ ++/* Processor that is doing the boot up */ ++unsigned int boot_cpu_id = -1U; ++EXPORT_SYMBOL(boot_cpu_id); ++ ++/* Internal processor count */ ++unsigned int num_processors __cpuinitdata = 0; ++ ++unsigned disabled_cpus __cpuinitdata; ++ ++/* Bitmask of physically existing CPUs */ ++physid_mask_t phys_cpu_present_map = PHYSID_MASK_NONE; ++ ++u8 bios_cpu_apicid[NR_CPUS] = { [0 ... NR_CPUS-1] = BAD_APICID }; ++ ++ ++/* ++ * Intel MP BIOS table parsing routines: ++ */ ++ ++/* ++ * Checksum an MP configuration block. ++ */ ++ ++static int __init mpf_checksum(unsigned char *mp, int len) ++{ ++ int sum = 0; ++ ++ while (len--) ++ sum += *mp++; ++ ++ return sum & 0xFF; ++} ++ ++#ifndef CONFIG_XEN ++static void __cpuinit MP_processor_info(struct mpc_config_processor *m) ++{ ++ int cpu; ++ cpumask_t tmp_map; ++ char *bootup_cpu = ""; ++ ++ if (!(m->mpc_cpuflag & CPU_ENABLED)) { ++ disabled_cpus++; ++ return; ++ } ++ if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) { ++ bootup_cpu = " (Bootup-CPU)"; ++ boot_cpu_id = m->mpc_apicid; ++ } ++ ++ printk(KERN_INFO "Processor #%d%s\n", m->mpc_apicid, bootup_cpu); ++ ++ if (num_processors >= NR_CPUS) { ++ printk(KERN_WARNING "WARNING: NR_CPUS limit of %i reached." ++ " Processor ignored.\n", NR_CPUS); ++ return; ++ } ++ ++ num_processors++; ++ cpus_complement(tmp_map, cpu_present_map); ++ cpu = first_cpu(tmp_map); ++ ++ physid_set(m->mpc_apicid, phys_cpu_present_map); ++ if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) { ++ /* ++ * bios_cpu_apicid is required to have processors listed ++ * in same order as logical cpu numbers. Hence the first ++ * entry is BSP, and so on. ++ */ ++ cpu = 0; ++ } ++ bios_cpu_apicid[cpu] = m->mpc_apicid; ++ /* ++ * We get called early in the the start_kernel initialization ++ * process when the per_cpu data area is not yet setup, so we ++ * use a static array that is removed after the per_cpu data ++ * area is created. ++ */ ++ if (x86_cpu_to_apicid_ptr) { ++ u8 *x86_cpu_to_apicid = (u8 *)x86_cpu_to_apicid_ptr; ++ x86_cpu_to_apicid[cpu] = m->mpc_apicid; ++ } else { ++ per_cpu(x86_cpu_to_apicid, cpu) = m->mpc_apicid; ++ } ++ ++ cpu_set(cpu, cpu_possible_map); ++ cpu_set(cpu, cpu_present_map); ++} ++#else ++static void __cpuinit MP_processor_info(struct mpc_config_processor *m) ++{ ++ num_processors++; ++} ++#endif /* CONFIG_XEN */ ++ ++static void __init MP_bus_info (struct mpc_config_bus *m) ++{ ++ char str[7]; ++ ++ memcpy(str, m->mpc_bustype, 6); ++ str[6] = 0; ++ Dprintk("Bus #%d is %s\n", m->mpc_busid, str); ++ ++ if (strncmp(str, "ISA", 3) == 0) { ++ set_bit(m->mpc_busid, mp_bus_not_pci); ++ } else if (strncmp(str, "PCI", 3) == 0) { ++ clear_bit(m->mpc_busid, mp_bus_not_pci); ++ mp_bus_id_to_pci_bus[m->mpc_busid] = mp_current_pci_id; ++ mp_current_pci_id++; ++ } else { ++ printk(KERN_ERR "Unknown bustype %s\n", str); ++ } ++} ++ ++static int bad_ioapic(unsigned long address) ++{ ++ if (nr_ioapics >= MAX_IO_APICS) { ++ printk(KERN_ERR "ERROR: Max # of I/O APICs (%d) exceeded " ++ "(found %d)\n", MAX_IO_APICS, nr_ioapics); ++ panic("Recompile kernel with bigger MAX_IO_APICS!\n"); ++ } ++ if (!address) { ++ printk(KERN_ERR "WARNING: Bogus (zero) I/O APIC address" ++ " found in table, skipping!\n"); ++ return 1; ++ } ++ return 0; ++} ++ ++static void __init MP_ioapic_info (struct mpc_config_ioapic *m) ++{ ++ if (!(m->mpc_flags & MPC_APIC_USABLE)) ++ return; ++ ++ printk("I/O APIC #%d at 0x%X.\n", ++ m->mpc_apicid, m->mpc_apicaddr); ++ ++ if (bad_ioapic(m->mpc_apicaddr)) ++ return; ++ ++ mp_ioapics[nr_ioapics] = *m; ++ nr_ioapics++; ++} ++ ++static void __init MP_intsrc_info (struct mpc_config_intsrc *m) ++{ ++ mp_irqs [mp_irq_entries] = *m; ++ Dprintk("Int: type %d, pol %d, trig %d, bus %d," ++ " IRQ %02x, APIC ID %x, APIC INT %02x\n", ++ m->mpc_irqtype, m->mpc_irqflag & 3, ++ (m->mpc_irqflag >> 2) & 3, m->mpc_srcbus, ++ m->mpc_srcbusirq, m->mpc_dstapic, m->mpc_dstirq); ++ if (++mp_irq_entries >= MAX_IRQ_SOURCES) ++ panic("Max # of irq sources exceeded!!\n"); ++} ++ ++static void __init MP_lintsrc_info (struct mpc_config_lintsrc *m) ++{ ++ Dprintk("Lint: type %d, pol %d, trig %d, bus %d," ++ " IRQ %02x, APIC ID %x, APIC LINT %02x\n", ++ m->mpc_irqtype, m->mpc_irqflag & 3, ++ (m->mpc_irqflag >> 2) &3, m->mpc_srcbusid, ++ m->mpc_srcbusirq, m->mpc_destapic, m->mpc_destapiclint); ++} ++ ++/* ++ * Read/parse the MPC ++ */ ++ ++static int __init smp_read_mpc(struct mp_config_table *mpc) ++{ ++ char str[16]; ++ int count=sizeof(*mpc); ++ unsigned char *mpt=((unsigned char *)mpc)+count; ++ ++ if (memcmp(mpc->mpc_signature,MPC_SIGNATURE,4)) { ++ printk("MPTABLE: bad signature [%c%c%c%c]!\n", ++ mpc->mpc_signature[0], ++ mpc->mpc_signature[1], ++ mpc->mpc_signature[2], ++ mpc->mpc_signature[3]); ++ return 0; ++ } ++ if (mpf_checksum((unsigned char *)mpc,mpc->mpc_length)) { ++ printk("MPTABLE: checksum error!\n"); ++ return 0; ++ } ++ if (mpc->mpc_spec!=0x01 && mpc->mpc_spec!=0x04) { ++ printk(KERN_ERR "MPTABLE: bad table version (%d)!!\n", ++ mpc->mpc_spec); ++ return 0; ++ } ++ if (!mpc->mpc_lapic) { ++ printk(KERN_ERR "MPTABLE: null local APIC address!\n"); ++ return 0; ++ } ++ memcpy(str,mpc->mpc_oem,8); ++ str[8] = 0; ++ printk(KERN_INFO "MPTABLE: OEM ID: %s ",str); ++ ++ memcpy(str,mpc->mpc_productid,12); ++ str[12] = 0; ++ printk("MPTABLE: Product ID: %s ",str); ++ ++#ifndef CONFIG_XEN ++ printk("MPTABLE: APIC at: 0x%X\n",mpc->mpc_lapic); ++ ++ /* save the local APIC address, it might be non-default */ ++ if (!acpi_lapic) ++ mp_lapic_addr = mpc->mpc_lapic; ++#endif ++ ++ /* ++ * Now process the configuration blocks. ++ */ ++ while (count < mpc->mpc_length) { ++ switch(*mpt) { ++ case MP_PROCESSOR: ++ { ++ struct mpc_config_processor *m= ++ (struct mpc_config_processor *)mpt; ++ if (!acpi_lapic) ++ MP_processor_info(m); ++ mpt += sizeof(*m); ++ count += sizeof(*m); ++ break; ++ } ++ case MP_BUS: ++ { ++ struct mpc_config_bus *m= ++ (struct mpc_config_bus *)mpt; ++ MP_bus_info(m); ++ mpt += sizeof(*m); ++ count += sizeof(*m); ++ break; ++ } ++ case MP_IOAPIC: ++ { ++ struct mpc_config_ioapic *m= ++ (struct mpc_config_ioapic *)mpt; ++ MP_ioapic_info(m); ++ mpt += sizeof(*m); ++ count += sizeof(*m); ++ break; ++ } ++ case MP_INTSRC: ++ { ++ struct mpc_config_intsrc *m= ++ (struct mpc_config_intsrc *)mpt; ++ ++ MP_intsrc_info(m); ++ mpt += sizeof(*m); ++ count += sizeof(*m); ++ break; ++ } ++ case MP_LINTSRC: ++ { ++ struct mpc_config_lintsrc *m= ++ (struct mpc_config_lintsrc *)mpt; ++ MP_lintsrc_info(m); ++ mpt += sizeof(*m); ++ count += sizeof(*m); ++ break; ++ } ++ } ++ } ++ setup_apic_routing(); ++ if (!num_processors) ++ printk(KERN_ERR "MPTABLE: no processors registered!\n"); ++ return num_processors; ++} ++ ++static int __init ELCR_trigger(unsigned int irq) ++{ ++ unsigned int port; ++ ++ port = 0x4d0 + (irq >> 3); ++ return (inb(port) >> (irq & 7)) & 1; ++} ++ ++static void __init construct_default_ioirq_mptable(int mpc_default_type) ++{ ++ struct mpc_config_intsrc intsrc; ++ int i; ++ int ELCR_fallback = 0; ++ ++ intsrc.mpc_type = MP_INTSRC; ++ intsrc.mpc_irqflag = 0; /* conforming */ ++ intsrc.mpc_srcbus = 0; ++ intsrc.mpc_dstapic = mp_ioapics[0].mpc_apicid; ++ ++ intsrc.mpc_irqtype = mp_INT; ++ ++ /* ++ * If true, we have an ISA/PCI system with no IRQ entries ++ * in the MP table. To prevent the PCI interrupts from being set up ++ * incorrectly, we try to use the ELCR. The sanity check to see if ++ * there is good ELCR data is very simple - IRQ0, 1, 2 and 13 can ++ * never be level sensitive, so we simply see if the ELCR agrees. ++ * If it does, we assume it's valid. ++ */ ++ if (mpc_default_type == 5) { ++ printk(KERN_INFO "ISA/PCI bus type with no IRQ information... falling back to ELCR\n"); ++ ++ if (ELCR_trigger(0) || ELCR_trigger(1) || ELCR_trigger(2) || ELCR_trigger(13)) ++ printk(KERN_ERR "ELCR contains invalid data... not using ELCR\n"); ++ else { ++ printk(KERN_INFO "Using ELCR to identify PCI interrupts\n"); ++ ELCR_fallback = 1; ++ } ++ } ++ ++ for (i = 0; i < 16; i++) { ++ switch (mpc_default_type) { ++ case 2: ++ if (i == 0 || i == 13) ++ continue; /* IRQ0 & IRQ13 not connected */ ++ /* fall through */ ++ default: ++ if (i == 2) ++ continue; /* IRQ2 is never connected */ ++ } ++ ++ if (ELCR_fallback) { ++ /* ++ * If the ELCR indicates a level-sensitive interrupt, we ++ * copy that information over to the MP table in the ++ * irqflag field (level sensitive, active high polarity). ++ */ ++ if (ELCR_trigger(i)) ++ intsrc.mpc_irqflag = 13; ++ else ++ intsrc.mpc_irqflag = 0; ++ } ++ ++ intsrc.mpc_srcbusirq = i; ++ intsrc.mpc_dstirq = i ? i : 2; /* IRQ0 to INTIN2 */ ++ MP_intsrc_info(&intsrc); ++ } ++ ++ intsrc.mpc_irqtype = mp_ExtINT; ++ intsrc.mpc_srcbusirq = 0; ++ intsrc.mpc_dstirq = 0; /* 8259A to INTIN0 */ ++ MP_intsrc_info(&intsrc); ++} ++ ++static inline void __init construct_default_ISA_mptable(int mpc_default_type) ++{ ++ struct mpc_config_processor processor; ++ struct mpc_config_bus bus; ++ struct mpc_config_ioapic ioapic; ++ struct mpc_config_lintsrc lintsrc; ++ int linttypes[2] = { mp_ExtINT, mp_NMI }; ++ int i; ++ ++#ifndef CONFIG_XEN ++ /* ++ * local APIC has default address ++ */ ++ mp_lapic_addr = APIC_DEFAULT_PHYS_BASE; ++#endif ++ ++ /* ++ * 2 CPUs, numbered 0 & 1. ++ */ ++ processor.mpc_type = MP_PROCESSOR; ++ processor.mpc_apicver = 0; ++ processor.mpc_cpuflag = CPU_ENABLED; ++ processor.mpc_cpufeature = 0; ++ processor.mpc_featureflag = 0; ++ processor.mpc_reserved[0] = 0; ++ processor.mpc_reserved[1] = 0; ++ for (i = 0; i < 2; i++) { ++ processor.mpc_apicid = i; ++ MP_processor_info(&processor); ++ } ++ ++ bus.mpc_type = MP_BUS; ++ bus.mpc_busid = 0; ++ switch (mpc_default_type) { ++ default: ++ printk(KERN_ERR "???\nUnknown standard configuration %d\n", ++ mpc_default_type); ++ /* fall through */ ++ case 1: ++ case 5: ++ memcpy(bus.mpc_bustype, "ISA ", 6); ++ break; ++ } ++ MP_bus_info(&bus); ++ if (mpc_default_type > 4) { ++ bus.mpc_busid = 1; ++ memcpy(bus.mpc_bustype, "PCI ", 6); ++ MP_bus_info(&bus); ++ } ++ ++ ioapic.mpc_type = MP_IOAPIC; ++ ioapic.mpc_apicid = 2; ++ ioapic.mpc_apicver = 0; ++ ioapic.mpc_flags = MPC_APIC_USABLE; ++ ioapic.mpc_apicaddr = 0xFEC00000; ++ MP_ioapic_info(&ioapic); ++ ++ /* ++ * We set up most of the low 16 IO-APIC pins according to MPS rules. ++ */ ++ construct_default_ioirq_mptable(mpc_default_type); ++ ++ lintsrc.mpc_type = MP_LINTSRC; ++ lintsrc.mpc_irqflag = 0; /* conforming */ ++ lintsrc.mpc_srcbusid = 0; ++ lintsrc.mpc_srcbusirq = 0; ++ lintsrc.mpc_destapic = MP_APIC_ALL; ++ for (i = 0; i < 2; i++) { ++ lintsrc.mpc_irqtype = linttypes[i]; ++ lintsrc.mpc_destapiclint = i; ++ MP_lintsrc_info(&lintsrc); ++ } ++} ++ ++static struct intel_mp_floating *mpf_found; ++ ++/* ++ * Scan the memory blocks for an SMP configuration block. ++ */ ++void __init get_smp_config (void) ++{ ++ struct intel_mp_floating *mpf = mpf_found; ++ ++ /* ++ * ACPI supports both logical (e.g. Hyper-Threading) and physical ++ * processors, where MPS only supports physical. ++ */ ++ if (acpi_lapic && acpi_ioapic) { ++ printk(KERN_INFO "Using ACPI (MADT) for SMP configuration information\n"); ++ return; ++ } ++ else if (acpi_lapic) ++ printk(KERN_INFO "Using ACPI for processor (LAPIC) configuration information\n"); ++ ++ printk("Intel MultiProcessor Specification v1.%d\n", mpf->mpf_specification); ++ ++ /* ++ * Now see if we need to read further. ++ */ ++ if (mpf->mpf_feature1 != 0) { ++ ++ printk(KERN_INFO "Default MP configuration #%d\n", mpf->mpf_feature1); ++ construct_default_ISA_mptable(mpf->mpf_feature1); ++ ++ } else if (mpf->mpf_physptr) { ++ ++ /* ++ * Read the physical hardware table. Anything here will ++ * override the defaults. ++ */ ++ if (!smp_read_mpc(isa_bus_to_virt(mpf->mpf_physptr))) { ++ smp_found_config = 0; ++ printk(KERN_ERR "BIOS bug, MP table errors detected!...\n"); ++ printk(KERN_ERR "... disabling SMP support. (tell your hw vendor)\n"); ++ return; ++ } ++ /* ++ * If there are no explicit MP IRQ entries, then we are ++ * broken. We set up most of the low 16 IO-APIC pins to ++ * ISA defaults and hope it will work. ++ */ ++ if (!mp_irq_entries) { ++ struct mpc_config_bus bus; ++ ++ printk(KERN_ERR "BIOS bug, no explicit IRQ entries, using default mptable. (tell your hw vendor)\n"); ++ ++ bus.mpc_type = MP_BUS; ++ bus.mpc_busid = 0; ++ memcpy(bus.mpc_bustype, "ISA ", 6); ++ MP_bus_info(&bus); ++ ++ construct_default_ioirq_mptable(0); ++ } ++ ++ } else ++ BUG(); ++ ++ printk(KERN_INFO "Processors: %d\n", num_processors); ++ /* ++ * Only use the first configuration found. ++ */ ++} ++ ++static int __init smp_scan_config (unsigned long base, unsigned long length) ++{ ++ extern void __bad_mpf_size(void); ++ unsigned int *bp = isa_bus_to_virt(base); ++ struct intel_mp_floating *mpf; ++ ++ Dprintk("Scan SMP from %p for %ld bytes.\n", bp,length); ++ if (sizeof(*mpf) != 16) ++ __bad_mpf_size(); ++ ++ while (length > 0) { ++ mpf = (struct intel_mp_floating *)bp; ++ if ((*bp == SMP_MAGIC_IDENT) && ++ (mpf->mpf_length == 1) && ++ !mpf_checksum((unsigned char *)bp, 16) && ++ ((mpf->mpf_specification == 1) ++ || (mpf->mpf_specification == 4)) ) { ++ ++ smp_found_config = 1; ++ mpf_found = mpf; ++ return 1; ++ } ++ bp += 4; ++ length -= 16; ++ } ++ return 0; ++} ++ ++void __init find_smp_config(void) ++{ ++ unsigned int address; ++ ++ /* ++ * FIXME: Linux assumes you have 640K of base ram.. ++ * this continues the error... ++ * ++ * 1) Scan the bottom 1K for a signature ++ * 2) Scan the top 1K of base RAM ++ * 3) Scan the 64K of bios ++ */ ++ if (smp_scan_config(0x0,0x400) || ++ smp_scan_config(639*0x400,0x400) || ++ smp_scan_config(0xF0000,0x10000)) ++ return; ++ /* ++ * If it is an SMP machine we should know now. ++ * ++ * there is a real-mode segmented pointer pointing to the ++ * 4K EBDA area at 0x40E, calculate and scan it here. ++ * ++ * NOTE! There are Linux loaders that will corrupt the EBDA ++ * area, and as such this kind of SMP config may be less ++ * trustworthy, simply because the SMP table may have been ++ * stomped on during early boot. These loaders are buggy and ++ * should be fixed. ++ */ ++ ++ address = *(unsigned short *)phys_to_virt(0x40E); ++ address <<= 4; ++ if (smp_scan_config(address, 0x1000)) ++ return; ++ ++ /* If we have come this far, we did not find an MP table */ ++ printk(KERN_INFO "No mptable found.\n"); ++} ++ ++/* -------------------------------------------------------------------------- ++ ACPI-based MP Configuration ++ -------------------------------------------------------------------------- */ ++ ++#ifdef CONFIG_ACPI ++ ++#ifndef CONFIG_XEN ++void __init mp_register_lapic_address(u64 address) ++{ ++ mp_lapic_addr = (unsigned long) address; ++ set_fixmap_nocache(FIX_APIC_BASE, mp_lapic_addr); ++ if (boot_cpu_id == -1U) ++ boot_cpu_id = GET_APIC_ID(apic_read(APIC_ID)); ++} ++#endif ++ ++void __cpuinit mp_register_lapic (u8 id, u8 enabled) ++{ ++ struct mpc_config_processor processor; ++ int boot_cpu = 0; ++ ++ if (id == boot_cpu_id) ++ boot_cpu = 1; ++ ++#ifndef CONFIG_XEN ++ processor.mpc_type = MP_PROCESSOR; ++ processor.mpc_apicid = id; ++ processor.mpc_apicver = 0; ++ processor.mpc_cpuflag = (enabled ? CPU_ENABLED : 0); ++ processor.mpc_cpuflag |= (boot_cpu ? CPU_BOOTPROCESSOR : 0); ++ processor.mpc_cpufeature = 0; ++ processor.mpc_featureflag = 0; ++ processor.mpc_reserved[0] = 0; ++ processor.mpc_reserved[1] = 0; ++#endif ++ ++ MP_processor_info(&processor); ++} ++ ++#define MP_ISA_BUS 0 ++#define MP_MAX_IOAPIC_PIN 127 ++ ++static struct mp_ioapic_routing { ++ int apic_id; ++ int gsi_start; ++ int gsi_end; ++ u32 pin_programmed[4]; ++} mp_ioapic_routing[MAX_IO_APICS]; ++ ++static int mp_find_ioapic(int gsi) ++{ ++ int i = 0; ++ ++ /* Find the IOAPIC that manages this GSI. */ ++ for (i = 0; i < nr_ioapics; i++) { ++ if ((gsi >= mp_ioapic_routing[i].gsi_start) ++ && (gsi <= mp_ioapic_routing[i].gsi_end)) ++ return i; ++ } ++ ++ printk(KERN_ERR "ERROR: Unable to locate IOAPIC for GSI %d\n", gsi); ++ return -1; ++} ++ ++static u8 uniq_ioapic_id(u8 id) ++{ ++ int i; ++ DECLARE_BITMAP(used, 256); ++ bitmap_zero(used, 256); ++ for (i = 0; i < nr_ioapics; i++) { ++ struct mpc_config_ioapic *ia = &mp_ioapics[i]; ++ __set_bit(ia->mpc_apicid, used); ++ } ++ if (!test_bit(id, used)) ++ return id; ++ return find_first_zero_bit(used, 256); ++} ++ ++void __init mp_register_ioapic(u8 id, u32 address, u32 gsi_base) ++{ ++ int idx = 0; ++ ++ if (bad_ioapic(address)) ++ return; ++ ++ idx = nr_ioapics; ++ ++ mp_ioapics[idx].mpc_type = MP_IOAPIC; ++ mp_ioapics[idx].mpc_flags = MPC_APIC_USABLE; ++ mp_ioapics[idx].mpc_apicaddr = address; ++ ++#ifndef CONFIG_XEN ++ set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); ++#endif ++ mp_ioapics[idx].mpc_apicid = uniq_ioapic_id(id); ++ mp_ioapics[idx].mpc_apicver = 0; ++ ++ /* ++ * Build basic IRQ lookup table to facilitate gsi->io_apic lookups ++ * and to prevent reprogramming of IOAPIC pins (PCI IRQs). ++ */ ++ mp_ioapic_routing[idx].apic_id = mp_ioapics[idx].mpc_apicid; ++ mp_ioapic_routing[idx].gsi_start = gsi_base; ++ mp_ioapic_routing[idx].gsi_end = gsi_base + ++ io_apic_get_redir_entries(idx); ++ ++ printk(KERN_INFO "IOAPIC[%d]: apic_id %d, address 0x%x, " ++ "GSI %d-%d\n", idx, mp_ioapics[idx].mpc_apicid, ++ mp_ioapics[idx].mpc_apicaddr, ++ mp_ioapic_routing[idx].gsi_start, ++ mp_ioapic_routing[idx].gsi_end); ++ ++ nr_ioapics++; ++} ++ ++void __init ++mp_override_legacy_irq(u8 bus_irq, u8 polarity, u8 trigger, u32 gsi) ++{ ++ struct mpc_config_intsrc intsrc; ++ int ioapic = -1; ++ int pin = -1; ++ ++ /* ++ * Convert 'gsi' to 'ioapic.pin'. ++ */ ++ ioapic = mp_find_ioapic(gsi); ++ if (ioapic < 0) ++ return; ++ pin = gsi - mp_ioapic_routing[ioapic].gsi_start; ++ ++ /* ++ * TBD: This check is for faulty timer entries, where the override ++ * erroneously sets the trigger to level, resulting in a HUGE ++ * increase of timer interrupts! ++ */ ++ if ((bus_irq == 0) && (trigger == 3)) ++ trigger = 1; ++ ++ intsrc.mpc_type = MP_INTSRC; ++ intsrc.mpc_irqtype = mp_INT; ++ intsrc.mpc_irqflag = (trigger << 2) | polarity; ++ intsrc.mpc_srcbus = MP_ISA_BUS; ++ intsrc.mpc_srcbusirq = bus_irq; /* IRQ */ ++ intsrc.mpc_dstapic = mp_ioapics[ioapic].mpc_apicid; /* APIC ID */ ++ intsrc.mpc_dstirq = pin; /* INTIN# */ ++ ++ Dprintk("Int: type %d, pol %d, trig %d, bus %d, irq %d, %d-%d\n", ++ intsrc.mpc_irqtype, intsrc.mpc_irqflag & 3, ++ (intsrc.mpc_irqflag >> 2) & 3, intsrc.mpc_srcbus, ++ intsrc.mpc_srcbusirq, intsrc.mpc_dstapic, intsrc.mpc_dstirq); ++ ++ mp_irqs[mp_irq_entries] = intsrc; ++ if (++mp_irq_entries == MAX_IRQ_SOURCES) ++ panic("Max # of irq sources exceeded!\n"); ++} ++ ++void __init mp_config_acpi_legacy_irqs(void) ++{ ++ struct mpc_config_intsrc intsrc; ++ int i = 0; ++ int ioapic = -1; ++ ++ /* ++ * Fabricate the legacy ISA bus (bus #31). ++ */ ++ set_bit(MP_ISA_BUS, mp_bus_not_pci); ++ ++ /* ++ * Locate the IOAPIC that manages the ISA IRQs (0-15). ++ */ ++ ioapic = mp_find_ioapic(0); ++ if (ioapic < 0) ++ return; ++ ++ intsrc.mpc_type = MP_INTSRC; ++ intsrc.mpc_irqflag = 0; /* Conforming */ ++ intsrc.mpc_srcbus = MP_ISA_BUS; ++ intsrc.mpc_dstapic = mp_ioapics[ioapic].mpc_apicid; ++ ++ /* ++ * Use the default configuration for the IRQs 0-15. Unless ++ * overridden by (MADT) interrupt source override entries. ++ */ ++ for (i = 0; i < 16; i++) { ++ int idx; ++ ++ for (idx = 0; idx < mp_irq_entries; idx++) { ++ struct mpc_config_intsrc *irq = mp_irqs + idx; ++ ++ /* Do we already have a mapping for this ISA IRQ? */ ++ if (irq->mpc_srcbus == MP_ISA_BUS && irq->mpc_srcbusirq == i) ++ break; ++ ++ /* Do we already have a mapping for this IOAPIC pin */ ++ if ((irq->mpc_dstapic == intsrc.mpc_dstapic) && ++ (irq->mpc_dstirq == i)) ++ break; ++ } ++ ++ if (idx != mp_irq_entries) { ++ printk(KERN_DEBUG "ACPI: IRQ%d used by override.\n", i); ++ continue; /* IRQ already used */ ++ } ++ ++ intsrc.mpc_irqtype = mp_INT; ++ intsrc.mpc_srcbusirq = i; /* Identity mapped */ ++ intsrc.mpc_dstirq = i; ++ ++ Dprintk("Int: type %d, pol %d, trig %d, bus %d, irq %d, " ++ "%d-%d\n", intsrc.mpc_irqtype, intsrc.mpc_irqflag & 3, ++ (intsrc.mpc_irqflag >> 2) & 3, intsrc.mpc_srcbus, ++ intsrc.mpc_srcbusirq, intsrc.mpc_dstapic, ++ intsrc.mpc_dstirq); ++ ++ mp_irqs[mp_irq_entries] = intsrc; ++ if (++mp_irq_entries == MAX_IRQ_SOURCES) ++ panic("Max # of irq sources exceeded!\n"); ++ } ++} ++ ++int mp_register_gsi(u32 gsi, int triggering, int polarity) ++{ ++ int ioapic = -1; ++ int ioapic_pin = 0; ++ int idx, bit = 0; ++ ++ if (acpi_irq_model != ACPI_IRQ_MODEL_IOAPIC) ++ return gsi; ++ ++ /* Don't set up the ACPI SCI because it's already set up */ ++ if (acpi_gbl_FADT.sci_interrupt == gsi) ++ return gsi; ++ ++ ioapic = mp_find_ioapic(gsi); ++ if (ioapic < 0) { ++ printk(KERN_WARNING "No IOAPIC for GSI %u\n", gsi); ++ return gsi; ++ } ++ ++ ioapic_pin = gsi - mp_ioapic_routing[ioapic].gsi_start; ++ ++ /* ++ * Avoid pin reprogramming. PRTs typically include entries ++ * with redundant pin->gsi mappings (but unique PCI devices); ++ * we only program the IOAPIC on the first. ++ */ ++ bit = ioapic_pin % 32; ++ idx = (ioapic_pin < 32) ? 0 : (ioapic_pin / 32); ++ if (idx > 3) { ++ printk(KERN_ERR "Invalid reference to IOAPIC pin " ++ "%d-%d\n", mp_ioapic_routing[ioapic].apic_id, ++ ioapic_pin); ++ return gsi; ++ } ++ if ((1< + #include + ++#ifdef CONFIG_SYSCTL + int unknown_nmi_panic; +-int nmi_watchdog_enabled; ++static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu); ++#endif ++ + int panic_on_unrecovered_nmi; + ++#ifndef CONFIG_XEN ++ ++int nmi_watchdog_enabled; ++ + static cpumask_t backtrace_mask = CPU_MASK_NONE; + + /* nmi_active: +@@ -46,9 +53,6 @@ + + static DEFINE_PER_CPU(short, wd_enabled); + +-/* local prototypes */ +-static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu); +- + /* Run after command line and cpu_init init, but before all other checks */ + void nmi_watchdog_default(void) + { +@@ -383,6 +387,8 @@ + return rc; + } + ++#endif /* CONFIG_XEN */ ++ + static unsigned ignore_nmis; + + asmlinkage __kprobes void do_nmi(struct pt_regs * regs, long error_code) +@@ -427,6 +433,7 @@ + return 0; + } + ++#ifndef CONFIG_XEN + /* + * proc handler for /proc/sys/kernel/nmi + */ +@@ -461,9 +468,11 @@ + } + return 0; + } ++#endif + + #endif + ++#ifndef CONFIG_XEN + void __trigger_all_cpu_backtrace(void) + { + int i; +@@ -480,3 +489,4 @@ + EXPORT_SYMBOL(nmi_active); + EXPORT_SYMBOL(nmi_watchdog); + EXPORT_SYMBOL(touch_nmi_watchdog); ++#endif /* CONFIG_XEN */ +diff -Naur ubuntu-hardy/arch/x86/kernel/pci-dma_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/pci-dma_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/pci-dma_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/pci-dma_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,409 @@ ++/* ++ * Dynamic DMA mapping support. ++ * ++ * On i386 there is no hardware dynamic DMA address translation, ++ * so consistent alloc/free are merely page allocation/freeing. ++ * The rest of the dynamic DMA mapping interface is implemented ++ * in asm/pci.h. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef __x86_64__ ++#include ++ ++int iommu_merge __read_mostly = 0; ++EXPORT_SYMBOL(iommu_merge); ++ ++dma_addr_t bad_dma_address __read_mostly; ++EXPORT_SYMBOL(bad_dma_address); ++ ++/* This tells the BIO block layer to assume merging. Default to off ++ because we cannot guarantee merging later. */ ++int iommu_bio_merge __read_mostly = 0; ++EXPORT_SYMBOL(iommu_bio_merge); ++ ++int force_iommu __read_mostly= 0; ++ ++__init int iommu_setup(char *p) ++{ ++ return 1; ++} ++ ++void __init pci_iommu_alloc(void) ++{ ++#ifdef CONFIG_SWIOTLB ++ pci_swiotlb_init(); ++#endif ++} ++ ++static int __init pci_iommu_init(void) ++{ ++ no_iommu_init(); ++ return 0; ++} ++ ++/* Must execute after PCI subsystem */ ++fs_initcall(pci_iommu_init); ++#endif ++ ++struct dma_coherent_mem { ++ void *virt_base; ++ u32 device_base; ++ int size; ++ int flags; ++ unsigned long *bitmap; ++}; ++ ++#define IOMMU_BUG_ON(test) \ ++do { \ ++ if (unlikely(test)) { \ ++ printk(KERN_ALERT "Fatal DMA error! " \ ++ "Please use 'swiotlb=force'\n"); \ ++ BUG(); \ ++ } \ ++} while (0) ++ ++int ++dma_map_sg(struct device *hwdev, struct scatterlist *sgl, int nents, ++ enum dma_data_direction direction) ++{ ++ int i, rc; ++ ++ BUG_ON(!valid_dma_direction(direction)); ++ WARN_ON(nents == 0 || sgl->length == 0); ++ ++ if (swiotlb) { ++ rc = swiotlb_map_sg(hwdev, sgl, nents, direction); ++ } else { ++ struct scatterlist *sg; ++ ++ for_each_sg(sgl, sg, nents, i) { ++ BUG_ON(!sg_page(sg)); ++ sg->dma_address = ++ gnttab_dma_map_page(sg_page(sg)) + sg->offset; ++ sg->dma_length = sg->length; ++ IOMMU_BUG_ON(address_needs_mapping( ++ hwdev, sg->dma_address)); ++ IOMMU_BUG_ON(range_straddles_page_boundary( ++ page_to_pseudophys(sg_page(sg)) + sg->offset, ++ sg->length)); ++ } ++ rc = nents; ++ } ++ ++ flush_write_buffers(); ++ return rc; ++} ++EXPORT_SYMBOL(dma_map_sg); ++ ++void ++dma_unmap_sg(struct device *hwdev, struct scatterlist *sgl, int nents, ++ enum dma_data_direction direction) ++{ ++ int i; ++ ++ BUG_ON(!valid_dma_direction(direction)); ++ if (swiotlb) ++ swiotlb_unmap_sg(hwdev, sgl, nents, direction); ++ else { ++ struct scatterlist *sg; ++ ++ for_each_sg(sgl, sg, nents, i) ++ gnttab_dma_unmap_page(sg->dma_address); ++ } ++} ++EXPORT_SYMBOL(dma_unmap_sg); ++ ++#ifdef CONFIG_HIGHMEM ++dma_addr_t ++dma_map_page(struct device *dev, struct page *page, unsigned long offset, ++ size_t size, enum dma_data_direction direction) ++{ ++ dma_addr_t dma_addr; ++ ++ BUG_ON(!valid_dma_direction(direction)); ++ if (swiotlb) { ++ dma_addr = swiotlb_map_page( ++ dev, page, offset, size, direction); ++ } else { ++ dma_addr = gnttab_dma_map_page(page) + offset; ++ IOMMU_BUG_ON(address_needs_mapping(dev, dma_addr)); ++ } ++ ++ return dma_addr; ++} ++EXPORT_SYMBOL(dma_map_page); ++ ++void ++dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size, ++ enum dma_data_direction direction) ++{ ++ BUG_ON(!valid_dma_direction(direction)); ++ if (swiotlb) ++ swiotlb_unmap_page(dev, dma_address, size, direction); ++ else ++ gnttab_dma_unmap_page(dma_address); ++} ++EXPORT_SYMBOL(dma_unmap_page); ++#endif /* CONFIG_HIGHMEM */ ++ ++int ++dma_mapping_error(dma_addr_t dma_addr) ++{ ++ if (swiotlb) ++ return swiotlb_dma_mapping_error(dma_addr); ++ return 0; ++} ++EXPORT_SYMBOL(dma_mapping_error); ++ ++int ++dma_supported(struct device *dev, u64 mask) ++{ ++ if (swiotlb) ++ return swiotlb_dma_supported(dev, mask); ++ /* ++ * By default we'll BUG when an infeasible DMA is requested, and ++ * request swiotlb=force (see IOMMU_BUG_ON). ++ */ ++ return 1; ++} ++EXPORT_SYMBOL(dma_supported); ++ ++void *dma_alloc_coherent(struct device *dev, size_t size, ++ dma_addr_t *dma_handle, gfp_t gfp) ++{ ++ void *ret; ++ struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; ++ unsigned int order = get_order(size); ++ unsigned long vstart; ++ u64 mask; ++ ++ /* ignore region specifiers */ ++ gfp &= ~(__GFP_DMA | __GFP_HIGHMEM); ++ ++ if (mem) { ++ int page = bitmap_find_free_region(mem->bitmap, mem->size, ++ order); ++ if (page >= 0) { ++ *dma_handle = mem->device_base + (page << PAGE_SHIFT); ++ ret = mem->virt_base + (page << PAGE_SHIFT); ++ memset(ret, 0, size); ++ return ret; ++ } ++ if (mem->flags & DMA_MEMORY_EXCLUSIVE) ++ return NULL; ++ } ++ ++ if (dev == NULL || (dev->coherent_dma_mask < 0xffffffff)) ++ gfp |= GFP_DMA; ++ ++ vstart = __get_free_pages(gfp, order); ++ ret = (void *)vstart; ++ ++ if (dev != NULL && dev->coherent_dma_mask) ++ mask = dev->coherent_dma_mask; ++ else ++ mask = 0xffffffff; ++ ++ if (ret != NULL) { ++ if (xen_create_contiguous_region(vstart, order, ++ fls64(mask)) != 0) { ++ free_pages(vstart, order); ++ return NULL; ++ } ++ memset(ret, 0, size); ++ *dma_handle = virt_to_bus(ret); ++ } ++ return ret; ++} ++EXPORT_SYMBOL(dma_alloc_coherent); ++ ++void dma_free_coherent(struct device *dev, size_t size, ++ void *vaddr, dma_addr_t dma_handle) ++{ ++ struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; ++ int order = get_order(size); ++ ++ WARN_ON(irqs_disabled()); /* for portability */ ++ if (mem && vaddr >= mem->virt_base && vaddr < (mem->virt_base + (mem->size << PAGE_SHIFT))) { ++ int page = (vaddr - mem->virt_base) >> PAGE_SHIFT; ++ ++ bitmap_release_region(mem->bitmap, page, order); ++ } else { ++ xen_destroy_contiguous_region((unsigned long)vaddr, order); ++ free_pages((unsigned long)vaddr, order); ++ } ++} ++EXPORT_SYMBOL(dma_free_coherent); ++ ++#ifdef ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY ++int dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr, ++ dma_addr_t device_addr, size_t size, int flags) ++{ ++ void __iomem *mem_base = NULL; ++ int pages = size >> PAGE_SHIFT; ++ int bitmap_size = BITS_TO_LONGS(pages) * sizeof(long); ++ ++ if ((flags & (DMA_MEMORY_MAP | DMA_MEMORY_IO)) == 0) ++ goto out; ++ if (!size) ++ goto out; ++ if (dev->dma_mem) ++ goto out; ++ ++ /* FIXME: this routine just ignores DMA_MEMORY_INCLUDES_CHILDREN */ ++ ++ mem_base = ioremap(bus_addr, size); ++ if (!mem_base) ++ goto out; ++ ++ dev->dma_mem = kzalloc(sizeof(struct dma_coherent_mem), GFP_KERNEL); ++ if (!dev->dma_mem) ++ goto out; ++ dev->dma_mem->bitmap = kzalloc(bitmap_size, GFP_KERNEL); ++ if (!dev->dma_mem->bitmap) ++ goto free1_out; ++ ++ dev->dma_mem->virt_base = mem_base; ++ dev->dma_mem->device_base = device_addr; ++ dev->dma_mem->size = pages; ++ dev->dma_mem->flags = flags; ++ ++ if (flags & DMA_MEMORY_MAP) ++ return DMA_MEMORY_MAP; ++ ++ return DMA_MEMORY_IO; ++ ++ free1_out: ++ kfree(dev->dma_mem); ++ out: ++ if (mem_base) ++ iounmap(mem_base); ++ return 0; ++} ++EXPORT_SYMBOL(dma_declare_coherent_memory); ++ ++void dma_release_declared_memory(struct device *dev) ++{ ++ struct dma_coherent_mem *mem = dev->dma_mem; ++ ++ if(!mem) ++ return; ++ dev->dma_mem = NULL; ++ iounmap(mem->virt_base); ++ kfree(mem->bitmap); ++ kfree(mem); ++} ++EXPORT_SYMBOL(dma_release_declared_memory); ++ ++void *dma_mark_declared_memory_occupied(struct device *dev, ++ dma_addr_t device_addr, size_t size) ++{ ++ struct dma_coherent_mem *mem = dev->dma_mem; ++ int pages = (size + (device_addr & ~PAGE_MASK) + PAGE_SIZE - 1) >> PAGE_SHIFT; ++ int pos, err; ++ ++ if (!mem) ++ return ERR_PTR(-EINVAL); ++ ++ pos = (device_addr - mem->device_base) >> PAGE_SHIFT; ++ err = bitmap_allocate_region(mem->bitmap, pos, get_order(pages)); ++ if (err != 0) ++ return ERR_PTR(err); ++ return mem->virt_base + (pos << PAGE_SHIFT); ++} ++EXPORT_SYMBOL(dma_mark_declared_memory_occupied); ++#endif /* ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY */ ++ ++#if defined(CONFIG_PCI) && !defined(CONFIG_XEN) ++/* Many VIA bridges seem to corrupt data for DAC. Disable it here */ ++ ++int forbid_dac; ++EXPORT_SYMBOL(forbid_dac); ++ ++static __devinit void via_no_dac(struct pci_dev *dev) ++{ ++ if ((dev->class >> 8) == PCI_CLASS_BRIDGE_PCI && forbid_dac == 0) { ++ printk(KERN_INFO "PCI: VIA PCI bridge detected. Disabling DAC.\n"); ++ forbid_dac = 1; ++ } ++} ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_ANY_ID, via_no_dac); ++ ++static int check_iommu(char *s) ++{ ++ if (!strcmp(s, "usedac")) { ++ forbid_dac = -1; ++ return 1; ++ } ++ return 0; ++} ++__setup("iommu=", check_iommu); ++#endif ++ ++dma_addr_t ++dma_map_single(struct device *dev, void *ptr, size_t size, ++ enum dma_data_direction direction) ++{ ++ dma_addr_t dma; ++ ++ BUG_ON(!valid_dma_direction(direction)); ++ WARN_ON(size == 0); ++ ++ if (swiotlb) { ++ dma = swiotlb_map_single(dev, ptr, size, direction); ++ } else { ++ dma = gnttab_dma_map_page(virt_to_page(ptr)) + ++ offset_in_page(ptr); ++ IOMMU_BUG_ON(range_straddles_page_boundary(__pa(ptr), size)); ++ IOMMU_BUG_ON(address_needs_mapping(dev, dma)); ++ } ++ ++ flush_write_buffers(); ++ return dma; ++} ++EXPORT_SYMBOL(dma_map_single); ++ ++void ++dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, ++ enum dma_data_direction direction) ++{ ++ BUG_ON(!valid_dma_direction(direction)); ++ if (swiotlb) ++ swiotlb_unmap_single(dev, dma_addr, size, direction); ++ else ++ gnttab_dma_unmap_page(dma_addr); ++} ++EXPORT_SYMBOL(dma_unmap_single); ++ ++void ++dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, ++ enum dma_data_direction direction) ++{ ++ if (swiotlb) ++ swiotlb_sync_single_for_cpu(dev, dma_handle, size, direction); ++} ++EXPORT_SYMBOL(dma_sync_single_for_cpu); ++ ++void ++dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, size_t size, ++ enum dma_data_direction direction) ++{ ++ if (swiotlb) ++ swiotlb_sync_single_for_device(dev, dma_handle, size, direction); ++} ++EXPORT_SYMBOL(dma_sync_single_for_device); +diff -Naur ubuntu-hardy/arch/x86/kernel/pci-swiotlb_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/pci-swiotlb_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/pci-swiotlb_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/pci-swiotlb_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,58 @@ ++/* Glue code to lib/swiotlb.c */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#if 0 ++int swiotlb __read_mostly; ++EXPORT_SYMBOL(swiotlb); ++#endif ++ ++void swiotlb_init(void); ++ ++const struct dma_mapping_ops swiotlb_dma_ops = { ++#if 0 ++ .mapping_error = swiotlb_dma_mapping_error, ++ .alloc_coherent = swiotlb_alloc_coherent, ++ .free_coherent = swiotlb_free_coherent, ++ .map_single = swiotlb_map_single, ++ .unmap_single = swiotlb_unmap_single, ++ .sync_single_for_cpu = swiotlb_sync_single_for_cpu, ++ .sync_single_for_device = swiotlb_sync_single_for_device, ++ .sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu, ++ .sync_single_range_for_device = swiotlb_sync_single_range_for_device, ++ .sync_sg_for_cpu = swiotlb_sync_sg_for_cpu, ++ .sync_sg_for_device = swiotlb_sync_sg_for_device, ++ .map_sg = swiotlb_map_sg, ++ .unmap_sg = swiotlb_unmap_sg, ++ .dma_supported = NULL, ++#endif ++}; ++ ++void __init pci_swiotlb_init(void) ++{ ++#if 0 ++ /* don't initialize swiotlb if iommu=off (no_iommu=1) */ ++ if (!iommu_detected && !no_iommu && end_pfn > MAX_DMA32_PFN) ++ swiotlb = 1; ++ if (swiotlb_force) ++ swiotlb = 1; ++ if (swiotlb) { ++ printk(KERN_INFO "PCI-DMA: Using software bounce buffering for IO (SWIOTLB)\n"); ++ swiotlb_init(); ++ dma_ops = &swiotlb_dma_ops; ++ } ++#else ++ swiotlb_init(); ++ if (swiotlb) { ++ printk(KERN_INFO "PCI-DMA: Using software bounce buffering for IO (SWIOTLB)\n"); ++ dma_ops = &swiotlb_dma_ops; ++ } ++#endif ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/pcspeaker.c ubuntu-hardy-xen/arch/x86/kernel/pcspeaker.c +--- ubuntu-hardy/arch/x86/kernel/pcspeaker.c 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/pcspeaker.c 2008-04-09 13:17:22.000000000 +0100 +@@ -7,6 +7,11 @@ + struct platform_device *pd; + int ret; + ++#ifdef CONFIG_XEN ++ if (!is_initial_xendomain()) ++ return 0; ++#endif ++ + pd = platform_device_alloc("pcspkr", -1); + if (!pd) + return -ENOMEM; +diff -Naur ubuntu-hardy/arch/x86/kernel/process_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/process_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/process_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/process_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,909 @@ ++/* ++ * Copyright (C) 1995 Linus Torvalds ++ * ++ * Pentium III FXSR, SSE support ++ * Gareth Hughes , May 2000 ++ */ ++ ++/* ++ * This file handles the architecture-dependent parts of process handling.. ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CONFIG_MATH_EMULATION ++#include ++#endif ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++ ++asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); ++ ++static int hlt_counter; ++ ++unsigned long boot_option_idle_override = 0; ++EXPORT_SYMBOL(boot_option_idle_override); ++ ++DEFINE_PER_CPU(struct task_struct *, current_task) = &init_task; ++EXPORT_PER_CPU_SYMBOL(current_task); ++ ++DEFINE_PER_CPU(int, cpu_number); ++EXPORT_PER_CPU_SYMBOL(cpu_number); ++ ++/* ++ * Return saved PC of a blocked thread. ++ */ ++unsigned long thread_saved_pc(struct task_struct *tsk) ++{ ++ return ((unsigned long *)tsk->thread.esp)[3]; ++} ++ ++/* ++ * Powermanagement idle function, if any.. ++ */ ++void (*pm_idle)(void); ++EXPORT_SYMBOL(pm_idle); ++static DEFINE_PER_CPU(unsigned int, cpu_idle_state); ++ ++void disable_hlt(void) ++{ ++ hlt_counter++; ++} ++ ++EXPORT_SYMBOL(disable_hlt); ++ ++void enable_hlt(void) ++{ ++ hlt_counter--; ++} ++ ++EXPORT_SYMBOL(enable_hlt); ++ ++/* ++ * On SMP it's slightly faster (but much more power-consuming!) ++ * to poll the ->work.need_resched flag instead of waiting for the ++ * cross-CPU IPI to arrive. Use this option with caution. ++ */ ++static void poll_idle (void) ++{ ++ cpu_relax(); ++} ++ ++static void xen_idle(void) ++{ ++ current_thread_info()->status &= ~TS_POLLING; ++ /* ++ * TS_POLLING-cleared state must be visible before we ++ * test NEED_RESCHED: ++ */ ++ smp_mb(); ++ ++ local_irq_disable(); ++ if (!need_resched()) ++ safe_halt(); /* enables interrupts racelessly */ ++ else ++ local_irq_enable(); ++ current_thread_info()->status |= TS_POLLING; ++} ++#ifdef CONFIG_APM_MODULE ++EXPORT_SYMBOL(default_idle); ++#endif ++ ++#ifdef CONFIG_HOTPLUG_CPU ++extern cpumask_t cpu_initialized; ++static inline void play_dead(void) ++{ ++ idle_task_exit(); ++ local_irq_disable(); ++ cpu_clear(smp_processor_id(), cpu_initialized); ++ preempt_enable_no_resched(); ++ HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); ++ cpu_bringup(); ++} ++#else ++static inline void play_dead(void) ++{ ++ BUG(); ++} ++#endif /* CONFIG_HOTPLUG_CPU */ ++ ++/* ++ * The idle thread. There's no useful work to be ++ * done, so just try to conserve power and have a ++ * low exit latency (ie sit in a loop waiting for ++ * somebody to say that they'd like to reschedule) ++ */ ++void cpu_idle(void) ++{ ++ int cpu = smp_processor_id(); ++ ++ current_thread_info()->status |= TS_POLLING; ++ ++ /* endless idle loop with no priority at all */ ++ while (1) { ++ tick_nohz_stop_sched_tick(); ++ while (!need_resched()) { ++ void (*idle)(void); ++ ++ if (__get_cpu_var(cpu_idle_state)) ++ __get_cpu_var(cpu_idle_state) = 0; ++ ++ check_pgt_cache(); ++ rmb(); ++ idle = xen_idle; /* no alternatives */ ++ ++ if (cpu_is_offline(cpu)) ++ play_dead(); ++ ++ __get_cpu_var(irq_stat).idle_timestamp = jiffies; ++ idle(); ++ } ++ tick_nohz_restart_sched_tick(); ++ preempt_enable_no_resched(); ++ schedule(); ++ preempt_disable(); ++ } ++} ++ ++void cpu_idle_wait(void) ++{ ++ unsigned int cpu, this_cpu = get_cpu(); ++ cpumask_t map, tmp = current->cpus_allowed; ++ ++ set_cpus_allowed(current, cpumask_of_cpu(this_cpu)); ++ put_cpu(); ++ ++ cpus_clear(map); ++ for_each_online_cpu(cpu) { ++ per_cpu(cpu_idle_state, cpu) = 1; ++ cpu_set(cpu, map); ++ } ++ ++ __get_cpu_var(cpu_idle_state) = 0; ++ ++ wmb(); ++ do { ++ ssleep(1); ++ for_each_online_cpu(cpu) { ++ if (cpu_isset(cpu, map) && !per_cpu(cpu_idle_state, cpu)) ++ cpu_clear(cpu, map); ++ } ++ cpus_and(map, map, cpu_online_map); ++ } while (!cpus_empty(map)); ++ ++ set_cpus_allowed(current, tmp); ++} ++EXPORT_SYMBOL_GPL(cpu_idle_wait); ++ ++void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c) ++{ ++} ++ ++static int __init idle_setup(char *str) ++{ ++ if (!strcmp(str, "poll")) { ++ printk("using polling idle threads.\n"); ++ pm_idle = poll_idle; ++ } ++ else ++ return -1; ++ ++ boot_option_idle_override = 1; ++ return 0; ++} ++early_param("idle", idle_setup); ++ ++void __show_registers(struct pt_regs *regs, int all) ++{ ++ unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L; ++ unsigned long d0, d1, d2, d3, d6, d7; ++ unsigned long esp; ++ unsigned short ss, gs; ++ ++ if (user_mode_vm(regs)) { ++ esp = regs->esp; ++ ss = regs->xss & 0xffff; ++ savesegment(gs, gs); ++ } else { ++ esp = (unsigned long) (®s->esp); ++ savesegment(ss, ss); ++ savesegment(gs, gs); ++ } ++ ++ printk("\n"); ++ printk("Pid: %d, comm: %s %s (%s %.*s)\n", ++ task_pid_nr(current), current->comm, ++ print_tainted(), init_utsname()->release, ++ (int)strcspn(init_utsname()->version, " "), ++ init_utsname()->version); ++ ++ printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", ++ 0xffff & regs->xcs, regs->eip, regs->eflags, ++ smp_processor_id()); ++ print_symbol("EIP is at %s\n", regs->eip); ++ ++ printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", ++ regs->eax, regs->ebx, regs->ecx, regs->edx); ++ printk("ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n", ++ regs->esi, regs->edi, regs->ebp, esp); ++ printk(" DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n", ++ regs->xds & 0xffff, regs->xes & 0xffff, ++ regs->xfs & 0xffff, gs, ss); ++ ++ if (!all) ++ return; ++ ++ cr0 = read_cr0(); ++ cr2 = read_cr2(); ++ cr3 = read_cr3(); ++ cr4 = read_cr4_safe(); ++ printk("CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", ++ cr0, cr2, cr3, cr4); ++ ++ get_debugreg(d0, 0); ++ get_debugreg(d1, 1); ++ get_debugreg(d2, 2); ++ get_debugreg(d3, 3); ++ printk("DR0: %08lx DR1: %08lx DR2: %08lx DR3: %08lx\n", ++ d0, d1, d2, d3); ++ ++ get_debugreg(d6, 6); ++ get_debugreg(d7, 7); ++ printk("DR6: %08lx DR7: %08lx\n", ++ d6, d7); ++} ++ ++void show_regs(struct pt_regs *regs) ++{ ++ __show_registers(regs, 1); ++ show_trace(NULL, regs, ®s->esp); ++} ++ ++/* ++ * This gets run with %ebx containing the ++ * function to call, and %edx containing ++ * the "args". ++ */ ++extern void kernel_thread_helper(void); ++ ++/* ++ * Create a kernel thread ++ */ ++int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) ++{ ++ struct pt_regs regs; ++ ++ memset(®s, 0, sizeof(regs)); ++ ++ regs.ebx = (unsigned long) fn; ++ regs.edx = (unsigned long) arg; ++ ++ regs.xds = __USER_DS; ++ regs.xes = __USER_DS; ++ regs.xfs = __KERNEL_PERCPU; ++ regs.orig_eax = -1; ++ regs.eip = (unsigned long) kernel_thread_helper; ++ regs.xcs = __KERNEL_CS | get_kernel_rpl(); ++ regs.eflags = X86_EFLAGS_IF | X86_EFLAGS_SF | X86_EFLAGS_PF | 0x2; ++ ++ /* Ok, create the new process.. */ ++ return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, ®s, 0, NULL, NULL); ++} ++EXPORT_SYMBOL(kernel_thread); ++ ++/* ++ * Free current thread data structures etc.. ++ */ ++void exit_thread(void) ++{ ++ /* The process may have allocated an io port bitmap... nuke it. */ ++ if (unlikely(test_thread_flag(TIF_IO_BITMAP))) { ++ struct task_struct *tsk = current; ++ struct thread_struct *t = &tsk->thread; ++ struct physdev_set_iobitmap set_iobitmap; ++ memset(&set_iobitmap, 0, sizeof(set_iobitmap)); ++ HYPERVISOR_physdev_op(PHYSDEVOP_set_iobitmap, &set_iobitmap); ++ kfree(t->io_bitmap_ptr); ++ t->io_bitmap_ptr = NULL; ++ clear_thread_flag(TIF_IO_BITMAP); ++ } ++} ++ ++void flush_thread(void) ++{ ++ struct task_struct *tsk = current; ++ ++ memset(tsk->thread.debugreg, 0, sizeof(unsigned long)*8); ++ memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); ++ clear_tsk_thread_flag(tsk, TIF_DEBUG); ++ /* ++ * Forget coprocessor state.. ++ */ ++ clear_fpu(tsk); ++ clear_used_math(); ++} ++ ++void release_thread(struct task_struct *dead_task) ++{ ++ BUG_ON(dead_task->mm); ++ release_vm86_irqs(dead_task); ++} ++ ++/* ++ * This gets called before we allocate a new thread and copy ++ * the current task into it. ++ */ ++void prepare_to_copy(struct task_struct *tsk) ++{ ++ unlazy_fpu(tsk); ++} ++ ++int copy_thread(int nr, unsigned long clone_flags, unsigned long esp, ++ unsigned long unused, ++ struct task_struct * p, struct pt_regs * regs) ++{ ++ struct pt_regs * childregs; ++ struct task_struct *tsk; ++ int err; ++ ++ childregs = task_pt_regs(p); ++ *childregs = *regs; ++ childregs->eax = 0; ++ childregs->esp = esp; ++ ++ p->thread.esp = (unsigned long) childregs; ++ p->thread.esp0 = (unsigned long) (childregs+1); ++ ++ p->thread.eip = (unsigned long) ret_from_fork; ++ ++ savesegment(gs,p->thread.gs); ++ ++ tsk = current; ++ if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) { ++ p->thread.io_bitmap_ptr = kmemdup(tsk->thread.io_bitmap_ptr, ++ IO_BITMAP_BYTES, GFP_KERNEL); ++ if (!p->thread.io_bitmap_ptr) { ++ p->thread.io_bitmap_max = 0; ++ return -ENOMEM; ++ } ++ set_tsk_thread_flag(p, TIF_IO_BITMAP); ++ } ++ ++ /* ++ * Set a new TLS for the child thread? ++ */ ++ if (clone_flags & CLONE_SETTLS) { ++ struct desc_struct *desc; ++ struct user_desc info; ++ int idx; ++ ++ err = -EFAULT; ++ if (copy_from_user(&info, (void __user *)childregs->esi, sizeof(info))) ++ goto out; ++ err = -EINVAL; ++ if (LDT_empty(&info)) ++ goto out; ++ ++ idx = info.entry_number; ++ if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) ++ goto out; ++ ++ desc = p->thread.tls_array + idx - GDT_ENTRY_TLS_MIN; ++ desc->a = LDT_entry_a(&info); ++ desc->b = LDT_entry_b(&info); ++ } ++ ++ p->thread.iopl = current->thread.iopl; ++ ++ err = 0; ++ out: ++ if (err && p->thread.io_bitmap_ptr) { ++ kfree(p->thread.io_bitmap_ptr); ++ p->thread.io_bitmap_max = 0; ++ } ++ return err; ++} ++ ++/* ++ * fill in the user structure for a core dump.. ++ */ ++void dump_thread(struct pt_regs * regs, struct user * dump) ++{ ++ int i; ++ ++/* changed the size calculations - should hopefully work better. lbt */ ++ dump->magic = CMAGIC; ++ dump->start_code = 0; ++ dump->start_stack = regs->esp & ~(PAGE_SIZE - 1); ++ dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT; ++ dump->u_dsize = ((unsigned long) (current->mm->brk + (PAGE_SIZE-1))) >> PAGE_SHIFT; ++ dump->u_dsize -= dump->u_tsize; ++ dump->u_ssize = 0; ++ for (i = 0; i < 8; i++) ++ dump->u_debugreg[i] = current->thread.debugreg[i]; ++ ++ if (dump->start_stack < TASK_SIZE) ++ dump->u_ssize = ((unsigned long) (TASK_SIZE - dump->start_stack)) >> PAGE_SHIFT; ++ ++ dump->regs.ebx = regs->ebx; ++ dump->regs.ecx = regs->ecx; ++ dump->regs.edx = regs->edx; ++ dump->regs.esi = regs->esi; ++ dump->regs.edi = regs->edi; ++ dump->regs.ebp = regs->ebp; ++ dump->regs.eax = regs->eax; ++ dump->regs.ds = regs->xds; ++ dump->regs.es = regs->xes; ++ dump->regs.fs = regs->xfs; ++ savesegment(gs,dump->regs.gs); ++ dump->regs.orig_eax = regs->orig_eax; ++ dump->regs.eip = regs->eip; ++ dump->regs.cs = regs->xcs; ++ dump->regs.eflags = regs->eflags; ++ dump->regs.esp = regs->esp; ++ dump->regs.ss = regs->xss; ++ ++ dump->u_fpvalid = dump_fpu (regs, &dump->i387); ++} ++EXPORT_SYMBOL(dump_thread); ++ ++/* ++ * Capture the user space registers if the task is not running (in user space) ++ */ ++int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs) ++{ ++ struct pt_regs ptregs = *task_pt_regs(tsk); ++ ptregs.xcs &= 0xffff; ++ ptregs.xds &= 0xffff; ++ ptregs.xes &= 0xffff; ++ ptregs.xss &= 0xffff; ++ ++ elf_core_copy_regs(regs, &ptregs); ++ ++ return 1; ++} ++ ++#ifdef CONFIG_SECCOMP ++void hard_disable_TSC(void) ++{ ++ write_cr4(read_cr4() | X86_CR4_TSD); ++} ++void disable_TSC(void) ++{ ++ preempt_disable(); ++ if (!test_and_set_thread_flag(TIF_NOTSC)) ++ /* ++ * Must flip the CPU state synchronously with ++ * TIF_NOTSC in the current running context. ++ */ ++ hard_disable_TSC(); ++ preempt_enable(); ++} ++void hard_enable_TSC(void) ++{ ++ write_cr4(read_cr4() & ~X86_CR4_TSD); ++} ++#endif /* CONFIG_SECCOMP */ ++ ++static noinline void ++__switch_to_xtra(struct task_struct *prev_p, struct task_struct *next_p) ++{ ++ struct thread_struct *next; ++ ++ next = &next_p->thread; ++ ++ if (test_tsk_thread_flag(next_p, TIF_DEBUG)) { ++ set_debugreg(next->debugreg[0], 0); ++ set_debugreg(next->debugreg[1], 1); ++ set_debugreg(next->debugreg[2], 2); ++ set_debugreg(next->debugreg[3], 3); ++ /* no 4 and 5 */ ++ set_debugreg(next->debugreg[6], 6); ++ set_debugreg(next->debugreg[7], 7); ++ } ++ ++#ifdef CONFIG_SECCOMP ++ if (test_tsk_thread_flag(prev_p, TIF_NOTSC) ^ ++ test_tsk_thread_flag(next_p, TIF_NOTSC)) { ++ /* prev and next are different */ ++ if (test_tsk_thread_flag(next_p, TIF_NOTSC)) ++ hard_disable_TSC(); ++ else ++ hard_enable_TSC(); ++ } ++#endif ++} ++ ++/* ++ * switch_to(x,yn) should switch tasks from x to y. ++ * ++ * We fsave/fwait so that an exception goes off at the right time ++ * (as a call from the fsave or fwait in effect) rather than to ++ * the wrong process. Lazy FP saving no longer makes any sense ++ * with modern CPU's, and this simplifies a lot of things (SMP ++ * and UP become the same). ++ * ++ * NOTE! We used to use the x86 hardware context switching. The ++ * reason for not using it any more becomes apparent when you ++ * try to recover gracefully from saved state that is no longer ++ * valid (stale segment register values in particular). With the ++ * hardware task-switch, there is no way to fix up bad state in ++ * a reasonable manner. ++ * ++ * The fact that Intel documents the hardware task-switching to ++ * be slow is a fairly red herring - this code is not noticeably ++ * faster. However, there _is_ some room for improvement here, ++ * so the performance issues may eventually be a valid point. ++ * More important, however, is the fact that this allows us much ++ * more flexibility. ++ * ++ * The return value (in %eax) will be the "prev" task after ++ * the task-switch, and shows up in ret_from_fork in entry.S, ++ * for example. ++ */ ++struct task_struct fastcall * __switch_to(struct task_struct *prev_p, struct task_struct *next_p) ++{ ++ struct thread_struct *prev = &prev_p->thread, ++ *next = &next_p->thread; ++ int cpu = smp_processor_id(); ++#ifndef CONFIG_X86_NO_TSS ++ struct tss_struct *tss = &per_cpu(init_tss, cpu); ++#endif ++ struct physdev_set_iopl iopl_op; ++ struct physdev_set_iobitmap iobmp_op; ++ multicall_entry_t _mcl[8], *mcl = _mcl; ++ ++ /* XEN NOTE: FS/GS saved in switch_mm(), not here. */ ++ ++ /* ++ * This is basically '__unlazy_fpu', except that we queue a ++ * multicall to indicate FPU task switch, rather than ++ * synchronously trapping to Xen. ++ */ ++ if (task_thread_info(prev_p)->status & TS_USEDFPU) { ++ __save_init_fpu(prev_p); /* _not_ save_init_fpu() */ ++ mcl->op = __HYPERVISOR_fpu_taskswitch; ++ mcl->args[0] = 1; ++ mcl++; ++ } ++#if 0 /* lazy fpu sanity check */ ++ else BUG_ON(!(read_cr0() & 8)); ++#endif ++ ++ /* ++ * Reload esp0. ++ * This is load_esp0(tss, next) with a multicall. ++ */ ++ mcl->op = __HYPERVISOR_stack_switch; ++ mcl->args[0] = __KERNEL_DS; ++ mcl->args[1] = next->esp0; ++ mcl++; ++ ++ /* ++ * Load the per-thread Thread-Local Storage descriptor. ++ * This is load_TLS(next, cpu) with multicalls. ++ */ ++#define C(i) do { \ ++ if (unlikely(next->tls_array[i].a != prev->tls_array[i].a || \ ++ next->tls_array[i].b != prev->tls_array[i].b)) { \ ++ mcl->op = __HYPERVISOR_update_descriptor; \ ++ *(u64 *)&mcl->args[0] = virt_to_machine( \ ++ &get_cpu_gdt_table(cpu)[GDT_ENTRY_TLS_MIN + i]);\ ++ *(u64 *)&mcl->args[2] = *(u64 *)&next->tls_array[i]; \ ++ mcl++; \ ++ } \ ++} while (0) ++ C(0); C(1); C(2); ++#undef C ++ ++ if (unlikely(prev->iopl != next->iopl)) { ++ iopl_op.iopl = (next->iopl == 0) ? 1 : (next->iopl >> 12) & 3; ++ mcl->op = __HYPERVISOR_physdev_op; ++ mcl->args[0] = PHYSDEVOP_set_iopl; ++ mcl->args[1] = (unsigned long)&iopl_op; ++ mcl++; ++ } ++ ++ if (unlikely(prev->io_bitmap_ptr || next->io_bitmap_ptr)) { ++ set_xen_guest_handle(iobmp_op.bitmap, ++ (char *)next->io_bitmap_ptr); ++ iobmp_op.nr_ports = next->io_bitmap_ptr ? IO_BITMAP_BITS : 0; ++ mcl->op = __HYPERVISOR_physdev_op; ++ mcl->args[0] = PHYSDEVOP_set_iobitmap; ++ mcl->args[1] = (unsigned long)&iobmp_op; ++ mcl++; ++ } ++ ++ (void)HYPERVISOR_multicall(_mcl, mcl - _mcl); ++ ++ /* we're going to use this soon, after a few expensive things */ ++ if (next_p->fpu_counter > 5) ++ prefetch(&next->i387.fxsave); ++ ++ /* ++ * Now maybe handle debug registers ++ */ ++ if (unlikely(task_thread_info(prev_p)->flags & _TIF_WORK_CTXSW_PREV || ++ task_thread_info(next_p)->flags & _TIF_WORK_CTXSW_NEXT)) ++ __switch_to_xtra(prev_p, next_p); ++ ++ /* ++ * Leave lazy mode, flushing any hypercalls made here. ++ * This must be done before restoring TLS segments so ++ * the GDT and LDT are properly updated, and must be ++ * done before math_state_restore, so the TS bit is up ++ * to date. ++ */ ++ arch_leave_lazy_cpu_mode(); ++ ++ /* If the task has used fpu the last 5 timeslices, just do a full ++ * restore of the math state immediately to avoid the trap; the ++ * chances of needing FPU soon are obviously high now ++ */ ++ if (next_p->fpu_counter > 5) ++ math_state_restore(); ++ ++ /* ++ * Restore %gs if needed (which is common) ++ */ ++ if (prev->gs | next->gs) ++ loadsegment(gs, next->gs); ++ ++ x86_write_percpu(current_task, next_p); ++ ++ return prev_p; ++} ++ ++asmlinkage int sys_fork(struct pt_regs regs) ++{ ++ return do_fork(SIGCHLD, regs.esp, ®s, 0, NULL, NULL); ++} ++ ++asmlinkage int sys_clone(struct pt_regs regs) ++{ ++ unsigned long clone_flags; ++ unsigned long newsp; ++ int __user *parent_tidptr, *child_tidptr; ++ ++ clone_flags = regs.ebx; ++ newsp = regs.ecx; ++ parent_tidptr = (int __user *)regs.edx; ++ child_tidptr = (int __user *)regs.edi; ++ if (!newsp) ++ newsp = regs.esp; ++ return do_fork(clone_flags, newsp, ®s, 0, parent_tidptr, child_tidptr); ++} ++ ++/* ++ * This is trivial, and on the face of it looks like it ++ * could equally well be done in user mode. ++ * ++ * Not so, for quite unobvious reasons - register pressure. ++ * In user mode vfork() cannot have a stack frame, and if ++ * done by calling the "clone()" system call directly, you ++ * do not have enough call-clobbered registers to hold all ++ * the information you need. ++ */ ++asmlinkage int sys_vfork(struct pt_regs regs) ++{ ++ return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs.esp, ®s, 0, NULL, NULL); ++} ++ ++/* ++ * sys_execve() executes a new program. ++ */ ++asmlinkage int sys_execve(struct pt_regs regs) ++{ ++ int error; ++ char * filename; ++ ++ filename = getname((char __user *) regs.ebx); ++ error = PTR_ERR(filename); ++ if (IS_ERR(filename)) ++ goto out; ++ error = do_execve(filename, ++ (char __user * __user *) regs.ecx, ++ (char __user * __user *) regs.edx, ++ ®s); ++ if (error == 0) { ++ task_lock(current); ++ current->ptrace &= ~PT_DTRACE; ++ task_unlock(current); ++ /* Make sure we don't return using sysenter.. */ ++ set_thread_flag(TIF_IRET); ++ } ++ putname(filename); ++out: ++ return error; ++} ++ ++#define top_esp (THREAD_SIZE - sizeof(unsigned long)) ++#define top_ebp (THREAD_SIZE - 2*sizeof(unsigned long)) ++ ++unsigned long get_wchan(struct task_struct *p) ++{ ++ unsigned long ebp, esp, eip; ++ unsigned long stack_page; ++ int count = 0; ++ if (!p || p == current || p->state == TASK_RUNNING) ++ return 0; ++ stack_page = (unsigned long)task_stack_page(p); ++ esp = p->thread.esp; ++ if (!stack_page || esp < stack_page || esp > top_esp+stack_page) ++ return 0; ++ /* include/asm-i386/system.h:switch_to() pushes ebp last. */ ++ ebp = *(unsigned long *) esp; ++ do { ++ if (ebp < stack_page || ebp > top_ebp+stack_page) ++ return 0; ++ eip = *(unsigned long *) (ebp+4); ++ if (!in_sched_functions(eip)) ++ return eip; ++ ebp = *(unsigned long *) ebp; ++ } while (count++ < 16); ++ return 0; ++} ++ ++/* ++ * sys_alloc_thread_area: get a yet unused TLS descriptor index. ++ */ ++static int get_free_idx(void) ++{ ++ struct thread_struct *t = ¤t->thread; ++ int idx; ++ ++ for (idx = 0; idx < GDT_ENTRY_TLS_ENTRIES; idx++) ++ if (desc_empty(t->tls_array + idx)) ++ return idx + GDT_ENTRY_TLS_MIN; ++ return -ESRCH; ++} ++ ++/* ++ * Set a given TLS descriptor: ++ */ ++asmlinkage int sys_set_thread_area(struct user_desc __user *u_info) ++{ ++ struct thread_struct *t = ¤t->thread; ++ struct user_desc info; ++ struct desc_struct *desc; ++ int cpu, idx; ++ ++ if (copy_from_user(&info, u_info, sizeof(info))) ++ return -EFAULT; ++ idx = info.entry_number; ++ ++ /* ++ * index -1 means the kernel should try to find and ++ * allocate an empty descriptor: ++ */ ++ if (idx == -1) { ++ idx = get_free_idx(); ++ if (idx < 0) ++ return idx; ++ if (put_user(idx, &u_info->entry_number)) ++ return -EFAULT; ++ } ++ ++ if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) ++ return -EINVAL; ++ ++ desc = t->tls_array + idx - GDT_ENTRY_TLS_MIN; ++ ++ /* ++ * We must not get preempted while modifying the TLS. ++ */ ++ cpu = get_cpu(); ++ ++ if (LDT_empty(&info)) { ++ desc->a = 0; ++ desc->b = 0; ++ } else { ++ desc->a = LDT_entry_a(&info); ++ desc->b = LDT_entry_b(&info); ++ } ++ load_TLS(t, cpu); ++ ++ put_cpu(); ++ ++ return 0; ++} ++ ++/* ++ * Get the current Thread-Local Storage area: ++ */ ++ ++#define GET_BASE(desc) ( \ ++ (((desc)->a >> 16) & 0x0000ffff) | \ ++ (((desc)->b << 16) & 0x00ff0000) | \ ++ ( (desc)->b & 0xff000000) ) ++ ++#define GET_LIMIT(desc) ( \ ++ ((desc)->a & 0x0ffff) | \ ++ ((desc)->b & 0xf0000) ) ++ ++#define GET_32BIT(desc) (((desc)->b >> 22) & 1) ++#define GET_CONTENTS(desc) (((desc)->b >> 10) & 3) ++#define GET_WRITABLE(desc) (((desc)->b >> 9) & 1) ++#define GET_LIMIT_PAGES(desc) (((desc)->b >> 23) & 1) ++#define GET_PRESENT(desc) (((desc)->b >> 15) & 1) ++#define GET_USEABLE(desc) (((desc)->b >> 20) & 1) ++ ++asmlinkage int sys_get_thread_area(struct user_desc __user *u_info) ++{ ++ struct user_desc info; ++ struct desc_struct *desc; ++ int idx; ++ ++ if (get_user(idx, &u_info->entry_number)) ++ return -EFAULT; ++ if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) ++ return -EINVAL; ++ ++ memset(&info, 0, sizeof(info)); ++ ++ desc = current->thread.tls_array + idx - GDT_ENTRY_TLS_MIN; ++ ++ info.entry_number = idx; ++ info.base_addr = GET_BASE(desc); ++ info.limit = GET_LIMIT(desc); ++ info.seg_32bit = GET_32BIT(desc); ++ info.contents = GET_CONTENTS(desc); ++ info.read_exec_only = !GET_WRITABLE(desc); ++ info.limit_in_pages = GET_LIMIT_PAGES(desc); ++ info.seg_not_present = !GET_PRESENT(desc); ++ info.useable = GET_USEABLE(desc); ++ ++ if (copy_to_user(u_info, &info, sizeof(info))) ++ return -EFAULT; ++ return 0; ++} ++ ++unsigned long arch_align_stack(unsigned long sp) ++{ ++ if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) ++ sp -= get_random_int() % 8192; ++ return sp & ~0xf; ++} +diff -Naur ubuntu-hardy/arch/x86/kernel/process_64-xen.c ubuntu-hardy-xen/arch/x86/kernel/process_64-xen.c +--- ubuntu-hardy/arch/x86/kernel/process_64-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/process_64-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,884 @@ ++/* ++ * Copyright (C) 1995 Linus Torvalds ++ * ++ * Pentium III FXSR, SSE support ++ * Gareth Hughes , May 2000 ++ * ++ * X86-64 port ++ * Andi Kleen. ++ * ++ * CPU hotplug support - ashok.raj@intel.com ++ * ++ * Jun Nakajima ++ * Modified for Xen ++ */ ++ ++/* ++ * This file handles the architecture-dependent parts of process handling.. ++ */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++asmlinkage extern void ret_from_fork(void); ++ ++unsigned long kernel_thread_flags = CLONE_VM | CLONE_UNTRACED; ++ ++unsigned long boot_option_idle_override = 0; ++EXPORT_SYMBOL(boot_option_idle_override); ++ ++/* ++ * Powermanagement idle function, if any.. ++ */ ++void (*pm_idle)(void); ++EXPORT_SYMBOL(pm_idle); ++static DEFINE_PER_CPU(unsigned int, cpu_idle_state); ++ ++static ATOMIC_NOTIFIER_HEAD(idle_notifier); ++ ++void idle_notifier_register(struct notifier_block *n) ++{ ++ atomic_notifier_chain_register(&idle_notifier, n); ++} ++EXPORT_SYMBOL_GPL(idle_notifier_register); ++ ++void idle_notifier_unregister(struct notifier_block *n) ++{ ++ atomic_notifier_chain_unregister(&idle_notifier, n); ++} ++EXPORT_SYMBOL(idle_notifier_unregister); ++ ++void enter_idle(void) ++{ ++ write_pda(isidle, 1); ++ atomic_notifier_call_chain(&idle_notifier, IDLE_START, NULL); ++} ++ ++static void __exit_idle(void) ++{ ++ if (test_and_clear_bit_pda(0, isidle) == 0) ++ return; ++ atomic_notifier_call_chain(&idle_notifier, IDLE_END, NULL); ++} ++ ++/* Called from interrupts to signify idle end */ ++void exit_idle(void) ++{ ++ /* idle loop has pid 0 */ ++ if (current->pid) ++ return; ++ __exit_idle(); ++} ++ ++/* ++ * On SMP it's slightly faster (but much more power-consuming!) ++ * to poll the ->need_resched flag instead of waiting for the ++ * cross-CPU IPI to arrive. Use this option with caution. ++ */ ++static void poll_idle (void) ++{ ++ local_irq_enable(); ++ cpu_relax(); ++} ++ ++static void xen_idle(void) ++{ ++ current_thread_info()->status &= ~TS_POLLING; ++ /* ++ * TS_POLLING-cleared state must be visible before we ++ * test NEED_RESCHED: ++ */ ++ smp_mb(); ++ local_irq_disable(); ++ if (!need_resched()) ++ safe_halt(); ++ else ++ local_irq_enable(); ++ current_thread_info()->status |= TS_POLLING; ++} ++ ++#ifdef CONFIG_HOTPLUG_CPU ++static inline void play_dead(void) ++{ ++ idle_task_exit(); ++ local_irq_disable(); ++ cpu_clear(smp_processor_id(), cpu_initialized); ++ preempt_enable_no_resched(); ++ HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); ++ cpu_bringup(); ++} ++#else ++static inline void play_dead(void) ++{ ++ BUG(); ++} ++#endif /* CONFIG_HOTPLUG_CPU */ ++ ++/* ++ * The idle thread. There's no useful work to be ++ * done, so just try to conserve power and have a ++ * low exit latency (ie sit in a loop waiting for ++ * somebody to say that they'd like to reschedule) ++ */ ++void cpu_idle (void) ++{ ++ current_thread_info()->status |= TS_POLLING; ++ /* endless idle loop with no priority at all */ ++ while (1) { ++ while (!need_resched()) { ++ void (*idle)(void); ++ ++ if (__get_cpu_var(cpu_idle_state)) ++ __get_cpu_var(cpu_idle_state) = 0; ++ ++ tick_nohz_stop_sched_tick(); ++ ++ rmb(); ++ idle = xen_idle; /* no alternatives */ ++ if (cpu_is_offline(smp_processor_id())) ++ play_dead(); ++ /* ++ * Idle routines should keep interrupts disabled ++ * from here on, until they go to idle. ++ * Otherwise, idle callbacks can misfire. ++ */ ++ local_irq_disable(); ++ enter_idle(); ++ idle(); ++ /* In many cases the interrupt that ended idle ++ has already called exit_idle. But some idle ++ loops can be woken up without interrupt. */ ++ __exit_idle(); ++ } ++ ++ tick_nohz_restart_sched_tick(); ++ preempt_enable_no_resched(); ++ schedule(); ++ preempt_disable(); ++ } ++} ++ ++void cpu_idle_wait(void) ++{ ++ unsigned int cpu, this_cpu = get_cpu(); ++ cpumask_t map, tmp = current->cpus_allowed; ++ ++ set_cpus_allowed(current, cpumask_of_cpu(this_cpu)); ++ put_cpu(); ++ ++ cpus_clear(map); ++ for_each_online_cpu(cpu) { ++ per_cpu(cpu_idle_state, cpu) = 1; ++ cpu_set(cpu, map); ++ } ++ ++ __get_cpu_var(cpu_idle_state) = 0; ++ ++ wmb(); ++ do { ++ ssleep(1); ++ for_each_online_cpu(cpu) { ++ if (cpu_isset(cpu, map) && ++ !per_cpu(cpu_idle_state, cpu)) ++ cpu_clear(cpu, map); ++ } ++ cpus_and(map, map, cpu_online_map); ++ } while (!cpus_empty(map)); ++ ++ set_cpus_allowed(current, tmp); ++} ++EXPORT_SYMBOL_GPL(cpu_idle_wait); ++ ++void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c) ++{ ++} ++ ++static int __init idle_setup (char *str) ++{ ++ if (!strcmp(str, "poll")) { ++ printk("using polling idle threads.\n"); ++ pm_idle = poll_idle; ++ } else if (!strcmp(str, "mwait")) ++ force_mwait = 1; ++ else ++ return -1; ++ ++ boot_option_idle_override = 1; ++ return 0; ++} ++early_param("idle", idle_setup); ++ ++/* Prints also some state that isn't saved in the pt_regs */ ++void __show_regs(struct pt_regs * regs) ++{ ++ unsigned long fs, gs, shadowgs; ++ unsigned long d0, d1, d2, d3, d6, d7; ++ unsigned int fsindex,gsindex; ++ unsigned int ds,cs,es; ++ ++ printk("\n"); ++ print_modules(); ++ printk("Pid: %d, comm: %.20s %s %s %.*s\n", ++ current->pid, current->comm, print_tainted(), ++ init_utsname()->release, ++ (int)strcspn(init_utsname()->version, " "), ++ init_utsname()->version); ++ printk("RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->rip); ++ printk_address(regs->rip); ++ printk("RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, regs->rsp, ++ regs->eflags); ++ printk("RAX: %016lx RBX: %016lx RCX: %016lx\n", ++ regs->rax, regs->rbx, regs->rcx); ++ printk("RDX: %016lx RSI: %016lx RDI: %016lx\n", ++ regs->rdx, regs->rsi, regs->rdi); ++ printk("RBP: %016lx R08: %016lx R09: %016lx\n", ++ regs->rbp, regs->r8, regs->r9); ++ printk("R10: %016lx R11: %016lx R12: %016lx\n", ++ regs->r10, regs->r11, regs->r12); ++ printk("R13: %016lx R14: %016lx R15: %016lx\n", ++ regs->r13, regs->r14, regs->r15); ++ ++ asm("mov %%ds,%0" : "=r" (ds)); ++ asm("mov %%cs,%0" : "=r" (cs)); ++ asm("mov %%es,%0" : "=r" (es)); ++ asm("mov %%fs,%0" : "=r" (fsindex)); ++ asm("mov %%gs,%0" : "=r" (gsindex)); ++ ++ rdmsrl(MSR_FS_BASE, fs); ++ rdmsrl(MSR_GS_BASE, gs); ++ rdmsrl(MSR_KERNEL_GS_BASE, shadowgs); ++ ++ printk("FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", ++ fs,fsindex,gs,gsindex,shadowgs); ++ printk("CS: %04x DS: %04x ES: %04x\n", cs, ds, es); ++ ++ get_debugreg(d0, 0); ++ get_debugreg(d1, 1); ++ get_debugreg(d2, 2); ++ printk("DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2); ++ get_debugreg(d3, 3); ++ get_debugreg(d6, 6); ++ get_debugreg(d7, 7); ++ printk("DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7); ++} ++ ++void show_regs(struct pt_regs *regs) ++{ ++ printk("CPU %d:", smp_processor_id()); ++ __show_regs(regs); ++ show_trace(NULL, regs, (void *)(regs + 1)); ++} ++ ++/* ++ * Free current thread data structures etc.. ++ */ ++void exit_thread(void) ++{ ++ struct task_struct *me = current; ++ struct thread_struct *t = &me->thread; ++ ++ if (me->thread.io_bitmap_ptr) { ++#ifndef CONFIG_X86_NO_TSS ++ struct tss_struct *tss = &per_cpu(init_tss, get_cpu()); ++#endif ++#ifdef CONFIG_XEN ++ struct physdev_set_iobitmap iobmp_op; ++ memset(&iobmp_op, 0, sizeof(iobmp_op)); ++#endif ++ ++ kfree(t->io_bitmap_ptr); ++ t->io_bitmap_ptr = NULL; ++ clear_thread_flag(TIF_IO_BITMAP); ++ /* ++ * Careful, clear this in the TSS too: ++ */ ++#ifndef CONFIG_X86_NO_TSS ++ memset(tss->io_bitmap, 0xff, t->io_bitmap_max); ++ put_cpu(); ++#endif ++#ifdef CONFIG_XEN ++ HYPERVISOR_physdev_op(PHYSDEVOP_set_iobitmap, &iobmp_op); ++#endif ++ t->io_bitmap_max = 0; ++ } ++} ++ ++void load_gs_index(unsigned gs) ++{ ++ HYPERVISOR_set_segment_base(SEGBASE_GS_USER_SEL, gs); ++} ++ ++void flush_thread(void) ++{ ++ struct task_struct *tsk = current; ++ ++ if (test_tsk_thread_flag(tsk, TIF_ABI_PENDING)) { ++ clear_tsk_thread_flag(tsk, TIF_ABI_PENDING); ++ if (test_tsk_thread_flag(tsk, TIF_IA32)) { ++ clear_tsk_thread_flag(tsk, TIF_IA32); ++ } else { ++ set_tsk_thread_flag(tsk, TIF_IA32); ++ current_thread_info()->status |= TS_COMPAT; ++ } ++ } ++ clear_tsk_thread_flag(tsk, TIF_DEBUG); ++ ++ tsk->thread.debugreg0 = 0; ++ tsk->thread.debugreg1 = 0; ++ tsk->thread.debugreg2 = 0; ++ tsk->thread.debugreg3 = 0; ++ tsk->thread.debugreg6 = 0; ++ tsk->thread.debugreg7 = 0; ++ memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); ++ /* ++ * Forget coprocessor state.. ++ */ ++ clear_fpu(tsk); ++ clear_used_math(); ++} ++ ++void release_thread(struct task_struct *dead_task) ++{ ++ if (dead_task->mm) { ++ if (dead_task->mm->context.size) { ++ printk("WARNING: dead process %8s still has LDT? <%p/%d>\n", ++ dead_task->comm, ++ dead_task->mm->context.ldt, ++ dead_task->mm->context.size); ++ BUG(); ++ } ++ } ++} ++ ++static inline void set_32bit_tls(struct task_struct *t, int tls, u32 addr) ++{ ++ struct user_desc ud = { ++ .base_addr = addr, ++ .limit = 0xfffff, ++ .seg_32bit = 1, ++ .limit_in_pages = 1, ++ .useable = 1, ++ }; ++ struct n_desc_struct *desc = (void *)t->thread.tls_array; ++ desc += tls; ++ desc->a = LDT_entry_a(&ud); ++ desc->b = LDT_entry_b(&ud); ++} ++ ++static inline u32 read_32bit_tls(struct task_struct *t, int tls) ++{ ++ struct desc_struct *desc = (void *)t->thread.tls_array; ++ desc += tls; ++ return desc->base0 | ++ (((u32)desc->base1) << 16) | ++ (((u32)desc->base2) << 24); ++} ++ ++/* ++ * This gets called before we allocate a new thread and copy ++ * the current task into it. ++ */ ++void prepare_to_copy(struct task_struct *tsk) ++{ ++ unlazy_fpu(tsk); ++} ++ ++int copy_thread(int nr, unsigned long clone_flags, unsigned long rsp, ++ unsigned long unused, ++ struct task_struct * p, struct pt_regs * regs) ++{ ++ int err; ++ struct pt_regs * childregs; ++ struct task_struct *me = current; ++ ++ childregs = ((struct pt_regs *) ++ (THREAD_SIZE + task_stack_page(p))) - 1; ++ *childregs = *regs; ++ ++ childregs->rax = 0; ++ childregs->rsp = rsp; ++ if (rsp == ~0UL) ++ childregs->rsp = (unsigned long)childregs; ++ ++ p->thread.rsp = (unsigned long) childregs; ++ p->thread.rsp0 = (unsigned long) (childregs+1); ++ p->thread.userrsp = me->thread.userrsp; ++ ++ set_tsk_thread_flag(p, TIF_FORK); ++ ++ p->thread.fs = me->thread.fs; ++ p->thread.gs = me->thread.gs; ++ ++ asm("mov %%gs,%0" : "=m" (p->thread.gsindex)); ++ asm("mov %%fs,%0" : "=m" (p->thread.fsindex)); ++ asm("mov %%es,%0" : "=m" (p->thread.es)); ++ asm("mov %%ds,%0" : "=m" (p->thread.ds)); ++ ++ if (unlikely(test_tsk_thread_flag(me, TIF_IO_BITMAP))) { ++ p->thread.io_bitmap_ptr = kmalloc(IO_BITMAP_BYTES, GFP_KERNEL); ++ if (!p->thread.io_bitmap_ptr) { ++ p->thread.io_bitmap_max = 0; ++ return -ENOMEM; ++ } ++ memcpy(p->thread.io_bitmap_ptr, me->thread.io_bitmap_ptr, ++ IO_BITMAP_BYTES); ++ set_tsk_thread_flag(p, TIF_IO_BITMAP); ++ } ++ ++ /* ++ * Set a new TLS for the child thread? ++ */ ++ if (clone_flags & CLONE_SETTLS) { ++#ifdef CONFIG_IA32_EMULATION ++ if (test_thread_flag(TIF_IA32)) ++ err = ia32_child_tls(p, childregs); ++ else ++#endif ++ err = do_arch_prctl(p, ARCH_SET_FS, childregs->r8); ++ if (err) ++ goto out; ++ } ++ p->thread.iopl = current->thread.iopl; ++ ++ err = 0; ++out: ++ if (err && p->thread.io_bitmap_ptr) { ++ kfree(p->thread.io_bitmap_ptr); ++ p->thread.io_bitmap_max = 0; ++ } ++ return err; ++} ++ ++/* ++ * This special macro can be used to load a debugging register ++ */ ++#define loaddebug(thread,r) set_debugreg(thread->debugreg ## r, r) ++ ++static inline void __switch_to_xtra(struct task_struct *prev_p, ++ struct task_struct *next_p) ++{ ++ struct thread_struct *prev, *next; ++ ++ prev = &prev_p->thread, ++ next = &next_p->thread; ++ ++ if (test_tsk_thread_flag(next_p, TIF_DEBUG)) { ++ loaddebug(next, 0); ++ loaddebug(next, 1); ++ loaddebug(next, 2); ++ loaddebug(next, 3); ++ /* no 4 and 5 */ ++ loaddebug(next, 6); ++ loaddebug(next, 7); ++ } ++} ++ ++/* ++ * switch_to(x,y) should switch tasks from x to y. ++ * ++ * This could still be optimized: ++ * - fold all the options into a flag word and test it with a single test. ++ * - could test fs/gs bitsliced ++ * ++ * Kprobes not supported here. Set the probe on schedule instead. ++ */ ++struct task_struct * ++__switch_to(struct task_struct *prev_p, struct task_struct *next_p) ++{ ++ struct thread_struct *prev = &prev_p->thread, ++ *next = &next_p->thread; ++ int cpu = smp_processor_id(); ++#ifndef CONFIG_X86_NO_TSS ++ struct tss_struct *tss = &per_cpu(init_tss, cpu); ++#endif ++ struct physdev_set_iopl iopl_op; ++ struct physdev_set_iobitmap iobmp_op; ++ multicall_entry_t _mcl[8], *mcl = _mcl; ++ ++ /* we're going to use this soon, after a few expensive things */ ++ if (next_p->fpu_counter>5) ++ prefetch(&next->i387.fxsave); ++ ++ /* ++ * This is basically '__unlazy_fpu', except that we queue a ++ * multicall to indicate FPU task switch, rather than ++ * synchronously trapping to Xen. ++ * The AMD workaround requires it to be after DS reload, or ++ * after DS has been cleared, which we do in __prepare_arch_switch. ++ */ ++ if (task_thread_info(prev_p)->status & TS_USEDFPU) { ++ __save_init_fpu(prev_p); /* _not_ save_init_fpu() */ ++ mcl->op = __HYPERVISOR_fpu_taskswitch; ++ mcl->args[0] = 1; ++ mcl++; ++ } else ++ prev_p->fpu_counter = 0; ++ ++ /* ++ * Reload esp0, LDT and the page table pointer: ++ */ ++ mcl->op = __HYPERVISOR_stack_switch; ++ mcl->args[0] = __KERNEL_DS; ++ mcl->args[1] = next->rsp0; ++ mcl++; ++ ++ /* ++ * Load the per-thread Thread-Local Storage descriptor. ++ * This is load_TLS(next, cpu) with multicalls. ++ */ ++#define C(i) do { \ ++ if (unlikely(next->tls_array[i] != prev->tls_array[i])) { \ ++ mcl->op = __HYPERVISOR_update_descriptor; \ ++ mcl->args[0] = virt_to_machine( \ ++ &cpu_gdt(cpu)[GDT_ENTRY_TLS_MIN + i]); \ ++ mcl->args[1] = next->tls_array[i]; \ ++ mcl++; \ ++ } \ ++} while (0) ++ C(0); C(1); C(2); ++#undef C ++ ++ if (unlikely(prev->iopl != next->iopl)) { ++ iopl_op.iopl = (next->iopl == 0) ? 1 : next->iopl; ++ mcl->op = __HYPERVISOR_physdev_op; ++ mcl->args[0] = PHYSDEVOP_set_iopl; ++ mcl->args[1] = (unsigned long)&iopl_op; ++ mcl++; ++ } ++ ++ if (unlikely(prev->io_bitmap_ptr || next->io_bitmap_ptr)) { ++ set_xen_guest_handle(iobmp_op.bitmap, ++ (char *)next->io_bitmap_ptr); ++ iobmp_op.nr_ports = next->io_bitmap_ptr ? IO_BITMAP_BITS : 0; ++ mcl->op = __HYPERVISOR_physdev_op; ++ mcl->args[0] = PHYSDEVOP_set_iobitmap; ++ mcl->args[1] = (unsigned long)&iobmp_op; ++ mcl++; ++ } ++ ++ (void)HYPERVISOR_multicall(_mcl, mcl - _mcl); ++ /* ++ * Switch DS and ES. ++ * This won't pick up thread selector changes, but I guess that is ok. ++ */ ++ if (unlikely(next->es)) ++ loadsegment(es, next->es); ++ ++ if (unlikely(next->ds)) ++ loadsegment(ds, next->ds); ++ ++ /* ++ * Switch FS and GS. ++ */ ++ if (unlikely(next->fsindex)) ++ loadsegment(fs, next->fsindex); ++ ++ if (next->fs) ++ HYPERVISOR_set_segment_base(SEGBASE_FS, next->fs); ++ ++ if (unlikely(next->gsindex)) ++ load_gs_index(next->gsindex); ++ ++ if (next->gs) ++ HYPERVISOR_set_segment_base(SEGBASE_GS_USER, next->gs); ++ ++ /* ++ * Switch the PDA context. ++ */ ++ prev->userrsp = read_pda(oldrsp); ++ write_pda(oldrsp, next->userrsp); ++ write_pda(pcurrent, next_p); ++ write_pda(kernelstack, ++ (unsigned long)task_stack_page(next_p) + THREAD_SIZE - PDA_STACKOFFSET); ++#ifdef CONFIG_CC_STACKPROTECTOR ++ write_pda(stack_canary, next_p->stack_canary); ++ ++ /* ++ * Build time only check to make sure the stack_canary is at ++ * offset 40 in the pda; this is a gcc ABI requirement ++ */ ++ BUILD_BUG_ON(offsetof(struct x8664_pda, stack_canary) != 40); ++#endif ++ ++ /* ++ * Now maybe reload the debug registers ++ */ ++ if (unlikely(task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)) ++ __switch_to_xtra(prev_p, next_p); ++ ++ /* If the task has used fpu the last 5 timeslices, just do a full ++ * restore of the math state immediately to avoid the trap; the ++ * chances of needing FPU soon are obviously high now ++ */ ++ if (next_p->fpu_counter>5) ++ math_state_restore(); ++ return prev_p; ++} ++ ++/* ++ * sys_execve() executes a new program. ++ */ ++asmlinkage ++long sys_execve(char __user *name, char __user * __user *argv, ++ char __user * __user *envp, struct pt_regs regs) ++{ ++ long error; ++ char * filename; ++ ++ filename = getname(name); ++ error = PTR_ERR(filename); ++ if (IS_ERR(filename)) ++ return error; ++ error = do_execve(filename, argv, envp, ®s); ++ if (error == 0) { ++ task_lock(current); ++ current->ptrace &= ~PT_DTRACE; ++ task_unlock(current); ++ } ++ putname(filename); ++ return error; ++} ++ ++void set_personality_64bit(void) ++{ ++ /* inherit personality from parent */ ++ ++ /* Make sure to be in 64bit mode */ ++ clear_thread_flag(TIF_IA32); ++ ++ /* TBD: overwrites user setup. Should have two bits. ++ But 64bit processes have always behaved this way, ++ so it's not too bad. The main problem is just that ++ 32bit childs are affected again. */ ++ current->personality &= ~READ_IMPLIES_EXEC; ++} ++ ++asmlinkage long sys_fork(struct pt_regs *regs) ++{ ++ return do_fork(SIGCHLD, regs->rsp, regs, 0, NULL, NULL); ++} ++ ++asmlinkage long ++sys_clone(unsigned long clone_flags, unsigned long newsp, ++ void __user *parent_tid, void __user *child_tid, struct pt_regs *regs) ++{ ++ if (!newsp) ++ newsp = regs->rsp; ++ return do_fork(clone_flags, newsp, regs, 0, parent_tid, child_tid); ++} ++ ++/* ++ * This is trivial, and on the face of it looks like it ++ * could equally well be done in user mode. ++ * ++ * Not so, for quite unobvious reasons - register pressure. ++ * In user mode vfork() cannot have a stack frame, and if ++ * done by calling the "clone()" system call directly, you ++ * do not have enough call-clobbered registers to hold all ++ * the information you need. ++ */ ++asmlinkage long sys_vfork(struct pt_regs *regs) ++{ ++ return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD, regs->rsp, regs, 0, ++ NULL, NULL); ++} ++ ++unsigned long get_wchan(struct task_struct *p) ++{ ++ unsigned long stack; ++ u64 fp,rip; ++ int count = 0; ++ ++ if (!p || p == current || p->state==TASK_RUNNING) ++ return 0; ++ stack = (unsigned long)task_stack_page(p); ++ if (p->thread.rsp < stack || p->thread.rsp > stack+THREAD_SIZE) ++ return 0; ++ fp = *(u64 *)(p->thread.rsp); ++ do { ++ if (fp < (unsigned long)stack || ++ fp > (unsigned long)stack+THREAD_SIZE) ++ return 0; ++ rip = *(u64 *)(fp+8); ++ if (!in_sched_functions(rip)) ++ return rip; ++ fp = *(u64 *)fp; ++ } while (count++ < 16); ++ return 0; ++} ++ ++long do_arch_prctl(struct task_struct *task, int code, unsigned long addr) ++{ ++ int ret = 0; ++ int doit = task == current; ++ int cpu; ++ ++ switch (code) { ++ case ARCH_SET_GS: ++ if (addr >= TASK_SIZE_OF(task)) ++ return -EPERM; ++ cpu = get_cpu(); ++ /* handle small bases via the GDT because that's faster to ++ switch. */ ++ if (addr <= 0xffffffff) { ++ set_32bit_tls(task, GS_TLS, addr); ++ if (doit) { ++ load_TLS(&task->thread, cpu); ++ load_gs_index(GS_TLS_SEL); ++ } ++ task->thread.gsindex = GS_TLS_SEL; ++ task->thread.gs = 0; ++ } else { ++ task->thread.gsindex = 0; ++ task->thread.gs = addr; ++ if (doit) { ++ load_gs_index(0); ++ ret = HYPERVISOR_set_segment_base( ++ SEGBASE_GS_USER, addr); ++ } ++ } ++ put_cpu(); ++ break; ++ case ARCH_SET_FS: ++ /* Not strictly needed for fs, but do it for symmetry ++ with gs */ ++ if (addr >= TASK_SIZE_OF(task)) ++ return -EPERM; ++ cpu = get_cpu(); ++ /* handle small bases via the GDT because that's faster to ++ switch. */ ++ if (addr <= 0xffffffff) { ++ set_32bit_tls(task, FS_TLS, addr); ++ if (doit) { ++ load_TLS(&task->thread, cpu); ++ asm volatile("movl %0,%%fs" :: "r"(FS_TLS_SEL)); ++ } ++ task->thread.fsindex = FS_TLS_SEL; ++ task->thread.fs = 0; ++ } else { ++ task->thread.fsindex = 0; ++ task->thread.fs = addr; ++ if (doit) { ++ /* set the selector to 0 to not confuse ++ __switch_to */ ++ asm volatile("movl %0,%%fs" :: "r" (0)); ++ ret = HYPERVISOR_set_segment_base(SEGBASE_FS, ++ addr); ++ } ++ } ++ put_cpu(); ++ break; ++ case ARCH_GET_FS: { ++ unsigned long base; ++ if (task->thread.fsindex == FS_TLS_SEL) ++ base = read_32bit_tls(task, FS_TLS); ++ else if (doit) ++ rdmsrl(MSR_FS_BASE, base); ++ else ++ base = task->thread.fs; ++ ret = put_user(base, (unsigned long __user *)addr); ++ break; ++ } ++ case ARCH_GET_GS: { ++ unsigned long base; ++ unsigned gsindex; ++ if (task->thread.gsindex == GS_TLS_SEL) ++ base = read_32bit_tls(task, GS_TLS); ++ else if (doit) { ++ asm("movl %%gs,%0" : "=r" (gsindex)); ++ if (gsindex) ++ rdmsrl(MSR_KERNEL_GS_BASE, base); ++ else ++ base = task->thread.gs; ++ } ++ else ++ base = task->thread.gs; ++ ret = put_user(base, (unsigned long __user *)addr); ++ break; ++ } ++ ++ default: ++ ret = -EINVAL; ++ break; ++ } ++ ++ return ret; ++} ++ ++long sys_arch_prctl(int code, unsigned long addr) ++{ ++ return do_arch_prctl(current, code, addr); ++} ++ ++/* ++ * Capture the user space registers if the task is not running (in user space) ++ */ ++int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs) ++{ ++ struct pt_regs *pp, ptregs; ++ ++ pp = task_pt_regs(tsk); ++ ++ ptregs = *pp; ++ ptregs.cs &= 0xffff; ++ ptregs.ss &= 0xffff; ++ ++ elf_core_copy_regs(regs, &ptregs); ++ ++ boot_option_idle_override = 1; ++ return 1; ++} ++ ++unsigned long arch_align_stack(unsigned long sp) ++{ ++ if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) ++ sp -= get_random_int() % 8192; ++ return sp & ~0xf; ++} ++ ++#ifndef CONFIG_SMP ++void _restore_vcpu(void) ++{ ++} ++#endif +diff -Naur ubuntu-hardy/arch/x86/kernel/quirks-xen.c ubuntu-hardy-xen/arch/x86/kernel/quirks-xen.c +--- ubuntu-hardy/arch/x86/kernel/quirks-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/quirks-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,392 @@ ++/* ++ * This file contains work-arounds for x86 and x86_64 platform bugs. ++ */ ++#include ++#include ++ ++#if defined(CONFIG_X86_IO_APIC) && (defined(CONFIG_SMP) || defined(CONFIG_XEN)) && defined(CONFIG_PCI) ++ ++static void __devinit quirk_intel_irqbalance(struct pci_dev *dev) ++{ ++ u8 config, rev; ++ u32 word; ++ ++ /* BIOS may enable hardware IRQ balancing for ++ * E7520/E7320/E7525(revision ID 0x9 and below) ++ * based platforms. ++ * Disable SW irqbalance/affinity on those platforms. ++ */ ++ pci_read_config_byte(dev, PCI_CLASS_REVISION, &rev); ++ if (rev > 0x9) ++ return; ++ ++ /* enable access to config space*/ ++ pci_read_config_byte(dev, 0xf4, &config); ++ pci_write_config_byte(dev, 0xf4, config|0x2); ++ ++ /* read xTPR register */ ++ raw_pci_ops->read(0, 0, 0x40, 0x4c, 2, &word); ++ ++ if (!(word & (1 << 13))) { ++ struct xen_platform_op op; ++ printk(KERN_INFO "Intel E7520/7320/7525 detected. " ++ "Disabling irq balancing and affinity\n"); ++ op.cmd = XENPF_platform_quirk; ++ op.u.platform_quirk.quirk_id = QUIRK_NOIRQBALANCING; ++ (void)HYPERVISOR_platform_op(&op); ++ } ++ ++ /* put back the original value for config space*/ ++ if (!(config & 0x2)) ++ pci_write_config_byte(dev, 0xf4, config); ++} ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7320_MCH, ++ quirk_intel_irqbalance); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, ++ quirk_intel_irqbalance); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, ++ quirk_intel_irqbalance); ++#endif ++ ++#if defined(CONFIG_HPET_TIMER) ++#include ++ ++unsigned long force_hpet_address; ++ ++static enum { ++ NONE_FORCE_HPET_RESUME, ++ OLD_ICH_FORCE_HPET_RESUME, ++ ICH_FORCE_HPET_RESUME, ++ VT8237_FORCE_HPET_RESUME, ++ NVIDIA_FORCE_HPET_RESUME, ++} force_hpet_resume_type; ++ ++static void __iomem *rcba_base; ++ ++static void ich_force_hpet_resume(void) ++{ ++ u32 val; ++ ++ if (!force_hpet_address) ++ return; ++ ++ if (rcba_base == NULL) ++ BUG(); ++ ++ /* read the Function Disable register, dword mode only */ ++ val = readl(rcba_base + 0x3404); ++ if (!(val & 0x80)) { ++ /* HPET disabled in HPTC. Trying to enable */ ++ writel(val | 0x80, rcba_base + 0x3404); ++ } ++ ++ val = readl(rcba_base + 0x3404); ++ if (!(val & 0x80)) ++ BUG(); ++ else ++ printk(KERN_DEBUG "Force enabled HPET at resume\n"); ++ ++ return; ++} ++ ++static void ich_force_enable_hpet(struct pci_dev *dev) ++{ ++ u32 val; ++ u32 uninitialized_var(rcba); ++ int err = 0; ++ ++ if (hpet_address || force_hpet_address) ++ return; ++ ++ pci_read_config_dword(dev, 0xF0, &rcba); ++ rcba &= 0xFFFFC000; ++ if (rcba == 0) { ++ printk(KERN_DEBUG "RCBA disabled. Cannot force enable HPET\n"); ++ return; ++ } ++ ++ /* use bits 31:14, 16 kB aligned */ ++ rcba_base = ioremap_nocache(rcba, 0x4000); ++ if (rcba_base == NULL) { ++ printk(KERN_DEBUG "ioremap failed. Cannot force enable HPET\n"); ++ return; ++ } ++ ++ /* read the Function Disable register, dword mode only */ ++ val = readl(rcba_base + 0x3404); ++ ++ if (val & 0x80) { ++ /* HPET is enabled in HPTC. Just not reported by BIOS */ ++ val = val & 0x3; ++ force_hpet_address = 0xFED00000 | (val << 12); ++ printk(KERN_DEBUG "Force enabled HPET at base address 0x%lx\n", ++ force_hpet_address); ++ iounmap(rcba_base); ++ return; ++ } ++ ++ /* HPET disabled in HPTC. Trying to enable */ ++ writel(val | 0x80, rcba_base + 0x3404); ++ ++ val = readl(rcba_base + 0x3404); ++ if (!(val & 0x80)) { ++ err = 1; ++ } else { ++ val = val & 0x3; ++ force_hpet_address = 0xFED00000 | (val << 12); ++ } ++ ++ if (err) { ++ force_hpet_address = 0; ++ iounmap(rcba_base); ++ printk(KERN_DEBUG "Failed to force enable HPET\n"); ++ } else { ++ force_hpet_resume_type = ICH_FORCE_HPET_RESUME; ++ printk(KERN_DEBUG "Force enabled HPET at base address 0x%lx\n", ++ force_hpet_address); ++ } ++} ++ ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_0, ++ ich_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1, ++ ich_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_0, ++ ich_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_1, ++ ich_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_31, ++ ich_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_1, ++ ich_force_enable_hpet); ++ ++ ++static struct pci_dev *cached_dev; ++ ++static void old_ich_force_hpet_resume(void) ++{ ++ u32 val; ++ u32 uninitialized_var(gen_cntl); ++ ++ if (!force_hpet_address || !cached_dev) ++ return; ++ ++ pci_read_config_dword(cached_dev, 0xD0, &gen_cntl); ++ gen_cntl &= (~(0x7 << 15)); ++ gen_cntl |= (0x4 << 15); ++ ++ pci_write_config_dword(cached_dev, 0xD0, gen_cntl); ++ pci_read_config_dword(cached_dev, 0xD0, &gen_cntl); ++ val = gen_cntl >> 15; ++ val &= 0x7; ++ if (val == 0x4) ++ printk(KERN_DEBUG "Force enabled HPET at resume\n"); ++ else ++ BUG(); ++} ++ ++static void old_ich_force_enable_hpet(struct pci_dev *dev) ++{ ++ u32 val; ++ u32 uninitialized_var(gen_cntl); ++ ++ if (hpet_address || force_hpet_address) ++ return; ++ ++ pci_read_config_dword(dev, 0xD0, &gen_cntl); ++ /* ++ * Bit 17 is HPET enable bit. ++ * Bit 16:15 control the HPET base address. ++ */ ++ val = gen_cntl >> 15; ++ val &= 0x7; ++ if (val & 0x4) { ++ val &= 0x3; ++ force_hpet_address = 0xFED00000 | (val << 12); ++ printk(KERN_DEBUG "HPET at base address 0x%lx\n", ++ force_hpet_address); ++ return; ++ } ++ ++ /* ++ * HPET is disabled. Trying enabling at FED00000 and check ++ * whether it sticks ++ */ ++ gen_cntl &= (~(0x7 << 15)); ++ gen_cntl |= (0x4 << 15); ++ pci_write_config_dword(dev, 0xD0, gen_cntl); ++ ++ pci_read_config_dword(dev, 0xD0, &gen_cntl); ++ ++ val = gen_cntl >> 15; ++ val &= 0x7; ++ if (val & 0x4) { ++ /* HPET is enabled in HPTC. Just not reported by BIOS */ ++ val &= 0x3; ++ force_hpet_address = 0xFED00000 | (val << 12); ++ printk(KERN_DEBUG "Force enabled HPET at base address 0x%lx\n", ++ force_hpet_address); ++ cached_dev = dev; ++ force_hpet_resume_type = OLD_ICH_FORCE_HPET_RESUME; ++ return; ++ } ++ ++ printk(KERN_DEBUG "Failed to force enable HPET\n"); ++} ++ ++/* ++ * Undocumented chipset features. Make sure that the user enforced ++ * this. ++ */ ++static void old_ich_force_enable_hpet_user(struct pci_dev *dev) ++{ ++ if (hpet_force_user) ++ old_ich_force_enable_hpet(dev); ++} ++ ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_0, ++ old_ich_force_enable_hpet_user); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, ++ old_ich_force_enable_hpet_user); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_0, ++ old_ich_force_enable_hpet_user); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, ++ old_ich_force_enable_hpet_user); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, ++ old_ich_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_12, ++ old_ich_force_enable_hpet); ++ ++ ++static void vt8237_force_hpet_resume(void) ++{ ++ u32 val; ++ ++ if (!force_hpet_address || !cached_dev) ++ return; ++ ++ val = 0xfed00000 | 0x80; ++ pci_write_config_dword(cached_dev, 0x68, val); ++ ++ pci_read_config_dword(cached_dev, 0x68, &val); ++ if (val & 0x80) ++ printk(KERN_DEBUG "Force enabled HPET at resume\n"); ++ else ++ BUG(); ++} ++ ++static void vt8237_force_enable_hpet(struct pci_dev *dev) ++{ ++ u32 uninitialized_var(val); ++ ++ if (!hpet_force_user || hpet_address || force_hpet_address) ++ return; ++ ++ pci_read_config_dword(dev, 0x68, &val); ++ /* ++ * Bit 7 is HPET enable bit. ++ * Bit 31:10 is HPET base address (contrary to what datasheet claims) ++ */ ++ if (val & 0x80) { ++ force_hpet_address = (val & ~0x3ff); ++ printk(KERN_DEBUG "HPET at base address 0x%lx\n", ++ force_hpet_address); ++ return; ++ } ++ ++ /* ++ * HPET is disabled. Trying enabling at FED00000 and check ++ * whether it sticks ++ */ ++ val = 0xfed00000 | 0x80; ++ pci_write_config_dword(dev, 0x68, val); ++ ++ pci_read_config_dword(dev, 0x68, &val); ++ if (val & 0x80) { ++ force_hpet_address = (val & ~0x3ff); ++ printk(KERN_DEBUG "Force enabled HPET at base address 0x%lx\n", ++ force_hpet_address); ++ cached_dev = dev; ++ force_hpet_resume_type = VT8237_FORCE_HPET_RESUME; ++ return; ++ } ++ ++ printk(KERN_DEBUG "Failed to force enable HPET\n"); ++} ++ ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8235, ++ vt8237_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, ++ vt8237_force_enable_hpet); ++ ++/* ++ * Undocumented chipset feature taken from LinuxBIOS. ++ */ ++static void nvidia_force_hpet_resume(void) ++{ ++ pci_write_config_dword(cached_dev, 0x44, 0xfed00001); ++ printk(KERN_DEBUG "Force enabled HPET at resume\n"); ++} ++ ++static void nvidia_force_enable_hpet(struct pci_dev *dev) ++{ ++ u32 uninitialized_var(val); ++ ++ if (!hpet_force_user || hpet_address || force_hpet_address) ++ return; ++ ++ pci_write_config_dword(dev, 0x44, 0xfed00001); ++ pci_read_config_dword(dev, 0x44, &val); ++ force_hpet_address = val & 0xfffffffe; ++ force_hpet_resume_type = NVIDIA_FORCE_HPET_RESUME; ++ printk(KERN_DEBUG "Force enabled HPET at base address 0x%lx\n", ++ force_hpet_address); ++ cached_dev = dev; ++ return; ++} ++ ++/* ISA Bridges */ ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0050, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0051, ++ nvidia_force_enable_hpet); ++ ++/* LPC bridges */ ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0360, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0361, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0362, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0363, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0364, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0365, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0366, ++ nvidia_force_enable_hpet); ++DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NVIDIA, 0x0367, ++ nvidia_force_enable_hpet); ++ ++void force_hpet_resume(void) ++{ ++ switch (force_hpet_resume_type) { ++ case ICH_FORCE_HPET_RESUME: ++ return ich_force_hpet_resume(); ++ ++ case OLD_ICH_FORCE_HPET_RESUME: ++ return old_ich_force_hpet_resume(); ++ ++ case VT8237_FORCE_HPET_RESUME: ++ return vt8237_force_hpet_resume(); ++ ++ case NVIDIA_FORCE_HPET_RESUME: ++ return nvidia_force_hpet_resume(); ++ ++ default: ++ break; ++ } ++} ++ ++#endif +diff -Naur ubuntu-hardy/arch/x86/kernel/relocate_kernel_32.S ubuntu-hardy-xen/arch/x86/kernel/relocate_kernel_32.S +--- ubuntu-hardy/arch/x86/kernel/relocate_kernel_32.S 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/relocate_kernel_32.S 2008-04-09 13:17:22.000000000 +0100 +@@ -154,14 +154,45 @@ + movl PTR(PA_PGD)(%ebp), %eax + movl %eax, %cr3 + ++ /* setup idt */ ++ movl %edi, %eax ++ addl $(idt_48 - relocate_kernel), %eax ++ lidtl (%eax) ++ ++ /* setup gdt */ ++ movl %edi, %eax ++ addl $(gdt - relocate_kernel), %eax ++ movl %edi, %esi ++ addl $((gdt_48 - relocate_kernel) + 2), %esi ++ movl %eax, (%esi) ++ ++ movl %edi, %eax ++ addl $(gdt_48 - relocate_kernel), %eax ++ lgdtl (%eax) ++ ++ /* setup data segment registers */ ++ mov $(gdt_ds - gdt), %eax ++ mov %eax, %ds ++ mov %eax, %es ++ mov %eax, %fs ++ mov %eax, %gs ++ mov %eax, %ss ++ + /* setup a new stack at the end of the physical control page */ + lea 4096(%edi), %esp + +- /* jump to identity mapped page */ +- movl %edi, %eax +- addl $(identity_mapped - relocate_kernel), %eax +- pushl %eax +- ret ++ /* load new code segment and jump to identity mapped page */ ++ movl %edi, %esi ++ xorl %eax, %eax ++ pushl %eax ++ pushl %esi ++ pushl %eax ++ movl $(gdt_cs - gdt), %eax ++ pushl %eax ++ movl %edi, %eax ++ addl $(identity_mapped - relocate_kernel),%eax ++ pushl %eax ++ iretl + + identity_mapped: + /* store the start address on the stack */ +@@ -250,3 +281,20 @@ + xorl %edi, %edi + xorl %ebp, %ebp + ret ++ ++ .align 16 ++gdt: ++ .quad 0x0000000000000000 /* NULL descriptor */ ++gdt_cs: ++ .quad 0x00cf9a000000ffff /* kernel 4GB code at 0x00000000 */ ++gdt_ds: ++ .quad 0x00cf92000000ffff /* kernel 4GB data at 0x00000000 */ ++gdt_end: ++ ++gdt_48: ++ .word gdt_end - gdt - 1 /* limit */ ++ .long 0 /* base - filled in by code above */ ++ ++idt_48: ++ .word 0 /* limit */ ++ .long 0 /* base */ +diff -Naur ubuntu-hardy/arch/x86/kernel/relocate_kernel_64.S ubuntu-hardy-xen/arch/x86/kernel/relocate_kernel_64.S +--- ubuntu-hardy/arch/x86/kernel/relocate_kernel_64.S 2008-04-09 12:57:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/relocate_kernel_64.S 2008-04-09 13:17:22.000000000 +0100 +@@ -159,13 +159,39 @@ + movq PTR(PA_PGD)(%rsi), %r9 + movq %r9, %cr3 + ++ /* setup idt */ ++ movq %r8, %rax ++ addq $(idt_80 - relocate_kernel), %rax ++ lidtq (%rax) ++ ++ /* setup gdt */ ++ movq %r8, %rax ++ addq $(gdt - relocate_kernel), %rax ++ movq %r8, %r9 ++ addq $((gdt_80 - relocate_kernel) + 2), %r9 ++ movq %rax, (%r9) ++ ++ movq %r8, %rax ++ addq $(gdt_80 - relocate_kernel), %rax ++ lgdtq (%rax) ++ ++ /* setup data segment registers */ ++ xorl %eax, %eax ++ movl %eax, %ds ++ movl %eax, %es ++ movl %eax, %fs ++ movl %eax, %gs ++ movl %eax, %ss ++ + /* setup a new stack at the end of the physical control page */ + lea 4096(%r8), %rsp + +- /* jump to identity mapped page */ +- addq $(identity_mapped - relocate_kernel), %r8 +- pushq %r8 +- ret ++ /* load new code segment and jump to identity mapped page */ ++ movq %r8, %rax ++ addq $(identity_mapped - relocate_kernel), %rax ++ pushq $(gdt_cs - gdt) ++ pushq %rax ++ lretq + + identity_mapped: + /* store the start address on the stack */ +@@ -272,5 +298,19 @@ + xorq %r13, %r13 + xorq %r14, %r14 + xorq %r15, %r15 +- + ret ++ ++ .align 16 ++gdt: ++ .quad 0x0000000000000000 /* NULL descriptor */ ++gdt_cs: ++ .quad 0x00af9a000000ffff ++gdt_end: ++ ++gdt_80: ++ .word gdt_end - gdt - 1 /* limit */ ++ .quad 0 /* base - filled in by code above */ ++ ++idt_80: ++ .word 0 /* limit */ ++ .quad 0 /* base */ +diff -Naur ubuntu-hardy/arch/x86/kernel/setup_32-xen.c ubuntu-hardy-xen/arch/x86/kernel/setup_32-xen.c +--- ubuntu-hardy/arch/x86/kernel/setup_32-xen.c 1970-01-01 01:00:00.000000000 +0100 ++++ ubuntu-hardy-xen/arch/x86/kernel/setup_32-xen.c 2008-04-09 13:17:22.000000000 +0100 +@@ -0,0 +1,880 @@ ++/* ++ * Copyright (C) 1995 Linus Torvalds ++ * ++ * Support of BIGMEM added by Gerhard Wichert, Siemens AG, July 1999 ++ * ++ * Memory region support ++ * David Parsons , July-August 1999 ++ * ++ * Added E820 sanitization routine (removes overlapping memory regions); ++ * Brian Moyle , February 2001 ++ * ++ * Moved CPU detection code to cpu/${cpu}.c ++ * Patrick Mochel , March 2002 ++ * ++ * Provisions for empty E820 memory regions (reported by certain BIOSes). ++ * Alex Achenbach , December 2002. ++ * ++ */ ++ ++/* ++ * This file handles the architecture-dependent parts of initialization ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include